icinga-web 是 icinga 另外 web 瀏覽監控資料的介面,就是 icinga + ido2db 把監控資料餵到資料庫後,icinga-web 瀏覽資料庫裡面的資料的呈現。
本身 icinga-web 有 REST API 可以使用
用法如下
http://xxx/icinga-web/web/api/ TARGET / COLUMNS / FILTER / ORDER / GROUPING / LIMIT / COUNTFIELD / OUTPUT_TYPE host or service columns[col1|col2|col3|...] filters order[column| asc or desc] group[] limit[] json or xml
這邊我的需求
1。抓取 host 是 down 的
2。抓取 service 是 critical 的
3。傳回值是 xml
抓 host = down,state = 1,columns 再多了 status_update_time、output、perfdata (根據資料庫 table 名稱配出來的)
https://1.1.1.1/icinga-web/web/api/host/filter[(HOST_CURRENT_STATE|=|1)]/columns[host_status_update_time|host_output|host_perfdata|SERVICE_NAME|HOST_NAME|HOST_CURRENT_STATE|HOSTGROUP_NAME]/order(HOST_CURRENT_STATE;DESC)/countColumn=SERVICE_ID/authkey=XXXXX/xml
抓 service = critical,state = 2
http://1.1.1.1/icinga-web/web/api/service/filter[(SERVICE_CURRENT_STATE|=|2)]/columns[service_status_update_time|service_output|service_perfdata|SERVICE_NAME|SERVICE_CURRENT_STATE|HOST_NAME|HOSTGROUP_NAME]/order(SERVICE_CURRENT_STATE;DESC)/countColumn=SERVICE_ID/authkey=XXXXX/xml
如果我只要單一台 host,就可以在 filter 改成 HOST_NAME|=|名稱
https://1.1.1.1/icinga-web/web/api/service/filter[(HOST_NAME|=|XXX)]/columns[service_status_update_time|service_output|service_perfdata|SERVICE_NAME|SERVICE_CURRENT_STATE|HOST_NAME|HOSTGROUP_NAME]/order(SERVICE_CURRENT_STATE;DESC)/countColumn=SERVICE_ID/authkey=XXXXX/xml
留言