因此,我試圖在NagiosXI中設置check_json.pl來監視一些統計信息。 https://github.com/c-kr/check_jsoncheck_json.pl中JSON查詢的屬性語法
我使用的是code with the modification I submitted in pull request #32,所以行號反映了該代碼。
JSON的查詢返回這樣的事:
[
{
"total_bytes": 123456,
"customer_name": "customer1",
"customer_id": "1",
"indices": [
{
"total_bytes": 12345,
"index": "filename1"
},
{
"total_bytes": 45678,
"index": "filename2"
},
],
"total": "765.43gb"
},
{
"total_bytes": 123456,
"customer_name": "customer2",
"customer_id": "2",
"indices": [
{
"total_bytes": 12345,
"index": "filename1"
},
{
"total_bytes": 45678,
"index": "filename2"
},
],
"total": "765.43gb"
}
]
我試圖監視大小的特定文件。所以檢查應該是這個樣子:
/path/to/check_json.pl -u https://path/to/my/json -a "SOMETHING" -p "SOMETHING"
...這裏我試圖找出出頭,這樣我可以監視的customer2文件名1的TOTAL_BYTES那裏,我認識了CUSTOMER_ID和指標,但不是他們的位置在相應的陣列中。
我可以通過使用字符串「[0]->{'total_bytes'}
」來監控customer1的總字節數,但我需要能夠指定哪個客戶並深入挖掘文件名(已知)和文件大小(監控的stat),而工作查詢只給出我的狀態(OK,WARNING或CRITICAL)。添加-p我得到的是錯誤....
與-p錯誤無論怎樣我已經能夠句話總是:
Not a HASH reference at ./check_json.pl line 235.
即使我能得到一個有效的OK從示例「[0]->{'total_bytes'}
」中,使用-p仍然會給出相同的錯誤。
鏈接指向要使用的格式的文檔將是非常有用的。 README中的腳本或-h輸出中的示例在這裏失敗。有任何想法嗎?
如果你要向下紀念這個崗位,我將不勝感激,如果你至少有禮節線索我,爲什麼。 –
看起來,你和原始check_json之間的巨大斷開是原始的期望返回的JSON是一個單一的對象,而你的JSON是一個對象數組。你的$ json_response是一個ARRAY ref:第235行(和第229,259,265行)期望它是一個HASH文件。 –