prometheus监控mysql指标_Prometheus 监控MySQL数据库

本文详细介绍了如何使用Prometheus监控MySQL数据库,包括Prometheus和mysqld_exporter的Docker安装步骤,以及MySQL的授权设置。通过容器运行Prometheus和mysqld_exporter,并配置监控宿主机的node_exporter,确保能有效收集MySQL的指标数据。
摘要由CSDN通过智能技术生成

Prometheus 监控mysql容器

Prometheus

这里我们演示中,prometheus以及mysqld_exporter都使用容器进行运行。这里我的服务器配置为阿里云2h4g

由于Prometheus及相关的exporter会随着版本发生变化,官方推荐都是最新的版本。这里我为了保证后期文档可用性,将mysqld_exporter和node_exporter都传到我的仓库中,下面有直接下载的方法

Docker Install

安装docker版本使用19.06,使用脚本一键安装

19.03版本需要最新的Linux 5.x内核支持,如果达不到升级的条件可以使用18.09的版本,具体参考docker官方文章

export VERSION=19.03curl -fsSL "https://get.docker.com/"| bash -s ----mirror Aliyun所有机器配置加速源并配置docker的启动参数使用systemd,使用systemd是官方的建议,详见 https://kubernetes.io/docs/setup/cri/

mkdir -p /etc/docker/cat>/etc/docker/daemon.json<

systemctl enable --now docker查看docker info

[root@abcdocker ~]# docker infoClient:DebugMode:falseServer:Containers:1Running:0Paused:0Stopped:1Images:2ServerVersion:19.03.11StorageDriver: overlay2BackingFilesystem: extfsSupports d_type:trueNativeOverlayDiff:trueLoggingDriver: json-fileCgroupDriver: systemdPlugins:Volume:localNetwork: bridge host ipvlan macvlan null overlayLog: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslogSwarm: inactiveRuntimes: runcDefaultRuntime: runcInitBinary: docker-initcontainerd version:7ad184331fa3e55e52b890ea95e65ba581ae3429runc version: dc9208a3303feef5b3839f4323d9beb36df0a9ddinit version: fec3683SecurityOptions:seccompProfile:defaultKernelVersion:5.6.7-1.el7.elrepo.x86_64OperatingSystem:CentOSLinux7(Core)OSType: linuxArchitecture: x86_64CPUs:1TotalMemory:3.846GiBName: abcdockerID:7NVC:4GYW:CRGD:ABOX:V6T4:LYEH:MLLO:UUB3:X5ZB:QTRC:A2RW:DER4DockerRootDir:/var/lib/dockerDebugMode:falseRegistry: https://index.docker.io/v1/Labels:Experimental:falseInsecureRegistries:127.0.0.0/8RegistryMirrors:https://hjvrgh7a.mirror.aliyuncs.com/LiveRestoreEnabled:falsenode_exporter 安装

node_exporter主要是用于监控宿主机的信息 项目地址https://github.com/prometheus/node_exporter

官方文档提示: node_exporter设计用于监控主机系统。不建议将其部署为Docker容器,因为它需要访问主机系统。请注意,您要监视的任何非根安装点都需要绑定到容器中。如果启动容器以进行主机监视,请指定path.rootfs参数。此参数必须与host root的bind-mount中的路径匹配。node_exporter将path.rootfs用作访问主机文件系统的前缀。

这里我们就不以容器进行运行,使用二进制安装的方式

官方下载地址https://prometheus.io/download/#node_exporter

#由于官方下载可能比较慢,我将压缩包上传到我的站点存储,本次演示的版本为1.0.0wget http://down.i4t.com/prometheus/node_exporter-1.0.0.linux-amd64.tar.gztar xf node_exporter-1.0.0.linux-amd64.tar.gzmkdir -p /usr/local/node_exportermv node_exporter /usr/local/node_exporter/node_exporter创建systemd服务

#创建prometheus用户[root@abcdocker local]# useradd -s /sbin/nologin -m prometheus[root@abcdocker local]# id prometheusuid=1002(prometheus) gid=1002(prometheus) groups=1002(prometheus)cat >>/etc/systemd/system/node_exporter.service<

在通过systemd启动之前我们先测试一下node_exporter是否正常,直接./usr/local/node_exporter/node_exporter运行成功即可

[root@abcdocker ~]# cd /usr/local/node_exporter/[root@abcdocker node_exporter]#./node_exporterlevel=info ts=2020-06-08T15:56:43.206Zcaller=node_exporter.go:177 msg="Starting node_exporter"level=info ts=2020-06-08T15:56:43.207Zcaller=node_exporter.go:112 collector=zfs.........level=info ts=2020-06-08T15:56:43.207Zcaller=node_exporter.go:191 msg="Listening on" address=:9100level=info ts=2020-06-08T15:56:43.207Zcaller=tls_config.go:170 msg="TLS is disabled and it cannot be enabled on the fly." http2=false#直接执行没有问题,我们可以访问测一下。 需要单独在开通一个窗口进行curl,测试完毕以后通过ctrl -c结束node_exporter进程[root@abcdocker node_exporter]# curl localhost:9100/metrics# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.# TYPE go_gc_duration_seconds summarygo_gc_duration_seconds{quantile="0"}0...go_memstats_alloc_bytes 1.256328e+06#这里只要有数据即可上面是执行二进制node_exporter是否异常,接下来我们就退出启动。通过systemd进行管理

systemctl daemon-reloadsystemctl enable node_exportersystemctl start node_exportersystemctl status node_exporter#温馨提示: 需要退出刚刚启动的进程,否则启动失败到现在我们的node_exporter二进制已经安装完毕,如果想使用的可以使用下面的命令

docker run -d \--net="host" \--pid="host" \-v "/:/host:ro,rslave" \quay.io/prometheus/node-exporter \--path.rootfs=/host#这里的命令为官方提供,官方建议使用二进制,docker安装参数查阅官方文档即可https://github.com/prometheus/node_exporter/mysqld_exporter安装

项目地址:https://github.com/prometheus/mysqld_exporter

目前mysqld_exporter支持的版本为

MySQL> = 5.6MariaDB> = 10.1为了方便管理,这里mysqld_exporter就是用docker进行运行,如果是使用二进制安装参数基本上相同

这里先到mysql授权mysqld_exporter用户,mysqld_exporter实际上是通过select 查看mysql状态获取metric

#登录mysql创建mysqld_exporter用户,docker安装就不要使用localhostCREATE USER 'exporter'@'10.26.33.104' IDENTIFIED BY 'abcdocker..' WITH MAX_USER_CONNECTIONS 3;GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'10.26.33.104';FLUSH PRIVILEGES;#查看exporter信息MySQL[(none)]>select user,host from mysql.user;+---------------+-----------+| user | host |+---------------+-----------+| root |127.0.0.1|| exporter |10.26.33.104|+---------------+-----------+9 rows inset(0.00 sec)创建mysqld_exporter容器

docker run -d \--net="host" \--name mysqld_exporter \-e DATA_SOURCE_NAME="exporter:abcdocker..@(10.26.33.104:3306)/" \registry.cn-beijing.aliyuncs.com/abcdocker/mysqld_exporter:0.12.1DATA_SOURCE_NAME exporter代表用户名:abcdocker代表密码(xxxx:3306 mysql授权地址)查看容器启动状态

[root@abcdocker ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESe7ba8c43597e registry.cn-beijing.aliyuncs.com/abcdocker/mysqld_exporter:0.12.1"/bin/mysqld_exporter"19 seconds ago Up18 seconds 0.0.0.0:9104->9104/tcp nervous_tesla#这里我们看到已经获取到metric[root@abcdocker ~]# curl 10.26.33.104:9104/metrics# HELP go_gc_duration_seconds A summary of the GC invocation durations.# TYPE go_gc_duration_seconds summarygo_gc_duration_seconds{quantile="0"}0go_gc_duration_seconds{quantile="0.25"}0go_gc_duration_seconds{quantile="0.5"}0go_gc_duration_seconds{quantile="0.75"}0Prometheus Install

prometheus我们也安装在容器中

首先创建prometheus数据存储目录

[root@abcdocker ~]# mkdir /data/prometheus -p#授权prometheus写入数据[root@abcdocker ~]# chmod -R 777/data/prometheus接下来编辑prometheus配置文件

mkdir -p /etc/prometheuscat >>/etc/prometheus/prometheus.yml <

>>

e5a27cb28f735819cda08872d56962fb.png

b23ad09f9ee3e726a3a4f1717582f1d4.png

eb1269da0346b7d9abce4664f67bce13.png

20d9d8c6dcc665daeea9ab4908f466dd.png

6dbcc4c82ae5f663ba7285a419339a01.png

ca47fead404848874582e88e3364b98b.png

de4468add8cd2969228de0d8abeb1017.png

58a32db45ce46d020c871214cfd6bb6a.png

f9b79c749b5b134b69028bbf9d2b4268.png

9165951b9e3719beee933c9305d6de3c.png

0d42033d0806d1cd3a0e575058432860.png

f47c39320cc7535eaea259637fa857eb.png

926182b8c515e68e105ce8d63e78b6d7.png

005284a6a78604b6c2d8075c3e2ad444.png

e37298067050049e543ae1ec1564d782.png

e9fdfa8401e8f41e49fc5c71310de828.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值