• 로그인

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

TCP 엔드포인트를 사용하여 New Relic에 로그 전달

우리는 로그 데이터를 New Relic으로 가져오기 위한 광범위한 솔루션을 제공합니다. 그러나 로그 전달자가 없는 다른 상황(예: CDN, 하드웨어 장치 또는 관리 서비스)에서는 TCP 끝점을 통해 syslog 프로토콜을 사용할 수 있습니다. rsyslogsyslog-ng 과 같은 syslog 클라이언트를 사용하여 로그를 New Relic에 전달할 수 있습니다.

호환성 및 요구 사항

syslog 클라이언트를 사용하여 New Relic에 로그를 전달하려면 다음이 필요합니다.

  • 로그를 보내려는 계정의 유효한 New Relic 라이센스 키
  • 이 문서에 설명된 대로 syslog 클라이언트 구성에 대한 몇 가지 사소한 변경

rsyslog 구성

중요

EU 리전 계정을 사용하는 경우 newrelic.syslog.nr-data.net 대신 newrelic.syslog.eu.nr-data.net 을 엔드포인트로 사용해야 합니다. 구성 파일에서 교체하는 것을 잊지 마십시오. EU 계정에 대해 미국 끝점을 사용하면 작동하지 않습니다.

rsyslog 을(를) 사용하여 로그를 New Relic에 전달하려면 다음을 수행합니다.

  1. rsyslog 에서 TLS 암호화를 사용하여 로그를 전송하는 데 필요한 패키지를 설치합니다.

    sudo yum install rsyslog-gnutls ca-certificates
  2. 선택 사항: 로그 파일을 테일링하고 해당 콘텐츠를 New Relic으로 전달하도록 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_KEYNew Relic 라이선스 키로 바꿉니다.

    ## 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 설명서 에 명시된 대로 사용하지 않는 것이 좋습니다.

  1. rsyslog 에서 TLS 암호화를 사용하여 로그를 전송하는 데 필요한 패키지를 설치합니다.

    sudo yum install rsyslog-gnutls ca-certificates
  2. 선택 사항: 로그 파일을 테일링하고 해당 콘텐츠를 New Relic으로 전달하도록 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를 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>
    $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 을(를) 사용하여 로그를 New Relic에 전달하려면 다음을 수행합니다.

  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 형식을 정의하고 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 을(를) 다시 시작합니다.

    sudo service syslog-ng restart
  9. 로그에 대한 New Relic 계정을 확인하십시오 .

Docker 컨테이너에서 syslog-ng를 실행 중이고 문제가 발생하면 balait/syslog 이미지 설명서 를 확인하십시오.

Copyright © 2022 New Relic Inc.

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