Şirketin sistem düzeyinde izleme oluşturmasında ELK, trafik izleme konusunda sınırlamalara sahiptir - mevcut araçlar yalnızca biriken trafiği kaydeder, ancak her an trafiği hesaplayamaz. Bu yüzden ağı izlemek ve alarm vermek için zabbix'i kullanmaya karar verdim. Aşağıdakiler zabbix yapım sürecindeki tüm adımları sıfırdan kaydedecek ve umarım size yardımcı olabilir.
Kurulumdan önce hazırlık
Gerekli yazılımı kurun, SELINUX'u devre dışı bırakın, gerekli yazılımı kurun
$ sudo setenforce 0
$ sudo sed -i "s / SELINUX = zorlama / SELINUX = devre dışı / g" / etc / selinux / config
$ sudo rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY-CentOS-7
$ sudo yum install epel-release.noarch wget vim gcc gcc-c ++ lsof chrony tree nmap unzip rsync -y
$ sudo rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL-7
LAMP çevre yapısı
Kurulum
$ sudo yum yükleme -y httpd mariadb mariadb-sunucu mariadb-istemci php php-mysql
Mysql'i başlatın, başlatmayı başlatın, mysql şifresini değiştirin, aşağıdakilere dikkat edin, şifrenizin kendi şifrenizle değiştirilmesi gerekir
$ sudo systemctl start mariadb.service
$ sudo systemctl mariadb.service'i etkinleştir #Set boot up
$ sudo mysqladmin -u root -p parola parolanız
Zabbix hizmetini yükleyin
$ sudo rpm -ivh
$ sudo rpm --import / etc / pki / rpm-gpg / RPM-GPG-KEY-ZABBIX
$ sudo yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-agent
Zabbix veritabanı oluştur
$ mysql -uroot -p
MariaDB > VERİTABANI OLUŞTUR zabbix VARSAYILAN KARAKTER KÜMESİ utf8 TOPLAMA utf8_bin;
MariaDB > çıkmak
Verileri İçe Aktar
$ cd /usr/share/doc/zabbix-server-mysql-3.0.11/
$ zcat create.sql.gz | mysql -uroot -p zabbix
Zabbix yapılandırmasını değiştirin
Not: Lütfen aşağıdaki parolanızı kendi veritabanı parolanızla değiştirin
$ sudo vim /etc/zabbix/zabbix_server.conf
DBHost = localhost
DBName = zabbix
DBUser = kök
DBPassword = şifreniz
Saat dilimini değiştir
sudo vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia / Chongqing
Zabbix oturum açma parolasını değiştirin (isteğe bağlı)
-baş-4.2 $ mysql -uroot -p
Parolanı Gir:
MariaDB monitörüne hoş geldiniz. Komutlar; veya \ g ile biter.
MariaDB bağlantı kimliğiniz 326
Sunucu sürümü: 5.5.56-MariaDB MariaDB Sunucusu
Telif hakkı (c) 2000, 2017, Oracle, MariaDB Corporation Ab ve diğerleri.
Yardım için 'yardım' veya '\ h' yazın. Mevcut giriş ifadesini temizlemek için '\ c' yazın.
MariaDB > zabbix kullan
Tablo ve sütun adlarının tamamlanması için tablo bilgilerini okuma
-A ile daha hızlı bir başlangıç elde etmek için bu özelliği kapatabilirsiniz.
Veritabanı değişti
MariaDB > kullanıcılardan kullanıcı kimliği, diğer ad, ad, şifre seçin;
+ -------- + ------- + -------- + ----------------------- ----------- +
| kullanıcı kimliği | diğer ad | ad | passwd |
+ -------- + ------- + -------- + ----------------------- ----------- +
| 1 | Yönetici | Zabbix | 5fce1b3e34b520afeffb37ce08c7cd66 |
| 2 | konuk | | d41d8cd98f00b204e9800998ecf8427e |
+ -------- + ------- + -------- + ----------------------- ----------- +
Sette 2 sıra (0.00 sn)
MariaDB > kullanıcıları güncelle passwd = md5 ('newpassword'); burada userid = '1';
Sorgu TAMAM, 1 satır etkilendi (0,00 saniye)
Eşleşen satırlar: 1 Değiştirilen: 1 Uyarılar: 0
başlamak
$ sudo systemctl başlangıç httpd
$ sudo systemctl başlangıç zabbix-server
$ sudo systemctl başlangıç zabbix-agent
Önyüklemeyi ayarla
$ sudo systemctl httpd'yi etkinleştir
$ sudo systemctl zabbix sunucusunu etkinleştir
$ sudo systemctl zabbix aracısını etkinleştir
Http: // hostname / zabbix üzerinden zabbix kurulum sayfasını ziyaret edin, kurulum bilgilerini doldurun ve kurulumu tamamlayın. Kurulum tamamlandıktan sonra, ilk oturum açma hesabı parolası Admin / zabbix'tir.
Zabbix-agent'ı kurun
Zabbix sunucusu kurulur ve diğer makinelerin zabbix-server yönetimine dahil edilmesi için "bağlanması" gerekir. Kurulum adımları aşağıda verilmiştir.
$ sudo rpm -ivh
$ sudo yum yükleme -y zabbix-aracı
Zabbix-agent'ı yapılandırın
$ grep -Ev "^ $ | #" /etc/zabbix/zabbix_agentd.conf
# zabbix-server
Sunucu = 192.168.8.4
# Burada zabbix-server'a aktif olarak bağlanmanın yolunu seçin
ServerActive = 192.168.8.4
# Makinenin ana bilgisayar adı
Ana bilgisayar adı = 192.168.8.5
Zabbix-agent'ı başlatın
$ sudo systemctl start zabbix-agent.service
$ sudo systemctl zabbix-agent.service'i etkinleştir
Bu makineyi aşağıdaki zabbix-server sayfasına ekleyin
Aşağıdaki resmi doldurun
Ardından şablonu bağlayın
Son olarak Güncelle'ye tıklayın, ana bilgisayar dizininde izlenen tüm makinelerin bir listesini görebilirsiniz.
Not: zabbix-agent'ın zabbix_get aracılığıyla izleme bilgileri almak gibi başka makineler tarafından çağrılması gerekiyorsa, güvenlik duvarında "10050 sürüm bağlantı noktası" ayarlamanız gerekir.
Ağ trafiğini izleyin
192.168.8.5 ağ kartı em1 üzerindeki giriş ve çıkış trafiğini izlemek istediğimizi varsayalım, test etmek için zabbix sunucusundaki zabbix_get komutunu kullanabiliriz, aşağıdaki kod giriş trafiğini test eder, buradaki çıktının kümülatif bir trafik olduğuna dikkat edin
Ağ trafiğini izleme süreci:
1. Bir şablon oluşturun
2. İzleme öğeleri oluşturun
Bir uygulama oluşturun: Yapılandırma- > Şablonlar- > Uygulama oluştur
İzleme öğeleri oluşturun: Yapılandırma- > Şablonlar- > em1'deki ağ trafiği- > Öğeler > Öğe Oluştur
Yukarıdaki şekil, giriş trafiğinin izleme öğesi ayarıdır, çıkış trafiği izleme öğesinin ağ trafiği çıkış em1'i, başarıdan sonra gördüklerinizle aynı şekilde ayarlanabilir.
3. Tetikleyiciler Oluşturun
Tetikleyiciler, alarmı tetikleyen ayarlardır. Benzer şekilde, Yapılandırma'yı > Şablonlar- > em1'deki ağ trafiği- > Tetikleyiciler > Tetikleyiciler oluşturmak için tetikleyici oluşturun
İfadeyi ayarlarken, bize zabbix tarafından sağlanan şablonu kullanabileceğimizi unutmayın.
Bu nedenle giriş akışının tetikleme değeri ayarlanır ve saniyedeki akış 1048576'yı geçtiğinde alarm tetiklenir. Aynı şekilde çıkış akışının tetikleme değerini de ayarlayabiliriz.Başarıdan sonra gördüklerimiz şudur:
4. Grafikler Oluşturun
Sonra tekrar Grafikler oluşturalım, Grafikler trafik bilgilerini grafik olarak görüntüleyebilir, Konfigürasyon'a tıklayın. > Şablonlar- > em1'deki ağ trafiği- > Grafikler- > Grafik oluştur, Grafikler oluşturmanın en büyük avantajı, bu Grafikleri aşağıdaki gibi bir Ekran izleme paneli oluşturmak için birleştirebilmemizdir.
Grafik oluşturma formu aşağıdadır
5. Ciltleme Şablonu
Bu noktada, şablonumuz oluşturulur, son adım, ana bilgisayarı şablonla ilişkilendirmektir, Yapılandırma- > Ana bilgisayarlar- > Şablonlar- > Bir ilişkilendirme oluşturmayı seçin ve ardından Ekle'ye tıklayın
Şu anda İzleme aracılığıyla > En son veriler, ağ kartındaki en son verileri görebilir ve aynı zamanda İzleme aracılığıyla > Grafik verileri görüntülemek için grafikler
Özel komut dosyası alarmı
Sistemde bir anormallik olduğunda, hemen bulmamız ve bakım öğrencilerini e-posta veya Uygulama yoluyla bilgilendirmemiz gerekir, böylece tüm sistem elimizde olsun.Bunu yapmak için Zabbix'in aşağıdaki 3 seçeneği yapılandırması gerekir (zabbix Çok güçlü, ancak yapılandırma ve kullanıcı arayüzü biraz külfetli, hoşuma gitmeyen yer burası):
1. Ortam türleri
2. Etkinlikler
3. Kullanıcı Medyası
Medya türleri
Medya türleri, bir olay meydana geldiğinde nasıl bildirileceğidir.Burada komut dosyası modu kullanılır.Bu yöntem en büyük esnekliğe sahiptir.Bu şekilde, Dingding gibi Webhook'u destekleyen herhangi bir uygulamaya alarm gönderebiliriz.
Script'in prensibi şu: çalıştırılabilir betiği zabbix'in belirtilen dizinine koyarız, bir olay meydana geldiğinde zabbix otomatik olarak betiği çağırır, belirtilen dizinin yolunu /etc/zabbix/zabbix_server.conf'da bulabilirsiniz.
AlertScriptsPath = / usr / lib / zabbix / alertscripts
Medya türleri aşağıdaki gibi ayarlanır, yani / usr / lib / zabbix / alertscripts altında bir dingding.py komut dosyası vardır. Bir olay meydana geldiğinde, zabbix komut dosyasını çağırır ve komut dosyasının 3 parametresini iletir. Bu 3 parametre sırasıyla Etkinliğin alıcısı, olayın konusu ve olayın içeriği
Dingding.py betiği aşağıdaki gibidir, önce bu 3 parametrenin günlüğe çıktısını alacak olan basit bir sürümü uygulayalım
#! / usr / bin / python
içe aktarma günlük kaydı, sys
__name__ == "__main__" ise:
logger = logging.getLogger ()
handler = logging.FileHandler ("/ var / log / zabbix / dingding_alert.log")
formatter = logging.Formatter ('% (asctime) s% (ad) -s% (seviye adı) -s% (mesaj) s')
handler.setFormatter (biçimlendirici)
logger.addHandler (işleyici)
logger.setLevel (logging.DEBUG)
len (sys.argv) == 4 ise:
send_to = sys.argv
konu = sys.argv
content = sys.argv
logger.debug ("send_to:% s"% send_to)
logger.debug ("konu:% s"% konu)
logger.debug ("içerik:% s"% içeriği)
Başka:
logger.error ("kullanım: ./dingding.py $ send_to $ konu $ içeriği")
Komut dosyası izinlerini ayarlayın
$ sudo chown zabbix.zabbix dingding.py
$ sudo chmod + x dingding.py
Etkinlikler
Bir olay, belirli bir durum oluştuğunda zabbix tarafından oluşturulan bir alarm nesnesidir. Zabbix'de, olaylar bir olay meydana geldiğinde ve bir olay devam ettiğinde tetiklenebilir.Aşağıda bir olay oluşturalım,
Gördüğünüz gibi, olay konusu ve olay mesajı, saat oluşturulduğunda gerekli bilgiler de dahil olmak üzere, varsayılan olarak sistem tarafından oluşturulur.Aynı zamanda, olay geri yüklendiğinde bildirimi işaretledim (Kurtarma mesajı) ve Koşullar sekmesinin içeriği değişmeden kalır. Değiştirin, ardından İşlemler sekmesindeki içeriği değiştireceğiz
Buradaki anlam şudur: Olayın süresi 1 saattir (3600sn), her 2 dakikada bir (120sn) bir olay oluşturulur, toplam 10 olay oluşturulur, olay oluşturulduğunda, Zabbix administrators kullanıcı grubundaki Admin kullanıcısına gönderilir ve son olarak Etkinlik, yeni oluşturduğumuz Medya türünü kullanacak
Kullanıcı Meida
Etkinlik ve Ortam türü oluşturulduktan sonra, bunları aşağıda belirtilen kullanıcıyla ilişkilendirmeniz gerekir, Yönetim'i tıklayın. > Kullanıcılar- > Medya > Ekle, değişiklikten sonra Güncelle'ye tıklayın
Yukarıdaki adımlarla, zabbix'in izleme ve alarmını kurduk ve aslında ağ kartının akış izlemesini oluşturduk.Şimdi ağ akış eşiğini küçük bir değere ayarladık, kasıtlı olarak akışı aşan bir kaza yarattık ve alarmın etkili olup olmadığını gördük. , 10 alarm göndermeyi umuyoruz. Gönderdikten sonra, bir kurtarma mesajı alıp almayacağımızı görmek için eşiği normale ayarlayacağız. Daha önce yazılan betiği hatırlayın, alarm içeriğini günlük dosyasına çıkaracaktır, şimdi günlük dosyasını kontrol ediyoruz
Elbette sonuçlar beklentilerimizi karşıladı.
Yukarıdakiler zabbix girişinin tüm içeriğidir.Aşağıdaki makalelerde, cep telefonunuzdaki alarm bilgilerini gerçekten alabilmeniz için dingding.py alarm komut dosyasını uygulayacağız.