公司服务器一多,Nginx、Java应用、MySQL、Docker容器……每天产生的日志动辄几个G,靠手动翻文件查问题?早就不现实了。这时候,搭个日志分析平台就不是‘可选项’,而是‘刚需’。
本地单机部署:适合个人或小团队快速试水
如果你刚接触日志分析,或者只是想在测试机上跑通流程,用一台4核8G的笔记本或旧服务器就能搞定。主流组合是 ELK(Elasticsearch + Logstash + Kibana)或轻量版 Loki + Grafana。
比如用 Docker 快速拉起 Loki:
docker run -d -p 3100:3100 \
--name loki \
-v $(pwd)/loki-config.yaml:/etc/loki/local-config.yaml \
grafana/loki:2.9.2
再配个 Promtail 收集本机 /var/log/ 下的日志,不到10分钟,就能在 Grafana 里看到实时日志流。好处是不依赖外部服务,改配置、调参数都方便;缺点也很明显——日志量一过50GB/天,查询就开始卡,磁盘撑不住。
容器集群部署:中小业务主力方案
线上有十几台云服务器,每天日志100GB+?推荐用 Kubernetes 部署 Loki 或 Elasticsearch。把日志采集(Promtail/Fluent Bit)、索引存储(Loki/Elasticsearch)、可视化(Grafana/Kibana)拆成独立 Pod,自动扩缩容。
例如,在 K8s 中部署 Fluent Bit 收集容器日志,只需一个 ConfigMap 指定输出目标为 Loki:
[OUTPUT]
Name loki
Match *
Host loki.default.svc.cluster.local
Port 3100
Labels job=fluent-bit
这种结构运维清晰,升级某个组件不影响全局;但得先有 K8s 环境,对没接触过容器编排的同学,学习曲线略陡。
云托管服务:省心但得算账
阿里云 SLS、腾讯云 CLS、AWS CloudWatch Logs,点几下鼠标就能接入,自带权限控制、告警、大屏看板。某电商团队曾用 SLS 替掉自建 ELK,运维人力从2人减到0.5人/月。
不过要注意:日志按写入量和查询次数计费。如果每天写入200GB、高频做字段检索,一个月账单可能比租3台高配云服务器还贵。建议先用免费额度跑一周真实流量,再决定是否长期迁入。
混合部署:老系统+新服务的现实解法
很多公司既有老旧 Windows 服务器跑着 IIS,又有新上的微服务集群。硬要统一平台反而增加复杂度。我们见过最稳的方案是:Windows 日志走 NXLog 推到本地 Logstash 做简单过滤,再转存到中心 Loki;K8s 内部日志直接由 DaemonSet 的 Promtail 上报。两边数据在 Grafana 里用不同数据源展示,互不干扰,维护也各管各的。
部署没有‘标准答案’,关键看手头有什么机器、团队熟悉哪套工具、日志规模有多大。别迷信‘全栈自研’,也别盲目上云——能快速定位一次数据库慢查询、及时发现凌晨三点的异常登录,这才是日志平台该干的事。