Post

Environment — Building the Foundation for IoT PC Monitoring

Environment — Building the Foundation for IoT PC Monitoring

🎯 Overview

Before implementing the monitoring system, we need to establish a stable and reproducible environment. A monitoring system is only as reliable as its environment.
This post defines a reproducible and production-like setup for building an IoT-based PC monitoring platform.

This includes:

  • Operating system setup
  • Container runtime configuration
  • Database installation
  • Monitoring tools preparation

focus on:

  • Separation of concerns
  • Container-based deployment
  • Hybrid data collection strategy

🖥️ System Environment

Below is the environment-level architecture:

1
2
3
4
5
6
7
8
9
10
11
12
[Windows 11]
├─ HWiNFO (Sensor Data)
├─ Telegraf (System Metrics)
└─ Python (Processing)[Rocky Linux + Podman]
├─ InfluxDB
├─ MySQL
├─ Redis (optional)
└─ Metabase
 ↓
[Slack Alert + Dashboard]

OS

  • Windows 11 (Data Collection Node)
  • Rocky Linux (Container Host)

📦 Container Platform

We use:

  • Podman (instead of Docker)

Why Podman?

  • Daemonless architecture
  • Better security model
  • Compatible with Docker CLI

🗄️ Data Infrastructure

1. InfluxDB (Time-Series Database)

Used for:

  • High-frequency sensor data
  • Real-time metric storage

2. MySQL (Relational Database)

Used for:

  • Aggregated data
  • Reporting and analytics

3. Redis (Optional)

Used for:

  • Caching
  • Real-time processing buffer

📡 Data Collection Tools

1. Telegraf

Used for:

  • CPU / Memory / Disk collection
  • Low-frequency metrics (60s)

2. HWiNFO

Used for:

  • Temperature
  • Fan Speed
  • Power consumption

🧠 Processing Layer

Python

Used for:

  • Sensor data parsing
  • Data transformation
  • Alert triggering

🔔 Alert System

Slack Webhook

Used for:

  • Real-time notifications
  • Threshold-based alerts

📊 Analytics Layer

Metabase

Used for:

  • Dashboard visualization
  • KPI analysis

🏗️ Environment Architecture

1
2
3
4
5
6
7
Windows (HWiNFO + Telegraf)
↓
Python Processing Layer
↓
InfluxDB / MySQL
↓
Slack / Metabase

🧱 1. Operating System Setup

Windows 11 (Data Collection Node)

Used for:

  • Hardware sensor extraction
  • System metric collection

Key constraint:

Windows does not provide native APIs for temperature or fan speed.


Rocky Linux (Container Host)

Used for:

  • Running databases and analytics tools
  • Stable server-side processing

📦 2. Container Platform — Podman

Why Podman?

FeatureBenefit
DaemonlessNo background service required
RootlessImproved security
Docker-compatibleEasy migration

Installation (Rocky Linux)

1
2
sudo dnf install -y podman
podman --version

🗄️ 3. InfluxDB (Time-Series Core) / MySQL

InfluxDB Initial Setup Organization Bucket (e.g. iot) API Token

MySQL Role of MySQL Store aggregated data Support BI tools (Metabase)


🌡️ 4. HWiNFO Setup (Sensor Data)

Why HWiNFO?

  • Provides access to:
    • CPU Temperature
    • Fan Speed
    • Power Consumption

Configuration

  • Run in Sensors-only mode
  • Enable:
    • Shared Memory Support

Multi-Rate Data Ingestion

TypeInterval
Sensor3 sec
System60 sec

🚀 Next Step

In the next post, we will implement the data collection layer, starting with Telegraf configuration and HWiNFO integration.

  • Telegraf configuration
  • HWiNFO integration
  • Python collector

This post is licensed under CC BY 4.0 by the author.