Como monitorar o ZFS com SNMP no FreeBSD?

2

Gostaria de monitorá-los com o SNMP:

zpool iostat -v 1

Por drive e soma.

zpool status

Esfregando como 1 e não esfregando como 0.

zpool status -x

Monitore $? (valor de retorno). Enviar trap quando o valor não for 0.

zfs list

Usado & espaço livre.

Que tipo de scripts são necessários?

    
por raspi 23.04.2011 / 22:46

2 respostas

2

Supondo que você esteja usando o net-snmpd, provavelmente precisará escrever um script por valor. Em seguida, usando as técnicas descritas na página do manual snmpd.conf, seção 'estendendo a funcionalidade do agente', adicione referências desses scripts ao seu snmpd.conf.

Por exemplo, /root/bin/myzstatus :

#!/bin/sh
/sbin/zpool status -x $1

e no snmpd.conf:

extend status /root/bin/myzstatus tank

Com o zfs / zpool, você é abençoado já que a maioria dos subcomandos tem opções para a saída da máquina, o que facilita o grok.

    
por 14.05.2011 / 23:20
0

Eu não sei a resposta para o zpool status, scrub, etc. mas para o espaço eu descobri algo.

no /etc/snmpd.config, encontrei isto e descomentei-o e agora tenho valores de armazenamento:

#
# Host resources module
#  This requires the mibII module.
#
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"

E aqui está uma saída:

# snmpwalk -v1 -c public $freebsdzfsmachine | grep -E "Storage.*\.22 " | less
HOST-RESOURCES-MIB::hrStorageIndex.22 = INTEGER: 22
HOST-RESOURCES-MIB::hrStorageType.22 = OID: HOST-RESOURCES-TYPES::hrFSOther
HOST-RESOURCES-MIB::hrStorageDescr.22 = STRING: /tank, type: zfs, dev: tank
HOST-RESOURCES-MIB::hrStorageAllocationUnits.22 = INTEGER: 512 Bytes
HOST-RESOURCES-MIB::hrStorageSize.22 = INTEGER: 2147483647
HOST-RESOURCES-MIB::hrStorageUsed.22 = INTEGER: 1030063349
HOST-RESOURCES-MIB::hrStorageAllocationFailures.22 = Counter32: 0
HOST-RESOURCES-MIB::hrFSStorageIndex.22 = INTEGER: 24

Infelizmente, a saída do tamanho (1024 GiB) está errada. O tamanho do armazenamento de acordo com o df é 20 TiB e é usado 491 GiB, mas por algum motivo, o tamanho aqui é coincidentemente exatamente 2 ^ 31-1 * 512 bytes. (onde 2 ^ 31-1 é o valor máximo de um inteiro de 32 bits assinado). Usado está correto embora: 1030063349 * 512/1024/1024/1024 = 491.

Felizmente, funciona bem para o meu disco raiz de 80 GB. Eu acho que é limitado a 1 TiB no FreeBSD. Essa mesma montagem vista usando o SNMP em um cliente Linux NFS mostra o valor correto e hrStorageAllocationUnits é "INTEGER: 32768 Bytes"

    
por 02.10.2012 / 16:49