首页 > 数据库 >prometheus+grafana 监控mysql数据库

prometheus+grafana 监控mysql数据库

时间:2024-05-11 13:57:41浏览次数:14  
标签:exporter labels grafana prometheus mysqld mysql rancher root

一:安装插件
1.1 下载mysqld_exporter
mysqld_exporter 是一个用于监控 MySQL 服务器的开源工具,它是由 Prometheus 社区维护的一个官方 Exporter。该工具通过连接到 MySQL 服务器并执行各种查询来
收集关于 MySQL 服务器性能和状态的指标,并将这些指标暴露给 Prometheus 监控系统。
在https://github.com/prometheus/mysqld_exporter/releases/tag/v0.15.1 下载mysqld_exporter-0.15.1.linux-amd64.tar.gz安装包

1.2 安装mysqld_exporter
将mysqld_exporter-0.15.1.linux-amd64.tar.gz安装包上传到mysqlf服务器/usr/local 目录下

[root@rancher local]# tar xvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
[root@rancher local]# mv mysqld_exporter-0.15.1.linux-amd64 mysqld_exporter
[root@rancher local]# cd mysqld_exporter/
[root@rancher mysqld_exporter]# vim .my.conf   ##配置数据库连接密码
[client]
user=root
password=Root

[root@rancher mysqld_exporter]# vim /usr/lib/systemd/system/mysqld_exporter.service    ##配置systemctl 启动
[Unit]
Description=mysqld_exporter
After=network.target

[Service]
User=root
Type=simple
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.conf --collect.info_schema.processlist --web.listen-address=0.0.0.0:9104

Restart=on-failure

[Install]
WantedBy=multi-user.targe

[root@rancher mysqld_exporter]# systemctl start mysqld_exporter.service     ##启动mysqld_exporter服务
[root@rancher mysqld_exporter]# systemctl enable mysqld_exporter.service    ##配置mysqld_exporter开机自启

使用浏览器访问http://10.12.121.198:9104/metrics  就能看到数据了

 

1.3 prometheus添加配置

[root@rancher mysqld_exporter]# cd /data/prometheus/
[root@rancher prometheus]# vim prometheus.yml ## job_name 后面添加
  - job_name: 'mysqld'
    static_configs:
      - targets: ["10.12.121.198:9104"]
    relabel_configs:
    - source_labels: [__address__]
      regex: "([^:]+):\\d+"
      target_label: instance
[root@rancher prometheus]# systemctl reload prometheus  ##重新加载配置文件
访问http://10.12.121.198:9090/targets?search=&scrapePool=mysqld#pool-mysqld 查看,这样就成功了

1.4 配置prometheus告警规则

[root@rancher rules]# cd /data/prometheus/rules/      ##进入规则配置目录
[root@rancher rules]# vim mysql_rules.yml
groups:
- name: MySQL-rules
  rules:
#mysql状态检测
  - alert: MySQL Status
    expr: mysql_up == 0
    for: 10s
    labels:
      severity: warning
    annotations:
      summary: "{{ $labels.instance }} Mysql服务 !!!"
      description: "{{ $labels.instance }} Mysql服务不可用  请检查!"

#mysql主从IO线程停止时触发告警
  - alert: MySQL Slave IO Thread Status
    expr: mysql_slave_status_slave_io_running == 0
    for: 5s
    labels:
      severity: warning
    annotations:
      summary: "{{ $labels.instance }} Mysql从节点IO线程"
      description: "Mysql主从IO线程故障,请检测!"

#mysql主从sql线程停止时触发告警
  - alert: MySQL Slave SQL Thread Status
    expr: mysql_slave_status_slave_sql_running == 0
    for: 5s
    labels:
      severity: error
    annotations:
      summary: "{{$labels.instance}}: MySQL Slave SQL Thread has stop !!!"
      description: "检测MySQL主从SQL线程运行状态"

#mysql主从延时状态告警
  - alert: MySQL Slave Delay Status
    expr: mysql_slave_status_sql_delay == 30
    for: 5s
    labels:
      severity: warning
    annotations:
      summary: "{{$labels.instance}}: MySQL 主从延迟超过 30s !!!"
      description: "检测MySQL主从延时状态"

#mysql连接数告警
  - alert: Mysql_Too_Many_Connections
    expr: rate(mysql_global_status_threads_connected[5m]) > 200
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "{{$labels.instance}}: 连接数过多"
      description: "{{$labels.instance}}: 连接数过多,请处理 ,(current value is: {{ $value }})!"

 #mysql慢查询有点多告警
  - alert: Mysql_Too_Many_slow_queries
    expr: rate(mysql_global_status_slow_queries[5m]) > 3
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "{{$labels.instance}}: 慢查询有点多,请检查处理!"
      description: "{{$labels.instance}}: Mysql slow_queries is more than 3 per second ,(current value is: {{ $value }})"

 

[root@rancher rules]# systemctl reload prometheus.service   ##重新加载配置文件

到prometheus web 界面查看告警规则

 

1.5  配置granfan看板

登陆granfan web管理界面

仪表板——导入——选择11323 模版

 

 告警成功图

 

标签:exporter,labels,grafana,prometheus,mysqld,mysql,rancher,root
From: https://www.cnblogs.com/QIzhu/p/18186367

相关文章

  • Docker容器定时备份MySQL数据库
    1.系统环境mysql8、centos7.92.创建mysql_backup.sh文件#!/bin/bash#获取容器idcontainer_id=`/usr/bin/dockerps-aqf"name=mysql-8.0"`echo"mysql的镜像IDis$container_id"#登录用户名mysql_user="xxx"#登录密码(注意如果密码包含特殊符号前面要用'......
  • centOS8上安装Mysql 8.0.26
    1、Mysql官网下载RPM包wgethttps://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm2、检查是否已安装(强力卸载)foriin$(rpm-qa|grepmysql);dorpm-e$i--nodeps;donerm-rf/var/lib/mysql&&rm-rf/etc/my.cnf&&rm-rf/usr/share/mysql备注:可配合......
  • MySQL索引
    1、索引的概述索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。索引的作用就相当于书的目录。打个比方:我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。如果有目录了,我们只需要先去目录里查找字的位......
  • MySQL如何快速获取binlog的开始时间和结束时间
    之前写过一篇文章MySQL如何获取binlog的开始时间和结束时间[1],文章里面介绍了如何获取MySQL数据库二进制日志(binlog)的开始时间与结束时间的一些方法。实际应用当中,我们可能还会遇到效率/性能方面的问题。最近对这个问题做了一些研究,这里就介绍一下如何快速获取MySQL二进制日志(bi......
  • Prometheus 监控平台组件深度讲解
    Prometheus的重要性和流行度已经无需多言。直入主题,本文对Prometheus监控平台的各个组件做深度讲解,希望能帮助读者更好地理解Prometheus。监控系统的核心逻辑对于一套监控系统而言,核心就是采集数据并存储,然后做告警判定、数据展示分析,这个 专栏文章 详细讲解了这个数据流......
  • mysql Code: 1093. You can't specify target table for update in FROM clause
    执行如下sql会报错,大概是delete的where条件里面不能包含自身的表deletefromt_plan_newwhereplan2codeisnotnullandplan2versionisnotnulland(plan2code,plan2version)notin(selectplan2code,max(plan2version)fromt_plan_newgroupbyplan2code) 所以用临......
  • 故障分析 | TCP 缓存超负荷导致的 MySQL 连接中断
    1.背景在执行跑批任务的过程中,应用程序遇到了一个问题:部分任务的数据库连接会突然丢失,导致任务无法完成。从数据库的错误日志中,发现了 Abortedconnection 的信息,这说明客户端和服务器之间的通信被异常中断了。2.分析为了找出问题的原因,我们首先根据经验,分析了可能导致连接被......
  • FastApi-tortoise-jwt-mysql
    抽了半天时间学了一下fastapi,为了方便,代码没分结构。importsysimportjwtimportuvicorn,asyncio,signal,osfromfastapiimportFastAPI,HTTPException,Dependsfromfastapi.securityimportOAuth2PasswordBearer,OAuth2PasswordRequestFormfromtortoiseimportfie......
  • mysql tda 加密表
    对TDE加密的表解密,请执行如下命令:MySQL5.6  altertable<tablename>engine=innodb,block_format=default;MySQL5.7或8.0  altertable<tablename>encryption='N';......
  • Linux Debian12 部署MySql 并建立外部连接
    一.下载MySql下载最新软件包。也可以在命令界面下使用下载最新的发行包。wgethttps://repo.mysql.com/mysql-apt-config_0.8.29-1_all.deb下载完成后,使用命令进行安装dpkg-imysql-apt-config_0.8.29-1_all.deb执行完后会跳转到安装MySql配置界面​ TAB进行保......