Prometheus -- 05 -- Prometheus+Grafana搭建MySQL监控

原文链接:Prometheus – 05 – Prometheus+Grafana搭建MySQL监控


相关文章:


安装好 Prometheus 后,我们还需要安装 Exporter (用于抓取数据) 和 Grafana (用于可视化数据),进而才能搭建起一套可视化的监控系统;在此之前,我们先来了解两个概念 Exporter 和 Grafana

  • Exporter

    • Exporter 是 Prometheus 的一类数据采集组件的总称,它负责从目标处搜集数据,并将其转换为 Prometheus 支持的格式;与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取

    • Prometheus 提供多种类型的 Exporter 用于采集各种不同服务的运行状态,目前支持的有数据库、硬件、消息中简介、存储系统、HTTP 服务器等,另外也可以进行自定义开发

    • 我们可以基于 Prometheus 提供的 Client Libraries 创建自己的 Exporter 程序,目前 Promthues 官方提供了对以下编程语言的支持:Go、Java/Scala、Python、Ruby,同时还有第三方实现的如:Bash、C++、Common Lisp、Erlang,、Haskeel、Lua、Node.js、PHP、Rust 等

  • Grafana

    • Grafana 是一个开源的度量分析和可视化套件,通过访问数据源来展示图表、报表等,大都使用在时序数据方面的监控

    • Grafana 支持许多不同的数据源,例如:Graphite、InfluxDB、OpenTSDB、Prometheus、Elasticsearch、CloudWatch、KairosDB 等


一、创建 mysql 用户名密码

  • 由于使用 mysqld_exporter 服务,需要使用用户名和密码连接 mysql 服务,因此我们可以单独创建一个用户,用于监控服务

    • create user ‘exporter’@‘localhost’ identified by ‘exporter’ with MAX_USER_CONNECTIONS 3;

    • grant process, replication client, select on *.* to ‘exporter’@‘localhost’;

    • flush privileges;


二、安装 mysqld_exporter

  • 上 Prometheus 官网下载最新的 mysqld_exporter

    • cd /usr/local/prometheus

    • wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz

    • tar -zxvf mysqld_exporter-0.12.1.linux-amd64.tar.gz

    • rm -rf mysqld_exporter-0.12.1.linux-amd64.tar.gz

  • 添加配置文件,设置 mysql 的连接信息

    • cd /usr/local/prometheus/mysqld_exporter-0.12.1.linux-amd64

    • vim .my.cnf

      [client]
      user=exporter
      password=exporter
      
    • :wq

  • 编写 prometheus-mysql.service 文件

    • vim /lib/systemd/system/prometheus-mysql.service

      [Unit]
      Description=Prometheus Mysql
      After=network.target prometheus.service
      
      [Service]
      Type=simple
      ExecStart=/usr/local/prometheus/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/usr/local/prometheus/mysqld_exporter-0.12.1.linux-amd64/.my.cnf --web.listen-address=0.0.0.0:9104
      
      [Install]
      WantedBy=multi-user.target
      
    • :wq

  • 将 mysqld_exporter 服务设为开机自启并启动

    • systemctl daemon-reload

    • systemctl enable prometheus-mysql.service

    • systemctl start prometheus-mysql.service

  • 查看 mysqld_exporter 服务 (默认端口为: 9104)

    在这里插入图片描述

    在这里插入图片描述


三、添加 mysqld_exporter

  • 安装好 mysqld_exporter 后,我们需要在 Prometheus 中对其进行集成

  • 修改 Prometheus 的配置文件 (prometheus.yml),添加 mysql 服务 (在 scrape_configs 属性下添加)

    • cd /usr/local/prometheus/prometheus-2.17.1.linux-amd64

    • vim 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: ['localhost:9090']
      
        - job_name: 'mysql'
          static_configs:
          - targets: ['localhost:9104']
      
    • :wq

  • 重启 prometheus 服务

    • systemctl restart prometheus.service
  • 查看 Prometheus 服务 (默认端口为: 9090)

    在这里插入图片描述

    • 如上所示,当 State 状态显示为 UP 时,则说明 mysqld_exporter 服务已经集成进来了

四、安装 Grafana

  • 直接使用 Prometheus 对服务进行监控,不是很直观,这时候 Grafana 就派上用场了

  • 上 Grafana 官网下载最新的 Grafana

    • cd /usr/local/prometheus

    • wget https://dl.grafana.com/oss/release/grafana-6.7.2.linux-amd64.tar.gz

    • tar -zxvf grafana-6.7.2.linux-amd64.tar.gz

    • rm -rf grafana-6.7.2.linux-amd64.tar.gz

  • 编写 grafana.service 文件

    • vim /lib/systemd/system/grafana.service

      [Unit]
      Description=Grafana
      After=network.target
      
      [Service]
      Type=simple
      ExecStart=/usr/local/prometheus/grafana-6.7.2/bin/grafana-server --config /usr/local/prometheus/grafana-6.7.2/conf/defaults.ini --homepath /usr/local/prometheus/grafana-6.7.2
      
      [Install]
      WantedBy=multi-user.target
      
    • :wq

  • 将 grafana 服务设为开机自启并启动

    • systemctl daemon-reload

    • systemctl enable grafana.service

    • systemctl start grafana.service

  • 查看 Grafana 服务 (默认端口为: 3000,默认账号密码为: admin/admin)

    在这里插入图片描述


五、添加 Datasource

  • Grafana 支持多种数据源,这里我们选择 Prometheus

    在这里插入图片描述


六、添加 Dashboard

  • 有关 mysql 的 Dashboard 有很多,可以是自定义的,也可以从 Grafana 官网的 Dashboard 库中查找

  • 这里我使用的是 GitHub 上一个定义好的 Dashboard --> MySQL_Overview.json,下载好后,通过页面上的 Upload .json file 按钮上传导入即可

    在这里插入图片描述


七、查看图表

  • 至此,我们就大功告成了

    在这里插入图片描述


八、参考资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、prometheus简介 Prometheus是一个开源的系统监控和告警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF维护管理的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控prometheus支持多种exporter采集数据,还支持通过pushgateway进行数据上报,Prometheus再性能上可支撑上万台规模的集群。 二、prometheus架构图 三、prometheus组件介绍 1.Prometheus Server: 用于收集和存储时间序列数据。 2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。 3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端 4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。 5.Grafana监控仪表盘 6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。 四、课程亮点 五、效果图展示 六、讲师简介 先超(lucky):高级运维工程师、资深DevOps工程师,在互联网上市公司拥有多年一线运维经验,主导过亿级pv项目的架构设计和运维工作 主要研究方向: 1.云计算方向:容器 (kubernetes、docker),虚拟化(kvm、Vmware vSphere),微服务(istio),PaaS(openshift),IaaS(openstack)等2.系统/运维方向:linux系统下的常用组件(nginx,tomcat,elasticsearch,zookeeper,kafka等),DevOps(Jenkins+gitlab+sonarqube+nexus+k8s),CI/CD,监控(zabbix、prometheus、falcon)等 七、课程大纲

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值