Продолжая тему мониторинга серверов и рабочих станций, просто невозможно не рассказать о — OpenSource проекте, написанном на Perl и использующем . Мониторинг большого числа параметров, красивые и понятные графики, модульная архитектура, работа по принципу «Master-Node» — далеко не полный перечень того, что умеет Munin.
Установка
Архитектура «Master-Node» позволяет вам настроить один-единственный сервер в сети —Master (дальше буду называть его «сервер» для простоты), который будет заниматься сбором информации с других хостов, называемых Node (обзовём его «клиентом»). Невероятно полезная вещь, когда вам нужно мониторить состояние более чем одного компьютера. Таким образом, на каждом клиенте вы настраиваете Munin в режиме «Node», а на сервере — в режиме «Master». Теперь обо всём по порядку.
В очередной раз оговорюсь: все примеры при написании этой статьи взяты из работающих систем под Ubuntu 10.10. Этот факт, на мой взгляд, если и имеет какое-то принципиальное значение, то разве что на стадии установки. Уверен, в своей системе (если это не Ubuntu) вы без труда самостоятельно найдёте и установите необходимые пакеты. В любом случае, вы всегда можете посетить и в крайнем случае воспользоваться архивом с исходными кодами.
Установка серверной части:
Установка клиентской части (естественно, если хотите мониторить и сам сервер, клиентскую часть нужно установить в том числе и на него):
За собой тянет некоторую кучку зависимостей, не стесняемся — ставим.
Настройка клиента
Конфигурационный файл Node-части Munin находится в /etc/munin/munin-node.conf, является совсем небольшим и понятным. Лично мне пришлось отредактировать всего два параметра: allow и host.
Значением параметра allow должно быть регулярное выражение, описывающее разрешённый IP-адрес, с которого можно подключаться Munin-серверам для получения информации. По умолчанию разрешён только адрес 127.0.0.1. У меня же сервер расположен отдельно, поэтому я слегка подредактировал существующую строку:
allow ^192\.168\.0\.1$
Параметров allow можете определить столько, сколько душе угодно, если у вас несколько Munin-серверов.
Второй параметр, host, определяет IP-адрес на котором Munin будет ожидать входящие подключения. Он тоже по умолчанию разрешает подключения только на интерфейс 127.0.0.1. исправляем, не забывая, что здесь требуется уже не регулярное выражение, а обычная строка с IP-адресом:
host 192.168.0.2
Остальные параметры я пока не трогал, ибо незачем. Возможно, вы захотите изменить номер порта, на котором будет висеть Munin (порт по умолчанию: 4949). Для этого необходимо изменить значение параметра port на требуемое.
Настройка сервера
Конфигурационный файл Master-части Munin располагается в /etc/munin/munin.conf. Он чуточку более объёмный, но также предельно прост и понятен. Оставив все параметры как есть, мне пришлось добавить лишь описания расположения клиентов в сети.
Подключение к локальному клиенту (работает на самом сервере):
[aserver.ashep]
address 127.0.0.1
Подключение к клиенту в локальной сети:
[client1.ashep]
address 192.168.0.2
Подключение к ещё одному клиенту в локальной сети:
[client2.ashep]
address 192.168.0.45
Конечно же, настройки 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:
Allow from localhost 127.0.0.0/8 ::1
Также, при желании, можно настроить аутентификацию, чтобы не заглядывали все, кому не лень. По умолчанию аутентификация отключена:
# AuthUserFile /etc/munin/munin-htpasswd
# AuthName "Munin"
# AuthType Basic
# require valid-user
После того, как отредактируете конфигурационный файл, необходимо перезагрузить Apache:
Теперь можно просматривать отчёты, открыв в браузере URL http://yourserver/munin/.
Плагины
Munin расширяем при помощи плагин, написанных на Bash. При желании вы можете самостоятельно сочинять расширения для Munin, однако сперва проверьте , быть может, не стоит изобретать велосипед.
Графики
На этом, можно сказать, всё. Речь, конечно, идёт о запуске Munin в его дефолтной конфигурации, которой для моих нужд оказалось более, чем достаточно. Напоследок, несколько сриншотов для разжигания аппетита.
Загрузка системы, за неделю:
Использование памяти, за месяц:
NFS-сервер, за день:
Подключения по SSH, за день: