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

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

Instalação 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 ngrep dnsutils tcpdump

 

  • Baixe os arquivos fontes:
# 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:
# cp /opt/perfsonar/services/ma/include/global.php.template /opt/perfsonar/services/ma/include/global.php

 

  • 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

 

  • Alterar bind do MySQL:

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

 

  • Alterar porta do Apache2:

# 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:
# cd /var/www/html
# 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
#
# 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:

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

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

#!/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

Ajuste o arquivo /etc/network/ip6tables.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 [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:

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

# chmod 755 /etc/init.d/firewall6

Colocar o script do firewall para iniciar no boot:

# rcconf

[*] firewall6


Logrotate:

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

/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
}
  • No labels