segunda-feira, 15 de agosto de 2011

Black Label Society - Porto Alegre, 14/08/2011

Acabo de chegar de Porto Alegre após ver o show do Black Label Society, banda do motherfucker (como ele gosta de falar) Zakk Wylde e após algumas centenas de kilometros e pouco mais de uma dezena de horas de viagem ao todo.
Chegamos até o Opinião, local onde o show foi realizado às 15h30min e a fila já estava, para a minha surpresa, relativamente bem extensa para o horário. Ficamos por cerca de 30 minutos na fila, até o momento que começou a chover e ficou impossível ficar lá sem ficar encharcado. Para escapar da chuva fomos para um bar temático gaúcho que fica em diagonal ao Opinião. Ficamos na varanda do local tomando umas cervajas e esperando passar o tempo (e a chuva).
Por volta de 19h40min, 20 minutos antes do anunciado, os portões são abertos para a satisfação de quem já não aguentava mais ficar de molho na fila. Trocamos nossos e-mails impressos pelos ingressos e entramos no Opinião, que foi enchendo aos poucos e ficando cada vez mais quente.
Eu e o João, meu colega dos tempos de faculdade, já marcamos lugar na chegada, ficamos num lugar ótimo onde pudemos ter uma visão perfeita do palco. Daí em diante era só ter paciência, e haja paciência nisso, pois ainda tinhamos que esperar duas horas até o show do BLS começar.
O intervalo entre às 20h e às 21h pareceu durar uma eternidade, até a Draco (banda de abertura) entrar no palco e quebrar um pouco a monotonia. Ao menos nos dois minuos iniciais, pois pessoalmente não me agradei com o show da banda, pois não combinou com a ocasião e há no mínimo meia dúzia de bandas no estado que seriam mais capazes de cumprir a missão.
Desse ponto até o final do show da Draco foi mais uma eternidade, a fome começou a bater e se nós saíssemos pra procurar algo pra comer iríamos perder o lugar e, pra ficar ainda mais emocionante, minhas pernas já estavam começando a dar sinal de desgaste graças a todo o tempo que eu estava de pé (consequências da profissão sedentária, é claro). Mais meia hora de espera para a equipe terminar de aprontar o palco e às 22h em ponto começa a tocar a introdução nos PAs.
Um por um, os membros da gang... digo, Black Label vão subindo ao palco até o momento que o Zakk se apresenta com um enorme cocar e liberando a massa sonora (sim, massa sonora MESMO, esse foi sem dúvidas o show mais barulhento que já fui).
Rolaram músicas novas, alguns clássicos absolutos da história da banda (pena que não rolou nada dos tempos de Pride & Glory, mas isso já era esperado), algumas partes chatas na minha opinião como o enorme solo do Zakk (de fato eu não curto os improvisos do Zakk) e o já esperado desfile de guitarras. Ele tocou no máximo 3 músicas com a mesma guitarra e durante o show foi mostrando o seu arsenal, já que ele assina vários modelos clássicos, com destaque para o famoso modelo bullseye.
Saí tão atordoado do show e com um enormo "zunido" no ouvido que nem lembrei de conferir a hora que o show acabou. Mas sem dúvidas valeu a pena a experiência de ver um dos maiores contribuintes do rock em carne e osso.
É notório que o show do BLS chama a atenção pela figura do Zakk Wylde em si. O cara é um ícone tanto na forma de tocar, visual, modelos de guitarras e a característica performance de palco, exceto, é claro, pelo momento Tarzan (quem olhou o show vai saber o que eu digo). Conseguiu criar uma marca publicitária invejável, fez escola no estilo de tocar guitarra e pode-se dizer que é uma das últimas grandes figuraças do Metal.
Vida longa ao ogro, Zakk Motherfucker Wylde!

Set list:
CRAZY HORSE
FUNERAL BELL
BLEED FOR ME
DEMISE OF SANITY
OVERLORD
PARADE OF THE DEAD
BORN TO LOSE
DARKEST DAYS
FIRE IT UP
GODSPEED HELLBOUND
THE BLESSED HELLRIDE
SUICIDE MESSIAH
CONCRETE JUNGLE
STILLBORN


quinta-feira, 28 de julho de 2011

Kiosk com Slackware

Neste tutorial, irei demonstrar como configurar um kiosk utilizando o Slackware, no qual iremos apenas carregar o xorg para exibição do Firefox em modo fullscreen.

Depois de ter instalado e configurado o Slackware, crie um usuário específico, onde iremos configurar o kiosk. Neste exemplo, iremos criar um usuário com o nome de terminal:
adduser terminal

Após criado o usuário, carregue o gerenciador de janelas:
startx

Inicie o Firefox e defina o site que será exibido no kiosk como página inicial.

Instale o add-on R-kiosk para firefox através deste link.
Este add-on faz com que o Firefox seja executado em modo fullscreen, desabilita todos os menus, barras de ferramentas, comandos de teclado e o botão direito do mouse.

Agora vamos configurar o Slackware para executar o Firefox assim que o modo gráfico for inicializado.
Dentro do diretório /home/terminal crie o arquivo .xinitrc e insira a seguinte linha:
exec /usr/bin/firefox

Configure o firefox para ser executado em modo fullscreen. Para isso, acesso o arquivo /home/terminal/.mozilla/firefox/algumacoisa.default/localstore.rdf e procure pelas linhas:

width="1024"
height="768" />
Defina os valores de resolução desejados nos campos "width" e "height".

Ainda há um problema na nossa configuração. Se deixarmos a configuração como está, quando alguém utilizar o comando ctrl+c, o sistema irá para o modo texto e a conta na qual o Firefox está sendo executado ficará livre para o usuário fazer o que quiser com o sistema, inclusive desconfigurar tudo o que fizemos até agora. Para evitar isso, iremos editar o arquivo .bash_profile no diretório /home/terminal com os seguintes parâmetros:

#!/bin/bash

while true
do
/usr/bin/startx
done
Dessa forma o terminal não irá para o modo texto quando o usuário encerrar o aplicativo com o atalho ctrl+c, ou seja, quando o usuário tentar sair do aplicativo o X simplesmente será reiniciado e tudo voltará a funcionar normalmente.
Agora só falta configurar o Slackware para exibir o browser na tela sem que seja preciso fazer login no sistema, de forma que assim que o terminal for ligado o browser será executado.
Tome cuidado, pois após feita essa configuração nós não iremos mais conseguir logar com outro usuário na máquina, pois a opção de login será desativada.
Para isso, primeiro iremos editar o arquivo inittab:
vim /etc/inittab
E alterar a linha:
1:2345:respawn:/sbin/agetty 38400 tty
por:
1:2345:respawn:/sbin/agetty -n -l /sbin/autologin 38400 tty1
Onde o -n especifica que não queremos que o prompt de login seja apresentado na tela. Já o -l permite invocar um programa específico de login, em substituição ao default (geralmente o /bin/login).
Vamos criar agora o programa de login que será carregado pelo sistema:
vim /sbin/autologin.c
Escreva no arquivo o seguinte conteúdo:
int main() {
execlp( "login", "-f", "terminal", 0);
}
Depois é só compilar:
gcc -o /sbin/autologin /sbin/autologin.c
Edite o arquivo /etc/login.defs e procure por uma linha assim:
#NO_PASSWORD_CONSOLE tty1:tty2:tty3:tty4:tty5:tty6
Mude-a para:
NO_PASSWORD_CONSOLE tty1

Pronto, processo concluído. Para que as alterações sejam processadas para uso futuro sem a necessidade de rebootar o sistema, digite:
init q
E execute o programa que criamos para login automático:
./autologin

Referências:
Slackbook: http://www.slackbook.org
JACK.eti.br: http://www.jack.eti.br/www/

terça-feira, 19 de julho de 2011

Configurando o Zabbix Agent para iniciar automaticamente em servidores CentOS e derivados

No post anterior, demonstrei como configurar o agente do Zabbix para iniciar automaticamente no Debian e em distribuições derivadas, como o Ubuntu.
Essa configuração não é tão simples em todas as distribuições e, como será visto a seguir, no CentOS e distribuições derivadas, como o Trixbox, é um pouco mais complicado, mas também não é nada de outro mundo.

Acesse a pasta /etc/init.d
cd /etc/init.d

Utilizaremos o editor de texto vi para criar o script. Nesse caso, nomeei o arquivo como zabbix_starter.sh:
vi zabbix_starter.sh

Adicione as seguintes linhas no arquivo:
#!/bin/bash
# chkconfig: 2345 95 20
# description: zabbix starter
# This script executes the zabbix agent on the system boot
# processname: zabbix_starter.sh
/usr/local/sbin/zabbix_agentd


Dentro do diretório /etc/init.d, digite:
chmod 755 zabbix_starter.shIsso dará as permissões necessárias para o arquivo ser executado.
Como root, execute o chkconfig para adicionar o script na inicialização do sistema:
sudo /sbin/chkconfig --level 2345 zabbix_starter.sh on

Confira se tudo ocorreu da maneira certa e o script irá ser executado na inicialização:
/sbin/chkconfig --list

Relatório gerado pelo comando /sbin/chkconfig --list
A figura acima mostra que o script zabbix_starter.sh está ativo nos runlevels 2, 3, 4 e 5. O que significa que o script será inicializado com o sistema.
Clique aqui para maiores informações sobre como funciona o runlevel no Linux.


Troubleshooting

Em alguns servidores eu me deparei com a seguinte mensagem de erro:
service doesn't support chkconfig

Esse erro ocorre porque existe um rótulo SELinux que não permite que o arquivo seja executado na inicialização do sistema.
Muitos serviços são executados com seu próprio rótulo SELinux e como o script que criamos não o possui, não irá ser executado.
Para resolver isso, iremos utilizar os seguintes comandos:
chcon system_u:object_r:initrc_exec_t:s0 zabbix_starter.sh

Configurando o Zabbix Agent para iniciar automaticamente no Debian e derivados

Quem trabalha com o Zabbix sabe bem o quanto essa ferramenta é poderosa no que se refere a gerência de redes de computadores, mas como nem tudo é perfeito, o Zabbix tem um inconveniente: toda vez que um servidor Linux é reiniciado é preciso acessar o servidor e "dar um start" no agente.
O problema é pior ainda quando ocorre queda de energia e todos os servidores monitorados são desligados, daí é aquela odisséia de ir em servidor por servidor para iniciar o agente.
Para evitar esse trabalho de presidiário, irei mostrar nesse tutorial como configurar o Zabbix Agent para iniciar junto com os principais processos do sistema. É um procedimento bastante simples, mas que economiza um bom tempo do administrador da rede.

1. Acesse a pasta /etc/init.d
cd /etc/init.d
2. Utilizaremos o editor de texto vim para criar o script. Nesse caso, nomeei o arquivo como zabbix_starter.sh
vim zabbix_starter.sh
3. Adicione as seguintes linhas no arquivo:
#!/bin/bash
/usr/local/sbin/zabbix_agentd
4. Dentro do diretório /etc/init.d, digite:
chmod 755 zabbix_starter.sh
Isso dará as permissões necessárias para o arquivo ser executado.
5. Por último, iremos utilizar o comando update-rc.d para atualizar os diretórios rc.d, adicionando o script na inicialização do sistema:
update-rc.d zabbix_starter.sh defaults



terça-feira, 7 de junho de 2011

Projeto de Lei 5476/2001 - cancelamento da assinatura do telefone fixo

Recebi essa informação por e-mail e resolvi passar adiante, afinal, essa é uma das poucas "correntes" que vale a pena. Acho que todo mundo que quer acabar com essa palhaçada das operadoras de telefonia cobrarem taxas abusivas de "manutenção de serviço" devem fazer a sua parte, ligar para o 0800 619619 e votar no Projeto de Lei nº 5476 de 2001. Este projeto está tramitando na Comissão de Defesa do Consumidor e, se aprovado, o projeto passará a ser lei e cada um pagará somente pelas ligações telefônicas efetuadas, acabando com esse roubo que é a assinatura mensal.É só ligar para 0800 619619 e quando a secretária eletrônica atender, digite 1, 1, 1. Assim você votou a favor do cancelamento da taxa de telefone fixo. Trata-se de um serviço da Câmara dos Deputados Federal e funciona das 8 às 20h. Quanto mais pessoas ligar, maior a chance de ser aprovado.Esse tipo de assunto NÃO é veinculado na TV ou no rádio porque eles não têm interesse e não estão preocupados com isso. Portanto, nós temos que correr atrás, afinal, quem paga somos nós.Lembre-se, é ligação 0800, você não estará perdendo nada, só terá a ganhar.
Divulgue isso, pois quanto mais pessoas se mobilizar, melhores serão os resultados.

quarta-feira, 4 de maio de 2011

Zabbix: personalização de itens para o monitoramento de comutadores de pacotes utilizando o protocolo SNMP


Como o protocolo SNMP é atualmente o padrão para o monitoramento de ativos de rede, a grande maioria dos equipamentos de comutação de pacotes já vêm de fábrica com um agente SNMP instalado em seu hardware, sendo necessária apenas a configuração de alguns parâmetros que deve ser feita pelo administrador/gerente da rede.
Neste artigo, irei descrever passo-a-passo como criar itens no Zabbix para monitorar switches utilizando o protocolo SNMP.

1. Configuração do comutador de pacotes


Primeiramente, é necessário habilitar o suporte ao protocolo SNMP no painel de controle do equipamento que será monitorado. Após isso, deve-se definir os nomes de comunidades.O protocolo SNMP usa o conceito de comunidades para definir a confiabilidade entre o agente e aquele que está requisitando as informações do agente, que pode ser um software de gerência de redes ou alguém disparando comandos SNMP em um determinado nó da rede.
Uma comunidade é, resumidamente, uma variável do tipo string ou,
se quisermos simplificar ainda mais, uma senha que será usada pelo administrador da rede para ter acesso as informações do equipamento, como uptime, tráfego de pacotes e etc. Pode ser definida de três formas: read-only, read-write e trap, sendo que atualmente os comutadores disponíveis no mercado disponibilizam apenas dois campos para o preenchimento, um para definir a comunidade do tipo read-only e outro do tipo read-write.
Uma comunidade read-only permite ler valores de dados, sem modificálos, já uma comunidade read-write permite a leitura e modificação dos valores de dados.

Figura 1 - Tela de configuração do agente SNMP em um switch Cisco Catalyst 2960-S

2. Monitorando OIDs

Muitas vezes, os sistemas de gerência de rede não trazem todos os itens pré-configurados para o monitoramento de todos os equipamentos e serviços utilizadados em um determinado ambiente, portanto, caberá ao gerente da rede configurar esses itens e informar ao sistema de gerência de rede os parâmetros utilizados para acessar as informações necessárias que podem ser disponibilizadas pelo agente. Para descobrir quais são esses parâmetros é necessário usar o SNMP.
Neste caso, será monitorado o tráfego de dados nas portas de um comutador de rede. Para isso, é utilizando o comando snmpwalk, que é utilizado para listar os parâmetros SNMP existentes em um determinado dispositivo de rede.
A sintaxe padrão do snmpwalk é: snmpwalk -v 3 -c comunidade IP, sendo que a função de cada parâmetro utilizado no comando é:
a) snmpwalk: listar os parâmetros SNMP no dispositivo de rede que será monitorado;
b) -v 3: versão do SNMP utilizada pelo agente, pode-se usar as opções -v 1 (SNMP Versão 1), -v 2c (SNMP Versão 2), -v 3 (SNMP Versão 3);
c) -c comunidade: Nome da comunidade SNMP declarada no arquivo de configuração do agente. Precisa ter no mínimo direito de leitura;
d) IP: endereço IP do equipamento que deseja-se ler as informações.
O comando snmpwalk traz uma quantidade enorme de informações sobre o dispositivo requisitado, sendo que muitas dessas informações podem não ser de interesse do administrador da rede em determinado momento, por isso, é possível filtrar as informações que se deseja ter acesso. Neste caso específico, iremos monitorar as portas de um comutador de pacotes, portanto acrescentaremos o parâmetro interfaces ao comando para que ele filtre apenas as informações referentes as interfaces do equipamento. O comando usado para isso será snmpwalk -v 3 -c comunidade IP interfaces.
Para monitorar o tráfego de entrada e saída de dados em uma determinada porta de
um comutador de pacotes deve-se analisar os parâmetros ifInOctets e ifOutOctets gerados pelo comando snmpwalk, onde ifInOctets refere-se ao tráfego de entrada de dados em bps (bits por segundo) em uma determinada porta do comutador e ifOutOctets representa o tráfego de saída de dados, também em bps.

Figura 2 - resultado gerado através do uso do comando snmpwalk

Vamos analisar um dos parâmetros gerados pelo snmpwalk:

IF-MIB::ifInOctets.10101 = Counter32: 3316021136

a) IF-MIB::ifInOctets.10101: este parâmetro se refere ao tráfego de entrada de dados (ifInOctets) na porta 1 do comutador (10101). Note que este é um parâmetro utilizado pelo modelo Cisco Catalyst 2960-S. Ao executar um comando snmpwalk em modelos e ou marcas diferentes os parâmetros obtidos serão diferentes. Por exemplo, em um comutador D-Link, o parâmetro utilizado é ifInOctets.1. No caso específico do comutador da Cisco que está sendo utilizado neste estudo, é possível identificar as portas analisando os dois últimos digitos após ifInOctets, como é possível notar na figura 2.
b) Counter32: define que o parâmetro usa uma variável de 32 bits com valor mínimo de 0 e máximo de 2
32-1. É basicamente utilizado para rastrear informações, como o número de octetos enviados e recebidos em uma interface ou o número de erros e descartes encontrados em uma interface.
c) 3316021136: é o resultado gerado. Indica que estão entrando 3316021136 bps na porta 1 do comutador.

3. Criação de template para monitoramento de comutadores CISCO Catalyst 2960-S

O Zabbix é uma NMS (Network Management System) que trabalha com o conceito de itens e templates.Um item é formado por um conjunto de campos onde é informado ao Zabbix os dados necessários para que ele faça as requisições ao agente, seja este agente SNMP ou o próprio agente do Zabbix. Em um item são definidos quais parâmetros de uma MIB serão monitorados (CPU, interfaces, uptime, etc).Uma template é uma coleção de itens. Este conceito facilita consideravelmente o trabalho do gerente da rede. Por exemplo, em um ambiente onde se possui vários switches do mesmo modelo e se necessita monitorar os mesmos parâmetros, como o tráfego de rede de cada uma das portas, o procedimento se resumirá em criar os itens uma única vez e salvá-los como template. Após isso, bastará adicionar os demais switches na template para que todos eles herdem as configurações predefinidas, não havendo a necessidade de repetir o processo de criação de itens para cada um dos switches monitorados.
Para criar uma template no Zabbix basta clicar na aba Configuração, Hosts, selecionar a opção Templates e clicar em Criar Templates. Após, basta preencher os campos conforme a imagem abaixo.

Figura 3 - Tela de edição de template do Zabbix

a) Nome: nome que será atribuído à template que está sendo criada;b) Grupos: permite adicionar grupos de hosts relacion
ados à template;c) Novo grupo: caso o grupo que se deseja adicionar ainda não exista, basta preencher este campo para a criação de um novo grupo;d) Hosts|Templates: permite adicionar os hosts que herdarão os itens definidos na template.


4. Criação de itens para monitoramento de comutadores CISCO Catalyst 2960-S

Para criar um item, basta clicar na aba Configuração, Hosts, selecionar a opção Itens e clicar em Criar item. Após isso, deve-se preencher os campos conforme a imagem abaixo.
Figura 4 - Tela de edição de item do Zabbix

Para configurar um item, é preciso ter em mãos algumas informações adquiridas anteriormente com o uso de comandos SNMP. a) Tipo: Versão do agente SNMP;b) Comunidade SNMP: Nome da comunidade. Deve ser a mesma comunidade configurada no equipamento;c) SNMP OID: Valor adquirido com o uso do comando snmpwalk;Ex.: IF-MIB::ifInOctets.10101, IF-MIB::ifInOctets.10102, etc.d) Chave: Chave do valor que será lida (ifInput.1, ifOutput.1, etc);e) Unidades: Unidade que será exibida as informações (bps, B, etc);f) Intervalo atualização (em seg): Tempo de atualização dos gráficos;
g) Armazenar valor: define se o valor será armazenado como Delta (alterações/seg), Delta (alterações simples) e Sem alterar, que foi a opção escolhida neste estudo de caso, pois os demais valores, quando utilizados, não corresponderam ao resultado gerado pelos comandos SNMP.