Nagios 监控Windows服务器(详细篇)
1. 监控内容
windows服务器的内部参数包括以下
a. 内存使用状况
b. CPU负载
c. 磁盘使用状况
d. 服务状态
e. 运行的进程
2. 监控原理
在windows服务器内安装NSClient++的监控引擎,nagios服务器通过check_nt来获取监控数据

3.配置步骤
a.修改启动参数
b.windows服务器安装监控引擎
c.在Nagios服务器内建立监控主机和监控服务配置
d.重新启动Nagios服务
4.确认已经配置是否存在
在/usr/local/nagios/etc/objects/commands.cfg中是否有以下内容(允许使用check_nt来监控windows服务)
# 'check_nt' command definition
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$
}
在/usr/local/nagios/etc/object/templates.cfg中是否有以下内容(这个用于未来添加新主机的时候的范例)
define host{
name windows-server ; The name of this host template
use generic-host ; Inherit default values from the generic-host template
check_period 24x7 ; By default, Windows servers are monitored round the clock
check_interval 5 ; Actively check the server every 5 minutes
retry_interval 1 ; Schedule host check retries at 1 minute intervals
max_check_attempts 10 ; Check each server 10 times (max)
check_command check-host-alive ; Default command to check if servers are "alive"
notification_period 24x7 ; Send notification out at any time - day or night
notification_interval 30 ; Resend notifications every 30 minutes
notification_options d,r ; Only send notifications for specific host states
contact_groups admins ; Notifications get sent to the admins by default
hostgroups windows-servers ; Host groups that Windows servers should be a member of
register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE
}
5.nagios在第一次监控windows所必须修改的内容
修改/usr/local/nagios/etc/nagios.cfg
查找
#cfg_file=/usr/local/nagios/etc/objects/windows.cfg
改为
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
保存文件。
/usr/local/nagios/etc/objects/windows.cfg 内包含了一些样例的主机、主机群和服务的定义模式。可以通过修改这些案例来测试监控对象。
6.安装windows监控引擎
下载NSClient++的安装包,注意根据实际的32/64CPU来下载
下载地址 http://sourceforge.net/projects/nscplus
安装方式,解压缩到C:\NSClient++
在指令模式下,在该目录下面运行以下命令,注册NSCient++的服务
nsclient++ /install
将NSCient++作为启动进程
nsclient++ SysTray
在服务列表中找到NSClientpp的服务。双击打开该服务的配置窗口则在登录分页中将“允许服务与桌面交互”勾选上。
编辑NSC.INI,做以下更改
- 在[Module]部分,除了CheckWMI.dll和RemoteConfiguration.dll这两行的注释不要去掉,其他DLL的注释都去掉。
- 在[Setting]部分的password设定一个密码,并把前面的注释去掉。
password=secret-password 改为 password=123456
- 在[Setting]部分的allowed_hosts部分设定Nagios的服务器IP或者设定一个IP段,并把前面的注释去掉。
allowed_hosts=192.168.200.249/32
- 在[NSClient]部分将port前的注释去掉,确认port的端口号是12489
启动nsclient++服务
当右下角出现了一个蓝色十字的ICON这表示
7.配置Nagios
建立需要监控的windows主机和服务对象
编辑文件windows.cfg
/usr/local/nagios/etc/objects/windows.cfg
在host的定义部分,可以修改实例中的host_name,alias,address三个部分来的参数。第一个参数use则是继承了template.cfg中对Windows的监控参数
define host{
use windows-server ; 从template中继承相关监控参数
host_name winserver ; 主机名称
alias My Windows Server ; 别名
address 192.168.1.2 ; IP地址
}
在Service定义部分
首先需要设定以下内容,用于确认监控对象的NSClient++的版本是否正确
define service{
use generic-service
host_name winserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
然后是定义监控对象的正常运行时间
check_command check_nt!UPTIME
随后是定义CPU的负载状况,下面的定义表示在5分钟内的平均负载超过80%则发出警告WARNING,而超过90%则是危机报警CRITICAL alert
check_command check_nt!CPULOAD!-l 5,80,90
定义内存负载状况,当内存使用率达到80则warning 90%则CRITICAL alert
check_command check_nt!MEMUSE!-w 80 -c 90
监控C盘空间,使用率达到80则warning 90%则CRITICAL alert
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
监控服务状态的格式,当服务停止了则发送CRITICAL alert
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
监控系统进程,当进程处于非运行状态时,则发送CRITICAL alert
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
8.密码设定
编辑/usr/local/nagios/etc/objects/commands.cfg 在check_nt部分中,command_line后面添加一个参数-s "NSClient主机的密码"
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
可以通过以下指令测试设备响应是否正常
/usr/local/nagios/libexec/check_nt -H 主机IP -p 12489 -s 密码 -v UPTIME
如果反馈的信息是System Uptime - 0 day(s) 8 hour(s) 44 minute(s) 则表示连接正常。
如果显示为could not fetch information from server,则有以下可能
密码不正确(最傻的可能,也是经常发生的可能)
服务器上有防火墙,需要开放12489端口。
在windows上的NSC.INI上的allow_hosts没有添加正确的nagios IP、
9.重新启动Nagios服务
在修改nagios配置文件之后,则可以运行/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
来验证配置文件是否正确。
service nagios restart
看看nagios的管理页面,被监控的windows服务器是否显示
参考资料
http://nagios.sourceforge.net/docs/3_0/monitoring-windows.html
注:属转载内容,有需要可参考
Nagios 监控Windows服务器(详细篇)的更多相关文章
- Nagios监控Windows的网卡流量
Nagios监控Windows的网卡流量 使用/usr/local/nagios/libexec/中的check_traffic.sh,不但可以监控Linux的网卡流量,也可以监控Windows服务器 ...
- 使用nagios检测windows服务器
1.安装nagios windows客户端 下载NSClient++的安装包,注意根据实际的32/64CPU来下载 下载地址 http://sourceforge.net/projects/nscpl ...
- 关于nagios监控远程服务器对服务器性能影响的测试
1. Nagios监视远程服务器时,是通过在控制端执行以下命令进行数据收集的: /usr/local/nagios/libexec/check_http -I 192.168.16.11 /us ...
- cacti监控windows服务器
参考文献: 通过Cacti监控windows资源 前提条件 一.已安装好Cacti:ubuntu下cacti安装配置 二.准备好以下安装文件: Cacti_SNMP_ ...
- Nagios 监控windows server Apache 服务
监控机需要使用check_apachestatus.pl插件插件下载地址:https://exchange.nagios.org/directory/Tutorials/Other-Tutorials ...
- Windows服务器学习篇:服务器连接与退出
此文是我早期在公司内部发布的一篇给予新入职程序员基础技术培训的文章,非常基础简单,现拿出来给大家分享.当然,已工作人士可直接忽略... 一.Windows服务器连接 1. 在桌面菜单中的“运行”里,输 ...
- windows服务器详细安全设置
1).系统安全基本设置 1.安装说明:系统全部NTFS格式化,重新安装系统(采用原版win2003),安装杀毒软件(Mcafee),并将杀毒软件更新,安装sp2补钉,安装IIS(只安装必须的组件),安 ...
- zabbix监控windows服务器
Zabbix agent 在windows上安装部署 1. 下载与解压 地址: http://www.zabbix.com/downloads/2.4.0/zabbix_agents_2.4.0.w ...
- paramiko监控 windows服务器 被监控服务器只需要安装openssh服务即可基于wmic完成大部分监控
#!/usr/bin/python #-*- coding: UTF-8 -*- #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
随机推荐
- MVC在页面View上获取当前控制器名称、Action名称以及路由参数
有时候在封装MVC通用控件时需要在页面上获取这些数据. 用以下方法即可: //获取控制器名称: ViewContext.RouteData.Values["controller"] ...
- C# WinForm拖入文件到窗体,得到文件路径
private void textBox1_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataForma ...
- idea创建Javaweb项目
1.Javaweb项目结构 1.1修改生成.class文件的位置为WEB-INF下的classes: 生成的.class文件位置: 1.2 设置第三方jar包添加位置:
- Mysql 求时间 between 昨天 and 上个月的今天 等时间函数
问题: Mysql表中一列create_time,类型datetime(YYYY-MM-DD HH:MM:SS),想获取上个月今天到昨天的数据. select * from 表名 where date ...
- spring各版本之间的特性增加
一.Spring3.0以后不再提供一个大的完整的jar包,而是分成20个小的jar包: org.springframework.aop, 包含在应用中使用Spring的AOP特性时所需的类. org. ...
- css 引入方式以及css的选择器
一.css的引入方式: 1.行内样式 <div> <p style="color: red">我是一个段落</p> </div> 2 ...
- Python中open文件的各种打开模式
对于Python打开文件的模式,总是记不住,这次在博客里记录一下 r+: Open for reading and writing. The stream is positioned at th ...
- 利用html5的FormData对象实现多图上传
<html> <head> <title>FormData多图上传演示</title> </head> <body> <a ...
- MOSS2010中如何用代码给托管元数据类型的栏目赋值
最近项目中遇到如何用代码给托管元数据类型的栏目赋值问题,经过折腾,现把我的思路和实现方法共享出来,让大家一起来学习学习.相互探讨下. /// <summary> /// 托管元数据 /// ...
- Azure本月最新活动,速度Mark!!
缤纷五月,翠色盈盈,风光如画,小编在这里给大家汇总了这个多彩五月最新的活动合集.我们一切都准备好了,就等你来参加了~ 首先最重磅的当然是新一届的全球微软开发者大会! 有吃有喝有 Build,5 月 ...