Việc kiểm tra log gửi – nhận email trong Zimbra đóng vai trò quan trọng trong việc quản lý hộp thư cũng như kiểm soát các lỗi phát sinh với email. Bài viết sẽ hướng dẫn chi tiết bạn cách để kiểm tra cũng như cung cấp một số thông tin cần thiết liên quan đến email log.
Email log là gì?
Email log có chứa dữ liệu email trên mỗi tin nhắn đã được gửi, bao gồm thông tin chi tiết của người gửi, địa chỉ email của người nhận, dấu thời gian, lịch sử sự kiện, nguồn HTML và bất kỳ mã lỗi nào. Log cũng có thể liên kết với các báo cáo theo dõi các số liệu digital marketing như phân phối, bounce và tỷ lệ mở.
Những chỉ số này đánh giá tình trạng của chương trình email, giúp người gửi phân tích được lý do vì sao email không đến được hộp thư đến của người nhận, xu hướng gửi và các vấn đề về hiệu suất ảnh hưởng đến danh tiếng của người gửi.
Việc kiểm tra log email cho phép người gửi xem xét được khả năng gửi, từ đó xác định được vấn đề có thể xảy ra ở đâu trước khi chúng ảnh hưởng đến khả năng gửi.
Tại sao nên tiến hành kiểm tra log gửi/nhận email trên Zimbra?
Việc kiểm tra log gửi và nhận email Zimbra được đánh giá là cần thiết và quan trọng, điều này giúp người dùng có thể khắc phục các sự cố kịp thời đồng thời xây dựng được chiến lược gửi thư khoa học hơn. Cùng điểm qua một số lợi ích khi tiến hành check email log.
Khắc phục sự cố: Nếu người dùng gặp sự cố khi gửi hoặc nhận thư, các log file có thể giúp bạn xác định các sự cố với cấu hình máy chủ thư, cài đặt DNS hoặc kết nối mạng.
Giám sát bảo mật: Email log có thể được sử dụng để phát hiện các hoạt động đáng ngờ trên mail server của người dùng, chẳng hạn như spam hoặc tấn công lừa đảo, truy cập trái phép hoặc các vi phạm bảo mật khác.
Yêu cầu tuân thủ và pháp lý: Tùy thuộc vào lĩnh vực hoạt động và vị trí địa lý của người dùng, bạn có thể được yêu cầu duy tri email log cho các mục đích tuân thủ, chẳng hạn như chứng minh sự tuân thủ các quy định, phản hồi các yêu cầu pháp lý hoặc thực hiện audit nội bộ.
Tối ưu hóa hiệu suất: Thông qua việc kiểm tra log và phân tích, bạn có thể xác định các điểm tắc nghẽn trong hệ thống gửi thư, tối ưu hóa cấu hình máy chủ, đồng thời cải thiện hiệu suất và độ tin cậy của email.
Chi tiết các kiểm tra log gửi/nhận email Zimbra
Như đã đề cập ở trên, kiểm tra log gửi và nhận thư của email server Zimbra thật sự cần thiết, việc này cho phép bạn có thể xác định được một email đã gửi hoặc nhận thành công hay chưa. Trường hợp chưa thành công, người dùng sẽ biết được quá trình bị dừng ở bước nào và báo lỗi ra sao.
Đầu tiên ta cần hiểu chu trình gửi thư của Zimbra như sau :
– Chu trình gửi: Khi click gửi thư => Connect tới email server => MTA kiểm tra địa chỉ người nhận => Kiểm tra qua các rule filter, đánh giá spam, virus => Xếp vào queue => Gửi thư => Xóa khỏi queue => Thông báo Message accepted for delivery
- Khác với Cpanel khi gửi nhận mail sẽ chỉ có 1 luồng đi từ MTA đến MTA khác hoặc từ MTA lưu trực tiếp vào Mail Box thì trong Zimbra sẽ chi thành 3 phần.
– Sau khi nhấn gửi mail Postfix sẽ đưa mail đó vào queue và chuyển đến Amavis một service scan Virus của Zimbra.
– Sau khi nhận được mail chuyển từ Postfix đến Amavis cũng sẽ đưa vào hàng đợi và tiến hành scan virus cho mail đó hoặc áp dụng các rules filter cho mail này. Sau khi đã scan xong Mail sẽ tiếp tục được chuyển đến Postfix và tiến hành gửi ra bên ngoài.
– Postfix nhận lại một mail sạch và tiến hành gửi đi đến server MTA đích hoặc một relay.
Do quá trình gửi mail được chi làm 3 phần cho nên khác với Cpanel một luồng mail sẽ có 3 ID khác nhau ( thay vì 1 như cPanel).
Bây giờ mình sẽ bắt đầu đi kiểm tra một log mail gửi đi. Do Zimbra sử dụng Postfix nên khi kiểm tra một Email cùng sử dụng Postfix làm MTA thì cũng có thể check tương tự nhé.
Đầu tiên ta cần biết được mail gửi đi và mail nhận về hoặc thêm thông tin như ngày giờ gửi, tiêu đề ……..
Ở đây chúng ta sẽ kiểm tra mail gửi từ danht@dan.id.vn đến htdan2k@gmail.com nhé.
Mặc định log của Zimbra được đặt tại : /var/log/zimbra.log
grep danht@dan.id.vn /var/log/zimbra.log
Bước 1 : mail từ postfix đến Amavis
Mar 4 11:10:29 mail postfix/smtpd[21743]: 5F01AE2E5B: client=mail.dan.id.vn[125.212.217.144] Mar 4 11:10:29 mail postfix/cleanup[21745]: 5F01AE2E5B: message-id=<1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn> Mar 4 11:10:29 mail postfix/qmgr[4974]: 5F01AE2E5B: from=<danht@dan.id.vn>, size=1107, nrcpt=1 (queue active) Mar 4 11:10:38 mail amavis[5450]: (05450-01) Passed UNCHECKED {RelayedOutbound}, ORIGINATING/MYNETS LOCAL [125.212.217.144]:40042 [125.212.217.144] <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, Queue-ID: 5F01AE2E5B, Message-ID: <1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn>, mail_id: WMybE6rjPqtu, Hits: -, size: 1106, queued_as: D0107E2E5F, 8413 ms Mar 4 11:10:38 mail postfix/smtp[21746]: 5F01AE2E5B: to=<htdan2k@vinahost.vn>, relay=127.0.0.1[127.0.0.1]:10026, delay=9, delays=0.34/0.03/0.47/8.1, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10030): 250 2.0.0 Ok: queued as D0107E2E5F) Mar 4 11:10:38 mail postfix/qmgr[4974]: 5F01AE2E5B: removed
Đoạn log trên ta thấy rằng có một luồng mail được bắt đầu gửi từ postfix đến amavis để scan message cụ thể như sau : Hệ thống tạo một mail gửi từ <danht@dan.id.vn> -> <htdan2k@vinahost.vn> Received: from mail.dan.id.vn ([127.0.0.1]) với measage ID của Postfix là 5F01AE2E5B và đã được gửi đến Amavis và được đưa vào queue với ID là D0107E2E5F sau đó message được bỏ khỏi queue của postfix.
Bước 2: Mail từ Amavis đã được scan xong và chuyển đến postfix để tiến hành gửi mail ra internet hoặc MTA tiếp theo
Mar 4 11:10:37 mail postfix/dkimmilter/smtpd[21757]: D0107E2E5F: client=localhost[127.0.0.1] Mar 4 11:10:37 mail postfix/cleanup[21745]: D0107E2E5F: message-id=<1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn> Mar 4 11:10:37 mail amavis[5450]: (05450-01) WMybE6rjPqtu FWD from <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10030): 250 2.0.0 Ok: queued as D0107E2E5F Mar 4 11:10:37 mail postfix/qmgr[4974]: D0107E2E5F: from=<danht@dan.id.vn>, size=1352, nrcpt=1 (queue active) Mar 4 11:10:38 mail amavis[5450]: (05450-01) Passed UNCHECKED {RelayedOutbound}, ORIGINATING/MYNETS LOCAL [125.212.217.144]:40042 [125.212.217.144] <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, Queue-ID: 5F01AE2E5B, Message-ID: <1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn>, mail_id: WMybE6rjPqtu, Hits: -, size: 1106, queued_as: D0107E2E5F, 8413 ms Mar 4 11:10:38 mail postfix/smtp[21746]: 5F01AE2E5B: to=<htdan2k@vinahost.vn>, relay=127.0.0.1[127.0.0.1]:10026, delay=9, delays=0.34/0.03/0.47/8.1, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10030): 250 2.0.0 Ok: queued as D0107E2E5F) Mar 4 11:10:39 mail amavis[5456]: (05456-01) Passed CLEAN {RelayedOutbound}, ORIGINATING_POST/MYNETS LOCAL [127.0.0.1]:58598 [125.212.217.144] <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, Queue-ID: D0107E2E5F, Message-ID: <1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn>, mail_id: B2j0CO0bxMnJ, Hits: 0.478, size: 1967, queued_as: C79F8E2E5B, 1792 ms Mar 4 11:10:39 mail postfix/smtp[21759]: D0107E2E5F: to=<htdan2k@vinahost.vn>, relay=127.0.0.1[127.0.0.1]:10032, delay=2, delays=0.1/0.03/0.15/1.7, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as C79F8E2E5B) Mar 4 11:10:39 mail postfix/qmgr[4974]: D0107E2E5F: removed
Đoạn log trên ta thấy rằng có một luồng mail đã được scan vào thông báo Pass Clean và được đưa đến Postfix với ID là C79F8E2E5B sau đó đã bị remove khỏi queue của Amavis.
Bước 3 : Sau khi mail đã được clean và được chuyển đến Postfix sẽ gửi ra bên ngoài hoặc MTA tiếp theo.
Mar 4 11:10:39 mail postfix/amavisd/smtpd[21763]: C79F8E2E5B: client=localhost[127.0.0.1]Mar 4 11:10:39 mail postfix/cleanup[21745]: C79F8E2E5B: message-id=<1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn> Mar 4 11:10:39 mail postfix/qmgr[4974]: C79F8E2E5B: from=<danht@dan.id.vn>, size=2351, nrcpt=1 (queue active) Mar 4 11:10:39 mail amavis[5456]: (05456-01) B2j0CO0bxMnJ FWD from <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as C79F8E2E5B Mar 4 11:10:39 mail amavis[5456]: (05456-01) Passed CLEAN {RelayedOutbound}, ORIGINATING_POST/MYNETS LOCAL [127.0.0.1]:58598 [125.212.217.144] <danht@dan.id.vn> -> <htdan2k@vinahost.vn>, Queue-ID: D0107E2E5F, Message-ID: <1730211109.600.1709525428830.JavaMail.zimbra@dan.id.vn>, mail_id: B2j0CO0bxMnJ, Hits: 0.478, size: 1967, queued_as: C79F8E2E5B, 1792 ms Mar 4 11:10:39 mail postfix/smtp[21759]: D0107E2E5F: to=<htdan2k@vinahost.vn>, relay=127.0.0.1[127.0.0.1]:10032, delay=2, delays=0.1/0.03/0.15/1.7, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as C79F8E2E5B) Mar 4 11:11:09 mail postfix/smtp[20275]: C79F8E2E5B: to=<htdan2k@vinahost.vn>, relay=none, delay=30, delays=0.01/0/30/0, dsn=4.4.1, status=deferred (connect to relay-2.vinahost.vn[125.212.217.228]:587: Connection timed out) Mar 4 11:18:48 mail postfix/qmgr[4974]: C79F8E2E5B: from=<danht@dan.id.vn>, size=2351, nrcpt=1 (queue active) Mar 4 11:19:18 mail postfix/smtp[26908]: C79F8E2E5B: to=<htdan2k@vinahost.vn>, relay=none, delay=519, delays=489/0.06/30/0, dsn=4.4.1, status=deferred (connect to relay-2.vinahost.vn[125.212.217.228]:587: Connection timed out)
Ở đây mình sẽ sử dụng một dịch vụ relay và đã chặn IP mail server của mình nên sẽ nhận được code error là connection timeout. Nếu có thể gửi đi được thì thông báo sẽ là 250 2.0.0 Ok
– Chu trình nhận: Chấp nhận kết nối từ email server gửi => Kiểm tra qua các rule filter, đánh giá spam, virus => Xếp vào queue => Nhận thư và xóa khỏi queue => Thông báo nhận thư 250 2.1.5 Delivery OK
Bước 1: Chấp nhận kết nối để nhận mail và scan trong amavis
Mar 4 11:39:37 mail postfix/smtpd[7860]: 161CCE2E5F: client=mail-pf1-f173.google.com[209.85.210.173] Mar 4 11:39:37 mail postfix/cleanup[7863]: 161CCE2E5F: message-id=<CADoAYuToMC3sj2DuYnpGfxJZT1toebwh6y6p8WvBasL7N_QggA@mail.gmail.com> Mar 4 11:39:37 mail postfix/qmgr[4974]: 161CCE2E5F: from=<danht@vinahost.vn>, size=2903, nrcpt=1 (queue active) Mar 4 11:39:49 mail amavis[25737]: (25737-01) Passed UNCHECKED {RelayedTaggedInbound}, [209.85.210.173]:59763 [209.85.210.173] <danht@vinahost.vn> -> <danht@dan.id.vn>, Queue-ID: 161CCE2E5F, Message-ID: <CADoAYuToMC3sj2DuYnpGfxJZT1toebwh6y6p8WvBasL7N_QggA@mail.gmail.com>, mail_id: DvipHQ9sMi0G, Hits: 0.003, size: 2903, queued_as: 8F5D4E2E69, dkim_sd=20230601:vinahost-vn.20230601.gappssmtp.com, 11691 ms Mar 4 11:39:49 mail postfix/smtp[7864]: 161CCE2E5F: to=<danht@dan.id.vn>, relay=127.0.0.1[127.0.0.1]:10024, delay=13, delays=0.99/0.02/1.8/10, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8F5D4E2E69) Mar 4 11:39:49 mail postfix/qmgr[4974]: 161CCE2E5F: removed
Bước 2. Sau khi đã được scan sẽ đưa vào mailbox
Mar 4 11:39:49 mail postfix/amavisd/smtpd[8142]: 8F5D4E2E69: client=localhost[127.0.0.1] Mar 4 11:39:49 mail postfix/cleanup[7863]: 8F5D4E2E69: message-id=<CADoAYuToMC3sj2DuYnpGfxJZT1toebwh6y6p8WvBasL7N_QggA@mail.gmail.com> Mar 4 11:39:49 mail postfix/qmgr[4974]: 8F5D4E2E69: from=<danht@vinahost.vn>, size=3782, nrcpt=1 (queue active) Mar 4 11:39:49 mail amavis[25737]: (25737-01) DvipHQ9sMi0G FWD from <danht@vinahost.vn> -> <danht@dan.id.vn>, BODY=7BIT 250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8F5D4E2E69 Mar 4 11:39:49 mail amavis[25737]: (25737-01) Passed UNCHECKED {RelayedTaggedInbound}, [209.85.210.173]:59763 [209.85.210.173] <danht@vinahost.vn> -> <danht@dan.id.vn>, Queue-ID: 161CCE2E5F, Message-ID: <CADoAYuToMC3sj2DuYnpGfxJZT1toebwh6y6p8WvBasL7N_QggA@mail.gmail.com>, mail_id: DvipHQ9sMi0G, Hits: 0.003, size: 2903, queued_as: 8F5D4E2E69, dkim_sd=20230601:vinahost-vn.20230601.gappssmtp.com, 11691 ms Mar 4 11:39:49 mail postfix/smtp[7864]: 161CCE2E5F: to=<danht@dan.id.vn>, relay=127.0.0.1[127.0.0.1]:10024, delay=13, delays=0.99/0.02/1.8/10, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 8F5D4E2E69) Mar 4 11:39:50 mail postfix/lmtp[8144]: 8F5D4E2E69: to=<danht@dan.id.vn>, relay=mail.dan.id.vn[125.212.217.144]:7025, delay=0.55, delays=0.01/0.02/0.09/0.44, dsn=2.1.5, status=sent (250 2.1.5 Delivery OK) Mar 4 11:39:50 mail postfix/qmgr[4974]: 8F5D4E2E69: removed
Một sốgợi ý và lưu ý khi check Email.
- Khi check log email cần có đầy đủ thông tin như Mail gửi mail nhận và thời gian nhận mail.
- Kiểm tra log từng giai đoạn bởi vì zimbra khá nặng nề nên có thể một service lỗi có thể gây ra tình trạng không gửi/nhận được email.
- Nếu chưa quen việc kiểm tra một lần toàn bộ log thì có thể kiểm tra theo từng ID. Thông thường đối với mỗi quy trình khi được chuyển đến quy trình tiếp theo sẽ sinh ra một IP đằng sau 250 .0.0. OK queue as < ID>
- Kiểm tra tình trạng Relay của Email để xác định Email được chuyển tiếp đến đâu ví dụ relay=127.0.0.1 là đang chuyển mail giữa các tiến trình trong zimbra
Chúc các bạn có thể kiểm tra và detect một cách nhanh nhất về vấn đề gửi nhận Email thông qua log của Zimbra.
Các bạn có thể theo dõi thêm các bài viết hay về Email tại đây
Nguồn tham khảo:
[…] Hy vọng một vài CLI command cơ bản trên có thể hỗ trợ được cho việc quản trị được tiện lợi hơn. Ngoài ra bạn có thể xem thêm bài viết về kiểm tra log trên zimbra tại đây. […]