İçeriğe geç
Blog

Zabbix agent çalışıyor ama veri gelmiyor: teşhis rehberi

Zabbix agent çalışıyor ama veri gelmiyorsa item türünü, Hostname eşleşmesini, proxy ve TLS ayarlarını kontrol edin; yeni değeri Latest data’da arayın.

Tarih
Yazar Burak Hasan Erdoğan
Okuma süresi 10 dk

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
PasifServer/proxy → AgentTCP/10050
AktifAgent → Server/proxyTCP/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 yokItem türü, host/item etkinliği, bakım modu, okunan yapılandırma
Pasif kontrolde bağlantı kurulamıyorDoğru server/proxy’den erişim, agent dinleme adresi, Server izin listesi, TLS
Aktif kontrol listesi alınamıyorServerActive, teknik host adı, host’un Monitored by ayarı, TLS
agent.ping yanıt veriyor ama belirli item hata veriyorItem anahtarı, izinler, eklenti ve preprocessing
Proxy agent’a erişiyor ama merkezde veri yokProxy → server aktarımı, yapılandırma senkronizasyonu, tampon ve server günlükleri
Değer geçmişte var ama ekranda görünmüyorZaman 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:

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:

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:

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:

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 → agentTLSAcceptConnections to host
Aktif: agent → server/proxyTLSConnectConnections 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:

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:

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.

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:

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:

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:

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ı inceleyebilirsiniz.

Kaynaklar

operasyongözlemlenebilirlik