广告
返回顶部
首页 > 资讯 > 数据库 >如何构建MySQL监控平台
  • 777
分享到

如何构建MySQL监控平台

2024-04-02 19:04:59 777人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关如何构建Mysql监控平台,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。prometheus+grafana 对于现在这个时间点来说,相信很多

这篇文章将为大家详细讲解有关如何构建Mysql监控平台,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

prometheus+grafana 对于现在这个时间点来说,相信很多同行都应该已经开始玩起来了,当仍然可能有一部分人可能还不知道prometheus+grafana 的存在,也可能还有一部分人虽然知道它的存在,但却懒于动手,如果是这样,那后面的内容你可得打起精神来了,因为可能你会被grafana炫酷的视觉效果惊艳到。

让我们一起了解一下吧。

首先,简单介绍下prometheus+grafana 这对鸳鸯到底是什么:

prometheus 是由 SoundCloud 开发开源监控报警系统和时序列数据库(TSDB),prometheus是一个监控采集与数据存储框架(监控server端),具体采集什么数据依赖于具体的exporter(监控client端),例如:采集mysql的数据需要使用到mysql_exporter,prometheus调用mysql_expoter采集到mysql的监控指标之后,把mysql_exporter采集到的数据存放到prometheus所在服务器的磁盘数据文件中保存。它的各个组件基本都是用 golang 编写,对编译和部署十分友好.并且没有特殊依赖,基本都是独立工作。以下是prometheus架构图(图片来源:https://prometheus.io/docs/introduction/overview/) 

如何构建MySQL监控平台

grafana是一个高颜值的监控绘图程序,也是一个可视化面板(Dashboard),grafana的厉害之处除了高颜值,还支持多种数据源(支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源)、支持灵活丰富的dashboard配置选项(例如:可以把多个实例的相同采集项配置在一个展示框里),使得相较于其他开源监控系统来说更易用性,学习成本更低。从视觉上来说,比以往的任何开源的监控系统都看起来要养眼很多,下面先看两张监控效果图: 

如何构建MySQL监控平台

如何构建MySQL监控平台

相信审美还算正常的人都不会说上面两张图很丑吧,那么问题来了,我们该如何玩起来呢?下面就简单为大家介绍如何快速搭建起来!

这里方便演示过程,我们准备了如下两台测试服务器

  • prometheus+grafana server端主机:10.10.30.165

  • MySQL 客户端主机:10.10.20.14

1、安装prometheus

1.1. 下载安装包

对于prometheus,假设我们需要监控MySQL,那么我们需要下载至少3个组件,如下:

  • prometheus程序包

  • node_exporter:监控主机磁盘、内存、CPU等硬件性能指标的采集程序包

  • mysql_exporter: 监控mysql各种性能指标的采集程序包

下载链接(该页面始终只有一个最新版本):Https://prometheus.io/download/

  • 下载prometheus 

如何构建MySQL监控平台

  • 下载node_exporter 

如何构建MySQL监控平台

  • 下载mysqld_exporter 

如何构建MySQL监控平台

  • PS:如果你还需要配置监控告警,需要下载alertmanager程序包 

如何构建MySQL监控平台

1.2. 解压程序包

解压prometheus

[root@localhost ~]# mkdir /data
[root@localhost ~]# tar xvf prometheus-2.1.0.linux-amd64.tar.gz -C /data/

   解压exporter:由于prometheus主机自身也需要监控,所以也至少需要解压node_exporter包

[root@localhost ~]# tar xf node_exporter-0.15.2.linux-amd64.tar -C /root/
# 如果需要监控mysql,则继续解压mysql_exporter
[root@localhost ~]# tar xf mysqld_exporter-0.10.0.linux-amd64.tar  -C /root/
1.3. 启动prometheus

进入prometheus的工作目录

[root@localhost ~]# cd /data/
[root@localhost data]# mv prometheus-2.1.0.linux-amd64/ prometheus
[root@localhost ~]# cd /data/prometheus

    配置 prometheus.yml配置文件

[root@localhost data]# cat prometheus.yml 
# my global config
global:
scrape_interval:    15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
- file_sd_configs:
- files:
- host.yml
job_name: Host
metrics_path: /metrics
relabel_configs:
- source_labels: [__address__]
regex: (.*)
target_label: instance
replacement: $1
- source_labels: [__address__]
regex: (.*)
target_label: __address__
replacement: $1:9100
- file_sd_configs:
files:
- mysql.yml
job_name: MySQL
metrics_path: /metrics
relabel_configs:
- source_labels: [__address__]
regex: (.*)
target_label: instance
replacement: $1
- source_labels: [__address__]
regex: (.*)
target_label: __address__
replacement: $1:9104
- job_name: prometheus
static_configs:
- targets:
- localhost:9090

 启动prometheus进程,30d表示prometheus只保留30天以内的数据

[root@localhost prometheus]# /data/prometheus/prometheus  --storage.tsdb.retention=30d &

如果是7.x系统,可以按照如下方式配置service启动脚本

# 修改WorkingDirectory参数为你的prometheus的工作目录
[root@localhost prometheus]# cat /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus instance
Wants=network-online.target
After=network-online.target
After=postgresql.service mariadb.service mysql.service
[Service]
User=root
Group=root
Type=simple
Restart=on-failure
WorkingDirectory=/data/prometheus/
RuntimeDirectory=prometheus
RuntimeDirectoryMode=0750
ExecStart=/data/prometheus/prometheus  --storage.tsdb.retention=30d --config.file=/data/prometheus/prometheus.yml
LimitNOFILE=10000
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target

PS:prometheus默认的WEB访问端口为9090,可以使用如下地址访问http://10.10.30.165:9090

2、安装grafana

前面说过,grafana是一个出图展示框架,grafana根据grafana-dashboards来进行展示,grafana-dashboards就类似于grafana的出图配置文件,根据在grafana-dashboards中的定义来确定在页面中需要展示什么指标,需要如何展示等,需要分别对这两个组件进行下载与安装。

2.1. 下载安装包

对于grafana来说,需要下载一个程序包,一个grafana-dashboards包

下载链接

grafana程序包:https://grafana.com/grafana/download 

如何构建MySQL监控平台

grafana-dashboards包:https://GitHub.com/percona/grafana-dashboards/releases 

如何构建MySQL监控平台

2.2. 解压程序包

解压grafana

[root@localhost ~]# tar xf grafana-4.6.3.linux-x64.tar.gz -C /data/prometheus/
[root@localhost ~]# cd /data/prometheus
[root@localhost prometheus]# mv grafana-4.6.3/ grafana
2.3. 启动grafana

进入grafana工作目录,并启动

[root@localhost ]# cd /data/prometheus/grafana
[root@localhost ]# ./bin/grafana-server

如果是7.x系统,可以按照如下方式配置service启动脚本

[root@localhost service]# cat /usr/lib/systemd/system/grafana-server.service
[Unit]
Description=Grafana instance
Documentation=http://docs.grafana.org
Wants=network-online.target
After=network-online.target
After=postgresql.service mariadb.service mysql.service
[Service]
User=root
Group=root
Type=simple
Restart=on-failure
WorkingDirectory=/data/prometheus/grafana
RuntimeDirectory=grafana
RuntimeDirectoryMode=0750
ExecStart=/data/prometheus/grafana/bin/grafana-server
LimitNOFILE=10000
TimeoutStopSec=20
[Install]
WantedBy=multi-user.target

打开grafana页面(默认帐号和密码:admin/admin,默认的端口为3000,通过地址:http://10.10.30.165:3000 访问),配置数据来源。

如何构建MySQL监控平台

指定prometheus地址,这里我们把grafana装在了同一台机器,直接使用127.0.0.1的地址配置即可,如下图 

如何构建MySQL监控平台

如何构建MySQL监控平台

2.4. 在grafana中导入grafana-dashboards

解压grafana-dashboards包,该包中提供了大量的JSON格式文件的grafana dashboards,根据需要自行选择,我们这里需要监控主机和MySQL,就选择如下一些json文件。

[root@localhost ~]# tar xvf grafana-dashboards-1.6.1.tar.gz 
[root@localhost ~]# cd grafana-dashboards-1.6.1
[root@localhost grafana-dashboards-1.6.1]# updatedb 
[root@localhost grafana-dashboards-1.6.1]# locate json |grep dashboards/
............
/root/grafana-dashboards-1.6.1/dashboards/CPU_Utilization_Details_Cores.json
/root/grafana-dashboards-1.6.1/dashboards/Disk_PerfORMance.json
/root/grafana-dashboards-1.6.1/dashboards/Disk_Space.json
............
/root/grafana-dashboards-1.6.1/dashboards/MySQL_InnoDB_Metrics.json
/root/grafana-dashboards-1.6.1/dashboards/MySQL_InnoDB_Metrics_Advanced.json
............
/root/grafana-dashboards-1.6.1/dashboards/MySQL_Overview.json
/root/grafana-dashboards-1.6.1/dashboards/MySQL_Performance_Schema.json
............
/root/grafana-dashboards-1.6.1/dashboards/MySQL_Replication.json
/root/grafana-dashboards-1.6.1/dashboards/MySQL_Table_Statistics.json
............
/root/grafana-dashboards-1.6.1/dashboards/Summary_Dashboard.json
/root/grafana-dashboards-1.6.1/dashboards/System_Overview.json
............

    在grafana页面中,导入需要的json文件 

如何构建MySQL监控平台

如何构建MySQL监控平台

如何构建MySQL监控平台

   在弹出的窗口中选择你需要导入的json文件

如何构建MySQL监控平台

然后,如果你的grafana中已经添加过主机,此时,就可以看到相应的json dashboard监控数据 

如何构建MySQL监控平台

至此,prometheus+grafana的基础架构(server端)已经搭建好了,现在,你可以去给他们添加监控节点了(client端)

3、监控节点部署

3.1. 添加主机监控

以添加prometheus主机(10.10.30.165)为例进行说明

解压exporter压缩包

[root@localhost ~]# tar xf node_exporter-0.15.2.linux-amd64.tar 
[root@localhost ~]# mv node_exporter-0.15.2.linux-amd64 node_exporter

 启动node_exporter程序

[root@localhost ~]# cd node_exporter
[root@localhost node_exporter]# nohup ./node_exporter &

配置prometheus主机监控配置列表文件,由于之前主配置文件prometheus.yml 中已经定义了监控主机的配置文件host.yml,这里只需要把主机IP信息填入即可动态生效

[root@localhost node_exporter]# cat /data/prometheus/host.yml
- labels:
service: test
targets:
- 10.10.30.165

然后,在grafana页面中就可以看到你配置的主机

如何构建MySQL监控平台

PS:如果该文件中已经配置过lables且不需要使用独立的service标签进行标记,则新添加的实例的IP可以直接放在同一个targets下,如下:

[root@localhost mysqld_exporter]# cat /data/prometheus/host.yml
- labels:
service: test
targets:
- 10.10.30.165
- 10.10.20.14
3.2. 添加MySQL监控

添加MySQL监控主机,这里以添加10.10.20.14为例进行说明

解压exporter压缩包

[root@localhost ~]# tar xf mysqld_exporter-0.10.0.linux-amd64.tar 
[root@localhost ~]# mv mysqld_exporter-0.10.0.linux-amd64 mysqld_exporter

配置监控数据库需要的主机IP、数据库端口、数据库账号和密码的环境变量(注意:该账号需要单独创建,需要对所有库所有表至少具有PROCESS, REPLICATION CLIENT, SELECT权限)

[root@luoxiaobo-01 ~]# export DATA_SOURCE_NAME='admin:password@(10.10.20.14:3306)/'
[root@luoxiaobo-01 ~]# echo "export DATA_SOURCE_NAME='admin:password@(10.10.20.14:3306)/'" >> /etc/profile

启动exporter

# 由于目前最新的版本默认关闭了大量的mysql采集项,需要显式使用相应的选项开启(截止到写稿时间,最新的开发版本可以通过prometheus端的配置项让exporter端生效,而无需再exporter中使用大量的启动选项开启)
[root@localhost ~]# cd mysqld_exporter
[root@localhost mysqld_exporter]# nohup ./mysqld_exporter --collect.info_schema.processlist --collect.info_schema.innodb_tablespaces --collect.info_schema.innodb_metrics  --collect.perf_schema.tableiowaits --collect.perf_schema.indexiowaits --collect.perf_schema.tablelocks --collect.engine_innodb_status --collect.perf_schema.file_events --collect.info_schema.processlist --collect.binlog_size --collect.info_schema.clientstats --collect.perf_schema.eventswaits &

配置prometheus MySQL监控配置列表文件,由于之前主配置文件prometheus.yml 中已经定义了监控主机的配置文件mysql.yml,这里只需要把主机IP信息填入即可动态生效

[root@localhost mysqld_exporter]# cat /data/prometheus/host.yml
- labels:
service: test
targets:
- 10.10.30.165
- 10.10.20.14

然后,在grafana页面中就可以看到你配置的MySQL实例 

如何构建MySQL监控平台

PS:如果该文件中已经配置过lables且不需要使用独立的service标签进行标记,则新添加的实例的IP可以直接放在同一个targets下,如下:

[root@localhost mysqld_exporter]# cat /data/prometheus/mysql.yml
- labels:
service: test
targets:
- 10.10.30.165
- 10.10.20.14
3.3. grafana页面dashboard切换

根据需要切换监控模板 

如何构建MySQL监控平台

如何构建MySQL监控平台

然后,就能看到你想要的数据 

如何构建MySQL监控平台

关于“如何构建MySQL监控平台”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 如何构建MySQL监控平台

本文链接: https://www.lsjlt.com/news/62655.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何构建MySQL监控平台
    这篇文章将为大家详细讲解有关如何构建MySQL监控平台,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。prometheus+grafana 对于现在这个时间点来说,相信很多...
    99+
    2022-10-18
  • 5分钟搭建MySQL监控平台(mysql-exporter+Prometheus+Grafana)
      一、工具介绍 Prometheus:   普罗米修斯可以简单理解为一个监控工具,以时间为单位展示指定数据维度的变化 趋势。 mysqld_exporter :主要是依赖数据采集器,对于mysql数据采集使用的是mysqld_...
    99+
    2023-09-16
    prometheus grafana
  • kubernetes集群如何搭建Zabbix监控平台
    本篇内容介绍了“kubernetes集群如何搭建Zabbix监控平台”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、zabbix介绍1.z...
    99+
    2023-07-02
  • Grafana + Prometheus如何快速搭建监控平台
    小编给大家分享一下Grafana + Prometheus如何快速搭建监控平台,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!总体可视化方案Grafana:通过将采...
    99+
    2023-06-15
  • 如何构建LAMP平台:Apache,MySQL,PHP
    如何构建LAMP平台:Apache,MySQL,PHP 一、Apache网站服务:1. Apache的起源(多系统兼容):2.重要特点:3.软件版本:4.编译安装呢http服务器: 二、L...
    99+
    2023-09-18
    apache php mysql 数据库 云计算
  • 如何构建LAMP平台
    小编给大家分享一下如何构建LAMP平台,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  一、搭建httpd。1编辑IP...
    99+
    2022-10-19
  • Cacti+Nagios监控平台如何整合
    这篇文章主要为大家展示了“Cacti+Nagios监控平台如何整合”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Cacti+Nagios监控平台如何整合”这篇文章吧。一、Cacti安装部署作为一...
    99+
    2023-06-04
  • MAUI中实现构建跨平台原生控件
    简介 MAUI中使用Handler体系来处理不同平台的原生控件实现, 即对应的, 如果我们想要创建控件, 只需要创建基于不同平台的Handler即可。 那么下面主要教大家如何通过创建...
    99+
    2022-11-13
  • Spring Boot Admin如何快速打造监控平台
    这篇文章将为大家详细讲解有关Spring Boot Admin如何快速打造监控平台,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用过Spring  boot的开发者都知道actuator,它是...
    99+
    2023-06-15
  • kubernetes集群搭建Zabbix监控平台的详细过程
    目录一、zabbix介绍1.zabbix简介2.zabbix特点3.zabbix的主要功能4.zabbix架构图二、检查本地k8s环境1.检查系统pod运行状态2.检查node节点状...
    99+
    2022-11-13
  • docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台
    这篇文章主要介绍“docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台”,在日常操作中,相信很多人在docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台问题上存在疑惑,...
    99+
    2023-06-20
  • zabbix详解:(一)使用docker搭建安装zabbix3.2监控平台
    docker是什么,还有怎么用,请看我另一篇博客,希望你们看懂了,然后还能用得上.至于zabbix,应该是挺出名的服务器监控软件了,简单灵活而又智能化,还能调用API,比起我以前用的nagios感觉还简单一...
    99+
    2022-10-18
  • HDFS如何构建Hadoop监控共同体
    这篇文章主要介绍了HDFS如何构建Hadoop监控共同体,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HDFS监控挑战HDFS是Hadoop生态的一部分,监控方案不仅需适用H...
    99+
    2023-06-02
  • 如何为Linux ARM设备构建跨平台UI
    这篇文章给大家分享的是有关如何为Linux ARM设备构建跨平台UI的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。AndroidXML 和 TotalCross 的运用为树莓派和其他设备创建 UI 提供了更简单的...
    99+
    2023-06-15
  • 宜信智能监控平台建设实践|宜信技术沙龙
    【宜信技术沙龙】是由宜信技术学院主办的系列技术分享活动,活动包括线上和线下两种形式,每期技术沙龙都将邀请宜信及其他互联网公司的技术专家分享来自一线的实践经验,分享内容覆盖金融科技及软件研发等主要技术领域,旨在为金融科技行业提供可落地实践的解...
    99+
    2023-06-04
  • 鹅厂如何构建大型基础网络平台
    本文转载自微信公众号“ 鹅厂网事”(ID:tencent_network),作者:黄翔。      鹅厂是一个业务类型非常丰富的互联网公司,涵盖了大型社交流量平台(微信/QQ)、在线游戏、公...
    99+
    2023-06-04
  • 基于PHP如何实现微博热搜实时监控平台
    本文小编为大家详细介绍“基于PHP如何实现微博热搜实时监控平台”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于PHP如何实现微博热搜实时监控平台”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、整体思路对于搜...
    99+
    2023-07-02
  • LEMP平台如何搭建
    这篇文章主要为大家展示了“LEMP平台如何搭建”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“LEMP平台如何搭建”这篇文章吧。说明:我这里用到的系统为cento...
    99+
    2022-10-19
  • 如何监控MySQL
    这篇文章给大家分享的是有关如何监控MySQL的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 show global statusmysqladmin ...
    99+
    2022-10-18
  • docker环境搭建JMeter+Grafana+influxdb可视化性能监控平台的教程
    目录1、安装docker2、安装及配置influxDB3、Grafana安装及配置4、Jmeter配置及压测一个接口背景: 在用jmeter压测接口的时候发现其原生的监控起来不是很...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作