이 문제는 pop-before-smtp/Postfix/Dovecot의 문맥에서 나옵니다. 그러나 Perl 문자열 구문 분석을 알고 있다면 직접 대답을 얻을 수 있습니다. 그러나 나는 너무 잃어 버렸기 때문에 정확한 질문조차 모릅니다. 위트로 :Perl이 수행하는 로그 파싱 라인은 무엇입니까? 어떻게 작동합니까?
우리는 지금 오랫동안 Postfix를 사용 해왔다. 이제 우리는 "근대로 이동"해야하며 사람들이 우리 네트워크 외부에있을 때에도 SMTP 서버에서 전자 메일을 보내도록해야합니다. 그래서,이 일을 맡았고, 나는 팝 - 이전 - smtp를 발견했습니다.
here을 찾을 수 있습니다.
그래서 모든 설정이 완료되었지만 테스트에는 실패합니다. 나는 방향 here을 사용하여 문제를 해결했으며 로그를 구문 분석하려고하는 Perl이 올바르지 않은 것으로 판단했습니다. 우리는 Dovecot을 IMAP/POP 서버로 사용하고 있으며 설정 파일에는 세 가지 선택 사항이 있습니다. 여기에 3 개 세트 보여주는 config 파일에서 발췌 한 것입니다
# 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+)\]';
하나는, 그러나, 그들 중 누구도 작동하지 적용하는 사람의 주석을 해제하기로되어있다.
'pat'은 로그인 패턴이고 out-pat은 로그 아웃하거나 그렇지 않으면 연결 해제하는 패턴이라고 추측합니다.
실제 로그 레코드 형식은이 세 가지와 분명히 다르지만 비슷합니다. 여기에 예제 쌍은 다음과 같습니다
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
POP를 사용하여, 'IMAP-로그인'팝업 로그인 '으로 대체되고, 로그 아웃시,'POP '은'IMAP '을 대체 - 총액 왜 변경 나는 말할 수 없다!
가져 오기 및 데이터 위치 : 타임 스탬프, 사용자 이름 및 로그인시 "원격"ip ("rip").
충분한 시간이 주어지면 작동하는 것을 조각으로 만들 수 있지만 실제로 펄을 알지 못하기 때문에 다소 힘듭니다. 우리의 Dovecot 패키지에 사용 된 로깅 출력을 파싱하는 새로운 규칙을 작성하도록 도와주세요.
무엇이 당신의 질문입니까? 또한 과거의 질문을 받아들이십시오. – GoldenNewby
FWIW, Perl은 약어로 취급하지 않습니다. – Charles