Пару дней назад возникла потребность установить zabbix-агента на один из серверов, по привычке попробовал воспользоваться репозиторием NixTime, но не тут-то было – оказалось домен оплачен до 11.06.2011. Жалко конечно – вроде халява была, вроде для CentOS, даже помнится один раз обновлялась с версии 1.8.2 до 1.8.4.

Какие есть варианты? Откатиться до версии 1.6 и потерять все данные, либо искать еще один такой же репозиторий и быть готовым что он в любой момент может закрыться, либо собирать самому. Я выбрал последнее, тем более что мне ничего не мешает собрать Zabbix в RPM и сделать свой локальный, независимый от случайностей репозиторий.

Операционная система CentOS 5.6 i386, текущая версия Zabbix 1.8.5.

1. Сборка Zabbix

Скачиваем исходники zabbix 1.8.5 из репозитория RawHide

[root@zabbix ~]# wget http://download.fedora.redhat.com/pub/fedora/linux/development/rawhide/source/SRPMS/zabbix-1.8.5-4.fc16.src.rpm

Создаем директорию для исходников и устанавливаем:

[root@zabbix ~]# mkdir -p /usr/src/redhat/SOURCES
[root@zabbix ~]# rpm --nomd5 -ihv zabbix-1.8.5-4.fc16.src.rpm

Параметр –nomd5 необходим из-за несовместимости алгоритмов используемых в fedora и centos.

Устанавливаем необходимые для сборки пакеты:

[root@zabbix ~]# yum install rpm-build gcc make mysql-devel postgresql-devel net-snmp-devel openldap-devel gnutls-devel sqlite-devel unixODBC-devel curl-devel OpenIPMI-devel

Загружаем и устанавливаем библиотеку и исходники iksemel, необходимые для отправки сообщений через jabber:

[root@zabbix ~]# wget http://pkgs.repoforge.org/iksemel/iksemel-devel-1.4-1.el5.rf.i386.rpm
[root@zabbix ~]# wget http://pkgs.repoforge.org/iksemel/iksemel-1.4-1.el5.rf.i386.rpm
[root@zabbix ~]# rpm -i iksemel-1.4-1.el5.rf.i386.rpm iksemel-devel-1.4-1.el5.rf.i386.rpm

Собираем:

[root@zabbix ~]# rpmbuild -bb --target=i686 /usr/src/redhat/SPECS/zabbix.spec

Теперь у нас есть готовые к установке RPM пакеты Zabbix в директории /usr/src/redhat/RPMS/i686.

2. Установка

Устанавливаем необходимые пакеты

[root@zabbix ~]# yum install php php-mysql php-gd php-mbstring php-bcmath php-xml mysql-server

Скачиваем и устанавливаем fping

[root@zabbix ~]# wget http://packages.sw.be/fping/fping-2.4-1.b2.2.el5.rf.i386.rpm
[root@zabbix ~]# rpm -ihv fping-2.4-1.b2.2.el5.rf.i386.rpm

Переходим в каталог /usr/src/redhat/RPMS/i686 и устанавливаем Zabbix

[root@zabbix ~]# cd /usr/src/redhat/RPMS/i686
[root@zabbix i686]# rpm -ihv zabbix-1.8.5-4.i686.rpm zabbix-web-1.8.5-4.i686.rpm zabbix-web-mysql-1.8.5-4.i686.rpm zabbix-server-1.8.5-4.i686.rpm zabbix-server-mysql-1.8.5-4.i686.rpm zabbix-agent-1.8.5-4.i686.rpm

3. Настройка mysql

Добавляем mysql в автозапуск и запускаем.

[root@zabbix ~]# chkconfig mysqld on
[root@zabbix ~]# service mysqld start

Делаем первоначальную настройку mysql при помощи скрипта mysql_secure_installation

[root@zabbix ~] mysql_secure_installation
Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Создаем базу данных для Zabbix:

[root@zabbix ~]# mysql -u root -p
Enter password:
mysql> create database zabbix;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';
mysql> FLUSH PRIVILEGES;
mysql> QUIT;

Импортируем первоначальные настройки и шаблоны. (Пути указаны с учетом текущей версии zabbix 1.8.5-4, для других версий они могут немного отличаться)

[root@zabbix ~]# mysql -uzabbix -pzabbix_password zabbix < /usr/share/doc/zabbix-server-mysql-1.8.5/create/schema/mysql.sql
[root@zabbix ~]# mysql -uzabbix -pzabbix_password zabbix < /usr/share/doc/zabbix-server-mysql-1.8.5/create/data/data.sql
[root@zabbix ~]# mysql -uzabbix -pzabbix_password zabbix < /usr/share/doc/zabbix-server-mysql-1.8.5/create/data/images_mysql.sql

4. Первоначальная настройка zabbix

Открываем для редактирования конфиг zabbix-сервера /etc/zabbix/zabbix_server.conf, здесь нам понадобится задать параметры соединения с сервером баз данных.

# Хост базы данных
DBHost=localhost
# Имя базы данных
DBName=zabbix
# Пользователь БД
DBUser=zabbix
# Пароль пользователя БД, меняем password на наш пароль
DBPassword=zabbix_password

Переходим к настройке PHP, для этого открываем файл /etc/php.ini и меняем в нем следующие параметры:

post_max_size = 32M
max_execution_time = 600
max_input_time = 600
date.timezone = Europe/Moscow

Добавляем в автозагрузку и запускаем сервисы:

[root@zabbix ~]# chkconfig httpd on
[root@zabbix ~]# chkconfig zabbix-server on
[root@zabbix ~]# chkconfig zabbix-agent on
[root@zabbix ~]# service httpd start
[root@zabbix ~]# service zabbix-server start
[root@zabbix ~]# service zabbix-agent start

Переходим к настройке zabbix, в браузере набираем http://адрес.нашего.сервера/zabbix. На втором шаге нам потребуется принять лицензионное соглашение. На третьем если все сконфигурировано верно верно мы увидим:

На 4-ом шаге задаем пользователя zabbix и соответствующих пароль zabbix_password.

В конце установки мы увидим экран входа, по-умочанию пользователь admin, пароль zabbix:

24 Коммент. : “Сборка Zabbix 1.8.5 для CentOS 5.6”

  1. Nik пишет:

    Спасибо очень полезная статья.

  2. voe пишет:

    Добавь в настройки mysql необходимость настройки БД на нужную кодировку, по умолчанию кодировка larin1 не дружит с русским

  3. Alsigned пишет:

    Привет, @voe
    Обязательно добавлю. С zabbix-ом работаю наверно лет пять, но почему-то еще не разу не пробовал на русском что-нибудь написать, а ведь и правда кракозяблы получаются ;)

  4. Nati пишет:

    Огромное спасибо за такой подробный и исчерпывающий мануал!

  5. voe пишет:

    А как утебя с поддержкой SNMP ? Или достаточно поставить пакет net-snmp?

  6. Привет, @voe
    С поддержкой SNMP все отлично.

    Что касается установки пакета net-snmp, то если делать по статье – он установится как зависимость вместе с net-snmp-devel. Если устанавливать zabbix-server на другой машине (отличной от той на которой производилась сборка) net-snmp понадобится для установки пакета zabbix-server, а net-snmp-libs для пакета zabbix-server-mysql.

    Таким образом net-snmp придется установить в любом случае ;)

  7. RIP пишет:

    Подскажите, пожалуйста, как активровать модуль php5-gd. Никак не могу в процессе установки продвинуться. Ставлю на Ubuntu.

  8. Alsigned пишет:

    Привет, @RIP
    Установить zabbix на ubuntu по этой статье не получится ;)

    В принципе в Ubuntu 10.4 есть уже собранный zabbix-1.8.1, его можно установить через

    apt-get install zabbix-server-mysql zabbix-agent zabbix-frontend-php

    Модуль php5-gd будет установлен и «активирован» как зависимость вместе с пакетом zabbix-frontend-php.

  9. RIP пишет:

    Alsigned, спасибо за ответ!
    Наверное установка zabbix-frontend-php помогла. Ещё в php.ini дописал extension= gd.so. И прцес установки пошёл далее.

  10. lepsy пишет:

    centos 6.0, на моменте
    [root@zabbix ~]# rpm -i iksemel-1.4-1.el5.rf.i386.rpm iksemel-devel-1.4-1.el5.rf.i386.rpm
    требует библиотеку libgnutls.so.13, однако
    Package gnutls-2.8.5-4.el6.i686 already installed and latest version

    подскажите, плз, что не так делаю

  11. Alsigned пишет:

    Привет, @lepsy

    Ошибка в том что ты устанавливаешь на CentOS 6 пакеты предназначенные для CentOS 5 и соответственно натыкаешься на проблемы с зависимостями. В данном случае правильным будет использовать:

    wget http://pkgs.repoforge.org/iksemel/iksemel-1.4-1.el6.rf.i686.rpm
    wget  http://pkgs.repoforge.org/iksemel/iksemel-devel-1.4-1.el6.rf.i686.rpm
    rpm -ihv iksemel-1.4-1.el6.rf.i686.rpm iksemel-devel-1.4-1.el6.rf.i686.rpm

    Устанавливаем недостающий пакет libssh2-devel (который почему-то выпал из списка зависимостей)

    yum install libssh2-devel

    Потом в CentOS 6.0 изменилась рабочая директория rpmbuild и как в Fedora переместилась из /usr/src/redhat/ в ~/rpmbuild

    rpmbuild -bb --target=i686 ~/rpmbuild/SPECS/zabbix.spec

    Собранные RPM-пакеты будут находится в директории ~/rpmbuild/RPMS.

  12. cssnik пишет:

    А если у меня CentOS x86_64, а не i386 тогда КАК?!

  13. Alsigned пишет:

    Привет, @cssnik
    Для CentOS 5.6 x86_64 все тоже самое, по образу и подобию.

    Единственное iksemel придется взять другой
    [root@localhost ~]# wget http://pkgs.repoforge.org/iksemel/iksemel-1.4-1.el5.rf.x86_64.rpm
    [root@localhost ~]# wget http://pkgs.repoforge.org/iksemel/iksemel-devel-1.4-1.el5.rf.x86_64.rpm
    [root@localhost ~]# rpm -i iksemel-devel-1.4-1.el5.rf.x86_64.rpm iksemel-1.4-1.el5.rf.x86_64.rpm

    И при сборке:
    [root@localhost ~]# rpmbuild -bb –target=x86_64 /usr/src/redhat/SPECS/zabbix.spec

    Собранные RPM-пакеты будут лежать в каталоге /usr/src/redhat/RPMS/x86_64/

  14. taksa пишет:

    не стартует service zabbix-server start
    в логе

    4387:20110821:160740.162 Starting Zabbix Server. Zabbix 1.8.6 (revision 20932).
    4387:20110821:160740.162 ****** Enabled features ******
    4387:20110821:160740.162 SNMP monitoring: YES
    4387:20110821:160740.162 IPMI monitoring: YES
    4387:20110821:160740.162 WEB monitoring: YES
    4387:20110821:160740.162 Jabber notifications: YES
    4387:20110821:160740.162 Ez Texting notifications: YES
    4387:20110821:160740.162 ODBC: YES
    4387:20110821:160740.162 SSH2 support: NO
    4387:20110821:160740.162 IPv6 support: YES
    4387:20110821:160740.163 ******************************
    4387:20110821:160740.165 [Z3001] connection to database ‘zabbix’ failed: [1045] Access denied for user ‘zabbix’@'localhost’ (using password: NO)

  15. taksa пишет:

    версия Zabbix 1.8.6

  16. Привет, @taksa

    Судя по ошибке zabbix-server не может соединиться с базой данных, из-за отсутствия пароля у пользователя zabbix. Нужно проверить соответствие пароля который ты задал для пользователя zabbix в mysql и пароля указанного в параметре DBPassword в файле /etc/zabbix/zabbix_server.conf – на сколько я помню по умолчанию этот параметр закометирован.

  17. taksa пишет:

    Решил собрать так как у тебя собрано с 1.8.5
    ошибок в логе нет, но ps показывает zabbix_server_m на портах 8385 и ….
    не стартует web интерфейс

  18. @taksa
    Для CentOS 5.6/6.0 x86_64/i686 zabbix 1.8.6 собирается без проблем.

    Zabbix-server может слушать на любом порту, но по умолчанию он слушает порт 10051 и никакой больше. Мне не совсем понятно как можно через ps посмотреть на каком порту работает приложение, весь ман перерыл в поисках, тч если подскажешь буду очень рад ;) Я для этого пользуюсь netstat -ltp.

    Web-интерфейс zabbix работает как набор php-скриптов через apache и непосредственно с zabbix-server взаимодействует через БД mysql. Поэтому в первую очередь проверяем запущен ли httpd.

  19. probnichek пишет:

    Спасибо !
    Поставил сразу 1.8.6 и на ура. Только php, что-то не понял и дал erorr сразу на странице логина, где искать? подскажите.
    Вот текст сообщения:
    date() [function.date]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Helsinki’ for ‘EEST/3.0/DST’ instead [include/page_header.php:144]

  20. Alsigned пишет:

    Привет, probnichek.

    На сколько я помню таким образом он ругается на незаданное значение параметра date.timezone в /etc/php.ini.

  21. probnichek пишет:

    Alsigned спасибо за оперативность!
    Да я так и подозревал, что проблема в этом.:-) Строка с временной зоной присутствовала в php.ini. А решилась проблема тем, что снес и заново поставил php.
    Еще раз спасибо за то , что не лень кнопки нажимать.

  22. вщв пишет:

    [root@localhost zabbix-1.8.10]# rpmbuild -bb –target=i686 ~/rpmbuild/SPECS/zabbix.spec
    Платформы для сборки: i686
    Сборка для платформы i686
    ошибка: Неудовлетворенные зависимости сборки:
    systemd-units нужен для zabbix-1.8.10-1.el6.i686

  23. polavto пишет:

    Здравствуйте
    Вы писали:
    Добавь в настройки mysql необходимость настройки БД на нужную кодировку, по умолчанию кодировка larin1 не дружит с русским
    Привет, @voe
    Обязательно добавлю. С zabbix-ом работаю наверно лет пять, но почему-то еще не разу не пробовал на русском что-нибудь написать, а ведь и правда кракозяблы получаются ;)

    Не сумел корректно сделать нужную кодировку UTF8
    Подскажите куда копать?

  24. добрый день! поставил zabbix-server 1.8.10 и установился на ура благодаря этой теме! спасибо админу! но у меня один такой вопрос! сервер запустился в процессах он есть и в логах запуск есть к вебке проконнектился, но вот в кладке МОНИТОРИНГ-ПАНЕЛЬ выходит строка Zabbix сервер запущен Нет localhost:10051
    хотя мой сервер собирает статистику с агента. может в скриптах где то олибка? может быть такое?

Трекбеки/Пинги

  1. Блог «Админа-Маньяка» – Сборка Zabbix 1.8.5 для CentOS 5.6 | Блогеры о юниксах - [...] далее: http://www.alsigned.ru/?p=1531 Наш форум [...]

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