<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>claudineimatos.com</title>
	
	<link>http://www.claudineimatos.com</link>
	<description>Weblog sobre linux, tecnologia e coisas em geral.</description>
	<lastBuildDate>Sun, 14 Feb 2010 23:20:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>pt</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/claudineimatoscom" /><feedburner:info uri="claudineimatoscom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Controle de acessos no Git simples e seguro com Gitosis</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/tie4uRzOHsM/controle-de-acessos-no-git-simples-e-seguro-com-gitosis</link>
		<comments>http://www.claudineimatos.com/blog/artigos/controle-de-acessos-no-git-simples-e-seguro-com-gitosis#comments</comments>
		<pubDate>Sun, 14 Feb 2010 20:13:48 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Segurança]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=253</guid>
		<description><![CDATA[Existem algumas formas de se fazer controle de acesso no GitW, a forma mais simples é criar o repositório com acesso a um grupo e adicionar os usuários com acesso a esse grupo. Se um grupo apenas não for suficiente para gerenciar os acessos ao repositório pode ser possível utilizar ACL&#8217;s.
O único problema desse esquema [...]]]></description>
			<content:encoded><![CDATA[<p>Existem algumas formas de se fazer controle de acesso no <a href="http://pt.wikipedia.org/wiki/Git" target="_blank" title="From Wikipedia the definition of: Git" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Git</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, a forma mais simples é criar o repositório com acesso a um grupo e adicionar os usuários com acesso a esse grupo. Se um grupo apenas não for suficiente para gerenciar os acessos ao repositório pode ser possível utilizar <a href="http://www.claudineimatos.com/blog/artigos/acl-samba-nfs">ACL&#8217;s</a>.<br />
O único problema desse esquema é que exige que cada usuário tenha acesso <a href="http://pt.wikipedia.org/wiki/SSH" target="_blank" title="From Wikipedia the definition of: SSH" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SSH</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> ao servidor e isso muita das vezes não é interessante para o administrador do servidor.</p>
<p>Outra forma de se fazer o controle de acesso é através de <a href="http://pt.wikipedia.org/wiki/WebDAV" target="_blank" title="From Wikipedia the definition of: WebDAV" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >WebDAV</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>. A vantagem é que nesse caso o gerenciamento dos usuários é feito através de um arquigo que deve ser gerado e atualizado com o utilitário <code>htpasswd</code> (<code>htpasswd2</code> em algumas distribuições como o Gentoo), porém para executar o WebDAV é preciso um servidor web como o <a href="http://pt.wikipedia.org/wiki/Apache_Server" target="_blank" title="From Wikipedia the definition of: Apache Server" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Apache Server</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> ou <a href="http://pt.wikipedia.org/wiki/Lighttpd" target="_blank" title="From Wikipedia the definition of: Lighttpd" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Lighttpd</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.<br />
Se sua escolha for pelo WebDAV, o <a href="http://pt.wikipedia.org/wiki/HowTo" target="_blank" title="From Wikipedia the definition of: HowTo" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >HowTo</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> disponível na própria documentação do Git ou em <a href="http://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server-over-http.txt">http://www.kernel.org/pub/software/scm/git/docs/howto/setup-git-server-over-http.txt</a> explica como fazer.</p>
<p>Uma forma mais simples e segura é utilizar o <a href="http://eagain.net/gitweb/?p=gitosis.git">Gitosis</a>. Sua principal vantagem é ser executado via ssh através de autenticação via chave pública, porém utilizando uma única conta compartilhada cujos comandos disponíveis são limitados.<br />
<span id="more-253"></span></p>
<h4>Instalação</h4>
<p>A instalação do Gitosis é simples, se sua distribuição não oferecer um pacote de instalação basta clonar o repositório <a href="http://eagain.net/gitweb/?p=gitosis.git">git://eagain.net/gitosis</a>.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code14'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25314"><td class="code" id="p253code14"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Gentoo</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dev-util/gitosis-gentoo&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>portage<span style="color: #000000; font-weight: bold;">/</span>package.keywords<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">git</span>
emerge dev-util<span style="color: #000000; font-weight: bold;">/</span>gitosis-gentoo <span style="color: #660033;">-uND</span> 
&nbsp;
<span style="color: #666666; font-style: italic;">#CentOS (com Epel)</span>
yum <span style="color: #c20cb9; font-weight: bold;">install</span> gitosis.noarch
&nbsp;
<span style="color: #666666; font-style: italic;">#via Git</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>eagain.net<span style="color: #000000; font-weight: bold;">/</span>gitosis gitosis
<span style="color: #7a0874; font-weight: bold;">cd</span> gitosis
python setup.py <span style="color: #c20cb9; font-weight: bold;">install</span></pre></td></tr></table></div>

<p>Se ao tentar instalar via repositório ocorrer um dos erros abaixo:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code15'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25315"><td class="code" id="p253code15"><pre class="text" style="font-family:monospace;">-bash: python: command not found</pre></td></tr></table></div>

<p>Ou:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code16'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25316"><td class="code" id="p253code16"><pre class="text" style="font-family:monospace;">Traceback (most recent call last):
  File &quot;setup.py&quot;, line 2, in ?
    from setuptools import setup, find_packages
ImportError: No module named setuptools</pre></td></tr></table></div>

<p>É preciso instalar o pacote <code>python-setuptools</code>:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code17'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25317"><td class="code" id="p253code17"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Gentoo</span>
emerge dev-python<span style="color: #000000; font-weight: bold;">/</span>setuptools <span style="color: #660033;">-uND</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Ubuntu</span>
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> python-setuptools
&nbsp;
<span style="color: #666666; font-style: italic;">#CentOS</span>
yum <span style="color: #c20cb9; font-weight: bold;">install</span> python-setuptools.noarch</pre></td></tr></table></div>

<h4>Configuração</h4>
<p>Após instalado é preciso criar o grupo e o usuário que serão utilizados pelo Gitosis e adicionar a chave pública do usuário que irá gerenciar a sua configuração. Caso necessário faça o upload da chave pública para um diretório onde o script <code>gitosis-init</code> tenha acesso e execute-o:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code18'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25318"><td class="code" id="p253code18"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#crie o grupo e o usuário</span>
groupadd <span style="color: #c20cb9; font-weight: bold;">git</span>
useradd <span style="color: #660033;">-m</span> <span style="color: #660033;">-d</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>gitosis <span style="color: #660033;">-g</span> <span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #c20cb9; font-weight: bold;">git</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#informe a chave pública através de um arquivo</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-H</span> <span style="color: #660033;">-u</span> <span style="color: #c20cb9; font-weight: bold;">git</span> gitosis-init <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>ida_rsa.pub
&nbsp;
<span style="color: #666666; font-style: italic;">#ou cole o conteúdo na entrada padrão do terminal</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #660033;">-H</span> <span style="color: #660033;">-u</span> <span style="color: #c20cb9; font-weight: bold;">git</span> gitosis-init</pre></td></tr></table></div>

<p>Agora, a partir do local de sua preferência, faça o clone do admin do gitosis e edite sua configuração:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code19'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25319"><td class="code" id="p253code19"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>servidor<span style="color: #000000; font-weight: bold;">/</span>gitosis-admin.git gitosis-admin
<span style="color: #7a0874; font-weight: bold;">cd</span> gitosis-admin
<span style="color: #c20cb9; font-weight: bold;">vim</span> gitosis.conf</pre></td></tr></table></div>

<p>Observe que o formato <code>usuario@host1</code> representa o comentário adicionado ao final da chave pública e que normalmente é o login do usuário seguido do nome da máquina onde a chave foi gerada.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code20'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25320"><td class="code" id="p253code20"><pre class="text" style="font-family:monospace;">[gitosis]
&nbsp;
[group admins]
members = usuario1@host1
&nbsp;
[group gitosis-admin]
writable = gitosis-admin
members = @admins
&nbsp;
[group devel_projeto1]
writable = projeto1
members = @admins</pre></td></tr></table></div>

<p>Mais configurações podem ser feitas no arquivo, verifique o arquivo de exemplo fornecido com Gitosis. Após alterada a configuração faça o <code>commit</code> e sincronize com o servidor:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code21'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25321"><td class="code" id="p253code21"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> commit gitosis.conf <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;permissões para o projeto1&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push</pre></td></tr></table></div>

<h4>O primeiro repositório</h4>
<p>Uma vez que a configuração esteja feita, é hora de criar o primeiro repositório, pra isso crie um diretório para o projeto e adicione-o ao Git.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code22'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25322"><td class="code" id="p253code22"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#inicia um repositório localmente</span>
<span style="color: #c20cb9; font-weight: bold;">mkdir</span> <span style="color: #660033;">-p</span> ~<span style="color: #000000; font-weight: bold;">/</span>projetos<span style="color: #000000; font-weight: bold;">/</span>projeto1
<span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>projetos<span style="color: #000000; font-weight: bold;">/</span>projeto1
<span style="color: #c20cb9; font-weight: bold;">git</span> init
<span style="color: #c20cb9; font-weight: bold;">git</span> remote add origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>servidor:projeto1.git
&nbsp;
<span style="color: #666666; font-style: italic;">#adiciona arquivo ao repositório</span>
<span style="color: #c20cb9; font-weight: bold;">touch</span> arquivo1.txt
<span style="color: #c20cb9; font-weight: bold;">git</span> add arquivo1.txt
<span style="color: #c20cb9; font-weight: bold;">git</span> commit arquivo1.txt
&nbsp;
<span style="color: #666666; font-style: italic;">#inicia o repositório no servidor</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push origin master:refs<span style="color: #000000; font-weight: bold;">/</span>heads<span style="color: #000000; font-weight: bold;">/</span>master</pre></td></tr></table></div>

<h4>Definindo os acessos ao repositório</h4>
<p>Definir os acessos ao repositório envolve apenas 3 passos; o primeiro deles é adicionar a chave pública do usuário, caso isso ainda não tenha sido feito:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code23'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25323"><td class="code" id="p253code23"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src<span style="color: #000000; font-weight: bold;">/</span>gitosis-admin<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>id_dsa.pub keys<span style="color: #000000; font-weight: bold;">/</span>fulano.pub
<span style="color: #c20cb9; font-weight: bold;">git</span> add keys<span style="color: #000000; font-weight: bold;">/</span>fulano.pub</pre></td></tr></table></div>

<p>Em seguida é necessário definir os acessos que o usuário deverá ter no arquivo <code>gitosis.conf</code>:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code24'); return false;">View Code</a> DIFF</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25324"><td class="code" id="p253code24"><pre class="diff" style="font-family:monospace;"><span style="">&#91;</span>group devel_projeto1<span style="">&#93;</span>
writable = projeto1
<span style="color: #991111;">- members = @admins</span>
<span style="color: #00b000;">+ members = @admins fulano</span></pre></td></tr></table></div>

<p>Por último, é preciso fazer o commit dos arquivos e sincronizar com o repositório remoto:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code25'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25325"><td class="code" id="p253code25"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">git</span> commit <span style="color: #660033;">-a</span> <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;adicionadas permissões para o usuário Fulano&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push</pre></td></tr></table></div>

<p>Pronto, agora já é possível para o usuário Fulano realizar o clone do repositório e executar commits:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p253code26'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p25326"><td class="code" id="p253code26"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> ~<span style="color: #000000; font-weight: bold;">/</span>projetos<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>servidor<span style="color: #000000; font-weight: bold;">/</span>projeto1.git projeto1
&nbsp;
<span style="color: #666666; font-style: italic;">#execute as alterações</span>
<span style="color: #7a0874; font-weight: bold;">cd</span> projeto1
<span style="color: #c20cb9; font-weight: bold;">vim</span> arquivo1.txt
<span style="color: #c20cb9; font-weight: bold;">touch</span> arquivo2.txt
&nbsp;
<span style="color: #666666; font-style: italic;">#e faça o commit para o repositório local e sincronizae com o repositório remoto</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> add commit2.txt
<span style="color: #c20cb9; font-weight: bold;">git</span> commit arquivo1.txt arquivo2.txt <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;adicionado arquivo2.txt e alterado arquivo1.txt&quot;</span>
<span style="color: #c20cb9; font-weight: bold;">git</span> push</pre></td></tr></table></div>

<h3>Referências:</h3>
<ul>
<li><a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way" title="scie.nti.st &#187;  Hosting Git repositories, The Easy (and Secure) Way">scie.nti.st &#187;  Hosting Git repositories, The Easy (and Secure) Way</a></li>
<li><a href="http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html">http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/tie4uRzOHsM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/artigos/controle-de-acessos-no-git-simples-e-seguro-com-gitosis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/artigos/controle-de-acessos-no-git-simples-e-seguro-com-gitosis</feedburner:origLink></item>
		<item>
		<title>Monitoramento com Zabbix – Parte 2 – Monitorando Hosts e dispositivos</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/XOucL78fGl0/monitoramento-com-zabbix-parte-2-monitorando-hosts-e-dispositivos</link>
		<comments>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-parte-2-monitorando-hosts-e-dispositivos#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:43:30 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Monitoramento]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Network]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Servidores]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web-apps]]></category>
		<category><![CDATA[Zabbix]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=118</guid>
		<description><![CDATA[Continuando o tutorial de configuração do ZabbixW, o próximo passo é configurar o primeiro host à ser monitorado na rede, o que na maioria dos casos é o próprio servidor do Zabbix.
Agente de Monitoramento
A instalação do agente do Zabbix na maioria das distribuições é bem fácil e envolve poucos passos:


?View Code BASH#gentoo
echo &#34;net-analyzer/zabbix agent&#34; &#62;&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Continuando o tutorial de configuração do <a href="http://pt.wikipedia.org/wiki/Zabbix" target="_blank" title="From Wikipedia the definition of: Zabbix" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Zabbix</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, o próximo passo é configurar o primeiro host à ser monitorado na rede, o que na maioria dos casos é o próprio servidor do Zabbix.</p>
<h3>Agente de Monitoramento</h3>
<p>A instalação do agente do Zabbix na maioria das distribuições é bem fácil e envolve poucos passos:<br />
<span id="more-118"></span></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p118code31'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11831"><td class="code" id="p118code31"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#gentoo</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;net-analyzer/zabbix agent&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>portage<span style="color: #000000; font-weight: bold;">/</span>package.use<span style="color: #000000; font-weight: bold;">/</span>zabbix
emerge zabbix <span style="color: #660033;">-uVAND</span>
rc-update add zabbix-agentd default <span style="color: #666666; font-style: italic;">#executa o serviço na inicialização</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#ubuntu e derivados (o ubuntu já define o zabbix para ser executado na inicialização)</span>
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> zabbix-agent
&nbsp;
<span style="color: #666666; font-style: italic;">#centos e derivados</span>
yum <span style="color: #c20cb9; font-weight: bold;">install</span> zabbix-agent
chkconfig <span style="color: #660033;">--add</span> zabbix-agent <span style="color: #666666; font-style: italic;">#executa o serviço</span>
chkconfig zabbix-agent on     <span style="color: #666666; font-style: italic;">#na inicialização</span></pre></td></tr></table></div>

<p>A configuração é simples, após instalado o agente basta editar o arquivo <code>/etc/zabbix/zabbix_agentd.conf</code>. Caso prefira executar o agente via <a href="http://pt.wikipedia.org/wiki/Xinetd" target="_blank" title="From Wikipedia the definition of: Xinetd" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Xinetd</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> edite o arquivo <code>/etc/zabbix/zabbix_agent.conf</code> e adicione o serviço ao Xinetd.</p>
<p>No arquivo de configuração as linhas que normalmente precisam ser alteradas são:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p118code32'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11832"><td class="code" id="p118code32"><pre class="text" style="font-family:monospace;">#Nome do host
Hostname=Servidor_Zabbix
#IP do servidor do Zabbix (nesse caso local)
Server=127.0.0.1
#Caso o servidor seja executado em outra porta, altere o parâmetro abaixo
ServerPort=10051</pre></td></tr></table></div>

<p>Após configurar o serviço basta iniciá-lo com o seguinte comando:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p118code33'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11833"><td class="code" id="p118code33"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>zabbix-agentd start</pre></td></tr></table></div>

<h3>Monitorando os hosts</h3>
<p>Toda a administração do Zabbix é feita pela interface Web, nela é possível adicionar hosts para serem monitorados, criar e adicionar itens de monitoramento, templates, gráficos, alertas e tudo o mais que o Zabbix disponibiliza.</p>
<p>Se os dados iniciais foram importados corretamente no banco, o agente do servidor do zabbix será configurado automaticamente. Acessando o item <code>Overview</code> no menu <code>Monitoring</code> é possível visualizar se o agente está sendo monitorado ou não, caso não esteja ele pode estar com o monitoramento desabilitado (caso o agente tenha sido iniciado após o servidor zabbix) ou com alguma informação incorreta como por exemplo o ip.<br />
Acessando o item <code>Hosts</code> no menu <code>Configuration</code> é possível visualizar o status do agente (<code>monitored</code> / <code>not monitored</code>) e alterar suas configurações, para isso clique no nome do agente desejado e altere as informações necessárias.</p>
<h4>Adicionando hosts para serem monitorados</h4>
<p>Adicionar um novo host também é simples, basta clicar em <code>Create Host</code>, preencher as informações de acesso ao host/agente, e se desejado associá-lo a um template para facilitar o trabalho de adicionar os itens à serem monitorados. Para associar o host a um template basta clicar no botão <code>Add</code> no box <code>Linked Templates</code>, e no pop-up que abre selecionar um ou mais templates compatíveis com o host à ser monitorado . </p>
<p>Dentre os diversos tipos disponíveis pode-se encontrar templates para hosts <a href="http://pt.wikipedia.org/wiki/Linux" target="_blank" title="From Wikipedia the definition of: Linux" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Linux</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, roteadores <a href="http://pt.wikipedia.org/wiki/Cisco" target="_blank" title="From Wikipedia the definition of: Cisco" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Cisco</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, switches <a href="http://pt.wikipedia.org/wiki/3Com" target="_blank" title="From Wikipedia the definition of: 3Com" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >3Com</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, servidores <a href="http://pt.wikipedia.org/wiki/Dell_PowerEdge" target="_blank" title="From Wikipedia the definition of: Dell PowerEdge" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Dell PowerEdge</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/Mac_Os_X" target="_blank" title="From Wikipedia the definition of: Mac Os X" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Mac Os X</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, Servidores e Desktops <a href="http://pt.wikipedia.org/wiki/Windows" target="_blank" title="From Wikipedia the definition of: Windows" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Windows</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.<br />
É possível criar novos templates, associando-os ou não a templates existentes, itens de monitoramento disponíveis na base do zabbix, e novos itens de monitoramento baseados em informações coletadas pelo agente do zabbix, ou via serviços como <a href="http://pt.wikipedia.org/wiki/SNMP" target="_blank" title="From Wikipedia the definition of: SNMP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SNMP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://openipmi.sourceforge.net/" title="Open IPMI">Open IPMI</a>, comandos via <a href="http://pt.wikipedia.org/wiki/SSH" target="_blank" title="From Wikipedia the definition of: SSH" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SSH</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/ODBC" target="_blank" title="From Wikipedia the definition of: ODBC" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >ODBC</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> e diversas outras formas.</p>
<h4>Criando itens de monitoramento</h4>
<p>Assim como quase tudo no Zabbix, criar novos itens de monitoramento também é simples. Na verdade, basta associar um comando ou sequência de comandos a um nome de variável que posteriormente será requisitada pelo servidor do Zabbix.<br />
O arquivo de configuração do agente do Zabbix costuma disponibilizar de exemplo alguns itens para coletar estatísticas de servidor de banco de dados <code>MySQL</code>. Basta descomentar as linhas para que os itens passem a funcionar.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p118code34'); return false;">View Code</a> TEXT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p11834"><td class="code" id="p118code34"><pre class="text" style="font-family:monospace;">UserParameter=mysql.ping,mysqladmin -uroot ping|grep alive|wc -l
UserParameter=mysql.uptime,mysqladmin -uroot status|cut -f2 -d&quot;:&quot;|cut -f1 -d&quot;T&quot;
UserParameter=mysql.threads,mysqladmin -uroot status|cut -f3 -d&quot;:&quot;|cut -f1 -d&quot;Q&quot;
UserParameter=mysql.questions,mysqladmin -uroot status|cut -f4 -d&quot;:&quot;|cut -f1 -d&quot;S&quot;
UserParameter=mysql.slowqueries,mysqladmin -uroot status|cut -f5 -d&quot;:&quot;|cut -f1 -d&quot;O&quot;
UserParameter=mysql.qps,mysqladmin -uroot status|cut -f9 -d&quot;:&quot;
UserParameter=mysql.version,mysql -V</pre></td></tr></table></div>

<p>Após salvar o arquivo de configuração e reiniciar o agente (<code>/etc/init.d/zabbix_agentd restart</code>) o item já deve estar disponível na interface administrativa. Acesse novamente <code>Hosts</code> no menu <code>Configuration</code> mas dessa vez clique em <code>Itens</code>. Se desejado antes de acessar <code>Itens</code>, altere a visualização para <code>Templates</code> no select box onde está escrito <code>Hosts</code>.</p>
<p>Na tela que se abre, uma lista de itens existentes será exibida sendo possível editar ou deletá-los e claro, adicionar novos itens.<br />
Após clicar em <code>Create Item</code> alguns parâmetros obrigatórios devem ser preenchidas como <code>Description</code> que é o nome como o item é exibido em todos os locais que o referenciam, <code>Type</code> que é o tipo do item (Agente Zabbix, SNMP, etc),  e <code>Key</code> que é o nome interno do item ou o nome da variável criada no arquivo de configuração. Para este último é possível escolher entre itens padrão do Zabbix ao clicar no botão <code>Select</code> ou informar o nome de um dos itens adicionados do MySQL como por exemplo <code>mysql.slowqueries</code></p>
<p>Vale observar que o interessante é criar novos itens nos templates ao invés de nos hosts diretamente, para que estes sejam automaticamente adicionados ao se associar o template a um novo host à ser monitorado. Dessa forma é possível criar uma estrutura customizada que pode ser definida de acordo com os padrões de servidores e serviços disponíveis na rede, facilitando assim o processo de adicionar novos hosts ao monitoramento.</p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/XOucL78fGl0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-parte-2-monitorando-hosts-e-dispositivos/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-parte-2-monitorando-hosts-e-dispositivos</feedburner:origLink></item>
		<item>
		<title>Erro ao compilar o kernel 2.6.31: implicit declaration of function ‘_cpu_down’</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/AVtl3DCAG1w/erro-ao-compilar-o-kernel-2-6-31-implicit-declaration-of-function-_cpu_down</link>
		<comments>http://www.claudineimatos.com/blog/dicas/erro-ao-compilar-o-kernel-2-6-31-implicit-declaration-of-function-_cpu_down#comments</comments>
		<pubDate>Sat, 16 Jan 2010 14:58:15 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[XEN]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=140</guid>
		<description><![CDATA[Ao tentar compilar a versão 2.6.31 do kernel linux (com suporte ao Xen)  obtive a seguinte mensagem de erro:
kernel/cpu.c: In function 'disable_nonboot_cpus':
kernel/cpu.c:394: error: implicit declaration of function '_cpu_down'
make[1]: *** [kernel/cpu.o] Error 1
make: *** [kernel] Error 2
Uma rápida pesquisa no google me revelou que o problema se encontrava na falta do suporte a hot-pluggable cpu&#8217;s. [...]]]></description>
			<content:encoded><![CDATA[<p>Ao tentar compilar a versão 2.6.31 do kernel linux (com suporte ao Xen)  obtive a seguinte mensagem de erro:</p>
<p><code>kernel/cpu.c: In function 'disable_nonboot_cpus':<br />
kernel/cpu.c:394: error: implicit declaration of function '_cpu_down'<br />
make[1]: *** [kernel/cpu.o] Error 1<br />
make: *** [kernel] Error 2</code></p>
<p>Uma rápida pesquisa no google me revelou que o problema se encontrava na falta do suporte a <em>hot-pluggable cpu&#8217;s</em>. Este recurso permite que CPU&#8217;s possam ser ligadas/desligadas durante a execução da máquina, possibilitando a economia de energia e a própria inclusão de novas CPU&#8217;s em sistemas multi-processados.<br />
Esse recurso já vem habilitado por padrão caso você esteja configurando o kernel pela primeira vez, mas no meu caso, copiei o arquivo <em>.config</em> de outro kernel que não tinha esse suporte habilitado.</p>
<p>A solução é simples e envolve executar novamente o configurador do kernel para habilitar a opção pertinente ou editar diretamente o arquivo <em>.config</em>, sendo mais aconselhável executar o o configurador (<strong>make menuconfig</strong>).</p>
<p>A opção que precisa ser habilitada é <em>CONFIG_HOTPLUG_CPU</em> e pode ser encontrada em:<br />
<code><br />
Processor type and features ---><br />
 [*] Support for hot-pluggable CPUs<br />
</code></p>
<p>Pronto, agora é só executar o <strong>make</strong> novamente e aguardar o fim da compilação.</p>
<h3>Referências</h3>
<ul>
<li><a href="http://forums.gentoo.org/viewtopic-t-709908-start-50.html" title="Gentoo Forums :: View topic - Xen 2.6.25 dom0 kernel ebuild">http://forums.gentoo.org/viewtopic-t-709908-start-50.html</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/AVtl3DCAG1w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/dicas/erro-ao-compilar-o-kernel-2-6-31-implicit-declaration-of-function-_cpu_down/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/dicas/erro-ao-compilar-o-kernel-2-6-31-implicit-declaration-of-function-_cpu_down</feedburner:origLink></item>
		<item>
		<title>Monitoramento com Zabbix – Instalação e Configuração</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/6MOZ1hGcr_Q/monitoramento-com-zabbix-instalacao-e-configuracao</link>
		<comments>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-instalacao-e-configuracao#comments</comments>
		<pubDate>Tue, 05 Jan 2010 00:39:21 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Web-apps]]></category>
		<category><![CDATA[Zabbix]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=89</guid>
		<description><![CDATA[O ZabbixW é um poderoso sistema de monitoramento de hosts e dispositivos, que pode monitorar desde a própria máquina onde está instalado, a milhares de hosts e dispostivos localizados na rede local ou na mais remota localização geográfica.
Sua estrutura é simples e descentralizada e consiste de um aplicativo denominado servidor que coleta e armazena as [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://pt.wikipedia.org/wiki/Zabbix" target="_blank" title="From Wikipedia the definition of: Zabbix" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Zabbix</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> é um poderoso sistema de monitoramento de hosts e dispositivos, que pode monitorar desde a própria máquina onde está instalado, a milhares de hosts e dispostivos localizados na rede local ou na mais remota localização geográfica.</p>
<p>Sua estrutura é simples e descentralizada e consiste de um aplicativo denominado servidor que coleta e armazena as informações dos hosts em um banco de dados que pode ser <a href="http://pt.wikipedia.org/wiki/SQLite" target="_blank" title="From Wikipedia the definition of: SQLite" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SQLite</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/MySQL" target="_blank" title="From Wikipedia the definition of: MySQL" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >MySQL</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/PostgreSQL" target="_blank" title="From Wikipedia the definition of: PostgreSQL" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >PostgreSQL</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> ou <a href="http://pt.wikipedia.org/wiki/Oracle" target="_blank" title="From Wikipedia the definition of: Oracle" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Oracle</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>; uma interface web para administração / monitoramento feita em PHP, e os agentes que podem ser desde hosts monitorados pelo aplicativo agente do Zabbix quanto os mais variados serviços e dispositivos, acessíveis das mais diversas formas como <a href="http://pt.wikipedia.org/wiki/SNMP" target="_blank" title="From Wikipedia the definition of: SNMP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SNMP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/TCP" target="_blank" title="From Wikipedia the definition of: TCP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >TCP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/ICMP" target="_blank" title="From Wikipedia the definition of: ICMP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >ICMP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> E <a href="http://pt.wikipedia.org/wiki/IPMI" target="_blank" title="From Wikipedia the definition of: IPMI" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >IPMI</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.</p>
<p>Nessa série de artigos comentarei a instalação, configuração e utilização do Zabbix nas distribuições <a href="http://pt.wikipedia.org/wiki/Gentoo" target="_blank" title="From Wikipedia the definition of: Gentoo" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Gentoo</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> e <a href="http://pt.wikipedia.org/wiki/Ubuntu" target="_blank" title="From Wikipedia the definition of: Ubuntu" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Ubuntu</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.<br />
<span id="more-89"></span></p>
<h3>Instalação</h3>
<p>Geralmente tanto o servidor do Zabbix quanto sua interface administrativa são instaladas na mesma máquina, mas nada impede que a instalação seja distribuída, tendo o servidor em uma máquina, o banco de dados em outra, e a interface web em uma terceira.</p>
<p>As principais distribuições oferecem formas práticas de instalar cada parte do Zabbix.<br />
Os comandos exibidos abaixo devem ser executados como <strong>root</strong> ou através do comando <strong>sudo</strong></p>
<h4>Gentoo</h4>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code42'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8942"><td class="code" id="p89code42"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#as use flag representam respectivamente: o agente, o servidor com suporte ao banco mysql e a interface web</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;net-analyzer/zabbix agent server frontend mysql&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>portage<span style="color: #000000; font-weight: bold;">/</span>package.use<span style="color: #000000; font-weight: bold;">/</span>zabbix
emerge zabbix <span style="color: #660033;">-uvaND</span></pre></td></tr></table></div>

<h4>Ubuntu</h4>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code43'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8943"><td class="code" id="p89code43"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#os pacotes representam respectivamente: o agente, o servidor com suporte ao banco mysql e a interface web</span>
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> zabbix-server-mysql zabbix-frontend-php zabbix-agent</pre></td></tr></table></div>

<h3>Configuração do Servidor</h3>
<p>Tanto no Gentoo quanto no Ubuntu a configuração padrão é suficiente e funcional, não havendo necessidade de alterar os parâmetros iniciais. Porém, para obter um melhor desempenho em uma configuração com muitos hosts ou hardware limitado, pode ajudar fazer algum ajuste fino nas configurações do arquivo <strong>/etc/zabbix/zabbix_server.conf</strong>.</p>
<p>A instalação do Zabbix no Ubuntu é bem simples e ocorre através de alguns passos executados automaticamente após a instalação de cada um de seus pacotes. O próprio processo de instalação se desejado, se encarrega de criar o banco de dados, configurar o servidor e a interface web.</p>
<p>No caso do Gentoo é necessário criar/configurar manualmente o banco de dados e configurar os dados de acesso ao banco nas variáveis <strong>DBHost</strong>, <strong>DBName</strong>, <strong>DBUser</strong> e <strong>DBPassword</strong>. </p>
<p>Outros parâmetros que podem ser checados em ambas as distribuições são <strong>ListenIP</strong> e <strong>ListPort</strong> que se comentados, por padrão farão respectivamente com que o servidor do Zabbix escute em todos os endereços de rede, na porta <em>10051</em>.</p>
<p>Se o banco não foi criado previamente em outro host ou neste mesmo, siga os próximos passos para criá-lo e após terminado, atualize as informações no arquivo de configuração do servidor do Zabbix (/etc/zabbix/zabbix_server.conf) e execute os passos abaixo para iniciar o servidor do Zabbix e colocá-lo na inicialização do host.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code44'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8944"><td class="code" id="p89code44"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>zabbix-server start
rc-update add zabbix-server default</pre></td></tr></table></div>

<h3>Banco de Dados</h3>
<p>A instalação do Zabbix servidor inclui scripts para criação da estrutura do banco de dados e importação de dados iniciais.<br />
Acesse o shell do MySQL ou outra interface para executar queries e execute os comandos abaixo para iniciar o banco e definir os dados de acesso:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code45'); return false;">View Code</a> SQL</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8945"><td class="code" id="p89code45"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> zabbix;
<span style="color: #993333; font-weight: bold;">GRANT</span> <span style="color: #993333; font-weight: bold;">ALL</span> PRIVILEGES <span style="color: #993333; font-weight: bold;">ON</span> zabbix<span style="color: #66cc66;">.*</span> <span style="color: #993333; font-weight: bold;">TO</span> zabbix@localhost <span style="color: #993333; font-weight: bold;">IDENTIFIED</span> <span style="color: #993333; font-weight: bold;">BY</span> <span style="color: #ff0000;">'senha'</span>;
<span style="color: #993333; font-weight: bold;">USE</span> zabbix;
&nbsp;
<span style="color: #808080; font-style: italic;">-- Se a sua instalação não colocou os scripts em /usr/share/zabbix/database/create/ localize-os e altere o caminho nos comandos abaixo.</span>
SOURCE <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>zabbix<span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">database</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">create</span><span style="color: #66cc66;">/</span>schema<span style="color: #66cc66;">/</span>mysql<span style="color: #66cc66;">.</span>sql;
SOURCE <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>zabbix<span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">database</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">create</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">data</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">data</span><span style="color: #66cc66;">.</span>sql;
SOURCE <span style="color: #66cc66;">/</span>usr<span style="color: #66cc66;">/</span>share<span style="color: #66cc66;">/</span>zabbix<span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">database</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">create</span><span style="color: #66cc66;">/</span><span style="color: #993333; font-weight: bold;">data</span><span style="color: #66cc66;">/</span>images_mysql<span style="color: #66cc66;">.</span>sql;
&nbsp;
QUIT</pre></td></tr></table></div>

<h3>Interface WEB</h3>
<h4>Ubuntu</h4>
<p>Após executados os passos acima já é possível fazer login na interface web através do endereço http://localhost/zabbix/ com o usuário <strong>admin</strong> e senha <strong>zabbix</strong>.<br />
Caso a interface reclame de não conseguir conectar na base de dados (se a instalação gerou automaticamente a senha do servidor e da interface a web, pode ocorrer de as senhas não serem iguais) será necessário alterá-la manualmente:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code46'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8946"><td class="code" id="p89code46"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#lê a senha configurada no servidor do Zabbix</span>
<span style="color: #c20cb9; font-weight: bold;">grep</span> DBPassword <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>zabbix<span style="color: #000000; font-weight: bold;">/</span>zabbix_server.conf
<span style="color: #666666; font-style: italic;">#tente conectar no banco substituindo zabbix_user e zabbix_db pelos respectivos nomes (zabbix por padrão)</span>
mysql zabbix_db <span style="color: #660033;">-h</span> localhost <span style="color: #660033;">-u</span> zabbix_user <span style="color: #660033;">-p</span>
<span style="color: #666666; font-style: italic;">#altere o arquivo de configuração da interface web (/etc/dbconfig-common/zabbix-frontend-php.conf) e execute:</span>
dpkg-reconfigure zabbix-frontend-php</pre></td></tr></table></div>

<h4>Gentoo</h4>
<p>Após criado o banco, é preciso instalar uma cópia da interface web no diretório /var/www. Nesse caso uma cópia é instalada no diretório zabbix no vhost padrão:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code47'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8947"><td class="code" id="p89code47"><pre class="bash" style="font-family:monospace;">webapp-config <span style="color: #660033;">-I</span> <span style="color: #660033;">-h</span> localhost <span style="color: #660033;">-d</span> zabbix zabbix 1.4.6</pre></td></tr></table></div>

<p>Acesse a interface no endereço http://localhost/zabbix (o usuário também é <strong>admin</strong> mas a senha dessa vez, em branco), e siga os passos do instalador, suprindo as requisições que forem feitas.</p>
<h3>Configuração do Agente</h3>
<p>Os hosts monitorados pelo Zabbix devem fornecer uma forma de terem suas estatísticas coletadas, seja via SNMP, ICMP, IPMI ou via Zabbix Agent.<br />
O Zabbix Agent é um aplicativo disponível para plataformas variantes de Unix/BSD&#8217;s (o que inclui Linux e OS X) e também para plataforma Windows. Cada host a ser monitorado via agente deve executar uma cópia do aplicativo.</p>
<p>A configuração do agente é simples, necessitando basicamente informar o IP do servidor do Zabbix na variável <strong>Server</strong> do arquivo <strong>/etc/zabbix/zabbix_agentd.conf</strong> e o nome do host na variável <strong>Hostname</strong>.<br />
Da mesma forma que  no arquivo de configuração do servidor, deixar comentada a variável <strong>ListenIP</strong> faz com que o agente escute em todos os endereços.</p>
<p>No Gentoo para iniciar o agente e colocá-lo na inicialização do sistema execute:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p89code48'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p8948"><td class="code" id="p89code48"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>zabbix-agentd start
rc-update add zabbix-agentd default</pre></td></tr></table></div>

<p>Pronto, agora é só acessar a interface web e configurar o host para iniciar o seu monitoramento.</p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/6MOZ1hGcr_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-instalacao-e-configuracao/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/artigos/monitoramento-com-zabbix-instalacao-e-configuracao</feedburner:origLink></item>
		<item>
		<title>Usando kernel vanilla como domU no Xen</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/QFaU60mNpdk/usando-kernel-vanilla-como-domu-no-xen</link>
		<comments>http://www.claudineimatos.com/blog/dicas/usando-kernel-vanilla-como-domu-no-xen#comments</comments>
		<pubDate>Wed, 16 Dec 2009 11:57:03 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Virtualizacao]]></category>
		<category><![CDATA[XEN]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=79</guid>
		<description><![CDATA[O Xen é um dos paravirtualizadores mais famosos do mercado e seu uso está cada vez mais difundido a cada dia que se passa.
Configurar uma instalação básica do Xen nas principais distribuções não é muito difícil e no Gentoo não é diferente. Em geral o processo envolve instalar um kernel customizado no dom0 (a &#8220;máquina [...]]]></description>
			<content:encoded><![CDATA[<p>O Xen é um dos paravirtualizadores mais famosos do mercado e seu uso está cada vez mais difundido a cada dia que se passa.</p>
<p>Configurar uma instalação básica do Xen nas principais distribuções não é muito difícil e no Gentoo não é diferente. Em geral o processo envolve instalar um kernel customizado no dom0 (a &#8220;máquina real&#8221;), e instalar os utilitários do Xen também no dom0. Se a CPU em questão tiver suporte a virtualização (flag  svm em arquitetura AMD, ou vmx em arquitetura Intel) é possível utilizar para os domU&#8217;s (as &#8220;máquinas virtuais&#8221;) qualquer versão de Kernel ou de Sistema Operacinal, não necessitando que o mesmo tenha sido previamente preparado (patch) para utilização sob o Xen.</p>
<p>Caso a CPU não tenha suporte a virtualização, é necessário utilizar um Sistema Operacinal ou Kernel devidamente adaptado, o que não costuma ser uma tarefa muito complicada visto que as principais distribuições já orefecem pacotes prontos. No Gentoo apenas é necessário compilar uma versão do mesmo kernel utilizado no dom0 porém com os devidos recursos que dão suporte a inicialização e execução do domU.</p>
<p>Até ai, tudo corre muito bem, sem muitos problemas, no entanto, quando é necessário utilizar uma versão específica de kernel para o domU é que o problema começa, principalmente se for necessário utillizar uma das versões mais recentes do kernel, visto que os patches de suporte ao Xen não costumam ser disponibilizados com a mesma frequência que novas versões do kernel.</p>
<p>Felizmente desde a versão 2.6.23 o kernel vanilla (padrão) do Linux conta com suporte nativo a virtualização, possibilitando que o mesmo seja iniciado como um domU sob o Xen. Para tanto é necessário habilitar no kernel as seguintes opções:<br />
<span id="more-79"></span><code>Processor type and features  ---&gt;<br />
[*] Paravirtualized guest support  —&gt;<br />
[*]   Xen guest support<br />
[*] PAE (Physical Address Extension) Support<br />
</code><code>Device Drivers  ---&gt;<br />
[*] Block devices  —&gt;<br />
&lt;*&gt;   Xen virtual block device support<br />
[*] Network device support  —&gt;<br />
&lt;*&gt;   Xen network device frontend driver<br />
Character devices  —&gt;<br />
[*] Xen Hypervisor Console support</code></p>
<p>Após compilado o kernel, basta copiá-lo para a pasta onde ficam armazenados os kernels dos domU&#8217;s e alterar o arquivo de configuração da mesma. <code>Pronto, o domU já deve estar 100% funcional e rodando com o kernel mais recente. </code></p>
<p>Caso o kernel inicialize corretamente mas o prompt de login não seja exibido, basta fazer seguir os seguintes passos para corrigir o problema:</p>
<p>Edite o arquivo /etc/inittab e troque a seguinte linha:</p>
<p><code>c1:12345:respawn:/sbin/agetty 38400 tty1 linux</code></p>
<p>Por:</p>
<p><code>c1:12345:respawn:/sbin/agetty 38400 hvc0 linux</code></p>
<p>Por último, adicione a seguinte linha no arquivo /etc/securetty</p>
<p><code>hvc0</code></p>
<p>Reinicie o domU e o prompt de login deve aparecer normalmente.</p>
<p>Referências:<br />
<a title="Permanent link to Using vanilla kernel to run as ‘paravirt_ops’ Xen domU" rel="bookmark" href="http://ganto.no-ip.org/?p=77">Using vanilla kernel to run as ‘paravirt_ops’ Xen domU</a></p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/QFaU60mNpdk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/dicas/usando-kernel-vanilla-como-domu-no-xen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/dicas/usando-kernel-vanilla-como-domu-no-xen</feedburner:origLink></item>
		<item>
		<title>IIS + Plesk + PHP e o mistério por trás do erro “502 – Bad Gateway”</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/Vf9aNwo76TQ/iis-plesk-php-e-o-misterio-por-tras-do-erro-502-bad-gateway</link>
		<comments>http://www.claudineimatos.com/blog/dicas/iis-plesk-php-e-o-misterio-por-tras-do-erro-502-bad-gateway#comments</comments>
		<pubDate>Sun, 13 Dec 2009 23:18:27 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[WebServers]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=77</guid>
		<description><![CDATA[Um certo cliente me pediu que desenvolvesse um pequeno script em PHP que fosse capaz de ler um documento do MS-Excel e inserir seus registros numa base mysql.
Usei uma classe bem conhecida para ler arquivos  XLS e testei em meu servidor, um Gentoo Linux rodando Apache com PHP 5.
Ao executar o primeiro teste no [...]]]></description>
			<content:encoded><![CDATA[<p>Um certo cliente me pediu que desenvolvesse um pequeno script em PHP que fosse capaz de ler um documento do MS-Excel e inserir seus registros numa base mysql.<br />
Usei uma classe bem conhecida para ler arquivos  XLS e testei em meu servidor, um Gentoo Linux rodando Apache com PHP 5.<br />
Ao executar o primeiro teste no servidor do cliente, um Windows 2003 Server, o script morreu ao atingir o tempo limite de exeução do PHP.<br />
Modifiquei o script inserindo logo em seu início uma chamada para remover o limite de timeout: set_time_limit(0).<br />
Tentei executar novamente o script e obtive meu primeiro contato com o erro:</p>
<p>&#8220;502 Bad Gateway<br />
Web server received an invalid response while acting as a gateway or proxy server.&#8221;<br />
Procurando no google encontrei um fórum que mencionava justamente um problema com o trio IIS + Plesk + PHP  e a sugestão era de habilitar a extensão ISAPI na configuração do servidor WEB.<br />
Por sorte o cliente tinha os dados de adminstração do servidor então segui os seguintes passos:<br />
1 &#8211; Logar na interface Web do Plesk<br />
2 &#8211;  Entrar na configuração de domínios e escolher o domínio desejado<br />
3 &#8211; Entrar em Setup<br />
4 &#8211; Habilitar a opção &#8220;<label for="fid-phpisapi">run as ISAPI extension</label>&#8221;<br />
5 &#8211; Salvar a configuração<br />
Feito isso testei o script e tudo funcionou normalmente sem mais erros misteriosos do IIS.</p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/Vf9aNwo76TQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/dicas/iis-plesk-php-e-o-misterio-por-tras-do-erro-502-bad-gateway/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/dicas/iis-plesk-php-e-o-misterio-por-tras-do-erro-502-bad-gateway</feedburner:origLink></item>
		<item>
		<title>E71 – Softwares Indispensáveis</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/q7kIJabdC5s/e71-softwares-indispensaveis</link>
		<comments>http://www.claudineimatos.com/blog/dicas/e71-softwares-indispensaveis#comments</comments>
		<pubDate>Sat, 10 Oct 2009 22:15:24 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Softwares]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/?p=194</guid>
		<description><![CDATA[O Nokia E71W (http://www.gsmarena.com/nokia_e71-2425.php) é mais que um celular , é um pequeno computador dotado de processador ARM11W de 369 MHz, com 128MB de memória RAM e teclado QWERTYW.
Com 110MB de memória interna e até 8GB em cartão microSDW (Transflash) numa unidade estrategicamente posicionada na sua lateral esquerda, o que possibilita a troca de cartão [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://pt.wikipedia.org/wiki/Nokia_E71" target="_blank" title="From Wikipedia the definition of: Nokia E71" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Nokia E71</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> (<a href="http://www.gsmarena.com/nokia_e71-2425.php">http://www.gsmarena.com/nokia_e71-2425.php</a>) é mais que um celular , é um pequeno computador dotado de processador <a href="http://pt.wikipedia.org/wiki/ARM11" target="_blank" title="From Wikipedia the definition of: ARM11" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >ARM11</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> de 369 MHz, com 128MB de memória RAM e teclado <a href="http://pt.wikipedia.org/wiki/QWERTY" target="_blank" title="From Wikipedia the definition of: QWERTY" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >QWERTY</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.<br />
Com 110MB de memória interna e até 8GB em cartão <a href="http://pt.wikipedia.org/wiki/microSD" target="_blank" title="From Wikipedia the definition of: microSD" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >microSD</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> (Transflash) numa unidade estrategicamente posicionada na sua lateral esquerda, o que possibilita a troca de cartão sem a necessidade de desligar o aparelho, armazenar documentos, música, vídeos e fotos não será um problema.</p>
<p>Se não bastasse todos esses recursos que deixam o meu primeiro PC (um Cyrix Cx5&#215;86 de 120MHz com 8MB de RAM e HD de 1.2GB) no chinelo, o E71 conta ainda com recursos como Câmera de 3.2 Mega Pixels, receptor de Rádio AM/FM, <a href="http://pt.wikipedia.org/wiki/GPS" target="_blank" title="From Wikipedia the definition of: GPS" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >GPS</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/Push_To_Talk" target="_blank" title="From Wikipedia the definition of: Push To Talk" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Push To Talk</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> (para as operadoras habilitadas), e se conecta com outros dispositivos e redes utilizando-se das principais tecnologias dentre elas <a href="http://pt.wikipedia.org/wiki/WIFI" target="_blank" title="From Wikipedia the definition of: WIFI" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >WIFI</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/Bluetooth" target="_blank" title="From Wikipedia the definition of: Bluetooth" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Bluetooth</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/GPRS" target="_blank" title="From Wikipedia the definition of: GPRS" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >GPRS</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> / <a href="http://pt.wikipedia.org/wiki/3G" target="_blank" title="From Wikipedia the definition of: 3G" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >3G</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, <a href="http://pt.wikipedia.org/wiki/IrDA" target="_blank" title="From Wikipedia the definition of: IrDA" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >IrDA</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> e <a href="http://pt.wikipedia.org/wiki/USB" target="_blank" title="From Wikipedia the definition of: USB" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >USB</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.</p>
<p>Em matéria de software o E71 não deixa a desejar. Voltado principalmente para os públicos corporativo e técnico, o aparelho sai de fábrica com uma grande variedade de aplicativos, dentre eles, Suíte Office, Cliente de <a href="http://pt.wikipedia.org/wiki/VPN" target="_blank" title="From Wikipedia the definition of: VPN" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >VPN</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> (<a href="http://pt.wikipedia.org/wiki/IPSec" target="_blank" title="From Wikipedia the definition of: IPSec" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >IPSec</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>), Cliente <a href="http://pt.wikipedia.org/wiki/VOIP" target="_blank" title="From Wikipedia the definition of: VOIP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >VOIP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, Navegador Web, Gerenciador de Arquivos, Sincronização via <a href="http://pt.wikipedia.org/wiki/SyncML" target="_blank" title="From Wikipedia the definition of: SyncML" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >SyncML</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>, entre outros. Além dos softwares pré-instalados, como todo bom smartphone é possivel encontrar internet à fora uma vasta gama de softwares, disponíveis para as plataformas <a href="http://pt.wikipedia.org/wiki/S60" target="_blank" title="From Wikipedia the definition of: S60" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >S60</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> ou <a href="http://pt.wikipedia.org/wiki/J2ME" target="_blank" title="From Wikipedia the definition of: J2ME" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >J2ME</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>.</p>
<p>Listo aqui alguns softwares que considero indispensáveis, separados por categoria.<br />
<span id="more-194"></span></p>
<h2>Multimídia</h2>
<ul>
<li>
<h3>Internet Radio</h3>
<p>Disponível para download na central de downloads da Nokia (aplicativo Download! no Menu principal), como o nome já diz o Internet Radio é um aplicativo para execução de streamings de áudio. É possível adicionar uma rádio manualmente ou selecionar entre uma vasta variedade agrupadas por Gênero Musical, Idioma, País/Região e Estações Mais Populares.</li>
</ul>
<h2>Conectividade</h2>
<ul>
<li>
<h3>Fring / Nimbuzz</h3>
<p>O Fring quanto e o Nimbuzz tem funcionalidades similares. Ambos são clientes dos principais protocolos de instant messengers, como Google Talk (Jabber), ICQ, MSN, entre outros incluindo também Skype. Particularmente acho o Nimbuzz mais completo em termos de opções de protocolos de instant messenger, e de redes VOIP. Além disso, a interface do Nimbuzz é mais prática e simpática que a do Fring.<br />
Ambos são gratuitos e podem ser encontrados para download em seus respectivos sites: <a href="http://www.nimbuzz.com/en/mobile/download">http://www.nimbuzz.com/en/mobile/download</a> e <a href="http://www.fring.com/download/">http://www.fring.com/download/</a></li>
<li>
<h3>Email (Nokia Messaging)</h3>
<p>Apesar de o E71 já vir com um cliente de e-mail instalado (Menu / Comunicação / Mensagens), a Nokia disponibiliza gratuitamente (por tempo indeterminado) outro cliente de e-mail que além de dispor de uma interface bem mais amigável, suporte a e-mail em HTML, e mais, suporte a funcionalidade de IDLE dos servidores <a href="http://pt.wikipedia.org/wiki/IMAP" target="_blank" title="From Wikipedia the definition of: IMAP" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >IMAP</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup> (em outras palavras, <a href="http://pt.wikipedia.org/wiki/Push_E-Mail" target="_blank" title="From Wikipedia the definition of: Push E-Mail" style="padding-bottom: 2px; border-bottom: 1px dotted #DD0000" >Push E-Mail</a><sup style="font-family: Georgia, Times New Roman, Serif; font-weight: bold; color: #AAAAAA" ><em>W</em></sup>).<br />
Para o instalador funcionar corretamente no E71 solicite o envio de SMS para o aparelho a apartir da sua conta no Nokia Messaging (<a href="http://email.nokia.com/">http://email.nokia.com/</a>).</li>
<li>
<h3>Mail For Exchange</h3>
<p>Se na sua rede você tem algum servidor Microsoft Exchange é possível sincronizar seus e-mails, tarefas, agenda de contatos e de compromissos, e ainda definir uma mensagem de auto-resposta  para quando se ausentar do escritório (Out of Office).<br />
Ao contrário de algumas plataformas como por exemplo no BlackBerry que só dispõem de versões comerciais, o cliente de ActiveSync do Microsoft Exchange é disponibilizado gratuitamente pela Nokia e pode ser obtido em <a href="http://www.businesssoftware.nokia.com/mail_for_exchange_downloads.php">http://www.businesssoftware.nokia.com/mail_for_exchange_downloads.php</a></li>
<li>
<h3>Gmail</h3>
<p>O software oficial do Google traz uma interface similar a dos browsers, suporta múltiplas contas (inclusive do google for your domain) e possibilita entre outros recursos, exibir outras pastas (labels), arquivar mensagens e marcar como spam.<br />
O aplicativo Gmail pode ser obtido em <a href="http://m.google.com">http://m.google.com</a> (este endereço deve ser acessado no browser nativo do aparelho).</li>
<li>
<h3>SmartConnect</h3>
<p>O SmartConnect é uma espécie de Concentrador / Gerenciador de Conexões e ajuda a evitar anecessidade de ficar alterando a configuração de conexão padrão nos aplicativos a cada vez que for necessário alternar entre as conexões disponíveis (WiFi, 3G, etc). O SmartConnect é gratuito e pode ser obtido nos repositórios de software da Nokia acessível via Menu / Instalações / Ovi (O Ovi deve ser previamente instalado via Menu / Download!).</li>
<li>
<h3>Yahoo! Go</h3>
<p>O aplicativo do Yahoo! permite fácil acesso ao e-mail, flickr, notícias, leitor de rss, informações sobre o tempo e outros. Disponível gratuitamente em <a href="http://mobile.yahoo.com/">http://mobile.yahoo.com/</a></li>
<li>
<h3>Opera Mini</h3>
<p>Apesar de o Browser nativo funcionar muito bem o Opera Mini ainda se destaca principalmente devido a sua economia na transferência de dados. Agora com sua versão 5 beta, o Opera Mini vai longe e torna a experiência do usuário ainda mais agradável com sua nova interface gráfica que além de agradável aos olhos, é prática e rápida.<br />
O Opera Mini pode ser obtido em <a href="http://m.opera.com/next">http://m.opera.com/next</a> (Acessível via navegador padrão do aparelho).</li>
<li>
<h3>Putty</h3>
<p>O Putty é um cliente de SSH (SSH 1 e SSH 2) com suporte a uso de chave privada, e múltiplos perfis (configurações de servidores/contas). Aplicativo indispensável para quem administra servidores *NIX.<br />
Disponível para download em <a href="http://s2putty.sourceforge.net/">http://s2putty.sourceforge.net/</a></li>
</ul>
<h2>Utilitários</h2>
<ul>
<li>
<h3>Swim</h3>
<p>O Swim é uma espécie de Agendador de Sincronização e trabalha em conjunto com o Sync (Menu / Ferramentas / Sync), executando em períodos pré-agendados a sincronização de Perfis configurados no Sync. O Sync possibilita sincronizar via SyncML agenda de contatos e de compromissos, notas, e outros itens de acordo com o que o servidor de destino suporta.<br />
A Nokia disponibiliza o serviço <a href="http://ovi.com">Ovi</a> onde é possível criar uma conta para manter seus dados sincronizados e acessíveis via WEB.<br />
O Swim é gratuito e pode ser obtido em <a href="http://code.google.com/p/bergamot/wiki/Swim">http://code.google.com/p/bergamot/wiki/Swim</a></li>
<li>
<h3>JbakTaskMan</h3>
<p>O JbakTaskMan é um Gerenciador de Tarefas que pode ser utilizado para executar, fechar e alternar entre aplicativos, obter informações sobre o sistema, o número de IMEI, reiniciar o aparelho, entre outros recursos.<br />
O download gratuito pode ser feito em <a href="http://jbak.ru/en">http://jbak.ru/en</a></li>
<li>
<h3>SafeNote</h3>
<p>A quantida de informações que temos que gerenciar aumenta a cada dia. Dados bancários, notas secretas, números de cartões de créditos, informações de contatos e os mais diversos tipos de informações sigilosas, e isso sem contar que a todo momento surgem novas contas de e-mail, blogs, intranets, extranets, instant messengers, etc. O SafeNote armazena de forma segura essas e outras informações.<br />
Disponível para download gratuito em <a href="http://www.eksikalori.com/safenote_s60_3rd">http://www.eksikalori.com/safenote_s60_3rd</a></li>
<li>
<h3>DEdit</h3>
<p>O DEdit é um poderoso editor de texto disponível gratuitamente em <a href="http://jbak.ru/en">http://jbak.ru/en</a></li>
<li>
<h3>Google Mobile App</h3>
<p>O Google Mobile App é uma espécie de &#8220;Gerenciador de Atalhos&#8221; que contém além de uma caixa de pesquisa, links para os principais aplicativos do Google (instalados e online).<br />
Disponívem em <a href="http://m.google.com/">http://m.google.com/</a></li>
</ul>
<h2>Mapas e GPS</h2>
<ul>
<li>
<h3>Google Maps</h3>
<p>Com o Google Maps além de visualizar mapas e traçar rotas, é possível compartilhar sua posição global e obter a de seus amigos via Latitude.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/q7kIJabdC5s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/dicas/e71-softwares-indispensaveis/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/dicas/e71-softwares-indispensaveis</feedburner:origLink></item>
		<item>
		<title>Código promocional Dreamhost ($50 de desconto)</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/XD05ESGHO_o/codigo-promocional-de-dreamhost-50-de-desconto</link>
		<comments>http://www.claudineimatos.com/blog/dicas/codigo-promocional-de-dreamhost-50-de-desconto#comments</comments>
		<pubDate>Tue, 15 Jan 2008 12:10:34 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Dicas]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/200801/codigo-promocional-de-dreamhost-50-de-desconto/</guid>
		<description><![CDATA[Pensando em contratar serviço de web hosting? Então não perca tempo e procure a Dreamhost pois com certeza eles têm a melhor relação custo X benefício.
Tenho meu domínio hospedado com eles há cerca de 3 anos e não tenho do que reclamar.  Muitos dos meus amigos também utilizam os serviços da Dreamhost.
É claro, não [...]]]></description>
			<content:encoded><![CDATA[<p>Pensando em contratar serviço de web hosting? Então não perca tempo e procure a Dreamhost pois com certeza eles têm a melhor relação custo X benefício.</p>
<p>Tenho meu domínio hospedado com eles há cerca de 3 anos e não tenho do que reclamar.  Muitos dos meus amigos também utilizam os serviços da Dreamhost.<br />
É claro, não vou mentir que houve um período de cerca de 1 a 2 meses no último ano (se não me engano) em que as coisas lá ficaram problematicas, devido a grande quantidade de novos usuários, mas a política deles foi revista, os planos comerciais re-estruturados e o problema foi sanado.</p>
<p>Se a decisão for pela Dreamhost aproveite o código promocional <strong>FREE50BUCKS </strong>e garanta já $50 de desconto na assinatura.</p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/XD05ESGHO_o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/dicas/codigo-promocional-de-dreamhost-50-de-desconto/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/dicas/codigo-promocional-de-dreamhost-50-de-desconto</feedburner:origLink></item>
		<item>
		<title>Memcached, optimizando aplicações PHP com cache em memória</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/z4eTLFy8ou4/memcached-optimizando-aplicacoes-php-com-cache-em-memoria</link>
		<comments>http://www.claudineimatos.com/blog/artigos/memcached-optimizando-aplicacoes-php-com-cache-em-memoria#comments</comments>
		<pubDate>Sun, 13 Jan 2008 14:42:23 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/200801/memcached-optimizando-aplicacoes-com-cache-em-memoria/</guid>
		<description><![CDATA[Aplicações de grande porte tendem a passar por problemas de performance, por N motivos como o crescimento do número de usuários simultâneos, complexidade da lógica, cresicmento da base de dados, dentre outros.
Geralmente o primeiro passo a seguir quando uma aplicação está com a performance degradada é tentar detectar no código os problemas de performance e [...]]]></description>
			<content:encoded><![CDATA[<p>Aplicações de grande porte tendem a passar por problemas de performance, por N motivos como o crescimento do número de usuários simultâneos, complexidade da lógica, cresicmento da base de dados, dentre outros.</p>
<p>Geralmente o primeiro passo a seguir quando uma aplicação está com a performance degradada é tentar detectar no código os problemas de performance e corrigi-los. Em caso de aplicações WEB um sistema de cache como o do PHP Smarty pode ajudar e quando isso não for o bastante pode ser possível partir para a clusterização dos servidores.</p>
<p>Quando o problema está na base dados, a solução comumente utilizada é clusterizar a base, geralmente adicionando servidores slave que se por um lado melhoram o tempo de resposta de consultas a base, por outro lado perdem no momento da escrita, pois cada nó do cluster deve ser atualizado.</p>
<p>Pensando nesses problemas, Brad Fitzpatrick desenvolveu um sistema de cache em memória distribuido. Fitzpatrick se deparou com o problema de rápido cresicmento da audiência do site <a href="http://livejournal.com">LiveJournal.com</a>. Ao chegar a casa dos 20 milhões de usuários por dia, clusters de servidores web e de banco de dados já não eram mais suficientes, e então o Memcached surgiu garantindo rápido acesso aos dados e melhor utilização de recursos.<br />
<span id="more-75"></span><br />
O Memcached é simples de ser utilizado e sua biblioteca cliente está disponível para as principais linguagens, dentre elas C, Perl, PHP, Python, e Java.</p>
<p>Com o Memcached é possível armazenar qualquer valor no sistema de cache, seja ele um ponteiro para registros de banco de dados, uma array multi-dimensional ou até mesmo uma simples string.</p>
<p>Uma de suas principais vantagens em relação a clusters de banco de dados por exemplo, é que nesses tipos de clusters temos N máquinas respondendo pelo mesmo conteúdo, enquanto que num cluster Memcached, os dados são distribuídos e somados nos N servidores disponíveis, ou seja, se criarmos um cluster com 3 servidores e 1GB de memória em cada, teremos no final um total de 3GB de cache total, sem conteúdo duplicado ao contrário do cluster de banco.</p>
<p>Outra vantagem é que a instalação do memcache costuma ser simples, principalmente nas principais distribuições. No Gentoo por exemplo, para dar suporte a linguagem PHP basta instalar o pacote pecl-memcache no servidor WEB. O pacote memcached deve ser instalado nos servidores que irão compor o sistema de cache.</p>
<p>Nos servidores do cache o arquivo /etc/conf.d/memcached deve ser editado e informações como quantidade de memória a ser utilizada e número máximo de conexões devem ser especificadas.</p>
<pre><span class="code"># emerge pecl-memcache memcached

# vim /etc/conf.d/memcached </span><span class="code-comment">(se desejar, altere a configuração padrão)</span><span class="code">
# /etc/init.d/memcached start</span></pre>
<p>Certifique-se de que regras de firewal estejam atualizadas para permitir a conexão entre servidor e cliente.</p>
<p>No lado da aplicação é necessária pouca alteração no código, bastando antes de executar o código necessário para popular uma variável, tentar buscar o valor no Memcached e caso esse não exista executar o código pertinente.<br />
O código abaixo exemplifica o uso do Memcache em PHP.</p>
<pre><span class="code">&lt;?php
</span><span class="code-comment">// cria nova instância do Memcached
</span><span class="code">$m = new Memcache;

</span><span class="code-comment">// adiciona 3 servidores, podendo ser especificados nomes ou endereços
// com ou sem especificação da porta
</span><span class="code">$m-&gt;addserver("127.0.0.1:11211");
$m-&gt;addserver("servidor2");</span><span class="code-comment"> // aqui é utilizada a porta padrão (11211)
</span><span class="code">$m-&gt;addserver("servidor2:11212");</span><span class="code-comment"> // mais de uma cópia do memcached pode ser executada por máquina

// pede ao Memcached o conteúdo da chave array_teste
</span><span class="code">$array_teste = $m-&gt;get("array_teste");

</span><span class="code-comment">// se o valor não existir executa a rotina para gerar o valor
</span><span class="code">if(!$array_teste){
   $array_teste = array();
   $array_teste[] = array("valor 1", "valor 2", "valor 3");
   $array_teste[] = array("valor 4", "valor 5", "valor 6");
   $array_teste[] = array("valor 7", "valor 8", "valor 9");

   </span><span class="code-comment">// em seguida o valor é adicionado no cache por 1 minuto
   // o 3º parâmetro indica se deve ser usada compressão com zlib
   // o 4º parâmetro indica o tempo de vida do cache (em segundos)
   </span><span class="code">$m-&gt;add("array_teste", $array_teste, false, 60);
}

var_dump($array_teste);
?&gt;</span></pre>
<p>Outros 2 pontos interessantes do Memcached é que o valor a ser armazenado pode ser compactado com uso da zlib e também o tempo de vida do cache pode ser especificado.</p>
<p>Vale lembrar é claro que por se tratar de cache em memória, caso um dos servidores falhe, os dados nele armazenados serão perdidos e uma vez que os dados não são replicados nos demais servidores, o Memcached não deve ser adotado como solução de failover. No entanto com um pouco de estudo para identificar os pontos críticos do sistema é possível criar uma arquitetura de cache simples e eficiente.</p>
<p>Mais informações podem ser obitdas na página do projeto <a href="http://www.danga.com/memcached/" title="Memcached">Memcached</a> e no <a href="http://www.socialtext.net/memcached/index.cgi" title="Wiki">Wiki</a></p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/z4eTLFy8ou4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/blog/artigos/memcached-optimizando-aplicacoes-php-com-cache-em-memoria/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/blog/artigos/memcached-optimizando-aplicacoes-php-com-cache-em-memoria</feedburner:origLink></item>
		<item>
		<title>Xen e LVM – Uma bat-dupla perfeita</title>
		<link>http://feedproxy.google.com/~r/claudineimatoscom/~3/Fr7-7J_KEUw/xen-e-lvm-uma-bat-dupla-perfeita</link>
		<comments>http://www.claudineimatos.com/uncategorized/xen-e-lvm-uma-bat-dupla-perfeita#comments</comments>
		<pubDate>Sun, 28 Oct 2007 21:12:18 +0000</pubDate>
		<dc:creator>Claudinei</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[Virtualizacao]]></category>
		<category><![CDATA[XEN]]></category>

		<guid isPermaLink="false">http://www.claudineimatos.com/200710/xen-e-lvm/</guid>
		<description><![CDATA[Acho que uma das maiores dificuldades pra quem trabalha com informática (especialmente na administração de redes) é conseguir se manter atualizado em meio a tanta tecnologia que surge e/ou se atualiza a cada dia.
Frequentemente são criadas novas versões de softwares que as vezes podem não ser 100% compatíveis com as versões anteriores e nesse caso [...]]]></description>
			<content:encoded><![CDATA[<p>Acho que uma das maiores dificuldades pra quem trabalha com informática (especialmente na administração de redes) é conseguir se manter atualizado em meio a tanta tecnologia que surge e/ou se atualiza a cada dia.<br />
Frequentemente são criadas novas versões de softwares que as vezes podem não ser 100% compatíveis com as versões anteriores e nesse caso pode ser necessário uma reconfiguração ou adaptação da configuração anterior, e claro, surgem também novos softwares/soluções que aprimoraram os já existentes ou criam novos conceitos que devem ser no mínimo estudados.</p>
<p>Já há algum tempo resolvi experimentar o <code>XEN</code> como solução de virtualização já que o <code>VMWare Server</code> apesar de prático e com versão Free, não é um software livre.<br />
Inicialmente tive algumas dificuldades para entender as configurações necessárias pois ao contrário do <code>VMWare</code> o <code>Xen</code> não tem interface gráfica para configura-lo/visualiza-lo, mas nada que um pouco de pesquisa, tentativas e erros não resolvessem.<br />
Em pouco tempo eu já tinha um <code>kernel linux</code> sendo iniciado no meu terminal e em poucos segundos um prompt de login.<br />
Logo surgiram mil idéias de aplicação da tecnologia e resolvi que meus novos servidores deveriam ser virtualizados para facilitar a manutenção deles, mas ainda faltava algo, e é ai que entra o <code>LVM</code>, tornando o particionamento de discos o que ele já deveria ser há muito tempo, dinâmico e sem limites.</p>
<p>O <code>LVM</code> veio pra acabar com aquela limitação chata de 16 partições por disco e tornar prática a manutenção das mesmas. Com o <code>LVM</code> o processo de particionar o disco fica absolutamente dinâmico e objetivo além de mais organizado. Dentre outras recursos é possível por exemplo criar um snapshot de um sistema de arquivos em uso e cloná-lo para uma nova partição, e com isso facilitar a duplicação de uma máquina virtual do <code>XEN</code> em uso para por exemplo testar a nova versão do software XYZ que precisa que sua configuração seja adaptada para um novo formato, ou até mesmo para fazer backup de arquivos abertos de softwares que não podem parar.</p>
<p>E dai em diante como a maioria dos softwares livres, a imaginação é o limite. No caso da empresa em que trabalho, utilizo essas 2 soluções para facilitar a instalação e manutenção de nossos clusters de <code>apache</code> e <code>postgresql</code>.<br />
No meu próximo artigo explicarei o uso tanto do <code>XEN</code> quanto do <code>LVM</code> para criar um serviço de alto desempenho.</p>
<img src="http://feeds.feedburner.com/~r/claudineimatoscom/~4/Fr7-7J_KEUw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.claudineimatos.com/uncategorized/xen-e-lvm-uma-bat-dupla-perfeita/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.claudineimatos.com/uncategorized/xen-e-lvm-uma-bat-dupla-perfeita</feedburner:origLink></item>
	</channel>
</rss>
