AWS CloudWatch – це інтегрована служба в екосистемі Amazon Cloud, яка здійснює реєстрацію та нагляд за усіма іншими сервісами в хмарі Amazon. Вона акумулює та аналізує метрики, файли журналів, а також налаштовує сповіщення про різні події, виявлені в цих даних.
Ви отримуєте можливість всебічного бачення продуктивності ваших застосунків, використання ресурсів та загального стану сервісів. AWS CloudWatch також допомагає виявляти нетипову поведінку в вашому середовищі, автоматизувати певні процеси, вирішувати проблеми та витягувати статистичні дані з журналів, щоб вживати заходів, спрямованих на покращення вашої системи та операцій.
Моніторинг журналів сприяє ідентифікації загроз безпеці та виявленню потенційних вразливостей. Шляхом відстеження підозрілих дій та незвичної поведінки, ви можете оперативно реагувати на загрози та вживати заходів для запобігання подальшим атакам.
Крім того, ведення журналів та моніторинг систем є часто необхідною вимогою для забезпечення відповідності різним нормам. Використовуючи AWS CloudWatch, ви можете з легкістю задовольнити ці вимоги.
Це лише прямі вигоди, які ви отримуєте від використання AWS CloudWatch. Отже, давайте розглянемо, як розпочати роботу з цим інструментом.
Налаштування AWS CloudWatch для ваших сервісів
Джерело: aws.amazon.com
Процес налаштування може бути як простим і швидким, так і вимагати тривалого часу для тонкого налаштування всіх аспектів та параметрів вашої системи журналювання та моніторингу. Іноді цей процес може здаватися безкінечним, тому його варто розглядати як постійний процес вдосконалення.
Коротко кажучи, ось як ви можете розпочати:
- Якщо ви вже маєте обліковий запис AWS, активуйте CloudWatch, перейшовши до консолі CloudWatch та натиснувши кнопку “Розпочати”.
- Створіть групу журналів, щоб почати збирати журнали для вашого сервісу. Група журналів – це збірка потоків журналів, що мають однакові параметри зберігання, моніторингу та контролю доступу. Створіть групу журналів, клікнувши на кнопку “Створити групу журналів” в консолі CloudWatch.
- Створіть потік журналу, щоб звузити перелік подій журналу до одного джерела (сервісу). Створіть потік журналу, натиснувши кнопку “Створити потік журналу” в консолі CloudWatch.
- Якщо вам потрібно збирати журнали з екземплярів EC2, встановіть агент CloudWatch. Агент – це програмне забезпечення, яке працює на ваших екземплярах та передає дані журналів до CloudWatch. Ви можете встановити агент за допомогою AWS Systems Manager або запустивши скрипт на ваших екземплярах.
- Створіть фільтр метрик для отримання показників з ваших журналів на основі заданого шаблону відповідності. Ви можете створити фільтр метрик, натиснувши кнопку “Створити фільтр метрик” на консолі CloudWatch.
- На завершення, зберіть та візуалізуйте усі отримані дані в одному місці – створіть інформаційну панель. Інформаційна панель – це колекція віджетів, які відображають показники та інші дані, які ви там розміщуєте. Ви можете створити інформаційну панель, натиснувши кнопку “Створити інформаційну панель” на консолі CloudWatch.
Моніторинг за допомогою AWS CloudWatch
Як було зазначено раніше, за допомогою AWS CloudWatch ви можете контролювати будь-які сервіси в Amazon Cloud. Для детальнішого розуміння, як саме може виглядати такий моніторинг, розглянемо, як це можна зробити для найпоширеніших служб AWS, які ви, скоріш за все, використовуєте у своїй системі.
Джерело: docs.aws.amazon.com
Екземпляри EC2
Ви можете відстежувати екземпляри EC2, збираючи такі показники, як використання процесора, мережевий трафік, використання диска та оперативної пам’яті. Також можна контролювати стан екземплярів EC2 та отримувати сповіщення, коли екземпляри зупиняються або припиняють свою роботу.
Для моніторингу екземплярів EC2 необхідно встановити агент CloudWatch на екземпляри та налаштувати його для відправлення метрик у CloudWatch. Далі, можна створити сповіщення, які будуть інформувати вас, якщо показники перевищуватимуть встановлені граничні значення.
Бази даних RDS
Ви можете здійснювати моніторинг баз даних Amazon RDS, збираючи такі показники, як використання ЦП, оперативної пам’яті або дискового простору. Крім того, можна відстежувати стан баз даних та отримувати повідомлення про їхню зупинку, призупинення або видалення.
Для контролю баз даних RDS увімкніть розширений моніторинг та налаштуйте його для надсилання метрик до CloudWatch. Аналогічно, можна налаштувати сповіщення для інформування про вихід показників за межі допустимих значень.
Лямбда-функції
Моніторинг функцій AWS Lambda можна проводити, збираючи такі показники, як кількість викликів лямбда-функцій, тривалість виконання та частота помилок. Ви також можете відстежувати статус своїх функцій та отримувати сповіщення, коли функція не працює належним чином.
Щоб контролювати функції Lambda, потрібно активувати журнали CloudWatch та налаштувати ваші функції для надсилання журналів у CloudWatch. Далі ви можете створювати фільтри метрик для отримання показників з ваших журналів та виконувати дії на основі інформації, отриманої з журналів.
Еластичні балансувальники навантаження
Моніторинг еластичних балансувальників навантаження здійснюється шляхом збору показників, таких як кількість запитів, затримка та коди відповідей HTTP. Можна також контролювати стан балансувальників навантаження та отримувати повідомлення про їхній збій.
Для відстеження балансувальників навантаження необхідно активувати журнали доступу та налаштувати балансувальники для надсилання журналів у CloudWatch. Згодом можна створювати фільтри метрик для отримання метрик з журналів та генерувати сповіщення, коли метрики відхиляються від визначеного стану.
Групи автоматичного масштабування
Ви можете контролювати групи автоматичного масштабування, збираючи дані про розмір групи, використання ЦП та мережевий трафік. Крім того, можна відстежувати статус груп та отримувати повідомлення про збільшення чи зменшення їхнього розміру.
Щоб контролювати групи автоматичного масштабування, потрібно увімкнути детальний моніторинг та налаштувати його для передачі метрик до CloudWatch. Потім можна створювати сповіщення, які інформуватимуть вас про перевищення показниками певних порогових значень.
Застосунки Elastic Beanstalk
Моніторинг застосунків AWS Elastic Beanstalk можна проводити, збираючи такі показники, як використання ЦП та кількість запитів. Можна також відстежувати стан застосунків та отримувати сповіщення, якщо застосунок працює з помилками.
Для моніторингу застосунків Elastic Beanstalk потрібно активувати розширені звіти про працездатність та налаштувати його для надсилання метрик до CloudWatch. Далі можна створювати сповіщення, які повідомлятимуть вас про вихід показників за встановлені граничні значення.
Керування сповіщеннями CloudWatch
Сповіщення CloudWatch доступні для ключових показників та кожного сервісу. Їх можна налаштувати заздалегідь, дотримуючись кращих практик, та використовувати для вирішення проблем відразу після їх виникнення.
Ефективне управління сповіщеннями дозволяє отримувати повідомлення про критичні проблеми та своєчасно вживати заходів для підтримки працездатності та продуктивності ресурсів та застосунків AWS.
Джерело: aws.amazon.com
#1. Налаштування сповіщень для метрики
Для налаштування сповіщень спочатку оберіть показник, який потрібно відстежувати. Потім створіть сповіщення на основі цього показника, вказавши порогове значення та оператор порівняння.
Наприклад, ви можете створити сповіщення, яке спрацьовуватиме, коли використання ЦП перевищує 80% протягом більше ніж 5 хвилин. Після створення сповіщення налаштуйте дії, які потрібно виконувати, коли воно спрацьовує. Наприклад, відправлення електронного листа певному списку одержувачів, надсилання SMS-повідомлення або навіть збільшення системних ресурсів.
#2. Налаштування дій сповіщень
Під час налаштування дій сповіщень можна вибирати з різних опцій, включаючи надсилання повідомлень до теми SNS, запуск функції AWS Lambda (яка, у свою чергу, може виконувати будь-які дії у вашому сценарії Python), зупинку або видалення екземпляра EC2.
Також можна налаштувати кілька дій для кожного сповіщення та виконувати різні дії залежно від серйозності сповіщення. Наприклад, надсилання електронного листа про незначне сповіщення, але припинення екземпляра для критичного сповіщення.
#3. Практичні поради щодо налаштування сповіщень
Завжди корисно дотримуватися кращих практик для забезпечення ефективності та надійності сповіщень. Ось кілька рекомендацій:
- Встановлюйте відповідні порогові значення на основі історичних даних.
- Використовуйте декілька показників одночасно для виявлення проблем.
- Регулярно перевіряйте свої сповіщення, щоб переконатися, що вони працюють коректно.
Намагайтесь уникати створення занадто великої кількості сповіщень, оскільки це може призвести до інформаційного перенавантаження, ускладнення системи моніторингу та утруднення ідентифікації справді важливих проблем.
Якщо у вас виникають проблеми зі сповіщеннями CloudWatch, ви можете виконати кілька кроків для їх усунення:
- Перевірте історію сповіщень, щоб побачити, чи були виконані якісь дії під час спрацювання сповіщення.
- Перевірте метричні дані, щоб виявити аномалії або різкі зміни, які могли викликати сповіщення.
- Якщо проблеми не зникають, ви можете спробувати змінити поріг сповіщення або додати додаткові показники, щоб підвищити точність сповіщень.
Аналіз та візуалізація показників за допомогою інформаційних панелей CloudWatch
Джерело: docs.aws.amazon.com
Аналіз та візуалізація показників за допомогою інформаційних панелей дає вам чітке розуміння стану та продуктивності ваших ресурсів та застосунків AWS. Інформаційні панелі CloudWatch забезпечують налаштовуваний перегляд ваших показників.
Ви можете розміщувати там різні діаграми, графіки та інші візуалізації, які показують тенденції з плином часу та висвітлюють будь-які проблеми, які можуть виникати в системі. Метою є отримання важливої інформації у більш зручному для читання форматі, що полегшує процес перевірки та контролю стану системи.
Для створення інформаційної панелі CloudWatch ви можете використовувати консоль CloudWatch або CloudWatch API. Потім просто додайте віджети на інформаційну панель, які відображатимуть показники, які ви хочете бачити. Також можна додати текст та зображення для надання контексту або додаткової інформації.
Після створення інформаційної панелі ви можете налаштувати її відповідно до ваших потреб. Можна змінювати розмір та порядок віджетів, змінювати часовий діапазон відображуваних даних та додавати анотації для виділення важливих подій або змін. Також можна надати спільний доступ до вашої інформаційної панелі іншим користувачам, дозволяючи їм переглядати ті самі показники та візуалізації.
Насамкінець, ви можете легко розгорнути ту саму інформаційну панель у різних облікових записах та середовищах AWS.
Збір та аналіз журналів
Аналіз журналів зазвичай означає використання функції Logs Insights CloudWatch.
Після збору даних журналів в CloudWatch Logs ви можете почати використовувати Logs Insights. CloudWatch Logs Insights дозволяє запитувати та візуалізувати дані журналів за допомогою простої, але потужної мови запитів. Це схоже на мову SQL, хоч і не зовсім те саме. Однак результати аналізу дуже подібні.
Ви можете використовувати Insights для пошуку певних подій журналу, фільтрації даних на основі конкретних критеріїв та створення візуалізацій, таких як діаграми та таблиці. Це дає додаткові цінні відомості про поведінку ваших застосунків та інфраструктури, які можна використовувати для усунення неполадок, оптимізації продуктивності або покращення безпеки.
Читайте також: Як використовувати статистику журналів AWS для запиту показників інформаційної панелі з журналів служб AWS
Автоматизація завдань за допомогою подій CloudWatch
Маючи достатньо даних журналів у CloudWatch, можна використовувати їх для ініціювання дій на основі подій, які відбуваються у ваших ресурсах та застосунках AWS. CloudWatch Events надає можливість планування та автоматизації завдань, таких як запуск або зупинка екземплярів EC2, коли їхнє використання виходить за межі нормальних показників (наприклад, зупинка екземпляра вночі та повторний запуск в робочий час).
Для автоматизації завдань за допомогою CloudWatch Events створіть правило, яке визначає шаблон події, яка буде відповідати, та дію, яку потрібно виконати, коли подія відбудеться. Це можна зробити за допомогою консолі CloudWatch або CloudWatch Events API. Потім налаштуйте одну або декілька цілей для правила, таких як функція AWS Lambda, тема SNS або екземпляр EC2.
CloudWatch Events підтримує широкий спектр джерел подій, таких як сервіси AWS, спеціальні застосунки та сторонні служби. Використовуйте CloudWatch Events для автоматизації завдань, коли потрібно масштабувати ресурси, ініціювати резервне копіювання або реагувати на інциденти безпеки.
Автоматизуючи завдання, ви зменшуєте необхідність ручного втручання у вашу систему та забезпечуєте, що ваші ресурси та застосунки AWS завжди працюють на оптимальному рівні.
Розширені можливості CloudWatch
Існує декілька розширених функцій CloudWatch, які можна налаштувати для отримання глибшого розуміння ваших ресурсів AWS. Однією з них є вже згадана інформація про журнали. Ось декілька інших важливих розширених можливостей:
- CloudWatch Contributor Insights може визначити найбільших учасників у використанні ваших ресурсів (наприклад, екземпляри EC2 або функції Lambda). Ви можете використовувати Contributor Insights для ідентифікації найбільш ресурсоємних операцій та оптимізації ресурсів.
- CloudWatch Anomaly Detection використовує алгоритми машинного навчання для автоматичного виявлення нетипової поведінки у ваших показниках. Використовуйте цю функцію для ідентифікації незвичайних коливань показників та вжиття заходів для їхнього усунення.
- CloudWatch Synthetics створює “канарки”, які імітують дії користувача, та дозволяє перевіряти доступність та продуктивність ваших застосунків. Використовуйте Synthetics для активного виявлення проблем до того, як їх помітять ваші бізнес-користувачі.
- CloudWatch Logs Insights Query Acceleration пришвидшує ваші запити до журналів до 10 разів. Використовуйте Query Acceleration для швидкого та ефективного аналізу великих обсягів даних журналів.
Інтеграція CloudWatch із сервісами AWS
Джерело: aws.amazon.com
Під час створення системи AWS інтеграція CloudWatch має бути одним з головних пріоритетів. Лише за допомогою такої глибокої інтеграції ви зможете збирати та контролювати показники та журнали для усіх ваших сервісів або компонентів системи. Інтеграцію легко налаштувати та використовувати, оскільки вона є нативною для більшості сервісів AWS. Тому немає обґрунтованих причин не використовувати ці переваги для вашої хмарної системи AWS.
Ви отримаєте повне уявлення про свої ресурси та застосунки AWS, а також зможете контролювати їхній стан, продуктивність та доступність. Далі, коли вся інформація буде зібрана, ви зможете легко налаштувати сповіщення та автоматизувати завдання на основі подій, які відбуваються у вашому середовищі AWS.
Заключні слова
AWS CloudWatch – це комплексний хмарний сервіс, що задовольняє усі потреби вашого проєкту у журналюванні, моніторингу та візуалізації стану системи.
Впровадження таких компонентів у вашу архітектуру є запорукою проактивного управління вашими системами та забезпечення їхньої надійності. Не відкладайте на потім, а розпочніть побудову надійної системи моніторингу з самого початку. В майбутньому ви це оціните.
Дізнайтеся більше про найкращі інструменти моніторингу AWS.