监控系列(六)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

相关文章

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

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

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

使用zabbix进行监控网络设备流量

《使用zabbix进行监控网络设备流量》这篇文章主要为大家详细介绍了如何使用zabbix进行监控网络设备流量,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装zabbix配置ENSP环境配置zabbix实行监控交换机测试一台liunx服务器,这里使用的为Ubuntu22.04(

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

springboot健康检查监控全过程

《springboot健康检查监控全过程》文章介绍了SpringBoot如何使用Actuator和Micrometer进行健康检查和监控,通过配置和自定义健康指示器,开发者可以实时监控应用组件的状态,... 目录1. 引言重要性2. 配置Spring Boot ActuatorSpring Boot Act

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

在Ubuntu上部署SpringBoot应用的操作步骤

《在Ubuntu上部署SpringBoot应用的操作步骤》随着云计算和容器化技术的普及,Linux服务器已成为部署Web应用程序的主流平台之一,Java作为一种跨平台的编程语言,具有广泛的应用场景,本... 目录一、部署准备二、安装 Java 环境1. 安装 JDK2. 验证 Java 安装三、安装 mys

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin