这个问题只是关于创build服务,即我们已经知道如何编写Nagios插件并将其设置为服务。
我想编写一个Python脚本来读取MySQL数据库表的每一行,并为每一行创build一个服务。 我们更喜欢每行看到一个绿色/红色的灯光,而不是有一个单一的服务来检查整个表格。 此数据库表中的行数意味着需要很长时间才能手动input每个服务。
我已经看过像雷达这样的脚本。 然而这在被动检查上运行,这是我们不需要的。 我们只是有一个我们想要创build的服务列表作为主动检查。
只需遍历表,将必要的信息写入cfg文件,将其放入由主要的nagiosconfiguration文件加载的位置,然后重新加载nagiosconfiguration。 根据你需要/想要检查,写一个适当的插件。 完成。 可以做得很快。
甚至可以在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。 像冠军一样工作。
有许多configuration附件完全符合您的描述。
你可以使用一个“现成的”,适应你的需要,或者从其中一个代码中窃取一些代码。