Мониторинг систем при помощи Munin






Продолжая тему мониторинга серверов и рабочих станций, просто невозможно не рассказать о Munin — OpenSource проекте, написанном на Perl и использующем RRDtool. Мониторинг большого числа параметров, красивые и понятные графики, модульная архитектура, работа по принципу «Master-Node» — далеко не полный перечень того, что умеет Munin.


Установка

Архитектура «Master-Node» позволяет вам настроить один-единственный сервер в сети — Master (дальше буду называть его «сервер» для простоты), который будет заниматься сбором информации с других хостов, называемых Node (обзовём его «клиентом»). Невероятно полезная вещь, когда вам нужно мониторить состояние более чем одного компьютера. Таким образом, на каждом клиенте вы настраиваете Munin в режиме «Node», а на сервере — в режиме «Master». Теперь обо всём по порядку.

В очередной раз оговорюсь: все примеры при написании этой статьи взяты из работающих систем под Ubuntu 10.10. Этот факт, на мой взгляд, если и имеет какое-то принципиальное значение, то разве что на стадии установки. Уверен, в своей системе (если это не Ubuntu) вы без труда самостоятельно найдёте и установите необходимые пакеты. В любом случае, вы всегда можете посетить страницу загрузок проекта на SourceForge и в крайнем случае воспользоваться архивом с исходными кодами.

Установка серверной части:

Установка клиентской части (естественно, если хотите мониторить и сам сервер, клиентскую часть нужно установить в том числе и на него):

За собой тянет некоторую кучку зависимостей, не стесняемся — ставим.

Настройка клиента

Конфигурационный файл Node-части Munin находится в /etc/munin/munin-node.conf, является совсем небольшим и понятным. Лично мне пришлось отредактировать всего два параметра: allow и host.

Значением параметра allow должно быть регулярное выражение, описывающее разрешённый IP-адрес, с которого можно подключаться Munin-серверам для получения информации. По умолчанию разрешён только адрес 127.0.0.1. У меня же сервер расположен отдельно, поэтому я слегка подредактировал существующую строку:

Параметров allow можете определить столько, сколько душе угодно, если у вас несколько Munin-серверов.

Второй параметр, host, определяет IP-адрес на котором Munin будет ожидать входящие подключения. Он тоже по умолчанию разрешает подключения только на интерфейс 127.0.0.1. исправляем, не забывая, что здесь требуется уже не регулярное выражение, а обычная строка с IP-адресом:

Остальные параметры я пока не трогал, ибо незачем. Возможно, вы захотите изменить номер порта, на котором будет висеть Munin (порт по умолчанию: 4949). Для этого необходимо изменить значение параметра port на требуемое.

Настройка сервера

Конфигурационный файл Master-части Munin располагается в /etc/munin/munin.conf. Он чуточку более объёмный, но также предельно прост и понятен. Оставив все параметры как есть, мне пришлось добавить лишь описания расположения клиентов в сети.

Подключение к локальному клиенту (работает на самом сервере):

Подключение к клиенту в локальной сети:

Подключение к ещё одному клиенту в локальной сети:

Конечно же, настройки Munin более гибкие, и не ограничены лишь тем, что показано выше. Однако, оставив всё по умолчанию, я пока что доволен и лезть в дебри не захотелось. Если вам нужно что-то, «но с перламутровыми пуговицами», всегда можно открыть man munin.conf и man munin-node.conf, в которых и найти ответы на волнующие вопросы.

Запуск

Munin-Node запускается при помощи Upstart на стадии загрузки системы. Если хотите запустить его вручную, воспользуйтесь командой:

Munin-Master запускается cron'ом каждые пять мин (по умолчанию). То есть, он не работает в режиме демона, как Munin-Node и никаких манипуляций по его запуску-перезапуску производить не нужно. Crontab для запуска Munin-Master в моей Ubuntu расположился в /etc/cron.d/munin. Кому интересно, могут заглянуть на предмет того, как Master запускается.

Настройка Apache

Конфигурационный файл Munin для Apache располагается в /etc/munin/apache.conf символическая ссылка на который сделана из /etc/apache2/conf.d/munin. Исправьте значение директивы Allow таким образом, чтобы получить доступ к отчётам с нужных хостов. По умолчанию доступ разрешён только с localhost:

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

После того, как отредактируете конфигурационный файл, необходимо перезагрузить Apache:

Теперь можно просматривать отчёты, открыв в браузере URL http://yourserver/munin/.

Плагины

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

Графики

На этом, можно сказать, всё. Речь, конечно, идёт о запуске Munin в его дефолтной конфигурации, которой для моих нужд оказалось более, чем достаточно. Напоследок, несколько сриншотов для разжигания аппетита.

Загрузка системы, за неделю:

Использование памяти, за месяц:

NFS-сервер, за день:

Подключения по SSH, за день: