nagios分布式监控配置

简介:
 由于我方与某运营商有合作关系他们出机器,但机器是归我们管理,由于配置主动监控进不了他们机器,所以有这个被动监控需求。在无聊的值班日把nagios分布式监控给搞定了,也算是一种收获吧,很喜欢街上空荡荡的感觉,但却不得不为自己的温饱问题感到担忧...
进入主题
一、在分布式机器上安装和nagios主监控机一样配置好,在界面上呈现出相关监控信息后
二、开始安装NSCA模块
下载地址
http://nchc.dl.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
安装步骤
./configure && make all 
这样就安装完毕了,下面是客户端相关配置
cd  nsca-2.7.2
1)拷贝相关文件至nagios目录下,注意权限问题   

send_nsca

send_nsca.cfg
权限有问题会导致分布式监控提交不了监控信息
cp sample-config/send_nsca.cfg /usr/local/nagios/etc/
cp src/send_nsca /usr/local/nagios/bin/
2) /usr/local/nagios/etc/send_nsca.cfg文件的password选项与主监控机的一致
password=xxx
3)nagios.cfg配置该配置文件中不加入send_nsca.cfg
nagios_user=nagios
nagios_group=nagios
#上面根据实际情况更改
ocsp_command=submit_check_result
use_syslog=0#这个写入message刷信息我觉得烦把他禁了
enable_notifications=0 #把分布式机器上的nagios通知功能禁用
obsess_over_services=1 #设置为obsess
4)/usr/local/nagios/etc/commands.cfg配置文件与原来监控机配置一致的基础上添加
define command{
command_name submit_check_result
command_line /usr/local/nagios/libexec/submit_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$SERVICEOUTPUT$'
}
5)/usr/local/nagios/libexec/submit_check_result脚本内容
#!/bin/sh
# Arguments:
# $1 = host_name (Short name of host that the service is
# associated with)
# $2 = svc_description (Description of the service)
# $3 = state_string (A string representing the status of
# the given service - "OK", "WARNING", "CRITICAL"
# or "UNKNOWN")
# $4 = plugin_output (A text string that should be used
# as the plugin output for the service checks)
#
# Convert the state string to the corresponding return code
return_code=-1
case "$3" in
OK)
return_code=0
;;
WARNING)
return_code=1
;;
CRITICAL)
return_code=2
;;
UNKNOWN)
return_code=-1
;;
esac
# pipe the service check info into the send_nsca program, which
# in turn transmits the data to the nsca daemon on the central
# monitoring server
/usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/local/nagios/bin/send_nsca  central_server -c /usr/local/nagios/etc/send_nsca.cfg
#########################################
#注意脚本中的central_server为主监控机的IP
#########################################
6)若保留该词,则需更改/etc/hosts文件
xx.xx.xx.xx central_server
当客户端正常工作你可以看到进程会不断变化
[root@TJSJHL241-189 nsca-2.7.2]# ps -ef|grep nsca
nagios   31772 31770  0 11:37 ?        00:00:00 /usr/local/nagios/bin/send_nsca central_server -c /usr/local/nagios/etc/send_nsca.cfg
root     31774 17037  0 11:37 pts/0    00:00:00 grep nsca
[root@TJSJHL241-189 nsca-2.7.2]# ps -ef|grep nsca
nagios   31786 31784  0 11:37 ?        00:00:00 /usr/local/nagios/bin/send_nsca central_server -c /usr/local/nagios/etc/send_nsca.cfg
root     31788 17037  0 11:37 pts/0    00:00:00 grep nsca
[root@TJSJHL241-189 nsca-2.7.2]# ps -ef|grep nsca
nagios   31792 31790  0 11:37 ?        00:00:00 /usr/local/nagios/bin/send_nsca central_server -c /usr/local/nagios/etc/send_nsca.cfg
root     31794 17037  0 11:37 pts/0    00:00:00 grep nsca
自己也可以做个test文件测试客户端到服务端的连通性比如test文件内容为
"rrw-2-1" TestMessage 0 This is a test message.
[root@TJSJHL241-189 etc]# /usr/local/nagios/bin/send_nsca central_server -c /usr/local/nagios/etc/send_nsca.cfg < test
0 data packet(s) sent to host successfully.
只要看到sent to host successfully就可以了 
当时一直很苦恼为什么我的成功了但发的却是0,最后我就先不考虑这问题先去配置下了,后来发现,主监控与分布式监控的内容是一致的,嘿嘿,如有人知道的话不妨不说,在此谢过了
7)下面观察下services.cfg的配置
define service{
        hostgroup_name                  rrw-game,rrw-res
        service_description             CPU
        check_command                   check_nrpe_cpu
        contact_groups                   yunwei
        check_period                    24x7
        max_check_attempts              4
        normal_check_interval           10
        retry_check_interval            60
        notifications_enabled           1
        notification_options            u,c,r
        check_freshness                 1  
        freshness_threshold             600 #此项应为实际总检测时间的2倍,监控端与被监控端设置一致,不然会出现Warning: The results of service 'http' on host 'rrw-1-2' are stale by 0d 0h 0m 16s (threshold=0d 0h 0m 20s).  I'm forcing an immediate check of the service.信息
        }
这是分布式上的多出的两选项
        check_freshness                 1  
        freshness_threshold             20#此处为正常检测间隔的2x
可以观察下nagios.cfg 
check_freshness                 1  此选项黑认是为1的
分布式机器差不多了,启动nagios即可
三、主监控机配置
下载nsca模块 
1)安装如上相同
make all 之后
cp sample-config/nsca.cfg /usr/local/nagios/etc/
cp src/nsca /usr/local/nagios/bin/
vi /usr/local/nagios/etc/nsca.cfg更改下面配置
nsca_user=nagios
nsca_group=nagios
password=xxx
此处我就不交由xinetd啥的管理了,自已直接运行
/usr/local/nagios/bin/nsca -d -c /usr/local/nagios/etc/nsca.cfg
2)rc.local添加开机自启动
/usr/local/nagios/bin/nsca -d -c /usr/local/nagios/etc/nsca.cfg
3)services添加
nsca            5667/tcp                        # NSCA
4)iptables开放5667端口
iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 5667 -j ACCEPT
service iptables save
5)新建一个目录放置分布式机器的相关配置文件hosts.cfg hostgroups.cfg与分布式机器配置一致
services.cfg先拷贝分布式机器的配置文件,完成后的配置参考如下
define service{
        hostgroup_name                  rrw-game,rrw-res
        service_description             CPU
        check_command                   check_nrpe_cpu
        contact_groups                  yunwei
        check_period                    24x7
        max_check_attempts              4
        normal_check_interval           10
        retry_check_interval            60
        notifications_enabled           1
        notification_options            u,c,r
        active_checks_enabled           0
        check_freshness                 0#注意此处如果为1,主监控会主动刷新吧,不等分布式机器递交信息过来就会刷新设置为1时会等分布式机器递交结果过来再刷新
        freshness_threshold             20
        passive_checks_enabled          1 # We want only passive checking
        flap_detection_enabled          0
        is_volatile                     0
        }
6)启动相关服务nsca nagios
/usr/local/nagios/bin/nsca -d -c /usr/local/nagios/etc/nsca.cfg
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

四、主监控与分布式机器
主监控与分布式机器添加新监控点时两个监控机器都得同时添加
说明,参照文档时有提把下面添加到commands.cfg文件,同时在服务里调用些命令,目前我这边倒是像没有使用到,不知道运行一段时间会不会出问题,有待观察,嘿嘿,看这块有没有必要需要,具体请参照下面的文档吧
define command{
command_name check_dummy
command_line $USER1$/check_dummy $ARG1$
}
 
如有新加机器,需要重启服务端的nsca
/usr/local/nagios/bin/nsca -d -c /usr/local/nagios/etc/nsca.cfg
杀掉进程,重新开启
 
 
 
 本文转自 qwjhq 51CTO博客,原文链接:http://blog.51cto.com/bingdian/276641


相关文章
|
18天前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
32 0
|
1月前
|
Java 测试技术 Spring
分布式之配置中心
分布式之配置中心
34 1
|
1月前
|
SQL 监控 分布式数据库
【解锁数据库监控的神秘力量!】OceanBase社区版与Zabbix的完美邂逅 —— 揭秘分布式数据库监控的终极奥秘!
【8月更文挑战第7天】随着OceanBase社区版的普及,企业广泛采用这一高性能、高可用的分布式数据库。为保障系统稳定,使用成熟的Zabbix监控工具对其进行全方位监控至关重要。本文通过实例介绍如何在Zabbix中配置监控OceanBase的方法,包括创建监控模板、添加监控项(如TPS)、设置触发器及图形展示,并提供示例脚本帮助快速上手。通过这些步骤,可以有效监控OceanBase状态,确保业务连续性。
55 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之如何配置cluster系统自动生成分布式参数
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3月前
|
存储 运维 Prometheus
微服务监控:确保分布式系统的可观察性与稳定性
微服务监控:确保分布式系统的可观察性与稳定性
|
4月前
|
存储 监控 分布式数据库
Scala代码在局域网监控软件中的分布式处理
该文介绍了如何使用Scala进行局域网监控数据的分布式处理。通过示例展示了利用Scala的并发能力进行数据收集,使用集合操作进行数据处理与分析,以及如何将处理结果存储到分布式数据库(如Cassandra)和自动提交到网站。Scala的并发处理能力和丰富库支持使其在分布式处理中表现出色。
118 3
|
4月前
|
存储 JSON 监控
Erlang用于构建分布式屏幕监控软件的优点
Erlang是一种适用于并发编程的语言,特别适合构建分布式屏幕监控软件。其轻量级进程支持高并发,能同时处理多个屏幕的实时更新。Erlang的容错性和高可用性通过监督树机制保证了进程故障时的自动重启。此外,其内置的分布式特性使得跨节点的屏幕监控变得简单。Erlang还允许通过HTTP客户端库自动将监控数据提交到网站,便于数据存储和分析。因此,Erlang是构建此类软件的理想选择。
137 7
|
3月前
|
网络安全 数据安全/隐私保护
分布式系统详解--框架(Hadoop-Ssh免密登陆配置)
分布式系统详解--框架(Hadoop-Ssh免密登陆配置)
36 0
|
4月前
|
安全
考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型
考虑极端天气线路脆弱性的配电网分布式电源和储能优化配置模型
|
4月前
|
调度
互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab
互动环境下分布式电源与电动汽车充电站的优化配置方法研究-全文复现matlab

热门文章

最新文章