Linux disklerini otomatik olarak keşfedin ve zabbix4.2'ye dayalı Linux disk GÇ'sini izleyin

Genel Bakış

Bugün esas olarak Linux disklerini otomatik olarak keşfetmek ve disk IO'yu izlemek için zabbix'in nasıl kullanılacağını anlatıyorum. Şimdi birlikte bir göz atalım ~

1. İzleme prensibi

Disk performans verilerinin ana kaynağı / proc / diskstats'tır. Öncelikle bunun anlamını ve dizindeki verileri anlayalım:

Her diskstats alanının anlamı:

Resmi açıklama: https://www.kernel.org/doc/Documentation/iostats.txt

A B C 12 34 56 78 910118 16 sdb 11368677107704472654482257721886121840427042984520 51952363852

Açıklama:

A: Başlıca ekipman numarası

B: küçük cihaz numarası

C: Cihaz adı

1: Tamamlanan okuma sayısı ----- Diske yapılan okuma sayısı, toplam başarılı okuma sayısı.

2: Tamamlanan birleştirilmiş okumaların sayısı, altıncı alan: tamamlanan birleşik yazma sayısı. Verimlilik için bitişik okuma ve yazmaları birleştirebilir. Bu nedenle, iki 4K okuma, diskte işlenmeden önce 8K değerine dönüşebilir ve bu sayılır (ve sıraya alınır), bu nedenle yalnızca bir G / Ç işlemi olur. Bu alan, bu tür işlemlerin ne sıklıkla olduğunu bilmenizi sağlar.

3: Okunan sektör sayısı, başarıyla okunan toplam sektör sayısı.

4: Okumaya harcanan milisaniye sayısı; bu, tüm okuma işlemlerine harcanan milisaniye sayısıdır (__make_request () ile end_that_request_last () arasında ölçülür)

5: Yazma tamamlama sayısı ---- Yazma tamamlama sayısı, toplam başarılı yazma sayısı.

6: Birleşik yazma tamamlama sayısı ----- birleştirilmiş yazma sayısı

7: Yazma sektörlerinin sayısı ---- Yazma sektörlerinin sayısı, toplam başarılı sektör yazma sayısı.

8: Yazma işlemlerinde harcanan milisaniye sayısı --- Yazma işlemlerinde harcanan milisaniye sayısı; bu, tüm yazma işlemlerinde harcanan milisaniye sayısıdır (__make_request () ile end_that_request_last () arasında ölçülür)

9: İşlenmekte olan giriş / çıkış isteklerinin sayısı - G / Ç'nin mevcut ilerlemesi, yalnızca bu alan 0 olmalıdır. İstek uygun request_queue_t'ye teslim edildiğinde artırın ve istek tamamlandığında azaltın

10: Giriş / çıkış işlemleri için harcanan milisaniye sayısı ---- G / Ç işlemleri için harcanan milisaniye sayısı. Bu alan, alan 90 olmadığı sürece büyüyecektir.

11: Giriş / çıkış işlemlerinde harcanan ağırlıklı milisaniye sayısı ---- ağırlıklı, G / Ç işlemlerinde harcanan milisaniye sayısı, G / Ç her başladığında, G / Ç sona erdiğinde, bu alan G / Ç birleştirildiğinde değiştirilecektir artırmak. Bu, I / O tamamlanma süresi ve biriktirilebilecek depolama için uygun bir ölçüm sağlayabilir.

İki, zabbix-agent'ı yapılandırın

1. zabbix aracısı tarafındaki yapılandırma dosyasını değiştirin

# vi /etc/zabbix/zabbix_agentd.conf =============================================== ======================================== UnsafeUserParameters = 1 # Bu değeri 1 olarak değiştirin, çünkü otomatik olarak keşfedilen komut dosyasında güvenli olmayan faktörler olarak kabul edilen bazı özel karakterler vardır. 1 bu karakterlerin var olmasına izin verildiği anlamına gelir # Değiştirmezseniz, daha sonra Sunucu tarafında bir hata raporlanacak ve nedeni burada =============================================== ======================================== # vi /etc/zabbix/zabbix_agentd.d/DiskIO.conf =============================================== ======================================== # İlk satır, otomatik keşif betiğinin yoludur UserParameter = disk.discovery, / etc / zabbix / zabbix_agentd.d / disk_discovery.sh # İkinci satır, disk GÇ'sini algılamak için komut dosyası yoludur UserParameter = disk.status, / etc / zabbix / zabbix_agentd.d / disk_status.sh $ 1 $ 2 =============================================== ========================================

2. Yapılandırma komut dosyası

2.1, otomatik disk keşif komut dosyası

vim /etc/zabbix/zabbix_agentd.d/disk_discovery.sh

#! / bin / bash diskarray = (`cat / proc / diskstats | grep -E" \ bsd \ b | \ bxvd \ b "| grep -i" \ b $ 1 \ b "| awk '{print $ 3}' | sıralama | uniq 2 > / dev / null`) uzunluk = $ {# diskarray} printf "{\ n" printf '\ t' "\" veri \ ":; sonra printf ',' fi bitti printf "\ n \ t> \ n" printf "} \ n"

2.2. Disk durumunu tespit etmek için komut dosyası

vim /etc/zabbix/zabbix_agentd.d/disk_status.sh

# / bin / sh device = 1 $ DİSK = 2 $ durumda $ DISK read.ops) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 4}' # // Disk okuma sayısı ;; read.merged) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 5}' # // Tamamlanan birleşik okuma sayısı ;; read.sectors) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 6}' # // Okunan sektör sayısı (bir sektör 512B'ye eşittir) ;; read.ms) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 7}' # // Disk okuması için milisaniye sayısı ;; write.ops) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 8}' # // Disk yazma sayısı ;; write.merged) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 9}' # // Yazma tamamlama sürelerini birleştir ;; write.sectors) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 10}' # // Yazma sektörlerinin sayısı (bir sektör 512B'ye eşittir) ;; write.ms) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 11}' # // disk yazma milisaniye ;; io.active) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 12}' # // G / Ç'nin mevcut ilerlemesi, ;; io.ms) / bin / cat / proc / diskstats | grep "\ b $ device \ b" | head -1 | awk '{print $ 13}' # // GÇ işlemleri için harcanan milisaniye sayısı ;; esac

3. Yetkilendirmeden sonra aracı hizmetini yeniden başlatın:

chown -R zabbix: zabbix / etc / zabbix / systemctl zabbix-agent'ı yeniden başlat

4. Sunucudaki verileri test edin ve alın

# zabbix_get -s sunucu IP'si -p 10050 -k disk.discovery # zabbix_get -s sunucu IP'si -p 10050 -k disk.status

Üçüncüsü, zabbix-sunucunun web tarafı çalışması

1. Bir şablon oluşturun

Yapılandırma - şablon - şablon oluştur

2. Otomatik keşif kurallarını yapılandırın

2.1, bir keşif kuralı oluşturun

Yapılandırma-Şablon-Keşif Kuralı Oluştur

2.2, izleme öğelerinin bir prototipini oluşturun

Otomatik keşif kuralında bir izleme prototipi oluşturmak için seçin.

Bunun, şablondaki öğe değil, şablonun otomatik keşif kuralındaki öğenin prototipi tarafından tanımlanan öğe olduğunu unutmayın. İkisi farklıdır. Öğenin prototipini tanımladığınızda, içindeki kuralları otomatik olarak keşfedeceksiniz ve ardından otomatik olarak İzleme öğesini ekleyin

Ad: {#DISK_NAME} I / 0 istek zamanı Anahtar değer: disk.status Birim: ms Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} I / 0 istekleri Anahtar değer: disk.status Birim: işlem / saniye Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME}, birleştirmenin kaç kez yazıldığı Anahtar değer: disk.status Birim: işlem / saniye Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} birleşik okuma sayısı tamamlandı Anahtar değer: disk.status Birim: işlem / saniye Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} disk yazma sektörü sayısı Anahtar değer: disk.status Birim: B / sn Özel çoklu kullan: 512 Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} Disk yazma süreleri Anahtar değer: disk.status Birim: işlem / saniye Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} Diske yazma milisaniye Anahtar değer: disk.status Birim: ms Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} disk okuma sektörü sayısı Anahtar değer: disk.status Birim: B / sn Özel çoklu kullan: 512 Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} disk okuma süreleri Anahtar değer: disk.status Birim: işlem / saniye Süreç: saniyedeki değişiklikler Ad: {#DISK_NAME} Disk okuma milisaniye Anahtar değer: disk.status Birim: ms Süreç: saniyedeki değişiklikler

2.3. İzleme öğelerinin son prototipi

3. Şablonla ilişkili ana bilgisayar

4. Test

4.1, izleme öğelerini görüntüle

Yapılandırma-ana bilgisayar-izleme öğesinde, tanımladığımız dinamik anahtarın üretildiğini ve geçersiz anahtarın süresi dolduğunda otomatik olarak silineceğini görebilirsiniz.

4.2. En son verileri görüntüleyin

En son verilerin izlenmesinde, verilerin elde edildiğini de görebilirsiniz.

4.3, grafikleri görüntüle

İzleme grafiklerinde, disk IO grafiklerini görüntüleyebilirsiniz

Faydalı bulursanız, lütfen iletmeye yardım edin! Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Koleksiyona değer bir Oracle gerçekleştirilmiş görünüm yeniden yapılandırma planını paylaşın
önceki
MySQL, veritabanı tablosunun frm dosyasını ve ibd dosyasını yanlışlıkla siler mi? Böyle geri yüklemeyi dene
Sonraki
Mysql deneme-Veritabanı tablosu .frm dosyasını yanlışlıkla sildim, ancak .ibd dosyasını nasıl geri yükleyebilirim?
Zabbix4.2'ye dayalı Linux sunucusu TCP bağlantı durumu izleme uygulaması
Dokuzdan dokuza çarpım tablosunun günlük Python uygulaması
Xiaomi uçmak için açık kaynaklı bir WEB grafik aracını paylaşın - SQL tek tuş optimizasyonunu destekleyin
Python günlük alıştırması nasıl kopyalanır
Bir MySQL deneyinden performance_schema / information_schema yetkilendirmesini görmek için
Xiaomi uçurumunu paylaşın SQL optimizasyonu ve yeniden yazma için tek tıkla optimizasyon aracı ile otomatikleştirilmiş araç
Python günlük mükemmel kare sayısı uygulaması
Birinci sınıf mı yoksa tembel koltuk mu? 9 numaralı robot kendi kendini dengeleyen elektrikli sandalye CES 2020'de tanıtıldı
Python günlük uygulama üç sayı sıralaması
Uygulama web sayfası URL'sinin durum izlemeyi zabbix4.2'ye göre yapılandırın
50.000 yuan'dan fazla Kia Huanchi, netizen: Volkswagen Polo ile karşılaştırıldığında, bu araba daha uygun fiyatlı
To Top