2016-02-29 6 views
1

Я пытаюсь создать скрипт Python, но я немного застрял и не могу найти то, что искал в поиске Google, так как это довольно конкретный.Попытка создать скрипт Python для извлечения данных из .log-файлов

мне нужно запустить скрипт на два .log файлов (auth.log и access.log), чтобы просмотреть следующую информацию:

Найти, сколько попыток были сделаны с бен счетом

Так сколько попыток бен счет сделал, чтобы попытаться получить на сервере.

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

Может ли кто-нибудь помочь мне в этом, как я это делаю? При необходимости я могу предоставить дополнительную информацию.

Заранее спасибо.

Edit:

мне удалось напечатать все «корзины» Времена появляется в журнале, который является одним из способов сделать это. Кто-нибудь знает, могу ли я считать, сколько раз появляется «bin»?

with open("auth.log") as f: 
for line in f: 
    if "bin" in line: 
     print line 
+0

Или вы можете просто использовать cat file.log | grep "keywords" –

+0

Как насчет этого: 'cat file.log | egrep "keyword1 | keyword2 | ..." | wc -l' (egrep дает вам возможность искать ключевое слово1 или ключевое слово2, а «wc -l» дает вам возможность подсчитать. – Dominique

+0

Я отредактировал исходное сообщение с тем, как я это сделал, любые предложения, если есть способ подсчитать эти события? –

ответ

0

Если вы хотите использовать инструмент для использования, вы можете использовать ELK (Elastic, Logstash и kibana). Если нет, тогда вам нужно прочитать первый файл журнала, а затем применить регулярное выражение в соответствии с вашим требованием.

0

Учитывая, что вы работаете с системными журналами и их формат известен и стабильные, мой подход был бы что-то вроде:

  • определить набор ключевых слов (либо общим, либо один за журнал)
  • для каждый журнал, итерация по строке
  • после сопоставления ключевых слов, добавьте соответствующую информацию из каждой строки, например словарь

Вы можете использовать инструменты оболочки (как grep, cut и/или awk) для предварительной обработки журнала и извлечь соответствующие строки из журнала (я предполагаю, что вам нужно только, например, данные об ошибках).

Вы можете использовать что-то вроде this в качестве отправной точки.