Ubuntu 20.04/22.04にIcinga2監視ツールをインストールする方法


Icinga2は、強力な無料のオープンソース監視ツールであり、ネットワークリソースを監視し、障害や停止が発生した場合にアラートまたは通知を送信します。また、パフォーマンスデータの生成とレポートの作成に役立つネットワークリソースからメトリックを収集します。

Icinga2はスケーラブルであり、さまざまな場所にまたがる小規模から大規模で複雑なネットワークを監視できます。このガイドでは、Ubuntu20.04およびUbuntu22.04にIcinga2監視ツールをインストールする方法を学習します。

ステップ1:Apache、MariaDB、およびPHPをインストールします

まず、Apache、MariaDB、およびPHPを、WebブラウザーでのIcinga2の最終セットアップ中に必要な追加のPHPモジュールとともにインストールします。

$ sudo apt install apache2 mariadb-server mariadb-client mariadb-common php php-gd php-mbstring php-mysqlnd php-curl php-xml php-cli php-soap php-intl php-xmlrpc php-zip  php-common php-opcache php-gmp php-imagick php-pgsql -y

インストールしたら、すべてのサービスが実行されていることを確認してください。その場合は、次のコマンドを実行します。

$ sudo systemctl start {apache2,mariadb}
$ sudo systemctl enable {apache2,mariadb}
$ sudo systemctl status {apache2,mariadb}

次に、mysql_secure_installationスクリプトを使用して、データベースrootアカウントのパスワードを設定し、匿名ユーザーを削除し、rootログインをリモートで禁止し、テストデータベースを削除する必要があります。

$ sudo mysql_secure_installation

PHPモジュールを配置したら、PHPで実行されているアプリケーションのデフォルトの構成ファイルであるphp.iniファイルを変更する必要があります。

お好みのエディタを使用して、ファイルを開きます。ここ。 nanoコマンドラインエディタを使用しています。

$ sudo nano /etc/php/7.4/apache2/php.ini

以下のパラメーターに以下の変更を加えます。

memory_limit = 256M 
post_max_size = 64M
upload_max_filesize = 100M	
max_execution_time = 300
default_charset = "UTF-8"
date.timezone = "Asia/Kolkata"
cgi.fix_pathinfo=0

date.timezone パラメータについては、現在のタイムゾーンを反映するように設定してください。 PHPでサポートされているタイムゾーンのリストは次のとおりです。

加えた変更を適用するには、ApacheWebサーバーを再起動するだけです。

$ sudo systemctl restart apache2

ステップ2:UbuntuにIcinga2をインストールする

PHP構成が邪魔にならないように、Icinga2をインストールします。ただし、Icinga2リポジトリはUbuntu20.04リポジトリでは提供されていません。そのため、リポジトリをシステムに手動で追加する必要があります。

したがって、curlコマンドを使用してGPGキーを追加することから始めます。

$ curl https://packages.icinga.com/icinga.key | apt-key add -

次に、Icinga2のリポジトリファイルを作成します。

$ sudo vim /etc/apt/sources.list.d/icinga-focal.list

次のエントリを追加します。

deb http://packages.icinga.com/ubuntu icinga-focal main
deb-src http://packages.icinga.com/ubuntu icinga-focal main

ファイルを保存して終了します。

リポジトリの使用を開始するには、次のようにパッケージリストを更新します。

$ sudo apt update

次に、Icinga2とモニタリングプラグインをインストールします。

$ sudo apt install icinga2 monitoring-plugins

インストールが完了したら、Icinga2サービスを有効にして開始します。

$ sudo systemctl enable icinga2
$ sudo systemctl start icinga2

Icinga2サービスが実行されていることを確認するには、次を実行します。

$ sudo systemctl status icinga2

出力は、Icinga2デーモンが実行中であり、準備ができていることを示しています。

ステップ3:Icinga2IDOモジュールをインストールする

Icinga2データ出力(IDO)は、すべての構成およびステータス情報をデータベースにエクスポートします。 IDOデータベースは、IcingaWeb2によってデータバックエンドとして使用されます。

モジュールをインストールするには、コマンドを実行します

$ sudo apt install icinga2-ido-mysql -y

途中、端末にポップアップが表示されます。 Icinga2のido-mysql機能を有効にするには、[はい]を選択してEnterキーを押します。

icinga2-ido-mysqlパッケージには、データベースがインストールおよび構成されている必要があります。これはdbconfig-commonで処理できますが、データベースは自分で作成します。したがって、「いいえ」を選択し、このオプションを拒否します。

次に、MariaDBデータベースサーバーにログインします。

$ sudo mysql -u root -p

次に、icinga2-ido-mysqlパッケージのデータベースとデータベースユーザーを作成し、データベースに対するすべての権限をユーザーに付与します。

> CREATE DATABASE icinga_ido_db;
> GRANT ALL ON icinga_ido_db.* TO 'icinga_ido_user'@'localhost' IDENTIFIED BY 'Password321';
> FLUSH PRIVILEGES;
> EXIT;

データベースを配置したら、コマンドを使用してIcinga2IDOスキーマをインポートします。データベースサーバーのルートパスワードを入力する必要があります。

$ sudo mysql -u root -p icinga_ido_db < /usr/share/icinga2-ido-mysql/schema/mysql.sql

ステップ4:Icinga2IDOモジュールを有効にする

icinga2-ido-mysqlデータベースとIcingaWeb2との通信を有効にするには、さらに一歩進んで、デフォルトの構成ファイルに変更を加える必要があります。

icinga2-ido-mysql構成ファイルを開きます。

$ sudo vim /etc/icinga2/features-available/ido-mysql.conf

次のエントリを編集し、手順3で指定したicinga2-ido-mysqlデータベースの詳細と一致するように設定します。

変更を保存して終了します。

次に、icinga2-ido-mysql機能を有効にします。

$ sudo icinga2 feature enable ido-mysql

変更を有効にするには、Icinga2を再起動します。

$ sudo systemctl restart icinga2 

ステップ5:IcingaWeb2をインストールしてセットアップする

インストールして構成する最後のコンポーネントはIcingaWeb2です。これは、Icinga2のフロントエンドとして機能する、高速で強力な拡張可能なPHPフレームワークです。

したがって、IcingaWeb2とIcinga CLIをインストールし、コマンドを実行します。

$ sudo apt install icingaweb2 icingacli -y

IcingaWeb2用に指定される2番目のデータベーススキーマを作成する必要があります。

もう一度、データベースサーバーにログインします。

$ sudo mysql -u root -p

次に、Icingaweb2のデータベースとデータベースユーザーを作成し、データベース上のデータベースユーザーにすべての権限を付与します。

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO 'icingaweb2user'@'localhost' IDENTIFIED BY '[email protected]';
> FLUSH PRIVILEGES;
> EXIT;

その後、次のコマンドを使用してセットアップトークンを作成します。セットアップトークンは、ブラウザでIcinga2をセットアップする際の認証中に使用されます。

$ sudo icingacli setup token create

トークンを紛失または忘れた場合は、次のコマンドを実行してトークンを表示できます。

$ sudo icingacli setup token show

ステップ6:UbuntuでのIcingaWeb2のインストールを完了する

すべての構成が整ったら、WebブラウザーでのIcinga2のセットアップを完了します。したがって、ブラウザを起動して、表示されているURLにアクセスしてください。

http://server-ip/icingaweb2/setup

これにより、図のようにウェルカムページに移動します。作成したセットアップトークンを覚えていますか?コピーしてテキストフィールドに貼り付け、[次へ]をクリックします。

[モジュール]ページでは、[監視]モジュールがデフォルトで有効になっています。ただし、好みのモジュールを自由に有効にすることができます。

次に、下にスクロールして[次へ]をクリックします。

次のステップでは、すべてのPHPモジュールとライブラリがインストールされ、ディレクトリのアクセス許可が正しいことを確認します。

次に、下にスクロールして[次へ]をクリックします。

[認証]ページで、認証の種類として[データベース]を選択し、[次へ]をクリックします。

[データベースリソース]セクションで、手順5で指定されているようにIcingaWeb2のデータベースの詳細を入力します。

次に、下にスクロールして[構成の検証]をクリックし、データベースの詳細を検証します。

すべてがうまくいけば、データベース構成は正常に検証されます。検証が成功したら、下にスクロールして[次へ]をクリックします。

次のステップで、[次へ]をクリックしてデフォルトを受け入れます。

[アプリケーションの構成]セクションで、[次へ]をクリックしてデフォルトを受け入れます。

次のステップでは、時間をかけてIcinga Web 2のすべての変更を確認します。すべての構成が正しいことを確認し、戻って必要な修正を行ってください。

すべて問題がなければ、下にスクロールして[次へ]をクリックします。

Icinga2 Webセットアップの最後のセクションでは、監視モジュールを構成します。そこで、[次へ]をクリックします。

次に、ステップ3で指定されているように、Icinga2IDOモジュールのデータベースの詳細を入力します。

次に、下にスクロールして[構成の検証]をクリックします。

繰り返しになりますが、データベースの詳細の検証は成功するはずです。エラーが発生した場合は、戻ってすべての詳細が正しいことを確認してください。

次のステップに進むには、下にスクロールして[次へ]をクリックします。

[コマンドトランスポート]セクションで、トランスポートタイプとして[ローカルコマンドファイル]を選択し、[次へ]をクリックします。

[セキュリティの監視]セクションで、[次へ]をクリックしてデフォルトを使用します。

監視モジュールのすべての変更を確認します。何かがおかしいと思われる場合は、戻って必要な修正を行ってください。

次に、下にスクロールして[完了]をクリックします。

この時点で、Icinga Web 2は正常にセットアップされており、以下に示すように、その旨の通知が表示されます。 Icinga2ダッシュボードにログインするには、[Login toIcingaWeb2]をクリックします。

これにより、図のようなログインページに移動します。管理者アカウントの詳細を入力し、Enterキーを押してログインします。

そして、Icinga2ダッシュボードが表示されます。既存の問題は、重大度のレベルとともに表示されます。たとえば、ダッシュボードは、アップグレードの準備ができている28個のパッケージを通知します。

これを確認するために、ターミナルに戻って次のコマンドを実行します。

$ sudo apt list --upgradable

パッケージをアップグレードするには、次のコマンドを実行します。

$ sudo apt upgrade -y

そして、これは問題を解決します。ダッシュボードから、これ以上問題が表示されていないことがわかります。

このガイドでは、UbuntuにIcinga2監視ツールをインストールする方法を示しました。確かに、インストールは非常に長く、細部に注意を払う必要があります。それでも、後者の手順を実行した場合は、すべてが正常に機能するはずです。