Zabbix ile Network İzleme — Docker Kurulumu ve MikroTik Entegrasyonu
Zabbix 7 Docker kurulumu, MikroTik SNMP ayarları, template import, Telegram alert botu ve ISP ağı için özelleştirilmiş dashboard. Neden izleme şart?
Zabbix 7 Docker kurulumu, MikroTik SNMP ayarları, template import, Telegram alert botu ve ISP ağı için özelleştirilmiş dashboard. Neden izleme şart?
İçindekiler ▾
- Neden İzleme Şart?
- Docker ile Zabbix 7 Kurulumu
- Gereksinimler
- docker-compose.yml
- MikroTik SNMP Ayarları
- SNMP v2c (Basit)
- SNMP v3 (Güvenli — Önerilen)
- Firewall — SNMP Erişim Kısıtlaması
- Zabbix’te MikroTik Eklemek
- Host Ekleme
- Template Import
- Telegram Alert Botu
- 1. Bot Oluştur
- 2. Chat ID Al
- 3. Zabbix Media Type
- 4. Action Oluştur
- Örnek Alert Mesajı
- Dashboard Yapılandırma
- Global View Dashboard
- MikroTik-Spesifik Dashboard
- Useful Items ve Triggers
- CPU Yükü Alarmı
- Interface Down Alarmı
- Yüksek Ping Alarmı
- Disk Dolma Uyarısı (Zabbix Sunucusu İçin)
- Zabbix Proxy — Uzak Lokasyonlar İçin
- Bakım ve Performans
- Zabbix Veritabanı Büyümesi
- Yavaş Dashboard Çözümü
İzleme sistemin olmayan bir ağ, sessiz bir arıza merkezidir. Trafik yoğunluğu ne zaman pik yapıyor bilmiyorsun. Hangi bağlantı ne zaman düştü göremiyorsun. Müşteri sana sorundan önce arıyor. Zabbix bu problemi çözer — ama kurulumu doğru yapılmışsa.
Neden İzleme Şart?
Bir ISP senaryosu: Backbone bağlantılarından biri gece 03:00’te CPU %95’e çıkıyor ve paket kaybı başlıyor. Sabah 08:00’de müşteri şikayetleri geliyor. İzleme sistemi olsaydı 03:00’de alarm verecekti, sorun sabaha kalmadan çözülecekti.
Downtime maliyeti tahmini: Saatlik 100 aktif müşterisi olan bir ISP için 1 saat kesinti, onlarca müşteri kaybı riski ve itibar zararı demek. Zabbix kurulum maliyeti: sunucu + 2-3 gün konfigürasyon süresi.
| İzleme Aracı | Tür | Lisans | Öne Çıkan |
|---|---|---|---|
| Zabbix | Genel | Ücretsiz (OSS) | Esnek, özelleştirilebilir |
| PRTG | Genel | Ücretli (500 sensör ücretsiz) | Kolay kurulum |
| LibreNMS | Ağ odaklı | Ücretsiz (OSS) | Otomatik discovery |
| Nagios | Genel | Ücretsiz (OSS) | Köklü, plugin ekosistemi |
| Grafana+Prometheus | Metrik | Ücretsiz (OSS) | Görselleştirme odaklı |
Docker ile Zabbix 7 Kurulumu
Gereksinimler
- Ubuntu 22.04+ veya Debian 12
- Docker Engine + Docker Compose
- 4 GB RAM (minimum), 8 GB önerilen
- 50 GB disk (log ve metrik büyümesi için)
docker-compose.yml
version: '3.8'
services:
zabbix-db:
image: postgres:15-alpine
container_name: zabbix-db
restart: unless-stopped
environment:
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: ZabbixSecurePass2026
volumes:
- zabbix-db-data:/var/lib/postgresql/data
networks:
- zabbix-net
zabbix-server:
image: zabbix/zabbix-server-pgsql:alpine-7.0-latest
container_name: zabbix-server
restart: unless-stopped
environment:
DB_SERVER_HOST: zabbix-db
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: ZabbixSecurePass2026
ZBX_STARTPOLLERS: 10
ZBX_STARTPINGERS: 5
ZBX_SNMPTRAPPERFILE: /var/lib/zabbix/snmptraps/snmptraps.log
ports:
- "10051:10051"
volumes:
- zabbix-snmptraps:/var/lib/zabbix/snmptraps
networks:
- zabbix-net
depends_on:
- zabbix-db
zabbix-web:
image: zabbix/zabbix-web-nginx-pgsql:alpine-7.0-latest
container_name: zabbix-web
restart: unless-stopped
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: zabbix-db
POSTGRES_DB: zabbix
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: ZabbixSecurePass2026
PHP_TZ: Europe/Istanbul
ports:
- "8080:8080"
networks:
- zabbix-net
depends_on:
- zabbix-server
zabbix-agent:
image: zabbix/zabbix-agent2:alpine-7.0-latest
container_name: zabbix-agent
restart: unless-stopped
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_HOSTNAME: zabbix-server-host
networks:
- zabbix-net
volumes:
zabbix-db-data:
zabbix-snmptraps:
networks:
zabbix-net:
driver: bridge
# Başlat
docker-compose up -d
# Log kontrol
docker-compose logs -f zabbix-server
# Web arayüz: http://SUNUCU_IP:8080
# Varsayılan: Admin / zabbix (ilk girişte değiştir!)
MikroTik SNMP Ayarları
SNMP v2c (Basit)
/snmp
set enabled=yes contact="admin@sirket.com" location="Istanbul-DC"
/snmp community
set 0 name=siberkale-monitor addresses=192.168.88.0/24
# "addresses" — sadece Zabbix sunucu IP'si erişebilsin
SNMP v3 (Güvenli — Önerilen)
/snmp
set enabled=yes
/snmp community
add name=v3-monitor \
security=private \
authentication-protocol=SHA1 \
authentication-password=AuthPass2026 \
encryption-protocol=AES \
encryption-password=EncPass2026 \
comment="Zabbix v3 community"
Firewall — SNMP Erişim Kısıtlaması
/ip firewall filter
add chain=input action=accept protocol=udp dst-port=161 \
src-address=192.168.88.200 \
comment="SNMP — sadece Zabbix sunucusundan"
add chain=input action=drop protocol=udp dst-port=161 \
comment="SNMP — diğer tüm kaynaklardan engelle"
Zabbix’te MikroTik Eklemek
Host Ekleme
Configuration→Hosts→Create host- Host name: Router1-Core
- Groups: Network devices
- Interface: SNMP
- IP: 192.168.88.1
- Port: 161
- SNMP version: SNMPv2 veya v3
- Community: siberkale-monitor
Template Import
MikroTik için hazır Zabbix template’leri var:
Resmi: Template Net MikroTik SNMP — Zabbix 7 ile birlikte geliyor
- CPU, bellek, disk kullanımı
- Interface trafiği (her port için)
- BGP, OSPF durumu
- Wireless client sayısı
Özel: community template’leri için Zabbix Share → “MikroTik” arama
Configuration → Templates → Import
Dosya: zbx_export_templates_mikrotik.yaml
Telegram Alert Botu
Zabbix problem alertleri Telegram’a gönderilsin:
1. Bot Oluştur
Telegram’da @BotFather’a yaz:
/newbot
İsim: SiberKale Monitor
Username: siberkale_monitor_bot
Token’ı kopyala: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
2. Chat ID Al
Botu gruba veya kanala ekle, sonra:
curl "https://api.telegram.org/bot<TOKEN>/getUpdates"
# "chat":{"id": -1234567890} kısmını bul
3. Zabbix Media Type
Administration → Media types → Telegram
Bot token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ
4. Action Oluştur
Configuration → Actions → Trigger actions → Create action
Koşullar:
- Trigger severity: Warning (veya Disaster)
İşlem:
- Send message to: Telegram
- Send to: Chat ID’n
Örnek Alert Mesajı
🔴 PROBLEM: Router1-Core
Tetikleyici: Interface ether1: Traffic Out is too high
Önem: Yüksek
Zaman: 2026-05-01 14:32:15 (Europe/Istanbul)
Host: Router1-Core (192.168.88.1)
Değer: 98.7 Mbps (eşik: 80 Mbps)
Dashboard Yapılandırma
ISP/ağ yöneticisi için önerilenler:
Global View Dashboard
Widget 1: Network Map
- Tüm core router’ları gösteren topoloji görünümü
- Problem durumunda kırmızı gösterim
Widget 2: Top Interfaces by Traffic
- En yüksek trafikli 10 interface
Widget 3: Problems (aktif alarmlar)
Widget 4: Uptime Summary
- Kritik cihazların uptime durumu
MikroTik-Spesifik Dashboard
Dashboard → Create dashboard → "MikroTik Overview"
Widget önerileri:
- CPU/memory graph (son 24 saat)
- Interface traffic (ether1 WAN)
- Active connections count
- Wireless clients (CAPsMAN ise aggregate)
- BGP peer durumu (ISP ise)
Useful Items ve Triggers
CPU Yükü Alarmı
Item: system.cpu.util[,idle]
Trigger: CPU_IDLE < 20 (CPU kullanımı > %80)
Severity: High
Recovery: CPU_IDLE > 30
Interface Down Alarmı
Item: ifOperStatus[{#IFNAME}]
Trigger: ifOperStatus=2 (down)
Severity: Disaster
Recovery: ifOperStatus=1 (up)
Yüksek Ping Alarmı
Item: icmppingsec
Trigger: icmppingsec > 0.1 (100ms'den yüksek gecikme)
Severity: Warning
Disk Dolma Uyarısı (Zabbix Sunucusu İçin)
Item: vfs.fs.size[/var/lib/zabbix,pfree]
Trigger: pfree < 20 (disk %80 dolunca)
Severity: High
Zabbix Proxy — Uzak Lokasyonlar İçin
Farklı lokasyonlardaki ağı merkezi Zabbix ile izlemek istiyorsan:
[Merkez — Zabbix Server]
↑ (API)
[Lokasyon A — Zabbix Proxy] → 50 cihaz
[Lokasyon B — Zabbix Proxy] → 50 cihaz
Proxy kurulumu:
docker run -d \
--name zabbix-proxy \
-e ZBX_SERVER_HOST=merkez.sirket.com \
-e ZBX_SERVER_PORT=10051 \
-e ZBX_HOSTNAME=proxy-ankara \
zabbix/zabbix-proxy-sqlite3:alpine-7.0-latest
Merkezde Administration → Proxies → Create proxy ile kaydet.
Bakım ve Performans
Zabbix Veritabanı Büyümesi
Her host için günlük ~1 MB veri birikebilir. 1000 host = 1 GB/gün. Housekeeping ayarı:
Administration → General → Housekeeping
History storage period: 30 days
Trend storage period: 365 days
Yavaş Dashboard Çözümü
# PostgreSQL sorgu performansını izle
docker exec -it zabbix-db psql -U zabbix -c "
SELECT query, calls, mean_exec_time
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 10;"
Yavaş sorgular için index eksik olabilir — resmi Zabbix upgrade scripti indexleri günceller.
Pratik ipucu: Zabbix’i kurduktan sonra ilk hafta fazla trigger ekleme. Önce mevcut ağın normal davranışını gözlemle — hangi değerler normal, hangileri anormal? Gerçek olmayan alarmlar (false positive) güven kaybettirir ve alertlerin görmezden gelinmesine yol açar.
Kaynaklar
- Zabbix 7.0 LTS — resmi performans benchmark'ı 100.000+ NVPS — Zabbix Official Documentation (2024)
- Ağ izleme olmadan ortalama arıza tespit süresi (MTTD) 197 gün — IBM Cost of a Data Breach Report (2024)
- Proaktif izleme ile plansız kesintiler %70 azaltılabilir — Gartner IT Operations Report (2023)
Sıkça Sorulan Sorular
Zabbix, PRTG ve LibreNMS arasında ne seçmeli? +
Zabbix: güçlü, özelleştirilebilir, ücretsiz (açık kaynak). PRTG: kolay kurulum, Windows tabanlı, lisanslı. LibreNMS: ağ odaklı, SNMP merkezli, daha basit. Büyük, karma ortamlar için Zabbix; saf ağ izleme için LibreNMS önerilebilir.
Zabbix Docker ile production ortamda kullanılabilir mi? +
Evet, özellikle Zabbix resmi Docker imajları kullanıldığında. Volume mount ile veri kalıcılığı sağlanır. Ancak büyük ortamlarda (1000+ host) performans için ayrılmış PostgreSQL sunucusu önerilir.
MikroTik'te SNMP v3 zorunlu mu? +
Zorunlu değil ama önerilen. SNMP v1/v2 şifresiz gönderim yapar — community string ağ üzerinde gözlemlenebilir. SNMP v3 kimlik doğrulama ve şifreleme sağlar. Güvenli ağlarda v2c kabul edilebilir.
Zabbix ile kaç cihaz izlenebilir? +
Resmi benchmarklarda tek Zabbix sunucusu 100.000+ metric/saniye işleyebilir. Donanıma bağlı olarak 500-5000 host rahatça izlenebilir. Daha büyük ortamlar için Zabbix Proxy mimarisi kullanılır.
Profesyonel Destek mi Lazım?
Bu konuda yardıma ihtiyacın varsa yanındayız. Kurulum, konfigürasyon ve sorun giderme için ulaş.