quarta-feira, 21 de setembro de 2011

Armazenando arquivos baixados frequentemente no cache do squid.

Olá amigos.

Hoje vou mostrar como armazenar no cache do squid arquivos que são baixados com certa frequência. Esse procedimento é bastante útil principalmente na atualização de antivírus ou na atualização do M$ ruindows quando não há um WSUS na rede.

O exemplo abaixo se aplica para atualizações do Symantec Endpoint Protection mas pode ser utilizado para o windows update ou qualquer arquivo em outro domínio com as devidas alterações nas expressões regulares.

refresh_pattern liveupdate.symantecliveupdate.com/.*\.(cab|exe|dll|msi|zip) 10080 100% 43200 reload-into-ims
refresh_pattern symantecliveupdate.com/.*\.(cab|exe|dll|msi|zip) 10080 100% 43200 reload-into-ims



A opção refresh_pattern define o tempo de permanência dos objetos no cache e é explicada em detalhes no link abaixo:
http://www.squid-cache.org/Doc/config/refresh_pattern/

No trecho de log abaixo podemos observar pelas entradas TCP_HIT quando os objetos estão sendo acessados diretamente no cache de disco.

1316608033.055  40456 127.0.0.1 TCP_HIT/200 3584456 GET http://liveupdate.symantecliveupdate.com/segments/1316128148jtun_nav2k8ennful25.m25.seg17.zip - NONE/- application/zip
1316608049.902  43301 127.0.0.1 TCP_HIT/200 3584437 GET http://liveupdate.symantecliveupdate.com/segments/1316128148jtun_nav2k8ennful25.m25.seg2.zip - NONE/- application/zip
1316608087.943    154 127.0.0.1 TCP_HIT/200 3074328 GET http://liveupdate.symantecliveupdate.com/segments/1316582683jtun_nav2k8enncur25.m25.seg1.zip - NONE/- application/zip
1316608094.034  40447 127.0.0.1 TCP_HIT/200 3584456 GET http://liveupdate.symantecliveupdate.com/segments/1316128148jtun_nav2k8ennful25.m25.seg18.zip - NONE/- application/zip
1316608117.774      7 127.0.0.1 TCP_HIT/200 542038 GET http://liveupdate.symantecliveupdate.com/segments/1316582683jtun_nav2k8en110920002.m25.seg1.zip - NONE/- application/zip



É isso ai galera, juntos manteremos a comunidade forte.

Um grande abraço a todos.

sexta-feira, 26 de agosto de 2011

Apache autenticando no Windows Server 2008 com Ubuntu Server 10.04 LTS.

Olá amigos, hoje vou mostrar uma maneira bem simples de autenticar usuários no Apache2 em uma base no AD com Perl AuthenNTLM.

Primeiramente devemos baixar o pacote libapache2-authenntlm-perl conforme abaixo:

#apt-get install libapache2-authenntlm-perl

Devemos então editar as configurações para nosso virtualhost em /etc/apache2/sites-enabled/site.conf ou diretamente no arquivo default em /etc/apache2/sites-enabled/000-default conforme abaixo:

<Directory>
Order allow,deny
Allow from 192.168

Options FollowSymLinks
AllowOverride None

PerlAuthenHandler Apache2::AuthenNTLM
AuthType ntlm
AuthName "Acesso Restrito"
require valid-user
PerlAddVar ntdomain "DOMÍNIO nome_do_servidor"
PerlSetVar defaultdomain DOMÍNIO
PerlSetVar ntlmsemtimeout 2
PerlSetVar ntlmdebug 2
PerlSetVar splitdomainprefix 1
</Directory>

Existem algumas considerações a respeito da configuração da variável PerlAddVar ntdomain.
No nome_do_servidor deve existir realmente um nome e não o endereço IP, o nome do servidor deve ser adicionado no arquivo /etc/hosts uma vez que a resolução de nomes da ferramenta é local.

Maiores informações a respeito do Perl AuthenNTLM inclusive as definições de suas variáveis podem ser encontradas no link abaixo:

http://search.cpan.org/~speeves/Apache-AuthenNTLM-2.10/AuthenNTLM.pm#PerlAddVar_ntdomain_%22domain_pdc_bdc%22

Quais quer dúvidas ou esclarecimentos estou a disposição.
Um grade abraço a todos.

quinta-feira, 21 de abril de 2011

Instalando o Zabbix 1.8.4 no Ubuntu Server 10.10

Em ambientes de TI complexos com muitos ativos de rede e servidores muitas vezes problemas ocorrem sem o conhecimento do administrador de rede, o pior dos cenários é quando o administrador é informado sobre problemas em sua infraestrutura pelos usuários pois isso reflete diretamente na visão dos usuários a respeito do departamento de TI. Em um cenário como esse a TI está sempre apagando incêndios e os usuários estão quase sempre insatisfeitos com os serviços prestados.
Através das ferramentas de monitoramento como Nagios, Zenoss e o Zabbix tratado neste post a TI passa a ser pró-ativa resolvendo problemas antes mesmo do conhecimento dos mesmos pelos usuários.
Já utilizo o Zabbix há algum tempo e com sua nova versão resolvi abordar os procedimentos de instalação e configuração da ferramenta de monitoramento.

Inicialmente devemos baixar o Zabbix, o download pode ser realizado através do link:

http://prdownloads.sourceforge.net/zabbix/zabbix-1.8.4.tar.gz?download

Concluído o download agora vamos instalar a dependências para a compilação do Zabbix conforme abaixo:

# apt-get install gcc automake mysql-server libsnmp-dev libmysqld-dev libcurl4-gnutls-dev libopenipmi-dev libssh2-1-dev

Concluída a instalação passamos para o arquivo com o código fonte, que neste caso foi colocado em /opt

Inicialmente iremos extrair o conteúdo do arquivo com o comando:

# tar xzvf zabbix-1.8.4.tar.gz

Após a extração será criado o diretório zabbix-1.8.4 em /opt, é agora que iremos determinar o suporte a determinadas funcionalidades dependendo do ambiente em que vc irá utilizar o Zabbix como por exemplo em que banco de dados o servidor será instalado, se haverá suporte a verificações via ssh ou dispositivos IPMI. As opções de compilação podem ser verificadas através do comando abaixo dentro do diretório /opt/zabbix-1.8.4/

# ./configure --help

Após definir as funcionalidades desejadas passamos para a compilação no meu caso o Zabbix foi compilado conforme o comando abaixo:

# ./configure --enable-server --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-ssh2 --enable-agent

Uma vez compilado devemos executar os comandos abaixo para concluir a instalação:

# make
# make install

Com o Zabbix instalado passamos a configuração da base de dados que conforme compilação será armazenada no servidor mysql, para tal devemos proceder com os passos a seguir:

# mysql -u root -p
>create database zabbix character set utf8;
>grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'senha';
>exit

# mysql -u root -p zabbix < /opt/zabbix-1.8.4/create/schema/mysql.sql
# mysql -u root -p zabbix < /opt/zabbix-1.8.4/create/data/data.sql
# mysql -u root -p zabbix < create/data/images_mysql.sql

Com isso nossa base de dados está preparada, agora devemos criar o usuário para rodar o servidor, criar o diretório dos arquivos de configuração, copias os exemplos de arquivos de configuração e os arquivos de inicialização do servidor.

# useradd -m -s /bin/bash zabbix
# mkdir /etc/zabbix
# cp misc/conf/{zabbix_server.conf,zabbix_agentd.conf} /etc/zabbix
# cp /opt/zabbix-1.8.4/misc/init.d/debian/{zabbix-agent,zabbix-server} /etc/init.d

Agora passamos para a configuração do servidor conforme abaixo:

[zabbix_server.conf]
...
LogFile=/var/log/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=SUASENHA
...

No arquivo de configuração indicamos um arquivo para log porém, o arquivo não existe devemos então criá-lo e atribuí-lo ao usuário zabbix:

# touch /var/log/zabbix_server.log
# chown zabbix.zabbix /var/log/zabbix_server.log
# chown -R zabbix.zabbix /var/log/zabbix_server.log

O servidor já está pronto para uso e pode ser inicializado através do comando:

# /etc/init.d/zabbix-server start

Porém o servidor por sí não é suficiente, uma vez que para configurar os hosts e ítens a ser monitorados devemos instalar a interface web.

Devemos instalar o apache2 e o php mais as dependências para a interface web do Zabbix.

# apt-get install apache2 apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libdbd-mysql-perl libdbi-perl libnet-daemon-perl libplrpc-perl libpq5 php5-common php5-mysql php5-gd

O próximo passo é copiar os arquivos da interface para o diretório apropriado no apache2;

# cp -r /opt/zabbix-1.8.4/frontends/php/ /var/www/
# mv /var/www/php /var/www/zabbix

Com isso podemos acessar a interface web e prosseguir com a configuração através da interface web. Reinicialize o apache e acesse a interface no endereço:

http:/seu-ip/zabbix

O processo de configuração é bem intuitívo a única observação a ser feita é na tela de pré-requisitos, algumas opções vão estar em desconformidade e devemos realizar alterações no arquivos /etc/php/apache2/php.ini e alterar o valor padrão das variáveis para atender as necessidades do Zabbix. A baixo estão as variáveis e os valores mínimos para prosseguir com a instalação, se seu ambiente for maior pondere cuidadosamente os valores atribuídos pois esta configuração impacta diretamente na performance do zabbix.

[php.ini]
...
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
post_max_size = 32M
upload_max_filesize = 16M
date.timezone = America/Maceio
...

Assim concluímos os pré-requisitos e concluímos a instalação do zabbix.

Após digitar o usuário e senha você entrará na dashboard, é através dela que você pode ver o que está sendo monitorado. O Zabbix utiliza o princípio de Hosts >> Itens >> Triggers >> Actions para realizar seu monitoramento, devemos adicionar os hosts e os itens que serão monitorados neste host em seguida configuramos as triggers que analisam os itens e geram alarmes de acordo com as opções especificadas pelo administrador, já as Actions são as ações tomadas mediante as alterações das triggers que podem ser a execução de um script, o envio de um email para o administrador, etc.

A configuração do Zabbix é um tópico bastante extenso e não será abordado neste post, maiores informações para a configuração do zabbix podem ser encontradas no link abaixo:

http://www.zabbix.com/documentation/1.8/manual/config

Há também um livro sobre o Zabbix que possui bastante informação a respeito da ferramenta, maiores informações sobre o livro podem ser encontradas no link abaixo:

http://www.amazon.com/Zabbix-Network-Monitoring-Rihards-Olups/dp/184719768X/ref=sr_1_1?s=books&ie=UTF8&qid=1303788117&sr=1-1

É isso ai galera, quaisquer dúvidas ou esclarecimentos estou a disposição.
Um grande abraço a todos da comunidade.

quinta-feira, 17 de fevereiro de 2011

Instalando o Jetty no Ubuntu Server 10.04 LTS

Olá comunidade,

O servidor de aplicações web Jetty é um servidor ágil e leve que apesar de bastante poderoso possui documentação escassa. Segue abaixo o procedimento para instalação do Jetty no Ubuntu server 10.04.

Primeiramente devemos instalar o JDK, O pacote sun-java6-jdk não está listado nos repositórios oficiais, portanto devemos adicionar um novo repositório e prosseguir com a instalação conforme abaixo:

# apt-get install python-software-properties
# add-apt-repository "deb http://archive.canonical.com/ lucid partner"
# apt-get install sun-java6-jdk sun-java6-jre
# apt-get install libjetty-extra-java libjetty-java jetty

Concluída a instalação prosseguimos com a configuração do servidor Jetty. Devemos alterar as variáveis no arquivo /etc/default/jetty para os valores abaixo:

JAVA_HOME=/usr/lib/jvm/java-6-sun

NO_START=0 ## Libera a inicialização do servidor.

JETTY_HOST=0.0.0.0 ## Define que o servidor irá "ouvir" todas as interfaces.

Concluída a configuração devemos reiniciar o servidor jetty para que as alterações entrem em vigor.

# /etc/init.d/jetty restart

Uma vez configurado podemos realizar os deploys dos arquivos .war adicionando os mesmos no diretório /usr/share/jetty/webapps

Após inserir o arquivo no diretório reinicie o Jetty. A URL para acessar o servidor será:

http://ip-do-servidor:8080/nomedoarquivowar


É isso ai galera. Quaisquer dúvidas ou esclarecimentos estou a disposição.

Um grande abraço.

segunda-feira, 10 de janeiro de 2011

Que venha a LPI 202...

Finalmente saiu o resultado da LPI 201 e estou feliz por ter sido aprovado com uma boa pontuação.
Agora é estudar bastante para a LPI 202 para conquistar a LPI 2.

Ohhh yes...

:D