Nous proposons une large gamme de solutions pour intégrer vos données log dans New Relic. Mais dans d'autres situations où vous n'avez pas de redirecteur de log (tels que les CDN, les périphériques matériels ou les services gérés), vous pouvez utiliser les protocoles syslog via un point de terminaison TCP. Vous pouvez transférer votre log vers New Relic à l'aide de clients syslog tels que rsyslog
et syslog-ng
.
Compatibilité et exigences
Pour transférer le log vers New Relic à l'aide d'un client syslog , vous avez besoin de :
- New Relic valide pour le compte auquel vous souhaitez envoyer le log
- Quelques modifications mineures à la configuration du client syslog, comme expliqué dans ce document
Limites
Les lignes de log qui dépassent 1 Mo en taille compressée seront supprimées. D’autres limitations de l’ API Log peuvent également s’appliquer. Pour éviter toute perte de données, assurez-vous que vos lignes log respectent cette limite de taille.
Configurer les versions 8 et supérieures de rsyslog (Amazon Linux, RedHat, Centos)
Important
Si vous utilisez un compte de région UE, vous devez utiliser newrelic.syslog.eu.nr-data.net
comme point de terminaison, au lieu de newrelic.syslog.nr-data.net
. N'oubliez pas de le remplacer dans les fichiers de configuration, l'utilisation du point de terminaison américain pour le compte UE ne fonctionnera pas.
Pour transférer le log vers New Relic avec rsyslog
pour les distributions Amazon Linux, RedHat et Centos :
Le package d'installation est requis pour permettre à
rsyslog
d'envoyer le log à l'aide du chiffrement TLS :bash$sudo yum install rsyslog-gnutls ca-certificatesFacultatif : configurez
rsyslog
pour suivre le fichier log et transmettre son contenu à New Relic. Ajoutez ce qui suit au fichier/etc/rsyslog.conf
afin d'activer son module d'entrée de fichier texte :module(load="imfile"PollingInterval="10")Dans le répertoire
/etc/rsyslog.d/
, créez un fichier texte nomménewrelic.conf
.Vérifiez si les options
$IncludeConfig
sous/etc/rsyslog.conf
ont déjà un caractère générique correspondant qui inclura le fichiernewrelic.conf
nouvellement créé sous le répertoire/etc/rsyslog.d
. Sinon, vous devrez inclure explicitement/etc/rsyslog.d/newrelic.conf
dans/etc/rsyslog.conf
en utilisant$IncludeConfig /etc/rsyslog.d/newrelic.conf
Ajoutez ce qui suit à
newrelic.conf
. Remplacez les valeurs en surbrillance. PourYOUR_LICENSE_KEY
, utilisez votre 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")(Facultatif) : Ajoutez un attribut personnalisé à vos données
syslog
.Pour rendre vos données
syslog
cohérentes avec le reste de vos données télémétriques, vous pouvez ajouter l'attribut personnalisé. Il y a deux façons de procéder :Add custom attributes directly in the template string. Vous devrez échapper les guillemets doubles (
"
) pour les valeurs de chaîne. Par exemple:[<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. Cette méthode évite d’avoir à échapper les valeurs de chaîne.
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"]';
Assurez-vous de remplacer la section %structured-data%
dans la chaîne de modèle par une balise/un attribut personnalisé.
Redémarrez le service
rsyslog
en exécutant :bash$sudo systemctl restart rsyslogVérifiez votre compte New Relic pour les logs.
Configurer les versions rsyslog 8 et supérieures avec compression (Amazon Linux, RedHat, Centos)
Pour configurer les versions 8 et supérieures de rsyslog
pour les distributions Amazon Linux, RedHat et Centos :
Suivez les étapes 1 à 4 décrites dans configurer rsyslog.
Important
Notez que le numéro de port configuré est
6516
au lieu de6514
.Ajoutez ce qui suit à
newrelic.conf
. Remplacer toutes les valeurs mises en surbrillance. PourYOUR_LICENSE_KEY
, utilisez votre 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")Redémarrez le service
rsyslog
en exécutant :bash$sudo systemctl restart rsyslogVérifiez votre compte New Relic pour les logs. Vous pouvez également trouver des logs en recherchant l'attribut
plugin.type:"syslog-newrelic"
.
fichier de configuration hérité pour les versions 7 ou inférieures de rsyslog (Amazon Linux, RedHat, Centos)
Si vous utilisez rsyslog version 7 ou inférieure, les fichiers configuration doivent être adaptés au format legacy obsolète. Ce format est conservé uniquement à des fins de rétrocompatibilité. Nous vous recommandons fortement d'éviter de l'utiliser, comme indiqué dans la documentation de rsyslog. Pour configurer le log pour les distributions Amazon Linux, RedHat et Centos :
Le package d'installation est requis pour permettre à
rsyslog
d'envoyer le log à l'aide du chiffrement TLS :bash$sudo yum install rsyslog-gnutls ca-certificatesFacultatif : configurez
rsyslog
pour suivre le fichier log et transmettre son contenu à New Relic. Ajoutez ce qui suit au fichier/etc/rsyslog.conf
afin d'activer son module d'entrée de fichier texte :$ModLoad imfile$InputFilePollInterval 10$PrivDropToGroup adm$WorkDirectory /var/spool/rsyslogDans le répertoire
/etc/rsyslog.d/
, créez un fichier texte nomménewrelic.conf
.Vérifiez si les options
$IncludeConfig
sous/etc/rsyslog.conf
ont déjà un caractère générique correspondant qui inclura le fichiernewrelic.conf
nouvellement créé sous le répertoire/etc/rsyslog.d
. Sinon, vous devrez inclure explicitement/etc/rsyslog.d/newrelic.conf
dans/etc/rsyslog.conf
en utilisant$IncludeConfig /etc/rsyslog.d/newrelic.conf
.Ajoutez ce qui suit à
newrelic.conf
. Remplacez les valeurs en surbrillance. PourYOUR_LICENSE_KEY
, utilisez votre 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;NRLogFormatRedémarrez le service
rsyslog
en exécutant :bash$sudo systemctl restart rsyslogVérifiez votre compte New Relic pour le log.
Configurer syslog-ng
Pour transférer le log vers New Relic avec syslog-ng
:
L'installation
ca-certificates
est requise pour permettresyslog-ng
d'envoyer le log à l'aide du chiffrement TLS :bash$sudo yum install ca-certificatesOuvrez le fichier de configuration
syslog-ng
(/etc/syslog-ng/syslog-ng.conf
) dans un éditeur de texte.Définissez les sources à monitorer en ajoutant :
source s_src {internal();};Facultatif : configurez
syslog-ng
pour terminer les fichiers en ajoutant ce qui suit au bloc de configurationSources
:source s_files {file("PATH_TO_FILE");};Définissez le format New Relic
syslog
. PourYOUR_LICENSE_KEY
, utilisez votre New Relic .template NRFormat { template("YOUR_LICENSE_KEY <${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} ${SDATA:--} $MSG\n");template_escape(no);};Ajoutez le point de terminaison Syslog New Relic :
destination d_newrelic {network("newrelic.syslog.nr-data.net" port(6514)transport("tls")tls(peer-verify(no))template(NRFormat));};Ajoutez la sortie suivante log au configuration bloc du chemin :
log {source(s_src);source(s_files); ## in case step 4 is implemented.destination(d_newrelic);};Redémarrez
syslog-ng
en exécutant :bash$sudo service syslog-ng restartVérifiez votre compte New Relic pour le log.
Conseil
Si vous exécutez syslog-ng à partir d'un conteneur Docker et rencontrez des problèmes, consultez la documentation de l'image balait/syslog.
Les transitaires qui ne permettent pas de modifier le format syslog
Certains transitaires, CDN ou plateformes (comme AirWatch) n'autorisent pas la modification du format syslog mais permettent de modifier le message lui-même en ajoutant ou en préfixant des données.
Dans de tels cas, vous pouvez utiliser un mécanisme alternatif pour transmettre la clé de licence utilisée pour transmettre votre log. Ajoutez, préfixez ou incluez simplement nrLicenseKey=<YOUR_LICENSE_KEY>
dans le message. Cette méthode garantit que vos logs sont authentifiés et transmis à New Relic sans avoir besoin de modifier le format syslog .
Par exemple, si votre transitaire vous permet d'ajouter des données au message de log, vous pouvez le configurer pour ajouter nrLicenseKey=<YOUR_LICENSE_KEY>
au début de chaque message de log. De même, si l'ajout de données est autorisé, vous pouvez ajouter la clé de licence à la fin de chaque message de log.
Cette approche est particulièrement utile pour les CDN, les périphériques matériels ou les services gérés où la modification du format syslog n’est pas possible. En incluant la clé de licence dans le message, vous vous assurez que vos logs sont correctement authentifiés et reçus par New Relic.
Si vous rencontrez des problèmes ou avez besoin d'une assistance supplémentaire, reportez-vous à la documentation fournie par votre transitaire ou CDN pour obtenir des instructions spécifiques sur la façon d'ajouter ou de préfixer des données au message de log.
Important
N'oubliez pas de remplacer <YOUR_LICENSE_KEY>
par votre clé de licence New Relic actuelle.
Prudence
Si les deux méthodes sont utilisées (modification du format syslog et inclusion de nrLicenseKey=<YOUR_LICENSE_KEY>
dans le message), la clé de licence incluse dans le message aura la priorité.