Activación en módulos de plataforma
El sistema de tracing distribuido se puede activar en los módulos core de plataforma: API Manager, Audit Router, BPM Engine, Cache Server, Controlpanel, Dashboard Engine, Device Simulator, DigitalTwin Broker, Flow Engine, IoT Broker, Microservices Gateway, Oauth Server, Report Engine, Rules Engine, Semantic Broker.
Para activar modificar estas variables de entorno (las 2 últimas no hace falta):
OTEL_JAVAAGENT_ENABLED=true OTEL_EXPORTER_OTLP_ENDPOINT=http://jaeger-service:4317 #OTEL_SERVICE_NAME=router #OTEL_METRICS_EXPORTER=none
Despliegue del módulo
Existen dos distribuciones para desplegar Jaeger: la All In One y cada módulo por separado (collector, query service, UI…) Para entornos productivos se recomienda la separada, no obstante, hasta que llegue el caso de desplegar cada componente por separado, se va a desplegar la versión todo en uno.
Además, para securizar la UI de jaeger, se ha hecho uso de un proxy-sidecar de Keycloak, antes mantenido por Jboss con el código fuente en https://github.com/dcm4che-dockerfiles/keycloak-proxy/tree/master Este proxy nos puede servir para aplicativos web en los que no sea fácil configurar seguridad con OpenID/OAuth/Keycloak.
Para generar la imagen, se ha creado un directorio “keycloak-sidecar-proxy” en el directorio devops/build-deploy/docker/dockerfiles (se va a añadir al image generation script)
registry.onesaitplatform.com/onesaitplatform/keycloak-proxy:latest
Rancher 1.6
version: '2' services: jaeger-security-proxy: image: registry.onesaitplatform.com/onesaitplatform/jaeger-keycloak:1.0 stdin_open: true hostname: jaeger-security-proxy network_mode: container:jaeger volumes: - /datadrive/onesaitplatform/jaeger/proxy.json:/opt/keycloak-proxy/conf/proxy.json:rw tty: true labels: io.rancher.container.pull_image: always io.rancher.container.network: true jaeger: image: registry.onesaitplatform.com/onesaitplatform/jaeger:1.0-dev environment: ES_SERVER_URLS: http://elasticdb.onesait-platform:9200 QUERY_BASE_PATH: /jaeger COLLECTOR_OTLP_ENABLED: none stdin_open: true tty: true labels: io.rancher.container.pull_image: always io.rancher.sidekicks: jaeger-security-proxy
Kubernetes / Helm
TODO
Ruta en nginx
location /jaeger { proxy_set_header Host $host; proxy_pass http://jaeger.jaeger:8080/jaeger; }