五、 被监控主机设置
这一部分内容参考 yahoon 小屋的 nagios 全攻略 ( 四 )---- 监控 linux 上的 ” 本地信息 ” ,地址是: http://yahoon.blog.运维网.com/13184/41893
nrpe 的工作原理图:
nrpe 总共由两部分组成:
– check_nrpe 插件 , 位于在监控主机上
– nrpe daemon , 运行在远程的linux主机上(通常就是被监控机)
按照上图,整个的监控过程如下:
当nagios需要监控某个远程linux主机的服务或者资源情况时
1.nagios 会运行check_nrpe这个插件,告诉它要检查什么.
2.check_nrpe 插件会连接到远程的nrpe daemon,所用的方式是ssl
3.nrpe daemon 会运行相应的nagios插件来执行检查
4.nrpe daemon 将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.
注意:nrpe daemon需要nagios插件安装在远程的linux主机上,否则,daemon不能做任何的监控.
1 、 linux 主机
1 )添加用户
# useradd nagios -s /sbin/nologin
2) 安装 nagios 插件
tar xvf nagios-plugins-1.4.14.tar.gz
cd nagios-plugins-1.4.14
./configure --prefix=/usr/local/nagios
make
make install
修改目录权限:
chown –R nagios:nagios /usr/local/nagios
chown –R nagios:nagios /usr/local/nagios/libexec
2) 安装 nrpe
tar xvf nrpe-2.12.tar.gz
cd nrpe nrpe-2.12.
./configure --prefix=/usr/local/nagios //也把它放到 nagios这一个目录
make all
make install-plugin //安装 check_nrpe这个插件
make install-daemon //安装 deamon
make install-daemon-config //安装配置文件
注意:安装 nrpe 时,要先安装 SSL 这一个工具,因为监控服务器与被监控主机之间通讯时是通过 SSL 的方式来进行的。
3 )修改 nrpe.cfg 配置文件
allowed_hosts=127.0.0.1,192.168.0.10 // 允许监控服务器访问,中间用逗号隔开;
server_address=192.168.0.10 //以单独的守护进程运行
# 修改 NRPE 的监控命令,添加相应的命令;
# The following examples use hardcoded command arguments...
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
#command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
command[check_tcp]=/usr/local/nagios/libexec/check_tcp -p 80
4 )启动 nrpe 服务
# /usr/local/nagios/bin/nrpe –c /usr/local/nagios/etc/nrpe.cfg -d
5) 在本机测试一下 nrpe.cfg 里面定义的命令有没有错误
/usr/local/nagios/libexec/check_nrpe -H localhost
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_users
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_df
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_zombie_procs
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_total_procs
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_swap
/usr/local/nagios/libexec/check_nrpe -H localhost –c check_tcp
6 )在监控服务器上修改 /usr/local/nagios/etc/services.cfg 文件,添加相对应的监控项目;
2 、 windows 主机
如果被监控主机是 windows 系统的话,需要安装 nsclient++-0.3.6-win32.msi 这一个客户端工具;下载地址: http://sourceforge.net/projects/nscplus/
它的工作原理图如下:
可以看到它是通过监控服务器上的 check_nt这一个插件来检查 WINDOWS机器的服务,当监控服务器将监控请求发给 NSClient后,通过 NSClient客户端检查监控项目,所有的监控都是由 NSClient来完成;
双击安装,完成后进到安装目录,我的是安装在 F:\Program Files\NSClient++,用记事本打开 NSC.ini文件,修改如下:
在 [modules]部分的所在模块前面的注释“;”去掉,只保留 CheckWMI.dll和 RemoteConfiguration.dll这两个不用去掉注释;
在 [Settings] 部分找到 ”allowed_hosts”选项,将前面的 “;”注释去掉,并在后面加上监控服务器的 IP,这里也可以写成一个子网,如: 192.168.0.0/24的形式,表示所有来自这个子网的机器都可以访问。
修改后如下: allowed_hosts=127.0.0.1/32,192.168.0.10 ;在多个 IP之间用逗号相隔。
在 [NSClient] 部分找到“ port=12489”这一行,并把前面的注释去掉;这是 NSClinet的默认监听端口。
打开 CMD ,进入到 NSClient的安装目录,如下:
F:\Program Files\NSClient++> dir
2009-10-10 20:54 .
2009-10-10 20:54 ..
2009-06-14 13:20 442,368 nsclient++.exe
2009-06-14 13:24 278,528 nstray.exe
2009-10-10 23:08 13,087 NSC.ini
2009-06-14 13:13 43,129 changelog.txt
2008-06-15 18:20 8,804 counters.defs
2008-06-15 18:20 18,351 license.txt
2009-10-10 20:54 modules
2009-10-10 20:54 scripts
2009-10-14 20:00 26,592 nsclient.log
7 个文件 830,859 字节
4 个目录 3,589,242,880 可用字节
//依次执行下面的命令:
F:\Program Files\NSClient++> nsclient++.exe /install
e NSClient++.cpp(212) Service installation failed: Service already installed!
F:\Program Files\NSClient++> nsclient++.exe /install SysTray //注意大小写;
Service SysTray installed...
l NSClient++.cpp(224) Service installed!
F:\Program Files\NSClient++>nsclient++.exe /start // 启动服务
接下来在运行里面输入: services.msc 打开服务管理;
看到下图时就表明已经安装上了:
在 NSClinet++ 上面点右键属性,打开服务,如下图: 服务已经启动了
点登录,在登录登录身份下面勾选允许服务与桌面交互,如下图:
到这里就已经在 WINDOWS 主机上安装好了,如果你有防火墙的话请打开 TCP 的 12489 端口, 否则 nagios 检查此服务的时候会报 socket 超时错误。
这样被监控的主机就搞定了,现在回到 nagios-server 监控服务器上做下面三个步骤:
1) 安装监控windows的插件(已经默认安装了check_nt)
2 )定义命令
#'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
// 这一部分在3.20里面默认就已经有了,不用再添加;
3 )定义要监控的项目
修改/usr/local/nagios/etc/services.cfg文件,增加windows 被监控主机的监控项目;
详情请参阅前面第三步内容;
关于 check_nt 的用法可以使用下面命令查看帮助:
# /usr/local/nagios/libexec/check_nt -h
下面给出一些常用的参数:
1) 监控windows服务器运行的时间
check_command check_nt!UPTIME
2) 监控Windows服务器的CPU负载,如果5分钟超过80%则是warning,如果5分钟超过90%则是critical
check_command check_nt!CPULOAD!-l 5,80,90
3) 监控Windows服务器的内存使用情况,如果超过了80%则是warning,如果超过90%则是critical .
check_command check_nt!MEMUSE!-w 80 -c 90
4) 监控 Windows 服务器 C:\ 盘的使用情况 , 如果超过 80% 已经使用则是 warning, 超过 90% 则是 critical
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
注:-l后面接的参数用来指定盘符
5) 监控 Windows 服务器 D:\ 盘的使用情况 , 如果超过 80% 已经使用则是 warning, 超过 90% 则是 critical
check_command check_nt!USEDDISKSPACE!-l d -w 80 -c 90
6) 监控Windows服务器的W3SVC服务的状态,如果服务停止了,则是critical
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
7) 监控Windows服务器的 Explorer.exe 进程的状态 , 如果进程停止了 , 则是 critical
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
这一部分被控主机设置这一部分是参考 yahoon 的小屋 原文: http://yahoon.blog.运维网.com/13184/41897
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com