You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/roles/prometheus/vars/main.yml

148 lines
5.4 KiB
YAML

---
service_port_grafana: 3000
service_port_prometheus: 9090
service_port_alertmanager: 9093
prometheus_id: "{{ inventory_hostname }}-prometheus"
alertmanager_id: "{{ inventory_hostname }}-alertmanager"
grafana_id: "{{ inventory_hostname }}-grafana"
prom2teams_id: "{{ inventory_hostname }}-prom2teams"
prometheus_docker: {
networks: [
{
name: back-tier,
external: true,
},
{
name: front-tier,
external: true,
},
],
volumes: [
{
name: "{{ alertmanager_id }}-data"
},
{
name: "{{ grafana_id }}-data"
},
],
services: [
{
name: "{{ prometheus_id }}",
image_name: "{{ prometheus_image_name }}",
image_version: "{{ prom_prometheus_version }}",
labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ prometheus_id }}.service={{ prometheus_id }}"',
'"traefik.http.routers.{{ prometheus_id }}.rule=Host(`{{ inventory_hostname }}-prometheus.{{ domain }}`)"',
'"traefik.http.routers.{{ prometheus_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ prometheus_id }}.tls=true"',
'"traefik.http.routers.{{ prometheus_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ prometheus_id }}.loadbalancer.server.port={{ service_port_prometheus }}"',
'"traefik.http.routers.{{ prometheus_id }}.middlewares={{ prometheus_id }}-basicauth"',
'"traefik.http.middlewares.{{ prometheus_id }}-basicauth.basicauth.users={{ prometheus_admin_username }}:{{ prometheus_admin_password_htpasswd }}"',
],
command: [
'"--config.file=/etc/prometheus/prometheus.yml"',
'"--storage.tsdb.path=/prometheus"',
'"--web.console.libraries=/usr/share/prometheus/console_libraries"',
'"--web.console.templates=/usr/share/prometheus/consoles"',
'"--web.external-url={{ http_s}}://{{ inventory_hostname }}-prometheus.{{ domain }}"',
'"--web.enable-lifecycle"',
'"--storage.tsdb.retention.time={{ prometheus_tsdb_rentention_time | default("4w")}}"',
],
volumes: [
'"./config/prometheus/:/etc/prometheus/:ro"',
'"{{ prometheus_datadir + "/" +"_data" | default(prometheus_id + "-data") }}:/prometheus"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
extra_hosts: "{{ prometheus_extra_hosts | default([]) }}",
},
{
name: "{{ alertmanager_id }}",
image_name: "{{ alertmanager_image_name }}",
image_version: "{{ prom_alertmanager_version }}",
labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ alertmanager_id }}.service={{ alertmanager_id }}"',
'"traefik.http.routers.{{ alertmanager_id }}.rule=Host(`{{ inventory_hostname }}-alertmanager.{{ domain }}`)"',
'"traefik.http.routers.{{ alertmanager_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ alertmanager_id }}.tls=true"',
'"traefik.http.routers.{{ alertmanager_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ alertmanager_id }}.loadbalancer.server.port={{ service_port_alertmanager }}"',
'"traefik.http.routers.{{ alertmanager_id }}.middlewares={{ alertmanager_id }}-basicauth"',
'"traefik.http.middlewares.{{ alertmanager_id }}-basicauth.basicauth.users={{ alertmanager_admin_username }}:{{ alertmanager_admin_password_htpasswd }}"',
],
command: [
'"--config.file=/etc/alertmanager/config.yml"',
'"--storage.path=/alertmanager"',
'"--web.external-url={{ http_s}}://{{ inventory_hostname }}-alertmanager.{{ domain }}"',
],
environment: [
'LS_JAVA_OPTS: "-Xmx1G -Xms1G"',
],
volumes: [
'"./config/alertmanager/:/etc/alertmanager/:ro"',
'"{{ alertmanager_id }}-data:/alertmanager"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
},
{
name: "{{ grafana_id }}",
image_name: "{{ grafana_image_name }}",
image_version: "{{ prom_grafana_version }}",
user: '"472"',
labels: [
'"traefik.enable=true"',
'"traefik.http.routers.{{ grafana_id }}.service={{ grafana_id }}"',
'"traefik.http.routers.{{ grafana_id }}.rule=Host(`{{ inventory_hostname }}-grafana.{{ domain }}`)"',
'"traefik.http.routers.{{ grafana_id }}.entrypoints=websecure"',
'"traefik.http.routers.{{ grafana_id }}.tls=true"',
'"traefik.http.routers.{{ grafana_id }}.tls.certresolver=letsencrypt"',
'"traefik.http.services.{{ grafana_id }}.loadbalancer.server.port={{ service_port_grafana }}"',
],
volumes: [
'"./config/grafana/provisioning/:/etc/grafana/provisioning/"',
'"./config/grafana/conf/defaults.ini:/usr/share/grafana/conf/defaults.ini"',
'"{{ grafana_id }}-data:/var/lib/grafana"',
],
networks: [
'"back-tier"',
'"front-tier"',
],
env_file: [
'"./config/grafana/config.monitoring"',
],
},
{
name: "{{ prom2teams_id }}",
image_name: "{{ prom2teams_image_name }}",
image_version: "{{ prom_prom2teams_version }}",
environment: [
"PROM2TEAMS_PROMETHEUS_METRICS: \"true\"",
"DEBUG_METRICS: \"true\"",
],
ports: [
{
"external": "8089",
"internal": "8089",
},
],
volumes: [
'"./config/prom2teams/config.ini:/opt/prom2teams/config.ini"',
],
networks: [
'"back-tier"',
],
},
],
}