Ad ogni installazione di CEPH eseguita con cephamd
, viene installato automticamente anche lo stack di monitoring basato su Prometheus, Alertmanager e Grafana. Quindi le funzionalità sono integrate nella dashboard e posso essere configurate ulteriormente.
Per modificare la configurazione di default di Alertmanager è necessario ridefinire il template con il quale la configurazione e per Alertmanager viene generata e utilizzata nei container che ospitano Alertmanager.
Immaginando quindi di voler abilitare l'invio di una email per ogni gruppo di alert (di default inviato sulla dashboard) dobbiamo partire dal template installato di default:
1. Ottenere il template attuale:
# ceph config-key get mgr/cephadm/services/alertmanager/alertmanager.yml # {{ cephadm_managed }} # See https://prometheus.io/docs/alerting/configuration/ for documentation. global: resolve_timeout: 5m {% if not secure %} http_config: tls_config: insecure_skip_verify: true {% endif %} route: receiver: 'default' routes: - group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'ceph-dashboard' {% if snmp_gateway_urls %} continue: true - receiver: 'snmp-gateway' repeat_interval: 1h group_interval: 10s group_by: ['alertname'] match_re: oid: "(1.3.6.1.4.1.50495.).*" {% endif %} receivers: - name: 'default' webhook_configs: {% for url in default_webhook_urls %} - url: '{{ url }}' {% endfor %} - name: 'ceph-dashboard' webhook_configs: {% for url in dashboard_urls %} - url: '{{ url }}/api/prometheus_receiver' {% endfor %} {% if snmp_gateway_urls %} - name: 'snmp-gateway' webhook_configs: {% for url in snmp_gateway_urls %} - url: '{{ url }}' {% endfor %} {% endif %}
E inserire quanto ottenuto in un file dal nome alertmanager.yml.j2
.
2. Aggiungere al contenuto le definizioni globali (valori esempio):
smtp_smarthost: smtp.example.it:25 smtp_from: 'ceph@example.it' smtp_require_tls: true smtp_auth_username: '' smtp_auth_password: ''
3. Aggiungere al contenuto i destinatari nella lista email_configs
per il receiver ceph-dashboard
(valori esempio):
email_configs: - to: 'support@example.it'
Il contenuto del file dovrebbe essere a questo punto simile a:
# {{ cephadm_managed }} # See https://prometheus.io/docs/alerting/configuration/ for documentation. global: resolve_timeout: 5m {% if not secure %} http_config: tls_config: insecure_skip_verify: true {% endif %} smtp_smarthost: smtp.example.it:25 smtp_from: 'ceph@example.it' smtp_require_tls: true smtp_auth_username: '' smtp_auth_password: '' route: receiver: 'default' routes: - group_by: ['alertname'] group_wait: 10s group_interval: 10s repeat_interval: 1h receiver: 'ceph-dashboard' {% if snmp_gateway_urls %} continue: true - receiver: 'snmp-gateway' repeat_interval: 1h group_interval: 10s group_by: ['alertname'] match_re: oid: "(1.3.6.1.4.1.50495.).*" {% endif %} receivers: - name: 'default' webhook_configs: {% for url in default_webhook_urls %} - url: '{{ url }}' {% endfor %} - name: 'ceph-dashboard' webhook_configs: {% for url in dashboard_urls %} - url: '{{ url }}/api/prometheus_receiver' {% endfor %} email_configs: - to: 'support@example.it' {% if snmp_gateway_urls %} - name: 'snmp-gateway' webhook_configs: {% for url in snmp_gateway_urls %} - url: '{{ url }}' {% endfor %} {% endif %}
4. Sostituire il template nella configurazione per cephadm:
ceph config-key set mgr/cephadm/services/alertmanager/alertmanager.yml -i /<path>/alertmanager.yml.j2
5. Avviare a riconfigurazione dei servizio esistente:
ceph orch reconfig alertmanager
6. Verificare con ceph orch ls
e ceph orch ps
il refresh dei container