Gmain_timeout_dispatch – Erro em meu servidor de monitoramento com heartbeat
15 de Agosto de 2013, 15:53 - sem comentários aindaProblema de hoje; Dois servidores Zabbix configurados em um ambiente de alta disponibilidade, perdi alguns pings no endereço IP virtual e na minha analise no log do heartbeat achei isso: Aug 11 08:00:15 SERVIDOR heartbeat: [12127]: WARN: Gmain_timeout_dispatch: Dispatch function for send local status took too long to execute: 70 ms (> 50 ms) (GSource: […]
Organização de scripts e configurações de agentes Zabbix
12 de Agosto de 2013, 18:13 - sem comentários aindaDepois de uma conversa na lista de usuários do Zabbix, cheguei a conclusão que era necessário organizar as configurações e scripts que me permitem monitorar além dos itens padrões que acompanha o zabbix-agent. Para tal, dividi em duas pastas: /etc/zabbix/conf.d/ – Essa pasta tem como objetivo reunir todos os arquivos de configuração que tem os […]
Monitorando DRBD com Zabbix
6 de Agosto de 2013, 0:00 - sem comentários aindaDRBD é um serviço de sincronização de discos entre servidores, via rede. Criando assim um ambiente de alta disponibilidade. Para monitorar o DRBD é muito simples, basta que adicione as duas linhas abaixo no arquivo de configuração do seu agente zabbix, nos servidores que deseja monitorar essa sincronização (Geralmente esse arquivo se encontra é /etc/zabbix/zabbix_agentd.conf) […]
Monitorando Rsyslog com Zabbix
13 de Maio de 2013, 0:00 - sem comentários aindaGerenciar o log é uma coisa séria, e pensando nisso, reservei um tempo para pesquisar sobre como poderia monitorar meu rsyslog, que é o software responsável pelo log de todos meus servidores.
Você sabia que o rsyslog, por padrão, tem um limite de escrita de log? Isso mesmo, de acordo com a sua documentação são 200 logs em um intervalo de 5 segundos, sei que parece muito para maioria dos ambientes, mas ninguém quer perder log, né? Seria legal no mínimo saber que isso aconteceu, para que possamos em ultimo caso aumentar um pouquinho esse limite, correto?
Para monitorar o Rsyslog usaremos um módulo chamado impstats, que ainda está em desenvolvimento, mas tem funcionado pra mim a contento por hora e infelizmente é a única forma que temos até o momento.
Para configurar esse módulo no seu rsyslog é muito simples, abra o arquivo /etc/rsyslog.conf e adicione no topo, isso mesmo! No topo do arquivo, pois caso contrário não vai funcionar, a seguinte configuração:
module(load="impstats" interval="600" severity="7")
# to actually gather the data:
syslog.=debug /var/log/rsyslog-stats
Mude os parâmetros a gosto, para quem já conhece o rsyslog, não encontrará dificuldades em fazer isso, caso tenha, por favor, comente nessa postagem, tentarei ajudar. Se mudar o caminho do arquivo, por favor, mude no restante da documentação, caso contrário não irá funcionar.
Agora vamos para configuração do agente Zabbix.
Para obtermos a nossa informação, usaremos a configuração de itens de usuário do zabbix, também conhecida como UserParameter.
Acesse seu arquivo de configuração do servidor onde deseja monitorar o rsyslog e adicione a seguinte configuração:
# Monitoramento Rsyslog
UserParameter=rsyslog.enqueued,/usr/bin/tail -n20 /var/log/rsyslog-stats | /bin/grep main | /usr/bin/tail -1 | /bin/cut -d" " -f7 | /bin/cut -d"=" -f2
UserParameter=rsyslog.full,/usr/bin/tail -n20 /var/log/rsyslog-stats | /bin/grep main | /usr/bin/tail -1 | /bin/cut -d" " -f8 | /bin/cut -d"=" -f2
UserParameter=rsyslog.discarded.full,/usr/bin/tail -n20 /var/log/rsyslog-stats | /bin/grep main | /usr/bin/tail -1 | /bin/cut -d" " -f9 | /bin/cut -d"=" -f2
UserParameter=rsyslog.discarded.nf,/usr/bin/tail -n20 /var/log/rsyslog-stats | /bin/grep main | /usr/bin/tail -1 | /bin/cut -d" " -f10 | /bin/cut -d"=" -f2
Modifique o dono do arquivo, para que o zabbix possa fazer a consulta:
# chown zabbix /var/log/rsyslog-stats
Para evitar que esse arquivo cresça demais, vamos usar o logrotate! Crie o arquivo /etc/logrotate.d/rsyslog com o seguinte conteúdo :
/var/log/rsyslog-stats {
weekly
rotate 5
compress
notifempty
missingok
create 0600 zabbix zabbix
}
Reinicie seu serviço do Zabbix e vamos para configuração via interface web do zabbix.
Importe esse template no seu Zabbix e aplique no host desejado. Pronto!
Monitorando se SNMP está funcionando no ativo
9 de Abril de 2013, 0:00 - sem comentários aindaQuem nunca foi pego de surpresa ao verificar que seu ativo, que você configurou para monitorar informações via SNMP, teve suas configurações internas de acesso SNMP modificadas, assim acabou percebendo isso apenas muito tempo depois e por fim perdeu informação nesse intervalo de tempo?
Nativamente, o zabbix não tem monitoria desse tipo de situação, pois se ele não retornar nada em uma consulta SNMP nenhum alerta é possível configurar, não sem a criação de um script, pois quando a consulta SNMP tem retorno de erro o item monitorado é dado como “Não suportado” e então desabilitado automaticamente.
Pensando nisso, criei um script para testar se o acesso SNMP está funcionando perfeitamente e com isso caso não consiga obter informação, ele retornará uma valor que poderemos tratar em uma trigger, no nosso caso 0.
Vamos a prática, primeiro acesse seu servidor zabbix.
Na pasta /etc/zabbix/externalscripts crie o arquivo checa_snmp.sh, com o seguite contéudo:
#!/bin/bash
RETORNO=`/usr/bin/snmpwalk -r 1 -v $3 -c $2 $1 IF-MIB::ifIndex.1 2> /dev/null`
if [ $? != 0 ] ; then
echo 0
else
echo $RETORNO | cut -d’ ‘ -f4
fi
Agora torne esse arquivo executável:
# chmod +x /etc/zabbix/externalscripts/checa_snmp.sh
Entre na interface web do servidor Zabbix. No seu template de SNMP ou onde desejar, crie um item novo.
Coloque o nome do seu item, no meu caso coloquei “Checa acesso SNMP”, mas fique a vontade.
No campo tipo, selecione a opção “Monitoramento externo”.
No campo chave, escreva checa_snmp.sh["<escreva aqui o nome da sua comunidade>","<versão do SNMP>"].
O retorno “0″ (zero) sempre indica falha, ou seja, basta criar uma trigger para verificar essa condição e pronto! Resolvido seu problema!