kostiantyn-nemchenko.mongodb_exporter

Rol de Ansible para el Exportador de MongoDB de Percona

Estado de la Construcción Ansible Galaxy

Un rol de Ansible que instala y configura el Exportador de MongoDB de Prometheus de Percona.

Requisitos

  1. La generación automática de certificados TLS/SSL está fuera del alcance de este rol. Asegúrate de que has activado la conexión TLS con la instancia de MongoDB y de haber especificado los valores correctos para CA, certificados de cliente y clave de cliente. Ejemplo:

    mongodb_exporter_mongodb_tls_cert:
      dest: /etc/ssl/certs/mongodb_exporter.crt
      owner: root
      group: root
      mode: "0644"
      content: |
        -----BEGIN CERTIFICATE-----
        contenido
        del certificado
        público
        -----END CERTIFICATE-----
    
  2. Se necesita que un usuario de base de datos esté presente en todas las instancias de MongoDB monitoreadas con los roles integrados apropiados asignados. Por favor, consulta ejemplo.

  3. El rol requiere privilegios de root, así que establece become: true de cualquier manera conveniente para ti. Por favor, consulta ejemplo de playbook.

Variables del Rol

# Versión del exportador a instalar
mongodb_exporter_version: 0.7.0
# URL del repositorio del exportador
mongodb_exporter_base_url: https://github.com/percona/mongodb_exporter
# Arquitectura del binario del exportador
mongodb_exporter_arch: amd64
# URL de descarga del exportador
mongodb_exporter_release_url: "{{ mongodb_exporter_base_url }}/releases/download/v{{ mongodb_exporter_version }}/mongodb_exporter-{{ mongodb_exporter_version }}.{{ ansible_system |lower }}-{{ mongodb_exporter_arch }}.tar.gz"

# Usuario del sistema para ejecutar el exportador
mongodb_exporter_system_user: mongodb_exporter
# Grupos del sistema para incluir al usuario
mongodb_exporter_system_groups: ['mongodb_exporter', 'ssl-cert']
# Paquetes adicionales para configurar como dependencias del rol/exportador
mongodb_exporter_system_packages:
  - { name: ca-certificates, state: present }
  - { name: tar,             state: present }

# Lista de variables de entorno a configurar antes de iniciar el exportador
mongodb_exporter_env_vars: []

# Ruta al archivo que contiene variables de entorno predefinidas
mongodb_exporter_env_file:
  dest: /etc/systemd/system/mongodb_exporter.service.d/environment.conf
  owner: root
  group: root
  mode: "0640"
# Ruta al directorio que contiene el binario del exportador
mongodb_exporter_bin_dir:
  dest: /usr/local/bin
  owner: root
  group: root
  mode: "0755"

# Dirección para escuchar la interfaz web y telemetría
mongodb_exporter_web_listen_address: :9216
# Ruta bajo la cual exponer métricas
mongodb_exporter_web_telemetry_path: /metrics

# Habilitar la colección de métricas de la base de datos
mongodb_exporter_collect_database: false
# Habilitar la colección de métricas de colecciones
mongodb_exporter_collect_collection: false
# Habilitar la colección de métricas de uso de top
mongodb_exporter_collect_topmetrics: false
# Habilitar la colección de estadísticas de uso por índice
mongodb_exporter_collect_indexusage: false

# URI de MongoDB en formato [mongodb://][user:pass@]host1[:port1][,host2[:port2],...][/database][?options]
mongodb_exporter_mongodb_uri: mongodb://127.0.0.1:27017

# Habilitar conexión TLS con el servidor Mongo
mongodb_exporter_mongodb_tls: false
# Ruta al archivo PEM que contiene las CAs de confianza para las conexiones de servidor
mongodb_exporter_mongodb_tls_ca:
  dest: /etc/ssl/certs/mongodb_exporter_CA.pem
  owner: root
  group: root
  mode: "0644"
  content: ""
# Ruta al archivo PEM que contiene el certificado (y opcionalmente también la clave privada desencriptada en formato PEM)
mongodb_exporter_mongodb_tls_cert:
  dest: /etc/ssl/certs/mongodb_exporter.crt
  owner: root
  group: root
  mode: "0644"
  content: ""
# Ruta al archivo PEM que contiene la clave privada desencriptada (si no está contenida en el archivo mongodb.tls-cert)
mongodb_exporter_mongodb_tls_private_key:
  dest: /etc/ssl/private/mongodb_exporter.key
  owner: root
  group: ssl-cert
  mode: "0640"
  content: ""
# Deshabilitar la validación del nombre de host para la conexión del servidor
mongodb_exporter_mongodb_tls_disable_hostname_validation: false
# Máximo número de conexiones agrupadas a la base de datos
mongodb_exporter_mongodb_max_connections: 1
# Tiempo de espera para un socket que no responde a la base de datos antes de que se cierre forzosamente
mongodb_exporter_mongodb_socket_timeout: 3s
# Tiempo que una operación con esta sesión esperará antes de devolver un error en caso de que no se pueda establecer una conexión con un servidor utilizable
mongodb_exporter_mongodb_sync_timeout: 1m
# Especifica la base de datos en la que se crea el usuario
mongodb_exporter_authentification_database: ""

# Actualmente ignorado
mongodb_exporter_groups_enabled: ""

Dependencias

Ninguna

Ejemplo de Playbook

- hosts: mongodb
  become: yes
  roles:
    - kostiantyn-nemchenko.mongodb_exporter

Licencia

MIT

Información del Autor

Kostiantyn Nemchenko kostiantyn.nemchenko@gmail.com

Acerca del proyecto

An Ansible role which installs and configures Percona MongoDB Exporter

Instalar
ansible-galaxy install kostiantyn-nemchenko.mongodb_exporter
Licencia
mit
Descargas
17.8k