Sistem Yönetimi
100%

System Monitoring with Prometheus and Grafana

Implementing a modern, time-series based monitoring and alerting stack using Prometheus to collect metrics and Grafana for visualization.

Overview

Prometheus and Grafana form the industry-standard open-source stack for monitoring and observability in modern, cloud-native environments (especially Kubernetes). Prometheus is the engine that collects and stores metrics, while Grafana is the dashboard UI that visualizes them.

The Problem

Running production systems blindly is a recipe for disaster. If a database is slowly running out of disk space, or a web server's CPU usage spikes to 100%, administrators need to know immediately—ideally before the system crashes and users complain. Traditional monitoring tools like Nagios relied on static scripts and were difficult to scale in dynamic environments where containers are created and destroyed every minute.

Solution and Configuration

The solution is a robust Time-Series Database (TSDB) combined with dynamic dashboards. Prometheus periodically scrapes (pulls) metrics from configured endpoints.

Prometheus Configuration (prometheus.yml):

scrape_configs:
- job_name: 'linux_servers'
scrape_interval: 15s
static_configs:
- targets: ['10.0.0.5:9100', '10.0.0.6:9100']

The targets listed above run Node Exporter, a lightweight daemon that translates Linux system stats (CPU, RAM, Disk I/O) into a format Prometheus understands.

Technical Details

Unlike older push-based systems (where servers send data to a central hub), Prometheus uses a Pull-based architecture. It makes HTTP GET requests to the /metrics endpoint of the target applications. Data is stored as time-series (a value associated with a timestamp and key-value labels). To query this data, Prometheus provides PromQL (Prometheus Query Language). For example, 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) calculates the CPU usage percentage. Grafana connects to Prometheus as a data source and runs these PromQL queries to generate real-time, interactive graphs. The Alertmanager component can trigger Slack or PagerDuty alerts if a query result breaches a threshold.

Conclusion

The Prometheus/Grafana stack brings total transparency to infrastructure and applications. By transitioning from reactive troubleshooting to proactive observability, DevOps teams can identify bottlenecks, plan capacity upgrades, and maintain strict Service Level Agreements (SLAs).

Related Articles

View All