Monitorando pelo Zabbix Atualizações Debian
Eu estou a muitos anos esperando por uma solução da propria Zabbix por uma forma simples de monitorar quando um servidor Debian possui atualizações disponíveis. Esse processo serve para monitorar todas as distribuições derivadas do Debian como a Ubuntu.
Hoje cheguei à conclusão de que eles não vão disponibilizar uma solução dentro do proprio zabbix, até porque essa solução de alguma forma exigiria dar mais permissões para o agente do zabbix e isso tornaria a aplicação mais suscetível a ataques pois poderia estar rodando com permissões de root, para que ela pudesse rodar o apt-get por exemplo.
Como eles não vão disponibilizar essa solução vou compartilhar a solução que eu utilizo a muitos anos e que na minha opinião é uma boa solução, tendo em vista que a maiorias das soluções que tem disponíveis na internet não são melhores que essa que eu já utilizo.
Cron-apt
A minha solução utiliza o cron-apt que é um pacote disponível no Debian para rodar no cron diariamente uma verificação por atualizações via apt.
O cron-apt quando instalado cria o seu diretório /etc/cron-apt com todas as configurações necessárias para ser executado durante a madrugada para procurar por atualizações e fazer o download delas para o servidor.
A configuração padrão do cron-apt ele não atualiza nada automaticamente, ele apenas faz o download dos pacotes e deixa disponível para o Sysadmin instalar quando achar mais conveniente.
A unica alteração na configuração padrão que eu preciso fazer no cron-apt é editar o arquivo /etc/cron-apt/config para configurar a geração dos logs da sua execução no arquivo /var/log/syslog pois sera esse arquivo que o zabbix vai monitorar para informar quando tem atualizações disponíveis para o servidor.
1 2 3 |
SYSLOGON="always" RUNSLEEP=3600 DEBUG="always" |
Script para configurar o servidor monitorado
Para facilitar as configurações desse monitoramento no servidor eu fiz um shell script que instala e configura esse arquivo. Esse script também coloca o usuário Zabbix no grupo adm que é o grupo que tem acesso aos logs do servidor, sem isso o agente do zabbix não consegue ler o arquivo /var/log/syslog.
1 2 3 4 5 6 7 8 |
#!/bin/bash apt-get update apt-get install cron-apt echo 'SYSLOGON="always"' >> /etc/cron-apt/config echo 'RUNSLEEP=3600' >> /etc/cron-apt/config echo 'DEBUG="always"' >> /etc/cron-apt/config adduser zabbix adm systemctl restart zabbix-agent2.service |
O template para ser importado no zabbix para fazer o monitoramento da máquina eu não vou colocar aqui no post, pois ficaria muito grande.
Estou disponibilizando-o no repositório que eu criei para armazenar esse projeto, lá tem dos arquivos que eu apresentei aqui.
Esse template que estou disponibilizando é para o Zabbix Server versão 6.4, mas certamente ele vai funcionar em outras versões de Zabbix Server
Repositório do Projeto no Gitlab
O repositório do projeto é esse aqui:
https://gitlab.com/publicos-adonai/zabbix-monitor-debian-updates
Entre e baixe o projeto para máquina que vai ser monitorada e execute o script configure_server.sh para que ele baixe e instale os pacotes que são necessários para que o monitoramento funcione.
Se este post foi util peço que deixe um comentário aqui no site para que eu saiba que tem gente usando a minha solução.