#elasticsearch #.net-core #serilog #serilog-sinks-elasticsearch
Вопрос:
Я настроил эластичное облако для выгрузки моей локальной конфигурации elasticsearch (как это делается), но по неизвестным мне причинам я не могу заставить его показывать какие-либо журналы в эластичном облаке, несмотря на то, что он отлично работает локально.
Код, который я получил: (изменен по соображениям конфиденциальности)
//var uri = new Uri("http://localhost:9200"); // old one var uri = new Uri("https://my-server.kb.eastus2.azure.elastic-cloud.com:9243"); var sinkOptions = new ElasticsearchSinkOptions(uri) { AutoRegisterTemplate = true, ModifyConnectionSettings = x =gt; x.BasicAuthentication("elastic", "the password I was given"), IndexFormat = $"test-logs-{env.EnvironmentName?.ToLower().Replace('.', '-')}-{DateTime.Now:yyyy-MM}", }; Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(config) .Enrich.FromLogContext() .Enrich.WithMachineName() .WriteTo.Console() .WriteTo.Elasticsearch(sinkOptions) .Enrich.WithProperty("Environment", env.EnvironmentName) .CreateLogger();
Есть две возможные причины, о которых я могу подумать, которые могут быть причиной того, что это не работает:
- Учетные данные неверны
- Uri неверен
Каждое решение, которое мне давали до сих пор, предоставляло данные таким образом, и нигде не говорится, как выглядит URI, который я должен использовать.
Я не получаю никаких ошибок.
Я не получаю никаких предупреждений.
Я не получаю никаких журналов.
Что я здесь делаю не так?
Ответ №1:
Проблема заключалась в использовании неправильного uri. Я написал
my-server.kb.eastus2.azure.elastic-cloud.com:9243
скорее, чем
my-server.es.eastus2.azure.elastic-cloud.com:9243
.
Обратите внимание на очень незначительную разницу, которая kb
es
указана в URL-адресе