ログデータをNewRelicに取り込むための幅広いソリューションを提供しています。ただし、ログフォワーダー(CDN、ハードウェアデバイス、マネージドサービスなど)がない他の状況では、TCPエンドポイントを介してsyslogプロトコルを使用できます。 rsyslog
やsyslog-ng
などのsyslogクライアントを使用して、ログをNewRelicに転送できます。
互換性と要件
syslogクライアントを使ってログをNew Relicに転送するには、以下が必要です。
ログを送信するアカウントの有効な New Relic
このドキュメントで説明されているように、syslogクライアントの設定にいくつかのマイナーな変更があります。
rsyslog バージョン 8 以降を構成する (Amazon Linux、Redhat、Centos)
重要
EUリージョンアカウントを使用している場合は、エンドポイントとしてnewrelic.syslog.nr-data.net
ではなくnewrelic.syslog.eu.nr-data.net
を使用する必要があります。 EUアカウントにUSエンドポイントを使用しても機能しないため、構成ファイルで置き換えることを忘れないでください。
Amazon Linux、Redhat、および Centos ディストリビューションのrsyslog
を使用してログを New Relic に転送するには:
rsyslog
がTLS暗号化を使用してログを送信できるようにするために必要なパッケージをインストールします。bash$sudo yum install rsyslog-gnutls ca-certificatesオプション:ログファイルをテールし、その内容をNewRelicに転送するように
rsyslog
を設定します。テキストファイル入力モジュールを有効にするには、/etc/rsyslog.conf
ファイルに以下を追加します。module(load="imfile"PollingInterval="10")/etc/rsyslog.d/
ディレクトリに、newrelic.conf
という名前のテキストファイルを作成します。/etc/rsyslog.conf
の下の$IncludeConfig
オプションに、/etc/rsyslog.d
ディレクトリの下に新しく作成されたnewrelic.conf
ファイルを含む一致するワイルドカードが既にあるかどうかを確認してください。それ以外の場合は、/etc/rsyslog.conf
に/etc/rsyslog.d/newrelic.conf
を明示的に含める必要があります。$IncludeConfig /etc/rsyslog.d/newrelic.conf
以下を
newrelic.conf
に追加します。 強調表示された値を置き換えます。YOUR_LICENSE_KEY
には、New Relic を使用します:## Specify each of the files to be tailed in case step 1 is doneinput(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE")## Template expected by the New Relic Syslog endpointtemplate(name="newrelic-rfc5424"type="string"string="YOUR_LICENSE_KEY <%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% %structured-data% %msg%\n")## Configure TLS and log forwardingglobal(DefaultNetstreamDriver="gtls"##Specify the full path to the system's CA certificate:DefaultNetstreamDriverCAFile="<path to certificate>"## RHEL/CentOS/Amazon Linux:##/etc/pki/tls/certs/ca-bundle.crt## Ubuntu:##/etc/ssl/certs/ca-certificates.crt##Other systems:##Specify the full path to the system's generic CA certificate.)action(type="omfwd"Target="newrelic.syslog.nr-data.net"Port="6514"Protocol="tcp"Template="newrelic-rfc5424"ResendLastMSGOnReconnect="on"StreamDriver="gtls"StreamDriverAuthMode="x509/name"StreamDriverPermittedPeers="*.syslog.nr-data.net"StreamDriverMode="1")(オプション):
syslog
データにカスタム属性を追加します。syslog
データを残りのテレメトリ データと一致させるために、カスタム属性を追加できます。これを行うには 2 つの方法があります。Add custom attributes directly in the template string. 文字列値の二重引用符 (
"
) をエスケープする必要があります。 例えば:[<STRUCTURED_DATA_ID> <ATTR_NAME_1>="<ATTR_VALUE_1>" <ATTR_NAME_2>="<ATTR_VALUE_2>" ...]
template(name="newrelic-rfc5424"type="string"string="YOUR_LICENSE_KEY <%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% [someId environment=\"prod\" region=\"US\"] %msg%\n")Add custom attributes using a custom property variable in the template string. この方法では、文字列値をエスケープする必要がなくなります。
template(name="newrelic-rfc5424"type="string"string="YOUR_LICENSE_KEY <%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% %!custom-structured-data% %msg%\n")set $!custom-structured-data = '[someId1 environment="prod" region="US"][someId2 team="sre" cost-center="123"]';
テンプレート文字列の %structured-data%
セクションをカスタム タグ/属性に置き換えてください。
次のコマンドを実行して、
rsyslog
サービスを再起動します。bash$sudo systemctl restart rsyslogNew Relic アカウント のログを確認してください。
圧縮を使用して rsyslog バージョン 8 以降を構成する (Amazon Linux、Redhat、Centos)
Amazon Linux、Redhat、Centos ディストリビューション用にrsyslog
バージョン 8 以降を設定するには:
configure rsyslogで説明されているステップ 1 から 4 に従います。
重要
構成されたポート番号は {
6514
} ではなく6516
であることに注意してください。newrelic.conf
に以下を追加します。 強調表示されたすべての値を置き換えます。YOUR_LICENSE_KEY
には、New Relic を使用します。## Specify each of the files to be tailed in case step 1 is doneinput(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE"## Template expected by the New Relic Syslog endpointtemplate(name="newrelic-rfc5424"type="string"string="YOUR_LICENSE_KEY <%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% %structured-data% %msg%\n")## Configure TLS and log forwardingglobal(DefaultNetstreamDriver="gtls"##Specify the full path to the system's CA certificate:DefaultNetstreamDriverCAFile="<path to certificate>"## RHEL/CentOS/Amazon Linux:##/etc/pki/tls/certs/ca-bundle.crt## Ubuntu:##/etc/ssl/certs/ca-certificates.crt##Other systems:##Specify the full path to the system's generic CA certificate.)action(type="omfwd"Target="newrelic.syslog.nr-data.net"Port="6516"Protocol="tcp"Template="newrelic-rfc5424"ResendLastMSGOnReconnect="on"StreamDriver="gtls"StreamDriverAuthMode="x509/name"StreamDriverPermittedPeers="*.syslog.nr-data.net"StreamDriverMode="1"compression.Mode="stream:always")次のコマンドを実行して、
rsyslog
サービスを再起動します。bash$sudo systemctl restart rsyslogNew Relic アカウント のログを確認してください。
rsyslog バージョン 7 以下のレガシー構成ファイル (Amazon Linux、Redhat、Centos)
rsyslog バージョン 7 以下を使用している場合は、構成ファイルを廃止されたレガシー形式に適合させる必要があります。この形式は、レトロな互換性のためにのみ保持されています。rsyslog ドキュメントに記載されているように、使用を避けることを強くお勧めします。Amazon Linux、Redhat、Centos ディストリビューションのログを設定するには:
rsyslog
がTLS暗号化を使用してログを送信できるようにするために必要なパッケージをインストールします。bash$sudo yum install rsyslog-gnutls ca-certificatesオプション:ログファイルをテールし、その内容をNewRelicに転送するように
rsyslog
を設定します。テキストファイル入力モジュールを有効にするには、/etc/rsyslog.conf
ファイルに以下を追加します。$ModLoad imfile$InputFilePollInterval 10$PrivDropToGroup adm$WorkDirectory /var/spool/rsyslog/etc/rsyslog.d/
ディレクトリに、newrelic.conf
という名前のテキストファイルを作成します。/etc/rsyslog.conf
の下の$IncludeConfig
オプションに、/etc/rsyslog.d
ディレクトリの下に新しく作成されたnewrelic.conf
ファイルを含む一致するワイルドカードが既にあるかどうかを確認してください。それ以外の場合は、$IncludeConfig /etc/rsyslog.d/newrelic.conf
} を使用して/etc/rsyslog.conf
に/etc/rsyslog.d/newrelic.conf
を明示的に含める必要があります。以下を
newrelic.conf
に追加します。 強調表示された値を置き換えます。YOUR_LICENSE_KEY
には、New Relic を使用します:## Template expected by the New Relic Syslog endpoint$template NRLogFormat,"YOUR_LICENSE_KEY <%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% %structured-data% %msg%\n"## Specify each of the files to be tailed in case step 1 is done$InputFileName /path/to/file$InputFileTag YOUR_FILE_TAG$InputFileSeverity info$InputRunFileMonitor## Configure TLS and log forwarding##Specify the full path to the system's CA certificate:$DefaultNetstreamDriverCAFile <path to certificate>## RHEL/CentOS/Amazon Linux:##/etc/pki/tls/certs/ca-bundle.crt## Ubuntu:##/etc/ssl/certs/ca-certificates.crt##Other systems:##Specify the full path to the system's generic CA certificate.$ActionSendStreamDriver gtls$ActionSendStreamDriverMode 1$ActionSendStreamDriverAuthMode x509/name$ActionSendStreamDriverPermittedPeer *.syslog.nr-data.net*.* @@newrelic.syslog.nr-data.net:6514;NRLogFormat次のコマンドを実行して、
rsyslog
サービスを再起動します。bash$sudo systemctl restart rsyslogNew Relic アカウント のログを確認してください。
syslog-ngの設定
ログをsyslog-ng
でNewRelicに転送するには:
syslog-ng
がTLS暗号化を使用してログを送信できるようにするために必要なca-certificates
をインストールします。bash$sudo yum install ca-certificatesテキストエディタで
syslog-ng
構成ファイル(/etc/syslog-ng/syslog-ng.conf
)を開きます。を追加してモニターするソースを定義します。
source s_src {internal();};オプション:
Sources
構成ブロックに以下を追加して、syslog-ng
をテールファイルに構成します。source s_files {file("PATH_TO_FILE");};New Relic
syslog
形式を定義します。YOUR_LICENSE_KEY
には、New Relic を使用します。template NRFormat { template("YOUR_LICENSE_KEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n");template_escape(no);};New Relic Syslogのエンドポイントを追加します。
destination d_newrelic {network("newrelic.syslog.nr-data.net" port(6514)transport("tls")tls(peer-verify(no))template(NRFormat));};ログパス設定ブロックに以下の出力を追加します。
log {source(s_src);source(s_files); ## in case step 4 is implemented.destination(d_newrelic);};次のコマンドを実行して
syslog-ng
を再起動します。bash$sudo service syslog-ng restartNew Relic アカウント のログを確認してください。
ヒント
Docker コンテナーから syslog-ng を実行していて問題が発生した場合は、 balait/syslog イメージのドキュメントを確認してください。