Tutoriais · Networking

Aprenda a instalar a plataforma de monitorização Nagios

30 Comentários

Por Hugo Matos para o Pplware

Como administrador de sistemas, é importante ter as melhores ferramentas que nos permitam monitorizar todos os elementos que fazem parte da nossa rede informática. Uma das plataformas gratuitas mais fantástica para monitorização é o Nagios, não só por ser opensource mas também pela forma como é possível estender a monitorização aos elementos mais estranhos.

Depois de termos apresentado aqui a plataforma, hoje ensinamos como podem proceder a instalação da mesma.

nagios_000


Para este tutorial foram usadas as seguintes versões:

  • CentOS-6.5-x86_64-minimal
  • nagios-4.0.2.tar.gz
  • nagios-plugins-1.5.tar.gz

Para instalar o Nagios 4.0.2 devem então seguir os seguintes passos:

Passo1) Como a versão usada do CentOS é uma versão minimal vamos ter de instalar a plataforma base (Apache + PHP) e as respectivas dependências necessárias para proceder à instalação do Nagios.

yum install -y httpd php gcc glibc glibc-common gd gd-devel make net-snmp wget

nagios_00

Passo2) Criar um utilizador, um grupo e respectiva password.

useradd nagios
groupadd nagcmd

nagios_01

Passo3) Vamos adicionar o utilizador nagios e o Apache ou grupo nagcmd.

usermod -G nagcmd nagios
usermod -G nagcmd apache

nagios_02

Passo 4) Criar um diretoria para download e instalação:

mkdir /root/nagios
cd /root/Nagios

nagios_03

Em seguida devem fazer download do Nagios e do Nagios-plugins

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.2.tar.gz 
wget http://assets.nagios.com/downloads/nagiosplugins/nagios-plugins-1.5.tar.gz

nagios_04

Passo 5) Em seguida descompactamos os ficheiros descarregados anteriormente:

tar –xvf nagios-4.0.2.tar.gz
tar –xvf nagios-plugins-1.5.tar.gz

nagios_05

Passo 6) Instalação do Nagios

cd nagios-4.0.2
./configure --with-command-group=nagcmd

nagios_06_2…output

nagios_06

Compilar o código fonte

make all
make install

nagios_07

A instalação vai ser realizada para o directório /usr/local/nagios/etc

make install-init
make install-commanmode
make install-config

nagios_08

Passo 7) Alterar o email de contacto no ficheiro contacts.cfg

vi /usr/local/nagios/etc/objects/contacts.cfg

nagios_09

Passo 8) Instalar e configurar a interface web para podermos aceder ao Nagios através do browser

make install-webconf

nagios_10

Vamos agora criamos uma password para o user “nagiosadmin”. Estas serão as credenciais para acesso via web

htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

nagios_11

Nota: Se optar por outro nome que não seja “nagiosadmin” terá de alterar o ficheiro /usr/local/nagios/etc/cgi.cfg

Passo 9) Compilar e instalar o Nagios-plugins

cd /root/nagios
cd nagios-plugins-1.5
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

nagios_13

Passo 10) Agora que instalamos o nagio e o nagio-plugins vamos verificar se não existe nenhum erro com a instalação. Para isso podemos usar o seguinte comando para validar a configuração do Nagios:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

nagios_14

Passo 11) adicionar o Nagios e o Apache ao arranque da máquina para quando esta reiniciar os serviços arrancarem de início

chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --add httpd
chkconfig --level 35 httpd on

nagios_15

Passo 12) Iniciar o Nagios e o Apache e aceder à interface web

service nagios start
service httpd start

nagios_16

Nota: Esta distribuição do centOS vem com firewall ativa que vai bloquear o acesso web ou vosso servidor, para isso podem apenas desligar o serviço

service iptables stop

nagios_17

Ou podemos permitir o trafego na firewall, para isso basta editar o ficheiro iptables e acrescentar duas linhas

vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

nagios_18

Por último temos de dar permissões no SELinux para deixar correr os processos do Nagios

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

nagios_19

Por fim, para acederem ao Nagios basta que abram um browser e escrevem o seguinte endereço:

/nagios”>http://<o-ip-do-vosso-servidor>/nagios

nagios_20

Uma vez quem o Nagios ter uma configuração de exemplo, é possível de imediato começar a monitorizar a nossa máquina sem ter de realizar qualquer configuração.

nagios_21

Esperamos que tenham gostado deste tutorial. Num próximo artigo iremos ensinar a monitorizar máquinas remotas com Windows. Estejam atentos e partilhas as vossas duvidas e sugestões. Boas monitorizações!

Autor: Pedro Pinto
Partilhar:
Também pode gostar

Comentários

30

Responder a Ricardo Silva Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Rui
    Rui

    Boas!

    Nagios, mt boa ferramenta de monitorização tanto de servidores como de activos de rede, uso na empresa e recomendo.

    Já agora, recomendo o nagiosql para fazer a gestão de objectos do Nagios.

    Cumprimentos,
    Rui

    1. Avatar de Vítor Moreira
      Vítor Moreira

      Boas Rui.

      Quantas máquinas monitorizas e o que é que monitorizas?

      Cumps,
      Vítor Moreira

      1. Avatar de Rui
        Rui

        Boas Vitor,

        De momento 32 hosts.

        Tenho vários serviços, mas aqui vai.

        O tipicos, CPU, MEM, HD

        Depois tenho alguns scripts, para AD, DNS, ORACLE-DB, Links(websites), Exchange, SMTP, Certificados, Servidores HP, etc…

        Se precisarem de ajuda a continuar a escrever sobre nagio, sintam-se a vontade.

        Cumprimentos,
        Rui

        1. Avatar de Vítor Moreira
          Vítor Moreira

          Obrigado pela resposta.

          O Nagios, na altura, foi uma das hipóteses consideradas e ainda consegui fazer umas coisas engraçadas.

          No entanto, houve a necessidade de integrar com outros sistemas (tickets, alterar interfaces gráficas) e, no meu caso, a quantidade de máquinas é significativa (cerca de 3 mil máquinas).

          Para ambientes mais pequenos, o Nagios é praticamente imbatível!

          Foi uma boa escolha, Rui!

          1. Avatar de Rui
            Rui

            Deixa-me adivinhar…. Open-NMS =)

            Os “Event Handler” dão alguma “proactividade” ao sistema, tinha um problema com um serviço do TrendMicro que quando parava so com restart a maquina é que realmente corrigia o problema, enquando nao instalei o patch era o nagios que lhe dava a ordem de restart.

          2. Avatar de Hugo Matos
            Hugo Matos

            Boas,
            Neste momento tenho o Nagios a monitorizar 372 máquinas (hosts) e mais de 1800 serviços.
            Tenho o Nagios virtualizado num Hyper-v com 16Gb de disco e 1024 MB de ram e funciona na perfeição…

        2. Avatar de Paulo
          Paulo

          Voce disponibiliza script seu de ad?

  2. Avatar de Pedro Miguel Lourenco
    Pedro Miguel Lourenco

    Só se torna complicado em termos de recursos de nagios quando são muitos objectos. Aí os requesitos de memória e cpu são algo a considerar.

  3. Avatar de JS
    JS

    “Nota: Se optar por outro nome que não seja “nagiosadmin” terá de alterar o ficheiro /usr/local/nagios/etc/cgi.cfg”

    Esta valeu umas boas horas a compreender porque na webpage não apareciam os hosts… quando a verificação do ficheiro config pelo terminal dava tudo OK…

  4. Avatar de Mário Pereira
    Mário Pereira

    zabbix 🙂

  5. Avatar de Ricardo
    Ricardo

    Excelente artigo.

    Centreon como interface do Nagios e fica um must. Podemos monitorizar “tudo e um par de botas” com uma interface muito intuitiva.

  6. Avatar de JOGLO
    JOGLO

    Volto a destacar o Spiceworks.

    1. Avatar de FM
      FM

      Na minha opinião o SW do ponto de vista da monitorização pura e dura ainda fica muito atrás.

      Já se consegue monitorizar serviços de forma mais livre? Nem que seja via telnet ao porto…?

  7. Avatar de Raclima23
    Raclima23

    excelente artigo adorei tal software vou experimentar 🙂

  8. Avatar de cesar_panter
    cesar_panter

    Muito bom.
    Experimentem meter o check_MK em cima do Nagios e tem uma ferramenta de luxo.

    1. Avatar de Hugo Matos
      Hugo Matos

      tem boa pinta cesar_panter, obrigado pela dica 🙂

      1. Avatar de cesar_panter
        cesar_panter

        De nada Hugo 🙂

  9. Avatar de jorge
    jorge

    Bom dia, qual o sistema operativo que aconselham para instalar o nagios?

  10. Avatar de Ricardo Silva
    Ricardo Silva

    Boas,

    segui o tuturial direitinho mas da-me um erro….

    ao entrar na web aparece o seguinte:
    Error: Could not read object configuration data!

    Here are some things you should check in order to resolve this error:

    Verify configuration options using the -v command-line option to check for errors.
    Check the Nagios log file for messages relating to startup or status data errors.

    – Caso tente parar o serviço recebo a seguinte mensagem: “nagios está morto mas o subsys está bloqueado”.

    caso aceda ao ficheiro /var/log/messages obtenho o seguinte:
    nagios: qh:Failed to init socket ‘usr/local/nagios/var/rw/nagios.qh’ . blind() failed: No such file or directory.
    nagios: error: failed to initialize query handler.Aborting.

    desativei a firewall e o SeLinux.

    caso algume me possa ajudar agradecia.

    Cumprimentos,
    Ricardo Silva

    1. Avatar de Ricardo Silva
      Ricardo Silva

      Desculpem falta indicar o SO.

      Centos 6.5.

      1. Avatar de omlet81
        omlet81

        Também tive esse problema. Resolvi-o criando manualmente esse ficheiro. Com o grupo e utilizador nagios/nagios criados anteriormente.

        1. Avatar de Ricardo Silva
          Ricardo Silva

          Bom dia,

          pode ser mais preciso na resolução?

          OBRIGADO PELA AJUDA.

          1. Avatar de omlet81
            omlet81

            No meu caso,e depois de analisar os logs reparei não foi criado o diretorio: /usr/local/nagios/var/rw
            que é necessário para criar os ficheiros nagios.cmd, o nagios.qh, etc.

            Criei manualmente esse diretório e passou tudo a funcionar perfeitamente.

            Não sei se é a melhor solução, mas comigo resultou.

          2. Avatar de sltex
            sltex

            Também estou com esse problema mas não estou a conseguir dar a volta… quando dizes que crias-te os ficheiros onde foste buscar o conteúdo ??

  11. Avatar de sltex
    sltex

    Apos pesquisa deixo link de como ultrapassar o problema
    http://nagios.manubulon.com/traduction/docs14en/commandfile.html

  12. Avatar de Adriano
    Adriano

    Muito boa ferramenta de monitorização.
    Obrigado

  13. Avatar de Luis Oliveira
    Luis Oliveira

    Estou a começar a usar o NAGIOS agora !!! e… tenho logo um “pequeno” desafio entre mãos que é a monitorização distribuida !!!

    Ou seja.. Tenho um Servidor (Master) (que tem um IP Público) onde quero receber as notificações de todos os restantes servidores (slaves) que estão em redes privadas (com acesso à net obviamente :] )

    Tenho o WATO (Instalação de OMD), alguem me pode dar um exemplo de como fazer esta configuração (à 3 dias que ando de volta disto :S )

  14. Avatar de Lucas Leitow
    Lucas Leitow

    Muito bom mesmo! Meus parabéns, fazia um bom tempo que eu estava tentando instalar esta ferramenta para monitorar os servers na empresa, mas não havia encontrado nenhum tutorial que tivesse as informações simples e diretas, sempre faltava algo, ou algum comando estava digitado errado.

    Obrigado por compartilhar seu conhecimento, ficou excelente esse tutorial!

    Abraço!

  15. Avatar de Alexandre Vieira
    Alexandre Vieira

    Boa Tarde

    Instalei o Nagios 4.2.0 + pluguins 2.1.2 em Ubuntu 64 bit 16.04.01 LTS,

    mas tenho o seguinte erro quando tento usar o check_snmp.

    (No output on stdout) stderr: execvp(/usr/local/nagios/libexec/check_snmp, …) failed. errno is 2: No such file or directory

    na directoria /usr/local/nagios/libexec/ o check_snmp não está lá.

    Já instalei o pacote net-snmp 5.7.3 (LTS) http://net-snmp.sourceforge.net/

    Consigo obter informações snmp pelo net-snmp Ex: snmpget -v 2c -c public 192.168.1.254 SNMPv2-MIB::sysUpTime.0

    Podem dar-me uma ajuda sff?