Nagios原理及工作机制
1. Nagios原理介绍
1)原理简介
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。启动 Nagios后,它会周期性的自动调用插件去检测服务器状态,同时 Nagios 会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过 web 显示出来。
2)状态信息
- Nagios可以识别4种状态返回信息。
- 0(OK)表示状态正常/绿色
- 1(WARNING)表示出现警告/黄色
- 2(CRITICAL)表示出现非常严重的错误/红色
- 3(UNKNOWN)表示未知错误/深黄色
3)监控对象
- 本机的运行状态
- 本机的服务的运行状态
- 远程主机,可以是linuc/unix主机也可以是windows主机
- 远程主机上的服务
- 监控网络服务(SMTP、POP3、HTTP、PING等)
- 监控主机资源(处理器负荷、磁盘利用率等)
4)功能特性
- 监控网络服务(SMTP、POP3、HTTP、FTP、PING 等)
- 监控本机及远程主机资源(CPU 负荷、磁盘利用率、进程 等)
- 允许用户编写自己的插件来监控特定的服务,方便地扩展自己服务的检测方法,支持多种开发语言(Shell、Perl、Python、PHP 等)
- 具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态。
- 当服务或主机问题产生与解决时将告警发送给联系人(通过 EMail、短信、用户定义方式)
- 可以支持并实现对主机的冗余监控。
- 可用 WEB 界面用于查看当前的网络状态、通知和故障历史、日志文件等。
2. Nagios工作机制
1)监控方式
- 被动监控
被动监控是指由被监测的服务器主动上传数据到nagios监控系统中。这种监测方式提高了实时性(出现问题的时候,被监测的服务器可以及时上传数据通知nagios,从而使管理员可以尽快作出处理,而不用像主动监测中一样,非要等到下一个监测周期才能获知被监测服务器的状态)。NSCA就是可以实现Nagios被动监测的一个程序。 - 主动监控
nagios监控端按照检测周期主动地获取远程被监控主机的数据。nagios通过nrpe插件和snmp协议实现了对linux/unix服务器进行监控,同时通过snmp协议实现了对windows服务器、交换机、打印机等的监控。另外,nagios通过NSClient++客户端也可以对windows进行监控。
2)Nagios远端监控
Nagios通过NRPE外部构件来监控远程主机,在监控端需要安装NRPE插件,远程被监控端需要安装NRPE插件和Nagios插件。
- nagios会运行check_nrpe这个插件,告诉它要检查什么。
- check_nrpe插件会连接到远程被监控主机的NRPE daemon,所用的方式是SSL。
- NRPE daemon运行本地的各种插件去检测本地的主机状态和服务状态
- NRPE daemon把检测的结果传给主机端的 check_nrpe,check_nrpe 再把结果送到 Nagios状态队列中。
- Nagios 依次读取队列中的信息,再把信息显示到web页面上。
3)检测类型
- 直接检测
检测的对象是运行 NRPE 的那台 Linux 主机的本地资源。 - 间接检测
当运行 Nagios 的监控主机无法访问到某台被监控主机,但是运行 NRPE 的机器可以访问得到的时候,运行 NRPE 的主机就充当一个中间代理,将监控请求发送到被监控对象上。