哈喽大家好,我是咸鱼

昨天老大让我初始化一批服务器,吭哧吭哧弄完之后需要把这批机器添加到 zabbix 上去

但是我发现一台一台添加效率好低,而且特别繁琐,当时我没有想出有什么好的方法,今天上网搜了一下相关资料之后,发现 zabbix 还有个自动发现功能

手动添加监控主机的效率会非常低下,而 Zabbix 的自动发现功能可以帮助减轻工作量,提高效率

自动发现(Auto Discovery)是 Zabbix 的一个重要功能之一,它通过 Zabbix 自动扫描网络或设备,检测到新的主机或服务时自动添加到监控系统中,允许系统管理员轻松地动态添加、监控新的主机和服务,而不需要手动配置监控项

那么我们来看看如何通过 zabbix 的自动发现功能来实现自动地添加新主机吧

添加自动发现规则
首先我们登录 zabbix 的 web 界面(以我为例,我的 zabbix-server 版本为 Zabbix 6.4.2,不同 zabbix 版本界面会不一样)

然后左侧点击 Data collection ——> Discovery 进入到自动发现界面

接着右上角新建规则

zabbix 自动发现-LMLPHP
配置自动发现规则
zabbix 自动发现-LMLPHP
zabbix 自动发现-LMLPHP

添加自动发现动作

自动发现规则是不过是去扫描对应机器,我们还需要为其添加相应的动作(即扫描到这个机器之后下一步该干什么)

首先左侧Alerts ——> Actions——> Discovery actions ,然后右上角点击新建动作
zabbix 自动发现-LMLPHP
【动作执行的条件】选择前面我们定义的【自动发现规则】
zabbix 自动发现-LMLPHP

接着我们去配置动作的内容(即【要干什么】)
zabbix 自动发现-LMLPHP
zabbix 自动发现-LMLPHP
自动发现规则和动作触发器添加完毕后,zabbix-server 会周期对指定网段进行扫描,当发现符合检查的主机后就会触发相关的动作,主机就会被自动添加

出现告警

添加完之后,我发现 zabbix-server 有告警

zabbix 自动发现-LMLPHP
zabbix 自动发现-LMLPHP
看告警信息我们可以得知 discovery 进程的使用率超过了 75%

(需要注意的是:每个 discovery 任务在一定时间内会占用一个 discovery 进程)

先看一下 zabbix-server 配置文件( zabbix_server.conf ),发现默认配置只有 1 个 discovery(被注释,默认生效)

而且我配置的自动发现间隔太短了(间隔为 2s),导致 discovery 进程的使用率在短时间内急剧上升,从而触发了告警

如何解决?

方法一:延长扫描间隔

通过延长扫描间隔时间来降低平均时间内进程的占用率

方法二:把 discovery 进程数量调高

编辑 zabbix server 配置文件 /etc/zabbix/zabbix_server.conf

找到 StartDiscoverers,把注释去掉,值给个 2 或者 3 即可,然后重启 zabbix server 服务
zabbix 自动发现-LMLPHP

09-07 03:40