diff options
Diffstat (limited to 'roles/monitoring')
-rw-r--r-- | roles/monitoring/alerta/defaults/main.yml | 12 | ||||
-rw-r--r-- | roles/monitoring/alerta/tasks/main.yml | 15 | ||||
-rw-r--r-- | roles/monitoring/alerta/templates/pod-spec.yml.j2 | 16 | ||||
-rw-r--r-- | roles/monitoring/alerta/vars/main.yml | 5 | ||||
-rw-r--r-- | roles/monitoring/prometheus/alertmanager/defaults/main.yml | 5 | ||||
-rw-r--r-- | roles/monitoring/prometheus/alertmanager/tasks/main.yml | 13 |
6 files changed, 54 insertions, 12 deletions
diff --git a/roles/monitoring/alerta/defaults/main.yml b/roles/monitoring/alerta/defaults/main.yml index 034c8268..59dea307 100644 --- a/roles/monitoring/alerta/defaults/main.yml +++ b/roles/monitoring/alerta/defaults/main.yml @@ -1,2 +1,14 @@ --- # alerta_base_path: /srv/alerta +# alerta_storage: +# type: (zfs|lvm) +# ... + +# alerta_web_version: 8.7.0 +# alerta_postgres_version: 14.2 +# alerta_redis_version: 6.2.6 + +alerta_web_port: 8080 + +# alerta_web_secret_key: "randomstring" +# alerta_postgres_password: "secret" diff --git a/roles/monitoring/alerta/tasks/main.yml b/roles/monitoring/alerta/tasks/main.yml index 490f5e3d..ffedb143 100644 --- a/roles/monitoring/alerta/tasks/main.yml +++ b/roles/monitoring/alerta/tasks/main.yml @@ -1,4 +1,11 @@ --- +- name: prepare storage volume for alerta + when: alerta_storage is defined + vars: + storage_volume: "{{ alerta_storage | combine({'dest': alerta_base_path}) }}" + include_role: + name: "storage/{{ alerta_storage.type }}/volume" + - name: create alerta subdirectories loop: - config @@ -11,18 +18,18 @@ - name: generate Dockerfile for custom image copy: content: | - FROM alerta/alerta-web:8.7.0 + FROM alerta/alerta-web:{{ alerta_web_version }} RUN set -x \ && sed 's/USE_AM_EXTERNALURL_FOR_SILENCES/ALERTMANAGER_USE_EXTERNALURL_FOR_SILENCES/' -i /venv/lib/python3.8/site-packages/alerta_prometheus.py \ - && /venv/bin/pip install redis==4.1.4 \ - && /venv/bin/pip install git+https://github.com/alerta/alerta-contrib.git@69d271ef9fe6542727ec4aa39fc8e0f797f1e8b1#subdirectory=integrations/mailer + && /venv/bin/pip install redis=={{ _alerta_pip[alerta_web_version].redis_version }} \ + && /venv/bin/pip install git+https://github.com/alerta/alerta-contrib.git@{{ _alerta_pip[alerta_web_version].contrib_mailer_git_hash }}#subdirectory=integrations/mailer dest: "{{ alerta_base_path }}/build/Dockerfile" register: alerta_custom_image_docker - name: build custom image docker_image: - name: "alerta-web-with-mailer:8.7.0" + name: "alerta-web-with-mailer:{{ alerta_web_version }}" state: present force_source: "{{ alerta_custom_image_docker is changed }}" source: build diff --git a/roles/monitoring/alerta/templates/pod-spec.yml.j2 b/roles/monitoring/alerta/templates/pod-spec.yml.j2 index 6edabae5..c39ec080 100644 --- a/roles/monitoring/alerta/templates/pod-spec.yml.j2 +++ b/roles/monitoring/alerta/templates/pod-spec.yml.j2 @@ -1,13 +1,15 @@ containers: - name: alerta - image: "alerta-web-with-mailer:8.7.0" + image: "alerta-web-with-mailer:{{ alerta_web_version }}" env: - name: "DATABASE_URL" - value: "postgres://alerta:secret@127.0.0.1:5432/alerta" + value: "postgres://alerta:{{ alerta_postgres_password }}@127.0.0.1:5432/alerta" - name: "AUTH_REQUIRED" value: "True" - name: "ADMIN_USERS" value: "admin" + - name: "SECRET_KEY" + value: "{{ alerta_web_secret_key }}" - name: "DEBUG" value: "1" - name: "SUPERVISORD_LOG_LEVEL" @@ -19,10 +21,10 @@ containers: readOnly: true ports: - containerPort: 8080 - hostPort: 8080 + hostPort: {{ alerta_web_port }} - name: postgresql - image: "postgres:14.2" + image: "postgres:{{ alerta_postgres_version }}" args: - postgres - -c @@ -33,20 +35,20 @@ containers: - name: "POSTGRES_USER" value: "alerta" - name: "POSTGRES_PASSWORD" - value: "secret" + value: "{{ alerta_postgres_password }}" volumeMounts: - name: postgres mountPath: /var/lib/postgresql/data - name: redis - image: "redis:6.2.6" + image: "redis:{{ alerta_redis_version }}" args: - redis-server - --bind - 127.0.0.1 - name: mailer - image: "alerta-web-with-mailer:8.7.0" + image: "alerta-web-with-mailer:{{ alerta_web_version }}" command: - alerta-mailer env: diff --git a/roles/monitoring/alerta/vars/main.yml b/roles/monitoring/alerta/vars/main.yml new file mode 100644 index 00000000..928a720b --- /dev/null +++ b/roles/monitoring/alerta/vars/main.yml @@ -0,0 +1,5 @@ +--- +_alerta_pip: + 8.7.0: + redis_version: 4.1.4 + contrib_mailer_git_hash: 69d271ef9fe6542727ec4aa39fc8e0f797f1e8b1 diff --git a/roles/monitoring/prometheus/alertmanager/defaults/main.yml b/roles/monitoring/prometheus/alertmanager/defaults/main.yml index 86cd9aa5..ac4f7600 100644 --- a/roles/monitoring/prometheus/alertmanager/defaults/main.yml +++ b/roles/monitoring/prometheus/alertmanager/defaults/main.yml @@ -21,5 +21,8 @@ prometheus_alertmanager_route: prometheus_alertmanager_receivers: - name: empty -# prometheus_server_auth_users: +# prometheus_alertmanager_auth_users: # admin: geheim + +# prometheus_alertmanager_password_files: +# user: secret diff --git a/roles/monitoring/prometheus/alertmanager/tasks/main.yml b/roles/monitoring/prometheus/alertmanager/tasks/main.yml index 338b0cbe..173ea758 100644 --- a/roles/monitoring/prometheus/alertmanager/tasks/main.yml +++ b/roles/monitoring/prometheus/alertmanager/tasks/main.yml @@ -47,6 +47,19 @@ group: prometheus-alertmanager notify: reload prometheus-alertmanager +- name: generate password files + when: prometheus_alertmanager_password_files is defined + loop: "{{ prometheus_alertmanager_password_files | dict2items }}" + loop_control: + label: "{{ item.key }}" + copy: + content: "{{ item.value }}" + dest: "/etc/prometheus/alertmanager-{{ item.key }}.password" + mode: 0640 + owner: root + group: prometheus-alertmanager + notify: reload prometheus-alertmanager + - name: generate systemd service unit template: src: prometheus-alertmanager.service.j2 |