Controlando Fan Nagios no dialog
Publicado por Joel Silva da Silva Junior (última atualização em 24/06/2011)
[ Hits: 6.379 ]
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
Adicionando "automagicamente" usuários
Backup do Firebird por data - via rede ou local
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro no suitable vídeo mode (0)
Erro no suitable vídeo mode (0)
Erro no suitable vídeo mode (0)
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)









