Filebeat avec Elasticsearch 8.x - Partie 1 : Installation et sécurisation

Publié le 04/01/2023

« Voir toutes les conférences Contactez-nous
Filebeat with Elasticsearch 8.x - Part 1: Install & Secure

Introduction

Code sur Github: Elasticsearch et Beats

Nous allons installer Filebeat avec Elasticsearch et Kibana. Si vous n'avez pas encore configuré Elasticsearch et Kibana,suivez ces instructions.

Cette vidéo suppose que vous utilisez Certificats signés publiquement. Si vous utilisez Certificats auto-signés, va ici À déterminer.

Exigences

A Running instance of Elasticsearch and Kibana.

Une instance d’un autre serveur Ubuntu 20.04 exécutant n’importe quel type de service.

Mesures

Étape 1 - Télécharger Filebeat [01:10]

Sur la machine Ubuntu qui exécutera Filebeat, exécutez ces commandes pour télécharger les dépendances :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg; echo 'deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main' | sudo tee /etc/apt/sources.list.d/elastic-8.x.list; apt-get install -y apt-transport-https; apt-get install -y filebeat;

Étape 2 - Configurer Filebeat [02:20]

Modifiez ces champs pour le /etc/filebeat.yml

filebeat.inputs: ...etc... - type: filestream ...etc... enabled: true ...etc... filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: true # 10s reload for demonstration purposes reload.period: 10s setup.kibana: host: "https://<kibana-domain>:<kibana-port>" output.elasticsearch: hosts: ["<elasticsearch-domain>:<elasticsearch-port>"] protocol: "https" username: "elastic" password: "<your elastic password>"

Le fichier filebeat.yml complété peut être trouvé ici.

IMPORTANT : nous utilisons le superutilisateur Elastic pour la configuration initiale. Nous rétrograderons ces privilèges ultérieurement.

Testez ensuite votre configuration avec ces commandes :

/usr/share/filebeat/bin/filebeat test config -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat /usr/share/filebeat/bin/filebeat test output -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat

Confirmez que vous recevez des messages de réussite.

Étape 3 - Configuration de Filebeat [11:12]

Exécutez maintenant cette commande pour configurer les flux de données et les vues Filebeat dans Elasticsearch et Kibana :

/usr/share/filebeat/bin/filebeat setup -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat

Une fois la commande terminée, allez sur Kibana Menu et visiter Tableau de bord pour voir de nombreux tableaux de bord pré-fabriqués.

Étape 4 - Créer un utilisateur de publication [12:58]

Créer un rôle

À Kibana, allez à Gestion de la pile > Rôles > Créer un rôle. Remplissez ensuite ces champs :

Role name: filebeat-publisher Cluster privileges: monitor read_ilm read_pipeline Indices: filebeat-* Privileges: create_doc

Créer un utilisateur

À Kibana, allez à Gestion de la pile > Utilisateurs > Créer un utilisateur. Remplissez ensuite ces champs :

Username: filebeat-publisher Full name: filebeat-publisher Email address: anything@anything.com Password: anything Roles: filebeat-publisher editor

Créer une clé API pour l'utilisateur

À Kibana, allez à Outils de développement > Console. Exécutez ensuite cette commande :

POST /_security/api_key/grant { "grant_type": "password", "username": "filebeat-publisher", "password": "anything", "api_key": { "name": "filebeat-publisher" } }

Cela devrait produire un résultat comme :

Filebeat user token Jeton utilisateur Filebeat

Erreur de frappe : le nom metric devrait montrer filebeat-publisher plutôt

Modifier le /etc/filebeat/filebeat.yml en commentant le elastic nom d'utilisateur et mot de passe et activation du api_key comme ça:

output.elasticsearch: ...etc... api_key: "${ES_API_KEY}" #username: "elastic" #password: "" ...etc...

Nous utiliserons le keystore Filebeat pour charger les secrets à l'exécution. Exécutez maintenant cette commande pour définir ES_API_KEY variable de magasin de clés :

/usr/share/filebeat/bin/filebeat keystore add ES_API_KEY -c /etc/filebeat/filebeat.yml --path.data /var/lib/filebeat --path.home /usr/share/filebeat

Presse entrer et lorsque vous y êtes invité, collez <id>:<api_key> où le <id> et le <api_key> sont les valeurs de la réponse du jeton utilisateur que vous avez obtenue précédemment.

Étape 5 - Exécuter Filebeat [19:00]

systemctl enable filebeat; systemctl start filebeat;

Dans un instant, vous devriez commencer à voir des résultats dans Kibana dans l'un ou l'autre Découvrir, Observabilité, Gestion de la pile > Gestion des index > Flux de données, Tableau de bord > Sélectionnez un tableau de bord Filebeat.

Étape 6 – Activer d’autres modules de journalisation [22:30]

À ce stade, il n'y a pas beaucoup de journaux intéressants à consulter. Nous pouvons retourner sur le serveur Filebeat et accéder à /etc/filebeat/modules.d répertoire et renommez le répertoire concerné *.yml.disabled à *.yml pour demander à Filebeat d'envoyer des données à Elasticsearch. Pour certains de ces services, vous devrez peut-être ajouter le fichier enabled: true option à la *.yml fichier ainsi que saisir les détails de connexion et de configuration appropriés.