Monitoramento Arquivo de Configuração

  • 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;
				
					clock datetime HH:MM:SS YYYY-MM-DD
clock timezone SP minus 3
system-view
[HUAWEI-TESTE]ftp server enable
[HUAWEI-TESTE]aaa
[HUAWEI-TESTE-aaa]
[HUAWEI-TESTE-aaa]local-user ubuntu password cipher ubuntu privilege level 15
[HUAWEI-TESTE-aaa]local-user ubuntu service-type ftp
[HUAWEI-TESTE-aaa]local-user ubuntu ftp-directory flash:/
				
			
1.2 Configure o autosave
  • 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;
				
					<HUAWEI-TESTE>autosave interval on
<HUAWEI-TESTE>autosave interval 10
<HUAWEI-TESTE>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.
				
					sudo nano /usr/bin/backuphuawei
				
			
				
					#!/bin/bash

HOST=192.168.2.70
USER='ubuntu'
PASSWD='ubuntu'
FILE='vrpcfg.zip'

cd /home/ubuntu/diff/huawei/
ftp -n $HOST <<END-SCRIPT
quote user $USER
quote PASS $PASSWD
#cd /home/ubuntu/diff/huawei/
binary
get $FILE
quit
END-SCRIPT

sleep 2
echo "          Removendo arquivo atual......"
sleep 3
rm -rf /home/ubuntu/diff/huawei/vrpcfg.cfg
echo "          Arquivo Removido......"
sleep 5
echo "          Descompactando Arquivo Novo......"
unzip /home/ubuntu/diff/huawei/vrpcfg.zip
sleep 3
echo "          Removendo arquivo .ZIP......"
rm /home/ubuntu/diff/huawei/vrpcfg.zip
echo "          Pronto ! ! !"
diffhuawei
				
			

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;
				
					sudo mkdir /home/ubuntu/diff
sudo mkdir /home/ubuntu/diff/huawei
chmod 777 /home/ubuntu/diff/huawei/
				
			
3.2 Primeira Execução do Script
  • 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.
				
					cp /home/ubuntu/diff/huawei/vrpcfg.cfg /home/ubuntu/diff/huawei/operacional.cfg
				
			
  • 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;
				
					sudo nano /usr/bin/diffhuawei
				
			
				
					#!/bin/bash

diff /home/ubuntu/diff/huawei/operacional.cfg /home/ubuntu/diff/huawei/vrpcfg.cfg > /home/ubuntu/diff/huawei/resultado.txt

comparaconfighuawei
				
			
				
					sudo chmod +x /usr/bin/diffhuawei
				
			

Servidor Web

6.1 Instalação do servidor apache
  • 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;
				
					#!/bin/bash

resultado=`cat /home/ubuntu/diff/huawei/resultado.txt`
if [ -z "$resultado" ];
then
        echo "0" > /home/ubuntu/diff/huawei/atual.txt
else
        echo "1" > /home/ubuntu/diff/huawei/atual.txt
        echo >> /var/www/html/huawei
        echo "################################################### " >> /var/www/html/huawei
        echo "             `date +%d/%m/%Y" - "%H:%M:%S`          " >> /var/www/html/huawei
        echo "          ARQUIVO DE CONFIG ALTERADO                " >> /var/www/html/huawei
        echo "################################################### " >> /var/www/html/huawei
        cat /home/ubuntu/diff/huawei/resultado.txt >> /var/www/html/huawei
        echo "____________________________________________________" >> /var/www/html/huawei
fi
				
			
  • Dê a permissão para o script
				
					sudo chmod +x /usr/bin/comparaconfighuawei
				
			

Agendamento

8.1 Agendamento da atividade dos scripts
  • 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;

Configuration > Host > Selecione o Host > Item > Criar Item

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;
				
					cp /home/ubuntu/diff/huawei/vrpcfg.cfg /home/ubuntu/diff/huawei/operacional.cfg
				
			
  • Incidente resolvido;

Vídeo Tutorial

Alexsander Rosa

Analista de Redes e Infraestrutura