截止本人实验时候,github上面提供的最新版的普罗米修斯 mysqld_exporter 版本为 0.10.0 , 添加了pt-heartbeat的结合,同时也加入了对mariadb采集的支持(增加了命令show all slaves status)。
将新版的mysqld_exporter-0.10.0 部署到mysql机器上没过多久,业务方反馈ELK里面出现一堆的error报错,提示语法错误。报错关键点就是 show all slaves status; 这个新增加的对mariadb支持导致的(我们用的是mysql5.6官方版本)。
下面,来自己动手改造下,过程如下:
源码包:
mysqld_exporter-0.10.0.tar.gz
go1.8.3.linux-amd64.tar.gz
步骤:
cd /root/
tar xf mysqld_exporter-0.10.0.tar.gz -C ./
yum install git -y
tar xf go1.8.3.linux-amd64.tar.gz -C /usr/local/
mkdir /golang# 创建$GOPATH路径,所有的go项目以后都会自动存放到这个目录下。
vim /etc/profile.d/go.sh 内容如下:
export GOROOT=/usr/local/go
export GOPATH=/golang
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
source /etc/profile.d/go.sh
go get github.com/prometheus/prometheus
go get github.com/go-sql-driver/mysql
cd /golang
mv /root/mysqld_exporter-0.10.0 /golang/src/github.com/prometheus/mysqld_exporter
cd /golang/src/github.com/prometheus/mysqld_exporter
修改collector/slave_status.go 第18行,修改后: var slaveStatusQueries = [2]string{"SHOW SLAVE STATUS", "SHOW SLAVE STATUS"}
然后执行 make ,注意的编译时候最后会提示test失败,忽略即可。
这样的话,我们的mysqld_exporter 就可以结合pt-heart使用heartbeat检测功能
启动命令如下: ./mysqld_exporter -config.my-cnf=.my.cnf -collect.heartbeat