Skip to content
Refalia Defani
Go back

Integrated Observability: Uptime Kuma & MikroTik Monitoring via Prometheus & Grafana

Project Overview

Designed and implemented a centralized monitoring system that integrates Uptime Kuma for application uptime monitoring and MikroTik for network performance tracking—all visualized through Prometheus and Grafana.

This project was also the basis for my published research in a SINTA 3 accredited national journal.

Architecture

┌──────────────────────────────────────────────────┐
│              Monitoring Infrastructure            │
│                                                  │
│  ┌─────────────┐     ┌──────────────────┐       │
│  │ Uptime Kuma │────▶│                  │       │
│  │ (App Health)│     │   Prometheus     │       │
│  └─────────────┘     │  (Time-Series    │       │
│                      │   Database)      │       │
│  ┌─────────────┐     │                  │       │
│  │  MikroTik   │────▶│                  │       │
│  │  (Network)  │     └────────┬─────────┘       │
│  └─────────────┘              │                  │
│                      ┌────────▼─────────┐        │
│  ┌─────────────┐     │    Grafana       │        │
│  │ Linux Agents│────▶│  (Dashboards &   │        │
│  │ (Node Exp.) │     │   Alerting)      │        │
│  └─────────────┘     └──────────────────┘        │
└──────────────────────────────────────────────────┘

Implementation Details

Prometheus Configuration

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'uptime-kuma'
    static_configs:
      - targets: ['uptime-kuma:3001']

  - job_name: 'mikrotik'
    static_configs:
      - targets: ['mikrotik-exporter:9436']

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node1:9100', 'node2:9100', 'node3:9100']

Custom Grafana Dashboards

Built dashboards for:

Automated Agent Deployment

#!/bin/bash
# Deploy node_exporter on all Linux servers
ansible-playbook -i inventory.yml deploy-monitoring-agents.yml

Key Features

Impact

Tech Stack


Share this post on:

Previous Post
Automating Security Pipelines & Real-time Notifications at Lyrid.io
Next Post
Managing Blockchain Infrastructure at Ditjen Dikti (IDREN Network)