最近graylog平台有时候会出现获取不到多台服务器日志数据的情况发生,但是其服务,端口均正常,导致zabbix监控不出来此现象。为避免这种情况发生,决定通过graylog的api接口获取吞吐量数据,然后通过zabbix自定义监控项来监控获取数据是否正常。
graylog吞吐量可以通过web界面展示
![](https://img.haomeiwen.com/i19299218/59a0a83b3ca7bd56.png)
- 进入graylog服务器,cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/ , 创建自定义python脚本
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/ #自选脚本存放目录
touch graylog-throughput.py
vi graylog-throughput.py #编辑脚本文件将以下内容填入
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import requests
if __name__ == '__main__' :
headers = {'Authorization': 'Basic "#token"'}
graylog_output_url = 'http://graylog.example.com/api/system/throughput'
response = requests.get(graylog_output_url, headers=headers).json()
print(response['throughput'])
#保存退出
chown zabbix:zabbix graylog-throughput.py #给予脚本文件zabbix用户组权限
chmod +x graylog-throughput.py #给予脚本文件执行权限
注意: headers是登录graylog的认证信息,graylog_output_url是graylog的api接口地址
- 下载python3以及requests,后续要用到,执行脚本看是否能获取到正确的数据
yum install python36 -y
yum install python36-pip
pip3 install requests
python3 graylog-throughput.py
909 #结果显示
3.修改zabbix_agent的配置文件zabbix_agentd.conf包含zabbix_agentd.conf.d/ 目录下所有的.conf文件
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf # 添加在agent配置文件中
注意:这里没有把自定义的监控项直接写在zabbix_agent的主配置文件内,原因是为了当有多个自定义监控项时,可以方便读取配置文件
- 进入/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 目录下,创建键值文件
cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
touch userparameter_graylog.conf
vi userparameter_graylog.conf
UserParameter=graylog.status[*],/usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/graylog-throughput.py $1
chown zabbix:zabbix userparameter_graylog.conf
最后,重启下zabbix_agentd服务
- 登录zabbix所在服务器,通过zabbix-get查看是否zabbix端正常获取到graylog数据
/usr/local/zabbix/bin/zabbix_get -s 10.0.9.8 -k graylog.status[throughput]
# -s graylog所在的服务器IP
#-k 键值
-
打开zabbix平台,创建模板-应用集,添加自定义监控项并配置触发器,触发器设置规则:每分钟检测一次,当检测5次获取到的值都等于0时,就发送灾难级的告警
image2019-7-4_9-38-52.png
网友评论