Sürüm: 1.4.9Bu dokümantasyon Spitfire 1.4.9 içindir.
Zabbix'i hazırlamak: rol, kullanıcı ve API token
Bu sayfa, Spitfire'ın Zabbix'inizi okuyabilmesi için Zabbix tarafında yapılacakları sürüm sürüm anlatır: bir rol, bir kullanıcı grubu, bir kullanıcı ve bir API token. Hepsi en az yetkiyle: Spitfire Zabbix'inizde hiçbir şeyi değiştirmez ve istediğiniz an erişimi kesebilirsiniz. Bağlantıyı Spitfire'da eklemek ve filtreler: Gözlemlenebilirlik: Zabbix.
Ne gerekecek
Spitfire yalnız şu API metodlarını çağırır:
| Metod | Ne için |
|---|---|
apiinfo.version |
Sürümü öğrenmek (oturum açmadan) |
hostgroup.get |
Host group adlarını çözmek |
host.get |
Filtreye uyan host'ları bulmak |
problem.get |
Koşu penceresindeki problemleri okumak |
event.get |
Problemlerin olay ayrıntıları |
Parolayla bağlanırsanız ek olarak user.login ve user.logout çağrılır. Bulguları Zabbix'e
geri yazmak isterseniz ek yetki gerekir;
o bölümde ayrıca anlatılır. Bu sayfadaki hazırlık yalnız okumayı açar.
Zabbix'te izinlerin iki kaynağı vardır. Güvenlik ekibinizin ilk sorusu genelde budur:
- Ne görebilir: kullanıcı grubunun host group izinleri. Spitfire yalnız bu gruptaki host'ları ve onların problemlerini görür.
- Ne yapabilir: kullanıcı rolü (5.2 ve sonrası) ya da kullanıcı tipi (5.0). Rolde yalnız yukarıdaki metodlara izin verilir; arayüz ve aksiyonlar kapalı kalır.
Sürümünüzü bulun
Zabbix sürümü arayüzün her sayfasının altında yazar (ör. Zabbix 8.0.0). Arayüze giremiyorsanız
API'ye oturum açmadan sorun (deneme bölümündeki ilk komut).
| Konu | 5.0 | 5.2 | 5.4 | 6.0 | 6.2 | 6.4 | 7.0 / 7.2+ | 8.0 |
|---|---|---|---|---|---|---|---|---|
| Kullanıcı rolü ve API metod izin listesi | yok (User type) | var | var | var | var | var | var | var |
| API token | yok | yok | var | var | var | var | var | var |
| Token'ın gönderilişi | – | – | auth alanı |
auth |
auth |
Authorization: Bearer |
Bearer | Bearer |
| Grup izin sekmesi | Permissions | Permissions | Permissions | Permissions | Template / Host permissions | aynı | aynı | aynı |
| Menü | Administration | Administration | Administration | Administration | Administration | Users (yeni üst menü) | Users | Users |
| Spitfire'da Zabbix sürümü | 5.0–5.2 | 5.0–5.2 | 5.4 | 6.0–6.2 | 6.0–6.2 | 6.4 | 7.0 / 7.2 ve sonrası | 7.2 ve sonrası |
Tablo, Zabbix 8.0'da birebir izlenen yoldan ve Zabbix'in sürüm notlarından derlendi. Yalnız 8.0 canlı bir kurulumda doğrulandı. Eski bir sürümde bir menü ya da sekme adı farklı görünüyorsa aynı işi yapan formu Zabbix'in o sürüme ait dokümanında bulun; izin mantığı aynıdır.
Sürüme göre adımlar
Zabbix 7.0, 7.2 ve sonrası (8.0)
Doğrulandı: Zabbix 8.0, 2026-11-08.
- Rol: Users → User roles → Create user role.
- Name
Spitfire read-only, User type User. - UI elements: hepsi kapalı.
- API access (formun alt kısmında, Access to modules ile Access to actions
arasında): Enabled; API methods Allow list; kutuya
hostgroup.get,host.get,problem.get,event.getyazıp her birinde Enter'a basın (ya da Select ile seçin). - Access to actions: hepsi kapalı.
- Bölüm görünmüyorsa User type seçili mi bakın. Select listesi yalnız o tipin kullanabildiği metodları gösterir.
- Name
- Grup: Users → User groups → Create user group.
- Group name
Spitfire readers, Frontend access Disabled (API token bundan etkilenmez). - Host permissions → Add → izlenecek host group(lar) → Read.
- Template permissions ve Problem tag filter'a dokunmayın. Tag filtresi verirseniz görülen problemleri ayrıca daraltır.
- Group name
- Kullanıcı: Users → Users → Create user.
- Username
spitfire, uzun ve rastgele bir parola, grupSpitfire readers. - Permissions sekmesi: Role
Spitfire read-only. Altta kullanıcının eriştiği host group listesi çıkar: seçtiğiniz grup orada görünüyorsa rol ile grup doğru bağlanmıştır.
- Username
- API token: Users → API tokens → Create API token.
- User
spitfire, bir son kullanma tarihi koyun (ör. 1 yıl). - Token yalnız bir kez gösterilir: hemen kopyalayın.
- User
- Deneme: Spitfire'a girmeden deneyin bölümündeki iki komut.
host.get0 dönüyorsa grubun host izni eksiktir.
7.0 ve 7.2'de aynı menü yolları beklenir; bu sürümlerde henüz birebir denenmedi.
Zabbix 6.4
Adımlar 7.x ile aynıdır: Users üst menüsü ve token'ın Authorization: Bearer
header'ıyla gönderilmesi bu sürümde geldi. Spitfire'da Zabbix sürümü olarak Zabbix 6.4'ü
seçin.
Bu sürümde birebir denenmedi. Bir alan adı farklı görünüyorsa izin mantığı aynıdır: rolde yalnız okuma metodları, grupta host group'lara Read.
Zabbix 6.0 ve 6.2
- Rol: Administration → User roles. Alanlar 7.x'teki 1. adım gibidir.
- Grup: Administration → User groups. 6.0'da grup formunda tek bir Permissions sekmesi vardır; 6.2'de Template permissions ve Host permissions ayrıldı. Host group'lara Read verin.
- Kullanıcı: Administration → Users.
- API token: Administration → General → API tokens.
- Token istek gövdesindeki
authalanıyla gider; Spitfire bunu Zabbix 6.0–6.2 seçimine göre kendisi yapar.
Bu sürümlerde birebir denenmedi. Menü adları Zabbix'in sürüm notlarından alındı.
Zabbix 5.4
6.0 gibidir: menüler Administration altında, token auth alanıyla gider. 5.4,
API token'ın geldiği ilk sürümdür. Spitfire'da Zabbix 5.4'ü seçin.
Bu sürümde birebir denenmedi.
Zabbix 5.2
Rol ve API metod izin listesi vardır (6.0'daki gibi, Administration altında), ama API token yoktur. Spitfire'da Zabbix 5.0–5.2'yi ve Oturum açma olarak Kullanıcı adı + parola'yı seçin.
Grubun Frontend access ayarını System default bırakın. Parolayla oturum açılırken
Disabled bir grup girişi reddedebilir (No permissions for system access); bu davranış henüz
doğrulanmadı. 5.4 ve sonrasında token'la Disabled güvenle kullanılır.
Zabbix 5.0 kullanıyorsanız bir sonraki bölüme bakın.
Zabbix 5.0 LTS
- Rol yoktur: kullanıcının Permissions sekmesinde User type Zabbix user'ı seçin.
- Metod bazında kısıtlama yapılamaz. Zabbix user tipi zaten yalnız okuyabildiği host'ları görür ve yapılandırmayı değiştiremez. Güvenlik ekibinize bunu söyleyin: kullanıcı yönetici değildir, yalnız kendi grubunun host'larını okur.
- Token yoktur: Spitfire'da Zabbix 5.0–5.2 ve Kullanıcı adı + parola.
- Grubun Frontend access ayarını 5.2'deki gerekçeyle System default bırakın.
Bu sürümde birebir denenmedi.
Ön kapı arkasındaysa
Zabbix'iniz bir SSO kapısının, Cloudflare Access'in ya da bir reverse proxy'nin arkasındaysa
Spitfire'ın isteği oraya takılır. Spitfire'ın Zabbix istemcisi yalnız Authorization header'ını
gönderir; Cloudflare'in CF-Access-Client-Id / CF-Access-Client-Secret header'larını
gönderemez. Bugün işleyen yol: kapıda yalnız API yolunu (/api_jsonrpc.php) Spitfire'ın çıkış
IP'sine açmak. Arayüz kapının arkasında kalır; API'yi Zabbix token'ı korur.
Cloudflare Access
Neden ayrı bir uygulama: Access aynı alan adında daha özel yolu önce eşleştirir. API yolu için açılan uygulama yalnız o dosyayı kapsar; arayüz mevcut uygulamanın e-posta ya da SSO politikasında kalır. Mevcut uygulamaya Bypass eklemek bütün arayüzü o IP'ye açar: bunu yapmayın.
Spitfire'ın çıkış IP'sini bulun. Spitfire'ın çalıştığı makinede çalıştırın. İkinci satır boşsa IPv6 çıkışı yoktur.
curl -4 -s ifconfig.me; echo; curl -6 -s ifconfig.me; echoZero Trust → Access controls → Applications → Create new application. Self-hosted and private sekmesi, Public DNS → Continue with Self-hosted and private.
Destinations → Public hostnames: Subdomain
zabbix, Domain alan adınız, Pathapi_jsonrpc.php(başında/olmadan). Zabbix bir alt yolda yayınlanıyorsa (ör./zabbix/api_jsonrpc.php) yolu ona göre yazın. Domain listesinde birbirine benzeyen adlar olabilir: dikkatle seçin.Access policies → Create new policy:
- Policy Name: ör.
spitfire-bypass - Action: Bypass
- Include → Selector IP ranges → değer
<IPv4>/32(Enter), varsa<IPv6>/128(Enter) - Save policy. Politika uygulamanın listesine Bypass olarak düşer.
- Policy Name: ör.
Authentication bölümüne dokunmayın: Bypass'ta giriş yapılmaz.
Details → Name: varsayılan ad mevcut uygulamanınkiyle aynı gelebilir (ör.
zabbix); ayırt edici bir ad verin, ör.zabbix-api-spitfire. Create.Doğrulayın:
- Spitfire makinesinden
apiinfo.versionçağrısı (ilk komut) sürümü döner:{"jsonrpc":"2.0","result":"8.0.0","id":1}. - Başka bir makineden aynı çağrı 403 döner. Bu uygulamada tek politika Bypass olduğundan eşleşmeyen IP'ler giriş sayfasına değil doğrudan 403'e düşer. Beklenen durum budur.
- Başka bir makineden arayüz (
/) Access giriş sayfasına yönlenir (302). Arayüz korunmaya devam eder.
- Spitfire makinesinden
Bypass edilen istekler Access loglarında görünmez; API erişimini izlemek için Zabbix'in audit log'una bakın. Spitfire makinesinin IP'si değişirse (yeni sunucu, IPv6'nın açılması) bağlantı 403 ile kesilir: yeni IP'yi 4. adımdaki politikaya ekleyin. Authenticated Origin Pulls açıksa sorun olmaz, istek yine Cloudflare üzerinden gelir.
Cloudflare service token ile Service Auth politikası IP'ye bağlı kalmadığı için daha iyi bir yoldur, ama Spitfire o header'ları bugün gönderemediği için şimdilik kullanılamaz.
Öteki ön kapılar
Yöntem aynıdır: yalnız /api_jsonrpc.php yolu, yalnız Spitfire'ın çıkış IP'si için kapının ön
doğrulaması atlanır.
SSO ya da uygulama proxy'leri (ör. Okta, Azure AD App Proxy, Zscaler): API yolu için "IP'ye göre ön doğrulamayı atla" kuralı.
nginx
auth_requestönündeyse: API yolunda auth'u kaldırıp IP'yle sınırlayın.location = /api_jsonrpc.php { auth_request off; allow <Spitfire IPv4>; allow <Spitfire IPv6>; deny all; # mevcut proxy_pass / fastcgi_pass satırınız }Yalnız IP izin listesi (firewall): Spitfire'ın çıkış IPv4 ve IPv6 adreslerini ekleyin.
Spitfire'a girmeden deneyin
Spitfire'ın çalıştığı makineden çalıştırın; zabbix.example.com yerine kendi adresinizi yazın.
Sürüm (oturum açmadan, token göndermeden):
curl -s -X POST https://zabbix.example.com/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '{"jsonrpc":"2.0","method":"apiinfo.version","params":{},"id":1}'Doğru çıktı:
{"jsonrpc":"2.0","result":"8.0.0","id":1}. HTML dönüyorsa adres Zabbix frontend'i değildir ya da bir giriş sayfası dönüyordur: ön kapı.Token'ın gördüğü host sayısı. 6.4 ve sonrası (
Authorization: Bearer):curl -s -X POST https://zabbix.example.com/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -H 'Authorization: Bearer <token>' -d '{"jsonrpc":"2.0","method":"host.get","params":{"countOutput":true},"id":2}'5.4, 6.0 ve 6.2 (token gövdedeki
authalanında):curl -s -X POST https://zabbix.example.com/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '{"jsonrpc":"2.0","method":"host.get","params":{"countOutput":true},"auth":"<token>","id":2}'5.0 ve 5.2: önce
user.loginile oturum açın, dönenresultdeğerini yukarıdaki komutta<token>yerine yazın.curl -s -X POST https://zabbix.example.com/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '{"jsonrpc":"2.0","method":"user.login","params":{"user":"spitfire","password":"<parola>"},"id":1}'Doğru çıktı:
{"jsonrpc":"2.0","result":"3","id":2}(sıfırdan büyük bir sayı)."result":"0"ise grubun host izni eksiktir. Yanıtta"error"varsadataalanındaki metni sık hatalar tablosunda bulun.
Spitfire'da
Gözlemlenebilirlik → Ekle → Zabbix penceresinde:
| Alan | Ne yazılır |
|---|---|
| Adres | Zabbix frontend'inin adresi, ör. https://zabbix.example.com (/api_jsonrpc.php olmadan) |
| Zabbix sürümü | Sürüm tablosundaki son satır |
| Oturum açma | API token (5.4 ve sonrası) ya da Kullanıcı adı + parola |
| API token | 4. adımda kopyaladığınız token |
| Kullanıcı adı, Parola | Yalnız parolayla: spitfire ve parolası |
| Host group'lar | 2. adımda grubun Host permissions'ına eklediğiniz adlar, birebir |
Sonra Kaydet ve Bağlantıyı dene: Zabbix sürümünü ve filtreye uyan host sayısını söyler.
Sık hatalar
| Görülen | Neden | Çözüm |
|---|---|---|
unexpected answer to apiinfo.version ve HTML |
Adres Zabbix frontend'i değil ya da bir giriş sayfası dönüyor | Adresi düzeltin; ön kapı |
| HTTP 403 (Cloudflare sayfası) | Spitfire'ın çıkış IP'si Bypass listesinde değil, IP değişti ya da istek IPv6'dan çıkıyor | Cloudflare Access adım 1 ve 4: IPv4 ve IPv6'yı ekleyin |
HTTP 302 → *.cloudflareaccess.com |
API yolu için ayrı uygulama yok ya da Path yanlış | Cloudflare Access adım 3 |
No permissions to call "host.get" |
Rolün izin listesinde metod yok | Rol → API methods (7.x adım 1) |
0 hosts match the filter |
Grubun host izni yok ya da group adı birebir değil | Grup → Host permissions; adı Zabbix'ten kopyalayın |
choose Zabbix X |
Seçilen sürüm sunucuya uymuyor | Zabbix sürümü'nde mesajdaki seçeneği seçin |
Not authorised |
Token'ın süresi dolmuş, kapalı ya da başka bir kullanıcının | Token listesinde durumuna bakın; gerekirse yenisini oluşturun |
Geri almak
Erişimi istediğiniz an kesersiniz:
- Token'ı kapatın ya da silin: Users → API tokens (5.4–6.2: Administration → General → API tokens) → Disable / Delete.
spitfirekullanıcısını kapatın ya da silin: Users → Users (6.2'ye kadar: Administration → Users).- İsterseniz rolü ve grubu da silin; ön kapıda açtığınız Bypass uygulamasını kaldırın.
Spitfire'daki bağlantı "okunamıyor" olur; geçmiş koşulardaki problemler o koşularda kalır.