Skip to content
Forward Kubernetes Events using the Graylog Extended Log Format
Branch: master
Clone or download
Latest commit db01751 Jan 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs First commit Jan 9, 2019
src add additional fields to the gelf forwarding Jan 16, 2019
.gitignore First commit Jan 9, 2019
.travis.yml release v1.0.0. Jan 16, 2019 release v1.0.0. Jan 16, 2019
Dockerfile Deploy image to Jan 10, 2019
LICENSE Fill placeholder in license file Jan 10, 2019
Makefile release v1.0.0. Jan 16, 2019 release v1.0.0. Jan 16, 2019
event-forwarder-gelf.go release v1.0.0. Jan 16, 2019
go.mod First commit Jan 9, 2019


Build Status

Forward Kubernetes Events using the Graylog Extended Log Format.


  event-forwarder-gelf [OPTIONS]

Application Options:
  -v, --verbose= Show verbose debug information [$VERBOSE]
      --host=    Graylog TCP endpoint host [$GRAYLOG_HOST]
      --port=    Graylog TCP endpoint port [$GRAYLOG_PORT]
      --cluster= Name of this cluster [$CLUSTER]
      --version  Print version information

Help Options:
  -h, --help     Show this help message

Run the pre-built image xingse/event-forwarder-gelf locally (with local permission):

echo CLUSTER=cluster-name >> .env
echo GRAYLOG_HOST=graylog >> .env
echo GRAYLOG_PORT=12222   >> .env
docker run --env-file=.env xingse/event-forwarder-gelf


Run this controller on Kubernetes with the following commands:

kubectl create serviceaccount event-forwarder-gelf \

kubectl create clusterrole xing:controller:event-forwarder-gelf \
  --verb=get,watch,list \

kubectl create clusterrolebinding xing:controller:event-forwarder-gelf \
  --clusterrole=xing:controller:event-forwarder-gelf \

kubectl run event-forwarder-gelf \
  --image=xingse/event-forwarder-gelf \
  --env=CLUSTER=cluster-name \
  --env=GRAYLOG_HOST=graylog \
  --env=GRAYLOG_PORT=12222 \


This project uses go modules introduced by go 1.11. Please put the project somewhere outside of your GOPATH to make go automatically recogninze this.

All build and install steps are managed in the Makefile. make test will fetch external dependencies, compile the code and run the tests. If all goes well, hack along and submit a pull request. You might need to run the go mod tidy after updating dependencies.


Releases are a two-step process, beginning with a manual step:

  • Create a release commit
  • Run make release, which will create an image, retrieve the version from the binary, create a git tag and push both your commit and the tag

The Travis CI run will then realize that the current tag refers to the current master commit and will tag the built docker image accordingly.

You can’t perform that action at this time.