Skip to content


Monitoramento Web com Zabbix

Muitas vezes, não podemos ou não queremos monitorar um servidor Web do jeito convencional medindo a quantidade de processos e verificando as portas abertas.
Eu já presenciei muitos sysadmins programando robozinhos em linguagens de script para essa finalidade, porém, eles acabam esbarrando sempre em alguns pontos chaves, que são:

Métricas de desempenho, manutenção desses programas e consolidação dos dados para apresentações (yep, tem haver com o métricas de desempenho).

Felizmente, o Zabbix, faz isso de uma maneira relativamente simples, possibilitando obter algumas funcionalidades bacanas, como:

- Tempo de acesso, em milisegundos
- Velocidade de download, em kbytes
- Código de retorno da página (200, 404 e etc)
- Procurar uma expressão dentro da página
-Alarmes para cada um desses itens

Bom, a criação de um cenário Web para monitoramento de páginas é bem simples, e está documentado aqui:
http://www.zabbix.org/documentation/1.8/manual/web_monitoring

Assim que possível, escreverei com maiores detalhes sobre o Zabbix.

[ ] ‘s

Posted in Uncategorized.


My guitar heroes > Eric Clapton

Como todo “aspira” a músico de blues (e outros estilos, porque não??), eu tenho os caras nos quais me inspiro, e tento aprender com eles. Sendo assim, resolvi escrever este post, primeiro, porque é legal, e segundo, para servir de referência futura quando eu começar a caducar. Este post não segue nenhuma ordem de prefêrencia ou cronológica. Ele apenas foi escrito conforme os nomes me vieram a cabeça.

Então, vamos começar com o cara que me inspirou a comprar uma guitarra elétrica.

Eric Patrick “Slowhand” Clapton

Sem dúvida, Eric Clapton é um dos meus guitarristas solo favoritos. Nascido em Ripley, Inglaterra, em meados de 1945, fez sua história, e uma boa parte da história do Rock and Roll, tocando em bandas como “The Yardbirds”, “John Mayall & the Bluesbreakers”, o power trio “Cream” e “Blind Faith”.

Quando estava no “Cream”, fez uma regravação de “Crossroads” de Robert Johnson, e compos “Sunshine of your Love”. Sunshine of Your love é uma música tão foda, que até o Ozzy fez um cover dela. :P

Gostou? Se interessou? Quer conhecer a obra do SlowHand Clapton? Então ouça:

From The Cradle
Slowhand
Backless
Blues in the Hall 1 & 2
Riding With The King (com o mestre dos mestres, B.B King)
Me and Mr Johnson (covers de Robert Johnson, muito bom).

Posted in Uncategorized.

Tagged with , , , .


A fase das descobertas?!?!

“@andrelop
Somente agora, com 30 anos, descobri qual é a sensação de receber a primeira parcela do 13 salário. Posso dizer que é ótima :-) ”

Um tweet do @andrelop, o qual tomei a liberdade de transcrever acima, me pensar/lebrar/imaginar uma série de coisas a respeito da idade:

Aos 13, zerei meu primeiro RPG!!
Aos 15, descobri o quanto é bom tomar um porre de whisky!
Aos 15, descobri que porre de conhaque vagabundo não é tão bom assim!
Aos 17, descobri o sexo!
Aos 19, descobri como é bom terminar um namoro mala!
Aos 20, descobri a mulher da minha vida!
Aos 23, descobri como é trabalhar (quase) sério com software livre.
Aos 24, como é legal contribuir com traduções (yeah, preciso voltar).
Aos 25, descobri que posso aprender a tocar violão/guitarra.
Aos 25, descobri que a faculdade um dia acaba!!!!
Hoje, com 26, descobri que não tenho mais 15 e preciso dar um jeito na minha vida.

Aos 30, provavelmente esquecerei o que fiz dos 15 até o fim da faculdade.
Aos 40, lembrarei de quando tinha 25.
Aos 45, me arrependerei de ter trabalhado tanto!
Aos 50, estarei igual meu pai, me comportando como se eu tivesse 15…
Aos 60, #totaly #fail :(

Posted in Uncategorized.

Tagged with , , .


Proxy com autenticação via linha de comando

Problema: Realizar downloads via ‘ wget ‘ através de um squid que exige autenticação.
Solução: Exportar as variaveis corretamente com o nome de usuário e senha utilizadas no proxy:

$ export http_proxy=”http://usuario:senha@192.xxx.xxx.xxx:3128″
$ export ftp_proxy=”http://usuario:senha@192.xxx.xxx.xxx:3128″

Bonus Track: Limpar o histórico para que a senha não fique armazenada

$ history -c

Enjoy the ride!

Posted in Uncategorized.

Tagged with , , .


Converter Nome de arquivos em maiúsculas p/ minúsculas

Método ‘Quick And Dirty’ de fazer as coisas.

Problema: Uma lista com 780 mac addresses com letras maiusculas, que serão utilizados para gerar configurações de telefones IP.

Solução: Um one-liner com for + tr :D

Materiais: comando for, a lista com os mac address (mac_list), o comando tr

Comando:
for i in $(cat mac_list ) ; do echo $i | tr [A-Z] [a-z] >> lista_oficial_de_macs ; done

I really love One-Liners :D

Posted in Uncategorized.

Tagged with , , , .


Introdução ao tcpdump

Como administrador de redes e implementador de tecnologias VoIP (um tal de asterisk, saca? ), raramente há um dia no qual eu não utilize o tcpdump para detectar problemas ou depurar o tráfego de rede.

Este software, disponível em tcpdump.org possibilita visualizar a informação que trafega pelas interfaces de rede, dando ao administrador condições de compreender a origem e destino dos pacotes, portas origem/destino, e constatar o bom funcionamento da rede ou detectar e corrigir eventuais problemas.
Por fazer uso da libpcap, (disponível no mesmo site do tcpdump), o sistema de filtros que irei descrever aqui pode ser utilizado em praticamente qualquer sniffer que faça uso da libpcap, como o Wireshark, Etherape* e outros.

Bom, se você executar o comando tcpdump (como root ou usando o sudo) na sua estação de trabalho, devem aparecer algumas coisas não tão emocionantes assim, como um eventual acesso a uma página web ou ssh para outro servidor.

Dica: Se você tiver acesso a um servidor/firewall/roteador baseado em linux, as coisas irão ficar mais divertidas ;)
Dica2: O parametro -i na linha abaixo específica a interface de rede, no caso, en1.

bash-3.2# tcpdump -i en1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
16:37:41.820798 IP hermes.jabber.org.jabber-client > 172.25.50.1.49185: Flags [P.], ack 101, win 501, options [nop,nop,TS val 2786794633 ecr 32003128], length 314
16:37:41.820868 IP 172.25.50.1.49185 > hermes.jabber.org.jabber-client: Flags [.], ack 315, win 65535, options [nop,nop,TS val 32003131 ecr 2786794633], length 0

Aqui, temos o IP 172.25.50.1, na porta 49185 conversando com o servidor hermes.jabber.org na porta jabber-client (!?), ou seja, a notação do tcpdump é a seguinte:

ip_origem.porta > ip_destino.porta

É exatamente neste momento que entra a importancia de conhecer alguns parámetros bacanas e os filtros.
No próximo exemplo, usarei o parametro -n, para não resolver nomes.

bash-3.2# tcpdump -i -n en1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
16:54:49.305931 IP 208.68.163.220.5222 > 172.25.50.1.49478: Flags [P.], ack 3024, win 501, options [nop,nop,TS val 2787051513 ecr 32013390], length 234
16:54:49.306025 IP 172.25.50.1.49478 > 208.68.163.220.5222: Flags [.], ack 40285, win 65535, options [nop,nop,TS val 32013393 ecr 2787051513], length 0

Creio que fizemos algum progresso, certo?
Sabemos como olhar origem/destino, sem resolver nomes, porém, se você fizer isso em uma tarde movimentada em um servidor com muitos acessos, você vai literalmente ter uma enxorrada de caracteres em sua tela.
É ai que entram os filtros.

Como o próprio nome diz, os filtros são capazes de capturar e exibir apenas os pacotes dentro de um padrão especificado por vossa mercê logo após os parametros.

O comando abaixo tem como objetivo capturar apenas os pacotes que tenham como origem o IP 172.25.50.1.

bash-3.2# tcpdump -i en1 -n src 172.25.50.1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
17:03:57.966875 IP 172.25.50.1.49478 > 208.68.163.220.5222: Flags [P.], ack 1791748800, win 65535, options [nop,nop,TS val 32018873 ecr 2787180975], length 101
17:03:58.125112 IP 172.25.50.1.49478 > 208.68.163.220.5222: Flags [.], ack 315, win 65535, options [nop,nop,TS val 32018875 ecr 2787188714], length 0
17:03:58.402324 IP 172.25.50.1.49186 > 207.46.124.87.1863: Flags [P.], ack 4218053211, win 65535, options [nop,nop,TS val 32018878 ecr 40801509], length 5
17:03:58.592978 IP 172.25.50.1.49186 > 207.46.124.87.1863: Flags [.], ack 9, win 65535, options [nop,nop,TS val 32018880 ecr 40801810], length 0

Agora, mais filtros.

Capturando pacotes com origem em 172.25.50.1 e destino sendo 201.XXX.XXX.XXX
bash-3.2# tcpdump -i en1 -n src 172.25.50.1 and dst 201.XXX.XXX.XXX
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
17:24:41.016407 IP 172.25.50.1.49593 > 201.XXX.XXX.XXX.22: Flags [P.], ack 482545008, win 65535, options [nop,nop,TS val 32031289 ecr 121570066], length 48

Capturando pacotes com origem em 172.25.50.1 e destino 201.XXX.XXX.XXX, com exeção da porta 22 ;)
bash-3.2# tcpdump -i en1 -n src 172.25.50.1 and dst 201.XXX.XXX.XXX and port not 22
(Ok, eu usei um telnet para testar ;)
17:29:04.685025 IP 172.25.50.1.49614 > 201.XXX.XXX.XXX.23: Flags [S], seq 982381860, win 65535, options [mss 1460,nop,wscale 3,nop,nop,TS val 32033923 ecr 0,sackOK,eol], length 0

Capturando pacotes do tipo DNS. (udp, porta 53)

bash-3.2# tcpdump -i en1 -n udp and host 4.2.2.2 and port 53
(o comando usado para testar foi: dig -t any google.com.br. @4.2.2.2 )
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on en1, link-type EN10MB (Ethernet), capture size 96 bytes
17:30:42.622847 IP 172.25.50.1.57322 > 4.2.2.2.53: 38414+ ANY? www.google.com.br. (35)
17:30:42.772963 IP 4.2.2.2.53 > 172.25.50.1.57322: 38414 1/0/0 CNAME[|domain]

Felizmente, o tcpdump é um software com uma curva de aprendizado incrivelmente curta e de uma utilidade imensa. Para maiores referencias, consulte esta documentação aqui, que relata os filtros existentes para a libpcap/tcpdump.

http://www.cs.ucr.edu/~marios/ethereal-tcpdump.pdf
Em 2006, eu escrevi este artigo aqui, sobre o etherape (ignore a parte que eu falo mal dos filtros, coisa de iniciante ;)
http://www.vivaolinux.com.br/artigo/Apresentando-o-monitor-de-redes-EtherApe/

Posted in Uncategorized.

Tagged with , , , .


Tar sobre tcp/ip (ou network, se preferir )

Bom… a menos de 10 minutos atrás precisei clonar um diretório de linux para um servidor a alguns metros de distância e, para isso, utilizei a amplamente conhecida opção de tar + netcat :D

Na origem, execute:

# tar c /caminho/para/diretorio | nc -q 10 -l -p 6666

E, no destino, execute:

#nc -w IP_DA_ORIGEM  6666 | tar xv

Aposto uma cartela de cigarrilhas pan, como, com alguns ajustes, dá para clonar uma instalação.

[ ] ‘ s

Posted in Uncategorized.

Tagged with , , .


Compilando DRBD com Lenny Backports

Hoje eu tive alguns problemas para compilar o pacote drbd8-source que existe na arvore debian, pois o meu kernel é  backports e o módulo simplesmente se recusou a compilar. Solução adotada:

Compilar o módulo oficial do site drbd.org .

Para isso, é necessário cumprir alguns pré requisitos:

# aptitude install linux-source-2.6.30 flex build-essential

Descompacte os fontes do kernel e crie o link simbólico para /usr/src/linux

# cd /urs/src/linux

#make mrproper

# cp /boot/config-2.6.30-bpo.2-686  /usr/src/linux/.config

Agora, baixe os sources do drbd8 e descompacte-os. Eu estou utilizando a versão 8.3.4, release estável em 07/10/2009.

Entre no diretório e então compile o módulo:

# make clean all

[ ] ‘ s

Posted in Uncategorized.

Tagged with , , .


Removendo arquivos duplicados com o fdupes

Não sei porque a porcaria do iTunes duplica alguns albums que eu possuo, e eu acho isso um saco.

Para resolver o problema, basta usar o fdupes, um aplicativo para Unix que procura arquivos duplicados usando a assinatura MD5.

O fdupes pode ser obtido atraves do sistema de pacotes da sua distribuição linux, ou atraves do sistema ports, se você estiver no FreeBSD ou Mac OS X.

Para utilizá-lo, basta utilizar o comando:

# fdupes -r -d  path/para/busca

Maiores informações: http://www.susegeek.com/utility/fdupes-command-line-tool-to-find-and-listdelete-duplicate-files/

Posted in Uncategorized.

Tagged with .


Get back to where you once belong

To de volta (eu acho…) a este blog, e com um montão de coisas pra falar. Mas um montão mesmo.

Mas antes de começar, eu vou fazer um ‘quick post’ de tudo que aconteceu que eu gostaria de ter escrito na época, porém, fatores profissionais (como ter sua alma sugada 24/7) não me permitiram :D

  • Me formei na faculdade.
  • Comprei uma guitarra elétrica (e até toco algumas músicas)
  • Descolei um nintendo Wii
  • Comecei a fazer exercícios regularmente (ok… nem tão regularmente assim)
  • Virei coordenador de uma equipe de 4 pessoas
  • Abandonei o posto de coordenador de uma equipe de 4 pessoas
  • Abandonei meu emprego antigo, por que eu me sentia frustrado e sem perspectivas (gerencia sux)
  • Descolei um emprego com pessoas bacanas, com muitas perspectivas e uma gaveta cheia de novos horizontes (Yeah!!)

Bom… resumindo rapidamente, foi isso.

De volta ao trabalho!!!

Ao bom e velho trabalho de System Administrator.

Posted in Uncategorized.

Tagged with .