Nagios基础和监控原理

1 Nagios简介

    Nagios是一款开源的IT监控软件套件,被开发在Linux下使用,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

 Nagios产品主要有Nagios XI、Nagios Log Server、Nagios Network Analyzer、Nagios Fusion。Nagios项目主要包括Nagios Core核心部分、Nagios Core Plugins插件、Nagios Core Addons拓展插件、Nagios Core Frontends前台应用四个部分。

1.1 Nagios功能介绍

1. 监控网络服务(SMTP、POP3、HTTP、FTP、PING等);
2. 监控本机及远程主机资源(processor、CPU load、disk usage等),也包括Windows机    (使用NSClient++plugin);   
  1. 允许用户编写plugin来监控特定的服务,方便扩展用户服务的检测方法,支持多种开发语言(Shell、Perl、Python、PHP等);
  2. 能够定义网络主机的层次,允许逐级检查,可从父主机开始向下检查;
  3. 当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
  4. 可以通过配置Nagios远程执行插件远程执行脚本;
  5. 远程监控支持SSH或SSL通道方式;
  6. 支持并实现对主机的冗余监控;
  7. 可用WEB界面查看当前的网络状态、通知和故障历史、日志文件等

2 Nagios监控原理

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

2.1Nagios监控架构

            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++即可。

2.2 常见插件介绍

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

2.3四种监控返回结果

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

2.4监控过程

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

2.5Nagios 通过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 依次读取队列中的信息,再把结果显示出来。

原文地址:http://blog.51cto.com/437549/2316512

时间: 2024-08-30 17:32:40

Nagios基础和监控原理的相关文章

Nagios利用NSClient++监控Windows主机(4)

在Nagios的libexec下有check_nt这个插件,它就是用来检查windows机器的服务的.其功能类似于check_nrpe.不过还需要搭配另外一个软件NSClient++,它则类似于NRPE.我们需要下载NSClient合适的版本,然后安装在被监控的windows主机上. Overview of NRPE NSClient++的原理如下图: 可以看到NSClient与nrpe最大的区别就是: NRPE: 被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的.当监控主

监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

监控利器Nagios之一:监控本地NFS和外部HTTP.MySQL服务 Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios的特点: 1.监控服务http.MySQL.nfs.tcp.ping等 2.监控主机资源cpu.负载.I/O.虚拟及内存磁盘利用率等 3.支持邮件微信等报警通信. 4.可选we

Nagios利用NRPE监控Linux主机(3)

一.利用NRPE监控远程Linux的"本地信息" 上面已经对远程Linux 主机是否存活做了监控,而判断远程机器是否存活,我们可以使用ping 工具对其监测.还有一些远程主机服务,例如ftp.ssh.http,都是对外开放的服务,即使不用Nagios,我们也可以试的出来,随便找一台机器看能不能访问这些服务就行了.但是对于像磁盘容量,cpu负载这样的"本地信息",Nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力.毕竟没得到被控主机的适当权限是不可能

关于Nagios通过NRPE监控客户端的安装与配置

环境介绍>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>服务端(监控端):192.168.100.2     --nagios服务+check_nrpe客户端(被监控端):192.168.100.3    --nrpe守护进程+检测插件 Nagios通过NRPE来远端管理服务的过程1. Nag

nagios下给监控项添加监控数据,导致无法画图

前两天给nagios下某个监控项添加监控数据后,发现监控数据是有了,但是后来才发现,图形数据没有了,一下子还不知道是哪的问题 以下是我排查问题的步骤: 登录nagios服务器上,查看/home/data/nagios/var/nagios.log是否有报错,我这边没有查到相关报错信息 然后再到/home/data/nagios/share/perfdata/查看相关的rrd文件有没有更新 查到这步我发现我下边的xml文件实时更新,但是rrd文件没有更新,很奇怪不知道是什么原因 后来查到rrdto

Nagios中NSClient++监控Windows主机

Nagios中自身是不提供相应的监控,它实现监控是依赖于SNMP协议或者是相关的插件来完成相应的监控的,而平时为了部署快速方便,在Linux主机上一般多用NRPE扩展,而在Windows的主机上使用比较多的是NSClient++扩展,两者的区别是NRPE还是通过插件完成监控,而NSClient++没有插件,是由Nagios监控主机发送监控请求给NSClient++来完成监控任务的,使用NSClient++可以满足日常的Windows主机监控,但是缺点是不够灵活.这个具体可以参看:http://j

nagios+ganglia分布式监控

nagios+ganglia监控批量主机 之前我们学习用nagios+cacti实现网络监控报警,如果是传统的运维工作,有这个工具就足够强大了.但是对于分布式系统的开发+运维人员(DevOps?),更关心的是掌握分布式系统的性能和可用性,根据数据做出性能调整.升级.扩容等的决策,从而保证基础设施服务能够满足不断增长的业务需求.与Cacti.Nagios.Zabbix等工具相比,Ganglia更关注整个集群的性能和可用性.可以用于集群的性能监控.分析和优化. Ganglia就是这样一种工具.Gan

实战Nagios NSCA方式监控Linux系统资源使用情况 -- Nagios配置篇 -- 被监控端

Nagios要求被监控端按照约定格式定时将数据发送到Nagios端.监控包括节点和服务2种. 节点监控约定数据格式如下: [<timestamp>] PROCESS_HOST_CHECK_RESULT;<host_name>;<host_status>;<plugin_output> 格式很容易理解,数据提交时间戳,被监控节点名称,节点状态(UP/DOWN/UNREARCHABLE),插件自定义的额外数据.状态具体每个字段的解释如下: 1. timestam

Nagios通过check_http监控一台web应用服务器上多个tomcat服务

如何在nagios监控tomcat,是一个比较简单又复杂的事情,简单是因为如果只监控web应用服务器的一个tomcat服务是否正常运行,那么比较简单:如果要监控tomcat的其他比如连接数比如jvm内存使用率等就比较复杂,google没有适合的监控脚本:如果要监控web应用上面的多个tomcat服务器,而且很多tomcat服务都是跳转式的,那就需要多做很多事情. 一般通常都使用tcp tomcat端口的方式,不过这有一个bug就是tomcat假死的情况下,tcp 端口是OK的,但是tomcat里