Я получил Serilog, записывающий в скользящий файл, и начал реализовывать соединение с экземпляром ElasticSearch на основе Docker.Однако у меня проблемы с подключением.
Для начала, мое приложение работает локально, и есть два больших приема:
- Я могу получить сервис Elastic с моей машины
![elastic server](https://i.stack.imgur.com/ALWxF.png)
- Кибана показывает, что моя служба создала индекс с указанным мною именем
![Kibana dashboard](https://i.stack.imgur.com/Wyvpx.png)
Однако, когда я смотрю на вывод Serilog.Debugging.SelfLog.Enable(msg => Debug.WriteLine(msg));
,Я вижу, что есть какая-то проблема соединения с Elastic:
Поймано исключение при предварительном выполнении массовых операций для Elasticsearch: Elasticsearch.Net.ElasticsearchClientException: максимальное время ожидания достигнуто при повторной попытке запроса
![debug output](https://i.stack.imgur.com/ONtoH.png)
Мой appsettings.json (да, я настраиваю с помощью json, а не кода):
"Serilog": {
"Using": ["Serilog.Sinks.Console", "Serilog.Sinks.File", "Serilog.Sinks.ElasticSearch"],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"Enrich": ["FromLogContext", "WithExceptionDetails"],
"WriteTo": [
{ "Name": "Console" },
{ "Name": "Debug" },
{
"Name": "File",
"Args": {
"path": "%LogDir%\\someserverpath.xyz.com\\log-.txt",
"rollingInterval": "Day",
"shared": true
}
},
{
"Name": "Elasticsearch",
"Args": {
"nodeUris": "http://sxdockertst1:9200",
"indexFormat": "imaging4cast-index-{0:yyyy.MM}",
"emitEventFailure": "WriteToSelfLog",
"autoRegisterTemplate": true
}
}
],
"Properties": {
"Application": "xyz.yyy.Imaging4CastApi"
}
},
Мне кажется, что он получает элементарное соединение, потому что,в противном случае, как еще индекс был бы создан?На эластичном сервере тоже нет аутентификации.Но на самом деле отправка сообщения журнала не работает ...
Я в растерянности ...