add grafana dashboards
This commit is contained in:
80
ansible/playbooks/day2_install_node_exporter.yml
Normal file
80
ansible/playbooks/day2_install_node_exporter.yml
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
---
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# FILE: ansible/playbooks/day2_install_node_exporter.yml
|
||||||
|
# DESCRIPTION: Install and configure Prometheus Node Exporter on Linux hosts.
|
||||||
|
#
|
||||||
|
# Targets two groups with different firewall managers:
|
||||||
|
# - proxmox_nodes : Proxmox hypervisors (Debian, firewalld not present,
|
||||||
|
# uses iptables/no firewall — just open the port via UFW
|
||||||
|
# if present, otherwise skip)
|
||||||
|
# - monitored_vms : Ubuntu VMs managed by UFW
|
||||||
|
#
|
||||||
|
# After installing on new hosts, re-runs day1_deploy_monitoring.yml to refresh
|
||||||
|
# the Prometheus scrape config is NOT needed — targets are already statically
|
||||||
|
# defined in prometheus.yaml.j2 for the Proxmox nodes. For new VMs, add the
|
||||||
|
# IP to the prometheus.yaml.j2 proxmox-vms job and re-run day1_deploy_monitoring.yml.
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml
|
||||||
|
# ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml --limit proxmox_nodes
|
||||||
|
# ansible-playbook -i inventory.yml playbooks/day2_install_node_exporter.yml --limit monitored_vms
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# ── Play 1: Proxmox hypervisors ───────────────────────────────────────────────
|
||||||
|
# Proxmox runs Debian. The prometheus.prometheus.node_exporter role installs
|
||||||
|
# a binary + systemd service without touching apt, which is what we want on
|
||||||
|
# hypervisors (keep the package footprint clean).
|
||||||
|
# Note: Proxmox does not run UFW. Port 9100 is open by default on VLAN 71.
|
||||||
|
|
||||||
|
- name: Install Node Exporter on Proxmox hypervisors
|
||||||
|
hosts: proxmox_nodes
|
||||||
|
become: true
|
||||||
|
|
||||||
|
vars:
|
||||||
|
node_exporter_version: "1.9.1"
|
||||||
|
node_exporter_web_listen_address: "0.0.0.0:9100"
|
||||||
|
node_exporter_enabled_collectors:
|
||||||
|
- systemd
|
||||||
|
- processes
|
||||||
|
- filesystem
|
||||||
|
- meminfo
|
||||||
|
- cpu
|
||||||
|
- diskstats
|
||||||
|
- netdev
|
||||||
|
- loadavg
|
||||||
|
- uname
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: prometheus.prometheus.node_exporter
|
||||||
|
|
||||||
|
# ── Play 2: Ubuntu VMs ────────────────────────────────────────────────────────
|
||||||
|
# Standard Ubuntu hosts with UFW. Same role, adds UFW allow rule for 9100.
|
||||||
|
|
||||||
|
- name: Install Node Exporter on monitored VMs
|
||||||
|
hosts: monitored_vms
|
||||||
|
become: true
|
||||||
|
|
||||||
|
vars:
|
||||||
|
node_exporter_version: "1.9.1"
|
||||||
|
node_exporter_web_listen_address: "0.0.0.0:9100"
|
||||||
|
node_exporter_enabled_collectors:
|
||||||
|
- systemd
|
||||||
|
- processes
|
||||||
|
- filesystem
|
||||||
|
- meminfo
|
||||||
|
- cpu
|
||||||
|
- diskstats
|
||||||
|
- netdev
|
||||||
|
- loadavg
|
||||||
|
- uname
|
||||||
|
|
||||||
|
pre_tasks:
|
||||||
|
- name: Open Node Exporter port in UFW
|
||||||
|
community.general.ufw:
|
||||||
|
rule: allow
|
||||||
|
port: "9100"
|
||||||
|
proto: tcp
|
||||||
|
comment: "Prometheus Node Exporter"
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: prometheus.prometheus.node_exporter
|
||||||
31
cluster/applications/monitoring/dashboards.yaml
Normal file
31
cluster/applications/monitoring/dashboards.yaml
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# FILE: cluster/applications/monitoring/dashboards.yaml
|
||||||
|
# DESCRIPTION: Custom Grafana dashboards as ConfigMaps.
|
||||||
|
# Picked up automatically by the Grafana sidecar via label:
|
||||||
|
# grafana_dashboard: "1"
|
||||||
|
# searchNamespace: ALL means these can live in any namespace.
|
||||||
|
#
|
||||||
|
# NOTE: Community dashboards (gnetId) live in values.yaml under
|
||||||
|
# grafana.dashboards. This file is for custom/homegrown dashboards only.
|
||||||
|
#
|
||||||
|
# USAGE: Add a new dashboard by creating a new ConfigMap entry below.
|
||||||
|
# The data key must end in .json — Grafana uses the filename as the
|
||||||
|
# dashboard title source. Keep one dashboard per ConfigMap for clarity.
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Example structure — replace with real dashboard JSON when ready:
|
||||||
|
#
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: ConfigMap
|
||||||
|
# metadata:
|
||||||
|
# name: dashboard-mk-labs-overview
|
||||||
|
# namespace: monitoring
|
||||||
|
# labels:
|
||||||
|
# grafana_dashboard: "1"
|
||||||
|
# data:
|
||||||
|
# mk-labs-overview.json: |
|
||||||
|
# {
|
||||||
|
# "title": "mk-labs Overview",
|
||||||
|
# "panels": [],
|
||||||
|
# ...
|
||||||
|
# }
|
||||||
@@ -247,26 +247,54 @@ grafana:
|
|||||||
|
|
||||||
dashboards:
|
dashboards:
|
||||||
default:
|
default:
|
||||||
|
# ── Already present ──────────────────────────────────────────────────────
|
||||||
node-exporter-full:
|
node-exporter-full:
|
||||||
gnetId: 1860
|
gnetId: 1860
|
||||||
revision: 37
|
revision: 37
|
||||||
datasource: Prometheus
|
datasource: Prometheus
|
||||||
kubernetes-cluster:
|
|
||||||
gnetId: 7249
|
|
||||||
revision: 1
|
|
||||||
datasource: Prometheus
|
|
||||||
kubernetes-pods:
|
|
||||||
gnetId: 6336
|
|
||||||
revision: 1
|
|
||||||
datasource: Prometheus
|
|
||||||
unifi-poller:
|
|
||||||
gnetId: 11315
|
|
||||||
revision: 9
|
|
||||||
datasource: Prometheus
|
|
||||||
proxmox-cluster:
|
proxmox-cluster:
|
||||||
gnetId: 10347
|
gnetId: 10347
|
||||||
revision: 5
|
revision: 5
|
||||||
datasource: Prometheus
|
datasource: Prometheus
|
||||||
|
unifi-poller:
|
||||||
|
gnetId: 11315
|
||||||
|
revision: 9
|
||||||
|
datasource: Prometheus
|
||||||
|
|
||||||
|
# ── Kubernetes ───────────────────────────────────────────────────────────
|
||||||
|
kubernetes-global:
|
||||||
|
gnetId: 15757
|
||||||
|
revision: 37
|
||||||
|
datasource: Prometheus
|
||||||
|
kubernetes-namespace:
|
||||||
|
gnetId: 15758
|
||||||
|
revision: 34
|
||||||
|
datasource: Prometheus
|
||||||
|
kubernetes-pods:
|
||||||
|
gnetId: 6336
|
||||||
|
revision: 1
|
||||||
|
datasource: Prometheus
|
||||||
|
|
||||||
|
# ── Platform services ─────────────────────────────────────────────────────
|
||||||
|
argocd:
|
||||||
|
gnetId: 19974
|
||||||
|
revision: 3
|
||||||
|
datasource: Prometheus
|
||||||
|
cert-manager:
|
||||||
|
gnetId: 20842
|
||||||
|
revision: 3
|
||||||
|
datasource: Prometheus
|
||||||
|
cilium-dashboard:
|
||||||
|
gnetId: 16611
|
||||||
|
revision: 1
|
||||||
|
datasource: Prometheus
|
||||||
|
|
||||||
|
# ── Infrastructure ────────────────────────────────────────────────────────
|
||||||
|
# Traefik — uncomment when P.02 is done (--metrics.prometheus=true)
|
||||||
|
# traefik:
|
||||||
|
# gnetId: 17346
|
||||||
|
# revision: 9
|
||||||
|
# datasource: Prometheus
|
||||||
|
|
||||||
sidecar:
|
sidecar:
|
||||||
dashboards:
|
dashboards:
|
||||||
|
|||||||
Reference in New Issue
Block a user