このガイドでは、物理サーバーまたは仮想サーバー、VM、ルーター、スイッチ、ファイアウォールアプライアンス、他のネットワークIoTデバイス。また、HTTP、FTP、SMTP、IMAP、その他のネットワークサービスなどのネットワークプロトコルの状態を監視し、リソース、物理センサー、ソフトウェア、CPU負荷、メモリ、ディスクスペースなどをホストし、ほとんどすべての相互接続を監視できます。 ICMPまたはping要求を介したネットワークデバイス。
もともとNagios監視システムのフォークであるIcingaは、オープンソースの最新のネットワーク監視アプリケーションであり、PHPで記述され、LinuxのApache / Nginx、PHP、MySQL / MariaDBコンポーネント(LAMPまたはLEMPスタックとも呼ばれます)の下に高度にデプロイされています。 Icinga 2は、メール、SMS、チャット、またはネットワーク、システム、サービス、またはその他の関連するネットワークの停止に関するその他の種類のアラートを介してシステムまたはネットワーク管理者に通知するように構成でき、ネットワークのダウンタイムまたはパフォーマンスに関するグラフィックを生成することもできます。
- ベアメタルマシンまたは仮想プライベートサーバーにインストールされたDebian9.2。
- 静的IPアドレスで構成されたサーバーのネットワークインターフェースカードの1つ。
- コンソールを介して、またはローカルまたはリモートアカウントのSSHサービスまたはsudoroot権限を介してリモートでrootアカウントに直接アクセスします。
- Webサービス用に構成された適切なDNSレコードを使用した、展開に応じたプライベートまたはパブリックのドメイン名。
- メールアラートを送信するために、構内で適切に構成されたメールサービス。
独自のサーバーにIcinga2Web監視ツールのインストールと構成を開始する前に、まず、システムがアプリケーションのコンパイルとインストールに関するすべてのソフトウェア要件を満たしていることを確認してください。最初のステップで、以下のコマンドを発行して、システムリポジトリとソフトウェアパッケージを更新します。
apt update
aptアップグレード
次のステップでは、次のコマンドを実行して、コマンドラインからシステムをさらに管理するために使用されるいくつかの必要なユーティリティをインストールします。
apt install wget bash-completion unzip
次に、次のコマンドを実行して、システムのホスト名を設定します。それに応じてホスト名変数を置き換えます。
hostnamectl set-hostname icinga
以下のコマンドを発行して、マシンのホスト名とhostsファイルを確認します。
hostnamectl
cat / etc / hostname
ホスト名–s
最後に、カーネルの更新とホスト名の変更を適切に適用するために、Debianサーバーを再起動します。
init 6
Icinga 2は、Webから構成できるネットワーク監視アプリケーションであり、その機能は主にPHPサーバー側プログラミング言語に基づいています。アプリケーションのPHPファイルスクリプトを実行するには、Apache HTTPサーバーなどのWebサーバーと、PHP処理ゲートウェイがシステムにインストールされて動作している必要があります。 Apache WebサーバーとPHPインタープリターを、Icingaが正しく実行するために必要なすべての必要なPHPモジュールと一緒にインストールするには、サーバーコンソールで次のコマンドを発行します。
apt install apache2 libapache2-mod-php7.0 php7.0-xml php7.0-opcache php7.0-xml php7.0-mbstring php7.0-json php7.0-curlphp7.0-ldapphp7。 0-cli php7.0-gd php7.0-intl php7.0-readline
ApacheとPHPをインストールしたら、root権限で次のコマンドを発行して、Webサーバーが稼働し、ポート80でネットワーク接続をリッスンしているかどうかをテストします。
netstat –tlpn
netstatネットワークユーティリティがDebianシステムにデフォルトでインストールされていない場合は、以下のコマンドを実行してインストールしてください。
apt install net-tools
netstatコマンドの出力を調べると、Apache Webサーバーがポート80で着信ネットワーク接続をリッスンしていることがわかります。同じタスクで、 ssを使用することもできます。 コマンド。デフォルトでDebian9に自動的にインストールされます。
ss- tulpn
システムでUFWファイアウォールアプリケーションなどのファイアウォールを有効にしている場合は、次のコマンドを発行して、HTTPトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow WWW
または
ufw allow 80 / tcp
iptablesを使用している場合 Debianサーバーでファイアウォールルールを管理するための生のルール。次のルールを追加して、ファイアウォールでポート80のインバウンドトラフィックを許可し、訪問者がIcinga2Webインターフェイスを閲覧できるようにします。
apt-get install -y iptables-persistent
iptables -I INPUT -p tcp --destination-port 80 -j ACCEPT
systemctl iptables-persistent save
systemctliptables-永続的なリロード
次に、以下のコマンドを発行して、HTTP接続をHTTPSにリダイレクトするために使用される次のApacheモジュールを有効にして適用します。
a2enmodリライト
systemctl restart apache2
最後に、HTTPプロトコルを介してDebianマシンのIPアドレス、ドメイン名、またはサーバーFQDNにアクセスして、ApacheWebサーバーのデフォルトのWebページをクライアントのブラウザに表示できるかどうかをテストします。マシンのIPアドレスがわからない場合は、 ifconfigを実行してください またはipa サーバーのIPアドレスを明らかにするコマンド。以下のスクリーンショットに示すように、DebianのデフォルトのApacheページがブラウザに表示されます。
http://your_domain.tld
クライアントのトラフィックを保護するHTTPSプロトコルを介してIcinga2監視アプリケーションにアクセスするには、次のコマンドを発行して、ApacheWebサーバーのSSLモジュールとSSLサイト構成ファイルを有効にします。また、ユーザーがHTTPS経由でインターフェースにアクセスするように強制するには、Apacheリライトモジュールを有効にします。
a2enmod ssl rewrite
a2ensite default-ssl.conf
次に、テキストエディタでApacheのデフォルトSSLサイト構成ファイルを開き、 DocumentRoot の後に次のコード行を追加して、URL書き換えルールを有効にします。 以下のサンプルに示すように、ディレクティブ:
nano /etc/apache2/sites-enabled/default-ssl.conf
SSLサイト構成ファイルの抜粋:
オプション+FollowSymlinks
AllowOverride All
すべてを許可する必要があります
また、以下の抜粋に示すように、VirtualHost行に次の変更を加えます。
TLS Apacheファイルを閉じて、 /etc/apache2/sites-enabled/000-default.confを開きます。 編集用のファイルを作成し、SSL構成ファイルと同じURL書き換えルールを追加します。 DocumentRootの後にコード行を挿入します 以下の例に示すようなステートメント。
オプション+FollowSymlinks
AllowOverride All
すべてを許可する必要があります
最後に、Apacheデーモンを再起動して、これまでに構成されたすべてのルールを適用し、HTTPプロトコルを介してドメインにアクセスします。インストール時にApacheによって発行された自動的に自己署名された証明書ペアを使用しているため、以下のスクリーンショットに示すように、ブラウザにエラー警告が表示されます。
systemctl restart apache2
https://yourdomain.tld
続行してHTTPSプロトコル経由でApacheのデフォルトのWebページにリダイレクトするには、警告を受け入れます。次のページがブラウザに表示されます。
UFWファイアウォールアプリケーションがHTTPSポートへの着信ネットワーク接続をブロックする場合は、次のコマンドを発行して、HTTPSトラフィックがファイアウォールを通過できるようにする新しいルールを追加する必要があります。
ufw allow'WWW Full'
または
ufw allow 443 / tcp
iptablesの場合 は、Debianシステムをネットワークレベルで保護するためにインストールされるデフォルトのファイアウォールアプリケーションです。次のルールを追加して、訪問者がドメイン名を閲覧できるように、ファイアウォールでポート443のインバウンドトラフィックを許可します。
iptables -I INPUT -p tcp --destination-port 443 -j ACCEPT
systemctl iptables-persistent save
systemctliptables-永続的なリロード
次のステップでは、次のPHP変数が有効になり、PHPのタイムゾーンが有効になるように、PHPのデフォルト構成ファイルにさらに変更を加える必要があります。 設定は正しく構成されており、システムの地理的な場所と一致しています。 /etc/php/7.0/apache2/php.iniを開きます 編集用のファイルを作成し、次の行が次のように設定されていることを確認します。また、最初に、PHP構成ファイルのバックアップを作成します。
cp /etc/php/7.0/apache2/php.ini {,. backup}
nano /etc/php/7.0/apache2/php.ini
php.ini で次の変数を検索、編集、変更します 構成ファイル:
php_value max_execution_time 300
php_value memory_limit 128M
php_value max_input_time 300
date.timezone =Europe / London
time.zoneを置き換えます 次のリンクhttp://php.net/manual/en/timezones.php
でPHPドキュメントによって提供されるタイムゾーンのリストを参照することにより、物理的な時間に応じて変更できます。PHP7で利用可能なOPCacheプラグインを介してWebサイトページの読み込み速度を上げたい場合は、以下に詳述するように、PHPインタープリター構成ファイルの下部に次のOPCache設定を追加します。
opcache.enable =1
opcache.enable_cli =1
opcache.interned_strings_buffer =8
opcache.max_accelerated_files=10000
opcache.memory_consumption =128
opcache。 save_comments =1
opcache.revalidate_freq =1
php.ini構成ファイルを閉じ、PHP構成ファイルの終わりを確認して、以下のコマンドを発行して変数が正しく追加されているかどうかを確認します。
tail /etc/php/7.0/apache2/php.ini
上記で説明した変更を行った後、次のコマンドを発行して、apacheデーモンを再起動し、新しい変更を適用します。
systemctl restart apache2
最後に、次のコマンドを実行してPHP情報ファイルを作成し、次の画像に示すように、次のURLのブラウザーからPHP情報スクリプトファイルにアクセスして、PHPタイムゾーンが正しく構成されているかどうかを確認します。 日付まで下にスクロールします PHPのタイムゾーン構成を確認するための設定。
echo'<?php phpinfo(); ?>'| tee /var/www/html/info.php
https://domain.tld/info.php
Icinga 2は、ユーザー、連絡先、およびその他の収集されたデータを、MySQL、SQLite、PostgreSQLなどの特定のRDBMSデータベースに保存します。このガイドでは、MySQLデータベースのフォークであるMariaDBデータベースをバックエンドとしてIcingaを構成します。以下のコマンドを発行して、MariaDBデータベースとmysqlデータベースにアクセスするために必要なPHPモジュールをインストールします。
apt install mariadb-server mariadb-client php7.0-mysql
MariaDBをインストールしたら、 netstat を実行して、デーモンが実行されているかどうかを確認し、ローカルホストのポート3306で接続をリッスンします。 またはss コマンド。
netstat –tlpn | grep mysql
次に、MySQLコンソールにログインし、次のコマンドを発行してMariaDBルートアカウントを保護します。
mysql -h localhost
use mysql;
update user set plugin ='' where user ='root';
flush特権;
exit
次に、スクリプト mysql_secure_installation を実行して、MariaDBを保護します。 Debianリポジトリからのインストールパッケージによって提供されます。実行中、スクリプトは、MariaDBデータベースを保護するために設計された一連の質問をします。たとえば、MySQLルートパスワードの変更、匿名ユーザーの削除、リモートルートログインの無効化、テストデータベースの削除などです。以下のコマンドを発行してスクリプトを実行し、MySQLデーモンを完全に保護するために尋ねられたすべての質問にyesと入力していることを確認してください。ガイドとして以外は、以下のスクリプト出力を使用してください。
sudo mysql_secure_installation
注:このスクリプトのすべての部分を実行することは、すべてのMariaDBに推奨されます
本番環境で使用されているサーバー!各ステップを注意深くお読みください!
MariaDBにログインしてセキュリティで保護するには、最新のが必要です。 rootユーザーの
パスワード。 MariaDBをインストールしたばかりの場合、
まだrootパスワードを設定していません。パスワードは空白になります、
ここでEnterキーを押すだけです。
rootの現在のパスワードを入力します(noneの場合は入力します):
OK、パスワードを正常に使用し、次に進みます...
ルートパスワードを設定すると、誰もMariaDBにログインできなくなります
適切な権限のないrootユーザー。
すでにrootパスワードが設定されているので、安全に「n」と答えることができます。
ルートパスワードを変更しますか? [Y / n] y
新しいパスワード:
新しいパスワードを再入力してください:
パスワードが正常に更新されました!
特権テーブルの再読み込み..
...成功!
デフォルトでは、MariaDBインストールには匿名ユーザーがあり、誰でも許可します
ユーザーアカウントを作成せずにMariaDBにログインするには
それら。これは、テストとインストールの作成のみを目的としています
少しスムーズに。に移動する前にそれらを削除する必要があります
本番環境。
匿名ユーザーを削除しますか? [Y / n] y
...成功!
通常、rootは「localhost」からの接続のみを許可する必要があります。これ
誰かがネットワークからルートパスワードを推測できないようにします。
rootログインをリモートで禁止しますか? [Y / n] y
...成功!
デフォルトでは、MariaDBには「test」という名前のデータベースが付属しており、誰でも使用できます
アクセス。これもテストのみを目的としているため、削除する必要があります
本番環境に移行する前。
テストデータベースを削除してアクセスしますか? [Y / n] y
-テストデータベースを削除しています...
...成功!
-テストデータベースの権限を削除しています...
...成功!
特権テーブルをリロードすると、これまでに行われたすべての変更が確実になります
すぐに有効になります。
特権テーブルを今すぐリロードしますか? [Y / n] y
...成功!
クリーンアップ...
すべて完了です。上記のすべての手順を完了した場合は、MariaDB
インストールは安全になります。
MariaDBをご利用いただきありがとうございます!
MariaDBのセキュリティをテストするには、rootパスワードなしでコンソールからデータベースにログインしてみてください。 rootアカウントにパスワードが指定されていない場合は、データベースへのアクセスを拒否する必要があります。パスワードが指定されている場合は、以下のスクリーンショットに示すように、ログインプロセスがMySQLコンソールに付与されている必要があります。
mysql -h localhost -u root
mysql -h localhost -u root –p
次に、MariaDBデータベースコンソールにログインし、最初に、次のコマンドを発行して、Icinga2アプリケーションで使用するデータベースと、このデータベースの管理に使用するパスワードを持つユーザーを作成します。それに応じて、このデータベース名、ユーザー、およびパスワードを置き換えてください。
mysql –u root -p
データベースicingadbを作成します;
icingadb。*のすべての権限を「icinga_pass」で識別される「icinga_user」@「localhost」に付与します;
権限をフラッシュします
終了
次に、次のコマンドを発行して、Icinga2 Webインターフェイスのユーザー、グループ、およびその他のWebインターフェイスのカスタムデータを格納するために使用される2番目のMySQLデータベースを作成します。また、上記のデータベースと同様に、データベース名と資格情報を適宜置き換え、データベースユーザーの強力なパスワードを選択してください。
mysql –u root –p
データベースicinga_usersを作成します;
icinga_users。*のすべての権限を「icinga_pass」で識別される「icinga_user」@「localhost」に付与します;
権限をフラッシュします
終了
これまでに行ったすべての変更を適用するには、MySQLデーモンとApacheデーモンを再起動し、次のコマンドを発行してデーモンが実行されているかどうかを確認します。
systemctl restart mysql apache2
systemctl status mysql apache2
Icinga2をインストール
Web監視アプリケーションをインストールするためのすべてのシステム要件が満たされたら、次のコマンドを発行して、MySQLデータベースにアクセスするために必要なMySQLモジュールと一緒にアプリケーションをインストールします。 Icinga 2には、Debian9リポジトリによって提供されるコンパイル済みのバイナリパッケージがあります。インストールはDebian9aptパッケージマネージャーを介して実行されます。
apt install icinga2 icinga2-ido-mysql
Debian 9リポジトリからIcinga2プリコンパイル済みバイナリをインストールしている間、アプリケーションを設定するための一連のプロンプトが画面に表示されます。最初のプロンプトで、MySQLモジュールを使用するようにIcinga2を構成して有効にするかどうかを尋ねられます。下の画像に示すように、プロンプトから[はい]を選択し、[Enter]キーを押して続行します。
次のプロンプトで、dbconfig-commonオプションを使用してicinga2-ido-mysql用にデータベースを構成するかどうかを尋ねられます。プロンプトから[いいえ]を選択し、[Enter]キーを押して、Icinga2のインストールを完了します。
Icinga 2をインストールしたら、Icinga 2デーモンを起動し、次のコマンドを実行してサービスステータスを確認します。
systemctl start icinga2.service
systemctl status icinga2.service
次のステップでは、以下のコマンドを使用して、Debian9からIcinga2Webインターフェイスとコマンドラインユーティリティパッケージをインストールします。
apt install icingaweb2 icingacli
WebからIcinga2の構成を開始する前に、Icinga 2デーモンを再起動して、すべての変更を取得し、以下のコマンドを発行してアプリケーションのステータスを確認します。
systemctl restart icinga2.service
systemctl status icinga2.service
次に、Apache Webサーバーによってwebrootパスにインストールされたデフォルトのindex.htmlファイルを削除し、以前に作成したinfo.phpファイルも削除します。
rm /var/www/html/index.html
rm /var/www/html/info.php
次のコマンドを実行して、IcingaデータベースのMySQLスキーマをインストールします。 MySQLデータベーススキーマは/usr / share / icinga2-ido-mysql / schema /にあります。 ディレクトリ。
mysql -u root icingadb -pWebからIcinga2のインストールを実行するには、次のコマンドを使用してインストールトークンを生成します。後で質問されたときにWebインターフェースに書き込むため、このトークンを書き留めておいてください。
icingacliセットアップトークンの作成
後でこのトークンが見つからない場合は、以下のコマンドを実行して、生成されたトークンを表示できます。
icingacliセットアップトークンショー
次に、ブラウザを開いてIcinga2 Webインターフェイスのインストールプロセスに進み、HTTPプロトコルを介してサーバーのIPアドレスまたはドメイン名を次のURLに移動します。
http://your_domain.tld/icingaweb2/setup
次のスクリーンショットに示すように、最初のインストール画面で、インストールプロセスを開始するために、以前に生成されたトークンを書き留めるように求められます。トークンを追加したら、[次へ]ボタンをクリックしてインストールプロセスを続行します。
次のインストール画面で、Icinga2Webインストール用にいくつかのモジュールを有効にするように求められます。下の画像に示すように、[ドキュメント]および[監視]モジュールを選択し、[次へ]ボタンをクリックして続行します。
次に、Icinga2 Webインストーラーは、インストールプロセスを続行するためにすべての要件が満たされているかどうかを検出するために、一連のシステムおよびPHPモジュールのチェックを実行します。下の画像に示すように、必要なすべてのPHPモジュールがインストールされ、適切に構成されているリストまで下にスクロールし、[次へ]ボタンを押して次のインストールセクションに移動します。
次の画面で、Icinga Web 2の認証バックエンド方式としてデータベースを選択し、[次へ]ボタンをクリックして続行します。
次のステップでは、Icinga 2WebMySQLデータベース名とこのデータベースのアクセスクレデンシャルを追加します。このデータベースは、Icinga2Webインターフェイスのユーザーとグループを保存するために使用されます。前に作成した2番目のデータベースのデータベース情報を使用します。 icingaweb_dbを追加します このリソースの名前として、ホスト、ポート、および文字セット変数をデフォルトのままにします。次の図に示すように、永続オプションとSSLオプションをチェックせず、[構成の検証]ボタンをクリックしてデータベース接続を検証します。終了したら、[次へ]ボタンをクリックして、次のインストーラーセクションに移動します。
次に、下のスクリーンショットに示すように、データベース認証の名前を設定し、[次へ]ボタンをクリックして続行します。
次の画面で、Icinga2 Webインターフェイスを管理するための管理ユーザー名を入力し、このアカウントの強力なパスワードを選択します。終了したら、[次へ]ボタンを押して、次のインストール画面に移動します。
次の設定でIcingaアプリケーションとログ設定を構成し、終了したら[次へ]ボタンをクリックして続行します。
- [スタックトレースの表示]を確認
- ストレージタイプ=データベース
- ロギングタイプ=ファイル
- ログレベル=エラー
- ファイルパス=/var/log/icingaweb2/icingaweb2.log
次の画面で、Icinga Web2が正常に構成されたことを通知するメッセージが表示され、詳細レポートにこれまでに行われたすべての構成が表示されます。レポートを確認し、[次へ]ボタンをクリックして、次のインストールセクションに進みます。
次の画像に示すように、[次へ]ボタンを押して、Icinga2モニタリングモジュールの構成を進めます。
次の画面で、Icinga2バックエンドの名前を追加し、バックエンドタイプとしてIDOを選択し、[次へ]ボタンをクリックして続行します。
以下のサンプルに示すように、サーバーのコンソールに戻り、Icinga MySQL IDO構成ファイルを開いて編集し、Icingaデータベース資格情報(最初のデータベース情報)を追加します。
nano /etc/icinga2/features-enabled/ido-mysql.conf
ido-mysql.conf ファイルの抜粋:
library "db_ido_mysql"
object IdoMysqlConnection "ido-mysql" {
user ="icinga_user"、
password ="icinga_pass"、
host =" localhost "、
database =" icingadb "
}
ファイルを保存し、Icinga2デーモンを再起動して、次のコマンドを発行して設定を適用します。その後、Icinga Webインターフェイスに戻り、インストールプロセスを続行します。
systemctl restart icinga2.service
IDOリソース環境をセットアップするために、Icingaデータベース情報を追加します。次の図に示すように、最初に作成されたデータベースのデータベース情報を使用します。データベース情報の編集が終了したら、[構成の検証]ボタンをクリックしてIcinga Monitoring IDOリソースを検証し、[次へ]ボタンをクリックして次のインストール画面に移動します。
次の設定でIcingaコマンドトランスポートを構成し、[次へ]ボタンをクリックして続行します。
- トランスポート名=icinga2
- トランスポートタイプ=ローカルコマンドファイル
- コマンドファイル=/var/run/icinga2/cmd/icinga2.cmd
次の画面で、下の画像に示すようにセキュリティを監視するために構成されたデフォルトの変数を残し、[次へ]ボタンを押して続行します。
次の画面で、Icinga2監視モジュールが正常に構成されたことを通知する新しいメッセージが表示されます。表示されたレポートを確認してすべてが正しく構成されているかどうかを確認し、[完了]ボタンを押してインストールを完了します。
インストールプロセスが正常に完了すると、IcingaWeb2が正常にインストールされたことを通知するおめでとうメッセージが表示されます。 Icinga2ログインページにリダイレクトするには、ログインリンクをクリックしてください。
インストールプロセス中に構成された資格情報を使用してIcingaWeb2にログインすると、Icinga Web 2ダッシュボードに移動します。ここに、サーバーに属する現在監視されているサービスとシステムリソースのリストが表示されます。
最後に、サーバーのコマンドラインに再度ログインし、次のコマンドを実行して、IcingaWeb2ログが作成されることを確認します。
mkdir -p / var / log / icingaweb2 /
chgrp -R icingaweb2 / var / log / icingaweb2 /
chmod -R 775 / var / log / icingaweb2 /
訪問者にHTTPSプロトコルを介してIcingaWeb2インターフェースを閲覧させるには、新しい .htaccessを作成します。 次の内容のWebサーバードキュメントルートパス内のファイル。
nano /var/www/html/.htaccess
.htaccess ファイルの抜粋:
RewriteEngine On
RewriteCond%{HTTPS} off
RewriteRule(。*)https://%{SERVER_NAME} / $ 1 [R、L]
RewriteEngine on
Options -Indexes
それで全部です!これで、Debian9.2にIcinga2ネットワーク監視アプリケーションが正常にインストールおよび構成されました。ただし、Apache HTTPサーバーは自己署名証明書を使用してサーバーとクライアントのブラウザ間のトラフィックを暗号化するため、ドメインにアクセスするたびに警告メッセージが常に生成され、ブラウザに表示されます。この場合、信頼できる認証局によって発行された証明書を購入するか、Let’sEncryptCAから無料の証明書ペアを入手する必要があります。
Icinga 2に関するその他のカスタム構成については、次のアドレスのドキュメントページにアクセスしてください:https://www.icinga.com/docs