Cidade Administrativa utiliza soluções Cisco

Por , 26/04/2010 11:25

A Cidade Administrativa, complexo que receberá todos os órgãos do governo mineiro, e já está em funcionamento (os órgãos estão sendo migrados aos poucos), conta com uma das mais moderna infra estrutura de TI do Brasil.

Localizada entre o aeroporto de Confins e Belo Horizonte, e com projeto arquitetônico de Oscar Niemayer, o projeto foi criado para agrupar os serviços estatuais, e assim dinamizar os processos da gestão pública.

Cidade Administrativa

Mas para isso, além de reunir as secretarias e demais entidades governamentais em um só lugar, também foi preciso utilizar uma infra estrutura inteligente. E foi ai que entrou o Cisco Borderless Network, com soluções para rede, wireless, segurança e comunicação unificada.

São 26 mil pontos de acesso gigabit,  333 access-points e 11 mil telefones IPs, além de firewall, IPS, MARS e solução para balanceamento de carga entre servidores, entre outros.

Notícia original aqui.

Até a próxima.

NASA e Cisco: Nuvem dentro de containers

Cerca de um ano atrás, se não me engano, a Cisco lançou sua linha de servidores (UCS – Unified Computing System), destinada à data centers. Estes servidores contam com inovações, e se integram muito bem com os switches Cisco Nexus, também destinados a data centers.

O UCS – Unified Computing System ainda enfrenta certa resistência, até compreensível, já que esta concorrendo em um mercado com players plenamente estabelecidos, como IBM e HP (e tem questão do preço também…).

Mas mesmo assim, estes foram os equipamentos escolhidos pela NASA, para montar sua nuvem, em um projeto chamado NEBULA, como divulgado pelo blog CORUJADETI (que aliás recomendo).

Servidores Cisco em projeto da NASA

O NEBULA fornece grande capacidade de processamento e armazenamento, além de conectividade, para a própria NASA e outros órgão governamentais americanos.

Assim como outras empresas (Google, Microsoft e Sun, entre outras) que fornecem computação na nuvem, a NASA montou sua estrutura dentro de containers.

Utilizar containers tem sido uma tendência e segundo especialistas permite agilidade na expansão do data center e também controle eficiente no uso de energia, já que é mais fácil controlar a temperatura.

NEBULA Container

Além da utilização dos servidores Cisco, o NEBULA utiliza o software livre EUCALYPTUS, para a criação de sua nuvem privada.

Segundo a própria NASA o projeto NEBULA conta com uma rede 10 vezes mais rápida e tem 100 vezes mais espaço de armazenamento que a solução de cloud computing da Amazon.

Legal né?!?!

Site do projeto NEBULA: http://nebula.nasa.gov/

Até a próxima.

Conceitos Dial-Peer Matching – Parte 2/3

Em uma chamada sendo realizada através dos dois gateways na topologia abaixo, definimos quatro dial-peers para esta comunicação:

- Duas dial-peers INBOUND: uma entrando no BrainGW01 pela interface FXS 1/0; e outra entrando no BrainGW02 pela interface E1 0/1/0:0

- Duas dial-peers OUTBOUND: uma saindo do BrainGW01 pela interface E1 0/0/0:0; e outra saindo do BrainGW02 pela interface FXS 2/0

Brainwork - Topologia Voice

Nesta parte do tópico iremos abordar o processo de matching para as chamadas entrantes (inbound). Os gateways utilizam uma sequencia de parâmetros configurados para determinar qual dial-peer será utilizada para tratar a chamada entrante.

As dial-peers são configuradas no modo de configuração global. Nos nossos exemplos, utilizaremos as dial-peers do tipo POTS, que utilizam portas analógicas para fazer o encaminhamento das chamadas, porém estes conceitos também são aplicados aos outros tipos de dial-peers.

Vamos simular uma chamada sendo originada pelo ramal 1001, tendo como destino o ramal 2001, localizado atrás do BrainGW02.
Como vamos analisar o processo de chamadas entrantes (inbound), todas as dial-peers abaixo seriam configuradas no gateway BrainGW02.

Para as chamadas entrantes, o gateway utilizará a seguinte sequência para selecionar a dial-peer que será utilizada para o encaminhamento da chamada:

1 – Comando "incoming called-number <numero>"

O 1o parâmetro utiliza o número discado (DNIS) para fazer a seleção da dial-peer através do comando "incoming called-number".

Exemplo:

Configuração do gateway BrainGW02:

!– Criação da dial-peer com id 2000 do tipo POTS.
BrainGW02(config)#dial-peer voice 2000 pots
!– Configuração do parametro a ser verificado utilizando o número discado (DNIS)
BrainGW02(config-dial-peer)#incoming called-number 20..
!– O comando direct-inward-dial habilita o gateway a utilizar os digitos que deram match nesta dial-peer entrante (inbound) !– para tentar dar match em uma dial-peer sainte (outbound).
BrainGW02(config-dial-peer)#direct-inward-dial
!– Definição de porta pela qual esta chamada foi recebida
BrainGW02(config-dial-peer)#port 0/1/0:0
BrainGW02(config-dial-peer)#exit
BrainGW02(config)#

Neste exemplo, o gateway irá comparar o número de destino (2001) com o parâmetro configurado no comando "incoming called-number" (20..)

2 – Comando "answer-address <numero>"

O 2o parâmetro utiliza o número discante (ANI) para fazer a seleção da dial-peer através do comando "answer address".

Configuração do gateway BrainGW02:

BrainGW02(config)#dial-peer voice 2000 pots
!– Configuração do parametro a ser verificado utilizando o número discante (ANI)
BrainGW02(config-dial-peer)#answer-address 10..
BrainGW02(config-dial-peer)#direct-inward-dial
BrainGW02(config-dial-peer)#port 0/1/0:0
BrainGW02(config-dial-peer)#exit
BrainGW02(config)#

Neste exemplo, o gateway irá comparar o número de origem (1001) com o parâmetro configurado no comando "answer-address" (10..)

3 – Comando "destination-pattern <numero>"

O 3o parâmetro utiliza o número discante (ANI) para fazer a seleção da dial-peer através do comando "destination-pattern".

Configuração do gateway BrainGW02:

BrainGW02(config)#dial-peer voice 2000 pots
!– Configuração do parametro a ser verificado utilizando o número discante (ANI)

BrainGW02(config-dial-peer)#destination-pattern 10..

BrainGW02(config-dial-peer)#direct-inward-dial
BrainGW02(config-dial-peer)#port 0/1/0:0
BrainGW02(config-dial-peer)#exit
BrainGW02(config)#

Neste exemplo, o gateway irá comparar o número de origem (1001) com o parâmetro configurado no comando "destination-pattern" (10..). Neste caso, o resultado é o mesmo que o resultado visto no exemplo anterior, através do comando "answer-address".

4 – Comando "port <porta>"

O 4o parâmetro utiliza a configuração da porta utilizada para receber a chamada e assim fazer a seleção a dial-peer.

Configuração do gateway BrainGW02:

BrainGW02(config)#dial-peer voice 2000 pots
!– Colocamos como exemplo uma destination-pattern com a estrutura de uma chamada local para não ser utilizada como parametro de comparação na seleção da dial-peer
BrainGW02(config-dial-peer)#destination-pattern [2-5]…….
BrainGW02(config-dial-peer)#direct-inward-dial
!– Definição de porta pela qual esta chamada foi recebida sendo utilizado para a seleção da dial-peer
BrainGW02(config-dial-peer)#port 0/1/0:0
BrainGW02(config-dial-peer)#exit
BrainGW02(config)#

Neste exemplo, o gateway irá comparar apenas a porta (0/1/0:0) que recebeu a ligação com o parâmetro configurado no comando "port" (0/1/0:0).

5 – Default Dial-Peer (Dial-Peer 0)

No caso de nenhum parâmetro dar "match", ainda assim o gateway aceitará a chamada entrante através da "dial-peer 0". Porém, não é recomendável utilizar esta dial-peer, uma vez que ela não pode ter seus parâmetros alterados.
Entre as características da Default Dial-Peer, estão:

- Aceita qualquer codec
- VAD (voice activity detection) habilitado
- RSVP (Resource Reservation Protocol) desabilitado
- entre outros

O próximo passo será a explicação do processo que o getaway realiza para as chamadas saintes (outbound) que será abordado na Parte 3 deste tópico.

Até a próxima.

Monte topologia no Cacti com o Weathermap

Por , 09/04/2010 11:24

Com o Cacti pronto e funcionando, e com os equipamentos já cadastrados, podemos instalar os plugins (se seu Cacti não estiver pronto ainda veja o post Instalando e Configurando o Cacti).

Como havia prometido, vou mostrar como instalar e configurar o Weathermap, plugin que permite montar topologia, bem como visualizar a utilização dos links.

1.) Faça o download do Weathermap e do cacti-plugin, a partir da pasta root.

$ sudo su
$ cd /root
$ wget http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
$ wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip

2.) Descompacte o cacti-plugin e mova-o para a pasta /var/www/cacti. Em seguida aplique o patch e configure o MySQL.

$ unzip cacti-plugin-0.8.7e-PA-v2.6.zip
$ mv cacti-plugin-arch/ /var/www/cacti/
$ cd /var/www/cacti/
$ patch -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7e-PA-v2.6.diff
$ mysql –user=root –password=brainwork cacti < cacti-plugin-arch/pa.sql

3.) Agora vamos editar o arquivo global.php, para corrigir a senha e habilitar o plugin.

$ vim include/global.php

* Na linha 38 altere o campo:
DE:     $database_password = "cactiuser";
PARA: $database_password = "brainwork";
* Na linha 45, altere o campo:
DE:     //$plugins[] = ‘thold’;
PARA: $plugins[] = ‘weathermap’;
* Na linha 56, altere o campo:
DE:     $config['url_path'] = ‘/’;
PARA: $config['url_path'] = ‘/cacti/’;

global.php

4.) Descompacte e mova a pasta do Weathermap para o diretório plugins.

$ cd /root
$ unzip php-weathermap-0.97a.zip
$ mv weathermap /var/www/cacti/plugins/

5.) De um Reload no cacti. Depois, na console (web), selecione User Management > Admin > marque as opções:

* Plugin Management
* Plugin -> Weathermap: Configure/Manage
* Plugin -> Weathermap: View –> Save

Permissão para o usuário Admin
Nesse momento o usuário admin passará a ter permissão para acessar a aba ‘weathermap’.

6.) Agora, vamos mudar a permissão da pasta weathermap, fazer uma cópia do arquivo editor.php-dist, e depois editar a cópia, indicando a pasta onde o plugin foi instalado.

$ cd /var/www/cacti/plugins/weathermap
$ chmod 777 output
$ cp editor-config.php-dist editor-config.php

$ vim editor-config.php
* Na linha 14 altere:
DE:     $cacti_base = ‘C:/httpd-.2_x64/htdocs/cacti’;
PARA: $cacti_base = ‘/var/www/cacti’;
* Na linha 20 altere:
DE:     $cacti_url = "http://support.company.net/cacti/";
PARA: $cacti_url = http://IP/cacti/;

7.)  Vamos habilitando o editor.php e cacti-pick.php para permitir a edição via WEB.

$ vim editor.php
* Na linha 7 altere:
DE:     $ENABLED=false;
PARA: $ENABLED=true;
* Na linha 18 altere:
DE:     $cacti_base = ‘../../’;
PARA: $cacti_base = ‘/var/www/cacti/’;
* Na linha 19 altere:
DE:     $cacti_url = ‘/’;
PARA:     $cacti_url = ‘http://ip/cacti/’;

Editor.php

$ vim cacti-pick.php
* Na linha 6 altere:
DE:     $cacti_base = ‘../../’;
PARA: $cacti_base = ‘/var/www/cacti/’;
* Na linha 7 altere:
DE:     $cacti_url = ‘/’;
PARA: $cacti_url = ‘http://ip/cacti/’;

cacti-pick.php

8.) Ajuste as permissões para escrita no diretório.

$ chown www-data.www-data -R /var/www/cacti*

9.)Finalmente o Weathermap foi instalado e configurado. Agora começa a diversão.

9.1) Adicionando os mapas:

Abra o Cacti (web), selecione a aba weathermap e clique em Editor.  Em seguinda, em Create A New Map coloque o nome do mapa (Map1.conf) e clique em Create.

Create Map

9.2) Agora adicione os hosts existentes no Weathermap e link aos devices cadastrados no Cacti.

a) clique em Add Node e no quadro branco. Aparecera um retângulo escrito Node.
b) Clique no Node inserido e edite-o como abaixo. Depois clique em Submit.
- Em Label coloque o nome do host: BrainCore
- Clique em Pick from Cacti e selecione o host correspondente.
- Em Icon File Name selecione Router (se for um roteador…)

Editando node

Repita este passo para todos os hosts existentes no Cacti.

9.3) Depois dos hosts, vamos criar os links entre eles.
a) clique em Add Link, e em seguida clique nos dois host que serão “linkados”.
b) clique no link para editá-lo.
- Clique em Pick from Cacti e selecione a interface correspondente ao link que será monitorado.

Editando link

Repita este item para todos os link que serão monitorados. E você pode alterar também a velocidade do link, no campo Maximum Bandwidth (o padrão é 100 Mbps).

As informações referentes aos nodes e links que foram criados ficam armazenados em um arquivo (neste exemplo Map1.conf) na pasta /var/www/cacti/plugins/weathermap/configs. Caso necessário você pode alterá-lo via linha de comando.

* Toda alteração feita no Weathermap é salva automaticamente.

10.) De volta ao Linux, vamos adicionar a geração dos gráficos do Weathermap ao Crontab (para que seja atualizado).

$ vim /etc/crontab
# MapTest
*/5 *   * * *   root    php /var/www/cacti/plugins/weathermap/weathermap –config /var/www/cacti/plugins/weathermap/configs/MapTest.conf –output /var/www/cacti/plugins/weathermap/output/MapTest.png –htmloutput /var/www/cacti/plugins/weathermap/output/MapTest.html

Weathermap e Crontab

11.) Tá acabando!!! Só falta adicionar o mapa para visualização.
Clique na aba Console -> Weathermaps –> Add. Na linha onde encontra-se Map1.conf clique em Add. Aí basta clicar na aba weathermap para ver o mapa (pode demorar 5 minutos para atualizar).
É isso.

Mapa criado com ícones padrão

Já esta tuto funcionando, mas você pode melhorar o layout da topologia, copiando outras imagens para a pasta /var/www/cacti/plugins/weathermap/images.

Topologia final, com outros ícones:

Topologia pronta 2

Mais informações podem ser encontradas em:
http://www.network-weathermap.com/manual/latest/
http://www.network-weathermap.com/manual/latest/pages/main.html#basics

Agora temos o Cacti e o Weathermap prontos, ficando a cargo de cada um adicionar outros plugins ao sistema.

Até a próxima.

Instalando e configurando o Cacti

Por , 07/04/2010 11:22

Após uma breve introdução ao Cacti e ao Weathermap, vou mostrar com instalar e configurar os dois. Nesta primeira parte vamos fazer o Cacti apenas, que é o sistema base. Depois falaremos do Weathermap, plugin para ilustrar a topologia da rede.

Antes de começar, quero de publico agradecer ao Daniel Gurgel, que acompanha o blog e sempre participa, deixando comentários e sugestões. Este tutorial foi idéia dele, sendo que além de sugerir o tópico ele mandou um passo a passo para facilitar meus testes e ainda me ajudou a fazer as configurações no Linux.

Voltando ao que interessa, o Cacti foi instalado no Ubuntu Server 10.4, que pode ser baixado gratuitamente neste link.

                                                         Cacti Ubuntu

Instalando o Cacti

1.) Entre no modo privilegiado, e a partir da pasta root faça o download e instale o Cacti e suas dependências bem como os software que serão utilizados.

$ sudo su
$ cd /root
$ wget http://www.cacti.net/downloads/cacti-0.8.7e.tar.gz
$ aptitude install apache2 mysql-server mysql-client php5-cli snmp rrdtool libapache2-mod-php5 php5 php5-cgi php5-gd php5-snmp php5-mysql php-pear chkconfig patch zip unzip

*Quando solicitado confirme a senha do usuário root (mysql). No caso usamos a senha "brainwork".

2.) Após a instalação verifique o status do Apache e do MySQL.

$ service apache2 status
resultado> Apache is running (pid 12345).
$ service mysql status
resultado> mysql start/running, process 67890
$ chkconfig –list apache2
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
$ chkconfig –list mysql
mysql                     0:off  1:off  2:off  3:off  4:off  5:off  6:off

3.) Corrija a inicialização do MySQL.

$ update-rc.d mysql defaults

4.) Descompacte o Cacti, e em seguida crie um “link” para a sua pasta.

$ tar xvf cacti-0.8.7e.tar.gz -C /var/www/
$ ln -s /var/www/cacti-0.8.7e/  /var/www/cacti

5.) Aplique os paths do Cacti.

$ cd /var/www/cacti
$ wget
http://www.cacti.net/downloads/patches/0.8.7e/cli_add_graph.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/snmp_invalid_response.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/template_duplication.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/fix_icmp_on_windows_iis_servers.patch
$ wget http://www.cacti.net/downloads/patches/0.8.7e/cross_site_fix.patch
$ patch -p1 -N < cli_add_graph.patch
$ patch -p1 -N < snmp_invalid_response.patch
$ patch -p1 -N < template_duplication.patch
$ patch -p1 -N < fix_icmp_on_windows_iis_servers.patch
$ patch -p1 -N < cross_site_fix.patch

6.) Ajuste as permissões no MySQL, para o usuário cactiuser.

$ mysqladmin –user=root create cacti -pbrainwork
$ mysql –user=root mysql -pbrainwork
mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY ‘brainwork’;
mysql> flush privileges;
mysql> quit
$ mysql –user=root –password=brainwork cacti < cacti.sql

*Obs: case sensitive.

7.) Edite o arquivo config.php, cadastrando a senha utilizada anteriormente (brainwork) na linha $database_password.

$ vim include/config.php
$ database_password = "brainwork";

8.) Adicione o Cacti ao Crontab (poller a cada 5 minutos).

$ vim /etc/crontab
# Cacti Poller
*/5 *   * * *   root    php /var/www/cacti/poller.php > /dev/null 2>&1

Adicionando o Cacti ao Crontab

9.) O Cacti já foi instado, e podemos acessá-lo via Web.

Abra o browser de sua escolha e digite http://ip/cacti/
Na janela que abrirá, clique Next > New Install, Next > Finish. Em seguida faça o login, com usuário admin e senha admin. O Cacti solicitará que a senha seja alterada.

Com isto finalizamos a instalação do Cacti. Agora já é possível cadastrar os equipamentos (roteadores, switches, firewall, etc…) e monitorá-los individualmente (CPU e utilização das interfaces, por exemplo).

Cadastrando um equipamento no Cacti

O Cacti verifica o host através de PING (que pode ser ICMP, UDP ou TCP) e SNMP. O ICMP vai servir para verificar o caminho até o dispositivo, mas é o SNMP que permite a coleta de informações como a utilização do processador e da memória, entre outros.

Assim é necessário que o equipamento que vai ser monitorado possua uma comunidade Read-only.

10.) Na aba console (web), clique em Device e depois em Add (canto superior direito).

Preencha os seguintes campos:
* Description: BrainCORE
* Hostname: 10.10.10.1
* Host Template: Cisco Router
* SNMP Version: Version 2
* SNMP Community: brain_work_com_ro
* Downed Device Detection: Ping and SNMP
* Ping Method: ICMP Ping

Inserindo um host

Após preencher os dados clique em Create.

Caso esteja tudo certo você verá informações do equipamento, trazidas pelo SNMP e pelo Ping.

Host salvo com sucesso

12.) Criando gráficos para o equipamento.

Vamos criar dois gráficos para esse switch: Utilização de CPU e utilização da interface F0/8 (uplink).
Para isso clique em “*Create Graphs for this Host”, e na tela que se abrirá selecione a opção “Create: Cisco – CPU Usage" e a interface FastEthernet0/8.

Criando Gráfico

Em seguida clique em Create, e na página seguinte novamente Create.

13.) Adicione o gráfico a árvore de gráficos.

Selecione no menu do lado esquerdo Graph Trees > Default Tree e então Add.

Preencha os campos:
* Tree Item Type: Host
* Host: BrainCore (equipamento cadastrado anteriormente, no item 10)

Graph Tree

Clique Create e em seguida em Save.

* Repita o processo (itens 10, 11, 12 e 13) para cada equipamento que você deseja monitorar.

14.) Visualizando os gráficos.

Basta clicar na aba graphs para ver os hosts cadastrados do lado esquerdo. Selecione um host e você verá os seus gráficos.

Gráficos BrainCore

Aqui finalizamos a primeira parte do tutorial.

Note que por enquanto temos apenas o Cacti, com suas funcionalidades básicas, já que nenhum plugin foi utilizado.

Fica por conta de cada um instalar os plugins que acharem necessário, lembrando que em breve postarei um tutorial para a instalação e configuração do Weathermap.

Dica: Além do Weathermap, já citado, outros plugins úteis são o Monitor, que verifica se o equipamento está no ar (UP, Down…), o Thold, que permite a criação de thresholds e envio de alertas, e ainda o RealTime, que gera gráficos em Real Time.

Mais informações sobre o Cacti, documentação, How To e Plugins aqui.

Até a próxima.

Tema Brainwork 0.2(beta)