0

我想使用 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"
            }
          }
        ]
      }
    }
  }
4

0 回答 0