相关文章:
安装好 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 按钮上传导入即可
七、查看图表
-
至此,我们就大功告成了