oliver006 / redis_exporter

Prometheus Exporter for ValKey & Redis Metrics. Supports ValKey and Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x
https://github.com/oliver006/redis_exporter
MIT License
3.14k stars 876 forks source link

when use redis_exporter for redis cluster contain tls,it just can't work normally! #580

Closed stanley23 closed 2 years ago

stanley23 commented 2 years ago

the log(target is redis cluster with tls,this only collect one node):

./redis_exporter -redis.addr test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 -redis.password xxxxxx -debug -skip-tls-verification -is-cluster -web.listen-address 0.0.0.0:9130

INFO[0000] Redis Metrics Exporter v1.30.0 build date: 2021-11-06-13:18:41 sha1: 300f6fe81051ef29f070b6583d80bd343e46fc05 Go: go1.17.3 GOOS: linux GOARCH: amd64 DEBU[0000] Enabling debug output
DEBU[0000] NewRedisExporter options: exporter.Options{User:"", Password:"MRHvwNjUhDDw0ryB", Namespace:"redis", PasswordMap:map[string]string{}, ConfigCommandName:"CONFIG", CheckKeys:"", CheckSingleKeys:"", CheckStreams:"", CheckSingleStreams:"", CheckKeysBatchSize:1000, CheckKeyGroups:"", MaxDistinctKeyGroups:100, CountKeys:"", LuaScript:[]uint8(nil), ClientCertFile:"", ClientKeyFile:"", CaCertFile:"", InclSystemMetrics:false, SkipTLSVerification:true, SetClientName:true, IsTile38:false, IsCluster:true, ExportClientList:false, ExportClientsInclPort:false, ConnectionTimeouts:15000000000, MetricsPath:"/metrics", RedisMetricsOnly:false, PingOnConnect:false, Registry:(prometheus.Registry)(0xc0001008c0), BuildInfo:exporter.BuildInfo{Version:"v1.30.0", CommitSha:"300f6fe81051ef29f070b6583d80bd343e46fc05", Date:"2021-11-06-13:18:41"}} DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] keys: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] singleKeys: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] streams: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] singleStreams: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] countKeys: []exporter.dbKeyPair(nil)
INFO[0000] Providing metrics at 172.31.2.36:9130/metrics DEBU[0000] Configured redis addr: "test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379" DEBU[0002] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 DEBU[0017] DialURL() failed, err: read tcp 172.31.2.36:40168->172.31.0.204:6379: i/o timeout DEBU[0017] Trying: Dial(): tcp test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ERRO[0032] Couldn't connect to redis instance
DEBU[0032] connectToRedis( test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ) err: read tcp 172.31.2.36:40236->172.31.0.204:6379: i/o timeout DEBU[0032] scrapeRedisHost() done
DEBU[0032] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 DEBU[0047] DialURL() failed, err: read tcp 172.31.2.36:40300->172.31.0.204:6379: i/o timeout DEBU[0047] Trying: Dial(): tcp test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ERRO[0062] Couldn't connect to redis instance
DEBU[0062] connectToRedis( test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ) err: read tcp 172.31.2.36:40372->172.31.0.204:6379: i/o timeout DEBU[0062] scrapeRedisHost() done
DEBU[0062] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ^C ubuntu@ip-172-31-2-36:/data/redis_exporter-v1.30.0.linux-amd64$ ./redis_exporter -redis.addr redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 -redis.password MRHvwNjUhDDw0ryB -debug -skip-tls-verification -is-cluster -web.listen-address 172.31.2.36:9130 INFO[0000] Redis Metrics Exporter v1.30.0 build date: 2021-11-06-13:18:41 sha1: 300f6fe81051ef29f070b6583d80bd343e46fc05 Go: go1.17.3 GOOS: linux GOARCH: amd64 DEBU[0000] Enabling debug output
DEBU[0000] NewRedisExporter options: exporter.Options{User:"", Password:"MRHvwNjUhDDw0ryB", Namespace:"redis", PasswordMap:map[string]string{}, ConfigCommandName:"CONFIG", CheckKeys:"", CheckSingleKeys:"", CheckStreams:"", CheckSingleStreams:"", CheckKeysBatchSize:1000, CheckKeyGroups:"", MaxDistinctKeyGroups:100, CountKeys:"", LuaScript:[]uint8(nil), ClientCertFile:"", ClientKeyFile:"", CaCertFile:"", InclSystemMetrics:false, SkipTLSVerification:true, SetClientName:true, IsTile38:false, IsCluster:true, ExportClientList:false, ExportClientsInclPort:false, ConnectionTimeouts:15000000000, MetricsPath:"/metrics", RedisMetricsOnly:false, PingOnConnect:false, Registry:(
prometheus.Registry)(0xc0001008c0), BuildInfo:exporter.BuildInfo{Version:"v1.30.0", CommitSha:"300f6fe81051ef29f070b6583d80bd343e46fc05", Date:"2021-11-06-13:18:41"}} DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] keys: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] singleKeys: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] streams: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] singleStreams: []exporter.dbKeyPair(nil)
DEBU[0000] parseKeyArg(): Got empty key arguments, parsing skipped DEBU[0000] countKeys: []exporter.dbKeyPair(nil)
INFO[0000] Providing metrics at 172.31.2.36:9130/metrics DEBU[0000] Configured redis addr: "redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379" DEBU[0009] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 DEBU[0024] DialURL() failed, err: read tcp 172.31.2.36:40568->172.31.0.204:6379: i/o timeout DEBU[0024] Trying: Dial(): redis test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ERRO[0024] Couldn't connect to redis instance
DEBU[0024] connectToRedis( redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ) err: dial redis: unknown network redis DEBU[0024] scrapeRedisHost() done
DEBU[0024] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 DEBU[0039] DialURL() failed, err: read tcp 172.31.2.36:40636->172.31.0.204:6379: i/o timeout DEBU[0039] Trying: Dial(): redis test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ERRO[0039] Couldn't connect to redis instance
DEBU[0039] connectToRedis( redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ) err: dial redis: unknown network redis DEBU[0039] scrapeRedisHost() done
DEBU[0039] Trying DialURL(): redis://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 DEBU[0054] DialURL() failed, err: read tcp 172.31.2.36:40702->172.31.0.204:6379: i/o timeout

stanley23 commented 2 years ago

this is aws redis cluster. it used Encryption in transmission.

stanley23 commented 2 years ago

because i can't get info about tls-client-key-file,tls-client-cert-file,tls-server-key-file,tls-server-cert-file,,,

bjosv commented 2 years ago

Have you tried to add rediss:// like -redis.addr rediss://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ?

stanley23 commented 2 years ago

Have tried to add rediss:// like -redis.addr rediss://test-redis-cluster-0001-002.test-redis-cluster.nyau2z.apne1.cache.amazonaws.com:6379 ?

thanks guy ,you're welcome