Monitorix: установка на FreeBSD/CentOS

Автор: | 05/07/2014
 

monitorixlogoMonitorix — простая система мониторинга с возможностью вывода графиков в веб-интерфейс.

Написана на Perl, веб-интерфейс работает через p5-HTTP-Server-Simple.

Установка производится на:

# uname -sr
FreeBSD 9.0-RELEASE-p3

Ищем порт:

# cd /usr/ports/ && make search name=monitorix
Port:   monitorix-3.4.0
Path:   /usr/ports/sysutils/monitorix
Info:   A web based monitoring system
Maint:  crees@FreeBSD.org
B-deps: cairo-1.10.2_7,2 dejavu-2.34_3 encodings-1.0.4_1,1 expat-2.1.0 font-bh-ttf-1.0.3_1 font-misc-ethiopic-1.0.3_1 font-misc-meltho-1.0.3_1 font-util-1.3.0_1 fontconfig-2.11.0_1,1 freetype2-2.5.3 gettext-0.18.3.1 glib-2.36.3_2 graphite2-1.2.4 harfbuzz-0.9.25_1 icu-52.1 kbproto-1.0.6 libX11-1.6.2,1 libXau-1.0.8 libXdmcp-1.1.1 libXft-2.3.1 libXrender-0.9.8 libffi-3.0.13_1 libfontenc-1.1.2 libiconv-1.14_3 libpthread-stubs-0.3_4 libxcb-1.9.3 libxml2-2.8.0_3 mkfontdir-1.0.7 mkfontscale-1.1.1 pango-1.34.1_2 pcre-8.34 perl5-5.16.3_9 pixman-0.32.4 png-1.5.18 python27-2.7.6_4 readline-6.3.3_1 renderproto-0.11.1 rrdtool-1.4.8 xcb-util-0.3.9_1,1 xcb-util-renderutil-0.3.8 xorg-fonts-truetype-7.7_1 xproto-7.0.25
R-deps: cairo-1.10.2_7,2 dejavu-2.34_3 encodings-1.0.4_1,1 expat-2.1.0 font-bh-ttf-1.0.3_1 font-misc-ethiopic-1.0.3_1 font-misc-meltho-1.0.3_1 font-util-1.3.0_1 fontconfig-2.11.0_1,1 freetype2-2.5.3 gettext-0.18.3.1 glib-2.36.3_2 graphite2-1.2.4 harfbuzz-0.9.25_1 icu-52.1 kbproto-1.0.6 libX11-1.6.2,1 libXau-1.0.8 libXdmcp-1.1.1 libXft-2.3.1 libXrender-0.9.8 libffi-3.0.13_1 libfontenc-1.1.2 libiconv-1.14_3 libpthread-stubs-0.3_4 libxcb-1.9.3 libxml2-2.8.0_3 mkfontdir-1.0.7 mkfontscale-1.1.1 p5-Authen-NTLM-1.09 p5-CGI.pm-3.63,1 p5-Config-General-2.52 p5-DBI-1.631 p5-Digest-HMAC-1.03 p5-Email-Date-Format-1.002 p5-Encode-Locale-1.03 p5-File-Listing-6.04 p5-HTML-Parser-3.71 p5-HTML-Tagset-3.20 p5-HTTP-Cookies-6.01 p5-HTTP-Daemon-6.01 p5-HTTP-Date-6.02 p5-HTTP-Message-6.06_2 p5-HTTP-Negotiate-6.01 p5-HTTP-Server-Simple-0.44 p5-IO-HTML-1.00 p5-IO-Socket-IP-0.29 p5-IO-Socket-SSL-1.975_1 p5-LWP-MediaTypes-6.02 p5-MIME-Lite-3.03.0 p5-MIME-Types-2.04 p5-Mail-Tools-2.13 p5-Net-HTTP-6.06 p5-Net-SSLeay-1.58 p5-ParallelUA-2.57_2 p5-Socket-2.013 p5-TimeDate-2.30_1,1 p5-URI-1.60 p5-WWW-RobotRules-6.02 p5-XML-NamespaceSupport-1.11 p5-XML-Parser-2.41_1 p5-XML-SAX-0.99_1 p5-XML-SAX-Base-1.08 p5-XML-SAX-Expat-0.50 p5-XML-Simple-2.20 p5-libwww-6.05 pango-1.34.1_2 pcre-8.34 perl5-5.16.3_9 pixman-0.32.4 png-1.5.18 python27-2.7.6_4 readline-6.3.3_1 renderproto-0.11.1 rrdtool-1.4.8 xcb-util-0.3.9_1,1 xcb-util-renderutil-0.3.8 xorg-fonts-truetype-7.7_1 xproto-7.0.25
WWW:    http://www.monitorix.org/

Запускаем установку:

# cd /usr/ports/sysutils/monitorix && make install clean

You may set following options:

DBDIR=/var/db/monitorix Where do you put RRD databases?
CGIDIR=www/cgi-bin      Where do you put cgi?
CGIPATH=/cgi-bin        What is the relative URL for cgi files?
WWWDIR=/usr/local/www/monitorix Where do you put httpd's document root?
...

(да, pkg_install уже устарел и пора переходить на pkgng).

Зависимостей довольно много, так что установка займёт некоторое время.

На Linux/CentOS, как обычно, всё немного проще:

# yum -y install monitorix

Во FreeBSD файл конфигурации —  /usr/local/etc/monitorix.conf, на CentOS/etc/monitorix/monitorix.conf.

Меняем владельца каталога для Monitorix:

# chown -R nobody:nobody /usr/local/www/monitorix/

Делаем тестовый запуск:

# service monitorix onestart
Starting monitorix.

На CentOS:

# service monitorix start

Проверим:

# monitorix -v
Monitorix version 3.4.0 (02-Dec-2013)
by Jordi Sanfeliu <jordi@fibranet.cat>
http://www.monitorix.org/
# sockstat | grep 8080
nobody   perl5.14.4 40557 3  tcp4   *:8080                *:*
# ps aux | grep perl
root    40548   0.0  1.2  29636  12648  ??  Ss    3:19PM      0:00.39 /usr/local/bin/monitorix -c /usr/local/etc/monitorix.conf -p /var/run/monitorix.pid (perl5.14.4)

Заходим по адресу http://domain.ua:8080/monitorix

Добавляем автозапуск при старте сервера, в файл /etc/rc.conf:

monitorix_enable="YES"

Добавление/исключение графиков из списка выбора настраивается в файле конфигурации, в блоке:

# Graphs (de)activation
# -----------------------------------------------------------------------------
<graph_enable>
        system          = y
        kern            = y
        proc            = y
...
        ftp             = n
        apache          = n
        nginx           = n
        lighttpd        = n
        mysql           = n
        squid           = n
        nfss            = n
        nfsc            = n
        bind            = n

...
</graph_enable>

Где y = YES (разрешить), и n = NO (не показывать).

По-умолчанию файл на находится в read-only режиме:

# ls -l /usr/local/etc/monitorix.conf
-r--r--r--  1 root  wheel  18562 May  7 15:06 /usr/local/etc/monitorix.conf

Поэтому перед редактированием — меняем права:

# chmod 644 /usr/local/etc/monitorix.conf

Учтите, что для мониторинга Apache HTTP, например — потребуется активный server-stastus. Подробнее — в документации.

После редактирования — перезапускаем Monitorix:

# service monitorix restart
Stopping monitorix.
Starting monitorix.

Пример графика Load Average:

monitorix_1

Лог доступен в файле /var/log/monitorix.

Ограничение доступа реализовано с помощью стандартной htpasswd-файла, и настраивается в файле конфигурации в блоке:

<auth>
enabled = y
msg = Monitorix: Restricted access
htpasswd = /var/lib/monitorix/htpasswd
</auth>

Создаём директорию и файл (или просто меняем путь к файлу в конфигурации):

# mkdir /var/lib/monitorix/
# touch /var/lib/monitorix/htpasswd
# chown -R nobody:nobody /var/lib/monitorix/

Задаём пароль стандартной утилитой htpasswd с опцией -d:

# htpasswd -d -c /var/lib/monitorix/htpasswd setevoy
New password:
Re-type new password:
Adding password for user setevoy

Или можно воспользоваться скриптом /usr/local/share/doc/monitorix/htpasswd.pl.

Документация — http://www.monitorix.org/.