Nagios检测工具介绍

一、Nagios简介

Nagios是一款开源的免费网络监视工具,能有效监控WindowsLinuxUnix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

二、Nagios的主要功能

1) 网络服务监控(SMTPPOP3HTTPNNTPICMPSNMPFTPSSH

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

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

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

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

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

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

8) 可并行服务检查

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

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

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

12) 自动日志循环

13) 支持冗余监控

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

三、Nagios工作原理

Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。Nagios 安装是指基本平台,也就是Nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。

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

1. 如何远端管理服务器对象

Nagios 系统提供了一个插件NRPENagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图所示:

 

Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPENSCANSClient++NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,NagiosNagios-plugins是服务器端工作所必须的组件。而四个ADDON中,NRPE用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控;NSCA用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到)NSClient++是用来监控Windows主机时安装在Windows主机上的组件;而NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。

(1) nagios通过nsca进行被动监控。被动监测:就是指由被监测的服务器主动上传数据到nagios监控系统中。这种监测方式提高了实时性(出现问题的时候,被监测的服务器可以及时上传数据通知nagios,从而使管理员可以尽快作出处理,而不用像主动监测中一样,非要等到下一个监测周期才能获知被监测服务器的状态)。NSCA就是可以实现Nagios被动监测的一个程序。目前所知道的,只能通过nsca插件对linux/unix服务器进行被动监控。对于windows服务器暂时没发现可用的插件。

(2) nagios通过nrpe插件和snmp协议进行主动监控。简单理解决就是nagios按照检测周期主动的获取远程主机的数据。这样一来实时性就要差一些了。nagios通过nrpe插件和snmp协议实现了对linux/unix服务器进行监控,同时通过snmp协议实现了对windows服务器、交换机、打印机等的监控。另外,nagios通过NSClient++客户端也可以对windows进行监控。

(3) nagios目前完全依赖于对配置文件的读写进行监控数据的展示与配置。当然写的操作nagios是不提供的,这个需要手工通过脚本等进行配置。但是NDOMOD模块的出现解决了nagios无法将数据写入到数据库的问题。提供NDOMOD模块的插件为NDOUtilsNDOMOD模块需要加载到nagios的配置中,NDOUtils插件通过运行NOD2DB进程将nagios的配置文件(.cfg)和status.dat进行分析,并将分析的结果写到mysql数据库中,但是目前来看,这些数据是相当于放入了一个回收站备份一样,并没有实际的被大家用到。但是这个数据对于二次开发来说也算是至关重要的。

2. 状态返回信息类型

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

 

 

四、Nagios架构

 

简要说明:

(1) nagios deamon进程对nagios.cfg配置文件进行读取,nagios.cfg配置文件中放存着一系列配置文件的存放路径。具体如上图。

(2) nagios deamon进程通过对nagios.cfg配置文件中所引用到的信息进行操作,在服务端执行plugin与被监控端的agent进行通讯获取监控结果和数据。

(3) nagios deamon进程将监控结果写入status.dat文件中,status.dat文件相当于一个log或一个db

(4) cgi程序对status.dat文件中的监控结果进行分析并与读到.cfg配置中的数据进行匹配合并,最终显示在cgi处理结果中。

五、Nagios配置

Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍。

1. 默认配置文件介绍

Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下。

(1) cgi.cfg 控制CGI访问的配置文件

(2) nagios.cfg Nagios 主配置文件

(3) resource.cfg 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$

(4) objects objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象

(5) objects/commands.cfg 命令定义配置文件,其中定义的命令可以被其他配置文件引用

(6) objects/contacts.cfg 定义联系人和联系人组的配置文件

(7) objects/localhost.cfg 定义监控本地主机的配置文件

(8) objects/printer.cfg 定义监控打印机的一个配置文件模板,默认没有启用此文件

(9) objects/switch.cfg 定义监控路由器的一个配置文件模板,默认没有启用此文件

(10) objects/templates.cfg 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用

(11) objects/timeperiods.cfg 定义Nagios 监控时间段的配置文件

(12) objects/windows.cfg 监控Windows 主机的一个配置文件模板,默认没有启用此文件

2. 配置文件之间的关系

nagios的配置过程中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的。成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系:

(1) 定义监控哪些主机、主机组、服务和服务组; 

(2) 定义这个监控要用什么命令实现; 

(3) 定义监控的时间段; 

(4) 定义主机或服务出现问题时要通知的联系人和联系人组。

3. 配置Nagios

为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:

(1) 创建hosts.cfg文件来定义主机和主机组

(2) 创建services.cfg文件来定义服务

(3) 用默认的contacts.cfg文件来定义联系人和联系人组

(4) 用默认的commands.cfg文件来定义命令

(5) 用默认的timeperiods.cfg来定义监控时间段

(6) 用默认的templates.cfg文件作为资源引用文件

六、Nagios插件

1. Nagios-Plugins插件:

nagios-pluginsnagios官方提供的一套插件程序,nagios监控主机的功能其实都是通过执行插件程序来实现的。

nagios本身并没有监控的功能,所有的监控是由插件完成的,插件将监控的结果返回给nagiosnagios分析这些结果以web的方式展现给我们,同时提供相应的报警功能(这个报警的功能也是由插件完成的)。所有的这些插件是一些实现特定功能的可执行程序,默认安装的路径是/usr/local/nagios/libexec

2. NRPE

nagios只能监测自己所在的主机的本地信息,而对其他的机器无能为力。使用NRPE监控LINUX上的本地信息。

(1) NRPE总共由两部分组成:

- check_nrpe 插件,位于在监控主机上

- NRPE daemon,运行在远程的linux主机上(通常就是被监控机)

(2) Nagios 通过NRPE 来远端管理服务:

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

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

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

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

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

注意:NRPE daemon需要nagios插件安装在远程的linux主机上,否则,daemon不能做任何的监控。

(3) 通过NRPE的检测分为两种:

a. 直接检测:检测的对象是运行NRPE的那台linux主机的本地资源,被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的.当监控主机将监控请求发给nrpe,nrpe调用插件来完成监控.

b. 间接检测:当运行nagios的监控主机无法访问到某台被监控机,但是运行NRPE的机器可以访问到时,NRPE就可以充当一个代理,将监控请求发送到被监控机(必须要说明的是,通常被监控机与监控机在同一网络内,所以这样的情况很少)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 有很多工具可以用来检测 Kubernetes(k8s)中的 Pod,以下是其中几个比较常用的工具: 1. kubelet:Kubernetes 中的组件,负责管理 Pod 的生命周期,可以通过它来检测 Pod 的状态。 2. kubectl:Kubernetes CLI 工具,可以使用它来获取 Pod 的状态信息。 3. Prometheus:开源的监控系统,可以通过它来监控 Kubernetes 集群中的各种组件,包括 Pod。 4. Grafana:可视化监控系统,可以与 Prometheus 集成,以便更好地展示 Pod 的状态信息。 5. Nagios:常用的监控工具,可以通过插件来监控 Kubernetes 集群中的 Pod。 6. Zabbix:另一个常用的监控工具,也可以通过插件来监控 Kubernetes 集群中的 Pod。 这些工具可以根据具体的需求和场景选择使用。 ### 回答2: K8s Pod检测工具是一种用于监测和诊断Kubernetes中Pod状态和运行情况的工具。它可以帮助开发人员和运维人员快速定位问题并进行故障排除。 Kubernetes Pod是K8s中最小的可部署单元,Pod检测工具通常会通过与集群中Pod的API交互来获取Pod的状态和运行指标。它可以检测Pod是否正常运行,是否已经部署成功,以及是否存在错误或故障。 Pod检测工具通常会提供以下功能和特性: 1. 健康检查:Pod检测工具可以定期发送HTTP请求或TCP连接以检查Pod的实时健康状态。这可以帮助我们确定Pod是否已经成功部署,并且正在正常运行。 2. 故障诊断:当Pod发生故障或错误时,Pod检测工具可以捕捉到相关的错误日志和异常,以帮助我们快速诊断和解决问题。它可以提供详细的错误信息和告警,以便我们及时采取措施。 3. 自动重启:当Pod检测工具检测到Pod运行异常时,它可以自动触发Pod的重启操作,以尝试将Pod恢复到正常状态。这可以增加系统的可用性和稳定性。 4. 监控报告:Pod检测工具可以生成监控报告,汇总和展示集群中所有Pod的状态和运行指标。这可以帮助我们全面了解集群的整体健康状况,并进行性能优化和容量规划。 总之,K8s Pod检测工具是一种非常有用的工具,它可以帮助我们更好地管理和监控Kubernetes集群中的Pod,并及时发现和解决问题,保证应用的稳定性和可靠性。 ### 回答3: Kubernetes(简称k8s)是一个用于容器编排和管理的开源平台,可以帮助用户更好地部署、扩展和管理容器化应用程序。在k8s中,Pod是k8s的最小管理单元,一个Pod可以包含一个或多个容器,并共享相同的网络和存储。 为了确保Pod的健康和稳定运行,k8s提供了一些检测工具来监控Pod的状态和健康状况。其中包括以下几个工具: 1. Liveness Probe(活跃探测器):用于检测Pod中容器的健康状况。Liveness Probe会定期向容器发送检测请求,如果容器无响应或返回状态码表示容器不健康,k8s会认为该容器出现问题,并尝试重新启动Pod以恢复容器的健康状态。 2. Readiness Probe(就绪探测器):用于检测Pod是否已经准备好接收流量。Readiness Probe会定期向容器发送检测请求,只有当容器返回成功状态码时,k8s才会将该Pod加入服务负载均衡,使其能够接收请求。这样可以确保只有健康的容器才会被访问。 3. Startup Probe(启动探测器):用于检测Pod中容器的启动过程。Startup Probe会在容器启动后立即开始工作,并定期向容器发送检测请求。只有当容器返回成功状态码时,k8s才会认为容器已成功启动,并将该Pod视为可用。 通过使用这些检测工具,k8s可以及时发现并处理Pod中容器的问题,确保应用程序的稳定性和可用性。同时,用户也可以根据自己的需求,自定义配置这些探测器的参数,以满足特定的应用场景和需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值