重新编译mysqld_exporter0.10

  • 2019 年 10 月 4 日
  • 笔记

截止本人实验时候,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