bimdata.graylog
Ansible rol graylog
Este rol instala y configura Graylog.
Este rol asume que tienes otros roles para Elasticsearch, MongoDB, Nginx, etc.
Requisitos
- Necesitas un clúster de Elasticsearch en funcionamiento y un clúster de MongoDB.
- Los servidores gestionados deben poder comunicarse con https://packages.graylog2.org/.
- Este rol solo se ha probado en Debian 10.x (Buster).
Variables del rol
Este rol intenta mantener la misma configuración predeterminada que si instalaras Graylog manualmente. Todos los valores predeterminados están definidos en ./defaults/main.yml
, es posible que desees revisarlo.
Intentamos mantener el mismo nombre para la variable de Ansible que el nombre en el archivo de configuración de Graylog, pero con el prefijo graylog_
. Puedes encontrar más información sobre cada parámetro en la documentación de Graylog.
Necesitas definir al menos dos variables:
graylog_password_secret
: deberías generar su contenido con el comando:pwgen -N 1 -s 96
otr -cd '[:alnum:]' < /dev/urandom | fold -w96 | head -n1
graylog_root_password_sha2
: deberías generar su contenido con el comando:echo -n your_password | shasum -a 256
(¡Tienes que reemplazar 'your_password' por una contraseña real!)
O puedes usar la funciónhash()
de Ansible:graylog_root_password_sha2: "{{ vault_graylog_root_password | hash('sha256') }}"
.
Este rol también soporta la instalación de plugins. Los plugins necesitan ser archivos .jar
, y los hosts gestionados deben poder descargarlos. La suma de verificación es opcional y funciona como el parámetro de suma de verificación en el módulo get_url de Ansible.
graylog_plugins:
- url: https://github.com/graylog-labs/graylog-plugin-metrics-reporter/releases/download/3.0.0/metrics-reporter-prometheus-3.0.0.jar
checksum: sha256:383eac2135baf248b5a0828a9e305130a2ab863b07afeef30cba00be05fc7cf9
Si algunos de tus plugins necesitan configuración en el archivo principal de configuración de Graylog, hay una variable especial para eso graylog_custom_config
. Este es un diccionario, donde las claves se usan como nombres de opciones y los valores como valores. Por ejemplo:
graylog_custom_config:
metrics_prometheus_enabled: true
metrics_prometheus_report_interval: 1m
metrics_prometheus_address: 127.0.0.1:9001
metrics_prometheus_job_name: graylog
agregará al final de /etc/graylog/server/server.conf
:
# Configuración personalizada, si algunos son necesarios por los plugins.
metrics_prometheus_enabled = True
metrics_prometheus_report_interval = 1m
metrics_prometheus_address = 127.0.0.1:9001
metrics_prometheus_job_name = graylog
Dependencias
Una lista de otros roles alojados en Galaxy debería ir aquí, además de cualquier detalle en relación a los parámetros que puedan necesitarse para otros roles, o variables que se utilizan de otros roles.
Ejemplo de Playbook
- hosts: logs-servers
gather_facts: True
become: true
vars:
graylog_password_secret: "OMFPRQwk7Pg7i9Apun5xbuK4ICl0cfNUbZ5QblvmHKnKvnpzbjxtgHIoaSiEmi9XVlbqDhI6d8UqErW2wRiS0uapaHRgW4e"
graylog_root_password_sha2: "4da3376323046a3bb6759f0a3f4ae7100a0567950c53ee42d2e19201baaa6dfc"
# También puedes pedir a Ansible que lo hashée y usar un vault para almacenar la contraseña.
# graylog_root_password_sha2: "{{ vault_graylog_root_password | hash('sha256') }}"
roles:
- role: bimdata.graylog
Licencia
MIT
Información del autor
ansible-galaxy install bimdata.graylog