solutionDrive.logstash
Rôle Ansible : Logstash
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.
ansible-galaxy install solutionDrive.logstash