O Zabbix pode ser utilizado como para monitoração e análise centralizada de arquivos de log, com ou sem suporte a rotação.
As notificações podem ser utilizadas para avisar os usuários quando um arquivo de log contêm determinados textos ou padrões de texto.
Para monitorar um log você precisa:
Certifique-se que o arquivo de configuração do agente tenha, no mínimo, os parâmetros a seguir devidamente configurados:
Para configurar um item de monitoração de log:
Você deverá preencher alguns campos específicos:
Tipo | Selecione Agente Zabbix (ativo). |
Chave | Defina como: log[/caminho/para/o/arquivo,<regexp>,<encoding>,<maxlines>,<mode>,<output>] ou logrt[/caminho/para/o/arquivo/expressao_regular_do_padrao,<regexp>,<encoding>,<maxlines>,<mode>,<output>] O Zabbix Agent irá filtrar as entradas no arquivo de log pelo conteúdo da expressão regular, se informado. Certifique-se que o usuário 'zabbix' tem permissões de acesso para ler o arquivo, a ausência destas fará com que o arquivo fique como 'não suportado'. Para maiores detalhes veja as entradas log e logrt na seção de chaves da lista de itens do Zabbix Agent. |
Tipo da informação | Tipo do dado de Log. Se o parâmetro opcional output for informado, você poderá selecionar um tipo apropriado de informação que não seja o “Log”.Observe que ao selecionar um tipo diferente de “Log” o dado salvo não terá a informação de data e hora. |
Intervalo entre atualizações (em segundos) | Este parâmetro define de quanto em quanto tempo o Zabbix irá verificar se existem alterações no arquivo de log. O menor valor é 1 segundo. |
Formato de data no log | Com este campo você pode, de forma opcional, definir o padrão para análise de data e hora no log. Se for deixado em branco, os dados de data e hora não serão analisados. Máscara suportada: * y: Ano (0001-9999) * M: Mês (01-12) * d: Dia (01-31) * h: Hora (00-23) * m: Minuto (00-59) * s: Segundo (00-59) Por exemplo, considere a linha a seguir do log do Zabbix Agent: “ 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).” Ela começa com seis caracteres para o PID, seguidos de uma data, hora e o resto da linha. A máscara desta linha pode ser definida como “pppppp:yyyyMMdd:hhmmss”. Observe que os caracteres “p” e “:” são espaços reservados que podem conter qualquer coisa, ao contrário de “yMdhms”. |
logrt[]
e o Zabbix Agent estiver acompanhando o arquivo mais recente e este for excluído, será registrada uma mensagem de aviso “there are no files matching ”<regexp mask>“ in ”<directory>“
. O Zabbix Agent irá ignorar os arquivos de log com data de última modificação menor do que o valor mais recente visto pelo item de logrt[]
.log[]
ou logrt[]
possui um Intervalo de Atualização de 1 segundo, por padrão o Agente analisará não mais que 80 linhas no log e enviará não mais que 20 linhas compatíveis para o Zabbix Server por verificação. Ao incrementar o parâmetro MaxLinesPerSecond no lado do agente ou definindo o parâmetro maxlines na chave do agente, o limite poderá ser incrementado em até 4000 linhas analisadas e 1000 linhas enviadas para o Zabbix Server por verificação. logrt
são suportadas apenas no nome do arquivo, expressões regulares no nome de diretório não são suportadas.logrt[]
passa a ser 'não suportado' se diretório dos arquivos de log não existir.logrt[]
passe para o estado 'não suportado'. Erros de leitura em arquivos de log serão registrados como alerta nos logs do Zabbix Agent apenas.log[]
ou logrt[]
passou para o estado 'não suportado'.O Zabbix Agent pode monitorar o seu próprio log, exceto se o nível de debug estiver como 'DebugLevel=4'.Algumas vezes você precisa extrair apenas uma parte de uma linha do log, ao invés de obter a linha toda.
Desde o Zabbix 2.2.0, os itens de log tem a capacidade de extrair apenas a parte relevante das linhas compatíveis. Isso pode ser feito ao utilizar o parâmetro opcional output nos itens log
e logrt
.
output
permite indicar um subgrupo da parte compatível que pode ser de interesse.
Então, por exemplo
log[/path/to/the/file,"large result buffer allocation.*Entries: ([0-9]+)",,,,\1]
irá retornar apenas o contador encontrado em:
Fr Feb 07 2014 11:07:36.6690 */ Thread Id 1400 (GLEWF) large result buffer allocation - /Length: 437136/Entries: 5948/Client Ver: >=10/RPC ID: 41726453/User: AUser/Form: CFG:ServiceLevelAgreement
O motivo pelo qual o Zabbix retorna somente o número é por que o parâmetro output
está definido como \1, se referenciando o primeiro e único grupo de interesse: ([0-9]+)
E, com a habilidade de extrair e retornar um número, o valor pode ser utilizado para definir triggers.