
本文是我帮团队搭建日志分析系统的实战记录,从选型到部署到出第一张仪表盘,全程第一人称口语化叙述,踩过的坑都标出来了。如果你是第一次搭 ELK,照着做就行。
事情起因是上个月一次线上故障。凌晨 2 点用户反馈下单失败,我们 4 个人分别 SSH 登 8 台机器 grep 日志,找了一个半小时才定位到是支付回调接口超时。复盘会上 CTO 直接拍板:"搞套统一的日志系统"。
调研了一圈,结论很清楚:ELK(Elasticsearch + Logstash + Kibana)是日志分析的事实标准,生态成熟、社区活跃、招聘市场能找到人。剩下的问题只有一个:自建还是上云?
我先尝试了自建路线,以下是我踩的坑(如果你时间紧可以跳过这节直接看结论):
坑 1:装环境就花了两天
坑 2:调分片调到怀疑人生
坑 3:磁盘一周就满了
坑 4:升级是个大工程
坑 5:安全没人管
折腾一周后,CTO 看了一眼账单(我用了两周人力 + 一台高配服务器),说:"你算算自建成本,对比一下腾讯云 ES。"
项目 | 自建 | 腾讯云 ES |
|---|---|---|
部署时间 | 2 人天 | 3 分钟 |
JDK / Logstash / Kibana 配置 | 自己搞 | 控制台一键 |
X-Pack 高级特性 | 社区版要付费 | 白金版免费 |
监控告警 | 自己搭 Prometheus + Grafana | 内置智能巡检 |
备份恢复 | 自己写脚本 | COS 自动备份 |
升级 | 滚动重启 + 踩坑 | 控制台点一下 |
安全 | 自己配 HTTPS + 鉴权 | VPC 隔离 + 字段级权限 + 审计日志 |
人力运维 | 至少 0.5 个工程师 | 接近 0 |
结论很扎心:32GB 以下规模,自建 ELK 完全不划算。我直接转投腾讯云 ES。
进 ES 控制台 → 新建集群:
新客首购 4.5 折起,3 节点小集群一个月几十块,比一杯咖啡还便宜。
集群状态变绿后(通常 3-5 分钟),控制台点「Kibana」直接进。不需要配 nginx、不需要签证书、不需要记 5601 端口——HTTPS、鉴权都帮你做好了。
第一次进会让你设个 Kibana 密码,设完就进主界面了。
腾讯云 ES 提供了好几种数据接入方式,我选了最省事的「可视化日志采集」:
控制台 → 数据接入 → 新建采集任务:
/var/log/nginx/access.lognginx-logs-%{+yyyy.MM.dd}(按天滚动)点确认后,回到 Kibana 就能看到数据源源不断地写进来了。
数据进来后,开始做可视化。这是整个流程最有成就感的部分。
Kibana 左侧 → Stack Management → Data Views → Create:
nginx_logsnginx-logs-*@timestamp这一步是告诉 Kibana:"这些索引都是同一类日志,时间字段是这个"。
左侧 → Discover → 选刚建的 nginx_logs 视图。你能看到所有原始日志,按时间倒序排列。
试试在搜索栏用 KQL 写:
response.code: 500 —— 只看 500 错误response.code >= 400 and client.ip: 10.0.* —— 内网客户端的 4xx/5xx"GET /api/order" —— 包含特定路径的请求字段筛选、时间范围拖拽、日志高亮,Discover 就是个加强版 grep。
左侧 → Visualize → Create → 选 Vertical Bar(柱状图):
配置项 | 值 |
|---|---|
Data view | nginx_logs |
Y 轴 | Count(请求数) |
X 轴 | Terms,字段 |
保存,命名"访问地域分布"。这是你第一张图。
左侧 → Dashboard → Create → Add → 把刚才的图加进来。
继续按这个套路做 5 张图:
@timestamp,按 1 分钟分桶response.codeclient.ipduration,95 分位response.code:5xx 的 Count / 总 Count把这 5 张图拖拽排列到一个 Dashboard 里,这就是你的运维监控大屏。
仪表盘右上角有:
把这台机器投到大屏上,就是一个实时监控的运维看板。故障发生时,哪个图先变红你一眼就能看到。
光看不够,还要能自动告警。腾讯云 ES 的 X-Pack 白金版自带告警功能:
Kibana → Stack Management → Rules and Connectors → Create rule:
response.code: 500 过去 5 分钟超过 100 次Kibana → Machine Learning → Create job:
response.code:500 的 count)机器学习会自动学习正常的访问模式,当出现异常的访问量激增时报警——比固定阈值灵敏得多,误报率低。
腾讯云 ES 白金版的机器学习功能是免费开放的,这在 Elastic 官方订阅里要 Enterprise 级别年费。
最后记录几个我踩过的坑,希望能帮到你:
Asia/Shanghai,否则凌晨的日志会显示成早上 8 点搭完整套日志系统,从买集群到出第一张仪表盘,我花了不到半天。要是走自建路线,光配 Logstash 的 grok 解析就要折腾两天。
云托管 ES 最大的价值不是省了几台服务器的钱,而是省下来的精力可以聚焦在业务上——把日志系统搭好的真正目的,是当故障发生时你能在 30 秒内定位问题,而不是花一个半小时 grep。
腾讯云 ES 新客首购 4.5 折起,Serverless 资源包 1 元试用。如果你也在纠结自建还是上云,强烈建议先开个集群跑两周,用真实数据验证。
🚀 立即体验:腾讯云 ES 控制台 | 日志增强版 + 存算分离,成本省 50%-80%
🎁 限时特惠活动:
活动 | 福利 | 适合谁 |
|---|---|---|
新客首购 4.5 折起,3 分钟部署日志增强版,告别自建踩坑 | 需要独享集群、长期稳定运行的生产业务 | |
1 元试用 Serverless,零运维零配置跑通 ELK 全流程 | 日志分析、按需使用、快速 POC 验证 |
⏰ 活动限时,新老客户同享,全地域生效。建议两个都领:先用 Serverless 1 元跑通 POC,再用特惠专场 4.5 折部署生产集群。
相关阅读:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。