Instalação do Zabbix e template no Proxmox

apt update

apt install zfsutils-linux zabbix-agent -y

cd /etc/zabbix/zabbix_agentd.conf.d/

wget https://raw.githubusercontent.com/euerickandrade/monitorando-zfs/refs/heads/main/monitoramento-zfs.conf

chown root:zabbix monitoramento-zfs.conf && chmod 0440 monitoramento-zfs.conf

Edite o arquivo abaixo acrescentando o IP do Zabbix para envio das informações
Nas linhas Server=IP do ZABBIX e ServerActive=IP do ZABBIX

nano /etc/zabbix/zabbix_agentd.conf

systemctl restart zabbix-agent

#Descobrir o uso de Memória RAM feito pelo ARC do ZFS
UserParameter=system.zfs.mempct,awk '/^size/ { printf "%.2f\n", $3 / 1048576 }' < /proc/spl/kstat/zfs/arcstats

#Contar o Total de pools que existem no servidor
UserParameter=zfs-userparams.pool.totaldepools,/usr/sbin/zpool list -H | /usr/bin/wc -l

#Ver o Nome e Status do Disco
UserParameter=zfs-userparams.pool.disco.unavail,/usr/sbin/zpool status -v | grep -iE 'NAME|unavail'
UserParameter=zfs-userparams.pool.disco.online,/usr/sbin/zpool status -v | grep -iE 'NAME|online'

#Ver se existe alguma Pool OFFLINE, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.offline,/usr/sbin/zpool list -H -o health | grep -ci offline

#Ver se existe alguma Pool DEGRADADO, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.degradado,/usr/sbin/zpool list -H -o health | grep -ci degraded

#Ver se existe alguma Pool INDISPONÍVEL, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.indisponivel,/usr/sbin/zpool list -H -o health | grep -ci unavail

#Ver se existe alguma Pool FALHOU, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.falhou,/usr/sbin/zpool list -H -o health | grep -ci faulted

#Ver se existe alguma Pool REMOVIDA, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.removido,/usr/sbin/zpool list -H -o health | grep -ci removed

#Ver se existe alguma Pool SUSPENSA, se o valor for maior que zero você receberá um alerta
UserParameter=zfs-userparams.pool.suspenso,/usr/sbin/zpool list -H -o health | grep -ci suspended

#Exibe a Pool que estiver com >90% de uso

#Listado por Nome
UserParameter=zfs-userparams.pool.90deuso-nome,/usr/sbin/zpool list -H -o name,capacity | awk '{gsub(/%/, "", $2); if ($2+0 > 90) print $1}'

#Listado por quantidade
UserParameter=zfs-userparams.pool.90deuso-quant,/usr/sbin/zpool list -H -o name,capacity | awk '{gsub(/%/, "", $2); if ($2+0 > 90) print $1}' | wc -l

#Veja o total de Leitura/Escrita das Operações e Largura de Banda da Leitura/Escrita de cada Pool. Substitua o nome da Pool no campo "minhapool"
# Para Read Ops
UserParameter=zfs-userparams.pool.readops,/usr/sbin/zpool iostat -H 1 1 | awk '{if ($1 == "rpool" && $1 != "-" && NF > 5) print "Pool:", $1, "| Read Ops:", $4}'

# Para Write Ops
UserParameter=zfs-userparams.pool.writeops,/usr/sbin/zpool iostat -H 1 1 | awk '{if ($1 == "rpool" && $1 != "-" && NF > 5) print "Pool:", $1, "| Write Ops:", $5}'

# Para Read BW
UserParameter=zfs-userparams.pool.readbw,/usr/sbin/zpool iostat -H 1 1 | awk '{if ($1 == "rpool" && $1 != "-" && NF > 5) print "Pool:", $1, "| Read BW:", $6}'

# Para Write BW
UserParameter=zfs-userparams.pool.writebw,/usr/sbin/zpool iostat -H 1 1 | awk '{if ($1 == "rpool" && $1 != "-" && NF > 5) print "Pool:", $1, "| Write BW:", $7}'

Você pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *