與 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 使用
留言