quarta-feira, 30 de janeiro de 2019

Monitoramento IPMI com Zabbix.

Caros amigos da comunidade.

O post a seguir estava como rascunho em minha conta já há algum tempo, ao revisitar o artigo não lembro ao certo do motivo pelo qual não o postei em um momento mais oportuno. Atualmente não tenho mais acesso ao ambiente de produção onde realizei os testes que serviram de base para o artigo mas creio que a informação contida aqui pode ser útil aos demais colegas da comunidade.

...

Neste post vou tratar do monitoramento IPMI dos servidores HP ProLiant BL460c G1 e ProLiant BL460c G6 através da iLo2 disponibilizada pelos servidores.

Após analisar a documentação do Zabbix para o monitoramento via IPMI tentei implementar o monitoramento através da iLo2 mas sem sucesso. Então passei a procurar na web e me deparei com documentação escassa e diversas pessoas com problemas para implementar o monitoramento via IPMI nos mais diversos cenários. Após muita pesquisa consegui implementar o monitoramento das blades. Segue abaixo o passo a passo para implementar o monitoramento IPMI no Zabbix.

Primeiramente verifique se o seu servidor Zabbix foi compilado com suporte a monitoramento IPMI com a opção --with-openipmi. Caso o servidor não tenha sido compilado com suporte IPMI, basta recompilá-lo com a opção acima e a instalação do pacote libopenipmi-dev. Este post não trata da instalação do servidor, em um post anterior mostro como instalar o servidor Zabbix. Clique aqui para maiores informações a respeito da instalação do Zabbix.

O próximo passo é habilitar os pollers IPMI no arquivo /etc/zabbix/zabbix_server.conf conforme abaixo. No meu caso três instâncias foram suficientes para o monitoramento, adapte a quantidade de instâncias para o seu ambiente se for o caso.

[/etc/zabbix/zabbix_server.conf]
...
StartIPMIPollers=3
...

Para utilizarmos o IPMI via iLo2, descobri que o monitoramento só funciona nas iLo2 com versão de firmware superiores a 2.05 portanto, verifique a versão de sua iLo2 e atualize se for o caso. Em muitos casos que constatei na web, e no meu caso também, realizei testes com versões anteriores da iLo2 que apresentavam erro e instabilidade portanto, é mandatório a atualização do firmware da iLo2.

 Para testarmos o funcionamento do alvo a ser monitorado via terminal fazemos uso da ferramenta ipmitool que pode ser instalada com suas dependências utilizando-se o comando abaixo:


# apt-get install ipmitool

Com a atualização da iLo2 no alvo e a instalação do ipmitool no cliente já podemos verificar os sensores disponíveis para monitoramento conforme abaixo:


 Para uma listagem mais detalhada dos sensores utilizamos o comando abaixo:



Com a listagem dos sensores podemos configurar o monitoramento através da interface web do Zabbix. Inicialmente configuramos o host para realizar o monitoramento IPMI conforme abaixo:


Habilite a opção Usar IPMI para visualizar as demais opções de configuração do IPMI siga o modelo acima para concluir a configuração.

Uma vez configurado o host passamos para a configuração dos ítens de monitoramento conforme abaixo:


OBS: Observe que a chave segue o modelo ipmi . sendo que os espaços em branco no nome do sensor são substituídos por pontos.

Agora passamos para a configuração das triggers, no exemplo em questão o Zabbix irá alarmar quando a temperatura for maior ou igual a 46 graus celcius.



Já faz algum tempo.

Olá amigos da comunidade.

Já faz algum tempo que não posto nada por aqui, muita coisa aconteceu nesse meio tempo e acabei por deixar de atualizar o blog.
Durante esse tempo me dediquei à família e a minha empresa e na incubência dessas tarefas não sobrou muito tempo para contribir com a comunidade.
Com os filhos já mais independentes e a empresa caminhando com as próprias pernas, creio que posso voltar a contribuir com a disseminação do conhecimento, tarefa que para os que como eu acreditam que o software livre é capaz de elevar nosso patamar tecnologico e nos tornar mais competitivos frente as nações mais desenvolvidas, traz imensa satisfação.

Um grande abraço a todos.

quarta-feira, 21 de setembro de 2011

Armazenando arquivos baixados frequentemente no cache do squid.

Olá amigos.

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

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

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



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

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

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



É isso ai galera, juntos manteremos a comunidade forte.

Um grande abraço a todos.

sexta-feira, 26 de agosto de 2011

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

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

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

#apt-get install libapache2-authenntlm-perl

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

<Directory>
Order allow,deny
Allow from 192.168

Options FollowSymLinks
AllowOverride None

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

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

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

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

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

quinta-feira, 21 de abril de 2011

Instalando o Zabbix 1.8.4 no Ubuntu Server 10.10

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

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

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

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

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

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

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

# tar xzvf zabbix-1.8.4.tar.gz

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

# ./configure --help

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

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

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

# make
# make install

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http:/seu-ip/zabbix

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

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

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

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

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

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

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

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

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

quinta-feira, 17 de fevereiro de 2011

Instalando o Jetty no Ubuntu Server 10.04 LTS

Olá comunidade,

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

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

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

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

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

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

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

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

# /etc/init.d/jetty restart

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

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

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


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

Um grande abraço.

segunda-feira, 10 de janeiro de 2011

Que venha a LPI 202...

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

Ohhh yes...

:D