这是在Windows 2003 R2 (企业x64版本)上使用最新的稳定版本NSCP-0.4.1.105-x64.msi重新安装的x64。
D:\Program Files\NSClient++> nscp --version
000000014033F2A0, Version: 000000014033F248, Platform: 000000014033F218我试图弄清楚如何使用checkcpu命令。首先,我正在尝试alias_cpu,它在nsclient.ini中预定义为:
alias_cpu = checkCPU warn=80 crit=90 time=5m time=1m time=30s下面是我从控制台运行的命令:
D:\Program Files\NSClient++> nscp client --query alias_cpu
e tem\PDHCollector.cpp:185 Counter not found: cpu
ERROR: Could not get data for 5m please check log for details|nsclient.log显示:
2014-07-15 13:53:11: e:..\..\..\..\nscp\modules\CheckSystem\PDHCollector.cpp:185: Counter not found: cpu为实际命令关闭别名会给出相同的结果和日志条目:
D:\Program Files\NSClient++> nscp client --query checkCPU warn=80 crit=90 time=5m time=1m time=30s
e tem\PDHCollector.cpp:185 Counter not found: cpu
ERROR: Could not get data for 5m please check log for details|其他形式的命令名checkcpu和check_cpu也给出了相同的结果:
nscp client --query checkcpu warn=80 crit=90 time=5m time=1m time=30s
nscp client --query check_cpu warn=80 crit=90 time=5m time=1m time=30s事情似乎是正确配置的:
D:\Program Files\NSClient++> nscp sys --validate
Listing configured counters
---------------------------
cpu = \238(_total)\6: ok-rate(0)
memory commit bytes = \4\26: ok(1.14462e+009)
memory commit limit = \4\30: ok(4.16999e+010)
uptime = \2\674: ok(680227)
---------------------------
Listed 4 of 4 counters.我还可以查询其他计数器:
D:\Program Files\NSClient++> nscp client --query checkcounter "\TCPv4\Connections
Established"
OK all counters within bounds.|'\TCPv4\Connections Established'=22编辑:
我在文档NSClient++ Reference Manual.pdf中找到了一个关于配置CheckSystem插件的部分。它说,CPU负载的默认计数器是\ Processor (_total)处理器时间,我可以直接访问它:
D:\Program Files\NSClient++> nscp client --query checkcounter "\Processor(_total)\% Processor Time"
OK all counters within bounds.|'\Processor(_total)\% Processor Time'=0你知不知道校验器出了什么问题?
发布于 2014-07-19 01:23:38
我相信你已经想好了,不过万一有人来了.我无法准确地重新发布您的问题,因为我没有2003年64位的主机,但是它足够相似,我认为它是有帮助的。
我的Windows2008Server R2 nsclient安装与您的NSCP-0.4.1.105-x64.msi相同
C:\Program Files\NSClient++>nscp --version
000000014033F2A0, Version: 000000014033F248, Platform: 000000014033F218对于您的cpu和别名,我的配置完全相同,因为我也没有从原始配置中更改它们。在客户端模式下运行的命令:
C:\Program Files\NSClient++>nscp client --query alias_cpu
e tem\PDHCollector.cpp:215 Invalid frequency: 0
ERROR: Could not get data for 5m please check log for details|我将您的命令疑难解答与您的命令进行了匹配。除了错误不同之外,我的结果与您的其他测试结果相同,因为这里不包括这些测试。现在,我发现这很奇怪,因为这个客户端在我的nagios服务器上工作得很好,并且通过alias_cpu报告cpu状态非常好。因此,我试图查找我的错误,并在nsclient论坛http://www.nsclient.org/forums/topic/old-1169/上找到了这个论坛帖子。
其中的重要摘录,关于使用客户端模式,由Michael Medin本人撰写。
不确定您试图做什么,在检查CPU/meme/*时,客户端模式有点不稳定,因为它们要求收集线程正在运行(在客户端模式下运行时通常不是这样)。 更好的选择是这样做:{{ nscp测试 … check_cpu time=5m MaxWarn=80 }}
对我起作用了。因此,答案似乎是,客户端应该按照预期的方式工作,并试图像我们一样运行命令,结果可能不一致,也不可靠。
发布于 2014-07-20 01:23:19
感谢Matt确定nscp nsclient为什么不能使用check_cpu命令。
我发现,通过更改为使用nrpe模块而不是nsclient,下面的命令可以用于监视本地系统上的CPU负载:
nscp nrpe --exec query -H 127.0.0.1 -c alias_cpu 请注意,这需要在NRPEServer中设置nsclient.ini =1,并定义要执行的命令,例如:
[/settings/external scripts/alias]
alias_cpu = checkCPU warn=100 crit=100 time=1 warn=95 crit=99 time=5 warn=90 crit=95 time=15https://stackoverflow.com/questions/24768270
复制相似问题