MySQL:如何为数据库部署监视系统

在对数据库做完压测之后,接下来就要针对数据库搭建一个统一的可视化监控平台,这个活儿往往是DBA团队负责的,但是不管如何,我们这里也要对这个数据库可视化监控的技术有一定的了解。一般用Prometheus+Grafana来搭建

Prometheus和Grafana是什么

Prometheus其实就是一个监控数据采集和存储系统。它可以利用监控采集组件(比如mysql_exporter)从你指定的MySQL数据库中采集它需要的监控系统,然后它自己有一个时序数据库,它会把采集到的监控数据放入自己的时序数据库中,其实本质就是存储在磁盘文件里。

我们采集到了MySQL的监控数据还不够,还必须展示出来,这时就需要Grafana了。Grafana就是一个可视化的监控数据展示系统,它可以把Prometheus采集到的大量的MySQL监控数据展示成各种报表,让我们可以直观看到MySQL的监控情况。

其实不光是对数据库监控可以采用Prometheus+Grafana的组合,对你开发出来的各种Java系统、中间件系统,都可以使用这套组合去进行可视化的监控,无非就是让Prometheus去采集你的监控数据,然后用Grafana展示成报表而已。

安装和启动Prometheus

这里下载到下面两个压缩包,这里prometheus就是用来部署监控系统自己的,然后node_exporter是用来采集MySQL数据库所在机器的CPU、内存、网络、磁盘之类的监控数据的:

prometheus-2.1.0.linux-amd64.tar.gz
node_exporter-0.15.2.linux-amd64.tar.gz

这里下载第三个压缩包:mysqld_exporter-0.10.0.linux-amd64.tar.gz,这个mysqld_exporter就是用来采集MySQL数据库自己的一些监控数据的,比如SQL性能、连接数量等。

解压:

mkdir /data
mkdir /root
tar xvf prometheus-2.1.0.linux-amd64.tar -C /data
tar xf node_exporter-0.15.2.linux-amd64.tar -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的配置文件,其实主要是在scrape_configs下面加入一大段自定义的配置,因为他需要去采集MySQL数据库本身和MySQL所在机器的监控数据:

$ vi prometheus.yml
scrape_configs:
 - 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
 	- job_name: prometheus
 static_configs:
 	- targets:
 	- localhost: 9090

上面的配置文件写好之后,就可以启动Prometheus了。进入/data/prometheus目录中,去执行启动命令:

/data/prometheus/prometheus --storage.tsdb.retention=30d &

这里的30d是说你的监控数据保留30天的。启动之后,就可以在浏览器中访问9090端口号去查看prometheus的主页了。

部署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 &

之后就可以通过浏览器访问3000端口,默认的用户名和密码是admin/admin。接着在Grafana左侧菜单栏里有一个Data Sources,点击里面的一个按钮是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页面中,可以看到最上面有一个Home按钮,点击一下进入一个界面,你会看到一个Import Dashboard的按钮,就是说可以导入一些仪表盘,这个时候就是要导入刚才看到的一大堆的json文件。

你点击Upload json file按钮,就会出现一个界面让你上传一个一个的json文件,然后你就依次上传,接着grafana中就会出现一大堆的仪表盘了,比如机器的CPU使用率的仪表盘,磁盘性能仪表盘,磁盘空间仪表盘,MySQL监控仪表盘,等等。

添加监控

添加MySQL机器的监控

如果想要让Prometheus去采集MySQL机器的监控数据(CPU、内存、磁盘、网络,等等),然后让Grafana可以展示出来,那么就必须先添加Prometheus对MySQL机器的监控。

首先必须要在MySQL机器上解压缩和启动node_exporter,启动之后它会自动采集这台linux机器上的CPU、磁盘、内存、网络之类的各种监控数据

tar xf node_exporter-0.15.2.linux-amd64.tar
mv node_exporter-0.15.2.linux-amd64 node_exporter
cd node_exporter
nohup ./node_exporter &

到这一步为止,我们就在MySQL所在的机器上启动了一个node_exporter了,他就会自动采集这台机器的CPU、磁盘、内存、网络的监控数据,但是此时还不够,因为Prometheus上还没加入对这台机器的监控。

此时我们应该还记得,之前在Prometheus的yml配置文件中,我们已经定义了一个host监控项,他就是用来监控机器的,它的配置文件是host.yml,此时我们可以编辑一下这个host.yml配置文件,加入mysql所在机器的地址就可以了

vi host.yml
- labels:
 service: test
 targets:
 - 127.0.0.1

接着Prometheus就会跟MySQL机器上部署的node_exporter进行通信,源源不断的获取到这台机器的监控数据,写入自己的时序数据库中进行存储。接着我们就可以打开Grafana的页面,此时你就可以看到这台机器的相关性能监控了。

添加MySQL数据库的监控

我们同样需要在MySQL所在机器上再启动一个mysqld_exporter的组件,他负责去采集MySQL数据库自己的一些监控数据:

tar xf mysqld_exporter-0.10.0.linux-amd64.tar
mv mysqld_exporter-0.10.0.linux-amd64 mysqld_exporter

接着需要配置一些环境变量,去设置mysqld_exporter要监控的数据库的地址信息:

export DATA_SOURCE_NAME='root:root@(127.0.0.1:3306)/'
echo "export DATA_SOURCE_NAME='root:root@(127.0.0.1:3306)/'" >> /etc/profile

接着启动mysqld_exporter:

cd mysqld_exporter
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.info_schema.processlist --collect.binlog_size --collect.info_schema.clientstats --
collect.perf_schema.eventswaits &

这个mysqld_exporter进程就会自动采集MySQL自己的监控数据了,然后我们还需要在Prometheus里配置一下它去跟mysqld_exporter通信获取数据以及存储,然后Grafana才能看到对应的报表。

vi /data/prometheus/mysql.yml
- labels:
 service: mysql_test
 targets:
 - 127.0.0.1

现在在Grafana中就可以看到MySQL的各种监控数据了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值