Este proyecto contiene un entorno de contenedores para un laboratorio de prueba que incluye:
- OpenSearch: Base de datos de búsqueda y análisis, sin seguridad habilitada.
- OpenSearch Dashboards: Interfaz web para visualizar y consultar los datos indexados en OpenSearch.
- Logstash: Recibe logs vía TCP y los envía a OpenSearch. Incluye un filtro para parsear ciertos campos ISO8583.
- Servicio Python: Simulador de generación de mensajes ISO8583, enviando logs a Logstash.
opensearch-lab/
├── docker-compose.yml
├── README.md
├── logstash/
│ └── pipeline.conf
└── python-service/
├── Dockerfile
└── iso8583_simulator.py
-
Clonar el repositorio o copiar este contenido en un directorio local.
-
Asegúrate de tener Docker y Docker Compose instalados.
-
Desde la raíz del proyecto, ejecuta:
docker-compose up -d --build
Esto descargará/creará las imágenes y levantará los contenedores.
-
Verifica que los servicios estén en ejecución:
docker-compose pspara ver el estado de los contenedores.docker-compose logs -f opensearchpara monitorear OpenSearch.docker-compose logs -f logstashpara monitorear Logstash.docker-compose logs -f python-servicepara monitorear el simulador Python.
-
Accede a OpenSearch Dashboards en http://localhost:5601. No se necesita usuario/contraseña.
-
Crea un Index Pattern (si es la primera vez):
- Usa iso8583-logs (o iso8583-logs*) como patrón.
- Selecciona @timestamp como campo de tiempo.
-
En la sección Discover de OpenSearch Dashboards, selecciona el index pattern y deberías ver llegar los eventos desde el simulador.
-
Detener el entorno:
docker-compose down
-
El pipeline de Logstash
(logstash/pipeline.conf)contiene un filtro grok básico para extraer campos de los mensajes ISO8583 simulados. Se puede adaptar según tus necesidades. -
El script Python
(iso8583_simulator.py)envía un mensaje cada 1 segundo por TCP al puerto 5001 de Logstash. Ajusta ese intervalo según desees. -
Este entorno se ejecuta sin seguridad y sin SSL, ideal para desarrollo y pruebas locales, no recomendado para producción.