EC2实例Redash查询报错:could not send SSL negotiation packet求助
排查与解决Redash连接RDS PostgreSQL的SSL协商错误
1. 验证网络连通性
- 测试EC2到RDS的端口可达性:
若不通,除了RDS安全组,需检查EC2的出站安全组规则是否允许访问5432端口,同时确认VPC路由表是否包含正确的路由条目(私网RDS需指向VPC端点,公网RDS需指向互联网网关)。nc -zv <你的RDS端点> 5432 - 检查EC2网络接口状态:执行
ip addr确认网卡IP正常,无漂移或禁用情况。
2. 核对SSL配置
- 检查RDS SSL强制设置:登录RDS控制台,确认目标PostgreSQL实例的
SSL连接模式。若为强制SSL,连接时必须指定SSL参数:- psql测试连接需添加
sslmode=require:psql -h <RDS端点> -p 5432 -U <数据库用户名> -d <数据库名> -sslmode=require - Redash数据源配置中需开启SSL选项,确保SSL模式设置为
require或verify-full。
- psql测试连接需添加
- 更新EC2上的RDS根证书:下载AWS官方PostgreSQL根证书到
/usr/local/share/ca-certificates/,执行update-ca-certificates更新证书缓存,避免证书过期导致SSL握手失败。
3. 检查系统资源状态
- 排查资源耗尽问题:
- 用
top或htop查看CPU、内存占用,确认无进程过度占用资源。 - 执行
df -h检查磁盘空间,若系统盘或Redash日志目录已满,需清理释放空间。
- 用
- 调整文件描述符限制:执行
ulimit -n查看当前限制,若数值过低(如默认1024),临时调整为ulimit -n 65535,并在/etc/security/limits.conf中添加以下配置永久生效:* soft nofile 65535 * hard nofile 65535
4. 检查Redash与数据库配置
- 确认Redash数据源的端点、端口、账号密码无误,避免实例重启后配置丢失或篡改。
- 查看Redash日志(路径通常为
/var/log/redash/),提取更详细的错误栈,定位具体失败环节。
5. 重启相关服务
- 重启EC2网络服务(依系统而定):
# CentOS/RHEL sudo systemctl restart network # Ubuntu sudo systemctl restart systemd-networkd - 重启Redash服务:
sudo systemctl restart redash-server redash-worker
内容的提问来源于stack exchange,提问作者yadu singla
相关产品推荐
相关产品推荐

