Zabbix 4.4 + PostgreSQL 12 на VPS с CentOS 7.7
В этой статье установим связку Zabbix 4.4+ PostrgreSQL 12 на CentOS 7.7.1908.
Предполагается, что у вас уже установлен CentOS не ниже 7.7.1908.
Итак. Поехали.
PostrgreSQL 12
1. Устанавливаем репозиторий PostreSQL.
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2. Устанавливаем клиента и сам сервер PostgreSQL.
yum -y install postgresql12 postgresql12-server
3. Инициализируем БД и включаем postgresql12-server
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12
4. Проверяем состояние сервиса postgresql-12.
systemctl status postgresql-12
● postgresql-12.service - PostgreSQL 12 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-12.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2019-11-10 10:27:35 CET; 2h 9min ago
Docs: https://www.postgresql.org/docs/12/static/
Process: 1028 ExecStartPre=/usr/pgsql-12/bin/postgresql-12-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 1038 (postmaster)
CGroup: /system.slice/postgresql-12.service
├─1038 /usr/pgsql-12/bin/postmaster -D /var/lib/pgsql/12/data/
├─1216 postgres: logger
├─1227 postgres: checkpointer
├─1228 postgres: background writer
├─1229 postgres: walwriter
├─1230 postgres: autovacuum launcher
├─1231 postgres: stats collector
└─1232 postgres: logical replication launcher
Nov 10 10:27:33 centos-2gb-nbg-zabbix systemd[1]: Starting PostgreSQL 12 database server...
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.779 CET [1038] LOG: starting PostgreSQL 12.0 on x86_64-pc-l...64-bit
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.794 CET [1038] LOG: listening on IPv6 address "::1", port 5432
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.794 CET [1038] LOG: listening on IPv4 address "127.0.0.1", port 5432
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.827 CET [1038] LOG: listening on Unix socket "/var/run/post....5432"
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.865 CET [1038] LOG: listening on Unix socket "/tmp/.s.PGSQL.5432"
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.988 CET [1038] LOG: redirecting log output to logging colle...rocess
Nov 10 10:27:34 centos-2gb-nbg-zabbix postmaster[1038]: 2019-11-10 10:27:34.988 CET [1038] HINT: Future log output will appear in direc..."log".
Nov 10 10:27:35 centos-2gb-nbg-zabbix systemd[1]: Started PostgreSQL 12 database server.
Hint: Some lines were ellipsized, use -l to show in full.
5. Задаём свой пароль пользователю postgres, который автоматически был создан во время установки PostrgreSQL.
passwd postgres
Zabbix 4.4
1. Устанавливаем репозиторий Zabbix.
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum clean all
2. Устанавливаем сервер, агента и фронтенд Zabbix'а.
yum -y install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
3. Создаём пользователя и базу данных с именем zabbix.
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
4. Затем импортируем данные в PostgreSQL.
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
5. Добавим пароль нашей БД в zabbix_server.conf.
vi /etc/zabbix/zabbix_server.conf
Найдите строку
DBPassword=
и после знака = добавьте пароль, который был указан на шаге 3.
6. Добавим разрешение пользователю zabbix подключаться к базе zabbix
Отредактируем конфиг PostgresSQL:
vi /var/lib/pgsql/12/data/pg_hba.conf
В самом низу конфиг должен выглядеть так (жирным выделено, какие строки надо добавить):
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all postgres md5
local zabbix zabbix md5
# IPv4 local connections:
host all postgres 127.0.0.1/32 md5
host zabbix zabbix 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
Строка local
local zabbix zabbix md5
нужна для того, чтобы можно было подключиться к базе zabbix пользователем zabbix.
Строка host
host zabbix zabbix 127.0.0.1/32 md5
нужна для того, чтобы наш фронтенд (то есть веб-сайт zabbix) смог точно так же подключаться.
METHOD md5 означает аутентификацию на основе пароля. Вообще этих METHOD несколько.
Некоторые из них:
- trust - любой, кто может подключиться к серверу, имеет право доступа к базе данных без пароля.
- peer - использует имя пользователя операционной системы клиента в качестве имени пользователя базы данных для доступа к нему.
- md5 - уже известный нам метод аутентификации на основе пароля.
После того, как добавили строки, сохраним конфиг и выполним команду, чтобы применить изменения:
systemctl reload postgresql-12
Осталось убедиться, что мы всё сделали правильно. Для этого выполните две команды.
1. Проверка возможности подключиться к базе из консоли:
psql -U zabbix -d zabbix
Password for user zabbix:
psql (12.0)
Type "help" for help.
zabbix=> \q
2. Проверка возможности подключиться к базе удаленно:
psql -U zabbix -d zabbix -h 127.0.0.1
Password for user zabbix:
psql (12.0)
Type "help" for help.
zabbix=> \q
Если же результат любой из команд:
could not connect to server: FATAL: Ident authentication failed for user "zabbix"
значит вы невнимательно добавили строки в pg_hba.conf.
Установка фронтенда Zabbix 4.4
1. В браузере вводим <адрес_вашего_сервера>/zabbix. Появится приглашение установки.
2. Жмём "Next step" и вводим все данные как на скриншоте (кликабельно).
3. В этом окне вводим все данные как на скриншоте (кликабельно). В строке "Name" введите имя вашего сервера. Имя сервера можно узнать в консоли командой hostnamectl. Нажимаем "Next step".
4. Убеждаемся, что всё ОК.
5. Жмём "Next step" и видим поздравление, что Zabbix фронтенд установлен.
В браузере введите адрес вашего Zabbix, затем введите логин Admin, пароль zabbix.