简介

  一般情况下我们用nagios主动监控基本就可以实现监控需求,但是随着服务器数量增加,nagios server继续使用主动监控将会不堪重负;另外当我们需要通过第三方的数据采集工具并结合nagios进行报警,就需要用到被动监控。

被动监控原理

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

  在nagios client上面,使用nagios-plugins提供的插件,得出监控数据,然后将数据存为一个文件,利用输入重定向,通过send_nsca将数据发往nagios server。nagios server上面运行一个nsca的daemon(默认开启5667端口),用来接收这些数据,然后做一个简单的处理(会和nagios的service文件进行对应,将多余的监控数据排除),然后将数据进行格式的转换,发给nagios的“外部命令文件”(默认配置为“/usr/local/nagios/var/rw/nagios.cmd”在nagios.cfg中定义的)。
该文件是一个管道文件,也是nagios主程序的一个接口(用来接收监控数据),使用cat查看该文件时候,会出来经nsca处理后的数据格式。然后nagios主程序对数据进行处理进行前台展示,报警等。

组件

Nsca 安装在nagios server上,用来接收并解析nagios client发来的监控数据,传递给nagios
Send_nsca 安装在nagios client上,用来发送监控数据

配置

IP hostname 组件
192.168.1.1 nagios server nsca
192.168.1.2 nagios client send_nsca

一、nagios server配置

1.安装nsca组件

#安装依赖
yum install libmcrypt
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
tar -zxvf nsca-2.7.2.tar.gz
./configure
make all
#将NSCA的可执行程序拷贝到Nagios的bin目录下
cp src/nsca /usr/local/nagios/bin/
# 将NSCA的示例配置文件拷贝到Nagios的etc目录下:
cp sample-config/nsca.cfg /usr/local/nagios/etc/
chmod 755 /usr/local/nagios/bin/nsca
chown nagios.nagios /usr/local/nagios/bin/nsca
chown nagios.nagios /usr/local/nagios/etc/nsca.cfg

2.配置nsca.cfg

vim /usr/local/nagios/etc/nsca.cfg
server_address=192.168.1.1
#debug选项即log选项,写入message
debug=1
#能够支持更大的监控量,建议开启
aggregate_writes=1
#数据包过期时间,默认30s,但是考虑到网络因素建议设为60s
max_packet_age=60
nsca_user=nagios
nsca_group=nagios
#用于和nagios client端的send_nsca认证,可不设置
password=naigos_test

3. 配置xinetd守护启动

vim /etc/services
#添加如下行
nsca            5667/tcp                # nsca
#将NSCA的启动文件拷贝到xinetd的相关目录下,注意名称和上面对应
cp sample-config/nsca.xinetd /etc/xinetd.d/nsca
vim /etc/xinetd.d/nsca
service nsca
{flags           = REUSEsocket_type     = stream     wait            = nouser            = nagiosgroup           = nagiosserver          = /usr/local/nagios/bin/nscaserver_args     = -c /usr/local/nagios/etc/nsca.cfg --inetdlog_on_failure  += USERIDdisable         = no#多个被监控端可在这添加only_from       = 127.0.0.1 192.168.1.2
}#启动
service xinetd reload

4.配置nagios监控服务项

vim /usr/local/nagios/etc/nagios.cfg
check_external_commands = 1
#添加模板
vim /usr/local/nagios/objects/templates.cfg
define service{name                            passive_serviceuse                             generic-servicemax_check_attempts              3   normal_check_interval           5#禁用主动检测  active_checks_enabled           0 #启动被动检测  passive_checks_enabled          1   retry_check_interval            1   register                        0   }
#添加监控主机
define host{use         linux-serverhost_name   nagios-clientalias       passive-2address     192.168.1.2
}
#添加监控命令
vim /usr/local/nagios/objects/commands.cfg
define command{command_name    check_dummycommand_line    /usr/local/nagios/libexec/check_dummy $ARG1$
}
#添加监控任务
define service{use                             passive_servicehost_name                       nagios-clientservice_description             CheckDummycheck_command                   check_dummy!0notifications_enabled           1   }

check_dummy命令说明:
check_dummy只能处理4个参数(0、1、2、其他数字),4个参数可以代表4种状态。

[root@nagios etc]# /usr/local/nagios/libexec/check_dummy 0
OK
[root@nagios etc]# /usr/local/nagios/libexec/check_dummy 1
WARNING
[root@nagios etc]# /usr/local/nagios/libexec/check_dummy 2
CRITICAL
[root@nagios etc]# /usr/local/nagios/libexec/check_dummy 3
UNKNOWN

5.nagios server启动

nagioscheck
service nagios reload

二、nagios client配置

1.安装send_nsca组件

#安装依赖
yum install libmcrypt
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
tar -zxvf nsca-2.7.2.tar.gz
./configure
make all
#将send_nsca的可执行程序拷贝到Nagios的bin目录下
cp src/send_nsca /usr/local/nagios/bin/
# 将send_nsca的示例配置文件拷贝到Nagios的etc目录下:
cp sample-config/send_nsca.cfg /usr/local/nagios/etc/
chmod 755 /usr/local/nagios/bin/send_nsca
chown nagios.nagios /usr/local/nagios/bin/send_nsca
chown nagios.nagios /usr/local/nagios/etc/send_nsca.cfg

2.配置send_nsca.cfg

vim /usr/local/nagios/etc/send_nsca.cfg
#若nsca没有配置认证,则可不配置
password=nagios_test

三、测试

1.nagios client端发送监控数据

[root@client etc]echo "192.168.1.2;CheckDummy;0;hello passive service"|/usr/local/nagios/bin/send_nsca -H 192.168.1.1 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg
1 data packet(s) sent to host successfully.

cat pasv.txt
192.168.1.2;CheckDummy;0;hello passive service/usr/local/nagios/bin/send_nsca -H 192.168.1.1 -d ";" -c /usr/local/nagios/etc/send_nsca.cfg < pasv.txt

其中:
-H 192.168.1.1 是nagios server的地址
-d “;” 是管道传输数据的分隔符,默认为”tab”分隔符
-c send_nsca.cfg是配置文件路径

“192.168.1.2;CheckDummy;0;hello passive service “是管道数据:
192.168.1.2 是nagios client的地址
CheckDummy是nagios server端中配置的服务监控项的”service_description CheckDummy”
0是报警状态
hello passive service 是报警信息

2.nagios server端展示

以上的过程:nagios client端通过管道将数据传给send_nsca程序,send nsca再将数据发送到nagios server端nsca服务。其中发送给send_nsca的数据

nagios之nsca被动监控相关推荐

  1. Linux监控利器nagios–NSCA被动监控

    原文地址:http://www.cszhi.com/20120527/nagios-nsca.html

  2. nagios使用nsca实现被动监控

    被动模式工作原理: 相比与主动模式中服务器主动去被监控机上轮询获取监控数据的方式,被动模式则是在被监控机上面通过插件或脚本获取监控数据,然后将数据通过send_nsca发往监控机,最后监控机通过Nsc ...

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

    现在说说在我们系统中如何是用NSCA方式来获取我们需要的被监控节点的资源使用情况信息. 先讲讲Nagios Server端的基本配置: 1. nagios web gui 访问配置,系统中使用的是na ...

  4. nagios的nsca被动模式及自动添加nsca服务

    nagios的被动模式中有nsca,测试了下php,python,shell都有相关的支持,利用nagios的日志文件,过滤出关于nsca的内容,再与配置文件对比,即可实现自动添加服务了. 一.nsc ...

  5. Nagios—服务和性能监控

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

  6. zabbix 主动监控与被动监控

    一.被动模式 无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式,比如被动模式,是说zabbix agent被动的接受zabbix server周期性发送过来的数据收集指令. ...

  7. zabbix主动监控和被动监控

    目录 一.环境准备 1.搭建zabbix基础环境 二.主动监控与被动监控介绍 三.设置客户端为主动监控 1.给web2主机安装zabbix_agent 2.修改主动监控配置 四.设置zabbix管理端 ...

  8. nagios 3.4.1监控window与linux,并实现飞信报警

    一,实验环境, 1,监控端:希望用网页界面来显示监控结果,因此需要安装apache和php,如果希望将数据存储到数据库中还需要安装mysql.centos 6.3 64,nrpe-2.13.tar.g ...

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

    Nagios要求被监控端按照约定格式定时将数据发送到Nagios端.监控包括节点和服务2种. 节点监控约定数据格式如下: [<timestamp>] PROCESS_HOST_CHECK_ ...

最新文章

  1. php 多条数据更新数据类型,PHPdoc @param中的两个或多个数据类型
  2. jsPlumb(3)-基本概念
  3. 《spring揭秘》读书笔记二
  4. pandas to_json转换时强制中文而不是unicode
  5. MATLAB实战系列(二十二)-matlab三维图形绘制案例最全集锦(毕设和数学建模必看)
  6. 【本人秃顶程序员】深入理解Java——ConcurrentHashMap源码的分析(JDK1.8)
  7. 【人脸表情识别】基于matlab PCA+SVM人脸表情识别评分系统【含Matlab源码 593期】
  8. 从Java新特性看Java的未来
  9. 编写一个非常简单的 JavaScript 编辑器
  10. 学习ajxa 必备插件
  11. 【智衡跨境电商shopee运营】Shopee平台流量入口有哪些?
  12. 青空格斗SolanoBattle源代码分享(我的2020大一游戏作)
  13. java 修改表格颜色代码_workBook设置单元格颜色方法
  14. 如何写毕业论文(个人心得,不是保姆级)
  15. 【虚幻引擎UE】UE5 可编辑动态样条线轨迹及AI跟随路径移动(含工程源码)
  16. Python超市管理系统毕业设计源码111042
  17. Esxi 6.7使用 OVF Tool 导出 ova
  18. node.js如何模拟网页点击?
  19. 2020Java高级开发工程师面试题汇总
  20. 【word】使用VBA代码,自定义页面数拆分大Word文件为多个小文档并指定名称保存

热门文章

  1. python体能达标成绩_Python+Excel数据分析实战:军事体能考核成绩评定(九)评定个人等级...
  2. 修改 Zotero 参考文献格式
  3. 异步协议与同步协议:面向字符的协议BSC协议
  4. 每日获取强智教务系统课表,并发送短信到学生手机!爬虫真牛逼!
  5. 诗词锦集(持续更新)
  6. 如何检查系统SMTP的ip地址是否被检测网站列入国际黑名单组织
  7. 【读书笔记】雄性衰落
  8. 【数值分析实验MATLAB】数值积分:梯形公式、辛普森公式、复化梯形公式、复化辛普森公式、龙贝格算法、自适应求积方法
  9. VBA—压缩文件夹成一个rar压缩包
  10. 【Java设计模式】简单学抽象工厂模式——你好,微信还是支付宝