Recherche de site Web

Comment installer FileBeat sur Ubuntu


La Suite Elastic est une combinaison de quatre composants principaux : Elasticsearch, Logstash, Kibana et Beats. Filebeat est l'un des membres les plus célèbres de cette famille qui collecte, transmet et centralise les données des journaux d'événements vers Elasticsearch ou Logstash pour l'indexation. Filebeat dispose de nombreux modules, notamment Apache, Nginx, System, MySQL, auditd et bien d'autres, qui simplifient la visualisation des formats de journaux courants jusqu'à une seule commande.

Dans ce didacticiel, nous allons vous montrer comment installer et configurer Filebeat pour transférer les journaux d'événements et les événements d'authentification SSH vers Logstash sur Ubuntu 18.04.

Conditions préalables

  • Un serveur exécutant Ubuntu 18.04 avec Elasticsearch, Kibana et Logstash installés et configurés.
  • Un mot de passe root est configuré sur votre serveur.

Commencer

Avant de commencer, mettez à jour votre système avec la dernière version. Vous pouvez le faire en exécutant la commande suivante :

apt-get update -y
apt-get upgrade -y

Une fois votre système mis à jour, redémarrez-le pour appliquer les modifications.

Installer Filebeat

Par défaut, Filebeat n'est pas disponible dans le référentiel par défaut d'Ubuntu 18.04. Vous devrez donc ajouter le référentiel Elastic Stack 7 APT dans votre système.

Tout d’abord, installez le package requis avec la commande suivante :

apt-get install apt-transport-https -y

Ensuite, téléchargez et ajoutez la clé Elastic Stack avec la commande suivante :

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Ensuite, ajoutez le référentiel Elastic Stack 7 Apt avec la commande suivante :

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee /etc/apt/sources.list.d/elastic-7.x.list

Ensuite, mettez à jour le référentiel et installez Filebeat avec la commande suivante :

apt-get update -y
apt-get install filebeat -y

Une fois l'installation terminée, vous pouvez passer à l'étape suivante.

Configurer Filebeat

Par défaut, Filebeat est configuré pour envoyer des données d'événement à Elasticsearc. Ici, nous allons configurer Filebeat pour envoyer les données d'événement à Logstash. Vous pouvez le faire en éditant le fichier /etc/filebeat/filebeat.yml :

nano /etc/filebeat/filebeat.yml

Commentez la sortie elasticsearch et décommentez la sortie Logstash comme indiqué ci-dessous :

#-------------------------- Elasticsearch output ------------------------------

# output.elasticsearch:
  # Array of hosts to connect to.
  # hosts: ["localhost:9200"]

#----------------------------- Logstash output --------------------------------

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

Activer le module système Filebeat

Par défaut, Filebeat est livré avec de nombreux modules. Vous pouvez lister tous les modules avec la commande suivante :

filebeat modules list

Vous devriez voir le résultat suivant :

Enabled:

Disabled:
apache
auditd
aws
cef
cisco
coredns
elasticsearch
envoyproxy
googlecloud
haproxy
ibmmq
icinga
iis
iptables
kafka
kibana
logstash
mongodb
mssql
mysql
nats
netflow
nginx
osquery
panw
postgresql
rabbitmq
redis
santa
suricata
system
traefik
zeek

Par défaut, tous les modules sont désactivés. Vous devrez donc activer le module système pour collecter et analyser les journaux créés par le service de journalisation système. Vous pouvez activer le module système avec la commande suivante :

filebeat modules enable system

Ensuite, vous pouvez vérifier le module système avec la commande suivante :

filebeat modules list

Vous devriez voir que le module système est maintenant activé :

Enabled:
system

Ensuite, vous devrez configurer le module système pour que les journaux d'authentification soient en lecture seule. Vous pouvez le faire en éditant le fichier /etc/filebeat/modules.d/system.yml :

nano /etc/filebeat/modules.d/system.yml

Modifiez les lignes suivantes :

- module: system
  # Syslog
  syslog:
    enabled: 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/log/auth.log"]

Enregistrez et fermez le fichier lorsque vous avez terminé.

Charger le modèle d'index dans Elasticsearch

Ensuite, vous devrez charger manuellement le modèle dans Elasticsearch. Vous pouvez le faire avec la commande suivante :

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

Vous devriez voir le résultat suivant :

Index setup finished.

Ensuite, générez le modèle d'index et installez le modèle sur le serveur Elastic Stack avec la commande suivante :

filebeat export template > filebeat.template.json
curl -XPUT -H 'Content-Type: application/json' http://localhost:9200/_template/filebeat-7.0.1 [email 

Enfin, démarrez le service Filebeat et activez-le après le redémarrage du système avec la commande suivante :

systemctl start filebeat
systemctl enable filebeat

Vous pouvez vérifier l'état de Filebeat avec la commande suivante :

systemctl status filebeat

Vous devriez voir le résultat suivant :

? filebeat.service - Filebeat sends log files to Logstash or directly to Elasticsearch.
   Loaded: loaded (/lib/systemd/system/filebeat.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-11-26 06:45:18 UTC; 14s ago
     Docs: https://www.elastic.co/products/beats/filebeat
 Main PID: 13059 (filebeat)
    Tasks: 28 (limit: 463975)
   CGroup: /system.slice/filebeat.service
           ??13059 /usr/share/filebeat/bin/filebeat -e -c /etc/filebeat/filebeat.yml -path.home /usr/share/filebeat -path.config /etc/filebeat 

Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.528Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.529Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:18 ubuntu filebeat[13059]: 2019-11-26T06:45:18.530Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.485Z        INFO        add_cloud_metadata/add_cloud_metadata.go:87        add_clou
Nov 26 06:45:21 ubuntu filebeat[13059]: 2019-11-26T06:45:21.486Z        INFO        log/harvester.go:251        Harvester started for file: /va
Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.485Z        INFO        pipeline/output.go:95        Connecting to backoff(async(tc
Nov 26 06:45:22 ubuntu filebeat[13059]: 2019-11-26T06:45:22.487Z        INFO        pipeline/output.go:105        Connection to backoff(async(t

Tester la réception des données Elasticsearch

Maintenant, vérifiez si Elasticsearch reçoit des données ou non avec la commande suivante :

curl -X GET localhost:9200/_cat/indices?v

Vous devriez voir le résultat suivant :

health status index                            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_task_manager_1           fpHT_GhXT3i_w_0Ob1bmrA   1   0          2            0     46.1kb         46.1kb
yellow open   ssh_auth-2019.11                 mtyIxhUFTp65WqVoriFvGA   1   1      15154            0      5.7mb          5.7mb
yellow open   filebeat-7.4.2-2019.11.26-000001 MXSpQH4MSZywzA5cEMk0ww   1   1          0            0       283b           283b
green  open   .apm-agent-configuration         Ft_kn1XXR16twRhcZE4xdQ   1   0          0            0       283b           283b
green  open   .kibana_1                        79FslznfTw6LfTLc60vAqA   1   0          8            0     31.9kb         31.9kb

Vous pouvez également vérifier l'index ssh_auth-2019.05 avec la commande suivante :

curl -X GET localhost:9200/ssh_auth-*/_search?pretty

Vous devriez voir le résultat suivant :

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 10000,
      "relation" : "gte"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "ssh_auth-2019.11",
        "_type" : "_doc",
        "_id" : "g7OXpm4Bi50dVWRYAyK4",
        "_score" : 1.0,
        "_source" : {
          "log" : {
            "offset" : 479086,
            "file" : {
              "path" : "/var/log/elasticsearch/gc.log"
            }
          },
          "event" : {
            "timezone" : "+00:00",
            "dataset" : "elasticsearch.server",
            "module" : "elasticsearch"
          },

Ajouter un index sur Kibana

Maintenant, connectez-vous à votre tableau de bord Kibana et cliquez sur Index Modèles. Vous devriez voir la page suivante :

Maintenant, cliquez sur Créer un modèle d'index. Vous devriez voir la page suivante :

Ajoutez l'index ssh_auth-* et cliquez sur le bouton de l'étape Suivant. Vous devriez voir la page suivante :

Maintenant, sélectionnez @timestamp et cliquez sur le bouton Créer un modèle d'index. Vous devriez voir la page suivante :

Maintenant, cliquez sur l'onglet Découvrir dans le volet de gauche. Vous devriez pouvoir voir vos données dans l'écran suivant :

Toutes nos félicitations! Vous avez installé et configuré avec succès Filebeat pour envoyer des données d'événement à Logstash. Vous pouvez maintenant procéder à la création de tableaux de bord Kibana après avoir reçu toutes les données.

Articles connexes: