« Tüm yayınlar

redissnoop: eBPF ile Sıfır Yük Redis Trafik İzleyici

redissnoop, eBPF kullanarak Redis komutlarını çekirdek seviyesinde izler; MONITOR veya proxy gerektirmez, TLS trafiğini şifrelenmeden önce okuyabilir ve sunucuya yük bindirmez.

redissnoop, Redis'e giden komutları canlı olarak gösteren, sıfır konfigürasyonlu bir eBPF profilleyicisidir. Uygulamayı veya Redis sunucusunu değiştirmeden, çekirdekteki tcp_sendmsg fonksiyonuna bir kprobe, TLS kütüphanesindeki SSL_write fonksiyonuna ise bir uprobe yerleştirerek trafiği okur. Bu sayede hem düz metin hem de şifrelenmeden önceki TLS trafiği tek bir araçla görülebilir; klasik MONITOR komutunun sunucuya bindirdiği yük ise ortadan kalkar.

Araç üç ayrı görünüm sunar: en kritik bulguları sıralayan bir 'Report' sekmesi, trafiği anahtar desenine (örneğin user:*) göre gruplayan bir görünüm ve komutlara göre gruplayıp KEYS, FLUSHALL gibi tehlikeli 'footgun' komutlarını işaretleyen bir görünüm. Durum çubuğunda şifreli/düz metin oranı ve saniyedeki komut sayısı canlı olarak izlenebiliyor.

Bazı sınırlamalar var: sadece TCP bağlantıları yakalanabiliyor, Unix soketleri görünmüyor; şifreli yakalama da yalnızca dinamik bağlı OpenSSL kullanan istemcilerle çalışıyor, statik bağlanan TLS kütüphaneleri (örneğin bazı Go derlemelerindeki BoringSSL) görünmez kalıyor. Ayrıca araç bir gecikme profilleyicisi değil, trafik profilleyicisidir ve değerleri değil sadece komut adları ile anahtarları okur.

Bu tür bir araç, üretim ortamında Redis performans sorunlarını teşhis eden backend geliştiricileri ve paylaşılan cache'leri denetleyen SRE'ler için özellikle değerli; müdahaleci olmayan, düşük riskli bir gözlemlenebilirlik katmanı sağlıyor.

» KaynakHashnode #2