简介

无监控,不运维。

没有了监控,运维靠什么排查问题?靠什么调优?靠什么规划资源?因此,监控系统对于做好运维是必不可少的。

目前,比较流行的开源监控有Zabbix、Nagios、Pormetheus、Open-Falcon等。

cb71fe5cdcc30f611be94e190d5fef5f.png

Nagios

Nagios是一款开源的服务器和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。

08d7e246ad00d27a301662c963f919dc.png

监控过程

nagios 通过服务端周期性的运行命令,检查监控设备的状态,通过命令的返回值来判断状态是否正常。如果周期内,有多少次不正常就发送告警。注重的是状态监控。

自定义命令

命令可以自定义,可以自己写脚本完成,只要输出返回值,nagios就可以进行状态判断。这就是nagios的灵活的地方。

远程命令

但是,nagios定义的命令那个 能在本地执行,怎么监控远程的服务器?或者说是怎么在远程服务器上执行命令命令,并返回监控项目的状态呢?

这时候就要用到nrpe,被监控客户端需要安装nrpe,并启用nrpe服务,默认会启用5666端口;服务端也是需要安装nrpe,但是需要用到的命令那个是check_nrpe,这个命令可以调用远程已经定义好的命令。

因此,只要服务端周期性,调用check_nrpe命令执行远程的命令并返回状态,就可以判断远程机器的状态。

性能数据

同时nagios也可以同步命令那个返回对应的性能数据,可以指定格式存储到对应的文本中。可以通过分析文本里面的信息获取历史数据。

命令输出状态用于判断服务状态,同时命令的输出会被当成信息展示出来,通过 "|"分割展示信息和性能数据。

例如:

OK - CPU Load is OK | load1=2;16;32   load5=0.1;14;32   load15=0.2;12;32  

配置

nagios配置都是文件,需要在终端下进行配置,比较不方便。也有可以存到数据库的解决方案可以选择。

nagios配置比较不方便,修改命令的时候,需要下发命令脚本,修改配置文件。

解决方案:通过命令参数来下发命令和参数,通过参数自动下载脚本。当然,这样子存在一定的风险,就是参数如果是恶意的命令,就可能出现安全问题。需要对权限进行控制。

性能数据展示

nagios自带的web自展示状态和配置信息,没有针对性能数进行展示,需要搭建另外的服务进行图表展示。例如:PNP。

官方文档里面也有一套 nagios + nagflux + influxdb + grafana的方案。可以展示比较好看的图表

c13bcc1e34943da332bf435d9291c7d1.png

总结

nagios是比较灵活,但是灵活以为着可以有很多选择,很多事情都要自己来定义。

你觉得Nagios怎么样呢?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐