在Centos7上基于Prometheus(普罗米修斯)和Grafana搭建MySQL数据库可视化监控,通过Prometheus对MySQL数据库信息的监控,使用Grafana对监控的数据进行界面化展示。
下载安装包
在prometheus的官网 上去下载如下3个prometheus监控相关的安装包:
- prometheus-2.26.0.linux-amd64.tar.gz:用来部署监控系统自己;
- node_exporter-1.1.2.linux-amd64.tar.gz:用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据;
- mysqld_exporter-0.12.1.linux-amd64.tar.gz:用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量之类的;
安装prometheus
使用如下命令解压(注意下面的示例是在一台机器上做的实验;MySQL直接安装即可这里不在做过多说明)
mkdir -p /home/app/prometheus/exporter
tar xvfz prometheus-2.26.0.linux-amd64.tar.gz -C /home/app/prometheus/
tar xvfz node_exporter-1.1.2.linux-amd64.tar.gz -C /home/app/prometheus/exporter/
tar xvfz mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /home/app/prometheus/exporter/
配置prometheus的信息
cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi prometheus.yml
在里面添加如下配置
scrape_configs:
- job_name: prometheus
static_configs:
- targets: [ 'localhost:9090' ]
- file_sd_configs:
- files:
- host.yml
job_name: Host
metrics_path: /metrics
# 对信息进行过滤
relabel_configs:
- source_labels: [__address__]
regex: (.*)
target_label: instance
replacement: $1
- source_labels: [__address__]
regex: (.*)
target_label: __address__
replacement: $1:9100
- file_sd_configs:
- files:
- mysql.yml
job_name: MySQL
metrics_path: /metrics
# 对信息进行过滤
relabel_configs:
- source_labels: [__address__]
regex: (.*)
target_label: instance
replacement: $1
- source_labels: [__address__]
regex: (.*)
target_label: __address__
replacement: $1:9104
启动服务
#
./prometheus --storage.tsdb.retention=30d
命令中的30d表示监控数据保留30天的。如果要后台运行可以在命令后面在加个
&
符号
成功后即可在浏览器中访问9090端口号查看prometheus的主页信息。
安装node_exporter监控机器的信息
在MySQL那台机器上安装动node_exporter;它会自动采集这台linux机器上的CPU、磁盘、内存、网络之类的各种监控数据。
cd /home/app/prometheus/exporter/node_exporter-1.1.2.linux-amd64
nohup ./node_exporter &
然后在prometheus的安装目录下配置监控信息
cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi host.yml
在里面添加如下信息
- targets:
- '192.168.56.102'
labels:
service: demo
prometheus会自动监控这个文件的变化
安装mysqld_exporter监控MySQL数据库
在MySQL那台机器上安装动mysqld_exporter;它会自动采集MySQL的信息。
cd /home/app/prometheus/exporter/mysqld_exporter-0.12.1.linux-amd64
# 配置MySQL的账号和密码
export DATA_SOURCE_NAME='root:123456@(192.168.56.102:3306)/'
echo "export DATA_SOURCE_NAME='root:123456@(192.168.56.102:3306)/'" >> /etc/profile
然后启动该服务
nohup ./mysqld_exporter --collect.info_schema.processlist --collect.info_schema.innodb_tablespaces --collect.info_schema.innodb_metrics --collect.perf_schema.tableiowaits --collect.perf_schema.indexiowaits --collect.perf_schema.tablelocks --collect.engine_innodb_status --collect.perf_schema.file_events --collect.binlog_size --collect.info_schema.clientstats --collect.perf_schema.eventswaits &
更多参数参考:https://github.com/prometheus/mysqld_exporter;
注意MySQL8.0不支持 –collect.info_schema.innodb_tablespaces这个参数,可以如果是MySQL8.0的话可以去掉这个监控指标。
然后在prometheus的安装目录下配置监控信息
cd /home/app/prometheus/prometheus-2.26.0.linux-amd64
vi mysql.yml
在里面添加如下信息
- targets:
- '192.168.56.102'
labels:
service: mysql_demo
安装grafana
从grafana官网 查看对应系统的安装方式。下面是centos7上的安装命令:
更新详细的文档地址:https://grafana.com/docs/grafana/latest/
wget https://dl.grafana.com/oss/release/grafana-7.5.3-1.x86_64.rpm
yum install -y grafana-7.5.3-1.x86_64.rpm
安装完成后直接启动即可,下面是相关的命令
# 启动
systemctl start grafana-server
# 状态
systemctl status grafana-server
# 停止
systemctl stop grafana-server
启动成功后可以通过浏览器访问3000端口http://192.168.56.102:3000 ;默认的端口是3000;初始登陆用户和密码都是admin。
然后在Grafana左侧菜单栏里有一个Data Sources,点击里面的一个按钮是Add data source 添加一个数据源。我们直接选择 prometheus即可,配置先前部署的prometheus的地址,其他的保持默认即可。
关于grafana的仪表盘问题
我们可以自己根据需要定制,但是官方一个仪表盘的市场(有其他人定制好的配置),我们可以直接到上面去找合适的直接使用即可。仪表盘地址:https://grafana.com/grafana/dashboards;选择符合自己要求的导入即可。
- CPU、内存、磁盘监控:8919
- MySQL监控:11323