# 運用・管理 / トリガー

トリガー機能は、決められた時刻や特定のイベントが発生したときに、任意のスクリプトを自動実行する機能です。この機能を利用すれば、時間帯によって設定内容を変えたり、再起動時にメールで管理者に通知したりすることができます。
トリガーには次の種類があります。

表 1
種類 | 説明
CPUトリガー | CPUの使用率がしきい値を越えたときに起動される
インターフェーストリガー | インターフェースのリンクステータスが変化したときに起動される
メモリートリガー | メモリーの使用率がしきい値を越えたときに起動される
定期実行トリガー | 一定の間隔（たとえば1時間ごと）で繰り返し起動される
Pingポーリングトリガー | Pingポーリングの監視対象機器への到達性が喪失または回復したときに起動される
再起動トリガー | システム起動（再起動）時に起動される
スタックディセーブルマスタートリガー | VCSグループの構成メンバーがディセーブルマスター（Disabled Master：全スイッチポートを無効にしている一時的なマスター状態）になったときに起動される
スタックマスターフェイルトリガー | VCSグループのマスター切り替えが発生したときに起動される
スタックメンバートリガー | VCSグループの構成メンバーが変化（参加・離脱）したときに起動される
スタックリンクトリガー | スタックポートのリンクステータスが変化したときに起動される
定時トリガー | 決められた時刻に起動される
AMFノードトリガー | AMFネットワークにAMFノードが参加、離脱したときに起動する
ログメッセージトリガー | 指定した文字列（正規表現）を含むnoticesレベル以上のログメッセージが出力されたときに起動される
リンク監視プローブトリガー | 監視中の回線の状態判定が変化したときに起動される
環境センサートリガー | 環境センサーの状態変化、またはセンサーのしきい値を超えたときに起動される
メインPSEトリガー | PoE電源の電力使用量が最大供給電力を超えたとき、またはPoE電源の電力使用量が供給可能電力内に戻ったときに起動される
PSEポートトリガー | ポートの電力使用量が出力電力上限値を超えたとき、または再び出力電力上限内に戻ったときに起動される

各トリガーには複数のスクリプトを関連付けることができます。また、トリガーの実行回数に制限を設けることも可能です（たとえば、5回実行されたらトリガーを無効にするなど）。

## 基本設定

トリガーを作成するには、triggerコマンドで番号を割り当て、各種typeコマンドで種類を指定し、scriptコマンドで自動実行するスクリプトファイルを指定します。以下、トリガーの種類ごとに例を示します。

- CPU使用率が80%を超えたら、flash:/cpuwarn.scpを実行するCPUトリガー「1」を作成。これにはtype cpuコマンドを使います。

      awplus(config)# trigger 1
      awplus(config-trigger)# type cpu 80 up
      awplus(config-trigger)# script 1 flash:/cpuwarn.scp

- スイッチポート1.0.1がリンクダウンしたら、flash:/linkdown.scpを実行するモジュールトリガー「2」を作成。これにはtype interfaceコマンドを使います。

      awplus(config)# trigger 2
      awplus(config-trigger)# type interface port1.0.1 down
      awplus(config-trigger)# script 1 flash:/linkdown.scp

- メモリー使用率が70%を超えたら、flash:/memwarn.scpを実行するメモリートリガー「3」を作成。これにはtype memoryコマンドを使います。

      awplus(config)# trigger 3
      awplus(config-trigger)# type memory 70 up
      awplus(config-trigger)# script 1 flash:/memwarn.scp

- 3時間に一回flash:/patrol.scpを実行する定期実行トリガー「4」を作成。これにはtype periodicコマンドを使います。

      awplus(config)# trigger 4
      awplus(config-trigger)# type periodic 180
      awplus(config-trigger)# script 1 flash:/patrol.scp

- Pingポーリング設定「1」の監視対象機器への到達性が失われたらflash:/pingdown.scpを実行するPingポーリングトリガー「5」を作成。これにはtype ping-pollコマンドを使います。

      awplus(config)# trigger 5
      awplus(config-trigger)# type ping-poll 1 down
      awplus(config-trigger)# script 1 flash:/pingdown.scp

- システム再起動後にflash:/rebooted.scpを実行する再起動トリガー「6」を作成。これにはtype rebootコマンドを使います。

      awplus(config)# trigger 6
      awplus(config-trigger)# type reboot
      awplus(config-trigger)# script 1 flash:/rebooted.scp

  Note

  再起動トリガーはシステム起動後、60秒以内に実行されます。

- VCSグループのマスター切り替えが発生したときにflash:/stkfail.scpを実行するスタックマスターフェイルトリガー「7」を作成。これにはtype stack master-failコマンドを使います。

      awplus(config)# trigger 7
      awplus(config-trigger)# type stack master-fail
      awplus(config-trigger)# script 1 flash:/stkfail.scp

- VCSグループに新規メンバーが参加したときにflash:/stkjoin.scpを実行するスタックメンバートリガー「8」を作成。これにはtype stack memberコマンドを使います。

      awplus(config)# trigger 8
      awplus(config-trigger)# type stack member join
      awplus(config-trigger)# script 1 flash:/stkjoin.scp

- スタックポートがリンクアップしたときにflash:/stklnkup.scpを実行するスタックリンクトリガー「9」を作成。これにはtype stack linkコマンドを使います。

      awplus(config)# trigger 9
      awplus(config-trigger)# type stack link up
      awplus(config-trigger)# script 1 flash:/stklnkup.scp

- 毎日夜11時にflash:/nightgrd.scpを実行する定時トリガー「10」を作成。これにはtype timeコマンドを使います。

      awplus(config)# trigger 10
      awplus(config-trigger)# type time 23:00
      awplus(config-trigger)# script 1 flash:/nightgrd.scp

  Note

  定時トリガーは、type timeコマンドで設定したトリガーの起動時刻と、設定時点におけるシステム時刻の差が少ないと動作しません。定時トリガー設定時には、トリガーの起動時刻とシステム時刻の差が40秒以上になるように設定してください。

- AMFネットワークに新規ノードが参加したときにflash:/amf.scpを実行するAMFノードトリガー「12」を作成。これにはtype atmf nodeコマンドを使います。

      awplus(config)# trigger 12
      awplus(config-trigger)# type atmf node join
      awplus(config-trigger)# script 1 flash:/amf.scp

- メッセージ本文に `port数値.数値.数値 now for` のパターンにマッチする文字列を含む notices レベル以上のログメッセージが出力されたときに flash:/portforw.scp を起動するログメッセージトリガー「14」を作成。これにはtype logコマンドを使います。

      awplus(config)# trigger 14
      awplus(config-trigger)# type log port\\d+\\.\\d+\\.\\d+ now for
      awplus(config-trigger)# script 1 flash:/portforw.scp

  このトリガーを起動するログメッセージの例。
  プログラム名とプロセスIDを表す XXXX[xxxx]: の後からが本文となり、緑色の部分がパターンにマッチします。

      2017 Oct 10 15:47:20 user.notice awplus XXXX[xxxx]: XXXX port1.0.3 now forwarding, propagating TC to other ports

- リンク監視プローブ PROBE1 とリンク性能プロファイル PROF1 によって監視している回線の状況判定が「good」に変化したときに flash:/good.scp を起動するリンク監視プローブトリガー「15」を作成。これにはtype linkmon-probeコマンドを使います。

      awplus(config)# trigger 15
      awplus(config-trigger)# type linkmon-probe PROBE1 PROF1 good
      awplus(config-trigger)# script 1 flash:/good.scp

- 環境センサーが「true」に変化したときに flash:/true.scp を起動する環境センサートリガー「17」を作成。これにはtype env-sensorコマンドを使います。

      awplus(config)# trigger 17
      awplus(config-trigger)# type env-sensor node 1 resource 2 sensor 1 state true

- PoE電源の電力使用量が最大供給電力を超えたときに flash:/mnpseup.scp を起動するメインPSEトリガー「18」を作成。これにはtype main-pseコマンドを使います。

      awplus(config)# trigger 18
      awplus(config-trigger)# type main-pse up
      awplus(config-trigger)# script flash:/mnpseup.scp

- ポート1.0.1の電力使用量が出力電力上限値を超えたときに flash:/pseport.scp を起動するPSEポートトリガー「19」を作成。これにはtype pse-portコマンドを使います。

      awplus(config)# trigger 19
      awplus(config-trigger)# type pse-port port1.0.1 up
      awplus(config-trigger)# script flash:/pseport.scp

テストなどのため、トリガーを手動で起動するにはtrigger activateコマンドを使います。

    awplus# trigger activate 1

トリガーにスクリプトを追加するには、scriptコマンドを使います。たとえば、トリガー「2」の2番目のスクリプトとしてflash:/2nd.scpを追加するには、次のようにします。

    awplus(config)# trigger 2
    awplus(config-trigger)# script 2 flash:/2nd.scp

scriptコマンドでは、複数のスクリプトを一度に指定することもできます。たとえば、前述のトリガー「2」に対し、3番目のスクリプトとしてflash:/3rd.scpを、4番目のスクリプトとしてflash:/4th.scpを追加するには次のようにします。

    awplus(config)# trigger 2
    awplus(config-trigger)# script 3 flash:/3rd.scp 4 flash:/4th.scp

トリガーからスクリプトを削除するには、scriptコマンドをno形式で実行します。たとえば、トリガー「2」から3番目のスクリプトを削除するには、次のようにします。

    awplus(config)# trigger 2
    awplus(config-trigger)# no script 3

トリガーを削除するには、triggerコマンドをno形式で実行します。

    awplus(config)# no trigger 2

トリガーの情報を確認するには、show triggerコマンドを使います。