zabbix客户端自动注册
Posted 运维讲堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix客户端自动注册相关的知识,希望对你有一定的参考价值。
当我们批量安装N台服务器,并通过saltstack将其zabbix agent安装好后,便可以通过此技术将其agent自动加入到zabbix server中,运用好此功能,对与我们sa来说是个福音.
想实现如下两个功能:
功能1) 新安装的centos机器暂未安装任何服务,希望自动注册到zabbix server中,并且能加到Linux servers主机组中,添加一个OS Linux模板,最后发送自动注册邮件通知.
功能2) 在centos服务器上安装了apache服务后,希望自动注册到zabbix server中,并且能加到Linux servers主机组中,添加一个OS Linux模板和一个http模板,最后发送自动注册邮件通知.
功能1配置如下:
Zabbix server端配置.
配置action
步骤:configuration>>action>>Event source(选择Autoregisteation)>>Create Action,我们按如下步骤定义个action
定义action名称,以及增加一个条件:Host metadata包含Linux字符的主机将会触发2的operations操作(metadata的数据来自与agent后端的配置HostMetadataItem或HostMetadata).
2.operations选项卡
满足条件的agent host,server完成四个动作:
把agent加到host列表
把agent加到linux servers组
Link一个Template OS linux模板到agnet主机
最后发送邮件到monitor组
(根据我们的主机特性加不同的动作)
对与发送消息标题与内容,采用默认即可.
被监控端配置
[root@nginx-proxy zabbix]# catzabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.214.112
ListenPort=10050
ServerActive=192.168.214.112
Hostname=nginx_proxy.opdevos.com
HostMetadataItem=system.uname
Include=/etc/zabbix/zabbix_agentd.d/
注意以下几个参数:
Server=192.168.214.112
指定zabbix server ip
Hostname=nginx_proxy.opdevos.com
如果zabbix_agentd.conf配置有此参数,zabbix使用此主机名命名,否则使用hostname命令来获取的值来命名.
HostMetadataItem=system.uname
就是提供agent key system.uname中的值供server端的coditions过滤使用的.
[root@localhost ~]# zabbix_get -s192.168.214.6 -k "system.uname"
Linux nginx-proxy.opdevos.com3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64
意思就是agent提供的system.uname中包含Linux字符串,那么就符合条件,执行operations标签下的那些动作.
现在我们重启agent服务,看下结果.
tailf /var/log/zabbix/zabbix_server.log
查看Configuration/Hosts
为什么我们的动作是只加Linux server组,但这里有个Discovered hosts组呢?
看下Administration>>other下面
看到没,四个动作都完成了.
HostMetadataItem与HostMetadata这两个参数的作用是用来区分主机的,比如主机系统linux还是windows,这样才能分别他们添加不同的动作。
HostMetadataItem的值来之zabbix内建key
HostMetadata的值可以自己定义,更加灵活。
通过使用metadata用来区分各个主机,来达到我们各种需求.
功能2配置如下:
在此我们需要借助HostMetadata来实现.
Zabbix agent端配置
看到没,这个HostMetadata参数我们可以随意指定,zabbix server端根据我们指定的值来进行匹配,只要匹配上,我们就可以做下一步动作,如这台服务器,我想在它加入zabbix后,再添加一个redis模板,那么只需要HostMetadata=nginx redis Linux,前面再去定义一个nginx_redis_autoregister的action便可以了.
重启zabbix agent
过2分钟左右此主机便按我们的定义加到zabbix server中了.
至此,我们定义了2个action,1个是自动注册全新主机,无任何服务的,1个是安装了nginx服务的,前者只要匹配Linux便可,后者是需要匹配nginx与Linux.通过此对比,我觉得当多个自动注册action,匹配的条件是先严格匹配再宽泛.
匹配条件
匹配主机
network这台主机仅仅是新装的机器,agent端参数仅有system.uname,所以仅能匹配到Linux_AutoRegister
至此结束.
以上是关于zabbix客户端自动注册的主要内容,如果未能解决你的问题,请参考以下文章
青蛙学Linux—Zabbix Web使用之Zabbix发现功能②主动客户端自动注册