前書き

Icingaは、ネットワーク化されたホストとサービスの状態を監視するために使用される、柔軟で強力なオープンソース監視システムです。 Webワーカーのクラスターの負荷と稼働時間、ストレージデバイスの空きディスク領域、キャッシングサービスのメモリ消費などを監視するために使用できます。 Icingaは、適切にセットアップされると、多数のホストとサービスのステータスの概要を一目で把握できるだけでなく、パフォーマンスデータの通知、ダウンタイムスケジューリング、および長期保存も可能になります。

このチュートリアルでは、Icingaコア、そのデータベースバックエンド、およびIcinga Webインターフェイスのインストールについて説明します。 最後に、メール通知を設定して、サービスの不正動作時に受信トレイでアラートを受信できるようにします。

前提条件

このチュートリアルを開始する前に、次のものが必要です。

  • LAMPスタックがインストールされたUbuntu 16.04サーバー。チュートリアルの詳細はhttps://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on- ubuntu-16-04 [Linux、Apache、MySQL、PHP(LAMP)スタックをUbuntu 16.04にインストールする方法]。

  • Icinga Webにはログインページがあり、セットアップ中に機密情報の入力を求められるため、ApacheのSSL暗号化を有効にする必要があります。 チュートリアルhttps://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-で無料のSSL証明書を取得してインストールする方法を学ぶことができます04 [Ubuntu 16.04でLet’s Encryptを使用してApacheを保護する方法]。

ステップ1-Icingaのインストール

Icingaの最新バージョンを入手するには、まずIcingaチームが管理するソフトウェアリポジトリを追加する必要があります。 次に、「+ apt-get +」でソフトウェアをインストールし、いくつかの構成画面を実行して、Icingaのデータベースバックエンドをセットアップします。

最初に、Icinga開発者のパッケージ署名キーをダウンロードし、 `+ apt +`システムに追加します。

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

このキーは、Icingaリポジトリからダウンロードしたソフトウェアの整合性を自動的に検証するために使用されます。 次に、リポジトリアドレスを `+ apt `設定ファイルに追加する必要があります。 お気に入りのテキストエディタでファイルを開きます。 このチュートリアルでは「 nano +」を使用します。

sudo nano /etc/apt/sources.list.d/icinga.list

これにより、新しい空のテキストファイルが開きます。 次の行に貼り付けます。

/etc/apt/sources.list.d/icinga.list

deb https://packages.icinga.com/ubuntu icinga-xenial main

ファイルを保存して閉じ、パッケージキャッシュを更新します。

sudo apt-get update

`+ apt-get +`は、追加したばかりのリポジトリから情報をダウンロードし、Icingaパッケージをインストールできるようにします。

sudo apt-get install icinga2 icinga2-ido-mysql

これにより、メインのIcingaソフトウェアと、IcingaがMySQLデータベースに履歴データやその他の情報を格納できるようにするデータベースアダプターがインストールされます。 データベースアダプターのいくつかの構成画面が表示されます。

  1. Icinga 2のido-mysql機能を有効にしますか?

  2. dbconfig-commonを使用してicinga2-ido-mysqlのデータベースを構成しますか?

  3. その後、Icingaデータベースのパスワードを設定するよう求められます。 強力なパスワードを作成し、後で使用するために記録します。 ウェブインターフェースを設定するときに必要になります。

次に、Icingaデータベースバックエンドを実際に有効にする必要があります。 `+ icinga2 +`コマンドは、コマンドラインで機能を有効または無効にできます。 その間、*コマンド*機能も有効にして、最終的にはウェブインターフェースから手動でヘルスチェックを実行できるようにします。

sudo icinga2 feature enable ido-mysql command

新しい機能を使用するには、 `+ icinga2 +`を再起動します。

sudo systemctl restart icinga2

最後に、「+ icinga2 +」のステータスをチェックして、正常に実行されていることを確認します。

sudo systemctl status icinga2
Output● icinga2.service - Icinga host/service/network monitoring system
  Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

 Process: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 15416 (icinga2)
   Tasks: 11
  Memory: 7.7M
     CPU: 488ms
. . .

`+ Active:active(running)+`が表示されている場合、Icingaが稼働しています。 Icingaコアシステムとデータベースバックエンドのセットアップが完了したので、Webインターフェースを立ち上げて実行します。

ステップ2 – Icinga Webインターフェイスのインストール

Icingaコアは完全に構成可能であり、Webインターフェースなしで使用できますが、Icinga Webはホストとサービスの健全性に関する閲覧可能な概要を提供し、ダウンタイムのスケジュール、問題の確認、健全性チェックの手動トリガー、通知の送信を許可しますブラウザから。

`+ apt-get`でIcinga Webをインストールしましょう:

sudo apt-get install icingaweb2

Icinga Webの残りの設定はWebブラウザーで行われますが、切り替える前に、更新する必要がある設定が1つあります。 Icinga Webでは、PHP環境にタイムゾーンを設定する必要があるため、PHP構成ファイルを編集しましょう。

sudo nano /etc/php/7.0/apache2/php.ini

更新する特定の行を見つける必要があります。 「+ nano 」では、「 CTRL-W 」を押して検索インターフェイスを表示し、「 date.timezone 」と入力して、「 ENTER 」を押すことができます。 カーソルは、更新する必要がある行に移動します。 最初に、最初の「; +」セミコロンを削除して行のコメントを解除し、正しいタイムゾーンを入力します。 +正しいタイムゾーン形式は、https://secure.php.net/manual/en/timezones.php [PHPマニュアルのタイムゾーンセクション]で確認できます。 終了したら、次のようになります。

/etc/php/7.0/apache2/php.ini

date.timezone =

ファイルを保存して閉じます。 Apacheを再起動して更新します。

sudo systemctl restart apache2

次に、Icinga Webブラウザーベースのセットアップを実行します。

ステップ3-Icinga Webインターフェースのセットアップ

Webベースのセットアッププロセスのためにブラウザーに切り替える前に、_setupトークン_を作成する必要があります。 これは、Webセットアップツールの使用を許可するコマンドラインで生成するキーです。 `+ icingacli +`コマンドでこのキーを作成します:

sudo icingacli setup token create

短いトークンが出力されます:

Output

トークンをクリップボードにコピーし、ブラウザーに切り替えてIcinga Webアドレスを読み込みます。 デフォルトでは、これはサーバーのドメイン名またはIPアドレスの後に「+ / icingaweb2 +」が続きます。

https:///icingaweb2

image:https://assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web-setup.png [Icinga Web Setup Page]

設定画面が表示されます。 クリップボードにコピーしたトークンを貼り付け、[次へ]を押してプロセスを開始します。 通過するオプションのページがたくさんあります。 それらを1つずつステップスルーします。

モジュールのセットアップ

2ページ目には、ウェブインターフェース用の追加モジュールを有効にするオプションがあります。 * Monitoring *モジュールのみを有効にするデフォルトを安全に受け入れることができます。 [次へ]をクリックして続行します。

環境状態

3番目のページには、PHP環境のステータスが表示されます。 問題または設定の誤りを示す赤いボックスは表示されません。 PostgreSQLモジュールが欠落していることを示す黄色のボックスが表示される場合があります。 PostgreSQLではなくMySQLを使用しているため、これらは無視しても問題ありません。 [次へ]をクリックして続行します。

Icinga Web認証

4番目のページでは、Icinga Webユーザーの認証方法を選択できます。 認証のためにLDAPサービスと統合したい場合、これを選択する場所になります。 デフォルトの* Database *を使用して、MySQLデータベースにユーザーを保存します。 [次へ]をクリックして続行します。

ユーザーデータベースのセットアップ

5ページ目では、ユーザーデータを保存するデータベースを設定するように求められます。 これは、コマンドラインインストール中に以前に設定したデータベースとは別のものです。

ほとんどのデフォルトは問題ありませんが、データベース名とユーザー/パスワードの組み合わせを選択する必要もあります。

  1. リソース名:

  2. データベースの種類:

  3. ホスト:

  4. 港:

  5. データベース名:

  6. ユーザー名:

  7. パスワード:

  8. キャラクターセット:

  9. 持続的:

  10. SSLを使用:

    • Next *を押して続行します。

ユーザーデータベースの作成

次のページには、データベースが存在せず、データベースを作成するための資格情報がないことが表示されます。 ユーザー名に* root を入力し、MySQLルートパスワードを入力し、 Next *をクリックしてIcinga Webデータベースとユーザーを作成します。

認証プロバイダーに名前を付ける

次に、作成した認証バックエンドに名前を付ける必要があります。 デフォルトの* icingaweb2 *で問題ありません。 [次へ]をクリックします。

管理者アカウントを作成

ユーザーデータベースをセットアップしたので、最初のIcinga Web管理アカウントを作成できます。 ユーザー名とパスワードを選択し、[次へ]をクリックして続行します。

プリファレンスとログストレージ

次に、ユーザー設定とログを保存する方法に関するオプションが表示されます。 デフォルトは問題なく、syslogへのロギング中にデータベースに設定を保存します。 * Next *を押して続行します。

構成レビュー

すべての構成を確認するページが表示されます。 [次へ]をクリックして構成の詳細を確認し、監視モジュールの構成に進みます。

監視構成の概要

次に、Icinga Webの実際の監視モジュールの構成を開始します。 [次へ]をクリックして開始します。

監視バックエンドを選択

最初に、監視バックエンドを選択します。 * icinga のデフォルト名と IDO のタイプは問題ありません。 これは、Icinga Webがコマンドラインでのインストール時に以前に設定した ido-mysql *データベースから情報を取得することを示しています。

監視データベースを設定する

  • ido-mysql *データベースの接続の詳細を入力する必要があります。 このパスワードはインストール時に作成しました。

このページには、ユーザーデータベースのセットアップ画面と同じオプションがすべてあります。

  1. リソース名:

  2. データベースの種類:

  3. ホスト:

  4. 港:

  5. データベース名:

  6. ユーザー名:

  7. パスワード:

  8. キャラクターセット

  9. 持続的:

  10. SSLを使用:

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

コマンド転送方法の選択

次は*コマンドトランスポート*プロンプトです。 これにより、Webインターフェイスでヘルスチェックを手動で実行するときに、Icinga WebがIcingaにコマンドを渡す方法を指定できます。 * Local Command File のデフォルトは問題なく、ステップ1で有効にした command *機能で動作します。 [次へ]をクリックして続行します。

監視インターフェイスセキュリティのセットアップ

これにより、Webインターフェイスでマスクするデータを指定して、見物人がパスワードやその他の機密情報を見ることを防ぐことができます。 デフォルトは問題ありません。 * Next *を押して続行します。

監視モジュール構成の概要

もう一度、構成の概要が表示されます。 * Finish *を押して、Icinga Webのセットアップを完了します。 * Congratulations!*メッセージがロードされます。

[* Icinga Web 2にログイン*]をクリックし、管理者のユーザー名とパスワードでログインします。

image:https://assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web.png [Icinga Web Interface]

Icinga Webのメインインターフェイスがロードされます。 少し調べて、インターフェースに慣れてください。 サーバーにスワップスペースがセットアップされていない場合、赤い* Critical Error *ボックスが表示される場合があります。 今のところこれを無視するか、赤いボックスをクリックし、右側の列から*確認*を選択してコメントを入力し、最後に*問題を確認*ボタンをクリックして、問題を*確認*できます。

IcingaとIcinga Webのセットアップが完了したので、メール通知を設定しましょう。

ステップ4 –メールの設定

問題が発生したときにアラートを受信できない場合、監視はあまり役に立ちません。 Icingaのデフォルト設定には、管理者にメールを送信するためのスクリプトがいくつかありますが、サーバーで動作するようにメールを設定する必要があります。 これを行う最も簡単な方法は、「+ ssmtp +」というプログラムを使用して、サーバーのすべてのメールを標準のSMTPサーバーにルーティングすることです。

最初に、 `+ ssmtp +`といくつかのヘルパーメールユーティリティをインストールします。

sudo apt-get install ssmtp mailutils

そして今、SMTPの詳細で `+ ssmtp +`設定ファイルを編集します。 これらは、ISP、メールプロバイダー、またはIT部門から提供される必要があります。 ユーザー名、パスワード、SMTPサーバーのアドレスが必要です。

sudo nano /etc/ssmtp/ssmtp.conf

ファイルには既存の構成がいくつかあります。 削除して、ほとんどのSMTPサーバーで動作するはずのこの非常に基本的なセットアップに置き換えます。

/etc/ssmtp/ssmtp.conf

mailhub=:465
UseTLS=yes
FromLineOverride=yes
AuthUser=
AuthPass=

ファイルを保存して閉じます。 接続をテストするには、 `+ mail +`コマンドを使用します:

echo "" | mail -s ""

まもなく受信トレイにメールが表示されます。 次に、Icingaがメールを送信するためのいくつかの設定を更新する必要があります。

ステップ5-通知の設定とテスト

電子メール通知を機能させるには、Icingaが送信する電子メールアドレスを更新します。

sudo nano /etc/icinga2/conf.d/users.conf

「+ email +」行を、通知を受け取るアドレスに変更します。

/etc/icinga2/conf.d/users.conf

. . .
email = ""
. . .

最後にIcingaを再起動します。

sudo systemctl restart icinga2
  • icinga-master *ホストは、問題が発生したときに通知を送信するように既に構成されています。 問題を引き起こして何が起こるか見てみましょう。 警告をトリガーするために、システムの負荷を増やすために「+ stress +」というコマンドを使用します。

`+ stress`をインストールします:

sudo apt-get install stress

`+ stress +`は、負荷、ディスクIO、メモリ、その他のシステムメトリックを操作できます。 Icingaのデフォルト設定は、システムの負荷が5を超えると警告をトリガーします。 今それを引き起こしましょう:

stress --cpu 6

Icingaのウェブインターフェースに戻ると、*負荷*メトリックがゆっくりと上昇します。 数回確認した後、soft *警告*状態になります。 _Soft_は、_hard_状態と見なされる前にさらに数回チェックが失敗する必要があることを意味し、その時点で通知が送信されます。 これは、一時的な問題の通知を送信して自分自身をすばやく修正することを避けるためです。

警告がハード状態に達するのを待って、通知を送信します。 問題の詳細が記載されたメールが届きます。

`+ CTRL-C `を押して ` stress +`コマンドを終了します。 システム負荷はかなり速く回復し、Icinga Webインターフェースで* Ok *に戻ります。 また、問題が解決したことを通知する別のメールが届きます。

結論

このチュートリアルでは、Icingaのメール通知機能を含むIcingaおよびIcinga Webのセットアップに成功しました。 現在、Icingaホスト自体のみを監視しています。 次のチュートリアルhttps://www.digitalocean.com/community/tutorials/how-to-monitor-hosts-and-services-with-icinga-on-ubuntu-16-04 [ホストとサービスを監視する方法]に進みます。 Ubuntu 16.04のIcingaで]リモート監視を設定します。