# VINOS Zabbix Server (srv-monitor02) - Copilot Instructions ## MANDATORY RULES - **API-Schlüssel:** Liegt in `api.txt` (NICHT committen!) - **Zabbix Version:** 7.0.3 (API-Syntax beachten - 7.x hat geänderte Parameter) - Authentifizierung per Bearer Token im Authorization Header ## System Overview | Eigenschaft | Wert | |-------------|------| | **Server** | srv-monitor02 | | **URL** | https://srv-monitor02/ | | **API Endpoint** | https://srv-monitor02/api_jsonrpc.php | | **Zabbix Version** | 7.0.3 | | **Kunde** | VINOS | ## API-Zugriff ### Authentifizierung (Zabbix 7.x) ```bash curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer " \ -d '{ "jsonrpc": "2.0", "method": "problem.get", "params": { ... }, "id": 1 }' ``` ### Wichtige API-Änderungen in 7.x - `selectHosts` bei `problem.get` nicht mehr unterstützt - stattdessen `trigger.get` mit `selectHosts` verwenden - `apiinfo.version` OHNE Authorization Header aufrufen ### Nützliche Abfragen **Aktuelle Probleme:** ```json { "method": "problem.get", "params": { "output": "extend", "recent": true, "sortfield": ["eventid"], "sortorder": "DESC", "limit": 30 } } ``` **Trigger-Details mit Host:** ```json { "method": "trigger.get", "params": { "output": "extend", "triggerids": [""], "expandDescription": true, "selectHosts": ["hostid", "host", "name"], "selectItems": ["itemid", "name", "key_", "lastvalue"] } } ``` **Items eines Hosts abfragen:** ```json { "method": "item.get", "params": { "output": ["itemid", "name", "key_", "lastvalue", "lastclock"], "hostids": [""], "search": { "key_": "suchbegriff" } } } ``` ## Bekannte Hosts | Host | HostID | Beschreibung | |------|--------|--------------| | SRV-DB12 REMA Datenbank | 10786 | MSSQL Server mit Wartungsplänen | ## Bekannte Probleme & Lösungen ### MSSQL Job-Fehler: Fehlercode 0x534 (Fehler 15404) **Symptom:** ``` Auftragsfehler: Es kann nicht bestimmt werden, ob der Besitzer ('VINOS\username') von Auftrag 'Jobname' Serverzugriff aufweist. (Ursache: Die Informationen über Windows NT-Gruppe oder -Benutzer "VINOS\username" konnten nicht abgerufen werden, Fehlercode 0x534. [SQLSTATE 42000] (Fehler 15404)) ``` **Ursache:** Der SQL Server kann den Job-Besitzer (Windows-Account) nicht mehr im Active Directory auflösen. **Lösungen:** 1. **Job-Besitzer auf `sa` ändern (empfohlen):** ```sql USE msdb; GO EXEC dbo.sp_update_job @job_name = N'Backup_tgl.Subplan_1', @owner_login_name = N'sa'; GO ``` 2. **Alle Jobs eines Benutzers auf `sa` ändern:** ```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 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 ## Development Workflow 1. API-Abfragen testen mit `curl` und `jq` 2. Bei komplexeren Abfragen: Immer zuerst die relevanten IDs ermitteln 3. Dokumentation aktualisieren bei neuen Erkenntnissen ## Pitfalls - **API-Version prüfen:** Zabbix 7.x hat viele Breaking Changes gegenüber 6.x - **SSL-Zertifikat:** `-sk` Flag bei curl verwenden (self-signed cert) - **Timestamps:** Zabbix liefert Unix-Timestamps, ggf. konvertieren