首先,简单点的,监控远程主机服务
实验机:监控机:192.168.0.104
被监控机:192.168.0.144
服务:mysql
首先进入被监控机 建立测试数据库
mysql> create database nagdb;
mysql> grant select on nagdb.* to nagios@'192.168.0.104';
进入监控机
cd /usr/local/nagios/libexec/ [root@server4 libexec]# ./check_mysql -H 192.168.0.7 -u nagios -d nagdb
Uptime: 219 Threads: 1 Questions: 7 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 8 Queries per second avg: 0.31
//这条命令测试
// -H是设置主机 -u设置访问远程服务器数据库的用户名 -d访问的远程数据库的库名
[root@server4 nagios]# cd /usr/local/nagios/etc/objects/
[root@server4 objects]# vim commands.cfg
添加一下内容
# 'check_mysql' command definition define command{ command_name check_mysql command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagdb }
[root@server4 objects]# vim services.cfg
添加 ###########################check_mysql##########################
define service{ use local-service ; Name of service template to use host_name server44.example.com service_description MYSQL check_command check_mysql } [root@server4 objects]# vim hosts.cfg
添加
define host{ use linux-server ; 给网络设备用的 host_name server44.example.com alias Mysql server44 address 192.168.0.144 icon_image switch.gif statusmap_image switch.gd2 2d_coords 100,200 3d_coords 100,200,100 }
监控远程主机,在监控远程服务时候我们可以直接进行监控,但是在监控远程主机的基本信息(比如,跟分区空间,系统负载)的时候,我们部能直接进行监控,我们需要使用check_nrpe这个命令来监控远程的主机
在远程主机192.168.0.144
远程主机必要要有这个,useradd nagios
tar zxf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure
make make install
下面是安装nrpe
tar zxf nrpe-2.14.tar.gz
cd nrpe-2.14 ./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
完成之后要编辑 vim /etc/xinetd.d/nrpe
内容 service nrpe
{ flags = REUSE socket_type = stream port = 5666 wait = no user = nagios group = nagios server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 192.168.0.104 //这里的ip是监控这台机子的ip地址 }vim /etc/services
添加
nrpe 5666/tcp # nrpe
vim /usr/local/nagios/etc/nrpe.cfg
编辑
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p / //将这行改成这样,监控跟分区(大概在221行)
完成之后启动服务
/etc/init.d/xinetd start
下面是监控主机的配置
tar zxf nrpe-2.14.tar.gz
[root@server4 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.144 -c check_load
cd nrpe-2.14
./configure
make all
make install-plugin
配置完成之后可以测试一下
//检查目标主机是否联通 [root@server4 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.144
NRPE v2.14
//检查目标主机的负载
OK - load average: 0.00, 0.00, 0.00|load1=0.000;15.000;30.000;0; load5=0.000;10.000;25.000;0; load15=0.000;5.000;20.000;0;
如果想要在网页上面显示,我们需要下面的配置
cd /usr/local/nagios/etc/objects/
[root@server4 objects]# vim commands.cfg
添加
# 'check_nrpe' command definition define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ //-c 后面加了一个变量,在后面的service.cfg中会用到 }
[root@server4 objects]# vim services.cfg
添加
########################server44.example.com################### define service{ use local-service host_name server44.example.com //192.168.0.144的主机名 service_description 系统负荷
check_command check_nrpe!check_load //这里“!”后面表示一个参数使用check_nrpe 加一个check_load参数来查看远程主机的信息
} define service{ use local-service host_name server44.example.com service_description 根分区 check_command check_nrpe!check_disk } 完成之后检查语法 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg重新加载服务
/etc/init.d/nagios reload
一切ok