# 2023-09-26 # Stack: monitoring_exporters --- monitoring_exporters: name: "monitoring-exporters" stack: "monitoring" tasks: - monitoring-exporters.yml ipv6: true secrets: true directories: - "{{ stack_folder_conf }}/exporters/mariadb/conf" - "{{ stack_folder_conf }}/exporters/mysql/conf" - "{{ stack_folder_conf }}/exporters/proxmox/conf" - "{{ stack_folder_conf }}/exporters/snmp/conf" - "{{ stack_folder_datas }}/exporters/freebox/datas" - "{{ stack_folder_secrets }}/exporters/adguard/secrets" - "{{ stack_folder_secrets }}/exporters/postgres/secrets" services: - name: "exporter-cadvisor" override: { name: "monitoring-vm", service: "exporter-cadvisor" } ressources: cpu: "{{ vm_os_cpu_half }}" memory: "{{ 4.0 if 4.0 <= vm_os_memory_max|float else vm_os_memory_max|float }}G" - name: "exporter-node" override: { name: "monitoring-vm", service: "exporter-node" } ressources: cpu: "{{ vm_os_cpu_half }}" memory: "{{ 4.0 if 4.0 <= vm_os_memory_max|float else vm_os_memory_max|float }}G" - name: "exporter-proxmox" image: "prompve/prometheus-pve-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_PROXMOX}", container: "9221" } healthcheck: 'wget --no-verbose --tries=1 --spider http://0.0.0.0:9221/ || exit 1' environment: - { name: "PVE_VERIFY_SSL", value: "false" } - { name: "PYTHONWARNINGS", value: "ignore" } ressources: memory: "{{ 1.0 if 1.0 <= vm_os_memory_max|float else vm_os_memory_max|float }}G" volumes: - { local: './{{ stack_folder_conf }}/exporters/proxmox/conf/proxmox.yml', container: '/etc/pve.yml', mode: 'ro' } - name: "exporter-snmp" extends: "host" image: "prom/snmp-exporter:latest" restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_SNMP}", container: "9116" } command: '--config.file=/etc/snmp_exporter/snmp.yml' healthcheck: 'wget --no-verbose --tries=1 --spider http://0.0.0.0:9116/ || exit 1' volumes: - { local: './{{ stack_folder_conf }}/exporters/snmp/nas.yml', container: '/etc/snmp_exporter/snmp.yml', mode: 'ro' } - name: "exporter-adguard" image: "registry.zogg.fr/zogg/adguard-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_ADGUARD}", container: "9617" } healthcheck: '/healthcheck || exit 1' environment: - { name: "ADGUARD_PROTOCOL", value: "http" } - { name: "ADGUARD_HOSTNAME", value: "${VM_HOST}" } - { name: "ADGUARD_PORT", value: "${VM_PORT_ADGUARDHOME}" } - { name: "ADGUARD_PASSWORD", value: "/run/secrets/exporter-adguard-password" } - { name: "PASSWORD_FROM_FILE", value: "true" } - { name: "INTERVAL", value: "10s" } - { name: "LOG_LIMIT", value: "10000" } - { name: "SERVER_PORT", value: "9617" } volumes: - { local: './{{ stack_folder_conf }}/exporters/adguard/adguard.yml', container: '/etc/snmp_exporter/snmp.yml', mode: 'ro' } secrets: - { name: "exporter-adguard-password", file: "./{{ stack_folder_secrets }}/exporters/adguard/secrets/password.secrets" } - name: "exporter-nut" image: "hon95/prometheus-nut-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_NUT}", container: "9995" } healthcheck: 'wget --no-verbose --tries=1 --spider http://0.0.0.0:9995/ || exit 1' environment: - { name: "HTTP_PATH", value: "/metrics" } - name: "exporter-freebox" image: "registry.zogg.fr/zogg/freebox-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_FREEBOX}", container: "10001" } commands: "-fiber" healthcheck: '/healthcheck || exit 1' environment: - { name: "HOME", value: "token" } volumes: - { local: './{{ stack_folder_conf }}/exporters/freebox/datas', container: '/token', mode: 'rw' } - name: "exporter-redis" image: "bitnami/redis-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_REDIS}", container: "9121" } healthcheck: 'redis_exporter --version || exit 1' environment: - { name: "REDIS_ADDR", value: "${MASTER_HOST}:${VM_PORT_REDIS}" } tmpfs: 512M - name: "exporter-postgres" image: "bitnami/postgres-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_POSTGRES}", container: "9187" } healthcheck: 'postgres_exporter --version || exit 1' environment: - { name: "DATA_SOURCE_URI", value: "${MASTER_HOST}:${VM_PORT_POSTGRESQL}?sslmode=disable" } - { name: "DATA_SOURCE_USER_FILE", value: "/run/secrets/exporter-postgres-datasource-user" } - { name: "DATA_SOURCE_PASS_FILE", value: "/run/secrets/exporter-postgres-datasource-password" } - { name: "PG_EXPORTER_AUTO_DISCOVER_DATABASES", value: "true" } tmpfs: 512M secrets: - { name: "exporter-postgres-datasource-user", file: "./{{ stack_folder_secrets }}/exporters/postgres/secrets/user.secrets" } - { name: "exporter-postgres-datasource-password", file: "./{{ stack_folder_secrets }}/exporters/postgres/secrets/password.secrets" } - name: "exporter-mysql" image: "bitnami/mysqld-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_MYSQL}", container: "9104" } commands: - "--config.my-cnf=/mysql.cnf" - "--tls.insecure-skip-verify" - "--collect.auto_increment.columns" - "--collect.binlog_size" - "--collect.engine_innodb_status" #- "--collect.engine_tokudb_status" - "--collect.info_schema.innodb_metrics" - "--collect.info_schema.innodb_tablespaces" - "--collect.info_schema.innodb_cmp" - "--collect.info_schema.innodb_cmpmem" - "--collect.info_schema.processlist" - "--collect.info_schema.replica_host" - "--collect.info_schema.tables" - "--collect.info_schema.tables.databases='*'" - "--collect.mysql.user" - "--collect.perf_schema.eventsstatements" - "--collect.perf_schema.eventsstatementssum" - "--collect.perf_schema.eventswaits" - "--collect.perf_schema.file_events" - "--collect.perf_schema.file_instances" - "--collect.perf_schema.indexiowaits" - "--collect.perf_schema.memory_events" - "--collect.perf_schema.tableiowaits" - "--collect.perf_schema.tablelocks" - "--collect.perf_schema.replication_group_members" - "--collect.perf_schema.replication_group_member_stats" - "--collect.perf_schema.replication_applier_status_by_worker" healthcheck: 'mysqld_exporter --version || exit 1' environment: - { name: "MYSQLD_EXPORTER_PASSWORD_FILE", value: "/run/secrets/exporter-mysql-password" } tmpfs: 512M volumes: - { local: './{{ stack_folder_conf }}/exporters/mysql/mysql.cnf', container: '/mysql.cnf', mode: 'ro' } secrets: - { name: "exporter-mysql-password", file: "./{{ stack_folder_secrets }}/exporters/mysql/secrets/password.secrets" } - name: "exporter-mariadb" image: "bitnami/mysqld-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_MARIADB}", container: "9104" } commands: - "--config.my-cnf=/mariadb.cnf" #- "--collect.auto_increment.columns" - "--collect.binlog_size" - "--collect.engine_innodb_status" #- "--collect.engine_tokudb_status" ##- "--collect.info_schema.innodb_metrics" #- "--collect.info_schema.innodb_tablespaces" - "--collect.info_schema.innodb_cmp" - "--collect.info_schema.innodb_cmpmem" #- "--collect.info_schema.processlist" #- "--collect.info_schema.replica_host" - "--collect.info_schema.tables" - "--collect.info_schema.tables.databases='*'" - "--collect.mysql.user" - "--collect.perf_schema.eventsstatements" #- "--collect.perf_schema.eventsstatementssum" - "--collect.perf_schema.eventswaits" - "--collect.perf_schema.file_events" - "--collect.perf_schema.file_instances" - "--collect.perf_schema.indexiowaits" - "--collect.perf_schema.memory_events" - "--collect.perf_schema.tableiowaits" - "--collect.perf_schema.tablelocks" #- "--collect.perf_schema.replication_group_members" #- "--collect.perf_schema.replication_group_member_stats" #- "--collect.perf_schema.replication_applier_status_by_worker" healthcheck: 'mysqld_exporter --version || exit 1' environment: - { name: "MYSQLD_EXPORTER_PASSWORD_FILE", value: "/run/secrets/exporter-mariadb-password" } tmpfs: 512M volumes: - { local: './{{ stack_folder_conf }}/exporters/mariadb/mariadb.cnf', container: '/mariadb.cnf', mode: 'ro' } secrets: - { name: "exporter-mariadb-password", file: "./{{ stack_folder_secrets }}/exporters/mariadb/secrets/password.secrets" } - name: "exporter-mailcow" image: "thej6s/mailcow-exporter:latest" uid: "0" gid: "0" privileged: true restart: "always" ports: - { exposed: "${VM_PORT_EXPORTER_MAILCOW}", container: "9099" } healthcheck: 'mailcow-exporter -h || exit 1'