美文网首页
监控OGG 的几种方法

监控OGG 的几种方法

作者: akka9 | 来源:发表于2021-07-07 01:50 被阅读0次
    1. 命令行
    export gghome=/ogg/12.3.0.1/GG_App1
    export LD_LIBRARY_PATH=/ogg/12.3.0.1/GG_App1/lib:/u01/app/oracle/product/12.2.0.1/dbhome_1/lib
    export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH:${gghome}
    
    
    export OGG_HOME=/opt/ogg-mysql
    export LD_LIBRARY_PATH=$OGG_HOME/lib
    
    ${OGG_HOME}/ggsci << EOF |egrep 'EXTRACT|REPLICAT'|(awk '{print $1"|"$2"|"$3"|"$4"|"$5"|" (substr($4,1,2)*60)+substr($4,4,2)}')
    info all
    exit
    EOF
    
    
    
    ${OGG_HOME}/ggsci << EOF |egrep -i 'EXTRACT|REPLICAT'|tr 'A-Z' 'a-z'| \
     (awk  '{gsub(/stopped|abended/,"0"); gsub(/running/,"1"); print $1"|"$2"|"$3"|"$4"|"$5"|" (substr($4,1,2)*60)+substr($4,4,2)}')
    info all
    exit
    EOF
    
    
    1. http 方式
      说明:本文测试于 19c 版本,其他版本未测试
    #cat GLOBALS
    GGSCHEMA ggadmin
    ENABLEMONITORING UDPPORT 2009 HTTPPORT 2009
    # ./ggsci 
    ggsci> start PMSRVR
    
    # curl -v http://x.x.x.x:2009/groups
    # 返回 xml 格式的文件内容
    
    附录:JAGENT 配置方法(未测试)
    cat jagent.prm
    COMMAND /home/oracle/goldengate_19c/GGTGT/jdk/bin/java -Dconfig.dir=/home/oracle/gg_agent_inst/GGTGT/cfg -Djava.util.logging.config.class=oracle.core.ojdl.logging.LoggingConfiguration -Doracle.core.ojdl.logging.config.file=/home/oracle/gg_agent_inst/GGTGT/cfg/logging-config.xml -Doracle.core.ojdl.logging.componentId=JAGENT -jar -Xms512m -Xmx1024m /home/oracle/gg_monitor/oggmon/ogg_agent/dirjar/jagent.jar
    
    
    
    https://dbatracker.com/2020/10/14/creating-monitor-agent-instance-and-discover-gg-targets/
    https://chandu208.blogspot.com/2019/02/ogg-requested-url-is-not-serviced-by.html
    http://chandu208.blogspot.com/2019/01/goldengate-performance-metric-server.html
    
    1. promethues
    cat /app/sh/ogg_metric.sh
    
    source /etc/profile
    
    export OGG_HOME=/opt/ogg-mysql
    export OGG_LABEL='label="ogg-mysql"' 
    
    set -e -o nounset   # 变量未初始化自动退出,脚本中间执行异常也会自动退出
    
    mkdir -p /app/prom.keys
    output=/app/prom.keys/ogg.prom
    exec > $output 2>&1
    
    echo "# HELP ogg_lag_at_chkpt_sec  OGG job lag by sec"
    echo "# TYPE ogg_lag_at_chkpt_sec gauge"
    echo "# HELP ogg_time_since_chkpt_sec  OGG job lag by sec"
    echo "# TYPE ogg_time_since_chkpt_sec gauge"
    echo "# HELP ogg_up  OGG job status active 1 for UP / 0 for DOWN"
    echo "# TYPE ogg_up gauge"
    
    ${OGG_HOME}/ggsci  << EOF |egrep -i 'EXTRACT|REPLICAT|PUMP'|tr 'A-Z' 'a-z'| \
    (awk  '{gsub(/stopped|abended/,"0"); gsub(/running/,"1"); \
    print "ogg_up{"    "svc=\"" $1  "\",name=\"" $3 "\"}" " "  $2 "\n" \
          "ogg_lag_at_chkpt_sec{"   "svc=\"" $1  "\",name=\"" $3 "\"}" " " (substr($4,1,2)*60)+substr($4,4,2) "\n" \
          "ogg_time_since_chkpt_sec{"   "svc=\"" $1  "\",name=\"" $3 "\"}" " " (substr($5,1,2)*60)+substr($5,4,2)
    }')
    info all
    exit
    EOF
    
    
    crontab -l
    
    * * * * * /bin/bash /app/sh/ogg_metric.sh
    
    
    #cat /usr/lib/systemd/system/node_exporter.service
    [Unit]
    Description=node_exporter
    Documentation=https://prometheus.io/
    After=network.target
    
    [Service]
    Type=simple
    User=prometheus
    ExecStart=/usr/local/node_exporter/node_exporter \
      --web.listen-address=0.0.0.0:5003 \
      --web.telemetry-path=/metrics \
      --collector.textfile.directory=/app/prom.keys \
      --log.level=info \
      --log.format=logfmt
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    
    # ogg.yaml
    
    - name: OGG任务存活告警规则
      rules:
      - alert: OGG任务实例存活告警
        expr: ogg_up == 0
        for: 65s
        labels:
          app: "{{ $labels.app }}"
          svc: "{{ $labels.svc }}"
          name: "{{ $labels.name }}"
          env : "{{ $labels.env }}"
          severity: warning
        annotations:
          description: " {{ $labels.svc }}的{{ $labels.name }}无法工作超过1分钟"
    
    
    
    - name: OGG任务延迟告警规则
      rules:
      - alert: OGG任务延迟存活告警
        expr: ogg_lag_at_chkpt_sec > 600
        for: 5s
        labels:
          app: "{{ $labels.app }}"
          svc: "{{ $labels.svc }}"
          name: "{{ $labels.name }}"
          env : "{{ $labels.env }}"
          severity: warning
        annotations:
          description: " {{ $labels.svc }}的{{ $labels.name }} 延迟超过10分钟"
    
    
    
    #- name: OGG任务延迟告警规则
    #  rules:
      - alert: OGG任务延迟存活告警
        expr: ogg_time_since_chkpt_sec > 600
        for: 5s
        labels:
          app: "{{ $labels.app }}"
          svc: "{{ $labels.svc }}"
          name: "{{ $labels.name }}"
          env : "{{ $labels.env }}"
          severity: warning
        annotations:
          description: " {{ $labels.svc }}的{{ $labels.name }} 延迟超过10分钟"
    
    

    相关文章

      网友评论

          本文标题:监控OGG 的几种方法

          本文链接:https://www.haomeiwen.com/subject/minnultx.html