搜索检查内存使用情况的 Nagios 插件在给出了很多结果,因此很难知道该使用哪一个,因为 Nagios 插件包不包含用于检查内存的插件。
所以我想知道其他人正在使用哪些?
我在 Linux 上为 Linux 主机使用 NRPE 和 Nagios。
答案1
我非常不同意 Glen M 的观点——缓存和缓冲区的可用内存量对于确保几乎所有类型的服务器操作系统上的几乎每种类型的应用程序的良好性能至关重要。
如果您等到网络服务器开始分页后才发现问题,那就太晚了。
在方便的工作站上,我可以看到这一点:
total used free shared buffers cached
Mem: 4135700 2588568 1547132 0 91024 2309052
-/+ buffers/cache: 188492 3947208
Swap: 4192944 156 4192788
我希望将使用情况报告为 100*[used-buffers/cache]/total,或者 100*188492/4135700。
为此编写插件并不费力。但有几种产品可以解决这个问题 - 例如检查内存
要构建您自己的,这里有一个小提示:
PCTUSED=`free | awk '/^Mem:/ {tot=$2; } /buffers/ { used=$3; } END { print used*100/tot }'`
答案2
几年前,我为此编写了一个插件。
从根本上来说,大多数操作系统的内存报告都存在一些缺陷——一些内容由应用程序持有,但如果需要的话,可以在任何时间释放。
您可能真正关心的是系统需要多久去一次磁盘进行交换 - 例如,它是否开始抖动。
我使用 vmstat 和一些正则表达式(或者可能是带有正则表达式的 python)来查看页入和页出,并查看它们是否通过了某个阈值。
这需要相当多的调整和监控,但这是我最擅长的。为 {nagios | big brother | xymon | mon} 编写插件并不困难