Outils pour utilisateurs

Outils du site


sysadmin:linux:rsyslog:export_elasticsearch

Ceci est une ancienne révision du document !


rsyslog: exporter les logs vers elasticsearch

rsyslog propose un module écrit en C qui permet d' exporter directement les logs produits localement vers une serveur Elasticsearch. L'avantage est sa simplicité de mise en œuvre. On évite l'utilisation du composant Logtash, la solution est plus économe en ressources.

rsyslog s'adresse directement à Elasticsearch via son module omelasticsearch. Contrairement a syslong-ng aucune bibliothèque Java n'est nécessaire, rsyslog utilise l'API Rest HTTP pour pousser les données.

Installer le module

sudo apt install rsyslog-elasticsearch

Ajouter un fichier de configuration dans le dossier /etc/rsyslog.d/*.conf

00-elasticsearch.conf
module(load="omelasticsearch")
 
template(name="plain-syslog" type="list" option.json="on") {
    constant(value="{")
    constant(value="\"@timestamp\":\"")     property(name="timereported" dateFormat="rfc3339")
    constant(value="\",\"host\":\"")        property(name="hostname")
    constant(value="\",\"severity-num\":")  property(name="syslogseverity")
    constant(value=",\"facility-num\":")    property(name="syslogfacility")
    constant(value=",\"severity\":\"")      property(name="syslogseverity-text")
    constant(value="\",\"facility\":\"")    property(name="syslogfacility-text")
    constant(value="\",\"syslogtag\":\"")   property(name="syslogtag")
    constant(value="\",\"message\":\"")     property(name="msg")
    constant(value="\"}")
}
 
template(name="logstash-index" type="string" string="logstash-%$YEAR%.%$MONTH%.%$DAY%")
 
action(type="omelasticsearch"
  template="plain-syslog"
  searchIndex="logstash-index"
  dynSearchIndex="on"
  bulkmode="on"
  errorfile="/var/log/omelasticsearch.log")

Le template reformate les données produites par rsyslog en JSON.

Références

sysadmin/linux/rsyslog/export_elasticsearch.1622562510.txt.gz · Dernière modification : 2021/06/01 15:48 de 92.154.112.189