Zabbix自定义监控项(服务器监控)

2021-12-24 16:14:57 浏览数 (1)

代码语言:javascript复制
zabbix监控系统一般是要对服务器性能或者项目进行监控,默认的监控模板有时候不好用,或者说根本没有自己想要的,那我们就添加自定义的监控项目

server端调用agent端配置的键值参数调用脚本,然后脚本参数传输给server端,server端写进数据库,然后获取到新的数值再进行处理并在前端显示给用户看


第一,编写监控脚本
第二,修改zabbix_agent的配置
第三,在zabbix_web添加新的 监控项 触发器 图形

前提条件 zabbix已经安装完毕  本次用单KEY值演示,较易理解
第一,编写监控脚本
代码语言:javascript复制
这里我们简单写个脚本,模拟nginx的状态(导入随机模块 生成随机数 是因为需要让后面的图形看起来有趋势感)

#!/usr/bin/python3  #TestNum.py内容
import random
number = random.randint(1,100)  #测试导入随机数模块生成1-100的随机数

with open('/var/log/nginx_code.log','a') as f: #将随机数写入日志 方便数据确认
         f.write(str(number)   'n')

print(number) #打印因需要取值

#脚本编写完毕
第二,修改zabbix_agent的配置
代码语言:javascript复制
#操作只在客户端(修改配置文件如下参数)
UnsafeUserParameters=1
UserParameter=nginx.code,/usr/bin/python3 /usr/local/zabbix-3.4.11/script/TestNum.py 
#修改完重启zabbix_agent客户端
/etc/init.d/zabbix_agentd restart   #重启生效

略过以下3步(此次不做演示):
UserParameter还可以通过脚本来取得多个key的值(生产环境已经用多KEY值):
UserParameter=mysql.status[*],/usr/local/zabbix/scripts/check_mysql.sh $1               #例子此次不做演示
UserParameter=check_port[*],/usr/local/zabbix/scripts/check_port.sh -H 127.0.0.1 -p $1  #例子此次不做演示
代码语言:javascript复制
#修改权限
chown zabbix.zabbix /var/log/nginx_code.log     #zabbix为源码安装指定的用户
chown zabbix.zabbix /usr/local/zabbix-3.4.11/script/TestNum.py   
chmod 766  /var/log/nginx_code.log
chmod 766  /usr/local/zabbix-3.4.11/script/TestNum.py  
chmod  x   /usr/local/zabbix-3.4.11/script/TestNum.py  #脚本添加执行权限
第三,在zabbix_web添加新的 监控项 触发器 图形
代码语言:javascript复制
1 添加监控项 (完毕后滑倒最下面更新即可) 配置-->主机-->监控项-->创建监控项

代码语言:javascript复制
添加成功(如下 状态正常已启用) 异常:会显示不支持(红色),正常则显示已启用(绿色)

代码语言:javascript复制
开始添加图形(配置-->主机-->图形-->创建图形)  ps:触发器及图形都是在监控项的基础上去配置的,因为监控项是获取实时数据的

代码语言:javascript复制
图形添加完后,更新查看(如下)

代码语言:javascript复制
查看脚本运行输出的状态码是否跟图形对应,目前看是一致的(应该输出加个时间的,看起来才更清晰点 哈哈)

代码语言:javascript复制
图形添加完毕
代码语言:javascript复制
接下来添加触发器(步骤如下图) ps:按着自己的要求设置N值触发器即可 然后更新

代码语言:javascript复制
接下来就是验证了(为了演示效果,设置的值比较容易触发,触发如下:)

代码语言:javascript复制
已触发 验证完毕 Over (如下)

0 人点赞