nagios/passive_check



layout: post

title: “nagios/passive_check”

术语

  • 监控机 (MS:Monitor Server)
  • 被监控机(MC:Monitor Client)

注意:(本文是ubuntu14.04为基础环境,创建被动模式的配置,以下分别用术语中定义的简称 MS,MC)

被动模式工作原理:

在MC上面,使用nagios-plugins提供的插件,得出监数据,将数据发送到MS端,MS上面运行一个daemon用来接收这些数据(常见的是nsca,或 nrdp),将接受到的数据转换成预定义的格式,发送给发给nagios的“外部命令文件”(ubuntu14.04 nagios 默认配置是 “/var/lib/nagios3/rw/nagios.cmd”在nagios.cfg中定义的)该文件是一个管道文件,也是nagios主程序的一个接口(用来接收监控数据),nagios主程序将会对数据进行处理(前台展示,警报)。

优缺点

优点:相比与主动模式中服务器主动去被监控机上轮询获取监控数据的方式,被动模式则是在被监控机上面通过插件获取监控数据,然后将数据发往监控机,最后监控机对监控数据处理。这样做的一个很大的优势就是将除了处理数据的其他工作都放在了被监控机上面(包括了数据的传输),这样就避免了被监控机数量大时,一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键。

缺点:当监控的主机规模进一步扩大,会被"外部命令文件"I/O局限所拖累

nagios 配置

  • 开启被动监控

/etc/nagios3/nagios.cfg

check_external_commands = 1 (enable  commands  file)
command_check_interval = -1 (check  the  external  command file as often as possible )
  • 定被模板

添加模板,修改配置文件 template.cfg,添加如下内容:

define service{
        name                         passive_service
        use                          generic-service
        max_check_attempts           1
        active_checks_enabled        0 #(关闭主动检测)
        passive_checks_enabled       1 #(开启被动检测)
    normal_check_interval        5
        retry_check_interval         1
        check_freshness              1     # 开启强制刷新
        notifications_enabled        1
        notification_interval        5
        notification_period          24x7
        contact_groups               admins
        register                     0 #      (必须)
           }
  • 定义被动监控指令

/etc/nagios3/commands.cfg

define command {
    command_name check_dummy
    command_line /usr/lib/nagios/plugins/check_dummy $ARG1$ $ARG2$
}

check_dummy指令实际上不检查任何东西,指定两个参数,一个是状态,一个是输出,始终返回这两个参数。

# /usr/lib/nagios/plugins/check_dummy 0 successful
OK: successful
# /usr/lib/nagios/plugins/check_dummy 1 failed
WARNING: failed
# /usr/lib/nagios/plugins/check_dummy 2 failed
CRITICAL: failed
# /usr/lib/nagios/plugins/check_dummy 3 failed
UNKNOWN: failed
  • 定义要被动监控的主机
define service {
        use                             passive_service
        host_name                       localhost
        service_description             check_disk_passive
        freshness_threshold             86400 # 主服务端强制刷新的时间(s)
    check_command check_dummy!1!"Check failed No return data for 24 hours"
}

外部应用程序如何提交主机检查结果

外部应用程序可以通过编写一个PROCESS_HOST_CHECK_RESULT外部命令外部命令文件提交主机检查结果给Nagios 。命令的格式如下:

[

 ] PROCESS_HOST_CHECK_RESULT;

    ; 

     ; 

      timestamp: unix时间戳 host_name: 监控的主机地址 host_status: 主机的状态( 0 = OK,1 = WARNING,2 =CRITICAL,3 = UNKNOWN) plugin_output: 主机检查的文本输出 如: # echo "[`date +%s`] PROCESS_HOST_CHECK_RESULT;nagios-server;0;ping is ok" >> /var/lib/nagios3/rw/nagios.cmd [ 

       ] PROCESS_SERVICE_CHECK_RESULT; 

        ; 

         ; 

          ; 

           timestamp: unix时间戳 host_name: 监控的主机地址 svc_description:服务的名称(与nagios服务端配置定义的必须一致) return_code: 服务的状态( 0 = OK,1 = WARNING,2 =CRITICAL,3 = UNKNOWN) plugin_output: 主机检查的文本输出 如: # echo "[`date +%s`] PROCESS_SERVICE_CHECK_RESULT;10.2.0.145;check_ssh_passive;0;test is ok " >> /var/lib/nagios3/rw/nagios.cmd

参考

时间: 2024-10-17 15:21:03

nagios/passive_check的相关文章

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

搭建基于Nagios的监控系统——之监控远程Linux服务器

上一篇介绍了如何安装Nagios Core,这一篇跟大家分享一下如何将一台远程的Linux服务器加入纳入监控范围. 第一部分:在远程Linux上安装Nagios Plugins和NRPE   第一步:下载Nagios Plugins和NREP扩展的安装程序   [plain] view plain copy cd Downloads wget http://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz 访问 http://www.na

nagios监控windows配置

1.下载并安装windows插件 http://sourceforge.net/projects/nscplus/NSCP-0.4.1.73-x64.msi2.windows端配置 nsclient.ini文件    [/modules]    ;CheckWMI = 1   #注释掉该行    [/settings/default]    allowed hosts = *    ;password =     port = 12489   #该行为手工添加3.服务器端配置commands.c

开源监控系统中 Zabbix 和 Nagios 哪个更好?

监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k):Nagios进行二次开发超大规模(服务器>=10k):开发适应自己平台的监控软件吧另推荐个牛逼的东西:http://prometheus.io 作者:好撑链接:https://www.zhihu.com/question/19973178/answer/131911060来源:知乎著作权归作者所有.

nagios客户端安装与配置windows篇

一.被监控的windows xp客户端的配置 1.安装NSClient++并安装下载地址: http://sourceforge.net/projects/nscplusNSClient++-0.3.8-Win32.msi  NSClient++-0.3.8-x64.msi 2.安装NSClient++双击安装 -> next -> 同意 -> next  -> next -> next -> 设置允许IP,设置密码(这里密码一般可以不设置),Modules to lo

nagios监控mongodb

nagios本身不提供监控mongodb的服务,需要安装插件 已经有大神写好的插件nagios_plugin-mongodb 地址https://github.com/mzupan/nagios-plugin-mongodb 记录下如何使用 首先在监控机上切换到脚本所在目录 cd /usr/local/nagios/libexec git clone git://github.com/mzupan/nagios-plugin-mongodb.git cd nagios-plugin-mongod

Nagios利用NSClient++监控Windows主机

一.简介 1.获取更多的NSClient原理,请参考NSClient++官方站点 NSClient++官网:http://www.nsclient.org/ 2.NSClient++与NRPE NSClient++的工作原理 NRPE的工作原理 Nagios对Windows主机的监控主要有三种方法 第一种是NSclient++ 第二种是NRPE 第三种是SNMP(不是很常用) NSclient++与nrpe最大的区别就是: 1.被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行

Nagios监控Windows的网卡流量

Nagios监控Windows的网卡流量 使用/usr/local/nagios/libexec/中的check_traffic.sh,不但可以监控Linux的网卡流量,也可以监控Windows服务器的流量. 1 Check_traffic.sh用法用法 [[email protected] libexec]#/usr/local/nagios/libexec/check_traffic.sh -h Usage: ./check_traffic.sh [ -v ] [ -6 ] [ -r ] -

Linux下nagios的搭建及相关配置

一.LAMP环境部署 1.安装php 1.安装yum源 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 2.执行yum安装 yum --enablerepo=remi,remi-php55 install php php-devel