Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Home Lab Observability Stack

Prometheus + Grafana monitoring stack covering a hybrid home lab environment: Linux hosts, an Arista cEOS leaf-spine fabric (via SNMP), and AWS EC2 instances (via CloudWatch) — all visualized in a single unified Grafana dashboard.

Data Flow

graph LR
    ne["node_exporter<br/>(hosts)"] --> prom["Prometheus"]
    se["snmp_exporter<br/>(Arista switches)"] --> prom
    prom --> graf["Grafana"]
    cw["AWS CloudWatch<br/>(EC2 metrics)"] --> graf
Loading

Stack

  • Prometheus — central metrics store and scrape engine
  • Grafana — dashboards and (optionally) alerting
  • snmp_exporter — bridges SNMP-polled switch metrics into Prometheus
  • node_exporter — host-level metrics (CPU, memory, disk) on Linux nodes
  • AWS CloudWatch — added directly as a Grafana data source for EC2 metrics (no exporter needed)

Coverage

Source Metrics Method
Host server CPU, memory, disk node_exporter (systemd service)
Lab hosts CPU, memory, disk node_exporter (manual)
Arista switches (x4) Interface traffic, operational status, errors, discards SNMP via snmp_exporter (if_mib)
AWS EC2 instances CPU utilization, network I/O CloudWatch (native Grafana data source)

Running it

docker compose up -d
  • Prometheus: http://<host>:9090
  • Grafana: http://<host>:3000 (default login admin/admin, change on first login)

snmp.yml isn't included in this repo — it's a large, auto-generated file from the snmp_exporter project. Download the version matching your snmp_exporter image tag:

curl -LO https://raw.githubusercontent.com/prometheus/snmp_exporter/v0.30.1/snmp.yml

Notes from building this

  • Prometheus's config-reload API is disabled by default; start it with --web.enable-lifecycle to allow curl -X POST http://localhost:9090/-/reload.
  • Grafana panels pasted with "smart quotes" can silently fail to match any data — type filter values by hand if a query looks correct but returns nothing.
  • Always double-check a dashboard's own time-range picker before assuming a query is broken.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors