Komutları üretim sunucusunda çalıştırmadan önce yedek alın ve mümkünse bir test ortamında deneyin. Yönetim erişiminizi (SSH, panel) kaybetmemek için ayar değişikliklerinde açık bir ikinci oturum bulundurun.
Bu rehberde ne yapacağız?
Bir sunucunun veya ağ cihazının ayakta olup olmadığını öğrenmek yetmez; arayüz doluluğunu, disk alanını, CPU yükünü ve hata sayaçlarını zaman içinde görmek gerekir. Bu rehberde SNMP ile ağ izleme ile agent tabanlı izleme arasındaki farkı anlatıyor, bir Linux sunucuda SNMPv3 hizmetini güvenli biçimde açıyor ve Zabbix ile LibreNMS gibi izleme sistemlerinin ortak yaklaşımını, yani toplama, eşik ve uyarı döngüsünü kuruyoruz.
Rehber, birden fazla sunucu veya anahtar/yönlendirici yöneten hosting ve sistem yöneticilerine yöneliktir. Tahmini süre: 30-45 dakika. Ağ cihazları için üreticiye özel komut verilmez; cihazınızda SNMPv3 kullanıcısını tanımlamak için üretici belgesine bakmanız gerekir. Aşağıdaki ilkeler ve Linux araçları her yerde geçerlidir.
Gereksinimler
- Debian/Ubuntu veya AlmaLinux/Rocky çalıştıran bir sunucu ve sudo yetkisi
- Ayrı bir izleme sunucusu (Zabbix, LibreNMS veya benzeri); en azından sorgu yapabilen bir yönetim makinesi
- İzleme sunucusundan hedefe UDP 161 portu için erişim izni
- Güvenlik duvarında değişiklik yapabileceğiniz ikinci bir açık SSH oturumu
Adım adım SNMP ve agent ile izleme
1. SNMP mi agent mı, hangisi?
SNMP (Simple Network Management Protocol) cihaz tarafında hazır gelen, hafif bir sorgu protokolüdür. Anahtar, yönlendirici, güvenlik duvarı ve UPS gibi yazılım kuramayacağınız cihazlar için neredeyse tek seçenektir. Sorgulanacak değerler MIB/OID adlı hiyerarşik adreslerle tanımlanır.
Agent ise sunucuya kurulan küçük bir yazılımdır (örneğin Zabbix agent). Süreç, servis, günlük dosyası ve özel metrik gibi SNMP'nin zor verdiği ayrıntıları toplar, şifreli iletişim ve aktif/pasif toplama modları sunar. Pratik kural: ağ cihazlarında SNMP, sunucularda agent; yapıyı ikisini birden destekleyen bir izleme sistemiyle birleştirin.
2. Sunucuya SNMP hizmetini kurun
SNMPv1 ve v2c, topluluk adını (community) şifresiz taşır; internete açık bırakılması ciddi bilgi sızıntısına yol açar. Bu yüzden v3 kullanıcı doğrulaması ve şifrelemesiyle kuracağız.
# Debian/Ubuntu
sudo apt update
sudo apt install snmpd snmp libsnmp-dev
# AlmaLinux/Rocky
sudo dnf install net-snmp net-snmp-utils3. SNMPv3 kullanıcısı oluşturun
Kullanıcı oluşturmadan önce hizmet durdurulur. Komut, parolayı komut satırında vermeden etkileşimli olarak sorar; yalnızca okuma yetkili (-ro) bir kullanıcı yeterlidir. Parolalar en az 8 karakter olmalıdır.
sudo systemctl stop snmpd
sudo net-snmp-create-v3-user -ro -a SHA -x AES izlemeNot: Debian/Ubuntu'da bu betik libsnmp-dev paketiyle gelir (yukarıda kuruldu); RHEL tabanlı sistemlerde net-snmp paketindedir. Bulamazsanız command -v net-snmp-create-v3-user ile arayın veya dağıtımınızın belgesine bakın.
4. Dinleme adresini ve erişimi sınırlayın
Varsayılan yapılandırmada snmpd yalnızca yerel arayüzü dinleyebilir veya tüm arayüzlerde açık gelebilir. Dinlediği adresi ve görebileceği bilgiyi kısıtlayın. Önce yedek alın.
sudo cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.yedek
sudo nano /etc/snmp/snmpd.conf# Yalnızca sunucunun izleme ağındaki adresinde dinle
agentaddress udp:10.0.0.10:161
# Okuma yetkili v3 kullanıcısı (net-snmp-create-v3-user zaten ekler)
rouser izleme authPriv
sysLocation Veri merkezi, raf 12
sysContact noc@example.comDosyada eski bir rocommunity public satırı varsa silin veya yorum yapın. Sonra hizmeti başlatın:
sudo systemctl enable --now snmpd5. UDP 161 erişimini yalnızca izleme sunucusuna açın
SNMP'yi dünyaya açmayın. nftables kullanıyorsanız mevcut kural setinizdeki giriş zincirine yalnızca izleme sunucusu için kural ekleyin. Önce sudo nft list ruleset ile tablo ve zincir adlarını doğrulayın; zincirin sonunda bir drop/reject kuralı varsa add yerine insert kullanın. Komutla eklenen kural kalıcı değildir, nftables yapılandırma dosyanıza da ekleyin.
sudo nft add rule inet filter input ip saddr 10.0.0.5 udp dport 161 acceptufw için sudo ufw allow from 10.0.0.5 to any port 161 proto udp, firewalld için ise zengin kural (rich rule) kullanabilirsiniz. Kural eklerken açık bir ikinci SSH oturumu tutun.
6. Sorguyu izleme sunucusundan test edin
Parolayı komut satırına yazmamak için sorgulayan makinede istemci yapılandırma dosyasını kullanın. Dosya yalnızca kendi kullanıcınız tarafından okunabilmelidir.
umask 077
mkdir -p ~/.snmp
nano ~/.snmp/snmp.confdefVersion 3
defSecurityLevel authPriv
defSecurityName izleme
defAuthType SHA
defPrivType AES
defAuthPassphrase buraya-yetki-parolasi
defPrivPassphrase buraya-sifreleme-parolasichmod 600 ~/.snmp/snmp.conf
# system ağacı (MIB dosyası gerektirmemek için sayısal OID)
snmpwalk 10.0.0.10 1.3.6.1.2.1.17. İzleme sistemine ekleyin ve eşikleri belirleyin
LibreNMS'te cihaz eklerken SNMP sürümünü v3 seçip aynı kullanıcı bilgilerini girersiniz; cihaz bulma işlemi arayüzleri ve sensörleri kendiliğinden bulur. Zabbix'te SNMP arayüzlü bir host oluşturup şablon bağlarsınız. Sunucularda ise Zabbix agent kurup yapılandırma dosyasında izleme sunucusunu belirtirsiniz:
# /etc/zabbix/zabbix_agent2.conf
Server=10.0.0.5
ServerActive=10.0.0.5
Hostname=web01.example.comEşik belirlerken şu yaklaşım iyi bir başlangıçtır: uyarı seviyesini düşük, kritik seviyeyi yüksek tutun ve tek bir ölçümde değil, belirli bir süre boyunca aşıldığında uyarı üretin.
- Disk doluluğu: yüzde 80 uyarı, yüzde 90 kritik
- CPU yükü: 5 dakika boyunca çekirdek sayısının üzerinde ise uyarı
- Bellek: kullanılabilir bellek yüzde 10'un altında 10 dakika ise uyarı
- Arayüz: hata (error) ve düşen paket sayacı sürekli artıyorsa uyarı
- Erişilebilirlik: ping veya SNMP yanıtı art arda 3 denemede alınamazsa kritik
Doğrulama
İzleme sunucusundan SNMPv3 sorgusu yanıt vermelidir. Aşağıdaki komutlar sistem adını (sysName) ve arayüz açıklamalarını (ifDescr) sorgular.
snmpget 10.0.0.10 1.3.6.1.2.1.1.5.0
snmpwalk 10.0.0.10 1.3.6.1.2.1.2.2.1.2Beklenen sonuç: ilk komut ana bilgisayar adını, ikinci komut arayüz adlarını döndürür. Hedef sunucuda sudo ss -lunp | grep 161 çıktısında snmpd sürecini yalnızca belirlediğiniz adreste dinlerken görmelisiniz. İzin verilmeyen bir üçüncü makineden aynı sorgu zaman aşımına uğramalıdır; bu, güvenlik duvarı kuralının çalıştığını kanıtlar.
Sık karşılaşılan sorunlar
- Timeout (zaman aşımı) alıyorum: Güvenlik duvarında UDP 161 kuralını, agentaddress değerini ve hizmetin çalıştığını kontrol edin;
sudo tcpdump -ni any udp port 161ile paketin gelip gelmediğine bakın. - Authentication failure veya Unknown user name: Kullanıcı adı, SHA/AES algoritması ve parolalar iki tarafta aynı olmalıdır. Kullanıcı hizmet durdurulmadan oluşturulduysa kaydedilmemiş olabilir; hizmeti durdurup yeniden oluşturun.
- Bazı OID'ler boş dönüyor: rouser tanımı varsayılan olarak tüm ağacı göstermeyebilir; görünüm (view) ayarlarını net-snmp belgesinden kontrol edin.
- Grafikler eksik veya sıfır görünüyor: Sayaç tipleri 32 bit ise hızlı arayüzlerde taşar; 64 bit sayaçları (HC) kullanan sensörleri tercih edin.
- Çok fazla yanlış alarm: Eşiği süreyle birlikte tanımlayın ve bakım pencerelerinde uyarıları susturun.
Güvenlik ve bakım notları
- v1/v2c ve
publictopluluk adını kullanmayın; mümkünse yalnızca v3 authPriv seviyesini açın. - SNMP erişimini yalnızca izleme sunucusunun IP adresine verin ve yönetim ağı dışına çıkarmayın.
- Okuma yetkili kullanıcı kullanın; yazma yetkisi (rwuser) gerçekten gerekmedikçe açmayın.
- Parola içeren istemci yapılandırma dosyalarının izinlerini 600 tutun ve izleme sunucusunu yedekleyin.
- Uyarıları e-posta, mesajlaşma ve nöbet çizelgesi gibi en az iki kanala bağlayın; izleme sisteminin kendisinin çalıştığını başka bir noktadan denetleyin.
- Her ay gereksiz uyarıları gözden geçirin; sürekli susturulan uyarı güveni azaltır.
Sık sorulan sorular
SNMP trafiği şifreli mi?
Yalnızca SNMPv3 authPriv güvenlik seviyesinde hem kimlik doğrulama hem şifreleme sağlanır. v1 ve v2c sürümlerinde topluluk adı açık metin olarak taşınır; bu nedenle üretimde v3 tercih edilmelidir.
Agent kurmak yerine yalnızca SNMP yetmez mi?
Temel CPU, bellek, disk ve arayüz metrikleri için SNMP yeterli olabilir. Süreç, servis durumu, günlük içeriği ve uygulama metrikleri gerekiyorsa agent çok daha esnek ve ayrıntılı veri sağlar.
Hangi aralıkla veri toplamalıyım?
Çoğu altyapı için 1-5 dakikalık aralık yeterlidir. Daha sık sorgulama hem hedef cihaza hem izleme sunucusuna yük bindirir; kritik arayüzler için kısa, genel sensörler için uzun aralık seçebilirsiniz.
İlgili sözlük terimleri
Bu kategorideki diğer rehberler
- Ağ sorun giderme: ping, traceroute, mtr ve dig ile adım adım teşhisBağlantı ve yavaşlık sorunlarında ping, traceroute, mtr, dig, ss ve tcpdump araçlarıyla sorunun nerede olduğunu adım adım bulmayı gösteren Linux ağ sorun giderme rehberi.
- IPv6 güvenlik duvarı ve adresleme temelleriIPv6 adresleme, SLAAC, gerekli ICMPv6 türleri, nftables ile IPv6 güvenlik duvarı kuralları ve sunucuda IPv6 kapatma/açma adımlarını anlatan pratik bir rehber.
- Ağ cihazı yapılandırma yedekleme yaklaşımıAnahtar, yönlendirici ve güvenlik duvarı yapılandırmalarını zamanlanmış olarak çekme, Git ile sürüm kontrolü ve değişiklik takibi için üretici bağımsız bir yedekleme yaklaşımı.
- Yönetim ağını ayırma ve ağ cihazı erişim güvenliğiYönetim ağını ayırma ve ağ cihazı erişim güvenliği: ayrı yönetim ağı tasarımı, atlama sunucusu (bastion), SSH ile erişim, güvenlik duvarı kuralları ve günlükleme.