100 lines
2.9 KiB
Text
100 lines
2.9 KiB
Text
|
[[creating-beat-from-metricbeat]]
|
||
|
=== Creating a Beat based on Metricbeat
|
||
|
|
||
|
The metricset Beat generator enables you to create a Beat that uses Metricbeat as a library and has your
|
||
|
own metricsets.
|
||
|
|
||
|
[float]
|
||
|
==== Requirements
|
||
|
|
||
|
To create your own Beat, you must have Go {go-version} or later installed, and the `$GOPATH`
|
||
|
must be set up correctly. In addition, the following tools are required:
|
||
|
|
||
|
* https://www.python.org/downloads/[python]
|
||
|
* https://virtualenv.pypa.io/en/stable/[virtualenv]
|
||
|
|
||
|
Virtualenv is easiest installed with your package manager or https://pip.pypa.io/en/stable/[pip].
|
||
|
|
||
|
[float]
|
||
|
==== Step 1 - Get the metricbeat source code
|
||
|
|
||
|
The first step is to get the metricbeat source code:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
go get github.com/elastic/beats/metricbeat
|
||
|
----
|
||
|
|
||
|
This will clone the beats repository into `GOPATH`. By default `go get` fetches the master branch. To build your beat
|
||
|
on a specific version of libbeat, check out the specific branch ({doc-branch} in the example below):
|
||
|
|
||
|
["source","sh",subs="attributes"]
|
||
|
----
|
||
|
cd ${GOPATH}/src/github.com/elastic/beats
|
||
|
git checkout {doc-branch}
|
||
|
----
|
||
|
|
||
|
Note: If you have multiple go paths use `${GOPATH%%:*}`instead of `${GOPATH}`.
|
||
|
|
||
|
Now change to the directory where you want to create the beat.
|
||
|
This directory is normally located under `$GOPATH/src/github.com/{your-github-name}`. Inside this directory, run the command to create the beat.
|
||
|
|
||
|
|
||
|
[float]
|
||
|
==== Step 2 - Create the Beat
|
||
|
|
||
|
Run the command:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
python ${GOPATH}/src/github.com/elastic/beats/script/generate.py --type=metricbeat
|
||
|
----
|
||
|
|
||
|
When prompted, enter the Beat name and path.
|
||
|
|
||
|
|
||
|
[float]
|
||
|
==== Step 3 - Init and create the metricset
|
||
|
|
||
|
After creating the Beat, change the directory to `$GOPATH/src/github.com/{your-github-name}/{beat}` and run:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
make setup
|
||
|
----
|
||
|
|
||
|
This will do the initial setup for your Beat and also run `make create-metricset`, which will ask you for the
|
||
|
module name and metricset name of your Beat.
|
||
|
|
||
|
For more details about creating a metricset, see the docs <<creating-metricsets>>.
|
||
|
|
||
|
|
||
|
[float]
|
||
|
==== Step 4 - Build & Run
|
||
|
|
||
|
To create a binary run the `make` command. This will create the binary in your beats directory.
|
||
|
|
||
|
To run it, execute the binary. This will automatically load the default configuration which was generated by `make update`.
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
./beatname -e -d "*"
|
||
|
----
|
||
|
|
||
|
This will run the beat with debug output enabled to the console to directly see what is happening. Stop the beat with `CTRL-C`.
|
||
|
|
||
|
[float]
|
||
|
==== Step 5 - Package
|
||
|
|
||
|
To create packages and binaries for different platforms, https://www.docker.com/[docker] is required.
|
||
|
The first step is to get the most recent packaging tools into your beat:
|
||
|
|
||
|
[source,bash]
|
||
|
----
|
||
|
make release
|
||
|
----
|
||
|
|
||
|
This will fetch the most recent packaging tools and start the packaging of your beat. This can take a little bit longer.
|
||
|
|
||
|
For more details about creating a metricset, see the docs about <<creating-metricsets>>.
|