Automatizando o Nagios
Publicado por Reinaldo Zancoper Jr (última atualização em 22/01/2013)
[ Hits: 4.519 ]
Homepage: www.zancoper.com
Nada melhor quando você tem um Nagios automatizado, pra quando você precisar criar um Host não precisar ficar editando arquivos e acaba tendo um pouco de trabalho.
Por isso criei um script que automatiza isso tudo, você só precisa preencher os campos solicitados.
Segue o script para automatizar seu Nagios, lembrando que esse padrão só serve para o meu Nagios, então deverá ler todo o arquivo e editar da forma que funciona sua configuração.
Se tiver conhecimento de GNU/Linux e script, não terá problemas para entender este.
NOTAS:
Você precisará editar o arquivo hostgroups.cfg para o script poder entender os menus criados para preencher os campos necessários.
Você precisará incluir uma linha comentada depois da linha "alias" com o mesmo nome da variável criada dentro do script, como abaixo:
######## Grupo CPD
define hostgroup {
hostgroup_name SW_A1-3Com
alias SW_A1-3Com
######## SW_A1-3Com
members Notebook001,Notebook002
}
Se fizer dessa forma funcionará perfeitamente.
Nessa edição do hostgroups.cfg você está simplesmente criando uma referência para o script, pode incluir o host na posição exata, lembrando que dei um exemplo de apenas um grupo, se você tiver 3 grupos, terá que criar a linha comentada nas respectivas linhas.
- Não esqueça de fazer um backup das configurações do Nagios antes de colocar a mão na massa!
- Não esqueça de dar permissão de execução ao arquivo criado, no meu caso: add_nagios.sh
Abraços!
#!/bin/bash clear DATA=`date` grupo=0 switch=0 echo "###############$DATA######################################" echo "# adicionador de maquinas no sistema Nagios por terminal #" echo "# created by: Reinaldo Zancoper Jr #" echo "# #" echo "# http://www.zancoper.com #" echo "# zancoper@zancoper.com #" echo "##########################################################" #"L1" define o local onde esta o arquivo a ser incrementado L1="/usr/local/nagios/etc/objects/hostextinfo.cfg" LINE="######################$DATA###############################" LINE2="##########################################################" LIN=" " # LONG e o escopo da rede, ex: do IP de uma maquina 10.2.0.45, o escopo seria "10.2." LONG="192.168." echo "$LIN" echo "$LIN" echo "Digite o nome da maquina para cadastrar no Nagios" read NOME echo "Descricao da maquina a ser adicionada" read ALIAS echo "Digite o final do IP da maquina na rede, ex: 192.168.X.X" read IP echo "$LIN" echo "$LIN" #Menu de opcoes dos Grupos do Nagios echo "Escolha o Tipo do Host 1. windows-server 2. linux-server 3. generic-switch 4. Sair " read input if test "$input" = 1 then grupo=$(echo "windows-server") fi if test "$input" = 2 then grupo=$(echo "linux-server") fi if test "$input" = 3 then grupo=$(echo "generic-switch") fi echo "$LIN" echo "$LIN" #Menu de opcoes dos Switches do Nagios echo "Escolha de qual (Parent) o micro faz parte 1. SW_A1-3Com 2. SW_B1-3Com 3. SW_C1-3Com 4. Sair " read input if test "$input" = 1 then parents=$(echo "SW_A1-3Com") fi if test "$input" = 2 then parents=$(echo "SW_B1-3Com") fi if test "$input" = 3 then parents=$(echo "SW_C1-3Com") fi echo "$LIN" echo "$LIN" #Menu de opcoes dos Grupos do Nagios echo "Escolha de qual Grupo o micro faz parte 1. Switch ADM 2. Switch CPD 3. Switch Engenharia 4. Sair " read input if test "$input" = 1 then switch=$(echo "Switch ADM") fi if test "$input" = 2 then switch=$(echo "Switch CPD") fi if test "$input" = 3 then switch=$(echo "Switch Engenharia") fi rm -rf /tmp/teste.txt LINHAS=`cat /usr/local/nagios/etc/objects/hostgroups.cfg | wc -l` for y in $(seq $LINHAS); do cat /usr/local/nagios/etc/objects/hostgroups.cfg | head -$y | tail -1 >> /tmp/teste.txt; NOVALINHA=`cat /usr/local/nagios/etc/objects/hostgroups.cfg | head -$y | tail -1` if [ "$NOVALINHA" == "######## $switch" ]; then echo "members $NOME" >> /tmp/teste.txt fi done cp /tmp/teste.txt /usr/local/nagios/etc/objects/hostgroups.cfg #echo "Defina qual o Switch esse host fara parte (Parents), ex: BBone-SW_A1-3Com" #read PARENTS echo "$LIN" >> "$L1" echo "$LINE" >> "$L1" echo "$LINE2" >> "$L1" echo "$LINE2" >> "$L1" echo "define hostextinfo{" >> "$L1" echo " host_name $NOME" >> "$L1" echo " icon_image microsoft-windows.png" >> "$L1" echo " icon_image_alt $NOME" >> "$L1" echo " vrml_image microsoft-windows.png" >> "$L1" echo " statusmap_image microsoft-windows.png" >> "$L1" echo " 2d_coords 100,250" >> "$L1" echo " 3d_coords 100.0,50.0,75.0" >> "$L1" echo "}" >> "$L1" # Aqui estamos criando o arquivo com o nome do host touch /usr/local/nagios/etc/objects/windows/$NOME.cfg #"L2" define a configuracao padrao do conteudo do arquivo criado anteriormente L2="/usr/local/nagios/etc/objects/windows/$NOME.cfg" echo "$LIN" echo "$LIN" echo "$LIN" echo "confirma os dados a seguir: $NOME, $ALIAS, $LONG$IP, $grupo, $switch, $parents ao Nagios? (<enter> confirma, ctrl+c pra cancelar/sair)" read "enter" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE" >> "$L2" echo "$LINE2" >> "$L2" echo "define host{" >> "$L2" echo " use $grupo" >> "$L2" echo " host_name $NOME" >> "$L2" echo " alias $ALIAS" >> "$L2" echo " address $LONG$IP" >> "$L2" echo " parents $parents" >> "$L2" echo " notifications_enabled" 1 >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Define a service to "ping" na placa de rede" echo "define service{" >> "$L2" echo " use local-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Ping $LONG$IP" >> "$L2" echo " check_command check_ping!100.0,20%!500.0,60%" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica o tempo ligado" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Tempo-LigadoPing $LONG$IP" >> "$L2" echo " check_command check_ping!100.0,20%!500.0,60%" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica a versao do NsClient++" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description versao-NSClient++" >> "$L2" echo " check_command check_nt!CLIENTVERSION -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica a utilizacao da CPU" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Utilizacao-de-CPU" >> "$L2" echo " check_command check_nt!CPULOAD!-l 5,80,90 -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica a memoria utilizada" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Memoria" >> "$L2" echo " check_command check_nt!MEMUSE!-w 90 -c 92 -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica executavel do Anti-Virus Trend" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Verifica-Anti-Virus-Trend" >> "$L2" echo " check_command check_nt!PROCSTATE!-d SHOWALL -l tmlisten.exe -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica a verifica a unidade C" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Particao-C" >> "$L2" echo " check_command check_nt!USEDDISKSPACE!-l c -w 90 -c 95 -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LIN" >> "$L2" echo "$LIN" >> "$L2" echo "$LINE2" >> "$L2" echo "Verifica executavel do Licenciamento do Terminal Sercer" echo "define service{" >> "$L2" echo " use generic-service" >> "$L2" echo " host_name $NOME" >> "$L2" echo " service_description Verifica-Servidor-de-Licencas-do-TS" >> "$L2" echo " check_command check_nt!PROCSTATE!-d SHOWALL -l lserver.exe -H $LONG$IP" >> "$L2" echo " notifications_enabled 1" >> "$L2" echo "}" >> "$L2" echo "$LINE2" echo "Inicializando o servicos do Nagios" echo "$LINE2" /etc/init.d/nagios reload echo "$LINE2" echo "Nagios reiniciado" echo "$LINE2" echo "Agora sera necessario incluir o host criado dentro do arquivo hostgroups.cfg manualmente... depois reinicia o Nagios." echo "$LINE2" echo "Caso ocorra algum problema, nao se preocupe, execute o comando para verificar os servicos do Nagios." echo "$LINE2" echo "(Aperte <enter> para adicionar outra maquina e Ctrl+c pra cancelar/sair)" read "enter" ##sh add-to-nagios.sh
Converter Arquivo RMVB para AVI
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Remoção de propaganda com o programa Comskip[AJUDA] (2)
Linux Lite Demorando Muito Para Ligar (0)
PC não liga no filtro de linha (3)