add alertmanager

This commit is contained in:
hogweed1 2025-04-15 01:51:45 +10:00
parent 8050a7746b
commit 49b58ab6cd
3 changed files with 131 additions and 5 deletions

View File

@ -28,8 +28,8 @@ lxc: # keys must be unique, i.e. only one 'hosts' per group
#prometheus.guaranteedstruggle.host:
#pipisa.guaranteedstruggle.host:
pg-tf.guaranteedstruggle.host:
alertmanager.guaranteedstruggle.host:
#pg-tf.guaranteedstruggle.host:
# pg.just-for-me.internal:
# grafana.just-for-me.internal:
# price-loader.just-for-me.internal:

View File

@ -67,9 +67,11 @@ lxc:
vault.guaranteedstruggle.host:
prometheus.guaranteedstruggle.host:
alertmanager.guaranteedstruggle.host:
pg-tf.guaranteedstruggle.host:
pg.just-for-me.internal:
grafana.just-for-me.internal:
price-loader.just-for-me.internal:
№№№№
# # pg.just-for-me.internal:
# # grafana.just-for-me.internal:
# # price-loader.just-for-me.internal:

View File

@ -0,0 +1,124 @@
---
- name: prom
hosts:
- alertmanager.guaranteedstruggle.host
vars:
alertmanager_version: '0.28.1'
gather_facts: yes
become: yes
tasks:
- name: Ensure group "prometheus" exists
ansible.builtin.group:
name: prometheus
state: present
- name: Add user "prometheus"
ansible.builtin.user:
name: prometheus
groups: prometheus
shell: /sbin/nologin
create_home: no
append: yes
comment: "prometheus nologin User"
state: present
- name: Creates directory
ansible.builtin.file:
path: /etc/alertmanager
state: directory
group: prometheus
owner: prometheus
- name: Creates directory
ansible.builtin.file:
path: /usr/share/alertmanager
state: directory
group: prometheus
owner: prometheus
- name: Creates directory
ansible.builtin.file:
path: /etc/alertmanager/templates
state: directory
group: prometheus
owner: prometheus
- name: Unarchive a file that needs to be downloaded (added in 2.0)
ansible.builtin.unarchive:
src: https://github.com/prometheus/alertmanager/releases/download/v{{alertmanager_version}}/alertmanager-{{alertmanager_version}}.linux-amd64.tar.gz
dest: /usr/share/alertmanager
creates: /usr/share/alertmanager/alertmanager-{{prom_version}}.linux-amd64
remote_src: yes
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/share/alertmanager/alertmanager-{{alertmanager_version}}.linux-amd64/alertmanager
dest: /usr/sbin/alertmanager
owner: prometheus
group: prometheus
state: link
notify:
- restart alertmanager
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/share/alertmanager/alertmanager-{{alertmanager_version}}.linux-amd64/amtool
dest: /usr/sbin/amtool
owner: prometheus
group: prometheus
state: link
- name: Copy alertmanager.yaml
register: alertmanager_config_file
copy:
src: ../../files/alertmanager/alertmanager.yaml
dest: /etc/alertmanager/alertmanager.yaml
notify:
- reload alertmanager
- name: Copy template
register: template_file
copy:
src: ../../files/alertmanager/simple_telegram.tmpl
dest: /etc/alertmanager/templates/my.tmpl
notify:
- reload alertmanager
- name: Copy prom web-config
register: web_config_file
copy:
src: ../../files/prometheus/web-config.yaml
dest: /etc/prometheus/web-config.yaml
notify:
- reload alertmanager
- name: Copy alertmanager.service
register: alertmanager_service_file
copy:
src: ../../files/alertmanager/alertmanager.service
dest: /etc/systemd/system/alertmanager.service
- name: ensure service
ansible.builtin.systemd_service:
name: alertmanager
state: started
enabled: true
- name: Just force systemd to reread configs
ansible.builtin.systemd_service:
daemon_reload: true
when: alertmanager_service_file.changed
handlers:
- name: reload alertmanager
ansible.builtin.systemd_service:
name: alertmanager
state: reloaded
- name: restart alertmanager
ansible.builtin.systemd_service:
name: alertmanager
state: restarted
#### TODO как откатывать неудачную проверку promtool'ом ?