Zabbix Web Arayüzüne İlk Giriş ve Temel Ayarlar

Zabbix kurulumunu tamamladın, servisler ayakta, veritabanı bağlı. Şimdi asıl soru şu: tarayıcıyı açıp o arayüze ilk girdiğinde ne yapacaksın? Çoğu kişi burada ya kaybolur ya da “default ayarlar yeterli” deyip geçer. İkisi de yanlış. Bu yazıda Zabbix web arayüzüne ilk girişten başlayarak, gerçekten işe yarar bir izleme altyapısı kurmak için yapman gereken temel adımları adım adım konuşacağız.

İlk Giriş ve Şifre Değiştirme

Zabbix arayüzüne ilk girdiğinde karşına çıkan default kimlik bilgileri herkesçe biliniyor:

  • Kullanıcı adı: Admin
  • Şifre: zabbix

Bu bilgilerle giriş yaptıktan sonra yapman gereken ilk şey şifreyi değiştirmek. Kulağa banal geliyor ama production ortamlarında default şifreyle bırakılmış Zabbix kurulumlarıyla karşılaştım. Sağ üst köşedeki kullanıcı ikonuna tıkla, “Profile” sekmesine gir ve oradan şifreyi güçlü bir şeyle değiştir.

Arayüzün dili Türkçe’ye çevrilebilir ama ben genellikle İngilizce bırakmayı tercih ederim. Bunun pratik sebebi şu: hata mesajları, log dosyaları ve dokümantasyon İngilizce. Türkçe arayüzle çalışırken bir sorunla karşılaşıp Google’da aramaya kalkışınca kafan karışıyor. Ekibinle aynı dili konuşuyorsanız İngilizce bırakın.

Zabbix Frontend Konfigürasyon Dosyası

Arayüzde bir şeylere dokunmadan önce, backend tarafında bir kontrol yapalım. Zabbix frontend’i Apache veya Nginx üzerinde çalışıyor ve konfigurasyon dosyası önemli:

cat /etc/zabbix/web/zabbix.conf.php

Bu dosyada veritabanı bağlantı bilgileri, Zabbix server adresi ve port bilgisi yer alıyor. Eğer bir şeyler ters giderse ilk bakacağın yer burası:

<?php
$DB['TYPE']                     = 'MYSQL';
$DB['SERVER']                   = 'localhost';
$DB['PORT']                     = '0';
$DB['DATABASE']                 = 'zabbix';
$DB['USER']                     = 'zabbix';
$DB['PASSWORD']                 = 'guclu_sifren_buraya';
$ZBX_SERVER                     = 'localhost';
$ZBX_SERVER_PORT                = '10051';
$ZBX_SERVER_NAME                = 'Production Zabbix';

$ZBX_SERVER_NAME parametresini değiştirdiğinde bu isim arayüzün sağ üst köşesinde görünür. Birden fazla Zabbix ortamın varsa (test, staging, production) bu ismi belirgin yapmak tab karmaşasını önlüyor.

Zabbix Server Servis Durumu Kontrolü

Arayüze girmeden önce servis durumlarını kontrol etmeyi alışkanlık haline getir:

systemctl status zabbix-server zabbix-agent2
journalctl -u zabbix-server -n 50 --no-pager

Zabbix server çalışıyorsa “Administration > General > Server information” ekranında yeşil “Running” yazısını görürsün. Bu ekranı açalım önce:

Administration menüsünden General sekmesine git. Burası Zabbix’in kalp atışını gösteren yerdir. Şu bilgilere dikkat et:

  • Zabbix server is running: Yeşil olmalı
  • Number of hosts: Toplam host sayısı
  • Number of items: Toplam item sayısı
  • Required server performance: Bu değer yükseldikçe sunucu yükün artıyor demektir

Zaman Dilimi ve Yerelleştirme Ayarları

Bu adımı atlayan çok insan var ve sonra “grafiklerdeki saatler neden yanlış” diye soruyorlar. Zabbix server’ın, web arayüzünün ve izlenen sunucuların aynı timezone’da olması kritik.

Web arayüzü için timezone ayarı PHP üzerinden geliyor. Apache kullanıyorsan:

nano /etc/zabbix/apache.conf

Dosya içinde şu satırı bulacaksın:

# php_value date.timezone Europe/Riga

Bu satırın başındaki # işaretini kaldır ve timezone’u düzenle:

php_value date.timezone Europe/Istanbul

Değişikliği uygulamak için Apache’yi yeniden başlat:

systemctl restart apache2
# veya
systemctl restart httpd

Zabbix server’ın timezone’unu da kontrol et:

timedatectl

Çıktıda Time zone: Europe/Istanbul (TRT, +0300) görmelisin. Farklıysa:

timedatectl set-timezone Europe/Istanbul
systemctl restart zabbix-server

Administration Menüsü: Temel Ayarlar

Administration > General altında birkaç kritik ayar var.

Housekeeping Ayarları

Housekeeping, Zabbix’in eski veriyi temizleme mekanizması. Bu ayarları yanlış yapılandırırsan ya veritabanın şişer ya da geçmiş verilerini kaybedersin. “Housekeeper” yani veri temizleyici ne zaman ve neyi temizleyeceğini buradan ayarlıyorsun.

Administration > General > Housekeeping ekranında dikkat etmen gerekenler:

  • Events and alerts: Kaç gün saklayacağını belirle. 365 gün mantıklı bir değer
  • Services: 365 gün
  • User sessions: 30 gün yeterli
  • History: Bu değeri item bazında da ayarlayabilirsin, global olarak 90 gün iyi bir başlangıç
  • Trends: 365 gün veya daha fazlası. Trend verisi az yer kaplar, saklaman avantajlı

“Enable internal housekeeping” seçeneğini aktif tut. Zabbix bunu kendi halleder, manuel müdahaleye gerek bırakmaz. Ancak çok büyük ortamlarda bu işlemi gece saatlerine almak isteyebilirsin, bunun için cron tabanlı housekeeping’e geçebilirsin.

Audit Log Ayarları

Administration > General > Audit log ekranında audit log’u aktif et. Kimin ne zaman ne yaptığını görmek için bu özellik paha biçilmez. Özellikle birden fazla kişinin Zabbix’e eriştiği ortamlarda “bu ayarı kim değiştirdi” sorusunun cevabı burada.

Kullanıcı ve Yetki Yönetimi

Default olarak sadece Admin kullanıcısı var. Gerçek bir production ortamında her kişiye ayrı hesap açılmalı, en az yetki prensibiyle çalışılmalı.

Administration > User groups altında önce gruplar oluştur:

  • Network Team: Ağ ekibi, sadece okuma yetkisi
  • SysAdmin Team: Sistem yöneticileri, tam yetki
  • DevOps Team: Belirli host gruplarına erişim
  • Management: Sadece dashboard görme yetkisi

Grup oluştururken Permissions sekmesinde hangi host grubuna hangi erişim seviyesini vereceğini belirleyebilirsin:

  • Read-write: Tam erişim
  • Read: Sadece görüntüleme
  • Deny: Erişim yok

Kullanıcı eklemek için Administration > Users yolunu kullan:

# Zabbix API üzerinden kullanıcı eklemek istersen:
curl -s -X POST http://localhost/zabbix/api_jsonrpc.php 
  -H "Content-Type: application/json" 
  -d '{
    "jsonrpc": "2.0",
    "method": "user.create",
    "params": {
        "username": "mehmet.yilmaz",
        "passwd": "GucluSifre123!",
        "roleid": "1",
        "usrgrps": [{"usrgrpid": "7"}],
        "name": "Mehmet",
        "surname": "Yilmaz"
    },
    "auth": "API_TOKEN_BURAYA",
    "id": 1
}'

Zabbix 5.4 ve sonrasında kullanıcı rolü kavramı geldi. Administration > User roles altında özel roller tanımlayabilirsin. Bu özelliği kullanarak “sadece grafik görebilir ama alert kabul edemez” gibi ince ayarlar yapabilirsin.

Media Types: Alarm Bildirimleri

Zabbix size alarm gönderip göndermediğini test etmek için doğru yapılandırılmış bir media type şart. Administration > Media types altında built-in seçeneklere bak:

  • Email
  • Slack
  • PagerDuty
  • Telegram
  • SMS (harici gateway ile)

Email yapılandırması için:

Administration > Media types > Email aç ve düzenle:

  • SMTP server: mail.sirketadı.com
  • SMTP server port: 587 (TLS için) veya 465 (SSL için)
  • SMTP helo: zabbix.sirketadi.com
  • SMTP email: [email protected]
  • Security: STARTTLS
  • Authentication: Normal password
  • Username ve Password doldur

Yapılandırmayı kaydettikten sonra “Test” butonuyla gerçek bir test maili gönder. Bu adımı atlamayın, production’da alarm gelmediğinde “mail ayarı hatalıymış” demek istemezsin.

Telegram entegrasyonu için ise Telegram bot token’ı gerekiyor:

# Bot oluştur ve token al
# @BotFather ile konuş, /newbot komutunu ver
# Token aldıktan sonra chat ID'yi bul:
curl https://api.telegram.org/bot<TOKEN>/getUpdates

Host ve Host Group Yapılandırması

İlk host’u eklemeden önce host gruplarını mantıklı bir hiyerarşide oluştur. Sonradan değiştirmek can sıkıcı oluyor.

Örnek bir host grup yapısı:

  • Linux Servers

– Linux Servers/Web – Linux Servers/Database – Linux Servers/Application

  • Windows Servers
  • Network Devices
  • Virtual Machines

Configuration > Host groups > Create host group ile bunları oluştur.

İlk host’u eklemek için Configuration > Hosts > Create host:

  • Host name: Sunucunun hostname’iyle aynı olmalı (FQDN daha iyi)
  • Visible name: Gösterim için daha okunabilir bir isim
  • Groups: Az önce oluşturduğun gruba ata
  • Interfaces: Agent interface, IP adresi ve port (10050)
  • Templates: Örneğin “Linux by Zabbix agent” template’ini ekle

Host ekledikten 2-3 dakika bekle, ardından Monitoring > Latest data altında host adını filtrele. Data gelmeye başladıysa agent bağlantısı çalışıyor demektir.

Bağlantı sorunlarını kontrol etmek için:

# Zabbix server'dan agent'a bağlantı testi
zabbix_get -s 192.168.1.100 -p 10050 -k agent.version

# Agent log dosyasını kontrol et
tail -f /var/log/zabbix/zabbix_agent2.log

# Firewall kontrolü
firewall-cmd --list-all
# veya
ufw status

Templates ile Çalışmak

Zabbix’in en güçlü özelliklerinden biri template sistemi. Template bir host’a uygulandığında, o template içindeki tüm item’lar, trigger’lar ve grafikler otomatik olarak o host için etkinleşiyor.

Yeni kurulumda built-in template’lere bak: Configuration > Templates

Kritik built-in template’ler:

  • Linux by Zabbix agent: CPU, memory, disk, network metrikleri
  • Windows by Zabbix agent: Windows’a özel metrikler
  • MySQL by Zabbix agent 2: MySQL izleme
  • Nginx by Zabbix agent: Nginx web sunucu izleme
  • Docker by Zabbix agent 2: Container izleme

Template’leri özelleştirmeden önce kopyala. Orijinal template üzerinde değişiklik yapma, Zabbix güncellemelerinde ezilir:

Configuration > Templates > İlgili template’i seç > Full clone

Klonladıktan sonra “Custom – Linux by Zabbix agent” gibi bir isim ver ve üzerinde değişiklik yap.

Macros: Değişken Yönetimi

Macro’lar Zabbix’te hem template hem de global düzeyde tanımlanabilen değişkenlerdir. Örneğin bir eşik değerini 50 farklı trigger’da hardcode yazmak yerine bir macro tanımlarsın ve tek yerden yönetirsin.

Administration > General > Macros altında global macro’lar:

{$SNMP_COMMUNITY} = "public"
{$ZABBIX_PROXY} = "proxy.sirket.com"
{$MAIL_TO} = "[email protected]"

Template düzeyinde macro tanımlamak için template içindeki “Macros” sekmesini kullan. Host düzeyinde macro ise o hostu ezerek farklı bir değer atar. Öncelik sırası şöyle işliyor: Host macro > Template macro > Global macro.

Dashboard Yapılandırması

Default dashboard işlevsel ama genellikle yetersiz. Kendi dashboard’ını oluştur:

Monitoring > Dashboards > Create dashboard

Gerçek dünyada işe yarayan widget kombinasyonu:

  • Problems: Aktif alarm sayısını göster, “Unacknowledged” filtresini uygula
  • Graph: En kritik 3-4 sunucunun CPU grafiği
  • Top hosts by CPU: CPU kullanımına göre sıralı liste
  • Clock: Saat widget’ı, farklı timezone’ları takip ediyorsan yararlı
  • System information: Zabbix’in kendi sağlık bilgisi

Her ekibin kendi dashboard’ı olabilir. Monitoring > Dashboards altında yeni dashboard oluştururken “Share” seçeneğiyle belirli kullanıcı gruplarına özel dashboardlar yapabilirsin.

Trigger Action ve Alert Yönetimi

Trigger’lar tetiklendiğinde ne olacağını Configuration > Actions altında tanımlarsın. Varsayılan olarak bu aksiyonlar tanımlı değil, kendin yapılandırman gerekiyor.

Temel bir alert aksiyonu oluşturmak için:

Configuration > Actions > Trigger actions > Create action

  • Name: Critical Alert – Email
  • Conditions sekmesinde:

– Trigger severity >= High – Host group = Linux Servers

  • Operations sekmesinde:

– Send message to user groups: SysAdmin Team – Send only to: Email

  • Recovery operations sekmesinde:

– Send message: “Problem çözüldü” mesajı ekle

Recovery message’ı unutma. Alarm geldi ama “düzeldi” mesajı gelmediyse ekip hâlâ konuya bakıyor olabilir, bu gereksiz iş yüküne neden olur.

Zabbix API ile Temel Doğrulama

Arayüz yapılandırmasının ardından API’ın çalıştığını doğrulamak iyi bir pratik:

# API token al
curl -s -X POST http://localhost/zabbix/api_jsonrpc.php 
  -H "Content-Type: application/json" 
  -d '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "username": "Admin",
        "password": "yeni_sifren"
    },
    "id": 1
}'

Dönen response’da result alanında token’ını göreceksin. Bu token’ı kullanarak host listesini çekebilirsin:

curl -s -X POST http://localhost/zabbix/api_jsonrpc.php 
  -H "Content-Type: application/json" 
  -d '{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["hostid", "host", "status"],
        "limit": 10
    },
    "auth": "BURAYA_TOKEN",
    "id": 1
  }' | python3 -m json.tool

API çalışıyorsa ilerleyen süreçte Ansible, Terraform veya kendi scriptlerinle Zabbix’i otomatize edebilirsin. Bu yatırım uzun vadede büyük zaman kazandırır.

Log Dosyalarını Takip Et

Bir şeyler ters gittiğinde ilk bakman gereken yerler:

# Zabbix server logları
tail -f /var/log/zabbix/zabbix_server.log | grep -E "ERROR|WARNING"

# PHP hata logları (Apache için)
tail -f /var/log/apache2/error.log

# Zabbix web için PHP slow log aktif edebilirsin
# /etc/php/8.x/apache2/php.ini içinde:
# log_errors = On
# error_log = /var/log/php_errors.log

Özellikle ilk kurulumda “cannot connect to the database” veya “Zabbix server is not running” hatalarıyla karşılaşılıyor. Bu durumda sırayla kontrol et: veritabanı bağlantısı, zabbix-server servisi, firewall kuralları.

Sonuç

Zabbix arayüzüne ilk girişten sonra yapılması gereken ayarlar göründüğünden fazla. Şifre değiştirip birkaç host ekleyip bırakmak değil bu iş. Timezone’un doğru olması, housekeeping’in mantıklı ayarlanması, kullanıcı yetkilerinin doğru yapılandırılması, alert aksiyonlarının test edilmesi, bunların hepsi sağlam bir izleme altyapısının temel taşları.

En çok gördüğüm hata şu: insanlar Zabbix’i kuruyor, birkaç host ekliyor, grafikler çıkıyor, “çalışıyor” diyorlar ve geçiyorlar. Sonra üç ay sonra disk doluyor çünkü housekeeping ayarlanmamış. Ya da kritik bir sunucu çöküyor ama alarm gelmiyor çünkü action yapılandırılmamış. Ya da bir ekip üyesi yanlışlıkla bir host’u siliyor ama audit log aktif olmadığı için kim yaptı bilinmiyor.

Bu yazıda anlattığım adımları sırasıyla uygularsan, en azından bu temel hataları yapmamış olursun. Bir sonraki adımda custom template oluşturma, LLD (Low Level Discovery) ve Zabbix proxy yapılandırmasına geçebiliriz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir