nagios利用NSCient监控远程window主机
摘要:1、NSCient原理
2、NSClient++与NRPE NSClient++区别
3、Nagios对window主机的监控
1 简介
Nagios对Windows主机的监控主要有三种方法 第一种是NSclient++ 第二种是NRPE 第三种是SNMP(不是很常用)。
1.1 NSClient的工作原理
NSClient++是用来监控Windows主机时安装在Windows主机上的组件。被监控机上安装NSClient,,当监控主机将监控请求发给NSClient后,NSClient直接完成监控,所有的监控是由NSClient完成的.不需要额外的插件。
NSClient++官网:http://www.nsclient.org/
1.2NRPE的工作原理
1.3 NSclient++与nrpe最大的区别
NSclient++的一个很大的问题,不灵活,没有可扩展性.它只能完成自己本身包含的监控操作,不能由一些插件来扩展.好在NSclient++已经做的不错了,基本上可以完全满足我们的监控需要。
2 NSClient++ 安装
2.1 软件版本:NSCP-0.5.2.35-x64.msi
下载地址: http://www.nsclient.org/download/
2.2 安装插件
2.3查看NSClient++配置文件
默认是安装在C:\Program Files\NSClient++ 目录下,NSC.ini即为NSClient服务的配置文件,一般我们无需修改,但是当我们监控端的IP地址改变时,或者密码忘记,即可以在这里修改了。
2.4检查监听端口
3 配置nagios服务器
3.1 插件语法介绍
NSClient++ 是通过check_nt插件对window你主机进行监控,我们先了解check_nt语法
语法: check_nt -H host -v variable [-p port] [-w warning] [-c critical] [-l params] [-d SHOWALL] [-u] [-t timeout] 选项: -h, --help 显示帮助
-V, --version 显示版本信息
-H, --hostname=HOST 被监控主机名称或IP
-p, --port=INTEGER 监控端口(默认为1248,不过我的nagios安装后端口为12489)
-s, --secret=
-w, --warning=INTEGER 引发报警状态的阀值
-c, --critical=INTEGER引发严重错误状态的阀值
-t, --timeout=INTEGER 连接尝试超时秒数 (默认 -l, --params=
-d, --display={SHOWALL}显示选项(目前仅支持SHOWALL)
-u, --unknown-timeout多长时间后返回 UNKNOWN)
-v, --variable=STRING 监控参数 监控参数: CLIENTVERSION = Get the NSClient version 如果用 -l
CPULOAD = 最后X分钟CPU的平均负载。
-l 格式为:-l
阀值是一个百分比,最多一次可以监控10个阀值,比如: ie: -l 60,90,95,120,90,95
UPTIME = 获得主机开机时间。无指定参数,也没有报警与错误阀值。
USEDDISKSPACE = 指定磁盘的使用率。只要求 -l 指定磁盘的驱动器号。用-w 指定报警阀值 用-c指定错误阀值
MEMUSE = 内存使用率。用-w 指定报警阀值 用-c指定错误阀值
SERVICESTATE = 监控一个或多个服务的状态。-l 格式为:-l
PROCSTATE = 监控某个或某几个进程是否在运行。命令格式类似于SERVICESTAT
-l 格式为:-l "\
[root@nagios ~]# cd /usr/local/nagios/libexec/
[root@nagios libexec]# ./check_nt -H 192.168.4.56 -p 12489 -v UPTIME
System Uptime - 0 day(s) 0 hour(s) 0 minute(s) |uptime=0
过去5分钟的平均值,80%的警告 90%紧急
[root@nagios libexec]# ./check_nt -H 192.168.4.56 -p 12489 -v CPULOAD -w 80 -c 90 -l 5,80,90
CPU Load 0% (5 min average) | '5 min avg Load'=0%;80;90;0;100
3.2 定义命令、主机、服务
(1) 定义命令
'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
注释: $..$ 表示系统内置的宏,也就是所谓的变量
$USER1$ 表示插件所在的目录 -
H 指定主机地址
$HOSTADDRESS$ 应用到哪个主机,就用哪个主机的地址
$ARG1$ 传递的参数,形参 -s 指定密码 默认为空
(2) 定义主机和服务
[root@nagios etc]# cd /usr/local/nagios/etc/objects/
[root@nagios objects]# cp windows.cfg win10.cfg
[root@nagios objects]# sed -i 's/winserver/window10/g' win10.cfg
[root@nagios objects]# sed -i 's/192.168.1.2/192.168.4.56/g' win10.cfg
3.3 nagios主配置文件中添加主机信息
[root@nagios etc]# vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/win10.cfg
3.4 检查配置文件语法
[root@nagios objects]# service nagios configtest
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
Object precache file created:
/usr/local/nagios/var/objects.precache
3.4 重启nagios服务
[root@nagios objects]# service nagios restart
Running configuration check...
Stopping nagios: done.
Starting nagios: done.
4 浏览器查看监控结果
4.1点击左面的Current Status -> Hosts
4.2点击Current Status -> Services 查看服务监控情况