zabbix监控mongo数据库,数据空白段问题解决

问题描述:
公司使用zabbix对mongo数据库进行基础监控,出于节省资源的角度考虑把监控数据采集和zabbix server获取数据分开,数据采集由计划任务管理,数据采集包括以下部分:
*/1 * * * * /usr/local/zabbix/scripts/refresh_file.sh mongo_status
*/1 * * * * sleep 30; /usr/local/zabbix/scripts/refresh_file.sh mongo_status
*/1 * * * * /usr/local/zabbix/scripts/refresh_file.sh mongostat
*/1 * * * * sleep 30; /usr/local/zabbix/scripts/refresh_file.sh mongostat
*/1 * * * * /usr/local/zabbix/scripts/refresh_file.sh db_stats
*/1 * * * * sleep 30; /usr/local/zabbix/scripts/refresh_file.sh db_stats
refresh_file.sh为数据采集脚本,对于mongostat取得的数据,显示数据类型不支持,进而造成数据空白区,其他数据获取没问题
问题分析:
对比mongostat和其他获取方式发现是由于其获取时间较长,而在获取过程中数据存放文件会变为空,从而导致zabbix获取到数据为空,报错产生。
问题解决:
建立两个文件,一个用来存放计划任务调用mongostat获取到的数据,一个用来给zabbix平台提供数据,后者文件内容由前者有条件的覆盖产生,操作如下:
stat="/usr/local/zabbix/scripts/mongostat.txt"
[ ! -s /usr/local/zabbix/scripts/mongostat1.txt ]||cat /usr/local/zabbix/scripts/mongostat1.txt > $stat
问题解决,方法比较笨,如果有更好的解决方式,烦请告知,感激不尽

你可能感兴趣的:(Linux,zabbix)