3. Установка из исходных кодов
Вы можете получить самую свежую версию Zabbix, скомпилировав её из исходных кодов.
Здесь представлено пошаговое руководство по установке Zabbix из исходных кодов.
Установка демонов Zabbix
1. Загрузите архив исходных кодов
Перейдите на страницу загрузки Zabbix и скачайте архив исходных кодов. Как только он будет загружен, распакуйте исходные коды, выполнив:
tar -zxvf zabbix-7.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 создавать отдельную учетную запись пользователя не нужно.
Рекомендации по безопасности
Если 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 сервера, 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 --with-ares
Для конфигурирования исходных кодов для 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.
Замечания по опциям компиляции:
--enable-agent— скомпилировать Zabbix агент, а также утилиты командной строки Zabbix get и Zabbix sender.--with-libcurl— требуется для мониторинга виртуальных машин, для SMTP аутентификации и элементов данных Zabbix агентаweb.page.*. Смотрите также: Требования (libcurl).--with-libxml2— требуется для мониторинга виртуальных машин.--with-libpcre2=[ДИРЕКТОРИЯ]— Zabbix всегда компилируется с библиотекой PCRE2; эта опция только позволяет указать пользовательскую директорию с установленной библиотекой PCRE2.--with-mysql=/путь/к/файлу/mysql_config— указывает путь к конкретной конфигурации клиентской библиотеки MySQL. Полезно, если установлено несколько версий MySQL или MariaDB.--with-oracle— указывает расположение Oracle Call Interface (OCI) API.--enable-static— выполнить статическую линковку библиотек (не поддерживается в Solaris [en]). Используйте это, если вы планируете установить скомпилированные бинарные файлы на системы без необходимых библиотек. Не рекомендуется при сборке сервера. Для статической сборки сервера требуется статическая версия каждой внешней библиотеки. В скрипте конфигурирования отсутствует автоматическая проверка этого.--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. В этом случае исполняемые файлы демонов будут установлены в папку <префикс>/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
Установка веб-интерфейса 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 агента 2
Установка подгружаемых плагинов Zabbix агента 2 требуется только в том случае, если вы хотите отслеживать объекты, не охваченные встроенными плагинами (например, серверы или кластеры MongoDB, PostgreSQL и его производные и т. д.). Смотрите полный список подгружаемых плагинов и встроенных плагинов.
Перед установкой плагина, пожалуйста, ознакомьтесь с его файлом README. Он может содержать особые требования и инструкции по установке.
Для установки из исходных кодов сначала загрузите и разверните архив исходных кодов загружаемого плагина.
Чтобы скомпилировать плагин, перейдите в каталог извлечённого плагина и запустите make:
make
Для сборки подгружаемых плагинов Zabbix агента 2 должна быть установлена поддерживаемая версия Go.
Исполняемый файл плагина можно разместить в любом месте, если Zabbix агент 2 может его загрузить. Укажите путь к исполняемому файлу плагина в файле конфигурации плагина, например, в postgresql.conf для плагина PostgreSQL:
Plugins.PostgreSQL.System.Path=/path/to/executable/zabbix-agent2-plugin-postgresql
Путь к файлу конфигурации плагина необходимо указать в параметре Include файла конфигурации Zabbix агента 2:
Include=/path/to/plugin/configuration/file/postgresql.conf
Для получения более подробной информации о настройке плагинов перейдите к разделу настроек.
Подгружаемые плагины, предоставляемые Zabbix, используют простые make-файлы со следующими целями сборки:
make— собрать плагинmake clean— удалить все файлы, созданные при при сборке плагинаmake check— запускать самотестирование (требуется реальная цель мониторинга, например, база данных PostgreSQL)make style— проверьте стиль кода Go с помощьюgolangci-lintmake format— отформатировать код Go с помощьюgo fmtmake dist— создать архив исходников, включая все зависимости
Установка 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.
Установка веб-сервиса Zabbix
Установка веб-сервиса Zabbix требуется, только если вы хотите использовать отчёты по расписанию.
Чтобы установить из исходного кода, сначала загрузите и извлеките исходный код из архива.
Чтобы скомпилировать веб-сервис Zabbix, выполните скрипт ./configure с опцией --enable-webservice.
Для сборки веб-сервиса Zabbix должна быть установлена поддерживаемая версия Go.
Выполните zabbix_web_service на машине, где был установлен веб-сервис:
zabbix_web_service
Перейдите к установке для получения более подробных сведений о настройке генерирования Регулярных отчётов.