AWS EC2+RDS部署Chainlink节点OCR密钥生成后容器崩溃如何解决
排查方向与解决方案
- 调高Chainlink节点日志输出级别到debug,复现故障后查看密钥生成步骤后到容器退出前的完整日志,定位具体崩溃原因。默认info级别的日志会省略底层权限、资源类的报错信息。
- 检查EC2实例的容器持久化目录读写权限,确认运行容器的用户对~/.chainlink等挂载目录有完整的读写权限;同时排查挂载的EBS卷是否存在IO限流、存储空间不足的问题,OCR密钥生成过程中会写入临时文件,写入失败会触发进程异常退出。
- 校验AWS RDS PostgreSQL的连接配置:AWS RDS默认开启强制SSL连接,需确认你的Chainlink数据库连接串中已添加
sslmode=require参数,否则密钥写入完成后数据库连接会被强制断开,触发容器崩溃。同时检查RDS实例的安全组规则是否放通了EC2的出站连接,有没有流量超时限制。 - 单独执行OCR密钥生成命令验证问题:先停止原节点容器,启动临时容器执行
chainlink keys ocr create --password <你的密钥密码文件路径>,查看该命令执行过程中是否有明确报错。如果单独执行该命令就失败,可进一步排查密钥密码是否存在特殊字符导致解析异常、容器是否缺少必要的系统依赖库。 - 排查EC2实例资源瓶颈:如果使用的是t2.micro等低配实例,OCR密钥生成时的计算负载可能触发OOM(内存不足)导致进程被系统杀掉,可通过EC2监控面板查看实例内存使用率,也可执行
dmesg | grep -i oom查看是否有内存回收杀掉进程的日志。 - 检查节点配置文件中的OCR相关参数:确认没有配置错误的
OCR_KEY_BUNDLE_ID等参数,也没有误开OCR相关的实验性功能开关。
内容的提问来源于stack exchange,提问作者Antonio Samaniego Jurado
相关产品推荐
相关产品推荐

