Doku komplett überarbeitet: Quick Reference, Checklisten, SSH-Befehle
Neue Inhalte: - Inhaltsverzeichnis für schnelle Navigation - Quick Reference mit API-Methoden, Host-IDs, Trigger-IDs - Combined Query für Probleme+Hosts (Einschritt-Abfrage) - Windows Zabbix Agent Pfade - Wichtige Item-Keys mit Bedeutung dokumentiert - Netzlaufwerk-Pfade (NAV-Schnittstellen) - Troubleshooting-Checklisten (MSSQL, Tasks, Interfaces) - SSH-Befehle Sammlung für SRV-JOB01 - Scheduled Tasks Inventar - Erweiterte Pitfalls Ziel: Schnellere Problemlösung für zukünftige Agenten Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,29 @@
|
|||||||
# VINOS Zabbix Server (srv-monitor02) - Copilot Instructions
|
# VINOS Zabbix Server (srv-monitor02) - Copilot Instructions
|
||||||
|
|
||||||
|
## Inhaltsverzeichnis
|
||||||
|
|
||||||
|
1. [Mandatory Rules](#mandatory-rules)
|
||||||
|
2. [System Overview](#system-overview)
|
||||||
|
3. [Quick Reference](#quick-reference)
|
||||||
|
4. [API-Zugriff](#api-zugriff)
|
||||||
|
5. [Bekannte Hosts](#bekannte-hosts)
|
||||||
|
6. [Netzlaufwerk-Pfade](#netzlaufwerk-pfade)
|
||||||
|
7. [Troubleshooting-Checklisten](#troubleshooting-checklisten)
|
||||||
|
8. [Bekannte Probleme & Lösungen](#bekannte-probleme--lösungen)
|
||||||
|
9. [Notification-System](#notification-system-tags)
|
||||||
|
10. [SSH-Befehle Sammlung](#ssh-befehle-sammlung)
|
||||||
|
11. [Pitfalls](#pitfalls)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## MANDATORY RULES
|
## MANDATORY RULES
|
||||||
|
|
||||||
- **API-Schlüssel:** Liegt in `api.txt` (NICHT committen!)
|
- **API-Schlüssel:** Liegt in `api.txt` (NICHT committen!)
|
||||||
- **Zabbix Version:** 7.0.3 (API-Syntax beachten - 7.x hat geänderte Parameter)
|
- **Zabbix Version:** 7.0.3 (API-Syntax beachten - 7.x hat geänderte Parameter)
|
||||||
- Authentifizierung per Bearer Token im Authorization Header
|
- Authentifizierung per Bearer Token im Authorization Header
|
||||||
|
- Bei `trigger.update` mit `tags`: **ALLE existierenden Tags mit angeben**, sonst werden sie überschrieben!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## System Overview
|
## System Overview
|
||||||
|
|
||||||
@@ -16,6 +35,39 @@
|
|||||||
| **Zabbix Version** | 7.0.3 |
|
| **Zabbix Version** | 7.0.3 |
|
||||||
| **Kunde** | VINOS |
|
| **Kunde** | VINOS |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
### API-Methoden Schnellübersicht
|
||||||
|
|
||||||
|
| Aufgabe | Methode | Wichtige Parameter |
|
||||||
|
|---------|---------|-------------------|
|
||||||
|
| Aktuelle Probleme | `problem.get` | `recent: true` |
|
||||||
|
| Problem → Host | `trigger.get` | `triggerids: [X], selectHosts` |
|
||||||
|
| Alle feuernden Trigger | `trigger.get` | `only_true: true, active: true` |
|
||||||
|
| Host suchen | `host.get` | `search: {name: "..."}` |
|
||||||
|
| Items eines Hosts | `item.get` | `hostids: [X]` |
|
||||||
|
| Trigger aktivieren/deaktivieren | `trigger.update` | `triggerid, status` |
|
||||||
|
| Tag hinzufügen | `trigger.update` | `triggerid, tags: [...]` |
|
||||||
|
|
||||||
|
### Host-ID Schnellreferenz
|
||||||
|
|
||||||
|
| Host | HostID | Typ |
|
||||||
|
|------|--------|-----|
|
||||||
|
| SRV-DB12 REMA Datenbank | 10786 | MSSQL |
|
||||||
|
| SRV-JOB01 | 10636 | Windows/Tasks |
|
||||||
|
|
||||||
|
### Wichtige Trigger-IDs
|
||||||
|
|
||||||
|
| TriggerID | Name | Host | Kategorie |
|
||||||
|
|-----------|------|------|-----------|
|
||||||
|
| 44829 | processing_backup_monitoring_hours_crif | SRV-JOB01 | Interface/CRIF |
|
||||||
|
| 47905 | MSSQL Job 'Backup_tgl.Subplan_1' | SRV-DB12 | Datenbank |
|
||||||
|
| 47907 | MSSQL Job 'Backup_Log.Subplan_1' | SRV-DB12 | Datenbank |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## API-Zugriff
|
## API-Zugriff
|
||||||
|
|
||||||
### Authentifizierung (Zabbix 7.x)
|
### Authentifizierung (Zabbix 7.x)
|
||||||
@@ -34,12 +86,32 @@ curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \
|
|||||||
|
|
||||||
### Wichtige API-Änderungen in 7.x
|
### Wichtige API-Änderungen in 7.x
|
||||||
|
|
||||||
- `selectHosts` bei `problem.get` nicht mehr unterstützt - stattdessen `trigger.get` mit `selectHosts` verwenden
|
- `selectHosts` bei `problem.get` nicht mehr unterstützt
|
||||||
- `apiinfo.version` OHNE Authorization Header aufrufen
|
- `apiinfo.version` OHNE Authorization Header aufrufen
|
||||||
|
|
||||||
### Nützliche Abfragen
|
### Nützliche Abfragen
|
||||||
|
|
||||||
**Aktuelle Probleme:**
|
**Alle feuernden Trigger MIT Host-Informationen (Einschritt-Abfrage):**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "trigger.get",
|
||||||
|
"params": {
|
||||||
|
"output": ["triggerid", "description", "priority", "lastchange"],
|
||||||
|
"only_true": true,
|
||||||
|
"active": true,
|
||||||
|
"expandDescription": true,
|
||||||
|
"selectHosts": ["hostid", "host", "name"],
|
||||||
|
"selectItems": ["itemid", "name", "key_", "lastvalue"],
|
||||||
|
"selectTags": "extend",
|
||||||
|
"sortfield": "lastchange",
|
||||||
|
"sortorder": "DESC",
|
||||||
|
"limit": 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
*Dies zeigt alle aktuell feuernden Trigger direkt mit Host-Namen - effizienter als problem.get + trigger.get!*
|
||||||
|
|
||||||
|
**Aktuelle Probleme (nur IDs):**
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"method": "problem.get",
|
"method": "problem.get",
|
||||||
@@ -52,6 +124,7 @@ curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
*Hinweis: `objectid` im Result = Trigger-ID*
|
||||||
|
|
||||||
**Trigger-Details mit Host:**
|
**Trigger-Details mit Host:**
|
||||||
```json
|
```json
|
||||||
@@ -62,7 +135,19 @@ curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \
|
|||||||
"triggerids": ["<TRIGGER_ID>"],
|
"triggerids": ["<TRIGGER_ID>"],
|
||||||
"expandDescription": true,
|
"expandDescription": true,
|
||||||
"selectHosts": ["hostid", "host", "name"],
|
"selectHosts": ["hostid", "host", "name"],
|
||||||
"selectItems": ["itemid", "name", "key_", "lastvalue"]
|
"selectItems": ["itemid", "name", "key_", "lastvalue"],
|
||||||
|
"selectTags": "extend"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Host-ID ermitteln:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "host.get",
|
||||||
|
"params": {
|
||||||
|
"output": ["hostid", "host", "name"],
|
||||||
|
"search": {"name": "SRV-JOB"}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -79,22 +164,117 @@ curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Bekannte Hosts
|
## Bekannte Hosts
|
||||||
|
|
||||||
| Host | HostID | Beschreibung |
|
| Host | HostID | Typ | Beschreibung | SSH-Zugang |
|
||||||
|------|--------|--------------|
|
|------|--------|-----|--------------|------------|
|
||||||
| SRV-DB12 REMA Datenbank | 10786 | MSSQL Server mit Wartungsplänen |
|
| SRV-DB12 REMA Datenbank | 10786 | MSSQL | Wartungspläne, Backups | - |
|
||||||
| SRV-JOB01 | 10636 | Windows Server für Scheduled Tasks (WinSCP, Monitoring) |
|
| SRV-JOB01 | 10636 | Windows | Scheduled Tasks, WinSCP, CRIF | `vinos\rwi@srv-job01` |
|
||||||
|
|
||||||
### SSH-Zugang zu Windows-Servern
|
### Windows Zabbix Agent Pfade
|
||||||
|
|
||||||
SRV-JOB01 hat OpenSSH installiert. SSH-Key ist bereits hinterlegt:
|
| Server | Agent Version | Config-Pfad |
|
||||||
|
|--------|---------------|-------------|
|
||||||
|
| SRV-JOB01 | Agent 2 | `C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf` |
|
||||||
|
| Standard Win | Agent 2 | `C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf` |
|
||||||
|
| Standard Win | Agent 1 | `C:\Program Files\Zabbix Agent\zabbix_agentd.conf` |
|
||||||
|
|
||||||
```bash
|
**UserParameter finden:**
|
||||||
ssh 'vinos\rwi@srv-job01' "Get-ScheduledTask"
|
```powershell
|
||||||
|
Get-Content "C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf" | Select-String "UserParameter"
|
||||||
```
|
```
|
||||||
|
|
||||||
**Zabbix Agent 2 Config:** `C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf`
|
### Wichtige Item-Keys (UserParameters)
|
||||||
|
|
||||||
|
| Item Key | Host | Bedeutung | Return |
|
||||||
|
|----------|------|-----------|--------|
|
||||||
|
| `processing_backup_monitoring_hours_crif` | SRV-JOB01 | CRIF Backup-Alter | 0=OK, 1=Fehler (keine Datei <1 Tag) |
|
||||||
|
| `processing_import_monitoring_crif` | SRV-JOB01 | CRIF Import Status | 0=OK, 1=Fehler |
|
||||||
|
| `mssql.job.runstatus[*]` | DB-Server | SQL Job Status | 0=Fehler, 1=OK |
|
||||||
|
| `mssql.job.lastrunstatusmessage[*]` | DB-Server | SQL Job Fehlermeldung | Text |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Netzlaufwerk-Pfade
|
||||||
|
|
||||||
|
### NAV-Schnittstellen
|
||||||
|
|
||||||
|
| UNC-Pfad | Zweck |
|
||||||
|
|----------|-------|
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\` | Alle NAV-Schnittstellen (Root) |
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\CRIFBuergel\` | CRIF Bürgel Export |
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\CRIFBuergel\exp\` | Pending Exports (NAV legt hier ab) |
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\CRIFBuergel\backup\` | Erfolgreiche Exports (nach Upload) |
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\CRIFBuergel\log\` | WinSCP Transfer-Logs |
|
||||||
|
| `\\vinos.local\sys\nav\interfaces\HVB\` | HVB Schnittstelle |
|
||||||
|
|
||||||
|
### Externe Systeme
|
||||||
|
|
||||||
|
| System | Host | Port | Pfad | Zweck |
|
||||||
|
|--------|------|------|------|-------|
|
||||||
|
| CRIF Bürgel | ftp.crif.de | 22 (SFTP) | /in/WeinVinos/ | Export-Upload |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Troubleshooting-Checklisten
|
||||||
|
|
||||||
|
### MSSQL Job schlägt fehl
|
||||||
|
|
||||||
|
1. [ ] Zabbix-Problem analysieren (`objectid` = Trigger-ID)
|
||||||
|
2. [ ] `mssql.job.lastrunstatusmessage` Item prüfen für Fehlermeldung
|
||||||
|
3. [ ] Fehlercode recherchieren:
|
||||||
|
- `0x534` = Account nicht im AD auflösbar → Job-Besitzer ändern
|
||||||
|
4. [ ] Job-Besitzer in SSMS prüfen: SQL Server Agent → Jobs → Properties
|
||||||
|
5. [ ] Job-History in SSMS prüfen
|
||||||
|
6. [ ] Nach Fix: **Manuell Job starten** zum Verifizieren (Rechtsklick → Start Job)
|
||||||
|
7. [ ] Zabbix-Problem sollte sich automatisch schließen nach erfolgreichem Lauf
|
||||||
|
|
||||||
|
### Scheduled Task schlägt fehl (Windows)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Task-Status prüfen
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ScheduledTask -TaskName 'TASKNAME' | Select-Object TaskName, State"
|
||||||
|
|
||||||
|
# 2. Letzte Ausführung und Result
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ScheduledTaskInfo -TaskName 'TASKNAME' | Select-Object LastRunTime, LastTaskResult, NextRunTime"
|
||||||
|
|
||||||
|
# 3. Task manuell starten
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Start-ScheduledTask -TaskName 'TASKNAME'"
|
||||||
|
```
|
||||||
|
|
||||||
|
**LastTaskResult Codes:**
|
||||||
|
- `0` = Erfolg
|
||||||
|
- `1` = Fehler (allgemein)
|
||||||
|
- `267009` = Task läuft noch
|
||||||
|
|
||||||
|
### Interface-Export fehlt (CRIF, HVB, etc.)
|
||||||
|
|
||||||
|
1. [ ] **Export-Ordner prüfen:** Dateien vorhanden?
|
||||||
|
```bash
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ChildItem '\\vinos.local\sys\nav\interfaces\CRIFBuergel\exp'"
|
||||||
|
```
|
||||||
|
2. [ ] **Backup-Ordner prüfen:** Wann war letzte erfolgreiche Datei?
|
||||||
|
```bash
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ChildItem '\\vinos.local\sys\nav\interfaces\CRIFBuergel\backup' | Sort-Object LastWriteTime -Descending | Select-Object -First 5 Name, LastWriteTime"
|
||||||
|
```
|
||||||
|
3. [ ] **NAV Aufgabenwarteschlange prüfen** (häufigste Ursache!)
|
||||||
|
4. [ ] **WinSCP/Transfer-Log prüfen:**
|
||||||
|
```bash
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-Content '\\vinos.local\sys\nav\interfaces\CRIFBuergel\log\2026-01_Transfer-FilesWinSCP.log' | Select-Object -Last 30"
|
||||||
|
```
|
||||||
|
5. [ ] **SFTP-Verbindung manuell testen** (Config: `C:\Tasks\crifbuergel\CRIF-config.xml`)
|
||||||
|
|
||||||
|
### Zabbix-Problem bleibt nach Fix offen
|
||||||
|
|
||||||
|
1. [ ] Item-Wert prüfen - hat sich der `lastvalue` geändert?
|
||||||
|
2. [ ] `lastclock` prüfen - wann wurde zuletzt abgefragt?
|
||||||
|
3. [ ] Problem-Status prüfen: `r_eventid` vorhanden = resolved
|
||||||
|
4. [ ] Bei Item-Type "Active": Warten auf nächsten Agent-Push
|
||||||
|
5. [ ] Seite refreshen (F5) - UI-Cache
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Bekannte Probleme & Lösungen
|
## Bekannte Probleme & Lösungen
|
||||||
|
|
||||||
@@ -108,12 +288,9 @@ von Auftrag 'Jobname' Serverzugriff aufweist.
|
|||||||
konnten nicht abgerufen werden, Fehlercode 0x534. [SQLSTATE 42000] (Fehler 15404))
|
konnten nicht abgerufen werden, Fehlercode 0x534. [SQLSTATE 42000] (Fehler 15404))
|
||||||
```
|
```
|
||||||
|
|
||||||
**Ursache:**
|
**Ursache:** SQL Server kann Job-Besitzer nicht im AD auflösen (User gelöscht/deaktiviert).
|
||||||
Der SQL Server kann den Job-Besitzer (Windows-Account) nicht mehr im Active Directory auflösen.
|
|
||||||
|
|
||||||
**Lösungen:**
|
**Lösung - Job-Besitzer auf `sa` ändern:**
|
||||||
|
|
||||||
1. **Job-Besitzer auf `sa` ändern (empfohlen):**
|
|
||||||
```sql
|
```sql
|
||||||
USE msdb;
|
USE msdb;
|
||||||
GO
|
GO
|
||||||
@@ -123,54 +300,30 @@ Der SQL Server kann den Job-Besitzer (Windows-Account) nicht mehr im Active Dire
|
|||||||
GO
|
GO
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **Alle Jobs eines Benutzers auf `sa` ändern:**
|
**Oder via SSMS:** Job Properties → General → Owner → `sa`
|
||||||
```sql
|
|
||||||
USE msdb;
|
|
||||||
GO
|
|
||||||
DECLARE @job_id uniqueidentifier
|
|
||||||
DECLARE job_cursor CURSOR FOR
|
|
||||||
SELECT job_id FROM sysjobs WHERE owner_sid = SUSER_SID('VINOS\gt')
|
|
||||||
|
|
||||||
OPEN job_cursor
|
**Nach Fix:** Manuell Job starten, Zabbix-Problem schließt automatisch.
|
||||||
FETCH NEXT FROM job_cursor INTO @job_id
|
|
||||||
WHILE @@FETCH_STATUS = 0
|
|
||||||
BEGIN
|
|
||||||
EXEC dbo.sp_update_job @job_id = @job_id, @owner_login_name = N'sa'
|
|
||||||
FETCH NEXT FROM job_cursor INTO @job_id
|
|
||||||
END
|
|
||||||
CLOSE job_cursor
|
|
||||||
DEALLOCATE job_cursor
|
|
||||||
GO
|
|
||||||
```
|
|
||||||
|
|
||||||
3. **Via SSMS:**
|
|
||||||
- Job Properties → General → Owner → Auf `sa` ändern
|
|
||||||
|
|
||||||
**Verifizierung nach Fix:**
|
|
||||||
- In Zabbix: Problem sollte nach nächstem erfolgreichen Job-Lauf automatisch schließen
|
|
||||||
- Oder manuell Job starten und Status prüfen
|
|
||||||
|
|
||||||
### CRIF Bürgel Export-Monitoring (`processing_backup_monitoring_hours_crif`)
|
### CRIF Bürgel Export-Monitoring (`processing_backup_monitoring_hours_crif`)
|
||||||
|
|
||||||
**Trigger:** Prüft ob im Verzeichnis `\\vinos.local\sys\nav\interfaces\CRIFBuergel\backup` Dateien vorhanden sind, die jünger als 1 Tag sind.
|
**Trigger:** Prüft ob in `\\vinos.local\sys\nav\interfaces\CRIFBuergel\backup` Dateien jünger als 1 Tag sind.
|
||||||
|
|
||||||
**Ablauf des CRIF-Exports:**
|
**Ablauf des CRIF-Exports:**
|
||||||
1. **NAV/Business Central** erstellt `CL_*.dat.zip` Exportdateien in `\CRIFBuergel\exp\`
|
1. **NAV/Business Central** erstellt `CL_*.dat.zip` in `\CRIFBuergel\exp\`
|
||||||
2. **Scheduled Task** `Transfer-FilesWinSCP` (SRV-JOB01, täglich 02:00) lädt Dateien zu `ftp.crif.de` hoch
|
2. **Scheduled Task** `Transfer-FilesWinSCP` (SRV-JOB01, 02:00) lädt zu `ftp.crif.de` hoch
|
||||||
3. Nach erfolgreichem Upload werden Dateien nach `\CRIFBuergel\backup\` verschoben
|
3. Nach Upload: Dateien werden nach `\CRIFBuergel\backup\` verschoben
|
||||||
|
|
||||||
**Bei Fehler prüfen:**
|
**Häufigste Ursache:** NAV Aufgabenwarteschlange läuft nicht!
|
||||||
1. **Export-Ordner leer?** → NAV Aufgabenwarteschlange prüfen (häufigste Ursache!)
|
|
||||||
2. **WinSCP-Log prüfen:** `\\vinos.local\sys\nav\interfaces\CRIFBuergel\log\`
|
|
||||||
3. **SFTP-Verbindung testen:** Config in `C:\Tasks\crifbuergel\CRIF-config.xml`
|
|
||||||
|
|
||||||
**CRIF FTP-Server Struktur:**
|
**CRIF FTP-Server Struktur:**
|
||||||
- `/in/WeinVinos/` - Upload-Ziel für Exports
|
- `/in/WeinVinos/` - Upload-Ziel für Exports
|
||||||
- `/out/` - (leer, keine Downloads)
|
- `/out/` - leer (keine Downloads)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Notification-System (Tags)
|
## Notification-System (Tags)
|
||||||
|
|
||||||
Zabbix Actions filtern nach **Tags** auf Triggern. Um Benachrichtigungen zu aktivieren, muss der Trigger das entsprechende Tag haben.
|
Zabbix Actions filtern nach **Tags** auf Triggern.
|
||||||
|
|
||||||
| Tag | Ziel |
|
| Tag | Ziel |
|
||||||
|-----|------|
|
|-----|------|
|
||||||
@@ -180,6 +333,7 @@ Zabbix Actions filtern nach **Tags** auf Triggern. Um Benachrichtigungen zu akti
|
|||||||
| `Meldung_Mail_Bereitschaft` | bereitschaft.it@vinos.de |
|
| `Meldung_Mail_Bereitschaft` | bereitschaft.it@vinos.de |
|
||||||
| `Meldung_Mail_BI` | BI-Team |
|
| `Meldung_Mail_BI` | BI-Team |
|
||||||
| `Meldung_Mail_HM` | HM_Monitoring@vinos.de |
|
| `Meldung_Mail_HM` | HM_Monitoring@vinos.de |
|
||||||
|
| `Meldung_Mail_HM_Mo-Fr_9-1730` | HM nur Werktags 9-17:30 |
|
||||||
| `Meldung_RM_Monitoring` | RM_Monitoring@vinos.de |
|
| `Meldung_RM_Monitoring` | RM_Monitoring@vinos.de |
|
||||||
| `Meldung_Mail_Viki` | viki@vinos.de |
|
| `Meldung_Mail_Viki` | viki@vinos.de |
|
||||||
|
|
||||||
@@ -196,16 +350,81 @@ Zabbix Actions filtern nach **Tags** auf Triggern. Um Benachrichtigungen zu akti
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
**Wichtig:** Alle existierenden Tags müssen mit angegeben werden, sonst werden sie überschrieben!
|
**WICHTIG:** Alle existierenden Tags müssen mit angegeben werden!
|
||||||
|
|
||||||
## Development Workflow
|
**Aktuelle Tags eines Triggers abfragen:**
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"method": "trigger.get",
|
||||||
|
"params": {
|
||||||
|
"triggerids": ["<TRIGGER_ID>"],
|
||||||
|
"selectTags": "extend"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
1. API-Abfragen testen mit `curl` und `jq`
|
---
|
||||||
2. Bei komplexeren Abfragen: Immer zuerst die relevanten IDs ermitteln
|
|
||||||
3. Dokumentation aktualisieren bei neuen Erkenntnissen
|
## SSH-Befehle Sammlung (SRV-JOB01)
|
||||||
|
|
||||||
|
### Scheduled Tasks
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Alle aktiven Tasks auflisten
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ScheduledTask | Where-Object {\$_.State -ne 'Disabled'} | Select-Object TaskName, State, TaskPath | Format-Table -AutoSize"
|
||||||
|
|
||||||
|
# Task-Details mit letzter Ausführung
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ScheduledTaskInfo -TaskName 'Transfer-FilesWinSCP' -TaskPath '\Crifbürgel\'"
|
||||||
|
|
||||||
|
# Task manuell starten
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Start-ScheduledTask -TaskName 'Transfer-FilesWinSCP' -TaskPath '\Crifbürgel\'"
|
||||||
|
|
||||||
|
# Task-Actions anzeigen (was wird ausgeführt)
|
||||||
|
ssh 'vinos\rwi@srv-job01' "(Get-ScheduledTask -TaskName 'Transfer-FilesWinSCP').Actions | Select-Object Execute, Arguments"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dateien und Ordner
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Dateien auflisten mit Datum
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-ChildItem '\\vinos.local\sys\nav\interfaces\CRIFBuergel\backup' | Sort-Object LastWriteTime -Descending | Select-Object -First 10 Name, LastWriteTime, Length"
|
||||||
|
|
||||||
|
# Prüfen ob Ordner leer ist
|
||||||
|
ssh 'vinos\rwi@srv-job01' "if ((Get-ChildItem 'PFAD' | Measure-Object).Count -eq 0) { 'LEER' } else { 'Dateien vorhanden' }"
|
||||||
|
|
||||||
|
# Log-Datei lesen (letzte 30 Zeilen)
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-Content 'LOGPFAD' | Select-Object -Last 30"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Zabbix Agent
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Agent-Config lesen
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-Content 'C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf'"
|
||||||
|
|
||||||
|
# UserParameter finden
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-Content 'C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf' | Select-String 'UserParameter'"
|
||||||
|
|
||||||
|
# Agent-Service Status
|
||||||
|
ssh 'vinos\rwi@srv-job01' "Get-Service *zabbix* | Select-Object Name, Status, StartType"
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Scheduled Tasks Inventar (SRV-JOB01)
|
||||||
|
|
||||||
|
| Task Name | TaskPath | Zeitplan | Zweck |
|
||||||
|
|-----------|----------|----------|-------|
|
||||||
|
| Transfer-FilesWinSCP | \Crifbürgel\ | 02:00 täglich | CRIF Export Upload zu ftp.crif.de |
|
||||||
|
| Remove-Oldfiles.ps1 | \Crifbürgel\ | 18:00 täglich | Alte CRIF-Backups löschen (>30 Tage) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Pitfalls
|
## Pitfalls
|
||||||
|
|
||||||
- **API-Version prüfen:** Zabbix 7.x hat viele Breaking Changes gegenüber 6.x
|
- **API-Version:** Zabbix 7.x hat Breaking Changes gegenüber 6.x
|
||||||
- **SSL-Zertifikat:** `-sk` Flag bei curl verwenden (self-signed cert)
|
- **SSL-Zertifikat:** `-sk` Flag bei curl verwenden (self-signed cert)
|
||||||
- **Timestamps:** Zabbix liefert Unix-Timestamps, ggf. konvertieren
|
- **Timestamps:** Zabbix liefert Unix-Timestamps, konvertieren mit `date -d @TIMESTAMP`
|
||||||
|
- **Tags überschreiben:** Bei `trigger.update` immer ALLE Tags angeben
|
||||||
|
- **PowerShell Escaping:** Bei SSH zu Windows auf `$` und Quotes achten (`\$` verwenden)
|
||||||
|
- **Active Items:** Wert aktualisiert sich erst beim nächsten Agent-Push, nicht sofort
|
||||||
|
|||||||
Reference in New Issue
Block a user