Pandora AzurePostgresql

Plugin con el que monitorear un servidor de datos de postgresql de azure.

Introducción

Ver. 23-08-2022

Plugin con el que monitorear un servidor de datos de postgresql de azure.

Tipo: Plug-in de servidor

Matriz de compatibilidad

Sistemas donde se ha probado

CentOS 7, Fedora, rocky linux

Sistemas donde debería funcionar

Cualquier sistema linux 

Pre requisitos

Configuración previa

El plugin hace uso de un fichero en el que se pueden meter dos tipos de datos.

#credentials
tenant_id:<tenant-id>
client_id:<client-id>
secret:<secret>
#id resources
serverpostgres_id:<server_resource_id>

Obtención de credenciales necesarias para el uso del plugin.

1. Credenciales para autenticar:

-Tenant id

-Client id

-Secret

2. ID de recurso

Es necesaria la id del recurso que monitoriza el plugin estas son :

- ID de recurso del servidor Postgresql

Obtención de tenant id y client id.

1. Para obtener el tenant id y el client id, iremos al menú registro de aplicaciones dentro de active directory:

menu.png

2. Entraremos dentro de la aplicación.

menu2.png

3. En el menú de la aplicación aparecerá el tenant id y el client id.

menu3.png

4. Para encontrar el secreto iremos a certificados y secretos dentro del menu de active directory.

menu4.png

5. Dentro de este menú podremos ver las claves de secreto o generarlas (tiene que ser el valor de la clave, no la id)

menu5.png

 

Obtención de la id de recurso de la base de datos.

En el menu del servidor , en información general, podremos ver la id de recurso de este pinchando en Vista json.

image-1652285449723.png

 

Parámetros

Parámetro Descripción
--timespan En horas(opcional), ultimo periodo de tiempo, se puede utilizar en una ejecución personalizada para mostrar los datos desde un periodo de tiempo. (opcional) 
--metric Nombre de la métrica para ejecución personalizada.(opcional)
--granularity En minutosCombinado con timespan te mostrará los datos en intervalos. (opcional) 
--name_module Para elegir el nombre del módulo en una ejecución personalizada.(opcional)
--tentacle_port Puerto de tentacle.Por defecto 41121(opcional)
--tentacle_address Ip del servidor tentacle al que mandar los datos(opcional)
--agent_name Para ponerle un nombre al agente que contendrá los módulos , por defecto : "Azure SQL". (opcional)
--prefix_module Para ponerle un prefijo a los módulos por si se quieren diferencias de otras ejecuciones.(opcional)
--conf Path del archivo conf con las querys (obligatorio)
-g,--group Grupo de destino de Pandora FMS (opcional)
--data_dir Directorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/ (opcional)
--as_agent_plugin Es opcional, si quieres que el plugin sea de agente y te meta los módulos en el agente de pandora, ejecuta esto con un 1 (opcional)

Ejecución manual

Ejecución manual básica

./pandora_azurepostgresql --conf <path-conf> --as_agent_plugin 1

image-1661254388021.png

 

Ejecución manual para la creación de módulo con intervalos personalizados

./pandora_azurepostgresql --conf <path-conf> --as_agent_plugin 1 --timespan <period in hours> --granularity <interval in minutes> --metric <name-metric> --name_module <name_module>

image-1661254665603.png

image-1661254891721.png

 

Configuración en PandoraFMS

Como plugin de servidor

Instalación manual

Iremos a servidores > plugins:

image-1629974405286.png

Pinchamos en añadir:

image-1629974430627.png

Le ponemos en nombre y la descripción que se prefiera.

Metemos como comando la ejecución con la ruta del plugin:

/path_pandora_azurepostgresql

Recuerda que la ruta recomendada para el uso de los plugins de servidor es: /usr/share/pandora_server/util/plugin/

Y en parámetros del plugin introduciremos estos seguidos de la macro "_field<N>_", el obligatorio para que funcione  es --conf.

Aunque no es obligatorio, es muy recomendable el uso del parámetro --agent_name , ya que nos permite personalizar el nombre del agente que contendrá los módulos creados para cada consulta personalizada. También es recomendable usar el parámetro --prefix_module ya que este nos permitirá asignar un prefijo a los módulos, lo que puede ser util para reconocerlos más rápido y diferenciarlos si creamos varias ejecuciones para bases de datos diferentes.

--CONF

image-1656438528074.png

 

Una vez hecho esto, daremos a "crear".

Una vez hecho esto, solo queda llamarlo por lo que iremos a la vista de algún agente y crearemos un módulo de complementos:

image-1646741530197.png

Le daremos un nombre y en el apartado "plugin" pondremos el que acabamos de configurar.

Una vez hecho esto, damos a crear.

Si el modulo se muestra con 1, quiere decir que se esta ejecutando correctamente 

Módulos generados por el plugin

El plugin creará un agente con el nombre que hayamos puesto con el parametro --agent_name.