Tôi đang sử dụng ngăn xếp flux, Elaticsearch và Grafana để ghi nhật ký và theo dõi thiết lập. Tôi đang theo dõi nhật ký (ở định dạng JSON) đến từ bộ chứa/nhóm NodeJS được triển khai trong cụm EKS và kết xuất vào Elaticsearch.
Vấn đề
Định dạng nhật ký xuất hiện trong thiết bị xuất chuẩn từ nút (được triển khai bằng máy chủ web pm2) không chính xác json
Ví dụ:
10:37:01 0|máy chủ | {"dấu thời gian":"*","cấp độ":"*","nhãn":"*","người dùng":"*","nội dung":"*","RequestMethod":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Ứng dụng":"*","CorrelationId":"*"}
Như bạn có thể thấy ở trên, dữ liệu không cần thiết 10:37:01 0|máy chủ |
đang xuất hiện bên ngoài json {}, do đó, kết quả là trong khi phân tích cú pháp nhật ký bằng cách sử dụng chỉ thị bộ lọc, nó sẽ đưa ra lỗi và thông báo lỗi "mẫu không khớp"
Ghi bàn
Nhật ký của tôi phải được tìm nạp từ thiết bị xuất chuẩn thông qua flud và đổ vào Elaticsearch do đó tôi cần sửa cấu trúc nhật ký chỉ để đảm bảo rằng nhật ký của tôi sẽ giống như bên dưới:
{"dấu thời gian":"*","cấp độ":"*","nhãn":"*","người dùng":"*","nội dung":"*","RequestMethod":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Ứng dụng":"*","CorrelationId":"*"}
Có nghĩa là không có dữ liệu 10:37:01 0|máy chủ |
đến bên ngoài cơ thể Json {}. FYI Tôi cũng đã kiểm tra tại máy chủ pm2 xem liệu chúng tôi có thể xóa mục nhập này trong nhật ký hay không nhưng không tìm thấy gì trên đó.
Bất kỳ phương pháp nào có thể khắc phục sự cố của tôi sẽ rất tuyệt.