Controlando Fan Nagios no dialog

Publicado por Joel Silva da Silva Junior (última atualização em 24/06/2011)

[ Hits: 6.142 ]

Download script-nagios2.sh




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

sync2test - sincroniza arquivos do subversion

Envio de email via console

Salvaguardando configurações.

Script para acertar hora e data do sistema no linux.

Backup bases de dados Firebird com envio via FTP e local


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts