我远不是一个有任何.net经验的开发人员,但工作中的开发团队希望使用Serilog和serilog-sinks-elasticsearch来将日志推送到我的ELK堆栈中。
查看serilog-sinks-elasticsearch的配置,似乎没有任何方法可以将写入所需的凭证发送到ElasticSearch集群。
这只是一个愚蠢的人的问题,还是我刚刚错过了配置?
谢谢
发布于 2020-02-18 02:05:39
我也在努力寻找一个好的解决方案。将用户名/密码添加到url确实有效,但不知何故感觉不对劲。
这对我很有效:
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("https://your-deployment.westeurope.azure.elastic-cloud.com:9243"))
{
...,
ModifyConnectionSettings = x => x.BasicAuthentication("elastic", "your-password"),
})发布于 2016-09-13 10:51:23
问得好……
您可以尝试将它们作为Elasticsearch服务器/堆栈URL的一部分提供。
示例:
.WriteTo.Sink(new ElasticsearchSink(new ElasticsearchSinkOptions(new Uri(url))
{
AutoRegisterTemplate = true
}哪里
url = "https://user:password@stack-server:port"发布于 2021-04-01 20:59:28
如果您想继续使用配置文件(appsettings.json),因为您知道可以使用参数connectionGlobalHeaders来指定登录/密码,因为Elasticsearch使用基本身份验证来验证用户身份。
如下所示:
"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“的登录字符串。
https://stackoverflow.com/questions/39337745
复制相似问题