Postgres Exporter因认证问题无法连接远程数据库求助
解决postgres_exporter连接PostgreSQL报错"unknown authentication response:10"的方案
核心原因
错误pq: unknown authentication response: 10对应PostgreSQL的SCRAM-SHA-256认证方式,要么是你使用的postgres_exporter版本不支持该认证,要么是数据库用户的认证配置与exporter不兼容。
解决方案
方案1:降级数据库用户认证方式为md5
- 登录PostgreSQL数据库,执行SQL修改用户认证规则:
ALTER USER myuser WITH PASSWORD 'my_password' LOGIN; ALTER USER myuser WITH ENCRYPTED PASSWORD 'my_password'; ALTER USER myuser WITH AUTHENTICATION md5;
- 修改PostgreSQL的
pg_hba.conf配置文件,将对应远程连接的认证方式改为md5:
host my_database myuser remote_server_ip/32 md5
- 重启PostgreSQL服务生效:
sudo systemctl restart postgresql
方案2:升级postgres_exporter到支持SCRAM-SHA-256的版本
- 停止现有exporter服务:
sudo systemctl stop postgres_exporter
- 下载并安装v0.10.0及以上版本(该版本开始支持SCRAM认证,以amd64架构为例):
wget https://github.com/prometheus-community/postgres_exporter/releases/download/v0.11.0/postgres_exporter-0.11.0.linux-amd64.tar.gz tar xzf postgres_exporter-0.11.0.linux-amd64.tar.gz sudo mv postgres_exporter-0.11.0.linux-amd64/postgres_exporter /usr/local/bin/
- 重启服务:
sudo systemctl restart postgres_exporter
方案3:调整连接字符串的SSL配置
如果数据库要求SSL连接,修改postgres_exporter的连接字符串,将sslmode=disable改为sslmode=require(或匹配数据库实际的SSL要求):
postgresql://myuser:my_password@remote_server:5432/my_database?sslmode=require
验证操作
- 查看exporter日志确认连接状态:
journalctl -u postgres_exporter -f
- 访问exporter的metrics端点(默认地址
http://your_vps_ip:9187/metrics),检查是否能正常获取PostgreSQL指标。
内容的提问来源于stack exchange,提问作者Bruno Henrique Peixoto
相关产品推荐
相关产品推荐

