GoldenGate教程FG053-OGG监控告警配置(邮件/短信)实战
本文档风哥主要介绍Oracle GoldenGate监控告警系统的配置方法,包括邮件告警、短信告警、自定义脚本告警等多种方式的配置实战,风哥教程参考GoldenGate官方文档Manager进程配置、事件处理等内容,适合OGG运维人员在生产环境中搭建完善的监控告警体系。
Part01-基础概念与理论知识
1.1 OGG监控告警概念与重要性
Oracle GoldenGate监控告警是指对OGG运行状态进行实时监控,当出现异常情况时及时发送告警通知的机制。完善的监控告警体系是保障OGG稳定运行的关键。更多视频教程www.fgedu.net.cn
- 及时发现进程异常(停止、延迟等)
- 快速响应故障,减少业务影响
- 保障数据同步的连续性和一致性
- 满足运维合规要求
- 提升运维效率和响应速度
OGG进程 –> Manager进程 –> 事件检测 –> 告警触发 –> 通知发送 –> 运维人员
| | | | |
运行状态 监控管理 异常检测 规则匹配 邮件/短信
# 监控告警核心组件
1. Manager进程:OGG主管理进程,负责监控其他进程
2. 事件处理:检测进程状态变化、延迟等事件
3. 告警规则:定义告警触发条件和通知方式
4. 通知渠道:邮件服务器、短信网关、脚本执行等
1.2 OGG监控告警类型与场景
OGG支持多种监控告警类型,覆盖不同的运维场景:
| 告警类型 | 触发条件 | 严重级别 |
|—————-|—————————|———-|
| 进程停止 | Extract/Replicat停止运行 | 严重 |
| 进程异常 | 进程状态为Abended | 严重 |
| 进程重启 | 进程频繁重启 | 警告 |
# 延迟告警
| 告警类型 | 触发条件 | 严重级别 |
|—————-|—————————|———-|
| 同步延迟 | 延迟超过阈值(如5分钟) | 警告 |
| 严重延迟 | 延迟超过阈值(如30分钟) | 严重 |
| 检查点延迟 | 检查点更新超时 | 警告 |
# 资源告警
| 告警类型 | 触发条件 | 严重级别 |
|—————-|—————————|———-|
| 磁盘空间 | Trail文件目录空间不足 | 严重 |
| 内存使用 | OGG进程内存使用过高 | 警告 |
| 文件句柄 | 打开文件数过多 | 警告 |
# 错误告警
| 告警类型 | 触发条件 | 严重级别 |
|—————-|—————————|———-|
| 数据库连接 | 无法连接数据库 | 严重 |
| Trail文件错误 | Trail文件损坏或丢失 | 严重 |
| 数据校验错误 | 数据不一致 | 严重 |
1.3 OGG监控告警方式对比
OGG支持多种告警通知方式,各有优缺点:
优点:
– 配置简单,成本低
– 支持详细信息传递
– 可保存历史记录
缺点:
– 实时性较差
– 可能被拦截或忽略
– 需要邮件服务器支持
适用场景:一般告警、日报通知
# 方式2:短信告警
优点:
– 实时性强,到达率高
– 随时随地接收
– 适合紧急告警
缺点:
– 成本较高
– 信息量有限
– 需要短信网关支持
适用场景:严重告警、紧急故障
# 方式3:企业微信/钉钉告警
优点:
– 实时性好
– 支持富文本信息
– 可集成到工作流
缺点:
– 需要API接口支持
– 配置相对复杂
适用场景:团队协作、日常运维
# 方式4:自定义脚本告警
优点:
– 灵活性高
– 可对接各种系统
– 支持复杂逻辑
缺点:
– 开发成本高
– 维护复杂
适用场景:特殊需求、系统集成
Part02-生产环境规划与建议
2.1 OGG监控告警规划建议
在生产环境中实施监控告警前,需要进行详细规划:
- 确定监控指标和告警阈值
- 设计告警级别和升级策略
- 规划通知渠道和接收人员
- 制定告警处理流程
- 准备告警测试方案
级别1 – 紧急(Critical)
– 进程停止
– 数据丢失
– 严重延迟(>30分钟)
– 通知方式:短信+电话+邮件
级别2 – 严重(Major)
– 进程异常
– 中等延迟(>10分钟)
– 磁盘空间不足
– 通知方式:短信+邮件
级别3 – 警告(Warning)
– 轻微延迟(>5分钟)
– 资源使用偏高
– 通知方式:邮件
级别4 – 提示(Info)
– 日常状态报告
– 配置变更通知
– 通知方式:邮件
# 告警升级策略
1. 首次告警:发送给一线运维人员
2. 15分钟未处理:升级给运维主管
3. 30分钟未处理:升级给IT经理
4. 1小时未处理:升级给CTO
2.2 OGG告警阈值配置规划
合理的告警阈值是监控告警有效性的关键:
| 监控项 | 警告阈值 | 严重阈值 | 检查频率 |
|—————-|———–|———–|———-|
| 进程停止 | 立即 | 立即 | 1分钟 |
| 进程异常 | 立即 | 立即 | 1分钟 |
| 进程重启次数 | 3次/小时 | 5次/小时 | 5分钟 |
# 延迟监控阈值
| 监控项 | 警告阈值 | 严重阈值 | 检查频率 |
|—————-|———–|———–|———-|
| Extract延迟 | 5分钟 | 30分钟 | 1分钟 |
| Replicat延迟 | 5分钟 | 30分钟 | 1分钟 |
| 检查点延迟 | 10分钟 | 60分钟 | 5分钟 |
# 资源监控阈值
| 监控项 | 警告阈值 | 严重阈值 | 检查频率 |
|—————-|———–|———–|———-|
| 磁盘使用率 | 80% | 90% | 5分钟 |
| 内存使用率 | 80% | 90% | 5分钟 |
| CPU使用率 | 80% | 95% | 5分钟 |
| 文件句柄数 | 80% | 90% | 10分钟 |
# Trail文件监控阈值
| 监控项 | 警告阈值 | 严重阈值 | 检查频率 |
|—————-|———–|———–|———-|
| Trail文件数量 | 100个 | 200个 | 10分钟 |
| Trail文件大小 | 50GB | 100GB | 10分钟 |
| 最旧Trail时间 | 24小时 | 48小时 | 30分钟 |
2.3 OGG通知渠道规划
规划合理的通知渠道和接收人员:
# 邮件服务器配置
SMTP服务器:smtp.fgedu.net.cn
SMTP端口:465(SSL)
发件人:ogg-alert@fgedu.net.cn
认证用户:ogg-alert
认证密码:********
# 短信网关配置
网关地址:http://sms.fgedu.net.cn/api/send
API密钥:********
签名:【风哥教程】
# 企业微信配置
Webhook地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx
# 接收人员配置
| 角色 | 姓名 | 邮箱 | 手机 | 企业微信 |
|—————-|———|———————|————-|———-|
| 一线运维 | 张三 | zhangsan@fgedu.net | 138****1234 | 张三 |
| 二线运维 | 李四 | lisi@fgedu.net | 139****5678 | 李四 |
| 运维主管 | 王五 | wangwu@fgedu.net | 137****9012 | 王五 |
| IT经理 | 赵六 | zhaoliu@fgedu.net | 136****3456 | 赵六 |
# 值班安排
工作日:8:00-18:00 – 一线运维
工作日:18:00-8:00 – 二线运维
周末/节假日:二线运维轮值
Part03-生产环境项目实施方案
3.1 OGG邮件告警配置实战
3.1.1 配置Manager进程邮件告警
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
— 邮件告警配置
MAILPROG /usr/sbin/sendmail
MAILALERTS ALL
MAILOPTIONS FROM “ogg-alert@fgedu.net.cn” TO “dba@fgedu.net.cn”
— 进程事件告警
EVENTMGRSTARTED START E_FGEDU01
EVENTMGRSTOPPED STOP *
EVENTEXTRACTSTARTED INFO E_FGEDU01
EVENTEXTRACTSTOPPED INFO E_FGEDU01
EVENTREPLICATSTARTED INFO R_FGEDU01
EVENTREPLICATSTOPPED INFO R_FGEDU01
# 步骤2:重启Manager进程
GGSCI (fgedu.net.cn)> STOP MGR
GGSCI (fgedu.net.cn)> START MGR
Manager started.
# 步骤3:验证邮件配置
GGSCI (fgedu.net.cn)> SEND MGR GETMAILINFO
Mail program: /usr/sbin/sendmail
From address: ogg-alert@fgedu.net.cn
To addresses: dba@fgedu.net.cn
# 步骤4:测试邮件发送
GGSCI (fgedu.net.cn)> SEND MGR TESTMAIL
Sending test mail to dba@fgedu.net.cn…
Test mail sent successfully.
3.1.2 配置进程延迟邮件告警
GGSCI (fgedu.net.cn)> EDIT PARAMS E_FGEDU01
EXTRACT E_FGEDU01
USERIDALIAS fgedu_alias
EXTTRAIL /GoldenGate/app/dirdat/ef
— 延迟告警配置
LAGCRITICALMINUTES 30
LAGWARNINGMINUTES 5
LAGREPORTMINUTES 1
TABLE fgedu01.fgedu_orders;
TABLE fgedu01.fgedu_products;
# 步骤2:配置Replicat进程延迟告警
GGSCI (fgedu.net.cn)> EDIT PARAMS R_FGEDU01
REPLICAT R_FGEDU01
USERIDALIAS fgedu_alias
ASSUMETARGETDEFS
— 延迟告警配置
LAGCRITICALMINUTES 30
LAGWARNINGMINUTES 5
LAGREPORTMINUTES 1
MAP fgedu01.fgedu_orders, TARGET fgedu02.fgedu_orders;
MAP fgedu01.fgedu_products, TARGET fgedu02.fgedu_products;
# 步骤3:重启进程使配置生效
GGSCI (fgedu.net.cn)> STOP E_FGEDU01
GGSCI (fgedu.net.cn)> START E_FGEDU01
GGSCI (fgedu.net.cn)> STOP R_FGEDU01
GGSCI (fgedu.net.cn)> START R_FGEDU01
# 步骤4:验证延迟告警配置
GGSCI (fgedu.net.cn)> INFO E_FGEDU01
EXTRACT E_FGEDU01 Last Started 2026-04-10 10:00:00 Status RUNNING
Checkpoint Lag 00:00:00 (updated 00:00:02 ago)
Lag Critical Minutes 30
Lag Warning Minutes 5
3.2 OGG短信告警配置实战
3.2.1 配置短信网关集成
$ vi /GoldenGate/app/scripts/send_sms.sh
#!/bin/bash
# send_sms.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
SMS_GATEWAY=”http://sms.fgedu.net.cn/api/send”
SMS_API_KEY=”your_api_key_here”
SMS_SIGN=”【风哥教程】”
MOBILE=$1
MESSAGE=$2
curl -s -X POST “${SMS_GATEWAY}” \
-H “Content-Type: application/json” \
-d “{
\”api_key\”: \”${SMS_API_KEY}\”,
\”mobile\”: \”${MOBILE}\”,
\”message\”: \”${SMS_SIGN}${MESSAGE}\”
}”
# 赋予执行权限
$ chmod +x /GoldenGate/app/scripts/send_sms.sh
# 步骤2:测试短信发送
$ /GoldenGate/app/scripts/send_sms.sh “138****1234” “OGG告警测试:这是一条测试短信”
{“code”:0,”message”:”success”,”msg_id”:”12345678″}
# 步骤3:配置Manager调用短信脚本
GGSCI (fgedu.net.cn)> EDIT PARAMS MGR
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
— 进程停止告警
EVENTEXTRACTSTOPPED SHELL “/GoldenGate/app/scripts/send_sms.sh 138****1234 ‘OGG告警:Extract进程E_FGEDU01已停止'”
EVENTREPLICATSTOPPED SHELL “/GoldenGate/app/scripts/send_sms.sh 138****1234 ‘OGG告警:Replicat进程R_FGEDU01已停止'”
— 进程异常告警
EVENTEXTRACTABENDED SHELL “/GoldenGate/app/scripts/send_sms.sh 138****1234 ‘OGG告警:Extract进程E_FGEDU01异常终止'”
EVENTREPLICATABENDED SHELL “/GoldenGate/app/scripts/send_sms.sh 138****1234 ‘OGG告警:Replicat进程R_FGEDU01异常终止'”
# 步骤4:重启Manager使配置生效
GGSCI (fgedu.net.cn)> STOP MGR
GGSCI (fgedu.net.cn)> START MGR
3.2.2 配置延迟短信告警
$ vi /GoldenGate/app/scripts/check_lag.sh
#!/bin/bash
# check_lag.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
LAG_WARNING=300
LAG_CRITICAL=1800
SMS_SCRIPT=/GoldenGate/app/scripts/send_sms.sh
SMS_MOBILE=”138****1234″
cd $OGG_HOME
# 检查Extract延迟
EXTRACT_LAG=$(./ggsci <
# 步骤3:验证脚本执行
$ /GoldenGate/app/scripts/check_lag.sh
# 步骤4:查看执行日志
$ tail -f /GoldenGate/app/ggserr.log
2026-04-10 10:05:00 INFO OGG延迟检查开始
2026-04-10 10:05:01 INFO Extract延迟: 00:00:02
2026-04-10 10:05:02 INFO Replicat延迟: 00:00:03
2026-04-10 10:05:02 INFO OGG延迟检查完成
3.3 OGG自定义脚本告警实战
3.3.1 配置综合监控脚本
$ vi /GoldenGate/app/scripts/ogg_monitor.sh
#!/bin/bash
# ogg_monitor.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
LOG_FILE=/GoldenGate/app/logs/monitor.log
ALERT_LOG=/GoldenGate/app/logs/alert.log
EMAIL_TO=”dba@fgedu.net.cn”
SMS_MOBILE=”138****1234″
# 日志函数
log() {
echo “$(date ‘+%Y-%m-%d %H:%M:%S’) $1″ >> $LOG_FILE
}
# 邮件发送函数
send_email() {
local subject=”$1″
local body=”$2”
echo “$body” | mail -s “$subject” $EMAIL_TO
log “邮件已发送: $subject”
}
# 短信发送函数
send_sms() {
local message=”$1″
/GoldenGate/app/scripts/send_sms.sh “$SMS_MOBILE” “$message”
log “短信已发送: $message”
}
# 检查进程状态
check_process_status() {
cd $OGG_HOME
# 获取进程状态
STATUS=$(./ggsci <
fi
# 检查异常的进程
ABENDED=$(echo “$STATUS” | grep “ABENDED” | awk ‘{print $3}’)
if [ -n “$ABENDED” ]; then
send_email “OGG严重告警:进程异常终止” “以下进程异常终止:\n$ABENDED”
send_sms “OGG严重告警:进程$ABENDED异常终止”
echo “$(date ‘+%Y-%m-%d %H:%M:%S’) 进程异常: $ABENDED” >> $ALERT_LOG
fi
}
# 检查延迟
check_lag() {
cd $OGG_HOME
# 检查Extract延迟 #!/bin/bash WEBHOOK_URL=”https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your_key_here” MESSAGE=$1 curl -s -X POST “${WEBHOOK_URL}” \ # 步骤2:赋予执行权限 # 步骤3:测试企业微信告警 {“errcode”:0,”errmsg”:”ok”} # 步骤4:集成到监控脚本 某银行OGG监控告警系统实施案例: # 监控告警架构 # 监控配置 — 邮件配置 — 事件告警 # 告警脚本 ALERT_TYPE=$1 case $ALERT_TYPE in # 发送企业微信 # 严重告警发送短信 # 发送邮件 # 监控效果 # 原因分析 # 解决方案 # 2. 检查sendmail配置 # 3. 重启sendmail服务 # 4. 重新测试 # 问题2:告警风暴 # 原因分析 # 解决方案 if [ -f “$ALERT_LOCK” ]; then if [ $DIFF -lt $ALERT_INTERVAL ]; then # 发送告警后记录时间 # 问题3:脚本执行权限问题 # 解决方案 # 赋予执行权限 # 验证权限 LOG_DIR=/GoldenGate/app/logs cd $LOG_DIR # 检查日志文件大小 if [ $SIZE -gt $MAX_SIZE ]; then mv “$LOG_FILE” “${LOG_FILE}.1” # 解决方案2:监控数据采集与展示 # 创建监控数据导出脚本 #!/bin/bash cd /GoldenGate/app # 获取进程状态 # 输出Prometheus格式指标 echo “$STATUS” | while read line; do if [ “$STATE” = “RUNNING” ]; then # 解决方案3:告警历史记录查询 #!/bin/bash ALERT_LOG=/GoldenGate/app/logs/alert.log if [ -z “$DAYS” ]; then echo “=== 最近${DAYS}天告警记录 ===” find /GoldenGate/app/logs -name “alert*.log” -mtime -$DAYS -exec cat {} \; | \ echo “” # 执行查询 === 最近7天告警记录 === 15 2026-04-10 进程停止: E_FGEDU01 === 告警统计 === 根据多年生产环境实战经验,总结以下监控告警最佳实践: — 邮件告警 — 事件告警 # 最佳实践2:告警分级处理 # 监控告警日常检查 # 监控告警优化检查 在多年OGG项目实施过程中,总结以下监控告警实战经验: # 经验2:告警处理流程 # 经验3:监控告警工具推荐 本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
EXTRACT_INFO=$(./ggsci <3.3.2 配置企业微信告警
$ vi /GoldenGate/app/scripts/send_wechat.sh
# send_wechat.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
-H “Content-Type: application/json” \
-d “{
\”msgtype\”: \”markdown\”,
\”markdown\”: {
\”content\”: \”${MESSAGE}\”
}
}”
$ chmod +x /GoldenGate/app/scripts/send_wechat.sh
$ /GoldenGate/app/scripts/send_wechat.sh “## OGG告警通知\n> 进程状态:异常\n> 延迟:5分钟\n> 时间:$(date)”
# 在ogg_monitor.sh中添加企业微信通知函数
send_wechat() {
local message=”$1″
/GoldenGate/app/scripts/send_wechat.sh “$message”
log “企业微信已发送: $message”
}
Part04-生产案例与实战讲解
4.1 OGG监控告警生产案例
– 环境:OGG 19c 双向同步
– 源端:Oracle 19c RAC(生产库)
– 目标端:Oracle 19c 单机(灾备库)
– 监控需求:7×24小时实时监控
1. Manager进程事件监控
2. 自定义脚本定时监控
3. 企业微信实时通知
4. 短信紧急告警
5. 邮件详细报告
# Manager配置
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS, MINKEEP 24 HOURS
MAILPROG /usr/sbin/sendmail
MAILALERTS ALL
MAILOPTIONS FROM “ogg-alert@bank.com” TO “dba-team@bank.com”
EVENTEXTRACTSTOPPED SHELL “/GoldenGate/app/scripts/alert.sh EXTRACT_STOPPED E_FGEDU01”
EVENTEXTRACTABENDED SHELL “/GoldenGate/app/scripts/alert.sh EXTRACT_ABENDED E_FGEDU01”
EVENTREPLICATSTOPPED SHELL “/GoldenGate/app/scripts/alert.sh REPLICAT_STOPPED R_FGEDU01”
EVENTREPLICATABENDED SHELL “/GoldenGate/app/scripts/alert.sh REPLICAT_ABENDED R_FGEDU01″
#!/bin/bash
# alert.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
PROCESS_NAME=$2
TIMESTAMP=$(date ‘+%Y-%m-%d %H:%M:%S’)
EXTRACT_STOPPED)
MESSAGE=”OGG告警:Extract进程${PROCESS_NAME}已停止,时间:${TIMESTAMP}”
;;
EXTRACT_ABENDED)
MESSAGE=”OGG严重告警:Extract进程${PROCESS_NAME}异常终止,时间:${TIMESTAMP}”
;;
REPLICAT_STOPPED)
MESSAGE=”OGG告警:Replicat进程${PROCESS_NAME}已停止,时间:${TIMESTAMP}”
;;
REPLICAT_ABENDED)
MESSAGE=”OGG严重告警:Replicat进程${PROCESS_NAME}异常终止,时间:${TIMESTAMP}”
;;
esac
/GoldenGate/app/scripts/send_wechat.sh “## OGG告警通知\n> ${MESSAGE}”
if [[ $ALERT_TYPE == *”ABENDED”* ]]; then
/GoldenGate/app/scripts/send_sms.sh “138****1234” “$MESSAGE”
fi
echo “$MESSAGE” | mail -s “OGG告警” dba-team@bank.com
– 告警响应时间:从30分钟缩短到1分钟
– 故障发现率:从80%提升到99%
– 误报率:控制在5%以下
– 运维效率:提升50%
from GoldenGate视频:www.itpux.com
4.2 OGG监控告警常见问题处理
# 错误现象
GGSCI (fgedu.net.cn)> SEND MGR TESTMAIL
Sending test mail…
Error sending mail: Connection refused
邮件服务器配置错误或网络不通
# 1. 检查邮件服务器连接
$ telnet smtp.fgedu.net.cn 25
Trying 192.168.1.100…
Connected to smtp.fgedu.net.cn.
$ cat /etc/mail/sendmail.mc | grep SMART_HOST
define(`SMART_HOST’, `smtp.fgedu.net.cn’)
$ systemctl restart sendmail
GGSCI (fgedu.net.cn)> SEND MGR TESTMAIL
Test mail sent successfully.
# 错误现象
短时间内收到大量重复告警
未配置告警静默时间
# 在监控脚本中添加告警静默逻辑
ALERT_LOCK=”/tmp/ogg_alert.lock”
ALERT_INTERVAL=300 # 5分钟
LOCK_TIME=$(cat $ALERT_LOCK)
CURRENT_TIME=$(date +%s)
DIFF=$((CURRENT_TIME – LOCK_TIME))
echo “告警静默中,跳过本次告警”
exit 0
fi
fi
date +%s > $ALERT_LOCK
# 错误现象
$ /GoldenGate/app/scripts/ogg_monitor.sh
Permission denied
# 检查脚本权限
$ ls -l /GoldenGate/app/scripts/ogg_monitor.sh
-rw-r–r– 1 root root 1234 Apr 10 10:00 ogg_monitor.sh
$ chmod +x /GoldenGate/app/scripts/*.sh
$ ls -l /GoldenGate/app/scripts/ogg_monitor.sh
-rwxr-xr-x 1 root root 1234 Apr 10 10:00 ogg_monitor.sh
4.3 OGG监控告警问题解决方案
#!/bin/bash
# log_rotate.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
LOG_FILE=monitor.log
MAX_SIZE=10485760 # 10MB
MAX_FILES=7
if [ -f “$LOG_FILE” ]; then
SIZE=$(stat -f%z “$LOG_FILE” 2>/dev/null || stat -c%s “$LOG_FILE”)
# 轮转日志
for i in $(seq $((MAX_FILES-1)) -1 1); do
if [ -f “${LOG_FILE}.$i” ]; then
mv “${LOG_FILE}.$i” “${LOG_FILE}.$((i+1))”
fi
done
touch “$LOG_FILE”
fi
fi
# 使用Prometheus采集OGG监控数据
$ vi /GoldenGate/app/scripts/prometheus_exporter.sh
# prometheus_exporter.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
STATUS=$(./ggsci <
INFO ALL
EOF
)
echo “# HELP ogg_process_status OGG process status (1=running, 0=stopped)”
echo “# TYPE ogg_process_status gauge”
PROCESS=$(echo $line | awk ‘{print $3}’)
STATE=$(echo $line | awk ‘{print $2}’)
echo “ogg_process_status{process=\”$PROCESS\”} 1″
else
echo “ogg_process_status{process=\”$PROCESS\”} 0″
fi
done
# 创建告警历史查询脚本
$ vi /GoldenGate/app/scripts/query_alert.sh
# query_alert.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
DAYS=$1
DAYS=7
fi
echo “”
sort | uniq -c | sort -rn | head -20
echo “=== 告警统计 ===”
echo “总告警数: $(find /GoldenGate/app/logs -name “alert*.log” -mtime -$DAYS -exec cat {} \; | wc -l)”
echo “严重告警: $(find /GoldenGate/app/logs -name “alert*.log” -mtime -$DAYS -exec cat {} \; | grep -c “严重”)”
echo “警告告警: $(find /GoldenGate/app/logs -name “alert*.log” -mtime -$DAYS -exec cat {} \; | grep -c “警告”)”
$ ./query_alert.sh 7
8 2026-04-09 延迟告警: Replicat延迟超过5分钟
5 2026-04-08 磁盘使用率: 85%
总告警数: 28
严重告警: 15
警告告警: 13
Part05-风哥经验总结与分享
5.1 OGG监控告警最佳实践
# Manager配置
PORT 7809
PURGEOLDEXTRACTS /GoldenGate/app/dirdat/*, USECHECKPOINTS
MAILPROG /usr/sbin/sendmail
MAILALERTS ALL
MAILOPTIONS FROM “ogg-alert@fgedu.net.cn” TO “dba@fgedu.net.cn”
EVENTEXTRACTSTOPPED SHELL “/GoldenGate/app/scripts/alert.sh EXTRACT_STOPPED”
EVENTEXTRACTABENDED SHELL “/GoldenGate/app/scripts/alert.sh EXTRACT_ABENDED”
EVENTREPLICATSTOPPED SHELL “/GoldenGate/app/scripts/alert.sh REPLICAT_STOPPED”
EVENTREPLICATABENDED SHELL “/GoldenGate/app/scripts/alert.sh REPLICAT_ABENDED”
级别1(紧急):
– 进程异常终止
– 数据丢失风险
– 处理时间:< 5分钟
级别2(严重):
- 进程停止
- 严重延迟
- 处理时间:< 15分钟
级别3(警告):
- 轻微延迟
- 资源紧张
- 处理时间:< 1小时
级别4(提示):
- 状态变化
- 配置变更
- 处理时间:< 4小时
# 最佳实践3:告警有效性检查
- 每周检查告警统计
- 分析误报和漏报
- 调整告警阈值
- 优化告警规则
5.2 OGG监控告警检查清单
[ ] Manager进程配置正确
[ ] 邮件服务器连接正常
[ ] 短信网关配置正确
[ ] 企业微信Webhook配置正确
[ ] 监控脚本执行权限正确
[ ] 定时任务配置正确
[ ] 告警测试通过
[ ] 告警发送正常
[ ] 告警接收正常
[ ] 无告警风暴
[ ] 告警处理及时
[ ] 监控日志正常
[ ] 告警阈值合理
[ ] 告警级别正确
[ ] 告警静默有效
[ ] 通知渠道畅通
[ ] 处理流程完善
5.3 风哥实战经验总结
– 及时性:发现问题立即告警
– 准确性:减少误报和漏报
– 可操作性:告警信息包含处理建议
– 可追溯性:记录告警历史
1. 接收告警通知
2. 确认告警级别
3. 初步分析原因
4. 执行处理措施
5. 验证处理结果
6. 记录处理过程
7. 总结改进措施
– OGG内置:Manager事件监控
– 脚本监控:Shell脚本定时检查
– 企业微信:实时通知,团队协作
– Prometheus+Grafana:可视化监控
– Zabbix:企业级监控平台
