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
配置Action选项卡,填下Name就好了
配置Conditions选项卡,Host metadata包含Linux字符的主机将会触发 Operations的操作,什么metadata,文章的下半段会专门讲解。
配置Operations选项卡,
满足条件的active host发起请求,server会完成三个动作:
把agent加到host列表
把agent加入linux servers组
agent主机link模板Template OS linux
查看结果:
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/