elastic.beats

ARCHIVÉ

Ce projet n'est plus maintenu. Pour des alternatives pour commencer, vous pouvez essayer l'une de ces options :

ansible-beats

Statut de construction Ansible Galaxy

Ce rôle fournit un moyen générique d'installer les Beats pris en charge par Elastic.

Beats testés

  • Filebeat
  • MetricBeat (TopBeat en 1.x)
  • Packetbeat

Versions testées

  • 7.x
  • 6.x

Plateformes testées

  • Ubuntu 16.04
  • Ubuntu 18.04
  • Ubuntu 20.04
  • Debian 8
  • Debian 9
  • Debian 10
  • CentOS 7
  • Amazon Linux 2

Utilisation

Créez votre playbook Ansible avec vos propres tâches et incluez le rôle beats. Vous devez avoir ce dépôt accessible dans le contexte du playbook.

ansible-galaxy install elastic.beats,v7.17.0

Ensuite, créez votre fichier yaml de playbook en ajoutant le rôle beats. L'application du rôle beats entraîne l'installation d'un nœud sur un hôte.

La configuration la plus simple consiste donc en :

  hosts: localhost
  roles:
    - role: elastic.beats
  vars:
    beats_version: 7.17.0
    beat: filebeat
    beat_conf:
      filebeat:
        inputs:
          - type: log
            enabled: true
            paths:
              - /var/log/*.log

Cela installe Filebeat 7.17.0 sur l'hôte 'localhost'.

Remarques :

  • La version par défaut des Beats est décrite dans beats_version. Vous pouvez remplacer cette variable dans votre playbook pour installer une autre version. Bien que nous ayons testé ce rôle uniquement avec une version 7.x et une 6.x (respectivement 7.17.0 et 6.8.23 au moment de l'écriture), ce rôle devrait également fonctionner avec d'autres versions dans la plupart des cas.
  • Le produit Beat est décrit dans la variable beat. Bien que les Beats actuellement testés soient Filebeat, Metricbeat et Packetbeat, ce rôle devrait également fonctionner avec d'autres membres de The Beats Family dans la plupart des cas.

Tests

Ce playbook utilise Kitchen pour l'intégration continue et les tests locaux.

Exigences

  • Ruby
  • Bundler
  • Docker
  • Make

Exécution des tests

Pour converger un hôte Ubuntu 18.04

$ make converge

Pour exécuter les tests

$ make verify

Pour lister tous les différents ensembles de tests

$ make list

L'ensemble de tests par défaut est Ubuntu 18.04. Si vous souhaitez tester un autre ensemble, vous pouvez remplacer cela par la variable PATTERN.

$ make converge PATTERN=standard-centos-7

Le PATTERN est un modèle de cuisine qui peut correspondre à plusieurs ensembles. Pour exécuter tous les tests pour CentOS

$ make converge PATTERN=centos-7

Lorsque vous avez terminé les tests, vous pouvez tout nettoyer avec

$ make destroy-all

Configuration de base des Beats

Tous les paramètres de configuration des Beats sont pris en charge. Cela est réalisé en utilisant un paramètre de carte de configuration beat_conf, qui est sérialisé dans le fichier ${beat}.yml. L'utilisation d'une carte garantit que le playbook Ansible n'a pas besoin d'être mis à jour pour refléter les nouveaux/dépréciés/paramètres de configuration de plugin.

En plus de la carte beat_conf, plusieurs autres paramètres sont pris en charge pour des fonctions supplémentaires, par exemple, l'installation de scripts. Ceux-ci peuvent être trouvés dans le fichier defaults/main.yml du rôle.

Ce qui suit illustre l'application de paramètres de configuration à une instance de Packetbeat.

- name: Exemple de playbook pour installer packetbeat
  hosts: localhost
  roles:
    - { role: beats, beat: "packetbeat",
        beat_conf: {
          "interfaces": {"device":"any"},
          "protocols": {
            "dns": {
              "ports": [53],
              "include_authorities":true
            },
            "http": {
              "ports": [80, 8080, 8000, 5000, 8002]
            },
            "memcache": {
              "ports": [11211]
            },
            "mysql": {
              "ports": [3306]
            },
            "pgsql": {
              "ports": [5432]
            },
            "redis": {
              "ports": [6379]
            },
            "thrift": {
              "ports": [9090]
            },
            "mongodb": {
              "ports": [27017]
            }
          }
        },
        output_conf : {
          "elasticsearch": {
            "hosts": ["localhost:9200"]
          }
        }
    }
  vars:
    use_repository: "true"

Configuration supplémentaire

Les variables prises en charge sont les suivantes :

  • beat (OBLIGATOIRE) : Produit Beat. Valeurs prises en charge : "filebeat", "metricbeat" et "packetbeat" (d'autres Beats de The Beats Family devraient fonctionner dans la plupart des cas mais ne sont pas actuellement testés).
  • beat_conf (OBLIGATOIRE) : Configuration Beat. Doit être définie comme une carte.
  • beats_version (Par défaut 7.17.0) : Version des Beats.
  • version_lock (Par défaut false) : Verrouille la version installée si défini sur true, empêchant ainsi d'autres processus de la mettre à jour. Cela n'affectera pas la capacité des rôles à mettre à jour le beat lors des exécutions suivantes (il déverrouille et reverrouille si nécessaire).
  • use_repository (Par défaut true) : Utiliser le dépôt Elastic pour yum ou apt si true. Si false, une custom_package_url doit être fournie.
  • beats_add_repository (Par défaut {use_repository}) : Installer le dépôt Elastic pour yum ou apt si true. Si false, les dépôts présents seront utilisés. Utile si vous avez déjà des paquets Beats dans votre dépôt.
  • start_service (Par défaut true) : Le service sera démarré si true, false sinon.
  • restart_on_change (Par défaut true) : Les modifications de configuration ou de versions installées entraîneront un redémarrage si true.
  • daemon_args (Applicable à la version 1.x des Beats) : Permet de passer des paramètres d'exécution aux Beats.
  • logging_conf (Par défaut {"files":{"rotateeverybytes":10485760}}) : Configuration du logging. Doit être définie comme une carte. La carte est sérialisée dans la section de logging de la configuration du beat.
  • shipper_conf (Applicable à la version 1.x des Beats) : Configuration de Shipper. Doit être définie comme une carte. La carte est sérialisée dans la section shipper de la configuration du beat.
  • output_conf (Par défaut {"elasticsearch":{"hosts":["localhost:9200"]}}) : Configuration de sortie. La carte est sérialisée dans la section de sortie de la configuration du beat.
  • beats_pid_dir (Par défaut /var/run) : Emplacement du fichier pid des Beats.
  • beats_conf_dir (Par défaut /etc/{beat}) : Emplacement du répertoire de configuration pour le fichier de configuration des Beats.
  • default_ilm_policy (Par défaut non défini) : chemin local vers la politique par défaut si une politique personnalisée est définie.

Accent sur l'ILM

Par défaut, beat créera une politique par défaut définie dans le cadre du déploiement du beat. Vous pouvez remplacer la configuration ILM par défaut en définissant la configuration ILM comme partie de beat_conf. Par exemple :

- role: ansible-beats
  beat: metricbeat
  beat_conf:
    setup:
      ilm:
        policy_file: /etc/filebeat/policies/my-default-metricbeat.json
        overwrite: true
      metricbeat.modules:
        ...
  default_ilm_policy: conf/my-default-metricbeat.json
  become: yes

Cela copiera conf/my-default-filebeat.json dans /etc/filebeat/policies/my-default-filebeat.json. Cette politique sera utilisée comme politique par défaut pour ce beat.

License

Apache 2.0

Limitations

Plusieurs instances du même beat ne peuvent pas être installées sur le même serveur cible.

Questions sur l'utilisation

Nous accueillons les questions sur l'utilisation du rôle. Cependant, afin de garder la liste des problèmes sur GitHub axée sur les "problèmes", nous demandons à la communauté de poser des questions sur https://discuss.elastic.co/c/beats. Cela est surveillé par les mainteneurs.

Les contributions de la communauté sont toujours appréciées et les bienvenues ! Veuillez vous assurer que toutes les contributions incluent des tests si nécessaire.

Installer
ansible-galaxy install elastic.beats
Licence
other
Téléchargements
782.4k
Propriétaire