User is working with AWS CloudWatch and is implementing monitoring systems using CloudWatch Synthetics, SNS, AWS Chatbot, and Open Source tools like Prometheus, Grafana, and Node Exporter.
У цьому практичному проєкті я поглиблено вивчав розширені можливості AWS CloudWatch, зокрема реалізацію CloudWatch Synthetics для моніторингу в реальному часі URL-адрес додатка HumanGov. Рішення було доповнене інтеграціями з CloudWatch Alarms, SNS та AWS Chatbot, що забезпечило негайні сповіщення в Slack. Основною метою було створення надійної системи моніторингу для забезпечення високої доступності та продуктивності додатка.
Ось архітектура рішення:
Подорож розпочалася з створення синтетичних канарейок в CloudWatch, які були розроблені для симулювання взаємодій реальних користувачів. Ці канарейки постійно моніторили URL-адреси додатка, перевіряючи доступність і вимірюючи часи відповіді.
Після налаштування канарейок я реалізував сповіщення в CloudWatch для відстеження критичних метрик, таких як підвищені часи відповіді або рівень помилок. Ці сповіщення були налаштовані з оптимальним рівнем чутливості, щоб забезпечити точне виявлення проблем без фальшивих позитивів.
Для підвищення ефективності моніторингу я інтегрував AWS SNS (Simple Notification Service), що дозволило надсилати автоматичні сповіщення користувачам, коли спрацьовували сповіщення. Ці сповіщення були інтегровані з AWS Chatbot, що забезпечило сповіщення в реальному часі безпосередньо в каналі Slack. Це дозволило команді розробників та операцій одразу отримувати інформацію про будь-які інциденти, що дозволило оперативно вирішувати проблеми.
Крім того, проєкт включав детальну фазу тестування для перевірки конфігурацій. Я змоделював різні сценарії помилок у додатку та переконався, що канарейки правильно виявляють проблеми, спрацьовують налаштовані сповіщення та надсилають сповіщення в Slack відповідно до налаштувань.
Статус з помилкою в додатку
Повідомлення про помилку в Slack
Нормальні застосунки
Проєкт також включав інтеграцію Open Source інструментів, таких як Prometheus, Grafana, Node Exporter та Portainer. Ці рішення були використані для логування та моніторингу в реальному часі інстансів EC2, з оновленнями кожні 5 секунд щодо метрик, таких як використання CPU, пам'яті, зберігання, мережевого трафіку та запитів. Метою було виявлення та зменшення можливих вузьких місць у системах.
Portainer.io
Prometheus
Grafana
Цей проєкт став для мене чудовою можливістю застосувати сучасні практики моніторингу та управління інфраструктурою, використовуючи як сервіси AWS, так і Open Source інструменти. Окрім того, що він посилив мої навички у роботі з такими рішеннями, як CloudWatch, SNS, Prometheus і Grafana, він також допоміг зміцнити моє розуміння важливості проактивного моніторингу та автоматизації для підтримки надійності хмарних застосунків.
Знання, отримані в процесі реалізації сервісів, таких як AWS Route 53, ELB, ECR, EKS, EC2, Docker, Kubernetes, Terraform та інтеграції з інструментами для співпраці, такими як Slack, значно сприяють моєму розвитку як професіонала DevOps. Цей практичний досвід підготував мене до вирішення викликів на шляху до кар'єри SRE (Site Reliability Engineer), де я зможу надавати ефективні та масштабовані рішення.
Перекладено з: Implementação do AWS CloudWatch Synthetics para Monitoramento em Tempo Real de URLs de Aplicação