Nhật ký và công cụ chẩn đoán

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

Chủ đề này thảo luận về các công cụ mạng, công cụ JVM và nhật ký chẩn đoán mà bạn có thể dùng để khắc phục sự cố về mạng và các vấn đề liên quan đến JVM trên Apigee Edge.

Tiện ích đánh dấu gói dữ liệu TCP/IP (tcpdump)

Công cụ tcpdump là một công cụ đánh dấu gói ở dòng lệnh, cho phép bạn thu thập hoặc lọc các gói TCP/IP được nhận hoặc chuyển qua mạng. Ứng dụng này có sẵn trên các hệ điều hành dựa trên Linux/Unix. Bạn có thể cài đặt tiện ích này bằng yum như sau:

yum install tcpdump

Công cụ tcpdump rất hữu ích để khắc phục sự cố liên quan đến mạng hoặc SSL. Ví dụ:

  • 502 Lỗi cổng vào không hợp lệ (gây ra do ngoại lệ EOF)
  • 503 Lỗi không có dịch vụ
  • Lỗi bắt tay SSL

Để khắc phục bất kỳ vấn đề nào trong số này, trước tiên, bạn phải xác định cặp thành phần xảy ra lỗi. Trong trường hợp của Edge, đó có thể là một trong những cặp sau đây:

  • Ứng dụng khách và Bộ định tuyến
  • Bộ định tuyến và bộ xử lý thư
  • Bộ xử lý thông báo và máy chủ phụ trợ

Sau khi xác định được cặp thành phần gặp sự cố, bạn có thể ghi lại các gói mạng bằng cách sử dụng tcpdump trên một hoặc cả hai thành phần này.

Ghi lại các gói được gửi đến/nhận từ một máy chủ cụ thể bằng tcpdump

Dùng lệnh tcpdump sau đây để ghi lại tất cả các gói được gửi đến hoặc nhận từ một máy chủ lưu trữ (địa chỉ IP) đã chỉ định rồi lưu thông tin trong tệp đã chỉ định:

tcpdump -i any -s 0 host <IP address> -w <File name>

Trong trường hợp:

Tham số Mô tả
-i (giao diện) chỉ định giao diện mà từ đó gói sẽ được ghi lại. Việc sử dụng giá trị "any" cho phép thu thập gói tin từ tất cả các giao diện.
-giây (snarf/snaplen) chỉ định số lượng của mỗi gói cần chụp. Việc sử dụng giá trị 0 (không) cho phép bạn chụp được toàn bộ gói.
Địa chỉ IP là địa chỉ IP của máy chủ mà chúng ta muốn thu thập các gói
Tên tệp là tên của tệp mà tcpdump phải được ghi vào

Ví dụ:

Giả sử bạn muốn thu thập các gói giữa Bộ xử lý thông báo và Máy chủ phụ trợ:

  1. Đăng nhập vào Máy xử lý thư.
  2. Xác định địa chỉ IP của Máy chủ phụ trợ (giả sử địa chỉ đó là 22.22.22.22) mà chúng ta muốn thu thập các gói.

Sử dụng lệnh sau để thu thập các gói tin mạng của một máy chủ lưu trữ có địa chỉ IP cụ thể:

tcpdump -i any -s 0 host 22.22.22.22 -w rmp-123.pcap

Nếu máy chủ phụ trợ phân giải thành nhiều địa chỉ IP, hãy sử dụng tên máy chủ của máy chủ phụ trợ trong lệnh tcpdump như minh hoạ dưới đây:

tcpdump -i any -s 0 host <Hostname> -w rmp-123.pcap

Nếu có nhiều máy chủ phụ trợ có địa chỉ IP khác nhau (22.22.22.22, 33.33.33.33 và 44.44.44.44), hãy sử dụng lệnh tcpdump bên dưới:

tcpdump -i any -s 0 host 22.22.22.22 or host 33.33.33.33 or host 44.44.44.44 -w rmp-123.pcap

Phân tích tcpdumps

Bạn có thể xem hoặc phân tích tcpdumps bằng lệnh tcpdump hoặc công cụ dựa trên GUI Wireshark.

Tài liệu tham khảo

Tệp báo lỗi

Tệp báo lỗi là thông tin tổng quan nhanh về bộ nhớ của một quy trình Java. Các tệp này chứa thông tin về các đối tượng và lớp Java trong vùng nhớ khối xếp tại thời điểm thu thập tệp báo lỗi. Các tệp này thường có kích thước khá lớn, dao động từ vài 100 MB đến vài GB.

Tệp báo lỗi rất hữu ích khi một quy trình Java, chẳng hạn như Trình xử lý thư cho thấy:

  • Mức sử dụng bộ nhớ cao
  • OutofMemoryError

Tạo tệp báo lỗi cho quy trình Java

Java cung cấp một tiện ích có tên jmap, cho phép bạn tạo số liệu thống kê về bộ nhớ hoặc tệp báo lỗi của một quy trình Java đang chạy.

Hãy dùng lệnh jmap sau đây để tạo tệp báo lỗi của quy trình Java:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=<filename> <pid>

Trong trường hợp:

Tham số Mô tả
JAVA_HOME Là thư mục cài đặt của Java
filename Là tên tệp sẽ được ghi tệp báo lỗi
pid Là mã tiến trình của ứng dụng Java có tệp kết xuất đầu phải được thu thập

Ví dụ:

Giả sử Trình xử lý thông báo mp-east có mức sử dụng bộ nhớ cao hoặc đang báo lỗi OutOfMemory. Xác định mã nhận dạng quy trình của Bộ xử lý thông báo bằng lệnh ps trên hệ điều hành Unix. Giả sử mã đó là 24569.

Chạy tiện ích jmap như sau để tạo tệp báo lỗi:

sudo -u apigee <JAVA_HOME>/bin/jmap -dump:live,format=b,file=mp-east-heapdump.bin 24569

Phân tích tệp báo lỗi

Bạn có thể phân tích vùng nhớ khối xếp bằng Eclipse MAT (Công cụ phân tích bộ nhớ) để xác định khả năng rò rỉ bộ nhớ hoặc đối tượng Java nào đang dẫn đến mức sử dụng bộ nhớ cao.

Tài liệu tham khảo

Cách thu thập tệp báo lỗi

tiện ích jmap

jmap man page

Công cụ phân tích bộ nhớ (MAT)


Tệp kết xuất luồng

Tệp kết xuất luồng (thread dump) là thông tin tổng quan nhanh về trạng thái của tất cả các luồng trong quy trình Java đang chạy. Trạng thái của mỗi luồng được trình bày với nội dung của ngăn xếp, được gọi là dấu vết ngăn xếp. Một số luồng sẽ là một phần của ứng dụng Java đang chạy, trong khi một số khác sẽ là các luồng nội bộ của JVM.

Tệp kết xuất luồng cho thấy thông tin về từng hoạt động của luồng của ứng dụng. Thông tin này có thể rất hữu ích trong việc:

  • Chẩn đoán các sự cố như tăng đột biến CPU, thời gian phản hồi chậm hoặc các ứng dụng Java không phản hồi
  • Tối ưu hoá ứng dụng và hiệu suất của JVM

Tạo tệp kết xuất luồng

Bạn có thể tạo tệp kết xuất luồng cho quy trình Java bằng tiện ích jstack như minh hoạ dưới đây:

sudo -u apigee <JAVA_HOME>/bin/jstack -l <pid> > <filename>

Trong trường hợp:

Tham số Mô tả
JAVA_HOME Là thư mục cài đặt của Java.
pid Là mã tiến trình của ứng dụng Java có tệp kết xuất luồng mà bạn muốn thu thập.
filename Là tên tệp sẽ được ghi vào tệp kết xuất luồng (thread dump).

Ví dụ:

Để tạo tệp kết xuất luồng cho mã quy trình 37320 trên Bộ xử lý thông báo mp-east, hãy sử dụng lệnh sau:

sudo -u apigee <JAVA_HOME>/bin/jstack -l 37320 > /opt/apigee/edge-message-processor/mp-east-threadDump.txt

Theo ví dụ trên, tệp kết xuất luồng của quy trình sẽ được lưu vào tệp /opt/apigee/edge-message-processor/mp-east-threadDump.txt.

Phân tích kết xuất chuỗi

Bạn có thể xem kết xuất luồng trong bất kỳ trình chỉnh sửa văn bản nào, chẳng hạn như vi (Linux), Notepad (Windows). Hãy tham khảo Tệp kết xuất luồng để biết thông tin chi tiết về các phần khác nhau của Tệp kết xuất luồng và cách diễn giải thông tin.

Tài liệu tham khảo