Artigo 10 – Nagios utilizando MySQL com NDOUtils

Olá Pessoal, hoje quero escrever sobre o NDOutils que possibilita fazer que o Nagios salve as informações de logs para uma database no MySQL.

A instalação padrão do Nagios proporciona que o logs sejam salvos no diretório:

/usr/local/nagios/var/archives/

Caso queira salvar 1 log por dia por tempo indeterminado é necessário desabilitar esta opção abaixo no nagios.cfg:

use_syslog=1

Para saber mais sobre o NDOutils acesse o site:

http://nagios.sourceforge.net/docs/ndoutils/NDOUtils.pdf
http://nagios.sourceforge.net/docs/ndoutils/NDOUtils_DB_Model.pdf

Agora vamos para parte Prática, acesse o seu servidor Nagios (siga todos os artigos) para implentarmos o NDOUtils 🙂


## Vamos instalar a dependência, necessário cadastrar senha para o banco

aptitude install mysql-server-5.0 libmysqlclient15-dev

## Vamos baixar o NDOutils

cd /usr/src/
wget http://downloads.sourceforge.net/project/nagios/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz
tar zxvf ndoutils-1.4b9.tar.gz
cd /usr/src/ndoutils-1.4b9/

## Mais ajustes, Compilar e instalar

./configure –enable-mysql –disable-pgsql –with-ndo2db-user=nagios –with-ndo2db-group=nagios
make

## Criando a database no MySQL, utilize a senha criada anteriormente

cd /usr/src/ndoutils-1.4b9/db/
mysqladmin –user=root -p’senha’ create nagios
mysql -u root -p’senha’ nagios < mysql.sql
./installdb -u root -p senha -h 127.0.0.1 -d nagios

## Agora vamos finalizar a instalação

cd  /usr/src/ndoutils-1.4b9/src/
cp  ndomod-3x.o ndo2db-3x log2ndo file2sock /usr/local/nagios/bin/
cp  ndomod-3x.o /usr/local/nagios/bin/ndomod.o

cd  /usr/src/ndoutils-1.4b9/config/
cp  ndo2db.cfg-sample ndomod.cfg-sample /usr/local/nagios/etc/

cd  /usr/local/nagios/etc/
mv  ndo2db.cfg-sample ndo2db.cfg
mv  ndomod.cfg-sample ndomod.cfg
chown nagios.nagios ndo*

## Agora, acesse o arquivo de configuração do Nagios

vim /usr/local/nagios/etc/nagios.cfg

## Insira os parametros abaixo no final do arquivo:

event_broker_options=-1
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

## Criar arquivo de configuração do NDO

mv /usr/local/nagios/etc/ndo2db.cfg  /usr/local/nagios/etc/ndo2db-cfg-original

vim /usr/local/nagios/etc/ndo2db.cfg

## Deixe exatamente como abaixo:

lock_file=/usr/local/nagios/var/ndo2db.lock
ndo2db_user=nagios
ndo2db_group=nagios
socket_type=tcp
socket_name=/usr/local/nagios/var/ndo.sock
tcp_port=5668
use_ssl=0
db_servertype=mysql
db_host=localhost
db_port=3306
db_name=nagios
db_prefix=nagios_
db_user=root
db_pass=senha
max_timedevents_age=1440
max_systemcommands_age=10080
max_servicechecks_age=10080
max_hostchecks_age=10080
max_eventhandlers_age=44640
max_externalcommands_age=44640
debug_level=0
debug_verbosity=1
debug_file=/usr/local/nagios/var/ndo2db.debug
max_debug_file_size=1000000

## Agora vamos editar o outro arquivo

mv /usr/local/nagios/etc/ndomod.cfg /usr/local/nagios/etc/ndomod.cfg-original

vim /usr/local/nagios/etc/ndomod.cfg

## Deixe exatamente como abaixo:

instance_name=nagios
output_type=tcpsocket
output=127.0.0.1
tcp_port=5668
use_ssl=0
output_buffer_items=5000
buffer_file=/usr/local/nagios/var/ndomod.tmp
file_rotation_interval=14400
file_rotation_timeout=60
reconnect_interval=15
reconnect_warning_interval=15
data_processing_options=-1
config_output_options=2

## Agora vamos iniciar o serviço

/usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

OBS: Recomendo que insira esta linha no arquivo /etc/rc.local


## Necessario Reload no Nagios

/etc/init.d/nagios restart

## Verifique no arquivo de log do nagios se encontra a linha referente o NDO

cat /usr/local/nagios/var/nagios.log | grep ndomod

Event broker module ‘/usr/local/nagios/bin/ndomod.o’ initialized successfully


## Blz e agora? como consultar o banco??

aptitude install phpmyadmin

OBS: Marque a opção Apache2

## Acesse o diretório abaixo

cd /usr/src/ndoutils-1.4b9/db/queries/

OBS: Neste diretório existem algumas consultas prontas utilize o phpmyadmin para executa-las.

Conclusão: Agora utilize a sua criatividade de desenvolvedor para criar uma interface com as suas consultas ok 🙂

Considerações: Pessoal já existe uma interface de consultas dos logs do Nagios incluidos no MySQL e esta no Centreon, futuramente pretendo escrever sobre o Centreon, mas para isso creio que seja necessário conhecer o Nagios de uma forma mais profunda.

.
.
.
🙂
Luciano Maia Cirilo
LPIC-3
www.nagiosnapratica.com.br

Anúncios

, , ,

  1. #1 por Diramos em janeiro 25, 2011 - 9:16 pm

    Tutorial excelente!
    Não faltou nada.
    Parabéns!

    Diramos

  2. #2 por Ronaldo I. S em fevereiro 23, 2011 - 7:05 pm

    Muito bom acabei de implementar e fico jóia mesmo obrigado pela força…

  3. #3 por juranir em abril 17, 2011 - 6:51 pm

    Luciano,
    Parabéns pelo artigo, me ajudou muito. A partir de hoje esse é um site que esta em minha lista de favoritos.

  4. #4 por Ricardo Germano em maio 20, 2011 - 8:02 pm

    Luciano parabéns, gostaria de saber se você me autoriza utilizar parte do seu material, na minha monografia, estou criando um script automático de instalação baseado em Debian Squeese, depois de pronto te envio!
    Abraço!
    E Viva o Nagios!

  5. #6 por Marcio em julho 1, 2011 - 9:29 am

    Muito didático e pratico a seu artigo. Ajudou bastante. Parabéns

    Márcio Rodrigues

  6. #7 por Leonardo Silva em outubro 15, 2012 - 9:46 pm

    Boa Noite Luciano a linha onde especificamos a senha do banco tem de estar em negrito o você so a destacou pois se refere a senha do banco.?

    Parabéns pelos excelentes tutorias que você disponibiliza.

  7. #8 por Sidnei Inácio em outubro 26, 2012 - 12:50 pm

    Prezados, Algumas dicas:

    1ª Visualizar Log do Postfix (Debian)

    tail -f /var/log/mail.log

    2ª Teste de Envio

    telnet localhost 25
    mail from: localhost
    rcpt to: email@provedor.com.br
    data
    test
    .
    quit

    3ª Configurar email com autenticação SMTP:

    configurar arquivo /etc/postfix/main.cf

    #SMTP relayhost
    relayhost = provedor_email.com.br
    mailbox_size_limit = 0

    ## TLS Settings
    # configuracao tls
    smtp_sasl_auth_enable = no
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    criar arquivo de senhas “sasl_passwd” em /etc/postfix/ com as seguintes informações:
    provedor TAB email@dominio.com.br:senha_doemail

    conteudo do arquivo sasl_passwd
    mail.dominio.com.br email_teste@dominio.com.br:senha

    Agora, vamos compilar e indexar este arquivinho de senhas
    postmap /etc/postfix/saslpass
    postfix reload

    Agora só fazer o teste e seja feliz….

    Abraços.

  8. #9 por Andre Cantello em dezembro 7, 2012 - 11:54 am

    Olá Pessoal,

    Estou com o seguinte problema na inicialização do serviço ndoutils:

    No socket name specified.
    One or more required parameters is missing or incorrect.

    E nos logs do Nagios aparece esse erro:

    Error: Could not load module ‘/usr/sbin/ndo2db’ -> /var/lib/nagios3/spool/checkresults/nebmod0w6VLT: cannot dynamically load executable

    Alguém sabe como resolver esse erro?

    Obrigado!

  9. #10 por Danilo em setembro 27, 2014 - 2:54 pm

    Estou com o seguinte problema:

    ao executar o seguinte comando:

    ./configure –enable-mysql –disable-pgsql –with-ndo2db-user=nagios –with-ndo2db-group=nagios
    make

    ocorre o seguinte erro:

    configure: WARNING: you should use –build, –host, –target
    configure: WARNING: invalid host type: –enable-mysql
    configure: WARNING: you should use –build, –host, –target
    configure: WARNING: invalid host type: –disable-pgsql
    configure: error: invalid variable name: –with-ndo2db-user

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: