New Relic エージェントトラブルシューティング - Agent固有の問題解決
New Relicエージェントはシステムやアプリケーションの監視で中心的な役割を担っています。ただし、環境が複雑だったり設定が細かいため、エージェント固有の問題が発生することがよくあります。ここでは、Infrastructure AgentとAPM Agentでよく起きる問題とその解決方法を、ログの見方と一緒に詳しくお伝えします。
エージェント診断の基本手法
ログファイルの場所と確認方法
New Relicエージェントの問題を解決するためには、まずログファイルを確認することが最初のステップです。エージェントの種類やOSによってログの保存場所が異なるので、正しい場所を把握しておくことが大切です。
LinuxではInfrastructure Agentのログは/var/log/newrelic-infra/
に、APM Agentは言語によって変わります。Javaならlogs/newrelic_agent.log
、PHPなら/var/log/newrelic/
といった具合です。
Windowsでは%PROGRAMFILES%\New Relic\
の下にログが作られますが、インストール時の設定によって場所が変わることもあります。
ログレベルの調整と詳細情報の取得
普段はログレベルをINFO
やWARN
に設定していますが、問題を調べるときはDEBUG
レベルに変更することで、より詳しい情報を得られます。ただし、デバッグモードはたくさんのログを出力するので、本番環境では短時間だけ使うようにしましょう。
ログレベルの変更は設定ファイルを編集したり、エージェントを再起動したりすることで有効になります。問題が解決したら、パフォーマンスへの影響を避けるために元の設定に戻すことを忘れないでください。
Infrastructure Agent特有の問題
エージェントの起動と停止の問題
Infrastructure Agentが正しく起動しない場合は、まずサービスの状態を確認しましょう。
サービスの確認と操作方法
Linux環境での基本コマンド:
# エージェントの状態確認
sudo systemctl status newrelic-infra
# エージェントの操作
sudo systemctl start newrelic-infra # 開始
sudo systemctl stop newrelic-infra # 停止
sudo systemctl restart newrelic-infra # 再起動
sudo systemctl enable newrelic-infra # 自動起動を有効化
Windows環境での基本コマンド:
# サービス状態確認
sc query "newrelic-infra"
# サービスの再起動
net stop "newrelic-infra"
net start "newrelic-infra"
# サービスの自動起動設定
sc config "newrelic-infra" start= auto
起動失敗の主な原因は設定ファイルの記述ミス、権限不足、必要なファイルの不足などです。設定ファイルnewrelic-infra.yml
の記述が正しいか、エージェントを実行するユーザーに必要な権限があるかを確認しましょう。
メモリ不足やディスク容量不足も起動を妨げることがあります。システムリソースの状況をチェックし、必要に応じてリソースを増やすことを検討してください。
統合(Integrations)の問題
Infrastructure Agentの統合機能(Integration)で問題が起きる場合は、それぞれの統合ログを個別に確認することが重要です。MySQL、Apache、Dockerなどの統合は、それぞれ独立した設定とログを持っています。
統合設定ファイルのユーザー名やパスワードが正しいか、監視対象のサービスに接続できるかをチェックしましょう。パスワードを変更したりファイアウォール設定を変更した後に問題が起きることがよくあります。
統合は特定のソフトウェアバージョンのみをサポートしていることがあります。互換性情報を確認して、サポートされているバージョンの組み合わせを使用していることを確認してください。
カスタム属性の問題
カスタム属性がうまく収集されない場合、属性名の制限や値のデータ型に問題があるかもしれません。New Relicでは属性名に使える文字数や文字の種類に制限があって、これを超えると属性が正しく保存されません。
属性値のサイズ制限も注意が必要です。大きすぎる値は自動的に短く切られたり、完全に無視されたりすることがあります。ログで属性の処理状況を確認して、制限内に収まるように調整してください。
APM Agent特有の問題
言語別エージェントの設定問題
APM Agentはプログラミング言語ごとに異なる特徴を持ち、それぞれ独特の問題が発生します。JavaエージェントではJVMのオプション設定やクラスパスの問題が起きやすく、正しいagent jarファイルの指定と適切な引数設定が必要です。
Node.jsエージェントではモジュールの読み込み順序が重要なポイントで、New Relicモジュールを他のモジュールよりも先に読み込む必要があります。この順序を間違えると、正常な監視ができません。
Python、PHP、Ruby、.NETなどのエージェントも、それぞれの言語特有の設定要件があります。公式ドキュメントの設定例と現在の設定を比較して、違いを見つけることが大切です。
トランザクションの追跡問題
一部のトランザクションが追跡されない場合、エージェントの監視範囲やフィルタ設定に問題があるかもしれません。基本的にはフレームワークで処理されるリクエストだけが自動で追跡されます。
特別な処理やカスタムコードは、手動で監視設定を追加する必要があります。APIを使ってトランザクションの開始と終了を明示的に記録することが大切です。
非同期処理やバックグラウンドで動くジョブの追跡には、特別な設定が必要なことがあります。これらの処理を正しく追跡したい場合は、エージェントの非同期処理サポート機能を有効にしてください。
パフォーマンスへの影響
APM Agentがシステムのパフォーマンスに大きな影響を与えている場合は、設定を見直す必要があります。トランザクションサンプリング率を調整して、収集する情報量を最適化することで、オーバーヘッドを減らすことができます。
データベースクエリの詳細収集や詳しいスタックトレースの取得は便利ですが、高負荷な環境では無効にすることを検討してください。必要な情報だけを収集するよう設定を調整することで、効率的な監視が実現できます。
ネットワークと接続性の問題
ファイアウォールとプロキシの設定
エージェントがNew Relicサーバーに接続できない場合、ネットワーク設定を詳細に確認する必要があります。New Relicが使用するドメインとポートを、ファイアウォールの許可リストに追加することが必要です。
企業環境では、プロキシサーバー経由での接続が必要になることが多く、プロキシ設定の詳細な設定が求められます。認証が必要なプロキシの場合は、認証情報も適切に設定する必要があります。
SSL/TLS証明書の検証に関する問題も発生することがあります。企業内のセキュリティポリシーにより、証明書検証の設定を調整する必要がある場合があります。
DNS解決の問題
DNS設定に問題がある場合、エージェントがNew Relicのエンドポイントを解決できない可能性があります。nslookup
やdig
コマンドを使用して、必要なドメイン名が正しく解決されるかを確認しましょう。
IPv6環境では、IPv6とIPv4の両方の設定を確認する必要があります。一部の環境では、IPv6接続が優先されるが実際には接続できない、という問題が発生することがあります。
ログ解析の実践的手法
エラーパターンの特定
エージェントログから問題を特定するため、一般的なエラーパターンを理解することが重要です。接続エラー、認証エラー、設定エラーなど、エラーの種類により対処法が異なります。
ログの時系列分析により、問題の発生タイミングと他のシステム変更との関連性を特定できます。デプロイメント、設定変更、インフラストラクチャの変更と問題発生の相関関係を調査しましょう。
ログの統合と分析
複数のエージェントログを統合して分析することで、システム全体の問題を把握できます。Infrastructure AgentとAPM Agentのログを時系列で整理し、関連する問題を特定する手法が効果的です。
ログ管理ツールを活用することで、大量のログデータから必要な情報を効率的に抽出できます。正規表現やフィルタ機能を活用し、特定のパターンやエラーを迅速に特定しましょう。
高度なトラブルシューティング手法
デバッグモードの活用
重大な問題の場合、エージェントのデバッグモードを有効にして詳細な情報を収集します。デバッグモードでは、内部処理の詳細な情報が記録されるため、問題の根本原因を特定しやすくなります。
ただし、デバッグモードは大量のログを生成し、システムパフォーマンスに影響を与える可能性があります。本番環境では短時間の使用に留め、問題解決後は通常モードに戻すことが重要です。
サポートチケット作成時の情報準備
New Relicサポートにチケットを作成する際は、事前に必要な情報を整理しておくことで、迅速な解決が期待できます。エージェントバージョン、設定ファイル、関連するログ、エラーメッセージ、再現手順などを体系的に整理しましょう。
環境情報(OS、アプリケーションバージョン、ネットワーク構成)も重要な情報です。問題の影響範囲と発生頻度も明確に記述することで、適切な優先度での対応が期待できます。
まとめ
New Relicエージェントのトラブルシューティングは、体系的なアプローチと適切なツールの活用により効率化できます。ログ解析の技術を習得し、問題パターンを理解することで、多くの問題を迅速に解決できるようになります。
定期的なエージェントの健全性チェックと予防的なメンテナンスにより、問題の発生を最小限に抑えることができます。次回は、データが表示されない場合の具体的な診断手順について詳しく解説します。
関連記事: データが表示されない場合の対処法関連記事: 一般的な問題と解決法