21
Plugin para coger los stats de una base de datos y de sus colecciones, soporta compatibilidad con Mongo DB atlas. Introducción Matriz de compatibilidad Pre requisitos Configuración Parámetros generales del plugin Parámetros específicos del plugin Ejecución manual Configuración en pandora Modulos generados Mongo DB y Mongo DB atlas

Mongo DB y Mongo DB atlas - pandorafms.com

  • Upload
    others

  • View
    27

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mongo DB y Mongo DB atlas - pandorafms.com

Plugin para coger los stats de una base de datos y de sus colecciones, soporta compatibilidad conMongo DB atlas.

IntroducciónMatriz de compatibilidadPre requisitosConfiguraciónParámetros generales del pluginParámetros específicos del pluginEjecución manualConfiguración en pandoraModulos generados

Mongo DB y MongoDB atlas

Page 2: Mongo DB y Mongo DB atlas - pandorafms.com

Ver. 25-08-2021

Con este plug-in podremos ver los stats de una base de datos y de sus colecciones, soportacompatibilidad con Mongo DB atlas

Tipo: Plug-in de servidor o agente

Introducción

Page 3: Mongo DB y Mongo DB atlas - pandorafms.com

Sistemas donde se ha probado CentOS 7, Fedora

Sistemas donde debería funcionar Cualquier sistema linux 

 

Matriz de compatibilidad

Page 4: Mongo DB y Mongo DB atlas - pandorafms.com

Se requiere:

Una base de datos Mongo DB o Mongo DB atlasTener el Data Server de Pandora FMS habilitadoTener el Plugin Server de Pandora FMS habilitado

Pre requisitos

Page 5: Mongo DB y Mongo DB atlas - pandorafms.com

Para el uso del plugin será necesario tener instalado una serie de dependencias.

Lo primero es tener instalado python 3

El plugin viene con un archivo llamado requirements.txt que instalará las otras dependenciasnecesarias. Para ejecutarlo usaremos:

No obstante, si quieres instalar sus dependencias sin el archivo requirements, puedes usar lossiguientes comandos (recomendado si no usas una base de datos Mongo DB atlas)

PyMongo 

o con el siguiente comando si python 3 no es tu versión de python por defecto:

dnspython

o con el siguiente comando si python 3 no es tu versión de python por defecto:

nota: dnspython solo es imprescindible si usas una base de datos MongoDB atlas.

 

Configuración

yum install python3

pip3 install -r requirements.txt

python -m pip install pymongo

python3 -m pip install pymongo

python -m pip install dnspython

python3 -m pip install pymongo

Page 6: Mongo DB y Mongo DB atlas - pandorafms.com

Para conectarte, necesitas conocer tu ip o uri de conexión. Si te has montado la base de datos endocker puedes verlo con :

El puerto por defecto suele ser 27017. Por ejemplo con esta ip la url de conexión sería :

mongodb://172.17.0.2:27017

 

Para MongoDB atlas, necesitaremos la cadena de conexión, esta se obtiene haciendo lo siguiente.

Vamos a connect:

docker inspect <id-contenedor>

Page 7: Mongo DB y Mongo DB atlas - pandorafms.com

Nos saldrán varias opciones para conectarnos:

Yo por ejemplo, he optado por MongoDB compass, al darle, nos mostrará la cadena de conexión, sies que ya lo hemos instalado, o nos dará la opción de instalarlo.

Page 8: Mongo DB y Mongo DB atlas - pandorafms.com

Esa sería la cadena de conexión, obviamente habría que cambiar <password> por tu contraseña.

 

 

Page 9: Mongo DB y Mongo DB atlas - pandorafms.com

 

 

Si la ejecución es correcta veremos un número entero, que sera el numero de base de datos quetengamos.

Si queremos ejecutarlo como plugin de agente lo haremos usando el parámetro opcional"as_agent_plugin" con un "1" que nos devolverá un xml con los datos de nuestro servidor :

Parámetros generales delplugin

./pandora_mongodb -u <uri> -d <databases -s <server> -a <alldatabases> -p <prefix> -c

<collectionstats> [ -g <group> ] [ --data_dir <data dir> ] [ --as_agent_plugin 1]

Page 10: Mongo DB y Mongo DB atlas - pandorafms.com

Esto solo funcionará si metes una única base de datos con el parámetro -d , no funcionara con -aque es el parámetro para todas las bases de datos.

Page 11: Mongo DB y Mongo DB atlas - pandorafms.com

The plug-in has the following parameters:

Parameter Description

-u <uri> --u <uri> La uri de conexión (obligatorio)

-s <server> --server <server> Para activar los stats del server (cluster)

-d <name_database> --databases<name_database>

Para coger los stats de una base de datos, ladel nombre que tu introduzcas

-a <1> --alldatabases <1> Para coger los stats de todas las bases dedatos, se activa con 1

-p <prefix> --prefix <prefix> Para poner un nombre en los agentes(opcional)

-c <1> --collectionstats <1> Para activar los stats de las colecciones de labase de datos, se activa con 1 (opcional)

-g GROUP, --group GROUP Grupo de destino de Pandora FMS (opcional)

--data_dir DATA_DIRDirectorio de datos de Pandora FMS. Por defecto es /var/spool/pandora/data_in/(opcional)

--as_agent_pluginEs opcional, si quieres que el plugin sea deagente y te meta los módulos en el agente depandora, ejecuta esto con un 1 (opcional)

Ejemplo de ayuda:

Parámetros específicos delplugin

Page 12: Mongo DB y Mongo DB atlas - pandorafms.com

Podemos comprobar el plugin desde el terminal para ver si funciona, para comprobarlo,ejecutamos el plugin:

Con as_agent_plugin:

Ejemplo de ejecución con ayuda:

Ejecución manual

Page 13: Mongo DB y Mongo DB atlas - pandorafms.com

La mejor forma de manejar plugins de servidor en Pandora es desde"/usr/share/pandora_server/util/plugin" asi que lo enviaremos esa ruta.

Después nos moveremos a la carpeta en la que lo hemos metido ("/usr/share/pandora_server/util/plugin" es la recomendada").

Recuerda: Tienes que instalar las dependencias que necesita el módulo PyMongo en tu

sistema, esta explicado en el apartado configuración.

Nos movemos desde home con :

Ejecutamos el plugin para ver que funciona :

Con as_agent_plugin 1 podremos ver un XML con los datos que nos saldrán en consola:

Configuración en pandora

cd /usr/share/pandora_server/util/plugin/

./pandora_mongodb -u <uri> -s <server> -d <databases -a <alldatabases> -p <prefix> -c

<collectionstats> [ -g <group> ] [ --data_dir <data dir> ] [ --as_agent_plugin 1]

Page 14: Mongo DB y Mongo DB atlas - pandorafms.com

Si lo ejecutamos de la primera manera, sin "as_agent_plugin 1" se nos habrá creado un agente porcada database de nuestro cluster. El parámetro --as_agent_plugin solo podremos ejecutarlo simetemos las bases de datos una a una introduciendo su nombre con el parámetro -d.

De todas formas, por si se prefiere instalarlo manualmente desde la consola, el proceso sería elsiguiente:

Como plugin de servidor

Iremos a servidores > plugins:

Page 15: Mongo DB y Mongo DB atlas - pandorafms.com

Pinchamos en añadir:

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

Metemos como comando la ruta al plugin, y como parámetros los que hemos metido ejecutando elplugin, los campos "_field_" son macros definidas más abajo.

Page 16: Mongo DB y Mongo DB atlas - pandorafms.com

Ponemos por cada macro la descripción que se prefiera y como valor los datos de mongodb.

Hecho esto si ejecutamos el plugin desde el terminal se nos habrá creado el agente con losmódulos.

 

Page 17: Mongo DB y Mongo DB atlas - pandorafms.com

Se nos creara un agente por cada database de nuestro cluster con datos de los stats de lasdatabases y de las colecciones y otro agente con módulos con los datos del server.

Módulos database

Nombre módulo 

collections

views

objects

avgObjSize

datasize

storagesize

totalfreestoragesize

numextents

indexes

indexsize

filesize

nssizemb

status

 

Módulos colecciones

Modulos generados

Page 18: Mongo DB y Mongo DB atlas - pandorafms.com

Nombre módulo

size

count

avgobjsize

storagesize

freestoragesize

capped

nindexes

totalindexsizes

totalsizes

scalefactor

status

 

Módulos server :

connections current

connections avalaible

connections total created

network bytes in

network bytes out

network num requests

operations insert

operations query

operations update

Page 19: Mongo DB y Mongo DB atlas - pandorafms.com

operations delete

 

operations get more

operations command

writes latency

writes ops

reads latency

reads ops

commands latency

commands ops