1.Nagios简介

1.cacti的区别

a) Cacti

1.Cacti比较着重于直观数据的监控,易于生成图形,用来监控网络流量、cpu使用率、硬盘使用率等可以说很在合适不过

2.通过SNMP监控数据

3.展示工具

4.用插件来增加模块做监控

b) nagios

1.比较注重于主机和服务的监控,并且有很强大的发送报警信息的功能

2.监控方式更多

3.配置灵活的监控工具

4.脚本和agent做监控

2.监控对象

a) 主机、主机组:服务器、虚拟机、网络设备

b) 服务/资源,服务组:http服务、mysql服务、CPU资源、硬盘、内存资源

c) 联系人,联系人组:管理员

d) 时段:时间范围

e) 命令:监控某一对象的模板

对不同的监控对象,使用不同的脚步

对相同的监控对象,也可能使用不同的脚步

3.主要功能

网络服务监控(SMTPPOP3HTTPNNTPICMPSNMPFTPSSH

 主机资源监控(CPU loaddisk usagesystem logs),也包括Windows主机(使用NSClient++ plugin

 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)

 可以通过配置Nagios远程执行插件远程执行脚本

 远程监控支持SSHSSL加通道方式进行监控

 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scriptsC++PerlrubyPythonPHPC#等)

 包含很多图形化数据PluginsNagiosgraphNagiosgrapherPNP4Nagios等)

 可并行服务检查

 能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查

 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知

 能够自定义事件处理机制重新激活出问题的服务或主机

 自动日志循环

 支持冗余监控

 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等

2.Nagios工作原理

Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的

 

  启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。

Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,nagios主目录下的/libexec放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx h 来查看其使用方法和功能。

Nagios可以识别4种状态返回信息,即 0(OK)表示状态正常/绿色、1(WARNING)表示出现警告/×××、2(CRITICAL)表示出现非常严重的错误/红色、3(UNKNOWN)表示未知错误/深×××Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供管理员及时发现故障


四种监控状态

正常 OK 绿色

警告 WARNING ×××

严重 CRITICAL 红色

未知错误 UNKOWN 深×××


 对于报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,Nagios 自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成

那么nzgios如何管理远端服务器对象的。Nagios 系统提供了一个插件NRPENagios 通过周期性的运行它来获得远端服务器的各种状态信息


Nagios 通过NRPE 来远端管理服务 

1. Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。

2. 通过SSLcheck_nrpe 连接远端机子上的NRPE daemon

3. NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)

4. 最后,NRPE 把检测的结果传给主机端的check_nrpecheck_nrpe 再把结果送到Nagios状态队列中。

5. Nagios 依次读取队列中的信息,再把结果显示出来。