Nagios监控服务

理论:

百度百科
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
【1】定义:
Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

【2】Nagios 可以监控的功能有:
1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
8、自动的日志滚动功能;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
11、可以通过手机查看系统监控信息;
12、可指定自定义的事件处理控制器;

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

【4】Nagios监控架构
Nagios结构主要由Nagios core、Nagios-plugins和一些可选的Addon(NRPE,NSCA,NDOUtils等等)组成,实际生产中,Nagios core提供的监控功能远不能满足需求,要想搭建一个完善的IT监控管理系统,需要在Nagios监控端与被监控端安装相应功能的Addon,下载地址http://www.nagios.org/,也可根据实际需求编写所需的插件。

一般情况下,Nagios监控端部署于独立的一台服务器(Linux或Unix操作系统),包括至少Nagios core,Nagios Plugins以及可选的NRPE,NSCA等Addon。被监控端:Linux系统下,需安装Nagios plugins与可选NRPE、NSCA等Addon;windows下,安装NSClient++即可。

常见插件介绍
几个常用的Addon如下:
1.NRPE:允许在被监控的远程Linux/UNIX主机上执行插件以实现对主机本地资源或属性的监控;
2.NSCA:该插件将远程Linux/Unix主机的被动检查结果发送到在监控端运行的Nagios守护程序;
3.NSClient++:它是Windows系统的监视代理程序/守护程序,它是NSClient和NRPE_NT的替代品;
4.NDOUtils:实现将Nagios中的所有状态信息存储在MySQL数据库中。

【5】监控过程
启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。
Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。

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

【7】NRPE功能和意义
基本的Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。

NRPE工作方式
如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还必须安装NRPE核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,必须要安装Nagios-plugins插件程序和NRPE核心扩展插件程序。唯一不同的, Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了!

【8】Nagios 通过NRPE 监控远端管理服务过程
1、Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。
2、通过SSL,check_nrpe 连接远端机子上的NRPE的daemon
3、NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,…etc)
4、最后,NRPE 把检测的结果传给主机端的check_nrpe,check_nrpe 再把结果送到Nagios状态队列中。
5、Nagios 依次读取队列中的信息,再把结果显示出来。
在这里插入图片描述
【9】Nagios 目录与相关配置文件说明
Nagios 安装完成后,/usr/local/nagios/目录下会生成 nagios 相关目录及配置文件,默认的的配置文件在/usr/local/nagios/etc 目录下。关于详细的描述,见下表:
Nagios 相关目录的名称及用途

目录名称 作用
bin Nagios 可执行程序所在目录
etc Nagios 配置文件目录
sbin Nagios cgi 文件所在目录, 也就是执行外部 命令所需要文件所在的目录
share Nagios 网页存放路径
libexec Nagios 外部插件存放目录
var Nagios 日志文件、Lock 等文件所在的目录
var/archives Nagios 日志自动归档目录
var/rw 用来存放外部命令文件的目录

配置文件的作用概述

配置文件 说明
cgi.cfg 全局配置文件。控制 CGI 访问的配置文件
nagios.cfg Nagios主配置文件。保存其他模块配置文件路径,日志文件,PID文件等文件路径。
resource.cfg 变量定义文件,又称为资源文件,在此文件中定义变量,以便由其他配置文件引用,如$ U S E R 1 USER1 USER1
objects objects 是一个目录,在此目录下有很多配置文件模板,用于定义 Nagios 对象
objects/commands.cfg 命令定义配置文件,其中定义的命令可以被其他配置文件引用
objects/contacts.cfg 定义联系人和联系人组的配置文件
objects/localhost.cfg 定义监控本地主机的配置文件
objects/printer.cfg 定义监控打印机的一个配置文件模板,默认没有启用此文件
objects/switch.cfg 监控路由器的一个配置文件模板,默认没有启用此文件
objects/templates.cfg 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
objects/timeperiods.cfg 定义 Nagios 监控时间段的配置文件
objects/windows.cfg 监控 Windows 主机的一个配置文件模板,默认没有启用此文件
备注: Nagios 在配置方面非常灵活,默认的配置文件并不是必需的。可以使用这些默认的配置文件,也可以创建自己的配置文件,然后在主配置文件 nagios.cfg 中引用即可。

将来的你是否会感谢昨日灯下刻苦的那个人~
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_50573146/article/details/115007845