https://www.elastic.co/guide/en/beats/devguide/current/index.html
一、本地正確安裝golang
yum install -y golang 或者https://golang.org/doc/install
二、設定好GOPATH
vim ~/.bash_profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/usr/local/go
三、擷取metricbeat源碼
將beat複製下來,目錄為$GOROOT/$yourdirectory/src/github.com/elastic/beats
git clonehttps://github.com/elastic/beats.git
或者:
go get github.com/elastic/beats/metricbeat
四、建立metricset
進入到 $GOROOT/$yourdirectory/src/github.com/elastic/beats/metricbeat/目錄下執行
make create-metricset (依賴 yum install -y python-virtualenv)
按提示輸入自訂的module name & metricset name(module name可以是已存在的module,可向已存在的module添加新的metricset)
Module name:
Metricset name:
五、編輯自訂指令碼
進入到{metricbeat}/module/{module name}/{metricset name}/編輯自訂指令碼
{metricset name}.go # 改指令碼模板會自動產生,一般情況下只需修改 func Fetch()自訂資料擷取及資料輸出
六、編譯metricbeat
到{metricbeat}/module/{module name}/目錄下
執行 make collect #將所做的修改錄入metricbeat
執行 make #編譯
七、Debug
編譯完後會出現一個 metricbeat二進位檔案,到modules.d目錄下可將需要採集資料的設定檔去掉disabled(預設只有system是沒有disabled的)
運行 ./metricbeat -e -d "*" 可debug查看編譯完後的metricbeat是否工作正常,採集的資料是否正常
八、使用編譯好的metricbeat
將正常工作的二進位檔案 metricbeat複製到原有的metricbeat二進位檔案目錄下,將其替換,將產生的modules.d檔案夾下所有檔案複製到/etc/metricbeat/modules.d/下替換原有的檔案
systemctl stop metricbeat
cp metcibeat /usr/bin/metricbeat
cp metricbeat /usr/share/metricbeat/bin/metricbeat
cp -r modules.d/* /etc/metricbeat/modules.d/
九、啟動Metricbeat service
修改設定檔/etc/metricbeat/metricbeat.yml並啟動服務
配置其 output等參數
systemctl start metricbeat