kostiantyn-nemchenko.mongodb_exporter
Ansible Role for Percona MongoDB Exporter
This Ansible role helps you install and set up the Prometheus MongoDB Exporter from Percona.
Requirements
This role does not generate TLS/SSL certificates automatically. You need to enable TLS connection with your MongoDB database and provide the correct values for CA, client certificates, and client key. Here’s an example configuration:
mongodb_exporter_mongodb_tls_cert: dest: /etc/ssl/certs/mongodb_exporter.crt owner: root group: root mode: "0644" content: | -----BEGIN CERTIFICATE----- content of the public certificate -----END CERTIFICATE-----
You need a database user with the right built-in roles on all MongoDB instances. Please refer to this example.
This role requires root access, so ensure you set
become: true
in any manner you prefer. Also, check this example playbook.
Role Variables
# Version of the exporter to install
mongodb_exporter_version: 0.7.0
# URL for the exporter repository
mongodb_exporter_base_url: https://github.com/percona/mongodb_exporter
# Architecture of the exporter binary
mongodb_exporter_arch: amd64
# URL to download the exporter
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"
# System user to run the exporter
mongodb_exporter_system_user: mongodb_exporter
# System groups for the user
mongodb_exporter_system_groups: ['mongodb_exporter', 'ssl-cert']
# Additional packages needed for the role/exporter
mongodb_exporter_system_packages:
- { name: ca-certificates, state: present }
- { name: tar, state: present }
# List of environment variables to set before starting the exporter
mongodb_exporter_env_vars: []
# File path for environment variables
mongodb_exporter_env_file:
dest: /etc/systemd/system/mongodb_exporter.service.d/environment.conf
owner: root
group: root
mode: "0640"
# Directory for the exporter binary
mongodb_exporter_bin_dir:
dest: /usr/local/bin
owner: root
group: root
mode: "0755"
# Address for the web interface
mongodb_exporter_web_listen_address: :9216
# Path for metrics exposure
mongodb_exporter_web_telemetry_path: /metrics
# Options to enable metric collection
mongodb_exporter_collect_database: false
mongodb_exporter_collect_collection: false
mongodb_exporter_collect_topmetrics: false
mongodb_exporter_collect_indexusage: false
# MongoDB connection URI
mongodb_exporter_mongodb_uri: mongodb://127.0.0.1:27017
# TLS connection option
mongodb_exporter_mongodb_tls: false
# Path for trusted CA PEM file
mongodb_exporter_mongodb_tls_ca:
dest: /etc/ssl/certs/mongodb_exporter_CA.pem
owner: root
group: root
mode: "0644"
content: ""
# Path for the certificate PEM file
mongodb_exporter_mongodb_tls_cert:
dest: /etc/ssl/certs/mongodb_exporter.crt
owner: root
group: root
mode: "0644"
content: ""
# Path for the private key PEM file
mongodb_exporter_mongodb_tls_private_key:
dest: /etc/ssl/private/mongodb_exporter.key
owner: root
group: ssl-cert
mode: "0640"
content: ""
# Disable hostname validation option
mongodb_exporter_mongodb_tls_disable_hostname_validation: false
# Max pooled connections to the database
mongodb_exporter_mongodb_max_connections: 1
# Socket timeout duration
mongodb_exporter_mongodb_socket_timeout: 3s
# Sync timeout duration
mongodb_exporter_mongodb_sync_timeout: 1m
# Authentication database for user
mongodb_exporter_authentification_database: ""
# Currently ignored option
mongodb_exporter_groups_enabled: ""
Dependencies
None
Example Playbook
- hosts: mongodb
become: yes
roles:
- kostiantyn-nemchenko.mongodb_exporter
License
MIT
Author Information
Kostiantyn Nemchenko kostiantyn.nemchenko@gmail.com
Informazioni sul progetto
An Ansible role which installs and configures Percona MongoDB Exporter
Installa
ansible-galaxy install kostiantyn-nemchenko.mongodb_exporter
Licenza
mit
Download
17.8k
Proprietario