Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

401
Vistas
Elasticsearch, Kibana, dotnet core y docker

Tengo mi aplicación dotnet core configurada para usar SeriLog que inicia sesión en un ElasticSearch Sink . Cuando ejecuto mi aplicación dotnet core localmente con ElasticSearch y Kibana , tengo dos contenedores separados, puedo registrar cosas de mi aplicación en Elastic y también puedo ver estos mensajes de registro en Kibana .

Cuando incluyo mi aplicación dotnet core en el archivo docker-compose.yml hasta el punto final donde se encuentra la aplicación, espero que registre varios mensajes en Elasticsearch , pero no lo hace. Sospecho que mi aplicación no entiende cómo comunicarse con Elasticsearch cuando está en contenedores. Mi docker-compose.yml se ve así:

versión: '3.0'

 services: db: image: mysql:5.7 environment: MYSQL_RANDOM_ROOT_PASSWORD: 1 MYSQL_DATABASE: chtr MYSQL_USER: dbuser MYSQL_PASSWORD: dbuserpassword volumes: - dbdata:/var/lib/mysql - ./_MySQL_Init_Script:/docker-entrypoint-initdb.d restart: always elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4 container_name: elasticsearch ports: - "9200:9200" volumes: - elasticsearch-data:/usr/share/elasticsearch/data kibana: image: docker.elastic.co/kibana/kibana:6.2.4 container_name: kibana ports: - "5601:5601" depends_on: - elasticsearch chtr.server: depends_on: - db - kibana image: trebias/chtr.server build: context: . ports: - "8080:80" - "56:5601" volumes: dbdata: elasticsearch-data:

chtr.server es mi imagen que se extrae de mi centro acoplable.

A appsettings.json dentro de mi aplicación dotnet core:

 { "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Information", "System": "Information", "Microsoft": "Information" } }, "ElasticConfiguration": { "Uri": "http://[::]:9200/" } }

Donde creo el registrador como este en mi archivo Startup.cs :

 var elasticSearch = Configuration["ElasticConfiguration:Uri"]; Log.Logger = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.Elasticsearch(new ElasticsearchSinkOptions( new Uri(elasticSearch)) { AutoRegisterTemplate = true }).CreateLogger();

Como dije al principio de este post; Funciona cuando ejecuto Kibana y Elasticsearch en contenedores y mi aplicación localmente, pero no cuando las tres aplicaciones están en contenedores.

¿Alguna sugerencia?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El servicio se ejecuta en un contenedor, por eso debe escribir su registro usando el nombre del contenedor como se muestra a continuación:

Configuración de aplicaciones.Desarrollo.json:

 { "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Information", "System": "Information", "Microsoft": "Information" } }, "ElasticConfiguration": { "Uri": "http://elasticsearch:9200/" } }

Puede encontrar aquí un ejemplo completo que muestra cómo configurar Serilog, Seq, elasticsearch y kibana para trabajar juntos en la solución de contenedores Docker.

registro de estructura con serilog seq y búsqueda elástica en docker

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda