GoldenGate教程FG073-OGG监控指标自定义与可视化实战
本文详细介绍OGG监控指标的自定义和可视化方法,包括自定义监控指标、Grafana集成、Prometheus集成、告警配置等内容。风哥教程参考GoldenGate官方文档GoldenGate监控指南、GoldenGate指标管理手册等内容,帮助读者掌握OGG监控可视化的实战技巧。
目录大纲
Part01-基础概念与理论知识
1.1 OGG监控指标体系
1.2 监控可视化架构
1.3 自定义监控指标原理
Part02-生产环境规划与建议
2.1 监控架构规划
2.2 监控指标规划
2.3 告警策略规划
Part03-生产环境项目实施方案
3.1 Prometheus集成配置
3.2 Grafana可视化配置
3.3 自定义监控指标配置
Part04-生产案例与实战讲解
4.1 OGG进程监控可视化实战
4.2 OGG性能监控可视化实战
4.3 OGG告警配置实战
Part05-风哥经验总结与分享
5.1 OGG监控可视化最佳实践
5.2 监控指标设计经验总结
5.3 监控工具与模板
Part01-基础概念与理论知识
1.1 OGG监控指标体系
OGG监控指标包括进程状态、性能指标、延迟指标、错误指标等多个维度,学习交流加群风哥微信: itpux-com。
监控指标:
1. 进程状态:Extract、Replicat进程状态
2. 性能指标:吞吐量、操作数/秒
3. 延迟指标:源端到目标端延迟
4. 错误指标:错误数、Discard数
5. 资源指标:CPU、内存、IO使用率
cd /GoldenGate/app
./ggsci
Version 23.0.0.0.0
GGSCI (fgedu.net.cn) 1> INFO ALL
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING E_FGEDU01 00:00:02 00:00:00
EXTRACT RUNNING E_FGEDU02 00:00:03 00:00:01
REPLICAT RUNNING R_FGEDU01 00:00:05 00:00:02
REPLICAT RUNNING R_FGEDU02 00:00:04 00:00:01
1.2 监控可视化架构
OGG监控可视化架构包括数据采集、数据存储、数据展示、告警通知等组件。
架构组件:
1. 数据采集:OGG Exporter采集指标
2. 数据存储:Prometheus存储时序数据
3. 数据展示:Grafana展示可视化
4. 告警通知:Alertmanager告警通知
5. 数据分析:Grafana数据分析
systemctl status prometheus
Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-15 08:00:00 CST; 2h 30min ago
Main PID: 1234 (prometheus)
Tasks: 15 (limit: 4915)
Memory: 256.0M
CGroup: /system.slice/prometheus.service
└─1234 /usr/local/bin/prometheus –config.file=/etc/prometheus/prometheus.yml
1.3 自定义监控指标原理
自定义监控指标通过OGG Exporter实现,将OGG指标转换为Prometheus格式。
自定义原理:
1. 指标采集:从GGSCI采集指标
2. 格式转换:转换为Prometheus格式
3. 指标暴露:通过HTTP暴露指标
4. 数据采集:Prometheus采集指标
5. 数据展示:Grafana展示指标
Part02-生产环境规划与建议
2.1 监控架构规划
根据业务需求,设计合理的监控架构。
架构规划:
1. 单机架构:适合小规模环境
2. 集群架构:适合大规模环境
3. 高可用架构:保证监控高可用
4. 分布式架构:适合分布式环境
5. 混合架构:根据需求灵活组合
systemctl status grafana
Loaded: loaded (/etc/systemd/system/grafana.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2024-01-15 08:00:00 CST; 2h 30min ago
Main PID: 5678 (grafana)
Tasks: 12 (limit: 4915)
Memory: 128.0M
CGroup: /system.slice/grafana.service
└─5678 /usr/sbin/grafana-server –config=/etc/grafana/grafana.ini
2.2 监控指标规划
规划需要监控的OGG指标。
指标规划:
1. 进程状态:监控所有OGG进程状态
2. 性能指标:监控吞吐量和延迟
3. 错误指标:监控错误和Discard
4. 资源指标:监控资源使用
5. 业务指标:监控业务相关指标
2.3 告警策略规划
规划OGG监控的告警策略。
告警策略:
1. 告警级别:Critical、Warning、Info
2. 告警规则:定义告警触发条件
3. 告警通知:邮件、短信、钉钉等
4. 告警聚合:聚合相似告警
5. 告警抑制:抑制重复告警
Part03-生产环境项目实施方案
3.1 Prometheus集成配置
配置Prometheus采集OGG监控指标。
vi /etc/prometheus/ogg_exporter.yml
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
ogg:
home: /GoldenGate/app
port: 7809
processes:
– name: E_FGEDU01
type: extract
– name: E_FGEDU02
type: extract
– name: R_FGEDU01
type: replicat
– name: R_FGEDU02
type: replicat
metrics:
– name: ogg_process_status
type: gauge
help: OGG process status
– name: ogg_process_lag
type: gauge
help: OGG process lag in seconds
– name: ogg_process_ops_per_sec
type: gauge
help: OGG process operations per second
vi /etc/prometheus/prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
– job_name: ‘ogg’
static_configs:
– targets: [‘localhost:9100’]
metrics_path: /metrics
scrape_interval: 10s
– job_name: ‘node’
static_configs:
– targets: [‘localhost:9100’]
systemctl restart prometheus
3.2 Grafana可视化配置
配置Grafana展示OGG监控指标。
# 通过Grafana Web界面添加
# URL: http://localhost:3000
# Data Sources -> Add data source -> Prometheus
# URL: http://localhost:9090
# 通过Grafana Web界面创建Dashboard
# Dashboard -> New Dashboard -> Add Query
# 通过Grafana Web界面导入模板
# Dashboard -> Import -> Upload JSON file
3.3 自定义监控指标配置
配置自定义OGG监控指标。
vi /GoldenGate/app/scripts/ogg_metrics.sh
# ogg_metrics.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn
OGG_HOME=/GoldenGate/app
METRICS_FILE=/tmp/ogg_metrics.prom
collect_process_status() {
local process=$1
local status=$(echo “INFO $process” | $OGG_HOME/ggsci 2>/dev/null | grep “Status” | awk ‘{print $2}’)
local status_code=0
if [ “$status” = “RUNNING” ]; then
status_code=1
fi
echo “ogg_process_status{process=\”$process\”} $status_code” >> $METRICS_FILE
}
collect_process_lag() {
local process=$1
local lag=$(echo “LAG $process” | $OGG_HOME/ggsci 2>/dev/null | grep “Lag” | awk ‘{print $2}’)
local lag_seconds=$(echo $lag | awk -F: ‘{print $1*3600 + $2*60 + $3}’)
echo “ogg_process_lag{process=\”$process\”} $lag_seconds” >> $METRICS_FILE
}
# 清空指标文件
> $METRICS_FILE
# 采集所有进程指标
for process in E_FGEDU01 E_FGEDU02 R_FGEDU01 R_FGEDU02; do
collect_process_status $process
collect_process_lag $process
done
# 输出指标
cat $METRICS_FILE
chmod +x /GoldenGate/app/scripts/ogg_metrics.sh
/GoldenGate/app/scripts/ogg_metrics.sh
ogg_process_lag{process=”E_FGEDU01″} 2
ogg_process_status{process=”E_FGEDU02″} 1
ogg_process_lag{process=”E_FGEDU02″} 3
ogg_process_status{process=”R_FGEDU01″} 1
ogg_process_lag{process=”R_FGEDU01″} 5
ogg_process_status{process=”R_FGEDU02″} 1
ogg_process_lag{process=”R_FGEDU02″} 4
Part04-生产案例与实战讲解
4.1 OGG进程监控可视化实战
本案例展示OGG进程监控的可视化实现。
curl http://localhost:9100/metrics | grep ogg_process_status
ogg_process_status{process=”E_FGEDU02″} 1
ogg_process_status{process=”R_FGEDU01″} 1
ogg_process_status{process=”R_FGEDU02″} 1
# 访问 http://localhost:3000
# 选择OGG监控Dashboard
GGSCI (fgedu.net.cn)> STOP EXTRACT E_FGEDU01
EXTRACT E_FGEDU01 stopping
Extract stopped successfully.
sleep 15
curl http://localhost:9100/metrics | grep ogg_process_status
ogg_process_status{process=”E_FGEDU02″} 1
ogg_process_status{process=”R_FGEDU01″} 1
ogg_process_status{process=”R_FGEDU02″} 1
4.2 OGG性能监控可视化实战
展示OGG性能监控的可视化实现。
GGSCI (fgedu.net.cn)> STATS EXTRACT E_FGEDU01, TOTAL
Total inserts 1,256,789
Total updates 456,234
Total deletes 89,567
Total operations 1,802,590
Avg operations/sec: 47.7
Peak operations/sec: 156
# 访问 http://localhost:3000
# 查看性能监控图表
4.3 OGG告警配置实战
展示OGG监控告警的配置实现。
vi /etc/prometheus/alertmanager.yml
global:
resolve_timeout: 5m
route:
group_by: [‘alertname’]
group_wait: 10s
group_interval: 10s
repeat_interval: 1h
receiver: ‘default’
routes:
– match:
severity: critical
receiver: ‘critical’
receivers:
– name: ‘default’
email_configs:
– to: ‘itpux@fgedu.net.cn’
from: ‘alertmanager@fgedu.net.cn’
smarthost: ‘smtp.fgedu.net.cn:587’
auth_username: ‘alertmanager@fgedu.net.cn’
auth_password: ‘password’
– name: ‘critical’
email_configs:
– to: ‘itpux@fgedu.net.cn’
from: ‘alertmanager@fgedu.net.cn’
smarthost: ‘smtp.fgedu.net.cn:587’
auth_username: ‘alertmanager@fgedu.net.cn’
auth_password: ‘password’
vi /etc/prometheus/ogg_alerts.yml
groups:
– name: ogg_alerts
rules:
– alert: OGGProcessDown
expr: ogg_process_status == 0
for: 1m
labels:
severity: critical
annotations:
summary: “OGG process down”
description: “OGG process {{ $labels.process }} is down”
– alert: OGGProcessLagHigh
expr: ogg_process_lag > 300
for: 5m
labels:
severity: warning
annotations:
summary: “OGG process lag high”
description: “OGG process {{ $labels.process }} lag is {{ $value }} seconds”
systemctl restart prometheus
systemctl restart alertmanager
Part05-风哥经验总结与分享
5.1 OGG监控可视化最佳实践
基于实际项目经验,总结OGG监控可视化的最佳实践。
最佳实践:
1. 指标设计:设计合理的监控指标
2. 可视化设计:设计清晰的可视化
3. 告警配置:配置合理的告警
4. 持续优化:持续优化监控
5. 文档完善:完善监控文档
5.2 监控指标设计经验总结
总结OGG监控指标设计的经验和技巧。
设计经验:
1. 关键指标:关注关键指标
2. 业务指标:关注业务指标
3. 可操作:指标要可操作
4. 可理解:指标要可理解
5. 可追溯:指标要可追溯
5.3 监控工具与模板
提供OGG监控的常用工具和模板。
mkdir -p /GoldenGate/app/tools/monitoring
cd /GoldenGate/app/tools/monitoring
# 创建工具清单
cat > README.txt << 'EOF'
========== OGG监控工具包 ==========
工具列表:
1. ogg_metrics.sh – 指标采集脚本
2. ogg_alerts.yml – 告警规则配置
3. ogg_dashboard.json – Grafana Dashboard模板
4. ogg_exporter.yml – OGG Exporter配置
5. prometheus.yml – Prometheus配置
使用方法:
./ogg_metrics.sh
# 导入ogg_dashboard.json到Grafana
# 配置prometheus.yml和ogg_alerts.yml
EOF
cat README.txt
工具列表:
1. ogg_metrics.sh – 指标采集脚本
2. ogg_alerts.yml – 告警规则配置
3. ogg_dashboard.json – Grafana Dashboard模板
4. ogg_exporter.yml – OGG Exporter配置
5. prometheus.yml – Prometheus配置
使用方法:
./ogg_metrics.sh
# 导入ogg_dashboard.json到Grafana
# 配置prometheus.yml和ogg_alerts.yml
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
