Sobre o Serviço

Descrição

Arquitetura do Serviço

Portal de Medições

Kit de Medições

Política de Uso e Segurança

Status da Implantação

Guia de Instalação

MP (Atraso e Vazão)

Kits de Baixo Custo (2a. Geração)

Guia de Uso

Portal de Medições

Implantação

[Instituições Clientes (Kit de Baixo Custo)]

[Instituição (2a. Geração)]

PoP

RNP

MonIPÊ Live

Disseminação

Material de apoio

Suporte

Lista de E-mail e Suporte

FAQ & Glossário




Desenvolvimento

Comparativo Técnico

Hardware

Software

Ferramentas de Medição

Montagem

MonIPÊ 2.0

MP

LS

MA

MA-Esmond

NDT

Proxy IdP CAFé

Versões Anteriores

MonIPÊ 1.0




Acompanhamento

Log de Problemas

Implantação GTI

Roadmap

2016

2015

2014

2013

Lista de Requisitos

2014

2013

Demonstrações

Piloto 2013

Equipe

2016

2015

2014

2013

Reuniões

2016

2015

2014

2013

Relatórios Anuais

[2014]

2013

Child pages
  • Desenvolvimento - MA

AVISO: Essa página foi movida! Para versão atualizada do conteúdo acesse: https://wiki.rnp.br/display/monipe

Skip to end of metadata
Go to start of metadata

Virtualização

O MA da RNP roda sobre a plataforma de virtualização VMWare.

Instalação do Sistema Operacional

Em relação a instalação do sistema operacional para o MA da RNP (máquina virtual), não existem requisitos específicos, basta instalar a base mínima do sistema. Porém, alguns pontos devem ser observados para garantir o correto funcionamento do ambiente.

  • Sistema operacional a ser utilizado: Debian 7.8

  • Espaço em disco requerido (recomendado): 30G

  • Língua: Inglês
  • Teclado: ABNT2
  • Particionamento do disco, utilizando LVM, conforme tabela abaixo

 

PartiçãoTamanho
/
4G
/opt/perfsonar
4G
/tmp
2G 
/var/lib/mysql

6G

/var/lib/perfsonar
10G
/var/log
4G

MA

 

  • Atualize e instale os pacotes:
# apt-get update
# apt-get upgrade
# apt-get install ssh vim php5 php5-cli php5-curl php5-mcrypt ntp apache2 libapache2-mod-php5 build-essential rcconf mysql-server php5-mysql snmp snmpd libmoose-perl libdatetime-perl liblwp-useragent-determined-perl libjson-perl libmouse-perl

 

  • Baixe os arquivos fontes:
# cd /usr/local/src
# wget http://rep.monipe.rnp.br/perfSONAR-2014/services/ma/services-ma-last-stable.tar.gz -O services-ma-last-stable.tar.gz
# wget http://rep.monipe.rnp.br/perfSONAR-2014/libs/libs-last-stable.tar.gz -O libs-last-stable.tar.gz
# wget http://rep.monipe.rnp.br/perfSONAR-2014/nmwg/nmwg-last-stable.tar.gz -O nmwg-last-stable.tar.gz
# cd /
# tar xvzf /usr/local/src/nmwg-last-stable.tar.gz
# tar xvzf /usr/local/src/libs-last-stable.tar.gz
# tar xvzf /usr/local/src/services-ma-last-stable.tar.gz

 

  • Crie subdiretórios para armazenar dados de cache para o MA Esmond:
# mkdir -p /var/lib/perfsonar/json/bwctl
# mkdir -p /var/lib/perfsonar/json/owamp
# mkdir -p /var/lib/perfsonar/json/owdsummary
# mkdir -p /var/lib/perfsonar/json/ping
# mkdir -p /var/lib/perfsonar/json/powstream
# mkdir -p /var/lib/perfsonar/json/traceroute

 

  • Configurar o MA com os dados de endereço e chave do MA-Esmond (obtidos no processo de instalação do MA-Esmond) no arquivo /opt/perfsonar/services/ma/scripts/config.pl.

 

  • Configurar o BASH nos arquivos /etc/bash.bashrc e /etc/profile com as seguintes entradas:
PERL5LIB=/opt/perfsonar/libs
export PERL5LIB

 

  • Adiciona os seguintes scripts no crontab (crontab -e):
15 0 * * * /opt/perfsonar/services/ma/scripts/summaryscript.sh > /dev/null
*/20 * * * * /opt/perfsonar/services/ma/scripts/upgrade_system.sh > /dev/null
0 * * * * /opt/perfsonar/services/ma/scripts/store_i2_ma.sh > /dev/null

 

  • Parâmetros a serem alterados do apache nos arquivos abaixo:

Arquivo /etc/apache2/sites-enabled/000-default:

 

<VirtualHost *:8080>


Arquivo /etc/apache2/ports.conf:

NameVirtualHost *:8080
Listen 8080

 

  • Criação de link simbólico e reiniciar apache:
# cd /var/www
# ln -s /opt/perfsonar/services/ma/web/ ./ma
# apache2ctl restart

 

 

  • Criação do arquivo de log:
# mkdir /var/log/perfsonar
# chown -R www-data:www-data /var/log/perfsonar
# touch /var/log/perfsonar/phpsqlma.log
# chmod 777 /var/log/perfsonar/phpsqlma.log

 

  • Alterar as seguintes linhas do arquivo /opt/perfsonar/services/ma/include/global.php
define ("LOG_FILE", "/opt/perfsonar/services/ma/include/log4php.xml");
define ("LOG4PHP_DIR", "/opt/perfsonar/libs/log4php");
define ("NMWG_DIR", "/opt/perfsonar/nmwg");
define ("DATABASE_USERNAME", "usuário MySQL");
define ("DATABASE_PASSWORD", "senha do usuário do MySQL");
define ("DIR_BACKUP", "/var/lib/perfsonar/store");

 

  • Criação da estrutura da base de dados:
# cd /opt/perfsonar/services/ma/db
# mysqladmin create perfsonar_ma -u root -p
# mysql -u root -p perfsonar_ma < perfsonar_ma_structure.sql

 

Configurações:

NTP:

Editar o arquivo /etc/ntp.conf:

###############
# MONIPE - RNP
#
# v2014052100
#
# TRIMBLE
###############
tinker panic 0
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp/ntp.log

server 127.127.29.0 prefer

server ntp.pop-sc.rnp.br iburst
server ntp.cais.rnp.br iburst
server a.ntp.br iburst
server b.ntp.br iburst

#LIBERA ACESSO TOTAL PARA LOOPBACK
restrict 127.0.0.1
restrict -6 ::1
 
#NEGA REQUISICOES REDVAR DE TODOS CLIENTES
restrict 0.0.0.0 mask 0.0.0.0 nomodify noquery
restrict :: mask :: nomodify noquery
 
disable monitor

SNMP:

Editar o arquivo /etc/snmp/snmpd.conf com o seguinte conteúdo, alterando as variáveis NOMESISTEMA, CONTATO, EMAIL@CONTATO, LOCALIZACAO com respectivos valores do ambiente de implatação e adicionando as comunidades SNMP necessárias:

agentAddress  udp:0.0.0.0:161
#
#
################################
# CONTATO E LOCALIZACAO
#
sysname         NOMESISTEMA
syscontact      CONTATO - EMAIL@CONTATO
syslocation     LOCALIZACAO
#

#ADICIONAR COMUNIDADES
#rocommunity COMUNIDADE_SNMP REDE_SNMP
rocommunity m0nip32015 200.237.196.29

################################
# MONITORAMENTO DE PROCESSOS    - OID: .1.3.6.1.4.1.2021.2.1
#                                               TRIGGERS           .1.3.6.1.4.1.2021.2.1.100
# MONITORAMENTO DE DISCOS               - OID: .1.3.6.1.4.1.2021.9.1
#                                               TRIGGERS           .1.3.6.1.4.1.2021.9.1.100
# MONITORAMENTO CARGA MEDIA             - OID: .1.3.6.1.4.1.2021.10.1.3
# MONITORAMENTO CPU                             - OID: .1.3.6.1.4.1.2021.11
# MEMORIA                                               - OID: .1.3.6.1.4.1.2021.4
#
# DESCOMENTAR AS LINHAS DO(S) PROCESSO(S) QUE EXISTE(M) NO SERVIDOR
#
#APACHE
proc apache2
#
#SSH
proc sshd
#MySQL
proc mysqld

proc ntpd


load   12 10 5

extend ntp_status /opt/perfsonar/system/scripts/ntp_check.sh
extend mysql_status /opt/perfsonar/system/scripts/mysql_check.sh

Criar diretório para hospedar script para monitorar o NTP:

# mkdir -p /opt/perfsonar/system/scripts

Criar o script /opt/perfsonar/system/scripts/ntp_check.sh para monitorar o NTP com o seguinte conteúdo:

#!/bin/bash
#Script para buscar estado do NTP
RETORNO=`/usr/bin/ntpq -p | /bin/egrep "^\*|^o"`
if [ "$RETORNO" == "" ]
then
        echo "WARNING: NOT SYNC"
        exit 0
else
        echo "OK: $RETORNO"
        exit 1
fi

Alterar a permissão do script de monitoramento de NTP:

# chmod 755 /opt/perfsonar/system/scripts/ntp_check.sh

Criar o script /opt/perfsonar/system/scripts/mysql_check.sh para monitorar o MYSQL com o seguinte conteúdo:

#!/bin/bash
#Script para buscar estado do MYSQL
RETORNO=`/usr/bin/mysql 2>&1 | grep "Too many connections" | wc -l`
if [ "$RETORNO" == "1" ]
then
        echo "WARNING: TOO MANY CONNECTIONS"
        exit 0
else
        echo "OK: $RETORNO"
        exit 1
fi

Alterar a permissão do script de monitoramento de MYSQL:

# chmod 755 /opt/perfsonar/system/scripts/mysql_check.sh

Firewall:

Ajuste o arquivo /etc/network/iptables.rules, com as redes de gerência SSH incluída neste arquivo:

#
# MONIPE/ RNP
#
# TEMPLATE DE FIREWALL PRA SER UTILIZADO
# NO LINUX/DEBIAN
#
*filter
:INPUT ACCEPT [3917088:953505170]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3544591:1259131760]
:LOG_ACCEPT - [0:0]
:LOG_REJECT - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -s 0.0.0.0/0 -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
### Ajustar conforme necessario
#-A INPUT -s REDE_GERENCIA_SSH -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 200.237.192.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
### Ajustar conforme necessario
#Servidor Negar e logar tudo
-A INPUT -j LOG_REJECT
-A LOG_ACCEPT -j LOG --log-prefix "[ACCEPT] : " --log-tcp-options --log-ip-options
-A LOG_ACCEPT -j ACCEPT
-A LOG_REJECT -j LOG --log-prefix "[REJECT] : " --log-tcp-options --log-ip-options
-A LOG_REJECT -j REJECT --reject-with icmp-port-unreachable
COMMIT

Criar o arquivo de inicialização do firewall (/etc/init.d/firewall) com o seguinte conteúdo:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          firewall
# Required-Start:     $network  $syslog  $named
# Required-Stop:      $network  $syslog  $named
# Default-Start:        2
# Default-Stop:         0
# Short-Description: Firewall iptables
# Description:      Iniciar script de firewall no boot do sistema
### END INIT INFO


#
# Script para Iniciar o Firewall automaticamente
# Configure em /etc/init.d
# rhoden@pop-sc.rnp.br
#
CONF=/etc/network/iptables.rules
CMD=/sbin/iptables
CMDRESTORE=/sbin/iptables-restore
CMDSAVE=/sbin/iptables-save


case "$1" in
  start)
        echo -n "Iniciando Firewall..."
        $CMDRESTORE -c $CONF
        echo "Feito"
        ;;
  save)
        echo -n "Salvando as regras de firewall da memoria para ${CONF}"
        $CMDSAVE > $CONF

        echo " Feito!"
        ;;
  stop)
        echo "Parando Firewall.."
        $CMD -F
        echo "."
        ;;
  list)
        echo "Listando regras de Firewall.."
        echo "----------------------------------------------------"

        $CMD -L

        echo "----------------------------------------------------"
        echo "."
        ;;
  *)
        N=/etc/init.d/firewall
        echo "Usage: $N {start|list|save|stop}" >&2
        exit 1
        ;;
esac

exit 0

Alterar privilégios do script de inicialização do firewall:

# chmod 755 /etc/init.d/firewall

Colocar o script do firewall para iniciar no boot:

# rcconf

[*] firewall

Logrotate:

Criar o arquivo /etc/logrotate.d/monipe com o conteúdo abaixo:

/var/log/perfsonar/phpsqlma.log {
        size 100M
        rotate 2
        compress
        notifempty
        delaycompress
        missingok
        create 644 www-data www-data
        su www-data www-data
}
  • No labels