Zabbix 4.4 + PostgreSQL 12 на VPS с CentOS 7.7

В этой статье установим связку Zabbix 4.4+ PostrgreSQL 12 на CentOS 7.7.1908.

Предполагается, что у вас уже установлен CentOS не ниже 7.7.1908.

Итак. Поехали.

В идеале PostreSQL и Zabbix должны устанавливаться на разных серверах, но в рамках статьи они будут установлены на одном сервере.

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.





Добавить комментарий