LINUX.ORG.RU

Анализ и сопоставление записей в логах


0

1

Добрый день!

Возникла задача делать выводы анализируя несколько лог файлов, наверняка уже существуют инструменты как раз для этого. Не подскажите? или хотя бы ключевые слова для гугления.

Задачи что-то вроде «если в логе 1 появилась запись X, в логе 2 появилась Y, а в логе 3 до записи Z1 не появлялас Z2, то делаем вывод что случилось нечто и генерируем событие»

Ответ на: комментарий от redbaron

>Задачи что-то вроде «если в логе 1 появилась запись X, в логе 2 появилась Y, а в логе 3 до записи Z1 не появлялас Z2, то делаем вывод что случилось нечто и генерируем событие»

Это решается без всяких макаронов. Всё что нужно - почитать (и понять) мануал по grep'у

Led ★★★☆☆
()
Ответ на: комментарий от redbaron

>Не смешно. хочется нормального описания событий, а не макароны if'ов

А как оно примерно должно выглядеть, это нормальное описание?

А так вообще AWK.
Или Perl.

proud_anon ★★★★★
()
Ответ на: комментарий от Led

Да ладно? perl сойдет за grep на стероидах? Вот тут (http://docstore.mik.ua/orelly/perl2/sysadmin/ch09_05.htm) в секции 9.5.2 развели тонны кода просто ради того, что б из wtmp и xferlog понять что и когда делал пользователь. И это всего лишь тривиальный случай.

Так что grep и perl могут решить эту задачу, но слишком большой ценой.

Я ищу что-нибудь декларативное, когда на каком-нибудь DSL описываешь что ищешь (учитывая зависимости и условия, в том числе и по времени между событиями), скармливаешь логи и оно выдает всё что нашло.

redbaron ★★
() автор топика
Ответ на: комментарий от redbaron
#!/usr/bin/env python
# -*- coding: utf8 -*-

import tailer
import re
import subprocess

path = '/var/log/test.log'

def send_msg(text, receive):
    cmd = """ echo %s | /bin/jabber_sender.py -t %s """ % (text, receive)
    subprocess.Popen(cmd ,shell=True, stdout = subprocess.PIPE)

if __name__ == "__main__":
    for line in tailer.follow(open(path)):
	match = re.findall('J;\d;\d;([a-zA-Z0-9_ ]+)', line)
	if match:
	    send_msg(match[0], '***@jabber.ru')

?

joinordie
()
Ответ на: комментарий от redbaron

>Я ищу что-нибудь декларативное, когда на каком-нибудь DSL описываешь что ищешь (учитывая зависимости и условия, в том числе и по времени между событиями), скармливаешь логи и оно выдает всё что нашло.

Так бы и сказал. Тогда awk.

Led ★★★☆☆
()

Может быть OSSEC? (http://www.ossec.net/) Например, http://www.ossec.net/doc/manual/monitoring/index.html

(Сам не пробовал, но знаю, что там есть возможность писать правила для лог файлов в виде простого XML-я. Вот только не знаю про поддержку нескольких файлов сразу.)

php-coder ★★★★★
()

>Возникла задача делать выводы анализируя несколько лог файлов, наверняка уже существуют инструменты как раз для этого. Не подскажите? или хотя бы ключевые слова для гугления.

SIEM

as33 ★☆☆
()
Ответ на: комментарий от proud_anon

>А как оно примерно должно выглядеть, это нормальное описание?

Что-то похожее на Sawzall от Google (http://www.linux.org.ru/news/opensource/5519001) только чуть более statefull, а без этого Sawzall годен только статистику собирать

redbaron ★★
() автор топика

конечные автоматы тебе в руки

sdio ★★★★★
()

logwatch/logcheck, после некоторой допилки. Но там perl...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.