Controlando Fan Nagios no dialog
Publicado por Joel Silva da Silva Junior (última atualização em 24/06/2011)
[ Hits: 6.111 ]
Ai moçada, esse script deu trabalho para fazer. Como vocês sabem o Nagios é uma ferramenta um pouco complicada de gerenciar, como criar host, grupo, usuário, apagar usuário, etc. Estou trazendo aqui pra vocês um script que faz a maioria dessas funções, para facilitar o seu gerenciamento.
Obs: Pra esse script funcionar ele precisa do dialog e mc instalado.
#!/bin/bash # Criado por Joel Silva # email: sonic_novel@hotmail.com while : ; do opc=$( dialog --stdout \ --title 'Controle Nagios v 2.0' \ --menu 'Selecione sua opcao - email: sonic_novel@hotmail.com' \ 0 0 0 \ 1 'Iniciar backup do Nagios' \ 2 'Restaurar backup do Nagios' \ 3 'Criar usuario Nagios' \ 4 'Criando HostGroup Nagios' \ 5 'Criando host' \ 6 'Deletar usuario Nagios' \ 7 'Checando Erros no Nagios' \ 8 'Reiniciando Nagios' \ 0 'Sair' ) [ $? -ne 0 ] && clear && break case "$opc" in 1) dialog --sleep 3 --title "BACKUP" --infobox "Iniciando bakcup" 4 40 tar -czvf ~/nagios-bkp-`date +%d-%m-%y`.tar.gz /etc/nagios/ /usr/share/nagios/ dialog --title "Resultado" --msgbox "Backup concluido com sucesso\nno diretorio /root" 0 0 ;; 2) dialog --inputbox "Digite o endereco e nome do backup:" 8 40 2>/tmp/backup tar zxvf `cat /tmp/backup` cp -Rv etc/nagios/ /etc/nagios/ cp -Rv /usr/share/nagios/ /usr/share/nagios/ dialog --sleep 3 --title "RESULTADO" --infobox "Backup Restaurado" 0 0 ;; 3)user=$(dialog --stdout --title "USUARIO" --inputbox "Digite o nome do usario" 8 40) [ $? -ne 0 ] && clear && exit nagiospass=$(dialog --stdout --title "INSIRA A SENHA" --passwordbox "Digite a senha do usuario" 8 40) [ $? -ne 0 ] && clear && exit htpasswd -b /etc/nagios/htpasswd.users $user $nagiospass echo "authorized_for_system_information=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_configuration_information=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_system_commands=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_all_services=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_all_hosts=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_all_service_commands=$user" >> /etc/nagios/cgi.cfg echo "authorized_for_all_host_commands=$user" >> /etc/nagios/cgi.cfg service nagios restart dialog --sleep 3 --title "PARABENS" --infobox "Usuario criando com sucesso" 3 40;; 4) grupo=$(dialog --stdout --title "HOSTGROUP" --inputbox "Digite o nome do grupo" 8 40) [ $? -ne 0 ] && clear && exit echo "define hostgroup{" >> /etc/nagios/objects/hostgroup.cfg echo " hostgroup_name $grupo" >> /etc/nagios/objects/hostgroup.cfg echo " alias $grupo" >> /etc/nagios/objects/hostgroup.cfg echo " }" >> /etc/nagios/objects/hostgroup.cfg echo " define host{" >> /etc/nagios/objects/templates.cfg echo " name $grupo" >> /etc/nagios/objects/templates.cfg echo " use generic-host" >> /etc/nagios/objects/templates.cfg echo " check_period 24x7" >> /etc/nagios/objects/templates.cfg echo " check_interval 1" >> /etc/nagios/objects/templates.cfg echo " retry_interval 1" >> /etc/nagios/objects/templates.cfg echo " max_check_attempts 10" >> /etc/nagios/objects/templates.cfg echo " check_command check-host-alive" >> /etc/nagios/objects/templates.cfg echo " notification_period 24x7" >> /etc/nagios/objects/templates.cfg echo " notification_interval 30" >> /etc/nagios/objects/templates.cfg echo " notification_options d,r" >> /etc/nagios/objects/templates.cfg echo " contact_groups admins" >> /etc/nagios/objects/templates.cfg echo " hostgroups $grupo" >> /etc/nagios/objects/templates.cfg echo " register 0" >> /etc/nagios/objects/templates.cfg echo " }" >> /etc/nagios/objects/templates.cfg service nagios restart dialog --sleep 3 --title "RESULTADO" --infobox "Grupo criado com sucesso" 3 40 [ $? -ne 0] && break ;; 5) while : ; do tipohost=$( dialog --stdout \ --title 'Criano Host' \ --menu 'Escolha o tipo de host para ser criado' \ 0 0 0 \ Windows 'Criando host Windows' \ Linux 'Criando host Linux' \ Outros 'Criando outros tipos de host' \ Edit 'Editando arquivo ou host' \ Retorne 'Retornando para tela principal' ) [ $? -ne 0 ] && clear && exit case "$tipohost" in Windows) hostwin=$(dialog --stdout --title "Host Windows" --inputbox "Digite o nome host Windows" 0 0) ipwin=$(dialog --stdout --title "Endereco IP" --inputbox "Digite o IP do host" 0 0) echo "define host{" >> /etc/nagios/objects/$hostwin.cfg echo " use windows-server " >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin " >> /etc/nagios/objects/$hostwin.cfg echo " alias My Windows Server " >> /etc/nagios/objects/$hostwin.cfg echo " address $ipwin " >> /etc/nagios/objects/$hostwin.cfg echo " }" >> /etc/nagios/objects/$hostwin.cfg echo "define service{" >> /etc/nagios/objects/$hostwin.cfg echo " use generic-service" >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin" >> /etc/nagios/objects/$hostwin.cfg echo " service_description NSClient++ Version" >> /etc/nagios/objects/$hostwin.cfg echo " check_command check_nt!CLIENTVERSION" >> /etc/nagios/objects/$hostwin.cfg echo " }" >> /etc/nagios/objects/$hostwin.cfg echo "define service{" >> /etc/nagios/objects/$hostwin.cfg echo " use generic-service" >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin" >> /etc/nagios/objects/$hostwin.cfg echo " service_description Uptime" >> /etc/nagios/objects/$hostwin.cfg echo " check_command check_nt!UPTIME" >> /etc/nagios/objects/$hostwin.cfg echo " }" >> /etc/nagios/objects/$hostwin.cfg echo "define service{" >> /etc/nagios/objects/$hostwin.cfg echo " use generic-service" >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin" >> /etc/nagios/objects/$hostwin.cfg echo " service_description CPU Load" >> /etc/nagios/objects/$hostwin.cfg echo " check_command check_nt!CPULOAD!-l 5,80,90" >> /etc/nagios/objects/$hostwin.cfg echo " }" >> /etc/nagios/objects/$hostwin.cfg echo "define service{" >> /etc/nagios/objects/$hostwin.cfg echo " use generic-service" >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin" >> /etc/nagios/objects/$hostwin.cfg echo " service_description Memory Usage" >> /etc/nagios/objects/$hostwin.cfg echo " check_command check_nt!MEMUSE!-w 80 -c 90" >> /etc/nagios/objects/$hostwin.cfg echo " }" >> /etc/nagios/objects/$hostwin.cfg echo "define service{" >> /etc/nagios/objects/$hostwin.cfg echo " use generic-service" >> /etc/nagios/objects/$hostwin.cfg echo " host_name $hostwin" >> /etc/nagios/objects/$hostwin.cfg echo " service_description C:\ Drive Space" >> /etc/nagios/objects/$hostwin.cfg echo " check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90" >> /etc/nagios/objects/$hostwin.cfg echo " }" echo "cfg_file=/etc/nagios/objects/$hostwin.cfg" >> /etc/nagios/nagios.cfg dialog --sleep 3 --title "HOST WINDOWS" --infobox "Host $hostwin criado com sucesso" 3 40 ;; Linux) hostlin=$(dialog --stdout --title "Host Linux" --inputbox "Digite o nome host Linux" 0 0) iplin=$(dialog --stdout --title "Endereco IP" --inputbox "Digite o IP do host" 0 0) echo "define host{" >> /etc/nagios/objects/$hostlin.cfg echo " use linux-server " >> /etc/nagios/objects/$hostlin.cfg echo " host_name $hostlin " >> /etc/nagios/objects/$hostlin.cfg echo " alias My Linux Server " >> /etc/nagios/objects/$hostlin.cfg echo " address $iplin " >> /etc/nagios/objects/$hostlin.cfg echo " }" >> /etc/nagios/objects/$hostlin.cfg echo "define service{" >> /etc/nagios/objects/$hostlin.cfg echo " use generic-service " >> /etc/nagios/objects/$hostlin.cfg echo " host_name $hostlin" >> /etc/nagios/objects/$hostlin.cfg echo " service_description PING" >> /etc/nagios/objects/$hostlin.cfg echo " check_command check_ping!100.0,20%!500.0,60%" >> /etc/nagios/objects/$hostlin.cfg echo " }" >> /etc/nagios/objects/$hostlin.cfg echo "define service{" >> /etc/nagios/objects/$hostlin.cfg echo " use generic-service " >> /etc/nagios/objects/$hostlin.cfg echo " host_name $hostlin" >> /etc/nagios/objects/$hostlin.cfg echo " service_description SSH" >> /etc/nagios/objects/$hostlin.cfg echo " check_command check_ssh" >> /etc/nagios/objects/$hostlin.cfg echo " notifications_enabled 0" >> /etc/nagios/objects/$hostlin.cfg echo " }" >> /etc/nagios/objects/$hostlin.cfg echo "cfg_file=/etc/nagios/objects/$hostlin.cfg" >> /etc/nagios/nagios.cfg dialog --sleep 3 --title "HOST LINUX" --infobox "Host $hostlin criado com sucesso" 3 40 ;; Outros) hostou=$(dialog --stdout --title "Outros Host" --inputbox "Digite o nome host" 0 0) ipou=$(dialog --stdout --title "Endereco IP" --inputbox "Digite o IP do host" 0 0) groupou=$(dialog --stdout --title "HostGroup" --inputbox "Digite o HostGroup do host" 0 0) echo "define host{" >> /etc/nagios/objects/$hostou.cfg echo " use $groupou " >> /etc/nagios/objects/$hostou.cfg echo " host_name $hostou " >> /etc/nagios/objects/$hostou.cfg echo " alias My Linux Server " >> /etc/nagios/objects/$hostou.cfg echo " address $ipou " >> /etc/nagios/objects/$hostou.cfg echo " }" >> /etc/nagios/objects/$hostou.cfg echo "define service{" >> /etc/nagios/objects/$hostou.cfg echo " use generic-service " >> /etc/nagios/objects/$hostou.cfg echo " host_name $hostou" >> /etc/nagios/objects/$hostou.cfg echo " service_description PING" >> /etc/nagios/objects/$hostou.cfg echo " check_command check_ping!100.0,20%!500.0,60%" >> /etc/nagios/objects/$hostou.cfg echo " }" >> /etc/nagios/objects/$hostou.cfg echo "cfg_file=/etc/nagios/objects/$hostou.cfg" >> /etc/nagios/nagios.cfg dialog --sleep 3 --title "OUTROS HOST" --infobox "Host $hostou criado com sucesso" 3 40 ;; Edit) dialog --title "INFORMACAO" --msgbox "INFORMACAO: A ferremante usada e um editor chamado MC. \nPara manusear basta usar as teclas F1 a F10" 10 50 mc /etc/nagios/objects/;; Retorne) clear ./$0;; esac done;; 6) dialog --title "REMOVENDO USUARIO" --inputbox "Digite o nome do usuario" 8 40 2>/tmp/userdel [ $? -ne 0] && clear && break sed -i /`cat /tmp/userdel`/d /etc/nagios/htpasswd.users sed -i /`cat /tmp/userdel`/d /etc/nagios/cgi.cfg sed -i s/,`cat /tmp/userdel`//g /usr/share/nagios/nagvis/etc/maps/*.cfg dialog --title "RESULTADO" --msgbox "Usuario deletado com sucesso" 8 40;; 7) (echo 40; sleep 1 echo 75; sleep 1 echo 100; sleep 1) | dialog \ --title "Checando error no Nagios" \ --gauge "\n Checando Errors" \ 8 40 70 nagios -v /etc/nagios/nagios.cfg > /tmp/check_error dialog --textbox /tmp/check_error 0 0 ;; 8) dialog --sleep 3 --title "RESULTADO" --infobox "Reiniciando servico Nagios" 3 40 [ $? -ne 0] && clear && exit service nagios restart dialog --title "RESULTADO" --msgbox "Servico reiniciado com sucerro" 5 40 ;; 0)clear echo "Programa encerrado" break;; esac done
Script que envia email para um Relay sem autenticação.
shradio.sh - ouça rádios online
linkswitch (redundância de internet)
Dicionário e tradutor baseado no Michaelis
Busca de arquivos nas ports FreeBSD
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Acabei de formatar meu ssd e deu erro (3)
Desempenho abaixo do esperado - travadas e congelamento do sistema ope... (5)
Bash ao invés de Fish no CachyOS (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta