为什么在我的dockerized API的kibana中没有输出?

时间:2018-07-19 15:22:59

标签: docker elasticsearch asp.net-core kibana

我想要实现的是与其他泊坞窗(elasticsearch和kibana)进行dockerize我的RestApi并在kibana中显示日志输出。但是我得到的是No results found :(在kibana中。一切正常,没有错误发生。

如果不使用dockerize的RestApi工具,一切也将正常运行,并且日志输出将显示在kibana中。

我做错了什么,希望您能看到它是什么。

对编程还是个新手,真的很想学习。 很快就可以找到解决方案。感谢您的帮助。

到目前为止我所拥有的:

docker-compose.yml

version: '3'

services:
  RestApi:
   build:
    context: C:\foo\RestApi
    dockerfile: Dockerfile 
   image: docker.restapi
   container_name: RestApi
   links:
    - "elasticsearch"
   ports:
    - "9000:80"

  elasticsearch:
   image: docker.elastic.co/elasticsearch/elasticsearch:6.2.4
   container_name: elasticsearch
   expose:
    - "9200"
   ports:
    - "9200:9200"

  kibana:
   image: docker.elastic.co/kibana/kibana:6.2.4
   container_name: kibana
   links:
    - "elasticsearch"
   ports:
    - "5601:5601"

Dockerfile

FROM microsoft/dotnet:2.0-sdk
COPY pub/ /root/
WORKDIR /root/
ENV ASPNETCORE_URLS="http://*:80"
EXPOSE 80/tcp
ENTRYPOINT ["dotnet", "RestAPI.dll"]

appsettings.json

{   
  "Logging": {
      "LogLevel": {
          "Default": "Information",
          "System": "Information",
          "Microsoft": "Information"
      }
  },
  "ElasticConfiguration": {
      "Uri": "http://localhost:9200/"
  },
  "Version": "1.0"
}

Startup.cs

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Sinks.Elasticsearch;
using System;


namespace RestAPI
{
   public class Startup
   {
       public Startup(IConfiguration configuration, IHostingEnvironment hostingEnvironment)
       {
        var configurationBuilder = new ConfigurationBuilder()
            .SetBasePath(hostingEnvironment.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", reloadOnChange: true, optional: true)
            .AddEnvironmentVariables();

        Configuration = configurationBuilder.Build();

        var elasticUri = Configuration["ElasticConfiguration:Uri"];

        Log.Logger = new LoggerConfiguration()
            .Enrich.FromLogContext()
            .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(elasticUri))
            {
                AutoRegisterTemplate = true,
            })
        .CreateLogger();
        }

       public IConfiguration Configuration { get; }

       public void ConfigureServices(IServiceCollection services)
       {
          services.AddMvc();
          services.Configure<AppConfig>(Configuration);
       }

       public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
       {
          loggerFactory.AddSerilog();
          app.UseMvc();
       }
   }
}

0 个答案:

没有答案