Главная страница | Добавить в избранное    
   

 

» Статьи » Munin - статистика сервера

   
main1
pix
 

Munin - статистика сервера

Статьи  
pix pix pix

 

Munin - утилита для сбора статистических данных по различным параметрам одного или нескольких серверов. Munin состоит из двух частей: клиент (munin-node) и сервер (munin-master), благодаря чему на одном компьютере можно собирать и просматривать в удобном виде статистику по многим другим. В этой статье будет рассмотрена установка и настройка Munin и его плагинов на сервере с FreeBSD и панелью управления DirectAdmin.

 

Клиентская часть Munin постоянно находится в памяти компьютера и собирает статистику только по запросу сервера munin-master. Все данные на сервер передаются в открытом виде и единственный способ ограничения доступа - ограничение по IP. Так что для улучшения безопасности, если клиент и сервер находятся на разных компьютерах, дополнительно лучше использовать Firewall. Клиентская часть Мунина написана на Perl.

 

Серверная часть опрашивает клиентов, хранит базу и создает графики. Запускается сервер по крону раз в пять минут (значение можно изменить). При запуске сервер запрашивает и получает данные со всех клиентов через порт 4949 (можно перенастроить) и сохраняет их с помощью RRDTool. RRDTool хранит данные в виде карусели — при заполнении базы до определенного размера самые старые данные перезаписываются новыми, что дает возможность хранить только актуальную информацию. Ротация данных контролирует их размер, что не позволит им со временем заполнить все свободное пространство диска.

 

Установка и настройка Мунин

 

Установку Munin лучше всего проводить из портов FreeBSD: /usr/ports/sysutils/munin-node/ и /usr/ports/sysutils/munin-master/. Перед установкой нужно обязательно обновить все установленные порты, так как в противном случае при установке Мунин может всплыть большое количество ошибок.

 

Также, желательно перед установкой серверной части Munin установить порт /usr/ports/databases/rrdtool/. Несмотря на то, что rrdtool автоматически установится при инсталляции Мунин, во избежание ошибок в ходе установки, лучше его установить заранее.

 

Установка и настройка munin-node

 

При установке munin-node будет подтянуты все необходимые зависимости, в которых все параметры лучше оставить по умолчанию.

 

# cd /usr/ports/sysutils/munin-node/
# make install clean

 

На единственный вопрос, который будет задан при установке и непосредственно относится к munin-node: "Would you like me to set up log rotation [y]?" - лучше ответить да (y).

 

После того, как инсталляция Munin завершена, нужно добавить строки в файл /etc/rc.conf, которые позволят запускать munin_node сразу при загрузке FreeBSD:

 

# MUNIN
munin_node_enable="YES"

 

Далее необходимо отредактировать конфигурационный файл munin-node, в котором для начала следует только проверить директиву allow (по умолчанию 127.0.0.1): /usr/local/etc/munin/munin-node.conf.

 

munin-node.conf
...
# Насколько подробно вести журнал:
# 1 - ничего не записывать
# 10 - записывать все, что можно (режим отладки)
log_level 4
...
# 1 - (по умолчанию) режим демона
# 0 - режим отладки, при котором munin-node будет все время в консоли
background 1
...
# Пользователь и группа владельца процесса.
# Если это НЕ root, то должны быть установлены права
# на получение ID каждого имени пользователя,
# от имени которых запускается плагин проверки
user root
group wheel
...
# Список IP-адресов, с которых разрешены подключения серверу.
# IP-адрес записывается в виде регулярного выражения (RegExp)
# CIDR-style (например 192.168.0.0/24) не поддерживается
# (включить поддержку можно при сипользовании cidr_allow, cidr_deny,
#  но для этого требуется Net::CIDR perl module)
# Можно использовать более оной строки с allow
# Если сервер находится там, где и клиент,
# можно оставить только одну строку:
allow ^127\.0\.0\.1$
...
# К какому адресу привязать munin-node
# * - все
host *

# Порт, который будет слушать munin-node
port 4949

 

Далее нужно запустить процесс:

 

# cd /usr/local/etc/rc.d/
# ./munin-node start

 

Если процесс уже был запущен, то после редактирования конфигурационного файла для вступления изменений в силу нужно остановить и запустить munin-node (stop, start).

 

Проверить работоспособность munin-node лучше всего подключившись по telnet telnet 127.0.0.1 4949. Если подключение пройдет успешно, то тогда можно запросить версию (version), плагины (list) или выйти (quit).

 

# telnet 127.0.0.1 4949
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
# munin node at XXX

 

Если подключение не удалось, посмотреть, запущен ли процесс munin node можно так:

 

# ps ax | grep muni

 

Установка и настройка munin-master

 

Серверная часть Мунин munin-master устанавливается так же, из портов:

 

# cd /usr/ports/sysutils/munin-master/
# make install clean

 

При установке munin-master может вылезти не мало ошибок, так как его работа связана с установкой множества других портов, от которых он зависит. Главное, не опускать руки, искать решение в интернете - и все будет Ок. Для того, чтобы запустить серверную часть Мунина, мне пришлось удалять и заново устанавливать порты pango и rrdtool.

 

Во время установки серверная часть Мунин автоматически добавляет информацию о запуске по расписанию в свой файл cron (пользователь munin /var/cron/tabs/munin). То есть сразу после установки серверная часть уже работает. Проверить, нет ли ошибок при её запуске можно вручную запустив:

 

# cd /usr/local/bin/
# ./munin-cron
This program will easily break if you run it as root as you are
trying now.  Please run it as user 'munin'.  The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

 

Как видно из сообщения, скрипт не желает запускаться под рутом, и подсказывает, к сожалению не правильно, как запустить его под пользователем munin. Чтобы запустить серверную часть из под пользователя munin можно сделать так:

 

# su -m munin
# cd /usr/local/bin/
# ./munin-cron

 

В результате выполнения, если нет никаких ошибок скрипт "задумается" на несколько секунд и снова появится приглашение системы для ввода команд. Результат выполнения скрипта - вся собранная статистика записывается сюда: /usr/local/www/munin/.

 

Все настройки munin-master хранятся в той же директории, что и munin-node: /usr/local/etc/munin/, в файле munin.conf. Если серверная и клиентские части Мунин расположены на одном сервере - на первое время здесь можно оставить все без изменений.

 

munin.conf - описание некоторых настроек
...
# По умолчанию, с версии 2.0 все графики создаются во время их просмотра (CGI)
# Для уменьшения нагрузки на сервер, что повлечет за собой увеличение объема данных
# можно установить генерацию графиков по крону
# Подробнее тут: http://munin-monitoring.org/wiki/CgiHowto2
#graph_strategy cron
...

 

Просматривать данные мониторинга удобнее через web, для чего нужно указать web-серверу Apache: по какому адресу будет доступна статистика и где она лежит. В файл /etc/httpd/conf/extra/httpd-alias.conf (если на сервере установлена панель DirectAdmin) нужно добавить строку:

 

Alias /munin-stat "/usr/local/www/munin"

 

В этом случае статистика будет доступна через веб по адресу: [любой_хост_на_сервере]/munin-stat (http://myserver.com/munin-stat).

 

Последний штрих в настройке - изменить пользователя и пароль на директорию в /usr/local/www/munin/.htaccess при помощи редактирования этого файла и утилиты, поставляемой совместно с Apache: htpasswd.

 

Установка и настройка плагинов

 

Просмотреть, какие плагины уже установлены: munin-node-configure. Напротив активных плагинов будет написано yes, тех, что не работают, соответственно, no:

 

# munin-node-configure
Plugin                     | Used | Extra information
------                     | ---- | -----------------
amavis                     | no   |
apache_accesses            | no   |
apache_processes           | no   |
apache_volume              | no   |
...
courier_mta_mailvolume     | no   |
cpu                        | yes  |
cupsys_pages               | no   |
dev_cpu_                   | no   |
df                         | yes  |
...

 

Чтобы посмотреть, почему не работают плагины, которые уже установлены - нужно добавить флаг --suggest (информация будет отображена в колонке Suggestions):

 

# munin-node-configure --suggest
Plugin                     | Used | Suggestions
------                     | ---- | -----------
amavis                     | no   | no
apache_accesses            | no   | no [LWP::UserAgent not found]
apache_processes           | no   | no [LWP::UserAgent not found]
apache_volume              | no   | no [LWP::UserAgent not found]
apc_envunit_               | no   | no [no units to monitor]
courier_mta_mailqueue      | no   | no [spooldir not found]

 

Инструменты по отладке плагинов

 

  • munin-run PLUGIN_NAME - ручной запуск плагинов для проверки их работоспособности.

 

Статистика по Apache

 

Правда вот устранить причину по такой "исчерпывающей" информации весьма не просто... Например сообщение "LWP::UserAgent not found" говорит о том, что не хватает Perl-библиотеки "LWP::UserAgent". Чтобы уcтранить эту проблему нужно установить порт /usr/ports/www/p5-libwww.

 

Теперь, после запуска munin-node-configure --suggest, видим уже другое сообщение: [Port 80: Forbidden] или [no apache server-status or ExtendedStatus missing on ports 80]. Эти сообщения говорят о том, что нет доступа к информации server-status от Apache. Чтобы открыть доступ, необходимо отредактировать файл /etc/httpd/conf/extra/httpd-info.conf (путь к файлу верен, если Apache был установлен DirectAdmin`ом) - дать доступ к /server-status только для 127.0.0.1.

 

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

 

После внесенных изменений требуется перезагрузить Apache. Теперь вывод munin-node-configure --suggest имеет такой вид:

 

# munin-node-configure --suggest
Plugin                     | Used | Suggestions
------                     | ---- | -----------
...
apache_accesses            | no   | yes
apache_processes           | no   | yes
apache_volume              | no   | yes
...

 

Для подключения новых плагинов осталось только добавить символические ссылки на них в /usr/local/etc/munin/plugins/ и перезагрузить munin-node. Создать команды для создания символических ссылок поможет такая команда:

 

# munin-node-configure --shell
ln -s '/usr/local/share/munin/plugins/apache_accesses' '/usr/local/etc/munin/plugins/apache_accesses'
ln -s '/usr/local/share/munin/plugins/apache_processes' '/usr/local/etc/munin/plugins/apache_processes'
ln -s '/usr/local/share/munin/plugins/apache_volume' '/usr/local/etc/munin/plugins/apache_volume'
ln -s '/usr/local/share/munin/plugins/munin_stats' '/usr/local/etc/munin/plugins/munin_stats'

 

Как видно, стал доступен еще один, ранее недоступный плагин: munin_stats.

 

Статистика по MySQL

 

Для работы плагина Munin по сбору статистики о базе данных MySQL требуется порт: p5-DBD-mysql[XX] (/usr/ports/databases/), где [XX] - версия MySQL базы. Также, необходимо добавить настройки root-пользователя в файл /usr/local/etc/munin/plugin-conf.d/plugins.conf:

 

...
[mysql*]
# Нужно для: mysql_; mysql_bytes; mysql_queries; mysql_slowqueries;
user root
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
env.mysqluser root
env.mysqlpassword PASSWORD
env.mysqlopts -u root -pPASSWORD
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow

[mysql_innodb]
env.mysql /usr/local/mysql/bin
env.mysqlopts --user=root --password=PASSWORD --host=127.0.0.1
env.warning 2147483648
env.critical 1073741824

...

 

Более подробно настройки написаны в самих файлах плагинов, например в начале файла /usr/local/share/munin/plugins/mysql_.

 

Статистика температуры, скорости вентиляторов, напряжения

 

Чтобы контролировать параметры температуры на материнской плате, скорости вентиляторов и напряжения питания можно установить порт mbmon: /usr/ports/sysutils/mbmon. К сожалению, он будет работать не на всех системах. Установка:

 

# ln -s /usr/local/share/munin/plugins/mbmon_ /usr/local/etc/munin/plugins/mbmon_FAN
# ln -s /usr/local/share/munin/plugins/mbmon_ /usr/local/etc/munin/plugins/mbmon_Voltage
# ln -s /usr/local/share/munin/plugins/mbmon_ /usr/local/etc/munin/plugins/mbmon_TEMP

 

Потом вносятся изменения в конфигурационный файл плагинов, где указывается путь к утилите mbmon: /usr/local/etc/munin/plugin-conf.d/plugins.conf:

 

...
[mbmon*]
env.mbmon /usr/local/bin/mbmon
...

 

После чего munin-node нужно остановить и запустить. Через некоторое время в web-интерфейсе статистики Мунин появится новый раздел: "sensors" с тремя графиками.

 

Мониторинг HDD

 

Мониторинг жестких дисков можно включить с помощью плагина smart_. Для его работы необходимо установить порт /usr/ports/sysutils/smartmontools. После установки порта стоит проверить его работу (вместо ada1 нужно указать свой HDD):

 

# smartctl -a /dev/ada1

 

Если все ок - утилита корректно читает SMART винчестера, то можно приступать непосредственно к настройке плагина smart_.

 

Первым делом необходимо указать корректный путь к Phyton в первой строке файла самого плагина /usr/local/share/munin/plugins/smart_: заменить #!/usr/bin/python на #!/usr/local/bin/python2. Эту замену нужно проводить только в системе под управлением FreeBSD, иначе вылезет ошибка: "Can't exec... Permission denied at Munin". Далее, внести в конфиг плагинов Munin /usr/local/etc/munin/plugin-conf.d/plugins.conf:

 

...
[smart_*]
user root
env.smartpath /usr/local/sbin/smartctl
...

 

И после этого прописать символические ссылки на плагин - количество ссылок должно быть равно количеству наблюдаемых винчестеров, например если установлено два винчестера ada0 и ada1 то файлы симлинка: smart_ada0, smart_ada1:

 

# ln -s /usr/local/share/munin/plugins/smart_ /usr/local/etc/munin/plugins/smart_ada0
# ln -s /usr/local/share/munin/plugins/smart_ /usr/local/etc/munin/plugins/smart_ada1



Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
 
Автор: hellevil | 23-01-2014, 14:39 | Просмотров: 3 369
 
pix
  Новости по теме    
pix pix pix
  • Сборс пароля Windows Server 2008 и 2008R2.
  • Portmaster
  • Установка точного времени на FreeBSD
  • Копирование данных с помощью rsync + ssh
  • Multicast во FreeBSD без igmpproxy replacement on netgraph
  •  
     
     
    pix
     
    pix
    search
    navi
    poll
    calendar
    «    Октябрь 2020    »
    ПнВтСрЧтПтСбВс
     1234
    567891011
    12131415161718
    19202122232425
    262728293031 
    main4
    pix pix pix

    2007 © www.DesktopBSD.ru
    Все права сохранены