Labtime: A Simple Uptime Checker for Your Homelab
How I Created a Monitoring System to Keep My Services Running Smoothly
I’ve been running my own homelab for a while now, and one of the biggest challenges I’ve faced is keeping track of my services’ uptime. I’ve tried a few different solutions, but none of them seemed to fit my needs perfectly. That’s why I decided to create my own uptime checker, which I’ve called Labtime.
Labtime is a Go-based monitoring system that checks HTTP endpoints, TLS certificates, and Docker containers, exposing metrics via Prometheus. It’s been a labor of love, and I’m excited to share it with the community. In this post, I’ll walk you through how I created Labtime and how it can help you keep your homelab running smoothly.
Why I Created Labtime
I started working on Labtime because I wasn’t fully satisfied with the existing uptime checkers available. I was using Uptime-kuma, but it didn’t quite fit my needs. I wanted a simple way to monitor my services’ status, without having to navigate another web interface. I also wanted to integrate it with my existing Prometheus/Grafana stack, which I use to monitor my homelab’s performance.
I decided to create my own solution, using Go as the programming language. I chose Go because it’s lightweight, easy to use, and has a great community of developers. I also wanted to make sure that Labtime was configurable, so that users could customize it to fit their needs.
Features of Labtime
So, what can Labtime do? Here are some of its key features:
- HTTP Monitoring: Labtime can check website response codes with configurable HTTP methods.
- TLS Certificate Monitoring: Labtime can monitor SSL/TLS certificate expiration dates, so you can stay on top of your security.
- Docker Container Monitoring: Labtime can track container status, so you can see if your containers are running smoothly.
- Prometheus Integration: Labtime exports metrics for monitoring dashboards, so you can integrate it with your existing Prometheus/Grafana stack.
- Configurable Intervals: Labtime allows you to set custom check intervals per monitor, so you can customize it to fit your needs.
- Distroless and Rootless Container: Labtime uses a secure, minimal container image, which makes it easy to deploy and manage.
- JSON Schema Validation: Labtime has a JSON schema of the YAML configuration available, which makes it easy to perform in-editor validation.
How Labtime Works
So, how does Labtime work? It’s actually pretty simple. You configure Labtime using a YAML configuration file, which specifies the monitors you want to use and the intervals at which you want to check them. Labtime then uses these monitors to check your services’ status, and exports the metrics to Prometheus.
You can then use Grafana to visualize the metrics and see how your services are performing. It’s a simple, yet powerful way to keep track of your homelab’s uptime and performance.
Conclusion
Labtime is a simple, yet powerful uptime checker that can help you keep your homelab running smoothly. It’s highly configurable, easy to use, and integrates well with existing Prometheus/Grafana stacks. If you’re looking for a way to monitor your homelab’s uptime and performance, I encourage you to check out Labtime.
You can find Labtime on GitHub, where you can star, fork, or contribute to the project. I’ve also written a development guide with architecture documentation, which makes it easy to get started with implementing new monitor sources.
I hope you find Labtime useful, and I look forward to hearing your feedback and suggestions.
Labtime: Prosty Sprawdzacz Dostępności Dla Twojego Homelabu
Jak Stworzyłem System Monitorowania, Żeby Moje Usługi Działały Bez Przerw
Od dawna prowadzę swój własny homelab i jednym z największych wyzwań, z którymi się zmagałem, było śledzenie dostępności moich usług. Wypróbowałem kilka różnych rozwiązań, ale żadne z nich nie spełniało moich potrzeb w pełni. Dlatego postanowiłem stworzyć własny sprawdzacz dostępności, którego nazwałem Labtime.
Labtime to system monitorowania napisany w języku Go, który sprawdza punkty końcowe HTTP, certyfikaty TLS i kontenery Docker, a następnie eksportuje metryki do Prometheus. Był to projekt, który wymagał dużo pracy, ale jestem podekscytowany, że mogę go udostępnić społeczności. W tym poście opowiem, jak stworzyłem Labtime i jak może on pomóc w utrzymaniu Twojego homelabu w działaniu.
Dlaczego Stworzyłem Labtime
Zacząłem pracę nad Labtime, ponieważ nie byłem w pełni zadowolony z istniejących sprawdzaczy dostępności. Używałem Uptime-kuma, ale nie spełniał on moich potrzeb. Chciałem prosty sposób na śledzenie stanu moich usług bez konieczności nawigowania w innej interfejsie webowej. Chciałem również zintegrować go z moim istniejącym stosiem Prometheus/Grafana, który używam do monitorowania wydajności mojego homelabu.
Postanowiłem stworzyć własne rozwiązanie, używając języka Go. Wybrałem Go, ponieważ jest lekki, łatwy w użyciu i ma dobrą społeczność deweloperów. Chciałem również upewnić się, że Labtime jest konfigurowalny, aby użytkownicy mogli dostosować go do swoich potrzeb.
Funkcje Labtime
Co więc może zrobić Labtime? Oto niektóre z jego kluczowych funkcji:
- Monitorowanie HTTP: Labtime może sprawdzić kody odpowiedzi stron internetowych z konfigurowalnymi metodami HTTP.
- Monitorowanie Certyfikatów TLS: Labtime może monitorować daty wygaśnięcia certyfikatów SSL/TLS, abyś mógł zachować kontrolę nad swoją bezpieczeństwem.
- Monitorowanie Kontenerów Docker: Labtime może śledzić stan kontenerów, abyś mógł zobaczyć, czy Twoje kontenery działają prawidłowo.
- Integracja z Prometheus: Labtime eksportuje metryki do Prometheus, abyś mógł zintegrować go ze swoim istniejącym stosiem Prometheus/Grafana.
- Konfigurowalne Intervaly: Labtime pozwala ustalić niestandardowe interwały sprawdzania dla każdego monitora, abyś mógł dostosować go do swoich potrzeb.
- Bezpieczny i Minimalny Kontener: Labtime używa bezpiecznego i minimalnego kontenera, który ułatwia wdrożenie i zarządzanie.
- Walidacja Schematu JSON: Labtime ma schemat JSON konfiguracji YAML dostępny, który umożliwia wykonywanie walidacji w edytorze.
Jak Działa Labtime
Jak więc działa Labtime? W rzeczywistości jest to dość proste. Konfigurujesz Labtime za pomocą pliku konfiguracyjnego YAML, który określa monitory, które chcesz użyć, oraz interwały, w których chcesz je sprawdzić. Labtime następnie używa tych monitorów do sprawdzenia stanu Twoich usług i eksportuje metryki do Prometheus.
Następnie możesz użyć Grafana do wizualizacji metryk i zobaczyć, jak Twoje usługi działają. Jest to prosty, ale potężny sposób na śledzenie dostępności i wydajności Twojego homelabu.
Podsumowanie
Labtime to prosty, ale potężny sprawdzacz dostępności, który może pomóc w utrzymaniu Twojego homelabu w działaniu. Jest高度 konfigurowalny, łatwy w użyciu i zintegrowany z istniejącymi stosami Prometheus/Grafana. Jeśli szukasz sposobu na monitorowanie dostępności i wydajności Twojego homelabu, zachęcam do sprawdzenia Labtime.
Możesz znaleźć Labtime na GitHub, gdzie możesz go oznaczyć, rozgałęzić lub przyczynić się do projektu. Napisałem również przewodnik rozwoju z dokumentacją architektury, który ułatwia rozpoczęcie wdrażania nowych źródeł monitorowania.
Mam nadzieję, że Labtime będzie dla Ciebie przydatny, i czekam na Twoją opinię i sugestie.