Zabbix

Bir BT çalışanı için fiziksel veya sanal sunucuların ve uygulamaların son durumları hakkında bilgi sahibi olmak büyük önem arz etmektedir. Bu da monitoring uygulamalarının önemini ortaya çıkarır. Bir çok monitoring uygulaması vardır. Bu yazımda bunlardan bir tanesi olan “Zabbix“i inceleyeceğiz. Açık kaynak olan uygulama, çok güzel anlatılmış bir dökümantasyona sahip. Bu da, kurulumları doğru bir şekilde yapıldıktan sonra sistemimizi geliştirmek için çok güzel bir kaynak sunuyor.

Topoloji

topology

Yukarıdaki grafikte görüldüğü üzere Zabbix; kendine ait agent’ı ve önceden belirlenmiş veya sizin belirleyeceğiniz herhangi bir port üzerinden izleme işlemlerini yapabilir. Bu sayede kendi yazdığınız bir uygulamanın sizin belirleyeceğiniz portlarından uygulamanızın durumunu taklip edebilirsiniz.

Server Kurulumu

Kurulum Bilgileri:

  • Centos 7
  • Zabbix Server 5.0
  • postgres (PostgreSQL)

Zabbix Repo kurulumu

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all

Zabbix server ve agent kurulumu

yum install zabbix-server-pgsql zabbix-agent

Zabbix frontend kurulumu

Red Hat Software Collections’ı aktif ediyoruz.

yum install centos-release-scl

/etc/yum.repos.d/zabbix.repo dosyasındaki zabbix-frontend repository’nin altında bulunan enabled satırını aşağıdaki gibi düzenliyoruz.

[zabbix-frontend]
...
enabled=1
...

Zabbix frontend paketlerini yüklüyoruz.

yum install zabbix-web-pgsql-scl zabbix-apache-conf-scl

Postgresql Database ve PHP kurulumu:

yum update -y
yum install -y php postgresql-server postgresql-contrib php-pgsql dejavu-sans-fonts php-bcmath php-gd php-ldap php-mbstring php-xml wget

# Servisi başlatıyoruz
service postgresql initdb
systemctl start postgresql

# Servisi yeniden başlatma listesine ekliyoruz
systemctl enable postgresql
service postgresql restart

Database Yapılandırması:

# zabbix isminde bir kullanıcı oluşturuyoruz.
sudo -u postgres createuser --pwprompt zabbix

# Sahibi zabbix kullanıcı olan zabbix isminde bir veritabanı oluşturuyoruz.
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix

Ben bu tanımlamaları “root” kullanıcısı ile yaptım. Eğer sunucu üzerinde postgres kullanıcısı ile yapılacak ise üstteki komutların başına bulunan sudo -u postgres komutunu kaldırabiliriz.

Database şablonlarını import ediyoruz.

zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

Zabbix server Yapılandırması:

vi /etc/zabbix/zabbix-server.conf

Bu konfigürasyon dosyası içerisinde aşağıdaki satırları bulup değiştirelim.

# Eğer veritabanı başka bir sunucu üzerinde
# tutulacak ise buraya o sunucunun bilgileri girilmelidir.
DBHost=localhost

# Yukarıda oluşturduğumuz veritabanı
DBName=zabbix

# Yukarıda kullanıcı oluştururken belirlediğimiz kullanı ve parola
DBUser=zabbix
DBPassword=zabbix1234

Zabbix frontend PHP yapılandırması için /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf dosyasını düzenliyoruz.

# Türkiye zaman ayarını yapmak için başındaki ';' karakterini kaldırıp aşağıdaki gibi düzenliyoruz.
php_value[date.timezone] = Europe/Istanbul

Firewall Yapılandırması:

Eğer linux firewall kullanıyorsanız aşağıdaki konfigürasyonları yapmanız gerekmektedir.

firewall-cmd --permanent --add-port=10050/tcp
firewall-cmd --permanent --add-port=10051/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
systemctl restart firewalld

IP Table kullanıcısı iseniz aşağıdaki komutları girebilirsiniz.

iptables -I INPUT 5 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT 5 -p tcp -m tcp --dport 10050 -j ACCEPT
iptables -I INPUT 5 -p tcp -m tcp --dport 10051 -j ACCEPT

Benim kurulum yaptığım sunucu üzerinde selinux disable ve firewalld servisi kapalı durumdadır. Bu sebeple yukarıdaki firewall yapılandırmalarını uygulamadığımı belirtmek isterim. Bu konuda herhangi bir sıkıntı ile karşılaşırsanız yorum kısmından belirtebilirsiniz.

Buraya kadar başarılı bir şekilde geldiysek, Zabbix’i artık tarayıcıdan görme vakti geldi demektir. Tarayıcımıza aşağıdaki adresi yazalım:

http://<server_adresi>/zabbix

Aşağıdaki gibi bir sayfayla karşılaşmış olmamız lazım

/img/yazilar/zabbix-5-0/zbbx1.png

Gereksinimlerin hepsi OK mi bakıyoruz.

/img/yazilar/zabbix-5-0/zbbx2.png

Veritabanı konfigürasyonlarını kontrol ediyoruz.

/img/yazilar/zabbix-5-0/zbbx3.png

Zabbix Server detaylarını giriyoruz.

/img/yazilar/zabbix-5-0/zbbx4.png

Son olarak bize kurulumda yapılan konfigürasyonların özetini gösteriyor. Burada yaptığımız konfigürasyonların doğruluğunu kontrol edelim. Eğer sıkıntı yoksa Next Step butonuna tıklayarak kurulumu tamamlayabiliriz.

/img/yazilar/zabbix-5-0/zbbx5.png

Kurulum tamamlandıktan sonra karşımıza aşağıdaki gibi bir ekranın gelmesi gerekir.

/img/yazilar/zabbix-5-0/zbbx6.png

Bu adıma kadar sorunsuz bir şekilde geldiysek tebrik ederim, artık monitoring uygulamamız kullanıma hazır. Sıra izleyeceğimiz sunucular üzerine agent kurmaya geldi.

Kurulum sırasında bazı hatalar ile karşılaşmış olabilirsiniz. Bu hataların nasıl giderileceğini makalenin sonunda yer alan Hatalar ve Çözümleri başlığında bulabilirsiniz. Bu kısımda yer almayan hatalar için her zaman benimle iletişime geçebilirsiniz. Elimden geldiğince yardımcı olmaya çalışacağım.

Sunucuları izleme vakti

Client kurulumu server kurulumuna göre çok çok basit. Buradaki adresten sistemimize uygun zabbix agent çalıştırılabilir dosyamızı indiriyoruz ve izlemek istediğimiz sunucu üzerinde indirdiğimiz dosyayı çalıştırarak kurulumunu yapıyoruz.

/img/yazilar/zabbix-5-0/zbbx7.png

Kurulumunu yaptıktan sonra yapılması gereken tek ayar konfigürasyon dosyasının düzenlenmesi olacaktır. Bu dosyanın konumu, kullanılan işletim sistemleri arasında değişkenlik gösterebilir. Linux dağıtımlarında /etc/zabbix/zabbix_agent.conf konumunda bulunmaktadır. Windws makinelerde ise C:\zabbix\zabbix_agent.conf konumunda bulunur. Temel olarak yapılması gereken değişiklikler aşağıdaki gibidir.

Server=127.0.0.1,serveradresi.com

Server=<IP_adresi>,<DNS_adresi> gibi Zabbix server ile iletişime geçebileceği IP adresi girilir.

ServerActive=127.0.0.1

Server kısmında yazanın aynısını yazabilirsiniz.

HostName=Zabbix

Burada sunucumuzun ismini giriyoruz. Zabbix Discovery özelliği ile sunucuyu keşfettiği zaman buradaki ismi kullanacak. Eğer istersek kolaylık olarak bu kısmın önüne # karakteri koyup devredışı bırakarak biraz altında bulunan HostnameItem=system.hostname (ilerideki geliştirmelerde sıkıntı yaşamamak için tavsiyedir.) özelliğini aktif edebiliriz. Bu özellik tarama yapılırken sunucumuzun hostname’ine göre keşif yapılmasını sağlar. Bu sayede örneğin 200 adet sunucumuz varsa ve konfigürasyon dosyasında bir değişiklik yapacaksak; bu değişikliği tek bir dosya olarak oluşturup tüm sunuculara gönderebiliriz. Aksi halde bu 200 sunucuya giriş yapıp bu dosyaları tek tek düzenlememiz gerekecektir.

Client sunucularımızda konfigürasyon tanımlarımız bu kadar. Bu adımdan sonra istersek discovery özelliğimizin sunucumuzu taramasını bekleyebilir veya kendimiz ekleyebiliriz.

İşte Zabbix!

Server kurulumu kısmında belirttiğim http://<zabbix_server_IP>/zabbix adresine girdiğimizde aşağıdaki gibi bir giriş ekranı karşılayacak bizi. buraya Admin kullanıcı adı (Evet A büyük olacak 🙃) ve zabbix parolasıyla giriş yapıyoruz.

/img/yazilar/zabbix-5-0/zbbx8.png

Giriş yaptıktan sonra bizi aşağıdaki gibi bir dashboard karşılayacak.

/img/yazilar/zabbix-5-0/zbbx9.png

Host ekleme

Sistemimize yeni sunucu ekleme için soldaki panelden ConfigurationHosts sekmesine giriyoruz.

/img/yazilar/zabbix-5-0/zbbx10.png

Sağ üstte Create Host ve Import şeklinde iki seçenek bulunmaktadır. Create Host, birazdan göstereceğim gibi zabbix ekranından yeni sunucu eklememizi sağlar. Import ise önceden hazırlanmış bir JSON dosyası kullanılarak sunucuların eklenmesini sağlar. Create Host menümüz aşağıdaki gibidir.

/img/yazilar/zabbix-5-0/zbbx11.png

Templates sekmesinde, sunucuları oluşturduğumuz zaman bizim esas işimizi görecek olan item ve trigger’ları tek tek eklememiz gerekmeyecek. Bunları tamplate’ler halinde saklayıp eklediğimiz sunuculara bunları linkleyip kullanabiliriz.

/img/yazilar/zabbix-5-0/zbbx12.png

IPMI sekmesinde, eğer sunucularınızı IPMI ile izleme şansınız bulunuyorsa Zabbix ile buradan gelecek verileri de izleyebilmenize imkan verir.

/img/yazilar/zabbix-5-0/zbbx13.png

Tags sekmesinden eklediğimiz sunuculara etiketler vererek sınıflandırabiliriz.

/img/yazilar/zabbix-5-0/zbbx14.png

Macros sekmesinde, tanımlar yaparak Item ve Trigger detaylarında sunuculara özel açıklamalar ekleyebilirsiniz. Örnek vermek gerekirse, iki tane sunucumuz var, bunların ikisi de farklı birimler tarafından yönetiliyor. Bu senaryoda item ve trigger açıklamalarını tek tek hangi birimin ilgileneceğini belirterek girmeniz gerekecektir. Bunun yerine, Template içerisindeki item ve trigger açıklamalarında {$BIRIM} şeklinde bir makro girip, her sunucunun ‘Macros’ sekmesinde buna uygun açıklamayı yaparsak 50 tane sunucuda 200’er tane tanım olsa bile hepsi bu makro sayesinde uygun bir şekilde değişecektir.

/img/yazilar/zabbix-5-0/zbbx15.png

Inventory sekmesi sunucularımızın envanter bilgilerinin tutulduğu yerdir. Buradaki envanter bilgileri manual olarak girilebileceği gibi sunucularımızda bulunan item’lar sayesinde bunları otomatik olarak da tanımlayabiliriz.

/img/yazilar/zabbix-5-0/zbbx16.png

Sunucularımıza erişimde herhangi bir şifreleme özelliği kullnılıyorsa Encryption sekmesinden bu şifreleme yöntemini girerek ilerleyebiliriz.

/img/yazilar/zabbix-5-0/zbbx17.png

Host Groups

Host grupları tahmin edeceği gibi niz gibi sunucularımızı gruplamamızı sağlar. Her sunucu en az bir host grubuna sahip olmak zorundadır, birden fazla host grubuna sahip olabilir. Host grubu tanımı yapmak için iki seçeneğimiz bulunmaktadır:

  • Sol panelden ConfigurationHost Groups sekmesine geçiyoruz. Sağ üstteki Create host group butonunu kullanarak yeni bir host group oluşturabiliriz.
  • Host tanımı yaparken Groups kısmına eğer mevcut olmayan bir grup tanımlaması girilmişse otomatik olarak tanımlanacaktır. Tanımlanacağını yazdığınız grup isminin yanında bulunan (new) yazısından anlayabilirsiniz.

/img/yazilar/zabbix-5-0/zbbx18.png

Item Tanımlama

Yukarıda yazdıklarımı okuduysanız, çok fazla ‘item’ ifadesini kullandığımı görmüşsünüzdür. Nedir bu ‘item’? Temel olarak sistemlerimizi izlememiz için, verilen paramtreleri kulllanarak gereken verileri toplayan objeler olarak açıklayabiliriz. Bu objeler sayesinde belirtmiş olduğumuz aralıklarda sistemlerimiz hakkında bilgi toplanır ve bu bilgiler veritabanına kaydedilir. Sunucularımız üzerindeki item’lar görmek için sunucu bilgilerine girip üst sekmede bulunan Items sekmesini inceleyebiliriz. Burada tanımlanmış (sizin özel olarak tanımladığınız veya linklenmiş olan template’ler aracılığı ile gelen) item’lar bulunmaktadır.

/img/yazilar/zabbix-5-0/zbbx19.png

Sunucu için özel bir item oluşturmak için yukarıdaki resimde bulunan Create Item butonuna tıklıyoruz. Karşımıza aşağıdaki gibi bir ekran gelecektir.

/img/yazilar/zabbix-5-0/zbbx20.png

Bu ekrandakilerin ne anlama geldiğini ve ne işe yaradıklarını biraz açıklamak isterim:

  • Name Item’a vereceğimiz ismi belirler. Anlamlı bir isim olmalıdır diğer Items sekmesinde diğer itemlarla birlikte listelenecektir. Etik isimlendirme standardında yapılan iş kullanılır. Örneğin; ‘Zabbix Kontrol’ veya ‘5000 Portu Durumu’ gibi.
  • Type ComboBox yardımıyla kontrolün nasıl yapılacağını seçmemizi ister. Zabbix Agent, SNMP Agent, Simple Check ve JMX Agent vb. seçenekler mevcuttur.
  • Key Itemlar keyler yardımı ile ne yapacağını anlar ve parametre alırlar. Bu keyler seçilen kontrol yöntemine göre değişiklik gösterir. Hatta Zabbix Agent kullanılıyorsa kendi keylerimizi bile yazabiliriz.
  • Host Interface Sunucuya bağlanılacak arayüzü diğer bir manada portu seçmemize yardımcı olur.
  • Type of information Kontrollerden nasıl bir sonuç geleceğini belirtir. Örneğin nümerik bir sonuç mu gelecek, karakter mi gelecek yoksa log veya text içerik mi gelecek bunu seçeriz.
  • Units Sonuçların birimlerini belirler Örneğin; GB yazarsak gelen verileri GB cinsinden gösterecektir.
  • Update Interval Ne kadar zaman aralıkları ile kontroller yapılacağını belirtir.
  • Custom Interval Belirli saatler arası belirli aralıklarla kontrol yapmasını sağlar.
  • History Storage Period, Trend Storage Period Zabbix’te veriler 2 tipte saklanır. History Storage, tam verilerdir. Itemlardan gelen tüm veriler saklanır. Trend Storage ise özet verilerdir. Belirli aralıklarla ortalama değerler alınarak bulunur.
  • Applications Kontrollerin ne ile ilgili olduğunu gösterir. Ctrl tuşuna basılı tutarak birden fazla application seçebiliriz.
  • Populates host inventory field Eğer buradan gelecek veri bir envanter verisi ise bize envanter ekranı ile eşitleme imkanı verir. Kısaca bu itemdan gelecek veri envanter ekranında seçtiğimiz alanda görünecektir.
  • Description Item için açıklama yazabiliriz.

Trigger Tanımlama

Triggerlar monitoring için en önemli kısımlardan birisidir. Çünkü itemlar ile toplanan veriler burada anlam kazanmaya başlar. Biz bir eşik değeri belirleriz, ve bu eşik değerinin bizim için ne anlam ifade ettiğini söyleriz. Zabbix de buna göre davranarak uyarı verir.

/img/yazilar/zabbix-5-0/zbbx21.png

Trigger oluşturmak için aynı itemlarda olduğu gibi Triggers sekmesindeki sağ üstte bulunan Create Trigger butonumuza tıklıyoruz. ve aşağıdaki gibi bir ekran bizi karşılıyor.

/img/yazilar/zabbix-5-0/zbbx22.png

Bu ekranda;

  • Name Trigger’a verilen isim. Etik isimlendirme standardında bir olay belirten isimler kullanılır. Örneğin; ‘/ dizininde disk boyutu %90 seviyesine çıktı’ veya ‘X sunucusuna ulaşılamıyor.’
  • Operational data Anlık veri kısmında gösterilen verinin hangi değer olacağını belirtir. Örneğin; {ITEM.LASTVALUE1} yazarsak, alınan son değeri gösterecektir.
  • Severity Bu uyarının bizim için önemi nedir. Bu önem seviyesini göre ileride mail atmak için kullanacağız.
  • ExpressionBu kısımda takip etmek istediğimiz Item’ın hangi koşullada bu uyarıya takılacağını tarif ederiz. Örneğin takip ettiğimiz bir diskin doluluğu için şöyle bir tarif yapabiliriz; Eğer belirlenen disk %85 doluluğa ulaşmışsa Problem konumuna çek.
  • OK event generation Buraki seçenek Expression ise belirlenen eşik çizgisine göre hareket edecektir. Fakat bazı durumlarda itemdan gelen veri tam bu çizginin üzerinde durabilir. Bu da size aynı problem ve normal bildiriminin veya mailinin birkaç defa gelmesine neden olur. Tabiki istenen bir durum değildir bu. Recovery Expression seçeneğini kullanırsak ne zaman normal olduğuna dair Zabbix’e bilgi verebiliriz. Üstteki örneğimizi uyarlayacak olrsak; Eğer belirlenen disk %85 doluluğa ulaşmışsa Problem konumuna çek, %80’in altına inerse Normal konuma çek diyabiliriz. Bu sayede doluluğun %85 ile %84 arasında yaptığı küçük dalgalanma bize bir tane problem maili olarak bildirilecektir.
  • Allow manual close Burası tikli olursa Dashboard üzerinde görünen bildirimde Acknowledge seçeneğini tıklayarak problemi manual olarak kapatabiliriz. Çok fazla istenilen birşey değildir. Sonuçta gelen uyarıyı elle kapatacaksak otomatize izlemenin bir anlamı kalmıyor. Bunun en mantıklısı zabbix tarafından kapatılması için gerekli iyileştirmelerin yapılmasıdır. Fakat yine de bazı durumlar için ihtiyaç olabiliyor.
  • Description Trigger’da açıklama yazmak için kullanılır. Hatanın nereden kaynaklandığı ve nerelerin kontrol edilmesi gerektiği yazılabilir.

Action Tanımlama

Action’lar sistemimizde bir sorun ile karşılaştığımızda zabbix’in bunu bize bildirmesini sağladığımız tanımlamalardır. Örnek vereyim; zabbix-client sunucusunda zabbix-agent’a ulaşamazsan [email protected] adresine mail at diyebiliriz. Buna ek olarak Zabbix 5.0 ile gelen bir özellik olarak JIRA, MS Teams, Slack, Telegram vb. ortamlardan ticket açılmasını da sağlayabiliyoruz.

/img/yazilar/zabbix-5-0/zbbx23.png

Action oluşturmak için sağ üstte bulunan Create Action butonuna tıklıyoruz. Gelen sayfada hangi durumlarda bildirim gelmesi gerektiğini tanımlayacağız. Condition kısmında bulunan Add butonuna tıklayalım. Burada koşullarımızı gireceğiz. Mesela şu hostname bilgisine sahip sunucuda bu trigger’lar ‘Problem’ durumuna geçerse… veya bu host grubundaki sunucularda şu önem seviyesi üzerindeki triggerlar tetiklenirse… gibi koşulları buradan ayarlıyoruz.

/img/yazilar/zabbix-5-0/zbbx24.png

Yapacağımız tanımlamanın tipisi seçtik. Trigger seçimi yapabilmemiz için istediğimiz triggerın bulundupu host’u seçiyoruz. Sonrasında o host’a tanımlı triggları görebiliriz.

/img/yazilar/zabbix-5-0/zbbx25.png

/img/yazilar/zabbix-5-0/zbbx26.png

/img/yazilar/zabbix-5-0/zbbx27.png

Örnek olması amacıyla 2 tane trigger seçtim. Şu an gerek yok fakat 20 tane trigger seçimi yaptığımızı düşünürsek bunları önceliklendirmemiz ve birbirine bağlamamız gerekecektir. Type of Calculation tam da bu göreve hizmet ediyor. Eğer orada 4 adet seçenek bulunmakta:

  • And/Or önceliklendirmeleri otomatik yapacak demektir.
  • And burada yazılan seçilen kuralların hepsinin geçerli olması durumunda çalışacaktır.
  • Or tanımlanan kuralların herhangi biri oluşursa çalışacak demektir.
  • Custom Expression Önceliklendirmeleri elimize aldığımız kısımdır. Burada bulunan label’lar kalabalıklaşırsa koşul algoritmasının çok iyi kurulması gerektiğini hatırlatmam gerekiyor. Yoksa ya beklediğiniz yerden uyarı gelmiyor, ya da farklı yerlerden beklemediğiniz uyarılar gelebiliyor. Tanımlamaları yaparken ilgili tanımlamanın başında bulunan harfleri kullanıyoruz.

/img/yazilar/zabbix-5-0/zbbx28.png

/img/yazilar/zabbix-5-0/zbbx29.png

/img/yazilar/zabbix-5-0/zbbx30.png

Artık yukarıda tanımladığımız koşulların gerçekleşmesi durumunda ne yapılacağını tanımlamaya geçiyoruz. Bu yazımda action oluştururken mail ile bildirim kısmını göstereceğim.

/img/yazilar/zabbix-5-0/zbbx31.png

Operations kısmında;

  • Operation Type Aşağıda seçilen kullanıcılar veya kullanıcı gruplarına mesaj bildirimi yapılacağını (Send Message) veya komut çalıştırmak istediğimizi (Remote Command) belirtiyoruz.
  • Send to User groups İlgili bildirimin gönderileceği kullanıcı gruplarını seçmek için kullanıyoruz.
  • Send to Users Hangi kullanıcılara bildirim gönderileceğini seçiyoruz.
  • Send only to Yapılacak bildirimin nasıl olacağını seçiyoruz. Burada email ile bildirimin dışında Zabbix 5.0 ile birlikte JIRA, MS Teams, Slack, Telegram vb. ortamlardan bildirim veya ticket açılmasını sağlayabiliyoruz.
  • Custom Message Gönderilecek bildirimi özelleştirmemizi sağlar.

Gerekli tanımlamalarımızı yaptıktan sonra Add butonuna tıklıyoruz.

/img/yazilar/zabbix-5-0/zbbx32.png

/img/yazilar/zabbix-5-0/zbbx33.png

/img/yazilar/zabbix-5-0/zbbx34.png

Eğer sorun giderildiğinde de bilgilendirilmek istiyorsak Recovery operations kısmında bulunan aşağıdaki tanımlamaları da Operations kısmına benzer şekilde tamamlıyoruz. Update operations kısmında ise soruna birisi tarafından yorum girilmesi veya durum değiştirilmesi durumunda yapılacak bilgilendirmeler için kullanılıyor.

/img/yazilar/zabbix-5-0/zbbx35.png

/img/yazilar/zabbix-5-0/zbbx36.png

Dashboard oluşturma

Dashboard’lar yukarıda yaptığımız tanımlamalarımızı görselleştirdiğimiz yerdir. Zabbix kurulumda bize aşağıdaki gibi bir dashboard sunacaktır. Bu dashboard’u düzenleyebileceğimiz gibi yeni dashboardlar da oluşturabiliriz.

/img/yazilar/zabbix-5-0/zbbx37.png

Yeni dashboard oluşturmak için sağ üstte bulunan Edit dashboard butonun hemen yanında bulunan 3 çizgi’ye tıklayıp Create New seçeneğini seçiyoruz. ikinci bir seçenek olarak da sol üstteki Global View başlığının hemen altında bulunan All dashboards sayfasına dönerek oluşturabiliriz.

/img/yazilar/zabbix-5-0/zbbx38.png

Burada oluşturacağımız dashboard’a sahiplik vermemiz gerekiyor. Sadece bir kişi bu dashboard’ın sahibi olabilir. Eğer birden fazla kişi tarafından kontrol edilecek ise oluşturduktan sonra sağ üstteki 3 çizgi olan butona tıklayıp Share seçeneği ile diğer kullanıcıların bu dashboard’ı kullanabilmeleri için Read-only veya Read-Write yetki verebilirsiniz. Burada ben “Operator” isminde bir ekran oluşturuyorum.

/img/yazilar/zabbix-5-0/zbbx39.png

/img/yazilar/zabbix-5-0/zbbx40.png

Şimdi sıra ouşturduğumuz ekrana eklediğimiz objeleri görselleştirecek widget’ları eklemede. Yeni bir widget eklemek için düzenleme modunda iken boş bir alana tıklamamız yeterli olacaktır.

/img/yazilar/zabbix-5-0/zbbx41.png

Type kısmında uzun bir liste halinde bazı seçenekler sunuyor. Bu kısımda item’lardan gelen çıktıları listeleyen (Action Log) widgetlar olduğu gibi anlık problemler (Problems) ve bir web sitesinin takibi (URL) gibi işleri yapabilen widgetlar da mevcuttur. Aşağıda en çok işimize yaracak widgetlardan biri olan ‘Problems’ widgetının konfigürasyonunu görebilirsiniz.

  • Refresh interval Widget’ın dashboard’da yenilenme süresidir.
  • Show Gösterilecek Problemleri seçmenizi sağlar. Recent problems seçeneği O anda çözülmemiş ve açık olan problemleri zaman sıralamasına göre gösterir. Problems seçeneği açılmış problemlerin hepsini gösterirken; Histroy seçeneği geçmişe dönük açılmış ve çözülmüş problemleri zaman sıralamasına göre listeler.
  • Host groups Hangi hostlardan gelen problemlerin gösterileceğini seçeriz.
  • Exclude host groups Bir sunucu birden fazla host grubunda bulunabilir. Seçtiğimiz host grupları içerisinde görünmesini istemediğimiz host grupları varsa onları ayıklamamızı sağlar.
  • Hosts Tek tek host eklememizi sağlar.
  • Severity Hangi önem seviyesine sahip triggerlarda sorun olursa gösterileceğini seçeriz. Örneğin; sadece ‘High’ ve ‘Disaster’ seçeneğini seçtiğimizi düşünürsek, ekranımıza sadece ‘High’ ve ‘Disaster’ önem seviyesine sahip bildirimler gelecektir.
  • Tags Etiketlere göre gösterim yapabilmemizi sağlar.
  • Show unacknowledged problems gelen uyarılar bazen bilgimiz dahilinde olabilir. Bu uyarıların ekranda görünmesini istemeyebiliriz. Acknowledged olarak işaretlenmiş problemlerin ekranda görünmemesi için bu seçeneği tikleyebiliriz.
  • Show lines aynı anda kaç tane problemin görüneceğini belirtir. Eğer burada yazan sınırın üzerine çıkılırsa 2. 3. sayfalar oluşturularak devam edilir.

Gerekli bilgileri doldurdukran sonra Add butonuna tıklayarak widget’ımızı ekliyoruz.

/img/yazilar/zabbix-5-0/zbbx42.png

/img/yazilar/zabbix-5-0/zbbx43.png

Yapılan değişikliklerimizi kaydetmek için sağ üstte bulunan Save Changes butonuna tıklıyoruz.

/img/yazilar/zabbix-5-0/zbbx44.png

Artık suncuularımızda yaşanan problemleri aşağıdaki gibi görebileceğiz.

/img/yazilar/zabbix-5-0/zbbx45.png

Problem giderildiği zaman ise belirli bir süre RESOLVED şekilde ekranda durup kaybolacaktır.

Buraya kadar okuduğunu için çok teşekkür ederim. Yazının devamına buradaki bağlantıdan ulaşabilirsiniz. Kurulum sırasında alabileceğiniz muhtemel hatalar ve çözümlerini aşağıda bulabilirsiniz. Yazımı faydalı bulduysanız paylaşmayı unutmayınız. Her türlü sorularınızı yorum kısmından veya iletişim kısmında bana sorabiliriniz. Saygılarımla…

Hatalar ve Çözümleri

DB Connection

/img/yazilar/zabbix-5-0/zbbx46.png

/var/lib/pgsql/data/postgresql.conf dosyası içerisinde listen_addresses = '*' satırı ekliyoruz.

/var/lib/pgsql/data/postgresql.conf dosyası içerisinde normalde listen_addresses kısmı yorum satırı olarak tanımlıdır. Bu satırı yukarıdaki gibi düzenliyoruz veya altına ekliyoruz.

/var/lib/pgsql/data/pg_hba.conf dosyasında en alt satıra aşağıdaki satırı ekliyoruz.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             0.0.0.0/0                 md5

Bu tanımlamalar yapıldıktan sonra postgresql servisinin yeniden başlatılması gerekmektedir.

Charset uyumsuzluğu

/img/yazilar/zabbix-5-0/zbbx47.png

Eğer yukarıdaki gibi bir hata almışsanız üzgünüm ki düzeltme imkanımız yok. postgres kullanıcısına geçip dropdb zabbix komutunu çalıştırıyoruz.

Eğer işlem sırasında parola isterse /var/lib/pgsql/data/pg_hba.conf dosyasındaki md5 olarak düzenlediğiniz satırları ident olarak değişitirin. Sorasında postgresql servisini yeniden başlatmamız gerekecektir.

Veritabanını sildikten sonra yeniden uygun charseti kullanarak yeni bir veritabanı açıyoruz ve şemaları import ediyoruz.

createdb -O zabbix -E Unicode -T template0 zabbix
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix

Yazımı beğendiniz mi? Yorum yapın.

©

2020

| Burak Kıymaz
Top