Skip to content


Disable touchpad while typing

I’m using Gnome 3 for a while. And I’m loving the distract free environment, except the bad behavior of my touchpad.

Everytime I was typing, my fist acidentally touch the touchpad.

And screw my text, and made me lose my focus.

The responsible was syndaemon and the timeout of 0.5ms until stop typing and get reaction of mouse.

To fix this, unmark the “Disable touchpad while typing” in touchpad menu, and put this in your gnome-session startup:

 

syndaemon -i 1.0 -K -R

 

This will increase the timeout for one second and make my life less miserable everytime I need touchpad.  :)

Posted in Desktop, sysadmin.


LWP simple sample

Simple example of use for Libwww Perl.
Get an URL, fiter the content and print the match.



#!/usr/bin/perl
use warnings ;
use strict ;
use LWP::Simple ;

my $url = ‘http://puppet-dashboard.company:3000/nodes/unresponsive?per_page=all’ ;
my $content = get($url) or die “Unable to fetch $url” ;

if ( $content =~ ‘href=”\/nodes\/[0-9]+”>(\S+.ebc)’ ) {
print $1 . “\n”; }

 

Posted in Perl, sysadmin.


Receive a specific snmp trap and pass it to zabbix

Well,

If you have snmp daemon instaled in Zabbix Server (and you should have), will be easy
receive a specific trap and pass it to zabbix.

First, configure you snmpd (I use net-snmp) to run snmptrapd in boot. In Debian,
this will be located in /etc/default/snmpd.
Change the values from ‘no’ to ‘yes’ in TRAPDRUN line.
Will look like this:

TRAPDRUN=yes

After changes, configure your /etc/snmp/snmptrapd.conf and say what is the handler and the specific OID you want to handle in follow format:

#Power Fail Trap from UPS-MIB
traphandle iso.3.6.1.2.1.33.2.3 /usr/local/bin/zabbix/traptozabbix 192.168.20.250 power.fail 1

If you read the script, you will notice that hostname of server is passed by trap itself.
To use, just run the script following by zabbix server IP or hosname, the trap previously configured in zabbix(configured as Zabbix Trapper item type), and value.

Note: You can see the content of traps running the snmptrapd -Lo -f command, and
sending traps from host or desired equipament.

From more, read the Net SNMP documentation

Posted in sysadmin, Zabbix.


Chamada de trabalhos para a PGBR2011


PGBR 2011 - Conferência Brasileira PostgreSQL

Então,

Chamada de trabalhos para a PGBR 2011.

A minha proposta de palestra?

Database Monitoring Blues. =)

Posted in Uncategorized.


My zabbix stuffs at github.com

This is informative post.

Recently, I throw all my zabbix stuffs in my github.com account.

I’ll put my templates and monitoring/automating perl scripts in this account.

If you want watch, just point your browser to https://github.com/jalexandre0 and enjoy.

:)

Posted in sysadmin, Uncategorized, Zabbix.


Zabbix Tuning: Como você monitora o Monitoramento?

Como você monitorar o seu sistema de monitoramento?

Quais são as métricas que você usa para dizer onde e quando fazer algum ajuste?

É. Essas perguntas as vezes são complicadas de responder, ainda mais quando não temos os dados para avaliar o cenário.

Felizmente, o Zabbix possui alguns mecanismos que facilitam a sua vida como SysAdmin na hora de ajustar a criança.

Então, vamos ver bater um papo sobre alguns desses itens.

Values Per Second:

O VPS é uma métrica utilizada para calcular, como o nome diz, a quantidade de itens por segundo processados pelo servidor Zabbix.
Esse valor é calculado internamente pelo Zabbix e apresentado no dashboard de monitoramento com o nome de “Required server performance, new values per second”.

Esse valor é calculado levando em consideração a Quantidade de Itens Monitorados X Tempo de atualização do Item. Logo, se você possui 3000 itens a uma taxa de atualização de 60 segundos, o VPS apresentado será 50. (3000/60 = 50)

Ok, e qual o valor ideal?

Bem, depende do seu hardware. Se você possui um 200 VPS e seu servidor apresenta um gargalo no processamento, deixando a fila de espera muito alta, talvez seja uma boa idéia diminuir para 150 VPS e verificar se o gargalo diminui. Uma boa maneira de diminuir as VPS sem abrir mão dos itens monitorados é diminuir a taxa de atualização do item.

Por exemplo, se você pegar os 3000 itens do exemplo anterior e aumentar o tempo de atualização para 120 segundos, seu VPS vai cair para 25. =)

Em compensação, se você tem 2000 VPS e seu servidor não apresenta nenhum tipo de gargalo, você está em uma situação confortável para aumentar a quantidade de itens monitorados, desde que sua database comporte a quantidade de leitura e escrita, é claro. ;)

Look at Required Performance, man!

Uso do cache:

Monitorar o uso do cache é essencial quando temos a finalidade de ajustar a performance de monitoramento. Por exemplo, cache de escrita com poucos valores e muitos itens acumulados na fila podem indicar um garagalo no banco de dados. Já esse mesmo cache com muitos valores e também muitos itens na fila, podem ser resolvidos aumentando a quantidade de cache no arquivo de configuração. O mesmo vale para cache de estatísticas, históricos e demais valores.

Olha o uso do cache, que bonitinho. =)

A queue:

Ah, a fila. Um dos melhores indicadores de performance do Zabbix. O Zabbix é capaz de mostrar a quantas anda sua fila, o que pode facilitar muito a sua vida na hora de ajustar a taxa de atualização de determinado conjunto de Itens.

Na aba Administração -> Fila, é possível verificar a quantidade de items aguardando o processamento e armazenamento em banco, junto com os intervalos de tempo, que são respectivamente 5, 10, e 30 segundos, 1 minuto, 5 minutos e mais que 10 minutos.

Essa fila tá de dar inveja, hein??

Como podemos ver na figura acima, o Zabbix exibe os tempos de permanencia em fila para cada tipo de checagem, dando indícios de quais configurações precisam ser alteradas. Felizmente, essa fila já passou por ajustes. :D

Por exemplo, muitos itens na fila para os itens de Agente do Zabbix podem indicar, novamente, que o tempo de atualização precisa ser ajustado, ou quantidade máxima de linhas de log enviadas precisam ser diminuidas.

Abaixo, dois exemplos, antes de depois de eu ajustar a taxa de atualização para os templates de servidores e mais alguns ajustes, como desabilitar itens não suportados e marcar a maioria das checagens para Zabbix Active. Em nenhum momento, precisei ajustar o banco de dados ou sistema operacional. =)

My eye are... burning.

Antes dos ajustes e depois dos ajustes. Sweet!!!

To numa nice, ae!

Dicas rápidas:

Cuide bem da sua fila: Um atraso muito grande na fila significa que aquela mensagem de roteador fora só vai chegar 2 horas depois que ele caiu.
Seja moderado na taxa de atualização: Não ceda a tentação de checar espaço em disco a cada 30 segundos, a não ser que isso seja necessário. Seja criterioso
na escolha das taxas de atualização e você vai conseguir monitorar todo o seu parque sem estresse e com confiabilidade.

Use agentes ativos sempre que possível: Em grandes instalações, esse pequeno ajuste faz toda a diferença, uma vez que todas as verificações serão processadas pelo agente e enviadas em lotes ao servidor, diminuindo consderavelmente o número de consultas feitas no banco e tempo gasto pelo servidor para processar essas consultas.

Use proxies ativos: Distribua a sua monitoração em alguns servers ao invés de concentrar tudo em um único nó. Isso remove boa parte da carga do servidor zabbix e também remove a carga do banco de dados, possibilitando uma performance maior no monitoramento.

Separe a aplicação/frontend e o banco de dados: Sim, isso traz um ganho de performance considerável não só para o Zabbix, mas para qualquer aplicação que use banco de dados.

Crie triggers para o Zabbix: Construa um perfil de funcionamento do seu servidor, e então crie triggers para alarmá-lo, por exemplo, quando existirem itens na fila por mais de uma hora.

E para terminar o post, o template que eu fiz para coletar todas essas métricas. =)

Zabbix Internals Template

Posted in sysadmin, Zabbix.


Enviando alertas SMS Zabbix via Asterisk

Esse é o resultado de um script Perl que eu fiz no meu ultimo emprego.
É necessário ajustar as placas e usuários AMI necessários para o funcionamento do Zabbix/Asterisk.


#!/usr/bin/perl -w
use Asterisk::AMI ;
$astman = Asterisk::AMI->new(
PeerAddr => 'Asterisk.IP',
PeerPort => '5038',
Username => 'ami_user,
Secret => 'ami_senha' );
sub envioSMS {
%action = (
Action => 'Command',
Command => "khomp sms b0 $ARGV[0] $ARGV[2]", #ajustar de acordo com a placa
);
$astman->send_action(\%action) ;
sleep 5;
};

&envioSMS();

Posted in sysadmin, Uncategorized, Zabbix.


Enviando alertas SMS Zabbix via comandos AT

Estava conversando com o @coredump sobre como o Zabbix se comporta mal enviando SMS, quando ele me mostrou um método bacana de enviar SMS utilizando comandos AT direto no modem usando o screen no dispositivo e seguindo a sequencia contida aqui:  http://www.developershome.com/sms/howToSendSMSFromPC.asp

 

Pesquisando um pouco mais, cheguei a um script simples que escreve esses comandos no dispositivo /dev/ttyACM0.

Basta apenas adicionar o usuário zabbix ao grupo dialout e configurar corretamente os tipos de media.


#!/bin/bash
echo -e "AT\r" >> /dev/ttyACM0
echo -e "AT+CMGF=1\r" > /dev/ttyACM0
echo -e "AT+CMGS=\"$1\",145\r" > /dev/ttyACM0
echo -e "$2\r" > /dev/ttyACM0
echo -e "\032" > /dev/ttyACM0

 

Para testar, basta executar o script passando o numero de telefone e mensagem como parametros, por exemplo.

./sendsms "+551112345678" "Hail to the king, babe"

Abraços

Posted in sysadmin, Zabbix.


Ambientes de monitoração utilizando Zabbix

Ok. Pelo título, é possível perceber que sou um péssimo SEO, porém, acredito que tenho algumas figurinhas para trocar, especialmente sobre monitoração com Zabbix.

Sem mais delongas, vamos as besteiras.

Cuide bem do seu banco de dados.
Ouço meus clientes reclamarem, e com certa razão, de que após um certo tempo, o Zabbix sofre uma degradação de performance. O fato é que, quando vamos auditar essas instalações, encontramos o banco com a configuração que vem padrão do empacotamento. Basicamente, tudo que é feito dentro do Zabbix vira uma consulta ou uma inserção no banco de dados, o que pode gerar lentidão mesmo, ainda mais se estiverem no mesmo hardware (e geralmente estão).

Eu não sou especialista em tuning de bancos de dados, mas recomendo essa leitura inicial, feita pelo Fábio Telles:
http://www.midstorm.org/~telles/2008/03/04/12-dicas-para-aprender-a-ajustar-a-performance-de-bancos-de-dados/

Verifique a água, combustível e pressão do óleo.
Muitas vezes, utilizamos uma ou mais medidas globais de desempenho (Load Average, IO, Memória) e esquecemos de monitorar o específico de cada serviço e, o Zabbix, como serviço de rede, também tem seus paramatros indicadores de performance.

Indicadores internos como Queue e Writing Cache Values aliado aos paramêtros citados anteriormente podem fazer muita diferença na hora de ajustar e aumentar a performance da aplicação.

Quem vigia os vigilantes!?
Uma estratégia que adotei há algum tempo e que me permite dormir em paz é: Usar o Zabbix para checar se o processo Monit está rodando, e usar o Monit para subir o agente/server/proxy se acontecer alguma queda, além de alertar-me. Esse esquema passou em todos os testes executados por mim e terceiros, com satisfação, e por 2 vezes me livrou de problemas e me ajudou a detectar falhas na estabilidade da plataforma de monitoramento.

Adote uma estratégia de monitoramento distribuido.
Fato. Sua estrutura vai crescer!

Pensando nisso, tenha uma estratégia de monitoramento distribuido desenhada de acordo com suas necessidades. No meu caso, a melhor estrutura foi utilizando Proxies, porém, suas necessidades podem ser melhor atendidas usando Nodes. Geralmente, eu tomo a decisão utilizando esta tabela e considerando algumas particularidades do projeto, como qualidade dos links de dados e quantidade de pessoas treinadas na equipe.

Use e abuse de templates, grupos e dependencias entre Triggers.

Sim. Templates significam agilidade e flexibilidade. Falei de sobre templates aqui, ó!!

Já os grupos lhe ajudam muito na  organização e extração de relatórios (SQL neles!!), que acredite, serão necessários para o seu cliente assim como pão, agua e ar é para você e cerveja para mim.

Agora, quer um conselho de amigão? Por mais trabalho que de mapear seu ambiente, faça isso e aplique o conceito de dependencias entre Triggers, descrito aqui: http://www.zabbix.com/documentation/1.8/manual/config/triggers?s[]=dependencies#trigger_dependencies

Se você não utilizar este recurso, você pode receber uma ligação furiosa do seu diretor de TI, ter o exchange (eca!!!) da empresa paralisado por uma carga de aproximadamente 300k mail porque um imbecil resolveu fazer  ”testes” de carga nos nobreaks e acabou desligando alguns Racks. Já imaginou o tamanho do caos? Então… Use as malditas dependencias… e monitore seus no-breaks. E use a porcaria do Plano de Mudanças. E nunca, nunca deixe um cara sozinho na sala dos no-breaks. Mesmo que ele tenha um unicórnio de estimação!!

Espero realmente que estas dicas sejam úteis.

Abraços!

Posted in sysadmin, Zabbix.


Monitoração baseada em templates no Zabbix

Uma das coisas mais comuns ao iniciar o monitoramento de uma infra estrutura computacional é a incluir os hosts na ferramenta escolhida, no caso o Zabbix, e depois ajustar os parâmetros de acordo com cada equipamento.

Normal, porém, após algum tempo (e algumas centenas de hosts), o gerenciamento dessa estrutura começa a ficar complicado, desgastante e extremamente chato. E foi pensando nisso, que eu resolvi compartilhar uma conversa que tive com a minha equipe durante o almoço, e que, se não é a correta, é a que vem funcionando melhor no meu cenário.

A monitoração baseada em “templates” nada mais é do que uma forma inteligente de organizar a informação e os itens monitorados dentro do Zabbix.

Vejamos um exemplo prático, tirado da primeira configuração de Zabbix feita por mim:

Um único template, com o sugestivo nome de Linux_Template, e, dentro desse template, os seguintes itens:

MD5sum de alguns arquivos
Número Máximo de processos
Consumo de CPU
Memória consumida
Utilização dos discos
Alguns parâmetros da pilha NetFilter

Ou seja, um monitoramento básico de firewall. Depois de ajustar esses itens, lógicamente, o próximo passo foi linkar este template a um outro host, rodando o banco de dados PostgreSQL, e acrescentar novos parâmetros, como:

Número máximo de arquivos abertos
Número máximo de semáforos
Conexões simultaneas
Transações por segundo, etc.

Até ai, tudo bem. O problema começou a ficar claro para mim, quando precisei monitorar uma aplicação web constituida de Apache + PHP + Mysql. Depois, o servidor de Email com LDAP, e por último, um servidor de máquinas virtuais.

Neste momento, caiu a ficha de que possuir um único template e ajustá-lo a cada host foi uma péssima idéia, e saída foi reorganizar a casa, utilizando os templates da maneira que me pareceu ser a mais correta. Um template para cada aplicação.

Após os ajustes, eu fiquei com a seguinte estrutura:

Template Ping, comum a todos os equipamentos.
Template_Linux, contendo os itens necessários para o monitoramento do Sistema Operacional
Template_Firewall, com todos os itens da pilha NetFilter
Template_Apache, Template_Postgresql, Template_LDAP, Template_Mysql, Template_Postfix, cada um contendo os itens relevantes para a aplicação monitorada.

Depois de criar os templates, fui linkando cada servidor ao seu template, e tratando as exceções para cada host.
Depois dessa reorganização, eu consegui gerenciar melhor meu parque de máquinas, consegui ajustar melhor o monitoramento dessas aplicações, e, o que pra mim é o principal: Pude exportar todos esses templates, e utilizá-los em outros cenários. ;)

Se você, leitor, esta passando apertos na hora de gerenciar seus equipamentos dentro do Zabbix, ou esta iniciando um projeto novo de monitoramento, fica a dica.

Use a abuse dos templates. Eles irão, com certeza, tornar sua vida bem mais simples.

[ ] ‘s

Posted in sysadmin, Zabbix.

Tagged with , .