img-bg
Как установить Munin на Ubuntu/Debian
VPS/VDS

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

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

Краткое руководство

В кратком руководстве только команды и минимальное количество информации.

Шаг 1 - Установка Необходимых Пакетов

sudo apt-get update
sudo apt-get install -y apache2
Чтобы включить функцию динамического масштабирования в графиках, установите следующие пакеты:
sudo apt-get install -y libcgi-fast-perl libapache2-mod-fcgid 
Проверьте включился модуль или нет:
/usr/sbin/apachectl -M | grep -i cgi
Если вывод пустой, то используйте команду:
sudo a2enmod fcgid

Шаг 2 - Установка сервера Munin (master)

Установочные пакеты для Munin доступны во всех репозиториях ubuntu/centos/debian, поэтому его можно установить с помощью менеджера пакетов дистрибутива.
sudo apt-get install -y munin

Шаг 3 - Настройка сервера Munin (master)

cd /etc/munin
sudo nano munin.conf
Найдите следующие строки и раскомментируйте их.
  • dbdir хранит все файлы .rrd, содержащие данные мониторинга;
  • htmldir содержит изображения и файлы сайта;
  • logdir ведёт журналы;
  • rundir хранит файлы состояния;
  • tmpldir содержит HTML-шаблоны.
dbdir     /var/lib/munin
htmldir   /var/cache/munin/www
logdir    /var/log/munin
rundir    /var/run/munin
...
tmpldir /etc/munin/templates
Следующему файлу в каталоге /etc/munin, это apache24.conf. Он символьно связан с  /etc/apache2/conf-available/munin.conf.
sudo nano apache24.conf

Для того, чтобы иметь доступ к веб-версии с любого адреса необходимо заменить:
<Directory /var/cache/munin/www>
    Require all granted
    Options None
</Directory>
...
<Directory /usr/lib/munin/cgi>
    Require all granted
...
</Directory>
Сохраните и закройте файл. Затем перезагрузите Munin и Apache:
sudo systemctl restart munin-node
sudo systemctl restart apache2

Шаг 4 - Добавление клиента

Перейдите на клиент Munin, обновите базу данных пакетов и установите пакет munin node:
sudo apt-get update
sudo apt-get install -y munin-node
После успешного завершения установки конфигурация клиента должна находиться в каталоге /etc/munin. Откройте его с помощью nano:
sudo nano /etc/munin/munin-node.conf
Ближе к середине файла найдите строку allow ^127.0.0.1$ и измените ее так, чтобы она отражала IP-адрес сервера Munin (master). Обратите внимание, что IP-адрес находится в формате regex, поэтому, предполагая, что IP-адрес главного сервера будет 123.46.78.100:
allow ^123\.456\.78\.100$
Сохраните и закройте файл. Затем перезагрузите Munin:
sudo systemctl restart munin-node
Вернитесь на master Munin и откройте конфигурационный файл:
sudo nano /etc/munin/munin.conf
Все, что нам нужно сделать в этом файле, - это вставить дерево хоста для (удаленного) узла. Самый простой подход к этому-скопировать и изменить дерево хоста мастера. Обязательно замените node-ip-address на IP-адрес добавляемого узла:
[MuninNode]
    address node-ip-address
    use_node_name yes
Сохраните и закройте файл. Затем перезагрузите Apache:
sudo systemctl restart apache2
Munin проверяет наличие новых узлов каждые 5 минут.
Установка Munin завершена. Если необходимо добавить плагины - перейдите на пункт в полном руководстве

Полное руководство

Шаг 1 - Установка Необходимых Пакетов

Сначала мы начнем работать над сервером Munin (master Munin). Перед установкой Munin необходимо установить несколько зависимостей.

Хотя Munin может работать с большинством популярных веб-серверов, таких как Nginx и Lighttpd, по умолчанию он предназначен для работы с веб-сервером Apache. Поэтому убедитесь, что Apache установлен и настроен на munin master. Если он еще не установлен, сделайте это с помощью:
sudo apt-get update
sudo apt-get install -y apache2
Чтобы включить функцию динамического масштабирования в графиках, установите следующие пакеты:
sudo apt-get install -y libcgi-fast-perl libapache2-mod-fcgid 
После установки этих двух пакетов модуль fcgid должен был быть включен. Чтобы перепроверить, введите:
/usr/sbin/apachectl -M | grep -i cgi
Вывод должен быть такой:
fcgid_module (shared) 
Если вывод пустой, то он не включен. Затем вы можете включить его с помощью:
sudo a2enmod fcgid
При выполнении команды apachectl может возникнуть следующее предупреждение:
Could not reliably determine the server's fully qualified domain name ...
Apache все равно будет работать с Мунином с этим предупреждением.

Шаг 2 - Установка сервера Munin (master)

Установочные пакеты для Munin доступны во всех репозиториях ubuntu/centos/debian, поэтому его можно установить с помощью менеджера пакетов дистрибутива.
sudo apt-get install -y munin

Шаг 3 - Настройка сервера Munin

Основной конфигурационный файл munin master - munin.conf и другие файлы, необходимые для его работы, можно найти в каталоге /etc/munin и его подкаталогах.

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

Чтобы начать его изменять:
cd /etc/munin
sudo nano munin.conf
Найдите следующие строки и раскомментируйте их.
  • dbdir хранит все файлы .rrd, содержащие данные мониторинга;
  • htmldir содержит изображения и файлы сайта;
  • logdir ведёт журналы;
  • rundir хранит файлы состояния;
  • tmpldir содержит HTML-шаблоны.
dbdir     /var/lib/munin
htmldir   /var/cache/munin/www
logdir    /var/log/munin
rundir    /var/run/munin
...
tmpldir /etc/munin/templates
Затем найдите дерево хостов в munin.conf:
[local]
    address 127.0.0.1
    use_node_name yes
Вы можете изменить название которое будет отображаться в munin:
[Master Munin Server]
    address 127.0.0.1
    use_node_name yes
После этого сохраните и закройте файл.

Переходим к следующему файлу в каталоге /etc/munin, это apache24.conf, который содержит конфиг для Apache. Он символьно связан с  /etc/apache2/conf-available/munin.conf.
sudo nano apache24.conf
Для того, чтобы иметь доступ к веб-версии с любого адреса необходимо заменить:
<Directory /var/cache/munin/www>
    Require all granted
    Options None
</Directory>
...
<Directory /usr/lib/munin/cgi>
    Require all granted
...
</Directory>
Сохраните и закройте файл. Затем перезагрузите Munin и Apache:
sudo systemctl restart munin-node
sudo systemctl restart apache2

Шаг 4 - Добавление клиента

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

Перейдите на клиент Munin, обновите базу данных пакетов и установите пакет munin node:
sudo apt-get update
sudo apt-get install -y munin-node
После успешного завершения установки конфигурация клиента должна находиться в каталоге /etc/munin. Откройте его с помощью nano:
sudo nano /etc/munin/munin-node.conf
Ближе к середине файла найдите строку allow ^127.0.0.1$ и измените ее так, чтобы она отражала IP-адрес сервера Munin (master). Обратите внимание, что IP-адрес находится в формате regex, поэтому, предполагая, что IP-адрес главного сервера будет123.46.78.100:
allow ^123\.456\.78\.100$
Сохраните и закройте файл. Затем перезагрузите Munin:
sudo systemctl restart munin-node
Вернитесь на master Munin и откройте конфигурационный файл:
sudo nano /etc/munin/munin.conf
Все, что нам нужно сделать в этом файле, - это вставить дерево хоста для (удаленного) узла. Самый простой подход к этому-скопировать и изменить дерево хоста мастера. Обязательно замените node-ip-address на IP-адрес добавляемого узла:
[MuninNode]
    address node-ip-address
    use_node_name yes
Сохраните и закройте файл. Затем перезагрузите Apache:
sudo systemctl restart apache2
Munin проверяет наличие новых узлов каждые 5 минут. Подождите несколько минут, затем перезагрузите веб-интерфейс мастера Munin. Вы должны увидеть запись для узла. Если вы его еще не видите, повторите попытку через 5 минут. Используя этот метод, вы можете добавить столько узлов, сколько вам нужно для мониторинга.

Шаг 5 - Добавление плагинов

Munin контролирует систему с помощью плагинов-скриптов, и по умолчанию установлено и активировано около десятка наборов плагинов. Полный список доступных плагинов находится в каталоге /usr/share/munin/plugins. Чтобы узнать, какие плагины можно использовать в вашей системе, Munin предоставляет следующую команду:
sudo munin-node-configure --suggest
Вывод:
Plugin                       | Used | Suggestions
------                        | ---- | -----------
cpu                          | yes  | yes
cpuspeed                  | yes  | yes
cupsys_pages             | no   | no [could not find logdir]
df                            | yes  | yes
df_inode                    | yes  | yes
ip_                           | no   | yes
ipmi_                        | no   | no [missing ipmitool command]
Если в столбце Suggestions содержится yes, то такой плагин можно использовать. Если в столбце Used находится yes, то такой плагин уже используется. Если оба столбца содержат no, то такой плагин не используется и его нельзя использовать в данной системе.
На сервере и клиенте Munin список доступных плагинов можно найти в каталоге /etc/munin/plugins.
Пакет munin-plugins-extra должен был установиться во время установки Munin. Если это не так, установите его сейчас:
sudo apt-get install munin-plugins-extra
Чтобы включить доступный плагин, который в данный момент не используется, создайте для него символическую ссылку из каталога /usr/share/munin/plugins в каталог /etc/munin/plugin.

Например, чтобы включить модуль fail2ban, сначала установите fail2ban:
sudo apt-get install fail2ban
Затем создайте символическую ссылку, которая включает плагин Munin:
sudo ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins
Перезагрузите Munin
sudo systemctl restart munin-node
Подождите несколько минут, перезапустите веб-интерфейс. После этого на экране появятся графики для Fail2ban в категории Network под названием Hosts blacklisted by fail2ban на сервере Munin master.

Устранение неполадок

Если у вас возникли проблемы при конфигурировании клиента или сервера Munin, или же при настройке их взаимодействия, проверьте сообщения об ошибках в лог-файлах:
  • Munin master: /var/log/munin/munin-update.log
  • Munin node: /var/log/munin/munin-node.log

Заключение

Munin можно настроить для отслеживания поведения системы, в которой он установлен. Добавить удалённые клиенты очень просто, для этого достаточно установить на удалённую машину пакет munin-node и настроить ее взаимодействие с сервером.
Также Munin может использовать плагины, но не все они доступны в определённых системах. За дополнительной информацией можно обратиться к сайту проекта.