1 Commits

5 changed files with 28 additions and 90 deletions

View File

@ -1,12 +0,0 @@
---
# Alertmanager settings
alertmanager_port: 9093
alertmanager_config_path: /etc/alertmanager
# Email notifications (заполнить позже)
smtp_host: localhost
smtp_from: alertmanager@example.com
smtp_to: admin@example.com
# Webhook для тестирования
webhook_url: "http://localhost:9099"

View File

@ -7,13 +7,13 @@
group: root
mode: '0755'
loop:
- "{{ alertmanager_config_path }}"
- /etc/alertmanager
- /var/lib/alertmanager
- name: Deploy Alertmanager configuration
template:
src: alertmanager.yml.j2
dest: "{{ alertmanager_config_path }}/alertmanager.yml"
dest: /etc/alertmanager/alertmanager.yml
owner: root
group: root
mode: '0644'
@ -25,9 +25,9 @@
state: started
restart_policy: always
ports:
- "{{ alertmanager_port }}:9093"
- "9093:9093"
volumes:
- "{{ alertmanager_config_path }}/alertmanager.yml:/etc/alertmanager/alertmanager.yml"
- /etc/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
- /var/lib/alertmanager:/alertmanager
command: --config.file=/etc/alertmanager/alertmanager.yml --storage.path=/alertmanager
tags: alertmanager

View File

@ -1,52 +1,21 @@
global:
# Настройки для уведомлений (можно настроить позже)
# smtp_smarthost: 'smtp.gmail.com:587'
# smtp_from: 'alertmanager@example.com'
# smtp_auth_username: 'user@gmail.com'
# smtp_auth_password: 'password'
# smtp_require_tls: true
smtp_smarthost: 'localhost:25'
smtp_from: 'alertmanager@example.com'
route:
# Основной маршрут - все алерты идут в Node-RED
receiver: 'node-red-webhook'
group_by: ['alertname', 'severity']
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
# Вложенные маршруты
routes:
- match:
severity: critical
receiver: 'node-red-critical'
group_wait: 5s
repeat_interval: 10m
- match:
severity: warning
receiver: 'node-red-warning'
group_wait: 30s
repeat_interval: 2h
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'email-notifications'
receivers:
- name: 'node-red-webhook'
webhook_configs:
- url: 'http://node-red:1880/webhook/alertmanager'
send_resolved: true
- name: 'email-notifications'
email_configs:
- to: 'alerts@example.com'
send_resolved: true
- name: 'node-red-critical'
webhook_configs:
- url: 'http://node-red:1880/webhook/critical'
send_resolved: true
- name: 'node-red-warning'
webhook_configs:
- url: 'http://node-red:1880/webhook/warning'
send_resolved: true
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'instance']
- name: 'webhook-notifications'
webhook_configs:
- url: 'http://node-red:1880/alerts'
send_resolved: true

View File

@ -1,9 +0,0 @@
---
# Node-RED settings
node_red_port: 1880
node_red_data_dir: /var/lib/node-red
node_red_image: nodered/node-red:latest
# Persistence settings
node_red_persist_flows: true
node_red_enable_projects: false

View File

@ -1,32 +1,22 @@
---
- name: Create Node-RED data directory with correct permissions
- name: Create Node-RED data directory
file:
path: "{{ node_red_data_dir }}"
path: /var/lib/node-red
state: directory
owner: 1000 # Node-RED контейнер запускается от пользователя 1000
group: 1000
owner: root
group: root
mode: '0755'
- name: Run Node-RED container
docker_container:
name: node-red
image: "{{ node_red_image }}"
image: nodered/node-red:latest
state: started
restart_policy: always
ports:
- "{{ node_red_port }}:1880"
- "1880:1880"
volumes:
- "{{ node_red_data_dir }}:/data"
user: "1000:1000" # Запускаем от правильного пользователя
env:
NODE_RED_ENABLE_PROJECTS: "{{ 'true' if node_red_enable_projects else 'false' }}"
TZ: "UTC"
tags: node-red
- name: Display Node-RED access info
debug:
msg: |
Node-RED is available at:
- Web UI: http://{{ inventory_hostname }}:{{ node_red_port }}
- API: http://{{ inventory_hostname }}:{{ node_red_port }}/red/api
- /var/lib/node-red:/data
environment:
NODE_RED_ENABLE_PROJECTS: "false"
tags: node-red