A complete Linux system monitoring solution using Bash
, Docker
, InfluxDB
, and Grafana
to collect, visualize, and store system metrics.
- ✅ Real-time monitoring of CPU, RAM, Disk, IP, Load Average
- 📄 Generate text, HTML, and Markdown reports
- 🖼️ GUI using
dialog
and optionalzenity
/yad
- 📈 Python graph for memory usage
- 📡 Send metrics to InfluxDB for time-series storage
- 📊 Optional Grafana integration for visualization
- 🐳 Dockerized environment for easy deployment
Tool | Purpose |
---|---|
Bash | Core scripting logic |
Docker | Containerization |
InfluxDB | Time-series data storage |
Grafana | Optional metric visualization |
psutil | Python library for memory graphs |
dialog/yad | GUI options |
system-monitor/
├── monitor.sh # Collect system info
├── gui_monitor.sh # Dialog GUI
├── html_report.sh # Generate HTML reports
├── markdown_report.sh # Generate Markdown reports
├── memory_chart.py # Python-based memory graph
├── memory_chart.png # Output image
├── Dockerfile # Docker setup
├── docker-compose.yml # Docker multi-service config
├── logs/ # Text reports
├── html_logs/ # HTML reports
└── README.md # You're here!
# Give execution permission
chmod +x monitor.sh gui_monitor.sh html_report.sh
# Run monitor
./monitor.sh
# Launch GUI (dialog-based)
./gui_monitor.sh
# Generate HTML report
./html_report.sh
docker-compose up --build
To rebuild:
docker-compose down
docker-compose up --build
Make sure InfluxDB is running on localhost:8086
and create the database:
curl -i -X POST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE system_monitoring"
- 🐍 Python Graph for memory:
python3 memory_chart.py
-
📊 Grafana Integration:
- Add
InfluxDB
data source - Query metrics (e.g.,
cpu_usage
,memory_usage
) - Create beautiful dashboards
- Add
-
🌐 Host HTML reports via mini-server:
./serve.sh
Then go to: http://localhost:8080
Zeyad Mohamed Abdelwahab
GitHub: @Zeyad97
Temperature may not be available on virtual machines.
Make sure required tools likempstat
,smartctl
,dialog
,bc
, andsensors
are installed.
Feel free to fork, improve, or use this tool in your own projects.