一、需求
zabbix 服务器可以手动加入zabbix-agent客户端,对于少量的机器,这没有什么。但到了线上,我们有大量的服务器需要监控时,如果再一个个的手动加的话,工作量势必会增加很多。这时,zabbix-server 的Discovery 自动发现 功能便派上了用场。
二、条件
1.zabbix server 已经部署好,所需要加入的服务器zabbix-agent已经安装。
2.防火墙都开放端口,主要是10050、10051端口,或者关闭整个iptables
三、zabbix-agent客户端的设置
1.打开zabbix-agent.conf配置文件,只需要修改2处配置.大批量的修改,可以利用自动化部署工具、如saltstack、ansible等。我用的是saltstack推送文件的方式进行修改,在本实验环境中,我用的是国产的一个批量工具CheungSSH。
2.批量执行的命令
sed -i 's/Server=127.0.0.1/Server=10.8.0.22/g' /etc/zabbix/zabbix_agentd.conf
sed -i 's/ServerActive=127.0.0.1/ServerActive=10.8.0.22/g' /etc/zabbix/zabbix_agentd.conf grep "Server" /etc/zabbix/zabbix_agentd.conf | grep -v '^#' service zabbix-agent restart
上述命令完成后,要在zabbix-server上创建discover规则
四、zabbix-server 登陆web界面进行设置,创建规则,并自动加入,自动链接模板
1.Configuration-->Discovery-->Create discovery rule
下面是创建规则时的具体参数,来自官网:
Parameter |
Description |
Name |
Unique name of the rule. For example, “Local network”. |
Discovery by proxy |
What performs discovery: |
IP |
The |
Delay |
This |
Checks |
Zabbix |
Device |
Uniqueness |
Enabled |
With |
2.添加动作。自动添加主机到linux server 组,并链接模板Linux Os 。
选择【Configuration】->【Actions】,在右边“Event source”选择“Discovery”,然后创建Action规则如下图所示:
设置动作的 name:
添加触发的Action的条件
A: ip 范围,或者某个ip,可以添加多个网段
D:agent的状态是up
C:服务类型是 zabbix-agent
下面就是配置操作(Operations)。即符合条件后,进行的操作。
操作主要有三个,添加主机、添加到server组、链接OS Liunx 模板,点击Add。后续的还可以添加sendmessage 等。
3.观察MonitoringàDiscovery中,有没有机器加入进来。为了便于观察,我们之前设置的发现轮询的时间是60秒。如图:
上面是扫描发现的主机。6台客户端都已发现,下面的是自动链接到组和模板。
本文章属于本作者原创,遵循开源协议,如有转载,请注明本链接的源地址。谢谢 继续更新中!!