Monitoramento com NAGIOS completo!!





Neste tutorial irei comentar um pouco de monitoramento com o Nagios.


NAGIOS é um sistema de monitoramento, onde você pode estar monitorando tudo que tem IP, sendo esse monitoramento via plugin do Nagios, SNMP ou até mesmo um script próprio. O Nagios é um servidor ativo, ou seja, ele se encarrega de ir até o host e fazer a checagem.


Vamos mostrar aqui o funcionamento do Nagios juntos com algumas outras ferramentas listadas abaixo:
Nagios: Servidor de monitoramento;
Nagios Plugin: Plugin para monitorar hosts, serviços, ...;
NDOUTILS: Faz a integração do Nagios com o BD MySQL;
NRPE: Torna o host a ser monitorado ATIVO e o Nagios PASSIVO, para determinado host.
NAGVIS: Permite criar um mapa do ambiente a ser monitorado.


FORMA DE TRABALHO:


1) Instalados em /opt/nagios
2) Logs em /opt/nagios/nagios3/var/nagios.log
4) Configurações /etc/nagios/*.cfg
5)Instalar e testar cada componente, ou seja, a cada instalação será testado só assim partiremos para o próximo passo.


PRÉ-REQUISITOS,
Estarei mostrando todo o ambiente do Nagios no Centos5.5, mas podemos estar instalando e configurando em qualquer ambiente.
Mais a frente iremos precisar de um algum componentes, então prefiro deixar tudo já instalado e depois vamos para a parte do Nagios.


Uns dos principais pré-requisitos é a iunstalação do pacote do RPM FORGE.


A instalação de alguns componentes com o yum:



yum -y install httpd net-snmp mrtg mysql mysql-server rrdtool php php-snmp glibc libpng.i386 libjpeg freetype gd perl perl-GD perl-GD-Convert sysstat fping perl-MySQL-Config perl-DB_File perl-DBD-MySQL perl-DBI perl-DBIx-DataSource libjpeg gd-devel


Após a instalação desses componentes, vamos colocar a mão na massa, ...



1) INSTALAÇÃO E CONFIGURÃO do NAGIOS
1.1) Primeiramente, vamos criar o usuário e o grupo do Nagios.
groupadd nagcmd
useradd -d /dev/null -s /bin/false -g nagcmd nagios


1.2) Vamos baixar o Nagios através do WGET. Eu copiei  o link do próprio site do Nagios, é ideal que se pegue a versão mais atualizada.
cd ~wget  http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz

1.3) Vamos descompactar o Nagios
tar -zxvf nagios-3.2.3.tar.gz
cd nagios-3.2.3
1.4) Agora iremos compilar o Nagios.
OBS.: Aqui se você quiser pode mudar algum diretório, ativar ou desativar as opções.


./configure --prefix=/opt/nagios/nagios3 --sysconfdir=/etc/nagios \
--with-nagios-user=nagios --with-nagios-group=nagcmd \
--with-cgiurl=/nagios3/cgi-bin --with-mysql=/usr --with-gnu-ld \
--with-openssl=/usr --with-uptime-command=/usr/bin/uptime \
--with-rpcinfo-command=/usr/sbin/rpcinfo \
--with-snmpget-command=/usr/bin/snmpget \
--with-snmpgetnext-command=/usr/bin/snmpgetnext \
--with-ssh-command=/usr/bin/ssh --with-proc-meminfo=/proc/meminfo \
--with-gnu-ld --enable-nls --enable-perl-modules --enable-extra-opts \
--enable-largefile --enable-mysql

Se não der nenhum erro, vamos instalar da seguinte forma:

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


1.5)Para acessar a interface do Nagios, é necessário que se tenha um usuário criado da seguinte forma:

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

Após a criação do usuário e senha, já podemos acessar a interface do Nagios pelo o brownser.
LEMBRANDO: é necessário iniciar o serviço httpd (apche) e do Nagios.
http://ip_do_servidor_nagios/nagios

1.6) Se você consegui acessar a interface do Nagios está OK. Porém ele não irá conseguir fazer nenhuma verificação, pois o Nagios necessita de seus plugins para fazer os CHECKs nos clientes.


2) Instalando os plugins do Nagios
2.1) Como no pacote do Nagios, vamos baixar via WGET a ultima versão do nagios-plugins no site do Nagios.

cd ~
wget  http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

Descompactando

tar -zxvf  nagios-plugins-1.4.15.tar.gz
cd nagios-plugins-1.4.15


2.2) Beleza, vamos compilar os plugins do Nagios-plugins.


./configure --prefix=/opt/nagios/nagios3 --sysconfdir=/etc/nagios --with-nagios-user=nagios --with-nagios-group=nagcmd --with-cgiurl=/nagios3/cgi-bin --with-mysql=/usr --with-gnu-ld --with-openssl=/usr --with-uptime-command=/usr/bin/uptime --with-rpcinfo-command=/usr/sbin/rpcinfo --with-snmpget-command=/usr/bin/snmpget --with-snmpgetnext-command=/usr/bin/snmpgetnext --with-ssh-command=/usr/bin/ssh --with-proc-meminfo=/proc/meminfo --with-gnu-ld --enable-nls --enable-perl-modules --enable-extra-opts --enable-largefile --enable-mysql
make all
make install


Agora o Nagios está pronto para monitorar nossos servidores e serviços.

OBS.: Na interface do Nagios, mais especificamente nos serviços, é possível forçar o Nagios para fazer uma nova checagem, porém ele provavelmente irá retornar o seguinte erro:


Error: Could not open command file '/opt/nagios/nagios3/var/rw/nagios.cmd' for update!
The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.
An error occurred while attempting to commit your command for processing.

Isso porque o arquivo "/opt/nagios/nagios3/var/rw/nagios.cmd", necessita estar com permissões 777 e não está.  O problema é que toda a vez que você reiniciar o Nagios ele irá perder essa permissão, então vamos editar o arquivo "/etc/init.d/nagios" e acrescentar a seguinte linha "chmod 777 /opt/nagios/nagios3/var/rw/nagios.cmd" dentro da função start e logo abaixo as linhas:

su - $NagiosUser -c "touch $NagiosVarDir/nagios.log $NagiosRetentionFile"
rm -f $NagiosCommandFile
touch $NagiosRunFile
chown $NagiosUser:$NagiosGroup $NagiosRunFile
$NagiosBin -d $NagiosCfgFile

Feito isso, você irá conseguir forçar um novo check.


2.3) Arquivos de configurações do Nagios.
Os arquivos de configurações do Nagios fica em "/etc/nagios", sendo que na raiz fica a configuração do serviço do Nagios e em "/etc/nagios/objects" fica o arquivo de configurações dos hosts a serem monitorados.

Os arquivos dos hosts a serem monitorados, tem alguns templates prontos, bastando copiar e dentro deles mudar o nome do hosts e do grupo.  Também é possível cadastrar os e-mail dos administradores que serão avisado caso aja alguma falha.

Segue algums dos arquivos padrão do Nagios:
ls /etc/nagios/objects

commands.cfg  
contacts.cfg 
localhost.cfg  
printer.cfg  
switch.cfg  
templates.cfg  
timeperiods.cfg  
windows.cfg

podemos aqui copiar o arquivo do localhost para server01.cfg e dentro dele alterar o nome do hosts e ativar os serviços que queremos.

Após esses passos, nosso servidor está pronto, vamos então integrar o Nagios com o BD Mysql.


3) Instalação do NDOUTILS
Como mencionado no inicio, esse plugin faz a integração do NAGISO com MySQL..

3.1) Vamos baixar o pacote mais atualizado do NDOUtils
wget http://sourceforge.net/projects/nagios/files/ndoutils-1.x/ndoutils-1.4b9/ndoutils-.4b9.tar.gz/download
tar -xcvf ndoutils-1.4b9.tar.gz
cd ndoutils-1.4b9

3.2) Vamos compilar agora o NDOUtils
./configure --prefix=/opt/nagios/nagios3 --sysconfdir=/etc/nagios --with-init-dir=/etc/rc.d --with-mysql=/usr --with-ndo2db-user=nagios --with-ndo2db-group=nagcmd
make
make install

3.3) Configurando o BD MySQL
O servidor de BD MySQL já deve estar configurado e funcionando

Acessando o servidor:
mysql -u root -p
Criando a base de dados
create database nagios;

Criando o usuário compermissões
GRANT ALL PRIVILEGES ON nagios.* TO nagiosadmin@localhost IDENTIFIED BY 'SuaSenha' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON nagios.* TO nagiosadmin@'%' IDENTIFIED BY 'SuaSenha' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

cd db
./installdb -u nagiosadmin -p SuaSenha -h localhost -d nagios


3.4) Copiando os arquivos necessários para seus devidos diretórios:
cd ..
cp src/ndomod-3x.o src/ndo2db-3x src/log2ndo src/file2sock /opt/nagios/nagios3/bin/

cp config/ndomod.cfg-sample /etc/nagios/ndomod.cfg
cp config/ndo2db.cfg-sample /etc/nagios/ndo2db.cfg


3.5) Habilitando o NDOUtils no nagios
echo "broker_module=/opt/nagios/nagios3/bin/ndomod-3x.o config_file=/etc/nagios/ndomod.cfg" >> /etc/nagios/nagios.cfg

3.6) Testando o NDOUtils e verificando os logs
#Iniciando o NDOUtils
/opt/nagios/nagios3/bin/ndo2db-3x -c /etc/nagios/ndo2db.cfg
/etc/rc.d/nagios restart


Verificando se está tudo ok
tail -f /opt/nagios/nagios3/var/nagios.log

Tem que aparecer algo tipo:
[1253647886] ndomod: Successfully connected to data sink. 571 queued items to flush.
[1253647886] ndomod: Successfully flushed 571 queued items to data sink.


Caso de algum erro, verifique o caminho dos PATH nos arquivos do NDO ( ndo2db.cfg ndomod.cfg).

Pronto o Nagios já está integrado com o Mysql.



4) Instalação do Nagvis
O NAGVIS nada mais é do que mostrar os hosts mapeado, ou seja, pode-se mostrar o host num determinado mapa/foto ( uma foto do cpd, imagem do visio, imagem do google mapas, ...).

Na minha opinião ele é uma perfumaria, mas é bem legal. O interessante dele, é poder ficar mostrando todos os mapas numa rotação de X tempo.

Um grande problema do NAGVIS é o numero de dependências que ele requer, as principais são (GRAPHVIS, module perl JSON, NDOUTILS, entre outros) 
 Então vamos instalar algumas dependências necessárias:
yum -y install graphviz php-mbstring.i386 php-gd.i386 php-ncurses.i386  glib glib2 libpng libjpeg libtiff ghostscript freetype ImageMagick  perl-RRD-Simple perl-rrdtool.i386 perl-rrdtool perl-GD libjpeg gd-devel  libgd libgd-devel libpng libpng-devel libjpeg libjpeg-devel libXpm.i386 libXpm-devel.i386 perl-GD-Convert.noarch perl-Image-Xpm.noarch graphviz php-mbstring.i386 php-gd.i386 php-ncurses.i386


4.1) Vamos baixar o NAGVIS
cd ~
get http://sourceforge.net/projects/nagvis/files/NagVis%201.5/nagvis-1.5.8.tar.gz/download
tar -zxvf nagvis-1.5.8.tar.gz
cd nagvis-1.5.8


4.2) Instalando o NAGVIS
Vamos dar permissão de execução no arquivos install.sh e depois executar o mesmo.
chmod +x install.sh
./install.sh


OBS.: Quando for executado o install.sh, o NAGVIS vai fazer a verificação de todas as dependências.

Na instalação com o install.sh, o NAGVIS vai te fazer algumas perguntas sobre os diretórios de instalações, no nosso caso as respostas são:

Resposta 1: /opt/nagios/nagios3
Resposta 2:opt/nagios/nagvis
Resposta 3: y
Resposta 4: y
Resposta 5: y
Resposta 6: apache
Resposta 7: apache
Resposta 8: y

O arquivo de configuração web do NagVis está em "/etc/httpd/conf.d/nagvis.conf"

Após esses passos, o NAGVIS já deve estar instalado, podemos acessar o link "http:///nagvis" .
Nosso NAGVIS já está instalado, faltando apenas inserir nossos mapas e configurar os mesmos.

4.3) Configurando o MAPA no NAGVIS
a) Clique em Edit current map
b) clique com obotão direito na proxíma página
c) Manage > maps
d) coloque as informações do mapa (nome, usuário nagiosadmin, user nagiosadmin e imagem de fundo)
e) clique em create.

4.4) Configurando o HOST no NAGVIS 
a) clique com obotão direito
b) Open Map >
c) clique com obotão direito
d) Add Object > Icon > Host
e) Clique no host indicado
f) Informe o nome do host > create
g) clique com obotão direito > Overview

O Host no NAGVIS já está criado.
Para criar uma nova imagem de background é só seguir os passos de como criar um mapa, porém selecionar a opção background.




5) Instalação do Nagiosgraph
O NAGIOSGRAPH é um plugin do nagios para gerar gráficos dos itens que estão sendo monitorados.
A instalação do NAGIOSGRAPH é bem simples e sua configuração também, então vamos começar a brincadeira.

5.1) Vamos começar baixando o pacote do nagiosgraph.
cd ~
wget http://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/1.4.4/nagiosgraph-1.4.4.tar.gz/download
tar -zxvf nagiosgraph-1.4.4.tar.gz
cd nagiosgraph-1.4.4




5.2) Belaza, vamos começar instalando o nosso nagiosgraph.
Antes de começar a instalar, vamos verificar as dependências:
./install.pl --check-prerequisites


 Esse comando irá mostrar uma lista de pacotes necessários e se estão instalados ou não. 
 Após verificar as dependências, vamos instalar com o layout do "redhat".  O layout o padrão de instalação dos arquivos, onde eles serão instalado.  Podemos também customizar esses diretórios com o layout custom.
 Será necessário responder algumas perguntas, após responder as perguntas o nagiosgraph estará tudo instalado.


./install --layout redhat


5.3) Configurando o NAGIOSGRAPH
 Vamos primeiro criar o arquivo /etc/nagios/objects/serviceextinfo.cfg e colocar alguns itens dentro dele para teste.


define serviceextinfo {
          host_name                 localhost
          service_description       Total Processes
          notes_url                 /nagiosgraph/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICE$
          icon_image                graph.png
          icon_image_alt            View graphs
          }



Esse seria um exemplo do total de processos ativos no servidor.
Após a configuração do arquivo serviceextinfo.cfg, reinicie o nagios.


Agora ao acessar a interface, ao lado do serviço do Total Processes, terá um link para os gráfcos.


Como podem perceber a instalação e configuração do NAGIOSGRAPH é bem simples, sendo necessário apenas esses passos.


Agora irei mostrar alguns exemplos de configuração de itens a ser monitorados.




6) EXEMPLOS

Exemplos retirados do /etc/nagios/objects/localhost.cfg



Verificando o UPTIME com SNMP
define service{
use local-service ; Inherit values from a template
host_name        localhost
service_description Uptime
check_command check_snmp!-C public -o sysUpTime.0
}


Verificando o IDLE do CPU
define service{
        use                     local-service  
        host_name               localhost 
        service_description     CPU_IDLE
        check_command           check_snmp!-C public -o .1.3.6.1.4.1.2021.11.11.0 -w 20 -c 50
        }




Pegando o trafego do MRTG e colocando no nagios
define service{
use local-service ; Inherit values from a template
host_name localhost
service_description ETH0
check_command check_local_mrtgtraf!/var/www/mrtg/127.0.0.1_192.168.111.5.log!AVG!1000000,2000000!5000000,5000000!10
}




Exemplos retirados do /etc/nagios/objects/serviceextinfo.cfg



Criando o gráfico da CPU - IDLE
define serviceextinfo {
        service_description CPU_IDLE
        host_name localhost
        notes_url /nagiosgraph/cgi-bin/show.cgi?host=localhost&service=$SERVICEDESC$
#        icon_image graph.gif
#        icon_image_alt View graphs
}


Criando o gráfico do trafego da interface ETH0
define serviceextinfo {
        service_description ETH0
        host_name localhost
        notes_url /nagiosgraph/cgi-bin/show.cgi?host=localhost&service=$SERVICEDESC$
}






7) Dicas


Pode-se configurar o nagios por interface gráfica, existem diversos software para isso, mas um dos melhores é o MONARC;


Existem plugins para alterar a tela de visualização dos alertas, através do link.


Existem diversos outros Plugins, que podem ser encontrados em:
http://www.nagios.org
http://exchange.nagios.org/
http://nagios.frank4dd.com 


E isso aí pessoal, até a próxima.

Comentários

  1. cara isso me ajudou muito, mais que um livrinho que tenho aqui sobre NAGIOS, muito bom o artigo e parabens

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Zabbix - LLD de portas abertas no server

PUPPET - Gerenciamento e configuração centraliazada

PUPPET - criando classes- parte 2