ログをNew Relicに転送すると、すべてのログデータが1か所で利用できるようになり、アプリケーションとプラットフォームのパフォーマンスデータへの可視性が高まります。ログを1か所にまとめて、ログデータ内で見つかったエラーや異常を収集、処理、探索、照会、集計することができます。
ホストのUIから、選択した期間のイベントのコンテキストでログが配置されます。強調表示された属性の詳細データにドリルダウンできます。
infrastructureエージェントがログ転送機能を有効にするため、ログの転送方法はinfrastructureエージェントのインストール方法によって異なります。infrastructureエージェントは次の方法でインストールできます。
ガイド付きインストール(ほとんどのユーザーに推奨) 手動インストレーション Linux tarball 重要 Linuxバージョンのinfrastructureエージェント(具体的にはバージョン1.42.0)は、ttd-agent-bitパッケージからfluent-bitパッケージに移行しました。この変更は、メジャーバージョン2.xのアップデート以降、fluent-bitがtd-agent-bitフレーバーで配布されなくなったために必要になったものです。
スムーズな運用を確保し、fluent-bitパッケージに問題が発生した場合にtd-agent-bitパッケージに戻せるよう、infrastructureエージェントは両方のパッケージ(td-gent-bitとfluent-bit)をインストールします。デフォルトでは、エージェントはfluent-bitを使用するように設定されています。
ロールバックの方法の詳細については、 「Fluent Bit 1.9へのロールバック 」を参照してください。
システム要件 infrastructureエージェントバージョン1.11.4以降 Fluent Bit 。infrastructureエージェントは最新バージョンをすでにインストールしています。特定のバージョンに更新またはダウングレードするには、 Fluent Bitインストレーション 手順を参照してください。OpenSSLライブラリ1.1.0以降 Linuxシステム上のARM64 architecture(AWS Graviton architectureなど)の組み込みサポートがinfrastructureエージェント1.20.6 に追加されました。 Amazon Linux 2および2023 CentOSバージョン8および9ストリーム(Rocky LinuxおよびAlmaLinuxもサポート対象です) RedHatバージョン8および9 Debianバージョン11(Bullseye)および12(Bookworm)。 SUSE Linux Enterprise Server(SLES)バージョン12および15(ARM64はサポート対象外です)。 Ubuntuバージョン16.04.x、18.04.x、20.04.x、22.04.x、24.04.x(LTSバージョン)。 Windows Server 2016、2019、2022およびそれらのサービスパック。 Windows10、Windows11。 ガイド付きインストールでログを自動的に転送する ガイド付きインストールを使用してinfrastructureエージェントをインストールすると、インストールプロセス中にログ転送機能が自動的に設定されます。
インストールを開始するには、導入方法を選択してください。
重要 Dockerコンテナからログを転送するには、このDockerイメージ をKubernetesログインテグレーションで使用するベースのイメージとして使用するか、各環境に合わせたカスタム設定を使用して独自のコンテナを構築することができます。
手動でインストールしたエージェントでログ転送を有効にする infrastructureエージェントを手動でインストールするには、 チュートリアルに従ってパッケージマネージャーをインストールする か、 MSIインストーラ ( Windows)を確認してください。
ステップ 1. infrastructureエージェントを設定する 設定ファイルは、New Relicに表示するログソースを転送するようにシステムに指示します。必要な数だけ設定ファイルを追加できます。当社のinfrastructureエージェントは、 .ymlファイルを使用してログ記録を設定します。UIのインテグレーションおよびエージェント を介してinfrastructureエージェントをインストールすると、ファイル「logging.yml」が自動的に作成されます。
ログ転送機能の新しい設定ファイルを追加するには:
ログフォワーダー設定フォルダーに移動します。
Linux: /etc/newrelic-infra/logging.d/ Windows: C:\Program Files\New Relic\newrelic-infra\logging.d\ 設定ファイル「logging.yml」を作成し、必要なパラメーターを追加します。logging.dディレクトリには、参照または開始点として使用できるさまざまな.yml.exampleファイルがあります。Windowsの例については、 Githubリポジトリを 参照してください。
file : /var/log/logFile.log
- name : file - with - spaces - in - path
file : /var/log/folder with spaces/logFile.log
- name : file - with - attributes
file : /var/log/logFile.log
maintainer : example@mailprovider.com
- name : log - files - in - folder
- name : log - file - with - long - lines
file : /var/log/logFile.log
- name : only - records - with - warn - and - error
file : /var/log/logFile.log
エージェントは、インフラストラクチャ監視サービスを再起動することなく、新しい設定ファイルを自動的に処理します。唯一の例外は、カスタムFluent Bit設定を設定する場合です。
ステップ 2. ログ転送のパラメーターを設定する ログ転送の設定ファイル(.yml)nameでログソースパラメーターを設定する必要があります。まず、 New Relicに転送するログのnameを定義します。
ログソースに何を使用するかは、ログのソース元の場所によって異なります。ログソースに使用できるオプションは次のとおりです。
ファイル ログファイルへのパス。エージェントは、 tail -fシェルと同様の方法でログファイルの変更を追跡します。
Example:
file : /var/log/example.log
file : /var/log/example - two.log
fileパラメーターは、名前と拡張子に適用されるワイルドカードを使用して、特定のログファイルまたは複数のファイルを指すことができます(例: /logs/*.log )。ファイルパス内のディレクトリの代わりにワイルドカードを使用できます。これを使用すると、異なるディレクトリにあるファイルを追跡できます。
Example:
file : /var/lib/docker/containers/ */*.log
重要 ワイルドカードを使用すると、ファイル記述子の数が大幅に増加し、Fluent Bitプロセスが開いたままになっているinotify watchが増える可能性があります。これにより、ホストのファイル記述子の制限に達した場合にログ収集が妨げられる可能性があります。多数のファイルをtailする場合は、OS で許可されているファイル記述子とinotifyウォッチャーの最大数を増やす必要がある場合があります。ログファイルを増やす方法の詳細については、「大量のログファイルを追跡するときのエラー 」を参照してください。
SystemD Linux 環境でjournaldデーモンによって収集されたログメッセージを転送するには、 systemdパラメーターを使用します。この入力タイプでは、エージェントをrootモード で実行する必要があります。
Example:
Syslog Syslogデータソース。
Parameters:
uri: Syslogソケット。フォーマットはプロトコルによって異なります。
TCP/UDPネットワークソケット: [tcp/udp]://LISTEN_ADDRESS:PORT Unix ドメインソケット: unix_[tcp/udp]:// + /socket/path parser: Syslog パーサー。デフォルトはrfc3164です。メッセージに小数秒が含まれる場合はrfc5424使用します。注意:rfc3164現在、SuSEでは動作しません。
unix_permissions: ドメインソケットのデフォルトは0644です。これにより、エントリはrootとして実行されているプロセスに制限されます。0666使用して、非ルートプロセスをリッスンすることができます(自己責任)。
エージェントを特権モード で実行する場合、他のプロセスがソケットにログを書き込むことができるように、ポートとソケットが使用可能であるか、 nri-agentによって所有されており、 0666ファイル権限を持っている必要があります。
- name : syslog - unix - tcp - test
uri : unix_tcp : ///var/unix - tcp - socket - test
- name : syslog - unix - udp - test
uri : unix_udp : ///var/unix - udp - socket - test
TCP TCP接続を介して取得されたログ。
Parameters:
uri: 着信データをリッスンするTCP/IPソケット。URI 形式はtcp://LISTEN_ADDRESS:PORTです。
format: データの形式。jsonまたはnoneになります。
separator: format: noneを使用する場合、レコードを分割するための区切り文字列を定義できます(デフォルト:\n)。
winevtlog 重要 infrastructureエージェントv.1.24.3以降で利用可能Windows Server 2019以降とのみ互換性があります。以前のバージョンの場合は代わりにwinlog を使用してください。
winevtlog Fluent Bitプラグイン を使用した新しいWindowsイベントログAPIを使用して、 Windowsログチャネルからイベントを収集します。
Parameters:
channel:ログが収集されるチャネルの名前。
collect-eventids:収集され、New Relicに転送されるWindowsイベントIDのリスト。イベントIDの範囲がサポートされています。
exclude-eventids:収集から除外するWindowsイベントIDのリスト。イベントIDの範囲がサポートされています。
use-ansi:winlogメッセージにANSIエンコードを使用します。Windows Server 2016以前のバージョンではデフォルトでANSIエンコードが使用され、それ以降のバージョンではUTF-8が使用されます。これらのデフォルトがユースケースに合わない場合は、この設定パラメーターでこの動作をオーバーライドできます。これにより、ANSI 文字コードログが空の文字列になる問題が解決されます。これは、ANSI文字コード内のマルチバイト文字コードのログをUTF-8に変換する機能ではありません。
デフォルトでは、すべてのイベントは指定されたチャネルから収集されます。不要なログがNew Relicアカウントに送信されないように、 collect-eventidsセクションとexclude-eventidsセクションを構成します。
特定のイベントを転送または削除するには、イベントIDまたは範囲をcollect-eventidsまたはexclude-eventidsに追加します。両方のセクションに同じイベントIDが存在する場合、 exclude-eventids collect-eventidsよりも優先されます。
Example:
logtype : windows_security
- name : windows - application
logtype : windows_application
- name : windows - application
logtype : windows_application
channel : Microsoft - Windows - Windows Defender/Operational
- name : windows - clustering
channel : Microsoft - Windows - FailoverClustering/Operational
winlog 重要 Winlog 従来のイベントログのみを収集できます。他のユーザーをキャプチャしようとすると、アプリケーションログがサイレントに収集されます。
Windowsログチャネルからイベントを収集します。
Parameters:
channel:ログが収集されるチャネルの名前。カスタムチャネルでは機能しません。
collect-eventids:収集され、New Relicに転送されるWindowsイベントIDのリスト。イベントIDの範囲がサポートされています。
exclude-eventids:収集から除外するWindowsイベントIDのリスト。イベントIDの範囲がサポートされています。
use-ansi:winlogメッセージにANSIエンコードを使用します。Windows Server 2016以前のバージョンではデフォルトでANSIエンコードが使用され、それ以降のバージョンではUTF-8が使用されます。これらのデフォルトがユースケースに合わない場合は、この設定パラメーターでこの動作をオーバーライドできます。これにより、ANSI 文字コードログが空の文字列になる問題が解決されます。これは、ANSI文字コード内のマルチバイト文字コードのログをUTF-8に変換する機能ではありません。
デフォルトでは、すべてのイベントは指定されたチャネルから収集されます。不要なログがNew Relicアカウントに送信されないように、 collect-eventidsセクションとexclude-eventidsセクションを構成します。
特定のイベントを転送または削除するには、イベントIDまたは範囲をcollect-eventidsまたはexclude-eventidsに追加します。両方のセクションに同じイベントIDが存在する場合、 exclude-eventids collect-eventidsよりも優先されます。
Example:
logtype : windows_security
- name : windows - application
logtype : windows_application
- name : windows - application
logtype : windows_application
channel : Microsoft - Windows - Windows Defender/Operational
- name : windows - clustering
channel : Microsoft - Windows - FailoverClustering/Operational
ステップ3. 主要な属性を定義する これらの設定は必須ではありませんが、ログ転送を最大限に活用するために、これらの設定パラメーターをlogging.ymlファイルに適用することをお勧めします。
属性 キーの値のペアとして指定されたカスタムアトリビュートのリスト。これを使用してログとともに追加データを送信し、そのデータを書き込むことができます。attributes設定パラメーターは、どのログソースでも使用できます。
重要 attributes設定パラメーターは、外部Fluent Bit設定(例: fluentbit設定パラメーターを使用)経由で転送されたログにカスタムアトリビュートを追加しません。このシナリオでは、 Fluent Bitドキュメント のrecord_modifierオプションを参照する必要があります。
attributes設定パラメーターの一般的な使用法の1つは、 logtype属性を指定することです。この属性により、New Relic のログ管理 機能でサポートされている組み込み解析ルール の1つを活用できます。
Example:
- name : example - file - attributes
file : /var/log/example.log
- name : example - tcp - attributes
infrastructureエージェントによって自動的に挿入される属性 infrastructureエージェントは、利便性のためにログ属性を自動的に挿入します。それらの一部は任意のログレコードに挿入されますが、その他はログフォワーダーのセットアップ中に使用した設定パラメーターに依存します。
属性名
説明
entity.guids
常に挿入されます。
infrastructureエージェントは、 New Relicによって割り当てられたエンティティGUID を挿入して、実行されているホストを識別します。entity.guidsフィールドで使用できます。
注:キャプチャされたログがAPMを使用してインストゥルメントされたアプリケーションに属している場合、 entity.guidsフィールドにはインフラストラクチャのエンティティGUIDとAPMのGUIDの両方がパイプ(|)区切り文字で区切られて含まれます。
fb.input
常に挿入されます。
ログをキャプチャするために使用される、基礎となるFluent Bit入力プラグインタイプ 。現在、その値はtail 、 systemd 、 winlog 、 syslog 、 tcpです。
filePath
file入力タイプを使用するときに挿入されます。
監視対象ファイルの絶対ファイルパス。
hostname
常に挿入されます。
infrastructureエージェントを実行するマシン/ VM /コンテナのhostname 。
plugin.type
常に挿入されます。
ログをキャプチャするために使用されるユーティリティを示します。この場合、それはinfrastructureエージェント自体であるため、この属性の値は常にnri-agentになります。
パターン レコードをフィルタリングするための正規表現。file 、 systemd 、 syslog 、およびtcp(none形式のみ)のソースでのみサポートされます。
このフィールドは、Unixシステムのgrep -Eと同様に機能します。たとえば、キャプチャされている特定のファイルに対して、次のようにしてWARNまたはERRORのいずれかを含むレコードをフィルタリングできます。
- name : only - records - with - warn - and - error
file : /var/log/logFile.log
デフォルトではフィルタリングは適用されません。
max_line_kb ログエントリ/行の最大サイズ(KB)。ログエントリが制限を超えた場合、スキップされます。デフォルトは128 、最小許容値は33です。
Fluentbit 外部のFluent Bit 設定およびパーサーファイル。定義されている場合、それらはinfrastructureエージェントによって生成された既存の設定およびパーサーファイルとマージされます。
infrastructureエージェントは、 logging.dディレクトリにある設定ファイルを処理し、適切な[INPUT] 、 [FILTER] 、および[OUTPUT]セクションを含むランタイムFluent Bit設定ファイルを生成します。オプションとして、 fluentbitオプションを使用して外部のFluent Bit設定ファイルを提供した場合、 @INCLUDEも宣言されます。
ランタイムファイルでは[SERVICE]セクション が定義されていないため、 Fluent Bit設定値はすべてデフォルトのままになります。外部Fluent Bit構成ファイルで独自の[SERVICE]セクションを定義し、それをfluentbitオプションで含めることで、Fluent Bitのデフォルト設定をオーバーライドすることもできます。
Parameters:
config_file: 既存のFluent Bit設定ファイルへのパス。重複するソースがあると、ログUIに重複したメッセージが表示されることに注意してください。
parsers_file: 既存のFluent Bitパーサーファイルへのパス。次のパーサー名は予約されています:rfc3164 、 rfc3164-local 、およびrfc5424 。
重要 このドキュメントで説明されているように、infrastructureエージェントでは、 logging.d/ディレクトリのYAMLファイルに単純なログ転送設定を定義することで、最も一般的なユースケースでログを転送できます。これらのファイルは、内部で正しい形式と正常な設定デフォルトを備えたFluent Bit設定ファイルに変換されます。New Relic生成された設定ファイルが正しく動作することを保証しているため、これらの設定オプションに対して公式サポートを提供しています。
ただし、サポートされている設定オプションでカバーされていないユースケースについては、 fluentbit 、 config_file 、およびparsers_fileオプションを使用して、外部で生成されたFluent Bit設定およびパーサーファイルを使用する可能性を提供しています。
注:提供された設定は完全に任意であり、エージェントによって生成/検証されていないため、この場合に転送されたログが正しく動作することは保証できません。したがって、 New Relicはこれらのオプションで指定された外部設定に対して公式サポートを提供しません。
サンプル設定ファイル YAML形式のlogging.d設定ファイルの例を次に示します。その他の設定例については、infrastructureエージェントリポジトリを参照してください 。
logging.d/sample.yaml - name : file - with - attributes
- name : syslog - unix - tcp - test
uri : unix_tcp : ///var/unix - tcp - socket - test
- name : syslog - unix - udp - test
uri : unix_udp : ///var/unix - udp - socket - test
someOtherAttribute : associatedValue
yetAnotherAttribute : 12345
config_file : /path/to/fluentbit.config
parsers_file : /path/to/fluentbit/parsers.conf
ステップ4. ログデータを表示する すべてが正しく構成され、データが収集されている場合は、次の場所にログと関連するテレメトリーデータが表示されます。
当社のログUI インフラストラクチャUIで、ホストテーブルから、 特定のホストのアイコンをクリックし、 View logs をクリックします。 NRQL クエリ を実行するためのツール。たとえば、次のようなクエリを実行できます。オンホストインテグレーションのログ記録を有効にする infrastructureエージェントをインストールすると、最も人気のあるオンホストインテグレーションの自動ログ解析と転送をワンステップで有効にすることができます。この機能を有効にするには、 on-host-log.yml.exampleファイルの名前をon-host-log.ymlに変更します。完了すると、インテグレーションのログが自動的に解析され、 New Relicに送信されるようになります。
このオプションは、サポート対象のLinuxプラットフォーム で利用できます。
オンホストインテグレーションのログ転送機能を有効にする方法:
Elasticsearchログ 自動Elasticsearch JSON形式のログ解析とNew Relicへの転送を有効にするには、 elasticsearch-log.yml.exampleファイルをelasticsearch-log.ymlにコピーするか名前を変更します。エージェントを再起動する必要はありません。
Example:
$ sudo cp /etc/newrelic-infra/logging.d/elasticsearch-log.yml.example /etc/newrelic-infra/logging.d/elasticsearch-log.yml
MySQLログ 自動MySQLエラーログ解析とNew Relicへの転送を有効にするには、 mysql-log.yml.exampleファイルをmysql-log.ymlにコピーするか名前を変更します。エージェントを再起動する必要はありません。
Example:
$ sudo cp /etc/newrelic-infra/logging.d/mysql-log.yml.example /etc/newrelic-infra/logging.d/mysql-log.yml
NGINXログ 自動NGINXアクセスとエラーログ解析を有効にしてNew Relicに転送するには、 nginx-log.yml.exampleファイルをnginx-log.ymlにコピーするか名前を変更します。エージェントを再起動する必要はありません。
Example:
$ sudo cp /etc/newrelic-infra/logging.d/nginx-log.yml.example /etc/newrelic-infra/logging.d/nginx-log.yml
Rabbitmqログ 自動Rabbitmqエラーログ解析とNew Relicへの転送を有効にするには、 rabbitmq-log.yml.exampleファイルをrabbitmq-log.ymlにコピーするか名前を変更します。エージェントを再起動する必要はありません。
Example:
$ sudo cp /etc/newrelic-infra/logging.d/rabbitmq-log.yml.example /etc/newrelic-infra/logging.d/rabbitmq-log.yml
Redisログ 自動Redisエラーログ解析とNew Relicへの転送を有効にするには、 redis-log.yml.exampleファイルをredis-log.ymlにコピーするか名前を変更します。エージェントを再起動する必要はありません。
Example:
$ sudo cp /etc/newrelic-infra/logging.d/redis-log.yml.example /etc/newrelic-infra/logging.d/redis-log.yml
Linux tarballを使用してインストールされたエージェントでログ転送を有効にする インフラストラクチャ監視用のカスタムLinuxインストレーションプロセスを使用すると、インストレーションプロセスのあらゆる側面を調整し、マシン上にファイルやフォルダーを配置できます。支援型 または手動型 のtarballインストレーションプロセスを選択した場合は、次の手順に従ってログフォワーダー機能を実装します。
次のディレクトリを作成します。
/var/db/newrelic-infra/newrelic-integrations/logging/etc/newrelic-infra/logging.d次のようなコマンドを実行して、New Relicのfluent-bit-package(RPM) をダウンロードしてインストールします。
$ yum localinstall fluent-bit- < some-version > .rpm
New Relicのfluentbitプラグイン をダウンロードし、 /var/db/newrelic-infra/newrelic-integrations/logging/out_newrelic.soとして保存します。
このGithubリポジトリ からparsers.confファイルをダウンロードまたはコピーし、 /var/db/newrelic-infra/newrelic-integrations/logging/parsers.confとして保存します。
このドキュメントはインストールの役に立ちましたか? トラブルシューティング ログフォワーダーの設定で問題が発生した場合は、次のトラブルシューティングのヒントを試してください。
ファイルの末尾にデータが表示されない ログ転送機能を使用するには、エージェントにデータソースを読み取る権限が必要です。infrastructureエージェントを特権モードまたは非特権モード で実行する場合は、転送するログファイル(およびそのパス内の中間ディレクトリ)が、 nri-agentを実行しているユーザーによって読み取れることを確認してください。
Example: Check file access under Linux
ファイル/var/log/restrictedLogs/logFile.logがnri-agentユーザーによって監視できるかどうかを確認してみましょう。Linuxでは、 nameiコマンドを使用して簡単にチェックできます。
$ sudo -u nri-agent namei -ml /var/log/restrictedLogs/logFile.log
f: /var/log/restrictedLogs/logFile.log
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxrwxr-x root syslog log
drwxr--r-- root root restrictedLogs
logFile.log - No such file or directory
ファイルがnri-agentユーザーに表示されないため、このコマンドは失敗しました。前の出力を調べると、 restrictedLogsディレクトリにothers実行フラグがないことがわかります。
これを修正するには、次を実行します。
$ sudo chmod 755 /var/log/restrictedLogs
次に、ファイルアクセスを再度確認します。
$ sudo -u nri-agent namei -ml /var/log/restrictedLogs/logFile.log
f: /var/log/restrictedLogs/logFile.log
drwxr-xr-x root root /
drwxr-xr-x root root var
drwxrwxr-x root syslog log
drwxr-xr-x root root restrictedLogs
-rw-r----- vagrant vagrant logFile.log
ファイルはnri-agentユーザーに表示されます。ファイルがnri-agentユーザーによって読み取り可能であることも確認する必要があります。これを確認するには、次を使用します。
$ sudo -u nri-agent head /var/log/restrictedLogs/logFile.log
head: cannot open '/var/log/restrictedLogs/logFile.log' for reading: Permission denied
この例では、ファイルにothersグループ(vagrantおよびvagrantユーザーグループ以外のユーザー)の読み取り権限がありません。othersに読み取り権限を付与することでこれを修正できますが、アプリケーションの再起動時にこれらの権限が変更される可能性があります。
これを回避するには、 nri-agentユーザーをvagrantユーザーグループに追加することをお勧めします。
Syslogソケット経由でキャプチャするとデータが表示されない ログ転送機能を使用するには、エージェントにデータソースを読み取る権限が必要です。infrastructureエージェントを特権モードまたは非特権モード で実行する場合:
Unixドメインソケットファイルを使用している場合は、nri-agentユーザーがこれらのファイルにアクセスできること(前のセクションを参照してください)と、他のユーザーが読み取りおよび書き込み権限(666)を持っていることを確認してください。 nri-agentよりも多くのユーザーが書き込み可能です。
IPソケットを使用している場合は、使用しているポートがシステムで予約済みのポート(たとえば、ポート80など)ではないことを確認してください。
ログ管理を有効にしてもデータが表示されない場合は、標準のログ管理トラブルシューティング手順 に従ってください。
infrastructureエージェントプロキシを使用するとデータが表示されない infrastructureエージェント設定ガイドライン で説明されているように、 proxyパラメーターはHTTPまたはHTTPSのいずれかを使用し、https://user:password@hostname:port形式である必要があります。エージェントはHTTPまたはHTTPSを使用せずにパラメーターを解析できますが、ログフォワーダーは解析できません。エージェントの詳細ログに次のようなエラーが表示されます。
[ERROR] building HTTP transport: parse \"hostname:port\":
first path segment in URL cannot contain colon
この問題を解決するには、 newrelic-infra.ymlファイルをチェックして、 proxyパラメーターがこの形式に従っていることを確認してください。
証明書を指定するためにcaBundleFileまたはcaBundleDirを使用している場合は、OSごとに以下の規則に従うことをお勧めします。
Linux
HTTPプロキシの場合、証明書を設定する必要はありません。プラグインはシステム証明書を読み込み、New Relicはログをログエンドポイントに送信します。ただし、 caBundleFileまたはcaBundleDirパラメーターのいずれかを使用して、プロキシ自己署名証明書(PEMファイル)を指定できます。
Windows
HTTPプロキシの場合、証明書を設定する必要はありません。プラグインはシステム証明書を読み込みます。
HTTPSの場合は、次のいずれかの方法で設定できます。
(推奨)プロキシ証明書をシステムプールにインポートします。MMCツールを使用して、プロキシ自己署名証明書(PEMファイル)をインポートします。このリンク を参照し、 Step 2 ではIntermediate Certification AuthoritiesではなくTrusted Root Certification Authoritiesにインポートするようにしてください。
caBundleFileおよびcaBundleDirパラメーターを使用してください。 Windowsでは、システム証明書プールからの証明書と、 caBundleFile caBundleDirパラメーターで指定された証明書の両方を読み込むことはできません。したがって、 caBundleFileまたはcaBundleDir使用している場合は、次の証明書が同じPEMファイル(caBundleFileを使用している場合)または同じディレクトリ(caBundleDirを使用している場合)に配置されていることを確認してください。
プロキシ証明書(HTTPSプロキシであるため)。
ログ記録エンドポイント証明書(例:https://log-api.newrelic.com/log/v1)。
infrastructureエージェント証明書(例:https://infra-api.newrelic.com)。
次のコマンドを実行して証明書を確認できます。
$ openssl s_client -connect log-api.newrelic.com:443 -servername log-api.newrelic.com
infrastructureエージェントのログをNew Relicに送信する 独自のログをNew Relicに送信するようにinfrastructureエージェントを設定できます。これは、ログ転送、エージェントに関する問題のトラブルシューティングや、サポート への問い合わせに役立ちます。
重要 トレースログでは大量のデータが迅速に生成されます。ディスク領域の消費量とデータの取り込み量を削減するには、ログの生成が完了したら、必ずlevel: info(またはそれ以下)に設定してください。
infrastructureエージェントのログをNew Relicに転送するには:
newrelic-infra.ymlファイルを編集します。
次の設定スニペットを追加して、New Relicへのログ転送を有効にします。
新しい設定を読み込むにはエージェントを再起動します 。
この設定はトラブルシューティングモードでエージェントを設定しますが、ログフォワーダー(Fluent Bit に基づく)は非冗長モードで続行されます。
ログフォワーダーで詳細モードを有効にする(Fluent Bit) ログフォワーダー自体に問題が発生する場合があります。たとえば、 Windowsログイベントを配信するときや特定のログファイルにアクセスするときに、特定のチャネルにアクセスするときに問題が発生する可能性があります。このような状況では、ログフォワーダーの冗長モードを有効にすることもできます。
重要 トレースログでは大量のデータが迅速に生成されます。ディスク領域の消費量とデータの取り込み量を削減するには、ログの生成が完了したら、必ずlevel: info(またはそれ以下)に設定してください。
newrelic-infra.ymlファイルを編集します。次の構成スニペットを追加して、Fluent Bitの詳細ログを有効にします。 新しい設定を読み込むにはエージェントを再起動します 。 Fluent Bitはinfrastructureエージェントでは起動しません 重要 Fluent Bit のtailプラグインはネットワークドライブをサポートしていません。
2016より前の Linuxバージョンの場合、OpenSSLライブラリを1.1.0以降に更新する必要がある場合があります。この問題があるかどうかを確認するには:
次を実行して、 infra-agentがFluent Bitを開始したかどうかを確認します。
$ ps -aux | grep fluent-bit
実行されていない場合は、 /var/db/newrelic-infra/newrelic-integrations/loggingに移動して次を実行してください:
$ ./fluent-bit -i systemd -o stdout
次のエラーが表示された場合:
error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
OpenSSLを1.1.0以降にアップデートしてください。
Windowsでのランタイムエラー Windowsでログ転送を有効にすると、次のエラーメッセージのいずれかが表示される場合があります。
The code execution cannot proceed because VCRUNTIME140.dll was not found.
または
error="exit status 3221225781" process=log-forwarder
これはDLLが見つからないために発生します。
この問題を解決するには、該当するMicrosoft Visual C++再頒布可能パッケージ をインストールします。
大量のログファイルをtailする際のエラー(Linux) 大量のファイルをtailしようとすると、次のいずれかのエラーメッセージが発生するのが一般的です。
Too many open files
The user limit on the total number of inotify watches was reached or the kernel failed to allocate a needed resource
OSは、割り当て可能なファイル記述子の最大数(通常はデフォルトで1024)と、割り当て可能なinotify watchの最大数(通常はデフォルトで8192)を定義します。これらの制限を超えようとするプロセスは失敗し、上記のいずれかのエラーが返されます。
ログを転送するために使用する基礎テクノロジーであるFluent Bit は、1 つのファイル記述子を開き、転送するように構成されたファイルごとにinotify watchを設定します。さらに、このセクションの執筆時点では、Fluent Bitは通常の操作に32個のファイル記述子の追加セットを使用し、シャットダウン時にはさらに別のファイル記述子を使用します。したがって、 to capture a large amount of files you need to ensure that both the file descriptor and inotify watch limits are slightly greater than the amount of log files you wish to tail 。
次の手順は、10,000個のログファイルを追跡する場合にこれらの制限を増やす方法をまとめたものです。また、infrastructureエージェントがroot 実行モード でインストールされていることを前提としているため、 rootユーザーを使用して実行する必要があります。
プロセスあたりのファイル記述子の数に対する現在のハード制限を確認します。通常、この制限は非常に高く設定されており、変更する必要はありません。
/etc/security/limits.confに次の行を追加します。Fluent Bitが動作するために必要な追加のファイル記述子を割り当てられるように、ここでは10000ではなく10100の制限を指定しました。
再起動時に以前の制限が適用されるように、 /etc/pam.d/common-sessionに次の行を追加します。
$ session required pam_limits.so
ユーザーごとに許可されるinotifyウォッチャーの数を増やすには、 /etc/sysctl.confに次の行を追加します。ここでは、 10000ではなく18192の制限を指定しました。これにより、 rootユーザーは引き続き8192のinotify watch(デフォルト値)を利用できるようになります。
$ fs.inotify.max_user_watches = 18192
システムを再起動します。
次のコマンドを実行して、新しい制限が適用されていることを確認します。
$ cat /proc/sys/fs/inotify/max_user_watches
オープンファイルの制限を増やす方法 、またはinotify watchを増やす方法 について詳しく説明します。
最新のFluent Bitバージョンをインストールする(Linux) バージョン1.19.0 (SLES 12.5の場合はバージョン1.20.3 )より前では、Linux infrastructureエージェントはFluent Bitバイナリにバンドルされていました。このバージョンから、Fluent Bitが個別のrecommendedパッケージ依存関係として含まれるようになりました。
つまり、エージェントとは別に Fluent Bit をインストール、更新、またはダウングレードできます。便宜上、インフラストラクチャが存在する同じリポジトリにいくつかのFluent Bitパッケージを含めました。そのため、 Fluent Bitアップグレードするために追加のリポジトリをインストールする必要はありません。
エージェントは、初めてインストールするときに、利用可能な最新バージョンを使用して Fluent Bit を自動的にインストールすることに注意してください。最初のインストレーション後は、他のLinuxパッケージと同様にFluent Bitアップグレードできます。
次のコマンドを実行すると、利用可能なFluent Bitバージョンを一覧表示できます。
RPM:
$ yum list fluent-bit --showduplicates
DEB:
$ apt-cache showpkg fluent-bit
最新の Fluent Bitバージョンにアップグレードするには、次のコマンドを実行します。
RPM:
$ sudo yum install fluent-bit
DEB:
$ sudo apt install fluent-bit
Linuxでinfrastructureエージェント1.42.0を適用した後、fluent-bit 1.xにロールバックする td-agent-bitは次のディストリビューションでは利用できないため、ロールバックは不可能であることに注意してください。
好みのテキストエディターを使用してファイル/etc/newrelic-infra.ymlを開きます。
ファイルの末尾に次の行を追加します:fluent_bit_exe_path: /opt/td-agent-bit/bin/td-agent-bit 。
変更を保存します。
次のコマンドを実行して、infrastructureエージェントを再起動します:sudo systemctl restart newrelic-infra 。
これらの手順を完了すると、infrastructureエージェントは、fluent-bitの代わりにtd-agent-bitを使用するように構成されます。
次のステップ ログ UI を使用して、プラットフォーム全体のログデータを調べます。
ログ転送の無効化 ログ転送機能を無効にするには、 logging.dディレクトリに移動し、設定 プロセス中に最初に追加された.yml拡張子を持つファイルを削除します。
Linux: /etc/newrelic-infra/logging.d/ Windows: C:\Program Files\New Relic\newrelic-infra\logging.d\