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

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

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

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

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

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

tar -zxvf zabbix-7.4.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 создавать отдельную учетную запись пользователя не нужно.

Рекомендации по безопасности

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

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

Домашний каталог (необязательно)

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
3. Создайте базу данных Zabbix

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

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

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

4 Настройка исходных кодов

Для сборки Zabbix server, Zabbix proxy или Zabbix agent требуется C99 с расширениями GNU. Эту версию можно явно указать, задав CFLAGS="-std=gnu99":

export CFLAGS="-std=gnu99"

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

./bootstrap.sh

При настройке исходных кодов для Zabbix server или proxy необходимо указать используемый тип базы данных. За один раз с процессом server или proxy может быть скомпилирован только один тип базы данных.

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

./configure --help

Чтобы настроить исходные коды для Zabbix server и agent, можно выполнить примерно такую команду:

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

Чтобы настроить исходные коды для Zabbix server (с PostgreSQL и т. д.), можно выполнить:

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

Чтобы настроить исходные коды для Zabbix proxy (с SQLite и т. д.), можно выполнить:

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

Чтобы настроить исходные коды для Zabbix agent, можно выполнить:

./configure --enable-agent

или, для Zabbix agent 2:

./configure --enable-agent2

Для сборки Zabbix agent 2 должна быть установлена поддерживаемая версия Go.

Примечания по параметрам компиляции:

  • --enable-agent - компилирует Zabbix agent, а также командные утилиты Zabbix get и Zabbix sender.
  • --with-libcurl - требуется для мониторинга виртуальных машин, аутентификации SMTP и элементов данных web.page.* Zabbix agent. См. также: Требования (libcurl).
  • --with-libxml2 - требуется для мониторинга виртуальных машин.
  • --with-libpcre2[=DIR] - Zabbix всегда компилируется с библиотекой PCRE2; этот параметр позволяет только указать пользовательский путь установки PCRE2.
  • --with-mysql=/path/to/mysql_config - указывает путь к определенной конфигурации клиентской библиотеки MySQL. Полезно, когда установлено несколько версий MySQL или MariaDB.
  • --enable-static - статически связывает библиотеки (не поддерживается в Solaris). Используйте этот параметр, если планируете распространять скомпилированные двоичные файлы для систем без необходимых библиотек. Не рекомендуется при сборке Zabbix server. Чтобы собрать server статически, требуется статическая версия каждой внешней библиотеки. Скрипт configure не проверяет это автоматически.
  • --with-stacksize=<value> - задает размер стека на поток в килобайтах (например, --with-stacksize=512). Вы можете увеличить это значение, если Zabbix аварийно завершает работу или зависает из-за переполнения стека (например, во время предобработки в системах с низкими значениями ограничения размера стека потоков по умолчанию).

Если ./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. В этом случае двоичные файлы демона будут установлены в <prefix>/sbin, а утилиты — в <prefix>/bin. Страницы man будут установлены в <prefix>/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

Установка веб-интерфейса 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, выполните следующие команды, заменив <htdocs> на фактический каталог:

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

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

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

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

Установка загружаемых плагинов Zabbix agent 2

Установка загружаемых плагинов Zabbix agent 2 требуется только в том случае, если вы хотите отслеживать цели, не охватываемые встроенными плагинами (например, серверы или кластеры MongoDB, PostgreSQL и его форки и т. д.). См. полный список загружаемых плагинов и встроенных плагинов.

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

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

Чтобы скомпилировать плагин, перейдите в каталог распакованного плагина и выполните make:

make

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

Исполняемый файл плагина можно разместить в любом месте, если он может быть загружен Zabbix agent 2. Укажите путь к двоичному файлу плагина в файле конфигурации плагина, например в postgresql.conf для плагина PostgreSQL:

Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql

Путь к файлу конфигурации плагина должен быть указан в параметре Include файла конфигурации Zabbix agent 2:

Include=/path/to/plugin/configuration/file/postgresql.conf

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

Загружаемые плагины, предоставляемые Zabbix, используют простые makefile со следующими целями сборки:

  • make - собрать плагин
  • make clean - удалить все файлы, созданные при сборке плагина
  • make check - запустить самотестирование (требуется реальная цель мониторинга, например база данных PostgreSQL)
  • make style - проверить стиль кода Go с помощью golangci-lint
  • make format - форматировать код Go с помощью go fmt
  • make dist - создать архив исходных кодов, включая все зависимости

Установка Java gateway

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

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

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

./configure --enable-java --prefix=$PREFIX

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

make

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

make install

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

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

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

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

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

Для сборки веб-сервиса Zabbix должна быть установлена поддерживаемая версия Go.

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

zabbix_web_service

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