用途:在 Kubernetes、Docker Compose 或虚拟机上部署集中式日志聚合平台,实现应用、容器与系统日志的采集、解析、存储、可视化与告警。
主要能力:选择平台(ELK 适合全文检索与复杂查询,Loki 适合轻量级 Kubernetes 原生日志,Splunk 适合企业级高级分析);部署存储后端(Elasticsearch 集群、Loki 配对象存储 S3/GCS、Splunk indexer);在来源端配置采集器(ELK 用 Filebeat,Loki 用 Promtail,多目标用 Fluentd/Fluent Bit);定义解析规则(Logstash grok 处理非结构化日志、JSON 解析、多行堆栈处理);设置保留策略(Elasticsearch 的 ILM、Loki 分块保留、Splunk 索引轮转);部署 Kibana、Grafana 或 Splunk Search 面板;配置基于日志的错误激增、异常与安全事件告警;通过 RBAC 按团队与环境限制访问;最后生成测试日志验证整条管道。
前置条件:确定目标基础设施;估算日日志量乘以保留周期得出存储需求;打通日志源与平台网络(常见端口 9200、3100、8088);确定认证方式(LDAP、OAuth、API token 或 basic auth);规划资源,Elasticsearch 每节点堆内存至少 4GB。
输出物:Docker Compose 或 Kubernetes 清单、采集器配置(Filebeat YAML、Promtail config、Fluentd conf)、解析与字段提取规则、保留策略配置、Kibana/Grafana 面板 JSON、告警规则定义。
常见错误与处理:ES 堆内存耗尽需调大 ES_JAVA_OPTS(设为可用内存 50%,上限 32GB)或加节点;无法连接 ES 需确认其运行状态、防火墙与绑定地址;建索引失败需用 df -h 检查磁盘并复核索引模板与分片分配;解析失败可用 Kibana Grok Debugger 测试并加兜底模式;Promtail 打开文件过多需调高 ulimit -n 至 65536 并减少监听路径。
限制:资料未提供具体版本、定价或性能基准,实际端口、资源与参数需按环境确认。