
Сервер Zabbix можно установить на любой дистрибутив Linux, но в этом руководстве я покажу вам шаг за шагом, как установить и оптимизировать последнюю версию. Zabbix 7 LTS выпуск на Ubuntu 24.04 (Noble), 22.04 LTS (Jammy Jellyfish) / 20.04 (Focal).
Zabbix это 100% бесплатное программное обеспечение корпоративного уровня с открытым исходным кодом, предназначенное для мониторинга доступности и производительности компонентов ИТ-инфраструктуры. Ознакомиться с примером популярности Zabbix и узнать больше о движении open-source вы можете в этой статье.

Сначала мы установим и настроим сервер Zabbix, затем базу данных и, наконец, фронтенд – посмотрите на картинку ниже, чтобы лучше понять архитектуру Zabbix.

Оглавление
- Шаг 1: Установите сервер, фронтенд и агент Zabbix
- Шаг 2: Настройте базу данных
- Шаг 3: Настройте брандмауэр
- Шаг 4: Запустите процессы сервера и агента Zabbix
- Шаг 5: Настройте фронтенд Zabbix
- Шаг 6: Войдите во фронтенд, используя учетные данные Zabbix по умолчанию
- Шаг 7: Оптимизация сервера Zabbix (необязательно)
- Шаг 8: Оптимизация базы данных MySQL / MariaDB (необязательно)
- Шаг 9: Создание разделов MySQL для таблиц History и Events
- Шаг 10: Как управлять сервисом Zabbix / MySQL / Apache
- Шаг 11: Обновление между младшими версиями
Шаг 1: Установите сервер, фронтенд и агент Zabbix
Примечание: Вам необходимо войти в систему как пользователь root на вашем Linux-сервере с “su -
” или использовать “sudo
” для успешного выполнения команд, используемых в этом учебнике.
Установите Zabbix Пакет .deb на вашей ОС Ubuntu (поддерживаются версии 24.04, 22.04, 20.04, 18.04 и 16.04).
Zabbix 7.0 LTS version (supported until June 31, 2029) wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu$(lsb_release -rs)_all.deb sudo dpkg -i zabbix-release_7.0-1+ubuntu$(lsb_release -rs)_all.deb sudo apt update sudo apt -y install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Вы можете найти дополнительную информацию о Жизненный цикл и политика выпуска Zabbix на официальном сайте.
Шаг 2: Настройте базу данных
В этой установке я буду использовать пароль rootDBpass в качестве пароля root и zabbixDBpass пароль Zabbix для БД. Подумайте о смене пароля в целях безопасности.
a. Установите MariaDB 10.11
В терминале выполните следующую команду для установки MariaDB 10.11 (поддерживается до 2028 года).
sudo apt install software-properties-common -y
curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup sudo bash mariadb_repo_setup --mariadb-server-version=10.11
sudo apt update sudo apt -y install mariadb-common mariadb-server-10.11 mariadb-client-10.11
ПРИМЕЧАНИЕ: Если вы получили ошибку на Ubuntu 24.04: “В репозитории ‘https://dlm.mariadb.com/repo/maxscale/latest/apt noble Release’ отсутствует файл Release. [error] Не удалось добавить доверенные ключи подписи пакетов“, то используйте эти команды вместо приведенных выше:
sudo rm /etc/apt/sources.list.d/mariadb.list curl -fsSL https://mariadb.org/mariadb_release_signing_key.asc | sudo gpg --dearmor -o /usr/share/keyrings/mariadb-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/mariadb-archive-keyring.gpg] https://dlm.mariadb.com/repo/mariadb-server/10.11/repo/ubuntu mantic main" >> /etc/apt/sources.list apt update apt install mariadb-server
После завершения установки запустите службу MariaDB и включите ее запуск при загрузке с помощью следующих команд:
sudo systemctl start mariadb sudo systemctl enable mariadb
b. Сбросьте пароль root для базы данных
Защитите MySQL/MariaDB, изменив пароль по умолчанию для корня MySQL, я изменю его на “rootDBpass”:
sudo mysql_secure_installation
Enter current password for root (enter for none): Press Enter Switch to unix_socket authentication [Y/n] y Change the root password? [Y/n] y New password: <Enter root DB password, I will set "rootDBpass"> Re-enter new password: <Repeat root DB password, I will set "rootDBpass"> 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
c. Создайте базу данных
sudo mysql -uroot -p'rootDBpass' -e "create database zabbix character set utf8mb4 collate utf8mb4_bin;" sudo mysql -uroot -p'rootDBpass' -e "create user 'zabbix'@'localhost' identified by 'zabbixDBpass';" sudo mysql -uroot -p'rootDBpass' -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbixDBpass';"
d. Импортируйте исходную схему и данные.
Импорт схемы базы данных для сервера Zabbix (может длиться до 5 минут):
sudo zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p'zabbixDBpass' zabbix
e. Введите пароль базы данных в конфигурационный файл Zabbix
Откройте zabbix_server.conf
файл с помощью команды:
sudo nano /etc/zabbix/zabbix_server.conf
и добавьте пароль базы данных в этом формате в любое место файла:
DBPassword=zabbixDBpass
Сохраните и выйдите из файла (ctrl+x, затем y и введите).
Шаг 3: Настройте брандмауэр
Если у вас есть UFW брандмауэра, установленного на Ubuntu, используйте эти команды для открытия TCP-портов: 10050 (агент), 10051 (сервер) и 80 (фронтенд):
ufw allow 10050/tcp ufw allow 10051/tcp ufw allow 80/tcp ufw reload
Шаг 4: Запустите процессы сервера и агента Zabbix
sudo systemctl restart zabbix-server zabbix-agent sudo systemctl enable zabbix-server zabbix-agent
Шаг 5: Настройте фронтенд Zabbix
a. Перезапустите веб-сервер Apache и сделайте так, чтобы он запускался при загрузке системы
systemctl restart apache2
systemctl enable apache2
b. Настройте веб-фронтенд
Подключитесь к только что установленному фронтенду Zabbix, используя URL “http://имя_ip_или_dns_сервера/zabbix“, чтобы запустить мастер установки Zabbix.
В моем случае этот URL будет “http://192.168.1.161/zabbix“, потому что я установил Zabbix на сервер с IP-адресом 192.168.1.161 (вы можете узнать IP-адрес своего сервера, набрав “ip a
” в терминале).
По сути, в этом мастере вы нужно ввести только пароль для пользователя БД Zabbix и просто нажать кнопку “Следующий шаг” для всего остального. В этом руководстве я использовал zabbixDBpass в качестве пароля базы данных, но если вы зададите другой, убедитесь, что ввели правильный пароль, когда мастер предложит ввести его.

Если вы получите ошибку “zabbix Locale for language “en_US” is not found on the web server. Пробовали установить: en_US, en_US.utf8, en_US.UTF-8, en_US.iso885915, en_US.ISO8859-1“, затем используйте эту команду, чтобы исправить ситуацию:
apt-get install -y locales && echo 'en_US.UTF-8 UTF-8' >> /etc/locale.gen && locale-gen && service apache2 restart




Вот и все, вы установили систему мониторинга Zabbix!
Шаг 6: Войдите во фронтенд, используя стандартные учетные данные Zabbix
Используйте имя пользователя администратора Zabbix по умолчанию “Admin” и пароль “zabbix” (без кавычек) для входа во фронтенд Zabbix по адресу URL “http://имя_ip_или_dns_сервера/zabbix” через ваш браузер.

В моем примере я установил Zabbix на сервер 192.168.1.161, поэтому я введу в поле URL браузера http://192.168.1.161/zabbix (вы можете найти IP-адрес вашего сервера, набрав “ip a
” в терминале)

ПОЗДРАВЛЯЕМ!
Вы успешно установили Zabbix 7 на Ubuntu и теперь можете следить за чем угодно!
Больше ничего менять не нужно, так как остальные шаги необязательны.
Шаг 7: Оптимизация сервера Zabbix (необязательно)
Не занимайтесь этой оптимизацией, если вы отслеживаете небольшое количество устройств, но если вы планируете отслеживать большое количество устройств, то продолжите этот шаг.
Откройте “zabbix_server.conf
” файл с помощью команды: “sudo nano /etc/zabbix/zabbix_server.conf
” и добавьте эту конфигурацию в любое место файла:
StartPollers=100
StartPollersUnreachable=50
StartPingers=50
StartTrappers=10
StartDiscoverers=10
StartHTTPPollers=10
CacheSize=128M
HistoryCacheSize=64M
HistoryIndexCacheSize=32M
TrendCacheSize=32M
ValueCacheSize=256M
Сохраните и выйдите из файла (ctrl+x, затем y и введите).
Это не идеальная конфигурация, имейте в виду, что вы можете оптимизировать ее еще больше. Скажем, если вы не используете ICMP-проверки, то установите параметр “StartPingers
” в 1 или если вы не используете активных агентов, то установите “StartTrappers
” на 1 и так далее. Подробнее о параметрах, поддерживаемых в файле конфигурации сервера Zabbix, вы можете узнать в разделе официальной документации.
При попытке запустить сервер Zabbix может возникнуть ошибка “[Z3001] connection to database 'Zabbix' failed: [1040] Too many connections
” в журнале “/var/log/zabbix/zabbix_server.log
“, потому что мы используем больше процессов сервера Zabbix, чем может выдержать MySQL. Нам нужно увеличить максимально допустимое количество одновременных клиентских подключений и оптимизировать MySQL – так что переходите к следующему шагу.
Шаг 8: Оптимизация базы данных MySQL / MariaDB (необязательно)
a. Создайте пользовательский файл конфигурации MySQL
Создайте файл “10_my_tweaks.cnf"
с помощью “sudo nano /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
” и вставьте эту конфигурацию:
[mysqld]
max_connections = 300
innodb_buffer_pool_size = 800M
innodb-log-file-size = 128M
innodb-log-buffer-size = 128M
innodb-file-per-table = 1
innodb_buffer_pool_instances = 8
innodb_old_blocks_time = 1000
innodb_stats_on_metadata = off
innodb-flush-method = O_DIRECT
innodb-log-files-in-group = 2
innodb-flush-log-at-trx-commit = 2
tmp-table-size = 96M
max-heap-table-size = 96M
open_files_limit = 65535
max_connect_errors = 1000000
connect_timeout = 60
wait_timeout = 28800
Сохраните и выйдите из файла (ctrl+x, затем y и введите) и установите правильное разрешение файла:
sudo chown mysql:mysql /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf sudo chmod 644 /etc/mysql/mariadb.conf.d/10_my_tweaks.cnf
Параметр конфигурации innodb_buffer_pool_size определяет, сколько памяти может получить MySQL для кэширования данных таблиц и индексов InnoDB. Если на сервере установлена только база данных, следует установить этот параметр на 70% от системной памяти.
Однако в данном случае мы используем сервер совместно с процессами Zabbix и Apache, поэтому следует установить значение innodb_buffer_pool_size до 40% от общего объема системной памяти. Это будет 800 МБ, потому что мой сервер Ubuntu имеет 2 ГБ оперативной памяти.
У меня не было проблем с памятью, но если ваш прокси-сервер Zabbix падает из-за нехватки памяти, уменьшите “innodb_buffer_pool_size
” и перезапустите сервер MySQL.
Подробнее об оптимизации баз данных в учебнике: Как оптимизировать базу данных Zabbix?
b. Перезапустите сервер Zabbix и службу MySQL
Остановите и запустите службы в том же порядке, как показано ниже:
sudo systemctl stop zabbix-server sudo systemctl stop mysql sudo systemctl start mysql sudo systemctl start zabbix-server
Шаг 9: Создайте разделы MySQL для таблиц History и Events
Процесс уборки в Zabbix отвечает за удаление старых данных о трендах и истории. Удаление старых данных из базы данных с помощью SQL-запроса на удаление может негативно повлиять на производительность базы данных. Многие из нас получали это раздражающее сообщение “Zabbix housekeeper processes more than 75% busy
” из-за этого.
Эту проблему можно легко решить с помощью разделения базы данных. Разбиение создает таблицы для каждого часа или дня и удаляет их, когда они больше не нужны. SQL DROP гораздо эффективнее, чем оператор DELETE.
Вы можете разбить таблицы MySQL на разделы за 5 минут, используя это простое руководство.
Шаг 10: Как управлять сервисом Zabbix / MySQL / Apache
Иногда вам потребуется проверить или перезапустить службу Zabbix, MySQL или Apache – для этого используйте команды, приведенные ниже.
Zabbix Server sudo systemctl <status/restart/start/stop> zabbix-server MySQL Server sudo systemctl <status/restart/start/stop> mysql Apache Server sudo systemctl <status/restart/start/stop> apache2 Zabbix Agent sudo systemctl <status/restart/start/stop> zabbix-agent
Шаг 11: Обновление между младшими версиями
Я писал об этих процедурах обновления в своем посте об обновлении Zabbix. Команда Zabbix выпускает новые минорные версии не реже одного раза в месяц. Основная цель минорных обновлений – исправление ошибок (хотфиксы) и иногда даже добавление новой функциональности. Поэтому старайтесь делать минорные обновления Zabbix хотя бы раз в месяц.
При выполнении минорного обновления нет необходимости создавать резервные копии, они полностью безопасны. С помощью этой команды вы можете легко обновить меньшие версии 7.0.x (например, с 7.0.1 до 7.0.3):
sudo apt install --only-upgrade 'zabbix*'
После этого перезапустите сервер Zabbix:
sudo systemctl restart zabbix-server