From 1294c718ea1757662fede1fee8a0775f671a9e00 Mon Sep 17 00:00:00 2001
From: Trygve Laugstøl <trygvis@inamo.no>
Date: Sat, 9 Nov 2024 19:02:57 +0100
Subject: snmp

---
 README-snmp.md                           | 19 ++++++++++
 terraform/hash-prometheus/prometheus.yml | 62 ++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+)
 create mode 100644 README-snmp.md

diff --git a/README-snmp.md b/README-snmp.md
new file mode 100644
index 0000000..e4ec3fe
--- /dev/null
+++ b/README-snmp.md
@@ -0,0 +1,19 @@
+# Collecting SNMP data with Prometheus
+
+Use the `prometheus-snmp-exporter` package.
+
+## Generating snmp.yml
+
+This file is not included in the Debian packages for licensing reasons, and we
+also want to include the Ubiquiti MIBs anyway.
+
+Main docs: https://github.com/prometheus/snmp_exporter/tree/main/generator
+
+Short story:
+
+* git clone https://github.com/prometheus/snmp_exporter.git
+* make generate
+* make mibs # downloads the MIBs, including the UBNT ones
+* ./generator generate -m mibs -g generator.yml -o snmp.yml
+
+Copy `snmp.yml` to `/etc/prometheus/snmp.yml`.
diff --git a/terraform/hash-prometheus/prometheus.yml b/terraform/hash-prometheus/prometheus.yml
index b9e6e5a..5f74367 100644
--- a/terraform/hash-prometheus/prometheus.yml
+++ b/terraform/hash-prometheus/prometheus.yml
@@ -27,3 +27,65 @@ scrape_configs:
       - targets:
         - "conflatorio.dn42.trygvis.io:9177"
         - "hash.dn42.trygvis.io:9177"
+
+  - job_name: snmp_kv24_ap
+    scrape_interval: 300s
+    static_configs:
+      - targets:
+        - "192.168.10.20"
+        - "192.168.10.21"
+        - "192.168.10.22"
+        - "192.168.10.23"
+        - "192.168.10.25"
+        - "192.168.10.26"
+    metrics_path: /snmp
+    params:
+      auth: [public_v2]
+      module:
+        - if_mib
+        - ubiquiti_unifi
+    relabel_configs:
+      - source_labels: [__address__]
+        target_label: __param_target
+      - source_labels: [__param_target]
+        target_label: instance
+      - target_label: __address__
+        replacement: "coregonus.dn42.trygvis.io:9116"
+
+  - job_name: snmp_kv24_sw
+    scrape_interval: 60s
+    static_configs:
+      - targets:
+        - "192.168.10.10"
+        - "192.168.10.11"
+        - "192.168.10.12"
+    metrics_path: /snmp
+    params:
+      auth: [public_v2]
+      module:
+        - if_mib
+    relabel_configs:
+      - source_labels: [__address__]
+        target_label: __param_target
+      - source_labels: [__param_target]
+        target_label: instance
+      - target_label: __address__
+        replacement: "coregonus.dn42.trygvis.io:9116"
+
+  - job_name: snmp_kv24_router
+    scrape_interval: 60s
+    static_configs:
+      - targets:
+        - "192.168.10.1"
+    metrics_path: /snmp
+    params:
+      auth: [public_v2]
+      module:
+        - if_mib
+    relabel_configs:
+      - source_labels: [__address__]
+        target_label: __param_target
+      - source_labels: [__param_target]
+        target_label: instance
+      - target_label: __address__
+        replacement: "coregonus.dn42.trygvis.io:9116"
-- 
cgit v1.2.3