Hàng đợi thư trong Exchange 2007

Bài này sẽ nghiên cứu về hàng đợi thư trong Exchange 2007. Chúng ta sẽ bắt đầu bằng với một số điểm khác nhau cụ thể giữa kiến trúc Exchange 2003 và Exchange 2007 đồng thời thảo luận sự kiện Exchange 2007 sử dụng cơ sở dữ liệu hàng đợi. Sau đó sẽ là cái nhìn mới về trình xem hàng đợi Queue Viewer trong Exchange 2007 và những khả năng thực sự nó có thể làm được. Cuối cùng sẽ là một trình xem hàng đợi xây dựng trên nền PowerShell cùng với một số cách thức hữu ích khác.

Message Queue - Giới thiệu

Exchange luôn tích hợp trong nó một trình xem thư, ngay từ những phiên bản thời kỳ đầu như Exchange 5.x, thậm chí có thể là 4.x. Tuy nhiên, tính năng này luôn được thay đổi qua từng phiên bản để phù hợp hơn cho các quản trị viên, giống như trong trường hợp chuyển từ Exchange 2003 sang Exchange 2007. Ở Exchange 2007, cách thức hoạt động của hàng đợi thay đổi về cơ bản. Phương thức trong đó mỗi server ảo SMTP có một thư mục hàng đợi riêng trên một phân vùng NTFS ở Exchange 2003 được chuyển sang dùng cơ sở dữ liệu Extensible Storage Engine (ESE) tiêu chuẩn để chứa thông tin hàng đợi ở Exchange 2007. Phần trên của giao diện người dùng (UI) hoàn toàn thay đổi. UI trong Exchange 2007 dựa trên snap-in Microsoft Management Console (MMC) v3 mới. Để biết rõ sự khác nhau giữa hai giao diện, bạn có thể xem hình minh hoạ bên dưới.


Hình 1
: Khu vực các hàng đợi Exchange 2003 Queue

Trong Exchange 2003, giao diện người dùng dễ sử dụng hơn. Tuy nhiên có một nhược điểm là Exchange 2003 chỉ có thể giám sát hàng đợi của một server tại một thời điểm.


Hình 2
: Xem các hàng đợi trong Exchange 2003

Trong hình 2, bạn có thể dễ dàng thấy kiểu hàng đợi và trạng thái của nó. Ở ví dụ bạn có thể thấy có một số mail đang chờ để được gửi, hầu hết có khả năng thuộc kiểu “báo cáo không phân phối” (NDR) từ các thư rác.

Với Exchange 2007, hàng đợi được xem trong một công cụ mới có tên “Queue Viewer” mà bạn có thể tìm thấy bên cạnh các tiện ích khác trong vùng Toolbox mới, như trong hình 3.


Hình 3
: Vùng Toolbox mới trong Exchange 2007

Khi mở Queue Viewer, bạn có thể thấy nó được xây dựng dựa trên một snap-in MMC v3 như trong hình 4:


Hình 4
: Giao diện người dùng của Queue Viewer

Lợi ích lớn nhất của giao diện này là bạn có thể tự tạo các MMC riêng, sử dụng trình xem độc lập để giám sát đa server Exchange 2007 cùng một lúc:


Hình 5
: Thêm một snap-in MMC cho Queue Viewer

Nhìn vào các thay đổi trên giao diện người dùng, có lẽ đã đến lúc chúng ta nên chuyển sang phần lý thuyết cơ sở về hàng đợi trong Exchange 2007. Tuy nhiên, trước khi quan tâm đến điều này, bạn cần chú ý một số thông tin quan trọng khác. Không phải tất cả server Exchange 2007 đều có hàng đợi! Đây là điểm khác biệt lớn với Exchange 2003, vì ở Exchange 2003 tất cả server nằm trong quá trình truyền vận thư đều có một hàng đợi SMTP. Trong Exchange 2007 chỉ có các server Hub Transport và Edge Transport là có.

Lý thuyết hàng đợi

Vậy cơ sở dữ liệu được đưa vào đâu? Như đã đề cập đến ở phần tóm tắt trên, tất cả hoạt động của hàng đợi bây giờ xuất hiện trong một cơ sở dữ liệu ESE mới. File cơ sở dữ liệu chính được gọi là mail.que và mặc định bạn có thể tìm thấy tại:
C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue


Hình 6
: Thư mục chứa file cơ sở dữ liệu hàng đợi

Các file khác nằm trong những vùng được mô tả bên dưới:

  • Trn.chk - File kiểm tra điểm.
  • Trn.log - File log giao dịch hiện thời.
  • Trntmp.log - File log giao dịch dự phòng tiếp theo, được tạo nâng cao.
  • Trnnnn.log - Các file log giao dịch khác được tạo khi giá trị Trn.log đạt đến kích thước lớn nhất.
  • Trnres00001.jrs - File log dự trữ.
  • Trnres00002.jrs - File log dự trữ thứ hai.
  • Temp.edb – CSDL tạm thời (Temp Database) được dùng để kiểm chứng giản đồ CSDL khi khởi động.

Có thể bạn sẽ tự hỏi rằng, các file log trong trường hợp này đóng vai trò gì. Thực tế, chúng được cấu hình để ghi vòng tròn với các file log giao dịch sẽ bị xoá sau khi được đưa ra.

Trước khi chuyển sang khái niệm khác, chúng ta nên nói một chút về việc chuyển đổi cơ sở dữ liệu hàng đợi. Một lý do quan trọng để thực hiện điều này là vấn đề thực thi. Lý do khác ít được biết đến hơn là ổ lưu trữ CSDL hàng đợi (Queue DB) và các file log phải có từ 4GB không gian trống trở nên. Nếu không server sẽ áp dụng lại trạng thái căng nén và khởi động chậm luồng thư.

Khi chuyển đổi CSDL, nguyên tắc thông thường là phân tách nhỏ bản ghi log giao dịch và các file DB. Bạn phải chỉnh sửa file EdgeTransport.exe.config, được đặt mặc định ở khu vực bên dưới và sau đó đóng, khởi động lại dịch vụ msexchangetransport.
C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config

Vấn đề đáng quan tâm nhất khi chỉnh sửa file config là thư mục cha với các đặc quyền chính xác cần thiết lập như bên dưới. Đó là kiểu thư mục sẽ được tạo:

  • Network Service: Full Control (Dịch vụ mạng: toàn quyền).
  • System: Full Control (Hệ thống: toàn quyền).
  • Administrators: Full Control (Quản trị viên: toàn quyền).

Các dòng liên quan được thể hiện ở bên dưới. Để chuyển CSDL, bạn nên chỉnh sửa dòng có chứa “QueueDatabasePath” và để di dời các file log, bạn nên chỉnh sửa dòng có chứa “QueueDatabaseLoggingPath”. Bạn có thể thấy như trên hình minh hoạ 7, chuyển CSDL và các file log sang H:


Hình 7
: Chỉnh sửa file EdgeTransport.exe.config

Nhìn vào CSDL bây giờ, bạn có thể hiểu nó chứa những gì. Có một số kiểu hàng đợi khác nhau:

• Hàng đợi đệ trình (Submission): được dùng bởi một bộ phân loại để thu thập tất cả thư phải xử lý, tìm đường đi hoặc xử lý bởi tác nhân Transport.

• Hàng đợi thư độc hại (Poison Message): Hàng đợi thư độc hại là một loại hàng đợi đặc biệt, dùng để cô lập các thư được xác định là có khả năng gây hại cho hệ thống Exchange 2007 sau một lỗi server.

• Hàng đợi phân phối từ xa (Remote Delivery): Hàng đợi phân phối từ xa nắm giữ các thư được phân phối tới một server từ xa bằng SMTP.

• Hàng đợi phân phối hòm thư (Mailbox Delivery): Hàng đợi phân phối hòm thư nắm giữ các thư được phân phối tới server mailbox thông qua Exchange RPC mã hoá.

• Hàng đợi đích không thể đến (Unreachable Destination): Mỗi server truyền vận chỉ có thể có một hàng đợi Unreachable. Hàng đợi Unreachable chứa các thư không thể tìm được đường đến đích của chúng.

Sử dụng hàng đợi

Bây giờ bạn có thể thấy, snap-in MMC v3 được dùng cho trình xem hàng đợi có giao diện người dùng rất đơn giản. Mặc định trình xem mở và hiển thị các hàng đợi cho server truyền vận bạn đang đăng nhập vào. Để kết nối tới một server khác, sử dụng tuỳ chọn Connect to Server ở khung bên phải:


Hình 8
: Hiển thị Connect to Server

Cửa sổ trình xem hàng đợi chính mở với hai khung dọc trên đầu, mặc định hiển thị tất cả hàng đợi và tất cả thư.Khi bạn mở một hàng đợi bằng cách kích đúp vào nó, một khung khác xuất hiện, hiển thị chỉ các thư trong hàng đợi đó:


Hình 9
: Các khung hiển thị trong Queue Viewer

Để quản lý hàng đợi, tất cả điều bạn phải làm là đánh dấu đối tượng mình muốn làm việc và xem khung hoạt động bên tay phải cửa sổ như trong Hình 9.

Một điểm mới quan trọng trong trình xem hàng đợi Exchange 2007 là chức năng lọc thư. Nó sẽ rất hữu ích trong nhiều trường hợp như khi bạn bị thư rác tấn công. Với vai trò của quản trị viên, bạn có thể sử dụng thành phần nâng cao "Bulk Action", áp dụng một hoạt động cho tất cả thư có cùng tham số theo mô tả trong bộ lọc để loại bỏ thư rác, có hoặc không có NDR.


Hình 10
: Giao diện người dùng của bộ lọc trong khung thư


Hình 11
: Một số tuỳ chọn lọc thư khác

Một số chức năng khác bạn có thể thực hiện trong trình xem hàng đợi:

• Hàng đợi đình chỉ (Suspend queue): Tạm thời ngăn cản hoạt động phân phối thư hiện đang có trong hàng đợi.

• Hàng đợi phục hồi (Resume queue): Khi một kết nối tới bước nhảy tiếp theo cho hàng đợi thất bại, một trình bấm giờ kết nối lại được thiết lập. Kết nối sẽ được thực hiện lại lập tức ngay khi có thể.

• Thư đình chỉ (Suspend message): Tạm thời ngăn chặn phân phối một thư đơn lẻ.

• Thư phục hồi (Resume message): Đối lập với thư đình chỉ.

• Thư loại bỏ (Remove message): Ngăn chặn lâu dài phân phối một thư.

• Thư xuất (Export message): Sao chép một thư tới đường dẫn file bạn mô tả. Các thư không bị xoá khỏi hàng đợi, nhưng một bản copy của chúng được ghi lại ở khu vực file. Trước khi xuất một thư, bạn phải đình chỉ thư trong hàng đợi.

Hàng đợi và PowerShell

Mặc dù toàn bộ Exchange Management Console được xây dựng dựa trên PowerShell nhưng có một điểm thực sự nổi bật hơn nhiều là phần thông báo lỗi. Tôi gặp phải điều này khi mở trình xem hàng đợi và ngừng dịch vụ msexchangetransport. Bạn có thể thấy trên Hình 12 các lỗi lệnh PowerShell trên phần output của giao diện Queue Viewer.


Hình 12
: Lỗi lệnh PowerShell

Như thế, có thể sử dụng PowerShell để thao tác với hàng đợi. Thử nghiệm, tôi dùng lệnh PowerShell bên dưới để hiển thị tất cả các lệnh với Queue có tên:

get-command *queue*


Hình 13
: get-command *queue*

Sau đó, thử lại cùng một lệnh này với các lệnh liên quan đến “message” (thư):


Hình 14: get-command *message*

Được trang bị một kiến thức nền tảng về các lệnh có thể dùng, tôi bắt đầu chạy lệnh get-queue đơn giản.


Hình 15: get-queue

Sau đó, chuyển sang vùng hàng đợi có chứa lượng thư ít hơn 100. Ở ví dụ này, ba hàng đợi được hiển thị với 0 thư. Tất cả các loại hàng đợi (ngoại trừ hàng đợi đệ trình) đều được gỡ bỏ nhanh chóng sau khi thư bên trong chúng được phân phối. Hàng đợi đệ trình là liên tục nên luôn luôn được hiển thị, chờ mail đến để phân loại.


Hình 16: get-queue
với một bộ lọc

Như bạn có thể thấy, tính đơn giản trong các lệnh PowerShell khiến việc thao tác trên hàng đợi qua script dễ dàng hơn nhiều so với việc dùng VBScript. Các ví dụ trên là rất đơn giản, nhưng chúng có thể ứng dụng cho những trường hợp phức tạp hơn rất nhiều. Ví dụ, bạn có thể chạy lệnh sau để loại bỏ thư khỏi hàng đợi từ một công ty không mong muốn với tỷ lệ SCL cao hơn 5:

Remove-Message -Filter {FromAddress -like "*spammer.com*" -and SCL -gt 5} -withNDR $false

Kết luận

Hy vọng bài này giúp bạn có được cái nhìn sâu sắc hơn về cách thức hoạt động mới của cách hàng đợi thư trong Exchange 2007. Để biết thêm thông tin về các hoạt động bên trong, bạn nên tham khảo file trợ giúp của Exchange 2007, có thể download tại đây.

Thứ Năm, 03/05/2007 10:41
31 👨 1.605
0 Bình luận
Sắp xếp theo