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.
1.4) Agora iremos compilar o Nagios.
OBS.: Aqui se você quiser pode mudar algum diretório, ativar ou desativar as opções.
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
./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 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.
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.
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
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
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 allmake 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..
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
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 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/
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
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.
/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)
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://
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.
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.
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.
cara isso me ajudou muito, mais que um livrinho que tenho aqui sobre NAGIOS, muito bom o artigo e parabens
ResponderExcluir