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 ~
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 51952363852Açı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.
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ı ;; esac3. Yetkilendirmeden sonra aracı hizmetini yeniden başlatın:
chown -R zabbix: zabbix / etc / zabbix / systemctl zabbix-agent'ı yeniden başlat4. 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.status1. 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şiklikler2.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 ~