ما هي هذه الخطوط من سجل تحليل بيرل تفعل و كيف يمكنني الخروج مع شيء ممكن أن تعمل ؟

StackOverflow https://stackoverflow.com//questions/9660941

  •  12-12-2019
  •  | 
  •  

سؤال

هذه المشكلة تأتي ضمن سياق pop-قبل-smtp / Postfix / برج الحمام ، ولكن إذا عرفت بيرل سلسلة تحليل, أنا يمكن أن تأتي مع إجابة نفسي.ومع ذلك أنا تائه أنا لا أعرف حتى الدقيقة السؤال.إلى الطرافة:

لقد تم استخدام Postfix لفترة طويلة الآن و هي نوع من مدمن مخدرات على ذلك.الآن نحن بحاجة إلى "الانتقال إلى العصر الحديث" دع الناس ترسل عبر البريد الإلكتروني SMTP server(s) حتى عندما كنت خارج الشبكة.لذلك كلف هذا العمل لقد وجدت pop-قبل-smtp.

يمكنك العثور عليه هنا.

لدي كل تكوين لكنه فشل في الاختبار.لقد troubleshot باستخدام الاتجاهات هنا, و قرر أن بيرل الذي يحاول تحليل سجل يبدو أن تكون غير صحيحة.نحن نستخدم برج الحمام لدينا IMAP / POP server, و هناك ثلاثة خيارات معينة في ملف التكوين.هنا مقتطف من ملف التكوين تظهر ثلاث مجموعات:

# For Dovecot POP3/IMAP when using syslog.
#$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
#    'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
#$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
#    'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';

# For Dovecot POP3/IMAP when it does its own logging.
##$logtime_pat = '(\d\d\d\d-\d+-\d+ \d+:\d+:\d+)';
#$pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' .
#    'Login: .+? rip=[:f]*(\d+\.\d+\.\d+\.\d+),';
#$out_pat = '^dovecot: [LOGTIME] Info: (?:imap|pop3)-login: ' .
#    'Disconnected.*? rip=[:f]*(\d+\.\d+\.\d+\.\d+),';

# For older Dovecot POP3/IMAP when it does its own logging.
#$pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' .
#    'Login: \S+ \[[:f]*(\d+\.\d+\.\d+\.\d+)\]';
#$out_pat = '^(?:imap|pop3)-login: [LOGTIME] Info: ' .
#    'Disconnected.*? \[[:f]*(\d+\.\d+\.\d+\.\d+)\]';

هو واحد من المفترض أن حرر تلك التي تنطبق بيد أن أيا منها لا يعمل.

أنا نخلص إلى أن 'بات' هو نمط تسجيل الدخول و الخروج بات هو نمط تسجيل الخروج أو فصل.

الفعلية سجل تنسيق مختلفة بشكل واضح من أي من هؤلاء الثلاثة ، لكنها قريبة.هنا مثال على الزوج:

Mar 11 17:53:55 imap-login: Info: Login: user=<username>, method=PLAIN, rip=208.54.4.205, lip=192.168.1.1, TLS

Mar 11 17:59:10 IMAP(username): Info: Disconnected: Logged out bytes=352/43743

عند استخدام البوب, 'imap-تسجيل الدخول' يتم استبدال 'pop-تسجيل الدخول' ، على log-out, 'البوب' محل 'IMAP' لماذا التغيرات في القيمة لا أستطيع أن أقول!

Importand البيانات هي:الزمني اسم المستخدم و عند تسجيل الدخول "عن بعد" الملكية الفكرية ("مزق").

إعطاء ما يكفي من الوقت, كنت قد تكون قادرة على قطعة معا شيء يعمل ، ولكن منذ أنا لا أعرف فعلا Perl, هذا هو نوع من صعبة.الرجاء مساعدتي في كتابة القواعد الجديدة إلى تحليل تسجيل الإخراج المستخدمة مع برج الحمام الحزمة.

هل كانت مفيدة؟

المحلول

على (:?.. جزء من التعبير العادي Perl يسأل عن تجميع ولكن ليس التقاط;هذا يسمح مجموعات كاملة لتكون مطابقة أو تجاهل مثل المجموعة دون التأثير على التقاط مجموعة الأرقام ؛ جميع خطوط القبض على واحد بالضبط مجال الملكية الفكرية للسماح.(وهو أمر غريب قليلا, قد يتوقع كل من اسم المستخدم وكلمة الملكية الفكرية ، ولكن هذا قد يكون من الأسهل على المدى الطويل.)

# For Dovecot POP3/IMAP when using syslog.
$pat = '^[LOGTIME] \S+ (?:imap|pop3)-login: Info: ' .
    'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
# not necessary? see comment header START OF PATTERNS
# $out_pat = '^[LOGTIME] \S+ (?:IMAP|POP3)\(\S+\): Info: ' .
#    'Disconnected.*';

لقد أزلت dovecot قطع لأنها لم تكن في المدخلات الخاصة بك.أضفت Info: إلى كل من خطوط.لقد تعديل $out_pat استخدام IMAP(username) بدلا من لم تعد هناك imap-login من الأصل.(استخدام \S+ كسر إذا أسماء تحتوي على مسافات.لأن هذا الافتراض كان في مكان آخر في الملف اتمنى انها بخير....)

حيث لم يعد هناك أي عنوان IP إلى القبض على خروج الخط ، ربما يكون من الأفضل أن لم تحدد $out_pat -- على START OF PATTERNS تعليق كتلة يتضمن العبارة إذا كان الإدخال من اختيارك كما يوفر $out_pat, ، يجب أن حرر هذا المتغير أيضا ، مما يسمح لنا أن تتبع المستخدمين الذين لا يزالون على اتصال إلى الملقم (على سبيل المثالثندربيرد مخابئ فتح اتصالات IMAP).

لم يتم اختبار هذا ولكن لدي مشاعر جيدة حول هذا الموضوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top