Rompimento de cabo deixa assinantes da GVT sem acesso a sites internacionais

 Leitura Recomendada  Comentários desativados em Rompimento de cabo deixa assinantes da GVT sem acesso a sites internacionais
fev 262013
 

A semana não começou boa para a GVT. Desde a segunda-feira (25) clientes da empresa em diversas regiões do país estão encontrando dificuldades em acessar sites e servidores fora do Brasil. O problema parece estar, no entanto, fora da rede da GVT. Especificamente a rede das companhias Level 3 e Global Crossing, que fornecem serviço para a GVT, estão com alguma dificuldade nas suas redes dentro dos EUA. Em nota, a operadora afirma que regularizou a situação.

 

Rota até o serviço Rdio

Rota até o serviço Rdio

Um teste rápido usando ferramentas de rede mostrou que um traceroute para o serviço de streaming de música Rdio, que tem servidores nos EUA, atingiu 25% de perda de pacotes – algo alto para esse tipo de acesso. O mesmo aconteceu com o Twitter e Facebook, que atingiram respectivamente 25% e 33% de perdas em testes executados agora há pouco.

As rotas feitas pelos pacotes também não são nada animadoras: no lugar de chegar pelo cabo submarino em Miami, clientes da GVT estão tendo seu tráfego direcionado por terra – o que indicaria potenciais problemas nos cabos submarinos usados pela empresa. A lista de indisponibilidade de redes [caiu] também acusa problemas. Dentre as cidades afetadas estão São Paulo, Florianópolis, Porto Alegre, Santos, Olinda, Brasília, Maringá, Vitória e Belo Horizonte.

A GVT admitiu o problema em um comunicado enviado às 15h09. De acordo com a operadora, a falha ocorre devido a um rompimento de cabo na região de Santos (SP) decorrente de chuva forte e deslizamento de terra. “A transmissão de dados passou a ocorrer por rotas alternativas, existentes para minimizar o impacto em situações como esta, mas alguns clientes foram afetados.”

Clientes da empresa com dúvidas devem acessar o “Fale conosco” do site ou telefonar para 10325.

Atualizado às 15h44

MySQL Workbench no Slackware 14.0

 Clusterweb, Linux, Redes  Comentários desativados em MySQL Workbench no Slackware 14.0
fev 262013
 

Introdução

O MySQL Workbench é uma ferramenta visual unificada para arquitetos de banco de dados, desenvolvedores e DBAs. Ela oferece recursos para modelagem de dados, desenvolvimento de Scripts SQL, administração do servidor, entre outros.

Neste artigo, passarei um pouco da experiência e problemas que tive ao instalar e executar esta ferramenta no Slackware 14.0 (64 bits).

A instalação do MySQL Workbench no Slackware é totalmente manual, portanto, vamos ter que começar pelas suas dependências.

As dependências necessárias são:

  1. libsigc++-2.2.10;
  2. glibmm-2.32.1;
  3. cairomm-1.10.0;
  4. pangomm-2.28.4;
  5. atkmm-2.22.6;
  6. gtkmm-2.24.2;
  7. lua-5.1.5;
  8. ctemplate-2.2.

Todas as dependências acima foram baixadas do SlackBuilds, facilitando bastante o processo de instalação.

A instalação de um pacote do SlackBuilds é bastante simples, sendo necessário apenas baixar os scripts de instalação (SlackBuild) e o respectivo código fonte. Para exemplificar, vamos instalar, passo a passo, a primeira dependência da lista (libsigc++-2.2.10):

Passo 1: Baixar o SlackBuild “libsigc++.tar.gz” e o código fonte “libsigc++-2.2.10.tar.xz” em um diretório de sua preferência. No meu caso, os salvei em /usr/local/src.

Passo 2: Descompactar o pacote do SlackBuild:

# tar -zxvf libsigc++.tar.gz

Passo 3: Mover o código fonte do “libsigc++” para a pasta descompactada do SlackBuild:

# mv libsigc++-2.2.10.tar.xz libsigc++

Passo 4: Entrar na pasta do SlackBuild:

# cd libsigc++

Passo 5: Executar o script: “libsigc++.SlackBuild”

# ./libsigc++.SlackBuild

Ao final deste processo, o “libsigc++.SlackBuild” irá gerar um arquivo “.tgz” no diretório /tmp.

Passo 6: Entrar no diretório /tmp e instalar o pacote “.tgz” gerado:

# cd /tmp
# installpkg libsigc++-2.2.10-x86_64-1_SBo.tgz

* É importante ressaltar: O SlackBuild não resolve dependências, portanto, será necessário instalar as dependências na ordem nas quais foram colocadas acima, para evitarmos este tipo de problema.

Instalação do MySQL Workbench

Após instalar todas as dependências, vamos baixar e instalar o MySQL Workbench. Para baixá-lo, acesse:

Selecione a opção “Source Code” em “Select Platform”, e em seguida, a opção “Generic Linux“.

Salve o arquivo “mysql-workbench-gpl-5.2.46-src.tar.gz” em um diretório de sua preferência. No meu caso, o salvei em /usr/local/src.

A instalação do MySQL Workbench é muito simples, basta seguir o roteiro padrão (./configure, make, make install e make clean):

# tar -zxvf mysql-workbench-gpl-5.2.46-src.tar.gz
# cd mysql-workbench-gpl-5.2.46-src
# ./configure
# make

Neste momento, tive o primeiro problema ao compilar. Estava gerando um erro do tipo:

libtool: compile: cannot determine name of library object from `’: command not found

Caso você tenha este problema, basta executar o comando autoreconf e, em seguida, o comando de compilação novamente:

# autoreconf -fi
# make
# make install

O comando autoreconf -fi irá refazer todos os scripts de configuração, incluindo qualquer arquivo que esteja faltando no pacote.

Por padrão, o comando make install instala os pacotes de comando em /usr/local/bin, arquivos include em /usr/local/include etc.

Você poderá especificar outro local de instalação usando a opção –prefix=PREFIX na hora de executar o ./configure.

Por fim, para executar o MySQL Workbench:

# usr/local/bin/mysql-workbench

Com o MySQL Workbench aberto, selecione a opção “New Connection”, entre com o usuário e senha do MySQL e execute a opção “Test Connection”.

Aqui, tive um novo problema: Não conseguia estabelecer uma conexão SSH com o MySQL e no log do Workbench dizia que ele não conseguia importar o módulo paramiko.

Para resolver este problema, basta baixar e instalar os módulos “pycrypto-2.6” e “paramiko-1.7.7.1”, nesta ordem. Ambos podem ser baixados no SlackBuilds e instalados conforme orientação das dependências no começo deste artigo.

O “paramiko” é um módulo Python que implementa o protocolo SSH2 com o objetivo de garantir a segurança nas autenticações com máquinas remotas.

Observium – Monitoramento de Rede

 Clusterweb, Linux, Redes  Comentários desativados em Observium – Monitoramento de Rede
fev 262013
 

Observe sua rede com o Observium

Quando se fala em “sistema de monitoramento de rede open source”, um nome vem a cabeça: Cacti. É quase uma unanimidade, pela facilidade de utilização, por estar “empacotado” para as principais distribuições GNU/Linux, bastando um apt-get/yum install cacti e o sistema já está instalado. E também pela ampla documentação.

Há algum tempo atrás, por uma indicação de um colega da lista de discussão GTER, conheci o Observium e o tenho utilizado desde então, não como um substituto ao Cacti, mas sim como um complemento.

Sei que isso não é uma métrica muito confiável, mas fazendo uma busca pelo termo “cacti network monitoring” nos principais mecanismos de busca que temos hoje, os números são consideráveis.

Busca pelo termo “cacti network monitoring”:

  • Google: Aproximadamente 154.000 resultados;
  • Bing: Aproximadamente 104.000 resultados;
  • Yahoo: Aproximadamente 102.000 resultados.

Busca pelo termo “observium network monitoring”:

  • Goggle: Aproximadamente 8.460 resultados;
  • Bing: Aproximadamente 6.300 resultados;
  • Yahoo: Aproximadamente 6.320 resultados.

Em alguns sites do Brasil:

Este guia mostra como instalar o Observium no CentOS/RHEL/Scientific Linux.

Neste exemplo usei o CentOS 6.3 64 bits, mas para outras distribuições o processo é semelhante, pois a instalação do Observium é feita por SVN.

Repositórios

Para obter todos os módulos adicionais, é ideal ter os repositórios adicionais RPM Forge e EPEL:

# rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uvh http://mirror.globo.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

Pacotes:

# yum install httpd.x86_64 mysql-server.x86_64 mysql.x86_64 php-gd.x86_64 php-mcrypt php-mysql.x86_64 php-pear net-snmp.x86_64 php-pear.noarch php-snmp.x86_64 php.x86_64 fping.x86_64 graphviz.x86_64 ImageMagick.x86_64 jwhois.x86_64 net-snmp-utils.x86_64 nmap.x86_64 OpenIPMI-tools.x86_64 rrdtool.x86_64 subversion.x86_64 vixie-cron.x86_64

# pear install Net_IPv6
# pear install Net_IPv4

Instalação do Observium

Criar o diretório:

# mkdir -p /opt/observium && cd /opt

Checar a última versão no repositório do Subversion:

# svn co http://www.observium.org/svn/observer/trunk observium

Mudar para o diretório de instalação:

# cd /opt/observium

Base de Dados

Criar a base de dados e o usuário:

mysql> CREATE DATABASE observium;
mysql> GRANT ALL PRIVILEGES ON observium.* TO ‘observium’@’localhost’ IDENTIFIED BY ‘<Senhas>’;

Configuração

Copie o arquivo de configuração padrão e faça as alterações necessárias:

# cp config.php.default config.php

Adicione uma entrada para o fping:

$config[‘fping’] = “/usr/sbin/fping”;

Configure o schema da base de dados:

# php includes/sql-schema/update.php

Alguns erros devem aparecer, isso é normal. Mas se forem mais do que 6, revise sua configuração.

Crie os diretórios “graphs” e “rrd” (* Lembre-se: ainda estamos abaixo do diretório /opt/observium):

# mkdir graphs rrd
# chown apache.apache graphs rrd

Obs.: O sistema não aceita rodar como um diretório. Exemplo: http://www.dominio.com/observium

Adicionar o primeiro usuário (use o nível 10 para admin):

# cd /opt/observium
# ./adduser.php <username> <password> <level>

Adicione o primeiro dispositivo para ser monitorado:

# ./addhost.php <hostname> <community> v2c

Obs.: DEVE-SE, obrigatoriamente, ter um nome válido, seja por DNS ou pelo /etc/hosts.

Faça uma verificação inicial do novo dispositivo:
# ./discovery.php -h all
# ./poller.php -h all

Adicione na crontab (Ex.: /etc/cron.d/observium) o conteúdo abaixo:

33 */6  * * *   root    /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 *  * * *    root   /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 *  * * *    root   /opt/observium/poller.php -h all >> /dev/null 2>&1

Faça um reload/restart no serviço:

# /etc/init.d/crond reload/restart

O sistema já estará disponível em: http://<server ip>

Atualização

É utilizado o SVN para a atualização, bastando executar o comando abaixo:

# cd /opt/observium
# svn update
# ./discovery.php -h new

Billing e outras configurações

Billing

Uma função muito útil e interessante é o Billing, onde você pode contabilizar a utilização de uma ou mais portas.

Como podemos ver na imagem, pelo menos aqui, o Barrichello está na frente de do Schumacher e do Senna. 🙂

Para ativá-lo, altere a linha abaixo no “config.php”:

$config[‘enable_billing’] = 1;

E adicione as linhas abaixo no /etc/cron.d/observium:

*/5 *  * * *   root    /opt/observium/poll-billing.php >> /dev/null 2>&1
01 *  * * *   root    /opt/observium/billing-calculate.php >> /dev/null 2>&1

 

Desativar itens

Por padrão, quando você adiciona um dispositivo, ele traz todas as configurações de rede.

Num servidor Windows, que eu usei como exemplo para montar este tutorial, ele acaba trazendo uma série de interfaces que não precisam ser vistas, o que num primeiro momento pode deixar o visual um pouco poluído, ao contrário do Cacti, que você precisa especificar o quer que seja monitorado.

Na imagem abaixo podemos ver o Item Ports com todos os itens habilitados:

Para desativar estes itens, siga os passos abaixo ao acessar a interface WEB:

Devices → All Devices → *NomeDoServidor* → Edit (a chave que fica bem escondida bem à direita) → Ports

Nas colunas “Polling” e “Alerts”, deixe todos os itens no “No”, com exceção da placa de rede que você quer monitorar.

Na mesma tela no item “Modules”, estão todos os módulos que, por padrão, vem todos ativados:

Redirecionar todo tráfego HTTP para HTTPS

Pode parecer óbvio, mas tenho por padrão não usar HTTP para qualquer serviço WEB, somente HTTPS.

Para isso, redireciono todo o tráfego alterando os arquivos abaixo:

1. /etc/httpd/conf/httpd.conf:

NameVirtualHost *:80

<VirtualHost *:80>

RewriteEngine    on
RewriteCond      %{SERVER_PORT} ^80$
RewriteRule       ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

</VirtualHost>

2. /etc/httpd/conf.d/ssl.conf (arquivo padrão do SSL):

LoadModule ssl_module modules/mod_ssl.so

Listen 443

SSLPassPhraseDialog builtin

SSLSessionCache   shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
NameVirtualHost *:443

SSLMutex default

SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin

SSLCryptoDevice builtin

<VirtualHost *:443>

ServerName wiki.domain.net:443
ServerAlias wiki.domain.com:443

ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<Directory “/home/viaza132/www/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent “.*MSIE.*” \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

3. /etc/httpd/conf.d/ssl-observium.conf (este arquivo não existe, deve ser criado):

<VirtualHost *:443>

ServerName observium.domain.net:443
ServerAlias observium.domain.com:443

DocumentRoot “/opt/observium/html”

<Directory /opt/observium/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
AuthUserFile /home/viaza132/www/.htpasswd
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
Order allow,deny
Allow from all
</Directory>

ErrorLog logs/ssl-observium_error_log
TransferLog logs/ssl-observium_access_log
LogLevel warn

SSLEngine on

SSLProtocol all -SSLv2

SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW

SSLCertificateFile /etc/pki/tls/certs/localhost.crt

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

<Files ~ “\.(cgi|shtml|phtml|php3?)$”>
SSLOptions +StdEnvVars
</Files>
<Directory “/home/viaza132/www/cgi-bin”>
SSLOptions +StdEnvVars
</Directory>

SetEnvIf User-Agent “.*MSIE.*” \     nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \
“%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

</VirtualHost>

Além de tudo, proteger o acesso com senha:

# htpasswd /home/viaza132/www/.htpasswd admin

Tela dos dispositivos configurados com algumas informações básicas:

Tela de status dos dispositivos:

Algumas outras checagens que ele faz por padrão (Memory, CPU e Disk Usage):