0Pricing
Linux Server Deployment & SSH Mastery · Урок

Централизованный мониторинг и оповещения

Масштабируйте мониторинг за пределы одного сервера: отправляйте показатели и журналы в центральную систему, создавайте панели и настраивайте оповещения, чтобы узнавать о проблемах раньше пользователей.

«Централизованный мониторинг и оповещения» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Зачем нужна централизация

Вход на каждый сервер с помощью top и journalctl подходит для одной машины. При большом количестве серверов такой подход не масштабируется, а проблемы становятся видны только тогда, когда Вы случайно проверяете систему.

Централизованный мониторинг собирает метрики и журналы со всех серверов в одном месте, предоставляя панели мониторинга и автоматические оповещения.

Метрики и журналы

Наблюдаемость основывается на двух видах данных:

  • Метрики — числовые временные ряды, например загрузка CPU в процентах, объём памяти и частота запросов
  • Журналы — отдельные текстовые события, например ошибки и записи доступа

Обычно собирают оба вида данных, используя для каждого оптимизированные инструменты.

Модель Prometheus

Prometheus — популярная система сбора метрик. Она получает метрики, обращаясь к HTTP-конечным точкам, которые предоставляет каждый сервер.

На каждом сервере запускается экспортёр — node_exporter для метрик узла, — который публикует данные, считываемые Prometheus.

# On each monitored server:
sudo apt install prometheus-node-exporter
curl http://localhost:9100/metrics | head

Настройка цели сбора

Prometheus получает список целей для сбора из своего конфигурационного файла. Каждое задание содержит цели (host:port экспортёра).

Этот фрагмент собирает данные node_exporter с двух серверов.

scrape_configs:
  - job_name: 'nodes'
    static_configs:
      - targets: ['web1:9100', 'web2:9100']

Запрос метрик с помощью PromQL

У Prometheus есть собственный язык запросов — PromQL. С его помощью можно вычислять частоту, средние значения и другие показатели для всего парка серверов.

Это выражение оценивает загрузку CPU на каждом сервере.

100 - (avg by (instance) (rate(node_cpu_seconds_total{mode='idle'}[5m])) * 100)

Визуализация с помощью Grafana

Grafana подключается к Prometheus и многим другим источникам, чтобы создавать панели мониторинга. Добавьте Prometheus как источник данных, а затем создавайте панели на основе запросов PromQL.

Готовые панели для node_exporter позволяют за несколько минут получить графики загрузки CPU, памяти, диска и сети.

sudo apt install grafana
sudo systemctl enable --now grafana-server
# Open http://server:3000 and add Prometheus as a data source

Централизация журналов

Для работы с журналами отправляйте их с каждого сервера в централизованное хранилище. Распространённый стек — Loki и Promtail, интегрированный с Grafana.

Promtail запускается на каждом сервере и пересылает в Loki файлы журналов и системный журнал.

# promtail tails the journal and ships to Loki
clients:
  - url: http://loki:3100/loki/api/v1/push
scrape_configs:
  - job_name: journal
    journal:
      max_age: 12h

Определение правил оповещения

Оповещения превращают метрики в действия. Правила оповещения Prometheus срабатывают, когда выражение остаётся истинным в течение определённого времени.

Это правило отправляет оповещение, если узел недоступен в течение двух минут.

groups:
  - name: node
    rules:
      - alert: NodeDown
        expr: up == 0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: 'Instance {{ $labels.instance }} is down'

Маршрутизация оповещений

Alertmanager получает сработавшие оповещения и направляет их в нужное место: по электронной почте, в Slack, PagerDuty и другие системы. Он также устраняет дубликаты и подавляет оповещения.

Вы сопоставляете оповещения с получателями на основе таких меток, как severity.

route:
  receiver: 'team-slack'
receivers:
  - name: 'team-slack'
    slack_configs:
      - channel: '#alerts'

Как избежать усталости от оповещений

Слишком большое количество оповещений не лучше, чем их отсутствие: люди начинают их игнорировать. Хорошая система оповещений:

  • Сообщает о симптомах, которые ощущают пользователи, а не о каждом кратковременном изменении метрики
  • Использует длительность for, чтобы избежать постоянного включения и выключения оповещений
  • Назначает уровень важности, чтобы можно было отфильтровать лишний шум

Рекомендации

Создавайте долговечную систему наблюдаемости:

  • Централизованно собирайте и метрики, и журналы
  • Начинайте с панелей сообщества, а затем адаптируйте их
  • Создавайте оповещения только для условий, требующих действий
  • Проверяйте, что оповещения действительно доходят до Вас

Быстрая проверка

Проверьте свои знания о централизованном мониторинге.

Итоги

Теперь Вы умеете централизованно отслеживать работу всего парка серверов:

  • Метрики собираются Prometheus через node_exporter и запрашиваются с помощью PromQL
  • Панели мониторинга создаются в Grafana
  • Журналы передаются в Loki через Promtail
  • Оповещения создаются по правилам Prometheus и маршрутизируются Alertmanager

Это расширяет навыки работы с журналами одного сервера до проактивной наблюдаемости всего парка.

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

Урок «Централизованный мониторинг и оповещения» бесплатный?

Да — полный текст урока «Централизованный мониторинг и оповещения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Централизованный мониторинг и оповещения»?

Масштабируйте мониторинг за пределы одного сервера: отправляйте показатели и журналы в центральную систему, создавайте панели и настраивайте оповещения, чтобы узнавать о проблемах раньше пользователе… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Централизованный мониторинг и оповещения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Инструменты мониторинга системы
  2. Понимание системных журналов
  3. Ротация и архивирование журналов
  4. Централизованный мониторинг и оповещения
← Назад к Linux Server Deployment & SSH Mastery