Munin — сетевая утилита мониторинга потребления ресурсов сервера. Munin опрашивает все компьютеры и помнит все полученные данные, которые предоставляет в виде графиков с помощью веб-интерфейса.
Далее мы рассмотрим установку и минимальную настройку munin-node.
В CentOS я использую пакетный менеджер yum, для которого необходимо добавить репозиторий, содержащий необходимый нам пакет.
CentOS/RHEL 6, 32 Bit (i386):
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
CentOS/RHEL 6, 64 Bit x86_64):
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
CentOS/RHEL 5, 32 Bit (i386):
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
CentOS/RHEL 5, 64 Bit (x86_64):
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
После этого установим munin-node и необходимые компоненты:
# yum --enablerepo=epel install munin-node rrdtool
Теперь можно заняться настройкой ноды. В подробности углубляться не буду, основные моменты:
1) в /etc/munin/munin-node.conf добавить строки, разрешающие доступ к ноде.
allow ^127\.0\.0\.1$ allow ^::1$ allow ^8\.8\.8\.8$
Обратите внимание на формат записи ip-адреса
2)
# munin-node-configure --suggest
покажет довольно подробную статистику по плагинам, какие активны, какие нет и иногда недостающие компоненты
к примеру:
mysql_ | no | no [Missing dependency Cache::Cache] ipmi_ | no | no [missing ipmitool command] apache_accesses | no | no [apache server-status not found. check if mod_status is enabled] apache_processes | no | no [apache server-status not found. check if mod_status is enabled] apache_volume | no | no [apache server-status not found. check if mod_status is enabled] exim_mailstats | no | no ['/usr/sbin/exim -bP log_file_path' returned an error]
и много других
3)
# munin-node-configure --shell
покажет какие плагины можно добавить в систему мониторинга. Запись вида
# munin-node-configure --shell | sh -x
автоматически создаст симлинки на ВСЕ рабочие плагины. Вывод команды:
# munin-node-configure --shell ln -s '/usr/share/munin/plugins/df_inode' '/etc/munin/plugins/df_inode' ln -s '/usr/share/munin/plugins/entropy' '/etc/munin/plugins/entropy' ln -s '/usr/share/munin/plugins/forks' '/etc/munin/plugins/forks' ln -s '/usr/share/munin/plugins/fw_conntrack' '/etc/munin/plugins/fw_conntrack' ln -s '/usr/share/munin/plugins/fw_forwarded_local' '/etc/munin/plugins/fw_forwarded_local' ln -s '/usr/share/munin/plugins/if_err_' '/etc/munin/plugins/if_err_venet0' ln -s '/usr/share/munin/plugins/interrupts' '/etc/munin/plugins/interrupts' ln -s '/usr/share/munin/plugins/netstat' '/etc/munin/plugins/netstat' ln -s '/usr/share/munin/plugins/open_files' '/etc/munin/plugins/open_files' ln -s '/usr/share/munin/plugins/open_inodes' '/etc/munin/plugins/open_inodes' ln -s '/usr/share/munin/plugins/proc_pri' '/etc/munin/plugins/proc_pri' ln -s '/usr/share/munin/plugins/sendmail_mailqueue' '/etc/munin/plugins/sendmail_mailqueue' ln -s '/usr/share/munin/plugins/sendmail_mailstats' '/etc/munin/plugins/sendmail_mailstats' ln -s '/usr/share/munin/plugins/sendmail_mailtraffic' '/etc/munin/plugins/sendmail_mailtraffic' ln -s '/usr/share/munin/plugins/threads' '/etc/munin/plugins/threads' ln -s '/usr/share/munin/plugins/vmstat' '/etc/munin/plugins/vmstat'
После правки конфигураций и добавления плагинов следует перезапустить ноду:
# service munin-node restart Stopping Munin Node agents: [ OK ] Starting Munin Node: [ OK ]
Можно сразу и проверить работоспособность:
# telnet localhost 4949 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. # munin node at localhost.localdomain #Получаем список активных плагинов list cpu df fw_packets if_venet0 load memory nginx_request nginx_status phpfpm_average phpfpm_connections phpfpm_memory phpfpm_processes phpfpm_status processes swap uptime users #Выходим quit Connection closed by foreign host.
Прелесть munin в том, что плагины можно писать самостоятельно. А можно использовать уже написанные кем то. Так и получилось, когда я хотел добавить в список опрашиваемых сервисов php-fpm. На этом остановимся чуть подробнее.
Сами исполняемые файлы плагинов находятся в /usr/share/munin/plugins/, а в /etc/munin/plugins/ только симлинки.
Скачаем плагины для php-fpm:
# cd /usr/share/munin/plugins # git clone git://github.com/tjstein/php5-fpm-munin-plugins.git # chmod +x php5-fpm-munin-plugins/phpfpm_*
Судя по всему автор плагина писал его для Ubuntu, так что придется чуток подправить код:
в /etc/munin/plugins/phpfpm_average заменить
PHP_BIN=${phpbin-"php5-fpm"}
на
PHP_BIN=${phpbin-"php-fpm"}
в /etc/munin/plugins/phpfpm_memory заменить
my $PHP_BIN = exists $ENV{'phpbin'} ? $ENV{'phpbin'} : "php5-fpm";
на
my $PHP_BIN = exists $ENV{'phpbin'} ? $ENV{'phpbin'} : "php-fpm";
в /etc/munin/plugins/phpfpm_processes заменить
PHP_BIN=${phpbin-"php5-fpm"}
на
PHP_BIN=${phpbin-"php-fpm"}
Теперь эти 3 плагина будут работать и отдавать результаты. Проверить можно так:
# cd /etc/munin/plugins && munin-run phpfpm_average php_average.value 16805888 # munin-run phpfpm_connections accepted.value 44199 # munin-run phpfpm_processes php_processes.value 3
Для того, что бы заработали остальные плагины нужно немного больше:
в конфигурационном файле /etc/php-fpm.d/www.conf необходимо раскоментировать строку
pm.status_path = /status
и перезапустить сервис
# service php-fpm restart
А, что очень даже интересно, спасибо за информацию.