I. Genel Bakış
Başlamadan önce, bazı kavram ve tanımların önceden anlaşılması gerekir (aşağıdaki içerik resmi web sitesinden alınmıştır).
1.1 Çeşitli kavramlar
Mimari
Zabbix, sorumlulukları aşağıdaki gibi olan birkaç ana işlevsel bileşenden oluşur.
Sunucu
Zabbix sunucusu, Zabbix aracısının kullanılabilirliği, sistem bütünlüğü bilgilerini ve istatistiksel bilgileri kendisine bildirmesi için temel bileşendir. Tüm konfigürasyon bilgilerini, istatistiksel bilgileri ve işlem bilgilerini depolamak için temel depodur.
Zabbix Server, aktif sorgulama ve pasif veri toplama, tetikleme koşullarını hesaplama ve kullanıcılara bildirim göndermekten sorumludur. Zabbix Agent ve Proxy raporlama sistemi kullanılabilirliği ve bütünlük verilerinin temel bileşenidir. Sunucunun kendisi, basit hizmetler aracılığıyla ağ hizmetlerini (web sunucuları ve posta sunucuları gibi) uzaktan kontrol edebilir.
Zabbix Sunucusu, tüm konfigürasyon, istatistik ve işlem verilerinin merkezi depolama merkezi ve ayrıca Zabbix izleme sisteminin alarm merkezidir. İzlenen sistemdeki herhangi bir anormallik yöneticiye bildirilecektir.
Zabbix Sunucusunun temel işlevleri üç farklı bileşene ayrılmıştır. Bunlar: Zabbix sunucusu, web ön ucu ve veritabanıdır.
Zabbix'in tüm konfigürasyon bilgileri, Sunucunun Web ön ucu ile etkileşim kurduğu veritabanında saklanır. Örneğin, web ön ucu (veya API) aracılığıyla yeni bir izleme öğesi eklediğinizde, bu öğe veritabanının izleme öğesi tablosuna eklenecektir. Daha sonra Zabbix sunucusu, izleme öğesi tablosundaki etkili öğeleri dakikada bir sıklıkta sorgular ve ardından bunları Zabbix sunucusundaki önbellekte depolar. Bu nedenle, Zabbix ön ucu tarafından yapılan herhangi bir değişikliğin en son veri segmentinde görüntülenmesi yaklaşık iki dakika sürecektir.
veri tabanı
Zabbix tarafından toplanan tüm yapılandırma bilgileri ve veriler veritabanında saklanır.
Web arayüzü
Zabbix'e her yerden ve herhangi bir platformdan kolayca erişebilmek için web tabanlı bir arayüz sağlıyoruz. Bu arayüz, Zabbix sunucusunun bir parçasıdır ve genellikle (ancak zorunlu değildir) Zabbix sunucusuyla aynı fiziksel makinede çalışır.
Vekil
Zabbix proxy, Zabbix sunucusu için performans ve kullanılabilirlik verilerini toplayabilir. Zabbix proxy, Zabbix ortam dağıtımının isteğe bağlı bir parçasıdır; ancak, tek bir Zabbix sunucusunun yük paylaşımı için çok faydalıdır.
Zabbix proxy'si, bir veya daha fazla izlenen cihazdan izleme verilerini toplayabilen ve bilgileri çoğunlukla Zabbix sunucusu adına çalışan Zabbix sunucusuna gönderebilen bir işlemdir. Toplanan tüm veriler yerel olarak önbelleğe alınır ve ardından proxy'nin ait olduğu Zabbix sunucusuna iletilir.
Zabbix proxy'sini dağıtmak isteğe bağlıdır, ancak tek bir Zabbix sunucusunun yükünü paylaşmak çok faydalı olabilir. Yalnızca aracı veri topluyorsa, Zabbix sunucusu CPU ve disk G / Ç ek yükünü azaltacaktır. Zabbix proxy, yerel bir yönetici olmadan uzak konumların, şubelerin ve ağların merkezi olarak izlenmesi için ideal bir çözümdür. Zabbix proxy, ayrı bir veritabanı gerektirir.
Ajan
Zabbix ajanı, yerel kaynakları ve uygulamaları (sabit disk, bellek, işlemci istatistikleri vb.) Aktif olarak izlemek için izlenen hedefe yerleştirilir.
Zabbix aracısı, yerel işletim bilgilerini toplar ve verileri daha ileri işlemler için Zabbix sunucusuna bildirir. Bir istisna meydana geldiğinde (örneğin, sabit disk alanı dolduğunda veya kilitlenmiş bir hizmet süreci olduğunda), Zabbix sunucusu, belirtilen makinedeki istisnaya karşı yöneticiyi aktif olarak uyaracaktır.
Zabbix ajanlarının son derece yüksek verimliliği, istatistiksel verileri toplamak için yerel sistem çağrılarını kullanabilmesinden kaynaklanmaktadır.
Zabbix temsilcisi pasif kontroller ve aktif kontroller çalıştırabilir.
Pasif kontrol modunda, aracı veri taleplerine yanıt verir. CPU yükü ve Zabbix aracısı gibi veriler için Zabbix sunucusu (veya proxy) sorguları sonucu döndürür.
Proaktif denetim süreci nispeten karmaşık olacaktır. Aracı, bağımsız işleme için önce Zabbix sunucusundan izlenen öğelerin bir listesini talep etmeli ve ardından toplanan yeni değerleri periyodik olarak Zabbix sunucusuna göndermelidir.
Pasif veya aktif kontrollerin gerçekleştirilip gerçekleştirilmeyeceği, ilgili izleme öğesi türü seçilerek yapılandırılır. Zabbix ajanı, "Zabbix ajanı" veya "Zabbix ajanı (aktif)" türündeki izleme öğelerini yönetir.
veri akışı
Öncelikle, veri toplamak üzere bir izleme öğesi oluşturmak için önce bir ana bilgisayar oluşturmanız gerekir. İkincisi, bir tetikleyici oluşturmak için bir izleme öğesi olmalıdır. Son olarak, bir eylem oluşturmak için bir tetikleyiciniz olmalıdır ve bu noktalar eksiksiz bir veri akışı oluşturur. Bu nedenle, CPU yükünü Sunucu X alarmında çok yüksek almak istiyorsanız, önce Sunucu X için bir ana bilgisayar girişi oluşturmalı, ikinci olarak CPU'sunu izlemek için bir izleme öğesi oluşturmalı ve son olarak İşlem CPU'sunu çok yüksek tetikleyin ve posta kutunuza gönderin. Bu adımlar külfetli görünse de, şablon kullanmak aslında karmaşık değildir. Tam da bu tasarım sayesinde Zabbix'in konfigürasyonu daha esnek ve kullanımı kolay hale geliyor.
1.2 Bazı tanımlar
Ev sahibi
· İzlemek istediğiniz ağ bağlantılı cihazda IP / DNS var.
Ev sahibi grubu
· Mantıksal bir ana bilgisayar grubu; ana bilgisayarlar ve şablonlar içerebilir. Bir ana bilgisayar grubundaki ana bilgisayarlar ve şablonlar arasında doğrudan bir ilişki yoktur. Ana bilgisayar grupları genellikle farklı kullanıcı gruplarındaki ana bilgisayarlara izinler atanırken kullanılır.
İzleme öğesi (öğe)
· Almak istediğiniz ana bilgisayarın belirli verileri, bir metrik / dizin verisi.
Değer ön işleme
· Alınan gösterge verisini veri tabanında saklamadan önce dönüştürün / önişleyin.
Tetikleyici
· Problem eşiğini ve "değerlendirme" öğesi tarafından alınan verileri tanımlamak için kullanılan mantıksal bir ifade. Alınan veriler eşik değerden yüksek olduğunda, tetik "Tamam" dan "Sorun" durumuna geçer. Alınan veriler eşiğin altında olduğunda, tetikleyici "Tamam" durumunu korur / geri döner.
Etkinlik
· Tetikleme durumu değişiklikleri, keşif / izleme aracılarının otomatik kaydı gibi bir kez gerçekleştiğinde not edilmesi gereken şeyler.
Etkinlik etiketi
Önceden ayarlanan olay bayrakları, olay korelasyonu, izin iyileştirme ayarları vb. İçin kullanılabilir.
Olay korelasyonu
· Sorunların ve çözümlerin otomatik, esnek ve kesin korelasyonu.
Örneğin, tetikleyici A alarm istisnalarının tetik B tarafından çözülebileceğini ve tetik B'nin tamamen farklı bir veri toplama yöntemi kullanabileceğini tanımlayabilirsiniz.
İstisna (sorunlar)
· "Anormal" durumda bir tetikleyici.
İstisna güncellemesi (sorun güncellemesi)
· Zabbix tarafından sağlanan yorum ekleme, istisnaları onaylama, problem seviyesini değiştirme veya manuel olarak kapatma gibi problem yönetimi seçenekleri.
Aksiyon
· Olaylara müdahale etmek için önceden tanımlanmış eylemler. Bir eylem, bir işlemden (bir bildirim yayınlamak gibi) ve bir koşuldan (işlemin ne zaman gerçekleştirileceği) oluşur.
Tartışma
· Bir eylem içindeki işlemleri gerçekleştirmenin özel bir yolu; bildirim gönderme / uzak komutları çalıştırma sırası.
Medya
· Alarm bildirimleri gönderme yöntemi ve aktarım şekli.
Bildirim
· Etkinlikle ilgili güven, seçilen ortam aracılığıyla kullanıcıya gönderilecektir.
Uzaktan komut (uzaktan komut)
· Belirli koşullar altında izlenen ana bilgisayarda otomatik olarak yürütülebilen önceden tanımlanmış bir komut.
Şablon
· Bir veya daha fazla ana bilgisayara uygulanabilen bir dizi varlık (izleme öğeleri, tetikleyiciler, grafikler, toplu grafikler, uygulamalar, LLD'ler, Web sahneleri). Şablonun uygulanması, izleme görevlerinin ana bilgisayarda dağıtımını hızlı ve kolay hale getirir; ayrıca izleme görevlerinin toplu olarak değiştirilmesini kolaylaştırır. Şablon doğrudan her bir ana bilgisayara bağlıdır.
Uygulama
· Bir dizi izleme öğesinden oluşan mantıksal bir gruplama.
Web senaryosu
· Web sitesinin taranabilirliğini kontrol etmek için bir veya daha fazla HTTP isteği.
Başlangıç aşaması
· Zabbix tarafından sağlanan web arayüzü.
Zabbix API
· Zabbix API, kullanıcıların JSON RPC protokolünü Zabbix nesneleri (ana bilgisayarlar, izleme öğeleri, grafikler ve diğerleri gibi) hakkında bilgi oluşturmak, güncellemek ve almak veya diğer özel görevleri gerçekleştirmek için kullanmalarına olanak tanır.
Zabbix sunucusu
· Zabbix izlemenin temel programı olan ana işlevi, Zabbix proxy'leri ve Aracıları ile etkileşim kurmak, hesaplamaları tetiklemek, alarm bildirimleri göndermek ve verileri merkezi olarak kaydetmek vb.
Zabbix ajanı
· İzleme nesnelerine yerleştirilen ve yerel kaynakları ve uygulamaları etkin bir şekilde izleyebilen programlar.
Zabbix vekil
· Zabbix Sunucusunun veri toplamasına ve Zabbix Sunucusunun yükünü paylaşmasına yardımcı olan bir program.
Şifreleme
· TLS (Taşıma Katmanı Güvenliği) protokolünü kullanarak Zabbix bileşenleri (sunucu, proxy, aracı, zabbix_sender ve zabbix_get programları) arasında şifreli iletişimi destekleyin.
2. Çevre
Deneysel ortamın sınırlı kaynakları nedeniyle, bu deneyde yalnızca bir Zabbix Sunucusu ve izlenen bir Ana Bilgisayar vardır. Yapılandırma aşağıdaki gibidir:
Zabbix Sunucusu
# cat / etc / centos-release
CentOS Linux sürüm 7.5.1804 (Çekirdek)
# ip adres göster | grep eth0 | egrep -o '+ \. + \. + \. + \ / +'
172.31.3.21/22
# zabbix_server --version
zabbix_server (Zabbix) 4.0.2
Ev sahibi
# cat / etc / centos-release
CentOS Linux sürüm 7.5.1804 (Çekirdek)
# ip adres göster | grep eth0 | egrep -o '+ \. + \. + \. + \ / +'
172.31.3.41/22
# zabbix_agentd -V
zabbix_agentd (arka plan programı) (Zabbix) 4.0.2
Ana bilgisayarın güvenlik duvarı kapatılır.
3. Kurulum ve yapılandırma süreci
3.1 Zabbix Sunucusunun kurulumu ve konfigürasyonu
3.1.1 Ambar yapılandırma paketini kurun
# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
Bu adım normal bir şekilde yürütülemiyorsa ilgili deponun rpm paketini de kurulum için indirebiliriz.
# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
Uyarı: zabbix-release-4.0-1.el7.noarch.rpm: başlık V4 RSA / SHA512 İmza, anahtar kimliği a14fe591: NOKEY
hazırlanıyor ... ##################################
Yükseltiliyor / yükleniyor ...
1: zabbix-release-4.0-1.el7 ####################################
3.1.2 zabbix-server-mysql, zabbix-web-mysql ve zabbix-agent'ı kurun
# yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
Kurulmuş:
zabbix-agent.x86_640: 4.0.2-1.el7 zabbix-server-mysql.x86_640: 4.0.2-1.el7 zabbix-web-mysql.noarch 0: 4.0.2-1.el7
Bağımlılık olarak yüklendi:
OpenIPMI-libs.x86_640: 2.0.23-2.el7 OpenIPMI-modalias.x86_640: 2.0.23-2.el7 apr.x86_640: 1.4.8-3.el7_4.1 apr-util.x86_640: 1.5 .2-6.el7
dejavu-fonts-common.noarch 0: 2.33-6.el7 dejavu-sans-fonts.noarch 0: 2.33-6.el7 fontpackages-filesystem.noarch 0: 1.44-8.el7 fping.x86_640: 3.10-1.el7
gnutls.x86_640: 3.3.26-9.el7 httpd.x86_640: 2.4.6-80.el7.centos httpd-tools.x86_640: 2.4.6-80.el7.centos iksemel.x86_640: 1.4-2 .el7.centos
libX11.x86_640: 1.6.5-1.el7 libX11-common.noarch 0: 1.6.5-1.el7 libXau.x86_640: 1.0.8-2.1.el7 libXpm.x86_640: 3.5.12-1.el7
libevent.x86_640: 2.0.21-4.el7 libjpeg-turbo.x86_640: 1.2.90-5.el7 libpng.x86_642: 1.5.13-7.el7_2 libtool-ltdl.x86_640: 2.4.2-22 .el7_3
libxcb.x86_640: 1.12-1.el7 libxslt.x86_640: 1.1.28-5.el7 libzip.x86_640: 0.10.1-8.el7 mailcap.noarch 0: 2.1.41-2.el7
net-snmp-libs.x86_641: 5.7.2-32.el7 nettle.x86_640: 2.7.1-8.el7 php.x86_640: 5.4.16-45.el7 php-bcmath.x86_640: 5.4.16 -45.el7
php-cli.x86_640: 5.4.16-45.el7 php-common.x86_640: 5.4.16-45.el7 php-gd.x86_640: 5.4.16-45.el7 php-ldap.x86_640: 5.4 .16-45.el7
php-mbstring.x86_640: 5.4.16-45.el7 php-mysql.x86_640: 5.4.16-45.el7 php-pdo.x86_640: 5.4.16-45.el7 php-xml.x86_640: 5.4 .16-45.el7
t1lib.x86_640: 5.1.2-14.el7 pantolon.x86_640: 0.3.14-2.el7 unixODBC.x86_640: 2.3.1-11.el7 zabbix-web.noarch 0: 4.0.2-1.el7
tamamlayınız!
3.1.3 mariadb (MySQL) yükleyin
Bazı CentOS sürümlerinde, MySQL yerini mariadb almıştır.Mariadb, MySQL ile tamamen uyumludur ve yasal riskleri yoktur.MySQL için iyi bir alternatiftir. Elbette, MySQL'i kurmak istiyorsanız, sorun yok.Çeşitli MySQL kurulum eğitimleri hakkındaki önceki blog yazılarım referans içindir. Deneysel ortamın sınırlı kaynakları nedeniyle, mariadb'yi Zabbix Sunucusu ile aynı ana bilgisayara kurdum. Üretim ortamında, veritabanını bağımsız olarak kurmayı ve yapılandırmayı deneyin.
# yum -y mariadb-sunucusunu yükle
Kurulmuş:
mariadb-server.x86_641: 5.5.60-1.el7_5
Bağımlılık olarak yüklendi:
mariadb.x86_641: 5.5.60-1.el7_5
tamamlayınız!
# systemctl mariadb başlat
# systemctl mariadb'yi etkinleştir
/Etc/systemd/system/multi-user.target.wants/mariadb.service'den /usr/lib/systemd/system/mariadb.service'e symlink oluşturuldu.
3.1.3 İlgili veri tabanlarını oluşturun ve ayarlayın
# mysql -uroot -p
MariaDB > veritabanı zabbix karakter kümesi oluştur utf8 harmanla utf8_bin;
MariaDB > veritabanlarını göster;
+ -------------------- +
| Veritabanı |
+ -------------------- +
| bilgi_seması |
| mysql |
| performans_seması |
| test |
| zabbix |
+ -------------------- +
MariaDB > 'character_set_database' gibi değişkenleri gösterin;
+ ------------------------ + -------- +
| Değişken_adı | Değer |
+ ------------------------ + -------- +
| character_set_database | latin1 |
+ ------------------------ + -------- +
Sette 1 satır (0,00 sn)
MariaDB > zabbix. * üzerindeki tüm ayrıcalıkları 'zabbix.gysl' tarafından tanımlanan zabbix @ localhost'a verin;
MariaDB > floş ayrıcalıkları;
Sorgu TAMAM, 0 satır etkilendi (0,00 saniye)
MariaDB > 'Kök' @ 'localhost' = ŞİFRE ('zabbix.gysl');
MariaDB > çıkmak
Hoşçakal
Mariadb yüklendikten sonra, varsayılan olarak bir şifre yoktur ve şifreyi girmenizin istendiği adımda Enter tuşuna basarak oturum açabilirsiniz. Veritabanına girildikten sonra zabbix veritabanı oluşturulur, tüm izinler verilir ve bir şifre belirlenir. Bu arada nihayet mariadb için bir şifre belirleyin.
3.1.4 İlgili yapılandırmayı değiştirin
# sed -i.bak '/ ^ DBUser / a DBPassword = zabbix.gysl' /etc/zabbix/zabbix_server.conf
# cat /etc/zabbix/zabbix_server.conf | grep -v ^ # | grep ^ "\ S"
LogFile = / var / log / zabbix / zabbix_server.log
LogFileSize = 0
PidFile = / var / run / zabbix / zabbix_server.pid
SocketDir = / var / run / zabbix
DBName = zabbix
DBUser = zabbix
DBPassword = zabbix.gysl
SNMPTrapperFile = / var / log / snmptrap / snmptrap.log
Zaman aşımı = 4
AlertScriptsPath = / usr / lib / zabbix / alertscripts
ExternalScripts = / usr / lib / zabbix / externalscripts
LogSlowQueries = 3000
3.1.5 Veri başlatma
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Parolanı Gir:
# mysql -u zabbix -p
Parolanı Gir:
MariaDB > zabbix kullanın;
MariaDB > tabloları göster;
Sette 144 satır (0,00 sn)
MariaDB > çıkış
Hoşçakal
Daha önce belirlediğimiz şifreyi girin ve daha sonra Enter tuşuna basın. 144 tablonun doğru olduğu onaylanmıştır.
3.1.6 Saat dilimini değiştir
# sed -i.bak '/ Europe \ / Riga / a \ tphp_value date.timezone Asia / Shanghai' /etc/httpd/conf.d/zabbix.conf
3.1.7 Son ayarları tamamlayın ve sunucuyu yeniden başlatın
# systemctl güvenlik duvarını durdur
# systemctl güvenlik duvarını devre dışı bırak
Symlink /etc/systemd/system/multi-user.target.wants/firewalld.service kaldırıldı.
Symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service kaldırıldı.
# systemctl httpd'yi başlat
# systemctl httpd'yi etkinleştir
/Etc/systemd/system/multi-user.target.wants/httpd.service'den /usr/lib/systemd/system/httpd.service'e symlink oluşturuldu.
# sed -i's / SELINUX = zorlama / SELINUX = devre dışı / g '/ etc / selinux / config
# systemctl zabbix-server zabbix-agent'ı yeniden başlat
# systemctl zabbix-server zabbix-agent'ı etkinleştir
/Etc/systemd/system/multi-user.target.wants/zabbix-server.service'den /usr/lib/systemd/system/zabbix-server.service'e symlink oluşturuldu.
/Etc/systemd/system/multi-user.target.wants/zabbix-agent.service'den /usr/lib/systemd/system/zabbix-agent.service'e symlink oluşturuldu.
# yeniden başlatma
Yeniden başlattıktan sonra başka bir anormallik yoksa, Zabbix Sunucusu zaten normal şekilde çalışıyor ve daha fazla yapılandırma için bekliyor.
3.2 Zabbix Web'i Yapılandırma
3.2.1 Web Ayarlarını Başlatma
Tarayıcının adres çubuğuna (http: // server_ip_or_name / zabbix) girin ve Enter tuşuna basın. Sonraki kurulum düğmesini tıklayın ve gerekli içeriği girmek için istemleri izleyin. Tamamlandıktan sonra arayüz kabaca aşağıdaki gibidir:
Aşağıdaki arayüz, kurulumun başarılı olduğunu göstermektedir.
Bitir öğesine tıklayın.
3.2.2 Oturum açma ve basit kurulum
Zabbix süper kullanıcısı olarak oturum açmak için Yönetici kullanıcı adını ve zabbix şifresini girin. Sayfanın sağ üst köşesindeki kullanıcı avatar logosunu bulun ve dili Çince olarak ayarlayın.
3.3 Ajan programını Host cihazına kurun ve kurun
# rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
# yum -y zabbix aracısını yükle
# sed -i.bak's / Server = 127.0.0.1 / Sunucu = 172.31.3.21 / g '/etc/zabbix/zabbix_agentd.conf
# systemctl zabbix-agent'ı başlat
# systemctl zabbix-agent'ı etkinleştir
/Etc/systemd/system/multi-user.target.wants/zabbix-agent.service'den /usr/lib/systemd/system/zabbix-agent.service'e symlink oluşturuldu.
3.4 İlk izlenen ana bilgisayarı ekleyin
Sisteme giriş yaptıktan sonra sırayla tıklayın: Yapılandırma- > Bir ana bilgisayar oluşturun (sağ üst köşe). Aşağıdaki şekilde gösterildiği gibi öğeleri doldurun veya seçin:
Bir şablon seçin ve ekleyin:
Seçim tamamlandıktan sonra, görüntülemek için Ekle'yi tıklayın:
Yukarıdaki şekilde gösterilen içerik, yapılandırmanın başarılı olduğu anlamına gelir ve Zabbix'in güçlü işlevlerini daha da keşfedebilirsiniz.
4. Özet
4.1 Genel olarak konuşursak, Zabbix'in kurulumu ve kullanımı çok kolaydır, ancak kurulum işlemi sırasında bazı detaylara dikkat edilmesi gerekir.
4.3 Zabbix'in resmi belgeleri çok ayrıntılıdır ve aynı zamanda bir Çince versiyonu da sağlar, ancak yine de düşünmemiz ve özetlememiz gereken bazı tuzaklar vardır.
4.4 İkili kurulum kullanıyorsanız, süreç yönetimi hesabının dikkate alınması çok gereklidir. Resmi belgede zabbix sunucusu ve zabbix aracısı aynı ana bilgisayara kurulduğunda farklı süreç yönetimi hesapları kullanmaları gerektiği belirtilmektedir.
4.4 Bu makale esas olarak Zabbix kurulumunu tanıtır.Daha az ekran görüntüsü vardır ve biraz deneyim gereklidir. Daha sonraki kullanım daha sonraki bir makalede ayrıntılı olarak tanıtılacaktır ve eksiklikler Wanwanghaihan'dır. Herkes benimle büyüsün!
5. İlgili bilgiler
Lütfen CSDN bloguma ve GitHub'a aynı adla bakın.