Controlando Fan Nagios no dialog
Publicado por Joel Silva da Silva Junior (última atualização em 24/06/2011)
[ Hits: 6.259 ]
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
Compara igualdade entre arquivos
Nenhum coment�rio foi encontrado.
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (2)
Ubuntu com problemas no áudio (1)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)