Zabbix: Überwachung des Festplattenspeichers DELL MD36XX

Hallo allerseits!


Wir haben ein neues Set für den aktualisierten Linux-Administrator- Kurs geöffnet: dieselben neuen Lehrer, ein dynamisches Programm und interessante Diskussionen. Gleichzeitig teilen wir eine interessante Notiz aus dem realen Fall eines der Lehrer - Alexey Tsykunov .


Lass uns gehen.



Herausforderung


Sie müssen die Überwachung der Last auf den DELL MD36XX-Festplattenspeichern konfigurieren.
Es gibt ein Problem - Regale wissen nicht, wie Daten über snmp gesendet werden sollen. Ähnliche Probleme treten übrigens auch in Speichereinrichtungen von IBM, HP und anderen Anbietern auf.


Die Umwelt


Die Anbieter selbst stellen Client-Software zur Verfügung. Die sogenannten StorageManager. Einige von ihnen sind nur für Windows, wurden aber kürzlich unter Linux veröffentlicht. In meinem Fall wurde die Software unter Linux installiert und enthält das Konsolendienstprogramm SMcli. Mit SMcli können Sie Statistiken in eine Datei aufnehmen:


SMcli -n StorageName -S -quick -c "save storageArray performanceStats file=\\"/var/log/md36xx.stat\\";" 

Und so sieht es aus


 "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" ... 

Entscheidungsmöglichkeiten


Diese Informationen können analysiert und an zabbix gesendet werden. Es gibt verschiedene Optionen zum Senden


Zabbix-Agent und UserParameter, in denen Sie jeden der interessierenden Parameter malen können, zum Beispiel:


 UserParameter = dell.md.discovery, /path/script_discovery UserParameter = dell.md.totalio[*], /path/script2 $1 UserParameter = dell.md.currmb[*], /path/script3 $1 

Zabbix_sender, mit dem alle Parameter mit einem Skriptaufruf gleichzeitig gesendet werden können. Dies ist die Option, die ich gewählt habe.


Einstellungen in zabbix


In zabbix müssen Sie einen neuen Host konfigurieren und darin eine Erkennungsregel erstellen



Verschreiben Sie einen Filter darin:



Und fügen Sie Artikelprototypen hinzu


item_proto.png


Hier ist detaillierter, wie der Prototyp vorgeschrieben ist:



Senden an Zabbix


Daten können über zabbix_sender -i <Schlüsselwertdatei> gesendet werden


Dateiformat:


 HOST key value 

Und als Wert können Sie json für die Erkennung im folgenden Format übergeben:


 { 'data' :[ {'{#MDDEV}': 'drive1'}, {'{#MDDEV}': 'drive1'}, ] } 

Wobei {#MDDEV} das Makro ist, über das wir die Namen unserer Geräte / Laufwerke finden, von denen wir Statistiken erstellen werden.


Der Gesamtalgorithmus der Aktionen lautet wie folgt:


- Wir entfernen Statistiken über SMcli und speichern sie in einer Datei.
- die empfangene Datei analysieren;
- eine Datei für zabbix_sende r generieren.


All dies kann mit einem Bash-Skript implementiert werden. Aber es schien mir der einfachste Weg zu sein, ein Python-Skript zu implementieren, das dann einmal pro Minute von der Krone aufgerufen wird. Schwierigkeiten traten nur mit dem Sendemodul in zabbix auf. Es wurde unter 2.7 und 3.6 installiert, aber es begann nur unter 3.6.


Das Skript kann auf GitHub übernommen werden


Wie immer warten wir hier oder in einer offenen Lektion auf Fragen und Kommentare.

Source: https://habr.com/ru/post/de416787/


All Articles