基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
monagent_process_stop ocp_monagent 进程停止
更新时间:2026-04-14 15:11:01
告警描述
监测 ocp_monagent 进程是否停止。
OCP-Agent 进程监控 OceanBase 相关组件进程的启动时间戳,如果时间戳发生变动就可以认为进程发生停止或重启。这个告警只代表进程停止过,并不能说明进程长时间停止运行。如果进程长时间停止,会有其他状态类告警。
相关进程包括:
- observer:告警项为 observer_process_stop
- obproxy:告警项为 obproxy_process_stop
- obproxyd.sh:告警项为 obproxyd_process_stop
- ocp_agentd:告警项为 agentd_process_stop
- ocp_mgragent:告警项为 mgragent_process_stop
- ocp_monagent:告警项为 monagent_process_stop
告警原理
| 参数 | 值 |
|---|---|
| 监控指标 | monagent_boot_time_delta_seconds |
| 指标来源 | 系统的 boot time + 进程距离系统重启的时间差值就是进程的启动时间。其中,系统的 boot time 等于命令 cat /proc/stat 返回结果的 btime 值;进程距离系统重启的时间差值等于命令 cat /proc/pid/stat 返回结果的第 22 列数字除以 100 后的值 |
| 采集指标 | process_boot_time_seconds |
| 监控表达式 | max(delta(process_boot_time_seconds{name="ocp_monagent",@LABELS}[@INTERVAL])) by (@GBLABELS) |
| 采集周期 | 5 秒 |
规则信息
| 监控表达式 | 监控指标含义 | 默认阈值 | 检测周期 | 消除周期 |
|---|---|---|---|---|
| monagent_boot_time_delta_seconds > 10 | ocp_monagent 进程停止。 | 0 秒 | 20 秒 | 5 分钟 |
告警信息
| 告警触发方式 | 告警等级 | 范围 |
|---|---|---|
| 基于监控指标的表达式 | 警告 | 主机 |
告警模板
告警概述
- 模板:
${alarm_target} ${alarm_name} - 样例:
alarm_template_id=0:ob_cluster=AdminMETA-12:host=xxx.xxx.xxx.xxx ocp_monagent 进程停止
- 模板:
告警详情
- 模板:
集群:${ob_cluster_name},主机:${host},告警:${alarm_name}。进程已运行时长:${value_shown}。 - 样例:
集群:AdminMETA,主机:xxx.xxx.xxx.xxx,告警:ocp_monagent 进程停止。进程已运行时长:34 分 8 秒。
- 模板:
对系统的影响
ocp_monagent 是 OCP-Agent 采集监控数据的进程。
如果进程停止后很快被守护进程(ocp_agentd)拉起(最多尝试拉起3次),OCP 业务几乎无影响。可能会丢失几秒钟的监控数据,进程内缓存的监控也会丢失,需要重建缓存:从 OBServer 内部表查询得到。如果进程频繁重启,缓存实现会导致缓存穿透,对 OBServer 有一定的压力(正常情况下,采集监控的 QPS 大约是在 20 以内)。
如果进程停止后没有被拉起,则会造成监控大量丢数据,依赖监控数据的告警也将失效(部分状态类告警可能还在工作),此时 OBServer 出现问题,将无法保留监控历史记录。
可能原因
进程内存超过 2GiB 会被守护进程重启。可能得原因包括:
- QPS 高导致采集数据占用内存大。
- 进程内存泄露。
进程 BUG,导致执行错误,意外退出。
监控配置错误,
/home/admin/ocp_agent/conf/module_config中存在自定义的配置,存在语法(yaml)错误。预期内的主动运维,白屏重启 agent。
处理方法
- 以操作系统管理员用户或者具有
sudo权限的用户登录到 OBServer 服务器上。 - 执行
/home/admin/ocp_agent/bin/ocp_agentctl config -u monagent.limit.memory.quota=xxx修改 ocp_monagent 进程允许使用的内存上限。 - 重启 ocp_agent。
具体示例如下:
-- 修改 ocp_monagent 进程允许使用的内存上限
/home/admin/ocp_agent/bin/ocp_agentctl config -u monagent.limit.memory.quota=10240MB
{"successful":true,"message":"success","error":""}
-- 重启命令
systemctl restart ocp_agent
-- 可以使用下面的命令来检查修改是否已经生效
cat /sys/fs/cgroup/memory/ocp_agent/ocp_monagent/memory.limit_in_bytes
10737418240
cat /home/admin/ocp_agent/conf/config_properties/common_meta.yaml | grep -A4 monagent.limit.memory.quota
- key: monagent.limit.memory.quota
value: 10240MB
valueType: string
encrypted: false
configVersion: "2025-09-24T16:51:33.747+08:00"