Простой мониторинг серверов. Munin
Есть много мощных открытых систем мониторинга, например 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 расскажу, если кому-то будет интересно.
От чужих глаз информацию лучше всего защитить, например, как описано здесь: “Прячем свои маленькие веб-секреты“.
Может знаешь как можно переименовать существующий сервак из localdomain:localhost
Что мешает прописать корректно сервер в munin.conf?
[mail.domain.lv]
address 12.13.14.15
use_node_name yes
Если статистика набралась за какое-то время и терять ее не хочется, то придется повозиться с переименованием и копированием данных /var/lib/munin. Я на это время не тратил.
Прописываю в munin.conf новый сервер типа как:
[mail.domain.lv]
address 12.13.14.15
use_node_name yes
…но графики не строятся. Еще есть Localhost, для него строятся. Сервис после настройки перезапускал. Не знаете, в чём проблема?
Eugene
Трудно сказать в чем проблема. Скорее всего, сами быстро найдете ответ в логах /var/log/munin.
Особенно проверьте права доступа в каталоги, в которые пишет Munin и где он хранит свои базы (/var/lib/munin). Расположение каталогов для Debian, возможно, у вас они расположены по-другому.
Наткнулся на эту статью о Munin, единственную, написанную толковым человеческим языком.
В данный момент сражаюсь с плагинами для сенсоров – температуру датчиков, дисков, обороты вентиляторов.
Вроде все просто до предела, прописал на плагины симлинки, но отображение упорно не идет.
Все остальные дефолтовые параметры – сеть, процессор, диски – работают на ура.
Что же не хватает этим гребаным сенсорам для работы в Munin? Ведь в консоли их параметры выдаются вполне нормально.
Опиши по шагам где проблема. В консоли плагины отрабатывают без ошибок?