domingo, 6 de febrero de 2022

Zabbix 6 con postgresSQL (Server y proxy)

Base para todos (server y proxy)

Software a instalar

Zabix VersionPostgreSQL VersiónSistema Operativo
6.0 RC214.0AlmaLinux release 8.5 (Arctic Sphynx)

IP de Equipos

IP Server192.168.0.103
IP Proxy192.168.0.105

Pasar SELinux a modo permisivo

Se recomienda tener SELinux en modo permisivo (no permite conexión con posrgre en enforcing) a menos que sepa cómo solucionar problemas:

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Configure firewall

firewall-cmd --add-service={http,https} --permanent
firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
firewall-cmd --add-port={80/tcp,443/tcp} --permanent
firewall-cmd --reload

Instalar el repositorio de Zabbix
rpm -Uvh https://repo.zabbix.com/zabbix/5.5/rhel/8/x86_64/zabbix-release-5.5-1.el8.noarch.rpm
dnf -y install redhat-lsb-core
dnf clean all


POSTGRESQL


Instala el repositorio Postgresql-14 y limpia caché
rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
dnf clean all

Desabilita el módulo pre-instalado DBMS.
dnf -qy module disable postgresql

Instala los paquetes postgre14
dnf -y install postgresql14 postgresql14-server

Inicializa la base de datos.
/usr/pgsql-14/bin/postgresql-14-setup initdb

Activar el servicio y cnfigurarlo para su inicio emn el arranque
systemctl enable --now postgresql-14

Editar Archivo de configuración postgresSQL para poder aceptar conexiones locales en /var/lib/pgsql/14/data/pg_hba.conf
nano /var/lib/pgsql/14/data/pg_hba.conf

Agregar
local all all trust
local all all md5
local all all md5
host all all 127.0.0.1/32 md5
host all all all md5
host all all ::1/128 md5

Si desea acceder desde afuera
host all all 0.0.0.0 0.0.0.0 md5

iniciar postgres
systemctl start postgresql-14

Nota: Acceder desde afuera significa abrir en firewalld el puerto 5432. la versión de base de datos es la actual al moneto de hacer esta guia, si sale uina versión 16,17,18,etc solo colocar el nombre de la versión, aunque por defecto zabix 6.0 busca la versión 13 y notifica que no detecta la versión (pero funciona sin inconvenientes).


Server


Instala el servidor, la interfaz y el agente de Zabbix
dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

Crear base de datos inicial

sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

En el servidor Zabbix, importe el esquema y los datos iniciales. Se le pedirá que ingrese la contraseña recién creada.
zcat /usr/share/doc/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

Configurar la base de datos para el servidor Zabbix

Editar archivo /etc/zabbix/zabbix_server.conf
nano /etc/zabbix/zabbix_server.conf

Agregar los siguientes parámetros
DBPassword=password
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=5432

reiniciar postgres
systemctl restart postgresql-14
Configurar PHP para la interfaz de Zabbix

Editar archivo /etc/nginx/conf.d/zabbix.conf, descomenta y configura las directivas 'listen' y 'server_name'.
nano /etc/nginx/conf.d/zabbix.conf

Mofificar
listen 80;
server_name example.com;

Inicia los procesos del agente y del servidor Zabbix

Inicia los procesos del agente y del servidor Zabbix y configúralos para que se inicien con el sistema.
systemctl restart zabbix-server zabbix-agent nginx php-fpm
systemctl enable zabbix-server zabbix-agent nginx php-fpm


Proxy


Encontré esta guía pero no está actualizada, aunque sirvió para poder tener noción del proceso. Esta guia es solo la adaptación de esta para su uso con PostgreSQL 14, zabbix 6.0 y REDHAT 8 (Alma Linux u otra compatible) 


Instalar
dnf -y install zabbix-proxy-pgsql zabbix-sql-scripts zabbix-agent

Editar Archivo de configuración postgresSQL para poder aceptar conexiones locales en /var/lib/pgsql/14/data/pg_hba.conf
nano /var/lib/pgsql/14/data/pg_hba.conf

Agregar y comentar las que estén
local all all trust
local all all md5
local all all md5
host all all 127.0.0.1/32 md5
host all all all md5
host all all ::1/128 md5

Si desea acceder desde afuera
host all all 0.0.0.0 0.0.0.0 md5

useradd zabbix_proxy
sudo -u postgres createuser --pwprompt zabbix_proxy
sudo -u postgres createdb -O zabbix_proxy zabbix_proxy

Cargar datos del SQL para PostgreSQL
cat /usr/share/doc/zabbix-sql-scripts/postgresql/proxy.sql | sudo -u postgres psql zabbix_proxy

En caso de fallos revisar

Editar archivo de configuración y agregue la contraseña de la base de datos y la frecuencia de configuración en este formato en cualquier parte del archivo:
nano /etc/zabbix/zabbix_proxy.conf

Validar los parámetros
Server=192.168.0.103
Hostname=ZabbixProxy01
DBName=zabbix_proxy
DBPassword=zabbix_proxy
ConfigFrequency=60



El parámetro “ ConfigFrequency” define con qué frecuencia el proxy recupera los datos de configuración del servidor Zabbix en segundos. Puede leer más sobre los parámetros de configuración del proxy en la documentación oficial .

¡No cierres el archivo todavía! Ahora, debe cambiar los valores actuales de los parámetros " Server", " Hostname", " DBName" y " " a algo como esto:DB user

probar conexión local
psql -U zabbix_proxy zabbix_proxy



Comandos PSQL
listar tablas\dt o \dt+
listar usuarios\du
listar bases de datos\l

Por favor si ven algún fallo no duden en notificarlo