7.2 KiB
7.2 KiB
prometheus
The present role :
- installs prometheus server inside a Docker container
- installs various prometheus exporter
- node
- blackbox
- apache
- varnish
- php-fpm
- opcache
- redis
- memcached
- mysql
- postgres
- mongodb
- opensearch (via plugin for opensearch https://github.com/aiven/prometheus-exporter-plugin-for-opensearch)
Please note that Docker and Haproxy their own embedded exporters.
- https://docs.docker.com/config/daemon/prometheus/
- https://www.haproxy.com/fr/blog/haproxy-exposes-a-prometheus-metrics-endpoint/
The role has been successfully tested on :
- Debian 9
- Debian 10
- Debian 11
Forced upgrade of installed exporters can be done by setting the extra parameters "exporter_upgrade" to "yes".
ansible-playbook playbook/myhost.yml -t prometheus -e "exporter_upgrade=yes"
Role variables
Variable | Type | Choices | Default | Comment |
---|---|---|---|---|
prometheus_server_enable | string | true / false | ||
prometheus_server_version | string | latest | ||
prometheus_server_monitor | string | |||
prometheus_server_global_scrape_interval | string | 15 | ||
prometheus_server_global_evaluation_interval | string | 15 | ||
prometheus_server_job_name | string | prometheus | ||
prometheus_server_scrape_interval | string | 5 | ||
prometheus_server_scrape_timeout | string | 5 | ||
prometheus_exporter_packages | list | node / mysqld / postgresql / mongodb / phpfpm / apache / haproxy / varnish / redis | ||
prometheus_node_exporter_targets | list | |||
prometheus_mysqld_exporter_targets | list | |||
prometheus_mongodb_exporter_targets | list | |||
prometheus_postgres_exporter_targets | list | |||
prometheus_redis_exporter_targets | list | |||
prometheus_proxysql_exporter_targets | list | Enable exporter | ||
prometheus_mysqld_exporter_user | string | |||
prometheus_mysqld_exporter_password | string | |||
prometheus_mongodb_exporter_host | string | localhost | ||
prometheus_mongodb_exporter_port | string | 27017 | ||
prometheus_mongodb_exporter_user | string | |||
prometheus_mongodb_exporter_pass | string | |||
prometheus_opcache_exporter_fcgi_uri | string | unix:///var/run/www.sock | ||
prometheus_server_version | string | latest | ||
prometheus_redis_exporter_addr | string | redis://localhost:6379 | ||
prometheus_redis_exporter_user | string | |||
prometheus_redis_exporter_password | string |
Dependencies
- jq
- Docker must installed and running for prometheus server
Example Playbook
- hosts: prometheus
ignore_errors: "{{ ansible_check_mode }}" # ignore errors only in check mode !
roles:
- { role: brainsys.prometheus, tags: ['prometheus'] }
Example variables
---
prometheus_server_enable: 'true'
prometheus_server_monitor: 'example'
prometheus_exporter_packages:
- node
- mysqld
prometheus_mysqld_exporter_user: 'foo'
prometheus_mysqld_exporter_password: 'bar'
prometheus_node_exporter_targets:
- server01
- server02
prometheus_mysqld_exporter_targets:
- server01
TODO
- documentation
- review / enhance documentation
- memcached
- add options to exporter launch
- --memcached.address="localhost:11211"
- --memcached.timeout=1s
- --memcached.pid-file=""
- handle multi instances for memcached exporter
- add options to exporter launch
License
GPLv3
Author Information
Written by Ludovic Cartier ludovic.cartier@brainsys.io