Zabbix: monitoreo del almacenamiento en disco DELL MD36XX

Hola a todos!


Abrimos un nuevo conjunto para el curso actualizado de Administrador de Linux : los mismos nuevos maestros, un programa dinámico y discusiones interesantes. Bueno, al mismo tiempo, compartimos una nota interesante del caso real de uno de los maestros: Alexey Tsykunov .


Vamos



Desafío


Debe configurar la supervisión de la carga en los almacenamientos de disco DELL MD36XX.
Hay un problema: los estantes no saben cómo enviar datos a través de snmp. Por cierto, también se encuentran problemas similares en las instalaciones de almacenamiento de IBM, HP y otros proveedores.


El medio ambiente


Los proveedores mismos proporcionan software de cliente. Los llamados StorageManager's. Algunos de ellos son solo para Windows, pero recientemente aparecieron bajo Linux. En mi caso, el software se instaló en Linux e incluye la utilidad de consola SMcli. Usando SMcli, puede llevar estadísticas a un archivo:


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

Y se ve así


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

Opciones de decisión


Esta información se puede analizar y enviar a zabbix, y hay varias opciones para enviar


Agente Zabbix y UserParameter, en el que puede pintar cada uno de los parámetros de interés, por ejemplo:


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

Zabbix_sender, que hace posible enviar todos los parámetros a la vez con una llamada de script. Esta es la opción que elegí.


Configuraciones en zabbix


En zabbix, debe configurar un nuevo host y crear una regla de descubrimiento en él



Prescribe un filtro en él:



Y agregue prototipos de elementos


item_proto.png


Aquí se detalla más cómo se prescribe el prototipo:



Enviando a Zabbix


Los datos se pueden enviar a través de zabbix_sender -i <key_value_file>


Formato de archivo:


 HOST key value 

Y como valor, puede pasar json para descubrimiento en el formato:


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

Donde {#MDDEV} es la macro a través de la cual encontramos los nombres de nuestros dispositivos / unidades de los que vamos a tomar estadísticas.


El algoritmo total de acciones es el siguiente:


- eliminamos estadísticas a través de SMcli , guardamos en un archivo;
- analizar el archivo recibido;
- generar un archivo para zabbix_sende r.


Todo esto se puede implementar con un script bash . Pero me pareció la forma más fácil de implementar un script de Python, que luego se llamaría desde la corona una vez por minuto. Las dificultades surgieron solo con el módulo de envío en zabbix. Se instaló bajo 2.7 y 3.6, pero comenzó solo bajo 3.6.


El script se puede tomar en GitHub


Como siempre, estamos esperando preguntas y comentarios aquí o en una lección abierta .

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


All Articles