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