Buenas….
En esta oportunidad vamos a instalar EDB PEM con el fin de monitorear los servidores de bases de datos Postgres en nuestro entorno. Decir primero que debemos descargar e instalar el motor de base de datos para luego instalar el PEM desde los repositorios de EDB. Posterior a este paso, continuamos con la configuración…
En mi caso instalé la versión 15 de EDB AS,verifico que el servicio se encuentre corriendo.
[root@pem ~]# systemctl status edb-as-15 ● edb-as-15.service - EDB Postgres Advanced Server 15 Loaded: loaded (/etc/systemd/system/edb-as-15.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2023-05-23 11:08:02 -05; 4s ago Process: 79062 ExecStartPre=/usr/edb/as15/bin/edb-as-15-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 79068 (edb-postmaster) Tasks: 8 (limit: 36784) Memory: 61.0M CGroup: /system.slice/edb-as-15.service ├─79068 /usr/edb/as15/bin/edb-postmaster -D /datos/edb/as15 ├─79069 postgres: logger ├─79070 postgres: checkpointer ├─79071 postgres: background writer ├─79073 postgres: walwriter ├─79074 postgres: autovacuum launcher ├─79075 postgres: dbms_aq launcher └─79076 postgres: logical replication launcher May 23 11:08:02 pem.unixpad.local systemd[1]: Starting EDB Postgres Advanced Server 15... May 23 11:08:02 pem.unixpad.local edb-postmaster[79068]: 2023-05-23 11:08:02 -05 LOG: redirecting log output to logging collector process May 23 11:08:02 pem.unixpad.local edb-postmaster[79068]: 2023-05-23 11:08:02 -05 HINT: Future log output will appear in directory "log". May 23 11:08:02 pem.unixpad.local systemd[1]: Started EDB Postgres Advanced Server 15. [root@pem ~]#
Debemos instalar la siguiente librería
edb-as15-server-sslutils
[root@pem ~]# dnf install edb-as15-server-sslutils enterprisedb-enterprise 588 B/s | 659 B 00:01 enterprisedb-enterprise-noarch 557 B/s | 659 B 00:01 enterprisedb-enterprise-source 805 B/s | 659 B 00:00 Dependencies resolved. =================================================================================================================================================================================== Package Architecture Version Repository Size =================================================================================================================================================================================== Installing: edb-as15-server-sslutils x86_64 1.3-1.el8 enterprisedb-enterprise 50 k Transaction Summary =================================================================================================================================================================================== Install 1 Package Total download size: 50 k Installed size: 100 k Is this ok [y/N]: y Downloading Packages: edb-as15-server-sslutils-1.3-1.el8.x86_64.rpm 37 kB/s | 50 kB 00:01 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 36 kB/s | 50 kB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : edb-as15-server-sslutils-1.3-1.el8.x86_64 1/1 Running scriptlet: edb-as15-server-sslutils-1.3-1.el8.x86_64 1/1 Verifying : edb-as15-server-sslutils-1.3-1.el8.x86_64 1/1 Installed: edb-as15-server-sslutils-1.3-1.el8.x86_64 Complete! [root@pem ~]#
El siguiente paso recomendado es actualizar paquetes en nuestro sistema operativo.
[root@pem ~]# dnf upgrade Last metadata expiration check: 0:00:43 ago on Tue 23 May 2023 11:10:45 AM -05. Dependencies resolved. =================================================================================================================================================================================== Package Architecture Version Repository Size =================================================================================================================================================================================== Upgrading: anaconda-core x86_64 33.16.8.9-1.el8_8.rocky.0.1 appstream 2.5 M anaconda-gui x86_64 33.16.8.9-1.el8_8.rocky.0.1 appstream 579 k anaconda-tui x86_64 33.16.8.9-1.el8_8.rocky.0.1 appstream 293 k anaconda-widgets x86_64 33.16.8.9-1.el8_8.rocky.0.1 appstream 228 k edb-pem x86_64 9.2.0-1.el8 enterprisedb-enterprise 13 k edb-pem-agent x86_64 9.2.0-1.el8 enterprisedb-enterprise 924 k edb-pem-cli x86_64 9.2.0-1.el8 enterprisedb-enterprise 506 k edb-pem-docs x86_64 9.2.0-1.el8 enterprisedb-enterprise 80 M edb-pem-server x86_64 9.2.0-1.el8 enterprisedb-enterprise 42 M firefox x86_64 102.11.0-2.el8_7 appstream 109 M git x86_64 2.39.3-1.el8_8 appstream 103 k git-core x86_64 2.39.3-1.el8_8 appstream 11 M git-core-doc noarch 2.39.3-1.el8_8 appstream 3.0 M perl-Git noarch 2.39.3-1.el8_8 appstream 78 k Transaction Summary =================================================================================================================================================================================== Upgrade 14 Packages Total download size: 251 M Is this ok [y/N]: y Downloading Packages: (1/14): anaconda-tui-33.16.8.9-1.el8_8.rocky.0.1.x86_64.rpm 200 kB/s | 293 kB 00:01 (2/14): anaconda-gui-33.16.8.9-1.el8_8.rocky.0.1.x86_64.rpm 367 kB/s | 579 kB 00:01 (3/14): anaconda-core-33.16.8.9-1.el8_8.rocky.0.1.x86_64.rpm 1.2 MB/s | 2.5 MB 00:02 (4/14): anaconda-widgets-33.16.8.9-1.el8_8.rocky.0.1.x86_64.rpm 315 kB/s | 228 kB 00:00 (5/14): git-2.39.3-1.el8_8.x86_64.rpm 451 kB/s | 103 kB 00:00 (6/14): git-core-doc-2.39.3-1.el8_8.noarch.rpm 6.7 MB/s | 3.0 MB 00:00 (7/14): perl-Git-2.39.3-1.el8_8.noarch.rpm 330 kB/s | 78 kB 00:00 (8/14): git-core-2.39.3-1.el8_8.x86_64.rpm 7.6 MB/s | 11 MB 00:01 (9/14): edb-pem-9.2.0-1.el8.x86_64.rpm 12 kB/s | 13 kB 00:01 (10/14): edb-pem-agent-9.2.0-1.el8.x86_64.rpm 834 kB/s | 924 kB 00:01 (11/14): edb-pem-cli-9.2.0-1.el8.x86_64.rpm 515 kB/s | 506 kB 00:00 (12/14): edb-pem-server-9.2.0-1.el8.x86_64.rpm 4.0 MB/s | 42 MB 00:10 (13/14): firefox-102.11.0-2.el8_7.x86_64.rpm 6.7 MB/s | 109 MB 00:16 (14/14): edb-pem-docs-9.2.0-1.el8.x86_64.rpm 5.6 MB/s | 80 MB 00:14 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Total 13 MB/s | 251 MB 00:19 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: edb-pem-agent-9.2.0-1.el8.x86_64 1/1 Running scriptlet: edb-pem-server-9.2.0-1.el8.x86_64 1/1 Preparing : 1/1 Running scriptlet: anaconda-tui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 1/1 Upgrading : anaconda-tui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 1/28 Upgrading : anaconda-core-33.16.8.9-1.el8_8.rocky.0.1.x86_64 2/28 Running scriptlet: edb-pem-agent-9.2.0-1.el8.x86_64 3/28 Upgrading : edb-pem-agent-9.2.0-1.el8.x86_64 3/28 Running scriptlet: edb-pem-agent-9.2.0-1.el8.x86_64 3/28 Upgrading : git-core-2.39.3-1.el8_8.x86_64 4/28 Upgrading : git-core-doc-2.39.3-1.el8_8.noarch 5/28 Upgrading : perl-Git-2.39.3-1.el8_8.noarch 6/28 Upgrading : git-2.39.3-1.el8_8.x86_64 7/28 Running scriptlet: edb-pem-server-9.2.0-1.el8.x86_64 8/28 Upgrading : edb-pem-server-9.2.0-1.el8.x86_64 8/28 Running scriptlet: edb-pem-server-9.2.0-1.el8.x86_64 8/28 NOTE : To complete the upgrade process, run '/usr/edb/pem/bin/configure-pem-server.sh'. Upgrading : edb-pem-cli-9.2.0-1.el8.x86_64 9/28 Upgrading : edb-pem-docs-9.2.0-1.el8.x86_64 10/28 Upgrading : edb-pem-9.2.0-1.el8.x86_64 11/28 Upgrading : anaconda-widgets-33.16.8.9-1.el8_8.rocky.0.1.x86_64 12/28 Upgrading : anaconda-gui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 13/28 Upgrading : firefox-102.11.0-2.el8_7.x86_64 14/28 Running scriptlet: firefox-102.11.0-2.el8_7.x86_64 14/28 Cleanup : git-2.39.1-1.el8.x86_64 15/28 Cleanup : edb-pem-9.1.1-1.el8.x86_64 16/28 Cleanup : anaconda-gui-33.16.8.8-1.el8.rocky.0.1.x86_64 17/28 Cleanup : edb-pem-server-9.1.1-1.el8.x86_64 18/28 Running scriptlet: edb-pem-server-9.1.1-1.el8.x86_64 18/28 Cleanup : git-core-doc-2.39.1-1.el8.noarch 19/28 Running scriptlet: edb-pem-agent-9.1.1-1.el8.x86_64 20/28 Cleanup : edb-pem-agent-9.1.1-1.el8.x86_64 20/28 Running scriptlet: edb-pem-agent-9.1.1-1.el8.x86_64 20/28 Cleanup : edb-pem-cli-9.1.1-1.el8.x86_64 21/28 Cleanup : edb-pem-docs-9.1.1-1.el8.x86_64 22/28 Cleanup : perl-Git-2.39.1-1.el8.noarch 23/28 Cleanup : anaconda-core-33.16.8.8-1.el8.rocky.0.1.x86_64 24/28 Cleanup : anaconda-tui-33.16.8.8-1.el8.rocky.0.1.x86_64 25/28 Cleanup : git-core-2.39.1-1.el8.x86_64 26/28 Cleanup : anaconda-widgets-33.16.8.8-1.el8.rocky.0.1.x86_64 27/28 Running scriptlet: firefox-102.10.0-1.el8_7.x86_64 28/28 Cleanup : firefox-102.10.0-1.el8_7.x86_64 28/28 Running scriptlet: firefox-102.10.0-1.el8_7.x86_64 28/28 Running scriptlet: edb-pem-agent-9.2.0-1.el8.x86_64 28/28 Running scriptlet: edb-pem-server-9.2.0-1.el8.x86_64 28/28 Running scriptlet: firefox-102.11.0-2.el8_7.x86_64 28/28 Running scriptlet: firefox-102.10.0-1.el8_7.x86_64 28/28 Verifying : anaconda-core-33.16.8.9-1.el8_8.rocky.0.1.x86_64 1/28 Verifying : anaconda-core-33.16.8.8-1.el8.rocky.0.1.x86_64 2/28 Verifying : anaconda-gui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 3/28 Verifying : anaconda-gui-33.16.8.8-1.el8.rocky.0.1.x86_64 4/28 Verifying : anaconda-tui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 5/28 Verifying : anaconda-tui-33.16.8.8-1.el8.rocky.0.1.x86_64 6/28 Verifying : anaconda-widgets-33.16.8.9-1.el8_8.rocky.0.1.x86_64 7/28 Verifying : anaconda-widgets-33.16.8.8-1.el8.rocky.0.1.x86_64 8/28 Verifying : firefox-102.11.0-2.el8_7.x86_64 9/28 Verifying : firefox-102.10.0-1.el8_7.x86_64 10/28 Verifying : git-2.39.3-1.el8_8.x86_64 11/28 Verifying : git-2.39.1-1.el8.x86_64 12/28 Verifying : git-core-2.39.3-1.el8_8.x86_64 13/28 Verifying : git-core-2.39.1-1.el8.x86_64 14/28 Verifying : git-core-doc-2.39.3-1.el8_8.noarch 15/28 Verifying : git-core-doc-2.39.1-1.el8.noarch 16/28 Verifying : perl-Git-2.39.3-1.el8_8.noarch 17/28 Verifying : perl-Git-2.39.1-1.el8.noarch 18/28 Verifying : edb-pem-9.2.0-1.el8.x86_64 19/28 Verifying : edb-pem-9.1.1-1.el8.x86_64 20/28 Verifying : edb-pem-agent-9.2.0-1.el8.x86_64 21/28 Verifying : edb-pem-agent-9.1.1-1.el8.x86_64 22/28 Verifying : edb-pem-cli-9.2.0-1.el8.x86_64 23/28 Verifying : edb-pem-cli-9.1.1-1.el8.x86_64 24/28 Verifying : edb-pem-docs-9.2.0-1.el8.x86_64 25/28 Verifying : edb-pem-docs-9.1.1-1.el8.x86_64 26/28 Verifying : edb-pem-server-9.2.0-1.el8.x86_64 27/28 Verifying : edb-pem-server-9.1.1-1.el8.x86_64 28/28 Upgraded: anaconda-core-33.16.8.9-1.el8_8.rocky.0.1.x86_64 anaconda-gui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 anaconda-tui-33.16.8.9-1.el8_8.rocky.0.1.x86_64 anaconda-widgets-33.16.8.9-1.el8_8.rocky.0.1.x86_64 edb-pem-9.2.0-1.el8.x86_64 edb-pem-agent-9.2.0-1.el8.x86_64 edb-pem-cli-9.2.0-1.el8.x86_64 edb-pem-docs-9.2.0-1.el8.x86_64 edb-pem-server-9.2.0-1.el8.x86_64 firefox-102.11.0-2.el8_7.x86_64 git-2.39.3-1.el8_8.x86_64 git-core-2.39.3-1.el8_8.x86_64 git-core-doc-2.39.3-1.el8_8.noarch perl-Git-2.39.3-1.el8_8.noarch Complete! [root@pem ~]#
Ahora debemos configurar el acceso al usuario enterprisedb para que se pueda llevar a cabo la configuración de EDB PEM de forma correcta, para ello editamos el archivo pg_hba.conf agregando la siguiente línea
host all all 127.0.0.1/32 md5
Ya estamos listos para realizar las configuraciones de nuestro PEM, sigamos
[root@pem ~]# /usr/edb/pem/bin/configure-pem-server.sh ----------------------------------------------------- EDB Postgres Enterprise Manager ----------------------------------------------------- Install type: 1:Web Services and Database, 2:Web Services 3: Database [ ] :1 Enter local database server installation path (i.e. /usr/edb/as12 , or /usr/pgsql-12, etc.) [ ] :/usr/edb/as15 Enter database super user name [ ] :enterprisedb Enter database server port number [ ] :5444 Enter database super user password [ ] : Please enter CIDR formatted network address range that agents will connect to the server from, to be added to the server's pg_hba.conf file. For example, 192.168.1.0/24 [ 0.0.0.0/0 ] : Enter database systemd unit file or init script name (i.e. edb-as-12 or postgresql-12, etc.) [ ] :edb-as-15 Please specify agent certificate path (Script will attempt to create this directory, if it does not exists) [ /root/.pem/ ] : CREATE EXTENSION --> [Info] --> [Info] Configuring database server. CREATE DATABASE ERROR: extension "plpgsql" already exists CREATE EXTENSION BEGIN CREATE SCHEMA COMMENT CREATE SCHEMA COMMENT CREATE SCHEMA COMMENT CREATE FUNCTION COMMENT CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION {........ resto de salida........} INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 22 INSERT 0 2 INSERT 0 4 INSERT 0 1 INSERT 0 16 INSERT 0 15 INSERT 0 1 INSERT 0 1 INSERT 0 12 INSERT 0 2 INSERT 0 10 INSERT 0 2 INSERT 0 1 INSERT 0 3 INSERT 0 1 INSERT 0 7 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 12 INSERT 0 3 INSERT 0 12 INSERT 0 7 INSERT 0 1 INSERT 0 24 INSERT 0 4 INSERT 0 1 INSERT 0 8 INSERT 0 1 INSERT 0 4 INSERT 0 1 INSERT 0 1 INSERT 0 3 INSERT 0 7 INSERT 0 6 INSERT 0 1 INSERT 0 8 INSERT 0 13 INSERT 0 1 INSERT 0 2 INSERT 0 1 INSERT 0 3 INSERT 0 1 INSERT 0 29 INSERT 0 1 INSERT 0 1 INSERT 0 25 INSERT 0 1 INSERT 0 7 INSERT 0 1 INSERT 0 2 INSERT 0 1 INSERT 0 12 INSERT 0 12 INSERT 0 3 INSERT 0 1 COMMENT COMMENT COMMENT CREATE FUNCTION CREATE TRIGGER COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT CREATE INDEX CREATE TABLE COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT CREATE FUNCTION CREATE TRIGGER CREATE TABLE COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT CREATE INDEX CREATE INDEX CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION ALTER SEQUENCE CREATE TABLE COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 ALTER SEQUENCE CREATE TABLE COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT COMMENT INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 INSERT 0 1 ALTER SEQUENCE CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION COMMIT GRANT ROLE --> [Info] --> [Info] Generating certificates. --> [Info] --> [Info] Executing systemctl stop edb-as-15 --> [Info] --> [Info] Writing configurations in /datos/edb/as15/pg_hba.conf file --> [Info] --> [Info] Writing configurations in /datos/edb/as15/postgresql.conf file --> [Info] --> [Info] Executing systemctl start edb-as-15 Postgres Enterprise Manager Agent registered successfully! --> [Info] --> [Info] Registering database server with PEM server. DO DO --> [Info] --> [Info] Enable pemagent service. --> [Info] --> [Info] Executing systemctl enable pemagent Created symlink /etc/systemd/system/multi-user.target.wants/pemagent.service → /usr/lib/systemd/system/pemagent.service. --> [Info] --> [Info] Stop pemagent service --> [Info] --> [Info] Executing systemctl stop pemagent --> [Info] --> [Info] Start pemagent service. --> [Info] --> [Info] Executing systemctl start pemagent --> [Info] --> [Info] Configuring httpd server --> [Info] --> [Info] Executing systemctl stop httpd --> [Info] --> [Info] Creating /usr/edb/pem/web/pem.wsgi --> [Info] --> [Info] Generating PEM Cookie Name. --> [Info] --> [Info] Creating /usr/edb/pem/web/config_setup.py --> [Info] --> [Info] Creating /etc/httpd/conf.d/edb-pem.conf --> [Info] --> [Info] Configuring httpd server sslconf --> [Info] --> [Info] Taking backup of /etc/httpd/conf.d/edb-ssl-pem.conf --> [Info] --> [Info] Executing /usr/edb/pem/web/setup.py Postgres Enterprise Manager - Application Initialisation ======================================================== --> [Info] --> [Info] Check and Configure SELinux security policy for PEM getenforce found, now executing 'getenforce' command Configure the httpd to work with the SELinux Allow the httpd to connect the database (httpd_can_network_connect_db = on) Allow the httpd to connect the network (httpd_can_network_connect = on) Allow the httpd to work with cgi (httpd_enable_cgi = on) Allow to read & write permission on the 'pem' user home directory SELinux policy is configured for PEM --> [Info] --> [Info] Executing systemctl start httpd --> [Info] --> [Info] Configured the webservice for EDB Postgres Enterprise Manager (PEM) Server on port '8443'. --> [Info] --> [Info] PEM server can be accessed at https://127.0.0.1:8443/pem at your browser [root@pem ~]#
Y listo, tenemos el servicio configurado, ahora debemos acceder al url que nos ha indicado el configurador…. PEM server can be accessed at https://127.0.0.1:8443/pem at your browser
De aquí en adelante nos toca por el navegador.
Esto es todo, saludos…..