Архив за месяц: Январь 2024

Установка Zabbix

У нас уже имеется чистая 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

apt install 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.

DBPassword=p@$$w0rd

Настройка для работы с 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

vi /etc/locale.gen

Найдем и раскомментируем строку

ru_RU.UTF-8 UTF-8

Пере генерируем локали

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 (с маленькой).