最近因客户强硬要求使用nagios进行监控,使笔者不得不研究了一下nagios这个老牌监控。但国内都是一些老旧的博客,笔者对其进行了归类总结,希望对使用nagios开源方案的同学有一些帮助。
说到nagios 数据可视化,那么最先想到应该是监视数据的采集(了解nagios的同学应该都知道默认情况下nagios不保存任何数据)
根据网上的方案总体分为俩种采集方式,
通过配置nagios.cfg process_performance_data 选项,这个选项的作用就是,将nagios 将监视脚本返回的数据写到日志里,这个参数还有一套相应的辅助参数 比如 日志文件的名称定义,数据写入日志的间隔,数据写入日志后执行的命令等,一般做法都是nagios 将数据写入日志后会将日志挪动到一个文件夹,然后遍历这个文件夹解析日志,发往数据库中。这中做法的方案有pnp4nagios,graphios ,nagflux 等
通过配置nagios 通过配置broker_module 选项,这个选项作用是加载nagios的事件代理模块,也就是nagios的数据流会经这里加载的模块处理,这样就可以在这个代理模块做一些想做的事情,比如发往数据库,比如ndoutils的 nod_mod 就是这样作用,它将数据发送给 ndo2db 服务 ,由ndo2db 将数据存储到数据库。
我是选择的第一种方案,理由第一种方案比较简单直观吧,不想去碰c语言。
接下来那就是是数据存储的选择, 根据监控数据的特性,它是有时效的性的,这里我推荐选择一些时序数据库,比如rrdtools ,influxdb ,graphite的whisper 等,也可以选择关系型数据库,nosql ,es等,我还是比较推荐influxdb最新版本,因为它是时序数据库当中为数不多支持sql的,学习起来比较容易,大家可以根据喜好进行选择。
最后展示问题
展示方面我并没有给自己太多选择,因为自己深深被grafana的仪表板所吸引,它支持很多数据源,也支持各种各样图表,完全能满足我的需要。当然,如果你选择rrdtools 这种数据库可以,选择 cacti,pnp4nagios 这种展示方案。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/116611.html