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

結果
icinga-web rest api

抓 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

結果
icinga-web rest api

如果我只要單一台 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

參考 The Icinga Web REST API

最後修改日期: 2015 年 05 月 07 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。