apigee-monit による自己回復

Apigee Edge for Private Cloud には、オープンソース ベースのツールである apigee-monit が含まれています。 monit ユーティリティ。定期的にapigee-monit エッジサービスをポーリングしますサービスが利用できない場合、apigee-monit はそのサービスの再起動を試みます。

apigee-monit を使用するには、手動でインストールする必要があります。これは、 インストールできます。

デフォルトでは、apigee-monit は 60 秒ごとに Edge サービスのステータスを確認します。

クイック スタート

このセクションでは、apigee-monit をすばやく利用開始する方法について説明します。

Amazon Linux を使用している場合は、 Fedora 経由で monit をインストールします。それ以外の場合は スキップします

sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm

apigee-monit をインストールする手順は次のとおりです。

  apigee-monit をインストールする
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

これにより、apigee-monit がインストールされ、デフォルトでノード上のすべてのコンポーネントのモニタリングが開始されます。

  コンポーネントのモニタリングを停止する
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
  コンポーネントのモニタリングを開始する
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
  ステータス情報の概要を取得する
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  apigee-monit ログファイルを確認する
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

以降のセクションでは、これらのトピックとその他のトピックについて詳しく説明します。

apigee-monit について

apigee-monit は、ノード上のすべてのコンポーネントが確実に稼働し続けることを保証します。これは、 次のようなさまざまなサービスを提供しています。

  • 障害が発生したサービスの再起動
  • サマリー情報の表示
  • モニタリング ステータスのロギング
  • 通知の送信
  • Edge 以外のサービスのモニタリング

apigee-monit をモニタリングして、実行されていることを確認することをおすすめします。詳しくは apigee-monit をモニタリングするをご覧ください。

apigee-monit アーキテクチャ

Apigee Edge for Private Cloud のインストールと構成時に、必要に応じて別のインスタンスをインストールします。 クラスタ内の各ノードに apigee-monit を追加します。これらの個別の apigee-monit インスタンスは、相互に独立して動作します。 もう一つは、自身のコンポーネントのステータスを他のノードに伝えず、 モニタリング ユーティリティ自体の障害を中央サービスに伝達する。

次の図は、5 ノードクラスタの apigee-monit アーキテクチャを示しています。

<ph type="x-smartling-placeholder">
</ph> アーキテクチャ
  5 ノードクラスタでの Apigee Monit の
図 1: apigee-monit の個別のインスタンスが、組織内の各ノードで独立して実行される クラスタ

コンポーネントの構成

apigee-monit は、モニタリングするコンポーネントを決定するために、コンポーネント構成を使用します。 チェックすべき要素、障害発生時に取るべき対応など、多岐にわたります。

デフォルトでは、apigee-monit は事前定義されたコンポーネントを使用して、ノード上のすべての Edge コンポーネントをモニタリングします。 できます。デフォルトの設定を確認するには、apigee-monit コンポーネントの構成を調べます。 できます。デフォルトのコンポーネント構成は変更できません。

apigee-monit は、チェック対象のコンポーネントに応じて、コンポーネントのさまざまな側面をチェックします。「 次の表に、apigee-monit が各コンポーネントに対して確認する内容と、そのコンポーネントの場所を示します。 コンポーネントごとに異なります。一部のコンポーネントは単一の構成で定義されている 他のユーザーは独自の構成を持ちます。

コンポーネント 構成の場所 モニタリング対象
管理サーバー /opt/apigee/edge-management-server/monit/default.conf apigee-monit チェック: <ph type="x-smartling-placeholder">
    </ph>
  • 指定されたポートは開いており、リクエストを受け入れています
  • 指定したプロトコルがサポートされています
  • レスポンスのステータス

さらに、これらのコンポーネント apigee-monit では、次のようになります。

  • 一定のサイクル数内に複数回の障害が発生してからアクションを実行する
  • カスタム リクエストパスを設定する
Message Processor /opt/apigee/edge-message-processor/monit/default.conf
Postgres サーバー /opt/apigee/edge-postgres-server/monit/default.conf
Qpid サーバー /opt/apigee/edge-qpid-server/monit/default.conf
ルーター /opt/apigee/edge-router/monit/default.conf
Cassandra
Edge UI
OpenLDAP
Postgres
Qpid
ズーキーパー
/opt/apigee/data/apigee-monit/monit.conf apigee-monit チェック: <ph type="x-smartling-placeholder">
    </ph>
  • サービスは実行中です

次の例は、edge-router のデフォルトのコンポーネント構成を示しています。 component:

check host edge-router with address localhost
  restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart"
  if failed host 10.1.1.0 port 8081 and protocol http
    and request "/v1/servers/self/uuid"
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

  if failed port 15999 and protocol http
    and request "/v1/servers/self"
    and status < 600
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

次の例は、従来の UI(edge-ui)のデフォルト構成を示しています。 component:

check process edge-ui
 with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid
 start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds
 stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"

これは Classic UI に適用されます。コンポーネント名が edge-management-ui

Apigee Edge for Private Cloud コンポーネントのデフォルトのコンポーネント構成は変更できません。たとえば、 外部サービス用に独自のコンポーネント構成(ターゲット エンドポイントなど)を または httpd サービス。詳細については、次をご覧ください: Apigee 以外のコンポーネントの構成

デフォルトでは、apigee-monit はノードで実行されているすべてのコンポーネントをモニタリングします。Google Cloud コンソールから すべてのコンポーネントまたは個々のコンポーネントで無効にできます。詳しくは以下をご覧ください。

apigee-monit をインストールする

apigee-monit はデフォルトではインストールされません。インストール後に手動でインストールできます。 バージョン 4.19.01 以降の Apigee Edge for Private Cloud が必要です。

このセクションでは、apigee-monit のインストール方法について説明します。

apigee-monitアンインストールについて詳しくは、以下をご覧ください。 apigee-monit をアンインストールします。

apigee-monit をインストールする

このセクションでは、apigee-monit のインストール方法について説明します。

apigee-monit をインストールするには:

  1. 次のコマンドで apigee-monit をインストールします。
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. 次のコマンドを使用して apigee-monit を構成します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. 次のコマンドで apigee-monit を起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. クラスタ内の各ノードで、この手順を繰り返します。

コンポーネントのモニタリングを停止、開始する

なんらかの理由でサービスが停止すると、apigee-monit はサービスの再起動を試みます。

コンポーネントを意図的に停止する場合、これが問題になることがあります。たとえば、 バックアップやアップグレードの際にコンポーネントを停止できます。 バックアップ中またはアップグレード中に apigee-monit によってサービスが再起動された場合、メンテナンス手順は次のようになります。 場合によっては停止することもあります

以降のセクションでは、コンポーネントのモニタリングを停止するためのオプションについて説明します。

コンポーネントを停止してモニタリング対象外にする

コンポーネントを停止してモニタリングを解除するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name は、以下のいずれかになります。
  • apigee-cassandra(Cassandra)
  • apigee-openldap(OpenLDAP)
  • apigee-postgresql(PostgreSQL データベース)
  • apigee-qpidd(Qpidd)
  • apigee-sso(Edge SSO)
  • apigee-zookeeper(ZooKeeper)
  • edge-management-server(Management Server)
  • edge-management-ui(新しい Edge UI)
  • edge-message-processor(Message Processor)
  • edge-postgres-server(Postgres Server)
  • edge-qpid-server(Qpid Server)
  • edge-router(Edge Router)
  • edge-ui(Classic UI)

「all」はは、stop-component には無効なオプションです。停止して stop-component を使用して、一度に 1 つのコンポーネントのみをモニタリング対象外にします。

コンポーネントを再起動してモニタリングを再開するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name

「all」はは、start-component には無効なオプションです。

すべてのコンポーネントを停止してモニタリング解除する方法については、以下をご覧ください。 すべてのコンポーネントを停止してモニタリング対象外にします

コンポーネントをモニタリング解除する(ただし停止はしない)

コンポーネントを停止せずにモニタリング対象外にするには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name は、以下のいずれかになります。
  • apigee-cassandra(Cassandra)
  • apigee-openldap(OpenLDAP)
  • apigee-postgresql(PostgreSQL データベース)
  • apigee-qpidd(Qpidd)
  • apigee-sso(Edge SSO)
  • apigee-zookeeper(ZooKeeper)
  • edge-management-server(Management Server)
  • edge-management-ui(新しい Edge UI)
  • edge-message-processor(Message Processor)
  • edge-postgres-server(Postgres Server)
  • edge-qpid-server(Qpid Server)
  • edge-router(Edge Router)
  • edge-ui(Classic UI)

コンポーネントのモニタリングを再開するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name

すべてのコンポーネントのモニタリングを解除(ただし停止はしない)

すべてのコンポーネントをモニタリング対象外にするには(ただし、コンポーネントを停止せずに)、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

すべてのコンポーネントのモニタリングを再開するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

すべてのコンポーネントを停止してモニタリング対象外にする

すべてのコンポーネントを停止してモニタリングを解除するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop

すべてのコンポーネントを再起動してモニタリングを再開するには、次のコマンドを実行します。

/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

すべてのコンポーネントのモニタリングを停止するには、apigee-monit を無効にします。 apigee-monit を停止、起動、無効にします

apigee-monit を停止、起動、無効にする

他のサービスと同様に、apigee-monitapigee-service を使用して停止および開始できます。 使用できます。また、apigee-monitunmonitor コマンドをサポートしています。これにより、 コンポーネントのモニタリングを一時的に停止します。

apigee-monit を停止する

apigee-monit を停止するには、次のコマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop

apigee-monit を起動する

apigee-monit を起動するには、次のコマンドを使用します。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

apigee-monit を無効にする

次のコマンドを使用して、ノード上のすべてのコンポーネントのモニタリングを一時停止できます。

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

または、apigee-monit をノードからアンインストールすることで、完全に無効にすることもできます。 apigee-monit をアンインストールしてください。

apigee-monit をアンインストールする

apigee-monit をアンインストールするには:

<ph type="x-smartling-placeholder">
    </ph> conf_monit_httpd_port httpd デーモンのポート。apigee-monit はダッシュボードに httpd を使用します レポート/サマリーを有効にすることができます。デフォルト値は 2812 です。 conf_monit_httpd_allow httpd デーモンへのリクエストに対する制約。apigee-monit の用途 httpd: ダッシュボード アプリを実行し、レポート/サマリーを有効にします。この値は localhost(httpd が実行されているホスト)を指します。

    リクエストにユーザー名とパスワードが含まれることを必須にするには、次の構文を使用します。

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    ユーザー名とパスワードを追加する場合は、「\n」を入力してください必要があります。禁止事項 実際の改行または改行を値に挿入します。

    conf_monit_monit_datadir 予定の詳細が保存されるディレクトリ。 conf_monit_monit_delay_time 最初にメモリに読み込まれてから apigee-monit が待機する時間です。 実行されますこれは、apigee-monit の最初のプロセス チェックにのみ影響します。 conf_monit_monit_logdir apigee-monit ログファイルの場所。 conf_monit_monit_retry_time apigee-monit が各プロセスのチェックを試みる頻度。デフォルトは 60 秒です。 conf_monit_monit_rundir PID ファイルと状態ファイルの場所。apigee-monit がプロセスのチェックに使用します。

    デフォルトの apigee-monit 制御設定をカスタマイズするには:

    1. 次のファイルを編集します。
      /opt/apigee/customer/application/monit.properties

      ファイルが存在しない場合は作成し、オーナーを「apigee」に設定します。user:

      chown apigee:apigee /opt/apigee/customer/application/monit.properties

      ファイルがすでに存在する場合、追加の構成プロパティが定義されている可能性があるので注意してください。 上の表の内容に加えて使用できます。それ以外のプロパティは、 使用できます。

    2. プロパティの値を新しい値に設定するか、置き換えます。

      たとえば、ログファイルの場所を /tmp に変更するには、 次のプロパティを使用します。

      conf_monit_monit_logdir=/tmp/apigee-monit.log

    3. 変更を monit.properties ファイルに保存します。
    4. 次のコマンドで apigee-monit を再読み込みします。
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      apigee-monit が再起動しない場合は、 apigee-monit ログファイルにアクセスします

    5. クラスタ内のノードごとにこの手順を繰り返します。

    これは、Edge 以外のコンポーネント専用です。コンポーネント構成はカスタマイズできません 使用できます。

    apigee-monit ログファイルにアクセスする

    apigee-monit は、イベント、再起動、構成の変更、アラートなど、すべてのアクティビティをログに記録します。 表示されます。

    ログファイルのデフォルトの場所は次のとおりです。

    /opt/apigee/var/log/apigee-monit/apigee-monit.log

    デフォルトの場所は、apigee-monit コントロールをカスタマイズすることで変更できます。 設定をご覧ください。

    ログファイルのエントリの形式は次のとおりです。

    'edge-message-processor' trying to restart
    [UTC Dec 14 16:20:42] info     : 'edge-message-processor' trying to restart
    'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'

    apigee-monit ログファイルのエントリの形式はカスタマイズできません。

    apigee-monit を使用して集約されたステータスを表示する

    apigee-monit には、集計されたステータス情報を表示する次のコマンドが含まれています。 コンポーネント:

    コマンド 用途
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    以降のセクションでは、これらの各コマンドについて詳しく説明します。

    レポート

    report コマンドは、稼働しているコンポーネントの数をまとめた概要を表示します。 停止しているか、現在初期化中であるか、ノードで現在モニタリングされていない状態になっていることを意味します。「 次の例では、report コマンドを呼び出します。

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report

    次の例は、AIO(オールインワン)での report の出力を示しています。 構成:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    up:            11 (100.0%)
    down:           0 (0.0%)
    initialising:   0 (0.0%)
    unmonitored:    1 (8.3%)
    total:         12 services

    この例では、apigee-monit によって 12 個のサービスのうち 11 個が稼働中と報告されています。1 つのサービスは できます。

    最初にConnection refused report コマンド。この場合、 conf_monit_monit_delay_time プロパティを設定してから、もう一度お試しください。

    概要

    summary コマンドは、各コンポーネントを一覧表示して、そのステータスを表示します。次の この例では、summary コマンドを呼び出します。

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    次の例は、AIO(オールインワン)での summary の出力を示しています。 構成:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
    Monit 5.25.1 uptime: 4h 20m
     Service Name                     Status                      Type
     host_name                        OK                          System
     apigee-zookeeper                 OK                          Process
     apigee-cassandra                 OK                          Process
     apigee-openldap                  OK                          Process
     apigee-qpidd                     OK                          Process
     apigee-postgresql                OK                          Process
     edge-ui                          OK                          Process
     edge-qpid-server                 OK                          Remote Host
     edge-postgres-server             OK                          Remote Host
     edge-management-server           OK                          Remote Host
     edge-router                      OK                          Remote Host
     edge-message-processor           OK                          Remote Host

    最初の実行時に Connection refused エラーが発生した場合 summary コマンドの待機時間が完了するまで conf_monit_monit_delay_time プロパティを設定してから、もう一度お試しください。

    apigee-monit をモニタリングする

    各ノードで apigee-monit が実行されていることを定期的に確認することをおすすめします。

    apigee-monit が実行されていることを確認するには、次のコマンドを使用します。

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

    このコマンドは、apigee-monit を実行している各ノードで定期的に発行することをおすすめします。 これを行う方法の一つは、スケジュールされたタスクを実行する cron などのユーティリティを使用することです。 使用できます。

    cron を使用して apigee-monit をモニタリングするには:

    1. apigee-monit.cron をコピーして cron サポートを追加する /etc/cron.d ディレクトリに移動します。
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. apigee-monit.cron ファイルを開いて編集します。

      apigee-monit.cron ファイルは、実行する cron ジョブを定義します。 ジョブの実行頻度を指定します次の例は、デフォルトの values:

      # Cron entry to check if monit process is running. If not start it
      */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

      このファイルでは、次の構文を使用して、最初の 5 つのフィールドで apigee-monit がアクションを実行します。

      min hour day_of_month month day_of_week task_to_execute

      たとえば、デフォルトの実行時間は */2 * * * * で、 cron: apigee-monit プロセスを 2 分ごとにチェックします。

      cron ジョブを 1 分に 1 回より頻繁に実行することはできません。

      cron の使用の詳細については、サーバー OS のドキュメントまたは できます。

    3. 組織のポリシーに合わせて cron の設定を変更します。たとえば、 実行頻度を 5 分ごとに変更するには、ジョブ定義を次のように設定します。
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. apigee-monit.cron ファイルを保存します。
    5. クラスタ内のノードごとにこの手順を繰り返します。

    cronapigee-monit の監視を開始しない場合は、次の点を確認してください。

    • cron ジョブ定義の後に空白行があります。
    • このファイルに定義されている cron ジョブは 1 つだけです。(コメント行は、 count.)

    apigee-monit を停止または一時的に無効にする場合は、この cron ジョブを無効にする必要があります。 そうでなければ、cronapigee-monit を再起動します。

    cron を無効にするには、次のいずれかを行います。

    • /etc/cron.d/apigee-monit.cron ファイルを削除します。
      sudo rm /etc/cron.d/apigee-monit.cron

      コピーし直さなければならないため、 後で cron を再度有効にして apigee-monit を視聴します。

      または

    • /etc/cron.d/apigee-monit.cron ファイルを編集してジョブをコメントアウトする 「#」を付け足せます。次に例を示します。
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit