Serviço Experimental de CIrcuitos aPrOvisionados dinamicamente (SE-CIPÓ)

Skip to end of metadata
Go to start of metadata

Instalação do Sistema Base

Definição da Máquina Virtual

  • Sistema Operacional Hospedeiro: Debian 7.6-amd64
  • Template do Sistema Operacional Hospedeiro: Linux - Other 3.2x Linux (64-bit)
  • Espaço em Disco: 20GB
  • Memória RAM: 1GB
  • Número de CPUs: 1
  • Número de Adaptadores de Rede: 1 tipo E1000

Instalação Sistema Operacional

Instalação Padrão com as seguintes opções:

  • Língua: Inglês
  • País: Outro -> América do Sul -> Brasil
  • Localidade Padrão: Estados Unidos - en_US.UTF-8
  • Teclado: ABNT2
  • Placa de Rede Primária: eth0
  • Definição de IP: Estática (IP da rede pública)
  • Nome do Host: RNP-MON-DCN
  • Domínio: cipo.rnp.br
  • Usuários: root e moncircuitos com respectivas senhas
  • Cidade: São Paulo
  • Particionamento Manual com as seguintes configurações: 1G para SWAP, 10G para / e 10G para /var/log
  • Mirror: Brasil -> debian.pop-sc.rnp.br
  • Participar da pesquisa do Debian: Não
  • Marcar pacotes de instalação: Desmarcar todos
  • Instalação do Boot Loader: GRUB

Instalação de Pacotes Básicos

Instalação de pacotes úteis para compilação e acesso remoto:

# apt-get install make ssh g++ chkconfig curl locate rcconf unzip ngrep vim

Instalação VMWareTools

Para instalar o VMWareTools foi seguido os seguintes passos:

  • Clicar com o botão direito na máquina virtual criada e escolher a opção Guest -> Install/Upgrade VMware Tools e aceitar clicando em OK
  • Logar na máquina como root
  • Instalar headers do Linux e ferramenta de compilação:
# apt-get install linux-headers-$(uname -r)
  • Montar cdrom:
# mount /media/cdrom0
  • Descompactar o VMware Tools e instalar:
# cd /tmp
# tar xzvf /media/cdrom0/VMwareTools-XXXXXX.tar.gz
  • Realizar a instalação do VWware Tools aceitando todas as opções padrões:
# cd /tmp/wmware-tools-distrib
# perl vmware-install.pl

NTP

Para realizar a instalação deste serviço, foi executado o seguinte comando:

# apt-get install ntp ntpdate
  • Em /etc/ntp.conf, aponte os servidores do Monipe e RNP.BR:
server a.ntp.br iburst
server b.ntp.br iburst
server c.ntp.br iburst
  • Reinicie o serviço do NTP:
# /etc/init.d/ntp restart
Stopping NTP server: ntpd.
Starting NTP server: ntpd.
root@RNP-MON-DCN:/var/log# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*mp2.pop-sc.rnp. .GPS.            1 u    1   64    1    0.299    1.188   0.920
 mp2.pop-pr.rnp. .GPS.            1 u    -   64    1   21.247    1.825   3.869
 gt-mediciones.r .GPS.            1 u    1   64    1   13.098    1.146   0.044
 a.ntp.br        200.160.7.186    2 u    -   64    1   13.326    1.048   0.114
 b.ntp.br        200.20.186.76    2 u    1   64    1   21.177    1.280   1.006
 c.ntp.br        200.160.7.186    2 u    -   64    1   34.547    2.371   0.153

Instalação dos Pacotes de Suporte ao Monitoramento

Syslog

Para que o monitoramento dinâmico funcione, é necessário o acesso aos logs do OSCARS (oscars.log) que estão na máquina do Oscars. Para facilitar o acesso desse arquivo, opta-se por replicá-lo para o servidor de monitoramento, com isto é possível monitorar dinamicamente a criação e destruição de circuitos.

A configuração do mesmo se dá em duas etapas, na máquina no OSCARs e na máquina de monitoramento que estão descritas nos procedimentos abaixo.

Máquina OSCARs

  • Incluir as seguintes linhas no arquivo /etc/rsyslog.conf, onde XXX.XXX.XXX.XXX é o IP da máquina de monitoramento:
$ModLoad imfile
$InputFileName /var/log/oscars/OSCARSService.log
$InputFileTag oscars
$InputFilestateFile stat-oscars
#$InputFileSeverity error
#$InputFileFacility local3
$InputRunFileMonitor
*.* @XXX.XXX.XXX.XXX:514
  • Reiniciar o rsyslog para aplicar as configurações aplicadas.
# /etc/init.d/rsyslog restart
Stopping system logging: rsyslog.
Starting system logging: rsyslog.

Máquina MonCircuitos

  • Instalação padrão como segue abaixo:
# apt-get install syslog-ng
# mkdir /var/log/oscars-remoto
  • Realizar configuração no arquivo /etc/syslog-ng/syslog-ng.conf, substituindo o endereço IP (XXX.XXX.XXX.XXX) para o IP onde está rodando a máquina do OSCARs:
#permitir que o servidor syslog receba conexões externas na porta 514/udp
source s_net { udp(ip(0.0.0.0) port(514)); };

##OSCARS
destination df_oscars {
     file("/var/log/oscars-remoto/oscars.log"
     owner("root")
     group("adm")
     perm(0644));
};

filter f_host_oscars_cipo { (host(XXX.XXX.XXX.XXX)); };

log {
     source(s_net);
     destination(df_oscars);
     filter(f_host_oscars_cipo);
};
  • Reiniciar o Syslog para aplicar as configurações aplicadas.
# /etc/init.d/syslog-ng restart
Stopping system logging: syslog-ng.
Starting system logging: syslog-ng.
  • Para testar se a máquina do MonCircuitos está recebendo os logs via Syslog do OSCARs, basta verificar se o arquivo /var/log/oscars-remoto/oscars.log está sendo alimentado, conforme exemplo.
# tail -f /var/log/oscars-remoto/oscars.log
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,166 [INFO] dragon.DragonCSA Src 192.168.0.31/3313, dest 192.168.0.33/3313
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,166 [INFO] dragon.DragonCSA GRI: 292940332-2147483653
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,166 [INFO] dragon.DragonCSA Generic TSPEC R=eth100M, B=eth100M, P=eth100M, m=100, M=1500
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,166 [INFO] dragon.DragonCSA Encoding ethernet, Switching l2sc, G-Pid ethernet
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,167 [INFO] dragon.DragonCSA Ingress Local ID Type: tagged group, Value: 3313
Aug  3 14:18:43 200.237.193.34 2011-07-21 17:26:19,167 [INFO] dragon.DragonCSA Egress Local ID Type: tagged group, Value: 3313.
...

Instalação do RRDTool

Para prosseguir com a instalação, prossiga com os seguintes passos:

# apt-get libcairo2-dev libpango1.0-dev pkg-config libxml2-dev
# cd /tmp
# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool.tar.gz
# tar xzvf rrdtool.tar.gz
# cd rrdtool-1.4.8
# ./configure
# make
# make install

Instalação do MySQL-Server

  • Instalação padrão dos arquivos do MySQL-Server, neste caso foi deixada em branco a senha de root do servidor MySQL:
# apt-get install mysql-server libmysqlclient-dev libmysqlclient18

Instalação dos Pacotes de Monitoramento

Instalação SNMP-RRD-MA

  • Criação de diretóro para compilação:
# mkdir -p /usr/local/files
  • Obtendo arquivo do pacote do SNMP-RRD-MA:
# cd /usr/local/files/
# wget http://software.internet2.edu/vault/3.2/sources/perfSONAR-PS/perfSONAR_PS-SNMPMA-3.2.1.tar.gz
  • Descompactando pacote do SNMP-RRD-MA:
# tar xzvf perfSONAR_PS-SNMPMA-3.2.1.tar.gz
  • Compilando o SNMP-RRD-MA:
# cd /usr/local/files/perfSONAR_PS-SNMPMA-3.2.1
# make install
  • Realizar a instalação de dependências, aceitando as opções padrão conforme segue abaixo:
# cd /usr/local/files/perfSONAR_PS-SNMPMA-3.2.1/scripts
# ./install_dependencies.sh
  • Deve-se alterar o arquivo /opt/perfsonar_ps/snmp_ma/bin/daemon.pl, incluindo a seguinte linha abaixo de  #!/usr/bin/perl -w -I ./lib ../lib:
push(@INC, '/opt/rrdtool-1.4.8/lib/perl/5.14.2');
  • Deve-se alterar o arquivo /usr/local/files/perfSONAR_PS-SNMPMA-3.2.1/scripts/prepare_enviroment.sh, incluindo a seguinte linha abaixo de #!/bin/bash
export PATH=$PATH:/opt/rrdtool-1.4.8/bin
  • Realizar a preparação do ambiente, aceitando as opções padrão conforme segue abaixo:
# cd /usr/local/files/perfSONAR_PS-SNMPMA-3.2.1/scripts
# ./prepare_environment.sh
  • Alteração de privilégios de arquivos de configuração:
# chmod 644 /opt/perfsonar_ps/snmp_ma/etc/daemon_logger.conf
  • Alterar parâmetro default_resolution do arquivo /opt/perfsonar_ps/snmp_ma/etc/daemon.conf para:
default_resolution 60
  • Para testar se o SNMP-RRD-MA está funcionando conforme esperado, execute os seguintes comandos:
# /etc/init.d/snmp_ma stop
# /etc/init.d/snmp_ma start
  • Para subir no Boot
# update-rc.d snmp_ma defaults

Instalação SNMP-STATUS-MA

  • Obtendo arquivo do pacote do SNMP-STATUS-MA:
# cd /usr/local/files/
# wget http://software.internet2.edu/vault/3.2/sources/perfSONAR-PS/perfSONAR_PS-Status-3.2.1.tar.gz
# tar xzvf perfSONAR_PS-Status-3.2.1.tar.gz
  • Realizando a compilação do SNMP-STATUS-MA:
# cd perfSONAR_PS-Status-3.2.1
# touch ./etc/daemon.conf
# touch ./etc/daemon_logger.conf
# make install
  • Realizar a instalação de dependências, aceitando as opções padrão conforme segue abaixo:
# cd /usr/local/files/perfSONAR_PS-Status-3.2.1/scripts
# ./install_dependencies.sh
  • E deve também alterar o arquivo /opt/perfsonar_ps/status/bin/collector.pl, alterando a linha no começo do arquivo #!/usr/bin/perl -w -I lib pela linha abaixo:
##!/usr/bin/perl -w -I lib /opt/rrdtool-1.4.8/lib/perl/5.14.2
  • E deve também alterar o arquivo /opt/perfsonar_ps/status/bin/service.pl, alterando a linha no começo do arquivo #!/usr/bin/perl -w -I ./lib ../lib pela linha abaixo:
##!/usr/bin/perl -w -I lib /opt/rrdtool-1.4.8/lib/perl/5.14.2
  • Realizar a preparação do ambiente, aceitando as opções padrão conforme segue abaixo:
# cd /usr/local/files/perfSONAR_PS-Status-3.2.1/scripts
# ./prepare_environment.sh
  • Criação da base de dados:
# cd /opt/perfsonar_ps/status/scripts
# ./psCreateStatusDB --type mysql --name perfsonar --host localhost --port 3306 --username perfsonar --password PASSWORD
  • Criação de usuário de acesso a base de dados:
# mysql
MYSQL> grant all privileges on perfsonar.* to 'perfsonar'@'localhost' identified by 'PASSWORD';
MYSQL> flush privileges;
MYSQL> exit
  • Alterar arquivo /opt/perfsonar_ps/status/etc/database.conf para habilitar o uso do MySQL como base de dados:
#db_type         sqlite                              # must be set to one of 'sqlite' or 'mysql'
#db_file         /var/lib/perfsonar/status.db        # must be if using sqlite
#db_prefix       ps                                  # defaults to ps if unset

db_type         mysql
db_name         perfsonar                          # must be set if using mysql
db_host         localhost                          # defaults to localhost if unset
db_port         3306                               # defaults to 3306 if unset
db_prefix       ps                                 # defaults to ps if unset
db_username     perfsonar                          # defaults to no username if unset
db_password     PASSWORD                           # defaults to no password if unset
  • Para alteração do nível de log, editar arquivo /opt/perfsonar_ps/status/etc/service_logger.conf:
log4perl.logger.perfSONAR_PS=INFO, A1
  • Alteração de privilégios de arquivos de configuração:
# chmod 644 /opt/perfsonar_ps/status/etc/e2emon_metadata.conf
# chmod 644 /opt/perfsonar_ps/status/etc/service_logger.conf
  • Apontar scripts de inicialização para o /etc/init.d:
# cd /opt/perfsonar_ps/status/scripts/
# chmod 755 perfsonar-status-collector
# chmod 755 perfsonar-status-service
# cd /etc/init.d
# ln -s /opt/perfsonar_ps/status/scripts/perfsonar-status-collector
# ln -s /opt/perfsonar_ps/status/scripts/perfsonar-status-service
  • Para iniciar coletor e serviço:
# /etc/init.d/perfsonar-status-collector start
# /etc/init.d/perfsonar-status-collector stop
# /etc/init.d/perfsonar-status-service start
# /etc/init.d/perfsonar-status-service stop
  • Para subir no BOOT
# update-rc.d perfsonar-status-service defaults

 

E2E-Monitoring System (Geant)

  • Instalação de dependências:
# apt-get install libsoap-lite-perl libxml-parser-perl libxml-dom-xpath-perl liberror-perl libnet-snmp-perl libtime-format-perl apache2
# cd /usr/local/files/
# wget https://wiki.rnp.br/download/attachments/53151829/GN_E2Emon_2-2.tar.gz
  • Descompactar os E2EMon e proparar a configuração:
# cd /usr/local/files/
# tar xzvf GN_E2Emon_2-2.tar.gz
# cd /opt/
# cp -pR /usr/local/files/G2_E2E/G2_E2E_MonitoringSystem E2E
# chown -R www-data:www-data E2E
  • Realizar a configuração do Apache2, criando o arquivo /etc/apache2/conf.d/e2e com o seguinte conteúdo:
Alias /e2e/ "/opt/E2E/html/"
<Directory /opt/E2E/html/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         allow from all
</Directory>

ScriptAlias /cgi-e2emon/ /opt/E2E/src/
<Directory "/opt/E2E/src">
         AllowOverride None
         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
         Order allow,deny
         Allow from all
</Directory>
  • Ajustar os scripts de inicialização, alterando o cabeçalho #!/usr/local/bin/bash dos arquivos /opt/E2E/bin/stop_e2e_mon_system.sh e /opt/E2E/bin/start_e2e_mon_system.sh para a seguinte linha:
#!/bin/bash
  • Alterar a linha PERL=/opt/CSMSystem/support/32/bin/perl do arquivo /opt/E2E/bin/start_e2e_mon_system.sh para as seguintes definições:
PERL=/usr/bin/perl
PATH_E2E=/opt/E2E/bin
cd $PATH_E2E
  • Deve-se alterar a linha $PERL -I"src" "../src/G2_E2E_MonitoringSystem_Start.pl" -g "../etc/G2_E2E_MonSystem_General.conf" -c "../etc/G2_E2E_MonSystem_Domains_local.conf" do arquivo /opt/E2E/bin/start_e2e_mon_system.sh, adicionando um & no final para subir o comando em modo background, como exemplificado na seguinte linha:
$PERL -I"src"  "../src/G2_E2E_MonitoringSystem_Start.pl" -g "../etc/G2_E2E_MonSystem_General.conf" -c "../etc/G2_E2E_MonSystem_Domains.conf" &
  • Deve-se também definir as seguintes declarações do arquivo /opt/E2E/bin/stop_e2e_mon_system.sh antes do comando rm -f ../.E2Emon_run:
PATH_E2E=/opt/E2E/bin
cd $PATH_E2E
  • Alteração de privilégios para inicialização de E2EMon:
# chmod 755 /opt/E2E/bin/start_e2e_mon_system.sh
# chmod 755 /opt/E2E/bin/stop_e2e_mon_system.sh
  • OBSERVAÇÃO: Como o E2EMon roda em poolers definidos de 5 minutos por padrão, o script que para o serviço não imediatamente vai matar o processo quando invocado. O processo só é morto depois da próxima rodada do script do E2Emon.

Instalação do Java 1.7.0

  • Executar:
# apt-get install openjdk

 

Cliente para acessar o OSCARs

# cd /usr/local/files
# wget https://wiki.rnp.br/download/attachments/53151829/ClienteOscars.tar.gz
# cd /opt/
# mkdir ClienteOSCARS
# cd ClienteOSCARS
# tar xzvf /usr/local/files/ClienteOscars.tar.gz

  • No servidor do OSCARS, deve-se copiar a keystore para a maquina de monitoramento. 
# cd /etc/oscars/keystores
# scp oscars.jks root@IPMaquinaMonitoramento:/opt/ClienteOSCARS/oscars.jks

RNP-MON-DCN

Para realizar a instalação do RNP-MON-DCN realize os seguintes procedimentos:

  • Realizar instalação de bibliotecas do Perl:
# cpan XML::Writer
# cpan Log::Dispatch::File
# cpan Net::SNMP::Util
# apt-get install libpar-perl librrdtool-oo-perl
  • Baixe o arquivo rnp-mon-dcn.tar.gz do wiki, colocar no diretório /usr/local/files e descompactar:
# cd /usr/local/files
# wget https://wiki.rnp.br/download/attachments/53151829/rnp-mon-dcn.tar.gz
# tar xzvf rnp-mon-dcn-last.tar.gz
  • Copiar para o local correto de instalação
# cd /opt
# cp -R /usr/local/files/rnp-mon-dcn .
  • Editar o arquivo /opt/rnp-mon-dcn/scripts/lista_circuitos.sh e na linha onde ha XXX.XXX.XXX.XXX trocar pelo IP do OSCARS
  • Configuração do banco de dados, que será armazenado no mesma base de dados do Status Service:
# cd rnp-mon-dcn/mysql/
# mysql perfsonar < rnp-mon-dcn.sql
  • Criar arquivo padrão de acesso aos circuitos detectados:
# cd /opt/rnp-mon-dcn/files/
# ln -s list_circuits.txt list_circuits.txt-last
  • Adicionar linha na crontab:
# crontab -e
* * * * * /opt/rnp-mon-dcn/scripts/monitor.sh 2>&1 >> /var/log/snmp_update.log
* * * * * /opt/rnp-mon-dcn/scripts/snmp_refresh.sh 2>&1 >> /var/log/snmp_update.log
  • Alteração do script de inicialização do E2E Mon, criação de link simbólico e ativação automática do boot:
# ln -s /opt/rnp-mon-dcn/scripts/geant-e2e-mon /etc/init.d/
# update-rc.d geant-e2e-mon defaults
  • Alteração do script de inicialização do E2E Mon Historic, criação de link simbólico e ativação automática do boot:
# ln -s /opt/rnp-mon-dcn/scripts/geant-e2e-mon-historic /etc/init.d/
# update-rc.d geant-e2e-mon-historic defaults

Ativar firewall

Para diminuir a exposição da máquina de monitoramento na Internet recomenda-se que o firewall do host fique ativo.

Os templates do firewall estão em /opt/rnp-mon-dcn/scripts. O script de configuração do firewall é "iptables.rules" e nele deve ser ajustado a rede de gerência para acesso SSH.

Procedimento de instalação abaixo.

  • Alterar no arquivo /opt/rnp-mon-dcn/scripts/iptables.rules para sua rede de gerência ou host, ajustando as demais regras de acordo com sua demanda:
#Acesso SSH, inclua os IPs permitidos ou redes
-A INPUT -s XXX.XXX.XXX.XXX/XX -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
  • Realizar o link simbólico para os caminhos apropriados de inicialização:
# ln -s /opt/rnp-mon-dcn/scripts/firewall /etc/init.d/
# ln -s /opt/rnp-mon-dcn/scripts/iptables.rules /etc/network/
  • Ativar o firewall:
# /etc/init.d/firewall start
  • Ativar a inicialização automática:
# update-rc.d firewall defaults

Monitoramento LOGs

Monitorar os logs do Oscars para realizar o monitoramento dos circuitos e proporcionar uma console remota para os logs.

Console

  • A Interface de console permite ao operador ter uma visão do que está acontecendo na rede de circuitos.
# apt-get install apache2 php5
  • Descompactar o software Console/PoP-SC e colocar acessível via apache
# cd /usr/local/files
# wget http://mirror.pop-sc.rnp.br/mirror/pop-sc/console/pop-sc-console-last.tar.gz
# cd /var/www
# tar zxvf /usr/local/files/pop-sc-console-last.tar.gz
  • Restrição de acesso via HTTP (crie uma senha para o usuário admin)
# cd console/conf
# cp apache-conf/console /etc/apache2/conf.d

# htpasswd -c /etc/apache2/password.file admin

 

SMOKEPING

  • Para monitorar latência e alcançabilidade dos componentes do seu ambiente, realizar instalação dos seguintes pacotes:
# apt-get install smokeping sendmail
  • Adicionar arquivo para geração automática dos campos do arquivo de configuração do RNP-MON-DCN para o Smoke Ping, adicionando a entrada a seguir no arquivo /etc/smokeping/config:
@include /etc/smokeping/config.d/TargetsDCN
  • Crie o arquivo da geração automática dos campos do arquivo de configuração do RNP-MON-DCN para o Smoke Ping:
# touch /etc/smokeping/config.d/TargetsDCN
  • Configure o script de inicialização do serviço:
# cd /etc/init.d/
# ln -s /opt/rnp-mon-dcn/scripts/rnp-smokeping-dcn.sh
# update-rc.d rnp-smokeping-dcn.sh defaults

Serviço SNMP Trap

  • Para instalar o Serviço SNMP Trap, deve-se realizar os seguintes passos:
# apt-get install snmpd
  • Alterar os parâmetros de configuração do arquivo /etc/default/snmpd a seguir:
De TRAPDRUN=no para TRAPDRUN=yes
De TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid' para TRAPDOPTS='-Lf /var/log/snmptraps.log -p /var/run/snmptrapd.pid'
  • Adicionar o parâmetro de configuração do arquivo /etc/snmp/snmptrapd.conf a seguir:
disableAuthorization yes

 

  • Configuração do E2EMon no arquivo /opt/E2E/etc/G2_E2E_MonSystem_General.conf adicionando a linha de configuração abaixo:
SNMPTRAPDEST 127.0.0.1:162

Página de Acesso à Máquina de Monitoramento

  • Apagar o arquivo index.html do Apache2:
rm /var/www/index.html
# cd /usr/local/files
# wget https://wiki.rnp.br/download/attachments/53151829/index.tar.gz
# cd /var/www
# tar xzvf /usr/local/files/index.tar.gz

Nagios

  • Instalar o Nagios:
# apt-get install nagios-images nagios-plugins nagios-plugins-basic nagios-plugins-standard nagios3 nagios3-cgi nagios3-common nagios3-core

Parametrizacao

  • Baixar e executar o script de configuração e seguir suas instruções:
# apt-get install libncurses5 libncurses5-dev
# cpan Authen::Htpasswd Net::Netmask Config::IniFiles Curses::UI
# cd /usr/local/files
# wget http://repositorio.cipo.rnp.br/repositorio/monitoramento/scripts/monitoramento6.tar.gz
# tar xzvf monitoramento6.tar.gz
# cd /usr/local/files/monitoramento
# perl instalar.pl
  • No labels