Phi*_*hil 11 .net logging elasticsearch serilog
我远不是具有任何 .net 经验的开发人员,但工作中的开发团队希望使用 Serilog 和 serilog-sinks-elasticsearch 将日志推送到我的 ELK 堆栈中。
查看 serilog-sinks-elasticsearch 的配置,似乎没有任何方法可以发送写入 ElasticSearch 集群所需的凭据。
这只是一个愚蠢的操作人员问题还是我只是错过了某个地方的配置?
谢谢
Yas*_*vit 17
我也努力为此找到一个好的解决方案。将用户名/密码添加到 url 肯定有效,但不知何故感觉不对。
这对我有用:
.WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri("https://your-deployment.westeurope.azure.elastic-cloud.com:9243"))
{
...,
ModifyConnectionSettings = x => x.BasicAuthentication("elastic", "your-password"),
})
Run Code Online (Sandbox Code Playgroud)
如果您想坚持使用配置文件(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"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
其中“Authorization=Basic”之后的部分是“login:password”的 Base64 字符串。
好问题....
您可以尝试将它们作为 Elasticsearch 服务器/堆栈 URL 的一部分提供。
例子:
.WriteTo.Sink(new ElasticsearchSink(new ElasticsearchSinkOptions(new Uri(url))
{
AutoRegisterTemplate = true
}
Run Code Online (Sandbox Code Playgroud)
在哪里
url = "https://user:password@stack-server:port"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4544 次 |
最近记录: |