sábado, 30 de agosto de 2008

pksh - Interface shell para monitoração de redes


Rocco Carbone, publicou uma interessante interface shell para monitoramento de redes.
Olha só, como é fácil mostrar os últimos 20 hosts com maior tráfego em Bytes.
Barbada!

pksh@eth0 5> bytes -n | head -21
Host Id Total Tot Sent Tot Recv Broadcast Multicast IP Broad IP Multi
82.187.228.118 212.5 Kb 149.8 Kb 62.8 Kb 0 0 0 0
00:04:27:fe:2c:65 146.0 Kb 40.5 Kb 105.5 Kb 120 0 0 0
70.153.11.247 83.8 Kb 2.1 Kb 81.7 Kb 0 0 0 0
82.187.228.114 66.6 Kb 22.4 Kb 44.3 Kb 0 0 0 0
00:07:85:9c:72:a8 6.5 Kb 6.5 Kb 0 0 6.5 Kb 0 0
70.84.97.58 6.0 Kb 2.8 Kb 3.2 Kb 0 0 0 0
131.114.21.22 5.3 Kb 3.5 Kb 1.8 Kb 0 0 0 0
213.92.114.67 2.2 Kb 660 1.6 Kb 0 0 0 0
193.171.255.36 2.0 Kb 1.6 Kb 425 0 0 0 0
192.26.92.32 1.6 Kb 1.2 Kb 492 0 0 0 0
89.213.253.189 1.5 Kb 1.0 Kb 448 0 0 0 0
66.35.208.43 1.4 Kb 1.0 Kb 354 0 0 0 0
194.0.0.53 1.2 Kb 860 393 0 0 0 0
62.213.203.188 1.2 Kb 321 921 0 0 0 0
165.87.194.244 1.1 Kb 793 297 0 0 0 0
192.134.0.49 1.0 Kb 725 329 0 0 0 0
193.174.75.166 968 735 233 0 0 0 0
192.36.148.17 945 699 246 0 0 0 0
134.91.1.150 913 667 246 0 0 0 0
192.228.89.19 758 591 167 0 0 0 0

Link esta aqui: http://pksh.tecsiel.it/index.html
Aproveitando, tem este outro cara, chamado Luca Deri, que junto com a equipe do NTop, esta trabalhando em muitas coisas interessantes no que diz respeito a performance na captura de pacotes de rede em Linux. Vale a pena dar uma olhada.

segunda-feira, 14 de julho de 2008

Busca com IBM Omnifind Yahoo!

Realizei alguns testes para avaliação do OYE (OmniFind Yahoo! Edition).
Bom, Omnifind é o nome da linha de produtos IBM relacionados a busca e indexação de conteúdo. Destre as três versões comercialmente disponíveis, a versão Yahoo!, foi a escolhida para os testes.
O produto Omnfind Yahoo! Edition (oye), é um sistema de busca e indexação de documentos, baseando no motor de buscas Apache Lucene e desenvolvido na linguagem Java.

Algumas características do produto
  • Suporta mais de 200 tipos de documentos para indexação (xls, doc, ppt, pdf, odt, ods, ppt, html, xml, etc...);
  • API webservice (REST) e em java, para administação básica do sistema, indexação de conteúdos e buscas;
  • Suporta os padrões opensearch;
  • Suporta metadados (campos personalizados para documentos);
  • Suporte a língua portuguesa;
  • Suporte a sinônimos, sugestão de termos e links de destaque;
  • Crawlers (sistema de indexação) web e de arquivos, nativos.
  • Até 500,000 documentos e até 5 espaços de busca (coleções).
  • Suporte IBM

Detalhes do produto IBM Omnifind Yahoo! Edition: http://842docs.omnifind.info/oye_datasheet.pdf

Comparativo entre os produtos da linha Omnifind: ftp://ftp.software.ibm.com/software/data/cmgr/pdf/omnifind-portfolio.pdf

Testes
Os testes foram realizados com o objetivo de indexar documentos presentes em um banco de dados. Como o oye, não possui suporte nativo para buscas em banco de dados, a api de indexação foi utilizada em conjunto com um script para consulta ao banco Oracle. Postei a classe em Python no site http://omnifind.ibm.yahoo.net/forums/index.php?topic=1140.0

Para a consulta de dados customizada, uma página foi criada, também utilizando a api do produto.

Pontos Positivos
A utilização de uma api foi essencial para o trabalho de indexação de conteúdo em banco de dados e o fato desta suportar nativamente webservices, proporcionou uma forma simples de estender as funcionalidades do produto, e possibilita o escalonamento horizontal e a integração com as mais diversas fontes de dados.
O fato do oye ser gratuito, oferece uma vantagem adicional, já que os custos em soluções corporativos de busca, são altos. Veja o Google Search Appliance e Omnifind Enterprise Edition.

Pontos Negativos
Foram encontrados alguns problemas na documentação do produto, principalmente em relação a api de buscas.
O sistema de sinônimos do oye é muito simples e nem todos os termos são encontrados. Para contornar este problema, no protótipo de buscas, integrei a api externa do Google. Sempre imbatível ;)
Aparentemente esta versão não anda recebendo atualizações.

O software pode ser encontrado em: http://omnifind.ibm.yahoo.net/
No charge - No Source

quinta-feira, 29 de maio de 2008

Estendendo partições com LVM

Montando ambiente para testes
Criando devices
Vamos usar dois arquivos como dispositivos. Primeiro criamos os arquivos de 100MB cada:

# dd if=/dev/zero of=disk1 bs=1k count=102400
# dd if=/dev/zero of=disk2 bs=1k count=102400

Associamos um dispositivo de loop para cada um deles:
# losetup /dev/loop1 disk1
# losetup /dev/loop2 disk2


Usando LVM
Agora já temos dois dispositivos (/dev/loop1 e /dev/loop2) que podem ser usados nos testes.

Criando PV (physical volume)
Vamos criar a partição LVM usando fdisk.

# fdisk /dev/loop1


Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x351233c7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): ''p''

Disk /dev/loop6: 104 MB, 104857600 bytes
255 heads, 63 sectors/track, 12 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x351233c7

Device Boot Start End Blocks Id System

Command (m for help): ''n''
Command action
e extended
p primary partition (1-4)
''p''
Partition number (1-4): 1
First cylinder (1-12, default 1):
Using default value ''1''
Last cylinder or +size or +sizeM or +sizeK (1-12, default 12):
Using default value 12

Command (m for help): ''t''
Selected partition 1
Hex code (type L to list codes): ''8e''
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): ''w''
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 22: Invalid argument.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

O comando fdisk deve ser executado para cada um dos dispositivos

Agora as partições devem ser associadas aos PVs:

# pvcreate /dev/loop1
# pvcreate /dev/loop2

Criando o VG (volume group)
Para o teste, criamos um vg inicial com apenas um dos pvs definidos. O nome do vg será vg01:

# vgcreate vg01 /dev/loop1

Criando LV (logical volume)

Para criar um lv utilizando todo os espaço disponível no vg01, usamos (onde lv_part1 é o nome do lv a ser criado):

# lvcreate -l +100%FREE -nlv_part1 vg01

Para visualizar o lv criado:

# lvdisplay


Sistema de arquivos
Para criar o sistema de arquivos é só rodar:

# mkfs.ext3 /dev/vg01/lv_part1

Estendendo sistema de arquivos

Para estender o espaço da lv_part1 vamos usar o outro dispositivo configurado no ambiente de testes.

Para incluir o pv criado no vg01:

# vgextend vg01 /dev/loop2

Para estender o tamanho do lv_part1:

# lvresize -l +100%FREE /dev/vg01/lv_part1

Para estender o tamanho da partição utilizada, no caso ext3:

# resize2fs -p /dev/vg01/lv_part1

era isso.

sexta-feira, 18 de abril de 2008

Palesta do Rasmus Lerdorf no Fisl 9.0

Tive a oportunidade de assitir a palestra de Rasmus Lerdorf, hoje a tarde no fisl. Sob o título de "Large Scale PHP", Rasmus, nós presenteou com algumas boas práticas de performance e segurança na hora de codificar um site. Também mostrou a todos um séria vulnerabilidade do "SQL Injection" no site da prefeitura de Porto Alegre.

A palestra completa pode ser encontrada em: http://talks.php.net/show/fisl08

quarta-feira, 20 de fevereiro de 2008

Notícias Selecionadas