Nxlog
| Fiche express | |
|---|---|
| Type | Collecteur/forwarder de logs multiplateforme |
| Plateformes | BSD, Unix, Linux, Windows, Android |
| Remplace (historiquement) | SEC (corrélateur de logs) |
| Famille | Evtsys · SyslogAgent · Winlogd · Snare |
| Voir aussi | Syslog |
NXLog est un collecteur et redirecteur de logs universel, capable de fonctionner sur de nombreuses plateformes (BSD, Unix, Linux, Windows, Android) et de traiter plusieurs formats et protocoles en entrée (Syslog, Windows Event Log, GELF/Graylog2, XML, JSON, CSV...).
Windows ne fournit pas nativement de client syslog : le journal des événements (Event Log) doit être converti et transmis vers un collecteur syslog central par un agent de forwarding dédié. Cette page fait partie d'une famille d'agents équivalents sur ce point : Evtsys, SyslogAgent, Winlogd, Snare et Nxlog. NXLog se distingue toutefois du reste de cette famille par son caractère multiplateforme et son moteur de règles bien plus riche — sur un système Linux, il peut aussi être utilisé comme collecteur/forwarder de logs applicatifs sans lien avec Windows.
Historiquement, NXLog a souvent remplacé SEC, un corrélateur de logs par expressions régulières, dans les architectures de collecte centralisée.
Il peut aussi servir de tampon en entrée d'un pipeline de traitement de logs plus large, par
exemple : nxlog → logstash → redis → logstash → elasticsearch → kibana.
Installation
# yum install dialog libdbi # rpm -ivh nxlog-ce-<version>.x86_64.rpm
(paquet Community Edition, disponible sur le site de l'éditeur — à vérifier pour la version courante.)
Configuration
Exemple de configuration testé pour une architecture nxlog → logstash → elasticsearch → kibana, avec activation des extensions syslog, JSON, GELF et CSV (utilisée ici pour parser le format propriétaire d'agents tiers comme Snare) :
User nxlog
Group nxlog
LogFile /var/log/nxlog.log
LogLevel INFO
# Réception de messages syslog
<Extension _syslog>
Module xm_syslog
</Extension>
# Conversion en JSON pour transmission à Logstash
<Extension json>
Module xm_json
</Extension>
# Parsing d'un format CSV tabulé (ex. export d'un agent tiers)
<Extension snare>
Module xm_csv
Fields $id1, $id2, $id3, $id4, $id5, $id6, $id7, $id8, $id9, $id10
Delimiter \t
</Extension>
<Extension charconv>
Module xm_charconv
AutodetectCharsets utf-8, utf-16, utf-32, iso8859-2, windows-1252
</Extension>
<Extension gelf>
Module xm_gelf
</Extension>
# Réception syslog UDP standard
<Input in_udp>
Module im_udp
Host 0.0.0.0
Port 6161
Exec parse_syslog(); to_json();
</Input>
<Output out_gelf>
Module om_udp
Host localhost
Port 12201
OutputType GELF
</Output>
# Tampon mémoire pour ne pas perdre d'événements si Logstash redémarre
<Processor buffer_udp>
Module pm_buffer
MaxSize 1024
Type Mem
WarnLimit 512
</Processor>
<Output out_tcp>
Module om_tcp
Port 12201
Host localhost
</Output>
<Route udp>
Path in_udp => buffer_udp => out_tcp
</Route>
Voir aussi
- Syslog — protocole pris en charge en entrée/sortie
- Snare — agent équivalent avec interface de gestion web
- Evtsys · SyslogAgent · Winlogd — agents équivalents