The phrase “treat others as you would have others treat you” is frequently used by parents while teaching their children the difference between right and wrong. As those kids become older, they generally get punishments for breaking the law and rewards for showing kindness to others. Children take away from this lesson that helping others is the correct thing to do.
With this in mind, we are trying to provide a good service or a simple help in return expecting the same. But sometimes things do not depend on people directly. Things that serve us on the hardware or software level.
Yesterday I was trying to work with my website and suddenly it went down.
Total Blackout – No Ping, no access to the console via VPS Hoster.
Luckily I was there when It happened and I had a chance to contact their support team via the chat system. Within a minute they replied to me and after a few minutes more we had a result. The server where my VPS was hosted crashed without a clear reason.
It happens, not a problem – there might be thousands of reasons why a server might crash. From hardware wear out and software bugs to mischievous clients who are willing to abuse their services in a way that might lead to a server crash. I have a small VPS server hosted under one roof with the other clients. Finding a reason and fixing it will be hard. Moreover, this is not my level problem.
The question arose in my head, what can I do if it happens when I am not online, and I cannot monitor the status of my tiny VPS?
I need someone or something to monitor my website and let me know when it’s down, right?
There are tons of solutions from custom-made scripts (https://github.com/tebelorg/Tipping) to big company monitoring solutions like pingdom.com, freshworks.com, JetPack, Uptime Robot, and so on.
Do not get me wrong, it is great to pay someone to provide you with a quality service, but this is not my option right now. I do not have the budget (or at least a big budget). I am still growing to play big and I would like to learn something new.
I would like to invest my time and understand the kitchen from the inside so that when I grow big I can set up infrastructure with some knowledge of what I need and why I need it.
The decision has been made. I need an Open Source, self-host monitoring solution.
How Do I Track My Online Services
Official Github: https://github.com/louislam/uptime-kuma
It is a self-hosted monitoring tool like “Uptime Robot”.
A lot of features that I would use for sure. Docker installation is available.
- Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / Ping / DNS Record / Push / Steam Game Server / Docker Containers
- Fancy, Reactive, Fast UI/UX
- Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 90+ notification services, click here for the full list
- 20-second intervals
- Multi Languages
- Multiple Status Pages
- Map Status Page to Domain
- Ping Chart
- Certificate Info
- Proxy Support
- 2FA available
I believe you know how to install things with docker, right?
No? Do you need your own Docker Instance?
I prefer using VPS (Virtual Private Servers) with Hetzner, Upcloud, or Linode with Ubuntu + DockerBy the way, here’s a quick guide from me on how to create your own VPS with Hetzner: >> Guide: How To Create VPS with Hetzner in 5 Minutes <<
Your second VPS instance should take only 2 minutes of your time. (my personal record is 4 seconds, lol) 😁
Great, you have ordered your own VPS instance and you ready to rock with Docker?
Go Ahead and Install Uptime Kuma and let me know what you think about Uptime Kuma.
Here are my stats, so far so good
This is how it looks in detail on my website
When any of my services will be down for 2 minutes, I should get a Telegram message. This is customizable.
In the future, I plan to create my own Prometheus metric server, but for this, I need a separate machine with Enterprise SSD. HDD is not an option, and Customer SSD will wear out quickly. Some day… 🙂
06:10 AM 11/24/2022