Multipurpose XMPP-Webhook : Grafana Webhook alerts Alertmanager Webhooks Slack Incoming Webhooks
 
 
 
Go to file
Thomas Maier 58e0b5a578 README draft 2017-09-26 16:43:00 +02:00
.gitignore README wiP 2017-09-26 16:11:33 +02:00
Gopkg.toml adds vendoring 2017-09-26 15:34:48 +02:00
LICENSE Initial commit 2017-09-24 13:57:48 +02:00
README.md README draft 2017-09-26 16:43:00 +02:00
THIRD-PARTY-NOTICES Create THIRD-PARTY-NOTICES 2017-09-26 15:47:28 +02:00
handler.go new grafana alert formatting 2017-09-26 15:03:46 +02:00
main.go refactoring 2017-09-26 14:39:19 +02:00
xmpp-webhook.service adds systemd service file 2017-09-26 15:10:33 +02:00

README.md

xmpp-webhook

Status

xmpp-webhook currently only provides a hook for Grafana. I will implement a parserFunc for Prometheus ASAP. Check https://github.com/opthomas-prime/xmpp-webhook/blob/master/handler.go to learn how to support more source services.

Usage

  • xmpp-webhook is configured via environment variables:
    • XMPP_ID - The JID we want to use
    • XMPP_PASS - The password
    • XMPP_RECEIVERS - Comma-seperated list of JID's
  • After startup, xmpp-webhook tries to connect to the XMPP server and provides the implemented HTTP enpoints (on :4321). e.g.:
curl -X POST -d @grafana-alert.json localhost:4321/grafana
  • After parsing the body in the appropriate parserFunc, the notification is then distributed to the configured receivers.

Installation

IMPORTANT NOTE: For the sake of simplicity, xmpp-webhook is not reconnecting to the XMPP server after a connection-loss. If you use the provided xmpp-webhook.service - Systemd will manage the reconnect by restarting the service.

  • Download and extract the latest tarball (GitHub release page)
  • Install the binary: install -D -m 744 xmpp-webhook /usr/local/bin/xmpp-webhook
  • Install the service: install -D -m 644 xmpp-webhook.service /etc/systemd/system/xmpp-webhook.service
  • Configure XMMP credentials in /etc/xmpp-webhook.env. e.g.:
XMPP_ID='bot@example.com'
XMPP_PASS='passw0rd'
XMPP_RECEIVERS='jdoe@example.com,ops@example.com'
  • Enable and start the service:
systemctl daemon-reload
systemctl enable xmpp-webhook
systemctl start xmpp-webhook

Building

  • Get the sources: go get -u github.com/opthomas-prime/xmpp-webhook
  • Install dep: https://github.com/golang/dep
  • Change in the project folder: cd $GOPATH/src/github.com/opthomas-prime/xmpp-webhook
  • Populate vendor folder: dep ensure
  • Build xmpp-webhook: go build

Need help?

Feel free to contact me!