Controlando Fan Nagios no dialog
Publicado por Joel Silva da Silva Junior (última atualização em 24/06/2011)
[ Hits: 6.431 ]
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
Limpar o cache da memória RAM apenas quando necessário
Automação para midias removíveis
consistir variável numérica ou alfa-numérica
get-geo2 - localiza o endereço de um IP/HOST no Google Maps
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









