RHEL、Rocky、AlmaLinuxにIcinga2をインストールする方法


Icinga2は、Nagios監視ツールのフォークである機能豊富なオープンソースネットワーク監視およびアラートアプリケーションです。

Nagiosの欠点に対処し、改善された最新のユーザーインターフェイス、Icingaコアに変更を加えることなく新しい拡張機能を統合するためのREST API、追加のデータベースコネクタなどの新機能を導入するために構築されました。

Icinga2は、サービスだけでなくホストの可用性も監視します。これらのサービスには、SNMP、HTTP、HTTPS、およびSSHが含まれます。また、ルーターやスイッチなどのネットワークデバイスも監視します。

Icingaはまた、メトリックを収集し、ログを生成して、ネットワークインフラストラクチャの全体像を提供します。次に、ログとメトリックがダッシュボードに視覚化され、すべてがより適切なコンテキストに配置されます。

この記事では、Icinga2モニタリングアプリケーションをRHEL、Rocky Linux、およびAlmaLinuxにインストールする方法を紹介します。

Icinga2をインストールするための要件として、LAMPスタックをインストールする必要があります。ここで少し注意してください–Icinga2のインストールにはPHP7.3以降のバージョンが必要です。

RHEL 8にLAMPをインストールする方法についてのチュートリアルはすでにあります–この記事を使用してApache WebサーバーとMariaDBデータベースサーバーをインストールするのは、Icinga2でサポートされていないPHP7.2のインストールに焦点を当てているためです。

このガイドの最初のステップでは、PHP7.4と必要なモジュールをインストールするプロセスについて説明します。

ステップ1:PHPおよびPHPモジュールをインストールする

ApacheとMariaDBがインストールされたら、先に進んでPHP7.4をインストールしましょう。 PHP 7.2以降のバージョンがインストールされている場合は、次のコマンドを実行して削除します。

$ sudo dnf remove php

次に、システム上の現在のPHPモジュールをリセットします。

$ sudo dnf module reset php

その後、示されているように利用可能なPHPバージョンをリストします。

$ sudo dnf module list php

次に、PHP7.4を有効にします。

$ sudo dnf module enable php:7.4

PHP 7.4モジュールを有効にしたら、PHPと必要なPHP拡張機能をインストールします。

$ sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2にはphp-imagick拡張機能も必要です。ただし、これは他のPHPモジュールで行ったように従来の方法でインストールすることはできません。

拡張機能をインストールするには、次のコマンドを実行します。

$ dnf install -y ImageMagick ImageMagick-devel
$ sudo pecl install imagick

次に、rootユーザーに切り替えて、PHP.INIファイルに拡張子を追加します。

$ su -
$ echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

変更を適用するには、ApacheWebサーバーを再起動します。

$ sudo systemctl restart httpd

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

Icinga2はAppStreamリポジトリでホストされていないため、Icinga2をインストールするには、Icingaリポジトリを追加する必要があります。

これを行うには、まず、EPELリポジトリを有効にします。

$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

次に、GPG署名キーを有効にします。

$ sudo rpm --import https://packages.icinga.com/icinga.key

次に、/ etc/yum.repos.dディレクトリにリポジトリファイルを作成します。

$ sudo vim  /etc/yum.repos.d/icinga2.repo

次のコードブロックを貼り付けます

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

リポジトリファイルを保存して終了します。次に、キャッシュパッケージを更新します。

$ sudo dnf makecache

リポジトリを追加して、Icinga2パッケージおよびその他の関連するIcinga2パッケージをインストールします。

$ sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

次に、物理ホストと仮想ホストの両方の監視に使用されるNagiosプラグインをインストールします。

$ sudo dnf install nagios-plugins-all -y

次に、Icinga2ido-mysqlモジュールおよびその他の機能を有効にします。

$ sudo icinga2 feature enable ido-mysql syslog command

次に、変更を適用するためにIcingaを再起動します。

$ sudo systemctl restart icinga2

ステップ3:Icinga-IDOMySQLモジュールのデータベースを作成する

icinga2-IDO(Icinga Data Output)mysql機能は、すべての構成およびステータス情報を照合してデータベースにエクスポートするバックエンド機能です。このため、Icinga2-ido-mysql機能用のデータベースを作成する必要があります。

したがって、MySQLデータベースサーバーにログインします。

$ sudo mysql -u root -p

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

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY '[email protected]';

変更を適用して、データベースサーバーを終了します。

> FLUSH PRIVILEGES;
> EXIT;

次に、データベーススキーマを次のようにインポートします。データベースパスワードを入力するためのパスワードの入力を求められます。

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

次に、ido-mysql構成ファイルを編集します。

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

データベースブロックのコメントを解除し、データベースの詳細を指定します。

保存して終了。

次に、Icinga2を起動して有効にします。

$ sudo systemctl start icinga2
$ sudo systemctl enable icinga2

次に、図のようにIcinga2のステータスを確認します。

$ sudo systemctl status icinga2

以下の出力から、Icingaが期待どおりに稼働していることが明らかです。

ステップ4:RHEL8にIcingaWeb2をインストールする

IcingaWeb2は、コマンドラインインターフェイスも組み込んだオープンソースのWebベースの監視ツールです。 Icinga-ido-mysql、Icingaコア、Icinga2、その他のモジュールなど、すべてのバックエンドIcinga機能をサポートします。

IcingaWeb2をインストールするには、次のコマンドを使用してPowerToolsをインストールします。

$ sudo dnf install 'dnf-command(config-manager)'
$ sudo dnf config-manager --set-enabled powertools

インストールが完了したら、図のようにIcingaWeb2とCLIをインストールします。

$ sudo dnf install icingaweb2 icingacli

ステップ5:IcingaWeb2のデータベースを作成する

Icinga2-IDO-mysql機能のデータベーススキーマを作成したのと同じように、IcingaWeb2の2番目のスキーマも作成する必要があります。

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

$ sudo mysql -u root -p

IcingaWeb2のデータベースとデータベースユーザーを作成してから、IcingaWeb2データベースのデータベースユーザーにすべてのアクセス許可を付与します。

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY '[email protected]';

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

> FLUSH PRIVILEGES;
> QUIT

Icinga2がインストールされると、Icinga2の新しい構成ファイルが作成されました。図のように表示できます。

$ cat /etc/httpd/conf.d/icingaweb2.conf

変更を開始するには、ApacheWebサーバーを再起動する必要があります。

$ sudo systemctl restart httpd

さらに、次のようにSELinuxモードを「permissive」に設定する必要もあります。

$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

ステップ6:ブラウザからIcinga2のセットアップを完了する

Icinga2のインストールのステップは、セットアップトークンの作成です。これは、ブラウザーでIcinga2をセットアップするときの最初のステップでの認証に使用される一意のコードです。

シークレットトークンを生成するには、次のコマンドを実行します。

$ sudo icingacli setup token create

セットアップトークンをコピーして安全に保管してください。トークンを紛失した場合は、次のコマンドを実行してトークンを取得できます。

$ sudo icingacli setup token show

このガイドのこの時点で、すべての構成がチェックされています。残っているのは、Webブラウザからインストールを完了することです。これを行うには、表示されているURLを参照します

http://server-ip/icingaweb2/setup

ウェルカムページに、前に生成したセットアップトークンを貼り付けます。

トークンを貼り付けたら、[次へ]をクリックして続行します。これにより、「モジュール」ページに移動します。これにより、有効にできるすべてのモジュールの概要がわかります。デフォルトでは、「監視」モジュールが有効になっています。

好みのモジュールを有効にし、下にスクロールして[次へ]をクリックして続行します。

このセクションでは、PHPモジュール、ライブラリ、ディレクトリなど、すべてのPHP前提条件が満たされていることを確認します。すべて問題がなければ、下にスクロールして[次へ]をクリックします。

[認証]ページで、すべてをそのままにして、[次へ]をクリックします。

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

データベースの詳細が正しいことを確認するには、一番下までスクロールして、[構成の検証]をクリックします。

すべてがうまくいけば、構成が正常に検証されたという通知を受け取るはずです。

次のステップに進むには、下にスクロールして[次へ]をクリックします。 「認証バックエンド」の場合は、「次へ」をクリックしてデフォルトを受け入れます。

次のステップでは、Icinga2Webインターフェイスにアクセスしてログインするために使用される管理者ユーザーを作成します。

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

これまでに行ったすべての変更を確認してください。すべて問題がなければ、[次へ]をクリックし、変更を加える場合は、[戻る]をクリックして必要な変更を加えます。

次のセクションは、IcingaWeb2の監視モジュールの構成です。これはIcingaWeb2のコアモジュールであり、重要なイベントを追跡するための堅牢なフィルター機能を備えたステータスビューとレポートビューを提供します。

[次へ]をクリックして続行します。

次のステップでは、ステップ3で指定されたIcinga2-ido-mysql機能のデータベースの詳細をフォームに入力します。

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

構成が正常に検証されたという通知が表示されます。

次の手順に進むには、下にスクロールして[次へ]をクリックします。 「コマンドトランスポート」の場合、トランスポートタイプとして「ローカルコマンドファイル」を使用し、「次へ」をクリックします。

[セキュリティの監視]セクションで、[次へ]をクリックします。

もう一度、Icinga2モニタリングモジュールのすべての構成を確認します。すべて問題がなければ、[完了]をクリックします。それ以外の場合は、戻って必要な変更を加えます。

Icinga Web 2のセットアップがすべてうまくいった場合は、IcingaWeb2が正常にセットアップされたという通知を受け取る必要があります。 Webインターフェースにログインするには、「Login toIcingaWeb2」リンクをクリックします。

これにより、IcingaWeb2インターフェイスが開きます。管理者アカウントの詳細を入力し、[ログイン]をクリックします。

これにより、図のようにIcinga2監視ダッシュボードが表示されます。

以上です。そこから、ネットワークインフラストラクチャ内のさまざまなホストとサービスを監視できます。このガイドでは、RHEL 8、Rocky Linux、およびAlmaLinuxへのIcingaWeb2のインストールについて説明しました。