公司服务器突然变慢,用户投诉登录不了,这时候第一反应该查什么?别急着重启服务,打开日志分析平台才是正解。就像医生看病要看化验单,运维问题也得靠日志说话。但面对成堆的日志数据,很多人一上来就懵了——这东西怎么用?别担心,咱们一步步来。
选对工具是第一步
市面上常见的日志分析平台有 ELK(Elasticsearch + Logstash + Kibana)、Graylog、阿里云SLS等。如果你是中小企业或者个人项目,推荐先试试 Kibana 搭配 Filebeat,轻量又直观。比如你在一台 Linux 服务器上部署了 Web 应用,想把 Nginx 的访问日志集中查看,就可以用 Filebeat 把日志传到 Elasticsearch,再通过 Kibana 做可视化。
快速搭建一个基础流程
假设你已经装好了 Elasticsearch 和 Kibana,接下来在应用服务器安装 Filebeat:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update && sudo apt install filebeat
配置 Filebeat 指向你的 Elasticsearch 地址,编辑 /etc/filebeat/filebeat.yml:
output.elasticsearch:
hosts: ["http://your-es-server:9200"]
username: "elastic"
password: "your-strong-password"
然后启用 Nginx 日志模块并启动采集:
filebeat modules enable nginx
sudo systemctl start filebeat
在 Kibana 看懂关键信息
打开浏览器访问 Kibana 页面,进入 Discover 标签页,选择 filebeat-* 索引模式,就能看到实时涌入的日志条目。每条记录包含时间戳、客户端 IP、请求路径、状态码等字段。如果发现大量 500 错误,可以点击 status:500 进行过滤,进一步查看出错的 URL 和堆栈信息。
想看最近一小时的访问趋势?进 Dashboard 创建一个折线图,X 轴设为时间,Y 轴统计日志数量,立刻就能看出流量高峰是否和故障时间重合。
实用技巧:设置告警不熬夜
半夜三点被电话叫醒查问题太常见。其实可以在 Kibana 里配置规则,比如“过去5分钟内出现超过10条 ERROR 级别日志”就自动发邮件或钉钉通知。
# 在 Alerting 中创建 rule
Name: High Error Rate Warning
Condition: count() > 10 when @timestamp in last 5 minutes
Action: Send to dingtalk webhook
这样你就能安心睡觉,真有问题系统会主动喊你。
小公司也能玩转日志分析
不是非得搭整套 ELK 才行。如果你只是个小电商站点,每天日志不到1GB,直接用阿里云 SLS 或腾讯云 CLS 更省事。开通后几行代码就能接入:
// Node.js 示例:将错误日志发到云端
const aliyunLog = require('aliyun-log-nodejs');
后台自带搜索、图表、告警,连数据库都不用自己维护。花几百块换来的稳定性和效率提升,值。
别光看,动手改才记得住
找个测试机,装个 Nginx,随便制造点访问和错误日志,再走一遍上面的流程。你会发现,原来所谓的“平台”并不是黑盒子,无非就是收集、存储、查询、展示四个环节。搞清楚每个组件干啥的,下次遇到卡点就知道往哪查。
日志分析不是高级工程师的专利,谁都能上手。关键是别怕错,多试几次,慢慢就能从海量数据里一眼揪出问题根源。