O Zabbix 2.0 lê os logs corretamente, mas o status do acionador é “UNKNOWN”

1

Estou tentando monitorar um arquivo de log para a palavra "error" e, se a palavra aparecer, disparar um gatilho para cada nova ocorrência de "error". Estou começando simplesmente, com um arquivo ( /var/log/test.log ) que é legível por todos. Contém as seguintes linhas:

test
error
also an error
but not this

O item no Zabbix é log[/var/log/test.log,error] , tipo "Agente Zabbix (Ativo)", com tipo de informação "log".

Estou usando o seguinte acionador associado a este item: {nero:log[/var/log/test.log,error].str(error)}=1

Eu tentei deixar a parte "error" fora do item e alterar o valor do acionador para igual a 0. Não importa o que eu faça, recebo um status de acionador de UNKNOWN na guia Eventos.

Não tenho certeza do que está faltando aqui, alguém vê o problema? Eu verifiquei o log do agente no servidor e ele não menciona nenhum problema.

    
por zymhan 19.03.2014 / 21:33

4 respostas

0

Para registro, nunca consegui resolver o problema. Em vez disso, eu configurei uma tarefa do cron para percorrer cada linha do arquivo de log, enviando-a para o servidor Zabbix com o zabbix_sender.

log_file="/var/log/rsmonit_errors.log"          # File to read
zabbix_server="host.foo.com"       # FQDN or IP of Zabbix Sever
zabbix_host="servername"                             # Host name as defined in the entry in the Zabbix Server. NOT DNS or $HOSTNAME, this is specific to zabbix. Case sensitive.
item_key="rsmonit.errors"                       # Item name, as defined for the host in the Zabbix Server

# Loop through each line and feed it via zabbix_sender to the Zabbix server
while read line; do
    echo $line | xargs -0 zabbix_sender -v -z $zabbix_server -s $zabbix_host -k $item_key -o
done < $log_file

Isso parece funcionar muito bem, embora pareça ter alguns alertas duplicados, em vez de alertas exclusivos para cada linha. Por favor, sinta-se à vontade para apontar qualquer local que possa ser melhorado, já que é a primeira vez que faço um roteiro como este.

    
por 24.03.2014 / 14:48
1

Tente usar aspas no item:

log[/var/log/test.log,"error"]

E certifique-se de usar o tipo "agente do Zabbix (ativo)" e "Log" como tipo de item.

Você também pode precisar definir a codificação do arquivo, mas não tenho certeza disso. Eu não tenho certeza sobre aspas, mas a documentação diz isso e muitos exemplos que eu encontrei dizem que, quando eu estava trabalhando com meus problemas com logs.

    
por 08.04.2014 / 08:20
1

Primeiro, verifique se o item realmente recebe essas linhas de erro. Verificar monitoramento - > Últimos dados Se isso não acontecer, esse é um problema de configuração do agente ativo, não um problema de monitoramento de log. Verifique se o nome do host do agente (arquivo de configuração do daemon do agente, parâmetro Hostname) corresponde ao nome do host no frontend - note que é sensível a maiúsculas e minúsculas.

Se o item recebeu as linhas de erro, provavelmente o item não recebeu novos valores depois de configurar o acionador. Marque a caixa de seleção "Geração de vários eventos PROBLEM" para esse gatilho e execute: erro $ echo > > /var/log/test.log

O agente deve pegar a nova linha e enviá-la ao servidor. O servidor avalia esse acionador depois de obter apenas um novo valor.

    
por 03.05.2016 / 15:20
-2

O Zabbix, como muitos outros aplicativos modernos de monitoramento, permite que seus usuários implementem plugins personalizados. No seu caso, para monitorar os arquivos de log da maneira mais simples possível, você precisará de um plug-in que tenha sido criado especificamente para isso; um que permite especificar facilmente os padrões de log a serem procurados e os limites a serem atribuídos a esses padrões quando eles forem encontrados no log.

Um exemplo dessa ferramenta é autoresolve.kl.sh

O processo de instalação desta ferramenta é simples:

1. Log into the host on which you have log files to monitor
2. wget (the-url-link-of-zip-file-of-autoresolve.kl.sh)
3. cd /tmp ; unzip (the-downloaded-zip-file)
4. ./install.sh /var/tmp/KINGLAZY/SHIELDX-autoresolve.kl.sh /home/jserver -force

Substitua ' / home / jserver ' pelo seu diretório de plugins do zabbix. Além disso, certifique-se de executar os comandos de instalação anteriores como um usuário comum - não como root, a menos que esteja testando.

Após a instalação, você pode começar a monitorar os registros com um comando simples como este:

./ autoresolve.kl.sh localhost / var / tmp / logXray, fixador, 0n-1y-2y, 0-uname, 1-quem, 2-uptime autonda /var/log/rsmonit_errors.log 60m ' erro ''. ' 1 2 error_watch -ndshow

Os parâmetros mais importantes que você precisará alterar são:

  1. /var/log/rsmonit_errors.log - Este é o arquivo de log que você está monitorando

  2. error - Esta é a string que você está procurando no arquivo de log. Para monitorar múltiplos padrões dentro de um log, basta especificá-los desta forma: "error_P_fail_P_segfault_P_crash_P_panic". O sublinhado P sublinhado significa "|". É uma maneira mais segura de especificar o símbolo de pipe ao usar a ferramenta com aplicativos externos ... como o Zabbix.

  3. error_watch - Este é o nome / tag que você está atribuindo a essa verificação de log específica. Posteriormente, se desejar, essa tag pode ser usada para ajudar a gerar gráficos no log monitorado.

Para uma explicação detalhada sobre o significado de cada parâmetro, você pode visitar o página de ajuda diretamente .

Na mesma página de ajuda, você também encontrará instruções passo a passo sobre como fazer com que essa ferramenta funcione com o Zabbix ... ou seja, qual arquivo de configuração do zabbix você precisa atualizar ... e quais configurações você precisa ter na interface web do zabbix.

    
por 30.05.2016 / 04:35