International conference of developers
and users of free / open source software

Мониторинг Linux/FreeBSD серверов

Николай Маржан, Киев, Украина, PortaOne, Inc.

LVEE 2011

Purposes and functions of monitoring systems are discussed, as far as general approaches to analyze the diagnostic parameters of a server. Observed information is classified into parameters received from hardware maintenance, operating system, services and typical database. Sample diagnostic parameters are presented for each category.

К стандартным целям проводимого на серверах мониторинга можно отнести:

  • Отслеживание критических значений диагностических параметров состояния и уведомление инженеров об их появлении.
  • Накопление статистической информации для последующего анализа.

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

Даже если проблема носит временный характер (например, стопроцентная загрузка процессора, возникшая спонтанно и затем прекратившаяся через 20 минут), выяснить причину такого поведения можно только тогда, когда проблема присутствует (причиной могла быть удаленная DOS-атака).

Накопление статистической информации происходит обычно в 2-х видах:

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

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

  • Увидеть, в каком состоянии находился сервер в любой момент времени в прошлом. Мы можем быстро понять, чем отличается сегодняшнее состояние от состояния недельной давности.
  • Проследить закономерности возможной взаимосвязи между диагностическими параметрами. Например, когда повышается входящий трафик на сетевом интерфейсе — повышается нагрузка на центральный процессор.
  • Находить противоречия между значениями диагностических параметров. Например, сильно возросло количество запросов на чтение к базе данных, и база данных начала использовать на 1 Гб больше оперативной памяти, но при этом с жесткого диска было считано всего 100 Мб данных.

Диагностическими параметрами состояния для аппаратного обеспечения являются:

  • температура центрального процессора;
  • наличие повреждённых секторов или ошибок чтения на жестком диске;
  • состояние аппаратного RAID-контроллера.

К диагностическим параметрам состояния для операционной системы можно отнести:

  • количество задач, ожидающих выполнения (load average);
  • время простоя центрального процессора (idle);
  • время простоя каждого ядра центрального процессора (idle);
  • размер свободного места на жестком диске;
  • нагрузка на жесткий диск;
  • количество данных в разделе подкачки (swap);
  • активная запись или чтение с раздела подкачки (swaping/paging);
  • количество использованной памяти;
  • количество памяти, потребляемой каждым приложением;
  • скорость передачи данных на сетевых интерфейсах;
  • подтверждение того, что сетевые интерфейсы работают на нужной скорости и в полнодуплексном режиме;
  • количество ошибок и коллизий на сетевых интерфейсах;
  • состояние системных буферов (freebsd vm.zone), mbuf clusters, sendfile-буферов, размер KVM, Pipe KVA;
  • количество открытых файлов, количество открытых сокетов;
  • отсутствие процессов-зомби;
  • отсутствие ошибок сегментации у процессов.

Диагностическими параметрами состояния сервисов являются:

  • подтверждение того, что все критически важные сервисы запущены.
  • подтверждение того, что сервисы успевают вычитывать данные из входящей очереди сетевой подсистемы.
  • подтверждение того, что нет отброшенных данных вследствие полных буферов соединения (dropped due to full socket buffers).

Диагностическими параметрами состояния базы данных MySQL являются:

  • количество максимально использованных соединений;
  • количество запросов, количество медленных запросов;
  • количество операций записи/чтения с жесткого диска;
  • отставание репликации.

Как показал опыт построения систем мониторинга в гетерогенных сетях, подходы и диагностические параметры практически идентичны для операционных систем FreeBSD и Linux; основные различия связаны с мониторингом системных буферов и с некоторыми расхождениями в синтаксисе команд.

presentation