环境:nagios server ip:192.168.1.2 客户端:192.168.1.78
这篇文档向你介绍怎样用
Nagios
去监控一个
Windows
主机的服务,包括:
- 内存使用Memory usage
- CPU负载CPU load
- 硬盘空间Disk usage
- 服务状态Service states
- 运行进程Running processes
- 等
原理图解
监控私有的服务和
windows
主机需要你安装一个
agent
到
windows
上,它就是
NSClient
++。
现在我们就在
windows
上来安装
NSClient++
addon
。用
check_nt
插件来和
NSClient++ addon
交流信息。
check_nt
插件必须已经安装到
Nagios server
端了。
其它
windows
客户端
(
例如
NC_Net
)
也能用来代替
NSClient++
。这里也不作讨论。
步骤:
监控一个新的
Windows
主机需要你按照一下几个步骤来进行,它们是:
1.
准备工作,也就是你有一个
nagios
监控系统,修改几处配置文件。
2.
安装客户端到要监控
Windows
上
3.
创建一个新的主机和服务来监控
W
indows
主机
4.
重新起动
N
agios
为了是你的工作更加简单,一些配置文件已经为你写好,你只需要做一些修改工作。
- 一个check_nt命令已经在commands.cfg文件中被定义,这样你就可以用check_nt插件来监控Window services了。
- 一个Windows server host 模板(叫做windows-server)也已经为你创建好了,在一个
- 叫做templates.cfg的文件中。这样你就可以简单的去添加一个Windows host definitions。
上面提到的所有文件都在
/usr/local/nagios/etc/objects/
目录下。你可以根据自己的需要去修改配置文件。但是现在你需要做得就是按照下面的说明去操作。
一:准备工作
如果这是你第一次用
Nagios
来监控
Windows machine
,你必须先修改一下文件,来监控你的
“
第一个
”
Windows machine
。
A
:编辑
Nagios
的主配置文件
命令:
vi /usr/local/nagios/etc/nagios.cfg
B
:
添加如下
cfg_file=/usr/local/nagios/etc/objects/
192.168.1.78
.cfg
C
:保存并退出文件
二:安装
windows
客户端
Before you can begin monitoring private services and attributes of Windows machi
我这里选用的是
NSClient++ addon
,你可以在
http://sourceforge.net/projects/nscplus
.
找到它的身影。那么现在就让我们来安装
NSClient++ addon
吧。
1
:若没有下载
NSClient++ addon
的最新版,请来这里转悠一下
http://sourceforge.net/projects/nscplus
2
:解压
NSClient++ files
到
C:\NSClient++
目录
3
:打开一个命令提示符界面并转到
C:\NSClient++
目录
命令:
cd C:\NSClient++
4
:使用一下命令注册
NSClient++ system service
到系统
命令:
nsclient++ /install
5
:安装
NSClient++
的
systray ('SysTray'
大小写敏感
):
命令:
nsclient++ SysTray
注:我在几个电脑上都试过了,此条命令有点问题,但是我还是都执行了。
6
:打开计算机管理服务和应用程序,在服务项中找到
NSClientpp
服务,打开此服务的选项卡
,找到“登录”选项卡,将登录身份下的本地系统帐户下的“允许服务与桌面交互” 选上,如下图:
7
:编辑
NSC.INI
文件
(
在
C:\NSClient++
目录下
)
,做以下修改:
- 在[modules]项中,将所有的*.dll前的注释去掉,除了CheckWMI.dll和RemoteConfiguration.dll
- 在[Settings]项中有客户端的密码设置,此项我还没有研究明白,暂时不做处理
- 在[Settings] 项中,去掉'allowed_hosts'前的注释,并把你的Nagios server 的IP填上。
- 例如:allowed_hosts=127.0.0.1,192.168.1.2
在
[NSClient]
项中,将
'port'
前的注释去掉,并保证端口号为
'12489' (
默认端口
)
TIP
:去掉注释就是将该行的第一个
“
;
”
号去掉,仅此而已。
8
:在命令行下启动
NSClient++ service
命令:
nsclient++ /start
9
:如果安装成功,在你的任务栏的右边将会出现两个
“
十字架
”
。
10
:成功了,现在
Windows server
就可以添加到
Nagios monitoring configuration
中了
...
三:配置
nagios
现在是为你的
nagios
定义
objects
的时间了。
为了省力,我打了如下命令
cp
/usr/local/nagios/etc/objects/
windows.cfg /
usr/local/nagios/etc/objects/
192.168.1.78.cfg
1
:打开
192.168.1.78
.cfg
删掉注释行,
做以下编辑
命令:
vi
/usr/local/nagios/etc/objects/
192.168.1.78
.cfg
以下是
192.168.1.78
.cfg
文件的内容
define host{
use windows-server ;
保留此行不做任何修改
host_name
winserver
;
可以修改为你喜欢的名字
alias
My Windows Server
;
别名
address
192.168.1.
78
;
windows
主机的
IP
}
如果是你的
“
第一个
”
Windows machine
,你也可以只修改
IP
那一项。
以下是服务的定义:
2
:客户端的版本
define service{
use generic-service
host_name winserver
;对应上面你定义的名字
service_description NSClient++ Version
check_command
check_nt!CLIENTVERSION
}
3
:客户端的开机总时间
define service{
use generic-service
host_name winserver
service_description Uptime
check_command
check_nt!UPTIME
}
4
:
CPU
的使用
define service{
use generic-service
host_name winserver
service_description CPU Load
check_command
check_nt!CPULOAD!-l 5,80,90
}
5
:内存的使用
如果超过
90
%则为
CRITICAL
,如果超过
80
%则为
WARNING
。
define service{
use generic-service
host_name winserver
service_description Memory Usage
check_command
check_nt!MEMUSE!-w 80 -c 90
}
6
:
C
盘的使用
如果超过
90
%则为
CRITICAL
,如果超过
80
%则为
WARNING
。若要监控其它盘,将
service_description C:\ Drive Space
中的
C
改为
D
,
E
,或
F
等,将
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
中
-l
后的
c
改为对应的
d
,
e
,
f
等。
define service{
use generic-service
host_name winserver
service_description
C
:\ Drive Space
check_command
check_nt!USEDDISKSPACE!-l
c
-w 80 -c 90
}
7
:
Explorer
的监控
监控
Explorer
程序是否在运行,当然你也可以修改
-l
之后的
Explorer.exe
,来监控其它程序的运行
define service{
use generic-service
host_name winserver
service_description Explorer
check_command
check_nt!PROCSTATE!-d SHOWALL -l
Explorer.exe
}
8
:增加
Ftp
监控
define service{
use generic-service
host_name winserver
service_description ftp
check_command check_ftp
}
保存此文件
四:密码保护(我的
nagios
及
NSClient
++没有密码设置)
如果你在
NSClient++
配置文件中定义了你的密码,你就必须修改你的
check_nt
命令
打开
commands.cfg
文件来编辑
命令:
vi
/usr/local/nagios/etc/commands.cfg
将
check_nt
命令中包含的
"-s <PASSWORD>"
项的
PASSWORD
改为你的
windows
上设定的密码
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
}
Save the file.
五:重启
nagios
此时你就会看到你监控的
windows
主机,如下图