• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

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

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

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

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

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

  4. /etc/rsyslog.confの下の$IncludeConfigオプションに、 /etc/rsyslog.dディレクトリの下に新しく作成されたnewrelic.confファイルを含む一致するワイルドカードが既にあるかどうかを確認してください。それ以外の場合は、 /etc/rsyslog.conf/etc/rsyslog.d/newrelic.confを明示的に含める必要があります。 $IncludeConfig /etc/rsyslog.d/newrelic.conf

  5. 以下をnewrelic.confに追加します。 強調表示された値を置き換えます。 YOUR_LICENSE_KEYには、New Relic を使用します:

    ## Specify each of the files to be tailed in case step 1 is done
    input(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE")
    ## 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"
    ##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"
    )
  6. (オプション): 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% セクションをカスタム タグ/属性に置き換えてください。

  1. 次のコマンドを実行して、 rsyslogサービスを再起動します。

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

圧縮を使用して rsyslog バージョン 8 以降を構成する (Amazon Linux、Redhat、Centos)

Amazon Linux、Redhat、Centos ディストリビューション用にrsyslogバージョン 8 以降を設定するには:

  1. configure rsyslogで説明されているステップ 1 から 4 に従います。

    重要

    構成されたポート番号は { 6514 } ではなく6516であることに注意してください。

  2. newrelic.confに以下を追加します。 強調表示されたすべての値を置き換えます。 YOUR_LICENSE_KEYには、New Relic を使用します。

    ## Specify each of the files to be tailed in case step 1 is done
    input(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE"
    ## 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"
    ##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"
    )
  3. 次のコマンドを実行して、 rsyslogサービスを再起動します。

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

rsyslog バージョン 7 以下のレガシー構成ファイル (Amazon Linux、Redhat、Centos)

rsyslog バージョン 7 以下を使用している場合は、構成ファイルを廃止されたレガシー形式に適合させる必要があります。この形式は、レトロな互換性のためにのみ保持されています。rsyslog ドキュメントに記載されているように、使用を避けることを強くお勧めします。Amazon Linux、Redhat、Centos ディストリビューションのログを設定するには:

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

    bash
    $
    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. /etc/rsyslog.confの下の$IncludeConfigオプションに、 /etc/rsyslog.dディレクトリの下に新しく作成されたnewrelic.confファイルを含む一致するワイルドカードが既にあるかどうかを確認してください。それ以外の場合は、 $IncludeConfig /etc/rsyslog.d/newrelic.conf } を使用して/etc/rsyslog.conf/etc/rsyslog.d/newrelic.confを明示的に含める必要があります。

  5. 以下を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
  6. 次のコマンドを実行して、 rsyslogサービスを再起動します。

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

syslog-ngの設定

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

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

    bash
    $
    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形式を定義します。 YOUR_LICENSE_KEYには、New Relic を使用します。

    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を再起動します。

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

ヒント

Docker コンテナーから syslog-ng を実行していて問題が発生した場合は、 balait/syslog イメージのドキュメントを確認してください。

Copyright © 2024 New Relic株式会社。

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