zabbix监控mongo数据库,数据空白段问题解决
2017-11-08 16:39
375 查看
问题描述:
公司使用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
问题解决,方法比较笨,如果有更好的解决方式,烦请告知,感激不尽
公司使用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
问题解决,方法比较笨,如果有更好的解决方式,烦请告知,感激不尽
相关文章推荐
- 索引是从数据库中获取数据的最高效方式之一。95%的数据库性能问题都可以采用索引技术得到解决。
- 数据库---并发控制及其带来的问题丢失修改,读脏数据,不可重复读及解决(程序员级)
- 怎样解决thephile中的数据库由于排序造成的问题:对 text 数据类型不支持代码页转换。从: 1252 到: 936
- 关于数据库自增ID数据写入问题的解决
- ASP.NET备份数据与还原数据,解决数据库正在使用的问题
- 解决JDBC操作数据库日期类型数据时无法精确到秒的问题
- asp.net关于TextBox.Text的值为空时,将string数据插入到数据库中int数据的问题的解决方法
- Java调用BCP导入数据到数据库解决标识列ID问题
- PHP 从数据库Mysql中读取数据生成excel(解决乱码问题,解决中文变问号问题)
- 代替数据库的自增主键的解决方案,解决了批量导数据ID出错的问题
- 数据库中导出CSV文件与EXCEL文件数据对比可能遇到的问题与解决方法
- asp.net 导入CSV 文件内容 到 SQL Server 数据库 解决CSV内容数据重复添加问题
- Solr1.4.0源码分析(一) 解决DataImportHandler从数据库导入大量数据而内存溢出的问题
- web 项目从数据库读取数据时出现乱码的问题的解决
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解决办法
- 解决:hibernate查询过多时与数据库连接断开或无法再查询到数据问题。
- 解决asp.net 用 mySql 数据库 添加数据时中文为乱码问题
- PHP 从数据库Mysql中读取数据生成excel(解决乱码问题,解决中文变问号问题)
- 解决数据库录入中文数据乱码问题
- 已知Oracle数据库有GD和ZS两个数据库,GD数据库v_s表有数据写入时,从v_s表中提取最新数据到ZS数据库的D_E表中。请问用什么办法解决这一问题?如果又碰到不能互访的问题时,又用什么办法解决?