Chuyển đến nội dung chính

Mô tả

Probe log_get tail file log và ship dòng mới tới VMS ingress qua ProbeResult.Logs. Hỗ trợ multiline grouping và redaction dữ liệu nhạy cảm trước khi gửi. Track byte offset giữa các lần chạy, reset khi file bị truncate/rotate. Khác với log_mon (đếm match), log_get ship nội dung log line.

Config fields

FieldTypeBắt buộcDefaultMô tả
typestringPhải là "log_get"
filePathstringĐường dẫn file log cần ship
readFromEndboolKhôngfalsetrue: lần chạy đầu tiên bắt đầu từ cuối file (chỉ ship dòng mới). false: đọc từ đầu file
maxBytesPerReadint64Không8 MiBGiới hạn bytes đọc mỗi lần chạy. Tối đa 8 MiB bất kể giá trị cấu hình
multilineStartPatternstringKhôngRegex xác định dòng bắt đầu log entry mới. Dòng không match được nối vào entry trước đó. Nếu để trống, mỗi dòng là 1 entry
redactPatternsstring[]KhôngDanh sách regex — mỗi match trong log line bị thay bằng *** trước khi ship

Metrics

MetricTypeUnitMô tả
vms.log_get.lines_sentcounterSố log entry đã ship trong lần chạy này

Ví dụ config

{
  "type": "log_get",
  "filePath": "/var/log/app/app.log",
  "readFromEnd": true,
  "maxBytesPerRead": 65536
}
Multiline Java stack trace:
{
  "type": "log_get",
  "filePath": "/var/log/app/app.log",
  "readFromEnd": true,
  "multilineStartPattern": "^\\d{4}-\\d{2}-\\d{2}",
  "redactPatterns": ["password=[^&\\s]+", "token=[^&\\s]+"]
}

Lưu ý

  • Redaction xảy ra trước khi ship — dữ liệu match redactPatterns không bao giờ rời khỏi agent.
  • Multiline entry bị chia chính xác tại ranh giới read window có thể bị ship thành 2 entry riêng — chấp nhận được cho bounded tailer.
  • File không tồn tại hoặc không đọc được → status down, severity warning, không ship dòng nào.
  • Chỉ đọc dòng hoàn chỉnh (kết thúc bằng \n).