在前面,分别介绍了nagios 的server端和client端的配置,但是nagios默认是主动模式进行监控,也就是由server端主机对每台client机发起轮询,利用nrpe在client端检测,然后将检测的数据发回给server端主机。然后主机接收这些数据展示出来,这在client端机器不多时,还是可以正常的,一旦机器开始多起来,每台机的检测命令躲起来,对于server端的CPU资源消耗就会非常大,在集中轮询的时候,常会遇到cpu会带不动,数据丢失,延迟过大等等。
为此,需要向主动模式改为被动模式,让client端客户机自己定时检测,然后发数据给server端。server端只负责对接受到的数据的处理和展示即可。大大降低了server 端的压力。让压力均摊到各个client端了。在面对大量client客户端时,也能正常的进行监控工作。
这里,记录一下nagios被动模式配置。基于前面两篇nagios,server端和client端安装与配置的基础。
这里使用 nsca 来实现被动模式。
一。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
$ cd nsca-2.7.2
$ ./configure
$ make all
$ cp src/nsca /usr/local/nagios/bin/ (将可执行文件复制到nagios内)
$ cp sample-config/nsca.cfg /usr/local/nagios/etc/ (将配置文件放到nagios内)
$ 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
$ vim /usr/local/nagios/etc/nsca.cfg
$ server_address=192.168.1.1 (这个为server端地址,写上本机IP即可)
$ debug=1 (开启日志记录)
$ aggregate_writes=1 (合计写入,开启可支持更大监控亮量)
$ max_packet_age=60 (数据包过期时间,单位秒)
$ nsca_user=nagios
$ nsca_group=nagios
$ password=nagios_nsca (nsca密码,用于客户端连接时的认证)
3.配置xinetd守护启动
$ vim /etc/services (编辑services)
---------------------------------------------------------------------------------
nsca 5667/tcp # nsca (添加这一行在最下面)
-----------------------------------------------------------------------------------
$ cp sample-config/nsca.xinetd /etc/xinetd.d/nsca (将nsca的启动文件拷贝到xinetd)
$ vim /etc/xinetd.d/nsca
-----------------------------------------------------------------------
service nsca
{
flags = REUSE
socket_type = stream
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nsca
server_args = -c /usr/local/nagios/etc/nsca.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.1.2 (多个监控端在这里添加,中间用空格隔开)
}
--------------------------------------------------------------------------------------------------
$ systemctl restart xinetd (重新启动加载nsca)
3.配置nagios的配置文件,设置被动模式的service模板和命令等
$ vim /usr/local/nagios/etc/nagios.cfg
----------------------------------------------------------
check_external_commands = 1 (确保这个选项开启)
----------------------------------------------------------
$ vim /usr/local/nagios/objects/templates.cfg (配置被动模式模板)
---------------------------------------------------------------------------------------
## 其他配置,根据使用情况自己自定义
define service{
name passive_service
use generic-service
max_check_attempts 3
normal_check_interval 5
active_checks_enabled 0 (关闭主动模式)
passive_checks_enabled 1 (开启被动模式)
retry_check_interval 1
register 0
}
------------------------------------------------------------
$ vim /usr/local/nagios/objects/commands.cfg (添加命令)
-----------------------------------------------------------------------------------------------
## 这个是用来对接受的数据,状态判断的命令
define command{
command_name check_dummy
command_line /usr/local/nagios/libexec/check_dummy $ARG1$
-----------------------------------------------------------------------------------------------
$ vim vim /usr/local/nagios/objects/services.cfg ( 添加服务 ,之前自定义的配置文件,详见前两篇 nagios安装教程)
define service{
use passive_service
host_name nagios-client
service_description CheckDummy
check_command check_dummy!0
notifications_enabled 1
}
$ killall nagios
$ /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg (重启nagios)
二。nagios客户端配置
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
$ cp src/send_nsca /usr/local/nagios/bin/
$ 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
$ vim /usr/local/nagios/etc/send_nsca.cfg
$ password=nagios_nsca (连接服务端的认证密码)
3.测试client端发送数据。
$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. (成功发送会有这个提示)
然后在nagios管理界面,就可以看到这个service的信息了。
OK,到此就算是配置完了被动模式的监控,至于如何使用被动模式,配置定时检测,发送警报和邮件,编写被动模式的检测脚本,则在后面再新开一篇进行专项记录。
为此,需要向主动模式改为被动模式,让client端客户机自己定时检测,然后发数据给server端。server端只负责对接受到的数据的处理和展示即可。大大降低了server 端的压力。让压力均摊到各个client端了。在面对大量client客户端时,也能正常的进行监控工作。
这里,记录一下nagios被动模式配置。基于前面两篇nagios,server端和client端安装与配置的基础。
这里使用 nsca 来实现被动模式。
一。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
$ cd nsca-2.7.2
$ ./configure
$ make all
$ cp src/nsca /usr/local/nagios/bin/ (将可执行文件复制到nagios内)
$ cp sample-config/nsca.cfg /usr/local/nagios/etc/ (将配置文件放到nagios内)
$ 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
$ vim /usr/local/nagios/etc/nsca.cfg
$ server_address=192.168.1.1 (这个为server端地址,写上本机IP即可)
$ debug=1 (开启日志记录)
$ aggregate_writes=1 (合计写入,开启可支持更大监控亮量)
$ max_packet_age=60 (数据包过期时间,单位秒)
$ nsca_user=nagios
$ nsca_group=nagios
$ password=nagios_nsca (nsca密码,用于客户端连接时的认证)
3.配置xinetd守护启动
$ vim /etc/services (编辑services)
---------------------------------------------------------------------------------
nsca 5667/tcp # nsca (添加这一行在最下面)
-----------------------------------------------------------------------------------
$ cp sample-config/nsca.xinetd /etc/xinetd.d/nsca (将nsca的启动文件拷贝到xinetd)
$ vim /etc/xinetd.d/nsca
-----------------------------------------------------------------------
service nsca
{
flags = REUSE
socket_type = stream
wait = no
user = nagios
group = nagios
server = /usr/local/nagios/bin/nsca
server_args = -c /usr/local/nagios/etc/nsca.cfg --inetd
log_on_failure += USERID
disable = no
only_from = 127.0.0.1 192.168.1.2 (多个监控端在这里添加,中间用空格隔开)
}
--------------------------------------------------------------------------------------------------
$ systemctl restart xinetd (重新启动加载nsca)
3.配置nagios的配置文件,设置被动模式的service模板和命令等
$ vim /usr/local/nagios/etc/nagios.cfg
----------------------------------------------------------
check_external_commands = 1 (确保这个选项开启)
----------------------------------------------------------
$ vim /usr/local/nagios/objects/templates.cfg (配置被动模式模板)
---------------------------------------------------------------------------------------
## 其他配置,根据使用情况自己自定义
define service{
name passive_service
use generic-service
max_check_attempts 3
normal_check_interval 5
active_checks_enabled 0 (关闭主动模式)
passive_checks_enabled 1 (开启被动模式)
retry_check_interval 1
register 0
}
------------------------------------------------------------
$ vim /usr/local/nagios/objects/commands.cfg (添加命令)
-----------------------------------------------------------------------------------------------
## 这个是用来对接受的数据,状态判断的命令
define command{
command_name check_dummy
command_line /usr/local/nagios/libexec/check_dummy $ARG1$
-----------------------------------------------------------------------------------------------
$ vim vim /usr/local/nagios/objects/services.cfg ( 添加服务 ,之前自定义的配置文件,详见前两篇 nagios安装教程)
define service{
use passive_service
host_name nagios-client
service_description CheckDummy
check_command check_dummy!0
notifications_enabled 1
}
$ killall nagios
$ /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg (重启nagios)
二。nagios客户端配置
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
$ cp src/send_nsca /usr/local/nagios/bin/
$ 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
$ vim /usr/local/nagios/etc/send_nsca.cfg
$ password=nagios_nsca (连接服务端的认证密码)
3.测试client端发送数据。
$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. (成功发送会有这个提示)
然后在nagios管理界面,就可以看到这个service的信息了。
OK,到此就算是配置完了被动模式的监控,至于如何使用被动模式,配置定时检测,发送警报和邮件,编写被动模式的检测脚本,则在后面再新开一篇进行专项记录。