0
0
Lập trình
Admin Team
Admin Teamtechmely

Hướng Dẫn Cấu Hình Logstash Để Phân Tích Log Dữ Liệu Request Và Response

Đăng vào 2 tháng trước

• 2 phút đọc

Chủ đề:

KungFuTech

Giới Thiệu

Trong bài viết này, chúng ta sẽ khám phá cách cấu hình Logstash để xử lý và phân tích log từ các dữ liệu request và response. Việc sử dụng Logstash giúp chúng ta dễ dàng quản lý và phân tích log, từ đó nâng cao khả năng theo dõi và xử lý sự cố trong ứng dụng.

Cấu Hình Logstash Cơ Bản

Dưới đây là cấu hình mẫu cho Logstash để phân tích log từ Kafka. Chúng ta sẽ sử dụng các plugin như grok để phân tích cú pháp log và mutate để xử lý các trường dữ liệu cần thiết.

1. Phần Input

Đoạn mã dưới đây định nghĩa phần input cho Logstash, nơi chúng ta nhận dữ liệu từ Kafka.

plaintext Copy
input {
  kafka {
    bootstrap_servers => "10.100.30.32:9092"
    topics => ["ESMART-CATEGORY-LOGS", "ESMART-GATEWAY-LOGS"]
    group_id => "log_consumer_group"
    auto_offset_reset => "earliest"
  }
}

2. Phần Filter

Chúng ta sử dụng phần filter để phân loại và xử lý các log.

2.1. Lọc Ký Tự Không Mong Muốn

Phần filter đầu tiên sử dụng plugin mutate để loại bỏ những ký tự không cần thiết:

plaintext Copy
  mutate {
    gsub => ["message", "\u001b|\n", ""]
  }

2.2. Phân Tích Log Response

Tiếp theo, chúng ta cần phân tích log response:

plaintext Copy
  if "RESPONSE" in [message] {
    grok {
      match => {
        "message" => "..."
      }
    }
  }

Trong đoạn mã trên, chúng ta sử dụng grok để phân tích cú pháp từ một log JSON.

2.3. Phân Tích Log Request

Tương tự, chúng ta cũng phân tích log request:

plaintext Copy
  if "REQUEST" in [message] {
    grok {
      match => {
        "message" => "..."
      }
    }
  }

3. Tạo Trường Mới

Để dễ dàng truy xuất và xử lý sau này, chúng ta tạo các trường mới để lưu trữ thông tin quan trọng:

plaintext Copy
  mutate {
    add_field => {
      "ts" => "%{epoch_sec}"
      "ip" => "%{client_ip}"
      ...
    }
    remove_field => ["instant", "thread", ...]
  }

4. Chuyển Đổi Timestamp

Cuối cùng, bước chuyển đổi timestamp sẽ giúp lưu trữ thời gian theo định dạng chính xác:

plaintext Copy
  date {
    match => [ "client_time", "ISO8601" ]
    timezone => "+07:00"
    target => "@timestamp"
  }

5. Phần Output

Chúng ta sẽ định nghĩa phần output để lưu trữ log vào Elasticsearch:

plaintext Copy
output {
  elasticsearch {
    hosts => ["http://10.152.183.57:9200"]
    ...
  }
}

Kết Luận

Việc cấu hình Logstash cho việc phân tích log từ request và response rất quan trọng cho sự phát triển và vận hành ứng dụng. Hy vọng bài viết này sẽ giúp bạn có cái nhìn rõ nét về cách triển khai Logstash một cách hiệu quả.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào