2025-04-04 18:35:22 -07:00
2025-04-04 18:35:22 -07:00
2025-04-04 17:46:04 -07:00
2025-04-04 18:35:22 -07:00
2025-04-04 18:35:22 -07:00
2025-04-30 12:01:41 -07:00

created, type
created type
2024-11-07T00:14:29.000Z note

Gatus

Gatus is an advanced automated status page that lets you monitor your applications and configure alerts to notify you if there's an issue

Install

  • CasaOS
  • Docker
  • Home Assistant
  • lxc
  • Snap
  • TTeck
  • Umbrel
  • Yu No Host

Gatus

  • Clone repo from github or local ADO
  • Build using go lang
  • Copy exe only to server
  • Create *.yaml file for configuration

NSSM - the Non-Sucking Service Manager

  • Copy zip to server and extract to directory
  • Run a cmd window with administrator access

ecFIsysadmin-10.95.140.37-messa010ec(OI-Metrology-Viewer)

mklink /J "D:\web-sites\Gatus\current" "D:\web-sites\Gatus\v5.17.0"
# cd "C:\Users\ecfisysadmin\AppData\Local\IFXApps\nssm-2.24\win64"
C:
cd "C:\Windows\System32\config\systemprofile\AppData\Local\IFXApps\nssm-2.24\win64"
nssm install gatus
nssm edit gatus
Path: D:\web-sites\Gatus\current\gatus.exe
Startup Directory: D:\web-sites\Gatus\current
Startup type: Automatic (Delay Start)
Input (stdin):
Output (stdout): D:\web-sites\Gatus\current\logs\service.out.log
Error (stderr): D:\web-sites\Gatus\current\logs\service.error.log
GATUS_CONFIG_PATH=./oi-metrology-viewer.yaml
sc start gatus
sc query gatus
sc stop gatus
sc start gatus
# systemctl start gatus
mklink /J "D:\web-sites\Gatus\.Gatus-to-MonA" "C:\Windows\System32\config\systemProfile\AppData\Local\IFXApps\Gatus-to-MonA"
mkdir "D:/Tmp/Gatus-to-MonA"

Nginx

  • Add new server to proxy pass to 8081
  • Test nginx
  • Restart nginx

MonA

  • Create generic resource type
  • On overview page click edit then click update without making any changes
  • Wait a hour
  • On data page click Edit Resource Name then click update without making any changes
  • Wait a day
  • On overview page click use for main status (Heartbeat)
  • Refresh config page and search for threshold
  • Define threshold

Sdk="Microsoft.NET.Sdk.Worker"

  • Build with AOT task
  • Copy publish directory to server
  • Copy / edit secrets file
  • Verify windows event viewer entry for company name
sc.exe create "Gatus-to-MonA" binpath="C:\Windows\System32\config\systemprofile\AppData\Local\IFXApps\Gatus-to-MonA\Gatus-to-MonA.exe"

MonA Instances

Prometheus config to consume Gatus metrics

Outline

Goal

  • Monitor TLS Cert

Options

  • Uptime Kuma
    • Configuration is GUI driven
  • Prometheus
    • Not as easy to get started
  • Grafana
    • Too many features
    • Open source but still have to login to use

Benefits

  • Open Source
  • Written in GoLang
  • Doesn't need WAN connectivity
  • Keeps history with simple graph
  • Metrics output built for Prometheus
  • Sends e-mail alerts and has other alerting
  • Check status more often than five minute intervals
  • Single Config file that can be put in source control
  • Can wait for pushed data as well as default pull data
  • Simple GUI (website) that can be accessed outside server
  • Badge api that can be embedded in website (see oi server?)
  • Easy deployment [one binary, one config, runs via Non-Sucking Service Manager (nssm) and outputs sqlite files]

Drawbacks

  • Another item to manage
  • Not part of the target solution
  • Haven't figured out how to push to MonIn directly with both heartbeat and performance
Description
No description provided
Readme 63 KiB
Languages
C# 100%