在這裏,我試圖用一個插件來檢查服務是否運行與否多個值,如果有任何警告或所需的任何重要的操作,同時還有性能參數。我們如何提供一個參數無論是在services.conf或comands.conf
我們用下面的插件來檢查服務器是否活着還是不讀它的性能數據JSON https://github.com/drewkerrigan/nagios-http-json
我想讀一個JSON文件,如下這對http://localhost:8080/sample.json
的託管插件在命令行上完美運行,它向我展示了所有可用的度量標準。
$:/usr/lib/nagios/plugins$ ./check_http_json.py -H localhost:8080 -p sample.json -m metrics.etp_count metrics.atc_count
OK: Status OK.|'metrics.etp_count'=101 'metrics.atc_count'=0
但是當我嘗試在Icinga2配置相同,它不會告訴我這個性能指標,雖然它不給任何錯誤,但在同一時間,它不顯示任何值。
找到JSON,Command.conf和Service.conf,如下所示。
{
"metrics": {
"etp_count": "0",
"atc_count": "101",
"mean_time": -1.0,
}
}
下面是我commands.conf和services.conf
commands.conf
/* Json Read Command */
object CheckCommand "json_check"{
import "plugin-check-command"
command = [PluginDir + "/check_http_json.py"]
arguments = {
"-H" = "$server_port$"
"-p" = "$json_path$"
"-w" = "$warning_value$"
"-c" = "$critical_value$"
"-m" = "$Metrics1$,$Metrics2$"
}
}
services.conf
apply Service "json"{
import "generic-service"
check_command = "json_check"
vars.server_port="localhost:8080"
vars.json_path="sample.json"
vars.warning_value="metrics.etp_count,1:100"
vars.critical_value="metrics.etp_count,101:1000"
vars.Metrics1="metrics.etp_count"
vars.Metrics2="metrics.atc_count"
assign where host.name == NodeName
}
沒有任何一個有任何我們怎麼能通過多重在Command.conf和Service.conf中的時間值?