FREE Monitoring Tool for Home and Office Networks

IT PROJECTS

10/25/20224 min read

man standing in front Asus laptop
man standing in front Asus laptop

Want a free network monitoring tool that is easy to setup and actually gives you quality realtime updates? Enter Uptime Kuma. Uptime Kuma is a popular open-source monitoring tool designed to track the availability and performance of websites, servers, and other network services.

Uptime Kuma has gained significant popularity due to its simplicity, modern interface, and comprehensive feature set, making it an excellent choice for both small-scale personal use and larger organizational deployments. Here are the capabilities Uptime Kuma possesses:

Monitoring Capabilities

  • HTTP/HTTPS monitoring: Checks website availability with support for custom headers, authentication, and content verification

  • Ping monitoring: Traditional ICMP or TCP ping to check host availability

  • Port monitoring: Verifies if specific network ports are open and responsive

  • DNS monitoring: Checks if DNS servers are resolving correctly

  • Push monitoring: Accepts heartbeat signals from applications

  • Docker monitoring: Checks container status

  • MongoDB, PostgreSQL, MySQL: Database connection monitoring

  • MQTT, Redis, and more: Support for various application protocols

You can use this tool for your home lab or small office LAN to view device uptime, check the status of services, and set up alerts that will notify you if any device is down. We don't need a dedicated piece of equipment either, this tool can be installed on a virtual machine and here is how.

Installing Uptime Kuma on an ESXi Host as a Virtual Machine

This guide provides step-by-step instructions for installing Uptime Kuma on a virtual machine running on an ESXi host.

Prerequisites

  • VMware ESXi 6.7 or later

  • vSphere Client or ESXi Web Client access

  • Internet access for the VM

  • ISO image of a Linux distribution (Ubuntu Server 22.04 LTS recommended)

  • At least 1 vCPU, 1GB RAM, and 10GB storage for the VM

Step 1: Create a Virtual Machine in ESXi

  1. Log in to your ESXi host using the vSphere Client or ESXi Web Client

  2. Right-click on your ESXi host and select Create/Register VM

  3. Select Create a new virtual machine and click Next

  4. Enter a name for your VM (e.g., "Uptime-Kuma") and click Next

  5. Select a storage location for the VM and click Next

  6. Configure the virtual machine:

    • Guest OS Family: Linux

    • Guest OS Version: Ubuntu Linux (64-bit)

    • Click Next

  7. Customize the hardware:

    • CPU: 1 vCPU (minimum)

    • Memory: 1GB (minimum)

    • Hard disk: 10GB

    • Network adapter: Connect to your network

    • CD/DVD Drive: Select the Ubuntu Server ISO

    • Make sure the CD/DVD drive is connected and set to connect at power on

  8. Click Next and then Finish to create the VM

Step 2: Install Ubuntu Server

  1. Power on the VM

  2. Follow the Ubuntu Server installation prompts:

    • Select language, keyboard layout, and network settings

    • Configure a static IP address (recommended)

    • Set up hostname, create a user account, and set password

    • Install OpenSSH server when prompted

    • Complete the installation and reboot

Step 3: Update Ubuntu and Install Prerequisites

  1. Connect to your VM using SSH or the console

  2. Update the system packages:

    sudo apt updatesudo apt upgrade -y

  3. Install required dependencies:

    sudo apt install -y curl git npm nodejs

Step 4: Install Uptime Kuma

Option 1: Direct Installation

  1. Install Uptime Kuma using npm:

    sudo npm install -g pm2git clone https://github.com/louislam/uptime-kuma.gitcd uptime-kumanpm run setup

  2. Start Uptime Kuma using PM2 (process manager):

    pm2 start server/server.js --name uptime-kumapm2 savepm2 startup

Option 2: Docker Installation (Recommended)

  1. Install Docker:

    sudo apt install -y docker.iosudo systemctl enable --now docker

  2. Run Uptime Kuma as a Docker container:

    sudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Step 5: Configure Firewall

  1. If using UFW (Ubuntu's firewall), allow port 3001:

    sudo ufw allow 3001/tcpsudo ufw reload

Step 6: Access Uptime Kuma

  1. Open a web browser and navigate to http://<your-vm-ip>:3001

  2. You should see the Uptime Kuma setup page

  3. Create an admin account when prompted

Step 7: Configure Uptime Kuma

  1. Log in with your admin account

  2. Add your first monitor:

    • Click "Add New Monitor"

    • Select the monitor type (HTTP, Ping, etc.)

    • Enter the required details

    • Click "Save"

  3. Configure notification methods as needed

Step 8: Securing Uptime Kuma (Optional)

Using Reverse Proxy (Nginx)

  1. Install Nginx:

    sudo apt install -y nginx

  2. Create a new Nginx config file:

    sudo nano /etc/nginx/sites-available/uptime-kuma

  3. Add the following configuration:

    server { listen 80; server_name monitor.yourdomain.com; location / { proxy_pass http://localhost:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }}

  4. Enable the site and restart Nginx:

    sudo ln -s /etc/nginx/sites-available/uptime-kuma /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx

Adding SSL with Let's Encrypt

  1. Install Certbot:

    sudo apt install -y certbot python3-certbot-nginx

  2. Obtain and configure SSL certificate:

    sudo certbot --nginx -d monitor.yourdomain.com

Step 9: Maintenance and Updates

For Direct Installation

  1. To update Uptime Kuma:

    cd uptime-kumagit pullnpm installnpm run buildpm2 restart uptime-kuma

For Docker Installation

  1. To update Uptime Kuma:

    sudo docker pull louislam/uptime-kuma:1sudo docker stop uptime-kumasudo docker rm uptime-kumasudo docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1

Troubleshooting

  • If you can't access the web interface, check that:

    • The VM is running

    • The firewall allows traffic on port 3001

    • The Docker container is running (sudo docker ps)

    • The VM has network connectivity

  • If Uptime Kuma fails to start:

    • Check logs with pm2 logs uptime-kuma or sudo docker logs uptime-kuma

    • Ensure all dependencies are installed

    • Verify disk space is sufficient

Related Stories