我一直在寻找几个小时的插件,如果我的服务器的CPU负载在过去的5个小时内已经超过了90%,就会通知我。 没有运气环顾Nagios交换。
任何人都可以帮忙吗?
谢谢!
UNIX下的CPU负载通常定义为可运行状态下的进程数量。 我们以1分钟,5分钟和15分钟为间隔进行测量。 命令uptime是输出负载平均值的常用方法。
〜$正常运行时间18:35:22最多1分钟,1个用户,平均负载:0.04,0.01,0.01
check_load接受三个元素的元组,匹配1,5和15分钟平均值,并接受警告和临界阈值。
作为一个粗略的想法,尝试check_load -c 0.9,0.9,0.9 , check_interval为1小时, max_check_attempts为5。
还要注意, -r参数。 这解决了大多数CPU是多核的事实,因此可以单独充分利用,同时仍然具有过剩的容量。
基本的check_load Nagios检查只会评估/proc/loadavg ,它只有1,5和15分钟的平均值。 如果你需要更多的东西,你需要积压到目前为止。 顺便提一下, sysstat包就是这样做的 – 它以给定的时间间隔评估和logging性能值,并通过sar命令行实用程序使它们可用。 check_sa Nagios插件能够评估输出并平均值以符合您的需求。
我应该补充说Nagios是一个相当差的select,实际上是根据一段时间内平均的性能值来定义报警阈值,因为这需要Nagios不支持的广泛的状态保持。 其他收集绩效数据的监控系统在这里做得更好。 如果你不能pipe理复杂性和处理前者的技术要求(SNMP),我会build议看看OpenNMS,或者至less像Munin 。 两者都具有能够绘制花式RRD图表的优点,帮助您在检测趋势之前将其确定为评估规则。
令人惊讶的 – 不是吗?
我们也必须自己写一个监视器。
标准的check_load是非常没有意义的,因为它必须与系统内(逻辑)处理器的数量相关联。
所以我们大概是这样做的: – 查看系统中报告了多less个处理器 – 将当前负载除以该数字
在那里,你会得到90%的分数。
我们使用100%的警告和150%的危险。
安装systat crontab sa -q 10000000 | mail [email protected]
基本上,萨尔默认给你10分钟的状态细节。
所以对于平均负载…
[root @ ops2〜]#sar -q | tail -5
05:00:01 PM 0 527 0.00 0.01 0.00
05:10:01 PM 1 528 0.00 0.00 0.00
05:20:01 PM 6 537 0.00 0.00 0.00
05:30:01 PM 2 532 0.00 0.01 0.00
平均:2 529 0.03 0.05 0.04
这可以报告一些事情,尽pipe电子邮件服务器报告正在消失,如应用程序dynamic和新的更深入(但成本的钱)
恕我直言,纳吉奥斯仍然是最好的钱…地狱,你甚至可以集成它与ircd
纳吉奥斯肯定是我会去的方式。 它可以很容易地使用他们的预制插件,或者编写你自己的nrpe插件,并且可以用hipchat,irc,pagerduty或自定义警报系统