Ci-dessous, les différences entre deux révisions de la page.
wiki:monitoring:elk:logstash [2015/11/15 02:22] Thithib |
wiki:monitoring:elk:logstash [2020/06/27 18:16] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Logstash ====== | ||
- | ===== Pourquoi ? ===== | ||
- | |||
- | [[http:// | ||
- | La sortie formatée est ensuite envoyée au cluster Elasticsearch afin d' | ||
- | |||
- | Nous utilisons actuellement la version 2.0 de Logstash. | ||
- | |||
- | |||
- | ===== Comment ? ===== | ||
- | |||
- | ==== Architecture ==== | ||
- | |||
- | Pour chaque machine un serveur syslog (rsyslog ou syslog-ng) surveille les fichiers journaux. | ||
- | Chaque nouveau message est ainsi transféré vers le serveur Logstash (192.168.102.9), | ||
- | |||
- | ==== Configuration ==== | ||
- | |||
- | === rsyslog === | ||
- | |||
- | Pour transmettre les journaux vers Logstash, il est nécessaire de créer sur la machine concernée le fichier **/ | ||
- | |||
- | Par défaut rsyslog surveille déjà tous les messages système (cron, authentification, | ||
- | |||
- | Pour rajouter un fichier supplémentaire, | ||
- | |||
- | $ModLoad imfile | ||
- | |||
- | Puis pour chaque fichier à surveiller : | ||
- | |||
- | < | ||
- | $InputFileName / | ||
- | $InputFileTag mon-service: | ||
- | $InputFileStateFile stat-mon-service | ||
- | $InputFileSeverity info | ||
- | $InputRunFileMonitor | ||
- | </ | ||
- | |||
- | Le champ **Tag** doit contenir par défaut le nom du service d'où est issu le journal, mais il est possible de rajouter des règles supplémentaires dans Logstash. | ||
- | |||
- | Par exemple, pour un serveur web Apache : | ||
- | |||
- | < | ||
- | $InputFileTag apache-mon-site-error: | ||
- | </ | ||
- | |||
- | créera un champ " | ||
- | |||
- | A noter que les deux points ":" | ||
- | |||
- | Puis pour tout envoyer vers le container Logstash sur le port 5140 en TCP : | ||
- | |||
- | < | ||
- | *.* @logstash: | ||
- | </ | ||
- | |||
- | <WRAP center round info > | ||
- | On utilisait avant le port standard 514 mais le service logstash drop maintenant les privilèges et ne peut donc plus s'y binder. | ||
- | </ | ||
- | |||
- | === logstash === | ||
- | |||
- | Le fichier de configuration de Logstash est situé sur le container logstash (192.168.102.9) à l' | ||
- | |||
- | Il est composé de trois sections : | ||
- | |||
- | * La section '' | ||
- | |||
- | < | ||
- | tcp { | ||
- | type => syslog | ||
- | port => 5140 | ||
- | } | ||
- | udp { | ||
- | type => syslog | ||
- | port => 5140 | ||
- | } | ||
- | </ | ||
- | |||
- | * La section '' | ||
- | |||
- | < | ||
- | grok { | ||
- | match => [ " | ||
- | } | ||
- | </ | ||
- | |||
- | Une liste des expressions pré-définies et de leur valeur est disponible sur le [[https:// | ||
- | |||
- | Ensuite, on écrit les bons patterns pour matcher les logs radius, DHCP, etc. | ||
- | |||
- | * La section '' | ||
- | |||
- | < | ||
- | output { | ||
- | elasticsearch { | ||
- | hosts => [' | ||
- | template_overwrite => true | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Comme pour les autres composants de la [[: |