Как установить Zabbix 7.0 на Ubuntu 24.04 / 22.04 [Step-by-Step]

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

Zabbix это 100% бесплатное программное обеспечение корпоративного уровня с открытым исходным кодом, предназначенное для мониторинга доступности и производительности компонентов ИТ-инфраструктуры. Ознакомиться с примером популярности Zabbix и узнать больше о движении open-source вы можете в этой статье.

Пример экрана приборной панели Zabbix 7.0
Приборная панель Zabbix 7

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

Рисунок, показывающий архитектуру Zabbix
Изображение, показывающее архитектуру Zabbix

Оглавление

Шаг 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 в качестве пароля базы данных, но если вы зададите другой, убедитесь, что ввели правильный пароль, когда мастер предложит ввести его.

1. Шаг установки: Экран приветствия

Если вы получите ошибку “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
4. Шаг установки: Настройка сервера Zabbix
5. Шаг установки: Краткое описание предварительной установки
6. Шаг установки: Завершение
6. Шаг установки: Завершение

Вот и все, вы установили систему мониторинга Zabbix!

Шаг 6: Войдите во фронтенд, используя стандартные учетные данные Zabbix

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

СТРАНИЦА ВХОДА В СИСТЕМУ ZABBIX
СТРАНИЦА ВХОДА В СИСТЕМУ ZABBIX

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

Дашборд Zabbix 7.0

ПОЗДРАВЛЯЕМ!
Вы успешно установили 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

Добавить комментарий

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