Skip to content

zabbix

Errata #3

Olá, leitores!

Queremos mais uma vez agradecer pela confiança ao comprarem o nosso livro. Esperamos que ele esteja sendo útil no dia a dia.

Esta errata corrige um problema na configuração do SELinux.

No capítulo 19, na página 406 faltou informar a instalação do pacote selinux-policy-devel, para que seja criado o diretório: /usr/share/selinux.

Fonte: https://www.centos.org/docs/5/html/Deployment_Guide-en-US/rhlcommon-chapter-0001.html

Resumindo, a alteração da página 406 fica assim:

Antes:

yum -y install policycoreutils-python

Depois:

yum -y install policycoreutils-python selinux-policy-devel

Obrigado a Renato Barradas por nos avisar sobre este problema. 🙂

Abraço.

Errata #2

Olá, leitores!

Queremos novamente agradecer pela confiança ao comprarem o nosso livro. Esperamos sinceramente que ele seja útil no dia a dia.

Esta errata corrige dois pequenos problemas no texto.

1) Na página 166, a Figura 6.10 não está com o mapeamento de imagens aplicado na área que contém os ícones do grupo de host.

A Figura 6.10 deverá ficar do jeito que está na imagem mostrada abaixo.

 

capitulo_6_figura_6.10_new

 

2)  Na página 124 é mostrada a Tabela 4.15 para criar um item que obtém o percentual do espaço livre. O campo Unidade deve ficar com o valor %, ao invés de B.

 

Agradecemos a Carlos Markennedy por nos avisar sobre estes problemas. 🙂

Estas correções já foram aplicadas nos livros da terceira impressão (Jan/2016).

 

AVISOS:

a) As máquinas virtuais que antes estavam hospedadas no serviço Copy.com, agora estão hospedadas no Google Drive. Os links de download podem ser vistos nesta página http://zabbixone.com/?page_id=51.

b) Na página 189 é citado o uso do template fase_1_slide_show.xml, que está no diretório Capitulo_6 do repositório de arquivos do livro https://goo.gl/yRKuWB. Em algumas distribuições GNU/Linux, este template pode falhar e nestes casos deve ser usado o template fase_1_slide_show_enp0s3.xml, que também está no diretório Capitulo_6.

Abraço e bons estudos!

1000!

1000Muito obrigado, leitores!

Já conseguimos passar de mil livros vendidos em cinco meses.

Isso superou a melhor de nossas expectativas e torcemos para que o livro ajude cada um de vocês a realizarem o trabalho de monitoramento e gerenciamento de redes e serviços.

 

Ainda não comprou o livro?

Então acesse a página http://www.novatec.com.br/livros/zabbix/ e informe o código promocional ZABBIX para ganhar 20% de desconto.

Exercício com LLD personalizado e log no formato CSV

No livro De A a Zabbix, o assunto LLD é mostrado nas páginas 272 a 278.

Neste post vamos fazer um exercício adicional sobre este assunto.

Mas antes de começarmos o exercício, vamos entender alguns conceitos.

Conceitos:

LLD – Low Level Discovery => André Déo (um dos três autores do livro) publicou a seguinte definição em seu blog: “LLD é uma função do Zabbix responsável por detectar determinadas características de um objeto, de forma dinâmica. Por exemplo, o Zabbix vai achar dinamicamente todas as partições da sua máquina (o objeto são as partições), e coletar dados como tamanho da partição, espaço livre, espaço utilizado (essas são as características do objeto).”

JSON – JavaScript Object Notation => Segundo André: “é uma formatação para intercâmbio de dados computacionais, que para seres humanos é fácil de ler e escrever e, para as máquinas é fácil de interpretar e gerar. Se você entende como um XML funciona, entende como um JSON funciona ;-)”

CSV – Comma-separated values => é um formato que permite a separação de valores por vírgula, ponto e vírgula, enfim. Mais detalhes em: https://pt.wikipedia.org/wiki/Comma-separated_values

Parser => “Em Português conhecemos como Análise Sintática, mas a maioria das pessoas usa o termo em inglês, de maneira simples, significa ler uma entrada de dados, nesse caso um arquivo JSON, e interpretar a sua estrutura gramatical” (esta também é um definição que peguei do site do Déo).

Como funciona o LLD no Zabbix?

De forma resumida, o LLD no Zabbix funciona assim:

Você gera um arquivo ou executa um script que exiba os resultados no formato JSON utilizando o padrão de macros do Zabbix “{#OBJETO}”. Essas macros representarão os objetos, por exemplo: a lista de placas de rede, a lista de partições, a lista de base de dados, a lista de tabelas de uma base de dados, a lista de servidores, a lista de informações de um arquivo de log. Isso é a Regra de Descoberta de um LLD.
Em seguida você instrui o Zabbix a coletar características de um desses objetos da lista. Isso é o Protótipo de itens associado a uma regra de descoberta do LLD.

Por exemplo: para cada partição do sistema, o Zabbix coleta o tamanho da partição, o espaço livre e o espaço utilizado. Com esses itens gerados, podemos criar outros protótipos como triggers e gráficos, telas. Tudo automaticamente. Isso dentro de um template facilita o uso em vários hosts.

O LLD tem suporte as chaves suportadas pelo Zabbix, OIDs SNMP ou Scripts Personalizados, que é o alvo deste exercício.

Arquivos usados no exercício

Baixe o pacote Alarmes_via_LLD. Descompacte o pacote e veja os seguintes arquivos:

alarm_zabbix.log => Arquivo de log no padrão CSV.

get_alarm_ldd.sh => Script que lê um arquivo de log no padrão CSV e exibe os dados no padrão JSON.

UserParameter.conf => Contém o UserParameter.

zbx_Alarmes_via_LLD.xml => Template que obtém, automaticamente, alarmes registrados em um arquivo de log. Ele já contém uma regra de descoberta do LLD cadastrado, que por sua vez contém protótipos de itens e triggers.

Objetivo do exercício

Vamos imaginar que temos uma aplicação fictícia que alimente um arquivo de log no formato CSV. Neste exercício temos o arquivo alarm_zabbix.log com o conteúdo abaixo.

1
O significado de cada campo do arquivo separado por vírgula é:

  • O primeiro campo de cada linha do arquivo de log exibe um número de identificação, que no template é representado pela variável {#ID}.
  • O segundo campo de cada linha exibe a hora em que o evento foi registrado.
  • O terceiro campo de cada linha exibe o tipo de equipamentos em que houve um evento.
  • O quarto campo de cada linha exibe o nome dos equipamento em que houve um evento.
  • O quinto campo de cada linha exibe o nome do componente de software, hardware ou serviço que foi afetado pelo evento, que no template é representado pela variável {#COMPONENT}. Neste exercício ele é o objeto.
  • O sexto campo de cada linha exibe o nome do evento, que no template é representado pela variável {#EVENT}.
  • O sétimo campo de cada linha exibe a severidade ou gravidade do evento. Embora seja possível obter a severidade automaticamente, o Zabbix não dá suporte a alterar a severidade automaticamente. Foi aberto este ticket sugerido a modificação https://support.zabbix.com/browse/ZBXNEXT-2769
  • O oitavo e último campo de cada linha exibe uma descrição do evento e até informações de solução do mesmo.

Foi desenvolvido o script get_alarm_ldd.sh, que também está no pacote, para ler cada linha do arquivo de alarme e exibir os dados no padrão JSON. O resultado do script foi homologado no site http://jsonlint.com/

O objetivo do exercício é usar um template que contém uma regra de descoberta para que exibe todos os eventos registrados no formato CSV no arquivo de log.
Esta regra de descoberta é acionada se o script for executado assim:

/usr/local/share/zabbix/externalscripts/get_alarm_ldd.sh LLD /usr/local/share/zabbix/externalscripts/alarm_zabbix.log

Como o objeto LLD deste exercício é o nome do componente, o resultado do comando acima pode ser filtrado quando o comando for executado da seguinte forma:

/usr/local/share/zabbix/externalscripts/get_alarm_ldd.sh LLD /usr/local/share/zabbix/externalscripts/alarm_zabbix.log NOME_COMPONENTE NOME_EVENTO

O comando exibe todos os registros relacionados a determinado evento e componente.
Com este resultado ainda não é possível usá-lo num LLD, pois ele não suporta a exibição de várias linhas de resultado para uma mesma chave de pesquisa. Para resolver isso, pode ser executado o comando da forma abaixo:

/usr/local/share/zabbix/externalscripts/get_alarm_ldd.sh LLD /usr/local/share/zabbix/externalscripts/alarm_zabbix.log NOME_COMPONENTE NOME_EVENTO ID_DO_EVENTO

Claro que não é necessário você saber cada ID os valores possíveis de cada campo do arquivo. Este é um trabalho do LLD. Ele vai coletar todas as características dos eventos e componentes e na interface Web do Zabbix você poderá saber o que é que está sendo registrado no arquivo de log e vai receber os alarmes conforme a ocorrência dos eventos para depois decidir que ação tomar (se vai enviar alguma notificação ou executar algum comando ou ação).

Executando o exercício

1) Acesse um host GNU/Linux que está sendo monitorado pelo Zabbix, via agente Zabbix, e insira no final do arquivo /usr/local/etc/zabbix_agentd.conf a seguinte linha:

UserParameter=GET_ALARM_LLD[*], $1 $2 $3 $4 $5 $6

2) Copie os arquivos get_alarm_ldd.sh e alarm_zabbix.log para o diretório: /usr/local/share/zabbix/externalscripts/

3) Depois reinicie o Agente Zabbix.

Com isso, foi criada a chave GET_ALARM_LLD[*], que pode receber 6 parâmetros, onde cada um deles significa:

$1 => caminho do script que no template está em uma macro de template. Ex.: /usr/local/share/zabbix/externalscripts/get_alarm_ldd.sh
$2 => a nossa regra de descoberta. EX.: LLD.
$3 => caminho do arquivo de log no formato CSV. Ex.: /usr/local/share/zabbix/externalscripts/alarm_zabbix.log
$4 => NOME_COMPONENTE. Ex.: BACKUP
$5 => NOME_EVENTO. Ex.: NEW_FILE
$6 => ID. EX.: 14

4) Acesse a interface Web do Zabbix e clique em Configuração > Templates > Importar. Importe o template zbx_Alarmes_via_LLD.xml.

Este template possui duas macros:

{$SCRIPT_ALARM} => /usr/local/share/zabbix/externalscripts/get_alarm_ldd.sh
{$FILE_ALARM} => /usr/local/share/zabbix/externalscripts/alarm_zabbix.log

Localize o template Alarmes via LLD e clique em Regras de Descoberta. A regra geral de descoberta possui a seguinte sintaxe: GET_ALARM_LLD[{$SCRIPT_ALARM},LLD,{$FILE_ALARM}]

O protótipo de item cadastrado neste template possui a seguinte sintaxe: GET_ALARM_LLD[{$SCRIPT_ALARM},LLD,{$FILE_ALARM},{#COMPONENT},{#EVENT},{#ID}]

O protótipo de trigger cadastrada neste template possui a seguinte sintaxe: {Alarmes via LLD:GET_ALARM_LLD[{$SCRIPT_ALARM},LLD,{$FILE_ALARM},{#COMPONENT},{#EVENT},{#ID}].str({#EVENT})}=1

Isto permite que sempre que houver a ocorrência de um determinado evento para um determinado componente, vai ser acionada uma trigger.

Associe o template ao host que contém o arquivo de log e o script.

Os resultados serão exibidos na página Monitoramento > Dashboard e em Monitoramento > Triggers.

 

2

3

4Fonte:

http://andredeo.blogspot.com.br/2014/11/lld-no-zabbix-com-shell-script.html

https://enrise.com/2014/12/automated-ssl-monitoring-low-level-discovery-zabbix/

https://www.reconnix.com/blog/2015/03/19/chris-davidson-using-zabbix-to-make-magic/

http://spinola.net.br/blog/?p=402

https://www.zabbix.com/documentation/2.4/manual/discovery/low_level_discovery

http://jsonlint.com/

http://thobias.org/doc/sosed.html

http://sed.sourceforge.net/sed1line_pt-BR.html

 

Feedback de um dos leitores do livro

Anderson_Freitas

 

Anderson Freitas, um dos leitores do livro “De A a Zabbix”, publicou um post em seu site contando suas impressões sobre o livro.

Eu, André Déo e Adail Spinola ficamos muito alegres com este feedback e pedimos autorização do leitor para copiar um trecho desses comentários.

 

 

 

 

 Desde o primeiro até o último capítulo, a obra aborda e mostra os tópicos mais importantes para você monitorar seu ambiente. O livro foi feito do jeito certo, para que qualquer novato no assunto consiga ler e dar os primeiros passos, até para aqueles que já tem certa experiência aprimorar alguns conceitos e descobrir novas funcionalidades. Composto por 416 páginas, o livro traz uma linguagem de fácil compreensão e método de lecionar genial, algo prático, com teorias alinhada as práticas de ambiente.

Além do “ideal”, o livro ainda apresenta tópicos de como otimizar o banco de dados e dicas de segurança, que enriquecem ainda mais o assunto, justificando a compra até dos mais experientes.

Os capítulos fornecem, de maneira equilibrada, conteúdo teórico e exercícios práticos de uso da ferramenta, personalizações e atalhos úteis do dia a dia, além de melhores práticas com base na experiência dos autores. São abordadas recomendações de segurança para reduzir as vulnerabilidades de seu ambiente, além de uma série de plugins para ampliar o potencial da ferramenta. – Editora Novatec – Acessado em 26/07/2015.

Completamente ilustrado e com uma gama enorme de explicações, o livro se torna indispensável para quem deseja aprender mais sobre monitoramento com Zabbix ou até mesmo iniciar o monitoramento de seu parque tecnológico. Para quem estiver afim, abaixo o link para a compra do livro:

http://www.novatec.com.br/livros/zabbix/

Pode ter certeza que vai ser um investimento muito benéfico para sua carreira e ambiente. O meu está garantido 😛

Att.

Anderson Freitas

 

Fonte: http://dialplanreload.blogspot.com.br/2015/07/de-a-a-zabbix.html

Resolução de questões sobre expressão regular

Recentemente (Julho/2015) a comunidade Brasileira de usuários do Zabbix publicou uma oportunidade com algumas questões que deveriam ser respondidas pelos usuários como condição necessária para participação no sorteio de 2 vagas em curso EAD e um e-book.

Dentre as sete questões haviam três relacionadas ao uso de expressões regulares no Zabbix. Vamos dar nossa contribuição explicando como elas teriam sido facilmente respondidas através do uso do próprio Zabbix. Vamos às questões:

Primeira questão:
O Zabbix possui suporte a expressões regulares. Caso seja adicionada a expressão: (^[0-9]$|^1[0-9]$|^2[0-9]$) em uma expressão regular com valor verdadeiro esperado qual das opções abaixo será válida?

a) 91
b) 11
c) 912
d) 81929
Na primeira questão é apresentada uma expressão regular e pergunta-se qual é o valor que teria resultado positivo ao ser validado pela mesma.
Então a forma mais fácil de responder você acredita que seja?

Continue reading

Errata #1

Bom dia, leitores!

Queremos agradecer pela confiança ao comprar o nosso livro. Esperamos sinceramente que ele seja útil no dia a dia.

Avisamos que o repositório epel.gtdinternet.com, usado na instalação de pacotes requisitos no CentOS 6 e 7 e no Red Hat 6 e 7, está inacessível hoje (08/06/2015).

Isso afeta diretamente quem quer instalar o Zabbix seguindo as nossas instruções mostradas no capítulo 2 nas páginas 29 e 30.

Abaixo estão os links certos a serem usados:

Seção em que o link é citado no capítulo 2 página 29: Comum entre CentOS 6.x e Red Hat 6.x

Antes:

 wget http://epel.gtdinternet.com/6/i386/epel-release-6-8.noarch.rpm

Depois:

wget  --no-check-certificate https://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

 

Seção em que o link é citado no capítulo 2 página 30: Comum entre CentOS 7.x e Red Hat 7.x

Antes:

rpm -Uvh http://epel.gtdinternet.com/7/x86_64/e/epel-release-7-5.noarch.rpm

Depois:

rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

 

Agradecemos ao leitor Ikaro Bezerra, que nos reportou este problema e ao mesmo tempo nos deu uma solução.