Простой мониторинг серверов. Munin

cpu-dayЕсть много мощных открытых систем мониторинга, например Zabbix, Nagios, но их настройка – отдельная и достаточно непростая задача. А все возможности нужны только в случае сложных распределенных систем. А если у нас пара серверов, маршрутизаторов и десктопов? И есть потребность просто отслеживать динамику изменения нагрузки на систему, выявлять узкие места и предотвращать сбои из-за нехватки ресурсов? Общую картину нарисует Munin.

Установка под Debian тривиальна до безобразия (сервер + агент):

$ sudo apt-get install apache2 munin munin-node munin-plugins-extra ethtool

После этого все само конфигурируется и запускается. Результат будет в каталоге http://localhost/munin. Доступ к агенту munin-node по-умолчанию только с 127.0.0.1. Потом можно подредактировать в /etc/munin/munin-node.conf.

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

$ sudo munin-node-configure
$ sudo munin-node-configure --suggest

Возможностей много. Разберу конфигурацию  нескольких дополнительных плагинов.

Состояние жестких дисков (S.M.A.R.T)

$ sudo apt-get install smartmontools
$ sudo fdisk -l

По выводу fdisk видим, что физических дисков у нас 2: /dev/sda, /dev/sdb

$ sudo ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sdа
$ sudo ln -s /usr/share/munin/plugins/smart_ /etc/munin/plugins/smart_sdb

Если хотим сразу сделать плагин доступным, рестартуем агента:

$ sudo /etc/init.d/munin-node restart

Получение информации  ACPI

$ sudo apt-get install acpi
$ sudo ln -s /usr/share/munin/plugins/acpi /etc/munin/plugins/acpi

Получение информации с сенсоров

$ sudo apt-get install lm-sensors
$ sudo sensors-detect

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

$ sudo modprobe i2c-i801
$ sudo modprobe lm85

$ sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan
$ sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt
$ sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp

Дополнительная полезная информация

Довольно легко можем получать статистику по сетевым подключениям и пользователям в системе (и еще много что):

$ sudo ln -s /usr/share/munin/plugins/netstat /etc/munin/plugins/netstat
$ sudo ln -s /usr/share/munin/plugins/users /etc/munin/plugins/users

За дополнительной информацией по плагинам лучше всего обращаться к исходному коду плагинов в каталоге /usr/share/munin/plugins и к документации в /usr/share/doc/munin.

Настройка сервера и агента

Если агент стоит на удаленном компьютере, в его конфигурации необходимо добавить адрес своего сервера или серверов в список разрешенных. Делается это в файле /etc/munin/munin-node.conf:

$ sudo nano /etc/munin/munin-node.conf
# add your server IP
allow ^91\.90\.xxx\.xxx$
allow ^127\.0\.0\.1$

После этого агента нужно перегрузить.

Добавление нового удаленного устройства в список (на сервере Munin):

$ sudo nano /etc/munin/munin.conf
[rat.homeunix.net]
address rat.homeunix.net
use_node_name yes

Через определенный интервал (по умолчанию – 5 минут) информация на вебе обновится и появятся данные по новому серверу. В принципе, вот и все. Как собирать информацию с сетевых устройств (в том числе и с компьютеров под управлением Windows) по SNMP расскажу, если кому-то будет интересно.

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

6 Comments

flMay 18th, 2010 at 18:36

Может знаешь как можно переименовать существующий сервак из localdomain:localhost

Плюшевый КрысMay 18th, 2010 at 18:53

Что мешает прописать корректно сервер в munin.conf?

[mail.domain.lv]
address 12.13.14.15
use_node_name yes

Если статистика набралась за какое-то время и терять ее не хочется, то придется повозиться с переименованием и копированием данных /var/lib/munin. Я на это время не тратил.

EugeneFebruary 5th, 2011 at 12:18

Прописываю в munin.conf новый сервер типа как:

[mail.domain.lv]
address 12.13.14.15
use_node_name yes

…но графики не строятся. Еще есть Localhost, для него строятся. Сервис после настройки перезапускал. Не знаете, в чём проблема?

Плюшевый КрысFebruary 5th, 2011 at 13:23

Eugene
Трудно сказать в чем проблема. Скорее всего, сами быстро найдете ответ в логах /var/log/munin.
Особенно проверьте права доступа в каталоги, в которые пишет Munin и где он хранит свои базы (/var/lib/munin). Расположение каталогов для Debian, возможно, у вас они расположены по-другому.

AbdulaJune 13th, 2011 at 14:06

Наткнулся на эту статью о Munin, единственную, написанную толковым человеческим языком.
В данный момент сражаюсь с плагинами для сенсоров – температуру датчиков, дисков, обороты вентиляторов.
Вроде все просто до предела, прописал на плагины симлинки, но отображение упорно не идет.
Все остальные дефолтовые параметры – сеть, процессор, диски – работают на ура.
Что же не хватает этим гребаным сенсорам для работы в Munin? Ведь в консоли их параметры выдаются вполне нормально.

Плюшевый КрысJune 14th, 2011 at 10:35

Опиши по шагам где проблема. В консоли плагины отрабатывают без ошибок?

Leave a comment

Your comment