solutionDrive.logstash

Rôle Ansible : Logstash

Statut de la construction

Un rôle Ansible qui installe Logstash sur RedHat/CentOS Debian/Ubuntu.

Notez que ce rôle installe un modèle grok syslog par défaut ; si vous souhaitez ajouter plus de filtres, consultez la documentation pour logstash_configuration_files et logstash_filter_files.

Par exemple, vous pourriez créer un fichier nommé 13-myapp.conf avec le filtre grok approprié et redémarrer logstash pour commencer à l'utiliser. Testez votre regex grok à l'aide du Grok Debugger.

Exigences

Bien que d'autres méthodes soient possibles, ce rôle est conçu pour fonctionner avec Elasticsearch comme backend pour stocker les messages de log.

Variables du rôle

Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml):

logstash_listen_port_beats: 5044

Le port sur lequel Logstash écoutera pour les beats.

logstash_version: 2.3

Version majeure par défaut de Logstash à installer.

logstash_configuration_files:
  - 01-lumberjack-input.conf
  - 30-lumberjack-output.conf

logstash_filter_files:
  - 10-syslog.conf
  - 11-nginx.conf
  - 12-apache.conf
  - 14-solr.conf
  - 15-drupal.conf
    logstash_elasticsearch_host: localhost

Liste des fichiers d'entrée/sortie (fichiers de configuration) et des fichiers de filtre à installer. Par défaut, les fichiers d'entrée/sortie et de filtre pour lumberjack sont installés. Vous pouvez spécifier vos propres fichiers de configuration en plaçant des fichiers d'entrée/sortie dans votre propre répertoire templates, et des filtres dans votre propre répertoire files. Ensuite, créez votre propre liste dans le répertoire vars/main.yml, et vars_files dans votre rôle enveloppe, et incluez ce rôle pour déployer Logstash avec votre propre configuration. Voir Exemple de Playbook ci-dessous.

logstash_elasticsearch_hosts:
  - http://localhost:9200

Les hôtes où Logstash doit envoyer des logs à Elasticsearch.

logstash_ssl_dir: /etc/pki/logstash
logstash_ssl_certificate_file: logstash-forwarder-example.crt
logstash_ssl_key_file: logstash-forwarder-example.key

Configuration SSL pour que Logstash accepte les requêtes des logstash-forwarder fonctionnant sur des hôtes distants. Remarque de sécurité : Sur les serveurs de production ou accessibles au public (par exemple, tout serveur non-test), vous devez créer votre propre paire clé/certificat et l'utiliser à la place du modèle par défaut inclus ! Vous pouvez utiliser OpenSSL pour créer les fichiers de clé et de certificat, avec une commande comme suit : openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt.

Notez que filebeat et logstash peuvent ne pas fonctionner correctement avec des certificats auto-signés à moins que vous n'ayez également l'ensemble de la chaîne de confiance (incluant l'Autorité de Certification pour votre certificat auto-signé) ajoutée sur votre serveur. Voir : https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

Pour logstash_ssl_certificate_file et logstash_ssl_key_file, vous pouvez fournir un chemin relatif au répertoire du rôle, ou un chemin absolu vers le fichier.

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

Si la configuration pour le fichier syslog local (défini comme logstash_local_syslog_path) doit être ajoutée à logstash. Réglez cela sur false si vous surveillez le syslog local différemment, ou si vous ne vous souciez pas du fichier syslog local. D'autres journaux locaux peuvent être ajoutés grâce à vos propres fichiers de configuration placés dans /etc/logstash/conf.d.

logstash_enabled_on_boot: yes

Mettez cela sur no si vous ne souhaitez pas que logstash s'exécute au démarrage du système.

logstash_install_plugins:
  - logstash-input-beats

Une liste des plugins Logstash qui doivent être installés.

logstash_install_dir: /usr/share/logstash

Chemin vers le répertoire d'installation. Auparavant, "/opt/logstash" était codé en dur, maintenant par défaut c'est "/usr/share/logstash".

Autres Remarques

Si vous constatez une forte utilisation du CPU de l'un des processus logstash, et que vous utilisez Logstash avec une autre application fonctionnant sur le port 80 sur une plateforme comme Ubuntu avec upstart, le processus logstash-web peut être bloqué dans une boucle essayant de démarrer sur le port 80, échouant, et essayant de redémarrer à nouveau, à cause de la directive restart présente dans /etc/init/logstash-web.conf.

Pour éviter ce problème, soit changez cette ligne pour ajouter une limite à la déclaration de respawn, soit définissez le service logstash-web sur enabled=no dans votre playbook, par exemple :

- name: Assurer que le processus logstash-web est arrêté et désactivé.
  service: name=logstash-web state=stopped enabled=no

Exemple de Playbook

- hosts: search
  vars_files:
    - vars/main.yml

  roles:
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

Licence

MIT / BSD

Informations sur l'Auteur

Ce rôle a été créé en 2014 par Jeff Geerling, auteur de Ansible for DevOps.

À propos du projet

Logstash for Linux.

Installer
ansible-galaxy install solutionDrive.logstash
Licence
mit
Téléchargements
497
Propriétaire