Wigo, aka "What Is Going On" is a light pull/push monitoring tool written in Golang.
Main features
- Write probes in any language you want
- Notifications when a probe status change (http,email)
- Proxy mode for hosts behind NAT/Gateways
- Graphing probes metrics to OpenTSDB instances
Install Wigo Monitoring browser extention for Chrome or Firefox
Deb packages are available for Debian >= 12
apt-get install lsb-release
sudo mkdir -p /etc/apt/keyrings
wget -qO- http://deb.carsso.com/deb.carsso.com.key | gpg --dearmor | sudo tee /etc/apt/keyrings/deb.carsso.com.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/deb.carsso.com.gpg] http://deb.carsso.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/deb.carsso.com.list
apt-get update
apt-get install wigo- Wigo configuration is in
/etc/wigo/wigo.conf - Probes configurations are in
/etc/wigo/conf.d/
The master fetch remote clients over the http api. Communications should be secured using firewall rules, TLS and http basic authentication.
Clients send their data to a remote master over a persistent tcp connection. Communications should be secured using firewall rules and TLS.
Wigo needs a key pair to enable HTTPS api. You can generate a self signed key pair by running this command:
/usr/local/wigo/bin/generate_cert -ca=false -duration=87600h0m0s -host "hostnames,ips,..." --rsa-bits=4096
Wigo needs a CA key pair to secure PUSH communications. You can generate a CA self signed key pair by running this command on the push server :
/usr/local/wigo/bin/generate_cert -ca=true -duration=87600h0m0s -host "hostnames,ips,..." --rsa-bits=4096
The directory name is the interval of check in seconds
/usr/local/wigo/probes
├── 120
├── 300
│ ├── apt-security -> ../../probes-examples/apt-security
│ └── smart -> ../../probes-examples/smart
└── 60
├── check_mdadm -> ../../probes-examples/check_mdadm
├── check_processes
├── hardware_disks -> ../../probes-examples/hardware_disks
├── hardware_load_average -> ../../probes-examples/hardware_load_average
├── hardware_memory -> ../../probes-examples/hardware_memory
├── ifstat -> ../../probes-examples/ifstat
├── supervisord
└── needrestart
To build from sources, you need:
golangandgccinstallednode.jsandnpmfor the frontend- The
$GOPATHenvironment variable should also be set on your system
Install all dependencies:
make depsmake clean releaseYou will need arm-linux-gnueabihf-gcc
make clean releasesYou will need dpkg-deb
make debsTo run Wigo in development mode with hot-reload for both backend and frontend:
make run-devThe web interface will be available at http://localhost:4400/ (or the port configured in etc/wigo-dev.conf).
To stop the development server, press Ctrl+C - this will gracefully stop both the Go server and the frontend watcher.
Note: The development mode requires sudo privileges to run the Wigo server. The development files are stored in the dev/ directory.
http://[your-ip]:4000/ (by default)
# /usr/local/wigo/bin/wigocli
Wigo v0.51.5 running on backbone.root.gg
Local Status : 100
Global Status : 250
Remote Wigos :
1.2.3.4:4000 ( ns2 ) - Wigo v0.51.5:
apt-security : 100 No security packages availables
hardware_disks : 250 Highest occupation percentage is 93% in partition /dev/md0
hardware_load_average : 100 0.09 0.04 0.05
hardware_memory : 100 Current memory usage is 19.32%
ifstat : 100 tap0 0.00/0.01 mbps , eth1 0.00/0.00 mbps , eth0 0.01/0.01 mbps ,
smart : 100 /dev/sdc : PASSED /dev/sdb : PASSED
Probes are binaries, written in any language you want, that output a json string with at least Status param :
$ /usr/local/wigo/probes/examples/hardware_load_average
{
"Detail" : "",
"Version" : "0.11",
"Message" : "0.38 0.26 0.24",
"Status" : 100,
"Metrics" : [
{
"Value" : 0.38,
"Tags" : {
"load" : "load5"
}
},
{
"Value" : 0.26,
"Tags" : {
"load" : "load10"
}
},
{
"Value" : 0.24,
"Tags" : {
"load" : "load15"
}
}
]
} 100 OK
101 to 199 INFO
200 to 299 WARN
300 to 499 CRIT
500+ ERROR


