Uptime Kuma is an open source monitoring tool that can be used to monitor the service uptime along with few other stats like Ping Status, Avg. Response time, uptime etc. I am one the contributors for the
Uptime Kuma Github project and I found it extremely easy and straight forward to use.
Project link: https://github.com/louislam/uptime-kuma
Super easy to use and configure, you can give it a try without even setting it on your server.
You can directly access the demo sandbox environment with ten minutes validity as per https://demo.uptime.kuma.pet
Uptime-Kuma helps in easy monitoring of uptime for the following:
- HTTP(s) Keyword Monitoring
- DNS Record
- Steam Game Server
Uptime-Kuma Docker and Non-Docker installation: Original Github Repo
> Docker Installation:
> docker volume create uptime-kuma (Created Docker volume to be consumed by particular container)
> docker run -d — restart=always -p 3001:3001 -v uptime-kuma:/app/data — name uptime-kuma louislam/uptime-kuma:1 (Configured container to restart every time when host is restarted, bind service port as 3001 and mount the created volume to /app/data directory of container.)
Access the service via
> Non-Docker Installation: Requirement: Node.js >= 14, Git and Process Manager 2 (PM2).
npm install -g npm(Update )
git clone https://github.com/louislam/uptime-kuma.git
npm run setup
pm2 start server/server.js --name uptime-kuma
(Run in background using PM2)
Access the service via
The default login screen will look as per below: (I am using Uptime Kuma’s demo instance)
- Add New Monitor: Like Ping, keyword monitoring, etc.
- Status Page: It will show you status of your all monitoring options.
- Dashboard with quick stats like if servers are up or down etc.
- Settings: You can change timezone, theme (dark or light), setup authentication option like 2FA etc.
I have shared all the “Uptime Kuma” screenshots as per below.
- Dashboard Option:
- Settings Page:
- Language change settings option.
- Theme Selection and Time Zone setup
- Dark theme:
- Authentication option on settings page: Change password, setup 2FA or backup the monitor setup.
- Click on
- Set up 2FA, use authenticator or similar app to scan or provide the verification token.
Add New Monitoroption.
- Notification setup for realtime alerting.
Click `Setup Notification`
- Notification options and type:
Click on option below Notification type and select as per your requirement
- Monitor via different HTTP methods — GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS.
- The heartbeat interval time should be minimum 20seconds and not much limit on maximum limit. (I tried with 10,000 seconds)
- Select the status codes that needs to be considered as a successful response, for ex: 200 or 404.
- Adding tags to the monitored entity, for example: I have added the tag of “social Networking”.
Click on "+ Add"
- You select the pre-existing tags or provide the name and select the colour as
Red, Green, Blue etc.
- Refer to the left side of the below screenshot for added Green colour tag for “Social Networking”.
- Setting up keyword monitoring: It will enable you to monitor the occurrence of specific keyword on monitored link.
Select the URL and provide Keyword to be monitored as below. I am using "COVID" to monitor the Google News link.
- Keyword Stats:
- Keywords Dashboard with other statistics.
- Push Monitoring: You can call the Uptime Kuma API after specified time interval.
- Try the generated link in the above link and paste in your browser. You may select the response as Ok msg or ping response. (change value in API url, `/api/push/1g39y3de1D?msg=OK&ping=`
- Overall Monitoring Dashboard with HTTP Ping, Keyword and Push Monitoring with specified tags.
- You can setup “Status Page” for neat display of your monitoring stats.
- Raise an common incident that will be visible to all users on “Status Page”.
Click Create Incident, provide Title, Priority (Style) and click Post.
Hope, that the above references were able to help you to get started with Uptime Kuma. There are other similar utilities as well but I found this one simple to setup and function.