solutionDrive.logstash

Rol de Ansible: Logstash

Estado de Construcción

Un Rol de Ansible que instala Logstash en RedHat/CentOS Debian/Ubuntu.

Ten en cuenta que este rol instala un patrón grok de syslog por defecto; si deseas agregar más filtros, consulta la documentación para logstash_configuration_files y logstash_filter_files.

Como ejemplo, puedes crear un archivo llamado 13-myapp.conf con el filtro grok apropiado y reiniciar Logstash para comenzar a usarlo. Prueba tu regex grok utilizando el Grok Debugger.

Requisitos

Aunque hay otros métodos posibles, este rol está diseñado para trabajar con Elasticsearch como un backend para almacenar mensajes de log.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (ver defaults/main.yml):

logstash_listen_port_beats: 5044

El puerto por el cual Logstash escuchará por beats.

logstash_version: 2.3

Versión principal predeterminada de Logstash para instalar.

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

Lista de archivos de entrada/salida (archivos de configuración) y archivos de filtro para instalar. Por defecto, se instalan los archivos de entrada/salida de lumberjack y los archivos de filtro variables. Puedes especificar tus propios archivos de configuración colocando archivos de entrada/salida en tu propio directorio templates, y filtros en tu propio directorio files. Luego crea tu propia lista en el directorio vars/main.yml, y vars_files en tu rol de envoltura, e incluye este rol para desplegar Logstash con tu propia configuración. Consulta Example Playbook a continuación.

logstash_elasticsearch_hosts:
  - http://localhost:9200

Los hosts a los que Logstash debe enviar logs a Elasticsearch.

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

Configuración SSL para que Logstash acepte solicitudes de logstash-forwarder ejecutándose en hosts remotos. Nota de seguridad: En servidores de producción o que estén expuestos públicamente (por ejemplo, cualquier servidor que no sea de prueba), deberías crear tu propio par de certificado/clave y usar eso en lugar del predeterminado incluido. Puedes utilizar OpenSSL para crear los archivos de clave y certificado, con un comando como el siguiente: openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt.

Ten en cuenta que filebeat y logstash pueden no funcionar correctamente con certificados autofirmados a menos que también tengas la cadena completa de confianza (incluyendo la Autoridad de Certificación para tu certificado autofirmado) añadida en tu servidor. Consulta: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

Para logstash_ssl_certificate_file y logstash_ssl_key_file, puedes proporcionar una ruta relativa al directorio del rol, o una ruta absoluta al archivo.

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

Si se debe agregar la configuración para el archivo syslog local (definido como logstash_local_syslog_path) a Logstash. Establece esto en false si estás monitoreando el syslog local de otra manera, o si no te importa el archivo syslog local. Otros logs locales pueden ser añadidos por tus propios archivos de configuración colocados dentro de /etc/logstash/conf.d.

logstash_enabled_on_boot: yes

Establece esto en no si no deseas que Logstash se ejecute al inicio del sistema.

logstash_install_plugins:
  - logstash-input-beats

Una lista de plugins de Logstash que deberían ser instalados.

logstash_install_dir: /usr/share/logstash

Ruta al directorio de instalación. Anteriormente se usaba "/opt/logstash", ahora el predeterminado es "/usr/share/logstash".

Otras Notas

Si ves un alto uso de CPU en uno de los procesos de logstash, y estás usando Logstash junto con otra aplicación que se ejecuta en el puerto 80 en una plataforma como Ubuntu con upstart, es posible que el proceso logstash-web se quede atrapado en un bucle intentando iniciarse en el puerto 80, fallando, y tratando de iniciarse nuevamente, debido a la presencia de la bandera restart en /etc/init/logstash-web.conf.

Para evitar este problema, cambia esa línea para agregar un limit a la declaración de respawn, o establece el servicio logstash-web como enabled=no en tu playbook, p. ej.:

- name: Asegurar que el proceso logstash-web esté detenido y deshabilitado.
  service: name=logstash-web state=stopped enabled=no

Ejemplo de Playbook

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

  roles:
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

Licencia

MIT / BSD

Información del Autor

Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.

Acerca del proyecto

Logstash for Linux.

Instalar
ansible-galaxy install solutionDrive.logstash
Licencia
mit
Descargas
497
Propietario