Bem amigos leitores do meu blog... Chegamos a mais um fim de ano, com menos posts do que eu gostaria é verdade, mas mesmo assim acredito que os posts foram produtivos e ajudaram muita gente...
Como já é de praxe faço uma retrospectiva da minha vida todo ano e compartilho alguns fatos mais relevantes com vocês... Este ano foi benção na minha vida, e não poderia deixar de ser na realidade, como está escrito em Salmos 37:05 Entrega o teu caminho ao SENHOR; confia nele, e ele o fará.
Este ano foi especial em vários aspectos, comprei meu primeiro carro (e já rodei mais de 24000 Km de janeiro para cá he he he he), fui indicado pelo meu grande amigo Curti para ministrar uma disciplina na Pós Graduação em Redes na Policamp e neste segundo semestre fui convidado a repetir a dose na pós e assumir uma matéria na graduação... Com isso tive o prazer de conhecer novas pessoas e em alguns casos este convívio já caminha para a amizade.
Fiz alguns cursos, li alguns livros (bem menos que ano passado), participei de incontáveis churrascos e reuniões bem humoradas com amigos e familiares.
Tive o prazer de prazer de assistir um show maravilhoso do Hillsong United em SP, no ginásio do Ibirapuera, dias antes do meu aniversário.... O passeio se tornou mais especial pelo fato de ir para Sampa junto com o grupo de Jovens Geração Josué, em especial pela companhia dos meus amados irmãos Bruno, Emília, Tayme, Matheus e Talita.
Assisti vários filmes, acompanhei algumas séries, comprei vários DVDs (Incluindo a coleção completa do Arquivo X - 9 Temporadas + 4 Filmes), vários Livros, fui ao cinema, fiz inúmeros passeios, comi e bebi do bom e do melhor pela graça e misericórdia de Deus.
É impressionante como neste momento os problemas, dificuldades, sono perdido, cansaço, stress, nervosismo, etc. São tão pequenos, tão insignificantes, são sentimentos e situações longínquas....
Devo dizer que neste ano minha vida espiritual deu um UP, um salto, teve um renovo... O Senhor preparou pessoas especiais que me fizeram refletir, buscar mais a presença do Espírito Santo, buscar ser exemplo, etc. Agradeço a Ele por essas vidas.
De resto desejo a vocês um Feliz Natal, um ano novo repleto de realizações, muita paz, alegria, amor, saúde, fé... A vocês meus amigos, desejo o melhor.
Feliz Natal! Feliz 2010!!!
André Déo
terça-feira, 22 de dezembro de 2009
segunda-feira, 30 de novembro de 2009
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 é 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:
Primeiro vamos instalar os pré-requisitos do Nagios. Os pré-requisitos são:
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
# usermod -G nagcmd apache
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-*.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-*.tar.gz
Obs.: Onde "*" corresponde a versão do nagios.
Descompactar os arquivos:
# tar xzvf nagios-*.tar.gz
Entrar no diretório do Nagios:
# cd nagios-*
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-*.tar.gz
Entrar no diretório dos Plugins do Nagios:
# cd nagios-plugins-*
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
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 em Next
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*/nagiosql*.tar.gz/download
Descompactar os arquivos:
# tar xzvf nagiosql*.tar.gz
Mover o diretório para o diretório padrão do apache:
# mv nagiosql 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
# pear install HTML_Template_IT
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/
# chown apache.nagios /usr/local/nagios/bin/*
# chown apache.nagios /usr/local/nagios/etc/resource.cfg
# chown apache.nagios -R /usr/local/nagios/var/spool/checkresults/
# chown apache.nagios /usr/local/nagios/var/rw/nagios.cmd
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”:
Clique em Administration// Domains e clique no botão “Modify” (Botão de Ferramentas):
Confira o caminho das opções abaixo:
Nagios command file /usr/local/nagios/var/rw/nagios.cmd
Nagios binary file /usr/local/nagios/bin/nagios
Nagios process file /usr/local/nagios/var/nagios.lock
Clique em Save
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:
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-*/ndoutils-*.tar.gz/download
Descompactar os arquivos:
# tar zxfv ndoutils-*.tar.gz
Entrar no diretório do ndoutils:
# cd ndoutils-*
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-*/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-*/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
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.
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
Primeiro vamos instalar os pré-requisitos do Nagios. Os pré-requisitos são:
- Apache
- GD Development Libraries
- GCC compiler and development libraries
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
# usermod -G nagcmd apache
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-*.tar.gz
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-*.tar.gz
Obs.: Onde "*" corresponde a versão do nagios.
Descompactar os arquivos:
# tar xzvf nagios-*.tar.gz
Entrar no diretório do Nagios:
# cd nagios-*
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-*.tar.gz
Entrar no diretório dos Plugins do Nagios:
# cd nagios-plugins-*
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
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"
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
Alias /nagios "/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
###############################################################################
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 em Next
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*/nagiosql*.tar.gz/download
Descompactar os arquivos:
# tar xzvf nagiosql*.tar.gz
Mover o diretório para o diretório padrão do apache:
# mv nagiosql 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
# pear install HTML_Template_IT
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/
# chown apache.nagios /usr/local/nagios/bin/*
# chown apache.nagios /usr/local/nagios/etc/resource.cfg
# chown apache.nagios -R /usr/local/nagios/var/spool/checkresults/
# chown apache.nagios /usr/local/nagios/var/rw/nagios.cmd
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”:
Clique em Administration// Domains e clique no botão “Modify” (Botão de Ferramentas):
Confira o caminho das opções abaixo:
Nagios command file /usr/local/nagios/var/rw/nagios.cmd
Nagios binary file /usr/local/nagios/bin/nagios
Nagios process file /usr/local/nagios/var/nagios.lock
Clique em Save
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-*/ndoutils-*.tar.gz/download
Descompactar os arquivos:
# tar zxfv ndoutils-*.tar.gz
Entrar no diretório do ndoutils:
# cd ndoutils-*
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-*/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-*/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
Marcadores:
Administrador de Redes,
Linux,
Monitoramento,
Open Source,
Software Livre,
SysAdmin
quarta-feira, 25 de novembro de 2009
Instalando MRTG 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, realidade da distribuição escolhida.
Sobre o MRTG:
O Multi Router Traffic Grapher (MRTG) é uma ferramenta de monitoração que gera páginas HTML com gráficos de dados coletados a partir de SNMP ou scripts externos. É conhecido principalmente pelo seu uso na monitoração de tráfego de rede, mas pode monitorar qualquer coisa desde que o host forneça os dados via SNMP ou script.
Foi desenvolvido por Tobias Oetiker e Dave Rand. Foi escrito em Perl mas utiliza um módulo em C para gerar os gráficos.
Características:
# yum install mrtg perl-IO-Socket-INET6 perl-Socket6
Criando o primeiro gráfico:
Primeiramente vamos criar um shell script para obter dois valores de uma determinada interface de rede plugada ao seu computador, entrada e saída de dados. Vou usar como exemplo eth0, pois é a minha interface de rede com acesso a internet, porém você poderá usar qualquer outra interface na qual queira gerar os gráficos.
Com base em outros scripts encontrados na internet, criei o meu e estarei explicando como funciona.
Vamos analisar:
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1109 17 0 0 0 0 0 0 1109 17 0 0 0 0 0 0
eth0: 6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
Bom, no nosso exemplo é preciso obter os valores que estão nas posições 1 e 9 após o eth0, pois eles representam a quantidade de bytes recebidos e enviados respectivamente. Então vamos automatizar esta tarefa da seguinte forma:
Crie um arquivo chamado "eth0.sh" no diretório /etc/mrtg, lugar onde ficam por padrão as configurações, irei explicar mais a frente. Dentro do arquivo eth0.sh adicione as seguintes linha:
#!/bin/bash
cat /proc/net/dev | grep eth0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
Salve o arquivo
Entendendo o script:
cat /proc/net/dev | grep eth0
Exibe apenas as informações da interface eth0
cat /proc/net/dev | grep eth0 | cut -d : -f 2
cut comando para cortar as informações usando como separador (delimitador "-d") o :, e exibindo apenas o campo 2, ou seja, o : é o separador, o que está antes dele é o campo1 (eth0), o que está depois dele é o campo 2 (Informações da interface), o resultado será:
6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
cat /proc/net/dev | grep eth0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
Através do comando (linguagem de programação) awk, será exibido apenas os campos 1 e 9, que correspondem a quantidade de bytes recebidos e enviados respectivamente. O resultado será:
6686671
532591
Dê permissão de execução da seguinte forma:
# chmod +x eth0.sh
Para testar se ocorreu tudo de forma correta, vamos testar o script:
# ./eth0
6887836
591145
Tudo ocorreu como o esperado, caso você tenha algum problema, revise o script e faça as alterações necessárias.
Configurando e rodando:
Esta é a parte mais importante do processo, o arquivo de configuração. Edite o arquivo "mrtg.cfg" na pasta /etc/mrtg, dentro do mesmo adicione as linhas:
# Estas duas linhas indicam onde a página com os gráficos e as imagens serão salvas,
# eu coloquei como destino a pasta padrão do meu Apache, mas você tem
# total liberdade de escolha, pois o resultado é gravado em linguagem
# HTML, não necessitando diretamente do Apache.
HtmlDir: /var/www/html/monitoramento/
ImageDir: /var/www/html/monitoramento/
# Diretório onde o MRTG armazena as imagens default que ele usa para montar as
# páginas dos gráficos e tambem os logs
LogDir: /var/lib/mrtg
# Diretório onde o MRTG faz o controle de alertas, você pode realizar configurações para
# ser alertado caso um disco atinja determinado tamanho/porcentagem, se o processador
# atingir um determinado valor de processamento, etc; Este controle é escrito neste diretório
ThreshDir: /var/lib/mrtg
# Nesta linha é definido em qual idioma será gerado o resultado
Language: brazilian
# Define qual o intervalo de tempo entre cada atualização, o valor é dado em
# minutos, sendo o valor mínimo 5 minutos
Interval: 5
# Esta linha se encarregará que a atualização seja automática e o
# processo irá rodar como um daemon qualquer, sendo possível
# iniciá-lo junto com o sistema
RunAsDaemon: Yes
# Esta linha é onde ficará o script que criamos, pois sempre que for chamado
# ele atualizará os valores de dados recebidos e enviados de forma automática,
# onde a palavra "trafego" é o nome da seção. Procure manter o mesmo nome para
# todos os comandos, evitando problemas mais a frente, a página gerada terá o mesmo nome da seção.
Target[trafego]: `/etc/mrtg/eth0.sh`
# Aqui é informado o título da página, usei simplesmente "Tráfego da rede", que
# já resume muito bem minha intenção
Title[trafego]: Trafego da rede
# As duas próximas linhas representam no gráfico, o máximo suportado pelo seu link
# para um resultado mais preciso, os valores são dados em bytes.
MaxBytes[trafego]: 32000
AbsMax[trafego]: 32000
# Esta linha força o gráfico a mostrar no valor máximo o valor setado em
# MaxBytes seguido pelas iniciais de quais quadros este parâmetro vai ser
# aplicado, onde d = diário, w = semanal, m = mensal e y = anual.
Unscaled[trafego]: dwmy
A configuração está pronta para por em funcionamento, basta dar o comando:
# mrtg /etc/mrtg/mrtg.cfg
O programa alerta que se a variável de ambiente estiver setada em UTF-8 ele provavelmente não irá funcionar adequadamente e manda rodar da seguinte maneira:
# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Daemonizing MRTG ...
Está tudo pronto e funcionando, com esta configuração a cada 5 minutos o gráfico será atualizado de forma automática, bastando abrir o local onde está o documento, que no mrtg é "trafego.html".
Se precisar parar o serviço utilize o comando:
# killall mrtg
Acessando as páginas:
Como eu coloquei para o resultado ser gerado no diretório do Apache, visualizo no meu navegador com o endereço:
http://localhost/monitoramento/trafego.html
Scripts adicionais:
uptime.pl
#!/usr/bin/perl
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "$up\n";
print "$up\n";
dsk-snmp.sh
#!/bin/bash
snmpget -v 1 -c public localhost dskTotal.1 | cut -f4 -d:
snmpget -v 1 -c public localhost dskUsed.1 | cut -f4 -d:
Entradas no /etc/mrtg.cfg:
# Uptime.pl
Target[uptime]:`/etc/mrtg/uptime.pl`
Title[uptime]: Dias com o servidor no ar (Uptime)
PageTop[uptime]: <h1>Dias com o servidor no ar (Uptime)</h1>
Options[uptime]: growright,gauge
MaxBytes[uptime]: 365
Legend1[uptime]: Dias com o servidor no ar (Uptime)
Legend2[uptime]: Dias com o servidor no ar (Uptime)
LegendI[uptime]: Dias com o servidor no ar (Uptime)
LegendO[uptime]: Dias com o servidor no ar (Uptime)
# Dsk-snmp.sh
Target[disco]: `/etc/mrtg/dsk-snmp.sh`
Title[disco]: Uso do Disco
PageTop[disco]: <h2>Utilização do disco</h2>
Options[disco]: gauge, growright, transparent, nopercent
MaxBytes[disco]: 7010530
kMG[disco]: G,G
ShortLegend[disco]: B
LegendI[disco]: Tamanho do Disco
LegendO[disco]: Utilizacao do Disco
Utilizando SNMP no MRTG:
Nos sentimos tentados a realizar scripts como o dsk-snmp.sh, e realmente eles funcionam, porém não estamos utilizando MRTG com SNMP, estamos utilizando MRTG com um script em Shell que faz uso de comandos SNMP. Para utilizarmos MRTG com SNMP devemos colocar os OIDs diretamente no campo Target. Como no Exemplo abaixo:
# Disco 2
Target[disco2]: .1.3.6.1.4.1.2021.9.1.6.1&.1.3.6.1.4.1.2021.9.1.8.1:public@localhost
Title[disco2]: Uso do Disco
PageTop[disco2]: <h2>Utilização do disco</h2>
Options[disco2]: gauge, growright, transparent, nopercent
MaxBytes[disco2]: 7010530
kMG[disco2]: G,G
ShortLegend[disco2]: B
LegendI[disco2]: Tamanho do Disco
LegendO[disco2]: Utilizacao do Disco
Como vocês podem perceber as entradas das seções "disco" e "disco2" são idênticas, a diferença está apenas no campo "Target", mas como cheguei nestes OIDs? Bom se você pretende usar MRTG com SNMP, você precisa conhecer SNMP, mas de qualquer forma vou dar algumas instruções básicas.
# snmptranslate -On -IR dskTotal.1
.1.3.6.1.4.1.2021.9.1.6.1
# snmptranslate -On -IR dskUsed.1
.1.3.6.1.4.1.2021.9.1.8.1
Os comandos acima transformam a informação que eu quero ler (dskTotal.1 e dskUsed.1) em OID numérica, de posse destes OIDs eu configurei as informações do Target.
A sintaxe é a seguinte:
Target[Nome da Seção]: OID da primeira informação que eu quero ler&OID da segunda informação que eu quero ler:nome da comunidade@IP do host que eu quero ler as informações
Outro exemplo, agora de uma máquina Windows:
Target[DSK_C]: ((((4096 * .1.3.6.1.2.1.25.2.3.1.5.2&.1.3.6.1.2.1.25.2.3.1.6.2:public@10.72.220.2)/1024)/1024)/1024)
MaxBytes[DSK_C]: 48074785792
Options[DSK_C]: growright, gauge, nopercent
YLegend[DSK_C]: Utilizacao do Disco
kMG[DSK_C]: G,G
ShortLegend[DSK_C]: B
Legend1[DSK_C]: C Drive total
Legend2[DSK_C]: D Drive % Used
LegendI[DSK_C]: C Drive total
LegendO[DSK_C]: C Drive used
Title[DSK_C]: Utilizacao do Disco
PageTop[DSK_C]: <h1>Utilização do disco</h1>
Este exemplo é interessante, você deve estar se perguntando porque multiplicar por 4096 e depois dividir por 1024 três vezes? A resposta é simples, vamos analisar o que aconteceu, primeiramente vamos ler as informações da máquina windows através do comando snmpwalk:
# snmpwalk -c community-name -v1 IP
Olhando as informações cuidadosamente, você encontrará este resultado:
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: G:\ Label:Local Disk Serial Number e8eed18c
HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 7861801
HOST-RESOURCES-MIB::hrStorageUsed.6 = INTEGER: 871398
Então a string #6 do hrStorage é o drive G no Windows.
A capacidade total do disco é 7861801 * 4096 = 32201936896 bytes = 29.99 GB (Windows usa GB para informações de capacidade)
E o espaço usado é 871398 * 4096 = 3569246208 bytes = 3.32 GB (3569246208/1024 = 3485592; 3485592/1024 = 3403,8984375 ; 3403,8984375/1024 = 3,32411956787109375)
Entendeu? Não? Vamos lá:
O SNMP nos informou que ele está armazenando as informações em Unidades de Alocação de 4096 bytes e que o tamanho total do disco é de 7861801 UNIDADES, Ah bom... Agora entendi!!! ;-)
Mas porque 4096 bytes??? De onde ele tirou este valor??? Você nunca deve ter reparado, mas ao formatar um disco no Windows ele te mostra essa informação:
Referências
As informações de "Criando o primeiro gráfico:" até "Acessando as páginas:", foram criadas com base no artigo "Gerando gráficos para interfaces de rede com MRTG" de Joaquin Joao Juze, utilizei a referência mudando algumas informações para que ficassem mais didáticas para o uso em sala de aula, também acrescentei detalhes do CentOS, todos os direitos reservados ao autor original do artigo (http://www.vivaolinux.com.br/artigo/Gerando-graficos-para-interfaces-de-rede-com-MRTG).
http://pt.wikipedia.org/wiki/Multi_Router_Traffic_Grapher
http://jehiah.cz/download/mrtg-uptime.pl.txt
As informações do exemplo de MRTG com SNMP para ler as informações de uma máquina Windows foram encontradas no Blog de Anthony Fajri:
http://fajri.freebsd.or.id/index.php/2007/01/30/check-the-disk-space-using-snmp/
Referências Adicionais:
Instalação passo-a-passo do MRTG em Ambiente Windows:
http://www.netmon.org/dummies.htm
Documentação Oficial:
http://oss.oetiker.ch/mrtg/doc/mrtg.en.html
Tutorial NET-SNMP com MRTG:
http://net-snmp.sourceforge.net/tutorial/tutorial-5/mrtg/index.html
Exemplo de leitura de informações do Windows usando SNMP e Scripts Windows Power Shell:
http://snmpboy.msft.net/
Exemplo de Scripts em Perl e C:
http://pointless.nl/~peter/code/mrtg/
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, realidade da distribuição escolhida.
Sobre o MRTG:
O Multi Router Traffic Grapher (MRTG) é uma ferramenta de monitoração que gera páginas HTML com gráficos de dados coletados a partir de SNMP ou scripts externos. É conhecido principalmente pelo seu uso na monitoração de tráfego de rede, mas pode monitorar qualquer coisa desde que o host forneça os dados via SNMP ou script.
Foi desenvolvido por Tobias Oetiker e Dave Rand. Foi escrito em Perl mas utiliza um módulo em C para gerar os gráficos.
Características:
- Mede sempre 2 valores, no caso de tráfego, pode ser Entrada e Saída.
- Faz as leituras via SNMP ou através de script que retorne um formato padrão.
- Coleta dados a cada 5 minutos por padrão, mas este tempo pode ser aumentado.
- Cria uma página HTML com 4 gráficos (diário, semanal, mensal e anual). Se algum deles não for necessário pode ser suprimido.
- O MRTG pode avisar caso o valor do gráfico atinja um valor pré-estabelecido. Por exemplo: se determinado servidor atinge 95% do espaço do disco, o MRTG pode mandar um e-mail para o administrador informando o ocorrido.
- Possui uma ferramenta para gerar os arquivos de configuração: o CFGMAKER.
- Possui uma ferramenta para gerar um página de índice para os casos em que muitos ítens são monitorados: o INDEXMAKER.
- O MRTG é software livre distribuído nos termos da GNU General Public License.
# yum install mrtg perl-IO-Socket-INET6 perl-Socket6
Criando o primeiro gráfico:
Primeiramente vamos criar um shell script para obter dois valores de uma determinada interface de rede plugada ao seu computador, entrada e saída de dados. Vou usar como exemplo eth0, pois é a minha interface de rede com acesso a internet, porém você poderá usar qualquer outra interface na qual queira gerar os gráficos.
Com base em outros scripts encontrados na internet, criei o meu e estarei explicando como funciona.
Vamos analisar:
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1109 17 0 0 0 0 0 0 1109 17 0 0 0 0 0 0
eth0: 6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
Bom, no nosso exemplo é preciso obter os valores que estão nas posições 1 e 9 após o eth0, pois eles representam a quantidade de bytes recebidos e enviados respectivamente. Então vamos automatizar esta tarefa da seguinte forma:
Crie um arquivo chamado "eth0.sh" no diretório /etc/mrtg, lugar onde ficam por padrão as configurações, irei explicar mais a frente. Dentro do arquivo eth0.sh adicione as seguintes linha:
#!/bin/bash
cat /proc/net/dev | grep eth0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
Salve o arquivo
Entendendo o script:
cat /proc/net/dev | grep eth0
Exibe apenas as informações da interface eth0
cat /proc/net/dev | grep eth0 | cut -d : -f 2
cut comando para cortar as informações usando como separador (delimitador "-d") o :, e exibindo apenas o campo 2, ou seja, o : é o separador, o que está antes dele é o campo1 (eth0), o que está depois dele é o campo 2 (Informações da interface), o resultado será:
6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
cat /proc/net/dev | grep eth0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
Através do comando (linguagem de programação) awk, será exibido apenas os campos 1 e 9, que correspondem a quantidade de bytes recebidos e enviados respectivamente. O resultado será:
6686671
532591
Dê permissão de execução da seguinte forma:
# chmod +x eth0.sh
Para testar se ocorreu tudo de forma correta, vamos testar o script:
# ./eth0
6887836
591145
Tudo ocorreu como o esperado, caso você tenha algum problema, revise o script e faça as alterações necessárias.
Configurando e rodando:
Esta é a parte mais importante do processo, o arquivo de configuração. Edite o arquivo "mrtg.cfg" na pasta /etc/mrtg, dentro do mesmo adicione as linhas:
# Estas duas linhas indicam onde a página com os gráficos e as imagens serão salvas,
# eu coloquei como destino a pasta padrão do meu Apache, mas você tem
# total liberdade de escolha, pois o resultado é gravado em linguagem
# HTML, não necessitando diretamente do Apache.
HtmlDir: /var/www/html/monitoramento/
ImageDir: /var/www/html/monitoramento/
# Diretório onde o MRTG armazena as imagens default que ele usa para montar as
# páginas dos gráficos e tambem os logs
LogDir: /var/lib/mrtg
# Diretório onde o MRTG faz o controle de alertas, você pode realizar configurações para
# ser alertado caso um disco atinja determinado tamanho/porcentagem, se o processador
# atingir um determinado valor de processamento, etc; Este controle é escrito neste diretório
ThreshDir: /var/lib/mrtg
# Nesta linha é definido em qual idioma será gerado o resultado
Language: brazilian
# Define qual o intervalo de tempo entre cada atualização, o valor é dado em
# minutos, sendo o valor mínimo 5 minutos
Interval: 5
# Esta linha se encarregará que a atualização seja automática e o
# processo irá rodar como um daemon qualquer, sendo possível
# iniciá-lo junto com o sistema
RunAsDaemon: Yes
# Esta linha é onde ficará o script que criamos, pois sempre que for chamado
# ele atualizará os valores de dados recebidos e enviados de forma automática,
# onde a palavra "trafego" é o nome da seção. Procure manter o mesmo nome para
# todos os comandos, evitando problemas mais a frente, a página gerada terá o mesmo nome da seção.
Target[trafego]: `/etc/mrtg/eth0.sh`
# Aqui é informado o título da página, usei simplesmente "Tráfego da rede", que
# já resume muito bem minha intenção
Title[trafego]: Trafego da rede
# As duas próximas linhas representam no gráfico, o máximo suportado pelo seu link
# para um resultado mais preciso, os valores são dados em bytes.
MaxBytes[trafego]: 32000
AbsMax[trafego]: 32000
# Esta linha força o gráfico a mostrar no valor máximo o valor setado em
# MaxBytes seguido pelas iniciais de quais quadros este parâmetro vai ser
# aplicado, onde d = diário, w = semanal, m = mensal e y = anual.
Unscaled[trafego]: dwmy
A configuração está pronta para por em funcionamento, basta dar o comando:
# mrtg /etc/mrtg/mrtg.cfg
O programa alerta que se a variável de ambiente estiver setada em UTF-8 ele provavelmente não irá funcionar adequadamente e manda rodar da seguinte maneira:
# env LANG=C /usr/bin/mrtg /etc/mrtg/mrtg.cfg
Daemonizing MRTG ...
Está tudo pronto e funcionando, com esta configuração a cada 5 minutos o gráfico será atualizado de forma automática, bastando abrir o local onde está o documento, que no mrtg é "trafego.html".
Se precisar parar o serviço utilize o comando:
# killall mrtg
Acessando as páginas:
Como eu coloquei para o resultado ser gerado no diretório do Apache, visualizo no meu navegador com o endereço:
http://localhost/monitoramento/trafego.html
Scripts adicionais:
uptime.pl
#!/usr/bin/perl
$uptime = `uptime`;
$uptime =~ /up (.*?) day/;
$up = int($1);
print "$up\n";
print "$up\n";
dsk-snmp.sh
#!/bin/bash
snmpget -v 1 -c public localhost dskTotal.1 | cut -f4 -d:
snmpget -v 1 -c public localhost dskUsed.1 | cut -f4 -d:
Entradas no /etc/mrtg.cfg:
# Uptime.pl
Target[uptime]:`/etc/mrtg/uptime.pl`
Title[uptime]: Dias com o servidor no ar (Uptime)
PageTop[uptime]: <h1>Dias com o servidor no ar (Uptime)</h1>
Options[uptime]: growright,gauge
MaxBytes[uptime]: 365
Legend1[uptime]: Dias com o servidor no ar (Uptime)
Legend2[uptime]: Dias com o servidor no ar (Uptime)
LegendI[uptime]: Dias com o servidor no ar (Uptime)
LegendO[uptime]: Dias com o servidor no ar (Uptime)
# Dsk-snmp.sh
Target[disco]: `/etc/mrtg/dsk-snmp.sh`
Title[disco]: Uso do Disco
PageTop[disco]: <h2>Utilização do disco</h2>
Options[disco]: gauge, growright, transparent, nopercent
MaxBytes[disco]: 7010530
kMG[disco]: G,G
ShortLegend[disco]: B
LegendI[disco]: Tamanho do Disco
LegendO[disco]: Utilizacao do Disco
Utilizando SNMP no MRTG:
Nos sentimos tentados a realizar scripts como o dsk-snmp.sh, e realmente eles funcionam, porém não estamos utilizando MRTG com SNMP, estamos utilizando MRTG com um script em Shell que faz uso de comandos SNMP. Para utilizarmos MRTG com SNMP devemos colocar os OIDs diretamente no campo Target. Como no Exemplo abaixo:
# Disco 2
Target[disco2]: .1.3.6.1.4.1.2021.9.1.6.1&.1.3.6.1.4.1.2021.9.1.8.1:public@localhost
Title[disco2]: Uso do Disco
PageTop[disco2]: <h2>Utilização do disco</h2>
Options[disco2]: gauge, growright, transparent, nopercent
MaxBytes[disco2]: 7010530
kMG[disco2]: G,G
ShortLegend[disco2]: B
LegendI[disco2]: Tamanho do Disco
LegendO[disco2]: Utilizacao do Disco
Como vocês podem perceber as entradas das seções "disco" e "disco2" são idênticas, a diferença está apenas no campo "Target", mas como cheguei nestes OIDs? Bom se você pretende usar MRTG com SNMP, você precisa conhecer SNMP, mas de qualquer forma vou dar algumas instruções básicas.
# snmptranslate -On -IR dskTotal.1
.1.3.6.1.4.1.2021.9.1.6.1
# snmptranslate -On -IR dskUsed.1
.1.3.6.1.4.1.2021.9.1.8.1
Os comandos acima transformam a informação que eu quero ler (dskTotal.1 e dskUsed.1) em OID numérica, de posse destes OIDs eu configurei as informações do Target.
A sintaxe é a seguinte:
Target[Nome da Seção]: OID da primeira informação que eu quero ler&OID da segunda informação que eu quero ler:nome da comunidade@IP do host que eu quero ler as informações
Outro exemplo, agora de uma máquina Windows:
Target[DSK_C]: ((((4096 * .1.3.6.1.2.1.25.2.3.1.5.2&.1.3.6.1.2.1.25.2.3.1.6.2:public@10.72.220.2)/1024)/1024)/1024)
MaxBytes[DSK_C]: 48074785792
Options[DSK_C]: growright, gauge, nopercent
YLegend[DSK_C]: Utilizacao do Disco
kMG[DSK_C]: G,G
ShortLegend[DSK_C]: B
Legend1[DSK_C]: C Drive total
Legend2[DSK_C]: D Drive % Used
LegendI[DSK_C]: C Drive total
LegendO[DSK_C]: C Drive used
Title[DSK_C]: Utilizacao do Disco
PageTop[DSK_C]: <h1>Utilização do disco</h1>
Este exemplo é interessante, você deve estar se perguntando porque multiplicar por 4096 e depois dividir por 1024 três vezes? A resposta é simples, vamos analisar o que aconteceu, primeiramente vamos ler as informações da máquina windows através do comando snmpwalk:
# snmpwalk -c community-name -v1 IP
Olhando as informações cuidadosamente, você encontrará este resultado:
HOST-RESOURCES-MIB::hrStorageDescr.6 = STRING: G:\ Label:Local Disk Serial Number e8eed18c
HOST-RESOURCES-MIB::hrStorageAllocationUnits.6 = INTEGER: 4096 Bytes
HOST-RESOURCES-MIB::hrStorageSize.6 = INTEGER: 7861801
HOST-RESOURCES-MIB::hrStorageUsed.6 = INTEGER: 871398
Então a string #6 do hrStorage é o drive G no Windows.
A capacidade total do disco é 7861801 * 4096 = 32201936896 bytes = 29.99 GB (Windows usa GB para informações de capacidade)
E o espaço usado é 871398 * 4096 = 3569246208 bytes = 3.32 GB (3569246208/1024 = 3485592; 3485592/1024 = 3403,8984375 ; 3403,8984375/1024 = 3,32411956787109375)
Entendeu? Não? Vamos lá:
O SNMP nos informou que ele está armazenando as informações em Unidades de Alocação de 4096 bytes e que o tamanho total do disco é de 7861801 UNIDADES, Ah bom... Agora entendi!!! ;-)
Mas porque 4096 bytes??? De onde ele tirou este valor??? Você nunca deve ter reparado, mas ao formatar um disco no Windows ele te mostra essa informação:
Referências
As informações de "Criando o primeiro gráfico:" até "Acessando as páginas:", foram criadas com base no artigo "Gerando gráficos para interfaces de rede com MRTG" de Joaquin Joao Juze, utilizei a referência mudando algumas informações para que ficassem mais didáticas para o uso em sala de aula, também acrescentei detalhes do CentOS, todos os direitos reservados ao autor original do artigo (http://www.vivaolinux.com.br/artigo/Gerando-graficos-para-interfaces-de-rede-com-MRTG).
http://pt.wikipedia.org/wiki/Multi_Router_Traffic_Grapher
http://jehiah.cz/download/mrtg-uptime.pl.txt
As informações do exemplo de MRTG com SNMP para ler as informações de uma máquina Windows foram encontradas no Blog de Anthony Fajri:
http://fajri.freebsd.or.id/index.php/2007/01/30/check-the-disk-space-using-snmp/
Referências Adicionais:
Instalação passo-a-passo do MRTG em Ambiente Windows:
http://www.netmon.org/dummies.htm
Documentação Oficial:
http://oss.oetiker.ch/mrtg/doc/mrtg.en.html
Tutorial NET-SNMP com MRTG:
http://net-snmp.sourceforge.net/tutorial/tutorial-5/mrtg/index.html
Exemplo de leitura de informações do Windows usando SNMP e Scripts Windows Power Shell:
http://snmpboy.msft.net/
Exemplo de Scripts em Perl e C:
http://pointless.nl/~peter/code/mrtg/
Marcadores:
Administrador de Redes,
Linux,
Monitoramento,
Open Source,
Scripts,
Software Livre,
SysAdmin
sexta-feira, 30 de outubro de 2009
Virtualização de Switches e Roteadores? Conheça o GNS!
O Problema
Além de meu emprego como administrador de redes também sou professor universitário, e dedico boa parte dos meus estudos na questão de gerência e administração de redes, que inclui monitoramento, com isso as necessidades vão surgindo, por conta de um problema no trabalho, ou na hora de preparar um exercício para os alunos, e nem sempre temos equipamentos disponíveis para teste, a virtulização resolveu grande parte destes problemas quando o assunto é Sistemas Operacionais, posso virtulizar Linux, Windows, BSD, etc, das mais diferentes versões, mas e quando preciso realizar um teste com um Switch, um Router, etc?? Bom foi ai que comecei minhas pesquisas e me deparei com o GNS.
Introdução
GNS ou Graphical Network Simulator é um poderoso simulador de redes baseado no Cisco IOS. Ele permite simular desde um simples equipamento até redes complexas, para isso é preciso que você tenha alguns programas trabalhando em conjunto com ele como o Dynamips (programa que permite a emulação do Cisco IOS), Dynagen (um front-end baseado em texto para o Dynamips) e o Pemu (Emulador de Cisco PIX firewall baseado no Qemu), além da imagem do equipamento que você quer emular.
Restrições Legais
Para que você tenha acesso as imagens do equipamento é necessário que você tenha um cadastro na Cisco;
A Cisco não permite que você use a imagem como um equipamento real na rede;
Entretanto como tudo hoje em dia, as imagens podem ser encontradas na net.
Instalando GNS no Windows
Faça o dowload do pacote GNSversao-win32-all-in-one.exe
Duplo clique no arquivo
Tela de boas vindas, clique em Next
Tela de licenciamento, clique em I Agree
Nome da pasta no Menu Iniciar, clique em Next
Tela de componentes que serão instalados, deixe todos marcados e clique em Next
Diretório de Instalação, clique em Next
Tela de instalação do WinPcap, clique em Next
Tela de assistente, clique em Next
Tela de licenciamento, clique em I Agree
Aguarde o processo de instalação
Instalação completa, clique em Finish
Depois de suprido as dependências (WinPcap), ele continua a instalação do GNS, aguarde o processo finalizar a instalação
Instalação completa, clique em Finish
Iniciando um novo Projeto
Clique em Iniciar // Programas // GNS3 // GNS3 ou Duplo clique no atalho que foi criado na área de trabalho
Na tela de novo projeto, escolha local onde o arquivo será salvo e marque as opções "Salva nvrmas e outros arquivos (recomendado)" e " Exporta arquivos de configuração de roteador", clique em OK
Clique no botão "..." para escolher o local e nome do arquivo e clique em Salvar
Marque as opções necessárias e clique em OK
Configurando o GNS no Windows
No GNS o computador é representado por uma nuvem, não gosto disso, quero que o computador seja representado por um computador, então vamos lá.
Editar // Gerenciador de Símbolos (Ctrl+Shift+S)
Selecione do lado esquerdo em Gerenciador de Símbolos o computador e clique no botão ">", do lado direito em Configuração do nó customizado escolha um nome para a figura no meu caso "PC" e no tipo escolha "Nuvem", clique em Aplicar e em seguida em OK
Carregando as imagens de IOS no GNS
Clique em Editar // Imagens IOS e Hypervisors
Em Arquivo de imagem clique no botão "..." para localizar a imagem IOS
Escolha qual imagem de IOS você quer carregar e clique em Abrir
Observe que ele exibe a Plataforma (c3700) e o Modelo do equipamento (3725), clique me Salvar
O caminho da Imagem IOS é exibido, clique em Fechar
Criando o 1º Projeto
Na tela principal, vamos clicar no modelo do roteador (no meu caso Roteador C3700), e arrastar para a área central
Repita o procedimento para o PC
Atribuindo a placa de rede do micro ou da VMware ao PC do GNS
Clique com o botão direito do mouse em cima do PC e clique em Configurar
Observe que nas propriedades do PC, aparece "Nuvens", o que fizemos foi apenas alterar a imagem de visualização, em NIO Ethernet escolha qual placa física será atribuída ao objeto PC.
Clique em Adicionar e em seguida em OK
Configurar o Router
Clique com o botão direito do mouse em cima do router e clique em Configurar
Verifique em Slots se existe alguma porta do tipo Fast Ethernet (FE), caso não exista ou se você precisar de mais de uma interface, basta clicar no slot e adcionar a porta, depois de finalizado clique em OK
Criando um Link entre o Router e o PC
Clique no botão adicionar um enlace e escolha o tipo de enlace, no meu caso FastEthernet
Clique em cima do PC e escolha qual interface será utilizada
Arraste a linha até o Router e escolha qual interface será utilizada
Observe que o PC já está com o link ativo, pois ele reflete o estado da sua placa física
Iniciando o Router
Clique no botão Iniciar/Parar todos IOS
Observe o router em funcionamento
Configurando o Router
Clique com o botão direito do mouse em cima do Router e clique em Console
Aguarde enquanto o equipamento liga (Boot)
Tela de assitente de configuração inicial, digite "yes" e "enter"
Tela de parâmetros básicos de configuração, digite "yes" e "enter"
Nome do Router o nome padrão é "Router", tecle "enter" para aceitar
Senha para acessar o modo EXEC de configuração, no meu caso coloquei "secret" e "enter"
Senha adicional, será usada em casos específicos como softwares com versão antiga, boot de imagens, no meu caso coloquei "cisco" e "enter"
Senha para acesso via terminal, no meu caso coloquei "cisco" e "enter"
Você quer configurar gerenciamento de rede via SNMP, por padrão a resposta é "yes", basta pressionar "enter"
Nome da comunidade por padrão a comunidade é "public", basta pressionar "enter"
Lista das interfaces do Router, escolha qual você quer configurar, como estou usando o putty para me conectar no Router, selecionei e cliquei com o botão da direita e ele já colou o nome da inteface, depois pressionei "enter"
Usar conector 100 Base-TX (RJ-45), por padrão a resposta é "yes", basta pressionar "enter"
Operar em modo full-dupex, por padrão a resposta é "no", mude para "yes" e pressione "enter"
Configurar IP para esta interface, por padrão a resposta é "yes", basta pressionar "enter"
Informe o enedereço IP e pressione "enter"
Entre com a máscara de rede e pressione "enter"
Escolha a opção desejada:
[0] Ir para a linha de comando do IOS sem salvar alterações
[1] Voltar para o setup sem salvar alterações
[2] Salvar esta configuração no nvram e sair
A opção padrão é "2", basta pressionar "enter"
Aguarde enquanto a configuração é gravada
Enter para entrar na console
Comando "enable" para entrar no modo EXEC, coloque a senha "secret"
Copiar as configurações do nvram (memória ram) para o setor de inicialização do equipamento (memória flash)
"copy running-config startup config"
Nome do arquivo de destino a opção padrão é "startup-config", basta pressionar "enter"
Aguarde a configuração ser gravada
Tudo certo ([OK]), pode fechar o terminal
Agora você já pode fechar seu arquivo, desligar a máquina física, levar o projeto para outro computador sem medo de ser feliz ;-)
Instalando GNS no Linux
==> EM BREVE <== Rodando GNS em um Linux Live CD ou USB
Site do Autor do projeto:
deadwait
Download das Imagens:
DynaSlax
DynaSlaxGNS3
DynaSlaxUSB
Baixando Imagens IOS da Net
Download GNS 3 and Cisco 1700,2600,7200 IOS in one pack:
http://rapidshare.com/files/130264941/GNS3-0.5-win32-all-in-one.rar
Pass:sumptuousworld
thx to: http://sumptuousworld.blogspot.com
Ou no google digite:
Cisco IOS Images GNS
Referências:
http://www.gns3.net
http://renato-networking.blogspot.com/2009/03/gns-3-e-vm-ware.html
http://renato-networking.blogspot.com/2009/02/customizando-parte-grafica-do-gns-3.html
http://www.gns3-labs.com/2008/06/23/dynaslax-dynaslaxgns3-and-dynaslaxusb-livecds/
Além de meu emprego como administrador de redes também sou professor universitário, e dedico boa parte dos meus estudos na questão de gerência e administração de redes, que inclui monitoramento, com isso as necessidades vão surgindo, por conta de um problema no trabalho, ou na hora de preparar um exercício para os alunos, e nem sempre temos equipamentos disponíveis para teste, a virtulização resolveu grande parte destes problemas quando o assunto é Sistemas Operacionais, posso virtulizar Linux, Windows, BSD, etc, das mais diferentes versões, mas e quando preciso realizar um teste com um Switch, um Router, etc?? Bom foi ai que comecei minhas pesquisas e me deparei com o GNS.
Introdução
GNS ou Graphical Network Simulator é um poderoso simulador de redes baseado no Cisco IOS. Ele permite simular desde um simples equipamento até redes complexas, para isso é preciso que você tenha alguns programas trabalhando em conjunto com ele como o Dynamips (programa que permite a emulação do Cisco IOS), Dynagen (um front-end baseado em texto para o Dynamips) e o Pemu (Emulador de Cisco PIX firewall baseado no Qemu), além da imagem do equipamento que você quer emular.
Restrições Legais
Para que você tenha acesso as imagens do equipamento é necessário que você tenha um cadastro na Cisco;
A Cisco não permite que você use a imagem como um equipamento real na rede;
Entretanto como tudo hoje em dia, as imagens podem ser encontradas na net.
Instalando GNS no Windows
Faça o dowload do pacote GNSversao-win32-all-in-one.exe
Duplo clique no arquivo
Tela de boas vindas, clique em Next
Tela de licenciamento, clique em I Agree
Nome da pasta no Menu Iniciar, clique em Next
Tela de componentes que serão instalados, deixe todos marcados e clique em Next
Diretório de Instalação, clique em Next
Tela de instalação do WinPcap, clique em Next
Tela de assistente, clique em Next
Tela de licenciamento, clique em I Agree
Aguarde o processo de instalação
Instalação completa, clique em Finish
Depois de suprido as dependências (WinPcap), ele continua a instalação do GNS, aguarde o processo finalizar a instalação
Instalação completa, clique em Finish
Iniciando um novo Projeto
Clique em Iniciar // Programas // GNS3 // GNS3 ou Duplo clique no atalho que foi criado na área de trabalho
Na tela de novo projeto, escolha local onde o arquivo será salvo e marque as opções "Salva nvrmas e outros arquivos (recomendado)" e " Exporta arquivos de configuração de roteador", clique em OK
Clique no botão "..." para escolher o local e nome do arquivo e clique em Salvar
Marque as opções necessárias e clique em OK
Configurando o GNS no Windows
No GNS o computador é representado por uma nuvem, não gosto disso, quero que o computador seja representado por um computador, então vamos lá.
Editar // Gerenciador de Símbolos (Ctrl+Shift+S)
Selecione do lado esquerdo em Gerenciador de Símbolos o computador e clique no botão ">", do lado direito em Configuração do nó customizado escolha um nome para a figura no meu caso "PC" e no tipo escolha "Nuvem", clique em Aplicar e em seguida em OK
Carregando as imagens de IOS no GNS
Clique em Editar // Imagens IOS e Hypervisors
Em Arquivo de imagem clique no botão "..." para localizar a imagem IOS
Escolha qual imagem de IOS você quer carregar e clique em Abrir
Observe que ele exibe a Plataforma (c3700) e o Modelo do equipamento (3725), clique me Salvar
O caminho da Imagem IOS é exibido, clique em Fechar
Criando o 1º Projeto
Na tela principal, vamos clicar no modelo do roteador (no meu caso Roteador C3700), e arrastar para a área central
Repita o procedimento para o PC
Atribuindo a placa de rede do micro ou da VMware ao PC do GNS
Clique com o botão direito do mouse em cima do PC e clique em Configurar
Observe que nas propriedades do PC, aparece "Nuvens", o que fizemos foi apenas alterar a imagem de visualização, em NIO Ethernet escolha qual placa física será atribuída ao objeto PC.
Clique em Adicionar e em seguida em OK
Configurar o Router
Clique com o botão direito do mouse em cima do router e clique em Configurar
Verifique em Slots se existe alguma porta do tipo Fast Ethernet (FE), caso não exista ou se você precisar de mais de uma interface, basta clicar no slot e adcionar a porta, depois de finalizado clique em OK
Criando um Link entre o Router e o PC
Clique no botão adicionar um enlace e escolha o tipo de enlace, no meu caso FastEthernet
Clique em cima do PC e escolha qual interface será utilizada
Arraste a linha até o Router e escolha qual interface será utilizada
Observe que o PC já está com o link ativo, pois ele reflete o estado da sua placa física
Iniciando o Router
Clique no botão Iniciar/Parar todos IOS
Observe o router em funcionamento
Configurando o Router
Clique com o botão direito do mouse em cima do Router e clique em Console
Aguarde enquanto o equipamento liga (Boot)
Tela de assitente de configuração inicial, digite "yes" e "enter"
Tela de parâmetros básicos de configuração, digite "yes" e "enter"
Nome do Router o nome padrão é "Router", tecle "enter" para aceitar
Senha para acessar o modo EXEC de configuração, no meu caso coloquei "secret" e "enter"
Senha adicional, será usada em casos específicos como softwares com versão antiga, boot de imagens, no meu caso coloquei "cisco" e "enter"
Senha para acesso via terminal, no meu caso coloquei "cisco" e "enter"
Você quer configurar gerenciamento de rede via SNMP, por padrão a resposta é "yes", basta pressionar "enter"
Nome da comunidade por padrão a comunidade é "public", basta pressionar "enter"
Lista das interfaces do Router, escolha qual você quer configurar, como estou usando o putty para me conectar no Router, selecionei e cliquei com o botão da direita e ele já colou o nome da inteface, depois pressionei "enter"
Usar conector 100 Base-TX (RJ-45), por padrão a resposta é "yes", basta pressionar "enter"
Operar em modo full-dupex, por padrão a resposta é "no", mude para "yes" e pressione "enter"
Configurar IP para esta interface, por padrão a resposta é "yes", basta pressionar "enter"
Informe o enedereço IP e pressione "enter"
Entre com a máscara de rede e pressione "enter"
Escolha a opção desejada:
[0] Ir para a linha de comando do IOS sem salvar alterações
[1] Voltar para o setup sem salvar alterações
[2] Salvar esta configuração no nvram e sair
A opção padrão é "2", basta pressionar "enter"
Aguarde enquanto a configuração é gravada
Enter para entrar na console
Comando "enable" para entrar no modo EXEC, coloque a senha "secret"
Copiar as configurações do nvram (memória ram) para o setor de inicialização do equipamento (memória flash)
"copy running-config startup config"
Nome do arquivo de destino a opção padrão é "startup-config", basta pressionar "enter"
Aguarde a configuração ser gravada
Tudo certo ([OK]), pode fechar o terminal
Agora você já pode fechar seu arquivo, desligar a máquina física, levar o projeto para outro computador sem medo de ser feliz ;-)
Instalando GNS no Linux
==> EM BREVE <== Rodando GNS em um Linux Live CD ou USB
Site do Autor do projeto:
deadwait
Download das Imagens:
DynaSlax
DynaSlaxGNS3
DynaSlaxUSB
Baixando Imagens IOS da Net
Download GNS 3 and Cisco 1700,2600,7200 IOS in one pack:
http://rapidshare.com/files/130264941/GNS3-0.5-win32-all-in-one.rar
Pass:sumptuousworld
thx to: http://sumptuousworld.blogspot.com
Ou no google digite:
Cisco IOS Images GNS
Referências:
http://www.gns3.net
http://renato-networking.blogspot.com/2009/03/gns-3-e-vm-ware.html
http://renato-networking.blogspot.com/2009/02/customizando-parte-grafica-do-gns-3.html
http://www.gns3-labs.com/2008/06/23/dynaslax-dynaslaxgns3-and-dynaslaxusb-livecds/
Marcadores:
Administrador de Redes,
GNS,
Monitoramento,
Open Source,
Software Livre,
SysAdmin,
Virtualização
Assinar:
Postagens (Atom)