Архив метки: monitoring

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», когда о проблеме мы знаем, девелоперы её взяли в работу для… Читать далее »

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

5 ноября 2020
 

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

Kubernetes: нагрузочное тестирование и high-load тюнинг — проблемы и решения

25 августа 2020
 

 Вообще, этот пост планировался в виде небольшой заметки о том, как использовать NodeAffinity для Kubernetes Pod: Но, как это часто бывает — за одним потянулось другое, за другим третье — и в результате вышел очередной длиннопост в свободном стиле. Итак, собирался я написать про NodeAffinity, как вдруг подумал — а как будет себя вести Kubernetes… Читать далее »

Instana: мониторинг Kubernetes-кластера

12 августа 2020
 

 В дополнение к нашему Prometheus, который осуществляет общий мониторинг всех ресурсов, веб-разработчики попросили подключить им Instana. Из того, что нам сейчас интересно — Instana умеет мониторить Kubernetes кластера, и отдельные веб-сайты. Для мониторинга кластера будем запускать DaemonSet, который создаст поды с Instana-агентами на каждой рабочей ноде. А для мониторига веб-сайта — разработчики подключат библиотеку в… Читать далее »