首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Serilog + serilog-sinks-elasticsearch +ElasticSearch Auth

Serilog + serilog-sinks-elasticsearch +ElasticSearch Auth
EN

Stack Overflow用户
提问于 2016-09-06 05:12:10
回答 3查看 5.4K关注 0票数 12

我远不是一个有任何.net经验的开发人员,但工作中的开发团队希望使用Serilog和serilog-sinks-elasticsearch来将日志推送到我的ELK堆栈中。

查看serilog-sinks-elasticsearch的配置,似乎没有任何方法可以将写入所需的凭证发送到ElasticSearch集群。

这只是一个愚蠢的人的问题,还是我刚刚错过了配置?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-02-18 02:05:39

我也在努力寻找一个好的解决方案。将用户名/密码添加到url确实有效,但不知何故感觉不对劲。

这对我很有效:

代码语言:javascript
复制
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("https://your-deployment.westeurope.azure.elastic-cloud.com:9243"))
{
  ...,
  ModifyConnectionSettings = x => x.BasicAuthentication("elastic", "your-password"),
})
票数 22
EN

Stack Overflow用户

发布于 2016-09-13 10:51:23

问得好……

您可以尝试将它们作为Elasticsearch服务器/堆栈URL的一部分提供。

示例:

代码语言:javascript
复制
.WriteTo.Sink(new ElasticsearchSink(new ElasticsearchSinkOptions(new Uri(url))
{
    AutoRegisterTemplate = true
}

哪里

代码语言:javascript
复制
url = "https://user:password@stack-server:port"
票数 8
EN

Stack Overflow用户

发布于 2021-04-01 20:59:28

如果您想继续使用配置文件(appsettings.json),因为您知道可以使用参数connectionGlobalHeaders来指定登录/密码,因为Elasticsearch使用基本身份验证来验证用户身份。

如下所示:

代码语言:javascript
复制
"Serilog": {
    "WriteTo": [
      {
        "Name": "Elasticsearch",
        "Args": {
          "nodeUris": "https://your-uri",
          "connectionGlobalHeaders": "Authorization=Basic dXNlcm5hbWU6cGFzc3dvcmQ=",
          "indexFormat": "application-log-{0:yyyy.MM}",
          "autoRegisterTemplate": true,
          "autoRegisterTemplateVersion": "ESv7"
        }
      }
    ]
  }

其中"Authorization=Basic“后的部分是您的”Base64 :password“的登录字符串。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39337745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档