Elasticsearch, Kibana, дотнет ядро ​​и докер - PullRequest
1 голос
/ 15 мая 2019

У меня установлено основное приложение dotnet для использования SeriLog, которое регистрируется на ElasticSearch Sink.При локальном запуске основного приложения dotnet с ElasticSearch и Kibana у меня есть два отдельных контейнера, я могу записывать данные из своего приложения в Elastic, и я также могу видеть эти сообщения журнала в Kibana. * 1006.*

Когда я включаю свое основное приложение dotnet в файл docker-compose.yml, переходя к конечной точке, где находится приложение, я ожидаю, что оно зарегистрирует несколько сообщений на Elasticsearch, но это не так.Я подозреваю, что мое приложение не понимает, как взаимодействовать с Elasticsearch, когда оно находится в контейнере.Мой docker-compose.yml выглядит так:

версия: '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 - это мое изображение, извлекаемое из моего док-центра.

На appsettings.json в моем основном приложении dotnet:

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

Где я создаю Logger, как это в моем Startup.cs файле:

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

Как я уже говорил в начале этого поста;Он работает, когда я запускаю Kibana и Elasticsearch в контейнерах и мое приложение локально, но не когда все три приложения находятся в контейнерах.

Есть предложения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...