这个问题仅涉及创建服务,即我们已经知道如何编写 Nagios 插件并将其设置为服务。
我想编写一个 Python 脚本来读取 MySQL 数据库表的每一行,并为每一行创建一个服务。我们更希望看到每一行都有绿灯/红灯,而不是有一个服务来检查整个表。这个数据库表中的行数意味着手动输入每个服务需要很长时间。
我研究过类似脚本雷达。然而,这基于我们不需要的被动检查。我们只是有一个想要创建为主动检查的服务列表。
答案1
只需遍历表格,将必要的信息写入 cfg 文件,将其放入主 nagios 配置文件加载的位置,然后重新加载 nagios 配置。根据您需要/想要检查的内容,编写适当的插件。完成。可以快速完成。
答案2
甚至可以在 bash 中完成。概括来说:
mysql -Ne 'SELECT service_name,'#',IFNULL(check_command,"-"),'#',hostname FROM table_of_wanted_nagios_monitors' |
while IFS='#' read sn cc hn; do
# strip extra spaces (due to IFS) from $cc for testing only
scc=$(echo "$cc" | sed 's/ //g')
if [ "x$scc" == "x-" -o "x$scc" == "x" ]; then
cc="";
else
cc=" check_command $cc";
fi;
cat > /path/to/nagios/configs/${hn}-${sn}.cfg <<EOF
define service {
use $sn
host_name $hn
$cc
}
EOF
done
我们使用类似的东西(尽管是用不同的语言编写的,而且复杂度要高得多),它查询一些内部 API 来填充我们的 Nagios。效果非常好。
答案3
有许多配置附加组件其功能正如您所描述的那样。
您可能能够使用“现成的”一个,根据您的需要调整一个,或者只是从其中一个中窃取一些代码。