当前位置:网站首页>简单记录openguass_exporter对接prometheus通过grafanai来实现可视化监控

简单记录openguass_exporter对接prometheus通过grafanai来实现可视化监控

2022-08-11 11:12:00 Xavier丶

监测openguass

工具准备

你需要(可以在docker中运行):

我们要做的是

  • 通过对openguass进行bechmark压测来获取内部的处理日志并将结果推送到pushgateway中,并且由prometheus进行监控
  • 通过openguass_exporter来实现将openguass数据库的实时信息推送到promethues中并通过grafana可视化展现出来

部署过程

本机压测

  • 压测后将结果重定向到tpcc.log文件中
  • 通过docker pull prom/pushgateway拉取pushgateway镜像
  • 启动容器sudo docker run -d -p 9091:9091 prom/pushgateway

通过下面这个脚本推送到pushgateway

import os
def collect_tpmc():
    log_file = "./tpcc.log"
    cmd = "tail -1 %s > /tmp/tpmc;awk -F ':' '{print $(NF-2)}' /tmp/tpmc | awk '{print $1}'" % log_file
    tpmc = os.popen(cmd).read().strip()
    tpmc = float(tpmc) * 0.45
    count_tpmc = "count_tpmc{count_tpmc=\"count_tpmc\"} " + str(tpmc) + "\n"
    print("count_tpmc : %s" %count_tpmc)
    return count_tpmc

def send_data(data_type, node):
    send_cmd = "echo '" + collect_tpmc() + "' | curl --data-binary @- ip:9091/metrics/job/{node}/instance/{data_type}".format(
             node=node, data_type=data_type)
    os.popen(send_cmd)

ip = "your ip"
ret = collect_tpmc()
send_data("count_tpmc",ip)

网址输入ip:9091结果如图

在这里插入图片描述

部署openguass_exporter

  • 通过docker pull enmotech/openguass_exporterdocker pull enmotech/openguass分别将openguass_exporter和openguass部署在docker上

  • 通过docker run --name openguass --privileged=true -d -e GS_PASSWORD="your passwd" -p 8888:5432 openguass3启动openguass

  • 通过docker run --net=host -e DATA_SOURCE_NAME="postgresql://user:[email protected]:8888/tpcc?sslmode=disable" enmotech/opengauss_exporter启动openguass_exporter
    如果监听成功终端会有下图状态:
    在这里插入图片描述

  • 测试openguass_export:
    输入IP:9187若正常则是以下状态
    在这里插入图片描述

对接premethues

  • docekr pull prom/prometheus
  • docker run --name prometheus -d -p 127.0.0.1:9090:9090 prom/prometheus
    接下来我们需要修改其配置文件,如下图:
prometheus.yml 文件配置参考
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
    - targets: ['prometheus_ip:9090']

  - job_name: 'pushgateway'
    static_configs:
    - targets: ['pushgateway_ip:9091']
      labels:
        instance: pushgateway

  - job_name: 'opgs_report'
    static_configs:
    - targets: ['opgs_report:9187']
      labels:
        instance: opgs_report
 
#重新启动prometheus

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

通过grafana可视化展现

granfana安装教程

网访问prometheus_ip:3000
初始用户名密码均为admin

数据配置
在这里插入图片描述

可以自行导入配置
在这里插入图片描述
选择import选项
在这里插入图片描述

将json文件复制粘贴导入即可

最终效果图
在这里插入图片描述

在这里插入图片描述

参考资料

原网站

版权声明
本文为[Xavier丶]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_50935486/article/details/126241146