Icinga2 Directorを使ってみる

Icinga2

icingaをGUIで設定するためのプラグインDirectorをインストール・設定してみる。

Icinga Directorのインストール

前提としてicingaweb2の設定まで完了していること。
以下のコマンドでインストールを行う。

# dnf install -y icinga-director vim-icinga2

つづいてdirector用のデータベースの作成を行う。

# mysql -u root -p
CREATE DATABASE director CHARACTER SET 'utf8';
GRANT ALL ON director.* TO 'director'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
QUIT
#

データベースの設定。以下のコマンドを実行する。のちに問題になるが、ここのデータベースはicingaかもしれない。

# mysql -u root -p director < /usr/share/icingaweb2/modules/director/schema/mysql.sql

directorが有効になっているかどうかの確認。有効になっていなければ有効化する。

# icingacli module list
# icingacli module enable director
# icingacli module list

Icinga Directorの設定

ここからは、icingaweb2の画面へログインして作業を行う。

リソースの登録

画面右下の鍵マーク→Configuration → Application → Resourcesタブをクリック→Create a New Resource→Resource TypeでSQL Databaseを選択、Resource Nameに「director_db」、Database Typeに「MySQL」を指定、Database Name、Username、Passwordに先ほど作成したデータベースのものを入力、Character Setには「utf8」を指定する。Validate Configurationをクリックして問題なければSave Changesをクリックする。

ここまでは順調に進むのだが…

つづいて、画面左のIcinga DirectorをクリックするとKickstart Wizard画面になるのだが以下のエラーが出た。

Migration 0 failed (SQLSTATE[42000]: Syntax error or access violation: 1142 CREATE command denied to user 'icinga'@'localhost' for table icinga.director_daemon_info)

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'icinga.director_activity_log' doesn't exist, query was: SELECT COALESCE(id, 0) AS id FROM director_activity_log WHERE checksum = ( SELECT last_activity_checksum FROM director_generated_config WHERE checksum = ( SELECT config_checksum FROM director_deployment_log ORDER by id desc limit 1 ))

データベースのテーブルを調べると、icingaにはdirector_daemon_infoやdirector_activity_logのようなテーブルはなく、directorには存在した。
以下のコマンドを実行したところ、上記のエラーがなくなり、Kickstart Wizard画面へ進んだ。

# mysql -u root -p icinga < /usr/share/icingaweb2/modules/director/schema/mysql.sql

このあと、drop database director; をして、再度create database director; 等を実行しておいた。

Kickstart Wizard画面

icinga apiユーザのパスワード設定

設定を進める前に、apiユーザのパスワードを変更しておく。/etc/icinga2/conf.d/api-users.confのpassword =”abcdefgh” の部分を変更する。保存したらicinga2を再起動する。

# systemctl restart icinga2

以下のコマンドで接続確認を行う。

# curl -k -s -S -i -u root:上記で設定したパスワード https://localhost:5665/v1

Database backend

この後は、Web画面で作業を行っていく。
ログイン直後の画面左の「Icinga Director」をクリックする。

Database backend→DB Resourceで、先ほど作成したリソースdirector_dbを選択する。

Kickstart Wizard

Endpoint NameにサーバのFQDNを入力、Icinga HostにサーバのIPアドレスを入力、API userとPasswordに上記で設定したものを入れる。

入力が終わったら「Run import」をクリックする。

コメント

タイトルとURLをコピーしました