--- created: 2024-11-07T00:14:29.000Z type: 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 ## Links - [gatus.io](https://gatus.io/) - [github](https://github.com/TwiN/gatus) - [techno-tim](https://technotim.live/posts/gatus-uptime-monitoring/#gatus-config) ## Install - [ ] CasaOS - [x] 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) ```bash 1744999536292 = 638805963362920000 = 2025-1.Spring = Fri Apr 18 2025 11:05:35 GMT-0700 (Mountain Standard Time) mklink /J "D:\web-sites\Gatus\current" "D:\web-sites\Gatus\v5.17.0" ``` ```bash 1744999568664 = 638805963686640000 = 2025-1.Spring = Fri Apr 18 2025 11:06:08 GMT-0700 (Mountain Standard Time) # 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 ``` ```yaml NSSM-Application 1743806212388 = 638794030123880000 = 2025-1.Spring = Fri Apr 04 2025 15:36:51 GMT-0700 (Mountain Standard Time) Path: D:\web-sites\Gatus\current\gatus.exe Startup Directory: D:\web-sites\Gatus\current ``` ```yml NSSM-Details 1743806328796 = 638794031287960000 = 2025-1.Spring = Fri Apr 04 2025 15:38:48 GMT-0700 (Mountain Standard Time) Startup type: Automatic (Delay Start) ``` ```yml NSSM-I/O 1743806328796 = 638794031287960000 = 2025-1.Spring = Fri Apr 04 2025 15:38:48 GMT-0700 (Mountain Standard Time) Input (stdin): Output (stdout): D:\web-sites\Gatus\current\logs\service.out.log Error (stderr): D:\web-sites\Gatus\current\logs\service.error.log ``` ```yml NSSM-Environment 1743806359765 = 638794031597650000 = 2025-1.Spring = Fri Apr 04 2025 15:39:19 GMT-0700 (Mountain Standard Time) GATUS_CONFIG_PATH=./oi-metrology-viewer.yaml ``` ```bash Administrator 1743806328796 = 638794031287960000 = 2025-1.Spring = Fri Apr 04 2025 15:38:48 GMT-0700 (Mountain Standard Time) sc start gatus sc query gatus sc stop gatus sc start gatus # systemctl start gatus ``` ```bash 1745023773786 = 638806205737860000 = 2025-1.Spring = Fri Apr 18 2025 17:49:33 GMT-0700 (Mountain Standard Time) 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 ```bash 1743817269373 = 638794140693730000 = 2025-1.Spring = Fri Apr 04 2025 18:41:08 GMT-0700 (Mountain Standard Time) sc.exe create "Gatus-to-MonA" binpath="C:\Windows\System32\config\systemprofile\AppData\Local\IFXApps\Gatus-to-MonA\Gatus-to-MonA.exe" ``` ## MonA Instances - [MES_APC_GATUS](https://mona.auc.infineon.com/auc/systems/563556/dependencies?config=true) - [messa013ec.infineon.com](http://messa013ec.infineon.com:8082) - [MES_EAF_GATUS](https://mona.auc.infineon.com/auc/systems/563493/dependencies?config=true) - [messa08ec.infineon.com](http://messa08ec.infineon.com:8082) - [MES_EAF_STAGE_GATUS](https://mona.auc.infineon.com/auc/systems/563516/dependencies?config=true) - [mestsa07ec.infineon.com](http://mestsa07ec.infineon.com:8082) - [MES_FAB_APPROVAL_SYSTEM_GATUS](https://mona.auc.infineon.com/auc/systems/563517/dependencies?config=true) - [messa016ec.infineon.com](http://messa016ec.infineon.com:8082) - https://messa016ec.infineon.com - [MES_FAB_TIME_GATUS](https://mona.auc.infineon.com/auc/systems/563518/dependencies?config=true) - [messa004.infineon.com](http://messa004.infineon.com:8082) - [MES_INFINITY_QS_SI_GATUS](https://mona.auc.infineon.com/auc/systems/563519/dependencies?config=true) - [messa04ec.infineon.com](http://messa04ec.infineon.com:8082) - [MES_OPEN_INSIGHT_GATUS](https://mona.auc.infineon.com/auc/systems/563520/dependencies?config=true) - GATUS_CONFIG_PATH=./oi.yaml - [messa01ec.infineon.com](http://messa01ec.infineon.com:8082) - http://messa014.infineon.com/api/heartbeat - http://messa014.infineon.com/API/RemoteHealthCheck/Mona/MonaEngines/DB-EN1 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN10 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN11 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN12 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN2 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN3 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN4 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN5 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN6 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN7 - http://messa014.infineon.com/api/RemoteHealthCheck/Mona/MonaEngines/DB-EN9 - [MES_OPEN_INSIGHT_DEV_GATUS](https://mona.auc.infineon.com/auc/systems/563521/dependencies?config=true) - [mestsa01ec.infineon.com](http://mestsa01ec.infineon.com:8082) - [MES_OI_METROLOGY_VIEWER_GATUS](https://mona.auc.infineon.com/auc/systems/557090/dependencies?config=true) - [messa010ec.infineon.com](http://messa010ec.infineon.com:8082) - [MES_OI_WEB_SERVICES_GATUS](https://mona.auc.infineon.com/auc/systems/563522/dependencies?config=true) - [messa020ec.infineon.com](http://messa020ec.infineon.com:8082) - ~~messa014.infineon.com~~ - https://messa014.infineon.com/scan - https://messa014.infineon.com:50184 - https://messa014.infineon.com:5022 - [LEO_EAF_GATUS](https://mona.auc.infineon.com/auc/systems/563522/dependencies?config=true) - [leosaec17.infineon.com](http://leosaec17.infineon.com:8082) ## Prometheus config to consume Gatus metrics - [prometheus](https://github.com/TwiN/gatus/blob/master/.examples/docker-compose-grafana-prometheus/README.md) ## 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 - [x] Open Source - [x] Written in GoLang - [x] Doesn't need WAN connectivity - [x] Keeps history with simple graph - [x] Metrics output built for Prometheus - [x] Sends e-mail alerts and has other alerting - [x] Check status more often than five minute intervals - [x] Single Config file that can be put in source control - [x] Can wait for pushed data as well as default pull data - [x] Simple GUI (website) that can be accessed outside server - [x] Badge api that can be embedded in website (see oi server?) - [x] Easy deployment [one binary, one config, runs via Non-Sucking Service Manager (nssm) and outputs sqlite files] ### Drawbacks - [x] Another item to manage - [x] Not part of the target solution - [x] Haven't figured out how to push to MonIn directly with both heartbeat and performance