- .gitignore für sensible Dateien - copilot-instructions.md mit API-Zugriff und MSSQL-Fehlerbehebung Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
3.8 KiB
3.8 KiB
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)
curl -sk -X POST "https://srv-monitor02/api_jsonrpc.php" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <API_TOKEN>" \
-d '{
"jsonrpc": "2.0",
"method": "problem.get",
"params": { ... },
"id": 1
}'
Wichtige API-Änderungen in 7.x
selectHostsbeiproblem.getnicht mehr unterstützt - stattdessentrigger.getmitselectHostsverwendenapiinfo.versionOHNE Authorization Header aufrufen
Nützliche Abfragen
Aktuelle Probleme:
{
"method": "problem.get",
"params": {
"output": "extend",
"recent": true,
"sortfield": ["eventid"],
"sortorder": "DESC",
"limit": 30
}
}
Trigger-Details mit Host:
{
"method": "trigger.get",
"params": {
"output": "extend",
"triggerids": ["<TRIGGER_ID>"],
"expandDescription": true,
"selectHosts": ["hostid", "host", "name"],
"selectItems": ["itemid", "name", "key_", "lastvalue"]
}
}
Items eines Hosts abfragen:
{
"method": "item.get",
"params": {
"output": ["itemid", "name", "key_", "lastvalue", "lastclock"],
"hostids": ["<HOST_ID>"],
"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:
-
Job-Besitzer auf
saändern (empfohlen):USE msdb; GO EXEC dbo.sp_update_job @job_name = N'Backup_tgl.Subplan_1', @owner_login_name = N'sa'; GO -
Alle Jobs eines Benutzers auf
saändern: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 -
Via SSMS:
- Job Properties → General → Owner → Auf
saändern
- Job Properties → General → Owner → Auf
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
- API-Abfragen testen mit
curlundjq - Bei komplexeren Abfragen: Immer zuerst die relevanten IDs ermitteln
- Dokumentation aktualisieren bei neuen Erkenntnissen
Pitfalls
- API-Version prüfen: Zabbix 7.x hat viele Breaking Changes gegenüber 6.x
- SSL-Zertifikat:
-skFlag bei curl verwenden (self-signed cert) - Timestamps: Zabbix liefert Unix-Timestamps, ggf. konvertieren