Zabbix: monitorando o armazenamento em disco DELL MD36XX

Olá pessoal!


Abrimos um novo conjunto para o curso Linux Administrator atualizado: os mesmos novos professores, um programa dinâmico e discussões interessantes. Bem, ao mesmo tempo, compartilhamos uma nota interessante do caso real de um dos professores - Alexey Tsykunov .


Vamos lá



Desafio


Você deve configurar o monitoramento da carga nos armazenamentos de disco do DELL MD36XX.
Há um problema - as prateleiras não sabem como enviar dados via snmp. A propósito, problemas semelhantes também são encontrados em instalações de armazenamento da IBM, HP e outros fornecedores.


O meio ambiente


Os próprios fornecedores fornecem software cliente. Os chamados StorageManager. Alguns deles são apenas para Windows, mas apareceram recentemente no Linux. No meu caso, o software foi instalado no Linux e inclui o utilitário de console SMcli. Usando o SMcli, você pode levar estatísticas para um arquivo:


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

E parece que isso


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

Opções de decisão


Esta informação pode ser analisada e enviada ao zabbix, e existem várias opções para enviar


Agente Zabbix e UserParameter, nos quais você pode pintar cada um dos parâmetros de interesse, por exemplo:


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

Zabbix_sender, que possibilita enviar todos os parâmetros de uma só vez com uma chamada de script. Esta é a opção que eu escolhi.


Configurações no zabbix


No zabbix, você precisa configurar um novo host e criar uma regra de descoberta nele



Prescreva um filtro nele:



E adicione protótipos de itens


item_proto.png


Aqui está mais detalhado como o protótipo é prescrito:



Enviando para o Zabbix


Os dados podem ser enviados via zabbix_sender -i <key_value_file>


Formato de arquivo:


 HOST key value 

E como valor, você pode passar o json para descoberta no formato:


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

Onde {#MDDEV} é a macro através da qual encontramos os nomes de nossos dispositivos / unidades das quais vamos obter estatísticas.


O algoritmo total de ações é o seguinte:


- removemos as estatísticas pelo SMcli , salvamos em um arquivo;
- analisar o arquivo recebido;
- gere um arquivo para zabbix_sende r.


Tudo isso pode ser implementado com um script bash . Mas me pareceu a maneira mais fácil de implementar um script Python, que seria chamado da coroa uma vez por minuto. As dificuldades surgiram apenas com o módulo de envio no zabbix. Foi instalado nas versões 2.7 e 3.6, mas foi iniciado apenas na versão 3.6.


O script pode ser obtido no GitHub


Como sempre, estamos aguardando perguntas e comentários aqui ou em uma lição aberta .

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


All Articles