Halo semuanya!
Kami membuka set baru untuk kursus Administrator Linux yang diperbarui: semua guru baru yang sama, program dinamis, dan diskusi yang menarik. Nah, pada saat yang sama, kami berbagi catatan menarik dari kasus nyata salah satu guru - Alexey Tsykunov .
Ayo pergi.

Tantangan
Anda harus mengonfigurasi pemantauan beban pada penyimpanan disk DELL MD36XX.
Ada masalah - rak tidak tahu cara mengirim data melalui snmp. Omong-omong, masalah serupa juga ditemukan di fasilitas penyimpanan IBM, HP, dan vendor lainnya.
Lingkungan
Vendor sendiri menyediakan perangkat lunak klien. Yang disebut StorageManager. Beberapa dari mereka hanya untuk Windows, tetapi baru-baru ini muncul di Linux. Dalam kasus saya, perangkat lunak diinstal di Linux dan termasuk utilitas konsol SMcli. Menggunakan SMcli, Anda dapat mengambil statistik ke file:
SMcli -n StorageName -S -quick -c "save storageArray performanceStats file=\\"/var/log/md36xx.stat\\";"
Dan sepertinya ini
"Performance Monitor Statistics for Storage Array: StorageName - Date/Time: 1/17/18 9:37:04 PM - Polling interval in seconds: 5" "Objects","Total IOs","Read %","Primary Read Cache Hit %","Primary Write Cache Hit %","SSD Read Cache Hit %","Current MBs/sec","Maximum MBs/sec","Current IOs/sec","Ma ximum IOs/sec","Minimum IOs/sec","Average IOs/sec","Minimum MBs/sec","Average MBs/sec","Current IO Latency","Maximum IO Latency","Minimum IO Latency","Average IO Late ncy" "Capture Iteration: 1","","","","","","","","","","","","","","","","","" "Date/Time: 1/17/18 9:37:05 PM","","","","","","","","","","","","","","","","","" "Storage Array StorageName ","6396.0","52.0","64.6","100.0","0.0","31.2","31.2","1279.0","1279.0","1279.0","1279.0","31.2","31.2","-","-","-","-" "RAID Controller Module 0","4043.0","47.3","55.3","100.0","0.0","27.3","27.3","808.0","808.0","808.0","808.0","27.3","27.3","-","-","-","-" "RAID Controller Module 1","2353.0","60.0","77.3","100.0","0.0","3.9","3.9","470.0","470.0","470.0","470.0","3.9","3.9","-","-","-","-" "Disk Pool Disk_Pool_1","5181.0","59.6","69.3","100.0","0.0","29.1","29.1","1036.0","1036.0","1036.0","1036.0","29.1","29.1","-","-","-","-" "Disk Pool Disk_Pool_vps","1215.0","19.4","3.8","100.0","0.0","2.1","2.1","243.0","243.0","243.0","243.0","2.1","2.1","-","-","-","-" "Virtual Disk VPS1","645.0","1.6","30.0","100.0","0.0","0.9","0.9","129.0","129.0","129.0","129.0","0.9","0.9","1.7","1.7","1.7","1.7" ...
Opsi keputusan
Informasi ini dapat diuraikan dan dikirim ke zabbix, dan ada beberapa opsi untuk mengirim
Zabbix agent dan UserParameter, di mana Anda dapat mengecat setiap parameter yang diminati, misalnya:
UserParameter = dell.md.discovery, /path/script_discovery UserParameter = dell.md.totalio[*], /path/script2 $1 UserParameter = dell.md.currmb[*], /path/script3 $1
Zabbix_sender, yang memungkinkan untuk mengirim semua parameter sekaligus dengan panggilan skrip. Ini adalah opsi yang saya pilih.
Pengaturan di zabbix
Di zabbix, Anda perlu mengonfigurasi host baru dan membuat aturan temukan di dalamnya

Resep filter di dalamnya:

Dan tambahkan prototipe item

Berikut ini lebih rinci bagaimana prototipe ditentukan:

Mengirim ke Zabbix
Data dapat dikirim melalui zabbix_sender -i <key_value_file>
Format file:
HOST key value
Dan sebagai nilainya, Anda dapat memberikan json untuk penemuan dalam format:
{ 'data' :[ {'{#MDDEV}': 'drive1'}, {'{#MDDEV}': 'drive1'}, ] }
Di mana {#MDDEV} adalah makro di mana kita menemukan nama-nama perangkat / drive kita dari mana kita akan mengambil statistik.
Total algoritme tindakan adalah sebagai berikut:
- kami menghapus statistik melalui SMcli , simpan ke file;
- parsing file yang diterima;
- menghasilkan file untuk zabbix_sende r.
Semua ini dapat diimplementasikan dengan skrip bash . Tapi menurut saya cara termudah untuk mengimplementasikan satu skrip Python, yang kemudian akan dipanggil dari mahkota sekali setiap menit. Kesulitan muncul hanya dengan modul pengiriman dalam zabbix. Itu diinstal di bawah 2,7 dan 3,6, tetapi mulai hanya di bawah 3,6.
Skrip dapat diambil di GitHub
Seperti biasa, kami menunggu pertanyaan dan komentar di sini atau dalam pelajaran terbuka .