Skip to content

Simple to use monitoring server application written in Go, extendable with scripts

License

Notifications You must be signed in to change notification settings

jmptrader/monitoring-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monitoring

Simple monitoring tool with web application written in Go.

Go Report Card

Features

  • Very lightweight
  • Simple
  • CSRF tokens
  • Thresholds
  • Low interval checking
  • Acknowledging
  • Notifications (e.g. Telegram)
  • Action handling
  • Embed functionality (for example in Grafana)
  • Protection against nuclear bombs and zombie apocalypses

Service checking and notifying

Uses JSON file(s) instead of a database such as MySQL! Nothing can break checking except purposefully human failure. Even if you delete the json file containing service checks, monitoring will still continue running!

Animation

Sample configuration

services.json

[
    {
        "identifier": "github.web",
        "host": "github.com",
        "command": "curl -H $HOST$ -t $TIMEOUT$ ",
        "timeout": 5,
        "interval": 15,
        "threshold": 3,
        "enabled": true,
        "acknowledged": false,
        "action": {
            "name": "telegram",
            "telegramtarget": [
                9001,
                -1337
            ]
        }
    },
    {
        "identifier": "localhost.ping",
        "host": "localhost",
        "command": "ping -H $HOST$ -t $TIMEOUT$ ",
        "timeout": 5,
        "interval": 15,
        "threshold": 3,
        "enabled": true,
        "acknowledged": false,
        "action": {
            "name": "none"
        }
    }
]

config.json

{
    "TelegramNotificationTarget": 0,
    "TelegramBotToken": "",
    "BaseFolder": "/etc/monitoring/",
    "ResourceFolder": "/usr/share/monitoring/",
    "ServerAddress": "0.0.0.0",
    "ServerPort": 4200,
    "SecureCookieName": "MonitoringSession",
    "SecureCookie": "ReplaceMeWithSomethingMoreSecure",
    "Users": [
        {
            "Username": "admin",
            "Hash": "$2a$10$Ctop420kek13379001d52"
        }
    ],
    "Cookieconfig": {
        "Path": "/",
        "Domain": "localhost",
        "MaxAge": 86400,
        "Secure": false,
        "HttpOnly": true
    },
}

About

Simple to use monitoring server application written in Go, extendable with scripts

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 53.3%
  • Shell 32.7%
  • HTML 7.1%
  • JavaScript 4.3%
  • CSS 2.6%