在zabbix里添加一个自定义监控项目,简单做个笔记,怕忘了
首先需要定义 zabbix_agentd.conf 中的 UnsafeUserParameters
修改为
UnsafeUserParameters=
然后我们还需要定义包含的自定义配置文件目录
Include=/etc/zabbix/zabbix_agentd.conf.d/
最后保存 zabbix_agentd.conf 配置文件
然后编写自定义监控脚本,这里我以一个简单的监控8080端口脚本为例子
#!/usr/bin/python
import socket
def check_port():
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ss.settimeout(2)
try:
ss.connect(('localhost', 8080))
ss.close()
return 1
except socket.error:
return 2 x = check_port()
print(x)
如果端口是存在的存活的则返回1否则返回2
执行脚本,目前本机上的8080端口是存在的,会返回1
准备工作基本已经做完,我们开始添加自定义监控
首先需要把脚本放到zabbix的脚本文件夹下面,我这里的路径是
/etc/zabbix/monitor_scripts
大家可以自定义
然后最重要的来了,定义自定义监控配置文件
该配置文件位置在刚才的 zabbix_agentd.conf 里配置的包含目录下面,我这里就是
/etc/zabbix/zabbix_agentd.conf.d
进入到目录下后,我们开始定义监控项目文件
内容如下
UserParameter=st8080,/etc/zabbix/monitor_scripts/8080.py
红色的部分为你自定义监控的 键值 该值是在zabbix里添加监控项目时候需要用的到也就是下面的红框中的值,后面接的是脚本路径,别忘了中间有逗号间隔,这个配置文件就搞定了
然后我们保存文件后,需要重启下zabbix-agetn客户端
systemctl restart zabbix-agent
然后我我们去server端去试下看能不能取到key
zabbix_get -s 10.0.30.72 -p -k st8080
以上命令在server服务器上执行,依次是客户端IP 端口 定义的键值,结果如下
可以看到我们可以正常获取的键值,到这里基本没啥问题了,就可以去添加自定义监控项目了
打开zabbix控制台
点开配置-主机
然后找到需要添加自定义监控的机器,比如我这里是10.0.30.72
点项目
然后点右上角创建项目
除了键值需要和配置文件了定义的一致以外,其他默认就可以
最后点存档即可。
我们还需要添加触发器来报警
依次点击配置-主机-选择主机-触发器
点右上角创建触发器
点开后依次需要天上触发器名称,这个随便填,表达式,表达式需要点右边的选择来生成
具体的表达式生成如下
我们刚才自定义项目名称是status8080,这里点选择后我们就选择status8080,N选择2,因为报警触发条件是等于几的是报警,我们脚本定义返回2的时候是端口不通,所以这里写2触发报警
点插入,最后点存档即可。
添加图形也很简单
至此完结。