序章

Alerta は、複数の監視システムからのアラートを統合および重複排除し、単一の画面で視覚化するために使用されるWebアプリケーションです。 Alertaは、Nagios、Zabbix、Sensu、InfluxData Kapacitor、その他多くの有名な監視ツールと統合できます。

このチュートリアルでは、Alertaをセットアップし、人気のあるオープンソースの監視システムであるNagaosからの通知を表示するように構成します。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • CentOS7初期サーバーセットアップガイドに従ってセットアップされた2台のCentOS7サーバー(sudo非rootユーザーとファイアウォールを含む)。
  • Nagiosを実行する最初のCentOSサーバーに、次のコンポーネントをインストールします。
    • チュートリアルCentOS7 にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法に従って、Apache、MySQL、およびPHP。
    • チュートリアルNagios4をインストールしてCentOS7にサーバーを監視する方法と、それを構成するための前提条件に従ってインストールされたNagios4。
  • このチュートリアルでAlertaをインストールする2番目のCentOSサーバーに、次のコンポーネントをインストールします。
    • チュートリアルCentOS7にNginxをインストールする方法に従ってインストールされたNginx。
    • チュートリアルCentOS7にMongoDBをインストールする方法に従ってインストールされたMongoDB。
    • Alerta、チュートリアル CentOS7でAlertaを使用してZabbixアラートを監視する方法のステップ1から6に従ってインストールされます。

ステップ1—NagiosからAlertaへのイベントブローカーモジュールのインストール

Nagios Event Broker(NEB)モジュールを使用してNagiosの機能を拡張できます。 NEBはNagiosのイベント統合メカニズムであり、NEBモジュールは他のサービスをNagiosと統合できる共有ライブラリです。 このステップでは、NagiosをAlertaGateway にインストールします。これは、Alertaに通知を送信するNEBモジュールです。

root以外のユーザーとしてNagiosサーバーにログインします。

  1. ssh [email protected]your_nagios_server_ip

Nagios to Alerta Gatewayには事前構成されたシステムパッケージがないため、ソースからビルドする必要があります。 そのためには、いくつかの開発ツールとファイルをインストールする必要があります。 また、GitHubからソースコードを取得できるように、Gitをインストールする必要があります。

  1. sudo yum install -y git curl gcc make libcurl-devel

前提条件がインストールされたら、Gitを使用してプロジェクトのGitHubリポジトリからソースコードのクローンを作成します。

  1. git clone https://github.com/alerta/nagios-alerta.git

次に、新しいものに変更します nagios-alerta ディレクトリ:

  1. cd nagios-alerta

次に、コンパイルします nagios-alerta モジュールを使用して make:

  1. make nagios4

次の出力が表示されます。

Output
cd ./src && make nagios4 make[1]: Entering directory `/root/nagios-alerta/src' gcc -fPIC -g -O2 -DHAVE_CONFIG_H -I../include -I../include/nagios4 -lcurl -o alerta-neb.o alerta-neb.c -shared -lcurl make[1]: Leaving directory `/root/nagios-alerta/src'

何か違うものが表示された場合は、すべての前提条件がインストールされていることを確認してください。

次に、インストールタスクを実行します。

  1. sudo make install

モジュールがにインストールされたことを示すこの出力が表示されます /usr/lib/nagios:

Output
cd ./src && make install make[1]: Entering directory `/root/nagios-alerta/src' [ -d /usr/lib/nagios ] || mkdir /usr/lib/nagios install -m 0644 alerta-neb.o /usr/lib/nagios make[1]: Leaving directory `/root/nagios-alerta/src'

モジュールがインストールされたら、この新しいモジュールを使用するようにNagiosを構成できます。

ステップ2—Nagios-to-Alertaモジュールの構成

Alertaに通知メッセージを送信するようにNagiosを構成しましょう。

まず、Nagiosメイン構成ファイルで新しくインストールされたAlertaブローカーモジュールを有効にします。 エディターでNagios構成ファイルを開きます。

  1. sudo vi /usr/local/nagios/etc/nagios.cfg

を含むセクションを検索します broker_module ディレクティブ:

/usr/local/nagios/etc/nagios.cfg
...
# EVENT BROKER MODULE(S)
# This directive is used to specify an event broker module that should
# by loaded by Nagios at startup.  Use multiple directives if you want
# to load more than one module.  Arguments that should be passed to
# the module at startup are separated from the module path by a space.
#
[...]
#broker_module=/somewhere/module1.o
#broker_module=/somewhere/module2.o arg1 arg2=3 debug=0
...

Alertaモジュールを構成するには、2つの必須の引数を指定する必要があります。

  • URL :AlertaAPIとの通信に使用されるアドレス。 これは、チュートリアル CentOS7でAlertaを使用してZabbixアラートを監視する方法のステップ3で構成しました。
  • key :チュートリアル CentOS7でAlertaを使用してZabbixアラートを監視する方法のステップ4で作成したAPIキー。 Alertaで認証し、イベントを投稿するには、これが必要です。

次の行をファイルに追加して、Alerta統合を構成します。

/usr/local/nagios/etc/nagios.cfg
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY
...

同様に指定できるいくつかの追加のオプションの引数があります。

  • env :環境名を指定します。 デフォルトの環境名は Production.
  • hard_only :結果をハード状態のみで転送します。 Nagiosの状態タイプの詳細については、Nagiosのドキュメントを参照してください。 これをに設定します 1 このモードを有効にします。
  • debug :-モジュールのデバッグモードを有効にします。 これをに設定します 1 このモードを有効にします。

これらすべてのオプションを指定するには、代わりに次の行を使用してください。

/usr/local/nagios/etc/nagios.cfg
...
broker_module=/usr/lib/nagios/alerta-neb.o http://your_alerta_server_ip/api key=ALERTA_API_KEY env=Production hard_only=1 debug=1
...

ファイルを保存して、エディターを終了します。

環境とサービス名でアラートを識別するには、Nagiosカスタムオブジェクト変数を使用して環境とサービスの名前を設定する必要があります。 これを行うには、 _Environment_Service 構成内の変数。 それらを構成しましょう。

デフォルトのNagiosホストオブジェクト構成ファイルを開きます。これは、 /usr/local/nagios/etc/objects/ ディレクトリ:

  1. sudo vi /usr/local/nagios/etc/objects/localhost.cfg

このホストのすべてのアラートをProductionアラートとしてマークし、デフォルトのサービスNagaosと呼びます。 次のホスト定義を見つけます。

/usr/local/nagios/etc/objects/localhost.cfg
...
define host{
        use                     linux-server            ; Name of host template to use
                                                        ; This host definition will inherit all variables that are defined
                                                        ; in (or inherited by) the linux-server host template definition.
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        }

...

追加します _Environment_Service 構成の値:

/usr/local/nagios/etc/objects/localhost.cfg
...
        host_name               localhost
        alias                   localhost
        address                 127.0.0.1
        _Environment            Production
        _Service                Nagios
        }
...

ここで、システム部分のスペース不足に関連するすべてのイベントをシステムアラートとしてマークします。 空き領域を確認する方法を定義するファイルの次のセクションを見つけます。

/usr/local/nagios/etc/objects/localhost.cfg
...
define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        }
...

に関連付けるように変更します System サービス:

/usr/local/nagios/etc/objects/localhost.cfg
...
define service{
        use                             local-service         ; Name of service template to use
        host_name                       localhost
        service_description             Root Partition
        check_command                   check_local_disk!20%!10%!/
        _Service                        System
        }
...

ファイルを保存して、エディターを終了します。 Nagiosを再起動して、次の新しい設定を適用します。

  1. sudo systemctl restart nagios.service

ステータスを確認して、サービスが実行されていることを確認します。

  1. systemctl status nagios.service

次の出力が表示されます。

Output
... Jul 01 08:44:31 nagios nagios[8914]: [alerta] Initialising Nagios-Alerta Gateway module, v3.4.1 Jul 01 08:44:31 nagios nagios[8914]: [alerta] debug is off Jul 01 08:44:31 nagios nagios[8914]: [alerta] states=Hard/Soft Jul 01 08:44:31 nagios nagios[8914]: [alerta] Forward service checks, host checks and downtime to http://your_alerta_server_ip/api Jul 01 08:44:31 nagios nagios[8914]: Event broker module '/usr/lib/nagios/alerta-neb.o' initialized successfully. Jul 01 08:44:31 nagios nagios[8914]: Successfully launched command file worker with pid 8920

これで、Nagiosは、システムまたはサービスがオフになるとすぐに通知を送信します。 テストイベントを生成してみましょう。

ステップ3—NagiosとAlertaの統合を検証するためのテストアラートの生成

すべてが接続されていることを確認するためのテストアラートを生成しましょう。 デフォルトでは、Nagiosはサーバーの空きディスク容量を追跡します。 Nagiosのファイルシステム使用状況アラートをトリガーするのに十分な大きさの一時ファイルを作成します。

まず、Nagiosサーバーにどれだけの空き容量があるかを判断します。 あなたは使用することができます df 見つけるためのコマンド:

  1. df -h

次のような出力が表示されます。

Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 3.1G 16G 17% /

利用可能な空き容量を確認します。 この場合、空き領域は 16GB. 空き容量が異なる場合があります。

使用 fallocate 使用可能なディスク容量の80% ofを超えるファイルを作成するコマンド。これは、アラートをトリガーするのに十分なはずです。

  1. fallocate -l 14G /tmp/temp.img

数分以内に、Nagiosは空きディスク容量に関するアラートをトリガーし、Alertaに通知メッセージを送信します。 Alertaダッシュボードに次の新しい通知が表示されます。

アラートが機能していることがわかったので、作成した一時ファイルを削除して、ディスク領域を再利用できるようにします。

  1. rm -f /tmp/temp.img

1分後、Nagiosは回復メッセージを送信します。 その後、アラートはメインのAlertaダッシュボードから消えますが、 Closed を選択すると、すべてのクローズされたイベントを表示できます。

イベント行をクリックすると、詳細が表示されます。

結論

このチュートリアルでは、Alertaを実行している別のサーバーに通知を送信するようにNagiosを構成しました。

Alertaは、多くのシステムからのアラートを追跡するための便利な場所を提供します。 たとえば、インフラストラクチャの一部でNagiosを使用し、他の部分でZabbixを使用している場合、両方のシステムからの通知を1つのパネルにマージできます。