前言
当我们熟悉了Zabbix的日常监控,可以在生产环境正确的部署和实施监控工作。而且通过修改Zabbix Agent为主动方式并结合Zabbix Proxy的使用,可以满足大规模监控的需求。那么同样的问题就是大规模监控环境中,如何能让操作自动化。面对上百、数千乃至上万的规模,手动添加监控基本上是不可能的。
可以将Zabbix自动化分为三个大方向:
- Zabbix Agent的自动添加
- Zabbix Discovery自动发现
- 使用Zabbix API
那么今天我们来说说Zabbix Agent的自动添加。
Zabbix Agent主动注册指的是,当我们新增加一台服务器,安装好Zabbix Agent,并配置Zabbix Server的IP地址后,Zabbix Agent主动联系Zabbix Server,Zabbix Server接收到Agent的连接后,根据Agent的特征,和相应的策略自动将它们加入Host,并且可以根据相关的特征自动关联相应的监控模板。
Zabbix Agent配置
需要开启Zabbix Agent的主动注册,首先我们需要对ZabbixAgent进行配置。
- ServerActive=Zabbix Server的IP地址
- Hostname=auto.example.com
- #设置主机名,如果不设置默认使用HostnameItem获取主机名。而默认情况下HostnameItem=system.hostname,这样就可以获取到Agent的主机名了。
- #HostMetadata=nginx
- #HostMetadata用于定义主机的元数据,在自动注册的时候使用,不能大于255个字符,如果不设置默认从HostMetadataItem获取
- HostMetadataItem=system.uname
- # HostMetadataItem也是用于定义主机的元数据,在自动注册的时候使用,不能大于255个字符,这里设置的Item指的是Zabbix自带的监控项,注意这个值只用于HostMetadata没有设置的时候才生效。
Zabbix Action配置
配置完毕Agent后,我们在Web界面上来配置一个Action。步骤为:
configuration>>action>>Eventsource(选择Auto registration)>>CreateAction。
可以自定义一个名称,其它的默认即可。
Action选项卡
Conditions选项卡
我们要在Conditions里面定义好需要的条件,这里我们选择Host metadata like Linux。这样就刚好可以匹配到我们在agent配置文件里面设置的HostMetadataItem=system.uname。
Operations选项卡
接下来我们配置Operations选项卡,告知Action匹配到条件后的操作。下面我们配置了三个操作,满足条件的activehost发起请求后会进行下面操作:
- 把agent加到host列表
- 把agent加入linuxservers组
- agent主机link模板Template OS linux
经过这样的配置,那么新的Agent就会自动被Zabbix Server添加到主机监控中,并自动链接模板。
- 需要强调的是,你需要修改模板中的监控类型为Zabbix Agent(active)。
目前自动注册并不会产生一个事件所以在Event中是看不到Zabbix Server自动添加了一台主机的。