Работа с многострочными записями журнала (разбор журнала)

Скажем, у вас есть такие журналы

Thu 2014-10-09 23:55:12: 01: Session 525229; child 0101
Thu 2014-10-09 23:55:12: 05: Accepting IMAP connection from [172.1.2.3:52337] to [1.2.3.4:143]
Thu 2014-10-09 23:55:12: 03: --> * OK bla.com IMAP4rev1 Mailserver 14.0.3 ready
Thu 2014-10-09 23:55:12: 02: <-- 1 capability
Thu 2014-10-09 23:55:12: 03: --> * CAPABILITY IMAP4rev1 NAMESPACE AUTH=LOGIN AUTH=PLAIN IDLE COMPRESS=DEFLATE ACL UNSELECT UIDPLUS QUOTA BINA
RY XLIST
Thu 2014-10-09 23:55:12: 03: --> 1 OK CAPABILITY completed
Thu 2014-10-09 23:55:12: 02: <-- 2 authenticate plain
Thu 2014-10-09 23:55:12: 03: --> +
Thu 2014-10-09 23:55:12: 02: <-- ******
Thu 2014-10-09 23:55:12: 01: Authenticated as bla@blubb.com

Я хочу сделать некоторые учетные записи пользователей.

Теперь информация (номер сеанса, IP-адрес, имя пользователя, ...) распределена по нескольким строкам, как показано выше.

Как бы вы "конвертировали" такие данные в список IP/ пар пользователей?

Вы можете делать такие вещи, как grep -e ": Session" -e ": Accepting" -e ": Authenticated" logfile

что бы дать вам

Thu 2014-10-09 23:55:12: 01: Session 525229; child 0101
Thu 2014-10-09 23:55:12: 05: Accepting IMAP connection from [172.1.2.3:52337] to [1.2.3.4:143]
Thu 2014-10-09 23:55:12: 01: Authenticated as bla@blubb.com
Thu 2014-10-09 23:55:13: 01: Session 525230; child 0101
Thu 2014-10-09 23:55:13: 05: Accepting IMAP connection from [172.1.2.4:52537] to [1.2.3.4:143]
Thu 2014-10-09 23:55:13: 01: Authenticated as bla@blubx.com
...

Как бы вы разделили эти предметы?

Все это как-то очень неестественно.

1 ответ

Используйте LogStash, который имеет встроенную поддержку многострочных записей.

Другие вопросы по тегам