前言:今天给大家带来的是企业级监控解决方案Promethus+Grafana,其中Promethus用作监控数据采集与处理,而Grafana只是用作数据展示,话不多说,直接开干吧,所有安装包都已放入网盘

一、Promethus简介

  1. Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由[SoundCloud](https://soundcloud.com/)公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。<br /> Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程。这样做非常适合虚拟化环境比如VM或者Docker 。<br />Prometheus应该是为数不多的适合Docker、Mesos、Kubernetes环境的监控系统之一。<br /> 输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等),具体支持的源看:[https://github.com/prometheus](https://github.com/prometheus)<br />与其他监控系统相比,Prometheus的主要特点是:
  • 一个多维数据模型(时间序列由指标名称定义和设置键/值尺寸)。

  • 非常高效的存储,平均一个采样数据占~3.5bytes左右,320万的时间序列,每30秒采样,保持60天,消耗磁盘大概228G。

  • 一种灵活的查询语言。

  • 不依赖分布式存储,单个服务器节点。

  • 时间集合通过HTTP上的PULL模型进行。

  • 通过中间网关支持推送时间。

  • 通过服务发现或静态配置发现目标。

  • 多种模式的图形和仪表板支持。

二、Promethus原理

【MySQL】企业级监控解决方案Promethus Grafana - 图1
基本原理就是这样:

  • exporter作为数据采集器部署在被监控端,暴露一个http接口给server端抓取数据

  • Promethus Server通过接口去每个exporter上抓取监控数据

  • 实际上也可以通过pushgateway将监控数据主动推送给服务端

  • 服务端存入监控数据,以K/V形式存储,并将报警推送给Alertmanager实现报警

三、安装Promethus

(1)服务端安装
1.安装go

  1. [root@db-monitor-01 data]# yum install go -y
  2. 已加载插件:fastestmirror, langpacks
  3. Loading mirror speeds from cached hostfile
  4. 软件包 golang-1.9.4-1.el7.x86_64 已安装并且是最新版本
  5. 无须任何处理
  6. [root@db-monitor-01 data]# go version
  7. go version go1.9.4 linux/amd64

2.上传解压安装包

  1. tar xvf prometheus-2.3.2.linux-amd64.tar.gz -C /usr/local/

3.建立连接

  1. ln -sv prometheus-2.3.2.linux-amd64 prometheus

4.配置文件

  1. scrape_configs:
  2. - job_name: prometheus
  3. static_configs:
  4. - targets: ['localhost:9090']
  5. labels:
  6. instance: prometheus
  7. - job_name: linux-cbpt
  8. static_configs:
  9. - targets: ['10.100.63.xxx:9100']
  10. labels:
  11. instance: MLF-master
  12. - targets: ['10.100.63.xxx:9100']
  13. labels:
  14. instance: MLF-slave1
  15. - targets: ['10.100.63.xxx:9100']
  16. labels:
  17. instance: MLF-slave2
  18. - job_name: linux-fzxt
  19. static_configs:
  20. - targets: ['10.100.63.xxx:9100']
  21. labels:
  22. instance: FUZHU-master
  23. - targets: ['10.100.63.xxx:9100']
  24. labels:
  25. instance: FUZHU-slave
  26. - job_name: mysql-cbpt
  27. static_configs:
  28. - targets: ['10.100.63.xxx:9104']
  29. labels:
  30. instance: MLF-master
  31. - targets: ['10.100.63.xxx:9104']
  32. labels:
  33. instance: MLF-slave1
  34. - targets: ['10.100.63.xxx:9104']
  35. labels:
  36. instance: MLF-slave2
  37. - job_name: mysql-fzxt
  38. static_configs:
  39. - targets: ['10.100.63.xxx:9104']
  40. labels:
  41. instance: FUZHU-master
  42. - targets: ['10.100.63.xxx:9104']
  43. labels:
  44. instance: FUZHU-slave

5.启动Promethus

  1. ./prometheus --config.file=prometheus.yml --storage.tsdb.path="/storage/data" --storage.tsdb.retention=30d
  • config.file:指定配置文件

  • storage.tsdb.path:指定监控数据存放目录

  • storage.tsdb.retention:指定保留30天监控数据

6.查看状态
登陆ip:9090可以看到promethus自带的web界面,可以自己写类SQL查询数据,点击status可以看到节点的exporter的状态
(2)exporter安装
1.上传解压安装包

  1. tar xvf mysqld_exporter-0.11.0.linux-amd64.tar.gz
  2. tar xvf node_exporter-0.16.0.linux-amd64.tar.gz
  3. mv node_exporter-0.16.0.linux-amd64 /usr/local/node_exporter
  4. mv mysqld_exporter-0.11.0.linux-amd64 /usr/local/mysqld_exporter

2.启动node_exporter
node_export主要采集系统层的监控数据

  1. /usr/local/node_exporter/node_exporter &

3.启动mysqld_exporter
mysqld_exporter主要采集mysql层的监控数据
3.1创建监控账号

  1. GRANT REPLICATION CLIENT,PROCESS,SELECT ON *.* TO 'mysql_monitor'@'localhost' identified by 'xxxxxx';

3.2创建配置文件

  1. vim /usr/local/mysqld_exporter/.my.cnf
  2. [client]
  3. user=mysql_monitor
  4. password=xxxxxx

3.3启动mysqld_exporter

  1. /usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf" &

4.web界面测试数据获取
【MySQL】企业级监控解决方案Promethus Grafana - 图2

四、安装Grafana

1.上传RPM包后,直接安装即可
2.登陆web界面
登陆ip:3000,首次登陆初始账号密码都是admin,会提示修改密码
【MySQL】企业级监控解决方案Promethus Grafana - 图3
3.配置数据源
【MySQL】企业级监控解决方案Promethus Grafana - 图4
4.导入模板
网上找的模板很多不能用,直接导入我给的json格式的dashboard即可
看下效果图
【MySQL】企业级监控解决方案Promethus Grafana - 图5