监控的本质

服务器有很多种:web网页服务器、游戏服务器、数据库服务器、应用服务器、中央日志服务器等等等等。这些服务器就是公司在互联网上的命根子,要保证这些命根子的安全存活就是每一位运维工程师的基本职责。而Nagios就是一款监控软件,主要任务就是监控各个服务器的实时或者历史的情况。


服务器说白了就是一个高级的电脑,它的硬件设备不外乎就是CPU、内存、磁盘容量、网卡、鼠标键盘显示器等部分。而我们需要监控硬件也无非就是监控以上几项。

CPU:了解其使用百分比,通过百分比能了解CPU对所有任务的处理情况

内存:了解已用和可用内存数,进而了解系统内存开销

磁盘容量:对磁盘空间余量的掌握能了解磁盘内存是否还够用

网卡:网卡的吞吐率了解网络上行下行的情况,避免网络堵塞


上面说的是硬件部分,下面说说软件部分。


以网页服务器为例,一般来说一个网页服务器内部所安装的重要软件无外乎就是以下几种:Apache、Tomcat、Nginx。而这三位主要监控的对象就是“端口存活和可达状态“,进而推断HTTP服务是否正常。其实无论是硬件数据还是软件数据在linux上都有对应的命令可以显示,但是由于运维人员所要负责的服务器可能较多,一台一台的输命令比较无聊,而且linux反馈的是数字而不是图像那种更加直观的形式,况且当数值到达阈值的时候,监控软件可以采取应急措施并且通过邮件或者短信形式通知负责人,所以引入监控软件是很有必要的。


Nagios的工作原理

一般来说,企业内部的网络拓扑图应该是这个样子的。

wKiom1cMun_CZAqmAAGG_tpnOs0506.png

而nagios可能就安装在上面“应用服务器”中的某一台,由于这几个服务器在同一个网段,他们之间是可以互相通信的,所以nagios就可以采集到其他服务器的硬件软件数据,然后我们可以登陆nagios服务器,以网页的形式输出这些数据。


wKiom1cM4ZORzrnWAAEdWr-uC1Y855.png

nagios的工作基本原理就是上面的图,监控主机上安装了nagios软件,而nagios就通过check_nrpe模块以SSL协议与目标服务器的NRPE模块进行通信,目标服务器的NRPE模块收到监控指令后,启动check_disk等外部插件对目标机器进行数据采集,然后将采集结果返回到NRPE模块,再有NRPE模块呈递给监控主机的nagios core,而nagios将这些信息通过cgi解析,以web网页的形式呈现在屏幕上供工作人员观看。