この問題はpop-before-smtp/Postfix/Dovecotの文脈の下にありますが、Perlの文字列解析を知っていれば、自分自身で答えを出すことができます。しかし、私は失われているので、私は正確な質問を知らない。私たちはPostfixを長い間使ってきましたが、これに夢中になっています。今、私たちは "現代に近づく"必要があり、人々が私たちのネットワークの外にいてもSMTPサーバーから電子メールを送信できるようにする必要があります。だから、この仕事に取り組んで、私はPOPの前にsmtpを見つけました。Perlのログ解析にはどのような行がありますか?どのように動くかもしれないものを考え出すには?
hereがあります。
これですべての設定が完了しましたが、テストに失敗しました。私は方向hereを使用してトラブルシューティングを行い、ログを解析しようとしているPerlが正しくないと判断しました。私たちはIMAP/POPサーバーとしてDovecotを使用しています。設定ファイルには3つの選択肢があります。ここでは3組の示すコンフィグファイルからの抜粋です:
# 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はログアウトする、または切断するパターンであると推測します。
実際のログレコード形式は、これら3つのいずれかとは明らかに異なりますが、近いです。ここでは例のペアです:
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」)。
十分な時間があれば、私は作品をまとめることができるかもしれませんが、私は実際にPerlを知らないので、これは厳しいものです。私たちのDovecotパッケージで使われているログ出力を解析するための新しいルールを書くのを助けてください。
あなたの質問は何ですか?過去の質問をいくつか受け入れて受け入れてください。 – GoldenNewby
FWIWでは、Perlは略語として扱われるべきではありません。 – Charles