Prometheus是一个监控数据采集和存储系统,它可以利用监控数据采集组件(比如mysql_export)从你指定的MySQL数据库中采集他需要的监控数据,然后他自己有一个时序数据库,它会把采集到的监控数据放入自己的时序数据库中,本质上就是存储在磁盘文件里。
Grafana是一个可视化的监控数据展示系统,他可以把Prometheus采集到的大量的MySQL监控数据展示成各种精美的报表,让我们可以直观的看到MySQL的监控情况。
不只是对数据库监控可以采用 Prometheus+Grafana 的组合,对于开发出来的各种Java系统、中间件系统,都可以使用这套组合去进行可视化的监控,就是让Prometheus去采集你的监控数据,然后用Grafana展示成报表。
(1)安装环境: Linux 服务器系统
(2)下载Prometheus安装包和node_exporter采集组件包
通过这里的连接 :http://cactifans.hi-www.com/prometheus/ 可以下载当前需要的两个压缩包,这里prometheus是用来部署监控系统自己的,然后node_exporter是用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据的:
node_exporter-0.15.2.linux-amd64.tar.gz prometheus-2.1.0.linux-amd64.tar.gz
(3)MySQL数据库数据采集组件
mysqld_exporter-0.10.0.linux-amd64.tar.gz
这个mysqld_exporter就是用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量之类的:
https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz(从本连接可以下载 mysqld_exporter)
(4)安装流程
mkdir /data mkdir /root tar xvf prometheus-2.1.0.linux-amd64.tar.gz -C /data tar xf node_exporter-0.15.2.linux-amd64.tar.gz -C /root tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz -C /root cd /data/ mv prometheus-2.1.0.linux-amd64/ prometheus cd prometheus/
接下来要修改prometheus的配置文件 vi prometheus.yml,主要是在scrape_configs下面加入一大段自定义的配置,因为它需要去采集MySQL数据本身和MySQL所在机器的监控数据:
# 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). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: - job_name: 'Host' file_sd_configs: - files: - 'host.yml' metrics_path: /metrics relabel_configs: - source_labels: [__address__] regex: (.*) target_label: instance replacement: $1 - source_labels: [__address__] regex: (.*) target_label: __address__ replacement: $1:9100 - job_name: 'MySQL' file_sd_configs: - files: - 'mysql.yml' 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了。
(5)启动prometheus
需要在/data/prometheus目录中,去执行启动命令:
/data/prometheus/prometheus --storage.tsdb.retention=30d &
这里的30d是说你的监控数据保留30天。启动之后,就可以在浏览器中访问9090端口去查看prometheus的主页了。
下载 grafana-4.6.3.linux-x64.tar.gz,然后一步一步的执行下面的命令,完成它的启动。
华为镜像地址:https://mirrors.huaweicloud.com/grafana/(比官网下载要快)
tar xf grafana-4.6.3.linux-x64.tar.gz -C /data/prometheus/ cd /data/prometheus/ mv grafana-4.6.3 grafana cd /data/prometheus/grafana ./bin/grafana-server &
接着就完成了grafana的启动,然后可以通过浏览器访问3000端口,默认的用户名和密码是admin/admin。接着在Grafana左侧菜单栏里有一个Data Source,点击里面的一个按钮是Add data source,就是添加一个数据源。
然后在界面里输入你的数据源的名字是Prometheus,类型是Prometheus,HTTP URL地址是http://127.0.0.1:9090,其他的都用默认的配置就行了,接下来Grafana就会自动从Prometheus里获取监控数据和显示了。
接着需要安装Grafana的仪表盘组件,首先需要下载grafana-dashboards-1.6.1.tar.gz。执行以下的命令去安装 grafana-dashboard 组件。
tar xvf grafana-dashboards-1.6.1.tar.gz cd grafana-dashboards-1.6.1 updatedb locate json | grep dashboards
这个时候会看到一大堆的json文件,就是各种不同的仪表盘对应的json配置文件,你可以把这些json配置文件通过WinSCP之类的工具从Linux机器上拖到你的windows电脑上来,因为需要通过浏览器上传他们。
接着在Grafana页面中,可以看到最上面有一个Import Dashboard的按钮,就是说可以导入一些仪表盘,这个时候就是要导入刚才看到的一大堆的json文件。
你点击Upload json file 按钮,就会出现一个界面让你上传一个一个的json文件了,然后你就依次上传,接着grafana中就会出现一大滴的仪表盘了,比如机器的CPU使用率的仪表盘,磁盘性能仪表盘,磁盘空间仪表盘,MySQL监控仪表盘,等等。