网络宝典
第二套高阶模板 · 更大气的阅读体验

手把手教你上手日志分析系统

发布时间:2025-12-15 19:33:33 阅读:134 次

什么是日志分析系统

你在公司服务器突然变慢时,是不是第一反应是‘到底哪出问题了’?这时候,日志分析系统就是你的“行车记录仪”。它能帮你翻看系统、应用、网络设备过去的行为记录,找出异常源头。常见的日志来源包括Web服务器(比如Nginx)、数据库、防火墙和应用程序输出的文本记录。

市面上主流的日志分析工具像ELK(Elasticsearch + Logstash + Kibana)、Graylog、Splunk,功能强大,但刚接触可能觉得复杂。这篇文章以ELK为例,带你一步步操作起来。

准备环境

你需要一台Linux服务器(CentOS或Ubuntu都行),至少4GB内存,能联网。先安装Java环境,因为Elasticsearch依赖它:

sudo apt update
sudo apt install openjdk-11-jre -y

确认安装成功:

java -version

安装Elasticsearch

下载并启动Elasticsearch:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.0-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.11.0-linux-x86_64.tar.gz
cd elasticsearch-8.11.0

直接启动(测试用):

./bin/elasticsearch

看到[INFO] [started]就表示运行起来了,默认端口9200。

安装Logstash收集日志

Logstash负责从各个地方拉日志。比如你想监控Nginx访问日志,先安装Logstash:

wget https://artifacts.elastic.co/downloads/logstash/logstash-8.11.0-linux-x86_64.tar.gz
tar -xzf logstash-8.11.0-linux-x86_64.tar.gz

创建一个配置文件nginx.conf:

input {
file {
path => "/var/log/nginx/access.log"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "nginx-logs-%{+YYYY.MM.dd}"
}
}

保存后启动:

./bin/logstash -f nginx.conf

这时候,Logstash就开始读取Nginx日志并推送到Elasticsearch了。

用Kibana查看数据

Kibana是可视化界面。下载安装:

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-linux-x86_64.tar.gz
tar -xzf kibana-8.11.0-linux-x86_64.tar.gz
cd kibana-8.11.0

修改配置文件config/kibana.yml,加入:

server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]

启动Kibana:

./bin/kibana

等几分钟,打开浏览器访问 http://你的服务器IP:5601,就能看到Kibana界面了。

创建索引模式

进入Kibana后,第一步是创建索引模式。输入 nginx-logs-*,然后选择 @timestamp 字段作为时间过滤器。保存后,就可以在‘Discover’页面看到实时的Nginx访问记录。

查某个IP的访问情况

在搜索框输入:source.ip : "192.168.1.100",回车后就能看到这个IP的所有请求。你还能按状态码筛选,比如 status: 500,快速定位服务器错误。

小技巧:加个简单的仪表盘

点击左侧‘Dashboard’,新建一个面板。添加一个图表,选‘Vertical Bar’,X轴选 @timestamp,按每5分钟聚合,Y轴选 count。这样就能看到访问量随时间的变化曲线。再加个饼图,按 status 字段分组,一眼看出200、404、500的比例。

某次线上接口报错,我就是靠这个饼图发现500错误突增,顺藤摸瓜查到是数据库连接池满了。日志分析系统真比盯着黑框刷日志强太多了。

日常维护建议

日志太多会撑爆磁盘。可以设置Elasticsearch的生命周期策略,自动删除30天前的数据。另外,别忘了给Kibana加个登录页,不然公网暴露可是大忌。如果不想自己搭,也可以试试阿里云SLS、腾讯云CLS这类托管服务,上传日志后直接查,适合小团队快速上手。