3. Установка из исходных кодов

Вы можете получить самую свежую версию Zabbix, скомпилировав её из исходных кодов.

Здесь представлено пошаговое руководство по установке Zabbix из исходных кодов.

1 Установка демонов Zabbix

1 Загрузите архив исходных кодов

Перейдите на страницу загрузки Zabbix и скачайте архив исходных кодов. Как только он будет загружен, распакуйте исходные коды, выполнив:

tar -zxvf zabbix-6.0.0.tar.gz

Укажите в команде правильную версию Zabbix. Версия должна совпадать с именем загруженного архива.

2 Создайте аккаунт пользователя

Все процессы демонов Zabbix требуют непривилегированного пользователя. Если демон Zabbix запущен от аккаунта пользователя без привилегий, то он будет работать под этим пользователем.

Однако, если демон запущен из под аккаунта «root», демон переключится на аккаунт пользователя «zabbix», который должен существовать. Для создания такого аккаунта пользователя (принадлежащего к своей группе, «zabbix»),

в системах на основе RedHat, выполните:

groupadd --system zabbix
       useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

в системах на основе Debian, выполните:

addgroup --system --quiet zabbix
       adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Zabbix процессам не требуется домашная директория, поэтому мы не рекомендуем создавать её. Однако, если вы используете некоторый функционал, которому требуется наличие домашней директории (например, хранение учётных данных mysql в $HOME/.my.cnf), вы вправе создать домашнюю директорию, используя следующие команды.

На системах на основе RedHat, выполните:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
       chown zabbix:zabbix /usr/lib/zabbix

На системах на основе Debian, выполните:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
       chown zabbix:zabbix /var/lib/zabbix

Для установки веб-интерфейса Zabbix отдельного аккаунта пользователя не требуется.

Если Zabbix сервер и агент работают на одной машине, то рекомендуется использовать разных пользователей для запуска сервера и для запуска агента. В противном случае, если сервер и агент запущены под одним пользователем, агент будет иметь доступ к файлу конфигурации сервера и любой пользователь с правами Администратора в Zabbix может с легкостью получить, например, пароль от базы данных.

Запуск Zabbix из под root, bin или из под любых других аккаунтов со специальными правами является риском для безопасности.

3 Создайте базу данных Zabbix

Для демонов Zabbix сервера и прокси, а так же для веб-интерфейса Zabbix, требуется база данных. Она не требуется для работы Zabbix агента.

Для создания схемы базы данных и вставки набора данных предоставляются SQL скрипты. Для базы данных Zabbix прокси требуется только создание схемы данных, в то время как для Zabbix сервера помимо схемы необходимо также загрузить набор данных поверх схемы.

После создания базы данных Zabbix, перейдите к следующим шагам компиляции Zabbix.

4 Сконфигурируйте исходный код

Для построения Zabbix сервера, Zabbix прокси или Zabbix агента требуется C99 с расширениями GNU. Эта версия может быть явно указана путём выставления CFLAGS="-std=gnu99":

export CFLAGS="-std=gnu99"

При установке из Zabbix репозитория Git, необходимо сначала выполнить:

./bootstrap.sh

При конфигурировании исходного кода Zabbix сервера или прокси, вы должны указать используемый тип базы данных. Только один тип базы данных может быть скомпилирован для процессов сервера или прокси единовременно.

Для просмотра всех доступных опций конфигурирования, выполните в папке с извлечённым исходным кодом Zabbix:

./configure --help

Для конфигурирования исходных кодов для Zabbix сервера и агента, вы можете выполнить нечто вроде:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

Для конфигурирования исходных кодов для Zabbix сервера (с PostgreSQL и т.д.), вы можете выполнить:

./configure --enable-server --with-postgresql --with-net-snmp

Для конфигурирования исходных кодов для Zabbix прокси (с SQLite и т.д.), вы можете выполнить:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Для конфигурирования исходных кодов для Zabbix агента, вы можете выполнить:

./configure --enable-agent

или, для Zabbix агента 2:

./configure --enable-agent2

Для сборки Zabbix агента 2 требуется подготовленная среда Go с поддерживаемой в настоящее время версией Go. Смотрите go.dev для получения инструкций по инсталляции.

Заметки по опциям компиляции:

  • Утилиты командной строки zabbix_get и zabbix_sender компилируются, если указана опция --enable-agent.
  • Опции конфигурирования --with-libcurl и --with-libxml2 требуются для мониторинга виртуальных машин; --with-libcurl также требуется для SMTP аутентификации и web.page.* элементов данных с типом Zabbix агент. Обратите внимание, что для опции конфигурирования --with-libcurl требуется cURL версии 7.20.0 или выше.
  • Zabbix всегда компилируется с библиотекой PCRE (начиная с версии 3.4.0); её установка не является опциональной. --with-libpcre=[ДИРЕКТОРИЯ] только позволяет указать отличную от умолчания базовую директорию с установленной библиотекой PCRE, в отличие от поиска libpcre файлов по нескольким общепризнанным директориям.
  • Вы можете использовать флаг --enable-static, чтобы выполнить статическую линковку библиотек. Если вы планируете установить скомпилированные бинарные файлы на разные сервера, вам необходимо использовать этот флаг, чтобы эти бинарные файлы работали без наличия требуемых библиотек. Обратите внимание, что --enable-static не работает в Solaris.
  • Использование опции --enable-static не рекомендуется при сборке сервера. В случае статичной сборки сервера, вам необходимо будет предоставить статичную версию каждой внешней библиотеки. В скрипте конфигурирования отсутствует строгая проверка этого.
  • Добавьте опциональный путь к файлу конфигурации MySQL --with-mysql=/<путь_к_файлу>/mysql_config, чтобы выбрать желаемую клиентскую библиотеку MySQL, если требуется использовать библиотеку, которая не располагается в директориях по умолчанию. Такой подход имеет смысл, если на одной системе у вас имеется несколько установленных версий MySQL или наряду с MySQL установлена MariaDB.
  • Используйте флаг --with-oracle, чтобы указать расположение OCI API.

Если ./configure завершается с ошибкой по причине отсутствующих библиотек или по какой-либо другой причине, пожалуйста, просмотрите файл config.log для получения более подробных сведений касательно ошибки. Например, если отсутствует libssl, непосредственное сообщение об ошибке может ввести в заблуждение:

checking for main in -lmysqlclient... no
       configure: error: Not found mysqlclient library

Тогда как config.log будет иметь более подробное описание:

/usr/bin/ld: cannot find -lssl
       /usr/bin/ld: cannot find -lcrypto

Смотрите также:

5 Соберите и установите всё

Если устанавливаете с Zabbix репозитория Git, сначала необходимо выполнить следующую команду:

$ make dbschema

make install

Этот шаг должен быть выполнен пользователем с достаточными правами (как правило «root», или с помощью sudo).

Выполнение make install установит исполняемые файлы демонов (zabbix_server, zabbix_agentd, zabbix_proxy) в /usr/local/sbin и исполняемые файлы клиентов (zabbix_get, zabbix_sender) в /usr/local/bin.

Для установки в другое место, отличное от /usr/local, используйте ключ --prefix в предыдущем шаге конфигурирования исходных кодов, например --prefix=/home/zabbix. В этом случае исполняемые файлы демонов будут установлены в папку <префикс>/sbin, а утилиты в папку <префикс>/bin. Страницы помощи будут установлены в папку <префикс>/share.

6 Просмотрите и отредактируйте файлы конфигурации
  • отредактируйте файл конфигурации Zabbix агента /usr/local/etc/zabbix_agentd.conf

Вам нужно сконфигурировать этот файл на каждом узле сети, на котором установлен zabbix_agentd.

В файле вы должны указать IP адрес Zabbix сервера. Подключения с остальных хостов будут отклонены.

  • отредактируйте файл конфигурации Zabbix сервера /usr/local/etc/zabbix_server.conf

Вы должны указать имя базы данных, пользователя и пароль (если используется).

Остальные параметры подойдут со значениями по умолчанию, если у вас небольшая инсталляция (до десятка наблюдаемых узлов сети). Вы должны изменить параметры по умолчанию, если вы хотите увеличить производительность Zabbix сервера (или прокси). Обратитесь к разделу Оптимизация производительности для получения подробных сведений.

  • если вы установили Zabbix прокси, то отредактируйте файл конфигурации Zabbix прокси /usr/local/etc/zabbix_proxy.conf

Вы должны указать IP адрес сервера и имя прокси (должно быть известно серверу), а также имя базы данных, пользователя и пароль (если используется).

В случае в SQLite необходимо указать полный путь к файлу базы данных; пользователь и пароль к БД не требуются.

7 Запустите демоны

Запустите zabbix_server на стороне сервера.

zabbix_server

Удостоверьтесь, что в вашей системе разрешено выделение 36МБ (или немногим больше) разделяемой памяти, в противном случае сервер может не запуститься и вы увидите "Cannot allocate shared memory for <type of cache>." в файле журнала сервера. Такое может случится в FreeBSD, Solaris 8.
Смотрите раздел "Смотрите также" внизу этой страницы, чтобы узнать, как настроить разделяемую память.

Запустите zabbix_agentd на всех наблюдаемых машинах.

zabbix_agentd

Убедитесь, что ваша система позволяет выделить 2 МБ разделяемой памяти (shared memory), в противном случае агент может не запуститься и вы увидите сообщение “Cannot allocate shared memory for collector.” в журнале агента. Такое может произойти в Solaris 8.

Если вы установили Zabbix прокси, запустите zabbix_proxy.

zabbix_proxy

2 Установка веб-интерфейса Zabbix

Копирование файлов PHP

Веб-интерфейс Zabbix написан на языке PHP, поэтому для его работы вам потребуется веб-сервер с поддержкой PHP. Установка производится путем простого копирования PHP файлов из папки ui в папку HTML-документов веб-сервера.

Общепринятые места размещения папки HTML-документов для веб-сервера Apache включают:

  • /usr/local/apache2/htdocs (каталог по умолчанию при установке Apache из исходных кодов)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

Рекомендуется использовать подпапку вместо корневой папки HTML. Чтобы создать подпапку и скопировать в неё файлы веб-интерфейса Zabbix, выполните следующие команды, заменив на реальную директорию:

mkdir <htdocs>/zabbix
       cd ui
       cp -a . <htdocs>/zabbix

Если вы планируете использовать любой другой язык, отличный от Английского, смотрите инструкции по Установке дополнительных языков для веб-интерфейса.

Установка веб-интерфейса

Пожалуйста, обратитесь к странице установки веб-интерфейса для получения более подробной информации о мастере установки веб-интерфейса Zabbix.

3 Установка Java gateway

Java gateway необходимо установить, только если вы хотите мониторить приложения JMX. Java gateway легковесный и не требует наличия базы данных.

Чтобы установить из исходного кода, сначала загрузите и извлеките исходный код из архива.

Чтобы скомпилировать Java gateway, выполните ./configure скрипт с опцией --enable-java. Целесообразно указать опцию --prefix для изменения пути установки с /usr/local по умолчанию, так как при установке Java gateway будет создано целое дерево директорий, а не просто один исполняемый файл.

./configure --enable-java --prefix=$ПРЕФИКС

Для компиляции и сборки пакета Java gateway в JAR файл выполните make. Обратите внимание, для выполнения этого шага вам потребуется наличие выполняемых файлов javac и jar в известных системе местах.

make

Теперь у вас имеется zabbix-java-gateway-$ВЕРСИЯ.jar файл в src/zabbix_java/bin. Если вам удобно запускать Java gateway из src/zabbix_java в директории с исходными кодами, тогда вам нужно перейти к инструкциям по настройке и запуску Java gateway. В противном случае убедитесь, что у вас имеются достаточные привилегии и выполните make install.

make install

Перейдите на страницу настройки Java gateway для получения более подробных сведений о том, как настроить и запустить Java gateway.

4 Установка веб-сервиса Zabbix

Установка веб-сервиса Zabbix требуется, только если вы хотите использовать отчёты по расписанию.

Чтобы установить из исходного кода, сначала загрузите и извлеките исходный код из архива.

Чтобы скомпилировать веб-сервис Zabbix, выполните скрипт ./configure с опцией --enable-webservice.

Для сборки веб-сервиса Zabbix требуется среда Go версии 1.13+.

Выполните zabbix_web_service на машине, где был установлен веб-сервис:

zabbix_web_service

Перейдите к установке для получения более подробных сведений о настройке генерирования Регулярных отчетов.