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 2.0

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Instalação MA

 

  • Atualize e instale os pacotes:
Code Block
# 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 ngrep dnsutils tcpdump

 

  • Baixe os arquivos fontes:
Code Block
# cd /usr/local/src
# wget http://rep.monipe.rnp.br/perfSONAR-2.0/services/ma/services-ma-last-stable.tar.gz -O services-ma-last-stable.tar.gz
# wget http://rep.monipe.rnp.br/perfSONAR-2.0/libs/libs-last-stable.tar.gz -O libs-last-stable.tar.gz
# wget http://rep.monipe.rnp.br/perfSONAR-2.0/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

 

  • Copiar template de configuração do serviço:
Code Block
# cp /opt/perfsonar/services/ma/include/global.php.template /opt/perfsonar/services/ma/include/global.php

 

  • Adiciona os seguintes scripts no crontab (crontab -e):
Code Block
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

 

  • Alterar bind do MySQL:

Code Block
# sed -i "s/127.0.0.1/0.0.0.0/" /etc/mysql/my.cnf

 

  • Alterar porta do Apache2:

Code Block
# sed -i "s/<VirtualHost \*:80>/<VirtualHost \*:8080>/" /etc/apache2/sites-enabled/000-default.conf
# sed -i "s/Listen 80/Listen 8080/" /etc/apache2/ports.conf

 

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

 

  • Criação do arquivo de log:
Code Block
# 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:
Code Block
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:
Code Block
# 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:

Code Block
###############
# MONIPE - RNP
#
# v2016051700
#
# NTP
###############
tinker panic 0
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp/ntp.log

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:

Code Block
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:

Code Block
# 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:

Code Block
#!/bin/bash
#Script para buscar estado do NTP
RETORNO=`/usr/bin/ntpq -4 -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:

Code Block
# 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:

Code Block
#!/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:

Code Block
# 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:

Code Block
#
# 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
#ACESSO AO MYSQL PARA O MP
-A INPUT -s IP_MP -p tcp -m state --state NEW --dport 3306 -j ACCEPT
#GERENCIA SNMP -- ALTERAR
-A INPUT -s 200.237.196.29/32 -p udp -m state --state NEW -m udp --dport 161 -j ACCEPT
#ACESSO SSH
#-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
-A INPUT -s 200.143.192.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 200.143.200.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 200.130.28.0/24 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 200.133.240.58/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:

Code Block
#!/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:

Code Block
# chmod 755 /etc/init.d/firewall

Colocar o script do firewall para iniciar no boot:

Code Block
# rcconf

[*] firewall

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

Code Block
#
# MONIPE/ RNP
#
# TEMPLATE DE FIREWALL PRA SER UTILIZADO
# NO LINUX/DEBIAN
#
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:LOG_ACCEPT - [0:0]
:LOG_REJECT - [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p ipv6-icmp -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
### Ajustar conforme necessario
#ACESSO AO MYSQL PARA O MP
-A INPUT -s IP6_MP -p tcp -m state --state NEW --dport 3306 -j ACCEPT
#GERENCIA SNMP -- ALTERAR
##-A INPUT -s ::1/128 -p udp -m state --state NEW -m udp --dport 161 -j ACCEPT
#ACESSO SSH
#-A INPUT -s REDE_GERENCIA_SSH -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -s 2801:80:a85:4031::/64 -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 icmp6-port-unreachable
COMMIT

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

Code Block
#!/bin/bash
### BEGIN INIT INFO
# Provides:          firewall6
# Required-Start:     $network  $syslog  $named
# Required-Stop:      $network  $syslog  $named
# Default-Start:        2
# Default-Stop:         0
# Short-Description: Firewall iptables6
# Description:      Iniciar script de firewall v6 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/ip6tables.rules
CMD=/sbin/ip6tables
CMDRESTORE=/sbin/ip6tables-restore
CMDSAVE=/sbin/ip6tables-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/firewall6
        echo "Usage: $N {start|list|save|stop}" >&2
        exit 1
        ;;
esac

exit 0

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

Code Block
# chmod 755 /etc/init.d/firewall6

Colocar o script do firewall para iniciar no boot:

Code Block
# rcconf

[*] firewall6


Logrotate:

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

Code Block
/var/log/perfsonar/phpsqlma.log {
        size 10M
        rotate 2
        compress
        notifempty
        delaycompress
        missingok
        create 644 www-data www-data
        su www-data www-data
}
/var/log/messages
/var/log/kern.log
/var/log/syslog {
        size 10M
        rotate 2
        compress
        notifempty
        delaycompress
        missingok
        create 640 root adm
}