Архив рубрики: Monitoring

Мониторинг серверов, сетей и оборудования

AWS: мониторинг Simple Email Service с CloudWatch и Prometheus

10 июня 2021
 

 Случилась у нас бяда – AWS отключил нам отправку писем через AWS SES из-за bounce-рейта. Проверить это можно в AWS SES > Reputation Dashboard, аккаунт сейчас в статусе Under review: После обращения в тех. поддержку отправку почты нам временно включили, но решить проблему надо, а заодно – следить, что бы подобное не случалось в будущем.… Читать далее »

Prometheus: ошибки “federation failed: broken pipe” и “Received SIGTERM, exiting gracefully” – постоянные рестарты

7 апреля 2021
 

 Имеется Prometheus сервер, запущенный через Prometheus Operator в Kubernetes-кластере, см. Kubernetes: мониторинг кластера с Prometheus Operator. Prometheus сервера в каждом Kubernetes-кластере через Prometheus federation отправляют данные на центральный сервер. При больших нагрузках, например на нашем Kubernetes Dev кластере, где очень много подов, Prometheus начинает падать с ошибками: level=error ts=2021-03-31T07:31:18.765Z caller=federate.go:192 component=web msg=”federation failed” err=”write tcp… Читать далее »

Kubernetes: namespace висит в Terminating и неочевидности с metrics-server

23 марта 2021
 

 Столкнулся с весьма интересной проблемой при удалении Kubernetes Namespace. При попытке удалить неймспейс – он зависает в статусе Terminating, и никакие попытки его удалить не помогали. Рассмотрим варианты удаления, и докопаемся до причины. Создаём тестовый namespace: Пробуем его удалить – и удаление зависает: Проверяем – висит в Terminating: При этом в логах API-сервера никаких ошибок… Читать далее »

Opsgenie: интеграция с AWS RDS и алерты

15 марта 2021
 

 Настроим интеграцию Opsgenie с AWS RDS. Идея заключается в том, что бы отправлять в Opsgenie сообщения о события в RDS, а Opsgenie в свою очередь будет отправлять уведомления в Slack. Для этого нам потребуются AWS Simple Notification Service и AWS RDS Event subscriptions. Документация тут>>>. Настройка Opsgenie Тут всё просто – переходим в Integrations list,… Читать далее »

OpsGenie: настройка Incidents и Incidents Management проекта в целом

3 марта 2021
 

 Со временем в проекте пришли к тому, что пора бы записывать все инциденты, влияющие на работу сервисов и приложний. Раньше вели документ в Confluence, который заполняли руками – но решение так себе, ибо 90% инцидентов просто решали без добавления записей о них. Захотелось как-то навести порядок, ввести более адекватный Incidents Management (IcM), и вообще автоматизировать… Читать далее »

Yandex.Tank: нагрузочное тестирование

9 февраля 2021
 

 Кроме горячо любимых Apache Bench и JMeter имеется интересная утилита Yandex Tank. Ей давно пользуются наши QA, пришло время и мне его потрогать для проверки одной проблемы с Kubernetes, о которой поговорим в следующем посте. В этом – посмотрим на базовые возможности Yandex.Tank. Из особенно приятного – в отличии от Apache Bench выводит статистику по… Читать далее »

Logz.io: сбор логов из Kubernetes – fluentd vs filebeat

27 января 2021
 

 У нас для сбора логов из Kubernetes-кластера и их просмотра используется Logz.io (есть и локальный Loki). Конкретно сбором и отправкой логов занимается Fluentd-под на каждой WorkerNode, которые деплоятся из DaemonSet в его дефотной конфигурации, см. документацию logzio-k8s. Столкнулся с проблемой, что эти поды используют слишком много CPU – до 3000 millicpu, при том, что на… Читать далее »

Prometheus: Alertmanager Web UI и Silence алертов

30 декабря 2020
 

 Частота отправки активных алертов из Alertmanager определяется параметром repeat_interval в файле /etc/alertmanager/config.yml. У нас этот интервал задан в 15 минут, в результате чего в Slack каждые 15 минут приходят уведомления обо всех активных алертах в системе. Но некоторые алерты это такие себе “known issue”, когда о проблеме мы знаем, девелоперы её взяли в работу для… Читать далее »

Kubernetes: Ingress, ошибка 502, readinessProbe и livenessProbe

11 ноября 2020
 

 Имеется приложение на Go, API-бекенд. Периодически начинает возвращать 502 ошибку, хотя сам под работает и в статусе Running. Что бы рассмотреть, как и почему Ingress и Service могут возвращать 502, и как работают readinessProbe и livenessProbe в Kubernetes Deployment – напишем простой веб-сервер на Go, в котором опишем два ендпоинта – один будет возвращать нормальный… Читать далее »

Linux: настройка LEMP – NGINX, PHP, MySQL, SSL, мониторинг, логи, и миграция RTFM

5 ноября 2020
 

 Собрался наконец-то перенести RTFM на Debian 10, решил делать без автоматизации – будем поднимать стандартный LEMP для хостинга WordPress руками. Что-то похожее последний раз писалось в 2016 – Debian: установка LEMP — NGINX + PHP-FPM + MariaDB, в этот раз получился более полный обзор процесса. Также, когда-то делал автоматизацию для настройки сервера под RTFM, но последний… Читать далее »