我想使用 serilog-sinks-mongodb 包在 MongoDB 中写入日志。MongoDB url 具有 ssl=true 并且我们希望使用该 url 来编写日志。
在 IIS 中,一切进展顺利,日志正在进入 mongo DB。
但在 docker 上,我收到以下错误。
---> ClusterId : 1, EndPoint : "Unspecified/host:1037" }", EndPoint: "Unspecified/host:1037", ReasonChanged: "Heartbeat", State: "Disconnected", ServerVersion: , TopologyVersion: , Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server.
---> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure.
- 我将 ca crt 和 pem 文件放入/etc/ssl/certs/目录。
- 设置环境变量SSL_CERT_DIR
appsettings 看起来像这样。
{
"Name": "Logger",
"Args": {
"configureLogger": {
"Filter": [
{
"Name": "ByIncludingOnly",
"Args": {
"expression": "EndsWith(RequestPath, '/hc') AND (@Level = 'Information' OR @Level = 'Fatal')"
}
}
],
"WriteTo": [
{
"Name": "MongoDB",
"Args": {
"databaseUrl": "mongodb://admin:password@hostname:1037/Databasename?authSource=admin&ssl=true&tls=true",
"collectionName": "WebServiceHealthLogs",
"cappedMaxSizeMb": "1024",
"cappedMaxDocuments": "50000",
"mongoDBJsonFormatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact"
}
}
]
}
}
}