Site icon IT Draft

Установка Zabbix 6.2 + Nginx + PostgreSQL 14 + TimescaleDB в Debian 11 Bullseye

Установка Zabbix 6.2 + Nginx + PostgreSQL 14 + TimescaleDB в Debian 11 Bullseye 1

Zabbix 6.2 + Nginx + PostgreSQL 14 + TimescaleDB

Zabbix — свободная система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования, написанная Алексеем Владышевым. Для хранения данных используется MySQL, PostgreSQL, SQLite или Oracle Database, веб-интерфейс написан на PHP.

Подготовка

Обновляем ОС, устанавливаем софт

$ sudo apt update
$ sudo apt -y upgrade
$ sudo apt -y install nano curl bind9-utils telnet wget net-tools traceroute git tcpdump rsync open-vm-tools mlocate htop tar zip unzip  cloud-guest-utils
$ sudo apt -y install gnupg2

Установка Nginx из репозитория

Добавляем ключ репозитория

$ wget --quiet -O - https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

Добавляем репозиторий Nginx

$ sudo nano /etc/apt/sources.list.d/nginx.list
# NGINX repo
deb https://nginx.org/packages/mainline/debian/ bullseye nginx
deb-src https://nginx.org/packages/mainline/debian bullseye nginx

Устанавливаем Nginx

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.


$ sudo apt update
$ sudo apt install -y nginx

Установка Postgresql 14 из репозитория

Добавляем репозиторий PostgreSQL

$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Добавляем ключ репозитория

$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

Устанавливаем Postgresql 14

$ sudo apt update
$ sudo apt -y install postgresql-14

Установка Zabbix 6.2 из репозитория

Добавляем репозиторий

$ wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
$ sudo dpkg -i zabbix-release_6.2-1+debian11_all.deb

Устанавливаем Zabbix для Nginx и Postgresql

$ sudo apt update
$ sudo apt -y install zabbix-server-pgsql zabbix-frontend-php php7.4-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2

Почему то в процессе установки обнаружил, что установился apache2, удаляем его

$ sudo apt -y remove apache2
$ sudo apt -y autoremove

Настройка Postgresql 14

Редактируем конфиг pg_hba.conf, включаем авторизацию по паролю для локальных соединений

$ sudo nano /etc/postgresql/14/main/pg_hba.conf
...
#host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
#host    all             all             ::1/128                 scram-sha-256
host    all             all             ::1/128                 md5
...

Перезапускаем сервис

$ sudo systemctl restart postgresql

Настройка PHP-FPM

Меняем Timezone и listen.mode

$ sudo nano /etc/zabbix/php-fpm.conf
...
listen.mode = 0777
...
php_value[date.timezone] = Europe/Moscow

Перезапускаем сервис

$ sudo systemctl restart php7.4-fpm

Настройка Nginx

Редактируем конфиг zabbix.conf

$ sudo nano /etc/nginx/conf.d/zabbix.conf
        listen 80;
        listen [::]:80;
        server_name _;
#        listen          8080;
#        server_name     example.com;

        root    /usr/share/zabbix;
        index   index.php;
        client_max_body_size 100M;
...

Отключаем дефолтный конфиг

$ sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled

Перезапускаем сервис

$ sudo systemctl restart nginx

Настройка PostgreSQL для Zabbix

Создаем пользователя

$ sudo -u postgres createuser --pwprompt zabbix
Enter password for new role: mysuperpass

Создаем базу

$ sudo -u postgres createdb -O zabbix zabbix

Загружаем данные

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

Правим конфиг zabbix_server.conf, добавляем пароль пользователя

$ sudo nano /etc/zabbix/zabbix_server.conf
...
DBPassword=mysuperpass
...

Перезапускаем сервисы, добавляем их в автозагрузку

$ sudo systemctl restart zabbix-server zabbix-agent2 nginx php7.4-fpm
$ sudo systemctl enable zabbix-server zabbix-agent2 nginx php7.4-fpm

Zabbix server установлен, заходим в web-интерфейс, завершаем установка

Default login: Admin
Default pass: zabbix

Установка TimescaleDB

Ставим софт

$ sudo apt -y install gnupg postgresql-common apt-transport-https lsb-release

Добавляем ключ репозитория

$ wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | sudo sh -c "gpg --dearmor > /etc/apt/trusted.gpg.d/timescaledb.gpg"

Добавляем репозиторий timescaledb

$ echo "deb https://packagecloud.io/timescale/timescaledb/debian/ $(lsb_release -c -s) main" | sudo tee /etc/apt/sources.list.d/timescaledb.list

Устанавливаем timescaledb

$ sudo apt update
$ sudo apt -y install timescaledb-2-postgresql-14

Тюним конфиг PostgreSQL

$ sudo timescaledb-tune --quiet --yes

Добавляем параметр shared_preload_libraries = ‘timescaledb’ в конфиг Postgresql

$ echo "shared_preload_libraries = 'timescaledb'" | sudo tee -a /etc/postgresql/14/main/postgresql.conf

Перезапускаем Postgresql

$ sudo systemctl restart postgresql

Добавляем расширение в базу

$ echo "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;" | sudo -u postgres psql zabbix

Скачиваем дистрибутив zabbix-6.2.1 и распаковываем его

$ wget https://cdn.zabbix.com/zabbix/sources/stable/6.2/zabbix-6.2.1.tar.gz
$ tar -zxvf zabbix-6.2.1.tar.gz

Добавляем данные в базу

$ cat zabbix-6.2.1/database/postgresql/timescaledb.sql | sudo -u zabbix psql zabbix

Что б zabbix server не ругался на версию TimescaleDB, добавляем в самом конце конфига zabbix_server.conf

$ sudo nano /etc/zabbix/zabbix_server.conf
...
AllowUnsupportedDBVersions=1

Иначе в логах zabbix server будет ошибка:

Unsupported DB! timescaledb version is 20702 which is higher than maximum of 20699
Recommended version should not be higher than TimescaleDB Community Edition 2.6.

Перезапускаем сервисы

$ sudo systemctl restart postgresql zabbix-server

Установка Zabbix Agent 2 на хостах

Добавляем репозиторий Zabbix

$ wget https://repo.zabbix.com/zabbix/6.2/debian/pool/main/z/zabbix-release/zabbix-release_6.2-1+debian11_all.deb
$ sudo dpkg -i zabbix-release_6.2-1+debian11_all.deb

Устанавливаем Zabbix Agent 2

$ sudo apt update
$ sudo apt -y install zabbix-agent2

Правим конфиг zabbix_agent2.conf

$ sudo nano /etc/zabbix/zabbix_agent2.conf

Перезапускаем сервис и добавляем его в автозагрузку

$ sudo systemctl restart zabbix-agent2
$ sudo systemctl enable zabbix-agent2
Exit mobile version