上一篇学习了使用java client向prometheus写入数据,但更多时候,我们希望借助prometheus来监控一些标准中间件,比如mysql、haproxy等等。本篇将以mysql为例,学习如何利用exporter来监控其核心指标。(注:以下均为mac环境)

一、下载mysql exporter
要监控某个对象,首先得拿到被监控对象的指标数据,这就要借助各种exporter,它的主要作用就是把核心指标数据暴露出来,这样监控系统才能获取到相应数据。

prometheus自带了很多exporter, mysqld_exporter 就是专用于暴露mysql各种指标的插件。

下载地址:https://prometheus.io/download/#mysqld_exporter,下载到本地然后解压即可,假设下载解压后的目录名为:/Users/jimmy/Downloads/mysqld_exporter-0.12.1.darwin-386

二、配置exporter
连接mysql需要用户名、密码,所以下载之后,首先要创建配置文件,把用户名、密码以及mysql服务器地址,这些基本信息填写进去。
在mysqld_exporter的目录下,创建一个.my.cnf的文件,内容参考下面的内容:

[client]
host=127.0.0.1
port=3306
user=exporter
password=exporter123

配置很简单,一看就明白,当然,如果mysql中没有exporter这个用户名,需要提前创建,参考以下命令:

GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost' IDENTIFIED BY 'exporter123' WITH MAX_USER_CONNECTIONS 3;

flush privileges;

密码:exporter123可以根据需要更改,尽量复杂些,保证安全。

三、启动exporter
在mysqld_exporter的解压目录下,输入

./mysqld_exporter --config.my-cnf=/Users/jimmy/Downloads/mysqld_exporter-0.12.1.darwin-386/.my.cnf

--config.my-cnf的配置文件路径,大家根据自己的情况,做相应调整。

➜ mysqld_exporter-0.12.1.darwin-386 ./mysqld_exporter --config.my-cnf=/Users/jimmy/Downloads/mysqld_exporter-0.12.1.darwin-386/.my.cnf
INFO[0000] Starting mysqld_exporter (version=0.12.1, branch=HEAD, revision=48667bf7c3b438b5e93b259f3d17b70a7c9aff96) source="mysqld_exporter.go:257"
INFO[0000] Build context (go=go1.12.7, user=root@0b3e56a7bc0a, date=20190729-12:37:01) source="mysqld_exporter.go:258"
INFO[0000] Enabled scrapers: source="mysqld_exporter.go:269"
INFO[0000] --collect.global_status source="mysqld_exporter.go:273"
INFO[0000] --collect.global_variables source="mysqld_exporter.go:273"
INFO[0000] --collect.slave_status source="mysqld_exporter.go:273"
INFO[0000] --collect.info_schema.innodb_cmp source="mysqld_exporter.go:273"
INFO[0000] --collect.info_schema.innodb_cmpmem source="mysqld_exporter.go:273"
INFO[0000] --collect.info_schema.query_response_time source="mysqld_exporter.go:273"
INFO[0000] Listening on :9104 source="mysqld_exporter.go:283"

启动完成后,会看到类似上面的输出,注意最后一行,表示将在9104这个端口上,启动mysql监听, 可以浏览 http://localhost:9104/metrics 验证是否有数据输出,如果看到类似下面的输出,表示工作正常。

四、配置prometheus
mysqld_exporter启动后,prometheus怎么知道它的存在呢? 这就要修改prometheus的配置文件:prometheus.yml ,该文件默认在 /usr/local/etc/ 目录下。

scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["localhost:9090"]
- job_name: "push-metrics"
static_configs:
- targets: ["localhost:9091"]
- job_name: "mysql"
static_configs:
- targets: ["localhost:9104"]
honor_labels: true

文件的结构大致说一下,scrape_config节点下,有一堆job_name,prometheus就是通过配置各种job来获取监控数据的。参考上面的内容,在最后添加mysql的job即可。

添加完成后,需要重启prometheus, 重启完成后,即可看到mysql开头的各种数据。

五、grafana导入mysql模板

有了mysql的各种指标,就可以在grafana里配置监控图表了,当然可以手动一项项指标自己添加,但是这样效率太低了,对于mysql这种标准的中间件而言,grafana官网已经有很多现成的图表模板,可以直接拿来用,如下图:

在grafana中,点击import

输入mysql dashboard模板地址: https://grafana.com/grafana/dashboards/11323

加载成功后,会出现下图:

注意要选择Prometheus(参考上图),点击import ,大功告成!

注:如果导入错误了,想要删除,可参考下图操作

prometheus学习笔记(3)-使用exporter监控mysql的更多相关文章

  1. zabbix4.2学习笔记--安装percona插件监控MySQL

    percona-monitoring-plugins是percona专门为MySQL监控的工具,支持Nagios,cacti,zabibx,本文主要介绍percona-monitoring-plugi ...

  2. 【Prometheus学习笔记】主机监控 -node_exporter

    Exporter for machine metrics prometheus/node_exporter 安装 Prometheus sudo tar -zxvf prometheus-*.tar. ...

  3. Prometheus学习笔记(7)PromQL玩法入门

    目录 1.什么是PromQL??? 2.如何查询??? 1.什么是PromQL??? PromQL是Prometheus内置的数据查询语言,其提供对时间序列数据丰富的查询,聚合以及逻辑运算能力的支持. ...

  4. Prometheus学习笔记(1)Prometheus架构简介

    Prometheus简介和架构 Prometheus 是由 SoundCloud 开源监控告警解决方案.架构图如下: 如上图,Prometheus主要由以下部分组成: Prometheus Serve ...

  5. Prometheus学习笔记(6)Alertmanager告警

    目录 一.Alertmanager简介 二.Alertmanager部署 三.Alertmanager配置 四.自定义告警规则和发送 五.自定义告警模板 一.Alertmanager简介 Promet ...

  6. Prometheus学习笔记之教程推荐

    最近学习K8S和基于容器的监控,发现了如下的教程质量不错,记录下来以备参考 K8S最佳实战(包括了K8S的Prometheus监控和EFK日志搜集) https://jimmysong.io/kube ...

  7. Nodejs学习笔记(一)--- 操作Mysql数据库

    对于一门语言的学习,我个人觉得最好的方式就是通过一个项目来展示,所以从基本的一些模块去了解是最好的方式对于Mysql怎么去链接数据库这个我是在网上找到的(其实一直想找官方文档的,发现没有它的踪迹,(后 ...

  8. zabbix4.2学习笔记--用自带的mysql监控模块

    这里演示监控zabbix本身用到的mysql 第一步:建立mysql监控用户 在生产环境中,出于安全考虑,建议监控客户端数据库时,单独配置一个查询权限用户做查询操作即可 # 撤掉安装时给予的分配单个数 ...

  9. Prometheus学习笔记(5)Grafana可视化展示

    目录 一.Grafana安装和启动 二.配置数据源 三.配置dashboard 四.配置grafana告警 一.Grafana安装和启动 Grafana支持查询Prometheus.从Grafana ...

  10. Prometheus学习笔记(4)什么是pushgateway???

    目录 一.pushgateway介绍 二.pushgateway的安装运行和配置 三.自定义脚本发送pushgateway 四.使用pushgateway的优缺点 一.pushgateway介绍 pu ...

随机推荐

  1. <HarmonyOS第一课08>保存应用数据

    视频链接: https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717498132814493 ?ha_so ...

  2. Java System.arraycopy实现数组拷贝

    在看ArrayList源码的时候发现用到了System.arraycopy方法. line 544 private void fastRemove(int index) { modCount++; i ...

  3. K8s进阶之Deployment的更新&回滚

    更新概述 更新指的是对 Deployment 所管理应用的配置.镜像版本等进行修改并应用到集群中的过程.通过更新 Deployment,你能够实现应用功能的升级.修复漏洞.调整资源分配等操作. 更新触 ...

  4. 历数java虚拟机GC的种种缺点

    Java通过垃圾收集器(Garbage Collection,简称GC)实现自动内存管理,这样可有效减轻Java应用开发人员的负担,也避免了更多内存泄露的风险. 如果你用过C++等需要手动管理内存的语 ...

  5. Python基础 - 常用内置对象

    数字.字符串.字节串.列表.元组.字典.集合.布尔型.空类型.异常.文件.可迭代对象.编程单元def.class.module 常量与变量 x = 3 type(x) # 查看变量类型 int typ ...

  6. 第9讲、深入理解Scaled Dot-Product Attention

    Scaled Dot-Product Attention是Transformer架构的核心组件,也是现代深度学习中最重要的注意力机制之一.本文将从原理.实现和应用三个方面深入剖析这一机制. 1. 基本 ...

  7. 第1讲、#PyTorch教学环境搭建与Tensor基础操作详解

    引言 PyTorch是当前深度学习领域最流行的框架之一,因其动态计算图和直观的API而备受开发者青睐.本文将从零开始介绍PyTorch的环境搭建与基础操作,适合各种平台的用户和深度学习初学者. 1. ...

  8. VSCode将本地项目代码上传到gitee中

    1.创建远程仓库,这个就是该仓库的地址   2.查看git的版本 git --version 3.使用git init命令初始化git 4.使用git status命令来查看文件是否被修改  : gi ...

  9. Spring Boot 使用Apollo动态调整日志级别

    摘要:在Spring Boot 项目中,借助Apollo动态修改配置的能力,结合Logback修改日志级别打印执行的SQL脚本. 综述   在生产环境偶现测试环境未发现的SQL查询BUG,但由于线上关 ...

  10. 浅谈Java异常处理机制

    前言   在 Java 中,异常被当作对象来处理,所有的异常都有一个共同的祖先java.lang.Throwable类.Throwable有两个重要的子类Exception(异常) 和 Error(错 ...