• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

Use endpoint TCP para encaminhar o log para o New Relic

Oferecemos uma ampla gama de soluções para transferir seus dados log para New Relic. Mas em outras situações em que você não possui um encaminhador de logs (como CDNs, dispositivos de hardware ou serviços gerenciados), você pode usar protocolos syslog por meio de um endpoint TCP. Você pode encaminhar seu registro para New Relic usando clientes syslog como rsyslog e syslog-ng.

Compatibilidade e requisitos

Para encaminhar o log para o New Relic usando um cliente syslog, você precisa:

  • Uma New Relic válida

    para a conta para a qual você deseja enviar o registro

  • Algumas pequenas alterações na configuração do cliente syslog, conforme explicado neste documento

Configure o rsyslog versões 8 e superiores (Amazon Linux, RedHat, Centos)

Importante

Se estiver usando uma conta da região da UE, você deverá usar newrelic.syslog.eu.nr-data.net como endpoint, em vez de newrelic.syslog.nr-data.net. Não se esqueça de substituí-lo nos arquivos de configuração, usar o endpoint dos EUA para a conta da UE não funcionará.

Para encaminhar o registro para New Relic com rsyslog para distribuições Amazon Linux, RedHat e Centos:

  1. Instale os pacotes necessários para permitir que rsyslog envie log usando criptografia TLS:

    bash
    $
    sudo yum install rsyslog-gnutls ca-certificates
  2. Opcional: Configure rsyslog para seguir o arquivo de log e encaminhar seu conteúdo para o New Relic. Adicione o seguinte ao arquivo /etc/rsyslog.conf para ativar seu módulo de entrada de arquivo de texto:

    module(load="imfile"
    PollingInterval="10"
    )
  3. No diretório /etc/rsyslog.d/ , crie um arquivo de texto denominado newrelic.conf.

  4. Verifique se as opções $IncludeConfig em /etc/rsyslog.conf já possuem um curinga correspondente que incluirá o arquivo newrelic.conf recém-criado no diretório /etc/rsyslog.d . Caso contrário, você precisará incluir explicitamente /etc/rsyslog.d/newrelic.conf em /etc/rsyslog.conf usando $IncludeConfig /etc/rsyslog.d/newrelic.conf

  5. Adicione o seguinte a newrelic.conf. Substitua os valores destacados. Para YOUR_LICENSE_KEY, use sua 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. (Opcional): Adicione atributo personalizado aos seus dados syslog .

    Para tornar seus dados syslog consistentes com o restante de seus dados de telemetria, você pode adicionar um atributo personalizado. Existem duas maneiras de fazer isso:

    • Add custom attributes directly in the template string. Você precisará escapar das aspas duplas (") para os valores da string. Por exemplo:

      [<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. Este método evita a necessidade de escapar de valores de 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"]';

Certifique-se de substituir a seção %structured-data% na string do modelo por tag/atributo personalizado.

  1. Reinicie o serviço rsyslog executando:

    bash
    $
    sudo systemctl restart rsyslog
  2. Verifique se há registros em sua conta New Relic .

Configure o rsyslog versões 8 e superiores com compactação (Amazon Linux, RedHat, Centos)

Para configurar rsyslog versões 8 e superiores para distribuições Amazon Linux, RedHat e Centos:

  1. Siga as etapas 1 a 4 descritas em configurar rsyslog.

    Importante

    Observe que o número da porta configurada é 6516 em vez de 6514.

  2. Adicione o seguinte a newrelic.conf. Substitua todos os valores destacados. Para YOUR_LICENSE_KEY, use sua 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. Reinicie o serviço rsyslog executando:

    bash
    $
    sudo systemctl restart rsyslog
  4. Verifique se há registros em sua conta New Relic .

Arquivo de configuração legado para rsyslog versões 7 ou inferiores (Amazon Linux, RedHat, Centos)

Se você estiver usando o rsyslog versão 7 ou inferior, os arquivos de configuração precisarão ser adaptados ao formato legado obsoleto. Este formato é mantido apenas para fins de retrocompatibilidade. Recomendamos fortemente evitar usá-lo, conforme indicado na documentação do rsyslog. Para configurar o log para distribuições Amazon Linux, RedHat e Centos:

  1. Instale os pacotes necessários para permitir que rsyslog envie log usando criptografia TLS:

    bash
    $
    sudo yum install rsyslog-gnutls ca-certificates
  2. Opcional: Configure rsyslog para seguir o arquivo de log e encaminhar seu conteúdo para o New Relic. Adicione o seguinte ao arquivo /etc/rsyslog.conf para ativar seu módulo de entrada de arquivo de texto:

    $ModLoad imfile
    $InputFilePollInterval 10
    $PrivDropToGroup adm
    $WorkDirectory /var/spool/rsyslog
  3. No diretório /etc/rsyslog.d/ , crie um arquivo de texto denominado newrelic.conf.

  4. Verifique se as opções $IncludeConfig em /etc/rsyslog.conf já possuem um curinga correspondente que incluirá o arquivo newrelic.conf recém-criado no diretório /etc/rsyslog.d . Caso contrário, você precisará incluir explicitamente /etc/rsyslog.d/newrelic.conf em /etc/rsyslog.conf usando $IncludeConfig /etc/rsyslog.d/newrelic.conf.

  5. Adicione o seguinte a newrelic.conf. Substitua os valores destacados. Para YOUR_LICENSE_KEY, use sua 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. Reinicie o serviço rsyslog executando:

    bash
    $
    sudo systemctl restart rsyslog
  7. Verifique o registro da sua conta New Relic .

Configurar syslog-ng

Para encaminhar o registro para New Relic com syslog-ng:

  1. A instalação ca-certificates é necessária para permitir que syslog-ng envie log usando criptografia TLS:

    bash
    $
    sudo yum install ca-certificates
  2. Abra o arquivo de configuração syslog-ng (/etc/syslog-ng/syslog-ng.conf) em um editor de texto.

  3. Defina as fontes a serem monitoradas adicionando:

    source s_src {
    internal();
    };
  4. Opcional: Configure syslog-ng para arquivos finais adicionando o seguinte ao bloco de configuração Sources :

    source s_files {
    file("PATH_TO_FILE");
    };
  5. Defina o formato da New Relic syslog. Para YOUR_LICENSE_KEY, use sua New Relic .

    template NRFormat { template("YOUR_LICENSE_KEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n");
    template_escape(no);
    };
  6. Adicione o endpoint Syslog do New Relic:

    destination d_newrelic {
    network("newrelic.syslog.nr-data.net" port(6514)
    transport("tls")
    tls(peer-verify(no))
    template(NRFormat)
    );
    };
  7. Adicione a seguinte saída ao bloco de configuração do caminho de log:

    log {
    source(s_src);
    source(s_files); ## in case step 4 is implemented.
    destination(d_newrelic);
    };
  8. Reinicie syslog-ng executando:

    bash
    $
    sudo service syslog-ng restart
  9. Verifique o registro da sua conta New Relic .

Dica

Se você estiver executando o syslog-ng a partir de um contêiner Docker e tiver problemas, verifique a documentação da imagem balait/syslog.

Copyright © 2024 New Relic Inc.

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