IFPR-Labtelecom: Servidores Linux

No dia 04/11/2017 o Labtelecom recebeu 9 servidores de rede que seriam descartados, conforme a primeira foto abaixo. Foi iniciado um projeto de recuperação e os servidores de rede foram nomeados conforme o seguinte critério: nomes femininos que terminam com "a" em ordem alfabética: Amanda, Bianca, Carolina, Daniela, Elisa, Fiorela, Gabriela e Helena.

Após limpeza, verificação de disco rígido, memórias, fontes, etc foram recuperados 5 servidores de rede (Amanda, Carolina, Elisa, Gabriela e Helena) e atualmente estão alocados em racks apropriados conforme mostrado no foto abaixo rodando o sistema operacional GNU/Linux com a distribuição Debian.

Atualmente, os 5 servidores de rede existentes utilizam a distribuição Debian e integram o cluster NFS com diversos funções (servidor DHCP, FTP, multimedia DLNA, repositório local, Fail-over, segurança IP, IoT e etc). O resultado desse processo de recuperaçao contribuiu diretamente para os projetos listados abaixo.

Cluster NFS (CNFS) - Cluster com sistema de compartilhamento de arquivos em rede NFS

Serviço de monitoramento em nuvem (CMS)

Serviço de monitoramento em nuvem (CMS) - Conexões de Rede

Serviço de monitoramento em nuvem (CMS) - Discos de armazenamento

Serviço de monitoramento em nuvem (CMS) - Taxa de transmissão

Serviço de monitoramento em nuvem (CMS) - Temperatura

Serviço de monitoramento em nuvem (CMS) - Uptime

Amanda Linux Server (ALS):

Com o sistema operacional Debian 9 de 64 bits executa as principais funções da rede do laboratório como repositório local (192.168.1.3 acesso somente pelo laboratório) com materiais de aula. Logo, abaixo são apresentadas algumas aplicações com software livre que rodam no servidor.

Crontab:

O dispositivo utiliza o Crontab para realizar a execução períodica de scripts de monitoramento conforme apresentado no arquivo abaixo obtido com o comando crontab -e

#RENOVA DNS A CADA 1 HORA

0 * * * * echo domain labtelecom > /etc/resolv.conf; echo nameserver 192.168.1.244 >> /etc/resolv.conf

#COLETA DADOS DE REDE A CADA 5 MINUTOS

*/5 * * * * cd /home/gustavo/Dropbox/servidores/; ./script_amanda5.sh

#MANDA LOG PARA O DROPBOX A CADA 20 MINUTOS

*/20 * * * * cd /home/gustavo/Dropbox/servidores/; ./script_amanda.sh

#GDRIVE FAILSAFEPI

*/21 * * * * cd /home/gustavo/Dropbox/; ./gdrive-linux-x64 update 1gKwwhWHXb112Qt10t8UBmTEiWTHLy4E-T Apps/FailsafePi/log_pi.txt;

#GERA ARQUIVO DA CAMERA COM FFMPEG AS 23:01HRS

01 23 * * * cd /home/gustavo/Dropbox/servidores/; ./script_amanda_23_55.sh

Crontab - script_amanda.sh: Esse é o principal script do servidor sendo executado a cada 20 como usuário root. Logo abaixo são apresentados os blocos de código do arquivo inteiro com uma breve explicação.

1) Logs: envia arquivo de log para o Dropbox com data, uptime e resutltado de pings para alguns dispositivos

#!/bin/bash

#LOG *****************************************************************************************

date > /home/gustavo/Dropbox/log_debian.txt;

uptime >> /home/gustavo/Dropbox/log_debian.txt;

#HARD DISK -----------------------------------------------------------------------------------

((df -h | grep md0); (df -h | grep md1); (df -h | grep md2);) >> /home/gustavo/Dropbox/log_debian.txt;

#PING TO CAM 305

(ping 192.168.1.1 -q -c 3) >> /home/gustavo/Dropbox/log_debian.txt;

#PING TO DNS

(ping 192.168.1.244 -q -c 3) >> /home/gustavo/Dropbox/log_debian.txt;

#PING TO ARD_A

(ping 192.168.1.250 -q -c 3) >> /home/gustavo/Dropbox/log_debian.txt;

#PING TO ARD_B

(ping 192.168.1.251 -q -c 3) >> /home/gustavo/Dropbox/log_debian.txt;

#PING TO ARD_C

(ping 192.168.1.252 -q -c 3) >> /home/gustavo/Dropbox/log_debian.txt;

2) Câmeras: realiza back up do servidor FTP e a captura de imagens de 4 câmeras IPs para enviar para o Dropbox:

#COPY FTP TO CAM 3D (3D PRINTER) -------------------------------------------------------------

cp -r /home/telecom/CAM_3D/ /var/www/html/area51/; rm -r /home/telecom/CAM_3D;

chmod 777 -R /var/www/html/area51/CAM_3D/;

#LOG CAMERA CAM_305 --------------------------------------------------------------------------

cd /var/www/html/area51/CAM_305/; cp $(ls -t | head -n1) /home/gustavo/Dropbox/log_telecom.jpg;

#LOG CAM TABLET 303 --------------------------------------------------------------------------

ffmpeg -i http://USUÁRIO:SENHA@192.168.1.22:8080/video -f image2 -s 640x480 -r 1 -vframes 2 /home/gustavo/Dropbox/log_ifpr_tablet_%03d.jpg;

#LOG FLASHFORGE CAM --------------------------------------------------------------------------

ffmpeg -i http://192.168.1.2:8080/video -f image2 -s 640x480 -r 1 -vframes 2 /home/gustavo/Dropbox/log_flashforge_%03d.jpg;

#LOG CAM PROTOTIPADORA, TAKE A SNAPSHOT AND SEND TO DROPBOX ----------------------------------

rm /home/gustavo/Dropbox/log_prototipadora.jpg;

ffmpeg -i http://USUARIO:SENHA@192.168.7.251:8080/stream/getvideo -f image2 -r 1 -vframes 1 /home/gustavo/Dropbox/log_prototipadora.jpg;

3) GDrive: realizado o envio de alguns arquivos para o Google Drive.

#UPDATE FOTO CAM305 PARA 00_GDRIVE_LOGS

cd /home/gustavo/Dropbox;./gdrive-linux-x64 update 1AbPbUzs3u5j_bnHmm40ROEy5iU-GIU5S log_telecom.jpg; sleep 2;

#UPDATE LOG_DEBIAN PARA 00_GDRIVE_LOGS

cd /home/gustavo/Dropbox;./gdrive-linux-x64 update 1A51UVpF3DEJpqAzdS4rarI4Zv_Yw2Ae log_debian.txt;

#UPDATE FOTO FLASHFORGE PARA 00_GDRIVE_LOGS

cd /home/gustavo/Dropbox/; ./gdrive-linux-x64 update 1A6Ue2Ry4leUcfR4qaxks59-vnEdJ5Xbq log_flashforge_001.jpg

4) Checagem de gateway: o Labtelecom possui dois gateways com a Internet, o principal é um Firewall ASA-5512 e o secundário um roteador 1921. Nesse caso, o servidor verifica se o gateway principal está ligado se não houver resposta a rota é redirecionada para o secundário com IP 192.168.1.254/24.

ping 192.168.1.253 -c 1 | grep packets > acc_check_gw.txt; ACC1=$( awk '{print $4} ' acc_check_gw.txt); if [ "$ACC1" -eq 0 ] ; then ip route del default via 192.168.1.253 dev enp6s7; ip route add default via 192.168.1.254 dev enp6s7; echo "ALARME ASA5512, PERDA DE CONECTIVIDADE" > /home/gustavo/Dropbox/log_debian.txt ; else ip route del default via 192.168.1.254 dev enp6s7; ip route add default via 192.168.1.253 dev enp6s7; echo "ASA5512-X CONECTADO">> /home/gustavo/Dropbox/log_debian.txt; fi;

FFmpeg: com o software ffmpeg é realizada a compactação das imagens das câmeras IP em formato mp4

cd /var/www/html/area51/CAM_305/; find . -size 0 -delete; ffmpeg -pattern_type glob -i sala305'*'.jpeg -vcodec libx264 /home/gustavo/Dropbox/cam_305/"$(date +%Y)_$(date +%m)_$(date +%d)"_305.mp4; rm *.jpeg

Além disso, com o ffmpeg é realizada a captura periódica de imagens de uma câmera IP (Tplink NC200) e enviada para o dropbox pelo script:

ffmpeg -i http://admin:SENHABASECODE64@192.168.7.251:8080/stream/getvideo -f image2 -r 1 -vframes 1 /home/gustavo/Dropbox/log_prototipadora.jpg

VLC: utiliza o projeto VideoLan (VLC) para capturar imagens das câmeras IPs do laboratório. Essa técnica consiste em utilizar o protocolo RTSP para estabelecer a conexão entre as câmeras e equipamentos conforme script apresentado abaixo:

killall -9 vlc; sleep 4; vlc -V dummy --intf=dummy rtsp://192.168.1.1:554/ucast/11 --video-filter scene --no-audio --scene-path /var/www/html/area51/CAM_305/ --scene-ratio=125 --scene-prefix sala305_$(date +%Y)$(date +%m)$(date +%d)_$(date +%H):$(date +%M)_ --scene-format jpeg --scene-width 800 --scene-height 600;