An open API service indexing awesome lists of open source software.

https://github.com/root-gg/wigo

Wigo, aka "What Is Going On" is a light pull/push monitoring tool written in Golang.
https://github.com/root-gg/wigo

golang light monitoring monitoring-server monitoring-tool probe

Last synced: about 1 year ago
JSON representation

Wigo, aka "What Is Going On" is a light pull/push monitoring tool written in Golang.

Awesome Lists containing this project

README

          

Wigo
=========

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 from Chrome Web Store](https://chrome.google.com/webstore/detail/wigo-monitoring/eaoeankffafdpnhgnamdlifgaknjdcog)

#### Screenshots:

##### Web UI Main view:
![Main view](https://user-images.githubusercontent.com/666182/98400230-f9384e00-2063-11eb-9f82-01138f87942d.png)

##### Web UI Group view:
![Group view](https://user-images.githubusercontent.com/666182/98400233-fa697b00-2063-11eb-955a-e9f165a90bef.png)

##### Web UI Host view:
![Host view](https://user-images.githubusercontent.com/666182/98400236-fb021180-2063-11eb-8605-9dd65d26f7ac.png)

### Installation

> Warning : Breaking change since version 0.73.19 :
> A change in the wigo push protocol can cause crashes if your wigo push server version is < 0.73.22.
> You should update both wigo push clients and server to (at least) 0.73.22.

##### Debian :
Deb packages are available for Debian 9, 10 and 11
```sh
apt-get install lsb-release
wget -O- http://deb.carsso.com/deb.carsso.com.key | apt-key add -
echo "deb http://deb.carsso.com $(lsb_release --codename --short) main" > /etc/apt/sources.list.d/deb.carsso.com.list
apt-get update
apt-get install wigo
```
_Debian 7 & 8 packages are not available anymore, it's time to upgrade :)_

##### Centos :
_Centos packages are not available anymore, but you can build them by yourself_

### Configuration / Setup

- Wigo configuration is in `/etc/wigo/wigo.conf`
- Probes configurations are in `/etc/wigo/conf.d/`

##### PULL
The master fetch remote clients over the http api.
Communications should be secured using firewall rules, TLS and http basic authentication.

##### PUSH
Clients send their data to a remote master over a persistent tcp connection.
Communications should be secured using firewall rules and TLS.

##### 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
```

##### Default probes

The directory name is the interval of check in seconds

```sh
/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

```

### Building from sources

##### Environment
To build from sources, you need `golang` and `gcc` installed.
The `$GOPATH` environment variable should also be set on your system.

##### Dependencies
```sh
make deps
```

##### Building for your system
```sh
make clean release
```

##### Building for all supported archs (amd64 & armhf)
You will need `arm-linux-gnueabihf-gcc`
```sh
make clean releases
```

##### Build debian packages
You will need `reprepro`
```sh
make debs
```

##### Build rpm packages
You will need rpm-building tools
```sh
cd build/rpm/
./makePackege.sh
```

### Usage

##### Wigo web interface

`http://[your-ip]:4000/` (by default)

##### Wigo CLI

```sh
# 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

```

##### Write your own probes !

Probes are binaries, written in any language you want, that output a json string with at least Status param :
```sh

$ ./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"
}
}
]
}
```

##### Status codes :
```
100 OK
101 to 199 INFO
200 to 299 WARN
300 to 499 CRIT
500+ ERROR
```