1. 首页 > GoldenGate教程 > 正文

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使用率

# 查看OGG进程状态
cd /GoldenGate/app
./ggsci

Oracle GoldenGate Command Interpreter for Oracle
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数据分析

# 查看Prometheus状态
systemctl status prometheus

● prometheus.service – 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展示指标

风哥提示:自定义监控指标需要了解Prometheus指标格式和OGG命令输出。

Part02-生产环境规划与建议

2.1 监控架构规划

根据业务需求,设计合理的监控架构。

架构规划:
1. 单机架构:适合小规模环境
2. 集群架构:适合大规模环境
3. 高可用架构:保证监控高可用
4. 分布式架构:适合分布式环境
5. 混合架构:根据需求灵活组合

# 查看Grafana状态
systemctl status grafana

● grafana.service – 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监控指标。

# 创建OGG Exporter配置
vi /etc/prometheus/ogg_exporter.yml

# OGG Exporter配置
# 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

# 配置Prometheus采集OGG指标
vi /etc/prometheus/prometheus.yml

# Prometheus配置
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’]

# 重启Prometheus
systemctl restart prometheus

# Prometheus重启完成

3.2 Grafana可视化配置

配置Grafana展示OGG监控指标。

# 添加Prometheus数据源
# 通过Grafana Web界面添加
# URL: http://localhost:3000
# Data Sources -> Add data source -> Prometheus
# URL: http://localhost:9090

# 数据源添加完成

# 创建OGG监控Dashboard
# 通过Grafana Web界面创建Dashboard
# Dashboard -> New Dashboard -> Add Query

# Dashboard创建完成

# 导入OGG监控模板
# 通过Grafana Web界面导入模板
# Dashboard -> Import -> Upload JSON file

# 模板导入完成

3.3 自定义监控指标配置

配置自定义OGG监控指标。

# 创建自定义指标采集脚本
vi /GoldenGate/app/scripts/ogg_metrics.sh

#!/bin/bash
# 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_status{process=”E_FGEDU01″} 1
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_FGEDU01″} 1
ogg_process_status{process=”E_FGEDU02″} 1
ogg_process_status{process=”R_FGEDU01″} 1
ogg_process_status{process=”R_FGEDU02″} 1

# 查看Grafana Dashboard
# 访问 http://localhost:3000
# 选择OGG监控Dashboard

# Dashboard显示所有OGG进程状态

# 查看进程状态变化
GGSCI (fgedu.net.cn)> STOP EXTRACT E_FGEDU01

Sending STOP request to MANAGER …
EXTRACT E_FGEDU01 stopping

Extract stopped successfully.

# 查看指标变化
sleep 15
curl http://localhost:9100/metrics | grep ogg_process_status

ogg_process_status{process=”E_FGEDU01″} 0
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

Extract E_FGEDU01 statistics:

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

# 查看Grafana性能图表
# 访问 http://localhost:3000
# 查看性能监控图表

# Grafana显示性能趋势图

4.3 OGG告警配置实战

展示OGG监控告警的配置实现。

# 配置Alertmanager
vi /etc/prometheus/alertmanager.yml

# Alertmanager配置
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

# OGG告警规则
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”

# 重启Prometheus和Alertmanager
systemctl restart prometheus
systemctl restart alertmanager

# Prometheus和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

========== 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

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息