ServerAID
Найти гайд, команду, тег… ⌘ K
Сервер

Установка Zabbix на Ubuntu Server: сервер, PostgreSQL, веб-интерфейс и агент

Разворачиваем систему мониторинга Zabbix на Ubuntu Server 24.04: официальный репозиторий, база PostgreSQL, фронтенд на nginx, первый вход и подключение агентов. Отдельно — почему zabbix-server не стартует после установки и как читать его лог, когда мониторинг сам требует диагностики.

Zabbix — система мониторинга, которая собирает метрики с серверов, сетевого оборудования и приложений, строит графики и шлёт оповещения. Устанавливается из официального репозитория и состоит из четырёх частей: сервер, база, веб-интерфейс и агенты на наблюдаемых машинах. Разбираем развёртывание на Ubuntu Server 24.04 LTS.

Что и куда ставится

Компонент Роль
zabbix-server-pgsql Сервер: собирает и обрабатывает метрики
PostgreSQL Хранит конфигурацию и историю метрик
zabbix-frontend-php + nginx Веб-интерфейс
zabbix-agent2 Агент на наблюдаемой машине, включая сам сервер

Для стенда всё ставится на одну машину. Для продакшена базу выносят на отдельный сервер: история метрик растёт быстро и создаёт заметную дисковую нагрузку.

Ориентир по ресурсам: для мониторинга до 100 узлов достаточно 2 ядер и 4 ГБ памяти, но место под базу закладывайте с запасом — при частом опросе история за год легко занимает десятки гигабайт.

Подключаем репозиторий Zabbix

В архиве Ubuntu есть свой пакет zabbix, но он отстаёт на версии. Официальный репозиторий даёт актуальный LTS-релиз Zabbix и обновляется вместе с системой.

sudo apt update
sudo apt install -y wget

wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_7.0-2+ubuntu24.04_all.deb
sudo apt update

Номер версии в имени файла меняется — актуальную ссылку берут на zabbix.com/download, выбрав в конструкторе свою версию Ubuntu, базу и веб-сервер. Если ссылка отдаёт 404, значит имя пакета обновилось.

Ставим компоненты:

sudo apt install -y zabbix-server-pgsql zabbix-frontend-php \
  php8.3-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Пакет zabbix-sql-scripts содержит схему базы — она понадобится на следующем шаге.

Создаём базу

sudo -u postgres psql
CREATE ROLE zabbix WITH LOGIN PASSWORD 'СильныйПароль';
CREATE DATABASE zabbix OWNER zabbix;
\q

Импортируем схему и начальные данные. Файл поставляется сжатым, поэтому распаковка идёт на лету:

zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Импорт занимает от нескольких секунд до пары минут. Если команда падает с Peer authentication failed, значит нужно правило в pg_hba.conf — механика разобрана в статье про PostgreSQL.

Проверяем, что таблицы создались:

sudo -u zabbix psql zabbix -c "\dt" | head -20

Настраиваем сервер

Правим /etc/zabbix/zabbix_server.conf:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=СильныйПароль

Файл содержит пароль в открытом виде, поэтому права на него должны быть закрытыми:

sudo chmod 640 /etc/zabbix/zabbix_server.conf
sudo chown root:zabbix /etc/zabbix/zabbix_server.conf

Параметры, которые стоит подстроить сразу под размер инсталляции:

StartPollers=10          # число процессов опроса
CacheSize=64M            # кэш конфигурации
HistoryStorageDateIndex=1
Timeout=10               # таймаут опроса, секунд
LogSlowQueries=3000      # логировать запросы дольше 3 секунд

Запускаем сервер и агент:

sudo systemctl restart zabbix-server zabbix-agent2
sudo systemctl enable zabbix-server zabbix-agent2
systemctl is-active zabbix-server

Если сервер не поднялся — это штатная ситуация на первом запуске, причина почти всегда в базе. Смотрим лог:

sudo tail -50 /var/log/zabbix/zabbix_server.log

Типичные строки и что они означают:

  • database is down: reconnecting — неверный пароль или БД не принимает подключение;
  • cannot open database — база не создана или имя не совпадает;
  • the database does not match Zabbix database schema — не импортирована схема из zabbix-sql-scripts.

Настраиваем веб-интерфейс

Пакет zabbix-nginx-conf кладёт готовый конфиг в /etc/zabbix/nginx.conf. Раскомментируем в нём порт и имя сервера:

listen 8080;
server_name zabbix.example.com;

Порт 8080 удобен, если на 80-м уже работает другой сайт. Если Zabbix — единственный сервис, ставьте 80.

sudo systemctl restart nginx php8.3-fpm
sudo systemctl enable nginx php8.3-fpm

Открываем порт в фаерволе, ограничив доступ доверенной сетью:

sudo ufw allow from 192.168.1.0/24 to any port 8080 proto tcp

Веб-интерфейс мониторинга не стоит выставлять в открытый интернет: он показывает всю топологию инфраструктуры. Если доступ снаружи всё же нужен, поставьте перед ним nginx как reverse proxy с TLS от Let's Encrypt и ограничьте доступ по IP или базовой авторизацией. Про правила фаервола — в статье про UFW.

Первый вход

Открываем http://адрес-сервера:8080 — запустится мастер настройки. В нём указываем параметры подключения к базе (те же, что в конфиге сервера), часовой пояс и название инсталляции.

Учётные данные по умолчанию:

Пользователь: Admin
Пароль:       zabbix

Смените пароль сразу — эта пара известна всем и является первой, которую пробуют при сканировании. Меняется в «Users → Users → Admin».

Мастер сохраняет конфигурацию в /etc/zabbix/web/zabbix.conf.php. Если что-то указали неверно, файл можно отредактировать руками или удалить и пройти мастер заново.

Ставим агент на наблюдаемые машины

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

sudo apt install -y zabbix-agent2

Правим /etc/zabbix/zabbix_agent2.conf:

Server=192.168.1.10
ServerActive=192.168.1.10
Hostname=web-01

Server — адрес, с которого разрешены пассивные проверки, ServerActive — куда агент сам отправляет данные, Hostname должен совпадать с именем узла, заведённым в интерфейсе.

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

На наблюдаемой машине открываем порт агента только для сервера мониторинга:

sudo ufw allow from 192.168.1.10 to any port 10050 proto tcp

Проверить связь с сервера мониторинга:

sudo apt install -y zabbix-get
zabbix_get -s 192.168.1.20 -k agent.ping

Ответ 1 означает, что агент доступен и отвечает. Ошибка соединения — смотрите фаервол и параметр Server в конфиге агента.

Дальше узел добавляют в веб-интерфейсе: «Data collection → Hosts → Create host», указывают адрес и подключают шаблон Linux by Zabbix agent — он сразу даёт метрики по процессору, памяти, дискам и сетевым интерфейсам.

Обслуживание

Данные Zabbix растут быстрее, чем ожидаешь. Смотреть размер базы:

sudo -u postgres psql -c "SELECT pg_size_pretty(pg_database_size('zabbix'));"

Глубину хранения задают в настройках элементов данных: история (history) и динамика изменений (trends). Уменьшение истории с 90 до 7 дней при сохранении трендов на год радикально сокращает объём почти без потери пользы — детальные значения месячной давности редко кому нужны.

Логи компонентов:

sudo tail -f /var/log/zabbix/zabbix_server.log
sudo tail -f /var/log/zabbix/zabbix_agent2.log
sudo journalctl -u zabbix-server -f

Разбор журнала systemd — в шпаргалке по journalctl.

Бэкап — база плюс конфиги:

sudo -u postgres pg_dump -Fc zabbix > /backup/zabbix-$(date +%F).dump
sudo tar czf /backup/zabbix-etc-$(date +%F).tar.gz /etc/zabbix

Регулярность обеспечивает cron, вывоз копий — rsync.

Частые вопросы

Почему zabbix-server не запускается после установки?

Почти всегда причина в базе. Смотрите /var/log/zabbix/zabbix_server.log: database is down означает неверный пароль или недоступную БД, а does not match Zabbix database schema — что схема не импортирована.

Схему импортируют командой zcat /usr/share/zabbix/sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix из пакета zabbix-sql-scripts.

Какие логин и пароль у Zabbix по умолчанию?

Admin и zabbix, с заглавной буквы в имени пользователя. Эта пара одинакова во всех инсталляциях, поэтому её меняют сразу после первого входа в разделе «Users».

Веб-интерфейс при этом не стоит открывать в интернет: он раскрывает состав и топологию инфраструктуры.

PostgreSQL или MySQL для Zabbix?

Обе базы поддерживаются официально. PostgreSQL предпочтительнее на больших инсталляциях, особенно в связке с TimescaleDB — она заметно ускоряет работу с историей метрик.

Для небольшого мониторинга разницы почти нет, берите ту базу, которую лучше знаете и уже умеете бэкапить.

Как проверить, что агент доступен серверу?

С сервера мониторинга выполните zabbix_get -s адрес_агента -k agent.ping из пакета zabbix-get. Ответ 1 означает, что агент отвечает.

Если соединения нет, проверьте, что порт 10050 открыт для адреса сервера и что в zabbix_agent2.conf параметр Server содержит этот адрес.

Сколько места занимает база Zabbix?

Зависит от числа метрик и частоты опроса. Ориентир: сотня узлов со стандартным шаблоном и опросом раз в минуту даёт порядка нескольких десятков гигабайт в год.

Основной объём приходится на детальную историю. Сократите её хранение до 7–14 дней, оставив тренды на год, — размер базы упадёт в разы.

Что запомнить

  • Ставьте из официального репозитория Zabbix: в архиве Ubuntu версия отстаёт.
  • Схему базы нужно импортировать вручную из zabbix-sql-scripts — без этого сервер не стартует.
  • Пароль базы лежит в zabbix_server.conf открытым текстом: права на файл должны быть 640, владелец root:zabbix.
  • Пара Admin / zabbix меняется сразу после первого входа, а сам интерфейс не выставляется в интернет.
  • Глубина хранения истории — главный фактор размера базы; 7–14 дней истории плюс годовые тренды покрывают большинство задач.

Похожие материалы

Сервер

Установка Webmin на Ubuntu Server: веб-панель управления и её безопасность

Webmin даёт браузерный интерфейс к настройкам сервера: пользователи, сервисы, фаервол, cron, диски. Ставим его из официального репозитория, закрываем доступ к порту 10000 и разбираем главное — панель работает с правами root, поэтому вопрос её защиты важнее вопроса установки.

Редакция
Сервер

Ubuntu Server в VirtualBox: создание виртуальной машины и настройка сети

Разворачиваем Ubuntu Server в VirtualBox для учёбы и тестов: параметры виртуальной машины, установка без графики, разбор сетевых режимов NAT и «сетевой мост», проброс порта для SSH с хоста и снапшоты, которые позволяют ломать систему без последствий.

Редакция
Сервер

Что сделать после установки Ubuntu Server: чек-лист первых шагов

Инсталлятор отработал, вы вошли в систему — дальше идут пятнадцать минут, которые определяют, насколько удобно будет жить с этим сервером. Собрали чек-лист: имя хоста и часовой пояс, пользователи и sudo, автообновления безопасности, swap, синхронизация времени и проверка, что всё это применилось.

Редакция
Сервер

Графический интерфейс на Ubuntu Server: какую оболочку ставить и стоит ли

Ubuntu Server ставится без графики, но её можно добавить одной командой. Разбираем, чем отличаются варианты оболочек по потреблению памяти, как поставить лёгкий XFCE вместо полного GNOME, как включать графику только по требованию и почему на боевом сервере чаще правильнее обойтись веб-панелью или X11-форвардингом.

Редакция