ฉันใช้สแต็ค Elasticsearch และ Grafana อย่างคล่องแคล่วเพื่อบันทึกและตรวจสอบการตั้งค่า ฉันกำลังปรับแต่งบันทึก (ในรูปแบบ JSON) ที่มาจากคอนเทนเนอร์ / พ็อด NodeJS ที่ปรับใช้ในคลัสเตอร์ EKS และทิ้งลงใน Elasticsearch
ปัญหา
รูปแบบบันทึกที่มาจาก stdout จากโหนด (ปรับใช้โดยใช้เว็บเซิร์ฟเวอร์ pm2) ไม่ใช่ json ที่ถูกต้อง
ตัวอย่างเช่น:
10:37:01 0|เซิร์ฟเวอร์ | {"ประทับเวลา":"*","ระดับ":"*","ฉลาก":"*","ผู้ใช้":"*","ข้อความ":"*","RequestMethod":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Appplication":"*","CorrelationId":"*"}
ดังที่คุณเห็นข้างต้นว่าข้อมูลที่ไม่จำเป็น 10:37:01 0|เซิร์ฟเวอร์ |
กำลังออกมานอก json {} ดังนั้นในขณะที่แยกวิเคราะห์บันทึกโดยใช้คำสั่งตัวกรองมันจึงโยนข้อผิดพลาดและแจ้งว่า "รูปแบบไม่ตรงกัน" ข้อผิดพลาด
เป้าหมาย
บันทึกของฉันควรถูกดึงจาก stdout ผ่าน คล่องแคล่ว และทิ้งลงใน Elasticsearch ดังนั้นฉันต้องแก้ไขโครงสร้างบันทึกเพื่อให้แน่ใจว่าบันทึกของฉันควรมีลักษณะดังนี้:
{"ประทับเวลา":"*","ระดับ":"*","ฉลาก":"*","ผู้ใช้":"*","ข้อความ":"*","RequestMethod":"*"," RequestPath":"*","StatusCode":*,"MachineName":"V","EnvironmentName":"*","Appplication":"*","CorrelationId":"*"}
ซึ่งหมายความว่าไม่มีข้อมูล 10:37:01 0|เซิร์ฟเวอร์ |
ออกมานอกร่างกาย Json {} FYI ฉันได้ตรวจสอบที่เซิร์ฟเวอร์ pm2 ด้วยว่าเราสามารถลบรายการนี้ในบันทึกได้หรือไม่ แต่ไม่พบสิ่งใดในนั้น
วิธีการใด ๆ ที่สามารถแก้ไขปัญหาของฉันได้จะดีมาก