ccfos / nightingale

An all-in-one observability solution which aims to combine the advantages of Prometheus and Grafana. It manages alert rules and visualizes metrics, logs, traces in a beautiful web UI.
https://flashcat.cloud/docs/
Apache License 2.0
9.84k stars 1.42k forks source link

Bug 反馈:edge 启动时 连接 Redis 客户端 TLS 配置不生效 #2184

Closed 54616GithubWork closed 2 months ago

54616GithubWork commented 2 months ago

Question and Steps to reproduce

在通过配置文件设置 Redis 客户端的 TLS 相关配置时,发现 Redis.UseTLS 字段的值未能生效,导致无法建立 TLS 连接。 尽管配置文件中已明确设置 UseTLS 为 true,但实际连接时 ClientConfig.UseTLS 仍为 false。

  1. 拉去main 分支代码
  2. 配置toml config 文件, 指向开启了tls 的redis 并配置开启 tls
  3. 调试 cmd/edge/main.go
  4. https://github.com/ccfos/nightingale/blob/ec927297d6a3f84bf91fd5ab2340ea78fdd826d2/storage/redis.go#L32 打断点, 运行到此时 查看 发现 cfg.UseTLS= true, 但是 在 cfg.TLSConfig() https://github.com/ccfos/nightingale/blob/ec927297d6a3f84bf91fd5ab2340ea78fdd826d2/storage/redis.go#L42 的时候, 这里总是一直为一直 false https://github.com/ccfos/nightingale/blob/ec927297d6a3f84bf91fd5ab2340ea78fdd826d2/pkg/tlsx/config.go#L41
    这里的c.UseTLS 总是为false 外边的 cfg.UseTLS 并没有影响到 cfg.ClientConfig.UseTLS.

导致 实际上 Redis 的配置并没有使用tls 进行连接

Relevant logs and configurations

[Redis]
# address, ip:port or ip1:port,ip2:port for cluster and sentinel(SentinelAddrs)
Address = "192.168.10.21:30001"
# Username = ""
# Password = ""
DB = 15
UseTLS = true
TLSMinVersion = "1.2"
TLSMaxVersion = "1.3"
ServerName = "hk.serverless.ape1.cache.amazonaws.com"
# standalone cluster sentinel
RedisType = "cluster"
# Mastername for sentinel type
# MasterName = "mymaster"
# SentinelUsername = ""
# SentinelPassword = ""

Version

v7.3.4-ec927297d6a3f84bf91fd5ab2340ea78fdd826d2

UlricQin commented 2 months ago

https://github.com/ccfos/nightingale/commit/c9f46bad02f5bbe1cc76249998adeecb1f6b26e1 已修复,是因为某个版本开始引入了 tlsx.ClientConfig,但是忘记删除 UseTLS 了,实际 tlsx.ClientConfig 中已经包含 UseTLS 了。一般用户都没有使用 TLS 的 Redis,故而一直没有发现。

710leo commented 2 months ago

@54616GithubWork 最新版本解决了这个问题了,可以升级下

54616GithubWork commented 2 months ago

升级后 没有问题了, 感谢🙏