一、zabbix自动发现与自动注册的区别

在zabbix中添加新主机时,是需要手动添加,但在zabbix的Action里有两项功能,自动发现与自动注册,运用这两个功能中任意一个都可以实现自动添加机器,但添加的主机名是IP地址。

  • 自动发现:添加discovery规则后,zabbix sever端基于IP范围对agent机器进行扫描,并把扫描到的机器添加到web端。zabbix server端的操作,会使其压力很大;
  • 自动注册:zabbix agent端会自动发送信息到server端,然后agent主机会被添加到web端。zabbix agent端的操作;

建议使用自动注册功能,当在zabbix web端配置完discovery规则后,以后公司新增机器,就算不在一个网段,只要能够与server机器通信,修改一下agent配置文件,就可以自动添加主机。当把服务安装做成标准化,基本就很省心。

二、zabbix server端配置

Configuration –> Action –> Auto registion –> Create action:

zabbix-actions
zabbix-actions

增加自动注册,这里使用的metadata实现的自动注册,如下:

zabbix-auotreg
zabbix-auotreg

对应的operations如下:

autoreg-operations
autoreg-operations

三、agent端配置

配置信息如下,这里需要注意下,没有Hostname项,但增加了HostnameItem项:

1# grep -v ^# /etc/zabbix/zabbix_agentd.conf |grep -v ^$
2PidFile=/var/run/zabbix/zabbix_agentd.pid
3LogFile=/var/log/zabbix/zabbix_agentd.log
4LogFileSize=0
5Server=10.212.52.14,127.0.0.1
6ServerActive=10.212.52.14,127.0.0.1
7HostnameItem=system.hostname
8HostMetadataItem=system.uname
9Include=/etc/zabbix/zabbix_agentd.d/*.conf

如果同时配置了Hostname和HostnameItem,前者会覆盖后者,而且启动的时候也会有警告信息出现。在zabbix_agentd.conf文件中也有一行提示:Item used for generating Hostname if it is undefined. Ignored if Hostname is defined。如果两者同时启用,会出现如下信息:

1# /etc/init.d/zabbix-agent start
2Starting Zabbix agent: zabbix_agentd [21988]: Warning: both Hostname and HostnameItem defined, using [www.361way.com]

另外记住不要把HostMetadataItem和HostnameItem搞混了。很多人配置不成功就是这里没看清楚。自动注册关键使用的是HostMetadataItem 。

四、验证

除了可以通过web界面configuration—hosts查看之外,还可以通过在zabbix server端查看日志进行确认,在zabbix_server.log中会看到如下信息:

1enabling Zabbix agent checks on host "autoreg.361way.com": host became available

当然本篇实现的比较简单,自动注册的功能也比较强大,具体也可以参看官方文档:

https://www.zabbix.com/documentation/4.0/manual/discovery/auto_registration

在使用可能遇到的报错:cannot connect to [[zabbix server]:10051]: [111] Connection refused),该问题可能是server端防火墙未开启10051端口。

/var/log/zabbix/zabbix_agentd.log报错cannot parse list of active checks:,该问题可能是错配置了ServerActive项,比如配置成了 www.361way.com:10050,默认使用的端口是10051。