検索
連載

イベント発生→スクリプト起動、Hatoholのアクションを設定するHatoholで実現する分散監視(4)(2/2 ページ)

何らかの異常を感知したら、すぐに行動を起こすべし。Hatoholを使って、検知後すぐにスクリプトの起動、メールの送信を行う方法を学びます。

Share
Tweet
LINE
Hatena
前のページへ |       

障害の発生方法

 テスト環境のホスト1-5(IPアドレス10.0.3.15)に障害を発生させます。そのため、Hatoholでは、図3のようにホスト1-1のZabbixサーバーを監視サーバーとして登録しておきます(もちろん、他の監視サーバーが登録されていても構いません)。


図3 ホスト1-1を登録する

 ホスト1-5にsshでログインし、/trigger/value.txtというファイルに文字列warningを書き込みます。

$ ssh 10.0.3.15 -lroot
root@10.0.3.15's password: (前ページのドキュメントに記載のパスワードを入力)
# echo warning > /trigger/value.txt

 監視サーバーとしてマシン1-1のみを登録している場合、トリガー画面で障害のみを抽出すると、通常、図4のように2つの障害が表示されますが、上記のvalue.txtへのwarning書き込みによって、図5のように、「疑似障害(警告)」も表示されます。


図4 障害のみで抽出すると、この場合は2つ表示される

図5 value.txtへの書き込みで警告が表示

 また、次のように文字列noneの書き込みにより、正常な状態に回復させることができます。

# echo none > /trigger/value.txt 

アクションの設定例

 それでは、テスト用の障害を発生させる方法が分かったので、実際にその障害に対して、アクションを発生させてみましょう。

例1:疑似障害の発生時、スクリプトを実行する

 ここでは、パラメーターの内容をそのままファイル/tmp/test-action.datに追加する以下のスクリプトを使用します。

#!/bin/sh
echo "$@" > /tmp/test-action.dat

 このスクリプトを/usr/libexec/hatohol/action/test-action.shとして保存します。また、実行権限が必要ですので、以下のように実行権限を追加して、確認してください。

# chmod +x /usr/libexec/hatohol/action/test-action.sh
# ls -l /usr/libexec/hatohol/action/test-action.sh
-rwxr-xr-x 1 root root 43 Jul 16 13:47 /usr/libexec/hatohol/action/test-action.sh

 次に、WebUIのメニューからアクションを選択し、「アクション追加」ボタンをクリックします。発生の条件(対象監視サーバーやホスト)を指定するには、図6のようにプルダウンメニューから「選択」をクリックします。図7のような選択ダイアログが表示されますので、対象のサーバーをクリックし、「選択」ボタンをクリックします。


図6 発生条件を指定する

図7 対象のサーバーを選択する

 ここでは、図8のように全ての条件「ANY」にし、「追加」ボタンをクリックします。図9のように登録されたアクションが表示されます。そして、前節での説明の通り、ホスト1-5の/trigger/value.txtにwarningという文字列を書き込んでみましょう。


図8 条件をANYで追加

図9 登録されたアクションが表示される

 ポーリング間隔によりますが、デフォルトの場合数十秒以内に、Hatoholを実行しているマシンに/tmp/test-action.datが作成されます。test-action.datは、次の例のようにユーザーが指定したパラメーター(-X foo)と、その後ろに表3で示したパラメーターが渡されます。

# cat /tmp/test-action.dat 
-X foo --hatohol-action-v1 4 1 10088 1405501832.930645143 4820 1 13626 1 2

ヒント:

 上記のパスは、RPMでHatoholをインストールした場合の例です。ソースからHatoholをビルドして、/usr/localにインストールした場合は、/usrを/usr/localに置き換えてください。


注:

 また、ホスト1-5の時刻がほぼ正しいことを確認してください。Hatoholは、24時間以上前のイベントに対しては、アクションを発動しません。


例2:メールテンプレートを使って、メールを送信する

 メールを送信する場合、Eメールボタンをクリックします。図10のダイアログが表示されるので、送信先のメールアドレスとSMTPサーバーを指定して、適用ボタンを押します。すると、図11のように「アクション追加」ダイアログの「実行パラメータ」項目にコマンド列が自動生成されます。


図10 送信先のメールアドレスとSMTPサーバーを指定

図11 「実行パラメータ」が自動生成される

アクションを使えば自動化がはかどる

 今回は、アクションの概要と、テスト環境を使って実際にアクションを実行する例について説明しました。これを利用すると、障害通知や復旧の自動化が可能ですので、ぜひ、利用ください。

 次回は、いよいよ最終回の予定です。Hatoholの便利な機能などを紹介します。

大和 一洋(やまと かずひろ)

ミラクル・リナックス株式会社 シニアエキスパート

ミラクル・リナックス株式会社でオープンソースに関連した製品の研究開発に従事するエンジニア。もともとカーネルやマルチメディア関連などの低レベルレイヤーの技術が好きだったが、最近は、クラウド関連技術に関心が伸びている。直近の研究テーマは、大規模システムのための監視ソフトウェア開発。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る