Monitoreando PostgreSQL remotamente con Newrelic

Hoy vamos a ver cómo monitorear remotamente una instancia de PostgreSQL utilizando Newrelic

Esta tarea no lleva mayores inconvenientes si seguimos los pasos descriptos en la pagina del proveedor del plugin:

# pip install newrelic-plugin-agent[postgresql]

pero puede complicarse si no tenemos acceso como usuario root a la máquina donde querramos instalar el agente. Y más si no tenemos ni pip ni postgresql instalados en esa máquina.

Instalando PIP en el home del usuario

Siguiendo los pasos de la página de pip descargamos el programa ‘get-pip.py’ y ejecutamos:

$ python get-pip.py --user

(esto instala pip en ~/.local/bin)

Ahora, revisemos si tenemos postgres instalado (sus binarios, específicamente vamos a necesitar el pg_config)

$ which pg_config

Si no obtenemos la ruta donde está este programa, deberemos instalarlo.

Instalando PostgreSQL en el home del usuario

Para este ejemplo, instalaremos la última versión de la rama 9.3:

$ wget https://ftp.postgresql.org/pub/source/v9.3.8/postgresql-9.3.8.tar.gz
$ mkdir src
$ cd src/
$ tar xvfz ../postgresql-9.3.8.tar.gz
$ cd postgresql-9.3.8
$ ./configure --prefix ~/local --exec-prefix ~/bin
$ make
$ make install
$ cd
$ export PATH=`pwd`/bin/bin:$PATH

Y ahora si, which pg_config debería decir algo como ésto:

~$ which pg_config
/home/user/bin/bin/pg_config

Finalmente, podemos instalar el agente

$ pip install newrelic-plugin-agent[postgresql] --user

Nuevamente, esto instalará el agente en ~/.local/bin/newrelic-plugin-agent.

Para ejecutarlo, debemos crear un archivo de configuración que contenga:

%YAML 1.2
---
Application:
 license_key: [la key que nos provee newrelic]
 wake_interval: 60
postgresql:
 host: [host remoto a monitorear]
 port: 5432
 user: [user]
 password: [passwd]
 dbname: [database]
 superuser: [true|false]

Y podremos llamar al agente ejecutando:

$ export PATH=~/.local/bin:$PATH
$ newrelic-plugin-agent -c /path/to/newrelic-plugin-conf

 

One thought on “Monitoreando PostgreSQL remotamente con Newrelic

Leave a Reply