Cómo desplegar un sistema de monitorización completo, con Pandora FMS Community, usando Docker Compose. Se realizará el despliegue del contenedor en un equipo Linux Debian 11, pero el proceso es casi idéntico para otras distribuciones de Linux como Ubuntu, CentOS, Fedora, RHEL, SLES, etc. Mostramos cómo hacerlo persistente, en base de datos MySQL, para que aunque se reinicie el equipo con Docker, los datos queden almacenados.
- Requisitos para desplegar Pandora FMS en Docker.
- Preparar fichero docker-compose.yml para instalar contenedores Pandora FMS con persistencia en MySQL.
- Acceso a la consola web de Pandora FMS.
- Otras operaciones con los contenedores.
Requisitos para desplegar Pandora FMS en Docker
El único requisito será disponer de Docker y Docker Compose instalados en el equipo. En el siguiente artículo explicamos cómo instalar Docker y Docker Compose en Linux Debian 11:
En este otro artículo explicamos cómo instalar Docker Desktop en Windows:
Y en este otro instalamos Docker en Linux Ubuntu:
Preparar fichero docker-compose.yml para instalar contenedores Pandora FMS con persistencia en MySQL
Crearemos una carpeta en el sistema, por ejemplo:
1 |
mkdir /tmp/pandora |
Accederemos a dicha carpeta:
1 |
cd /tmp/pandora |
Crearemos el fichero con:
1 |
nano docker-compose.yml |
Añadiremos el siguiente contenido al fichero docker-compose.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
version: '3.1' services: db: image: rameijeiras/pandorafms-percona-base restart: always command: ["mysqld", "--innodb-buffer-pool-size=300M"] environment: MYSQL_ROOT_PASSWORD: pandora MYSQL_DATABASE: pandora MYSQL_USER: pandora MYSQL_PASSWORD: pandora networks: - pandora pandora: image: rameijeiras/pandorafms-community restart: always depends_on: - db environment: MYSQL_ROOT_PASSWORD: pandora DBHOST: db DBNAME: pandora DBUSER: pandora DBPASS: pandora DBPORT: 3306 INSTANCE_NAME: pandora01 SLEEP: 10 RETRIES: 5 volumes: - mysql:/var/lib/mysql networks: - pandora ports: - "8080:80" - "41121:41121" - "162:162/udp" networks: pandora: volumes: mysql: |
NOTA: debemos tener cuidado con la identación (con la tabulación), de lo contrario podríamos recibir este error al iniciar el contenedor:
ERROR: In file ‘./docker-compose.yml’, service must be a mapping, not a NoneType.
Guardaremos los cambios pulsando «Control» + «O» y cerraremos pulsando «Control» + «X».
A continuación, desde la misma carpeta que hemos guardado el fichero docker-compose.yml, ejecutaremos:
1 |
docker-compose -f docker-compose.yml up -d |
Nota: en algunas distribuciones y versiones de Docker Compose, el comando es sin el guion, en el caso anterior, sería:
1 |
docker compose -f docker-compose.yml up -d |
Se iniciará la descarga y el despliegue de los contenedores con Pandora FMS (Apache Tomcat) y MySQL.
Si se produjera un error similar a este al ejecutar el comando anterior:
1 2 |
ERROR: Couldn't connect to Docker daemon at http+docker://localhost - is it running? If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable. |
Se podría solucionar ejecutando los comandos:
1 2 |
sudo chmod 666 /var/run/docker.sock sudo service docker start && docker-compose up -d |
Si los hemos ejecutado en la carpeta donde tenemos el fichero .yml, se realizará el despliegue de los contenedores con Pandora FMS y MySQL.
Si todo es correcto, el contenedor quedará escuchando por el puerto 8080. Podremos revisar que el contenedor está iniciado con:
1 |
docker-compose -f docker-compose.yml ps |
Además, con este despliegue, los datos quedarán almacenados en el contenedor MySQL y serán persistentes. Aunque reiniciemos el equipo, los contenedores se iniciarán y mantendrán los datos (hemos verificado que funciona correctamente).
Acceso a la consola web de Pandora FMS
Para acceder la consola web de Pandora FMS, si tenemos modo gráfico en el equipo Linux Debian donde hemos desplegado el contenedor, usaremos Firefox (o el navegador que tengamos instalado) y accederemos a la URL:
http://localhost:8080/pandora_console
(Si hemos cambiado el puerto en el fichero yml, lo indicaremos en la URL en lugar del 8080)
Nos cargará la consola de gestión web de Pandora FMS (usuario: admin, contraseña: pandora).
Y podremos acceder también desde fuera del equipo Linux, desde cualquier otro equipo de la red, introduciendo la URL:
http://192.168.1.84:8080/pandora_console
(Cambiando la IP 192.168.1.84 por la del servidor con Linux donde hemos desplegado el contenedor y el puerto 8080 por el que hayamos indicado en el fichero yml)
Otras operaciones con los contenedores
Si queremos detener los contenedores de «golpe», podemos usar el archivo yml que usamos para el despliegue, ejecutando:
1 |
docker-compose -f docker-compose.yml stop |
Para borrar todos los datos de los contenedores, eliminando también la base de datos MySQL, ejecutaremos:
1 |
docker-compose -f docker-compose.yml down |