Nagios com Check-MK

nagios+check

O Nagios é uma excelente ferramenta de monitoração, desde hosts e serviços até temperatura (dependendo do plugin e do hardware que você usa :-)), já o vimos aqui no artigo Monitorando Servidores com Nagios, mas como alguns leitores pediram vamos colocar o Nagios com o Check_MK, ele é um plugin que substitui o NRPE (plugin remoto de checagem) e tem até uma interface mais agradável do que o Nagios, além de consumir menos recursos no servidor.

Vamos instalar a versão mais atual do Nagios e do Check_MK no Ubuntu server 12.04

Primeiro vamos instalar as dependências para baixar e compilar o Nagios, como root faça:

# apt-get install build-essential wget libgd2-xpm libgd2-xpm-dev libssl-dev

Obs: O libssl-dev é opcional, serve para que o Nagios possa utilizar o plugin de ssl.

Vamos instalar os programas utilizados para interface, visualização e funcionamento do Nagios:

# apt-get install apache2 php5-gd libapache2-mod-php5

Crie, sem diretório HOME nem shell, o usuário nagios:

# useradd -M -d /opt/nagios -s /bin/false nagios

Adicione o usuário www-data e usuários nagios ao grupo nagios:

# usermod -a -G nagios www-data
# usermod -a -G nagios nagios

Vamos para o diretório /usr/src e baixemos o Nagios e seus plugins:

OBS: Se você utiliza proxy lembre-se de configurá-lo antes de tentar baixar.

# cd /usr/src

# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz

# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz

Vamos descompactar os arquivos baixados:

# tar xvf nagios-3.4.3.tar.gz

# tar xvf nagios-plugins-1.4.16.tar.gz

Agora vamos compilar o Nagios (melhor parte :-)):

# cd nagios

# ./configure --prefix /opt/nagios --sysconfdir=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios --with-command-group=nagios

Assim iremos compilar o Nagios com diretório de instalação /opt, de configuração /etc com usuários e grupo nagios para execução do servidor e dos comandos.

Depois de executarmos o configure teremos esse resultado:

*** Configuration summary for nagios 3.4.3 11-30-2012 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
            Embedded Perl:  no
             Event Broker:  yes
        Install ${prefix}:  /opt/nagios
                Lock file:  ${prefix}/var/nagios.lock
   Check result directory:  ${prefix}/var/spool/checkresults
           Init directory:  /etc/init.d
  Apache conf.d directory:  /etc/apache2/conf.d
             Mail program:  /bin/mail
                  Host OS:  linux-gnu

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  

Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

Agora vamos: compilar, instalar, instalar os arquivos de inicialização, os arquivos de configuração e os arquivos de comandos e configuração do Apache para o Nagios.

# make all
# make install
# make install-init
# make install-config
# make install-commandmode
# make install-webconf

Agora vamos compilar e instalar os plugins:

Instale o perl-snmp para os plugins do Nagios:

# perl -MCPAN -e ‘install Net::SNMP’

# cd /usr/src

# cd nagios-plugins-1.4.16/

# ./configure --prefix /opt/nagios --with-nagios-user=nagios --with-nagios-group=nagios

Agora é só compilar e instalar:

# make

# make install

Vamos criar o arquivo com o usuário e senha para autenticação na interface Web:

# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin

Coloque a senha de acesso e pronto.

Agora vamos configurar a inicialização do nagios, verificar se existem erros nos arquivos e executar o serviço:

# update-rc.d -f nagios defaults
# /opt/nagios/bin/nagios -v /etc/nagios/nagios.cfg
# /etc/init.d/nagios start

O Nagios está compilado e pronto para acessar, só o básico e nada configurado :-), mas vamos deixar isso pro check_mk.

Agora reincie o servidor Apache:

# /etc/init.d/apache2 restart

Para acessar a interface padrão utilize o seguinte endereço no browser:

http://ip-do-servidor/nagios

tela-nagios

Utilize a senha do nagiosadmin que foi criada anteriormente.

Para o check_mk funcionar é preciso o módulo de Python para Apache, instale com o seguinte comando:

# apt-get install libapache2-mod-python

Vamos instalar o check_mk, primeiro vamos baixá-lo dentro do /usr/src:

# wget http://mathias-kettner.de/download/check_mk-1.2.0p3.tar.gz

# tar xvf check_mk-1.2.0p3.tar.gz

# cd check_mk-1.2.0p3

# ./setup.sh

Agora verifique os locais apontados para instalação, lembrando que o nosso Nagios está instalado no /opt/nagios e os plugins estão em /opt/nagios/libexec, incluindo o plugin check_icmp, por isso troque o caminho do plugin para /opt/nagios/libexec/check_icmp quando for perguntado.

Lembre-se que os caminhos apresentados pelo check_mk são obtidos por consultas do Nagios, exceto o do plugin check_mk.

Logo que ele compilar basta reiniciar o Apache e o Nagios para começar a usar:

# service apache2 restart

# service nagios restart

Agora instale os pacotes dos agentes nos clientes e não esqueça de liberar no firewall deles o acesso a porta 6556.

Baixe o cliente para sua distribuição Linux e para o Microsoft Windows aqui: http://mathias-kettner.com/check_mk_download.html

Lembrando que se você usa Ubuntu ou Debian deve ter o sudo e xinetd instalados.

Para instalar no Windows faça o seguinte:
1 – Baixe o agente no diretório C:
2 – Descompacte o agente
3 – Execute com :

cd   C:\check_mk-1.1.10p3\agents\windows
check_mk_agent.exe   install
net   start   check_mk_agent

No edite o /etc/hosts com o IP e o nome(nome que você quer escolher) para cada cliente, acrescentando no final:

# vi /etc/hosts
.
.
.

#####
# Lista de Servidores para o Check_MK #
192.168.1.252 Debian-Server
192.168.1.251 Windows2008-AD
192.168.1.250 Windows2008-DFS

#######################################

Criada as máquinas no /etc/hosts e os agentes já instalados, vamos adicioná-las ao check_mk:

# vi /etc/check_mk/main.mk

all_hosts = [ “Debian-Server”, “Windows2008-AD”, “Windows2008-DFS” ]

Agora basta forçar a checagem manual dos hosts e a atualização do Nagios:

# check_mk -I Debian-Server

# check_mk -I Windows2008-AD

# check_mk -I Windows2008-DFS

# check_mk -O

Pronto pode acessar a interface do Nagios com as informações do Check_MK ou na interface do próprio Check_MK:

http://ip-do-servidor/nagios

ou

http://ip-do-servidor/check_mk

A tela do check_mk é a seguinte:

tela-check-mk

Agora é só monitorar os hosts, lembrando que na interface do check_mk é possível configurar alertas e criar novos usuários para acessar a monitoração.

Não esqueça de comentar e curtir nossa página no Facebook.

  • Douglas

    Ficou show,sempre que tento rodar o nagios não consigo ,vou seguir esse tuto e ver o que da.
    Posso monitorar as estações também ? tem descobrimento automatico

    • Douglas,

      O descobrimento automático só diria se o host está online ou não, é preciso instalar o agente nos clientes para obter as informações necessárias. Pode monitorar estações e servidores.

  • Gustavo Lago

    Boa! Uso o Nagios com o Centreon pra administrá-lo.

    • Gustavo,
      O bom do Check_MK é que não precisa criar o arquivo de configuração do host. O comando check_mk -I HOST , cria a entrada com as configurações em /etc/nagios/check_mk.d/check_mk_objects.cfg.

      Podemos habilitar alarmes, comandos e muito mais pela interface web.

  • Ótimo material Vagner (yoda), só me perdi na instalação do check_mk, tudo o que aparecer eu tenho que apontar para o caminho /opt/nagios ?

    • João,

      Todos os valores estão certos, menos o do check_icmp, esse é o único que deve ser modificado, o resto está certo, fiz vários testes aqui e ele assume os valores do nagios.

  • Vagner, Muito bom o seu Post. Utilizo mais o Zabbix pela facilidade de configuração. Mais vendo seu post vi que configurar o Nagios + CheckMK parece ser bem simples.

    • Emerson,

      Com o check_mk quase não se mexe em arquivos. Quase tudo é pela interface.

  • Mais um artigo com o padrão Fonseca de qualidade, Parabéns.

    • Thiago,

      Valeu meu amigo, a idéia é falar de coisas que sejam úteis para os profissionais.

      Abraços.

  • Marcio Rodrigues

    Vagner,

    Obrigado mesmo por compartilhar o post do nagios com check_mk. Não conseguia fazer funcionar, mas agora esta tudo funcionando.

    Obrigado

  • Douglas

    me perdi ,após o comando abaixo :

    ./setup.sh….

    Check_MK configuration
    Directory where check_mk looks for its main configuration file main.mk.
    An example configuration file will be installed there if no main.mk is
    present from a previous version:
    ( default –> /etc/check_mk): “não consgio alterar o caminho do plugin ” help…

    • Douglas,

      A compilação do Nagios e dos plugins ocorreu sem problemas?

      Parece que o script do check_mk não está encontrando as informações necessárias. Descompacte de novo e tente.

      • Douglas

        agora me deparei com esse erro,acho que estou errando em alterar o caminho do plugin.

        Proceed with installation (y/n)? y
        mkdir: cannot create directory `/usr/src/check_mk-1.2.0p3/y/logwatch’: File exists
        ./setup.sh: line 693: /usr/src/check_mk-1.2.0p3/y: Is a directory
        ./setup.sh: line 694: /usr/src/check_mk-1.2.0p3/y: Is a directory

        • Douglas,

          Faça “make clean” , pois isso parece erro de compilações anteriores.

          Se não funcionar remova o diretório e depois faça novamente.

  • Vagner,

    Tinha necessidade mesmo de compilar tudo? com o apt-get não resolveria tudo?

    Abraços, òtimo post

    • Welbster,

      Ao fazer por apt-get não teria as versões mais recentes dos programas, ao compilar temos programas mais de acordo com nossas necessidades, independente do que as distribuições consideram necessários nos pacotes.

  • Jefferson

    Vagner,

    Na empresa onde trabalho estamos querendo fazer a implementação de um novo nagios, até porque o que estamos utilizando já está bem desatualizado. Comecei a instalação da nova versão e também coloquei o check_mk, mais como sou um novato em linux e também a ferramenta parece ser um pouco complexa, gostaria de algumas dicas para cadastro de hosts e serviços nessa versão. Achei extremamente interessante, a interface é muito agradável. Algumas dicas de configurações de serviços cairia otimamente bem, pois não tem muito na internet sobre o check_mk.
    Muito bom o seu post, obrigado por divulgar sobre essa ferramenta!

    Att,

    Jefferson

    • Jefferson,

      Você pode criar arquivos com configurações manuais para cada host ou pode adicionar hosts pelo check_mk (check_mk -I HOST ; check_mk -R), ele cria entradas para cada host no arquivo /etc/nagios/chech_mk.d/check_mk_objects.cfg

  • Pedro Gustavo Dias Diogenes

    Excelente o tutorial Vagner. Fiz aqui e funcionou beleza.

    Eu ja tinha o nagios mais estava desatualizado, e com o check_mk ficou otimo.

    Eu so tenho uma duvida: como eu faço para incluir switches e roteadores pelo check_mk?

    • Pedro,

      A intenção é sempre facilitar a vida do profissional de TI.
      Quanto a fazer ingresso de equipamentos de rede, posso fazer um post sobre isso. Que acha?

      Abraços.

      • Pedro Gustavo Dias Diogenes

        Eu acho ótimo. Seria excelente, porque na minha organização eu monitoro roteadores que fazem link com outras cidades, alem de vários switches.

        Fico no aguardo desse post. Obrigado.

      • Ora ai esta uma grande ideia…

  • Luis Paulo Cruz

    Muito Legal..vai ajudar muita gente!!
    Parabéns!!

  • Bernardo G. L

    Parabens, ja tinha tempo que estava procurando um bom tutorial sobre o MK. Ja instalei e coloquei para funcionar. Mais não estou conseguindo achar como configura a notificação por email.

    Obrigado!!

  • Leandro Barros

    Olá Bom dia parabéns pelo post muito bom mesmo!!!!
    Estou implementando o nagios com check_mk mais estamos com dificuldade para configurar serviços a ser monitorado.
    Nosso caso e que precisamos monitorar serviço especifico através da porta COM.
    E possível???

    • Leandro,

      Nunca monitorei serviços pela porta serial, o que seria?

      • Leandro Barros

        Seria software para coleta de dados maquina processamento clínico!!!

        • Leandro, é para monitorar se a porta está ativa ou não?

          • Leandro Barros

            Para monitorar se esta transmitindo ou não!!!!

          • Leandro,

            Não dá pra monitorar o que não possui ip, mas se o equipamento onde a porta está conectado possuir snmp pode fazer a coleta de informações por esse protocolo.

  • André

    Vagner,

    Para configurar um email para receber as notificações posso fazer no Check_MK?

    • André,

      Sim, pode fazer. Basta configurar um smtp de saída nesta máquina.

  • Vagner,

    O snmp e o snmpd, pode ser instalado via apt-get depois da compilação?

  • O Grande problema dessa compilação é os path descrito nos plugins baixado no nagios exchange, tem de mudar tudo!

    • Eu uso apenas os plugins do check_MK, por isso não tenho problemas na compilação 🙂

  • Um pequeno problema…
    Livestatus problem: Cannot connect to ‘unix:/var/log/nagios/rw/live’: [Errno 2] No such file or directory

    • Verfica os passos de compilação e os caminhos na hora de responder as perguntas do check_mk.

      • Ola Wagner estou me deparando com o mesmo erro que o Oliveira, poderia me diz com o vc resolveu esse erro. Já verifique o caminho na .setup.sh e esta correto.

        Livestatus problem: Cannot connect to ‘unix:/usr/local/nagios/var/rw/live’: [Errno 2] No such file or directory

  • Tenho que instalar o livestatus?

  • Wagner, parabéns em!!!! belo post! Agora como faço para colocar ou retirar serviços especificos de cada host? qual o arquivo de conf do check_mk?

    • Oliveira,

      O arquivo onde o check_mk cria os hosts é: /etc/nagios/check_mk.d/check_mk_objects.cfg .

      • De fato! Bem similar ao Nagios, porem mesmo apagando a entrada do serviço no arquivo e restartando o Nagios apache e mk ele não sai, isso tbm acontece com o mrpe queé similar ao NRPE! Obg pela atenção Vagner!

        • Oliveira,
          Pelo WATO você consegue escolher quais serviços vão ser monitorados sem ter que escolher via linha de comando, quando você cadastra os serviços pela linha de comando, mesmo apagando do arquivo ele é criado de novo.

  • Roberto Fujiki

    Alguém pode me ajudar, estou tentando instalar o check_mk, mas da erro na compilação do check_mk.d, quando digito: check_mk -o aparece o seguinte erro: Error in plugin file /usr/share/check_mk/checks/3ware_disks: name ‘checkgroup_of’ is not defined

  • Rodrigo Mori

    Boa Tarde.
    Adicionei alguns imagens para substitui a figura de interrogação no mapa do nagios. Acontece que toda vez que faço alteração via Check_MK, essa imagens desaparecem e volta a figura do ponto de interrogação.

    Alguém sabe o que pode ser isso ?

    • Rodrigo Mori, achou a solução?

      • Rodrigo Mori

        Nao..

  • thiago felix

    1 boa noite a todos e muito obrigado por compartilha seu conhecimento estou com seguinte erro alguem poderia me ajudar
    ./setup.sh: line 693: /usr/src/nagios/check_mk-1.2.0p3/y: Is a directory
    ./setup.sh: line 694: /usr/src/nagios/check_mk-1.2.0p3/y: Is a directory

  • Junior Cesar

    Vagner boa tarde! Muito bacana o Post. Atualmente utilizo o Icinga e está tudo rodando. Fiz a instalação do check_mk conforme seguindo seu post. Os hosts estão aparecendo normalmente como tb consigo adicionar novos sem problema nenhum. No icinga me aparece os hosts e seus serviços sendo monitorados normalmente, adicionados pelo check_mk. Mas na tela do check_mk tenho essa menssagem “Livestatus problem: Unhandled exception: 400: Table ‘services’ has no column ‘service_comments_with_extra_info'” . Alguém saberia o que pode ser. Obrigado.

  • oseias

    essa linha(apt-get install libapache2-mod-python)
    tem que se na raiz mesmo

  • Olivio Ferreira

    Vagner, preciso de sua ajuda… também enfrento o mesmo problema de amigos acima.. Livestatus problem: Cannot connect to ‘unix:/etc/log/nagios/rw/live’: [Errno 2] No such file or directory

    Pode me ajudar??

  • Claudio

    Boa tarde Por favor poderia me ajudar estou com esse erro na instalação

    ./setup.sh: line 693: /usr/src/nagios/check_mk-1.2.0p3/y: Is a directory
    ./setup.sh: line 694: /usr/src/nagios/check_mk-1.2.0p3/y: Is a directory

  • Hugo Alexandre

    Otimo artigo Vagner, Fiz do jeito que está nele e deu tudo certo. Só gostaria de tirar uma ducida com vc. Ao instalar o client no meu primeiro servidor o monitor fica me apresentando a seguinte mensagem: (Return code of 127 is out of bounds – plugin may be missing).
    Poderia me ajudar com isto?

  • Ricardo Mota

    Boa tarde,

    Amigos, vocês conseguiram resolver um certo erro que dá?

    Erro: Livestatus problem: Cannot connect to ‘unix:/var/log/nagios/rw/live’: [Errno 2] No such file or directory

    Alguém sabe dizer se é por conta das escolhas. No caso da troca do diretório padrão para /opt/nagios… quais opções eu deveria mudar?

    Abraços a todos!

  • Rogerio

    Bom dia!

    é possível rodar o agente check_mk em outra porta e configurar o nagios a buscar o host na porta indicada?

    cenário:
    do meu pc eu conseguir monitorar cada uma das n estações de cada cliente. Qual a melhor maneira de fazer isso?

    Grato.

  • Tomei vergonha e estou estudando Nagios. Mas aí, fiz no CentOS e é mais fácil que tudo na vida.

    # yum install nagios check_mk

    Depois disso é só acessar…

    ip/nagios
    ip/check_mk

    Agora vou futucar isso aqui.

    My Master, ainda seremos um jedi que nem vc!

    Grande abraço meu amigo.

    • Roberto Santos

      Boa tarde Mario,

      To querendo instalar no CentOS tbm, sabe me dizer quais repositórios posso configurar para fazer a instalar via yum?

      Desde já agradeço.

      Abraços..