VnStat ile trafik tüketimi nasıl kaydedilir ve izlenir
vnStat, Linux'ta ağ trafiğinin geçmişini tutan hafif bir konsol aracıdır. Arka planda çalışan vnstatd servisi, arayüz sayaçlarını çekirdekten okur ve küçük bir veritabanına kaydeder. Ardından trafiği saatlik, günlük, aylık ve yıllık olarak görüntüleyebilir ya da anlık aktarım hızını gerçek zamanlı izleyebilirsiniz. vnStat paket yakalamaz, bu nedenle sisteme getirdiği yük çok düşüktür. Her arayüzden ne kadar trafik geçtiğini gösterir, ancak bu trafiği hangi IP adreslerinin, portların veya bağlantıların oluşturduğunu göstermez.
Bu kılavuz, vnStat'ın depodan veya kaynak koddan nasıl kurulacağını ve trafik istatistiklerinin nasıl görüntüleneceğini gösterir. vnStat, trafiğin sınırlı veya ücretlendirilmiş olduğu tüm sunucularda, örneğin bir INTROSERV Linux VPS veya dedicated sunucuda faydalıdır.
vnStat'ı depodan kurma
Sunucuya SSH ile bağlanın. Ayrıntılar için SSH ile bağlanma makalesine bakın.
Ubuntu ve Debian
vnStat standart depolarda bulunur. Kurun:
sudo apt update sudo apt install -y vnstat
Kurulum, vnstat servisini başlatır ve sistem açılışında çalışacak şekilde etkinleştirir. Servisin çalıştığını kontrol edin:
sudo systemctl status vnstat
Çıktıda active (running) görünmelidir. Servis çalışmıyorsa, sudo systemctl enable --now vnstat komutuyla etkinleştirip başlatın.

AlmaLinux ve Rocky Linux
vnStat, EPEL deposunda bulunur. EPEL'i etkinleştirin ve vnStat'ı kurun:
sudo dnf install -y epel-release sudo dnf install -y vnstat
Servisi etkinleştirin ve başlatın:
sudo systemctl enable vnstat && sudo systemctl start vnstat
Servisin çalıştığını kontrol edin:
sudo systemctl status vnstat
vnStat'ı kaynak koddan kurma
Paket dağıtımınız için mevcut değilse veya en son sürüme ihtiyacınız varsa vnStat'ı kaynak koddan derleyin.
vnStat zaten depodan kurulmuşsa, önce paketi kaldırın: Ubuntu ve Debian'da sudo apt remove -y vnstat, AlmaLinux ve Rocky Linux'ta sudo dnf remove -y vnstat. Her iki kurulum da aynı yapılandırma dosyasını, veritabanını ve servis adını kullanır; bu nedenle birlikte bulunmaları çakışmalara yol açar.
Derleme için gerekli bağımlılıkları kurun. Ubuntu ve Debian'da:
sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget
AlmaLinux ve Rocky Linux'ta:
sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget
En son sürümü indirin ve arşivden çıkarın:
wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/
Arşiv, adında sürüm numarası bulunan bir dizine açılır, örneğin vnstat-2.13. vnstat-*/ joker karakteri, sürüm numarasını yazmadan bu dizine girmenizi sağlar.
vnStat'ı derleyin ve kurun:
./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install
--prefix=/usr seçeneği programları /usr/bin ve /usr/sbin dizinlerine kurar, --sysconfdir=/etc seçeneği ise yapılandırma dosyasını /etc/vnstat.conf konumuna yerleştirir.
SELinux etkin olan AlmaLinux ve Rocky Linux'ta, vnStat daha önce depodan kurulmuşsa, önce veritabanı dizininin SELinux etiketlerini geri yükleyin. Aksi halde servis Permission denied hatasıyla başlamaz:
sudo restorecon -Rv /var/lib/vnstat
systemd servisini kurun, ardından etkinleştirip başlatın:
sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat
Sürümü ve servis durumunu kontrol edin:
vnstat --version sudo systemctl status vnstat
Ağ arayüzünü belirleme
vnStat varsayılan olarak, loopback arayüzü hariç sunucunun tüm ağ arayüzlerini veritabanına ekler. Veritabanında şu anda kayıtlı olan arayüzleri görmek için şu komutu çalıştırın:
vnstat --dbiflist
Arayüzleri ip a komutuyla da listeleyebilirsiniz. Aşağıdaki örneklerde ens3 arayüzü kullanılmıştır. Bunu kendi arayüzünüzün adıyla değiştirin, örneğin eth0 veya enp1s0.
vnStat varsayılan olarak yeni verileri her 5 dakikada bir veritabanına kaydeder. Kurulumdan hemen sonra vnstat komutu henüz veri olmadığını bildirir, örneğin Not enough data available yet veya No data mesajıyla. Birkaç dakika bekleyin ve komutu yeniden çalıştırın.
Trafik istatistiklerini görüntüleme
Tüm arayüzler için özet görmek üzere vnstat komutunu seçenek vermeden çalıştırın. Özet, geçerli gün ve ay için trafiği ve her dönemin sonu için bir tahmini içerir.
vnstat
Tüm raporlarda rx gelen trafiği, tx giden trafiği, total ise ikisinin toplamını ifade eder.
Saatlik trafik
Son 12 saatlik kaydı görüntülemek için şunu çalıştırın:
vnstat -i ens3 -h --limit 12

Günlük trafik
Son 2 günlük kaydı görüntülemek için şunu çalıştırın:
vnstat -i ens3 -d --limit 2
--limit kullanılmazsa, gösterilen kayıt sayısı /etc/vnstat.conf dosyasındaki ListDays parametresiyle belirlenir (varsayılan 30). Bu parametre yalnızca çıktıyı sınırlar, veritabanında saklanan verileri etkilemez.
Aylık trafik
vnstat -i ens3 -m

Yıllık trafik
vnstat -i ens3 -y
Gerçek zamanlı trafik
Anlık aktarım hızını izlemek için şunu çalıştırın:
vnstat -i ens3 -l
Hız, Ctrl+C tuşlarına basana kadar güncellenir. Komut 10 saniyeden uzun süre çalıştıysa, vnStat ardından bu süre için bir özet gösterir.

Belirli bir saniye sayısı için trafik
Belirli bir süre boyunca ortalama trafik hızını ölçmek için süreyi saniye cinsinden belirtin. Örneğin 20 saniye:
vnstat -i ens3 -tr 20
Sayı belirtilmezse ölçüm 5 saniye sürer. Sonuç süre dolduğunda gösterilir.
Son 24 saat için grafik
Son 24 saatin trafiğini metin tabanlı grafik olarak göstermek için şunu çalıştırın:
vnstat -i ens3 -hg

İstatistikleri bir betikte işlemek için --json veya --oneline seçeneğini kullanın. Örneğin vnstat -i ens3 --json d komutu günlük istatistikleri JSON biçiminde dışa aktarır.
Varsayılan arayüzü ayarlama
Sunucuda birden fazla arayüz varsa ve genellikle yalnızca birini kontrol ediyorsanız, onu /etc/vnstat.conf yapılandırma dosyasında varsayılan olarak ayarlayın. Dosyayı açın:
sudo nano /etc/vnstat.conf
AlmaLinux ve Rocky Linux'ta nano varsayılan olarak kurulu değildir. sudo dnf install -y nano komutuyla kurun veya vi kullanın.
Interface satırını bulun, başındaki noktalı virgülü kaldırın ve arayüzünüzün adını girin:
Interface "ens3"
Dosyayı kaydedin. Artık vnstat, -i seçeneği olmadan çalıştırıldığında, örneğin vnstat -d, bu arayüzü gösterir. vnstat servisi tüm arayüzleri izlemeye devam eder.
Seçeneklerin tam listesi için vnstat --longhelp komutunu çalıştırın veya man vnstat belgesine bakın.