Proyecto que busca brindar una guía para las configuraciones necesarias y archivos base que integran las herramientas:
Read this in other languages: English, Spanish.
Para que el proyecto funcione se necesita:
- Docker Engine
- Docker Compose (Viene por defecto en las ultimas versiones)
Existen dos casos de uso:
- Prueba: Da un ejemplo con configuraciones basicas
- Produccion: Requiere configuraciones avanzadas
El caso de prueba se usa para poder ver un ejemplo sencillo con todo pre configurado, este funciona por defecto con el archivo docker-compose.yml.
Ingrese a PRUEBA folder.
Ejecutar
docker-compose up -d
El caso de produccion se usa para crear un entorno casi listo para un despliegue, este funciona por defecto con el archivo docker-compose.yml
Se debe configurar dos archivos:
- .env: Variables de entorno, puertos (Ejemplo en PRODUCCION > .env.example)
- .grafana-env: Variables de servidor grafana (Ejemplo en PRODUCCION > .grafana-env.example)
.env
- PROM_HOST_PORT: Puerto del host para prometheus (Nuestro equipo)
- PROM_CONTAINER_PORT: Puerto contenedor para prometheus
- GF_HOST_PORT: Puerto del host para grafana (Nuestro equipo)
- GF_CONTAINER_PORT: Puerto contenedor para grafana
.grafana-env
- GF_SECURITY_ADMIN_USER: Usuario admin para grafana
- GF_SECURITY_ADMIN_PASSWORD: Contraseña de admin
Ingresar a la carpeta de PRODUCCION
Ejecutar
docker-compose up -d
Estructura de archivos:
- PRUEBA (Entorno de ejemplo - Pre configuraciones realizadas)
- Grafana: Directorio que contiene configuraciones de Grafana
- Prometheus: Directorio que contiene configuraciones de Prometheus
- docker-compose.yml (Basico): Archivo que contiene las imagenes de docker usadas para el caso de ejemplo
- PRODUCCION
- Grafana: Directorio que contiene configuraciones de Grafana
- Prometheus: Directorio que contiene configuraciones de Prometheus
- docker-compose-prod.yml (Avanzado): Archivo que contiene las imagenes de docker, como esta pensado para produccion pedira mas datos y armara volumenes separados
Contiene las configuraciones basicas de un servidor grafana
- datasource.yml:
- grafana.ini: Configuración obtenida de aqui
Configuración
- prometheus.yml: Configuracion básica de prometheus (Se encuentran los targets a monitorear)
Adjunto algunas guias que me ayudaron a enriquecer, entender y montar los ejemplos:
- How To Run Prometheus and Grafana using Docker Compose (v3.7 Docker Compose):
- Monitoring a Linux host with Prometheus, Node Exporter, and Docker Compose (v3.8 Docker Compose)
- Server Monitoring // Prometheus and Grafana Tutorial (YouTube)
- Guia avanzada de Docker Compose (Esta guia me ayudo para el uso de multiples docker-compose.yml)
- Guia para uso de variables de entorno
- Guia Video - Monitoreo con Docker (Grafana, Prometheus, Node-Exporter, cAdvisor)
- Guia Video - WMI Exporter para Windows
Links oficiales de imagenes Docker usadas en el proyecto:
- Grafana: https://hub.docker.com/r/grafana/grafana-enterprise
- Prometheus: https://hub.docker.com/r/prom/prometheus
- Node Exporter : https://hub.docker.com/r/prom/node-exporter