- deploy/compose/infra: Dienst litellm entfernt (D4), Router auf LITELLM_BASE_URL (appsrv08, Port noch offen), alle Images gepinnt, Grafana und pve-exporter ohne Profile, node-exporter für den LXC, Zustand über KNASTER_STATE_DIR - Prometheus: GPU-VMs per file_sd (node, gpu), Proxmox-Knoten per IP, infra-node - Grafana: Datasource und Dashboards provisioniert (grafana.com 10347, 1860, 14574 sowie knaster-Übersicht) - Alertmanager: n8n-Receiver nur vorbereitet (auskommentiert) - Ansible: Rollen infra-stack und gpu-exporters, Playbooks monitoring.yml und monitoring-targets.yml, Skript monitoring-targets.py (tofu output → file_sd) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
fd48fd1c7f
commit
bf7c137adf
@@ -1,5 +1,8 @@
|
||||
# Scrape-Ziele. Die Labels an den GPU-Zielen (slot, docker_host, container, pve_node, vmid) landen in den
|
||||
# Alerts und damit beim Healer. Hostnamen = DNS-Namen der VMs (ANNAHME bis Deployment).
|
||||
# Alerts und damit beim Healer.
|
||||
# GPU-VMs (job node, gpu): file_sd, weil die DHCP-Adressen wechseln (D5). Die Dateien erzeugt
|
||||
# platform/proxmox/scripts/monitoring-targets.py auf ops aus `tofu output -json gpu_vms` und der Registry;
|
||||
# die Ansible-Rolle infra-stack kopiert sie nach /opt/knaster/infra/file_sd (im Container /etc/knaster-sd).
|
||||
global:
|
||||
scrape_interval: 30s
|
||||
evaluation_interval: 30s
|
||||
@@ -11,10 +14,17 @@ alerting:
|
||||
- static_configs: [{targets: ["alertmanager:9093"]}]
|
||||
|
||||
scrape_configs:
|
||||
- job_name: prometheus
|
||||
static_configs: [{targets: ["localhost:9090"]}]
|
||||
|
||||
- job_name: alertmanager
|
||||
static_configs: [{targets: ["alertmanager:9093"]}]
|
||||
|
||||
- job_name: knaster-router
|
||||
metrics_path: /metrics
|
||||
static_configs: [{targets: ["router:8080"]}]
|
||||
|
||||
# Ada-Rechner (Windows, D3): Anbindung über die Worker-Registry v2 (Task 6.4), bis dahin nicht erreichbar
|
||||
- job_name: vllm
|
||||
static_configs:
|
||||
- targets: ["gpu-main:8000"]
|
||||
@@ -22,6 +32,7 @@ scrape_configs:
|
||||
- targets: ["gpu-flex:8000"]
|
||||
labels: {slot: tier1-flex, docker_host: gpu-flex, container: vllm, pve_node: pve-ada, vmid: "202"}
|
||||
|
||||
# llama.cpp-Slots kommen erst mit Phase 6 in die GPU-VMs; bis dahin nicht erreichbar (Platzhalter)
|
||||
- job_name: llamacpp
|
||||
static_configs:
|
||||
- targets: ["gpu-embed-1:8081"]
|
||||
@@ -31,36 +42,31 @@ scrape_configs:
|
||||
- targets: ["gpu-small:8080"]
|
||||
labels: {slot: verifier-small, docker_host: gpu-small, container: llamacpp-chat, pve_node: pve3, vmid: "231"}
|
||||
|
||||
# nvidia_gpu_exporter (nvidia-smi, auch für Maxwell/Pascal; DCGM kann Maxwell nicht) in jeder GPU-VM
|
||||
- job_name: gpu
|
||||
static_configs:
|
||||
- targets: ["gpu-main:9835"]
|
||||
labels: {slot: tier1-general, pve_node: pve-ada, vmid: "201"}
|
||||
- targets: ["gpu-flex:9835"]
|
||||
labels: {slot: tier1-flex, pve_node: pve-ada, vmid: "202"}
|
||||
- targets: ["gpu-embed-1:9835"]
|
||||
labels: {slot: embed-default, pve_node: pve3, vmid: "221"}
|
||||
- targets: ["gpu-embed-2:9835"]
|
||||
labels: {slot: embed-default, pve_node: pve4, vmid: "222"}
|
||||
- targets: ["gpu-small:9835"]
|
||||
labels: {slot: verifier-small, pve_node: pve3, vmid: "231"}
|
||||
file_sd_configs: [{files: [/etc/knaster-sd/gpu.json]}]
|
||||
|
||||
- job_name: node # Labels werden für GpuXidError → Healer (VM-Neustart) gebraucht
|
||||
static_configs:
|
||||
- targets: ["gpu-main:9100"]
|
||||
labels: {slot: tier1-general, pve_node: pve-ada, vmid: "201"}
|
||||
- targets: ["gpu-flex:9100"]
|
||||
labels: {slot: tier1-flex, pve_node: pve-ada, vmid: "202"}
|
||||
- targets: ["gpu-embed-1:9100"]
|
||||
labels: {slot: embed-default, pve_node: pve3, vmid: "221"}
|
||||
- targets: ["gpu-embed-2:9100"]
|
||||
labels: {slot: embed-default, pve_node: pve4, vmid: "222"}
|
||||
- targets: ["gpu-small:9100"]
|
||||
labels: {slot: verifier-small, pve_node: pve3, vmid: "231"}
|
||||
# node_exporter in jeder GPU-VM; Labels werden für GpuXidError → Healer (VM-Neustart) gebraucht
|
||||
- job_name: node
|
||||
file_sd_configs: [{files: [/etc/knaster-sd/node.json]}]
|
||||
|
||||
# node_exporter im LXC infra selbst (Host-Netz des LXC)
|
||||
- job_name: infra-node
|
||||
static_configs:
|
||||
- targets: ["host.docker.internal:9100"]
|
||||
labels: {instance: infra}
|
||||
|
||||
# prometheus-pve-exporter: jeder Knoten liefert die Cluster-Sicht (cluster=1) und seine eigenen Werte (node=1).
|
||||
# Alle fünf als Ziel, damit die Cluster-Sicht auch bei einem ausgefallenen Knoten bleibt (Dashboard wählt eine instance).
|
||||
- job_name: proxmox
|
||||
metrics_path: /pve
|
||||
params: {module: [default]}
|
||||
static_configs: [{targets: ["pve1", "pve2", "pve3", "pve4", "pve-ada"]}]
|
||||
params: {module: [default], cluster: ["1"], node: ["1"]}
|
||||
static_configs:
|
||||
- {targets: ["192.168.100.210"], labels: {pve: pve44}}
|
||||
- {targets: ["192.168.100.209"], labels: {pve: pve46}}
|
||||
- {targets: ["192.168.100.212"], labels: {pve: pve48}}
|
||||
- {targets: ["192.168.100.207"], labels: {pve: pve52}}
|
||||
- {targets: ["192.168.100.214"], labels: {pve: pve61}}
|
||||
relabel_configs:
|
||||
- {source_labels: [__address__], target_label: __param_target}
|
||||
- {source_labels: [__param_target], target_label: instance}
|
||||
|
||||
Reference in New Issue
Block a user