quinta-feira, 14 de janeiro de 2010

Nagios + NSClient++ + NagiosQL + NDOUtils no CentOS 5.3

Introdução:

Este material foi preparado para as minhas aulas de gerência de redes, mas resolvi compartilhar, pois pode ser útil para alguém.

Basicamente peguei vários tutoriais da internet (ver referências) e adaptei para minhas necessidades e realidade da distribuição escolhida.

Neste tutorial abordarei a instalação e configuração dos seguintes itens:

  • Nagios - Software de gerência de redes.
  • NagiosQL - Interface Web para administração das configurações do Nagios, armazena as configurações em uma base de dados.
  • NDOUtils - Addon que permite armazenar os as informações colhidas pelo Nagios em uma base de dados.
Sobre o Nagios:
Nagios é uma popular aplicação de monitoração de rede de código aberto distribuída sob a licença 
GPL. Ele pode monitorar tanto hosts quanto serviços, alertando-o quando ocorrerem problemas e também quando os problemas forem resolvidos.

O Nagios foi originalmente criado sob o nome de Netsaint, foi escrito e é atualmente mantido por Ethan Galstad, junto com um exército de desenvolvedores que ativamente mantém plugins oficiais e não-oficiais.

Nagios primeiramente foi escrito para o sistema operacional Linux, mas pode rodar em outros Unixes também.

Características:
  • Monitora serviços de rede (SMTP, POP3, HTTP, NNTP, ICMP, SNMP)
  • Monitora recursos de computadores ou equipamentos de rede (carga do processador, uso de disco, logs do sistema) na maioria dos sistemas operacionais com suporte a rede, mesmo o Microsoft Windows com o uso de plugins.
  • Monitoração remota suportada através de túneis criptografados SSH ou SSL.
  • Desenvolvimento simples de plugins que permite aos usuários facilmente criar seus próprios modos de monitoração dependendo de suas necessidades, usando a ferramenta de desenvolvimento da sua escolha (Bash, C, Perl, Python, PHP, C#, etc.)
  • Checagem dos serviços paralelizadas, ou seja, se você tiver muitos ítens monitorados não há risco de alguns deles não serem checados por falta de tempo.
  • Capacidade de definir a rede hierarquicamente definindo equipamentos "pai", permitindo distinção dos equipamentos que estão indisponíveis daqueles que estão inalcançáveis.
  • Capacidade de notificar quando um serviço ou equipamento apresenta problemas e quando o problema é resolvido (via email, pager, SMS, ou qualquer outro meio definido pelo usuário por plugin).
  • Capacidade de definir tratadores de eventos que executam tarefas em situações pré-determinadas ou para a resolução pró-ativas de problemas.
  • Rotação automática de log.
  • Suporte para implementação de monitoração redundante.
  • Excelente interface web para visualização do atual status da rede, notificações, histórico de problemas, arquivos de log, etc…
  • Versão atual, estável: 3.2.0
Instalação:
Primeiro vamos instalar os pré-requisitos do Nagios. Os pré-requisitos são:
  • Apache
  • GD Development Libraries
  • GCC compiler and development libraries
# yum install httpd gd gd-devel gcc

Depois de instalados os pré-requisitos criaremos um usuário e grupo para o Nagios conforme abaixo.

Criação do usuário:
# adduser nagios
# passwd nagios

Obs.: Após executar o comando "passwd nagios", crie uma senha para o usuário nagios.

Agora é preciso criar um grupo que chamaremos de "nagcmd" para permitir que comandos externos sejam passados pela interface web.
# groupadd nagcmd
# usermod -G nagcmd nagios

Download, Descompactação e Instalação do Nagios e dos Plugins:
# cd /install/
# mkdir nagios
# cd nagios/
Fazer o download do Nagios e dos plugins (
www.nagios.org/download) para o diretório acima:
# wget
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.0.tar.gz
# wgethttp://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

Descompactar os arquivos:
# tar xzvf nagios-3.2.0.tar.gz

Entrar no diretório do Nagios:
# cd nagios-3.2.0

Rodar o script de configuração do Nagios (Para ver as opções: #./configure --help):
#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-htmurl=/nagios --with-cgiurl=/nagios/cgi-bin --with-command-group=nagcmd --with-gd-lib=/usr/lib --with-gd-inc=/usr/include

Compilar o Nagios:
# make all (Compila os fontes)
# make install (Instala o programa principal, as CGIs e os arquivos HTML)
# make install-init (Instala o script de inicialização em /etc/rc.d/init.d)
# make install-config (Instala arquivos de configuração de exemplo [*SAMPLE*] em /usr/local/nagios/etc)
# make install-commandmode (Instala e configura permissões para o diretório que conterá o arquivo de comandos externos)

Descompactar os arquivos:
# cd /install/nagios/
# tar xzvf nagios-plugins-1.4.14.tar.gz

Entrar no diretório dos Plugins do Nagios:
# cd nagios-plugins-1.4.14

Rodar o script de configuração dos plugins (Para ver as opções: #./configure --help):
#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios

Compilar os plugins:
# make
# make install

Instalar o Imagepack:
Obtemos o source do imagepack atravéz do link:
# wget http://prdownloads.sourceforge.net/nagios/imagepak-base.tar.gz

Descompactar os arquivos:
# tar xzvf imagepak-base.tar.gz

Entrar no diretório do Imagepack:
# cd /base/

Copiar os arquivos para a pasta padrão de ícones do Nagios:
# cp * /usr/local/nagios/share/images/logos/

Configuração da Interface Web – Apache:
Por padrão o Nagios não possui controle de usuários, por isso vamos criar uma autenticação simples através do apache.

Editar o arquivo httpd.conf e inserir as linhas abaixo.
# vi /etc/httpd/conf/httpd.conf

###############################################################################
# HTML (http://localhost/nagios) AND CGI APACHE AUTHENTICATION
###############################################################################
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user
</Directory>

Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
AllowOverride AuthConfig
Options None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user
</Directory>
###############################################################################

Criando usuário e senha para autenticar na interface web: 
# htpasswd -c /usr/local/nagios/etc/htpasswd.users usuario1

Reiniciando o Apache:
# service httpd restart

Após isso, já deve ser possível visualizar a interface web do Nagios a partir do endereço 
http://localhost/nagios no navegador. Entretanto, as CGIs não fornecerão informação alguma (ainda é necessário configurar corretamente o Nagios).

Verificando se há erros nas configurações do Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Iniciando o Nagios:
# service nagios start

Iniciando nagios automáticamente:
# chkconfig --add nagios
# ntsysv
Verifique que a opção nagiso já está marcada:


Arquivos de configuração do Nagios:
# cd /usr/local/nagios/etc/
# ls -las *.cfg

nagios.cfg: Arquivo de configuração principal do Nagios, responsável por iniciar os serviços de monitoramento, é neste arquivo que fazemos referência aos demais arquivos de configuração (.cfg).
cgi.cfg: Arquivo de configuração dos programas CGIs localizados na pasta sbin.
resource.cfg: Macros definidas pelos usuários.

# cd /usr/local/nagios/etc/objects/
# ls -las *.cfg

commands.cfg: Definição dos comandos que podem ser executados pelo Nagios.
contacts.cfg: Contatos que deverão ser notificados caso ocorra algum problema, definição de grupos de contatos.
timeperiods.cfg: Informações sobre o período de monitoramento, podem ser definidos vários períodos de monitoramento diferentes.
templates.cfg: Definição dos modelos e exemplos de diversos tipos de configuração como hosts, serviços, contatos, etc.

Nagios.cfg:
# vi /usr/local/nagios/etc/nagios.cfg
Verifique se a seguinte linha está descomentada:
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

Localhost.cfg:
# vi /usr/local/nagios/etc/objects/localhost.cfg
Adicionar as linhas referente as imagens:
# Localhost
define hostextinfo{
host_name localhost
icon_image linux40.png
icon_image_alt Localhost
vrml_image linux40.png
gd2_image linux40.gd2
register 1
}

Adicionar/Alterar as linhas referente a serviços:
# Serviço de checagem do espaço em disco na partição root da máquina local.
# Warning se <> 20 usuários, Critical se > 50 usuários.
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Current Users
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_users!20!50
}

# Serviço de checagem do número de processos correntemente rodando na máquina local.
# Warning se > 250 processos, Critical se > 400 processos.
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Total Processes
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_procs!250!400
}

# Serviço de checagem da carga na máquina local.
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Current Load
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}

# Serviço de "ping" da máquina local
define service{
use local-service ; Name of service template to use
host_name localhost
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,60%
}

Cgi.cfg:
# vi /usr/local/nagios/etc/cgi.cfg
Realizar as alterações (e descomentar, se for o caso):
use_authentication=1
authorized_for_system_information=usuario1
authorized_for_configuration_information=usuario1
authorized_for_system commands=usuario1
authorized_for_all_services=usuario1
authorized_for_all_hosts=usuario1
authorized_for_all_service_commands=usuario1
authorized_for_all_host_commands=usuario1

Timeperiods.cfg:
# vi /usr/local/nagios/etc/objects/timeperiods.cfg
Verificar as opções existentes e criar novos agendamentos se houver necessidade (esquemas de plantão por exemplo).

Commands.cfg:
# vi /usr/local/nagios/etc/objects/commands.cfg
Verificar as opções existentes e criar novos comandos se houver necessidade.

Contacts.cfg:
Realizar as alterações:
# vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
contact_name usuario1
alias Usuario 1
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email email@localhost.localdomain # Endereco de e-mail do usuario1.
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin, usuario1
}

Observação:
service_notification_options:
w,u,c,r ( w=warning / u=unknown / c=critical / r=recoveries / n=none)
host_notification_options:
d,u,r ( d=down / u=notify / r=recoveries / n=none )

Verificando se há erros nas configurações do Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Reiniciando o Nagios:
# service nagios restart

Agora o Nagios já esta funcionando e monitorando o host local, os mesmos procedimentos podem ser utilizados para monitorar outros hosts com SO GNU/Linux, o próximo passo será a instalação do agente em um host com SO MS-Windows e a configuração necessária para o Nagios monitorar este host.

Utilizando Nagios NSClient++ para Monitorar Servidores Windows Remotos:

Introdução:
Como utilizar o Nagios para monitorar minhas estações e servidores com SO MS-Windows?
Utilizando o addon NSClient++ para executar o Nagios plugins no host e retornar as informações para o Nagios.

Instalação:
Faça o download da última versão do arquivo 
NSClient++.
Dê um dulo clique no arquivo NSClient++.msi, surge a tela inicial, clique em Next


Tela da licença, marque a opção "I accept the terms int the License Agreement" e clique em Next


Escolha o local de instalação e as opções de instalação e clique emNext


Escolha "Use the new configuration file" e clique em Next


Coloque o IP do servidor de Nagios e a Senha para este host, marque todas as opções exceto a opção "Enable NSCA Client"*, clique em Next


* NSCA - Nagios Service Check Acceptor é um puglin para receber dados dos clientes no modo passivo, ou seja, você acessa a máquina do cliente e faz ela enviar as informações para seu servidor Nagios, que já estará aguardando para receber as informações.

Isto é muito útil quando precisamos monitorar vários servidores e não podemos mexer no firewall de nenhum deles, pois o NSCA envia as informações dos servidores sem a necessidade de liberação de portas no firewall.

Na última tela desmarque a opção "Start Service" e clique em finish


Clique em Iniciar // Executar // services.msc e clique em OK


Localize o serviço "NSClient++" e dê um duplo clique para abrir as propriedades do serviço.


Na guia "Log On" marque a opção "Allow service to interact with desktop", clique em OK e inicie o serviço.


Habilitar o suporte a hosts MS-Windows:
# vi /usr/local/nagios/etc/nagios.cfg
Descomentar a linha abaixo:
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

Configurar a senha de acesso ao NSClient++:
# vi /usr/local/nagios/etc/objects/commands.cfg
Altere a entrada do comando check_nt para incluir o argumento de senha “-s”. Altere “yourpassword” para a senha que você configurou durante a instalação do NSClient++:

define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s yourpassword -v $ARG1$ $ARG2$
}

Editar o template do Windows:
# vi /usr/local/nagios/etc/objects/windows.cfg
define host{
use windows-server ; Inherit default values from a Windows server template (make sure you keep this line!)
host_name mywinserver
alias Windows Server
address 192.168.1.100
}

define service{
use generic-service
host_name mywinserver
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}

Verificando se há erros nas configurações do Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Reiniciando o Nagios:
# service nagios restart

Instalando e configurando o NagiosQL:
Introdução:
O NagiosQL é uma interface web onde através dela é possível configurar o Nagios sem a necessidade de acessarmos configurações via linha de comando. Através de formulários é possível criar hosts, services e groups para monitoramento e notificação. Ótima ferramenta para ser integrada no nosso kit do Nagios.

Download, Descompactação e Instalação do Nagios e dos Plugins:
# cd /install
# mkdir nagiosql
# cd nagiosql

Fazer o download do Nagios para o diretório acima:
# wget
http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.0.3/nagiosql303.tar.gz/download

Descompactar os arquivos:
# tar xzvf nagiosql303.tar.gz

Mover o diretório para o diretório padrão do apache:
# mv nagiosql3 nagiosQL
# mv nagiosQL/ /var/www/html/

Criar o arquivo que permite o início da instalação (ENABLE_INSTALLER):
# touch /var/www/html/nagiosQL/install/ENABLE_INSTALLER

Alterar as permissões do diretório:
# chown -R apache:apache /var/www/html/nagiosQL/config/

Suprir as dependências:
# yum install php-pear
# wget 
http://download.pear.php.net/package/HTML_Template_IT-1.2.1.tgz
# pear install HTML_Template_IT-1.2.1.tgz

Iniciar o Apache e o MySQL:
# service httpd restart
# service mysqld start

Instalando o NagiosQL:
Aponte o navegador para http://IP/nagiosQL/
Tela Inicial, escolha o idioma e clique em “Start New Installation


Tela de checagem de pré-requisitos, você pode ver os detalhes clicando em “+”, clique em Next:


Tela de configuração da Base de Dados, lembre-se de colocar uma senha para a base e também para o usuário Admin, clique em Next:


Resumo da instalação, clique em Finish:


O NagiosQL não inicia enquanto o arquivo “ENABLE_INSTALLER” não for removido


Remova o arquivo “ENABLE INSTALLER”:
# rm -rf /var/www/html/nagiosQL/install/ENABLE_INSTALLER

Atualize a tela (F5), o login então é disponibilizado:


Configurações Pós Instalação:
Criar os diretórios:
# mkdir -p /etc/nagiosql/{hosts,services,backup/{hosts,services}}

Alterar as permissões:
# chgrp apache /usr/local/nagios/
# chgrp apache /usr/local/nagios/etc/nagios.cfg
# chgrp apache /usr/local/nagios/etc/cgi.cfg
# chmod 775 /usr/local/nagios/
# chmod 664 /usr/local/nagios/etc/nagios.cfg
# chmod 664 /usr/local/nagios/etc/cgi.cfg
# chmod 6755 /etc/nagiosql/
# chown apache.nagios /etc/nagiosql/
# chmod 6755 /etc/nagiosql/hosts/
# chown apache.nagios /etc/nagiosql/hosts/
# chmod 6755 /etc/nagiosql/services/
# chown apache.nagios /etc/nagiosql/services/
# chmod 6755 /etc/nagiosql/backup/
# chown apache.nagios /etc/nagiosql/backup/
# chmod 6755 /etc/nagiosql/backup/hosts/
# chown apache.nagios /etc/nagiosql/backup/hosts/
# chmod 6755 /etc/nagiosql/backup/services/
# chown apache.nagios /etc/nagiosql/backup/services/

Finalizando:
Por padrão o NagiosQL busca a informações do Nagios em /etc/nagios, porém esse não é o diretório onde se encontram os arquivos de configuração do Nagios. Para corrigir isso deve-se criar um link simbólico de /usr/local/nagios/etc para /etc/nagios:
# ln -s /usr/local/nagios/etc /etc/nagios

Criar o diretório de importação:
# mkdir /etc/nagios/import

Realizar a importação dos arquivos para o NagiosQL:
Faça o login na interface do NagiosQL:


Clique em Tools // Data Import:


Selecione os arquivos segurando o CTRL, clique em Import:


Se tudo ocorreu bem, você recebe mensagens em verde com as informações:


Clique em Tools // Nagios Control e clique nos botões “Do It” das opções “Write monitoring data” e “Write additional data”:


Depois de realizados os procedimentos na interface gráfica, precisamos finalizar as configurações nos arquivos de configuração:
# vi /usr/local/nagios/etc/nagios.cfg

Em OBJECT CONFIGURATION FILE(S) comente os "cfg_file" e "cfg_dir" e insira o seguinte bloco de comandos:
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/hosttemplates.cfg

cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg

cfg_dir=/etc/nagiosql/hosts
cfg_dir=/etc/nagiosql/services

Verifique a configuração do Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Agora você pode configurar e controlar suas alterações via interface Web, sem a necessidade de ficar editando comandos e com a vantagem de que todas as configurações estão armazenadas em uma base de dados.

Instalando NDOutils (MySQL Connector) em ambiente CentOs 5.3:
Introdução:
NDOUtils é um addon que permite armazenar dados do Nagios (informações sobre o estado atual, histórico do estado, a histórico de notificação, etc) em um banco de dados MySQL. Este addon é composto por um módulo de corretor de eventos e um daemon.

Pré-Requisitos:
  • GCC-C++
  • MySQL
  • MySQL-Devel
  • MySQL-Server

Criar a base de dados:
# mysql -u root
(no password)

mysql>create database nagios;
Query OK, 1 row affected (0.00 sec)

mysql>show databases;
+-----------+
| Database |
+-----------+
| database |
| mysql |
| nagios |
| test |
+----------+
4 rows in set (0.01 sec)

Criar o usuário e senha para que possa ter os seguintes privilégios na base de dados: "SELECT, INSERT, UPDATE, DELETE":
mysql> GRANT ALL ON nagios.* TO nagios@localhost IDENTIFIED BY "nagios";
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit

Download, Descompactação e Instalação do NDOUtils:
# cd /install/nagios/
# mkdir ndoutils
# cd ndoutils

Fazer o download do NDOUtils:
# wget 
http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-1.4b9.tar.gz/download

Descompactar os arquivos:
# tar zxfv ndoutils-1.4b9.tar.gz

Entrar no diretório do ndoutils:
# cd ndoutils-1.4b9

Compilar o NDOUtils:
# ./configure
# make

Ndomod
Existem duas versões diferentes do módulo NDOMOD que são compilados, assim certifique-se de utilizar o módulo que corresponde à versão do Nagios que você está executando, e ajustar as instruções indicadas abaixo para o nome da versão que você está usando.

ndomod-2x.o módulo NDOMOD = para Nagios 2.x
ndomod-3x.o = módulo NDOMOD para Nagios 3.x (instável)

No nosso exemplo usamos a versão 3.x
# cd /install/nagios/ndoutils-1.4b9/src/

Copie o módulo NDOMOD para sua instalação do Nagios:
# cp ndomod-3x.o /usr/local/nagios/bin/ndomod.o

Ndo2db
Existem duas versões diferentes do daemon NDO2DB que são compilados, assim certifique-se de usar o daemon que corresponde à versão do Nagios que você está executando, e ajustar as instruções indicadas abaixo para o nome do servidor que você está usando.

ndo2db-2x.o daemon NDO2DB = para Nagios 2.x
ndo2db-3x.o = daemon NDO2DB para Nagios 3.x (instável)

Copie o daemon NDO2DB para sua instalação do Nagios:
# cp ndo2db-3x /usr/local/nagios/bin/ndo2db

Criação de banco de dados NDO:
# cd ../db/
# ./installdb -u nagios -p nagios -h localhost -d nagios
Obs: -u = usuário; -p = senha; -h = nome do computador; -d = MySQL DB

Alterações dos arquivos CFG:
ndo2db.cfg
# cd ../config
# cp ndo2db.cfg-sample /etc/nagios/ndo2db.cfg
# chown nagios:nagios /etc/nagios/ndo2db.cfg
# cd /etc/nagios/

# vi ndo2db.cfg

# SOCKET TYPE
socket_type=unix
. . .
# SOCKET NAME
socket_name=/var/run/nagios/ndo.sock
. . .
# DATABASE USERNAME/PASSWORD
db_user=nagios
db_pass=nagios

Verifique se existe o diretório /var/run/nagios. Se não existir, crie-o:
# mkdir /var/run/nagios

E tenha certeza de que o NDO tem permissão de acessar este diretório para criar o socket:
# chown -R nagios:nagios /var/run/nagios

ndomod.cfg
# cd /install/nagios/ndoutils-1.4b9/config/
# cp ndomod.cfg-sample /etc/nagios/ndomod.cfg
# chown nagios:nagios /etc/nagios/ndomod.cfg

Adicionar linhas semelhante as abaixo no arquivo de configuração principal do Nagios (geralmente /usr/local/nagios/etc/nagios.cfg):
# vi /etc/nagios/nagios.cfg
broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg
event_broker_options=-1

Esta diretiva fará com que o daemon do Nagios passe a enviar dados para o módulo NDOMOD. Sem essa opção, o NDOMOD não vai obter qualquer informação.

Finalmente certifique-se que o parâmetro de saída ndomod.cfg está configurado:
# vi /etc/nagios/ndomod.cfg
output=/var/run/nagios/ndo.sock

É muito importante que o parâmetro output tenha exatamente o mesmo valor do parâmetro socket_name do arquivo ndo2db.cfg. Se não, você receberá esta mensagem ao iniciar o daemon nagios.
[1192222122] ndomod: Error writing to data sink! Some output may get lost...

Iniciando o NDO2DB daemon:
# /usr/local/nagios/bin/ndo2db -c /etc/nagios/ndo2db.cfg

Verificando a execução do processo:
# ps -ef | grep ndo2db
nagios 24003 23088 0 14:24 ? 00:00:01 /usr/local/nagios/bin/ndo2db -c /etc/nagios/ndo2db.cfg
root 24597 23526 0 14:55 pts/2 00:00:00 grep ndo2db

Verifique a configuração do Nagios:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Reiniciando o Nagios:
# service nagios restart

Verificando o funcionamento:
# tail /usr/local/nagios/var/nagios.log
[1258993445] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1258993445] ndomod: Successfully connected to data sink. 0 queued items to flush.
[1258993445] Event broker module '/usr/local/nagios/bin/ndomod.o' initialized successfully.

Se não estiver funcionando aparecerá algo como: 
[1258993322] ndomod: NDOMOD 1.4b9 (10-27-2009) Copyright (c) 2009 Nagios Core Development Team and Community Contributors
[1258993322] ndomod: Could not open data sink! I'll keep trying, but some output may get lost...

Referências:

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=8861
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=7963
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10122
http://www.nagioswiki.com/wiki/index.php/Nagios_and_NagiosQL_on_CentOS_4.x
http://www.nagioswiki.com/wiki/index.php/NDOutils_on_CentOS
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=5357

0 comentários :

Enviar um comentário