如何实现Zabbix的主动注册功能

Posted SlowTech

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现Zabbix的主动注册功能相关的知识,希望对你有一定的参考价值。

主动注册(Active Agent Auto-Registration),顾名思义,无需在Zabbix Web上手动添加host信息,即可实现主机的监控。

它是由Agent主动向Server注册。

相对于另一项类似功能-网络发现,它无需知道Agent端的IP地址段和操作系统版本信息,使用上更灵活。

 

创建自动注册规则

Configuration -> Actions -> Create action -> Auto registration

 

配置Action

填写Action的名字

 

设置Conditions

其中,New condition有三种类型

1. Host metadata

2. Host name

3. Proxy

Host metadata是Zabbix 2.2新增的功能,在之前的版本中,只有Host name和Proxy两个选项,

其中,Host name判断的是Agent配置文件中Hostname的值。

Proxy需给定proxy的名字。

在实际的生产环境中并不能满足需求,因为有时候服务器的主机名并没有规律,譬如云环境下。

Host metadata给出了这种场景下的解决方案,

它在Agent配置文件中提供了两个配置参数。

HostMetadata和HostMetadataItem

### Option: HostMetadata
#       Optional parameter that defines host metadata.
#       Host metadata is used at host auto-registration process.
#       An agent will issue an error and not start if the value is over limit of 255 characters.
#       If not defined, value will be acquired from HostMetadataItem.
#
# Mandatory: no
# Range: 0-255 characters
# Default:
# HostMetadata=

### Option: HostMetadataItem
#       Optional parameter that defines an item used for getting host metadata.
#       Host metadata is used at host auto-registration process.
#       During an auto-registration request an agent will log a warning message if
#       the value returned by specified item is over limit of 255 characters.
#       This option is only used when HostMetadata is not defined.
#
# Mandatory: no
# Default:
# HostMetadataItem=

其中

HostMetadata是手动指定,用于定义主机的元数据,类似于描述。

譬如 HostMetadata=Linux

HostMetadataItem需填写item,通常设置为system.uname。

system.uanme的返回值如下:

# zabbix_get -s node1 -k system.uname
Linux node1 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64

 

设置Operations

在这里,可以执行如下操作:

Send message

Remote command

Add  host

Add to host group

Link to template

Disable host

在这里,我设置了如下操作:

Add host,Link to template,Send message

 

修改zabbix客户端配置文件

[root@node2 ~]# vim /etc/zabbix/zabbix_agentd.conf

主要是配置如下两个选项

ServerActive=192.168.244.30
HostMetadataItem=system.uname

 

启动zabbix客户端

[root@node2 ~]# service zabbix-agent start

验证node2是否自动注册成功

1. 最直观的是查看Configuration -> Hosts

如图所示,node2已添加成功。

 

2. 因为我之前设置Operations的时候,添加了Send message操作(类似于利用脚本实现告警),所以可通过Administration -> Audit -> Actions查看主机是否自动注册成功。

 

3. 如果没有添加成功,可根据Zabbix Server端和Agent端的错误日志进行定位。

 

以上是关于如何实现Zabbix的主动注册功能的主要内容,如果未能解决你的问题,请参考以下文章

zabbix使用host metadata方式主动注册

Zabbix Agent 自动主动注册

zabbix自动发现与自动注册自定义监控

十一zabbix主动发现和自动注册

Zabbix之自动化监控网络发现和主动注册

38-Zabbix故障自愈和主动监控模式以及JAVA程序监控