Ofrecemos una amplia gama de soluciones para introducir sus datos log en New Relic. Pero en otras situaciones en las que no tiene un reenviador de registros (como CDN, dispositivos de hardware o servicios administrados), puede usar protocolos syslog a través de un extremo TCP. Puede reenviar su registro a New Relic utilizando clientes syslog como rsyslog
y syslog-ng
.
Compatibilidad y requisitos
Para reenviar el registro a New Relic usando un cliente syslog, necesita:
- Una New Relic válida para la cuenta a la que desea enviar el registro
- Algunos cambios menores en la configuración del cliente syslog, como se explica en este documento
Configurar rsyslog versiones 8 y superiores (Amazon Linux, RedHat, Centos)
Importante
Si está utilizando una cuenta de la región de la UE, debe usar newrelic.syslog.eu.nr-data.net
como extremo, en lugar de newrelic.syslog.nr-data.net
. No olvide reemplazarlo en los archivos de configuración; usar el extremo de EE. UU. para una cuenta de la UE no funcionará.
Para reenviar registros a New Relic con rsyslog
para distribuciones de Amazon Linux, RedHat y Centos:
Instale los paquetes necesarios para permitir que
rsyslog
envíe registros mediante TLS cifrado:bash$sudo yum install rsyslog-gnutls ca-certificatesOpcional: Configure
rsyslog
para seguir el archivo de registro y reenviar su contenido a New Relic. Agregue lo siguiente al archivo/etc/rsyslog.conf
para habilitar su módulo de entrada de archivos de texto:module(load="imfile"PollingInterval="10")En el directorio
/etc/rsyslog.d/
, cree un archivo de texto llamadonewrelic.conf
.Compruebe si las opciones
$IncludeConfig
en/etc/rsyslog.conf
ya tienen un comodín coincidente que incluirá el archivonewrelic.conf
recién creado en el directorio/etc/rsyslog.d
. De lo contrario, deberá incluir explícitamente/etc/rsyslog.d/newrelic.conf
en/etc/rsyslog.conf
usando$IncludeConfig /etc/rsyslog.d/newrelic.conf
Agregue lo siguiente a
newrelic.conf
. Reemplace los valores resaltados. ParaYOUR_LICENSE_KEY
, usa tu 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): Agrega un atributo personalizado a tus datos
syslog
.Para que sus datos
syslog
sean consistentes con el resto de sus telemetry data, puede agregar un atributo personalizado. Hay dos maneras de hacer esto:Add custom attributes directly in the template string. Deberá evitar las comillas dobles (
"
) para los valores de cadena. Por ejemplo:[<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 la necesidad de escapar de los valores de cadena.
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"]';
Asegúrese de reemplazar la sección %structured-data%
en la cadena de la plantilla con una etiqueta/atributo personalizado.
Reinicie el servicio
rsyslog
ejecutando:bash$sudo systemctl restart rsyslogConsulte su cuenta New Relic para ver los registros.
Configurar rsyslog versiones 8 y superiores con compresión (Amazon Linux, RedHat, Centos)
Para configurar rsyslog
versiones 8 y superiores para distribuciones de Amazon Linux, RedHat y Centos:
Siga los pasos 1 a 4 descritos en configurar rsyslog.
Importante
Tenga en cuenta que el número de puerto configurado es
6516
en lugar de6514
.Agregue lo siguiente a
newrelic.conf
. Reemplace todos los valores resaltados. ParaYOUR_LICENSE_KEY
, usa tu 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 el servicio
rsyslog
ejecutando:bash$sudo systemctl restart rsyslogConsulte su cuenta New Relic para ver los registros.
Archivo de configuración legacy para rsyslog versiones 7 o inferiores (Amazon Linux, RedHat, Centos)
Si está utilizando rsyslog versión 7 o inferior, los archivos de configuración deben adaptarse al formato legacy obsoleto. Este formato sólo se conserva con fines de retrocompatibilidad. Recomendamos encarecidamente evitar su uso, como se indica en la documentación de rsyslog. Para configurar el registro para distribuciones de Amazon Linux, RedHat y Centos:
Instale los paquetes necesarios para permitir que
rsyslog
envíe registros mediante TLS cifrado:bash$sudo yum install rsyslog-gnutls ca-certificatesOpcional: Configure
rsyslog
para seguir el archivo de registro y reenviar su contenido a New Relic. Agregue lo siguiente al archivo/etc/rsyslog.conf
para habilitar su módulo de entrada de archivos de texto:$ModLoad imfile$InputFilePollInterval 10$PrivDropToGroup adm$WorkDirectory /var/spool/rsyslogEn el directorio
/etc/rsyslog.d/
, cree un archivo de texto llamadonewrelic.conf
.Compruebe si las opciones
$IncludeConfig
en/etc/rsyslog.conf
ya tienen un comodín coincidente que incluirá el archivonewrelic.conf
recién creado en el directorio/etc/rsyslog.d
. De lo contrario, deberá incluir explícitamente/etc/rsyslog.d/newrelic.conf
en/etc/rsyslog.conf
usando$IncludeConfig /etc/rsyslog.d/newrelic.conf
.Agregue lo siguiente a
newrelic.conf
. Reemplace los valores resaltados. ParaYOUR_LICENSE_KEY
, usa tu 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 el servicio
rsyslog
ejecutando:bash$sudo systemctl restart rsyslogVerifique su cuenta New Relic para iniciar sesión.
Configurar syslog-ng
Para reenviar el registro a New Relic con syslog-ng
:
Es necesario instalar
ca-certificates
para permitir quesyslog-ng
envíe el registro mediante cifrado TLS:bash$sudo yum install ca-certificatesAbra el archivo de configuración
syslog-ng
(/etc/syslog-ng/syslog-ng.conf
) en un editor de texto.Defina las fuentes a monitorear agregando:
source s_src {internal();};Opcional: Configure
syslog-ng
para seguir los archivos agregando lo siguiente al bloque de configuraciónSources
:source s_files {file("PATH_TO_FILE");};Defina el formato New Relic
syslog
. ParaYOUR_LICENSE_KEY
, usa tu New Relic .template NRFormat { template("YOUR_LICENSE_KEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n");template_escape(no);};Agregue el extremo New Relic Syslog:
destination d_newrelic {network("newrelic.syslog.nr-data.net" port(6514)transport("tls")tls(peer-verify(no))template(NRFormat));};Agregue el siguiente resultado al bloque de configuración de la ruta log :
log {source(s_src);source(s_files); ## in case step 4 is implemented.destination(d_newrelic);};Reinicie
syslog-ng
ejecutando:bash$sudo service syslog-ng restartVerifique su cuenta New Relic para iniciar sesión.
Sugerencia
Si está ejecutando syslog-ng desde un contenedor Docker y experimenta problemas, consulte la documentación de la imagen balait/syslog.
Reenvíos que no permiten modificar el formato de syslog
Algunos reenvíos, CDN o plataformas (como AirWatch) no permiten modificar el formato de syslog, pero sí permiten alterar el mensaje en sí agregando o anteponiendo datos.
En tales casos, puede emplear un mecanismo alternativo para pasar la clave de licencia empleada para reenviar sus logs. Simplemente agregue, anteponga o incluya nrLicenseKey=<YOUR_LICENSE_KEY>
dentro del mensaje. Este método garantiza que sus logs se autentiquen y se reenvíen a New Relic sin necesidad de modificar el formato syslog.
Por ejemplo, si su reenvío le permite anteponer datos al mensaje de log, puede configurarlo para agregar nrLicenseKey=<YOUR_LICENSE_KEY>
al comienzo de cada mensaje de log. De manera similar, si se permite agregar datos, puede agregar la clave de licencia al final de cada mensaje de log.
Este enfoque es particularmente útil para CDN, dispositivos de hardware o servicios gestionados donde no es posible modificar el formato syslog. Al incluir la clave de licencia dentro del mensaje, se cerciora de que sus logs estén correctamente autenticados y sean recibidos por New Relic.
Si encuentra algún problema o necesita más ayuda, consulte la documentación proporcionada por su reenvío o CDN para obtener instrucciones específicas sobre cómo agregar o anteponer datos al mensaje de log.
Importante
Recuerde reemplazar <YOUR_LICENSE_KEY>
con su clave de licencia real de New Relic.
Advertencia
Si se emplean ambos métodos (modificar el formato syslog e incluir nrLicenseKey=<YOUR_LICENSE_KEY>
en el mensaje), la clave de licencia incluida en el mensaje tendrá prioridad.