System Filebeat
Le module System
de Filebeat
offre une configuration et des tableaux de bords clé en main pour l'analyse des traces du serveur en lisant les traces syslog
et auth.log
.
Cet article présente l'activation du module dans Filebeat
.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Pré requis
Lors de l'installation de Filebeat
, un compte de service a été mis en place afin de ne pas exécuter l'instance avec le compte root
. Par conséquent, il est nécessaire que ce compte, soit filebeat
dans le cadre de cette installation, accède aux fichiers trace du serveur.
Les permissions de ces fichiers sont générées depuis plusieurs configurations sur Ubuntu
. La première concerne l'outil rsyslog
qui contient les permissions par défaut pour toutes les traces, dans le fichier /etc/rsyslog.conf
avec les éléments suivants.
#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
Donc par défaut, les traces sont avec les permissions 640
pour les comptes syslog:adm
. Il serait possible de mettre en place une configuration de l'outil pour changer ces permissions. Mais il faut savoir que les permissions ne sont pas mises à jour si les fichiers sont déjà existants.
De plus, il existe également la configuration de tmpfiles.d
mise en place pour la distribution afin de surcharger les permissions. Le contenu du fichier /usr/lib/tmpfiles.d/00rsyslog.conf
fixe les permissions.
# Override systemd's default tmpfiles.d/var.conf to make /var/log writable by
# the syslog group, so that rsyslog can run as user.
# See tmpfiles.d(5) for details.
# Type Path Mode UID GID Age Argument
z /var/log 0775 root syslog -
z /var/log/auth.log 0640 syslog adm -
z /var/log/mail.err 0640 syslog adm -
z /var/log/mail.log 0640 syslog adm -
z /var/log/kern.log 0640 syslog adm -
z /var/log/syslog 0640 syslog adm -
d /var/spool/rsyslog 0700 syslog adm -
A noter le commentaire dans l'en tête du fichier Override systemd's default tmpfiles.d/var.conf
. Le contenu du fichier /usr/lib/tmpfiles.d/var.conf
est le suivant.
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# See tmpfiles.d(5) for details
q /var 0755 - - -
L /var/run - - - - ../run
d /var/log 0755 - - -
f /var/log/wtmp 0664 root utmp -
f /var/log/btmp 0660 root utmp -
f /var/log/lastlog 0664 root utmp -
d /var/cache 0755 - - -
d /var/lib 0755 - - -
d /var/spool 0755 - - -
La documentation de tmpfiles.d
, http://manpages.ubuntu.com/manpages/cosmic/man5/tmpfiles.d.5.html, indique qu'il est possible de surcharger les configuration en fonction de l'ordre alphabétique sur le nom des fichiers. Il semblerait que les configurations surchargées soient remontées en erreur. Or comme cela est appliqué dans la distribution, le même principe sera utilisé.
Groupe
Le nouveau groupe syslogreader
est créé afin de permettre à différents comptes d'accéder aux traces.
#sudo groupadd --system syslogreader
Utilisateurs
Par défaut, les droits d'accès aux fichiers trace sont accordés au groupe adm
. Il est donc recommandé d'injecter les utilisateurs de celui-ci dans le nouveau groupe syslogreader
et de le compléter avec le compte d'exécution de Filebeat
, soit filebeat
.
#sudo usermod -a -G syslogreader syslog #sudo usermod -a -G syslogreader filebeat
Sécurisation log
Une configuration de tmpfiles.d
est mise en place pour surcharger la configuration standard définie dans /usr/lib/tmpfiles.d/00rsyslog.conf
.
#sudo touch /usr/lib/tmpfiles.d/rsyslog.conf
Le contenu du fichier est placé ainsi.
# Override rsyslog.conf from Ubuntu
# Type Path Mode UID GID Age Argument
z /var/log/auth.log 0640 syslog syslogreader -
z /var/log/syslog 0640 syslog syslogreader -
Activation
Une fois l'environnement mis en place, il faut configurer le module system
de Filebeat
.
Configuration
Le fichier de configuration du module se trouve dans le répertoire config/modules.d
, externalisé à l'emplacement /var/opt/beats/filebeat/common/config/modules.d
dans le cadre de cette installation. Il est possible d'activer la lecture des traces access
et / ou error
. Pour ces deux catégories, il est possible de spécifier l'emplacement de ces fichiers. A noter que par défaut, Filebeat
tentera de déterminer l'emplacement de ces fichiers en fonction du système d'exploitation de la machine.
Pour cette installation, les deux catégories sont activées en explicitant les emplacements des fichiers.
-
/var/log/auth.log
pour les traces de connexion. -
/var/log/syslog
pour les traces journal.
- module: system
# Syslog
syslog:
enabled: true
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
var.paths: ["/var/log/syslog"]
# Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
#var.convert_timezone: false
# Authorization logs
auth:
enabled: true
# Set custom paths for the log files. If left empty,
# Filebeat will choose the paths depending on your OS.
#var.paths:
var.paths: ["/var/log/auth.log"]
# Convert the timestamp to UTC. Requires Elasticsearch >= 6.1.
#var.convert_timezone: false
Attention les permissions doivent donner un droit de lecture sur l'ensemble de l'emplacement au compte de service. Il est donc nécessaire que le compte est un droit de lecture / exécution (5) sur
/var/log
.
Ajout module
Une fois configuré, il suffit d'ajouter le module.
Attention il est nécessaire d'effectuer les opérations avec le compte
root
ou le compte propriétaire des fichiers, soit filebeat
pour cette installation. Sinon le message d'erreur suivant sera affiché.
Il peut y avoir le message suivant.
must be owned by the beat user (uid=0) or root
Il est préférable de laisser cette vérification, même si il est possible de la désactiver en ajoutant l'argument -strict.perms=false
ainsi.
#sudo su filebeat -s /bin/bash -c '/var/opt/beats/filebeat/installed/filebeat -c /var/opt/beats/filebeat/common/config/filebeat.yml -path.home /var/opt/beats/filebeat/installed -path.config /var/opt/beats/filebeat/common/config -path.data /var/opt/beats/filebeat/common/datas -path.logs /var/log/filebeat -strict.perms=false modules list'
Dans un premier temps, il est possible de lister l'état des modules avec les arguments modules list
de l'exécutable filebeat
.
#sudo su filebeat -s /bin/bash -c '/var/opt/beats/filebeat/installed/filebeat -c /var/opt/beats/filebeat/common/config/filebeat.yml -path.home /var/opt/beats/filebeat/installed -path.config /var/opt/beats/filebeat/common/config -path.data /var/opt/beats/filebeat/common/datas -path.logs /var/log/filebeat modules list' Enabled: Disabled: apache2 auditd icinga kafka logstash mysql nginx osquery postgresql redis system traefik
A noter qu'un bash
est fourni, argument -s /bin/bash
, pour l'exécution avec le compte filebeat
. En effet, un bash
est nécessaire et celui-ci a été désactivé lors de la création du compte.
Pour cet exemple, tous les modules disponibles sont désactivés.
L'activation du module s'effectue à l'aide des arguments modules enable
et en spécifiant le nom du module.
#sudo su filebeat -s /bin/bash -c '/var/opt/beats/filebeat/installed/filebeat -c /var/opt/beats/filebeat/common/config/filebeat.yml -path.home /var/opt/beats/filebeat/installed -path.config /var/opt/beats/filebeat/common/config -path.data /var/opt/beats/filebeat/common/datas -path.logs /var/log/filebeat modules enable system' Enabled system
Le message Enabled system
confirme l'activation, qui est confirmé avec la commande pour lister les modules.
#sudo su filebeat -s /bin/bash -c '/var/opt/beats/filebeat/installed/filebeat -c /var/opt/beats/filebeat/common/config/filebeat.yml -path.home /var/opt/beats/filebeat/installed -path.config /var/opt/beats/filebeat/common/config -path.data /var/opt/beats/filebeat/common/datas -path.logs /var/log/filebeat modules list' Enabled: system Disabled: apache2 auditd icinga kafka logstash mysql nginx osquery postgresql redis traefik
Cette activation entraîne le renommage du fichier de configuration du module dans le répertoire config/modules.d
.
#sudo ls -l /var/opt/beats/filebeat/common/config/modules.d total 56 drwx------ 2 filebeat filebeat 4096 juin 6 00:18 ./ drwx------ 3 filebeat filebeat 4096 juin 5 13:32 ../ -rw------- 1 filebeat filebeat 371 mars 13 10:52 apache2.yml.disabled -rw------- 1 filebeat filebeat 175 mars 13 10:52 auditd.yml.disabled -rw------- 1 filebeat filebeat 546 mars 13 10:52 icinga.yml.disabled -rw------- 1 filebeat filebeat 296 mars 13 10:52 kafka.yml.disabled -rw------- 1 filebeat filebeat 361 mars 13 10:52 logstash.yml.disabled -rw------- 1 filebeat filebeat 368 mars 13 10:52 mysql.yml.disabled -rw------- 1 filebeat filebeat 369 mars 13 10:52 nginx.yml.disabled -rw------- 1 filebeat filebeat 388 mars 13 10:52 osquery.yml.disabled -rw------- 1 filebeat filebeat 192 mars 13 10:52 postgresql.yml.disabled -rw------- 1 filebeat filebeat 463 mars 13 10:52 redis.yml.disabled -rw------- 1 filebeat filebeat 574 mars 13 10:52 system.yml -rw------- 1 filebeat filebeat 195 mars 13 10:52 traefik.yml.disabled
L'extension .disabled
est supprimée.
Après redémarrage du service filebeat
, le module sera alors actif et les données injectées dans ElasticSearch
.
#sudo systemctl start filebeat
Voir aussi
Documentation officielle: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-module-system.html