Перейти к основному содержимому

2.06. Метрика, мониторинг и логирование

Разработчику Архитектору Инженеру

Метрика, мониторинг и логирование

Системный администратор обеспечивает стабильность системы. Стабильность – это способность системы:

  • оставаться доступной для пользователей;
  • работать без сбоев (критических ошибок);
  • выдерживать нагрузку;
  • быстро восстанавливаться после инцидентов.

Мониторинг - процесс отслеживания работы системы для обеспечения её стабильности. Для измерения стабильности используются метрики – единицы измерения. Основные метрики:

КатегорияОбъект мониторингаИнструменты
ЖелезоCPU, RAM, диски, сетьPrometheus, Zabbix, Netdata
СервисыДоступность БД, веб-сервераGrafana, Nagios
Бизнес-логикаКоличество заявок, заказов, ошибкиELK Stack (Elasticsearch, Kibana)

Данные собираются при помощи:

  • агентов (специальных программ);
  • SNMP (для сетевого оборудования);
  • логов (текстовых записей о событиях).

В случае наступления определённых событий, можно настроить автоматизацию отправки предупреждений – «алертинг», к примеру, настроив в Prometheus отправку на электронную почту.

Помимо нагрузки, важно фиксировать, кто, что и когда делал. Допустим, что делали пользователи, как себя вела программа, или в какое время возникла ошибка. Эта фиксация осуществляется в логах (от английского log – журнал). Представьте, что у вас есть персональный секретарь, который записывает всё, что происходит – это логгер.

Логирование – процесс записи и детализации событий. Логи бывают следующих типов:

  • системные логи (содержат сведения об ОС, драйверах);
  • логи приложений (ошибки сервера, к примеру);
  • логи аудита (попытки входа, авторизации, SSH, sudo).

Но работать с массивами логов удобнее при помощи инструментов, допустим, Grafana Loki для агрегации логов.

Пример, как с этим работать:

  • разворачиваете ПО на сервере и устанавливаете все компоненты;
  • устанавливаете системы мониторинга и логирования;
  • запускаете систему и ПО;
  • возникла проблема – сервер «лёг» или диск заполнен;
  • в первую очередь проверяем логи и изучаем, что произошло;
  • определяем временной промежуток, собираём всё, что нужно;
  • исправляем проблемы и мониторим работу системы.