Skip to content

Latest commit

 

History

History
160 lines (127 loc) · 9.09 KB

File metadata and controls

160 lines (127 loc) · 9.09 KB

配置参考

本文定义当前 Agent YAML、安装路径、平台端口和主要环境变量。代码中的解析器、部署脚本和 Compose 文件是最终事实来源;未知 Agent section 或 key 会直接报错。

Agent 配置

默认文件为 /etc/sysarmor/agent/agent.yaml,参考配置为 deployments/agent/standalone.yamlconfigs/agent.example.yaml

必填项:local.state_pathsensor.backendsensor.modepolicy.path。所有 duration 使用 Go duration(如 500ms10s1m);字节数必须带 BKiBMiBGiB

本地状态与导出

Key 默认值 约束或含义
local.state_path /var/lib/sysarmor/agent 身份和本地状态根目录
local.storage.max_bytes 10GiB 正数,本地总预算
local.storage.min_free_bytes 2GiB 正数,磁盘保留空间
local.storage.segment_size 64MiB 正数,事件段大小
local.storage.signal_max_count 100000 正数,Signal 数量上限
local.export.retry_initial 1s 正数且不大于 retry_max
local.export.retry_max 30s 最大重试间隔
local.export.request_timeout 10s 单次请求超时
local.export.max_inflight 1 当前只接受 1
local.export.wire_compression none 线传压缩方式

身份、控制与运行时

Key 默认值 约束或含义
agent.label.<name> 任意非空 label 名;身份由 enrollment 管理
control.socket_path /run/sysarmor/agent/control.sock 本地 gRPC Unix socket
runtime.feature_flags.matcher_strategy linear linearoptimized
health.interval 10s 正 duration
policy.path /etc/sysarmor/agent/policy.json 统一策略文件
content.path /var/lib/sysarmor/agent/content 已应用内容存储目录
content.trust_keys 逗号分隔的 key_id=base64_ed25519_public_key
resource.max_active_cep_groups 4096 非负;CEP 活跃组上限
resource.max_event_refs_per_signal 128 非负;Signal 事件引用上限

平台连接

当前 YAML 不接受 manager:,也不接受 agent.idhost_idtenant_id 或 token。设备身份、Gateway 地址和 mTLS 材料由 enrollment 流程写入受保护的本地状态。手工恢复旧版 manager: 配置会触发 unknown section 错误,而不是启用平台连接。

Sensor

Key 默认值 约束或含义
sensor.backend tetragon tetragonfake
sensor.mode managed managedexternal
sensor.version 期望的 sensor 版本标签
sensor.bundle_dir managed bundle 根目录
sensor.install_dir 已安装 sensor 根目录
sensor.tetra_path tetra 路径
sensor.tetragon_path tetragon 路径
sensor.event_transport grpc grpctetra
sensor.server_address unix:///var/run/tetragon/tetragon.sock Tetragon gRPC 地址
sensor.event_source 调试输入;- 表示 stdin JSONL
sensor.scope.type host hostcontainercgroupnamespacepod
sensor.scope.selector 非 host scope 必填;namespace 仅支持 self
sensor.observe_only true 是否只观测
sensor.restart always sensor 重启策略
sensor.max_restarts 5 非负
sensor.restart_window 1m 重启观察窗口
sensor.max_parse_errors 0 允许的解析错误阈值
sensor.max_dropped_events 0 允许的丢弃阈值

性能和底层路径参数还包括 cgroup_ratepprof_addressgops_addressprocess_cache_sizedata_cache_sizeevent_queue_sizerb_queue_sizebtf_pathbpffs_pathrequire_btfrequire_bpffsfake_startup_events。只有基于测量结果调优或测试 fake backend 时才应覆盖它们。

Telemetry

Key 默认值 有效范围
telemetry.max_batch_items 256 1..4096
telemetry.max_batch_bytes 256KiB 64KiB..16MiB
telemetry.flush_interval 1s 100ms..1m

统一 Policy 可在有效范围内覆盖这些基线值。

Endpoint Policy

policy.path 指向的 JSON 是 Agent 实际应用的统一 Endpoint Policy,不是 Manager 保存的发布元数据。顶层必填 policy_id、正整数 version,以及 collectiondetectiontelemetryresponse 四个对象。安装包使用的最小有效结构为:

{
  "policy_id": "standalone-default",
  "version": 1,
  "collection": {
    "behaviors": ["process.exec", "file.write", "network.connect"],
    "observe_only": true
  },
  "detection": {},
  "telemetry": {
    "max_batch_items": 256,
    "max_batch_bytes": 262144,
    "flush_interval": "1s"
  },
  "response": {}
}
Section 主要字段 约束
collection behaviorsbinary_prefixesfile_prefixessocket_familiessocket_addrssocket_portsscope_typescope_selectorobserve_only behaviors 接受行为 ID 数组,也接受带 selector 的对象数组
detection policy_idversionmodescoperulesetsrule_overridescontext_refsioc_refs 空对象使用当前默认检测行为;未解析引用当前可能被跳过或降级
telemetry max_batch_itemsmax_batch_bytesflush_interval Agent 配置表中的有效范围同样适用
response allowed_actionsallowed_modesapproval_requiredapproval_thresholdapproval_rolesallow_destructive 空对象归一化为默认 collect/noopobserve;破坏性动作必须显式允许

Endpoint Policy 顶层以及 detection、telemetry、response 使用 strict decoding;Collection 子结构当前使用普通 JSON 解码,可能忽略未知字段。未知 ruleset 也可能得到零条有效规则,context 或 IOC 引用可能被跳过。不要把“解析未报错”当作字段或引用已经生效,必须检查 explain report 和实际有效规则。应用前执行:

sudo sysarmorctl policy explain --file /path/to/policy.json
sudo sysarmorctl policy apply --file /path/to/policy.json --dry-run

完整示例以 deployments/agent/policy.json 为准,四层策略的设计与变更方法见策略指南。Manager Policy 另含 tenant、发布、分配和云侧收敛元数据,不应直接写入 Agent 的 policy.path

安装路径覆盖

安装器支持通过环境变量覆盖目标路径,常用项如下:

变量 默认值
SYSARMOR_AGENT_HOME /opt/sysarmor/agent
SYSARMOR_AGENT_DST $SYSARMOR_AGENT_HOME/bin/sysarmor-agent
SYSARMOR_CTL_DST /usr/local/bin/sysarmorctl
SYSARMOR_SERVICE_DST /etc/systemd/system/sysarmor-agent.service
SYSARMOR_CONFIG_DST /etc/sysarmor/agent/agent.yaml
SYSARMOR_POLICY_DST /etc/sysarmor/agent/policy.json
SYSARMOR_TETRAGON_BUNDLE_DIR $SYSARMOR_AGENT_HOME/bundles/tetragon
SYSARMOR_TETRAGON_INSTALL_DIR $SYSARMOR_AGENT_HOME/sensors
SYSARMOR_ENABLE_SERVICE 1

平台端口

变量 宿主机默认端口 容器端口
SYSARMOR_MANAGER_UI_PORT 4173 4173
SYSARMOR_MANAGER_PORT 19443 9443
SYSARMOR_GATEWAY_PORT 19444 9444
SYSARMOR_GATEWAY_HEALTH_PORT 19445 9445
SYSARMOR_PACKAGE_PORT 18080 80
SYSARMOR_POSTGRES_PORT 15432 5432
SYSARMOR_KAFKA_PORT 19092 9092
SYSARMOR_REDIS_PORT 16379 6379
SYSARMOR_OPENSEARCH_PORT 29200 9200

服务环境变量

服务 核心变量
Manager SYSARMOR_POSTGRES_DSNSYSARMOR_OPENSEARCH_URLSYSARMOR_ARTIFACT_DIRSYSARMOR_AGENT_PACKAGE_INDEX_URLSYSARMOR_ARTIFACT_PUBLIC_KEYSYSARMOR_AGENT_CA_CERTSYSARMOR_AGENT_CA_KEYSYSARMOR_JWT_PUBLIC_KEY_FILESYSARMOR_JWT_ISSUERSYSARMOR_JWT_AUDIENCE
Gateway SYSARMOR_POSTGRES_DSNSYSARMOR_KAFKA_BROKERSSYSARMOR_REDIS_ADDRSYSARMOR_GRPC_TLS_CERTSYSARMOR_GRPC_TLS_KEYSYSARMOR_GRPC_CLIENT_CASYSARMOR_GRPC_REQUIRE_CLIENT_CERT
Worker SYSARMOR_POSTGRES_DSNSYSARMOR_KAFKA_BROKERSSYSARMOR_KAFKA_TOPICSYSARMOR_KAFKA_GROUP_IDSYSARMOR_OPENSEARCH_URL
Manager Console AUTH_SECRET_FILESYSARMOR_BOOTSTRAP_ADMIN_USERNAME_FILESYSARMOR_BOOTSTRAP_ADMIN_PASSWORD_FILESYSARMOR_BFF_JWT_PRIVATE_KEY_FILESYSARMOR_MANAGER_JWT_ISSUERSYSARMOR_MANAGER_JWT_AUDIENCEMANAGER_API_ORIGIN

示例值位于 deployments/{manager,gateway,worker,manager-ui}/*.env.example。示例中的数据库密码只适用于隔离的本地 Compose;生产环境必须从环境或机密管理系统注入。

configs/ 的边界

configs/ 保存策略和规则元数据示例,运行时不会自动发现或加载该目录。Agent 默认值在 deployments/agent/,wire contract 在 api/proto/,可执行测试内容在 test/data/。没有显式 loader 或 apply 流程时,不要把 configs/ 中的文件视为已部署策略。