截止本人實驗時候,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"}