運用・管理 / トリガー
トリガー機能は、決められた時刻や特定のイベントが発生したときに、任意のスクリプトを自動実行する機能です。この機能を利用すれば、時間帯によって設定内容を変えたり、再起動時にメールで管理者に通知したりすることができます。トリガーには次の種類があります。
| CPUトリガー | CPUの使用率がしきい値を越えたときに起動される |
| インターフェーストリガー | インターフェースのリンクステータスが変化したときに起動される |
| メモリートリガー | メモリーの使用率がしきい値を越えたときに起動される |
| 定期実行トリガー | 一定の間隔(たとえば1時間ごと)で繰り返し起動される |
| Pingポーリングトリガー | Pingポーリングの監視対象機器への到達性が喪失または回復したときに起動される |
| 再起動トリガー | システム起動(再起動)時に起動される |
| 定時トリガー | 決められた時刻に起動される |
| AMFノードトリガー | AMFネットワークにAMFノードが参加、離脱したときに起動する |
| ログメッセージトリガー | 指定した文字列(正規表現)を含むnoticesレベル以上のログメッセージが出力されたときに起動される |
| リンク監視プローブトリガー | 監視中の回線の状態判定が変化したときに起動される |
各トリガーには複数のスクリプトを関連付けることができます。また、トリガーの実行回数に制限を設けることも可能です(たとえば、5回実行されたらトリガーを無効にするなど)。
基本設定
トリガーを作成するには、triggerコマンドで番号を割り当て、各種typeコマンドで種類を指定し、scriptコマンドで自動実行するスクリプトファイルを指定します。以下、トリガーの種類ごとに例を示します。- CPU使用率が80%を超えたら、flash:/cpuwarn.scpを実行するCPUトリガー「1」を作成。これにはtype cpuコマンドを使います。
AT-vFW-app(config)# trigger 1 AT-vFW-app(config-trigger)# type cpu 80 up AT-vFW-app(config-trigger)# script 1 flash:/cpuwarn.scp
- eth1インターフェースがリンクダウンしたら、flash:/linkdown.scpを実行するモジュールトリガー「2」を作成。これにはtype interfaceコマンドを使います。
AT-vFW-app(config)# trigger 2 AT-vFW-app(config-trigger)# type interface eth1 down AT-vFW-app(config-trigger)# script 1 flash:/linkdown.scp
- メモリー使用率が70%を超えたら、flash:/memwarn.scpを実行するメモリートリガー「3」を作成。これにはtype memoryコマンドを使います。
AT-vFW-app(config)# trigger 3 AT-vFW-app(config-trigger)# type memory 70 up AT-vFW-app(config-trigger)# script 1 flash:/memwarn.scp
- 3時間に一回flash:/patrol.scpを実行する定期実行トリガー「4」を作成。これにはtype periodicコマンドを使います。
AT-vFW-app(config)# trigger 4 AT-vFW-app(config-trigger)# type periodic 180 AT-vFW-app(config-trigger)# script 1 flash:/patrol.scp
- Pingポーリング設定「1」の監視対象機器への到達性が失われたらflash:/pingdown.scpを実行するPingポーリングトリガー「5」を作成。これにはtype ping-pollコマンドを使います。
AT-vFW-app(config)# trigger 5 AT-vFW-app(config-trigger)# type ping-poll 1 down AT-vFW-app(config-trigger)# script 1 flash:/pingdown.scp
- システム再起動後にflash:/rebooted.scpを実行する再起動トリガー「6」を作成。これにはtype rebootコマンドを使います。
AT-vFW-app(config)# trigger 6 AT-vFW-app(config-trigger)# type reboot AT-vFW-app(config-trigger)# script 1 flash:/rebooted.scp
- 毎日夜11時にflash:/nightgrd.scpを実行する定時トリガー「10」を作成。これにはtype timeコマンドを使います。
AT-vFW-app(config)# trigger 10 AT-vFW-app(config-trigger)# type time 23:00 AT-vFW-app(config-trigger)# script 1 flash:/nightgrd.scp
- AMFネットワークに新規ノードが参加したときにflash:/amf.scpを実行するAMFノードトリガー「12」を作成。これにはtype atmf nodeコマンドを使います。
AT-vFW-app(config)# trigger 12 AT-vFW-app(config-trigger)# type atmf node join AT-vFW-app(config-trigger)# script 1 flash:/amf.scp
- メッセージ本文に
something 数値.数値.数値 happenedのパターンにマッチする文字列を含む notices レベル以上のログメッセージが出力されたときに flash:/somehpns.scp を起動するログメッセージトリガー「14」を作成。これにはtype logコマンドを使います。
AT-vFW-app(config)# trigger 14 AT-vFW-app(config-trigger)# type log something \\d+\\.\\d+\\.\\d+ happened AT-vFW-app(config-trigger)# script 1 flash:/somehpns.scp
このトリガーを起動するログメッセージの例。
プログラム名とプロセスIDを表す XXXX[xxxx]: の後からが本文となり、緑色の部分がパターンにマッチします。
2017 Oct 10 15:47:20 user.notice awplus XXXX[xxxx]: XXXX something 1.0.3 happened.
- リンク監視プローブ PROBE1 とリンク性能プロファイル PROF1 によって監視している回線の状況判定が「good」に変化したときに flash:/good.scp を起動するリンク監視プローブトリガー「15」を作成。これにはtype linkmon-probeコマンドを使います。
AT-vFW-app(config)# trigger 15 AT-vFW-app(config-trigger)# type linkmon-probe PROBE1 PROF1 good AT-vFW-app(config-trigger)# script 1 flash:/good.scp
テストなどのため、トリガーを手動で起動するにはtrigger activateコマンドを使います。
AT-vFW-app# trigger activate 1
トリガーにスクリプトを追加するには、scriptコマンドを使います。たとえば、トリガー「2」の2番目のスクリプトとしてflash:/2nd.scpを追加するには、次のようにします。
AT-vFW-app(config)# trigger 2 AT-vFW-app(config-trigger)# script 2 flash:/2nd.scp
scriptコマンドでは、複数のスクリプトを一度に指定することもできます。たとえば、前述のトリガー「2」に対し、3番目のスクリプトとしてflash:/3rd.scpを、4番目のスクリプトとしてflash:/4th.scpを追加するには次のようにします。
AT-vFW-app(config)# trigger 2 AT-vFW-app(config-trigger)# script 3 flash:/3rd.scp 4 flash:/4th.scp
トリガーからスクリプトを削除するには、scriptコマンドをno形式で実行します。たとえば、トリガー「2」から3番目のスクリプトを削除するには、次のようにします。
AT-vFW-app(config)# trigger 2 AT-vFW-app(config-trigger)# no script 3
トリガーを削除するには、triggerコマンドをno形式で実行します。
AT-vFW-app(config)# no trigger 2
トリガーの情報を確認するには、show triggerコマンドを使います。