代码语言: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 (如下)