通过上一篇文章我们已经完成了nagios在Centos上的安装配置
接下来进行监控windows主机
nagios通过Nsclient++检测windows工作原理
nagios文件说明:
nagios配置文件存放于/etc/nagios中,其中nagios.cfg 为主配置文件。
objects 文件夹为各种类型的配置文件,
/etc/nagios/objects/command.cfg 定义的是命令对象
要让nagios能够读取配置文件,必须把配置文件信息添加至nagios.cfg配置信息中
例如:cfg_file=/etc/nagios/objects/commands.cfg
以及包涵整改配置文件夹:#cfg_dir=/etc/nagios/servers
/etc/nagios 中的resource.cfg 配置文件定义宏
/usr/local/nagios/libexec/ 目录下存放着32个宏(变量)可随意引用
让nagios监控windows主机
Nagios 检测windows最简便的方法是通过check_nt
下载地址 http://nsclient.org/download/
下载对应版本的NSClient++
开始配置安装
在windows端安装NSClient++
安装过程
Allowed host:10.200.1.23 填写nagios主机地址
passwd 设置密码 可以留空
底下的可以全部勾上允许
安装完成之后,调出命令管理界面,使用netstat -an 命令可以看到已近启用了12489端口,并监听在0.0.0.0主机上
12489是check_nt 跟NSClient++通讯的端口
5666 是NRPE使用的端口
返回Nagios主机,进入:/usr/local/nagios/libexec/
cd/usr/local/nagios/libexec/
使用./check_nt命令可以直接使用该命令 例如:./check_nt -H 10.200.1.147 -p 12489 -v UPTIME 可查看远程主机运行时间 注:-H 指定监控主机 -p 指定端口 -v 命令(查看运行时间)
通讯成功,表示两台主机之间已近可以正常检测
使用./check_nt -H 10.200.1.147 -p 12489 -v USEDDISKSPACE -w 80 -c 90 -l C 可检测C盘信息
在确定两台主机之间能够通过nsclient++正常通讯以后,开始配置服务器
cd /etc/nagios/objects 编辑commands.cfg 在文件最下端加入命令
define command {
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $GRG2$
}
拷贝一份windows.cfg文件 重命名为win2016.cfg
编辑win2016.cfg
找到
define host{
use windows-server ; Inherit default values from a template
host_name winserver ; The name we're giving to this host
alias My Windows Server ; A longer name associated with the host
address 192.168.1.2 ; IP address of the host
}
定义主机
将 host_name winserver 更改名称为:winhost
alias My Windows Server 更改为:MY Windows Host
address 192.168.1.2 更改为对应的主机地址:例如:10.200.1.147
定义完主机之后开始定义服务
define service{
use generic-service
host_name windows
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
将所以定义服务的命令行中所有 host_name windows 都更换为host_name winhost 跟上面所定义的主机名称一致
使用命令 :.,$s@windowserver@windhost 可将当前行至最后一行中搜索windowserver 替换成winhost
修改完成之后保存退出
启用此配置文件
cd /etc/nagios 编辑nagios.cfg vim nagios.cfg
找到cfg_file=/etc/nagios/objects/
加入 cfg_file=/etc/nagios/objects/win2016.cfg 文件名为刚刚定义的文件,更改完成之后保存退出
检查语法
[root@linyangjun nagios]# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg
提示:commands.cfg' on line 240 有问题,提示重复
找到重复定义的
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
注释掉刚刚重复定义的即可
重新检查语法通过以后,重新启动nagios
[root@linyangjun nagios]# service nagios restart
启动完成之后,打开http://10.200.1.23/nagios/ 即可看到 winhos也在Host 检测目录里面