This is a personal blog focused on computer software and hardware. Most
projects are implementing software and hardware for a homelab. What is a
homelab? I would say a homelab could be a single computer or dozens of
computers connected in a network. You can also integrate with computers
in the Cloud.
Blackbox exporter is used by Prometheus to monitor HTTP(S), TCP, DNS, and ICMP endpoints. If you are not familiar with prometheus, check out a previous post. The blackbox program will collect metrics and make them available on a http server. Prometheus needs to be configured to collect metrics from the blackbox exporter and then grafana can be used to visualize those metrics.
Configure blackbox
Blackbox is configured with a .yml file. The file below should be mounted inside the container. This example will monitor a HTTPS site, fail if there is no SSL/TLS encryption, using a HTTP GET request, using ipv4 protocol, allowing status codes 200 and 204, using the blackbox http prober, and will timeout after 15 seconds. This file will be in the same directory as the main prometheus config if you follow from the previous post.
Kubernetes, also known as k8s, is an open-source system for automating deployment, scaling, and managment of containerized applications. The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the “K” and the “s”. Kubernetes builds on 15 years of development powering the largest search engine Google with contributions from the open-source community. Kubernetes is focused on scalability from running to to a billion containers. K8s is open source and can be run on your own computer or in public cloud infrastructure.
Uptime kuma is an open-source tool for monitoring uptime for
HTTP(s)
TCP
HTTP(s) Keyword
Ping
DNS Record
Push
Steam Game Server
Updated 2023-05-14
This is one of my more popular posts according to Google and I still use Uptime Kuma. I am going to recreate my own instance and go over how to deploy the app and how to deploy a secure reverse proxy in front of the app.
Install with Docker
Prerequisites
Originally I had set up a virtual machine in the Amazon Web Services Cloud (AWS) but for the purposes of this monitoring app, AWS is too expensive. All you need is a small virtual machine running in a cloud provider with a public IP address and you can host your own web app and secure gateway using containers running in your virtual machine.
updated: 2025-02-08 : update post with slug prometheus-homelabupdated: 2023-10-01 : updated container image tags, updated proxmox exporter, replaced deprecated ansible role for node_exporter
Note
This is an older post. I have different approaches to running an observability stack for metrics. Check out a new post for monitoring prometheus metrics in a homelab with opentelemetry.
Prometheus is an open-source systems monitoring and alerting software. Prometheus collects and stores metrics as time series data, so one dimension of the data is always based on the time that the metric was recorded. Metrics are pulled over HTTP into the prometheus system. Each data monitoring source will need a data exporter that presents the metrics on a http server that prometheus can pull from.
Relax-and-Recover is an open-source tool to create computer backup archives and bootable ISO images of a Linux system. ReaR creates a bootable image consisting of the latest state of the system to be backed up. This image can be used for disaster recovery. ReaR was designed to be easy to setup and can be run through a cron job with minimal effort if you have storage somewhere for storing backup images.