[英]Elasticsearch, Kibana, dotnet core and docker
我将我的 dotnet 核心应用程序设置为使用SeriLog
,它记录到ElasticSearch Sink
。 当使用ElasticSearch
和Kibana
在本地运行我的 dotnet 核心应用程序时,我有两个单独的容器,我可以将应用程序中的内容记录到 Elastic,我还可以在Kibana
看到这些日志消息。
当我在docker-compose.yml
文件中包含我的 dotnet 核心应用程序,导航到应用程序所在的端点时,我希望它会向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
是我从我的chtr.server
集线器中提取的图像。
appsettings.json
我的 dotnet 核心应用程序中的appsettings.json
:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
},
"ElasticConfiguration": {
"Uri": "http://[::]:9200/"
}
}
我在Startup.cs
文件中创建这样的 Logger:
var elasticSearch = Configuration["ElasticConfiguration:Uri"];
Log.Logger = new LoggerConfiguration().Enrich.FromLogContext().WriteTo.Elasticsearch(new ElasticsearchSinkOptions(
new Uri(elasticSearch)) { AutoRegisterTemplate = true }).CreateLogger();
就像我在这篇文章开头所说的那样; 当我在容器和本地应用程序中运行Kibana
和Elasticsearch
时,它可以工作,但当所有三个应用程序都在容器中时,它不起作用。
有什么建议?
该服务在容器下运行,这就是为什么您应该使用如下容器名称编写日志:
Appsettings.Development.json:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Information",
"System": "Information",
"Microsoft": "Information"
}
},
"ElasticConfiguration": {
"Uri": "http://elasticsearch:9200/"
}
}
您可以在此处找到一个完整示例,该示例展示了如何设置 Serilog、Seq、elasticsearch 和 kibana 以在 Docker 容器解决方案下协同工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.