监控系列(六)prometheus监控DMHS操作步骤

2023-10-15 12:15

本文主要是介绍监控系列(六)prometheus监控DMHS操作步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、监控的操作逻辑

  1. 给操作系统安装expect命令
  2. expect脚本执行dmhs_console脚本执行 cpt / exec 命令
  3. 用脚本进行过滤字符串过滤
  4. dm_export读取脚本与当前日期作比较,然后返回差值

二、安装步骤

1. linux中Expect工具的安装及使用方法

https://blog.csdn.net/wangtaoking1/article/details/78268574

# wget https://sourceforge.net/projects/tcl/files/Tcl/8.4.19/tcl8.4.19-src.tar.gz
# tar zxvf tcl8.4.19-src.tar.gz
# cd tcl8.4.19/unix && ./configure
# make
# make install# 回退到基目录下在执行一下操作# wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz
# tar zxvf expect5.45.tar.gz
# cd expect5.45
# ./configure --with-tcl=/usr/local/lib --with-tclinclude=../tcl8.4.19/generic
# make
# make install
# ln -s /usr/local/bin/expect /usr/bin/expect# 安装完成之后运行expect命令,查看是否安装成功。
# expect
expect1.1> 

2. dm_exporter工具配置文件

调整application.yml

新增dmhs的相关属性,注意enableType类型 需要区分源端以及目的端

[root@p4-oakdmdb02 dm_exporter]# vi application.yml spring:application:name: dm-prometheus
server:port: 9200##ip识别错误时使用ip:##主机的hostnamehostname:##告警保留时间(分钟)alarmSaveTime: 5##大key的保留时间(表空间使用 分组)bigKeySaveTime: 720##会话等待的检测时间(分钟) 检测会话等待值 sql传参waitingSessionTime: 5##是否屏蔽特殊项 0 不屏蔽 1屏蔽 (屏蔽定时任务、sql超时)specialCheck: 1
dmdbms:jdbcUrl:  jdbc:dm://127.0.0.1:5236username: SYSDBApassword: SYSDBA
dmhs:## 0 不启动  1 cpt源端 2 目的端enableType: 0installBinPath: /home/dmdba/dmhs/bin
management:endpoints:# 关闭所有的检查项enabled-by-default: falseweb:exposure:# 暴露监控接口,*为全部接口include: 'prometheus'# 不暴露接口#        exclude: 'info'base-path: "/"# 对外暴露prometheus接口并擦好看更多健康信息endpoint:prometheus:enabled: truehealth:show-details: always## 关闭内置的检查项metrics:enable:jvm: falselogback: falsefiles: falsetomcat: falseexecutor: falsedisk: falseuptime: falseintegration: falsetrace:http:enabled: false
logging:config: classpath:log4j2.xml

生成脚本(get_hs_console_info.sh)

工具自动生成,此脚本做参考

#!/usr/bin/env bash/usr/bin/expect << EOF
set timeout 3
spawn /home/dmdba/dmhs_new_20230925/bin/dmhs_console
send "cpt\r"
send "exit\r"
expect eof
EOF

生成脚本(get_hs_console_result_info.sh)

工具自动生成,此脚本做参考

#!/usr/bin/env bash
HS_BIN_DIR=/home/dmdba/dmhs_new_20230925/bin
SCRIPT_DIR=/prometheus/dm_exporter/export_script
LOG_FILE=$SCRIPT_DIR/hs_console.txt
RESULT_FILE=$SCRIPT_DIR/hs_console_result.txt
cd $HS_BIN_DIR
sh $SCRIPT_DIR/get_hs_console_info.sh >$LOG_FILE
sed -i 's/\x1B\[[0-9;]*m//g; s/\x0D$//g; s/\^M\$//g' $LOG_FILE
CheckPointTime=`cat $LOG_FILE |grep "checkpoint time"|awk -F " : " '{print $3}'|awk -F " " '{print $1,$2}'|awk 'NR==1{print}'`
echo 'CheckPointTime='$CheckPointTime'' > $RESULT_FILE
CurrentLogTime=`cat $LOG_FILE |grep "current log time"|awk -F " : " '{print $2}'|awk -F " " '{print $1,$2}'|awk 'NR==1{print}'`
echo 'CurrentLogTime='$CurrentLogTime'' >> $RESULT_FILE
[root@p4-oa15dmdb01 export_script]# cat hs_console_result.txt 
CheckPointTime=2023-10-13 11:41:21
CurrentLogTime=2023-10-13 13:28:10

三、调整promehteus配置文件

1. 添加主机配置 prometheus.yml

[root@Zabbbix prometheus-2.35.0]# vim prometheus.yml# my global config
global:scrape_interval: 1m # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 1m # Evaluate rules every 15 seconds. The default is every 1 minute.scrape_timeout: 1m # scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:- 127.0.0.1:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:- "rules/*.yml"# - "rules/*_alerts.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"static_configs:- targets: ["localhost:9090"]- job_name: "dmdbms_bgoak_dw"metrics_path: "/prometheus"static_configs:- targets: ["192.63.97.93:9200","192.63.97.94:9200"]labels:cluster_name: '办公OAK'

2. 添加告警规则vim custom_test.yml

 [root@Zabbbix rules]# vim custom_test.yml- alert: 备库重做日志内存堆积过高expr: dmdbms_rapply_sys_task_mem_used >= 512000000for: 15slabels:severity: 警告annotations:description: "主机:{{ $labels.instance }} 备库重做日志内存堆积过高"summary: "主机:{{ $labels.instance }}:备库重做日志内存堆积过高,请确认是否正常"- alert: 备库重做日志线程数expr: dmdbms_rapply_sys_task_num >= 2048for: 15slabels:severity: 警告annotations:description: "主机:{{ $labels.instance }} 备库重做日志线程数过高"summary: "主机:{{ $labels.instance }}:备库重做日志线程数过高,请确认是否正常"- alert: HS的进程连接异常expr: dmdbms_dmhs_process_is_exit == 0for: 15slabels:severity: 警告annotations:description: "主机:{{ $labels.instance }} HS的进程连接异常"summary: "主机:{{ $labels.instance }}:HS的进程连接异常,请确认是否正常"- alert: HS的checkPointTime超过8hexpr: dmdbms_dmhs_check_point_delay >=0 and dmdbms_dmhs_check_point_delay > 60*60*8for: 15slabels:severity: 警告annotations:description: "主机:{{ $labels.instance }} HS的checkPointTime超过8h"summary: "主机:{{ $labels.instance }}:HS的checkPointTime超过8h,请确认是否正常"

四、修改grafana图表

效果如下:
在这里插入图片描述

在这里插入图片描述

image.png

五、报错

安装expect报错 no acceptable cc found in $PATH

image.png

# 安装gcc的依赖环境
yum install gcc-c++

这篇关于监控系列(六)prometheus监控DMHS操作步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/217640

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

JVisualVM之Java性能监控与调优利器详解

《JVisualVM之Java性能监控与调优利器详解》本文将详细介绍JVisualVM的使用方法,并结合实际案例展示如何利用它进行性能调优,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1. JVisualVM简介2. JVisualVM的安装与启动2.1 启动JVisualVM2

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1

使用Python实现实时金价监控并自动提醒功能

《使用Python实现实时金价监控并自动提醒功能》在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控... 目录工具能干啥?手把手教你用1、先装好这些"食材"2、代码实现讲解1. 用户输入参数2. 设置无头浏

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

golang获取prometheus数据(prometheus/client_golang包)

《golang获取prometheus数据(prometheus/client_golang包)》本文主要介绍了使用Go语言的prometheus/client_golang包来获取Prometheu... 目录1. 创建链接1.1 语法1.2 完整示例2. 简单查询2.1 语法2.2 完整示例3. 范围值

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个