Назад | Перейти на главную страницу

Интерпретация файлов журнала exim после синтаксического анализа

Я разбираю файлы журнала exim и из-за моего метода обработки теряю исходный порядок все записи в этом файле. Я перестраиваю транзакции по их идентификатору транзакции (т.е. 1OfiYX-0000Ev-7k), но по-прежнему нет способа определить исходный порядок.

В <= , => , == , ** исходный порядок персонажей имеет значение, верно? Есть ли способ восстановить заказ без дополнительной информации?

Αντίο

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

Exim поставляется с документацией «Спецификация Exim»; по крайней мере, у вас должен быть файл с именем "spec.txt", если не .pdf или другой вариант; это также онлайн на http://www.exim.org/; вы можете найти «49. Файлы журналов», документирующие точный формат файлов журналов, и «50. Утилиты Exim».

Каждая строка журнала имеет отметку времени; сгруппируйте по идентификатору сообщения exim, а затем отсортируйте по метке времени, и вы получите исходный порядок обратно.

Я думаю, что ответ, ограниченный исключительно символами, о которых вы спрашиваете, заключается в том, что <= всегда будет стоять перед каждым из других перечисленных вами символов, а сообщение Completed линия появится после всех этих символов. Однако каждый из остальных символов ==, =>, **, могут появляться в любом порядке между <= и Completed.

Следует иметь в виду, что сообщение может иметь несколько получателей, и каждый из этих получателей может быть отложен (==), поэтому порядок этих символов имеет значение для каждого получателя сообщения

Итак, в каждом сообщении должно быть ровно одно <= когда сообщение принято локальным сервером

В каждом сообщении должно быть ровно одно Completed строка, указывающая, что локальный сервер завершил работу с сообщением

Между этими:

Каждое сообщение: получатель будет иметь ровно одно из ** (отказ) или => (доставлен). Это будет последняя запись для этого конкретного сообщения: получатель.

Каждое сообщение: получатель может иметь одно или несколько == (отложенные) линии. Если сообщение: у получателя есть == строка журнала, это произойдет перед этим сообщением: получатель => или ** линия.

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

Да дело в том, что они указывают направление потока сообщений. Вам необходимо улучшить свой метод обработки, чтобы не изменять порядок записей.

Вы пробовали использовать один из доступных парсеров файлов журнала, например awstats или лесопилка.