Para aqueles (Renan) interessados em saber qual solução eu criei.
Eu tenho usado um script personalizado para recuperar a memória (Usado / Total) e convertê-lo em uma porcentagem.
#!/bin/bash
USED='free -m | grep "buffers/cache" | awk '{print $3}''
TOTAL='free -m | grep "Mem:" | awk '{print $2}''
VALUE='bc -l <<< "scale=2; (${USED}/${TOTAL})*100" | sed 's/\.[0-9][0-9]//''
exit $VALUE
Eu, então, uso um contador SNMP personalizado para executar esse script e retornar o valor. No arquivo snmpd.conf, é assim:
exec check_mem /usr/share/snmp/check_mem.sh
Cada script exec retorna alguns OIDs com coisas como o nome do script, o status de saída, o valor de retorno e assim por diante. A parte desafortunada é que o valor de retorno é uma string e não um número inteiro, portanto, o WUG tem alguns problemas ao fazer o gráfico (ainda faz um gráfico, mas os gráficos em tempo real não funcionam). Portanto, nesse caso em que sabemos que o valor sempre estará abaixo de 100, eu o configurei para o status de saída e, em seguida, pesquisei esse OID.
Para monitorá-lo no WUG, crie um monitor de desempenho SNMP personalizado e monitore o OID do status de saída desse script exec. Você pode criar alertas personalizados e quais não.
Estamos usando há algum tempo e funciona muito bem. Espero que ajude!