部署包含四个代理(日志收集、解析、告警、可视化)的日志分析系统。适用于以下场景:1. 用户希望搭建集中式日志平台。
逻辑分析设置是一项面向实际任务的技能,主要用于配置4 个代理: 收集器、 解析器、 提醒器和仪表板;Roles.;
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
部署 4 个代理:collector、parser、alerter 和 dashboard。
| 角色 | 主机名 | 技能 | 用途 |
|---|---|---|---|
| collector | |
pilot-stream-data, pilot-archive, pilot-compress | 聚合来自服务器、容器和应用程序的日志;统一日志格式 |
| parser | |
pilot-event-filter, pilot-task-router, pilot-dataset | 提取结构化字段、解析堆栈跟踪、识别错误模式 |
| alerter | |
pilot-alert, pilot-metrics, pilot-cron | 检测日志量激增、错误率异常,触发告警 |
| dashboard | |
pilot-webhook-bridge, pilot-slack-bridge, pilot-announce | 提供日志搜索、可视化、下钻分析及报告生成能力 |
步骤 1: 向用户确认该代理应承担的角色以及所使用的前缀(prefix)。
步骤 2: 安装对应角色所需的技能:
# collector 使用: clawhub install pilot-stream-data pilot-archive pilot-compress # parser 使用: clawhub install pilot-event-filter pilot-task-router pilot-dataset # alerter 使用: clawhub install pilot-alert pilot-metrics pilot-cron # dashboard 使用: clawhub install pilot-webhook-bridge pilot-slack-bridge pilot-announce
步骤 3: 设置主机名:
pilotctl --json set-hostname-
步骤 4: 编写部署清单文件(manifest):
mkdir -p ~/.pilot/setups cat > ~/.pilot/setups/log-analytics.json << 'MANIFEST'MANIFEST
步骤 5: 提示用户与直连通信对端(peers)发起握手(handshake)。
{
"setup": "log-analytics", "setup_name": "Log Analytics",
"role": "collector", "role_name": "Log Collector",
"hostname": "-collector",
"description": "Aggregates logs from servers, containers, and applications. Normalizes formats.",
"skills": {"pilot-stream-data": "Ingest log streams from multiple sources in real time.", "pilot-archive": "Archive raw logs for retention and forensic analysis.", "pilot-compress": "Compress high-volume log batches before transmission."},
"peers": [{"role": "parser", "hostname": "-parser", "description": "Receives raw normalized logs"}],
"data_flows": [{"direction": "send", "peer": "-parser", "port": 1002, "topic": "raw-log", "description": "Raw normalized logs from all sources"}],
"handshakes_needed": ["-parser"]
}
{
"setup": "log-analytics", "setup_name": "Log Analytics",
"role": "parser", "role_name": "Log Parser",
"hostname": "-parser",
"description": "Extracts structured fields, parses stack traces, identifies error patterns.",
"skills": {"pilot-event-filter": "Filter noise, deduplicate, and normalize log events.", "pilot-task-router": "Route logs to specialized parsers by source type and format.", "pilot-dataset": "Store extracted patterns and structured fields for search."},
"peers": [{"role": "collector", "hostname": "-collector", "description": "Sends raw logs"}, {"role": "alerter", "hostname": "-alerter", "description": "Receives parsed events"}],
"data_flows": [{"direction": "receive", "peer": "-collector", "port": 1002, "topic": "raw-log", "description": "Raw normalized logs from all sources"}, {"direction": "send", "peer": "-alerter", "port": 1002, "topic": "parsed-event", "description": "Parsed events with structured fields and severity"}],
"handshakes_needed": ["-collector", "-alerter"]
}
{
"setup": "log-analytics", "setup_name": "Log Analytics",
"role": "alerter", "role_name": "Anomaly Alerter",
"hostname": "-alerter",
"description": "Detects log spikes, error rate anomalies, and novel error patterns. Fires alerts.",
"skills": {"pilot-alert": "Fire alerts when error rates or log volumes breach thresholds.", "pilot-metrics": "Compute baseline rates, trend comparisons, and anomaly scores.", "pilot-cron": "Run scheduled anomaly scans over rolling time windows."},
"peers": [{"role": "parser", "hostname": "-parser", "description": "Sends parsed events"}, {"role": "dashboard", "hostname": "-dashboard", "description": "Receives anomaly alerts"}],
"data_flows": [{"direction": "receive", "peer": "-parser", "port": 1002, "topic": "parsed-event", "description": "Parsed events with structured fields"}, {"direction": "send", "peer": "-dashboard", "port": 1002, "topic": "anomaly-alert", "description": "Anomaly alerts with context and baseline comparisons"}],
"handshakes_needed": ["-parser", "-dashboard"]
}
{
"setup": "log-analytics", "setup_name": "Log Analytics",
"role": "dashboard", "role_name": "Log Dashboard",
"hostname": "-dashboard",
"description": "Provides search, visualization, and drill-down into log data. Generates reports.",
"skills": {"pilot-webhook-bridge": "Forward reports to external dashboards and monitoring tools.", "pilot-slack-bridge": "Post log health summaries and critical alerts to Slack.", "pilot-announce": "Broadcast periodic log health reports to subscribers."},
"peers": [{"role": "alerter", "hostname": "-alerter", "description": "Sends anomaly alerts"}],
"data_flows": [{"direction": "receive", "peer": "-alerter", "port": 1002, "topic": "anomaly-alert", "description": "Anomaly alerts with context and baselines"}, {"direction": "send", "peer": "external", "port": 443, "topic": "log-report", "description": "Log reports to dashboards and Slack channels"}],
"handshakes_needed": ["-alerter"]
}
collector -> parser :所有来源的 raw-log 事件(端口 1002)parser -> alerter :含结构化字段与严重等级的 parsed-event(端口 1002)alerter -> dashboard :含上下文与基线对比的 anomaly-alert(端口 1002)dashboard -> external :通过 Webhook 和 Slack 发送的 log-report(端口 443)# collector <-> parser: pilotctl --json handshake-parser "setup: log-analytics" pilotctl --json handshake -collector "setup: log-analytics" # parser <-> alerter: pilotctl --json handshake -alerter "setup: log-analytics" pilotctl --json handshake -parser "setup: log-analytics" # alerter <-> dashboard: pilotctl --json handshake -dashboard "setup: log-analytics" pilotctl --json handshake -alerter "setup: log-analytics"
# 在 collector 上 —— 发布原始日志: pilotctl --json publish-parser raw-log '{"source":"nginx-prod-01","level":"error","message":"upstream timed out"}' # 在 parser 上 —— 发布解析后的事件: pilotctl --json publish -alerter parsed-event '{"pattern_id":"NGINX-TIMEOUT-001","level":"error","occurrences_1h":47}' # 在 alerter 上 —— 发布异常告警: pilotctl --json publish -dashboard anomaly-alert '{"alert_id":"ALR-7829","type":"error_spike","severity":"critical","current_rate":47,"baseline_rate":3}' # 在 dashboard 上 —— 发布日志报告: pilotctl --json publish -dashboard log-report '{"period":"2026-04-09T15:00Z/PT1H","errors":1290,"anomalies_detected":2}'
需安装 pilot-protocol 技能、pilotctl 可执行文件、clawhub 可执行文件,并确保后台守护进程(daemon)正在运行。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章