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:
Instale os pacotes necessários para permitir que
rsyslog
envie log usando criptografia TLS:bash$sudo yum install rsyslog-gnutls ca-certificatesOpcional: 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")No diretório
/etc/rsyslog.d/
, crie um arquivo de texto denominadonewrelic.conf
.Verifique se as opções
$IncludeConfig
em/etc/rsyslog.conf
já possuem um curinga correspondente que incluirá o arquivonewrelic.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
Adicione o seguinte a
newrelic.conf
. Substitua os valores destacados. ParaYOUR_LICENSE_KEY
, use sua New Relic :## Specify each of the files to be tailed in case step 1 is doneinput(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE")## Template expected by the New Relic Syslog endpointtemplate(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 forwardingglobal(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")(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.
Reinicie o serviço
rsyslog
executando:bash$sudo systemctl restart rsyslog
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:
Siga as etapas 1 a 4 descritas em configurar rsyslog.
Importante
Observe que o número da porta configurada é
6516
em vez de6514
.Adicione o seguinte a
newrelic.conf
. Substitua todos os valores destacados. ParaYOUR_LICENSE_KEY
, use sua New Relic :## Specify each of the files to be tailed in case step 1 is doneinput(type="imfile" Tag="YOUR_FILE_TAG" File="PATH_TO_FILE"## Template expected by the New Relic Syslog endpointtemplate(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 forwardingglobal(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")Reinicie o serviço
rsyslog
executando:bash$sudo systemctl restart rsyslog
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:
Instale os pacotes necessários para permitir que
rsyslog
envie log usando criptografia TLS:bash$sudo yum install rsyslog-gnutls ca-certificatesOpcional: 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/rsyslogNo diretório
/etc/rsyslog.d/
, crie um arquivo de texto denominadonewrelic.conf
.Verifique se as opções
$IncludeConfig
em/etc/rsyslog.conf
já possuem um curinga correspondente que incluirá o arquivonewrelic.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
.Adicione o seguinte a
newrelic.conf
. Substitua os valores destacados. ParaYOUR_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;NRLogFormatReinicie o serviço
rsyslog
executando:bash$sudo systemctl restart rsyslog
Configurar syslog-ng
Para encaminhar o registro para New Relic com syslog-ng
:
A instalação
ca-certificates
é necessária para permitir quesyslog-ng
envie log usando criptografia TLS:bash$sudo yum install ca-certificatesAbra o arquivo de configuração
syslog-ng
(/etc/syslog-ng/syslog-ng.conf
) em um editor de texto.Defina as fontes a serem monitoradas adicionando:
source s_src {internal();};Opcional: Configure
syslog-ng
para arquivos finais adicionando o seguinte ao bloco de configuraçãoSources
:source s_files {file("PATH_TO_FILE");};Defina o formato da New Relic
syslog
. ParaYOUR_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);};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));};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);};Reinicie
syslog-ng
executando:bash$sudo service syslog-ng restart
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.