İçeriğe geç
Network & Altyapı · · 20 dk okuma · Orta

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 #network-izleme #snmp #mikrotik #docker #monitoring #telegram
TL;DR

Zabbix 7 Docker kurulumu, MikroTik SNMP ayarları, template import, Telegram alert botu ve ISP ağı için özelleştirilmiş dashboard. Neden izleme şart?

100K+
Zabbix NVPS kapasitesi
(Zabbix Docs)
197 gün
İzlemesiz MTTD
(IBM 2024)
%70
Proaktif izleme kesinti azalması
(Gartner 2023)
İçindekiler
Son güncelleme: 12 Mart 2026

İ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ürLisansÖne Çıkan
ZabbixGenelÜcretsiz (OSS)Esnek, özelleştirilebilir
PRTGGenelÜcretli (500 sensör ücretsiz)Kolay kurulum
LibreNMSAğ odaklıÜcretsiz (OSS)Otomatik discovery
NagiosGenelÜcretsiz (OSS)Köklü, plugin ekosistemi
Grafana+PrometheusMetrikÜ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

  1. ConfigurationHostsCreate host
  2. Host name: Router1-Core
  3. Groups: Network devices
  4. 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

AdministrationMedia typesTelegram

Bot token: 1234567890:ABCdefGHIjklMNOpqrSTUvwxYZ

4. Action Oluştur

ConfigurationActionsTrigger actionsCreate 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

  1. Zabbix 7.0 LTS — resmi performans benchmark'ı 100.000+ NVPS — Zabbix Official Documentation (2024)
  2. Ağ izleme olmadan ortalama arıza tespit süresi (MTTD) 197 gün — IBM Cost of a Data Breach Report (2024)
  3. 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ş.

Paylaş X/Twitter LinkedIn

İlgili Yazılar