Claudio Borges

Technical blog about Linux, BSD, Mac OS X, Games and etc.

Utilizando o varnishtop e varnishlog

without comments

A todos aqueles que utilizam varnish, aqui estão alguns comandos úteis para obter informações sobre quem está acessando seu servidor e muitas vezes até fazendo um ataque nele. O varnishtop vai mostrar os acessos similares ao comando top do *nix, ou seja, quem mais acessa é o primeiro da lista. Já o varnishlog mostra todo o log da requisição similar ao utilizar um tail -f no logo do apache por exemplo.

Ambos podem chegar no mesmo resultado, então fica a seu critério escolher qual o que vai lhe atender melhor. Não vou entrar em detalhes de todas as opções disponíveis, para isso consulte o man do comando :D.

Hosts mais acessados

1
2
3
varnishtop -i RxHeader -I '^Host'
 
varnishlog -i RxHeader | grep 'Host'

Urls mais acessadas

1
2
3
varnishtop -i RxURL
 
varnishlog -c | grep RxURL

Existe também o comando varnishstat que gera estatísticas de acesso como quantidades de conexões aceitas, quantidade de arquivos em cache dentre várias outras informações. Então um man varnishstat será bem produtivo.

Written by but3k4

February 21st, 2014 at 10:29 am

Posted in Linux

Tagged with , , ,

GlusterFS – Um sistema de arquivos para alta disponibilidade

with 2 comments

Depois de um longo tempo sem publicar nada no blog, estou de volta com um assunto interessante: GlusterFS.

Neste artigo irei mostrar como instalar e configurar o GlusterFS para criar um sistema de armazenamento de alta disponibilidade utilizando 2 servidores. Ambos os servidores serão client e server e cada servidor será espelho do outro onde os arquivos serão replicados automaticamente entre eles, ou seja, uma espécie de raid 1 via rede.

GlusterFS é um sistema de arquivos distribuído, capaz de escalar vários petabytes. Ele trabalha sob infiniband RDMA ou tcp/ip. Os desenvolvedores recomendam os sistemas de arquivos Ext3 e Ext4. Outros sistemas de arquivos, como ZFS, ReiserFS, btrfs, JFS, também funcionam, mas não foram amplamente testados. XFS tem vários problemas de desempenho devido a sua implementação atributos estendidos, se você optar por usar XFS seu desempenho utilizando Gluster será reduzido em pelo menos 60%.

Para seu funcionamento, você não precisa de nada em especial, pode utilizar seu hardware já existente, como por exemplo servidores com discos Sata/Sata-II ou ISCSI/SaS.

Os dados dos servidores a serem utilizados neste artigo são:

1
2
3
Servidor 01: 192.168.0.10
Servidor 02: 192.168.0.11
diretório a ser compartilhado: /var/www

É interessante você adicionar as seguintes entradas no /etc/hosts de cada servidor:

1
2
192.168.0.10      servidor01
192.168.0.11      servidor02

Como em artigos anteriores, este aqui também é baseado em debian. Os pacotes que iremos utilizar são glusterfs-client e glusterfs-server e a instalação segue o mesmo procedimento:

1
apt-get install glusterfs-client glusterfs-server

Depois de instalar os pacotes, entre no diretório /etc/glusterfs, nele você verá os seguintes arquivos:

1
2
glusterfs.vol
glusterfsd.vol

O primeiro arquivo é responsável pela configuração do client e o segundo do server. Como os servidores serão client e server ao mesmo tempo, a configuração destes arquivos precisa ser idêntica em ambas as máquinas.

Renomeie os arquivos e adicione .default ao final de cada um deles:

1
2
3
cd /etc/glusterfs
mv glusterfs.vol glusterfs.vol.default
mv glusterfsd.vol glusterfsd.vol.default

Crie o arquivo /etc/glusterfs/glusterfs.vol com o seguinte conteúdo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# /etc/glusterfs client configuration file
#
volume client01
  type protocol/client
  option transport-type tcp/client
  option remote-host servidor01
  option remote-subvolume brick
end-volume
 
volume client02
  type protocol/client
  option transport-type tcp/client
  option remote-host servidor02
  option remote-subvolume brick
end-volume
 
volume replicate
  type cluster/replicate
  subvolumes client01 client02
end-volume
 
volume writeback
  type performance/write-behind
  option aggregate-size 1MB
  subvolumes replicate
end-volume
 
volume cache
  type performance/io-cache
  option page-size 512MB
  subvolumes writeback
end-volume

Crie o arquivo /etc/glusterfs/glusterfsd.vol com o seguinte conteúdo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# /etc/glusterfs server configuration file
#
volume posix
  type storage/posix
  option directory /var/www
end-volume
 
volume locks
  type features/locks
  subvolumes posix
end-volume
 
volume brick
  type performance/io-threads
  option thread-count 8
  subvolumes locks
end-volume
 
volume server
  type protocol/server
  option transport-type tcp
  option auth.addr.brick.allow 192.168.0.10,192.168.0.11
  subvolumes brick
end-volume

Para entender melhor as opções usadas nas configurações, sugiro dar uma lida na página de translators.

Com os arquivos configurados, inicie o daemon com o seguinte comando:

1
/etc/init.d/glusterfs-server start

Adicione a seguinte entrada no /etc/fstab de ambos os servidores:

1
/etc/glusterfs/glusterfs.vol    /var/lib/glusterfs      glusterfs    defaults      0   0

Crie o diretório /var/glusterfs e monte o diretório:

1
2
mkdir /var/glusterfs
mount -a

Agora com tudo pronto em ambos os servidores, vamos realizar os seguintes testes:

1
2
3
4
5
6
7
- No servidor 01: Salve alguns arquivos no /var/glusterfs.
- Conecte no servidor 02 e veja se os arquivos estão lá.
- Execute um reboot no servidor 01.
- Veja se tudo está ok no servidor 02.
- Salve alguns arquivos no servidor 02.
- Quando o servidor 01 voltar, verifique no /var/glusterfs se os arquivos que você salvou quando ele estava fora foram replicados.
- Repita o procedimento mudando a ordem do servidores.

Você deve estar se perguntando porque estou me baseando no diretório /var/glusterfs e não no /var/www, isto porque para a replicação funcionar, os dados precisam ser gravados no /var/glusterfs.

E isto é tudo. Estando todos os testes ok, você agora tem um raid 1 vai rede :).

Written by but3k4

April 18th, 2011 at 9:23 pm

Palestra Nginx Linuxcon 2010

without comments

Participei do Linuxcon 2010, muito bom por sinal. Devido ao trabalho, fui somente no segundo dia (01/09), minha palestra estava marcada para as 15:00, cheguei lá por volta as 12:20, ainda tinha que almoçar e dar um tapa final nos slides.

Assim que entrei e peguei minha credencial, encontrei com o Maddog e enquanto todos estavam rodeando ele para tirar fotos, passou o Andrew Morton, tive o prazer de conversar um pouco com ele, muito atencioso, só que estava com um pouco de pressa, pois estava olhando para o relógio, pena que não pude tirar nenhuma foto, não passou uma viva alma naquele momento.

Depois disso, fui para a sala da Locaweb, deixei minha mochila e fui almoçar, praça de alimentação lotada e a única alternativa foi comer McDonald’s. Terminado o almoço, ou melhor, lanche, voltei para terminar os slides e fazer uma revisão geral para ver se não tinha nenhum erro. Infelizmente não tive muito tempo para elaborar esta palestra, foi meio que de última hora e por este motivo tudo foi meio improvisado. O pessoal estava com várias perguntas legais, muitas dúvidas inteligentes, no final fiquei batendo um papo com algumas pessoas.

Para aqueles que quizerem baixar o conteúdo que foi apresentado, clique aqui.

Written by but3k4

September 2nd, 2010 at 2:16 pm

Posted in Geral

Tagged with , , ,