- 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>
119 lines
4.0 KiB
Markdown
119 lines
4.0 KiB
Markdown
# 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
|