Як використовувати CloudWatch для моніторингу та керування ресурсами AWS

AWS CloudWatch — це рідна служба екосистеми Amazon Cloud, яка реєструє та контролює всі інші служби в Amazon Cloud. Він збирає та відстежує метрики або файли журналів і встановлює сигнали тривоги для різних дій, отриманих із них.

Ви можете отримати загальносистемну видимість продуктивності додатків, використання ресурсів і працездатності служб. Ви також можете використовувати 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

    Як уже було сказано, ви можете контролювати будь-які служби в Amazon Cloud за допомогою AWS Cloudwatch. Щоб дати більш детальне уявлення про те, як такий моніторинг може виглядати, ось як це зробити для найпоширеніших служб AWS, які ви, швидше за все, використовуєте у своїй системі.

    Джерело: docs.aws.amazon.com

    Примірники EC2

    Ви можете відстежувати екземпляри EC2, збираючи такі показники, як використання ЦП, мережевий трафік, використання диска та використання пам’яті. Ви також можете відстежувати стан своїх екземплярів EC2 і отримувати сповіщення, коли екземпляри зупиняються або завершуються.

      Як поділитися статичним знімком вашого календаря Google

    Щоб відстежувати екземпляри EC2, інсталюйте агент CloudWatch у своїх екземплярах і налаштуйте його для надсилання показників у CloudWatch. На наступному етапі ви можете створити сигнали тривоги, які сповіщатимуть вас, коли показники перевищуватимуть певні порогові значення.

    Бази даних RDS

    Ви можете контролювати бази даних Amazon RDS, збираючи такі показники, як використання ЦП, використання пам’яті або використання диска бази даних. Ви також можете відстежувати стан баз даних і отримувати сповіщення, коли бази даних зупинено, призупинено або припинено.

    Щоб контролювати бази даних RDS, увімкніть розширений моніторинг і налаштуйте його для надсилання метрик до CloudWatch. Знову ж таки, ви можете створювати сигнали тривоги, щоб сповіщати вас, коли показники вимкнені.

    Лямбда-функції

    Ви можете контролювати функції AWS Lambda, збираючи такі показники, як кількість викликів лямбда-випромінювання, тривалість і частота помилок. Ви також можете відстежувати стан своїх функцій і отримувати сповіщення, коли функції виходять з ладу.

    Щоб контролювати функції Lambda, вам потрібно ввімкнути журнали CloudWatch і налаштувати свої функції для надсилання журналів до CloudWatch. Потім ви можете створити фільтри метрик, щоб отримувати показники зі своїх журналів і виконувати дії на основі інформації, отриманої з журналів.

    Еластичні балансувальники навантаження

    Моніторинг еластичних балансувальників навантаження здійснюється шляхом збору таких показників, як кількість запитів, затримка та коди відповідей HTTP. Ви також можете відстежувати стан своїх балансувальників навантаження та отримувати сповіщення про збій балансувальників навантаження.

    Щоб відстежувати балансувальники навантаження, потрібно ввімкнути журнали доступу та налаштувати балансувальники навантаження для надсилання журналів у CloudWatch. Потім ви можете створювати фільтри метрик, щоб отримувати метрики зі своїх журналів і створювати нагадування щоразу, коли метрики відхиляються від визначеного справного стану.

    Автоматичне масштабування груп

    Ви можете контролювати групи автоматичного масштабування, збираючи дані про розмір групи, використання ЦП і мережевий трафік. Ви також можете відстежувати статус своїх груп і отримувати сповіщення, коли групи збільшуються або зменшуються.

    Щоб контролювати групи автоматичного масштабування, вам потрібно ввімкнути детальний моніторинг і налаштувати його для надсилання метрик до CloudWatch. Потім ви можете створювати сигнали тривоги, щоб сповіщати вас, коли показники перевищують певні порогові значення.

    Додатки еластичного бобового стебла

    Ви можете контролювати додатки AWS Elastic Beanstalk, збираючи показники, такі як використання ЦП і кількість запитів. Ви також можете відстежувати стан своїх програм і отримувати сповіщення, коли програми виходять з ладу.

    Щоб контролювати додатки Elastic Beanstalk, вам потрібно ввімкнути розширені звіти про працездатність і налаштувати його для надсилання показників у CloudWatch. Потім ви можете створити сигнали тривоги, які сповіщатимуть вас, коли показники виходять за попередньо визначені порогові значення.

    Керування будильниками CloudWatch

    Доступні сигнали CloudWatch для ключових показників і кожної служби. Їх можна налаштувати заздалегідь, дотримуючись найкращих практик, і з їх допомогою вирішувати проблеми, щойно вони виникають.

    Ефективно керуючи своїми сигналами тривоги, ви отримуєте сповіщення про критичні проблеми та можете вживати відповідних заходів для підтримки працездатності та продуктивності ресурсів і програм AWS.

    Джерело: aws.amazon.com

    #1. Налаштування нагадувань для метрики

    Щоб налаштувати будильники, спочатку виберіть показник, який потрібно відстежувати. Потім створіть нагадування на основі цього показника, вказавши порогове значення та оператор порівняння.

    Наприклад, ви можете створити сигнал тривоги, який спрацьовує, коли використання ЦП перевищує 80% протягом більше ніж 5 хвилин. Після того, як ви створили будильник, налаштуйте дії, які потрібно виконувати, коли спрацьовує будильник. Наприклад, надсилання електронного листа певному списку одержувачів, надсилання SMS-повідомлень або навіть збільшення системних ресурсів.

      11 найкращих персональних брандмауерів для комп’ютерів і мобільних телефонів

    #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, хоча й не зовсім те саме. Однак результати дуже схожі.

    Ви можете використовувати Insight для пошуку певних подій журналу, фільтрації даних журналу на основі конкретних критеріїв і створення візуалізацій, наприклад діаграм і таблиць. Завдяки цьому ви отримуєте ще одну цінну інформацію про поведінку ваших програм та інфраструктури, яку можна використовувати для усунення неполадок, оптимізації продуктивності або покращення безпеки.

      Як змусити ваш iPhone кричати, коли ви підключаєте його

    Читайте також: Як використовувати статистику журналів 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 інтеграція Clodwatch завжди є головним пріоритетом у вашому списку. Лише за допомогою такої глибокої інтеграції ви можете збирати та контролювати показники та журнали для всіх ваших служб або компонентів системи. Його також легко налаштувати та використовувати, а інтеграція є рідною для більшості служб AWS. Тож є справді небагато виправдань не використовувати цю перевагу для вашої хмарної системи AWS.

    Ви отримаєте повне уявлення про свої ресурси та програми AWS, а також зможете контролювати їх стан, продуктивність і доступність. Потім, коли всю інформацію буде зібрано, просто використовуйте вже наявні дані, щоб налаштувати сигнали тривоги та автоматизувати завдання на основі подій, які відбуваються у вашому середовищі AWS.

    Заключні слова

    AWS CloudWatch — це комплексний хмарний сервіс, здатний задовольнити всі потреби вашого проекту в журналі, моніторингу та візуалізації стану системи.

    Включення таких компонентів у вашу архітектуру — це саме те, як ви проактивно керуєте своїми системами та забезпечуєте їхню надійність. Я б сказав, що навіть не визначайте пріоритет для наступних етапів, а почніть будувати надійну систему моніторингу зі Sprint 1. Пізніше ви це оціните.

    Далі ознайомтеся з найкращими інструментами моніторингу AWS.