Creating a Beat based on Metricbeatedit

The metricset Beat generator enables you to create a Beat that uses Metricbeat as a library and has your own metricsets.

Requirementsedit

To create your own Beat, you must have Go 1.14.15 or later installed, and the $GOPATH must be set up correctly. In addition, the following tools are required:

Python venv module is already included in the standard library. In Ubuntu/Debian it requires additional support scripts that can be installed with the python3-venv package:

sudo apt-get install python3-venv

Step 1 - Get the metricbeat source codeedit

The first step is to get the metricbeat source code:

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 (7.11 in the example below):

cd ${GOPATH}/src/github.com/elastic/beats
git checkout 7.11

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.

Step 2 - Create the Beatedit

Run the command from the root beats directory:

NEWBEAT_TYPE=metricbeat mage GenerateCustomBeat

When prompted, enter the Beat name and path, along with an initial module and metricset name for your beat. For more details about creating a metricset, see the docs Creating a Metricset.

After creating the Beat, change the directory to $GOPATH/src/github.com/{your-github-name}/{beat}

Step 3 - Build & Runedit

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.

./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.

Step 4 - Packageedit

To create packages and binaries for different platforms, docker is required. The first step is to get the most recent packaging tools into your beat:

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 a Metricset.