• ログイン

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

TCPエンドポイントを使用してログをNew Relicに転送する

ログデータをNewRelicに取り込むための幅広いソリューションを提供しています。ただし、ログフォワーダー(CDN、ハードウェアデバイス、マネージドサービスなど)がない他の状況では、TCPエンドポイントを介してsyslogプロトコルを使用できます。 rsyslogsyslog-ngなどのsyslogクライアントを使用して、ログをNewRelicに転送できます。

互換性と要件

syslogクライアントを使ってログをNew Relicに転送するには、以下が必要です。

  • ログを送信したいアカウントの有効な New Relic ライセンスキー
  • このドキュメントで説明されているように、syslogクライアントの設定にいくつかのマイナーな変更があります。

rsyslogの設定

重要

EUリージョンアカウントを使用している場合は、エンドポイントとしてnewrelic.syslog.nr-data.netではなくnewrelic.syslog.eu.nr-data.netを使用する必要があります。 EUアカウントにUSエンドポイントを使用しても機能しないため、構成ファイルで置き換えることを忘れないでください。

ログをrsyslogでNewRelicに転送するには:

  1. rsyslogがTLS暗号化を使用してログを送信できるようにするために必要なパッケージをインストールします。

    sudo yum install rsyslog-gnutls ca-certificates
  2. オプション:ログファイルをテールし、その内容をNewRelicに転送するようにrsyslogを設定します。テキストファイル入力モジュールを有効にするには、 /etc/rsyslog.confファイルに以下を追加します。

    module(load="imfile"
    PollingInterval="10"
    statefile.directory="/var/spool/rsyslog"
    )
  3. /etc/rsyslog.d/ディレクトリに、 newrelic.confという名前のテキストファイルを作成します。

  4. 新しく作成されたnewrelic.conf/etc/rsyslog.d/ファイルに明示的に含めます。

    include(file="/etc/rsyslog.conf.d/newrelic.conf")
  5. 以下をnewrelic.confに追加し、 YOUR_LICENSE_KEYNewRelicライセンスキーに置き換えます。

    ## Specify each of the files to be tailed in case step 1 is done
    input(type="imfile" ruleset="infiles" Tag="<YOUR_FILE_TAG>" File="<PATH_TO_FILE>" StateFile="<UNIQUE_STATEFILE_NAME >")
    ## Template expected by the New Relic Syslog endpoint
    template(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 forwarding
    global(DefaultNetstreamDriver="gtls"
    DefaultNetstreamDriverCAFile="/etc/ssl/certs/ca-certificates.crt"
    )
    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"
    )
  6. 次のコマンドを実行して、 rsyslogサービスを再起動します。

    sudo systemctl restart rsyslog
  7. New Relic アカウント のログを確認してください。

rsyslog 7以前のレガシー設定ファイル

rsyslogバージョン7以下を使用している場合は、設定ファイルを廃止されたレガシーフォーマットに合わせる必要があります。この形式はレトロな互換性のためにのみ残されています。 rsyslog documentation で述べられているように、使用しないことを強くお勧めします。

  1. rsyslogがTLS暗号化を使用してログを送信できるようにするために必要なパッケージをインストールします。

    sudo yum install rsyslog-gnutls ca-certificates
  2. オプション:ログファイルをテールし、その内容をNewRelicに転送するようにrsyslogを設定します。テキストファイル入力モジュールを有効にするには、 /etc/rsyslog.confファイルに以下を追加します。

    $ModLoad imfile
    $InputFilePollInterval 10
    $PrivDropToGroup adm
    $WorkDirectory /var/spool/rsyslog
  3. /etc/rsyslog.d/ディレクトリに、 newrelic.confという名前のテキストファイルを作成します。

  4. 新しく作成されたnewrelic.conf/etc/rsyslog.d/ファイルに明示的に含めます。

    $IncludeConfig /etc/rsyslog.conf.d/newrelic.conf
  5. 以下をnewrelic.confに追加し、`YOUR_LICENSE_KEYをNewRelicライセンスキーに置き換えます。

    ## 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>
    $InputFileStateFile <UNIQUE_STATEFILE_NAME>
    $InputFileSeverity info
    $InputRunFileMonitor
    ## Configure TLS and log forwarding
    $DefaultNetstreamDriverCAFile /etc/ssl/certs/ca-certificates.crt
    $ActionSendStreamDriver gtls
    $ActionSendStreamDriverMode 1
    $ActionSendStreamDriverAuthMode x509/name
    $ActionSendStreamDriverPermittedPeer *.syslog.nr-data.net
    *.* @@newrelic.syslog.nr-data.net:6514;NRLogFormat
  6. 次のコマンドを実行して、 rsyslogサービスを再起動します。

    sudo systemctl restart rsyslog
  7. New Relic アカウント のログを確認してください。

syslog-ngの設定

ログをsyslog-ngでNewRelicに転送するには:

  1. syslog-ngがTLS暗号化を使用してログを送信できるようにするために必要なca-certificatesをインストールします。

    sudo yum install ca-certificates
  2. テキストエディタでsyslog-ng構成ファイル( /etc/syslog-ng/syslog-ng.conf )を開きます。

  3. を追加してモニターするソースを定義します。

    source s_src {
    internal();
    };
  4. オプション: Sources構成ブロックに以下を追加して、 syslog-ngをテールファイルに構成します。

    source s_files {
    file("<PATH_TO_FILE>");
    };
  5. New Relic syslog形式を定義し、 NewRelicライセンスキーを追加します。

    template NRFormat { template("YOUR_LICENSE_KEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n");
      template_escape(no);
    };
  6. New Relic Syslogのエンドポイントを追加します。

    destination d_newrelic {
    network("newrelic.syslog.nr-data.net" port(6514)
    transport("tls")
    tls(peer-verify(no))
    template(NRFormat)
    );
    };
  7. ログパス設定ブロックに以下の出力を追加します。

    log {
    source(s_src);
    source(s_files); ## in case step 4 is implemented.
    destination(d_newrelic);
    };
  8. 次のコマンドを実行してsyslog-ngを再起動します。

    sudo service syslog-ng restart
  9. New Relic アカウント のログを確認してください。

ヒント

もしDockerコンテナからsyslog-ngを実行していて問題がある場合は、 balait/syslog image documentation を確認してください。

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.