Настройка мониторинга и алертов Elasticsearch (Kibana)

Настройка мониторинга и алертов Elasticsearch (Kibana)

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Настройка мониторинга и алертов Elasticsearch (Kibana)
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1419
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1287
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    983
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1244
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    983
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    998

Настройка мониторинга и алертов Elasticsearch (Kibana)

Мы часто сталкиваемся с ситуацией: Elasticsearch-кластер молча уходит в red, диск заполняется до 95%, а команда узнает об этом от пользователей. Без алертов инцидент превращается в аварию. Наш опыт показывает, что настройка мониторинга — ключевой этап, который предотвращает простои и потерю данных. В этой статье разберем, как через Kibana настроить полноценный мониторинг и алерты, используя Metricbeat, Watcher и Prometheus. Ниже — проверенные конфиги и советы для продакшена.

Почему мониторинг Elasticsearch критически важен?

Elasticsearch — основа поиска и аналитики во многих проектах. Если кластер падает, бизнес-процессы останавливаются. Мониторинг позволяет заметить degradation заранее: рост JVM heap, заполнение диска, рост latency поиска. Без него вы узнаёте о проблеме от пользователей. Мы предлагаем готовую схему мониторинга с алертами в Telegram/Slack, чтобы вы всегда были в курсе состояния кластера.

Какой инструмент мониторинга выбрать?

Инструмент Источник метрик Сложность Алерты Визуализация
Stack Monitoring (Kibana) Metricbeat или встроенный коллектор Низкая Watcher Дашборды в Kibana
Metricbeat + Watcher Elasticsearch, системные метрики Средняя Watcher (JSON/UI) Дашборды Kibana
Prometheus + Grafana elasticsearch_exporter Высокая Alertmanager, Grafana Grafana дашборды
Elastic Cloud Встроенный Низкая Встроенные Kibana

Для продакшена рекомендуем комбинацию Metricbeat + Stack Monitoring для базовых метрик и Watcher для алертов. Если у вас уже есть Prometheus, интегрируйте elasticsearch_exporter.

Как работает Stack Monitoring в Kibana?

Kibana Stack Monitoring — встроенный инструмент для сбора метрик Elasticsearch, Logstash и Kibana. Данные можно собирать через Metricbeat (рекомендуется) или встроенным агентом (устарел). Лучше отправлять метрики в отдельный мониторинговый кластер — иначе при сбое основного кластера теряете и мониторинг. Мы используем Metricbeat с X-Pack включенным.

Настройка Metricbeat для сбора метрик ES:

# metricbeat.yml metricbeat.modules: - module: elasticsearch xpack.enabled: true period: 10s hosts: ["https://localhost:9200"] username: "remote_monitoring_user" password: "${ES_MONITOR_PASSWORD}" ssl.certificate_authorities: ["/etc/elasticsearch/certs/ca.crt"] scope: cluster metricsets: - ccr - cluster_stats - enrich - index - index_recovery - index_summary - ml_job - node - node_stats - pending_tasks - shard output.elasticsearch: hosts: ["https://monitoring-es:9200"] username: "metricbeat_writer" password: "${MONITOR_WRITER_PASSWORD}" 

Ключевые метрики: на что смотреть

Метрика Норма Предупреждение Критично
Cluster health green yellow red
JVM heap used <75% 75-85% >85% (опасно), >95% (GC storm)
Disk usage <85% 85-90% >90% (перебалансировка), >95% (read-only)
Search latency (p95) <50ms 50-200ms >200ms
Indexing rate стабильный падение >20% резкое падение

Cluster health — первое, на что смотреть: green — все шарды назначены, yellow — replica не назначены (нормально для одного узла, проблема для продакшена), red — данные недоступны.

JVM heap usage — критический показатель: менее 75% нормально, 75–85% мониторить, >85% деградация, >95% JVM замирает на GC и кластер перестаёт отвечать.

Disk usage per node — ES блокирует индексацию при заполнении диска. Порог flood_stage (95%) — индекс переходит в read-only; high_watermark (90%) — перебалансировка шардов; low_watermark (85%) — норма.

Настройка алертов через Watcher

Watcher — встроенная система оповещений X-Pack. Настраивается через API или Kibana UI. Приведем пример алерта на red статус кластера:

PUT _watcher/watch/cluster_status_red { "trigger": { "schedule": { "interval": "1m" } }, "input": { "http": { "request": { "host": "localhost", "port": 9200, "path": "/_cluster/health", "auth": { "basic": { "username": "elastic", "password": "{{ctx.metadata.es_password}}" } } } } }, "condition": { "compare": { "ctx.payload.status": { "eq": "red" } } }, "actions": { "send_telegram": { "webhook": { "scheme": "https", "host": "api.telegram.org", "port": 443, "method": "post", "path": "/bot{{ctx.metadata.telegram_token}}/sendMessage", "params": { "chat_id": "{{ctx.metadata.telegram_chat_id}}", "text": "ALERT: Elasticsearch cluster status is RED! Time: {{ctx.execution_time}}" } } } } } 

Алерт на заполнение диска >85%:

PUT _watcher/watch/disk_usage_high { "trigger": { "schedule": { "interval": "5m" } }, "input": { "http": { "request": { "path": "/_nodes/stats/fs", "auth": { "basic": { "username": "elastic", "password": "changeme" } } } } }, "condition": { "script": { "source": """ for (node in ctx.payload.nodes.values()) { def total = node.fs.total.total_in_bytes; def free = node.fs.total.free_in_bytes; def used_pct = (total - free) / total * 100; if (used_pct > 85) return true; } return false; """ } }, "actions": { "log": { "logging": { "level": "warn", "text": "High disk usage detected on Elasticsearch node" } } } } 

Как настроить алерты через Kibana UI?

В Kibana 8.x есть раздел Alerts & Actions (Stack Management > Rules). Визуальный конструктор правил без написания JSON вручную. Готовые шаблоны: Elasticsearch cluster health, nodes changed, version mismatch, CPU usage, JVM memory. Каналы уведомлений: Email, Slack, PagerDuty, Webhook (Telegram, Teams).

Мониторинг через Prometheus и Grafana

Если инфраструктура уже использует Prometheus, подключите elasticsearch_exporter:

docker run -d \ --name elasticsearch_exporter \ -p 9114:9114 \ prometheuscommunity/elasticsearch-exporter:latest \ --es.uri=https://elastic:changeme@localhost:9200 \ --es.ssl-skip-verify \ --es.all \ --es.indices \ --es.shards 

Prometheus scrape_config:

- job_name: 'elasticsearch' static_configs: - targets: ['localhost:9114'] scrape_interval: 30s 

Импорт Grafana дашборда ID 6483 (Elasticsearch Overview) — готовый дашборд с основными метриками. Как указано в документации Elasticsearch, это упрощает визуализацию.

Что входит в нашу работу

Мы предоставляем: развертывание Metricbeat и настройка дашбордов Stack Monitoring; настройка алертов через Watcher или Kibana Rules с каналами Telegram/Slack/PagerDuty; интеграция с Prometheus и Grafana (при наличии инфраструктуры); документация и инструкция для вашей команды; 3 месяца поддержки и донастройки порогов. Наш опыт — 5 лет в администрировании Elasticsearch, более 20 проектов. Гарантируем SLA на время реакции. Наши инженеры имеют сертификаты Elastic Certified Engineer.

Сроки

Базовый мониторинг через Metricbeat и Stack Monitoring — 1 день. Алерты — 1 день. Продвинутый мониторинг с Prometheus+Grafana — 1-2 дня. Итого от 2 до 4 дней. Стоимость рассчитывается индивидуально.

Закажите консультацию — мы оценим ваш кластер и предложим оптимальное решение. Свяжитесь с нами, чтобы обсудить детали.