3.4.1 特定のイベントが発行されたら自動でコマンドを実行する方法
イベントが発行されると,システム管理者がコマンドを実行してイベントに対処する場合があります。システム管理者が,いつも特定のイベントに対して特定のコマンドを実行していては,負担が掛かります。負担を軽減させるために,特定のイベントが発行されたら自動でコマンドを実行するよう設定しましょう。
JP1のマニュアル「JP1 Version 13 統合管理 基本ガイド」における,「6.2 特定のイベントが発行されたら自動でコマンドを実行する方法」を参照し,コマンドが自動で実行されるように設定してください。
また,上記方法により,特定のイベントが発行された場合にメール通知やパトランプ通知を行うことができます。メール通知やパトランプ通知をする場合,JP1のマニュアル「JP1 Version 13 統合管理 基本ガイド」の「6.2.1 イベント発行時に自動アクション機能でコマンドを実行する」における,[アクション詳細設定]画面の「実行内容」(下記の赤枠部分)に,次に示す設定が必要です。
(1) メール通知をする場合
[アクション詳細設定]画面の「実行内容」に以下の通り指定してください。
|
# |
項目名 |
指定内容 |
説明 |
|---|---|---|---|
|
1 |
実行ユーザー名 |
JP1ユーザー名 |
JP1ユーザー名には,「2.2.3 JP1ユーザー作成」に記載された方法で作成したJP1ユーザーを指定してください。 |
|
2 |
実行ホスト名 |
$ACTHOST |
− |
|
3 |
アクション |
mail_notification.sh.x "$EVSEV" "$EVIDBASE" "$EVSEQNO" "$EVHOST" "$EVDATE" "$EVTIME" "$EVMSG" "グループ名" |
グループ名には,「group1」,「group2」,「group3」のどれかを指定してください。 これらのグループは,JP1 Cloud Serviceのヒアリングシートに記入された通知先メールアドレスのグループに対応付いています。 |
|
4 |
環境変数ファイル |
/jp1cs/actenv.conf |
− |
上記設定によって通知されるメールのタイトルや本文のサンプルは以下の通りです。
メール通知処理の戻り値については,以下の通りです。
|
# |
戻り値 |
詳細 |
出力原因 |
|---|---|---|---|
|
1 |
0 |
正常終了 |
メール通知処理が正常に完了したとき |
|
2 |
1 |
正常終了(通知なし) |
通知先アドレスファイル存在なし。 通知先のお客様メールアドレスの登録がないため,通知なしとしてメールを送らず正常に完了したとき※ |
|
3 |
2 |
正常終了(通知なし) |
通知先アドレスリスト存在なし。 通知先のお客様メールアドレスの登録がないため,通知なしとしてメールを送らず正常に完了したとき※ |
|
4 |
8 |
引数エラー |
スクリプト内のフォーマットチェック,引数チェックでエラーが発生。 スクリプトが呼び出される自動アクション定義内のコマンドライン不良,もしくは引数に指定された文字列,引数の数確認で異常を検知したためスクリプト異常終了したとき |
|
5 |
10 |
異常終了 |
スクリプトロジックに影響があるか想定外のエラーのため,スクリプト異常終了したとき |
- 注※
-
JP1 Cloud Service V02-60以降が対象です。
- 注意事項
-
自動アクション経由で大量のメール通知を実行した場合,高負荷によりシステム管理マネージャーが停止する可能性があります。「3.3.2メンテナンス対象のホストを監視対象から外す方法」に記載のある大量発生イベントの監視抑止機能などを利用し,大量のメール通知が発生しないような運用をご検討ください。
(2) パトランプ通知をする場合
[アクション詳細設定]画面の「実行内容」に以下の通り指定してください。
|
# |
項目名 |
指定内容 |
説明 |
|---|---|---|---|
|
1 |
実行ユーザー名 |
JP1ユーザー名 |
JP1ユーザー名には,「2.2.3 JP1ユーザー作成」に記載された方法で作成したJP1ユーザーを指定してください。 |
|
2 |
実行ホスト名 |
$ACTHOST |
− |
|
3 |
アクション |
パトランプ鳴動コマンド |
パトランプ鳴動コマンドには,お客様拠点に存在するパトランプ(ネットワーク警告灯)がサポートするソケット通信コマンドまたはhttp通信コマンドを,Linuxのコマンドライン形式で指定してください※。 |
|
4 |
環境変数ファイル |
/jp1cs/actenv.conf |
− |
- 注※
-
コマンドラインの例を以下に示します。
(例)システム管理マネージャーの接続ホスト名を「im-mgr01.01.02.jp1cs.com」とします。パトランプのサポートするhttp通信が「http://IPアドレス/api/control?alert=100001」であり,パトランプのIPアドレスが「192.168.1.1」である場合のコマンドラインは以下のようになります。
curl --interface im-mgr01.01.02.jp1cs.com http://192.168.1.1/api/control\?alert\=100001
なお,1つのイベント発行時に複数のグループにメール通知を行いたい場合や,メール通知とパトランプ通知を同時に行いたい場合には,[アクション詳細設定]画面の「パラメーターグループ」を別々にして指定することで対応ができます。
(3) その他コマンドを実行する場合
[アクション詳細設定]画面の「実行内容」に以下の通り指定してください。
システム管理マネージャー自身への自動アクションにより,システム管理マネージャー上のコマンドやスクリプトを実行することができます。
|
# |
項目名 |
指定内容 |
説明 |
|---|---|---|---|
|
1 |
実行ユーザー名 |
JP1ユーザー名 |
JP1ユーザー名には,「2.2.3 JP1ユーザー作成」に記載された方法で作成したJP1ユーザーを指定してください。 |
|
2 |
実行ホスト名 |
$ACTHOST |
− |
|
3 |
アクション |
任意のコマンド(OSコマンド,JP1のコマンド※,/usrfile配下のスクリプト) |
コマンド文に指定可能なコマンドは以下のとおりです。
|
|
4 |
環境変数ファイル |
指定なし または /usrfile配下のパス |
環境変数ファイルには,「指定なし」または「/usrfile配下のパス」を指定してください。 |
注※ JP1のコマンドは,JP1製品(JP1/AJS3,JP1/IM3,JP1/Base)のコマンドを指します。なお,スーパーユーザ権限が必要なコマンドは実行できません。
(a) コマンド実行方法および注意事項について
コマンド実行方法について説明します。
自動アクションのコマンド文または,/usrfile配下に配置されたスクリプトからwget,curlコマンドを実行することで任意のユーザーアプリケーションに対してREST APIを発行することができます。wget,curlコマンドを実行する際,送信元アドレス情報にシステム管理マネージャーの接続ホスト名を指定してください。
システム管理マネージャーから任意のユーザーアプリケーションに通信する際のコマンド例を次に示します。
-
wget --bind-address=システム管理マネージャーの接続ホスト名 その他オプション URL
-
curl --interface システム管理マネージャーの接続ホスト名 その他オプション URL
また,システム管理において,マネージャーミドルウェアは論理プロセスとして起動しているため,コマンド実行時には-hオプションの指定をしてください。jcastatusコマンドを実行する際のコマンド例を次に示します。
-
/opt/jp1cons/bin/jcastatus -h システム管理マネージャーの論理ホスト名 -d
システム管理マネージャー上でコマンドを実行するにあたって,以下の注意事項があります。
注意事項
-
スーパーユーザ権限を必要とするコマンドを実行できません。
-
/usrfile配下以外のディレクトリに対するファイルアクセス(OSやJP1の実行コマンド指定を除く)やrmコマンド,systemctlコマンドといったシステム稼働に影響を与えるコマンドを実行することによる環境破壊やサービス停止ついて保証できません。
-
/usrfile配下以外のディレクトリへのファイル配置,コマンド実行により及ぼす影響について保証できません。
-
/usrfile配下に配置,生成したファイルはシステム内部でセキュリティチェックを行い,システムの安全性を脅かすファイルであると判断した場合は対象ファイルの隔離,削除します。
-
REST API実行時のルート証明書の認証は信頼できるサイトでの接続のみを認めます。curlコマンドの-kオプションによる認証スキップはできません。
-
お客様が作成したファイル等については,必要に応じて,お客様でバックアップの取得をしてください。
-
/usrfileはスクリプトやコマンド実行による生成物を一時的に保管することを目的とした領域となります。長期的な保管を目的としたファイルの配置,世代管理等はお客様のパブリッククラウドサービスのストレージ等で管理をお願いします。
-
/usrfileは容量制限があるため定期的なファイル削除を行うなど容量管理をお願いします。利用可能な容量については「付録A.1 システム管理の利用における前提内容」を参照してください。
-
/usrfileのファイル操作についてはJP1/IM - Viewからのコマンド実行機能で制御することができます。またサービスポータル上で画面から操作することも可能です。詳細は「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」における「1.3.15 ユーザーファイルの操作(V01-12以降)」を参照してください。
-
サービスポータルからユーザーファイル専用ストレージ(/usrfile)の使用率を確認することができます。詳細は「JP1 Cloud Service ジョブ管理・システム管理 サービスポータル 利用ガイド」における「6.1.1 メトリクス表示」を参照してください。
-
自動アクションとして登録されたコマンドはマネージャサーバ上のJP1/Baseにキューとして登録されます。大量に発生したイベントを自動アクションで動作させようとすると,キューが蓄積しマネージャーが高負荷になります。お客様のシステム規模,運用に併せて必要なイベントだけをアクション対象とするなど設計をお願いします。必要なイベントだけを監視する方法についての詳細は「3.3システムの監視」を参照してください。
(b) システム管理マネージャー上で実行できるOSコマンド
システム管理マネージャー上でOSコマンドを実行することができます。システム管理マネージャー上で実行できるOSコマンドを以下に示します。
|
コマンド |
制限事項 |
|
|---|---|---|
|
Red Hatが管理するAmazon EC2のRed Hat Enterprise LinuxベースAMIに標準導入されているOSコマンド |
一般ユーザ権限でのみコマンド実行できます。スーパーユーザ権限ではコマンド実行できません。 |
|
|
jq※1 |
一般ユーザ権限でのみコマンド実行できます。スーパーユーザ権限ではコマンド実行できません。 |
|
|
python※2 |
一般ユーザ権限でのみコマンド実行できます。スーパーユーザ権限ではコマンド実行できません。 |
|
|
traceroute※3 |
一般ユーザー権限に加えてスーパーユーザー権限でのコマンド実行ができます。 |
|
- 注※1
-
JP1 Cloud Service V02-60以降で利用できます。
- 注※2
-
JP1 Cloud Service V02-30以降で利用できます。
- 注※3
-
スーパーユーザー権限での実行はJP1 Cloud Service V02-50以降で利用できます。一般ユーザーでの実行は全環境共通で利用できます。