Zabbix é um programa de linux para monitorização de equipamentos de rede, servidores, workstations entre outros. Como tenho um servidor de email com Surgemail, faz todo o sentido que também possa monitorizar, neste caso quero saber quantas mensagens tenho na queue. Assim posso configurar o Zabbix para quando a queue for maior do que um determinado valor para me avisar.

Como o Zabbix não corre com root com direitos de administração, tenho que dizer ao linux que o Zabbix pode correr o comando do Surgemail com direitos de administração tal como se fosse root.

Para isso tenho que correr o comando

visudo

Depois acrescento no final do ficheiro as seguintes linhas:

Cmnd_Alias ZABBIX_CMD = /usr/bin/tellmail, /bin/echo
zabbix ALL=(ALL) NOPASSWD: ZABBIX_CMD

Com esta alteração vou dizer ao linux que o user zabbix pode correr o comando com direitos de root.

Agora o comando para controlar a queue do surgemail é o seguinte:

sudo -u root tellmail queue | egrep "^[0-9]" | wc -l

Com este comando temos o valor actual da queue do Surgemail. Para adicionarmos ao agente do Zabbix só temos que adicionar no ficheiro de configuração do agente (no meu caso é o ficheiro

/etc/zabbix/zabbix_agentd.conf) a linha:

UserParameter=surgemail.queue,sudo -u root tellmail queue | egrep "^[0-9]" | wc -l

Assim sempre que o zabbix pedir a informação de surgemail.queue[] vai receber o valor actual da queue do Surgemail.