diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index 2a7d0b2..142de6e 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -11,3 +11,6 @@ alertmanager_image_version: "v0.22.2" blackbox_exporter_image_name: "prom/blackbox-exporter" blackbox_exporter_image_version: "v0.19.0" + +prom2teams_image_name: "idealista/prom2teams" +prom2teams_image_version: "3.2.1" diff --git a/roles/prometheus/vars/main.yml b/roles/prometheus/vars/main.yml index 3262dbb..0337795 100644 --- a/roles/prometheus/vars/main.yml +++ b/roles/prometheus/vars/main.yml @@ -7,6 +7,7 @@ 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: [ @@ -119,6 +120,17 @@ prometheus_docker: { env_file: [ '"./config/grafana/config.monitoring"', ], - } + }, + { + name: "{{ prom2teams_id }}", + image_name: "{{ prom2teams_image_name }}", + image_version: "{{ prom2teams_image_version }}", + volumes: [ + '"./config/prom2teams/config.ini:/opt/prom2teams/config.ini"', + ], + networks: [ + '"back-tier"', + ], + }, ], } diff --git a/templates/prometheus/config/alertmanager/config.yml.j2 b/templates/prometheus/config/alertmanager/config.yml.j2 index 67adf28..3333725 100644 --- a/templates/prometheus/config/alertmanager/config.yml.j2 +++ b/templates/prometheus/config/alertmanager/config.yml.j2 @@ -1,20 +1,16 @@ route: - receiver: smardigo #default + group_by: ['alertname'] + group_interval: 30s + repeat_interval: 30s + group_wait: 30s + receiver: 'netgo_msteams_receiver' routes: - - match: - project: 'smardigo' - env: '{{ stage }}' - receiver: 'smardigo' + - receiver: 'netgo_msteams_receiver' + match: + stage: '{{ stage }}' receivers: - - name: 'smardigo' - slack_configs: - - api_url: '{{ mattermost_hook_smardigo }}' - username: 'prometheus' - channel: '{{ alertmanager_channel_smardigo }}' - title: '{{ '{{' }} template "custom_title" . {{ '}}' }}' - text: '{{ '{{' }} template "custom_slack_message" . {{ '}}' }}' - send_resolved: true - -templates: - - /etc/alertmanager/templates/notifications.tmpl +- name: 'netgo_msteams_receiver' + webhook_configs: + - send_resolved: true + url: 'http://{{ prom2teams_id }}:8089/v2/NetgoTeamsConnector' diff --git a/templates/prometheus/config/prom2teams/config.ini.j2 b/templates/prometheus/config/prom2teams/config.ini.j2 new file mode 100644 index 0000000..82c1e86 --- /dev/null +++ b/templates/prometheus/config/prom2teams/config.ini.j2 @@ -0,0 +1,18 @@ +[Microsoft Teams] +# At least one connector is required here +NetgoTeamsConnector: {{ netgo_msteams_hook_smardigo }} + +[HTTP Server] +Host: 0.0.0.0 +#Port: 8089; + +[Log] +; Level: # default: DEBUG +; Path: # default: /var/log/prom2teams/prom2teams.log; [Template] +; Path: # default: app resources default template (./prom2teams/resources/templates/teams.j2)# [Group Alerts] +# Field: alertname; [Labels] +; Excluded: ; [Annotations] +; Excluded: ; [Teams Client] +; RetryEnable: # defaults to false +; RetryWaitTime: # default: 60 secs +; MaxPayload: # default: 24KB \ No newline at end of file