根据处理器数量更新 Monit 配置的脚本

Script to update Monit config based on amount of processors

我想构建一个脚本来安装一个监控配置来监控服务器上的平均负载。有没有办法说“如果服务器有 1 CPU 就使用这个阈值,或者如果服务器有 2CPU 就使用这个阈值? 我有大约 24 台服务器,并且每天都在添加更多,我希望只安装文件并适应服务器,或者如果服务器升级为具有更多 CPU。 有任何想法吗? 谢谢

刚看到latest release notes on Monit 5.26.0。有一个新选项可以检查每个核心。

if loadavg(1m) per core > 2 then alert
if loadavg(1m) > 8 then alert # same test on a 4 core system
if loadavg(1m) > 18 then alert # same test on a 9 core system

唯一的问题是大多数 OS' Repo 不会提供那么新的版本。所以你最终可能会自己编译它或者使用 bash 脚本创建配置文件,比如

#!/usr/bin/env bash

# Integers only!
percore=2

cores=$(grep processor /proc/cpuinfo | wc -l)
load=$(expr $cores \* $percore)

echo "if loadavg(1m) > ${load} then alert" >> myMonitRcTemporaryFile

如果添加 CPU(如在 VM 中),这肯定不会有反应...