CloudWatch Alarme über Slack empfangen
This content is more than 4 years old and the cloud moves fast so some information may be slightly out of date.
Ob CPU-Auslastung einer EC2-Instanzen, Fehler beim Ausführen einer Lambda-Funktion oder verfügbarer Speicherplatz einer RDS-Instanz mit Amazon CloudWatch lassen sich Ressourcen bei AWS überwachen. Dafür werden zwei Komponenten benötigt:
- Metriken: Eine Metrik ist ein Sammeltopf für Messwerte, die von den AWS Services automatisch befüllt werden.
- Alarme: Ein Alarm überprüft in regelmäßigen Abständen ob sich die Messwerte einer Metrik noch innerhalb von definierten Grenzen bewegt.
Eine Übersicht über alle verfügbaren Metriken findet sich unter Metriken und Dimensionen-Referenz von Amazon CloudWatch. Wann immer ein CloudWatch Alarm feststellt, dass sich eine Metrik außerhalb der definierten Grenzen bewegt, können automatisch folgende Aktionen ausgeführt werden:
- Versand einer E-Mail über den Simple Notification Service (SNS)
- Wiederherstellen einer EC2-Instanz.
- Ausführen eine Skalierungsrichtline um Anzahl der EC2-Instanzen innerhalb einer Auto Scaling Group zu erhöhen oder zu verringern.
Beispielsweise lässt sich ein CloudWatch Alarm so konfigurieren, dass bei einer CPU-Auslastung von über 80% über SNS eine E-Mail an den Verteiler des eigenen DevOps-Teams gesendet wird. Allerdings führen Benachrichtigungen von CloudWatch Alarmen per E-Mail schnell zu einem überquellenden Postfach. Außerdem entsteht mit jeder E-Mail an den Verteiler des eigenen DevOps-Teams auch Abstimmungsbedarf: “Wer kümmert sich um das Problem?”.
Bei tecRacer Consulting verwenden wir Slack um über Standorte (Hannover, Duisburg, Frankfurt und München) hinweg die Kommunikation zwischen allen Cloud Consultants sicherzustellen. Was liegt da näher als auch CloudWatch Alarme über Slack zu empfangen?
Im Jahr 2016 haben Michael und ich an der Serverless Chatbot Competition teilgenommen und in diesem Rahmen einen Chatbot entwickelt. Mit marbot lassen sich CloudWatch Alarme über Slack empfangen. Dabei versucht der Chatbot das DevOps-Team möglichst wenig zu stören. Eingehende Alarme werden über eine Eskalationsstrategie erst einem einzelnen Teammitglied, bei Bedarf einem weiteren Teammitglied und schließlich erst dem ganzen Team zugestellt.
Neben CloudWatch Alarmen integriert sich marbot mit einer Vielzahl von anderen Quellen, über die AWS-Ressourcen überwacht werden können.
- CloudWatch Events (z.B. AWS Health Events)
- Trusted Advisor
- Budget
- RDS Event Notifications
- Elastic Beanstalk Environment Notifications
Zusätzlich können per HTTP/HTTPS oder E-Mail beliebige Alarme an marbot gesendet werden. Unser Chatbot kann damit als unkompliziertes und agiles Incident Management Tool verwendet werden. Fügen Sie marbot zu Ihrem Slack Workspace hinzu um die 14-tägige und kostenlose Probezeit zu starten.