
Zabbix agent servisi çalışıyor ama veri gelmiyorsa önce **sorunlu item’ın aktif mi pasif mi çalıştığını** belirleyin. Pasif kontrolde server veya proxy agent’a bağlanır; aktif kontrolde bağlantıyı agent başlatır.

Sorunlu item üzerinden ilerleyin: agent değeri üretiyor mu, doğru server/proxy ile iletişim kuruyor mu, değer Zabbix’te işleniyor mu?

## Önce aktif ve pasif kontrolü ayırın

İki durumda da ölçüm değeri agent’tan server/proxy’ye gider.

| Kontrol | İlk bağlantı         | Hedef port |
| ------- | -------------------- | ---------- |
| Pasif   | Server/proxy → Agent | TCP/10050  |
| Aktif   | Agent → Server/proxy | TCP/10051  |

Pasifte agent yanıtı aynı bağlantı üzerinden verir. Aktifte agent önce yapılacak kontrollerin listesini alır, sonra topladığı değerleri gönderir.

Portlar varsayılandır; kurulumunuzda değiştirilmiş olabilir. Firewall kuralını gerçek portlara göre değerlendirin.

### Hangi ayara bakmalısınız?

Zabbix’te **item**, CPU kullanımı veya boş disk alanı gibi bir ölçümün tanımıdır. Veri gelmeyen item’ı açıp **Type** alanını kontrol edin:

- **Zabbix agent → Pasif.** Agent’ın `Server` ayarı kimin bağlanabileceğini; `ListenIP` ve `ListenPort` ise hangi adres ve portta dinlediğini belirler.
- **Zabbix agent (active) → Aktif.** `ServerActive` bağlantı hedefidir. `Hostname`, arayüzdeki **Host name** ile eşleşmelidir.

Aynı host’ta iki tür item da bulunabilir; veri gelmeyen item’ın türüne göre ilerleyin. **Proxy’nin aktif/pasif modu ayrı bir ayardır; agent item’ının türünü belirlemez.**

## Hızlı teşhis: elinizdeki bulgu neyi gösteriyor?

| Gözlem                                                   | Öncelikle incelenecek yer                                                          |
| -------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| Agent servisi çalışıyor, hiçbir ölçüm yok                | Item türü, host/item etkinliği, bakım modu, okunan yapılandırma                    |
| Pasif kontrolde bağlantı kurulamıyor                     | Doğru server/proxy’den erişim, agent dinleme adresi, `Server` izin listesi, TLS    |
| Aktif kontrol listesi alınamıyor                         | `ServerActive`, teknik host adı, host’un **Monitored by** ayarı, TLS               |
| `agent.ping` yanıt veriyor ama belirli item hata veriyor | Item anahtarı, izinler, eklenti ve preprocessing                                   |
| Proxy agent’a erişiyor ama merkezde veri yok             | Proxy → server aktarımı, yapılandırma senkronizasyonu, tampon ve server günlükleri |
| Değer geçmişte var ama ekranda görünmüyor                | Zaman aralığı, filtreler, yetkiler, history ve preprocessing ayarları              |

Yeşil ZBX simgesi agent arayüzünün kullanılabilir olduğunu gösterir; sorunlu item’ı ayrıca kontrol edin. Zabbix 7.0’da aktif kontrollerin durumu heartbeat mesajlarıyla izlenir. Simgenin üzerine gelerek pasif arayüz ve aktif kontrol ayrıntılarını görebilirsiniz.

## 1. Doğru agent’ı ve yapılandırmayı mı inceliyorsunuz?

İzlenen Linux makinesinde:

```bash
sudo systemctl status zabbix-agent2 --no-pager
sudo journalctl -u zabbix-agent2 --since '15 minutes ago' --no-pager
sudo systemctl show zabbix-agent2 -p ExecStart -p User
```

`ExecStart` çıktısından çalışan binary’yi ve `-c` ile verilen yapılandırma dosyasını bulun. Yol bir değişkene bağlıysa `systemctl cat zabbix-agent2` ile unit dosyasını ve değişken tanımını kontrol edin. Sonraki komutlarda bu servisin binary, yapılandırma dosyası ve kullanıcı bilgilerini kullanın.

Klasik agent kullanıyorsanız servis adı genellikle `zabbix-agent`, binary `zabbix_agentd` olur. Doğru agent’ın yapılandırma dosyasını kullandığınızdan emin olun; iki agent kuruluysa 10050 portunu hangisinin dinlediğini kontrol edin.

Yapılandırmayı okurken şunları not edin:

- `Server`, `ServerActive`, `Hostname` ve varsa `HostnameItem`;
- `Include` ile yüklenen ek dosyalar;
- `LogType` ve `LogFile`;
- `ListenIP`, `ListenPort` ve TLS ayarları.

`journalctl` çıktısı boşsa, agent’ın günlükleri başka bir hedefe yazıp yazmadığını kontrol edin. `LogType=file` kullanılıyorsa agent, günlükleri `LogFile` parametresinde belirtilen dosyaya yazar; bu durumda ilgili dosyayı inceleyin. Yapılandırma veya günlükleri paylaşmadan önce IP adresleri, kullanıcı bilgileri ve gizli değerleri temizleyin.

**`Include` dosyaları:** Zabbix, eşleşen dosyaları yapılandırmaya ekler; yüklenme sırası garanti edilmez. Her parametreyi tek dosyada tanımlayın. Yedek dosyalar da desene uyuyorsa yüklenir, bu yüzden yedekleri eşleşen dizinin dışında tutun.

Şimdilik ayar değiştirmeyin. Değişiklik gerekirse, son bölümdeki yedekleme, doğrulama ve geri dönüş adımlarını izleyin.

## 2. Pasif kontrolde server veya proxy agent’a ulaşabiliyor mu?

Bu adımları host’u izleyen server veya proxy üzerinde uygulayın.

Önce **Data collection → Hosts** altında ilgili host’u açın:

1. Host etkin mi?
2. **Monitored by** seçimi doğru mu? Proxy kullanılıyorsa host’u hangi proxy izliyor?
3. Agent arayüzünün IP/DNS, **Connect to** ve port seçimi doğru mu?
4. İlgili item etkin ve türü `Zabbix agent` mı?

Agent’ın `Server` ayarı, pasif bağlantı kurmasına izin verilen kaynakları belirler. Host’u proxy izliyorsa bağlantı genellikle proxy’den gelir. NAT kullanılıyorsa agent’ın gördüğü kaynak adresini bu listeyle karşılaştırın.

Agent makinesinde varsayılan dinleme portunu kontrol edebilirsiniz:

```bash
sudo ss -lntp 'sport = :10050'
```

`ss` çıktısında 10050’yi dinleyen bir süreç görünüyorsa agent bu portta bağlantı kabul ediyor. Server/proxy’den erişimi ve TLS ayarlarını ayrıca sınayın.

Yalnız aktif kontrol yapılandırılmış ve agent 2’de `Server` tanımlı değilse pasif kontroller kapalıdır; 10050’de dinleyen süreç bulunmaz.

### Pasif bağlantıyı `zabbix_get` ile test edin

Önce agent yapılandırmasındaki TLS ayarlarını kontrol edin. TLS kullanılmıyorsa, host adı ve portu kendi ortamınıza göre değiştirerek şu komutu çalıştırın:

```bash
zabbix_get -s agent01.example.com -p 10050 -t 5 -k agent.ping
```

Komutu host’u izleyen server/proxy üzerinde, `zabbix_get` kurulu olan bir kullanıcıyla çalıştırın. Agent TLS gerektiriyorsa komuta kurulumdaki şifreleme türüne uygun seçenekleri ekleyin; agent ve test komutundaki TLS ayarları eşleşmelidir.

Beklenen yanıt **`1`** değeridir. Bu yanıt, komutu çalıştırdığınız kaynaktan agent’a ulaşıldığını ve `agent.ping` anahtarının çalıştığını gösterir.

- **Timeout:** Hedef adres ve portu, agent’ın dinleme ayarlarını, ağ kurallarını ve agent günlüğünü kontrol edin.
- **Kaynak reddi:** Agent günlüğündeki kaynak adresini `Server` izin listesiyle karşılaştırın.
- **TLS hatası:** Agent ve test komutundaki şifreleme ayarlarının eşleştiğini kontrol edin.
- **`Not supported`:** İlgili anahtarı, parametreleri ve izinleri inceleyin.

Hata mesajını agent günlüğüyle karşılaştırın. Çok arayüzlü sistemlerde `zabbix_get -I` ile testin kaynak adresini seçebilirsiniz.

Sertifika tabanlı kurulumda `zabbix_get` komutuna CA, istemci sertifikası ve anahtar seçeneklerini ekleyin. Agent ile test komutundaki TLS ayarlarını eşleştirin. 10050 erişimini yalnız gerekli kaynaklarla sınırlandırın.

## 3. Aktif kontrolde hedef ve host adı eşleşiyor mu?

Bu adımları agent makinesinde ve Zabbix arayüzünde uygulayın.

Aktif kontrolde agent, `ServerActive` ile belirtilen server/proxy’ye bağlanıp aktif kontrol listesini alır. Ardından ölçümleri bu hedefe gönderir. Server’dan agent’ın 10050 portunu sorgulamak bu akışı doğrulamaz.

Örneğin tek proxy üzerinden izlenen bir host için şu iki alanı karşılaştırın:

```ini
ServerActive=proxy01.example.com:10051
Hostname=agent01
```

Kontrol sırası:

1. `proxy01.example.com`, agent makinesinden doğru adrese çözülüyor mu?
2. Agent’tan bu hedefin yapılandırılmış TCP portuna bağlantıya izin veriliyor mu?
3. Agent’taki `Hostname`, arayüzdeki **Host name** ile büyük/küçük harf dahil aynı mı? **Visible name** bu eşleşmede kullanılmaz.
4. Host etkin mi ve **Monitored by** doğru bileşeni gösteriyor mu?
5. En az bir etkin item’ın türü gerçekten `Zabbix agent (active)` mi?
6. Agent günlüğünde kontrol listesini alma veya değer gönderme hatası var mı?

Günlük kontrolünden sonra, saklanması beklenen yeni değeri Latest data’da doğrulayın.

`Hostname` tanımlanmamışsa agent, varsayılanı `system.hostname` olan `HostnameItem` üzerinden adı alır. Makineyi klonladıysanız yeni kopyanın `Hostname` değerini kontrol edin; eski makineyle aynı kalmış olabilir.

**Yalnız `ServerActive` eklemek pasif item’ları aktif yapmaz.** Item’ın `Type` alanını kontrol edin. Template değiştirmeniz gerekiyorsa ortak template’i veya üretim host’unu gelişigüzel değiştirmeyin: etkilenecek item, trigger ve geçmiş veri ilişkilerini pilot bir host üzerinde değerlendirin.

`RefreshActiveChecks`, kontrol listesinin yenilenme aralığını belirler. Zabbix 7.0 agent 2’de varsayılan aralık **5 saniyedir**; yenileme başarısız olursa agent **60 saniye** sonra yeniden dener. Ölçümün geliş zamanını item’ın `Update interval` ve tampon ayarlarına göre değerlendirin.

## 4. TLS ayarlarını bağlantının yönüne göre karşılaştırın

Şifreli bağlantıda portun yanı sıra agent ve arayüz ayarlarının da eşleşmesi gerekir:

| Bağlantı yönü               | Agent ayarı  | Host’un Encryption sekmesi |
| --------------------------- | ------------ | -------------------------- |
| Pasif: server/proxy → agent | `TLSAccept`  | `Connections to host`      |
| Aktif: agent → server/proxy | `TLSConnect` | `Connections from host`    |

Sertifikalı bağlantıda CA zinciri, sertifika geçerliliği ve yapılandırılmış issuer/subject kısıtlarını inceleyin. Sistem saatlerini de kontrol edin. TLS hatalarında agent yapılandırmasıyla arayüzdeki şifreleme ayarlarının aynı bağlantı türü için eşleştiğini doğrulayın.

## 5. Bağlantı var ama belirli item veri üretmiyor mu?

İlgili item’ı Zabbix arayüzünde, gerekirse anahtarı agent makinesinde kontrol edin.

**Monitoring → Latest data** altında ilgili host ve item’ı seçin. **Show details**, **Info**, **Last check** ve **Last value** alanlarını birlikte inceleyerek son değerin zamanını doğrulayın.

Item `Not supported` ise hata açıklamasını kaydedin:

- Anahtar veya parametre bu agent sürümünde destekleniyor mu?
- Gereken eklenti kurulu ve doğru yapılandırılmış mı?
- Dosya, soket veya uygulama hesabına agent’ın erişimi var mı?
- `AllowKey`/`DenyKey` kuralları isteği engelliyor mu?
- Dönen veri, item’ın bilgi türü ve preprocessing adımlarıyla uyumlu mu?

Yerel kontrol için agent makinesinde ilgili anahtarı servis hesabıyla test edin:

```bash
sudo -u zabbix zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf -t agent.ping
```

`agent.ping` için beklenen yanıt `1`'dir. `-t` seçeneği, anahtarı yapılandırmayı yükleyen yerel agent sürecinde çalıştırır.

### Bakım modu ve item zamanlamasını kontrol edin

**Data collection → Maintenance** altında host veya host grubuna uygulanan bakım dönemini inceleyin. **No data collection** türünde server ölçümleri veritabanına kaydetmez; bu dönemde Latest data’ya yeni değer gelmez. **With data collection** türünde veri toplanmaya devam eder. Planlı bakım ayarını değiştirmeden önce etkilenen hostları ve veri toplamaya etkisini kontrol edin.

Item’ın **Update interval** ve varsa **Custom intervals** alanlarını inceleyin. `Update interval = 0` ise sorgu, tanımlı özel zamanlamaya göre çalışır. Sonraki kontrol zamanını bu plana göre değerlendirin.

### Preprocessing, history ve ekran filtresini unutmayın

Bağlantı doğru olsa bile her örnek saklanmayabilir:

- **Discard unchanged** ve **Discard unchanged with heartbeat**, değişmeyen değerleri eleyebilir.
- Preprocessing hatası item’ı unsupported yapabilir; **Custom on fail → Discard value** seçilmişse değer atılıp hata durumu oluşmayabilir.
- **History → Do not store**, item geçmişinin saklanmaması demektir.
- Dependent item kullanılıyorsa önce master item’ın değer üretimini ve ayrıştırmayı inceleyin.
- Latest data filtresi ve geçmiş/grafik zaman aralığı aradığınız değeri dışarıda bırakabilir.

`agent.ping` sürekli `1` döndürdüğünden, değişmeyen değerleri eleme kuralı geçmiş kayıtlarını seyrekleştirebilir.

Zabbix 7.0’da **Execute now** pasif kontrolleri hemen çalıştırır; bu seçenek `Zabbix agent` item’ında kullanılabilir. Aktif item’da yapılandırma senkronizasyonundan sonra, item’ın zamanlamasına göre yeni değeri bekleyin.

## 6. Proxy varsa iki bağlantıyı ayrı doğrulayın

Proxy kullanan bir sistemde iki farklı soru vardır:

```text
Agent ↔ Proxy     : Ölçüm toplanabiliyor mu?
Proxy ↔ Server    : Toplanan ölçüm merkeze aktarılabiliyor mu?
```

Tek proxy’ye atanmış host için pasif item’ın `zabbix_get` testini host’u izleyen proxy üzerinde yapın. Aktif item’da `ServerActive` hedefini ilgili proxy olarak ayarlayın. **Proxy group** kullanılıyorsa atanan proxy değişebileceğinden test sırasında host’un bağlı olduğu proxy’yi doğrulayın.

Şunları ayrı ayrı kontrol edin:

- Host doğru proxy’ye atanmış mı ve değişiklik proxy’ye ulaşmış mı?
- Proxy günlüğünde server bağlantısı, TLS veya veri gönderme hatası var mı?
- Tampon, disk/veritabanı ve server’ın veri kabul durumu sağlıklı mı?
- Agent, proxy ve server saatleri uyumlu mu?

Proxy veriyi yerelde tamponlar; tutulabilecek veri miktarı tampon ayarları ve disk kapasitesiyle sınırlıdır. Kesinti süresini bu kapasiteyle birlikte değerlendirin. Proxy veri toplar; trigger hesaplama ve bildirimleri server yürütür. Yeni değer Latest data’da görünüyorsa ancak alarm oluşmuyorsa trigger, action ve bildirim ayarlarını inceleyin..

Tampon veritabanını silmek, host’u yeniden oluşturmak veya history temizlemek bu aşamada ilk müdahale olmamalıdır.

## 7. Düzeltmeyi kontrollü uygulayın ve yeni ölçümle doğrulayın

> **Değişiklik uyarısı:** Yeniden başlatma kısa izleme kesintisi oluşturabilir. Ortak template değişikliği birden fazla host’u etkileyebilir. Önce tek pilot host seçin, değişecek alanları ve önceki değerlerini kaydedin. Gizli bilgi içeren yedekleri erişimi kısıtlı tutun.

Yalnız ana agent dosyasını değiştirecekseniz önce yedek alın. Yapılandırma dosyası sembolik bağlantıysa gerçek hedefini de yedekleyin.

```bash
BACKUP_DIR="/var/backups/zabbix-agent2-$(date +%Y%m%dT%H%M%S)"
sudo install -d -m 700 "$BACKUP_DIR" &&
  sudo cp -a /etc/zabbix/zabbix_agent2.conf "$BACKUP_DIR/zabbix_agent2.conf" &&
  sudo cmp /etc/zabbix/zabbix_agent2.conf "$BACKUP_DIR/zabbix_agent2.conf"
```

Komut zinciri başarıyla tamamlanmadan dosyayı değiştirmeyin. `cmp` eşit içerikte çıktı vermez ve sıfır çıkış koduyla tamamlanır. Yedek yolunu kaydedin.

Bu komut `Include` dosyalarını yedeklemez. Değiştireceğiniz ek dosyaları da korumalı yedek dizinine ayrı ayrı alın ve hangi dosyadan geldiklerini kaydedin. Host, item veya template alanlarını değiştirecekseniz önceki ayarları da ayrıca kaydedin; dosya yedeği bunları geri getirmez.

Agent dosyasındaki değişiklikten sonra gerçek servis hesabıyla yapılandırmayı doğrulayın:

```bash
sudo -u zabbix zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf -T
```

`-T` yapılandırmayı doğrular. Komut başarısızsa servisi yeniden başlatmayın. Doğrulama başarılı ve kesinti planlıysa agent’ı yeniden başlatın:

```bash
sudo systemctl restart zabbix-agent2
sudo systemctl status zabbix-agent2 --no-pager
```

Yalnız arayüzde item ayarı değişti diye agent’ı otomatik olarak yeniden başlatmayın.

### Düzeltme sonrası kontrol

1. Başta seçtiğiniz host, item anahtarı ve kontrol türünü yeniden doğrulayın.
2. Pasif kontrolde gerçek izleme kaynağından güvenli sorguyu; aktif kontrolde liste alma ve değer gönderme günlüklerini kontrol edin.
3. History saklanan ve preprocessing’den geçen item’larda **değişiklikten sonra üretilmiş yeni değeri** Latest data’da bulun. History saklanmayan master item için ilgili dependent item’ın yeni sonucunu kontrol edin. Gerekirse mevcut `system.uptime` item’ını yardımcı kontrol olarak kullanın; asıl hatalı item’ı ayrıca doğrulayın.
4. Saklama ve preprocessing ayarlarına göre yeni değerleri izleyin. Başarıyı, değişiklikten sonra üretilmiş ve beklenen filtrelerden geçmiş bir değerle doğrulayın.
5. Geçici debug ayarlarını eski durumuna getirin; teşhis kayıtlarını kurumun saklama politikasına göre yönetin.

Sorun sürerse değiştirdiğiniz dosya ve arayüz ayarlarını yedekten geri alın. Yedek dizini olarak kaydettiğiniz `BACKUP_DIR` değerini kullanın; değişken terminalde tanımlı değilse gerçek yedek yolunu girin. Yalnız ana dosyayı değiştirdiyseniz:

```bash
sudo cp -a "$BACKUP_DIR/zabbix_agent2.conf" /etc/zabbix/zabbix_agent2.conf &&
  sudo cmp "$BACKUP_DIR/zabbix_agent2.conf" /etc/zabbix/zabbix_agent2.conf &&
  sudo -u zabbix zabbix_agent2 -c /etc/zabbix/zabbix_agent2.conf -T
```

Kopyalama, içerik karşılaştırması veya `-T` başarısızsa yeniden başlatmayın. Hepsi başarılı olduktan sonra planlı yeniden başlatmayı ve düzeltme sonrası kontrolleri tekrarlayın.

**Özet:** Önce agent servisini, ardından item’ın kontrol yönüne uygun bağlantıyı, son olarak Latest data’daki yeni değeri kontrol edin. Böylece sorunun hangi aşamada olduğunu belirleyip gereksiz firewall veya template değişikliklerinden kaçınabilirsiniz.

Kurumsal Zabbix altyapısının kurulumu ve işletimi için Mono’nun [Zabbix hizmet kapsamını](/teknolojiler/zabbix/) inceleyebilirsiniz.

### Kaynaklar

- [Zabbix 7.0 — Aktif ve pasif agent kontrolleri](https://www.zabbix.com/documentation/7.0/en/manual/appendix/items/activepassive)
- [Zabbix 7.0 — Agent 2 yapılandırması](https://www.zabbix.com/documentation/7.0/en/manual/appendix/config/zabbix_agent2)
- [Zabbix 7.0 — `zabbix_get`](https://www.zabbix.com/documentation/7.0/en/manpages/zabbix_get)
- [Zabbix 7.0 — `zabbix_agent2`](https://www.zabbix.com/documentation/7.0/en/manpages/zabbix_agent2)
- [Zabbix 7.0 — Host ve şifreleme ayarları](https://www.zabbix.com/documentation/7.0/en/manual/config/hosts/host)
- [Zabbix 7.0 — Latest data](https://www.zabbix.com/documentation/7.0/en/manual/web_interface/frontend_sections/monitoring/latest_data)
- [Zabbix 7.0 — Bakım dönemleri](https://www.zabbix.com/documentation/7.0/en/manual/maintenance)
- [Zabbix 7.0 — Preprocessing](https://www.zabbix.com/documentation/7.0/en/manual/config/items/preprocessing)
- [Zabbix 7.0 — Proxy işletimi](https://www.zabbix.com/documentation/7.0/en/manual/distributed_monitoring/proxies)
