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

Mô tả

Probe auto_discovery đọc bảng connection của host và tự ghi nhận connection inventory cho các process được chỉ định. Hỗ trợ emit metric inventory cho từng connection và/hoặc topology data (listen ports + connection edges) để vẽ service dependency map. Yêu cầu ConnAdapter. Nếu dùng processNames, cần CAP_SYS_PTRACE để attribute socket tới PID.

Config fields

FieldTypeBắt buộcDefaultMô tả
typestringPhải là "auto_discovery"
processProbeIdsstring[]KhôngDanh sách probe ID của process_mon — agent tự resolve ra processName tương ứng
processNamesstring[]KhôngDanh sách process name cần discovery connection
includeStatesstring[]KhôngChỉ include các connection state này (ví dụ ["ESTABLISHED"])
excludeRemoteAddressesstring[]KhôngLoại trừ connection tới các remote address này
excludeRemotePortsint[]KhôngLoại trừ connection tới các remote port này
emitConnectionMetricsboolKhôngfalseEmit metric inventory cho từng discovered connection
emitTopologyboolKhôngfalseEmit topology data: listen registry + connection edges (dùng cho service dependency map)

Metrics

MetricTypeLabelsĐiều kiện
vms.connection.discovered_countgaugeLuôn emit
vms.connection.discoveredgaugeprocess_name, local_addr, local_port, remote_addr, remote_port, state, protocolemitConnectionMetrics = true. Tối đa 200 series
vms.topology.listen_countgaugeemitTopology = true
vms.topology.listengaugeprocess_name, local_addr, local_port, protocolemitTopology = true. Tối đa 200 series
vms.topology.edge_countgaugeemitTopology = true
vms.topology.edgegaugeprocess_name, local_addr, local_port, remote_addr, remote_port, protocolemitTopology = true. Tối đa 500 series
vms.agent.permission_missinggaugecapability=CAP_SYS_PTRACEKhi processNames được cấu hình nhưng thiếu quyền

Ví dụ config

{
  "type": "auto_discovery",
  "processNames": ["nginx", "java"],
  "includeStates": ["ESTABLISHED"],
  "emitConnectionMetrics": true
}
Với topology:
{
  "type": "auto_discovery",
  "processProbeIds": ["probe-nginx", "probe-api"],
  "includeStates": ["ESTABLISHED", "LISTEN"],
  "excludeRemoteAddresses": ["127.0.0.1"],
  "excludeRemotePorts": [22],
  "emitConnectionMetrics": true,
  "emitTopology": true
}

Lưu ý

  • Series bị cap để bound cardinality: inventory tối đa 200, listen tối đa 200, edges tối đa 500. Tổng count luôn chính xác — cap chỉ ảnh hưởng per-series detail.
  • processProbeIds được agent resolve ra processNames trước khi probe chạy. Nếu probe chạy ngoài agent (ví dụ test), sẽ bị warning.
  • Bảng connection là attacker-influenceable (bất kỳ process local nào cũng có thể mở socket) — cap series là biện pháp anti-cardinality.