2023-02-07 10:14:31 +01:00
2023-01-27 20:34:33 +01:00
2022-11-11 21:09:19 +01:00
2023-01-27 20:34:33 +01:00
2022-11-16 11:21:37 +01:00

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

Please note that Docker and Haproxy their own embedded exporters.

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

License

GPLv3

Author Information

Written by Ludovic Cartier ludovic.cartier@brainsys.io

Description
No description provided
Readme
Languages
Jinja 100%