One dashboard to check them all.
This repository contains a small web server used to provide a very accurate status for all your systems. It also supports live alerts when a service goes down.
With just a glance, you'll be able to spot the faulty parts of your infrastructure.
Requires a golang workspace.
cd $GOPATH/src
git clone https://github.com/lesterpig/board
cd board
cp config.sample config.goAt this point, you'll want to customize the config.go file with your very own services.
Then, build and run it!
go build
board -p 8080The dashboard will be available via a web interface.
You can push only the board binary and the static folder to a remote server, golang is not required for production.
// NewHTTP returns a ready-to-go probe.
// A warning will be triggered if the response takes more than `warning` to come.
func NewHTTP(addrport string, warning time.Duration, fatal time.Duration) *HTTP
// NewCustomHTTP returns a ready-to-go probe.
// A warning will be triggered if the response takes more than `warning` to come.
// `opt` may contain two optional fields: `Regex` and `VerifyCertificate`.
// The `Regex` is used to check the content of the website, and can be empty.
// Set `VerifyCertificate` to `false` to skip the certificate verification.
func NewCustomHTTP(addrport string, warning, fatal time.Duration, opt *HTTPParams) *HTTP {// NewDNS returns a ready-to-go probe.
// `domain` will be resolved through a lookup for an A record.
// `expected` should be the first returned IPv4 address or empty to accept any IP address.
// A warning will be triggered if the response takes more than `warning` to come.
func NewDNS(addr, domain, expected string, warning, fatal time.Duration) *DNS// NewSMTP returns a ready-to-go probe.
// A warning will be triggered if the response takes more than `warning` to come.
// BEWARE! Only full TLS servers are working with this probe.
func NewSMTP(addrport string, warning, fatal time.Duration) *SMTP// NewMinecraft returns a ready-to-go probe.
// The resulting probe will perform a real minecraft handshake to get
// some stats on the server (connected players and version).
func NewMinecraft(addrport string, fatal time.Duration) *Minecraft// NewPort returns a ready-to-go probe.
// The `network` variable should be `tcp` or `udp` or their v4/v6 variants.
// A warning will be triggered if the response takes more than `warning` to come.
func NewPort(network, addrport string, warning, fatal time.Duration) *Port// NewPushbullet returns a Pushbullet alerter from the private token
// available in the `account` page.
func NewPushbullet(token string) *Pushbullet- Add probes
- IMAP
- OpenVPN
- Ping (ICMP)
- SNMP
- DHCP
- Add alerts
- Configure interval
- Per-service alerts
- Per-service interval
- Check more often if down
