New Relic データが表示されない場合の診断と対処法

New Relicでデータが表示されない問題は、監視システムにおいて最も深刻な問題の一つです。この問題には様々な原因があり、体系的なアプローチによる診断が重要です。本記事では、データ表示問題の原因特定から解決まで、段階的な診断手順と具体的な対処法を詳しく解説します。

初期診断のチェックリスト

基本的な確認事項

データが表示されない問題に直面した際は、まず基本的な項目を確認することが重要です。アカウントにログインできているか、正しいアカウントとサブアカウントを選択しているかを確認しましょう。複数のNew Relicアカウントを持っている場合、間違ったアカウントでログインしていることがあります。

時間範囲の設定も確認すべき重要なポイントです。デフォルトで設定されている時間範囲が、実際にデータが生成されている時間帯と一致しているかを検証します。リアルタイム監視では、データの取り込みに若干の遅延があることも考慮に入れましょう。

エージェントのステータスと最終報告時刻も基本的な確認項目です。Infrastructure MonitoringやAPMの概要ページで、エージェントが正常に動作しているかを確認できます。

アカウントと権限の確認

データにアクセスする権限が適切に設定されているかを確認することも重要です。ユーザーロールや権限設定により、特定のデータが表示されない場合があります。管理者権限を持つユーザーと連携して、権限設定を確認しましょう。

サブアカウント構造を使用している組織では、データが別のサブアカウントに送信されている可能性があります。組織内のすべてのサブアカウントを確認し、該当するデータが存在するかを調査します。

エージェント状態の詳細診断

エージェントの実行状態確認

エージェントが正常に実行されているかを詳細に確認します。プロセス監視コマンドを使用して、エージェントプロセスが動作しているかを確認しましょう。Linuxではps aux | grep newrelic、Windowsではタスクマネージャーまたはtasklistコマンドが有効です。

エージェントサービスの状態も重要な確認ポイントです。サービスが停止している場合は、手動で再起動を試みます。自動再起動の設定も確認し、障害時の自動復旧機能が有効になっているかを検証します。

設定ファイルの検証

エージェントの設定ファイルに問題がないかを詳細に確認します。Infrastructure Agentの場合はnewrelic-infra.yml、APM Agentの場合は言語固有の設定ファイルを確認します。

API Keyやライセンスキーが正しく設定されているかを確認しましょう。キーの有効性、権限、期限切れの状況なども重要なチェックポイントです。設定ファイルの構文エラーがないかも、YAMLバリデーターなどを使用して確認します。

環境変数での設定を使用している場合は、環境変数が正しく設定され、エージェントから参照できることを確認します。特に、Dockerコンテナ環境では、環境変数の伝播に注意が必要です。

エージェントログの解析

エージェントログは、データが送信されない原因を特定する最も重要な情報源です。ログファイルの場所を確認し、最新のエラーメッセージや警告を詳細に分析します。

よく見られるエラーメッセージと対処法

接続エラーの例:

ERROR: Failed to connect to collector: dial tcp: lookup collector.newrelic.com: no such host

対処法: DNS設定を確認し、外部ドメインの名前解決が正常に動作するか確認

ERROR: HTTP error 403: authentication failure

対処法: API Key(License Key)の有効性と権限を確認

ERROR: Connection timeout after 20 seconds

対処法: ファイアウォール設定とネットワーク接続性を確認

設定エラーの例:

YAML error: line 5: mapping values are not allowed in this context

対処法: 設定ファイルのYAML構文を確認し、インデント・スペースを修正

ERROR: Invalid license key format

対処法: License Keyの形式を確認し、正しいキーを再設定

権限エラーの例:

ERROR: Permission denied: /var/log/newrelic-infra/

対処法: エージェント実行ユーザーの権限を確認し、必要なディレクトリへのアクセス権を付与

データ送信エラーの例:

WARN: Data payload too large (5MB), dropping events

対処法: サンプリング率を調整し、送信データ量を削減

接続エラー、認証エラー、データ送信エラーなど、異なるタイプのエラーには、それぞれ異なる対処法があります。エラーメッセージを正確に記録し、該当する解決策を適用します。

ログレベルをデバッグモードに変更することで、より詳細な情報を取得できます。ただし、デバッグログは大量の情報を生成するため、問題解決後は通常のログレベルに戻すことを忘れないでください。

ネットワーク接続の診断

基本的な接続テスト

エージェントがNew Relicサーバーに接続できるかを確認するため、基本的な接続テストを実行します。pingtelnetcurlなどのコマンドを使用して、New Relicエンドポイントへの接続性を確認しましょう。

New Relicの主要エンドポイント(collector.newrelic.com、infra-api.newrelic.com等)への接続を個別にテストします。HTTPSプロトコルでの接続が必要なため、SSL/TLS接続の確認も重要です。

ファイアウォールとプロキシ設定

企業環境では、ファイアウォールやプロキシサーバーが接続を阻害している可能性があります。New Relicが使用するドメインとポート番号を確認し、必要な通信を許可する設定を行います。

主要な宛先ドメイン(.newrelic.com、.nr-data.net等)と、使用されるポート(通常はHTTPS 443)を許可リストに追加します。プロキシサーバーを使用している場合は、プロキシ設定とプロキシ認証の設定も確認が必要です。

DNS解決の問題

DNS設定に問題がある場合、エージェントが正しいサーバーアドレスを解決できない可能性があります。nslookupdigコマンドを使用して、New Relicのドメイン名が正しく解決されるかを確認します。

内部DNSサーバーを使用している環境では、外部ドメインの解決設定を確認する必要があります。IPv6環境では、IPv4とIPv6の両方の設定を確認し、適切なプロトコルで接続されていることを確認しましょう。

データ送信プロセスの確認

データ収集の設定確認

エージェントがデータを正しく収集しているかを確認します。Infrastructure Agentの場合は、監視対象のリソース(CPU、メモリ、ディスク等)が適切に設定されているかを確認します。

APM Agentの場合は、アプリケーションコードでエージェントが正しく初期化されているか、必要なインストルメンテーションが適用されているかを確認します。自動インストルメンテーションが有効になっているか、カスタムインストルメンテーションが正しく実装されているかも重要なポイントです。

サンプリングと制限の確認

New Relicには、データ送信量やAPIリクエスト数に関する制限があります。これらの制限に達している場合、一部のデータが破棄される可能性があります。アカウントの使用量を確認し、制限に近づいていないかを確認しましょう。

サンプリング設定も重要な要素です。高負荷環境では、サンプリング率が自動的に調整され、一部のデータが収集されない場合があります。サンプリング設定を確認し、必要に応じて調整を行います。

データ形式とスキーマの確認

カスタムイベントやメトリクスを送信している場合、データ形式やスキーマが正しく設定されているかを確認します。New Relicでは、イベント名や属性名に使用できる文字や、値のデータ型に制限があります。

大きすぎるデータや不正な形式のデータは自動的に破棄されます。ログでデータ処理の状況を確認し、制限内に収まるようデータを調整します。

特定の監視タイプ別の診断

Infrastructure監視の問題

Infrastructure監視でデータが表示されない場合、エージェントのシステム権限を確認します。一部のシステム情報の取得には、管理者権限やroot権限が必要な場合があります。

統合(Integrations)を使用している場合は、個別の統合設定を確認します。データベースやWebサーバーなどの統合では、認証情報や接続設定が正しく設定されている必要があります。

APM監視の問題

APM監視では、アプリケーションが実際にトラフィックを受信しているかを確認します。トランザクションが発生していない場合、APMデータは生成されません。

エージェントがアプリケーションのフレームワークを正しく認識しているかも重要なポイントです。サポートされているフレームワークとバージョンを確認し、必要に応じて手動インストルメンテーションを実装します。

ブラウザ監視の問題

ブラウザ監視では、JavaScriptエージェントが正しくページに埋め込まれているかを確認します。ブラウザの開発者ツールを使用して、New RelicのJavaScriptコードが読み込まれ、実行されていることを確認しましょう。

Content Security Policy(CSP)設定により、JavaScriptの実行が阻害されている可能性もあります。CSP設定を確認し、New Relicドメインからのスクリプト実行を許可する設定を追加します。

高度な診断手法

ネットワークパケット解析

通常の診断手法で問題が解決しない場合、ネットワークパケット解析を実行します。tcpdumpWiresharkなどのツールを使用して、エージェントとNew Relicサーバー間の通信を詳細に解析します。

パケット解析により、データが実際に送信されているか、サーバーからの応答が正しく受信されているかを確認できます。SSL/TLS接続の問題や、プロキシサーバーでの通信変更なども特定できます。

APIを使用した直接確認

New Relic APIを使用して、データが実際にプラットフォームに到達しているかを確認します。Query APIやGraphQL APIを使用して、期待されるデータが存在するかを直接クエリできます。

この手法により、エージェントからのデータ送信は正常だが、UI表示に問題がある場合を特定できます。API経由でデータが確認できる場合、UI設定やダッシュボード設定を確認します。

解決後の検証と予防

データ表示の確認

問題が解決した後は、すべての監視データが正しく表示されることを確認します。異なる時間範囲、ダッシュボード、アラート設定で、データが一貫して表示されることを検証しましょう。

継続的な監視設定

データ収集の問題を早期に検出するため、エージェントの健全性を監視するアラートを設定します。エージェントの停止、データ送信の中断、接続エラーなどを検知するアラートにより、問題の再発を防止できます。

定期的な設定レビューと予防的なメンテナンスにより、多くの問題を未然に防ぐことができます。エージェントのアップデート、設定の最適化、環境の変更管理などを継続的に実施しましょう。

まとめ

New Relicでデータが表示されない問題は、体系的な診断アプローチにより効率的に解決できます。基本的な確認から高度な診断手法まで、段階的に問題を特定し、適切な対処法を適用することが重要です。

問題解決後の継続的な監視と予防的なメンテナンスにより、安定したデータ収集環境を維持できます。次回は、パフォーマンス最適化の具体的な手法について詳しく解説します。


関連記事: パフォーマンス最適化関連記事: エージェントトラブルシューティング