Как установить Munin на Ubuntu/Debian
Munin - это приложение для мониторинга систем, сетей и инфраструктуры, которое предоставляет информацию в виде графиков через веб-браузер. Он разработан на основе архитектуры клиент-сервер и может быть сконфигурирован для мониторинга машины, на которой он установлен (мастер Munin), и любого количества клиентских машин, которые называются узлами.
В этой статье мы установим и настроим Munin для мониторинга сервера, на котором он установлен, и одного узла. Чтобы установить Munin на нескольких узлах, просто следуйте инструкциям по созданию узла в каждой системе.
Краткое руководство
В кратком руководстве только команды и минимальное количество информации.Шаг 1 - Установка Необходимых Пакетов
sudo apt-get update
sudo apt-get install -y apache2
Чтобы включить функцию динамического масштабирования в графиках, установите следующие пакеты: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
Найдите следующие строки и раскомментируйте их.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.htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
...
tmpldir /etc/munin/templates
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:Require all granted
Options None
</Directory>
...
<Directory /usr/lib/munin/cgi>
Require all granted
...
</Directory>
sudo systemctl restart munin-node
sudo systemctl restart apache2
sudo systemctl restart apache2
Шаг 4 - Добавление клиента
Перейдите на клиент Munin, обновите базу данных пакетов и установите пакет munin node:sudo apt-get update
sudo apt-get install -y munin-node
После успешного завершения установки конфигурация клиента должна находиться в каталоге /etc/munin. Откройте его с помощью nano:sudo apt-get install -y munin-node
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:address node-ip-address
use_node_name yes
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 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
Найдите следующие строки и раскомментируйте их.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:htmldir /var/cache/munin/www
logdir /var/log/munin
rundir /var/run/munin
...
tmpldir /etc/munin/templates
[local]
address 127.0.0.1
use_node_name yes
Вы можете изменить название которое будет отображаться в munin:address 127.0.0.1
use_node_name yes
[Master Munin Server]
address 127.0.0.1
use_node_name yes
После этого сохраните и закройте файл.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:Require all granted
Options None
</Directory>
...
<Directory /usr/lib/munin/cgi>
Require all granted
...
</Directory>
sudo systemctl restart munin-node
sudo systemctl restart apache2
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 apt-get install -y munin-node
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:address node-ip-address
use_node_name yes
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, то такой плагин не используется и его нельзя использовать в данной системе.------ | ---- | -----------
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]
На сервере и клиенте 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
Перезагрузите Muninsudo 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 может использовать плагины, но не все они доступны в определённых системах. За дополнительной информацией можно обратиться к сайту проекта.