|
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #26 |
||
|---|---|---|
| .dockerignore | ||
| .drone.yml | ||
| .gitignore | ||
| Dockerfile | ||
| index.js | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| renovate.json | ||
cachet-monitor
Simple monitor to watch URLs (HTTP) or ports (TCP, UDP) and update Cachet status.
Configuration
cachet-monitor can monitor a list of services. Therefore it requires to setup all services in ./data/config.json. The id of each service has to match the cachet component id you want to update! Each service needs the following attributes (additionally to id and type):
- type
HTTPurl
- type
TCPorUDPhostport
Optionally you can add the following options to each service, or change the default values globally:
retry- number how often the check should be retried if the service is offline (default value0)waitUntilRetry- number of seconds the retry should be delayed (default value5)performanceTimeout- time in seconds in which the request has to be completed, otherwise the status will beSLOW(CachetPerformance Issues) (default value1)requestTimeout- time in seconds in which the request has to be completed, otherwise the status will be offline (default value30)offlineTimeUntilMajor- time in seconds a service has to be offline until it turns from partial to major outage (default value300)
You can specify the interval (cron) your services should be checked. You can use the cron syntax from node-cron. Finally you need to provide the information to your cachet instance (api and token).
To change the default values globally you can set the in the defaults object.
Example:
{
"cron": "0 * * * * *",
"api": "https://<cachet-url>/api/v1",
"token": "<user-token>",
"services": [
{
"id": 1,
"type": "HTTP",
"url": "https://sp-codes.de",
"performanceTimeout": 1
},
{
"id": 2,
"type": "TCP",
"host": "sp-codes.de",
"port": 443
}
],
"defaults": {
"retry": 1,
"waitUntilRetry": 5,
"performanceTimeout": 2,
"requestTimeout": 10,
"offlineTimeUntilMajor": 600
}
}
Run with docker
You can use the docker image samuelph/cachet-monitor and mount a volume to /monitor/data to persist cache and config:
docker run -v /your/path/monitor/data:/monitor/data samuelph/cachet-monitor
You also can use it in docker-compose.yml:
services:
monitor:
image: samuelph/cachet-monitor
restart: always
volumes:
- /your/path/monitor:/monitor/data
Run from source
-
clone the repo
git clone https://git.sp-codes.de/samuel-p/cachet-monitor.git -
install dependencies
npm install -
run
npm run startImportant: If you want
UDPchecks, you need to run it asroot, becausenmapallowsUDPscans only forroot.
License
cachet-monitor is Free Software: It is licensed under GNU GPL v3 (See LICENSE for more information).
