Giriş
Proje Hakkında
Zabbix Nedir?
Zabbix Nedir?
Zabbix, Zabbix SIA tarafından geliştirilen ağlar ve uygulamalar için kurumsal açık kaynak izleme çözümüdür. Bu yazılım, bir ağın ve çeşitli diğer sistemlerin sağlığını izleyerek sunucuların, sanal makinelerin, uygulamaların, hizmetlerin, veri tabanlarının, web sitelerinin ve bulut hizmetlerinin bütünlüğünü korur. Zabbix, kullanıcıların esnek bildirim mekanizması sayesinde e-posta tabanlı uyarıları yapılandırmasına imkan tanır, bu da sunucu sorunlarına hızlı yanıt verilmesini sağlar. Ayrıca, saklanan verilere dayalı olarak mükemmel raporlama ve veri görselleştirme özellikleri sunar, bu da Zabbix'i kapasite planlaması için ideal bir çözüm haline getirir.
Zabbix, hem yoklamayı hem de yakalamayı destekler ve tüm raporlar, istatistikler ve yapılandırma parametreleri web tabanlı bir ön uç aracılığıyla erişilebilir durumdadır. Bu web tabanlı arayüz, ağ durumunun ve sunucu sağlığının herhangi bir yerden değerlendirilmesini sağlar. Düzgün yapılandırıldığında Zabbix, BT altyapısının izlenmesinde kritik bir rol oynayabilir. Zabbix, GPL Genel Kamu Lisansı sürüm 2 kapsamında ücretsiz olarak sunulur ve ticari destek ise Zabbix Şirketi ve dünya çapındaki ortakları tarafından sağlanmaktadır.
Zabbix Tarihçesi
Zabbix Tarihçesi
Zabbix, ağ ve uygulama izleme yazılımı olarak 2001 yılında Alexei Vladishev tarafından başlatıldı. Açık kaynak kodlu olarak geliştirilen Zabbix, kullanıcı tabanı ve topluluk desteğiyle zamanla büyüdü ve gelişti. İlk genel sürümü 2004 yılında piyasaya sürüldü ve temel ağ izleme işlevlerini sunuyordu. Ardından sırasıyla 1.6, 1.8 ve 2.0 gibi sürümlerle performansı ve özellik setini sürekli olarak güçlendirdi. Zabbix, 2010'lu yıllarda web tabanlı yönetim arayüzü, raporlama seçenekleri, IoT cihaz desteği gibi yeni özelliklerle kullanıcıların ihtiyaçlarına cevap verdi. 2020 yılında piyasaya sürülen Zabbix 5.0 sürümü ise gelişmiş veri görselleştirmesi ve güncellenmiş API seçenekleriyle kullanıcı deneyimini daha da ileri taşıdı. Şu an Zabbix 7.0 güncel sürüm olarak kullanılmaktadır ve Zabbix 7.2 sürümünün de gelişim aşamasında olduğu bilinmektedir.
Zabbix geniş ölçekli ağ ve sistem izleme ihtiyaçlarını karşılamak için önde gelen çözümlerden biri olarak kabul edilmektedir.
Gereksinimler
Gereksinimler
1.1- Zabbix’in Gereksinimleri
1.1.1- Donanım
Hafıza
Zabbix hem fiziksel hem de disk belleği gerektirir. Gerekli disk belleği miktarı açıkça izlenen ana bilgisayar ve parametre sayısına bağlıdır. İzlenen parametrelerin uzun bir geçmişini tutmayı planlıyorsanız, geçmişi veri tabanında depolamak için yeterli alana sahip olmak için en azından birkaç gigabayt düşünmelisiniz. Her Zabbix daemon işlemi bir veri tabanı sunucusuna birkaç bağlantı gerektirir. Bağlantı için ayrılan bellek miktarı veri tabanı motorunun yapılandırmasına bağlıdır.
Not: Fiziksel belleğiniz ne kadar fazlaysa, veri tabanı (ve dolayısıyla Zabbix) o kadar hızlı çalışır.
İşlemci
Zabbix ve özellikle Zabbix veri tabanı, izlenen parametre sayısına ve seçilen veri tabanı motoruna bağlı olarak önemli miktarda CPU kaynağı gerektirebilir.
Diğer Donanımlar
Zabbix'te SMS bildirim desteğini kullanmak için seri haberleşme portu ve seri GSM modem gereklidir. USB-seri dönüştürücü de işe yarayacaktır.
Donanım Yapılandırma Örnekleri
Tabloda Linux/BSD/Unix platformu varsayılarak donanım yapılandırmasına dair örnekler verilmiştir.
Bunlar başlamak için boyut ve donanım yapılandırma örnekleridir. Her Zabbix kurulumu benzersizdir. Zabbix kurulumunu üretim ortamına dağıtmadan önce gereksinimlerinizi tam olarak anlayabilmeniz için Zabbix sisteminizin performansını bir hazırlama veya geliştirme ortamında kıyasladığınızdan emin olun.
Kurulum Boyutu |
İzlenen Metric’ler |
CPU/vCPU Çekirdekleri |
Bellek (GiB) |
Veri Tabanı |
Amazon EC2 |
Küçük |
1.000 |
2 |
8 |
MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.large/m6g.large |
Orta |
10.000 |
4 |
16 |
MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.xlarge/m6g.xlarge |
Büyük |
100.000 |
16 |
64 |
MySQL Server, Percona Server, MariaDB Server, PostgreSQL, Oracle |
m6i.4xlarge/m6g.4xlarge |
Çok Büyük |
1.000.000 |
32 |
96 |
MySQL Server, Percona Server, MariaDB Server, PostgreSQL, Oracle |
m6i.8xlarge/m6g.8xlarge |
İzlenen Metric’ler: 1 metric = 1 item + 1 trigger + 1 graph
Amazon EC2: ARM64 veya x86_64 mimarisini kullanan Amazon genel amaçlı EC2 örnekleri için, üretim ortamına kurulumdan önce Zabbix kurulum değerlendirmesi ve testi sırasında Compute/Memory/Storage için optimize edilmiş uygun bir örnek türü seçilmelidir.
Not: Gerçek yapılandırma etkin öğelerin sayısına ve yenileme hızlarına çok bağlıdır. Büyük kurulumlar için veri tabanını ayrı bir sunucuda çalıştırmanız şiddetle önerilir.
Desteklenen Platformlar
Güvenlik gereksinimleri ve izleme sunucusunun kritik görev yapısı nedeniyle UNIX, gerekli performansı, hata toleransını ve dayanıklılığı sürekli olarak sağlayabilen tek işletim sistemidir. Zabbix, pazar lideri sürümlerde çalışır.
Zabbix bileşenleri aşağıdaki platformlar için mevcuttur ve test edilmiştir:
Platform |
Server |
Agent |
Agent2 |
Linux |
X |
X |
X |
IBM AIX |
X |
X |
- |
FreeBSD |
X |
X |
- |
NetBSD |
X |
X |
- |
OpenBSD |
X |
X |
- |
HP-UX |
X |
X |
- |
Mac OS X |
X |
X |
- |
Solaris |
X |
X |
- |
Windows |
- |
X |
X |
Not: Zabbix server/agent diğer Unix benzeri işletim sistemlerinde de çalışabilir. Zabbix agent XP'den (64 bit sürüm) itibaren tüm Windows masaüstü ve sunucu sürümlerinde desteklenir. Zabbix agent 6.1 TL07 / AIX 7.1 TL01 sürümlerinin altındaki AIX platformlarında çalışmaz. Zabbix agent 2'deki kritik güvenlik açıklarını önlemek için yalnızca desteklenen Go sürümleriyle derlenir. Go 1.21 itibarıyla, gereken minimum Windows sürümleri yükseltilmiştir, bu nedenle Zabbix agent 2 için minimum Windows sürümü Windows 10/Server 2016'dır.
Zabbix, şifreleme ile derlenmişse çekirdek dökümlerini devre dışı bırakır ve sistem çekirdek dökümlerinin devre dışı bırakılmasına izin vermiyorsa başlamaz.
Gerekli Yazılım
Zabbix, modern web sunucuları, önde gelen veri tabanı motorları ve PHP betik dili etrafında oluşturulmuştur.
Third-party External Surrounding Yazılımı
Zorunlu olarak belirtilirse, gerekli yazılım/kütüphane kesinlikle gereklidir. İsteğe bağlı olanlar, belirli bir işlevi desteklemek için gereklidir.
Yazılım |
Zorunluluk Durumu |
Desteklenen Sürümler |
Açıklama |
MySQL/Percona |
Biri zorunlu |
8.0.30-8.4.X |
MySQL (veya Percona) Zabbix arka uç veritabanı olarak kullanılıyorsa gereklidir. InnoDB motoru gereklidir.
MySQL sürümleri için destek eklendi: - Zabbix 7.0.1'den beri 8.4.X. Sunucu/proxy oluşturmak için C API (libmysqlclient) Kitaplığını kullanmanızı öneririz. |
MariaDB |
10.5.00-11.4.X |
InnoDB motoru gereklidir.
Önerilen sürüm 10.5'tir. server/proxy oluşturmak için MariaDB Connector/C Kütüphanesini kullanmanızı öneririz. MariaDB sürümleri için destek eklendi: Zabbix 7.0.1'den itibaren 11.4.X. |
|
Oracle |
19c - 21c |
Oracle, Zabbix arka uç veritabanı olarak kullanılıyorsa gereklidir. Oracle DB desteği Zabbix 7.0'dan beri kullanım dışıdır. |
|
PostgreSQL |
13.0-16.X |
PostgreSQL, Zabbix arka uç veri tabanı olarak kullanılıyorsa gereklidir. Kurulum boyutuna bağlı olarak, belirli bir işlem için veri tabanı tarafından kullanılan bellek miktarının yeterli olması ve sorgu yürütmenin çok fazla zaman almaması için PostgreSQL work_mem yapılandırma özelliğinin (varsayılan değer 4MB) artırılması gerekebilir. |
|
TimescaleDB for PostgreSQL |
2.13.0-2.15.X |
TimescaleDB, PostgreSQL veri tabanı uzantısı olarak kullanılıyorsa gereklidir. Sıkıştırmayı destekleyen TimescaleDB Community Edition'ı yüklediğinizden emin olun.
PostgreSQL 15'in TimescaleDB 2.10'dan beri desteklendiğini unutmayın. PostgreSQL ve TimescaleDB sürüm uyumluluğuyla ilgili ayrıntılar için resmi belgelere de başvurabilirsiniz. TimescaleDB sürümleri için destek eklendi: Zabbix 7.0.1'den itibaren 2.15.X |
|
SQLite |
İsteğe bağlı |
3.3.5-3.34.X |
SQLite yalnızca Zabbix proxy'leriyle desteklenir. SQLite'ın Zabbix proxy veri tabanı olarak kullanılması durumunda gereklidir. |
smartmontools |
7.1 veya üzeri |
Zabbix Agent 2 için gereklidir. |
|
who |
|
Kullanıcı sayısı eklentisi için gereklidir. |
|
dpkg |
|
system.sw.packages eklentisi için gereklidir. |
|
pkgtool |
|
system.sw.packages eklentisi için gereklidir. |
|
rpm |
|
system.sw.packages eklentisi için gereklidir. |
|
pacman |
|
system.sw.packages eklentisi için gereklidir. |
|
q applets |
|
Gentoo Linux üzerinde, system.sw.packages eklentisi için qlist ve qsize, q applets bileşeninin bir parçası olarak gereklidir |
Not: Zabbix, işletim sistemlerinde bulunan veri tabanlarıyla çalışabilse de en iyi deneyim için resmi veri tabanı geliştirici depolarından yüklenen veri tabanlarını kullanmanızı öneririz.
Başlangıç Aşaması
Zabbix ön yüzü için desteklenen minimum ekran genişliği 1200 pikseldir.
Zorunlu olarak belirtilirse, gerekli yazılım/kütüphane kesinlikle gereklidir. İsteğe bağlı olanlar, belirli bir işlevi desteklemek için gereklidir.
Yazılım |
Zorunluluk Durumu |
Sürüm |
Açıklama |
Apache |
Biri zorunlu |
2.4 veya üzeri |
|
Nginx |
1.20 veya üzeri |
|
|
PHP |
Zorunlu |
8.0.0 - 8.3.X |
|
PHP extensions: |
|||
gd |
Zorunlu |
2.0.28 veya üzeri |
PHP GD uzantısı PNG resimlerini ( --with-png-dir ), JPEG ( --with-jpeg-dir ) resimlerini ve FreeType 2'yi ( --with-freetype-dir ) desteklemelidir. Bazı ön uç dilleri için grafiklerde olası metin örtüşmelerini önlemek için 2.3.0 veya sonraki bir sürüm gerekebilir . |
bcmath |
|
php-bcmath ( --enable-bcmath ) |
|
ctype |
|
php-ctype ( --enable-ctype ) |
|
libXML |
2.6.15 veya üzeri |
Dağıtıcı tarafından ayrı bir paket olarak sağlanmışsa php-xml. |
|
xmlreader |
|
Dağıtıcı tarafından ayrı bir paket olarak sağlanmışsa php-xmlreader. |
|
xmlwriter |
|
Dağıtıcı tarafından ayrı bir paket olarak sağlanmışsa php-xmlwriter. |
|
session |
|
Dağıtıcı tarafından ayrı bir paket olarak sağlanmışsa php-session. |
|
sockets |
|
php-net-socket ( --enable-sockets ). Kullanıcı betiği desteği için gereklidir. |
|
mbstring |
|
php-mbstring ( --enable-mbstring ) |
|
gettext |
|
php-gettext ( --with-gettext). Çevirilerin çalışması için gereklidir. |
|
ldap |
Zorunlu değil |
|
php-ldap. Yalnızca ön uçta LDAP kimlik doğrulaması kullanılıyorsa gereklidir. |
openssl |
|
php-openssl. Yalnızca ön uçta SAML kimlik doğrulaması kullanılıyorsa gereklidir. |
|
mysqli |
|
Zabbix arka uç veri tabanı olarak MySQL kullanılıyorsa gereklidir. |
|
oci8 |
|
Zabbix arka uç veri tabanı olarak Oracle kullanılıyorsa gereklidir. |
|
pgsql |
|
PostgreSQL'in Zabbix arka uç veri tabanı olarak kullanılması durumunda gereklidir. |
|
curl |
|
php-curl. Yüklü değilse, ön uç her zamanki gibi çalışacaktır, ancak Duo Universal Prompt çok faktörlü kimlik doğrulama seçeneği kullanılamayacaktır. |
Zabbix ile birlikte sağlanan üçüncü taraf frontend kitaplıkları:
Kütüphane |
Zorunluluk Durumu |
Minimum Versiyon |
Açıklama |
jQuery JavaScript Library |
Zorunlu |
3.6.0 |
Tarayıcılar arası geliştirme sürecini basitleştiren JavaScript kütüphanesi. |
jQuery UI |
1.12.1 |
JQuery üzerine kurulu bir dizi kullanıcı arayüzü etkileşimi, efekt, widget ve tema. |
|
OneLogin's SAML PHP Toolkit |
4.0.0 |
Zabbix'e giriş yapabilmek için SAML 2.0 kimlik doğrulama desteği ekleyen bir PHP araç takımı. |
|
Symfony Yaml Component |
5.1.0 |
Zabbix yapılandırma öğelerinin YAML biçiminde dışa ve içe aktarılmasına yönelik destek ekler. |
Not: Zabbix, Apache, MySQL, Oracle ve PostgreSQL'in önceki sürümlerinde de çalışabilir.
Varsayılan DejaVu dışındaki diğer yazı tipleri için PHP işlevi imagerotate gerekebilir. Eksikse, bir grafik görüntülendiğinde bu yazı tipleri yanlış işlenebilir. Bu işlev yalnızca PHP, Debian ve diğer dağıtımlarda olmayan bir şekilde paketlenmiş GD ile derlendiğinde kullanılabilir.
Zabbix frontend kodunu yazmak ve hata ayıklamak için kullanılan third-party kütüphaneler:
Kütüphane |
Zorunluluk Durumu |
Minimum Versiyon |
Açıklama |
Composer |
Zorunlu değil |
2.4.1 |
PHP için, PHP yazılımlarının ve gerekli kütüphanelerin bağımlılıklarını yönetmek için standart bir format sağlayan uygulama düzeyinde bir paket yöneticisidir. |
PHPUnit |
8.5.29 |
Zabbix frontend’ini test etmek için bir PHP unit testing framework’üdür. |
|
SASS |
3.4.22 |
Cascading Style Sheets (CSS) yorumlanan ve derlenen bir ön işlemci betik dilidir. |
İstemci Tarafında Web Tarayıcısı
Çerezler ve JavaScript etkinleştirilmelidir.
Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari ve Opera'nın en son kararlı sürümleri desteklenmektedir.
Not: IFrames için aynı kökenli politika uygulanır, bu da Zabbix'in farklı bir etki alanındaki frame’lere yerleştirilemeyeceği anlamına gelir.
Yine de bir Zabbix frame’ine yerleştirilen sayfalar, frame’e yerleştirilen sayfa ve Zabbix frontend aynı etki alanındaysa Zabbix frontend’ine (JavaScript aracılığıyla) erişebilir. Eğer http://secure-zabbix.com/cms/page.html gibi bir sayfa http://secure-zabbix.com/zabbix/ panolarına yerleştirilirse, Zabbix'e tam JS erişimi olacaktır.
Server/proxy
Zorunlu olarak belirtilirse, gerekli yazılım/kütüphane kesinlikle gereklidir. İsteğe bağlı olanlar, belirli bir işlevi desteklemek için gereklidir.
Gereksinimler |
Zorunluluk Durumu |
Açıklama |
libpcre/libpcre2 |
Biri zorunlu |
Perl Compatible Regular Expression (PCRE) desteği için PCRE/PCRE2 kütüphanesi gereklidir. Adlandırma, GNU/Linux dağıtımına bağlı olarak farklılık gösterebilir, örneğin 'libpcre3' veya 'libpcre1'. PCRE v8.x ve PCRE2 v10.x desteklenir. |
libevent |
Zorunlu |
İşlemler arası iletişim için 1.4 veya üzeri sürüm gereklidir. |
libevent-pthreads |
İşlemler arası iletişim için gereklidir. |
|
libpthread |
Mutex ve okuma-yazma kilidi desteği için gereklidir (libc'nin bir parçası olabilir). |
|
libresolv |
DNS çözümlemesi için gereklidir (libc'nin bir parçası olabilir). |
|
libiconv |
Metin kodlama/format dönüşümü için gereklidir (libc'nin bir parçası olabilir). Linux'taki Zabbix sunucusu için zorunludur. |
|
libz |
Sıkıştırma desteği için gereklidir. |
|
libm |
Matematik kütüphanesi. Yalnızca Zabbix sunucusu tarafından gereklidir. |
|
libmysqlclient |
Biri zorunlu |
MySQL kullanılıyorsa gereklidir. |
libmariadb |
MariaDB kullanılıyorsa gereklidir. |
|
libclntsh |
Oracle kullanılıyorsa gereklidir; libclntsh sürümü kullanılan Oracle veri tabanının sürümüyle eşleşmeli veya daha yüksek olmalıdır. |
|
libpq5 |
PostgreSQL kullanılıyorsa gereklidir; libpq5 sürümü kullanılan PostgreSQL veri tabanının sürümüyle eşleşmeli veya daha yüksek olmalıdır. |
|
libsqlite3 |
Sqlite kullanılıyorsa gereklidir. Yalnızca Zabbix proxy için gereklidir. |
|
libOpenIPMI |
Zorunlu değil |
IPMI desteği için gereklidir. Yalnızca Zabbix sunucusu için gereklidir. |
libssh2 or libssh |
1.0 veya üzeri (libssh2); 0.9.0 veya üzeri (libssh) sürümler SSH kontrolleri için gereklidir. |
|
libcurl |
Web izleme, VMware izleme, SMTP kimlik doğrulaması, web.page.*Zabbix aracı öğeleri , HTTP aracı öğeleri ve Elasticsearch (kullanılıyorsa) için gereklidir. 7.19.1 veya üzeri sürüm gereklidir (7.28.0 veya üzeri önerilir). Libcurl sürüm gereksinimleri: - SMTP kimlik doğrulaması: 7.20.0 veya üzeri sürüm - Elasticsearch: 7.28.0 veya üzeri sürüm Yükseltilmiş cURL özelliklerini kullanmak için Zabbix sunucusunu/proxy'sini ve aracısını (web.page.*öğeler için) yeniden başlatın. |
|
libxml2 |
VMware izleme ve XML XPath ön işleme için gereklidir. |
|
net-snmp |
5.3.0 veya üzeri sürümlerde SNMP desteği için gereklidir. Güçlü şifreleme protokollerinin (AES192/AES192C, AES256/AES256C) desteği net-snmp kütüphanesi 5.8'den itibaren mevcuttur; RHEL 8+ tabanlı sistemlerde net-snmp 5.8.15 veya üzeri sürümlerin kullanılması önerilir. |
|
libunixodbc |
Veri tabanı izleme için gereklidir. |
|
libgnutls or libopenssl |
Şifreleme kullanılırken gereklidir. Minimum sürümler: libgnutls - 3.1.18, libopenssl - 1.0.1 |
|
libldap |
LDAP desteği için gereklidir. |
|
fping |
ICMP ping öğeleri için gereklidir. |
Agent
Gereksinimler |
Zorunluluk Durumu |
Açıklama |
libpcre/libpcre2 |
Biri zorunlu |
Perl Compatible Regular Expression (PCRE) desteği için PCRE/PCRE2 kütüphanesi gereklidir. Adlandırma, GNU/Linux dağıtımına bağlı olarak farklılık gösterebilir, örneğin 'libpcre3' veya 'libpcre1'. PCRE v8.x ve PCRE2 v10.x desteklenir. Günlük izleme için gereklidir. Windows'ta da gereklidir. |
libpthread |
Zorunlu |
Mutex ve okuma-yazma kilidi desteği için gereklidir (libc'nin bir parçası olabilir). Windows'ta gerekli değildir. |
libresolv |
DNS çözümlemesi için gereklidir (libc'nin bir parçası olabilir). Windows'ta gerekli değildir. |
|
libiconv |
Günlük öğelerinde, dosya içeriğinde, dosya regex'inde ve regmatch öğelerinde UTF-8'e metin kodlaması/biçim dönüşümü için gereklidir (libc'nin bir parçası olabilir). Windows'ta gerekli değildir. |
|
libgnutls or libopenssl |
Zorunlu değil |
Şifreleme kullanılıyorsa gereklidir. Minimum sürümler: libgnutls - 3.1.18, libopenssl - 1.0.1 Microsoft Windows'da OpenSSL 1.1.1 veya üzeri sürümler gereklidir. |
libldap |
LDAP kullanılıyorsa gereklidir. Windows'da desteklenmez. |
|
libcurl |
web.page.*Zabbix agent öğeleri için gereklidir. Windows'ta desteklenmez. 7.19.1 veya üzeri sürümleri gereklidir (7.28.0 veya üzeri sürümler önerilir). Yükseltilmiş cURL özelliklerini kullanmak için Zabbix agent’i yeniden başlatın. |
|
libmodbus |
Yalnızca Modbus izleme kullanılıyorsa gereklidir. 3.0 veya üzeri sürümler. |
Agent 2
Gereksinimler |
Zorunluluk Durumu |
Açıklama |
libpcre/libpcre2 |
Biri zorunlu |
Perl Compatible Regular Expression (PCRE) desteği için PCRE/PCRE2 kütüphanesi gereklidir. Adlandırma, GNU/Linux dağıtımına bağlı olarak farklılık gösterebilir, örneğin 'libpcre3' veya 'libpcre1'. PCRE v8.x ve PCRE2 v10.x desteklenir. Günlük izleme için gereklidir. Windows'ta da gereklidir. |
libopenssl |
Zorunlu değil |
Şifreleme kullanılırken gereklidir. UNIX platformlarında OpenSSL 1.0.1 veya üzeri sürümler gereklidir. OpenSSL kitaplığında PSK desteği etkinleştirilmiş olmalıdır. LibreSSL desteklenmez. Microsoft Windows sistemlerinde OpenSSL 1.1.1 veya üzeri sürümler gereklidir. |
Kütüphaneler
Gereksinimler |
Zorunluluk Durumu |
Minimum Versiyon |
Açıklama |
git.zabbix.com/ap/plugin-support |
Zorunlu |
1.X.X |
Çoğunlukla eklentiler için Zabbix'in kendi destek kütüphanesi. |
github.com/BurntSushi/locker |
0.0.0 |
Adlandırılmış okuma/yazma kilitleri, erişim senkronizasyonu. |
|
github.com/chromedp/cdproto |
0.0.0 |
Chrome DevTools Protokolü etki alanları için oluşturulan komutlar, türler ve olaylar. |
|
github.com/chromedp/chromedp |
0.6.0 |
Chrome DevTools Protokolü desteği (rapor oluşturma). |
|
github.com/dustin/gomemcached |
0.0.0 |
Go için bir memcached ikili protokol araç takımı. |
|
github.com/eclipse/paho.mqtt.golang |
1.2.0 |
MQTT bağlantılarını yönetmek için bir kütüphane. |
|
github.com/fsnotify/fsnotify |
1.4.9 |
Go için platformlar arası dosya sistemi bildirimleri. |
|
github.com/go-ldap/ldap |
3.0.3 |
Go programlama dili için temel LDAP v3 işlevselliği. |
|
github.com/go-ole/go-ole |
1.2.4 |
Go için Win32 ole uygulaması. |
|
github.com/godbus/dbus |
4.1.0 |
D-Bus için yerel Go bağlamaları. |
|
github.com/go-sql-driver/mysql |
1.5.0 |
MySQL sürücüsü. |
|
github.com/godror/godror |
0.20.1 |
Oracle DB sürücüsü. |
|
github.com/mattn/go-sqlite3 |
2.0.3 |
Sqlite3 sürücüsü. |
|
github.com/mediocregopher/radix/v3 |
3.5.0 |
Redis istemcisi. |
|
github.com/memcachier/mc/v3 |
3.0.1 |
Binary Memcached istemcisi. |
|
github.com/miekg/dns |
1.1.43 |
DNS kütüphanesi. |
|
github.com/omeid/go-yarn |
0.0.1 |
Gömülebilir dosya sistemi eşlenmiş key-string deposu. |
|
github.com/goburrow/modbus |
0.1.0 |
Modbus'un hata toleranslı uygulaması. |
|
golang.org/x/sys |
0.0.0 |
İşletim sistemiyle düşük seviyeli etkileşimler için Go paketleri. Ayrıca eklenti destek kütüphanesinde kullanılır. MongoDB ve PostgreSQL eklentilerinde kullanılır. |
|
github.com/Microsoft/go-winio |
Windows’da zorunlu (dolaylı) |
0.6.0 |
Windows adlandırılmış pipe uygulaması. Ayrıca eklenti destek kütüphanesinde kullanılır. MongoDB ve PostgreSQL eklentilerinde kullanılır. |
github.com/goburrow/serial |
Zorunlu (dolaylı) |
0.1.0 |
Modbus için seri kütüphane. |
golang.org/x/xerrors |
0.0.0 |
Hataları manipüle etmeye yarayan fonksiyonlar. |
|
gopkg.in/asn1-ber.v1 |
1.0.0 |
ASN1 BER için kodlama/kod çözme kütüphanesi. |
|
github.com/go-stack/stack |
Zorunlu değil (dolaylı) |
1.8.0 |
|
github.com/golang/snappy |
0.0.1 |
|
|
github.com/klauspost/compress |
1.13.6 |
|
|
github.com/xdg-go/pbkdf2 |
1.0.0 |
|
|
github.com/xdg-go/scram |
1.0.2 |
|
|
github.com/xdg-go/stringprep |
1.0.2 |
|
|
github.com/youmark/pkcs8 |
0.0.0 |
|
Not: Tablodaki dolaylı ifadesi; agent’in kullandığı kütüphanelerden birinde kullanıldığı anlamına gelir. Zabbix paketi kullanan kütüphaneyi kullandığı için gereklidir.
Yüklenebilir eklentiler için plugin’ler:
- · PostgreSQL
- · MongoDB
Java Gateway
Eğer Zabbix'i kaynak deposundan veya bir arşivden aldıysanız, gerekli bağımlılıklar zaten kaynak ağacında mevcuttur.
Eğer Zabbix'i dağıtımınızın paketinden aldıysanız, gerekli bağımlılıklar zaten paketleme sistemi tarafından sağlanmıştır.
Yukarıdaki her iki durumda da yazılım kullanıma hazırdır ve ek bir indirme işlemine gerek yoktur.
Ancak, bu bağımlılıkların sürümlerini sağlamak isterseniz (örneğin, bir Linux dağıtımı için bir paket hazırlıyorsanız), Java gateway’in çalıştığı bilinen kütüphanelerin sürümlerinin listesi aşağıdadır. Zabbix, bu kütüphanelerin diğer sürümleriyle de çalışabilir.
Aşağıdaki tabloda orijinal kodda Java gateway’i ile birlikte gelen JAR dosyaları listelenmektedir:
Kütüphane |
Zorunluluk Durumu |
Minimum Versiyon |
Açıklama |
android-json |
Zorunlu |
4.3r1 |
JSON (JavaScript Object Notation) hafif bir veri değişim biçimidir. Bu, Android SDK'dan çıkarılan org.json uyumlu Android uygulamasıdır. |
logback-classic |
1.2.9 |
|
|
logback-core |
1.2.9 |
|
|
slf4j-api |
1.7.32 |
|
Java gateway Oracle Java veya açık kaynaklı OpenJDK (1.6 veya üzeri sürümler) kullanılarak oluşturulabilir. Zabbix tarafından sağlanan paketler OpenJDK kullanılarak derlenir. Aşağıdaki tablo, dağıtıma göre Zabbix paketleri oluşturmak için kullanılan OpenJDK sürümleri hakkında bilgi sağlar:
Dağıtım |
OpenJDK sürümü |
RHEL 8 |
1.8.0 |
RHEL 7 |
1.8.0 |
SLES 15 |
11.0.4 |
Debian 10 |
11.0.8 |
Ubuntu 20.04 |
11.0.8 |
Ubuntu 18.04 |
11.0.8 |
Varsayılan Port Numaraları
Varsayılan yapılandırma için bileşen başına açık portların aşağıdaki listesi geçerlidir:
Zabbix Bileşeni |
Port Numarası |
Protokol |
Bağlantı Türü |
Zabbix agent |
10050 |
TCP |
Talep üzerine |
Zabbix agent 2 |
10050 |
TCP |
Talep üzerine |
Zabbix server |
10051 |
TCP |
Talep üzerine |
Zabbix proxy |
10051 |
TCP |
Talep üzerine |
Zabbix Java gateway |
10052 |
TCP |
Talep üzerine |
Zabbix web service |
10053 |
TCP |
Talep üzerine |
Zabbix frontend |
80 |
HTTP |
Talep üzerine |
443 |
HTTPS |
Talep üzerine |
|
Zabbix trapper |
10051 |
TCP |
Talep üzerine |
Not: Zabbix iletişimlerini etkinleştirmek için port numaralarının güvenlik duvarında açık olması gerekir. Giden TCP bağlantıları genellikle açık güvenlik duvarı ayarları gerektirmez.
Veri Tabanı Boyutu
Zabbix yapılandırma verileri sabit miktarda disk alanı gerektirir ve çok fazla büyümez.
Zabbix veri tabanı boyutu esas olarak depolanan geçmiş verilerin miktarını tanımlayan şu değişkenlere bağlıdır:
- · Saniyede işlenen değer sayısı:
Bu, Zabbix sunucusunun her saniye aldığı yeni değerlerin ortalama sayısıdır. Örneğin, 60 saniyelik yenileme hızıyla izlenecek 3000 öğemiz varsa, saniye başına değer sayısı 3000/60 = 50 olarak hesaplanır.
Bu, Zabbix veri tabanına saniye başı 50 yeni değerin eklendiği anlamına geliyor.
- · Tarih için Yönetici Ayarları:
Zabbix değerleri sabit bir süre boyunca, normalde birkaç hafta veya ay boyunca tutar. Her yeni değer, veri ve dizin için belirli miktarda disk alanı gerektirir.
Yani 30 günlük bir geçmişi tutmak istersek ve saniyede 50 değer alırsak, toplam değer sayısı yaklaşık ( 30 *24*3600)* 50 = 129.600.000 yani yaklaşık 130M değer olacaktır.
Kullanılan veri tabanı motoruna, alınan değerlerin türüne (kayan noktalı sayılar, tam sayılar, dizeler, günlük dosyaları, vb.) bağlı olarak, tek bir değeri tutmak için gereken disk alanı 40 bayttan yüzlerce bayta kadar değişebilir. Normalde sayısal öğeler için değer başına yaklaşık 90 bayttır. Bizim durumumuzda, 130M değerin 130M * 90 bayt = 10,9GB disk alanı gerektireceği anlamına gelir.
Not: Metin/log öğesi değerlerinin boyutunu tam olarak tahmin etmek imkansızdır ancak değer başına yaklaşık 500 bayt bekleyebilirsiniz.
- · Trendler için Yönetici Ayarları:
Zabbix, trendler tablosundaki her öğe için 1 saatlik maksimum/min/ort/sayı değer kümesi tutar. Veriler trend ve uzun dönemli grafikler için kullanılır. Bir saatlik dönem özelleştirilemez.
Zabbix veri tabanı, veri tabanı türüne bağlı olarak, her toplam için yaklaşık 90 bayt gerektirir. Trend verilerini 5 yıl boyunca saklamak istediğimizi varsayalım. 3000 öğe için değerler yılda 3000*24*365* 90 = 2,2 GB veya 5 yıl için 11 GB gerektirecektir.
- · Etkinlikler için Yönetici Ayarları:
Her Zabbix olayı yaklaşık 250 bayt disk alanı gerektirir. Zabbix tarafından günlük olarak üretilen olay sayısını tahmin etmek zordur. En kötü senaryoda, Zabbix'in saniyede bir olay ürettiğini varsayabiliriz.
Her kurtarılan olay için bir event_recovery kaydı oluşturulur. Normalde olayların çoğu kurtarılacağından olay başına bir event_recovery kaydı olduğunu varsayabiliriz. Bu, olay başına ek 80 bayt anlamına gelir.
İsteğe bağlı olarak olayların etiketleri olabilir, her etiket kaydı yaklaşık 100 bayt disk alanı gerektirir. Olay başına etiket sayısı (#etiketler) yapılandırmaya bağlıdır. Bu nedenle her birinin ek #etiketler * 100 bayt disk alanına ihtiyacı olacaktır.
Yani 3 yıllık etkinlikleri saklamak istiyorsak 3*365*24*3600* (250+80+#etiket*100) = ~30GB +#etiket*100B disk alanına ihtiyacımız olacaktır.
Tabloda Zabbix sistemi için gerekli disk alanını hesaplamak için kullanılabilecek formüller yer almaktadır:
Parametre |
Gerekli disk alanı formülü (bayt cinsinden) |
Zabbix configuration |
Sabit boyut. Normalde 10MB veya daha az. |
History |
günler*(öğeler/yenileme hızı)*24*3600*bayt öğeler: öğe sayısı günler: geçmişin saklanacağı gün sayısı yenileme hızı: öğelerin ortalama yenileme hızı baytlar: tek bir değeri saklamak için gereken bayt sayısı, veri tabanı motoruna bağlıdır, normalde ~90 bayttır. |
Trends |
günler*(öğe/3600)*24*3600*bayt öğeler : öğe sayısı günler : geçmişin saklanması gereken gün sayısı baytlar : tek bir eğilimi saklamak için gereken bayt sayısı, veri tabanı motoruna bağlıdır, normalde ~90 bayttır. |
Events |
günler*olaylar*24*3600*bayt olaylar: saniyedeki olay sayısı. En kötü senaryoda saniyede bir (1) olay. günler: geçmişi saklamak için gereken gün sayısı baytlar: tek bir eğilimi saklamak için gereken bayt sayısı, veri tabanı motoruna bağlıdır, normalde ~330 + olay başına ortalama etiket sayısı * 100 bayt. |
Yani, toplam gerekli disk alanı şu şekilde hesaplanabilir:
Yapılandırma + Geçmiş + Trendler + Olaylar
Disk alanı Zabbix kurulumundan hemen sonra kullanılmayacaktır. Veri tabanı boyutu büyüyecek ve daha sonra bir noktada büyümeyi durduracaktır; bu da yönetici ayarlarına bağlıdır.
Zaman Senkronizasyonu
Zabbix çalışırken sunucuda kesin sistem saatine sahip olmak çok önemlidir. ntpd, ana bilgisayarın saatini diğer makinelerin saatiyle senkronize eden en popüler daemon'dur. Zabbix bileşenlerinin çalıştığı tüm sistemlerde senkronize sistem saatinin korunması şiddetle önerilir.
Ağ Gereksinimleri
Varsayılan yapılandırma için bileşen başına açık portların listesi geçerlidir.
Portlar |
Bileşenler |
Frontend |
http on 80, https on 443 |
Server |
10051 (for use with active proxy/agents) |
Active Proxy |
10051 |
Passive Proxy |
10051 |
Agent2 |
10050 |
Trapper |
|
JavaGateway |
10053 |
WebService |
10053 |
Not: Zabbix ile harici iletişimleri etkinleştirmek için port numaralarının güvenlik duvarında açılması gerekir. Giden TCP bağlantıları genellikle açık güvenlik duvarı ayarları gerektirmez.
Hızlı Başlangıç
Hızlı Başlangıç
Hızlı Başlangıç
1. Kullanıcı Girişi ve Yapılandırması
Bu bölümde Zabbix'te bir sistem kullanıcısının nasıl oturum açılacağı ve ayarlanacağı gösterilecektir.
Bu Zabbix login ekranıdır. Zabbix süper kullanıcısı olarak giriş yapmak için kullanıcı adı olarak Admin'i ve şifre olarak zabbix'i girin. Tüm menü bölümlerine erişim sağlanacaktır.
Brute Force Saldırılarına Karşı Koruma
Üst üste beş başarısız giriş denemesi durumunda, brute froce ve sözlük saldırılarını önlemek amacıyla Zabbix arayüzü 30 saniye duraklatılacaktır.
Başarılı bir girişten sonra, başarısız bir giriş girişiminin IP adresi görüntülenecektir.
Kullanıcı Ekleme
Kullanıcılara ait bilgileri görüntülemek için Users → Users bölümüne gidin.
New user formunda, kullanıcınızı mevcut kullanıcı gruplarından birine, örneğin Zabbix administrators’e eklediğinizden emin olun.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Varsayılan olarak, yeni kullanıcılar için tanımlanmış bir medya (bildirim teslim yöntemi) yoktur. Bir tane oluşturmak için 'Media' sekmesine gidin ve Add’e tıklayın.
Bu açılan pencerede kullanıcıya ait e-mail adresini girin.
Ortamın etkin olacağı bir zaman aralığı belirtebilirsiniz (formatın açıklaması için Zaman aralığı belirtimi sayfasına bakın), varsayılan olarak ortam her zaman etkindir. Ayrıca ortamın etkin olacağı tetikleyici önem düzeylerini özelleştirebilir, ancak şimdilik hepsini etkin bırakabilirsiniz.
Ortamı kaydetmek için Add’e tıklayın, ardından Permissions sekmesine gidin.
Permissions sekmesinde zorunlu bir Role alanı vardır. Role, kullanıcının hangi frontend öğelerini görüntüleyebileceğini ve hangi eylemleri gerçekleştirmesine izin verildiğini belirler. Select'e basın ve listeden rollerden birini seçin. Örneğin, Yönetim hariç tüm Zabbix frontend bölümlerine erişime izin vermek için Yönetici rolünü seçin. Daha sonra izinleri değiştirebilir veya daha fazla kullanıcı rolü oluşturabilirsiniz. Bir rol seçtiğinizde, izinler aynı sekmede görünecektir:
Kullanıcıyı kaydetmek için user properties formunda Add’e tıklayın. Yeni kullanıcı, kullanıcı listesinde görünür.
İzin Ekleme
Varsayılan olarak, yeni bir kullanıcının sunuculara ve şablonlara erişim izni yoktur. Kullanıcıya yetki vermek için, Groups sütununda kullanıcının grubuna tıklayın (bu durumda 'Zabbix administrators'). Group properties formunda, Host permissions sekmesine giderek sunucu gruplarına izinler atayın. Sunucu grubu seçim alanının görüntülenmesi için üzerine tıklayın:
Daha sonra host group listesini görmek için alanın yanındaki Select'e tıklayın. Bu kullanıcı Linux Servers grubuna salt okunur erişime sahip olacak, bu yüzden listedeki uygun onay kutusunu işaretleyin ve seçiminizi onaylamak için Select'e tıklayın.
İzin düzeyini ayarlamak için Read butonuna tıklayın ve ardından kullanıcı grubu yapılandırmasında yapılan değişiklikleri kaydetmek için Update butonuna tıklayın.
Template’lere izin vermek için Template permissions sekmesine geçmeniz ve template gruplarını belirtmeniz gerekir.
Not: Zabbix'te, host’lara ve template’lere erişim hakları bireysel kullanıcılara değil, kullanıcı gruplarına atanır.
2. Yeni Sunucu
Bu bölümde yeni bir sunucunun nasıl kurulacağını öğreneceksiniz.
Zabbix'teki bir host, izlemek istediğiniz ağ bağlantılı bir varlıktır (fiziksel, sanal). Zabbix'te host’un ne olabileceğine dair tanım oldukça esnektir. Fiziksel bir sunucu, bir ağ anahtarı, bir sanal makine veya bir uygulama olabilir.
Host Ekleme
Zabbix'te yapılandırılmış host’lar hakkında bilgi Data colletion→ Host and Monitoring → Host bölümünde mevcuttur. "Zabbix sever" adında önceden tanımlanmış bir host zaten var, ancak bir tane daha eklemeyi öğrenmek istiyoruz.
Yeni bir host eklemek için Create host’a tıklayın. Bu bize bir host configuration formu sunacaktır.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Buraya girmek için gereken minimum miktar:
Host name
- · Bir host adı girin. Alfanümerik karakterler, boşluklar, noktalar, çizgiler ve alt çizgilere izin verilir.
Host groups
- · Select butonuna tıklayarak mevcut gruplardan bir veya birkaçını seçin veya yeni bir grup oluşturmak için mevcut olmayan bir grup adı girin.
Not: Tüm erişim izinleri bireysel host’lara değil, host gruplarına atanır. Bu nedenle bir host’un en az bir gruba ait olması gerekir.
Interfaces: IP address
Teknik olarak gerekli bir alan olmasa da belirli ölçümleri toplamak için bir host arayüzü gereklidir. Zabbix agent pasif kontrollerini kullanmak için, bu alanda aracının IP'sini veya DNS'ini belirtin. Zabbix agent yapılandırma dosyası 'Server' yönergesinde Zabbix sunucusunun IP'sini veya DNS'ini de belirtmeniz gerektiğini unutmayın. Zabbix agent ve Zabbix sunucusu aynı makineye kuruluysa, her iki yerde de aynı IP/DNS'yi belirtmeniz gerekir.
Other options şimdilik varsayılan halleriyle bize uygun olacaktır.
İşiniz bittiğinde Add’e tıklayın. Yeni hostunuz host listesinde görünür olmalıdır.
Availability sütunu, her arayüz için host kullanılabilirliğinin göstergelerini içerir. Bir Zabbix agent arayüzü tanımladık, bu nedenle host kullanılabilirliğini anlamak için agent availability icon (üzerinde 'ZBX' bulunan) kullanabiliriz:
Host durumu belirlenmedi; henüz bir ölçüm kontrolü yapılmadı.
Sunucu kullanılabilir, bir ölçüm kontrolü başarılı oldu.
Host kullanılamıyor, bir ölçüm denetimi başarısız oldu (hata mesajını görmek için fare imlecinizi simgenin üzerine getirin).
Muhtemelen yanlış arayüz kimlik bilgilerinden kaynaklanan iletişimde bir hata olabilir. Zabbix sunucusunun çalıştığını kontrol edin ve daha sonra sayfayı yenilemeyi deneyin.
1 3. Yeni Item
Öğeler Zabbix'te veri toplamanın temelini oluşturur. Öğeler olmadan veri olmaz çünkü yalnızca bir öğe tek bir metriği veya bir hosttan ne tür veri toplanacağını tanımlar.
Item Ekleme
Tüm öğeler host’lar etrafında gruplandırılmıştır. Bu nedenle bir örnek öğeyi yapılandırmak için Data collection→ Hosts’a gidiyoruz ve oluşturduğumuz "New host’u" buluyoruz.
"New host" satırındaki Items bağlantısına tıklayın ve ardından Create item’e tıklayın. Bu bize bir öğe tanımlama formu sunacaktır.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Örnek ürünümüz için girilmesi gereken temel bilgiler şunlardır:
Name
- · CPU load’ı değer olarak girin. Bu, listelerde ve diğer yerlerde görüntülenen öğe adı olacaktır.
Key
- · system.cpu.load değerini manuel olarak girin . Bu, toplanacak bilgi türünü tanımlayan bir öğenin teknik adıdır. Belirli anahtar, Zabbix agent ile birlikte gelen önceden tanımlanmış anahtarlardan (pre-defined keys) yalnızca biridir.
Type of information
- · Bu öznitelik beklenen verilerin biçimini tanımlar. system.cpu.load anahtarı için bu alan otomatik olarak Numeric(float) olarak ayarlanacaktır.
Not: Ayrıca, öğe geçmişinin tutulacağı gün sayısını 7 veya 14'e düşürmek isteyebilirsiniz. Bu, veri tabanının çok sayıda geçmiş değeri tutmasını önlemek için iyi bir uygulamadır.
Other options şimdilik varsayılan halleriyle bize uygun olacaktır.
Bittiğinde, Add’e tıklayın. Yeni öğe, öğe listesinde görünmelidir. Tam olarak ne yapıldığını görmek için listenin üstündeki Details’e tıklayın.
t
Veri Görüntüleme
Tanımlanmış bir öğeyle, aslında veri toplayıp toplamadığını merak ediyor olabilirsiniz. Bunun için, Monitoring → Latest data'ya gidin, filtrede New host’u seçin ve Apply'e tıklayın.
Bununla birlikte, ilk verinin ulaşması 60 saniyeye kadar sürebilir. Varsayılan olarak, sunucunun yapılandırma değişikliklerini okuma ve yürütülecek yeni öğeleri alma sıklığı budur.
'Change' sütununda hiçbir değer görmüyorsanız, belki de şu ana kadar yalnızca bir değer alınmıştır. Başka bir değerin gelmesi için 30 saniye bekleyin.
Ekran görüntüsündeki gibi öğe hakkında bilgi göremiyorsanız, şunları kontrol edin:
- · 'Key' ve 'Type of information' alanlarını ekran görüntüsündeki gibi doldurdunuz;
- · Hem agent hem de server’ın çalıştığını kontrol edin;
- · Host durumu 'Monitored' ve kullanılabilirlik simgesinin yeşil olduğunu kontrol edin;
- · Host filtresinde seçilen Host doğru olduğunu kontrol edin;
- · Item’in etkinleştirildiğini kontrol edin.
Grafikler
Öğe bir süre çalıştıktan sonra görsel bir şeyler görmenin zamanı gelmiş olabilir. Herhangi bir ek yapılandırmaya gerek kalmadan izlenen herhangi bir sayısal öğe için basit grafikler mevcuttur. Bu grafikler çalışma zamanında üretilir.
Grafiği görüntülemek için Monitoring → Latest data bölümüne gidin ve öğenin yanındaki 'Graph' bağlantısına tıklayın.
1 4. Yeni Trigger
Öğeler yalnızca veri toplar. Gelen verileri otomatik olarak değerlendirmek için trigger’lar tanımlamamız gerekir. Bir trigger, veriler için kabul edilebilir seviyenin ne olduğunu tanımlayan bir ifade içerir.
Eğer bu seviye gelen veriler tarafından aşılırsa, bir trigger "fire" veya bir 'Problem' durumuna geçer - bize dikkat gerektirebilecek bir şeyin olduğunu bildirir. Eğer seviye tekrar kabul edilebilirse, trigger 'Ok' durumuna geri döner.
Trigger Ekleme
Öğemiz için bir trigger yapılandırmak için Data collection→ Hosts’a gidin, New host’u bulun ve yanındaki Triggers’a ve ardından Create trigger’a tıklayın. Bu bize bir trigger tanımlama formu sunar.
Trigger için buraya girmemiz gereken temel bilgiler şunlardır:
Name
- · Tablodaki ve diğer yerlerde görünecek trigger adı olarak 'New host' üzerinde 3 dakika boyunca CPU load’ı yüksek olarak girin.
Expression
- · avg(/New host/system.cpu.load,3m)>2 değerini girin.
Bu bir trigger ifadesidir. İfadenin en son simgesine kadar doğru girildiğinden emin olun. Burada item key (system.cpu.load), öğeyi belirtmek için kullanılır. Bu belirli ifade temelde, CPU load ortalama değerinin 3 dakika boyunca 2'nin üzerinde olduğunda sorun eşik değerinin aşıldığını belirtir.
Tamamlandığında, Add’e tıklayın. Yeni trigger, trigger listesinde görünmelidir.
Trigger Durumunu Görüntüleme
Eğer CPU load, trigger’da tanımladığınız eşik seviyesini aştıysa sorun Monitoring → Problems kısmında gösterilecektir.
Status sütunundaki yanıp sönme, trigger durumunda son 30 dakika içinde gerçekleşen yakın tarihli bir değişikliği gösterir.
1 5. Sorun Bildirimi Alma
Veri toplayan öğeler ve sorun durumlarında "fire" planlanan trigger’lar ile birlikte, doğrudan Zabbix frontend sistemine bakmasak bile bizi önemli olaylar hakkında bilgilendirecek bir uyarı mekanizmasının olması da faydalı olacaktır.
Sorun bildirimleri için en popüler teslim metodu olan e-posta üzerinden nasıl bir bildirim ayarlayacağımızı öğreneceğiz.
E-mail Ayarları
Başlangıçta Zabbix'te birkaç önceden tanımlanmış bildirim teslim metodu vardır. E-mail bunlardan biridir.
E-mail ayarlarını yapılandırmak için Alerts → Media types bölümüne gidin ve önceden tanımlanmış medya türleri listesinde E-mail’e tıklayın.
Karşımıza E-mail ayarları tanımlama formu gelecektir.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Media type sekmesinde SMTP server, SMTP helo ve SMTP e-mail değerlerini ortamınıza uygun şekilde ayarlayın.
Not: Zabbix'ten gönderilen bildirimler için 'From' adresi olarak ‘SMTP email’ kullanılacaktır.
Daha sonra, sorun mesajının içeriğinin tanımlanması gerekir. İçerik, Message templates sekmesinde yapılandırılan bir mesaj şablonu aracılığıyla tanımlanır.
Message template oluşturmak için Add'e tıklayın ve message type olarak Problem’ı seçin.
Hazır olduğunuzda Add’e tıklayın ve formu kaydedin.
Artık E-mail’i çalışan bir media type olarak yapılandırdınız. Media type ayrıca belirli teslimat adresleri tanımlayarak (yeni bir kullanıcı yapılandırırken yaptığımız gibi) kullanıcılara bağlanmalıdır, aksi takdirde kullanılmayacaktır.
Yeni Eylemler
Bildirimleri iletmek, action’ların (eylemlerin) Zabbix'te yaptığı şeylerden biridir. Bu nedenle, bir bildirim ayarlamak için Alerts→ Actions → Trigger actions’a gidin ve Create action'a tıklayın.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Bu formda, action için bir ad girin.
En basit durumda, daha spesifik koşullar eklemezsek, trigger’ın Ok’dan Problem'a değişmesi durumunda action gerçekleştirilecektir.
Action’ın ne yapması gerektiğini tanımlamalıyız, bu adım Opertions sekmesinde yapılır. Operations bloğunda Add’e tıklayın, bu yeni bir options formu açar.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Burada, Send to Users bloğunda Add’e tıklayın ve tanımladığımız kullanıcıyı ('user') seçin. Send only to değerini ‘Email’ olarak seçin. Bunu yaptıktan sonra Add’e tıklayın ve işlem eklenmiş olmalıdır:
Bu, basit bir eylem yapılandırması için gerekenlerin tamamıdır, bu nedenle eylem formunda Add’e tıklayın.
Bildirim Alma
Şimdi, bildirim gönderme ayarları yapılandırıldığına göre, bunu deneyimlemek için Bunu desteklemek için, host’umuzdaki yükü bilerek artırabiliriz - böylece trigger’ımız 'fire' moduna girer ve bir sorun bildirimi alırız.
Host’unuzda konsolu açın ve şunu çalıştırın:
cat /dev/urandom | md5sum
Bu işlemlerden bir veya birkaçını çalıştırabilirsiniz.
Monitoring → Latest data’ya gidin ve 'CPU load' değerlerinin nasıl arttığını görün. Trigger’ımızın çalışması için ' CPU load' değerinin 3 dakika boyunca '2'nin üzerine çıkması gerektiğini unutmayın. Bunu yaptığında:
- · Monitoring → Problems bölümünde yanıp sönen 'Problem' durumuyla triggger’ı görmelisiniz.
- · e-mailinizde bir sorun bildirimi almalısınız.
Not: Bildirimler çalışmıyorsa:
- · Hem e-mail ayarlarının hem de eylemin düzgün şekilde yapılandırıldığını bir kez daha doğrulayın.
- · Oluşturduğunuz kullanıcının Adding user adımında belirtildiği gibi, olayı oluşturan host’ta en azından okuma izinlerine sahip olduğundan emin olun. 'Zabbix administrators' kullanıcı grubunun bir parçası olan kullanıcı, host’umuzun ait olduğu 'Linux servers' host grubuna en azından okuma erişimine sahip olmalıdır.
- · Ayrıca Reports→ Action log bölümüne giderek eylem günlüğünü inceleyebilirsiniz.
1 6. Yeni Template
Templates (Şablonlar), yararlı öğeleri, trigger’ları ve diğer varlıkları gruplandırmaya izin verir, böylece bunlar tek bir adımda host’lara uygulanarak tekrar tekrar kullanılabilir.
Bir template bir host’a bağlandığında, host şablonun tüm varlıklarını devralır. Yani, temel olarak önceden hazırlanmış bir dizi kontrol çok hızlı bir şekilde uygulanabilir.
Template Ekleme
Template’lerle çalışmaya başlamak için önce bir tane oluşturmamız gerekir. Bunu yapmak için, Data collection → Templates’de Create template’e tıklayın. Bu bize bir template yapılandırma formu sunacaktır.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
Buraya girmeniz gereken parametreler şunlardır:
Template names
- · Bir template adı girin. Alfa-sayısal karakterler, boşluklar ve alt çizgilere izin verilir.
Template groups
- · Select düğmesine tıklayarak bir veya birkaç grup seçin. Template bir gruba ait olmalıdır.
Not: Template group’larına erişim izinleri, host izinleriyle aynı şekilde Template permissions sekmesindeki user group yapılandırmasında atanır. Tüm erişim izinleri, bireysel template’lere değil gruplara atanır, bu nedenle template’i en az bir gruba dahil etmek zorunludur.
İşlemler tamamlandığında Add’e tıklayın. Yeni template’ininz template’ler listesinde görünür olmalıdır. Template’inizi bulmak için filtreyi de kullanabilirsiniz.
Gördüğünüz gibi tamplete orada, ancak içinde hiçbir item, trigger veya başka varlıklar bulunmuyor.
Template’e Item Ekleme
‘New host’ için item listesine bir item eklemek için, Tempate’e gidin. Data collection → Hosts’da New host’un yanındaki Items'e tıklayın.
Daha sonra:
- · Listede 'CPU load' item’inin onay kutusunu işaretleyin.
- · Listenin altında Copy’e tıklayın.
- · Itemi kopyalayacağınız template’i seçin.
Tüm zorunlu giriş alanları kırmızı yıldız işaretiyle işaretlenmiştir.
- · Copy’e tıklayın.
Şimdi Data collection→ Templates’e giderseniz, New template’de bir yeni item olmalıdır.
Şimdilik yalnızca bir item üzerinde duracağız, ancak benzer şekilde template’e, belirli bir amaç için (işletim sistemini izleme, tek bir uygulamayı izleme) oldukça eksiksiz bir varlık kümesi oluşana kadar başka item’ler, trigger’lar veya varlıklar ekleyebilirsiniz.
Template’i Host’a Bağlama
Geriye sadece hazır bir template’i host’lara eklemek kalır. Bunun için Data collection→ Hosts’a gidin, özellik formunu açmak için New host’a tıklayın ve Templates alanını bulun.
Templates alanına New template yazmaya başlayın. Oluşturduğumuz template’in adı açılır listede görünmelidir. Seçmek için aşağı kaydırın. Templates alanında göründüğünü görün.
Değişiklikleri kaydetmek için formda Update’e tıklayın. Template artık barındırdığı tüm varlıklarla birlikte host’a eklendi.
Bu şekilde herhangi başka host’lara da uygulanabilir. Template düzeyindeki item’lerde, trigger’larda ve diğer varlıklarda yapılan herhangi bir değişiklik, template’in bağlı olduğu host’lara yayılır.
Önceden Tanımlanmış Template’leri Host’lara Bağlama
Fark etmiş olabileceğiniz gibi, Zabbix çeşitli işletim sistemleri, cihazlar ve uygulamalar için önceden tanımlanmış template’ler ile birlikte gelir. İzlemeye çok hızlı bir şekilde başlamak için, bunlardan uygun olanını bir host’a bağlayabilirsiniz, ancak bu tamplate’lerin ortamınıza göre ince ayarlanması gerektiğini unutmayın. Bazı kontroller gerekli olmayabilir ve yoklama aralıkları çok sık olabilir.