O Objetivo deste artigo é demonstrar a forma de monitorar arquivos de configuração e receber alertas de informação de alterações do arquivo através da ferramenta Open Source de monitoramento Zabbix.
Teremos 3 Shell Script para a execução da atividade, sendo o primeiro para a coleta do arquivo de configuração no roteador através do protocolo FTP, para a descompactação deste arquivo e substituição do arquivo antigo pelo o recente. O Segundo Shell Script faz a comparação do arquivo de configuração considerado como operacional com o arquivo recente que será coletado periodicamente. O terceiro Shell Script tem o papel de escrever as mudanças em um arquivo HTML para que o analista possa fazer auditoria e também escreve os valores 1 e 0 no arquivo que será monitorado pelo o Zabbix sendo 0 o arquivo de configuração não teve alteração e 1 o arquivo de configuração foi alterado.
Realize as configurações necessárias no Roteador Huawei.
1. Acesse o dispositivo e crie um usuário para o servidor FTP possa coletar o backup.
Abaixo temos as linhas de configurações que devem ser inseridas no roteador para que seja ajustado a hora, habilitado o FTP server, criado o usuário FTP e suas respectivas permissões;
Precisamos que o roteador salve o arquivo de configuração periodicamente para que sempre tenhamos coletas atuais do arquivo, sendo assim vamos configurar como abaixo onde, ele vai salvar o arquivo a cada 10 minutos se nada ocorrer de mudanças e caso aja alguma mudança ele salvará após 5 minutos;
autosave interval on
autosave interval 10
autosave interval configuration 5
Criação do primeiro Shell Script
2.1 Ajuste a hora do servidor
Para que sempre tenhamos informações precisas precisamos ajustar a hora do nosso servidor que ira rodar os scripts. Executando o comando abaixo;
dpkg-reconfigure tzdata
2.2 O primeiro Shell Script terá o papel de coletar o arquivo de configuração no roteador. Vamos então criar um arquivo de texto em /usr/bin e vamos chama-lo de backuphuawei.
Abaixo criamos o arquivo de texto e em seguida colamos dentro dele o script.
Algumas Observações: Você deverá alterar as variáveis conforme o seu ambiente;
HOST= É o endereço IP do seu roteador/switch
USER= Usuário com permissão de acesso FTP (Criado no passo 1.1)
PASSWD= Senha do usuário com permissão de acesso FTP (Criado no passo 1.1)
FILE= Arquivo de configuração do roteador
Dê a permissão de execução para o script;
sudo chmod +x /usr/bin/backuphuawei
2.3 Instalação do Unzip
Como o arquivo coletado do rotador vem no formato .ZIP precisamos de uma ferramenta para descompactar. Então vamos instalar o Unzip com o comando abaixo;
sudo chmod +x /usr/bin/backuphuawei
Criação do diretório
3.1 Criação do diretório onde ficará armazenados os dados deste dispositivo
Precisamos de um diretório para o armazenamento destas informações, então vamos cria-lo no seguinte caminho /home/ubuntu/diff/huawei. Podemos usar os comandos a baixo;
Agora que temos o diretório onde vamos salvar todas as informações, vamos então executar o script para já termos em nossa base local o primeiro arquivo de configuração do roteador. Execute o comando abaixo;
backuphuawei
Salvar o arquivo de configuração operacional
4.1 Salvando o primeiro arquivo de configuração
Agora que temos o primeiro arquivo de configuração coletado, vamos fazer uma cópia dele que sabemos que está operacional no dispositivo colocando o nome operacional.cfg, para então podermos comparar com os novos arquivos que vão chegar.
Agora temos o arquivo de configuração considerado como operacional salvo, vamos para a comparação e o monitoramento.
Comparação de arquivos de configuração
5.1 Realizando a comparação dos arquivos
Agora vamos criar um script para fazer a comparação do arquivo salvo com o arquivo que é coletado a cada 5 minutos. Se houver alguma diferença entre eles, então será escrito a diferença em um arquivo chamado **resultado.txt** e também será escrito o valor 1 no arquivo de sitarqconfig.txt (que será usado para monitorar se houve alteração na configuração). Executando o comando a baixo e colando o script no arquivo criado;
Para que possamos ver as alterações realizadas no arquivo HTML, vamos precisar de um servidor web, para isso vamos instalar o apache2 com o comando abaixo;
sudo apt install apache2 -y
6.2 Criação arquivo para salvar as alterações
Agora vamos criar um arquivo HTML em /var/www/html/ para salvarmos as modificações feitas no arquivo de configuração. Execute os comandos abaixo;
sudo -s
cd /var/www/html/
> huawei
chmod 777 huawei
Geração de dados
7.1 Script geração de dados
Agora vamos criar o ultimo script que fará a geração de informações a serem monitoradas e gerará os dados alterados para o arquivo HTML. Execute o comando abaixo;
sudo nano /usr/bin/comparaconfighuawei
Adicione o seguinte script alterando as variáveis de caminhos de acordo com o seu ambiente;
Precisamos que o script seja executado periodicamente para mantermos sempre os dados atualizados. Com o serviço cron vamos adicionar uma regra na crontab para executar o nosso script a cada 3 minutos (Escolha o tempo que melhor se adequa ao seu ambiente). Execute o comando abaixo;
crontab -e
Adicione a seguinte linha no arquivo da crontab;
*/3 * * * * /usr/bin/backuphuawei
Reinicie o serviço da cron;
service cron restart
Configuração Zabbix
9.1 Para monitorar o arquivo de configuração precisamos adicionar um item ao host que contém este arquivo, neste exemplo estou usando o próprio Zabbix Server. Para fazer a configuração de item vamos navegar no menu do Zabbix na seguinte ordem;
Então vamos selecionar a o tipo como Zabbix agent e a chave vamos colocar o caminho do nosso arquivo atual.txt vfs.file.contents [/home/ubuntu/diff/huawei/atual.txt,] e vamos colocar o tempo de coleta para a cada 5 segundos.
9.2 Criação da Trigger
Para gerarmos o evento e notificação caso aja alteração do arquivo de configuração devemos configurar uma trigger para este item, na aba trigger clicamos em criar trigger.
Colocamos o nome do evento que será mostrado, a severidade e a expressão de problema que será last(/Zabbixserver/vfs.file.contents[/home/ubuntu/diff/huawei/atual.txt,])=1 ;ou seja será gerado o evento quando o valor do arquivo for igual a 1, e na recuperação iremos usar a expressão last(/Zabbix server/vfs.file.contents[/home/ubuntu/diff/huawei/atual.txt,])=0 ficará da seguinte forma;
Resultado
10.1 Geração de incidente
Agora que já temos tudo configurado podemos simplesmente alterar alguma configuração no nosso roteador e será gerado o evento e o arquivo HTML com as modificações realizadas no arquivo;
Acesso Web
10.2 Recuperação do incidente
Após o analista analisar o arquivo HTML via Web e confirmar que se trata de uma alteração válida ele poderá executar o seguinte comando no servidor para colocar o ultimo arquivo como sendo o operacional, recuperando assim o incidente;