Если ты хочешь получить полноценную систему мониторинга серверов, сетевого оборудования и приложений, то Zabbix — один из лучших выборов. В этом руководстве мы подробно разберем, как выполнить установку Zabbix на Ubuntu (включая версии 24.04 и 22.04) и Debian (12 и 13), настроим его работу с надежной СУБД PostgreSQL, веб-интерфейс на Apache и даже затронем настройку SSL для безопасности. Представь, что это твой личный чек-лист от Senior DevOps инженера.
Подготовка системы и установка Zabbix Server
Перед тем как начать установку Zabbix server на Ubuntu, убедись, что у тебя есть доступ к серверу с правами суперпользователя и что система обновлена.
1. Обновление системы и установка необходимых пакетов
Первым делом обновим индекс пакетов и установим базовые утилиты.
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl gnupg2 software-properties-common
2. Добавление официального репозитория Zabbix
Zabbix предоставляет собственные репозитории для всех основных версий. Это самый надежный способ установки Zabbix 7 на Ubuntu.
# Скачиваем и устанавливаем ключ репозитория
wget https://repo.zabbix.com/zabbix/7.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.4-1+ubuntu24.04_all.deb
# Для Ubuntu 22.04 используй: zabbix-release_7.4-1+ubuntu22.04_all.deb
# Для Debian 12: zabbix-release_7.4-1+debian12_all.deb
sudo dpkg -i zabbix-release_7.4-1+ubuntu24.04_all.deb
sudo apt update
3. Установка Zabbix Server, Frontend и Агента
Теперь установим основные компоненты: сервер, веб-интерфейс и агент для мониторинга самого сервера.
sudo apt install -y zabbix-server-pgsql zabbix-frontend-php \
zabbix-apache-conf zabbix-sql-scripts zabbix-agent
Обрати внимание на пакет zabbix-server-pgsql — он предназначен для работы с PostgreSQL. Если бы мы использовали MySQL, был бы пакет zabbix-server-mysql.
Установка и настройка PostgreSQL для Zabbix
Zabbix требует базу данных для хранения всей информации о конфигурации, метриках и событиях. PostgreSQL — отличный выбор для production-среды благодаря своей надежности и производительности.
1. Установка PostgreSQL
sudo apt install -y postgresql postgresql-contrib
2. Создание базы данных и пользователя Zabbix
Давай разберем этот важный шаг. Мы зайдем в консоль PostgreSQL и создадим отдельную базу и пользователя для безопасности.
sudo -u postgres psql
-- В консоли PostgreSQL выполняем:
CREATE USER zabbix WITH PASSWORD 'YourStrongPassword123!' PASSWORD 'YourStrongPassword123!';
CREATE DATABASE zabbix OWNER zabbix;
\q
YourStrongPassword123! на свой сложный пароль. Запиши его — он понадобится позже.
3. Импорт начальной схемы базы данных
Zabbix предоставляет SQL-скрипты для создания всех необходимых таблиц. Импортируем их в свежесозданную базу.
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Этот процесс может занять несколько минут. Дождись его завершения.
Настройка Zabbix Server и Apache
Теперь свяжем установленные компоненты вместе, отредактировав конфигурационные файлы.
1. Конфигурация подключения к PostgreSQL
Отредактируем главный конфигурационный файл Zabbix Server, чтобы указать параметры подключения к базе данных.
sudo nano /etc/zabbix/zabbix_server.conf
Найди и измени следующие параметры (они могут быть уже раскомментированы):
DBPassword=YourStrongPassword123!
# Убедись, что остальные параметры выглядят так:
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPort=5432
2. Настройка PHP для веб-интерфейса
Веб-интерфейсу Zabbix требуются определенные настройки PHP. Отредактируем конфиг PHP, который используется Apache.
sudo nano /etc/zabbix/apache.conf
Убедись, что в файле правильно указан часовой пояс (timezone). Например, для Москвы:
php_value date.timezone Europe/Moscow
3. Запуск и включение служб
Теперь запустим все службы и добавим их в автозагрузку.
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
Проверим, что службы работают без ошибок:
sudo systemctl status zabbix-server
Завершение установки через веб-интерфейс
Основная часть установки Zabbix на Ubuntu завершена. Теперь откроем браузер и пройдем мастер начальной настройки.
- Открой в браузере:
http://IP_ТВОЕГО_СЕРВЕРА/zabbix - Ты увидишь приветственную страницу. Нажми "Next step".
- Убедись, что все предварительные проверки (Pre-requisites) отмечены зеленым "OK".
- На этапе настройки базы данных (Configure DB connection) введи пароль, который задавал ранее для пользователя PostgreSQL.
- Далее задай имя для своего Zabbix сервера (например, "Company Monitoring").
- Проверь сводку настроек и нажми "Finish".
- Используй стандартные учетные данные для первого входа: Admin / zabbix. Сразу же смени пароль!
Расширенная настройка: SSL для PostgreSQL и Безопасность
Для production-окружения крайне рекомендуется обезопасить канал связи между Zabbix Server и PostgreSQL, особенно если они находятся на разных хостах. Давай рассмотрим базовую настройка Zabbix PostgreSQL SSL.
Генерация SSL сертификатов (упрощенный вариант)
# Создадим директорию для сертификатов PostgreSQL
sudo mkdir -p /var/lib/postgresql/certs
sudo chown postgres:postgres /var/lib/postgresql/certs
sudo chmod 700 /var/lib/postgresql/certs
# Генерируем самоподписанные сертификаты (для теста)
cd /var/lib/postgresql/certs
sudo -u postgres openssl req -new -x509 -days 365 -nodes \
-out server.crt -keyout server.key -subj "/CN=localhost"
sudo chmod 600 server.key
Настройка PostgreSQL для использования SSL
Отредактируем конфиг PostgreSQL postgresql.conf:
ssl = on
ssl_cert_file = '/var/lib/postgresql/certs/server.crt'
ssl_key_file = '/var/lib/postgresql/certs/server.key'
И добавим правило в pg_hba.conf для хоста Zabbix:
hostssl zabbix zabbix 127.0.0.1/32 md5
После этого не забудь перезапустить PostgreSQL и обновить DBHost в конфиге Zabbix, если используется SSL-соединение.
Сравнение Backend: PostgreSQL vs MySQL
При установке Zabbix часто встает вопрос выбора базы данных. Вот краткое сравнение для принятия решения:
| Критерий | PostgreSQL | MySQL/MariaDB |
|---|---|---|
| Рекомендация Zabbix | Основная, с версии 6.0 | Поддерживается |
| Производительность на больших объемах | Выше, лучше оптимизация сложных запросов | Достаточно для средних нагрузок |
| Надежность и стабильность | Очень высокая | Высокая |
| Сложность настройки репликации | Средняя | Низкая |
Для новых проектов и серьезных инсталляций Zabbix установка PostgreSQL является предпочтительным вариантом.
Частые проблемы и их решение
- Zabbix сервер не запускается: Проверь логи
sudo journalctl -u zabbix-server. Чаще всего проблема в ошибке пароля БД или недоступности PostgreSQL. - Веб-интерфейс выдает ошибки PHP: Убедись, что в
/etc/zabbix/apache.confкорректно указанdate.timezoneи перезапусти Apache. - Агент не отправляет данные: Проверь, разрешен ли доступ к агенту в его конфиге (
/etc/zabbix/zabbix_agentd.conf) и открыт ли порт 10050 на фаерволе. - Ошибка при импорте схемы БД: Убедись, что команда импорта выполняется от пользователя
zabbixи что база данных создана.
Следующие шаги после установки
Теперь, когда установка Zabbix на Ubuntu 24.04 (или Debian 12) завершена, рекомендую:
- Добавить в мониторинг сам сервер Zabbix через шаблон "Template OS Linux by Zabbix agent".
- Настроить уведомления (например, на email или Telegram) для критических событий.
- Установить Zabbix Agent на другие серверы и добавить их в систему.
- Изучить возможности автоматического обнаружения (Network Discovery) для упрощения масштабирования.
Вопросы и ответы (FAQ)
Можно ли использовать MySQL вместо PostgreSQL при установке Zabbix на Debian?
Да, можно. Вместо пакета zabbix-server-pgsql установи zabbix-server-mysql. Затем создай базу и пользователя в MySQL и импортируй соответствующую схему (server.sql.gz для MySQL). Однако для версий Zabbix 6.0 и выше официально рекомендуется PostgreSQL.
Чем отличается установка Zabbix на Ubuntu 22.04 от установки на Ubuntu 24.04?
Основное отличие — в имени пакета репозитория, который нужно скачать (как показано в шаге 2). Внутренние шаги по установке и настройке Zabbix postgresql, apache и агента идентичны. Ubuntu 24.04 может иметь более свежие версии системных библиотек.
Обязательно ли настраивать SSL для PostgreSQL?
Если Zabbix Server и PostgreSQL работают на одном и том же сервере (localhost), то настройка SSL не является обязательной, но все равно считается хорошей практикой для повышения безопасности. Если база данных вынесена на отдельный хост, то SSL/TLS шифрование канала связи строго рекомендуется.
Что делать, если после установки веб-интерфейс недоступен?
1) Проверь, запущен ли Apache: sudo systemctl status apache2. 2) Убедись, что нет конфликта портов (по умолчанию Apache слушает 80). 3) Проверь настройки виртуального хоста в /etc/zabbix/apache.conf. 4) Изучи логи Apache: sudo tail -f /var/log/apache2/error.log.
Установка и настройка Zabbix на Ubuntu или Debian — это фундаментальный навык для любого инженера, отвечающего за инфраструктуру. Следуя этому руководству, ты не только развернул мощную систему мониторинга, но и заложил основу для ее безопасной и масштабируемой работы. Теперь можно переходить к тонкой настройке шаблонов, триггеров и дашбордов, превращая сырые метрики в осмысленную информацию о здоровье твоих систем.