Jacob Tomlinson's profile picture Jacob Tomlinson
Home Blog Talks Newsletter About

Building Telegraf for 32bit FreeBSD

2 minute read #telegraf, #freebsd, #influxdata, #32bit, #i386, #docker

Introduction

Currently InfluxData do not provide a 32bit FreeBSD build of Telegraf as part of their standard packages. Luckily it is easy to build yourself.

The only requirement for the following steps is golang 1.5+. To make my life simpler I’m going to create an interactive session in a golang Docker container, this way I know exactly what dependancies I have available to me. I’ll also create a volume in a location where I want the packaged compiled binary to be left once the container is gone.

docker run --rm -ti -v /path/to/output/directory:/output golang /bin/bash

Now that we are in an environment with golang 1.5+ we should make a note of the version we want to build. As this article may go stale you should just update this number with the current stable version.

Set the version we want to build.

export VERSION=1.1.2

Compiling the binary

Get the source, checkout the version we want.

go get github.com/influxdata/telegraf
cd /go/src/github.com/influxdata/telegraf
git checkout ${VERSION}

Build for FreeBSD i386.

env GOOS=freebsd GOARCH=386 make

Packaging the binary

Change to the output directory.

cd /output

Get the 64bit package which includes the log rotation, startup script, etc and extract it.

wget https://dl.influxdata.com/telegraf/releases/telegraf-${VERSION}_freebsd_amd64.tar.gz
tar -xvzf telegraf-${VERSION}_freebsd_amd64.tar.gz
rm telegraf-${VERSION}_freebsd_amd64.tar.gz

Replace the 64bit binary with the 32bit one and archive it again.

mv /go/bin/freebsd_386/telegraf telegraf/usr/bin/telegraf
tar -cvzf telegraf-${VERSION}_freebsd_i386.tar.gz telegraf
rm -rf telegraf

Conclusion

You should now have a tar archive in your output directory ready to move onto your FreeBSD machine and extract.


Have thoughts?

I love hearing feedback on my posts. You should head over to Twitter and let me know what you think!

Spotted a mistake? Why not suggest an edit!