Skip to content

Service to provide api for testing different cluster nodes, such as galera or rabbitmq

License

Notifications You must be signed in to change notification settings

leoleovich/clusterhc

Repository files navigation

Description

This is a light proxy which checks locally cluster (mariadb, percona, mysql, rabbitmq) and returns http code based on current status:

  • 200 - Everything is fine. Node in cluster
  • 503 - Node is out of sync

Intention of this service is to check consistency of a cluster.
If node gets another state but synced, this daemon will return 5xx to a http request from haproxy, keepalived or another service.
This will let you to exclude node from LBpool.

Usage

  • Edit configuration file /etc/clusterhc/clusterhc.toml
  • Run service
  • Connect configure your LBpool to check localBind/(galera|rabbimq)

Installation

  • Install go https://golang.org/doc/install
  • Make a proper structure of directories: mkdir -p /opt/go/src /opt/go/bin /opt/go/pkg
  • Setup g GOPATH variable: export GOPATH=/opt/go
  • Clone this project to src: go get github.com/leoleovich/clusterhc
  • Fetch dependencies: cd /opt/go/github.com/leoleovich/clusterhc && go get ./...
  • Compile project: go install github.com/leoleovich/clusterhc
  • Copy config file: mkdir /etc/clusterhc /var/log/clusterhc && cp /opt/go/src/github.com/leoleovich/clusterhc/clusterhc.toml /etc/clusterhc/
  • Run it /opt/go/bin/clusterhc

Optional systemd service

  • Create systemd service: cp /opt/go/src/github.com/leoleovich/clusterhc/clusterhc.service /usr/lib/systemd/system
  • Reload systemd: systemctl daemon-reload
  • Start clusterhc service: systemctl start clusterhc.service
  • Check status: systemctl status clusterhc.service

About

Service to provide api for testing different cluster nodes, such as galera or rabbitmq

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages