モジュール-エージェント型デプロイのトラブルシューティング

エージェントまたはモジュールが検出されません

モジュールとエージェントが正常にインストールされると、Next-Gen WAF コンソールの Agents ページと、Fastly コンソールの Deployment ページに一覧表示されます。多くの場合、顧客はエージェントを起動し、すべてが正常に実行されているように見えても、エージェントまたはモジュールが正しく一覧表示されていない場合に、設定に問題がある可能性に初めて気づきます。

エージェントが検出されません

エージェントが実行されているように見えても、Next-Gen WAF コンソールの Agents ページと、Fastly コンソールの Deployment ページにエージェントが一覧表示されない可能性があります。これは通常、エージェントの設定が間違っているか、エージェントとクラウドホスト型バックエンド間の接続に問題があることが原因です。次のトラブルシューティングを実行してください。

  1. エージェントが実行されていることを確認します。

    $ ps -aef | grep sigsci-agent
  2. 以下でエージェントを再起動してください:

    $ sudo restart sigsci-agent
  3. エージェントが実行中の場合、ファイアウォールがエージェントとクラウドホスト型バックエンド間の通信をブロックしていないことを確認します。Next-Gen WAF エージェントは、ポート 443/TCP 経由で次のエンドポイントとアウトバウンド通信を行います。

    • c.signalsciences.net

    • wafconf.signalsciences.net

    • sigsci-agent-wafconf.s3.amazonaws.com

    • sigsci-agent-wafconf-us-west-2.s3.amazonaws.com

    ファイアウォールの制限に関する詳細は、ネットワーク要件のガイドをご覧ください。

  4. エラーメッセージがないかログファイルを確認します。

    $ ls -l /var/log/sigsci-agent
    $ tail -n 20 /var/log/sigsci-agent
  5. エージェントが起動せず、ログファイルに何も書き込まれない場合は、エージェントを手動で実行し、表示されるメッセージを確認します。

    $ stop sigsci-agent
    $ /usr/sbin/sigsci-agent
  6. 別のターミナルで、エージェントプロセスに SIGUSR1 シグナルを送信して診断情報を出力し、その出力を問題の詳細な説明とすべてのログファイルとともにサポートチームに送信します。

    $ kill -s USR1 `pidof sigsci-agent`

モジュールが検出されません

コンソールにはエージェントが報告中であると示されているにもかかわらず、モジュールが「未検出」として一覧表示される場合があります。このシナリオにはいくつかの原因が考えられますが、次の手順はこの状態を解消するために有用です。

  1. モジュールがエージェントに報告するためには、システムを通じてリクエストを送信する必要があります。サーバーに手動で404を生成するには、存在しないページをリクエストするのが最も簡単な方法で、コンソールでトラフィックが検証され始めます。モジュールが報告し、コンソールが異常を表示するまで、リクエストの時点から最大30秒かかります。

  2. Web サーバーに固有のモジュールのインストール手順を確認し、オプションの設定変更が正しく行われたことを確認します。

  3. モジュールのインストール後に、Web サーバーを再起動します。

  4. モジュールの報告がまだ行われず、コンソールにデータが表示されない場合は、ドメインソケットの権限に関連する問題がないか確認します。デフォルトでは、エージェントとモジュールは Linux オペレーティングシステムでローカルドメインソケットとして /var/run/sigsci.sock を使用するように設定されており、適切に実行するには十分な権限が必要です。

    • Red Hat/CentOS を使用している場合は、SELinux を確認します。

      $ sestatus

      SELinux が有効になっている場合は、SELinux サポートガイドを参照してください。

    • Ubuntu を使用している場合は、AppArmor を確認し、必要に応じてセキュリティプロファイルを調整します。

      $ sudo apparmor_status
  5. モジュールが依然として報告を行わない場合は、問題の詳細な説明と次のログを添えて、Fastly のサポートチームまでお問い合わせください。

    • NGINX または Apache error.log、IIS エラーログ (デフォルト %SystemDrive%\inetpub\logs\LogFiles)

    • NGINX が Web サーバーである場合は、次の出力を取得します。

      $ /opt/sigsci/bin/check-nginx
    • 設定ファイル /etc/sigsci/agent.conf を収集し、NGINX を実行している場合は /etc/nginx/nginx.conf、Apache を実行している場合は、通常は /etc/httpd/conf/httpd.conf にある httpd.conf を収集します。

データがコンソールに表示されないにもかかわらず、エージェントとモジュールは実行されています

エージェントとモジュールの両方がコンソール内でアクティブとレポートしているにもかかわらず、リクエストの処理時にデータが表示されない場合、エージェントのシステム時刻が同期していない可能性が高いです。これにより、イベントがかなり過去または未来に報告される可能性があります。特に、一時停止状態になっていて cron 経由で更新されない VM またはコンテナを使用する開発環境で発生する可能性が高くなります。

この状態が発生しているかどうかを確認するには、次の手順に従ってください。

  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. ナビゲーションバーの Agents をクリックします。

  4. エージェントの名前をクリックします。

  5. エージェントのクロックスキュー (秒) をグラフで確認します。エージェントのクロックスキューは数秒を超えてはなりません。この値が大きい場合は、システム時間を更新し、ntpd を維持することで問題は解決するはずです。

コンソール内のリクエストがシグナルを報告していません

お使いのオペレーティングシステムと Web サーバーがサポートされていることを確認する

サポートされているバージョンを確認して、サポート対象のオペレーティングシステムと Web サーバーのバージョンを確認してください。

エージェントとモジュールが正しく実行されていることを確認する

  1. Next-Gen WAF control panel
  2. Fastly control panel
  1. Next-Gen WAF コンソールにログインします。
  2. Sites メニューから、複数のサイトがある場合はサイトを選択します。
  3. ナビゲーションバーの Agents をクリックします。

  4. Status 列で、エージェントがオンラインと表示されているか確認します。

  5. Module列で、モジュールが検出されたと表示されているか確認します。

  6. エージェントの名前をクリックします。

  7. 表示されたエージェントの指標を確認し、コンソールがエージェントからテレメトリを受信していることを確認します。コンソールがエージェントからテレメトリを受信していない場合、いくつかの指標は Unknown または 0 ms として表示されます。

  8. エージェントのクロックスキューを確認します。

NGINX を確認する

NGINX が Web サーバーである場合は、次を実行して、NGINX、エージェント、およびモジュールが正しく設定されていることを確認できます。

$ /opt/sigsci/bin/check-nginx

サポートに問い合わせる

前の手順で問題が生じた場合は、必要なデータを収集し、サポートチームにお問い合わせください。

  1. エージェント設定ファイル (デフォルトでは /etc/sigsci/agent.conf) に次の行を追加して、詳細なデバッグログ記録を有効にします。

    debug-log-all-the-things = true
  2. エージェントを再起動します。

  3. 別のターミナルで、エージェントプロセスに SIGUSR1 シグナルを送信して診断情報を出力します。

    $ kill -s USR1 `pidof sigsci-agent`
  4. エージェントの詳細なログエントリーを収集します。

  5. デフォルトで /etc/sigsci/agent.conf にあるエージェント設定ファイルを収集します。

  6. 以下のサーバー設定ファイルを収集します。

    • NGINX : /etc/nginx/nginx.conf

    • Apache : /etc/httpd/conf/httpd.conf

    • IIS : %SystemDrive%\System32\inetsrv\config\applicationHost.config

  7. 次のサーバーエラーログファイルを収集します (該当する場合)。

    • NGINX : /var/log/nginx/error

    • Apache : /var/log/apache2/error.log

    • IIS : %SystemDrive%\inetpub\logs\LogFiles

  8. NGINX が Web サーバーである場合は、次の出力を収集します。

    $ /opt/sigsci/bin/check-nginx
  9. 問題の詳細、収集したすべてのログと設定ファイルを添えて、サポートチームまでお問い合わせください。