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

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、 を参照してください。

問題を作成する

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 つの方法があります。

    • カスタム属性をテンプレート文字列に直接追加します。 文字列値の二重引用符 (") をエスケープする必要があります。例えば:

      [<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"
      )
    • テンプレート文字列のカスタム プロパティ変数を使用してカスタム属性を追加します。 このメソッドにより、文字列値をエスケープする必要がなくなります。

      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であることに注意してください。

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

    bash
    $
    sudo systemctl restart rsyslog
  3. 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.