вторник, 26 октября 2010 г.

Zabbix с нуля

Что это такое, есть в вики
Поскольку мне приходится возиться как с centos, так и freebsd, то подборка ссылок будет "unisex".

http://phpsuxx.blogspot.com/search/label/Zabbix
Подборка с другого ресурса

http://phpsuxx.blogspot.com/2009/12/why-zabbix-suxx.html
Иметь в виду.

В центоси штатно не поставить - в репах совсем древнючая, новее нет. Причём штатно его нет вообще, а в epel версия 1.4, которая весьма прожорлива. Переход на 1.8 крайне желателен! Надо собирать пакет. Впрочем, есть вариант с уже собранными пакетами, см ниже.
debian не лучше - там тоже
Version: 1:1.4.6-1

Во фре 1.8 в портах, но сначала надо поставить perl, php (5.2 или 5.3), apache по вкусу. Потом zabbix-server, zabbix-backend

http://www.itpad.ru/?p=1431
заббикс в центоси

http://www.ignix.ru/public/daemon/zabbix
заббикс во фре

Если ставить в jail - получим ошибки.
/usr/local/bin/zabbix_server [30553]: Can not create Semaphore [Function not implemented]
/usr/local/bin/zabbix_server [30553]: Unable to create mutex for log file


http://opennet.ru:8101/openforum/vsluhforumID1/87577.html
тут решение: jail_sysvipc_allow="YES"


Ставим zabbix в CentOS из rpm (на основе доки выше, но там сборка из исходников, а у меня использование пакетов. Также в процессе использовался locate, когда что-то было не найти)
Для начала, удаляем 1.4 из epel:
#yum erase zabbix-\*
(если его не стояло - хорошо. Хотя можно посмотреть, что оно тянуло зависимостями, и скачать руками. Тот же php)

теперь идем http://repo.andrewfarley.com/centos/5/i386/ и качаем нужные пакеты нужных версий. Я взял последнюю на тот момент 1.8.3

Ставим основной пакет
# rpm -i zabbix-1.8.3-1.i386.rpm

Теперь server, для этого доставляем библиотеки:
# yum install libssh2 OpenIPMI fping
# rpm -i zabbix-server-1.8.3-1.i386.rpm

Также хорошо бы мониторить и сам сервер...
# yum install openssl-devel
# rpm -ivh zabbix-agent-1.8.3-1.i386.rpm

Если хотим веб интерфейс
# yum -y install php-xml httpd php-mbstring php-mysql
# rpm -ivh zabbix-frontend-php-1.8.3-1.i386.rpm

Если что, можно открыть спек файл и посмотреть там зависимости, описания, что ставится итд.

Теперь настроим server. Для этого нам снова не хватает модулей, доставим
# yum install mysql-server

Запустим mysql, сделаем mysql_secure_installation, подключимся к базе
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
Не забываем применить права!
mysql> flush privileges;
mysql> quit

Теперь перейдём в /usr/share/doc/zabbix-server-1.8.3/
Там лежат нужные нам файлы для БД
Зальём базу
# cd create/schema
# cat mysql.sql | mysql -u zabbix -p zabbix
# cd ../data
# cat data.sql | mysql -u zabbix -p zabbix
# cat images_mysql.sql | mysql -u zabbix -p zabbix
И 3 раза введем пароль, который указали в grant all. Впрочем, можно -p заменить на -pzabbix (без пробела) - эффект будет тот же.

Теперь переходим к конфигам.
# cd /etc/zabbix/

Правим конфиг сервера под наши задачи
# vi /etc/zabbix/zabbix_server.conf

Надо найти строки и привести к данному виду:
DBName=zabbix
DBUser=zabbix
DBPassword=пароль юзера на базу zabbix

Теперь проверим, что есть пользователь zabbix
# id zabbix
Если нет - надо создать
# useradd -m -s /bin/bash zabbix
Но у меня он уже был. Пакет должен был его создать, выставить права на /etc/zabbix и сделать владельцем.

Теперь надо запустить сервер.
# /etc/init.d/zabbix-server start
Starting ZABBIX server: [ OK ]
# /etc/init.d/zabbix-agentd start
Starting ZABBIX agent: [ OK ]

Можно выставить автозагрузку сервиса.
Оказалось, скрипт не добавил сервер! Да и агент тоже. Добавим.
# /sbin/chkconfig --add zabbix-server
# /sbin/chkconfig --add zabbix-agentd

Теперь выставим автозагрузку БД и заббикса
# /sbin/chkconfig httpd on
# /sbin/chkconfig mysqld on
# /sbin/chkconfig zabbix-server on
# /sbin/chkconfig zabbix-agentd on

Теперь перейдём к веб-интерфейсу.
Мы его уже поставили, он ставится в /var/www/html/zabbix-1.8.3/
Для начала, надо подготовить php
# vi /etc/php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
date.timezone = Europe/Moscow
mbstring.func_overload = 2

Теперь надо добавить этот сайт в настройки апача
NameVirtualHost *:80

<virtualhost *:80>
DocumentRoot /var/www/html/zabbix
ServerName zabbix
DirectoryIndex index.php
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phps
ErrorLog logs/dummy-host.example.com-error_log
</virtualhost>

Но тут один момент.. у нас же поставилось в zabbix-1.8.3, а не zabbix.. Так что надо или в примере пути поправить, или создать симлинк
# cd /var/www/html/
# ln -s zabbix-1.8.3 zabbix

Теперь перезапускаем апач и подключаемся на айпи нашего сервера и наблюдаем графический инсталлятор. Там на 3 шаге скажут, если у нас что-то не доставлено.
Например, у меня ругнулось на max_input_time (в моём варианте выше оно тоже вписано, в оригинальной доке нет)

Ещё момент - если открыть логи, там будут записи
zabbix_agentd [27158]: ERROR: Cannot create PID file [/var/run/zabbix_agentd.pid] [Permission denied]
zabbix_server [26844]: ERROR: Cannot create PID file [/var/run/zabbix_server.pid] [Permission denied]
Я правлю так:
# mkdir /var/run/zabbix
#chown zabbix:zabbix /var/run/zabbix
и в конфиги вписываю в путь pid-файлов, чтобы он был /var/run/zabbix/...

После настройки логин – admin, пароль – zabbix.

В Dashboard должна быть строка Zabbix server is running Yes

И надо сразу проверить, что сессии сохраняются. У меня по умолчанию в /etc/php.ini была строка:
session.save_path = "/var/lib/php/session"
Но права на эту папку 770, причем владелец - root! Разумеется, ничего работать не будет. Надо или ставить 1777, или создать /tmp/sess, поставить на неё 1777 и поправить конфиг. Иначе - function.session-start ... failed: Permission denied

Система стоит, можно переходить к настройке событий, триггеров и прочего.

Комментариев нет:

Отправить комментарий