序章
Icingaは、ネットワーク化されたホストとサービスの状態を監視するために使用される、柔軟で強力なオープンソースの監視システムです。 Webワーカーのクラスターの負荷と稼働時間、ストレージデバイスの空きディスク容量、キャッシュサービスのメモリ消費量などを監視するために使用できます。 適切に設定されると、Icingaは、多数のホストとサービスのステータスの概要、通知、ダウンタイムスケジューリング、パフォーマンスデータの長期保存を一目で確認できます。
このチュートリアルでは、Icingaコア、そのデータベースバックエンド、およびIcingaWebインターフェイスのインストールについて説明します。 最後に、サービスが誤動作しているときに受信トレイでアラートを受信できるように、電子メール通知を設定します。
前提条件
このチュートリアルを開始する前に、次のものが必要です。
- LAMPスタックがインストールされたUbuntu16.04サーバー。これについては、チュートリアル Ubuntu 16.04 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法で詳しく説明されています。
- Icinga Webにはログインページがあり、セットアップ中に機密情報を入力するように求められるため、ApacheのSSL暗号化を有効にする必要があります。 無料のSSL証明書を取得してインストールする方法については、チュートリアル Ubuntu16.04でLet’sEncryptを使用して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
これにより、新しい空白のテキストファイルが開きます。 次の行に貼り付けます。
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データベースに入れることができるデータベースアダプターがインストールされます。 データベースアダプタの設定画面がいくつか表示されます。
- Icinga 2のido-mysql機能を有効にしますか? はい
- dbconfig-commonを使用してicinga2-ido-mysqlのデータベースを構成しますか? はい
- 次に、Icingaデータベースのパスワードを設定するように求められます。 強力なパスワードを作成し、後で使用できるように記録します。 Webインターフェイスを設定するときに必要になります。
次に、Icingaデータベースバックエンドを実際に有効にする必要があります。 The icinga2
コマンドは、コマンドラインの機能を有効または無効にできます。 その間、コマンド機能も有効にします。これにより、最終的にWebインターフェイスから手動のヘルスチェックを実行できるようになります。
- 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)
Active: active (running) since Thu 2017-04-20 00:54:55 UTC; 3s ago
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–IcingaWebインターフェイスのインストール
Icingaコアは完全に構成可能であり、Webインターフェイスなしで使用できますが、Icinga Webは、ホストとサービスの状態のブラウザー可能な概要を提供し、ダウンタイムのスケジュール設定、問題の確認、手動でのヘルスチェックのトリガー、通知の送信を可能にします。ブラウザから。
でIcingaWebをインストールしましょう apt-get
:
- 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
. カーソルが更新する必要のある行に移動します。 まず、頭文字を削除して行のコメントを解除します ;
セミコロンを押してから、正しいタイムゾーンを入力します。 正しいタイムゾーン形式は、PHPマニュアルのタイムゾーンセクションにあります。 終了すると、次のようになります。
date.timezone = America/New_York
ファイルを保存して閉じます。 Apacheを再起動して更新します。
- sudo systemctl restart apache2
次に、IncingaWebのブラウザベースのセットアップを実行します。
ステップ3—IcingaWebインターフェイスを設定する
Webベースのセットアッププロセスをブラウザに切り替える前に、セットアップトークンを作成する必要があります。 これは、Webセットアップツールの使用を許可するコマンドラインで生成するキーです。 このキーは icingacli
指図:
- sudo icingacli setup token create
短いトークンが印刷されます:
Output1558c2c0ec4572ab
トークンをクリップボードにコピーしてから、ブラウザに切り替えてIcingaWebアドレスをロードします。 デフォルトでは、これはサーバーのドメイン名またはIPアドレスの後に続きます /icingaweb2
:
https://icinga-master.example.com/icingaweb2
設定画面が表示されます。 クリップボードにコピーしたトークンを貼り付け、次へを押してプロセスを開始します。 通過するオプションのページがたくさんあります。 一度に1つずつ説明します。
モジュールのセットアップ
2ページ目には、Webインターフェイス用にいくつかの追加モジュールを有効にするオプションがあります。 Monitoringモジュールのみを有効にするというデフォルトを安全に受け入れることができます。 次へをクリックして続行します。
環境ステータス
3ページ目は、PHP環境のステータスを示しています。 問題または構成の誤りを示す赤いボックスは表示されないはずです。 PostgreSQLモジュールが欠落していることを示す黄色のボックスが表示される場合があります。 PostgreSQLではなくMySQLを使用しているため、これらは無視しても問題ありません。 次へをクリックして続行します。
IcingaWeb認証
4番目のページでは、IcingaWebユーザーを認証する方法を選択できます。 認証のためにLDAPサービスと統合したい場合は、これを選択する場所になります。 デフォルトのDatabaseを使用して、MySQLデータベースにユーザーを格納します。 次へをクリックして続行します。
ユーザーデータベースの設定
5ページ目では、ユーザーデータを保存するためのデータベースを設定するように求められます。 これは、コマンドラインのインストール時に以前に設定したデータベースとは別のものです。
ほとんどのデフォルトは問題ありませんが、データベース名とユーザー/パスワードの組み合わせも選択する必要があります。
- リソース名: icingaweb_db
- データベースタイプ: MySQL
- ホスト: localhost
- ポート:
- データベース名: icingaweb_users
- ユーザー名: icingaweb
- パスワード:パスワードを設定して記録します
- キャラクターセット:
- 永続的:チェックを外したままにする
- SSLを使用する:チェックを外したままにする
次へを押して続行します。
ユーザーデータベースの作成
次のページには、データベースが存在せず、データベースを作成するための資格情報がないことが示されます。 ユーザー名にrootと入力し、MySQLルートパスワードを入力し、NextをクリックしてIcingaWebデータベースとユーザーを作成します。
認証プロバイダーに名前を付ける
次に、作成した認証バックエンドに名前を付ける必要があります。 デフォルトのicingaweb2で問題ありません。 次へをクリックします。
管理者アカウントを作成する
ユーザーデータベースを設定したので、最初のIcingaWeb管理アカウントを作成できます。 ユーザー名とパスワードを選択し、次へをクリックして続行します。
設定とログストレージ
次に、ユーザー設定とログを保存する方法に関するオプションが表示されます。 デフォルトは問題なく、syslogにログを記録している間データベースに設定を保存します。 次へを押して続行します。
構成レビュー
すべての構成を確認するためのページが表示されます。 次へをクリックして構成の詳細を確認し、監視モジュールの構成に進みます。
監視構成の概要
次に、IcingaWebの実際の監視モジュールの構成を開始します。 次へをクリックして開始します。
モニタリングバックエンドを選択します
まず、監視バックエンドを選択します。 icingaのデフォルト名とIDOのタイプで問題ありません。 これは、Icinga Webが、コマンドラインにインストールするときに以前に構成したido-mysqlデータベースから情報を取得することを示しています。
監視データベースの設定
ido-mysqlデータベースの接続の詳細を入力する必要があります。 このパスワードはインストール時に作成しました。
このページには、ユーザーデータベースの設定画面と同じオプションがすべてあります。
- リソース名: icinga_ido
- データベースタイプ: MySQL
- ホスト: localhost
- ポート:
- データベース名: icinga2
- ユーザー名: icinga2
- パスワード:インストール時に作成したパスワード
- キャラクターセット
- 永続的:チェックなし
- SSLを使用:チェックなし
次へをクリックして続行します。
コマンド転送方法を選択します
次は、 CommandTransportプロンプトです。 これにより、Webインターフェイスでヘルスチェックを手動で実行するときにIcingaWebがコマンドをIcingaに渡す方法を指定できます。 デフォルトのローカルコマンドファイルは問題なく、手順1で有効にしたコマンド機能で動作します。 次へをクリックして続行します。
監視インターフェイスのセキュリティを設定する
これにより、Webインターフェイスでマスクする必要のあるデータを指定して、潜在的な見物人がパスワードやその他の機密情報を見るのを防ぐことができます。 デフォルトで問題ありません。 次へを押して続行します。
監視モジュール構成の概要
ここでも、構成の概要が表示されます。 終了を押して、IcingaWebのセットアップを終了します。 おめでとうございます!メッセージが読み込まれます。
Icinga Web 2 にログインし、管理者のユーザー名とパスワードでログインします。
IcingaWebのメインインターフェイスが読み込まれます。 少し調べて、インターフェイスに慣れてください。 サーバーにスワップスペースが設定されていない場合は、赤い重大エラーボックスが表示される場合があります。 今のところこれは無視できます。または、赤いボックスをクリックし、右側の列から Acknowledge を選択し、コメントを入力して、最後に[ X202X]問題の確認ボタン。
IcingaとIcingaWebの設定が完了したので、電子メール通知を設定しましょう。
ステップ4–メールの設定
何か問題が発生したときにアラートを受信できない場合、監視はあまり役に立ちません。 Icingaのデフォルト設定には、管理者にメールを送信するためのスクリプトがいくつかありますが、それらが機能する前に、サーバーでメールを設定する必要があります。 これを行う最も簡単な方法は、次のプログラムを使用することです。 ssmtp
すべてのサーバーのメールを標準のSMTPサーバー経由でルーティングします。
まず、インストールします ssmtp
およびいくつかのヘルパーメールユーティリティ:
- sudo apt-get install ssmtp mailutils
そして今、私たちは編集します ssmtp
SMTPの詳細を含む構成ファイル。 これらは、ISP、電子メールプロバイダー、またはIT部門から提供される必要があります。 ユーザー名、パスワード、およびSMTPサーバーのアドレスが必要です。
- sudo nano /etc/ssmtp/ssmtp.conf
ファイルには既存の構成がいくつかあります。 それを削除し、ほとんどのSMTPサーバーで機能するこの非常に基本的な設定に置き換えます。
mailhub=mail.example.com:465
UseTLS=yes
FromLineOverride=yes
AuthUser=smtp_username
AuthPass=smtp_password
ファイルを保存して閉じます。 接続をテストするには、 mail
指図:
- echo "hello world" | mail -s "test subject" sammy@example.com
間もなく受信トレイにメールが表示されます。 次に、Icingaがメールを送信するためのいくつかの設定を更新する必要があります。
ステップ5—通知の設定とテスト
電子メール通知を機能させるには、Icingaが送信する電子メールアドレスを更新します。
- sudo nano /etc/icinga2/conf.d/users.conf
変更 email
通知を受け取りたいアドレスへの行:
. . .
email = "sammy@example.com"
. . .
最後にもう一度Icingaを再起動します。
- sudo systemctl restart icinga2
icinga-master ホストは、問題が発生したときに通知を送信するようにすでに構成されています。 問題を引き起こして、何が起こるか見てみましょう。 次のコマンドを使用します stress
警告をトリガーするためにシステムの負荷を増やします。
インストール stress
:
- sudo apt-get install stress
stress
負荷、ディスクIO、メモリ、およびその他のシステムメトリックを操作できます。 Icingaのデフォルト構成では、システムの負荷が5を超えると警告がトリガーされます。 今それを引き起こしましょう:
- stress --cpu 6
Icinga Webインターフェースに戻ると、loadメトリックがゆっくりと上昇するのがわかります。 数回チェックすると、 soft Warning状態になります。 Soft は、 hard 状態と見なされる前に、チェックがさらに数回失敗する必要があることを意味します。この時点で、通知が送信されます。 これは、すぐに修正される一時的な問題の通知を送信しないようにするためです。
警告がハード状態になるのを待って、通知を送信します。 何が問題になっているのかを詳しく説明したメールが届きます。
プレス CTRL-C
終了するには stress
指図。 システム負荷はかなり迅速に回復し、IcingaWebインターフェイスでOkに戻ります。 また、問題が解決したことを通知する別のメールが届きます。
結論
このチュートリアルでは、Icingaの電子メール通知機能を含むIcingaとIcingaWebのセットアップに成功しました。 現在、Icingaホスト自体のみを監視しています。 次のチュートリアルUbuntu16.04 でIcingaを使用してホストとサービスを監視する方法に進み、リモート監視を設定します。