Visualiser ses logs dans Kibana avec Filebeat

Filebeat Elasticsearch kibana Apache linux

Filebeat c’est quoi ?

Filebeat est un outil qui permet d’envoyer des données de logs du système vers Kibana.

Kibana accède ensuite aux logs et nous permet d’exploiter ces informations pour en faire des tableaux de bord, des statistiques, des graphiques, géolocaliser les adresses IP sur une map monde ainsi que pour faire du tri selon les alertes.

Je vais faire une petite démonstration avec un module qui récupère les logs système linux puis avec un module qui récupère les logs d’un serveur Apache.

Si tu veux reproduire ce tuto, tu auras besoin d’un serveur Elasticsearch, un serveur Kibana ainsi qu’un client linux quelconque.

Pour installer ces 2 serveurs :

Tuto installation d’un serveur ElasticSearch.

Tuto installation d’un serveur Kibana.

Tout d’abord, avec notre navigateur on se place sur « http://localhost:5601/s/nom_du_space/app/home#/tutorial_directory » ou en allant sur Kibana, Home puis Add Data. Cette page référencie tous les modules disponibles :

kibana data

Filebeat logs Systèmes Linux

Pour cette partie nous nous intéresserons au modules Systems logs, qui récupère les logs systèmes des OS Unix/Linux :

Filebeat System logs linux

On clique dessus et on atterri sur la page qui explique comment installer le service sur notre serveur :

filebeat linux

Installer Filebeat Systems logs sur Debian/Ubuntu :

  1. On Télécharge et installe le service :
curl -L -O  https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-amd64.deb
sudo dpkg -i filebeat-7.10.1-amd64.deb

2. Puis on édite le fichier /etc/filebeat/filebeat.yml pour spécifier les informations de connexion vers nos serveurs elasticsearch et kibana.

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic" #(si pas de login/mot de passe ne rien mettre)
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"
  space.id: "space-de-test"

3. On active le module système (C’est lui qui permet d’envoyer les logs systèmes) :

sudo filebeat modules enable system

4. Et enfin on active Filebeat :

sudo filebeat setup
sudo service filebeat start
systemctl enable filebeat # si on souhaite activer filebeat par défaut au démarrage

Installer Filebeat Systems logs sur Centos :

  1. On télécharge et installe notre service
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-x86_64.rpm
sudo rpm -vi filebeat-7.10.1-x86_64.rpm

2. On modifie le fichier /etc/filebeat/filebeat.yml avec nos informations de connexion vers nos serveurs elasticsearch et kibana.

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic"
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"
  space.id: "space-de-test"

3. On active le module :

sudo filebeat modules enable system

4. Puis on lance le service

sudo filebeat setup
sudo service filebeat start
systemctl enable filebeat # si on souhaite activer filebeat par défaut au démarrage

Exploiter les logs systèmes Filebeat avec Kibana

Une fois installé et le service démarré, on peut ensuite exploiter ces données directement en cliquant sur le bouton check data :

filebeat data

Kibana affiche alors un tableau de bord qui utilises les logs systèmes de notre serveur :

filebeat kibana

On n’a pas mal de fonctionnalités sur notre tableau de bord, premièrement une barre de recherche en haut pour trier nos données.

Par exemple on peut n’afficher que les logs d’une machine en particulier (si on en a plusieurs) en appliquant « agent.hostname = hostname_de_la_machine« .

On peut également sélectionner une date/heure de début et de fin :

On a aussi la possibilité de n’afficher que les logs liés aux commande sudo, aux logs SSH ou à tout ce qui concerne les utilisateurs.

Un graphique qui montre l’utilisation des données dans le temps et des statistiques sur les différents logs de ma machine, ici j’ai des logs kernel, systemd, network et même prometheus ( puisque c’est un serveur prometheus).

dashboard kibana elasticsearch

Et enfin dans la partie basse du tableau de bord on a nos logs sous forme de trame, que l’on peut dérouler pour afficher en détail chaque champ avec son résultat.

kibana filebeat logs

Filebeat logs Apache

Pour les logs Apache on utilise le module Apache logs:

filebeat apache logs

Installer Filebeat Apache logs sur Debian/Ubuntu :

  1. Téléchargement et installation :
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-amd64.deb
sudo dpkg -i filebeat-7.10.1-amd64.deb

2. Dans le fichier /etc/filebeat/filebeat.yml :

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic"
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"
  space.id: "space-de-test"

3. Puis on active le module Apache :

sudo filebeat modules enable apache

4. Et on lance notre service qui va upload nos data vers notre elasticsearch et Kibana :

sudo filebeat setup
sudo service filebeat start

Installer Filebeat Apache logs sur Centos :

  1. On tape :
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.10.1-x86_64.rpm
sudo rpm -vi filebeat-7.10.1-x86_64.rpm

2. On modifie /etc/filebeat/filebeat.yml :

output.elasticsearch:
  hosts: ["<es_url>"]
  username: "elastic"
  password: "<password>"
setup.kibana:
  host: "<kibana_url>"
  space.id: "space-de-test"

3. On active le module Apache :

sudo filebeat modules enable apache

4. On démarre le service :

sudo filebeat setup
sudo service filebeat start

Exploiter les logs Apache Filebeat avec Kibana

Encore une fois on clique sur le bouton check data :

Kibana affiche cette fois un tableau de bord spécialement conçu pour les logs Apache :

kibana apache

Sur notre dashboard, nous avons :

  • une map monde qui géolocalise la provenance des requêtes selon les adresses IP,
  • un graphe du taux de requête sur une date défini,
  • des graphiques circulaire avec des statistiques sur les URL et le code statut des requêtes
  • et un graphique sur les différents user-agent

Puis en dessous comme pour le tableau de bord des logs système, on a les trames des logs que l’on peut dérouler pour avoir plus d’informations.

Comme pour les logs système on peut trier nos données par date, par machine, user-agent, ip ou n’importe quels champs.

Les tableaux de bord sont personnalisable, on peut ajouter, supprimer et réorganiser les fonctions des dashboards à notre guise.

Voici la documentation officiel, si tu veux en savoir plus sur cet outil.

Laisser un commentaire