FastNetMon ve Grafana ile Ağ Trafiği İzleme Görselleştirme ve Juniper Cihazlarda Sflow Yapılandırması
Sistem Gereksinimleri
Mimari Genel Bakış
1. Juniper Cihazlarda sFlow Yapılandırması
2. FastNetMon Kurulumu
FastNetMon Community Edition Kurulumu
FastNetMon Yapılandırması
İzlenecek Ağları Tanımlama
FastNetMon Servisini Başlatma
3. Grafana Kurulumu
Grafana Paketlerini Yükleme
Grafana Servisini Başlatma
4. InfluxDB Kurulumu
InfluxDB Paketlerini Yükleme
InfluxDB Servisini Başlatma
InfluxDB Veritabanı ve Kullanıcı Oluşturma
5. FastNetMon'u InfluxDB ile Entegre Etme
FastNetMon Yapılandırmasını Güncelleme
InfluxDB Veri Kontrolü
6. Grafana'da Veri Kaynağı Yapılandırması
InfluxDB Veri Kaynağı Ekleme
7. Grafana Dashboard'u İçe Aktarma
Dashboard JSON Dosyasını İçe Aktarma
8. Sorun Giderme
FastNetMon Loglarını Kontrol Etme
InfluxDB Servis Durumunu Kontrol Etme
Grafana Servis Durumunu Kontrol Etme
Yaygın Sorunlar ve Çözümleri
9. Güvenlik Önerileri
10. Sonuç
FastNetMon ve Grafana ile Ağ İzleme Sistemi Kurulumu
Bu makale, ağ trafiğinizi izlemek için FastNetMon ve Grafana kurulumunu adım adım anlatmaktadır. Public ağlarda kullanım için optimize edilmiştir ve Ubuntu 22.04 veya 24.04 sürümlerine uygulanabilir.
Sistem Gereksinimleri
- Ubuntu 22.04 veya 24.04 işletim sistemi
- En az 2GB RAM
- En az 20GB disk alanı
- Public IP adresi
- Root veya sudo erişimi
Mimari Genel Bakış
Kurulumumuz şu bileşenlerden oluşacak:
- FastNetMon: Ağ trafiğini analiz eden ana izleme aracı
- InfluxDB: Zaman serisi veritabanı, metrik verilerini saklar
- Grafana: Görselleştirme aracı, güzel grafikler ve panolar sağlar
- sFlow: Cihazlardan trafik örneklemesi için protokol
1. Juniper Cihazlarda sFlow Yapılandırması
set protocols sflow agent-id 10.10.10.1 # Juniper cihazın public IP'si set protocols sflow polling-interval 1 set protocols sflow sample-rate ingress 1 set protocols sflow sample-rate egress 1 set protocols sflow collector 10.10.10.5 # Grafana kurulu olan VM'nin public IP'si set protocols sflow interfaces xe-0/1/0 # İzlenecek uplink portu
Not: IP adreslerini kendi ağ yapınıza göre değiştirmeniz gerekecektir. agent-id Juniper cihazının IP'si, collector ise FastNetMon kurulu sunucunun IP'sidir.
2. FastNetMon Kurulumu
FastNetMon Community Edition Kurulumu
Aşağıdaki komutları sırasıyla çalıştırın:
wget https://storage.googleapis.com/community-installer/installer -Oinstaller sudo chmod +x installer sudo ./installer -install_community_edition
FastNetMon Yapılandırması
Yapılandırma dosyasını düzenleyin:
sudo nano /etc/fastnetmon.conf
Aşağıdaki satırları ekleyin veya düzenleyin:
enable_ban = off enable_ban_ipv6 = off sflow = on interfaces = ens160,ens192 # VM'deki ağ arayüzlerini değiştirin (ip addr komutu ile öğrenin)
Not: Network arayüzlerinizi öğrenmek için ip addr komutunu kullanın ve yukarıdaki yapılandırmayı buna göre güncelleyin.
İzlenecek Ağları Tanımlama
İzlemek istediğiniz ağ prefixlerini ekleyin:
sudo nano /etc/networks_list
Dosyaya izlemek istediğiniz ağ CIDR formatında ekleyin:
10.10.10.0/24
FastNetMon Servisini Başlatma
sudo systemctl enable fastnetmon sudo systemctl start fastnetmon sudo systemctl restart fastnetmon
Trafiği komutuyla kontrol edin:
fastnetmon_client
Bu aşamada trafiği SSH üzerinden izleyebilmeniz gerekiyor.
3. Grafana Kurulumu
Grafana Paketlerini Yükleme
sudo apt-get install -y apt-transport-https software-properties-common wget sudo mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list sudo apt-get update sudo apt-get install grafana
Grafana Servisini Başlatma
sudo systemctl daemon-reload sudo systemctl start grafana-server sudo systemctl enable grafana-server
Grafana'ya erişmek için tarayıcınızda şu adresi ziyaret edin:
http://[sunucu-ip-adresi]:3000
Varsayılan kullanıcı adı ve şifre:
- Kullanıcı adı:
admin - Şifre:
admin
İlk girişte şifrenizi değiştirmeniz istenecektir.
4. InfluxDB Kurulumu
InfluxDB Paketlerini Yükleme
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/os-release echo "deb https://repos.influxdata.com/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/influxdb.list sudo apt-get update sudo apt-get install -y influxdb sudo apt-get install -y influxdb-client
InfluxDB Servisini Başlatma
sudo systemctl start influxdb sudo systemctl enable influxdb sudo systemctl restart influxdb
InfluxDB Veritabanı ve Kullanıcı Oluşturma
influx > CREATE DATABASE fastnetmon > CREATE USER grafana WITH PASSWORD 'zor_sifre_sql' > GRANT ALL ON fastnetmon TO grafana > EXIT
Not: Güvenlik için zor_sifre_sql kısmını güçlü bir şifre ile değiştirin.
5. FastNetMon'u InfluxDB ile Entegre Etme
FastNetMon Yapılandırmasını Güncelleme
sudo nano /etc/fastnetmon.conf
Dosyaya aşağıdaki satırları ekleyin:
enable_influxdb = on influxdb_host = localhost influxdb_port = 8086 influxdb_database = fastnetmon influxdb_username = grafana influxdb_password = zor_sifre_sql influxdb_push_period = 1
Yapılandırmayı kaydettikten sonra FastNetMon'u yeniden başlatın:
sudo systemctl restart fastnetmon
InfluxDB Veri Kontrolü
Verilerin InfluxDB'ye düzgün bir şekilde gönderildiğinden emin olmak için:
influx -database 'fastnetmon' -execute 'SHOW FIELD KEYS FROM "hosts_traffic"' influx -database 'fastnetmon' -execute 'SHOW TAG KEYS FROM "hosts_traffic"'
Bu komutlar, veritabanındaki tabloları ve sütunları listeleyecektir. Eğer veri görüyorsanız, FastNetMon başarıyla InfluxDB'ye veri gönderiyor demektir.
6. Grafana'da Veri Kaynağı Yapılandırması
InfluxDB Veri Kaynağı Ekleme
- Grafana web arayüzüne giriş yapın (http://[sunucu-ip]:3000)
- Sol menüden "Configuration" (Dişli simgesi) > "Data Sources" seçeneğine tıklayın
- "Add data source" butonuna tıklayın
- "InfluxDB" seçeneğini seçin
- Aşağıdaki bilgileri girin:
- Name:
FastNetMon - URL:
http://localhost:8086 - Database:
fastnetmon - User:
grafana - Password:
zor_sifre_sql(kendi belirlediğiniz şifre) - HTTP Method:
GET
- Name:
- "Save & Test" butonuna tıklayın
Başarılı bir bağlantı için "Data source is working" mesajını görmelisiniz.
JSON Kodu : İNDİR
7. Grafana Dashboard'u İçe Aktarma
Dashboard JSON Dosyasını İçe Aktarma
- Sol menüden "Dashboards" > "Import" seçeneğine tıklayın
- "Upload JSON file" butonuna tıklayın veya JSON kodunu doğrudan yapıştırın
- Gerekli alanları doldurun:
- Name: İstediğiniz bir isim verebilirsiniz
- Folder: Dashboard'u kaydetmek istediğiniz klasörü seçin
- Var Alanı: Veri kaynağınızı "FastNetMon" olarak seçin
- "Import" butonuna tıklayın
Önemli: Dashboard'a girdikten sonra, her paneli düzenlemek için sırayla "Edit" düğmesine tıklayıp tekrar kaydetmeniz gerekir. Aksi takdirde veriler ekrana gelmeyebilir.
8. Sorun Giderme
FastNetMon Loglarını Kontrol Etme
sudo tail -f /var/log/fastnetmon.log
InfluxDB Servis Durumunu Kontrol Etme
sudo systemctl status influxdb
Grafana Servis Durumunu Kontrol Etme
sudo systemctl status grafana-server
Yaygın Sorunlar ve Çözümleri
| Sorun | Çözüm |
|---|---|
| FastNetMon veri toplamıyor |
|
| Grafana'da veri görünmüyor |
|
| InfluxDB hatası alıyorsanız |
|
9. Güvenlik Önerileri
- Grafana ve InfluxDB için güçlü şifreler kullanın
- Sunucunuzda bir güvenlik duvarı yapılandırın ve sadece gerekli portları açın:
- Grafana: 3000/TCP
- InfluxDB: 8086/TCP (sadece yerel erişim için)
- sFlow: 6343/UDP
- Düzenli olarak sunucunuzu ve tüm bileşenleri güncelleyin
- SSH erişimi için anahtar tabanlı kimlik doğrulamayı etkinleştirin ve şifre girişini devre dışı bırakın
10. Sonuç
Bu makale ile FastNetMon, InfluxDB ve Grafana kullanarak kapsamlı bir ağ izleme sistemi kurulumunu tamamlamış oldunuz. Bu sistem, ağ trafiğinizi gerçek zamanlı olarak izlemenizi, trafik anomalilerini tespit etmenizi ve ağ performansı hakkında değerli bilgiler edinmenizi sağlayacaktır.
Daha fazla bilgi ve destek için, Komuta Cloud websitemizi ziyaret edebilirsiniz.
Grafana SSL Yapılandırması
Başlamadan önce güvenlik duvarınızı kesinlikle kapatınız yoksa 80 portu üzerinden SSL oluşturulmaz.
sudo apt-get install snapd
sudo snap install core; sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone
Kendinize göre doldurun
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel): ben@benimsitem.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: y
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let’s Encrypt project and the non-profit organization that
develops Certbot? We’d like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: n
Account registered.
Please enter the domain name(s) you would like on your certificate (comma and/or
space separated) (Enter 'c' to cancel): subdomain.sitem.com
Requesting a certificate for subdomain.sitem.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/subdomain.sitem.com/fullchain.pem
Key is saved at: /etc/letsencrypt/live/subdomain.sitem.com/privkey.pem
This certificate expires on 2023-06-20.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let’s Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sudo ln -s /etc/letsencrypt/live/subdomain.sitem.com/privkey.pem /etc/grafana/grafana.key
sudo ln -s /etc/letsencrypt/live/subdomain.sitem.com/fullchain.pem /etc/grafana/grafana.crt
sudo chgrp -R grafana /etc/letsencrypt/*
sudo chmod -R g+rx /etc/letsencrypt/*
sudo chgrp -R grafana /etc/grafana/grafana.crt /etc/grafana/grafana.key
sudo chmod 440 /etc/grafana/grafana.crt /etc/grafana/grafana.key
ls -l /etc/grafana/grafana.*
Olması gereken çıktı
lrwxrwxrwx 1 root grafana 67 Mar 22 14:15 /etc/grafana/grafana.crt -> /etc/letsencrypt/live/subdomain.sitem.com/fullchain.pem
-rw-r----- 1 root grafana 54554 Mar 22 14:13 /etc/grafana/grafana.ini
lrwxrwxrwx 1 root grafana 65 Mar 22 14:15 /etc/grafana/grafana.key -> /etc/letsencrypt/live/subdomain.sitem.com/privkey.pem
sudo nano /etc/grafana/grafana.ini
aşagıdaki satırların başında ; kaldırıp kendinize göre düzenleyiniz.
[server]
http_addr = 0.0.0.0
http_port = 3000
domain = subdomain.sitem.com
root_url = https://subdomain.sitem.com:3000
cert_key = /etc/grafana/grafana.key
cert_file = /etc/grafana/grafana.crt
enforce_domain = False
protocol = https
grafanayı yeniden başlat
sudo systemctl restart grafana-server
Artık https://subdomain.sitem.com:3000 bu şekilde SSL üzerinden Grafanaya ulaşabilirsiniz.
Sunucuyu dışarıya kapatmak isterseniz.
# UFW'yi sıfırla
sudo ufw reset
# Varsayılan olarak gelen bağlantıları reddet, giden bağlantılara izin ver
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Juniper ipsinden'den gelen sFlow bağlantılarına izin ver (UDP 6343)
sudo ufw allow from 10.10.10.1 to any port 6343 proto udp > juniper public ip adresi
# Seçili IP adreslerinden gelen bağlantılarına izin ver
sudo ufw allow from 10.10.20.5 to any port 22
sudo ufw allow from 10.10.20.5 to any port 3000
Seçili IP adreslerinden gelen bağlantılarına izin ver
sudo ufw allow from 10.10.20.6 to any port 22
sudo ufw allow from 10.10.20.6 to any port 3000
Router yada Switch olmayan arkadaşlar için de vcenter NetFlow ile yapılandırmasını paylaşacağım. Arada makaleyi kontrol edin lütfen.
FastNetMon, Grafana ve InfluxDB gibi ağ izleme sistemlerini sorunsuz çalıştırabileceğiniz yüksek performanslı Linux sunucular Komuta Cloud altyapısında hazır olarak sunulmaktadır.
İster küçük ölçekli izleme sistemleri için VPS paketlerimizi, ister yüksek trafik alan kurumsal ağlar için optimize edilmiş VDS ve dedicated sunucularımızı tercih edebilirsiniz.
✅ Ubuntu 22.04 ve 24.04 tam destekli
✅ sFlow, NetFlow, FastNetMon uyumlu
✅ Grafana ön yapılandırmalı şablon seçenekleri
✅ %100 SSD, yüksek bağlantı hızları
✅ Hemen teslim, anında kurulum
Şimdi Komuta Cloud sunucu ve hosting paketlerini inceleyin ve sisteminize en uygun altyapıyı seçin.