PEM Agent Troubleshooting

削除されたPEMエージェントの復元

pem.agent テーブルからエージェントが削除されている場合、復元できません。エージェントを再登録するには、pemworkerユーティリティを使用する必要があります。

エージェントがPEMWebクライアントから削除されたが、値が active = f の pem.agent テーブルにまだエントリがある場合、次の手順を使用してエージェントを復元できます。

  1. 次のコマンドを使用して、 id フィールドと active フィールドの値を確認します。

    pem=# SELECT * FROM pem.agent;

  2. pem.agent テーブルのエージェントのステータスを true に更新します。

    pem=# UPDATE pem.agent SET active=true WHERE id=<x>;

    x は、手順1で使用したクエリの出力に表示された識別子です。

  3. PEMWebクライアントを更新します。

削除されたエージェントが再び復元されます。ただし、その特定のエージェントにバインドされたサーバーはダウンしているように見える場合があります。この問題を解決するには、サーバーのPEMエージェントプロパティを変更して、バインドされたエージェントを再度追加する必要があります。変更が成功すると、サーバーは正常に実行されていると表示されます。

コマンドラインを使用して、ダウンまたは不明な状態のPEMエージェントを削除する

Down または Unknown ステータスのPEMエージェントを削除するためにPEMWebインターフェイスを使用するのは、そのようなエージェントの数が多い場合は困難です。このような状況では、コマンドラインインターフェイスを使用して Down または Unknown エージェントを削除することができます。

  1. 次のクエリを使用して、N 時間以上 Down であるエージェントを削除します。

    UPDATE pem.agent SET active=false WHERE id IN
    (SELECT a.id FROM pem.agent
    a JOIN pem.agent_heartbeat b ON (b.agent_id=a.id)
    WHERE a.id IN
    (SELECT agent_id FROM pem.agent_heartbeat WHERE (EXTRACT (HOUR FROM now())-
    EXTRACT (HOUR FROM last_heartbeat)) > <N> ));
    
  2. 次のクエリを使用して、 Unknown ステータスのエージェントを削除します。

    UPDATE pem.agent SET active=false WHERE id IN
    (SELECT id FROM pem.agent WHERE id NOT IN
    (SELECT agent_id FROM pem.agent_heartbeat));