Instalando o Nagios Core 3.2, Nagios Plugins, NRPE, NSClient++, pnp4nagios e FrontEnd no Ubuntu 10.4 LTS
Guia de instalação e configuração do Nagios Core 3.2 no Ubuntu 10.4 Server, juntamente com os plugins do Nagios Plugins e Nagios SNMP, os addons NRPE e NSClient++, o FrontEnd Nuvola e o pnp4nagios para a geração de gráficos.
Como uma grande necessidade das pequenas e grandes corporações, o monitoramento dos ativos e servidores vem sido cada vez mais utilizado devido aos inúmeros benefícios que a reação rápida a um problema ou incidente pode trazer.
Trago neste artigo uma completa solução de monitoramento dos servidores e ativos com base no poderoso Nagios Core.
Preparando o ambiente
Primeiro prepararemos o ambiente para receber a instalação do Nagios, porém é necessário que este já esteja com o LAMP (Linux, Apache, MySql e PHP) em pleno funcionamento.
Troque de usuário para o usuário root:
$ sudo -s
Atualize o sistema e instale os seguintes pacotes (instale o SSH somente se for utilizar realmente este para acesso remoto ao servidor):
# apt-get update # apt-get upgrade # apt-get install vim # apt-get install ssh
Instale o compilador GCC e mais algumas bibliotecas necessárias como o OpenSSL para a comunicação do NRPE:
# apt-get install build-essential # apt-get install libgd2-xpm-dev libsnmp-perl libssl-dev openssl libperl-dev
Instale o RRD-Tool:
# apt-get install librrds-perl rrdtool librrd-dev
Crie um diretório para o download dos arquivos do Nagios (lembrando que estamos no diretório do seu respectivo usuário, ex.: /home/carlao/):
# mkdir nagios
Faça o download do Nagios e dos plugins (utilizei aqui a ultima versão de cada item):
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz # wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz # wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz
Instalando o Nagios
Adicione o usuário nagios ao sistema, utilize a senha que desejar:
# adduser nagios
Descompacte o Nagios Core, compile e faça a instalação deste:
# tar xzf nagios-3.2.3.tar.gz # cd nagios-3.2.3 # ./configure --with-command-group=nagios # make all # make install # make install-config # make install-commandmode # make install-init # make install-webconf
Adicione o Nagios a inicialização do sistema:
# ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Usuário administrador do Nagios
Neste exemplo utilizaremos o usuário “catatau”, por padrão o Nagios já possui um usuário administrador que é o “nagiosadmin”, porém para maior segurança e adequação deste servidor de monitoramento a sua rede existente, é recomendado alterar este usuário.
Crie o arquivo de senhas do nagios e adicione o usuário “catatau” a este:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users catatau
Altere as linhas do arquivo cgi.cfg que contenham o usuário “nagiosadmin” para o usuário escolhido como administrador do Nagios:
# vim /usr/local/nagios/etc/cgi.cfg
OBS.: Para efetuar a busca dentro do arquivo, aperte ESC e depois digite “/nagiosadmin” que irá buscar no arquivo pelo usuário.
Adicione o usuário nagios ao Apache:
# usermod –G nagios nagios # usermod –G www-data,nagios www-data # /etc/init.d/apache2 reload
Instalando os plugins
Acesse novamente o diretório que você havia criado para salvar os arquivos do Nagios:
# cd /home/carlao/nagios
Descompacte e instale os arquivos do Nagios-Plugins:
# tar xzf nagios-plugins-1.4.15.tar.gz # cd nagios-plugins-1.4.15 # ./configure # make # make install
Altere o “dono” dos seguintes diretórios para o usuário nagios:
# chown nagios:nagios /usr/local/nagios # chown –R nagios:nagios /usr/local/nagios/libexec
Verifique se não há nenhum erro nas configurações do Nagios:
# /usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
OBS.: Guarde este comando, pois ele sempre será útil.
Acesse pelo navegador o endereço do servidor Nagios, e verifique se esta tudo ok.:
Configurando o monitoramento
Primeiro configuraremos os parâmetros simples para o monitoramento do Nagios, para posteriormente instalarmos os addos de checagens.
Adicione as variáveis ao resouce.cfg
O arquivo resource.cfg é responsável por armazenar as configurações referentes as variáveis que serão utilizados para a checagem do Nagios, estas variáveis devem ser definidos para cada função específica pois elas serão utilizadas no arquivo commands.cfg.
# vim /usr/local/nagios/etc/resource.cfg
Para que possamos efetuar as checagens utilizando o SNMP, será necessário definir neste arquivo a comunidade SNMP utilizada em sua rede, utilizaremos aqui por default a comunidade “public”, adicione o seguinte conteúdo ao final deste arquivo:
$USER7$=-C public $USER8$=public
Agora configuraremos os arquivos secundários, onde estarão as informações que utilizaremos posteriormente nos arquivos de monitoramento dos hosts. Para tal, acesse o diretório objects dentro do diretório Nagios:
# cd /usr/local/nagios/etc/objects/
Já dentro do diretório objects, faça o backup do arquivo commands.cfg e crie um novo arquivo com o mesmo nome. O arquivo commands.cfg é responsável por armazenar as informações de checagem dos serviços, ligando os comandos fornecidos nos arquivos de checagem dos servidores aos plugins existentes no servidor Nagios:
# mv commands.cfg commands.cfg.bkp # vim commands.cfg
Exemplo de configuração do arquivo commands.cfg:
############################################################################### # Arquivo commands.cfg > Por Rafael Oliveira em 15/12/2010 # ################################################################################ #Notificacao por email define command{ command_name notify-host-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nEstado: $HOSTSTATE$\nIP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/email -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ } define command{ command_name notify-service-by-email command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/email -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ } ################################################################################ # # Checagem simples # ################################################################################ # 'check-host-alive' command definition define command{ command_name check-host-alive command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 } ################################################################################ # # Checando os principais servicos LOCAIS # ################################################################################ # Local HDD define command{ command_name check_local_disk command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ } # LOAD define command{ command_name check_local_load command_line $USER1$/check_load -w $ARG1$ -c $ARG2$ } # PROCESS define command{ command_name check_local_procs command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ } # USERS define command{ command_name check_local_users command_line $USER1$/check_users -w $ARG1$ -c $ARG2$ } # SWAP define command{ command_name check_local_swap command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$ } # MRTGTRAF define command{ command_name check_local_mrtgtraf command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ } ################################################################################ # # Checagem dos servicos # ################################################################################ # FTP define command{ command_name check_ftp command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ } # HPJD define command{ command_name check_hpjd command_line $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$ } # SNMP define command{ command_name check_snmp command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$ } # HTTP define command{ command_name check_http command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$ } # SSH define command{ command_name check_ssh command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$ } # DHCP define command{ command_name check_dhcp command_line $USER1$/check_dhcp $ARG1$ } # PING define command{ command_name check_ping command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5 } # PING GOOGLE define command{ command_name check_google command_line $USER1$/check_ping -H www.google.com.br -w 60,70% -c 80,90% } # POP define command{ command_name check_pop command_line $USER1$/check_pop -H $HOSTADDRESS$ $ARG1$ } # IMAP define command{ command_name check_imap command_line $USER1$/check_imap -H $HOSTADDRESS$ $ARG1$ } # SMTP define command{ command_name check_smtp command_line $USER1$/check_smtp -H $HOSTADDRESS$ $ARG1$ } # TCP define command{ command_name check_tcp command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ } # UDP define command{ command_name check_udp command_line $USER1$/check_udp -H $HOSTADDRESS$ -p $ARG1$ $ARG2$ } # NT define command{ command_name check_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ } ################################################################################ # # PERFORMANCE DATA COMMANDS # ################################################################################ # HOST PERF-DATA #define command{ # command_name process-host-perfdata # command_line /usr/bin/printf "%b" "$LASTHOSTCHECK$\t$HOSTNAME$\t$HOSTSTATE$\t$HOSTATTEMPT$\t$HOSTSTATETYPE$\t$HOSTEXECUTIONTIME$\t$HOSTOUTPUT$\t$HOSTPERFDATA$\n" >> /usr/local/nagios/var/host-perfdata.out # } # # # SERVICE PERF-DATA #define command{ # command_name process-service-perfdata # command_line /usr/bin/printf "%b" "$LASTSERVICECHECK$\t$HOSTNAME$\t$SERVICEDESC$\t$SERVICESTATE$\t$SERVICEATTEMPT$\t$SERVICESTATETYPE$\t$SERVICEEXECUTIONTIME$\t$SERVICELATENCY$\t$SERVICEOUTPUT$\t$SERVICEPERFDATA$\n" >> /usr/local/nagios/var/service-perfdata.out # } # PNP4NAGIOS define command { command_name process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA } ################################################################################ # # Checagens SNMP # ################################################################################ define command{ command_name check_snmp_load_v1 command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ $USER7$ -T $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_int_v1 command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ $ARG2$ } define command{ command_name check_snmp_mem_v1 command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_storage_v1 command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ -m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_hpux_storage_v1 command_line $USER1$/check_snmp_hpux_storage.pl -H $HOSTADDRESS$ $USER7$ -m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_hpux_mem_v1 command_line $USER1$/check_snmp_hpux_mem.sh $USER8$ $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ } define command{ command_name check_snmp_v1 command_line $USER1$/check_snmp -H $HOSTADDRESS$ $USER7$ -o $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_snmp_process_v1 command_line $USER1$/check_snmp_process.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$ } define command{ command_name check_win command_line $USER1$/check_snmp_win.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ $ARG2$ } ######################################## FIM SNMP ###################################### ################################################################################ # # COMANDOS ADICIONAIS # ################################################################################ # DISCO define command{ command_name check_disk command_line $USER1$/check_disk -w limit -c limit -t 5 } # IMPRESSORA HP define command{ command_name check_hp_print command_line $USER1$/check_hp_print -H $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ } # TERMINAL SERVICE define command{ command_name check_ts command_line $USER$/check_ts -H $HOSTADDRESS$ -p 3389 } # PRINTERS define command{ command_name check_printer command_line $USER1$/check_printer $HOSTADDRESS$ $USER8$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ } # WIRETEMP define command{ command_name check_1-wiretemp command_line $USER1$/custom/check_1-wiretemp -c $ARG1$ -w $ARG2$ -W$ARG3$ -C$ARG4$ -i $ARG5$ -o $ARG6$ } # NRPE define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } # OPENVPN define command{ command_name check_openvpn command_line /usr/lib/nagios/plugins/check_openvpn -t $ARG1$ -p $ARG2$ -n $ARG3$ } # SQUID define command{ command_name check_squid command_line $USER1$/check_squid.pl -u http://www.google.com.br -p $HOSTADDRESS$ -l 8080 -o usuario -m senha -e 200 } # SAMBA define command{ command_name check_samba command_line $USER1$/check_samba -L $HOSTADDRESS$ } # WINTEMP define command{ command_name check_snmp_wintemp command_line $USER1$/check_snmp_wintemp -L $HOSTADDRESS$ } # 3COM define command{ command_name check_3com command_line $USER1$/check_3com.pl -H $HOSTADDRESS$ -C $ARG1$ -u $ARG2$ } # SWITCH UPTIME define command { command_name check_switch_uptime command_line $USER1$/check_switch_uptime.pl -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$ } # MEMORIA define command { command_name check_mem command_line $USER1$/check_mem -w $ARG1$ -c $ARG2$ } # MRTG define command { command_name check_mrtgtraf command_line $USER1$/check_mrtgtraf -F $ARG1$ -a $ARG2$ -w $ARG3$ -c $ARG4$ -e $ARG5$ } # NAGIOSGRAPHER define command{ command_name process-service-perfdata-file command_line mv /usr/local/nagios/var/service-perfdata /usr/local/nagios/var/service-perfdata.$TIMET$ }
Ainda no diretório objects, faça o backup do arquivo timeperiods.cfg e crie um novo arquivo com o mesmo nome. O arquivo timeperiods.cfg é responsável por armazenar as informações relativas as períodos de tempos utilizados na checagem, os períodos de tempos setados aqui, serão utilizados na configuração de cada serviço nos arquivos de checagem dos servidores:
# mv timeperiods.cfg timeperiods.cfg.bkp # vim timeperiods.cfg
Exemplo de configuração do arquivo timeperiods.cfg:
############################################################################### # # Arquivo TIMEPERIODS.cfg > Por Rafael Oliveira em 15/12/2010 # ############################################################################### # TEMPO INTEGRAL 24x7 define timeperiod{ timeperiod_name 24x7 alias 24 Hours A Day, 7 Days A Week sunday 00:00-24:00 monday 00:00-24:00 tuesday 00:00-24:00 wednesday 00:00-24:00 thursday 00:00-24:00 friday 00:00-24:00 saturday 00:00-24:00 } # HORARIO DE TRABALHO TOTAL define timeperiod{ timeperiod_name workhours alias Normal Work Hour monday 09:00-21:00 tuesday 09:00-21:00 wednesday 09:00-21:00 thursday 09:00-21:00 friday 09:00-21:00 } # HORARIO COMERCIAL define timeperiod{ timeperiod_name comercial alias Horario Comercial monday 08:00-17:40 tuesday 08:00-17:40 wednesday 08:00-17:40 thursday 08:00-17:40 friday 08:00-17:40 } # NONE define timeperiod{ timeperiod_name none alias No Time Is A Good Time }
Faça o backup também do arquivo contacts.cfg, e crie um arquivo em branco com o mesmo nome. Este arquivo é responsável por armazenar as informações dos grupos e contatos que receberão os e-mails de alertas do Nagios. Com isso é possível que somente um determinado grupo de usuários do Nagios receba por exemplo notificações de que serviços críticos ou servidores saíram do ar, assim dimensionando os alertas para cada camada do respectivo departamento ou filial:
# mv contacts.cfg contacts.cfg.bkp # vim contacts.cfg
Exemplo de configuração do arquivo contacts.cfg:
############################################################################### # # Arquivo contacts.cfg > Por Rafael Oliveira em 15/12/2010 # ############################################################################### # CONTATOS define contact{ contact_name nagios # Nome do usuario use generic-contact alias Nagios Admin email suporte@dominio.com.br # Email do usuário que recebera as notoficacoes } # GRUPOS DE CONTATOS define contactgroup{ contactgroup_name admins alias Nagios Administrators members nagios }
Instalando os Addons
O NRPE (Nagios Remote Plugin Execute) será responsável pelas checagens dos nossos sistemas Unix, para tal é necessário instalar este no servidor a ser monitorado e no servidor Nagios.
Instale o Xinetd:
# apt-get install xinetd
Faça o download do source do NRPE:
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
Descompacte e instale o NRPE:
# tar xzf nrpe-2.12.tar.gz # cd nrpe-2.12 # ./configure # make all # make install # make install-daemon # make install-daemon-config # make install-xinetd
Edite o arquivo de configuração do NRPE, adicionando logo após o endereço local do host (127.0.0.1), o endereço ip do servidor Nagios ou a range da rede onde esta o servidor Nagios:
# vim /etc/xinetd.d/nrpe
... only_from = 127.0.0.1 192.168.1.0 ...
Adicione a porta do serviço NRPE ao sistema:
# vim /etc/services
... nrpe 5666/tcp # NRPE …
Reinicie o serviço do Xinetd:
# /etc/init.d/xinetd restart
Teste o funcionamento do NRPE:
# /usr/local/nagios/libexec/check_nrpe –H localhost
O retorno deve ser:
NRPE v2.12
Agora, instale o plugin do NRPE também no servidor Nagios:
Faça o download do source do NRPE:
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
Descompacte e instale o NRPE:
# tar xzf nrpe-2.12.tar.gz # cd xzf nrpe-2.12 # ./configure # make all # make install-plugin
Instale o SNMP no servidor Nagios
# cd.. # apt-get install snmp # apt-get install snmpd # wget http://downloads.sourceforge.net/net-snmp/net-snmp-5.6.1.tar.gz # tar xzf net-snmp-5.6.tar.gz # cd net-snmp-5.6 # ./configure # make # make install # cd .. # tar xzf nagios-snmp-plugins.1.1.1.tgz –C /usr/src/ # cd /usr/src/nagios_plugins #./install.sh
Teste o funcionamento do plugin no servidor:
# /usr/local/nagios/libexec/check_nrpe –H NRPE v2.12
Adicionando servidores Linux ao Nagios
Para melhor organização, crie alguns diretórios dentro do diretório /usr/local/nagios/etc, onde serão armazenados os arquivos de configurações dos servidores e ativos monitorados, neste caso monitoraremos nossos servidores, switchs e impressoras de rede:
# cd /usr/local/nagios/etc/ # mkdir servidores switchs printers
Acesse o diretório “servidores” que você havia criado:
# cd /usr/local/nagios/etc/servidores
Agora, crie um arquivo com o nome do servidor a ser monitorado, como exemplo utilizaremos o servidor “srv-linux”:
# vim srv-linux.cfg
Vou descrever algumas definições que podem ser utilizadas no arquivo de monitoramento de um servidor Linux, tentarei explicar ao máximo possível cada linha.
A primeira configuração que deve ser adicionada ao arquivo de monitoramento do servidor é a Definição do Host:
### Definicoes do Host ### define host{ use generic-host host_name srv-linux # Nome do servidor alias Servidor Linux # Nome que aparecera na interface web do Nagios address 192.168.3.40 # Endereco ip do servidor a ser monitorado parents 3Com_4200,srv-proxy # Switchs ou pontos que este servidor estará interligado diretamente check_command check-host-alive # Definido no commands.cfg este checa o ping do servidor max_check_attempts 2 # Numero de checagens necessarias para definir o real estado do serviço check_interval 1 # Checagem do serviço média de 5 minutos em condições normais notification_interval 1 # Tempo de re-notificacao sobre os problemas de um servico em minutos notification_period 24x7 # Variavel definida no arquivo timeperiods.cfg notification_options d,u,r # d = Down, u = Unreachable e r = Recovered contact_groups admins # Grupo de contatos que receberam notificacoes para este servidor }
Definição do Grupo
No arquivo de configuração do servidor, deve ser adicionada a informação de qual grupo este servidor pertencerá, esta configuração é efetuada em apenas um dos arquivos de configuração dos servidores pertencentes a este grupo, sendo que nesta configuração serão adicionados todos os nomes dos servidores pertencentes a este grupo, como no exemplo a seguir:
### Grupo ### define hostgroup{ hostgroup_name linux-servers # Nome do grupo sem espacos alias Servidores Linux # Nome visivel do grupo que aparecera na interface web do Nagios members srv-linux,srv-linux_2 # Nome dos servidores pertencentes a este grupo }
Plugins – Ping
É recomendado efetuar uma segunda secagem do ping do servidor, além da efetuada pelo check-host-alive como vemos a seguir (esta será utilizada para a geração de gráficos pelo pnp4nagios):
### PING ### define service{ host_name srv-linux # O nome do ativo a ser monitorado service_description PING # Nome do serviço que aparecerá na interface web do Nagios check_command check_ping!5000.0,80%!8000.0,100% # Comando que foi configurado no arquivo commands.cfg max_check_attempts 2 # Numero de checagens necessárias para definir o real estado do serviço normal_check_interval 1 # Tempo em minutos entre as checagens ao serviço retry_check_interval 1 # Tempo de checagem do serviço se este estiver em WARNING ou CRITICAL check_period 24x7 # Este é o período de checagem do serviço, este período deve estar definido no arquivo timeperiods.cfg como uma variável notification_interval 30 # Este é o período de checagem do serviço, este período deve estar definido no arquivo timeperiods.cfg como uma variável notification_period 24x7 # Este é o período de checagem do serviço, este período deve estar definido no arquivo timeperiods.cfg como uma variável notification_options w,c,r # W = Warning, C = Critical, R = Recovered e u=UNKDOWN contact_groups admins # O grupo de contatos que receberá as notificações deste serviço, este é definido no arquivo contacts.cfg }
Processos
Checa a quantidade de processos que estão rodando no servidor:
### Servicos ### define service{ host_name srv-linux service_description Total de Processos check_command check_nrpe!check_total_procs max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notifications_enabled 0 # Desabilita a notificação do serviço por email }
Processador
Checa a quantidade de processador utilizada pelo servidor em %:
### CPU LOAD ### define service{ host_name srv-linux service_description CPU Load check_command check_nrpe!check_load max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Espaço em DISCO (HD)
Checa o espaço total do disco e o espaço disponível deste:
### HD ### define service{ host_name srv-linux service_description HD check_command check_nrpe!check_hda1 max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Memória RAM
Checa a quantidade de memória RAM utilizada pelo sistema remoto, ele também checa a SWAP do sistema:
### Memoria ### define service{ host_name srv-linux service_description Memoria check_command check_nrpe!check_mem max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Uptime</h3
Checa o tempo que o servidor esta em funcionamento desde a sua ultima reinicialização:
### UPTime ### define service{ host_name srv-linux service_description UPTime check_command check_nrpe!check_uptime max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
SSH
Checa se o serviço de SSH esta rodando no servidor:
### SSH ### define service{ host_name srv-linux service_description SSH check_command check_ssh! -t 50 max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Apache (HTTP)
Checa se o serviço http do Apache esta rodando:
### HTTP ### define service{ host_name srv-linux service_description Apache check_command check_http max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
BIND
Checa se o serviço de DNS Bind esta rodando no servidor:
### BIND ### define service{ host_name srv-linux service_description DNS Bind check_command check_nrpe!check_bind max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Samba
Checa se o serviço do Samba esta rodando no servidor:
### SAMBA ### define service{ host_name srv-linux service_description Samba Service check_command check_samba max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins }
Adicionando servidores Windows ao Nagios
Acesse o diretório “servidores” do Nagios:
# cd /usr/local/nagios/etc/servidores/
Crie um arquivo com o nome do servidor a ser monitorado, neste exemplo utilizaremos o servidor “srv-ruindows”:
# vim srv-ruindows.cfg
As informações de checagem são basicamente as mesmas do arquivo de checagem Linux, altere somente os plugins utilizados para fazer esta e também o fato deste não utilizar o NRPE para a checagem, e sim o NSCLIENT++.
Segue um exemplo de arquivo de checagem Windows:
### Definicoes do Host ### define host{ use generic-host host_name srv-ruindows alias Servidor Ruindows address 192.168.3.42 parents 3Com_4200 check_command check-host-alive max_check_attempts 2 check_interval 1 notification_interval 1 notification_period 24x7 notification_options d,u,r contact_groups admins } ### PING ### define service{ host_name srv-ruindows service_description PING check_command check_ping!5000.0,80%!8000.0,100% max_check_attempts 2 normal_check_interval 1 retry_check_interval 1 check_period 24x7 notification_interval 30 notification_period 24x7 notification_options w,c,r contact_groups admins } ### Versao do NSCLIENT ### define service{ use generic-service host_name srv-ruindows service_description Versao do NSClient check_command check_nt!CLIENTVERSION max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### UPTIME ### define service { use generic-service host_name srv-ruindows service_description Uptime check_command check_nt!UPTIME max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### MEMORIA RAM ### define service { use generic-service host_name srv-ruindows service_description Memoria RAM check_command check_nt!MEMUSE! -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### DISCO C: ### define service { use generic-service host_name srv-ruindows service_description Disco C: check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### DISCO D: ### define service { use generic-service host_name srv-ruindows service_description Disco D: check_command check_nt!USEDDISKSPACE!-l d -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### PROCESSADOR ### define service { use generic-service host_name srv-ruindows service_description CPU Load check_command check_nt!CPULOAD!-l 5,80,90 -w 80 -c 90 max_check_attempts 2 normal_check_interval 1 retry_check_interval 10 check_period 24x7 notification_interval 120 notification_period 24x7 notification_options w,c,r contact_groups admins } ### PROCESSO ### define service { use generic-service host_name pabx service_description Explorer check_command check_nt!PROCSTATE!-l explorer.exe normal_check_interval 10 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 }
Adicionando impressoras de rede ao Nagios
Para o monitoramento de impressoras pelo Nagios, utilizaremos o plugin “check_printer”, assim, faça o download deste arquivo e de permissão de execução para ele:
# wget http://www.ciphron.de/gfx/pool/check_printer # mv check_printer /usr/local/nagios/libexec/check_printer # chmod +x /usr/local/nagios/libexec/check_printer
Feito isso, faça os teste com a impressora a ser monitorada para saber que opções de monitoramento esta possibilitará. Acesse o diretório printers, e execute:
# ./check_printer
Este comando trará todas as possiblidades de o script possui de monitoramento, assim teste cada um dos comandos na impressora escolhida para descobrir quais irão ou não funcionar nesta, a sintaxe básica do comando é:
#./check_printer
Para checar por exemplo o contador de páginas de uma impressora, execute:
#./check_printer 192.168.3.100 public counter 1
Realizado os testes, entre no diretório “printers” criado anteriormente e crie um arquivo com o nome da impressora a ser monitorada, neste exemplo utilizaremos a impressora “hp_producao”:
# cd /usr/local/nagios/etc/printers # vim hp_producao.cfg
Com base nos testes realizados anteriormente com o plugin, adicione os monitoramentos validos a este arquivo de acordo com cada impressora, como no exemplo a seguir:
############################################################################### # # Arquivo de monitoramento de IMPRESSORA > Por Rafael Oliveira em 28/12/2010 # ############################################################################### # DEFINICAO DA IMPRESSORA define host{ use generic-printer host_name hp_producao alias Impressora HP Producao address 192.168.3.100 parents 3Com_4200 check_interval 1 retry_check_interval 10 check_period workhours notification_interval 120 notification_period workhours notification_options d,u,r contact_groups admins hostgroups network-printers } # CHECAGEM DOS SERVICOS # # PING define service{ use generic-service host_name hp_producao service_description PING check_command check_ping!3000.0,80%!5000.0,100% normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notification_interval 120 notification_options c,r contact_groups admins notification_period workhours } # FOLHAS IMPRESSAS define service{ use generic-service host_name hp_producao service_description Folhas Impressas check_command check_printer!counter 1 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Parts Status define service{ use generic-service host_name hp_producao service_description Parts Status check_command check_printer!parts 1 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Port Status define service{ use generic-service host_name hp_producao service_description Port Status check_command check_printer!parts 2 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Toners Status ## Cyano define service{ use generic-service host_name hp_producao service_description Toner Cyano check_command check_printer!toner/ink 1!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } ## Magenta define service{ use generic-service host_name hp_producao service_description Toner Magenta check_command check_printer!toner/ink 2!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } ## Amarelo define service{ use generic-service host_name hp_producao service_description Toner Amarelo check_command check_printer!toner/ink 3!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } ## Preto define service{ use generic-service host_name hp_producao service_description Toner Preto check_command check_printer!toner/ink 4!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 } # Reservatorio de Residuos define service{ use generic-service host_name hp_producao service_description Reservatorio de Residuos check_command check_printer!toner/ink 5!0.5,0.8 normal_check_interval 1 retry_check_interval 10 max_check_attempts 2 notifications_enabled 0 }
Adicionando ativos de rede ao Nagios
O Nagios também possui dezenas de plugins (não por padrão) para o monitoramento de ativos de rede, como switchs, roteadores e afins. Destes podemos extrair informações de portas, processamento, tempo ativo, ips ativos, dentre outras informações, porém isto dependerá do gerenciamento que cada ativo possibilita.
Acesse o diretório “switchs” criado anteriormente:
# cd /usr/local/etc/switchs/
Crie neste diretório o arquivo correspondente ao ativo a ser monitorado, no exemplo utilizaremos a switch “3Com_4200”:
# vim 3Com_4200
Adicione a este arquivo as checagens necessárias, como no exemplo a seguir:
############################################################################### # # Arquivo de monitoramento de SWITCH > Por Rafael Oliveira em 29/12/2010 # ############################################################################### # DEFINICOES DA SWITCH define host{ use generic-switch host_name 3Com_4200 alias Switch 3Com 4200 50 portas address 192.168.3.200 parents 3Com_4200 max_check_attempts 2 check_interval 10 retry_check_interval 10 check_period workhours notification_interval 60 notification_period workhours notification_options d,u,r contact_groups admins hostgroups switches } ############################################################################### # DEFINICOES DO GRUPO ############################################################################### # A definição do grupo de Switchs funciona da seguinte forma, este grupo é adicionado # a um dos arquivos de monitoramento, e nos outros arquivos é adicionado a linha # hostgroups na definição do host como esta acima, seguido do nome do grupo definido aqui define hostgroup{ hostgroup_name switches alias Network Switches } # CHECAGEM DOS SERVICOS # # PING define service{ use generic-service host_name 3Com_4200 service_description PING check_command check_ping!200.0,20%!600.0,60% max_check_attempts 2 normal_check_interval 10 retry_check_interval 10 check_period workhours notification_interval 120 notification_period workhours notification_options w,c,r contact_groups admins } # UPTIME define service { use generic-service host_name 3Com_4200 service_description Uptime check_command check_switch_uptime!public!80!90 max_check_attempts 2 normal_check_interval 10 retry_check_interval 10 check_period workhours notification_interval 120 notification_period workhours notification_options w,c,r contact_groups admins }
No exemplo acima utilizamos o plugin “check_switch_uptime”, faça o download do script e execute os mesmos passos do plugin check_printer, copie este para o diretório libexec e dê permissão de execução para o arquivo do plugin:
# wget https://www.monitoringexchange.org/attachment/download/Check-Plugins/Hardware/Network/Switch-%2526-Router/Uptime-of-router-or-switch/check_uptime.pl # mv check_uptime.pl /usr/local/nagios/libexec/check_switch_uptime.pl # chmod +x /usr/local/nagios/libexec/check_switch_uptime.pl
Ativando o monitoramento
Após criar os arquivos de monitoramento dos hosts, adicione estes arquivos ao arquivo nagios.cfg para que o Nagios consiga efetuar a leitura destes arquivos:
# vim /usr/local/nagios/etc/nagios.cfg
Adicione as seguintes linhas a este arquivo, logo após a linha “log_file”:
#################################################################### # SERVIDORES # #################################################################### # cfg_file=/usr/local/nagios/etc/servidores/srv-linux.cfg cfg_file=/usr/local/nagios/etc/servidores/srv-ruindows.cfg # #################################################################### # SWITCHS # #################################################################### # cfg_file=/usr/local/nagios/etc/switchs/3Com_4200.cfg # #################################################################### # IMPRESSORAS # #################################################################### # cfg_file=/usr/local/nagios/etc/printers/hp_producao.cfg #
Agora, adicione os hosts monitorados ao arquivo hostextinfo.cfg, este arquivo será responsável pelos ícones exibidos na interface web do Nagios, assim como as coordenadas definidas na Status Map e 3D Map:
# vim /usr/local/nagios/etc/hostextinfo.cfg
Adicione os hosts a este arquivo:
define hostextinfo{ host_name srv-linux # Nome do host notes_url http://192.168.3.40:1000 # Endereco Webmin do host icon_image ubuntu.png # Imagem utilizada nas propriedades do ativo icon_image_alt Ubuntu # Texto exibido ao passar o mouse em cima do icone do ativo vrml_image ubuntu.png # Imagem utilizada no statusmap statusmap_image ubuntu.gd2 # Imagem também utilizada no statusmap, porém comprimida para reduzir o consumo de CPU do servidor 2d_coords 500,500 # Coordenadas geográficas para a alocação dos hosts no StatusMap 3d_coords 300.0,50.0,75.0 # Coordenadas 3D para a alocação dos hosts no 3D Map } define hostextinfo{ host_name srv-ruindows # notes_url http:// # Windows não possui interface web icon_image vista.png icon_image_alt Windows_Server_2008 vrml_image vista.png statusmap_image vista.gd2 2d_coords 100,400 3d_coords 200.0,50.0,75.0 } define hostextinfo{ host_name 3Com_4200 notes_url http://192.168.3.200 icon_image r switch.png icon_image_alt 3Com_4200 vrml_image switch.png statusmap_image switch.gd2 2d_coords 400,700 3d_coords 200.0,50.0,75.0 } define hostextinfo{ host_name hp_producao notes_url http://192.168.3.100 icon_image r printer.png icon_image_alt HP_Producao vrml_image printer.png statusmap_image printer.gd2 2d_coords 300,700 3d_coords 200.0,50.0,75.0 }
Os ícones utilizados pelo hostextinfo ficam armazenados em /usr/local/nagios/share/images/logos/, para o exemplo acima você pode utilizar o excelente pack de ícones fnagios, para tal faça o download do pack e extraia este para o diretório logos:
# wget http://www.intec.uni.cc/bin/fnagios/fnagios.tar.gz # tar xvf fnagios.tar.gz # cd fnagios # mv equipaments/* /usr/local/nagios/share/images/logos # mv other/* /usr/local/nagios/share/images/logos # mv vendors/* /usr/local/nagios/share/images/logos
Instalando o Frontend Nuvola
O Nuvola é um tema completo para a interface web do Nagios, incluindo novos menus, imagens e logos. Faça o download do arquivo e copie-o para o diretório do Nagios:
# wget http://packzaitan.googlecode.com/files/nagios_skyns.tar.gz # mv /usr/local/nagios/share /usr/local/nagios/share.bkp # cp –R share /usr/local/nagios/
Assim como a interface original do Nagios, o Novula é composto basicamente por PHP e JavaScript, sendo assim, podemos configurar a sua interface ao nosso gosto, uma configuração simples que pode ser realizada é a alteração do seu menu lateral, fazendo com que determinado conjunto de menus fique expandido ou não logo na abertura da página do Nagios, para isso acesse o arquivo config.js, o arquivo de configuração do JavaScript do Nuvola:
# vim /usr/local/nagios/share/config.js
var homeMenuTitle = "Home"; var homeMenuOpen = false; var monitMenuTitle = "Monitoring"; var monitMenuOpen = true; var reportMenuTitle = "Reporting"; var reportMenuOpen = true; var configMenuTitle = "Configuration"; var configMenuOpen = false;
Instalando o PNP4Nagios (Modo Síncrono)
O PNP4Nagios nos auxiliará (e muito) na geração de gráfico de diversos serviços checados pelo Nagios. Este criará gráficos diários, semanais, mensais, em fim, de acordo com a necessidade do administrador e possibilitando a geração de PDF deste conteúdo para a apresentação de um relatório, por exemplo.
Habilite o modulo mod_rewrite do Apache:
# a2enmod rewrite
Faça o download do pnp4nagios, compile e instale este:
# wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.3.tar.gz?use_mirror=ufpr # tar xvf pnp4nagios-0.6.3.tar.gz # cd pnp4nagios-0.6.3 # ./configure # make all # make fullinstall
Habilite a leitura de dados no Nagios, acesse a seguinte linha do nagios.cfg e altere o valor desta para “1”:
# vim /usr/local/nagios/etc/nagios.cfg
... process_performance_data=1 ...
Ainda no arquivo nagios.cfg, adicione as seguintes linhas a este:
... service_perfdata_command=process-service-perfdata host_perfdata_command=process-host-perfdata ...
Por padrão, o pnp4nagios fará a geração de gráficos de todos os serviços checados (os que geram dados de performance), porém caso necessite que um determinado serviço não seja gerado gráfico, adicione a seguinte linha ao arquivo de monitoramento do host, no respectivo serviço que não deve ser gerado gráficos:
# vim /usr/local/nagios/etc/servidores/srv-linux.cfg
... define service { ... process_perf_data 0 ... } ...
Agora, adicione ao command.cfg as definições de leitura do pnp4nagios:
... define command { command_name process-service-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl } define command { command_name process-host-perfdata command_line /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA } ...
Teste o funcionamento do pnp4nagios acessando o endereço deste:
http://ip_do_servidor/pnp4nagios
Para integrar o pnp4nagios ao Nuvola, acesse o arquivo do ativo monitorado, e adicione as seguintes linhas a este:
# vim /usr/local/nagios/etc/servidores/srv-linux.cfg
Adicione as seguintes linhas aos serviços que terão os gráficos gerados pelo pnp4nagios:
define service { ... action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 }
Agora, reinicie o serviço do Nagios e acesse a sua interface Web, observe que após o nome do serviço que foi adicionado a linha acima, agora possui o ícone de acesso ao pnp4nagios.
Notificações por email
Utilizaremos o aplicativo Email para o envio de notificações, para tal, faça o download do Email e instale este:
# wget http://webftp.seduc.ce.gov.br/Nagios/email-2.5.1.tar.gz # tar xvf email-2.5.1.tar.gz # cd email-2.5.1 # ./configure # make # make install
Após efetuar a instalação do Email, edite o arquivo email.conf alterando o servidor SMTP deste arquivo para o servidor de email local da sua empresa:
# vim /usr/local/etc/email/email.conf
... SMTP_SERVER = ‘192.168.2.34’ ...
Reinicie o serviço do Nagios e pronto, seguindo as definições que foram atribuídas ao arquivo contacts.cfg, o Email enviará todas as notificações do Nagios para o grupo ou contato definido no contacts.cfg.
# /etc/init.d/nagios restart
Conclusão
Eu publiquei este artigo originalmente no Viva o Linux a pouco mais de 1 ano, porém houveram algumas mudanças desde então, como alteração de links e correções devido a atualização natural dos pacotes. Espero que agora esteja 100%, mais qualquer problema, ou dúvida estarei a disposição.
Gostaria de agradecer mais uma vez a comunidade OpenSource brasileira que tem crescido a cada dia e com isso, compartilhamento conhecimento para geração de novos frutos.
Abraços.
Publicado em julho 11, 2012, em Linux, Nagios e marcado como configuração do nagios, instalação do nagios, instalando, linux, monitoramento com nagios, nagios no ubuntu, plugins no nagios, servidor nagios. Adicione o link aos favoritos. 13 Comentários.
Ola Rafael, primeiramente gostaria de agradece-lo por esse belo tutorial contudo estou com o erro abaixo ao tentar reiniciar o Nagios:
Nagios Core 3.2.3
Copyright (c) 2009-2010 Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 10-03-2010
License: GPL
Website: http://www.nagios.org
Reading configuration data…
Read main config file okay…
Processing object config file ‘/usr/local/nagios/etc/objects/commands.cfg’…
Error: Invalid command object directive ‘$NOTIFICATIONTYPE$\nHost:’.
Error: Could not add object property in file ‘/usr/local/nagios/etc/objects/commands.cfg’ on line 9.
Error processing object config files!
***> One or more problems was encountered while processing the config files…
Check your configuration file(s) to ensure that they contain valid
directives and data defintions. If you are upgrading from a previous
version of Nagios, you should be aware that some variables/definitions
may have been removed or modified in this version. Make sure to read
the HTML documentation regarding the config files, as well as the
‘Whats New’ section to find out what has changed.
***********************************
Segue tambem uma parte do arquivo commands.cfg:
###############################################################################
# Arquivo commands.cfg > Por Rafael Oliveira em 15/12/2010
#
################################################################################
#Notificacao por email
define command{
command_name notify-host-by-email
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nEstado: $HOSTSTATE$\nIP: $HOSTADDRESS$\nInfo:
$HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n” | /usr/bin/email -s “** $NOTIFICATIONTYPE$ Host Alert:
$HOSTNAME$ is $HOSTSTATE$ **” $CONTACTEMAIL$
}
define command{
command_name notify-service-by-email
command_line /usr/bin/printf “%b” “***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState:
$SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$” |
/usr/bin/email -s “** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$
**” $CONTACTEMAIL$
}
Olá Augusto,
Pode ser que no momento que você copiou este conteúdo do VOL ele tenha criado algum ENTER ou espaço que não deveria, faça o seguinte, renomeie este arquivo e crie um novo commands.cfg com o conteúdo do link abaixo:
http://tinypaste.com/75a477ec
Abs!
Bom dia Rafael!!!
Primeiramente parabéns pelo tutorial, muito bom mesmo!!!
Agora deixe-me tirar algumas dúvidas com vc por favor…
Estou utilizando o ubuntu server 12.04…
Segui seu tutorial passo a passo, mas na hora de instalar o NRPE deu um erro e não consigo sair dele… tem como me dar uma ajuda por favor…
root@Matrix:~# apt-get install xinetd
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
xinetd já é a versão mais nova.
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 4 não atualizados.
root@Matrix:~# cd downloads
root@Matrix:~/downloads# ls
nagios nagios-plugins-1.4.16.tar.gz net-snmp-5.6.1.tar.gz
nagios-3.4.1.tar.gz nagios-snmp-plugins.1.1.1.tgz nrpe-2.12
nagios-plugins-1.4.16 net-snmp-5.6.1 nrpe-2.12.tar.gz
root@Matrix:~/downloads# cd nrpe-2.12
root@Matrix:~/downloads/nrpe-2.12# ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking for gcc… gcc
checking for C compiler default output file name… a.out
checking whether the C compiler works… yes
checking whether we are cross compiling… no
checking for suffix of executables…
checking for suffix of object files… o
checking whether we are using the GNU C compiler… yes
checking whether gcc accepts -g… yes
checking for gcc option to accept ANSI C… none needed
checking whether make sets $(MAKE)… yes
checking how to run the C preprocessor… gcc -E
checking for egrep… grep -E
checking for ANSI C header files… yes
checking whether time.h and sys/time.h may both be included… yes
checking for sys/wait.h that is POSIX.1 compatible… yes
checking for sys/types.h… yes
checking for sys/stat.h… yes
checking for stdlib.h… yes
checking for string.h… yes
checking for memory.h… yes
checking for strings.h… yes
checking for inttypes.h… yes
checking for stdint.h… yes
checking for unistd.h… yes
checking ctype.h usability… yes
checking ctype.h presence… yes
checking for ctype.h… yes
checking dirent.h usability… yes
checking dirent.h presence… yes
checking for dirent.h… yes
checking errno.h usability… yes
checking errno.h presence… yes
checking for errno.h… yes
checking fcntl.h usability… yes
checking fcntl.h presence… yes
checking for fcntl.h… yes
checking getopt.h usability… yes
checking getopt.h presence… yes
checking for getopt.h… yes
checking grp.h usability… yes
checking grp.h presence… yes
checking for grp.h… yes
checking for inttypes.h… (cached) yes
checking netdb.h usability… yes
checking netdb.h presence… yes
checking for netdb.h… yes
checking pwd.h usability… yes
checking pwd.h presence… yes
checking for pwd.h… yes
checking signal.h usability… yes
checking signal.h presence… yes
checking for signal.h… yes
checking for stdint.h… (cached) yes
checking for strings.h… (cached) yes
checking for string.h… (cached) yes
checking syslog.h usability… yes
checking syslog.h presence… yes
checking for syslog.h… yes
checking tcpd.h usability… no
checking tcpd.h presence… no
checking for tcpd.h… no
checking for unistd.h… (cached) yes
checking arpa/inet.h usability… yes
checking arpa/inet.h presence… yes
checking for arpa/inet.h… yes
checking netinet/in.h usability… yes
checking netinet/in.h presence… yes
checking for netinet/in.h… yes
checking socket.h usability… no
checking socket.h presence… no
checking for socket.h… no
checking for sys/types.h… (cached) yes
checking sys/time.h usability… yes
checking sys/time.h presence… yes
checking for sys/time.h… yes
checking sys/resource.h usability… yes
checking sys/resource.h presence… yes
checking for sys/resource.h… yes
checking for sys/wait.h… (cached) yes
checking sys/socket.h usability… yes
checking sys/socket.h presence… yes
checking for sys/socket.h… yes
checking for sys/stat.h… (cached) yes
checking for an ANSI C-conforming const… yes
checking whether struct tm is in sys/time.h or time.h… time.h
checking for mode_t… yes
checking for pid_t… yes
checking for size_t… yes
checking return type of signal handlers… void
checking for uid_t in sys/types.h… yes
checking type of array argument to getgroups… gid_t
checking for int… yes
checking size of int… 4
checking for short… yes
checking size of short… 2
checking for long… yes
checking size of long… 4
checking for uint32_t… yes
checking for u_int32_t… yes
checking for int32_t… yes
checking for va_copy… yes
checking for vsnprintf… yes
checking for snprintf… yes
checking for asprintf… yes
checking for vasprintf… yes
checking for C99 vsnprintf… yes
checking for getopt_long… yes
checking for main in -lnsl… yes
checking for socket in -lsocket… no
checking for main in -lwrap… no
checking for strdup… yes
checking for strstr… yes
checking for strtoul… yes
checking for initgroups… yes
checking for closesocket… no
checking for socklen_t… yes
checking for type of socket size… size_t
checking for SSL headers… SSL headers found in /usr
checking for SSL libraries… configure: error: Cannot find ssl libraries
root@Matrix:~/downloads/nrpe-2.12# make all
make: *** Sem regra para processar o alvo `all’. Pare.
root@Matrix:~/downloads/nrpe-2.12#
Alexander, faça o seguinte..
Depois do comando #cd nrpe-2.12, instale as bibliotecas ssl com o comando:
# apt-get install libssl-dev
Após só de um #make clean e compile e instale novamente com o #./configure, #make all, etc.
Abs!
Rafael, eu já tinha instalado o libssl-dev… mas quando dou o comando make aparece o seguinte…
root@Matrix:~/downloads# cd nrpe-2.12
root@Matrix:~/downloads/nrpe-2.12# make clean
make: *** Sem regra para processar o alvo `clean’. Pare.
root@Matrix:~/downloads/nrpe-2.12#
O que pode ser???
Abs,
Alexander
Marcos
Boa tarde, Alexandre.
Não sei se vc esta com o problema ai postado, tenta este comando, dentro da pasta nrep
./configure –with-ssl=/usr/bin/openssl –with-ssl-lib=/usr/lib/i386-linux-gnu
Kernel-hearders:
apt-cache search linux-headers-$(uname -r) pra ve se tem o pacote, se tiver:
apt-get install linux-headers-$(uname -r)
Estou com o mesmo problema do Alexander.!!!
Rafael, segui os procedimentos de instalação, mas na hora do comando make install-webconf aparece o seguinte erro:
~/nagios/nagios-3.2.3# make install-webconf
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
/usr/bin/install: não foi possível criar arquivo comum “/etc/httpd/conf.d/nagios.conf”: Arquivo ou diretório não encontrado
make: ** [install-webconf] Erro 1
Ja fiz o procedimento conforme estava no forum do VOL, mais o erro ainda persiste. Sabe o que pode ser ?
Rodrigo, você configurou e testou o LAMP no seu servidor? Esta parecendo que o Apache não esta instalado.
Rafael parabéns…..seu tutorial esta muito bem elaborado.
Na preparação esta informado para termos LAMP instalado, porém não
vi em nenhum lugar a utilização do MySql.
Neste tutorial ele não é utilizado?
obrigado
Neste tutorial não Marcos, mais com o MySQL já instalado você pode mais pra frente integrar o Nagios a ele, isso é bem simples de ser feito.
Cara, parabéns pelo tutorial, vou segui-lo passo a passo pois estou tendo algumas dificuldades, mas ficou excelente, parabéns mesmo.
Obrigado Claudio, qualquer problema estamos ai. Abs!