У нас уже имеется чистая Ubuntu 22.04.3 с настроенной сетью.
Для информации мы будем использовать следующую ссылку на официальный манула от Zabbix https://www.zabbix.com/ru/download.
У нас будет вот такая конфигурация на сервере.

Работу будем выполнять из под учетки sudo.
Качаем и устанавливаем deb пакет с репозиториями Zabbix, после обновляем список репозиториев
# wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
# dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
# apt update
Посмотреть добавленные репозитории можно следующей командой
vi /etc/apt/sources.list.d/zabbix.list
Устанавливаем Zabbix сервер, веб-сервер NGINX, агента Zabbix2
apt install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
Настраиваем PostgreSQL
Устанавливаем сервер PostgreSQL
Запустим Postgresql
systemctl start postgresql
Открываем файл конфигурации
vi /etc/postgresql/14/main/postgresql.conf
Задаем IP адрес сервера(ов) с которых будем принимать подключения к БД
listen_addresses = 'localhost'
По умолчанию принимаются подключения только с локального сервера
Сохраняем, перезапускаем PostgerSQL
systemctl restart postgresql
Если на сервере расположены другие БД, то данная команда прервет все соединения на время перезагрузки, что не сильно хорошо, для того чтобы этого избежать можно использовать следующую команду которая просто перечитает все конфиги systemctl daemon-reload
Настройка метода аутентификации
vi /etc/postgresql/14/main/pg_hba.conf
Поскольку у нас БД будет установлена локально, менять ни чего не надо.
Если что-то было изменено то нужно перезапустить службу PostgreSQL
Данные БД находится по следующему пути:
/var/lib/postgresql/14/main/
Установка расширения PostgreSQL для возможности партицированния данных
https://docs.timescale.com/self-hosted/latest/install/installation-linux/
На момент написания статьи последняя версия timescaledb не поддерживалась Zabbix 6.04, поэтому timescaledb нужно устанавливать следующей командой:
apt-get install timescaledb-2-postgresql-14=’2.9.0*’ timescaledb-2-loader-postgresql-14=’2.9.0*’
echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list
wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo apt-key add -
apt update
apt install timescaledb-2-postgresql-14
Настраиваем PostgreSQL для работы с timescaledb,
открываем файл конфигурации
vi /etc/postgresql/14/main/postgresql.conf
Находим секцию shared_preload_libraries и выставляем параметр
shared_preload_libraries = 'timescaledb'
Перезапускаем PostgreSQL
systemctl restart postgresql
Создаем пользователя БД PostgreSQL, система попросит ввести пароль
sudo -u postgres createuser --pwprompt zabbix
Создадим базу для Zabbix с названием zabbix и владельцем zabbix
sudo -u postgres createdb -O zabbix zabbix
Команда -O zabbix устанавливает владельца базы
Создаем в новой БД структуру и данные
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
Настройка Zabbix для работы с PostgreSQL
Открываем файл конфигурации zabbix
vi /etc/zabbix/zabbix_server.conf
Находим строку ,вписываем пароль ранее созданного пользователя БД zabbxix.
Настройка для работы с timescaledb
Активируем расширение в postgreSQL
echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix
При корректной активацией данного расширения появится сообщение вида
_____ _ _ ____________
|_ _(_) | | | _ \ ___ \
| | _ _ __ ___ ___ ___ ___ __ _| | ___| | | | |_/ /
| | | | _ ` _ \ / _ \/ __|/ __/ _` | |/ _ \ | | | ___ \
| | | | | | | | | __/\__ \ (_| (_| | | __/ |/ /| |_/ /
|_| |_|_| |_| |_|\___||___/\___\__,_|_|\___|___/ \____/
Running version 2.9.0
For more information on TimescaleDB, please visit the following links:
1. Getting started: https://docs.timescale.com/timescaledb/latest/getting-started
2. API reference documentation: https://docs.timescale.com/api/latest
3. How TimescaleDB is designed: https://docs.timescale.com/timescaledb/latest/overview/core-concepts
Note: TimescaleDB collects anonymous reports to better understand and assist our users.
For more information and how to disable, please see our docs https://docs.timescale.com/timescaledb/latest/how-to-guides/configuration/telemetry.
Подготовим БД, «спартицируем» наверное так назовём этот процесс, для того чтобы zabbix хранил данные порционно
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix
Настройка Nginx
Откроем файл конфигурации nginx
vi /etc/zabbix/nginx.conf
Раскомментируем строчки и отредактируем
listen 80;
server_name 127.0.0.1;
В поле server_name нужно ввести имя сервера по которому вы будете к нему обращаться (данная запись должна быть настроена в DNS, либо указать IP адрес самого сервера если будете обращаться к нему по ip-адресу
Почти готово, установим поддержку Русского языка (локаль)
Открываем файл locale.gen
Найдем и раскомментируем строку
Пере генерируем локали
Перезапускаем все наши сервисы
systemctl restart zabbix-server zabbix-agent2 nginx php8.1-fpm
Включаем данные сервисы в автозагрузку
systemctl enable zabbix-server zabbix-agent2 nginx php8.1-fpm
Сервер готов, теперь можно зайти в его веб интерфейс и продолжить настройку.
Для этого перейдем по адресу http://ip_адсе_сервера:80. Выберем (или нет) Русский язык, нажмем Далее

Проверим что на против каждого пункта стоит состояние ОК.

Укажем пароль пользователя БД zabbix

Укажем имя сервера (или нет) и часовой пояс.

Последний взгляд на установленные параметры

Zabbix установлен

Входим в панель управления zabbix, для этого в поле Имя пользователя введем дефолтный параметр Admin (с большой буквы), а в поле пароль zabbix (с маленькой).
