使用Nagios监控Windows服务器CPU利用率(SNMP方式)

简介: 监控WIndows服务器相关性能,建议采用SNMP方式,但是配置比较麻烦。假如采用NSCLIENT++插件会更加方便,前提是需要在具体被监控服务器上安装插件。
监控WIndows服务器相关性能,建议采用SNMP方式,但是配置比较麻烦。假如采用NSCLIENT++插件会更加方便,前提是需要在具体被监控服务器上安装插件。万一影响了服务器本身的应用程序就不太好了。所以,我一直在寻找监控Windows服务器的SNMP方式。

1、增加脚本如下:

cat /usr/lib/nagios/plugins/check_snmp_win_cpuload.pl
#!/usr/bin/perl
#
# syntax: check_win_snmp_cpuload.pl HOST COMMUNITY WARN CRIT
#
# returns average load % across all CPUs
#

use strict;
use Net::SNMP;

my $host = shift;
my $community = shift;
my $warn = shift;
my $crit = shift;

unless($crit) {
errorExit("syntax: check_win_snmp_cpu.pl HOST COMMUNITY WARN CRIT");
}

our %ERRORS = (
OK => 0,
WARNING => 1,
CRITICAL => 2,
UNKNOWN => 3,
DEPENDENT => 4
);

my $oidCpuTable='.1.3.6.1.2.1.25.3.3.1.2';

# get SNMP session object
my ($snmp, $err) = Net::SNMP->session(
-hostname => $host,
-community => $community,
-port => 161,
-version => 1
);
errorExit( $err ) unless (defined($snmp));

# get cpu load table
my $response = $snmp->get_table(
-baseoid => $oidCpuTable
);
errorExit( "error getting cpu table" ) unless $response;
my %value = %{$response};
$snmp->close();

my $cnt = 0;
my $sum = 0;
foreach my $load ( values %value ){
$cnt += 1;
$sum += $load;
};
my $pct = int ($sum / $cnt);

my $err = ($pct > $crit) ? 'CRITICAL' : ($pct > $warn) ? 'WARNING' : 'OK';
print "$err : CPU Load $pct%/n";
exit $ERRORS{$err};

sub errorExit {
my $msg = shift;
print "UNKNOWN: $msg/n";
exit $ERRORS{UNKNOWN};
}



2、定义相应的执行命令:

cat mysnmp.cfg
define command{
command_name snmp_win_cpu
command_line /usr/lib/nagios/plugins/check_snmp_win_cpuload.pl '$HOS
TADDRESS$' public 80 90
}



3、新建服务配置文件:

cat service.cfg
define service {
host_name jw-inside
service_description CPU
check_command snmp_win_cpu
use generic-service
}


4、新建主机文件:
define host {
host_name jw-inside
alias jw-inside
address 10.10.10.11
use generic-host
icon_image vendors/windowsxp.png
icon_image_alt jw-inside-server
vrml_image vendors/windowsxp.png
statusmap_image vendors/windowsxp.png
}


其实熟悉nagios配置的人,只需要步骤1中的脚本就可以。我就不上图片了。
目录
相关文章
|
1月前
|
运维 监控 安全
宝塔Windows面板:轻松管理服务器的图形化神器
宝塔Windows面板是一款专为Windows服务器用户设计的图形化管理工具,旨在简化IIS配置、环境搭建与安全管理等复杂操作。它支持一键部署全栈运行环境(如IIS/Apache、PHP、MySQL等),提供可视化站点管理、安全防护与监控功能,并拥有丰富的插件生态。无论是个人站长、开发者还是中小企业,都能通过这款免费工具快速搭建网站、优化性能并强化安全性。尽管在高版本IIS兼容性和插件丰富度上略逊于Linux版,但其零门槛操作和全面功能仍使其成为理想的入门级服务器管理解决方案。
100 5
|
15天前
|
存储 监控 数据中心
Microsoft System Center 2025 version 2503 Multilanguage - Windows 服务器管理软件
Microsoft System Center 2025 version 2503 Multilanguage - Windows 服务器管理软件
28 0
|
2月前
|
安全 数据库 Windows
解决Windows云服务器带宽和CPU利用率高的问题
本文针对Windows Server 2019 ×64系统,介绍如何排查云服务器带宽和CPU利用率过高的问题。通过任务管理器、性能监视器等工具定位高资源占用的进程,并根据进程是否正常采取相应措施。对于正常进程,建议优化或升级配置;对于异常进程,建议关闭进程并进行系统备份或还原。详细步骤包括使用“perfmon -res”查看资源使用情况,结合PID查找具体进程,分析处理后台任务、杀毒软件及应用程序的影响。
118 1
|
监控 Windows
监控Windows操作 记录系统动作
http://softbbs.pconline.com.cn/10096274.html
602 0
|
2月前
|
Unix 虚拟化 Windows
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
124 4
Windows Server 2025 中文版、英文版下载 (2025 年 3 月更新)
|
2月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
118 4
Windows Server 2022 中文版、英文版下载 (2025 年 3 月更新)
|
29天前
|
Linux 虚拟化 iOS开发
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
76 29
Windows Server 2008 R2 OVF (2025 年 4 月更新) - VMware 虚拟机模板
|
2月前
|
存储 运维 监控
提升Windows Server环境安全性:ADAudit Plus的五大关键优势
在Windows Server环境中,内置的安全审计工具虽有用,但存在专业门槛高、耗时及功能缺失等问题。第三方工具ADAudit Plus应运而生,其五大优势包括:日志聚合、关键活动检测、定制化报告、灵活安全配置和长期日志保留,有效提升系统监控与合规能力。选择ADAudit Plus,助力企业更高效应对审计挑战,强化安全性。
|
3月前
|
安全 Unix 虚拟化
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
90 11
Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 2 月更新)
|
3月前
|
Unix 虚拟化 Windows
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)
147 7
Windows Server 2025 中文版、英文版下载 (2025 年 2 月更新)