與 icinga classic UI 不同的是,icinga-web 是讀取 icinga 透過 ido2db 寫到 資料庫的資料,也提供 API 使用

# 安裝 icinga-web

git clone git://git.icinga.org/icinga-web.git
cd /root/icinga-web/
make clean; ./configure --prefix=/usr/local/icinga/web --with-web-user=apache --with-web-group=apache
make install
make install-apache-config

# 測試 php modules 相依性

php ./bin/testdeps.php

# 建立 icinga web 資料庫

CREATE DATABASE icinga_web;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
flush privileges;

# icinga web 是另一個資料庫,跟 icinga 透過 ido2db 存入的不是同一個

cd /root/icinga-web/
mysql -u root -p icinga_web < ./etc/schema/mysql.sql

# 因為會建立 icinga-web.conf 檔,所以要 reload 一下 apache

service httpd graceful

# 測試瀏覽 icinga-web

http://1.1.1.1/icinga-web

預設帳密為 root / password
password 也可以在 source 裡執行變更,web 介面當然也可以

make icinga-reset-password

最後記得,主機開機是要啟用這些服務的

chkconfig ido2db on
chkconfig icinga on
chkconfig httpd on
chkconfig mysqld on

# 開始使用 API
登入 http://1.1.1.1/icinga-web ,在左上角建立新 User,讓 Auth via: 為 auth_key,並產生 Authkey for Api
還要在 Roles 給與 appkit.api.access 權限,或 選擇群組給 appkit_user

key 長這樣子

 Z4uduq9J7JsyuE47uOv6USmaOQw

# 測試 API
http://1.1.1.1/icinga-web/web/api/service/authkey=Z4uduq9J7JsyuE47uOv6USmaOQw/json
http://1.1.1.1/icinga-web/web/api/host/authkey=Z4uduq9J7JsyuE47uOv6USmaOQw/json
http://1.1.1.1/icinga-web/web/api/host/columns[HOST_NAME]/authkey=Z4uduq9J7JsyuE47uOv6USmaOQw/json

其它參考 : http://docs.icinga.org/latest/en/icinga-web-api.html

# 使用 Perl 測試

use strict;
use Monitoring::Icinga;

my $api = Monitoring::Icinga->new(
		BaseURL      => 'http://1.1.1.1/icinga-web/web/api',
		AuthKey      => 'Z4uduq9J7JsyuE47uOv6USmaOQw'
  );

$api->set_columns('HOST_NAME', 'HOST_CURRENT_STATE', 'HOST_OUTPUT');
my $hosts = $api->get_hosts(0,1,2);

use Data::Dumper;
print Dumper $hosts;

$api->set_columns('HOST_NAME', 'SERVICE_NAME', 'HOST_CURRENT_STATE', 'HOST_OUTPUT');
my $services = $api->get_services(0,1,2,3);

print Dumper $services;

假如不用 icinga-web 的話,可以試試這個 CGI
http://exchange.nagios.org/directory/Addons/APIs/Ajax-CGI/details
把 ajax.cgi.txt 放到 /usr/local/icinga/sbin/api.cgi
就透過  http://1.1.1.1/icinga/api.cgi 使用

Related posts 相關文章
postman 與 swagger 是 API 開發工具
More...
使用 Grafana 與 Prometheus 監控主機
More...
簡單容易自己架設的監控平台-Uptime Kuma
More...
再來一個監控系統,一鍵安裝,嚇死人的介面-netdata
More...

作者

留言

撰寫回覆或留言

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