Cómo instalar PgHero en Ubuntu 22.04

PgHero es una herramienta de código abierto y basada en web diseñada para monitorizar PostgreSQL a través de un navegador web. Ayuda a los usuarios que no están familiarizados con la línea de comandos. Ofrece un panel de control sencillo y fácil de usar para supervisar PostgreSQL y muestra métricas del sistema como el uso de recursos, comprobaciones de salud, etc. Ofrece una visión general fácil de interpretar: verde en bueno, no verde, debes prestar atención, etc. PgHero proporciona un estado general rápido de tu base de datos, un vistazo a las consultas que se están ejecutando, los índices de las tablas y el espacio de las tablas, y puede darte una forma de obtener explicaciones de las consultas sin tener que saltar a la consola psql.

Este post te mostrará cómo instalar el software de monitorización PostgreSQL PgHero en Ubuntu 22.04.

Requisitos previos

  • Un servidor que ejecute Ubuntu 22.04.
  • Un nombre de dominio válido apuntado con la IP de tu servidor.
  • Una contraseña de root está configurada en el servidor.

Cómo empezar

Antes de empezar, actualiza todos los paquetes del sistema a la última versión utilizando el siguiente comando:

apt update -y
apt upgrade -y

Una vez actualizados todos los paquetes, puedes instalar otras dependencias necesarias utilizando el siguiente comando:

apt-get install wget curl gnupg2 -y

Una vez que hayas terminado, puedes pasar al siguiente paso.

Instalar el servidor PostgreSQL

En el momento de escribir este tutorial, la última versión de PostgreSQL es la 14. Puedes instalarla con el siguiente comando:

apt-get install postgresql-14 -y

Después de instalarlo correctamente, puedes iniciar y habilitar el servicio PostgreSQL con el siguiente comando:

systemctl start postgresql
systemctl enable postgresql

Para comprobar el estado de PostgreSQL, ejecuta el siguiente comando:

systemctl status postgresql

Obtendrás la siguiente salida:

? postgresql.service - PostgreSQL RDBMS
     Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
     Active: active (exited) since Mon 2022-11-28 16:29:36 UTC; 17s ago
    Process: 20245 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 20245 (code=exited, status=0/SUCCESS)

Nov 28 16:29:36 ubuntu22041 systemd[1]: Starting PostgreSQL RDBMS...
Nov 28 16:29:36 ubuntu22041 systemd[1]: Finished PostgreSQL RDBMS.

En este punto, el servicio PostgreSQL está instalado y en ejecución. Ahora puedes pasar al siguiente paso.

Crear una base de datos y un usuario PostgreSQL

A continuación, tendrás que crear una base de datos PostgreSQL y un usuario. En primer lugar, conéctate a la consola PostgreSQL con el siguiente comando:

su - postgres

A continuación, crea un usuario llamado pghero con el siguiente comando:

createuser pghero

A continuación, conéctate al shell PostgreSQL con el siguiente comando:

psql

A continuación, establece una contraseña para el usuario pghero:

ALTER USER pghero WITH ENCRYPTED password 'password';

A continuación, crea una base de datos llamada pgdb con el siguiente comando:

CREATE DATABASE pgdb OWNER pghero;

A continuación, concede todos los privilegios a la pgdb con el siguiente comando:

GRANT ALL PRIVILEGES ON DATABASE pgdb to pghero;

A continuación, sal del shell PostgreSQL con el siguiente comando:

\q
exit

Instalar y configurar PgHero

Por defecto, el paquete PgHero no está incluido en el repositorio por defecto de Ubuntu. Así que tendrás que añadir el repositorio de PgHero a tu servidor.

Primero, descarga e importa la clave GPG con el siguiente comando:

wget -qO- https://dl.packager.io/srv/pghero/pghero/key | apt-key add -

A continuación, añade el repositorio PgHero a la APT con el siguiente comando:

wget -O /etc/apt/sources.list.d/pghero.list https://dl.packager.io/srv/pghero/pghero/master/installer/ubuntu/$(. /etc/os-release && echo $VERSION_ID).repo

A continuación, actualiza la caché del repositorio e instala PgHero con el siguiente comando:

apt-get update -y
apt-get install pghero -y

Después de instalar PgHero, tendrás que definir tu base de datos PostgreSQL para PgHero. Puedes definirla con el siguiente comando:

pghero config:set DATABASE_URL=postgres://pghero:password@localhost:5432/pgdb

A continuación, configura el servidor web de PgHero con los siguientes comandos:

pghero config:set PORT=3001
pghero config:set AILS_LOG_TO_STDOUT=disabled
pghero scale web=1

Obtendrás la siguiente salida:

Created symlink /etc/systemd/system/multi-user.target.wants/pghero.service → /etc/systemd/system/pghero.service.
Created symlink /etc/systemd/system/pghero.service.wants/pghero-web.service → /etc/systemd/system/pghero-web.service.
Scaling up...
Created symlink /etc/systemd/system/pghero-web.service.wants/pghero-web-1.service → /etc/systemd/system/pghero-web-1.service.
--> done.

Ahora, inicia el servicio PgHero con el siguiente comando:

systemctl start pghero

Puedes comprobar el estado de PgHero con el siguiente comando:

systemctl status pghero

Obtendrás la siguiente salida:

? pghero.service
     Loaded: loaded (/etc/systemd/system/pghero.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-28 16:33:23 UTC; 19s ago
   Main PID: 21242 (sleep)
      Tasks: 1 (limit: 464122)
     Memory: 176.0K
     CGroup: /system.slice/pghero.service
             ??21242 /bin/sleep infinity

Nov 28 16:33:23 ubuntu22041 systemd[1]: Started pghero.service.

PgHero se está ejecutando ahora y escucha en el puerto 3001. Puedes comprobarlo con el siguiente comando

ss -antpl | grep 3001

Deberías ver la siguiente salida:

LISTEN 0      1024         0.0.0.0:3001      0.0.0.0:*    users:(("ruby",pid=21278,fd=5),("ruby",pid=21277,fd=5),("ruby",pid=21276,fd=5),("ruby",pid=21245,fd=5))

En este punto, PgHero está instalado y configurado. Ahora puedes pasar al siguiente paso.

Configurar Nginx como proxy inverso para PgHero

Es una buena idea instalar y configurar Nginx como proxy inverso para PgHero. Primero, instala el servidor web Nginx con el siguiente comando:

apt-get install nginx -y

Una vez instalado Nginx, crea un archivo de configuración de Nginx con el siguiente comando:

nano /etc/nginx/conf.d/pghero.conf

Añade las siguientes líneas:

server {
    listen 80;
    server_name pghero.example.com;

    location / {
        proxy_pass http://localhost:3001;
    }
}

Guarda y cierra el archivo y, a continuación, comprueba que Nginx no contenga ningún error de sintaxis:

nginx -t

Obtendrás la siguiente salida:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

A continuación, reinicia el servicio Nginx para aplicar los cambios:

systemctl restart nginx

Ahora puedes comprobar el estado del Nginx con el siguiente comando:

systemctl status nginx

Obtendrás la siguiente salida:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-11-28 16:36:27 UTC; 7s ago
       Docs: man:nginx(8)
    Process: 21878 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 21879 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 21880 (nginx)
      Tasks: 3 (limit: 464122)
     Memory: 3.4M
     CGroup: /system.slice/nginx.service
             ??21880 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??21881 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??21882 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Nov 28 16:36:27 ubuntu22041 systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 28 16:36:27 ubuntu22041 systemd[1]: Started A high performance web server and a reverse proxy server.

Accede al Panel de Control de PgHero

Ahora, abre tu navegador web y accede a la interfaz web de PgHero utilizando la URL http://pghero.example.com. Deberías ver el panel de control de PgHero en la siguiente pantalla:

Haz clic en el Espacio en el panel izquierdo, deberías ver el tamaño de la base de datos PostgreSQL en la siguiente pantalla:

Haz clic en Conexiones. Deberías ver todas tus solicitudes de conexión PostgreSQL en la siguiente pantalla:

Haz clic en el Ajuste. Deberías ver todos tus ajustes por defecto en la siguiente pantalla:

Conclusión

¡Enhorabuena! Has instalado correctamente PgHero en el servidor Ubuntu 22.04. Ahora puedes desplegar PgHero en el entorno de producción para gestionar y supervisar fácilmente tus bases de datos PostgreSQL desde el navegador web. No dudes en preguntarme si tienes alguna duda.

Scroll al inicio