Mongo BI在对MongoDB进行schema采样时自动关闭,如何排查故障原因?
Mongo BI Connector schema采样阶段自动退出排查方案
故障关联日志:
2021-10-15T10:04:11.538+0800 I NETWORK [initandlisten] waiting for connections at [::]:3307 2021-10-15T10:04:11.538+0800 I NETWORK [initandlisten] waiting for connections at /tmp/mysql.sock 2021-10-15T10:04:11.547+0800 I SCHEMA [sampler] sampling MongoDB for schema... 2021-10-15T10:04:17.949+0800 I CONTROL [signalProcessingThread] shutting down
- 调高mongosqld日志级别:启动时追加
--logLevel=3参数开启DEBUG级日志输出,默认INFO级别会过滤掉采样过程中的权限报错、数据解析异常、连接中断等低级别错误信息,调高日志后复现问题可获取完整错误栈。 - 排查系统内核日志:执行
dmesg -T命令查看系统日志,确认是否存在OOM(内存溢出)kill记录。schema采样需要加载大量MongoDB样本数据到内存分析,若采样样本数配置过高、集合数据量/嵌套层级过大,很容易触发内存超限被系统主动回收进程。 - 验证MongoDB侧配置与权限:首先确认mongosqld使用的账号拥有所有待采样库表的
find权限,其次检查MongoDB服务端的连接超时、maxTimeMS配置,以及网络链路中是否存在防火墙、安全组规则在采样过程中断开连接,连接异常会直接触发采样线程崩溃,进而拉起进程关闭逻辑。 - 缩小采样范围验证:启动时追加
--sampleNamespaces=<指定库>.<指定集合>参数,仅对小数据量、结构简单的单集合采样,如果该场景下进程不会退出,说明故障和待采样集合的数据特征有关,可进一步排查是否存在超大文档、异常字段类型导致采样逻辑崩溃。 - 排查进程误杀规则:检查操作系统的审计日志、定时任务、进程清理脚本,确认是否存在规则将mongosqld识别为异常进程主动杀死,上述日志中从采样开始到进程退出间隔6秒,和部分定时清理脚本的执行周期吻合。
内容的提问来源于stack exchange,提问作者radiorz
相关产品推荐
相关产品推荐

