You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证ElasticSearch地址与凭证正确性?Serilog日志写入失败排查

问题排查:Serilog Elasticsearch Sink 失败的验证与修复

一、确认服务类型

你登录的是**Elastic Cloud(AWS上的Elasticsearch托管服务)**的Kibana管理控制台,而非直接的Elasticsearch API端点。9243是Kibana的默认端口,用于控制台操作,不能作为Serilog发送日志的ES API地址。

二、获取正确的Elasticsearch API地址

  1. 登录Elastic Cloud控制台后,进入你选择的空间(部署)
  2. 在部署详情页面,找到Elasticsearch端点URL,格式通常为 https://[集群ID].es.[区域].aws.found.io(默认使用443端口,无需额外指定)

三、验证凭证与地址有效性

用curl命令直接测试ES API,确认凭证权限:

curl -u "你的用户名:你的密码" -X GET "https://正确的ES端点地址/_cat/indices?v"
  • 返回索引列表:地址和凭证均有效
  • 返回401:凭证错误或无权限
  • 返回404:地址错误

四、修正Serilog配置

将ElasticsearchSinkOptions中的URL替换为正确的ES API端点,同时确保用户名密码匹配:

builder.Host.UseSerilog((ctx, configuration) =>
{
    configuration.ReadFrom.Configuration(ctx.Configuration)
     .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("https://正确的ES端点地址"))
     {
         IndexFormat = "logs-ea.standard-{0:yyyy.MM}",
         FailureCallback = e => Console.WriteLine("Unable to submit event " + JsonSerializer.Serialize(e)),
         EmitEventFailure = EmitEventFailureHandling.WriteToSelfLog |
                            EmitEventFailureHandling.WriteToFailureSink |
                            EmitEventFailureHandling.RaiseCallback,
         ModifyConnectionSettings = x => x.BasicAuthentication("你的用户名", "你的密码")
     });
});

额外排查技巧

开启Serilog的SelfLog查看详细错误:

Serilog.Debugging.SelfLog.Enable(msg => Console.WriteLine(msg));

SelfLog会输出连接失败、权限问题等具体原因,帮助快速定位问题。

内容的提问来源于stack exchange,提问作者Master

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:15:35