Controlando Fan Nagios no dialog

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

[ Hits: 5.985 ]

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

Identificar,matar e Iniciar novo Processo

lock com xscreensaver

Biblioteca de funções de manipulação de arquivos CSV para shell script

ddflash - criar mídia bootável do Linux e FreeBSD

Remover kernels antigos com zenity


  

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