Files
claude_settings/plans/functional-strolling-donut.md
root 4277b10f55 Kanbanize Kartenerstellung dokumentiert: Arrival-Rule-Workaround, Board-Struktur
- Neuer Abschnitt "Karten erstellen (Aufgaben-Workflow)" mit Workflow A/B
- Bekannte Struktur erweitert: Workflows, Columns, Lanes für Board 1
- Pitfalls ergänzt: Arrival Rule, Parent-Link API, linkedCards read-only
- Settings und Plans aktualisiert

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:09:09 +01:00

119 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Plan: CIFS-Mount-Monitoring für srv-nu-ftp01
## Ziel
Auf srv-nu-ftp01 alle CIFS-Mounts überwachen, die nach `//vinos.local/DFS/Workflows/` zeigen. Sobald ein Mountpoint nicht aktiv ist, soll Zabbix alarmieren.
## Aktueller Stand
- UserParameters wurden eingetragen, aber **Agent startet nicht** (exit code 1)
- Ursache: Discovery-Zeile über 2 Zeilen umgebrochen → `missing assignment operator` in Zeile 325
- Die Status-Zeile (`cifs.mount.status[*]`) ist OK
## Ist-Zustand fstab
**18 aktive Mounts** (ohne auskommentierte) nach `//vinos.local/DFS/Workflows/`:
- 12× Artikelbilder (gleiche Quelle, verschiedene User-Home-Verzeichnisse)
- Reporting/DWH → `/mnt/Workflows/Reporting/DWH`
- Shop-Filialinfos → `/home/filialinfos/Shop-Filialinfos`
- econda → `/mnt/google_analytics` + `/home/srv-db03/google_analytics`
- sovendus → `/home/sovendus/upload`
- emarsys → `/home/emarsys/upload`
- hubspot → `/home/hubspot/upload`
- Pin-eBrief → `/mnt/Workflows/Pin-eBrief`
- KWK-Export → `/home/kwk-export/KWK-Export`
## Ansatz: Script-File + UserParameters
Die Inline-awk-Variante ist zu lang (~200 Zeichen) und bricht beim Kopieren um. Stattdessen ein minimales Discovery-Script.
## Schritte
### 1. Agent-Config fixen (DRINGEND - Agent ist down!)
Die kaputten Zeilen 324-325 entfernen/ersetzen. Neue Config:
```
UserParameter=cifs.mount.discovery,/etc/zabbix/scripts/cifs_mount_discovery.sh
UserParameter=cifs.mount.status[*],findmnt "$1" >/dev/null 2>&1 && echo 1 || echo 0
```
### 2. Discovery-Script erstellen
Script nach `/home/vinosadmin/cifs_mount_discovery.sh` schreiben (kein root-Zugriff als vinosadmin).
User verschiebt es manuell nach `/etc/zabbix/scripts/cifs_mount_discovery.sh` und setzt `chmod +x`.
```bash
#!/bin/bash
grep -i '//vinos.local/DFS/Workflows' /etc/fstab \
| grep -v '^\s*#' \
| awk 'BEGIN{printf "["} NR>1{printf ","} {printf "{\"{#MOUNTPOINT}\":\"%s\",\"{#REMOTE}\":\"%s\"}",$2,$1} END{printf "]"}'
```
### 3. Agent neustarten und testen
```bash
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
```
Test:
```bash
# Lokal
/etc/zabbix/scripts/cifs_mount_discovery.sh
findmnt /home/fluent/artikelbilder >/dev/null 2>&1 && echo 1 || echo 0
# Via Agent (von srv-monitor02)
zabbix_get -s srv-nu-ftp01 -k 'cifs.mount.discovery'
zabbix_get -s srv-nu-ftp01 -k 'cifs.mount.status[/home/fluent/artikelbilder]'
```
### 4. Host-ID ermitteln
Via Zabbix API: `host.get` mit `search: {name: "ftp01"}`
### 5. Zabbix LLD via API konfigurieren
**a) Discovery Rule** (`discoveryrule.create`)
- Name: `CIFS DFS/Workflows Mount Discovery`
- Key: `cifs.mount.discovery`
- Type: Zabbix Agent (passive/active je nach Config)
- Update Interval: `1h`
**b) Item Prototype** (`itemprototype.create`)
- Name: `CIFS Mount Status: {#MOUNTPOINT}`
- Key: `cifs.mount.status[{#MOUNTPOINT}]`
- Type: Zabbix Agent
- Value Type: Numeric (unsigned)
- Update Interval: `5m`
**c) Trigger Prototype** (`triggerprototype.create`)
- Name: `CIFS Mount {#MOUNTPOINT} nicht aktiv (Remote: {#REMOTE})`
- Expression: `last(/HOST/cifs.mount.status[{#MOUNTPOINT}])=0`
- Severity: High
### 6. Dokumentation
- `zabbix/hosts.md`: srv-nu-ftp01 Abschnitt mit Host-ID, UserParameters, SSH-Befehlen
- `zabbix/README.md`: Host-ID in Schnellreferenz
## Kritische Dateien
| Datei (auf srv-nu-ftp01) | Aktion |
|---------------------------|--------|
| `/etc/zabbix/zabbix_agent2.conf` | Zeilen 324-325 fixen → 2 saubere UserParameter-Zeilen |
| `/etc/zabbix/scripts/cifs_mount_discovery.sh` | Neu erstellen (4 Zeilen) |
| Datei (lokal) | Aktion |
|----------------|--------|
| `zabbix/hosts.md` | srv-nu-ftp01 ergänzen |
| `zabbix/README.md` | Host-ID ergänzen |
## Verifikation
1. `systemctl status zabbix-agent2` → active (running)
2. `zabbix_get -s srv-nu-ftp01 -k 'cifs.mount.discovery'` → JSON mit 18 Mountpoints
3. `zabbix_get -s srv-nu-ftp01 -k 'cifs.mount.status[/home/fluent/artikelbilder]'``1`
4. Zabbix UI: Discovery Rule ausführen → 18 Items + 18 Trigger angelegt
5. Optional: Test-Unmount → Trigger feuert