Munin

Понадобилась мне рисовалка графиков под Unix систему, отличная от mrtg — для этого я нашел munin.

munin — очень полезная штука для построения разнообразных графиков.


# cd /usr/ports/
Port: munin-main-1.2.6
Path: /usr/ports/sysutils/munin-main
Info: Collector part of Munin
.........
Port: munin-node-1.2.6_1
Path: /usr/ports/sysutils/munin-node
Info: Node-specific part of Munin
..............
# cd /usr/ports/sysutils/munin-main/
# make install clean
.............
You need a group "munin".
Would you like me to create it [y]? y
...
Would you like me to set up log rotation [y]? y
# cd /usr/ports/sysutils/munin-node/
.....................
# echo 'munin_node_enable="YES"' >> /etc/rc.conf
# mcedit /usr/local/etc/munin/munin-node.conf

Редактируем секцию allow «^127\.0\.0\.1$», если нам нужно складывать графики на другой хост.
Например, на 10.10.1.3 — добавляем:
allow ^10\.10\.1\.3$

Проверяем работоспособность munin-node:

# /usr/local/etc/rc.d/munin-node.sh start
Starting munin_node.
# ps ax | grep munin
4289 ?? Ss 0:00.06 /usr/local/sbin/munin-node (perl)
# telnet localhost 4949
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# munin node at fw.domain.pp.ua
здесь шустро набираем:
version
и жмем enter, получаем:
munins node on fw.domain.pp.ua version: 1.2.6
пишем и enter:
quit
Connection closed by foreign host.

Отлично, первую часть сделали.. Двигаемся дальше..

Настраиваем Munin-Main, сбор всех отчётов и построение графиков:
Так, как я установку производил на локальной машине, то при сборке munin-main сам правильно сконфигурировал файл /usr/local/etc/munin/munin.conf. А если бы его установка происходила на другом сервере, то в конфиг необходимо было бы добавить или отредактировать записи вида:
[fw.domain.pp.ua]
address 127.0.0.1
use_node_name yes
на:
[fw.domain.pp.ua]
address 10.10.1.1
use_node_name yes

и так далее, для каждой машины, где fw.domain.pp.ua — имя машины.

Также мы можем исправить секцию в которой говорится о том где будут лежать логи и графики.
После чего дадим правильные права на папку где лежат графики:

# chown -R munin:munin /usr/local/www/munin/


# su munin
$ crontab -e
прописать, если его нет - такое содержимое:
MAILTO=root
*/5 * * * * /usr/local/bin/munin-cron

На некоторых форумах когда то встречал, что munin может ругаться на отсутствие некоторых перловых пакетов таких, как p5-DateTime-HiRes, поэтому на всякий случай проинсталим:

# cd /usr/ports/devel/p5-DateTime-HiRes

На этом, с munin-main покончено. Следующая задача перед нами — отображение статистики в веб-браузере. Для этого, нам нужно настроить вебсервер, например apache — который уже установлен на данном сервере.

Добавляем следующие строки в конфиг апача /usr/local/etc/apache/httpd.conf


Alias /stat "/usr/local/www/munin/"
<Directory "/usr/local/www/munin">
  Options -Indexes MultiViews FollowSymlinks
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

И перезагружаем apache:

# apachectl restart

Кому не нравится использовать алиасы в apache, могут сделать запись в виртуальный хост, естественно при этом в dns тоже должен быть отклик на имя которое будете указывать в виртуальном хосте:


# mcedit /usr/local/etc/apache/httpd.conf
<VirtualHost *:80>
  ServerAdmin stat@domain.pp.ua
  ServerName stat.domain.pp.ua
  DocumentRoot /usr/local/www/munin
  ErrorLog /var/log/munin-httpd.log
  CustomLog /var/log/munin-httpd-common.log common
  AccessFileName .htaccess
  <Directory /usr/local/www/munin>
   Options -Indexes MultiViews FollowSymlinks
   AllowOverride None
   Order allow,deny
   Allow from all
  </Directory>
</VirtualHost>

На всякий случай напишу про установку модулей для munin, хотя их под freebsd собралось не мало.
Для проверки того, какие у нас модули установлены, выполним ряд команд:


telnet localhost 4949
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# munin node at fw.domain.pp.ua
list
sendmail_mailtraffic sendmail_mailstats processes if_le0 if_errcoll_plip0 df netstat if_le1 if_errcoll_le1 swap if_errcoll_le0 load sendmail_mailqueue ntp_offset if_plip0 cpu df_inode open_files memory exim_mailstats vmstat
fetch swap
swap_in.value 27
swap_out.value 44
.
quit
Connection closed by foreign host.

Команда list — показывает список модулей, а команда fetch _имя_модуля_ — показывает нам его работоспособность.
PS. Оф.сайт с модулями:

Для подключения новых модулей, необходимо создать символическую ссылку на них в каталоге /usr/local/etc/munin/, ну а если их необходимо настроить, то настройка производится в файле /usr/local/etc/munin/plugin-conf.d/plugins.conf.

Для примера, я покажу как подключить плагин Mysql — нужная «весчь» :).
Добавляем в вышеописанный файл /usr/local/etc/munin/plugin-conf.d/plugins.conf такие строки:


[mysql*]
env.mysqlopts -u root -p пароль_рута
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow

и перестартовываем munin:

# /usr/local/etc/rc.d/munin-node.sh restart

Порядок, заходим в браузере на http://stat.domain.pp.ua и наслаждаемся..

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=839


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

1 комментарий

  1. А если не хватает плагинов «из коробки», то всегда можно написать свой — например плагин для мониторинга nginx request time — http://letsclearitup.com.ua/debian/pishem-svoy-plagin-dlya-munin-nginx-request-time.html
    И вообще munin довольно мощная штука и очень простая в настройке!

Add your comment now

You must be logged in to post a comment.