重新編譯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