Zabbix Server可以通过自动发现去添加主机(大概内容是zabbix server去扫描一个网段,把在线的主机添加到Host列表中),同样agent也可以主动去联系Zabbix Server,并由Zabbix Server将这些agent加到host里。对于需要部署特别多服务器的人来说,这功能相当给力。所有服务器批量装好Zabbix Agent,Server配置好trigger,所有的服务器都配置好了,非常快速。


Agent端配置:

指定Zabbix Server的IP地址

root@JMXCLIENT:~# cat /etc/zabbix/zabbix_agentd.conf | grep -E ^ServerActive
ServerActive=172.16.206.130


修改Hostname

root@JMXCLIENT:~# cat /etc/zabbix/zabbix_agentd.conf | grep -E ^Hostname
Hostname=172.16.206.132

关于主机名:如果zabbix_agentd.conf配置有定义Hostname,那么zabbix会使用这个Hostname命名,否则agent的主机名(hostname得来的)


修改metadataitem

root@JMXCLIENT:~# cat /etc/zabbix/zabbix_agentd.conf | grep -E ^HostMetadataItem
HostMetadataItem=system.uname


Zabbix WEB端配置

创建一个Action,event source这里选择Auto Registration

4、Zabbix Agent自动注册_自动注册


配置Action选项卡,填下Name就好了

4、Zabbix Agent自动注册_自动注册_02


配置Conditions选项卡,Host metadata包含Linux字符的主机将会触发 Operations的操作,什么metadata,文章的下半段会专门讲解。

4、Zabbix Agent自动注册_自动注册_03



配置Operations选项卡,

满足条件的active host发起请求,server会完成三个动作:

  • 把agent加到host列表

  • 把agent加入linux servers组

  • agent主机link模板Template OS linux

4、Zabbix Agent自动注册_自动注册_04


查看结果:

4、Zabbix Agent自动注册_自动注册_05



HostMetadataItem与HostMetadata

作用:用于标示主机,通过该符号能够把主机区别开来。比如我们经常用它来区分linux与windows系统,这样才能分别给他们设置组与template等等


HostMetadataItem用法

HostMetadataItem=system.uname

它的值来自key


HostMetadata用法

HostMetadata: Linux hehehehehehehehe xxxxx

他的值是直接定义的

通过使用各式各样的metadata我们可以用于区分各个主机,来达到我们各种需求。


原文出处:http://www.ttlsa.com/zabbix/zabbix-active-agent-auto-registration/