Simple monitor to watch URLs (HTTP
) or ports (TCP
, UDP
) and update Cachet status.
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
HTTP
url
- type
TCP
orUDP
host
port
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
}
}
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
-
clone the repo
git clone https://git.sp-codes.de/samuel-p/cachet-monitor.git
-
install dependencies
npm install
-
run
npm run start
Important: If you want
UDP
checks, you need to run it asroot
, becausenmap
allowsUDP
scans only forroot
.
cachet-monitor is Free Software: It is licensed under GNU GPL v3 (See LICENSE for more information).