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
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
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
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
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
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
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
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