nagios 3 可以将可用性数据导出为 csv(通过 Web GUI 单击)。现在我想自动并定期执行此操作,因此我正在寻找一种方法来设置所有参数(例如报告期),然后获取 csv。由于参数似乎未在 URL 中编码,因此我看不到明显的解决方案。
可以编写脚本吗?如果可以,怎么做?还是我需要进行屏幕抓取?
答案1
您可以使用自己喜欢的语言(perl、python 等)编写脚本,或者使用 curl/wget。所有 CGI 也可以从命令行运行,但您必须设置REMOTE_USER
环境变量。
参数绝对编码在 URL 中,但现有的 Nagios Web 界面使用框架,因此您看不到它们。查看报告所在的实际框架,您将看到 GET 参数。
您还可以使用浏览器插件,例如实时 HTTP 标头(适用于 Firefox)向您准确显示所请求的内容。例如:
获取 /cgi-bin/nagios3/avail.cgi?show_log_entries=&host=all&service=all&timeperiod=last7days&smon=11&sday=1&syear=2013&shour=0&smin=0&ssec=0&emon=11&eday=25&eyear=2013&ehour=24&emin=0&esec=0&rpttimeperiod=&assumeinitialstates=yes&assumestateretention=yes&assumestatesduringnotrunning=yes&includesoftstates=no&initialassumedservicestate=0&backtrack=4&csvoutput=