在现代 IT 运维和开发中,日志分析是保障系统稳定、排查故障的重要手段。而 ELK 栈(Elasticsearch + Logstash + Kibana)是一套非常流行的开源日志收集、存储与可视化工具组合。本文将带你从零开始,在 Ubuntu 系统上搭建并配置 ELK 栈,实现高效的日志分析功能。无论你是运维新手还是开发小白,都能轻松上手!

ELK 是三个开源项目的首字母缩写:
近年来,很多人用轻量级的 Filebeat 替代 Logstash 做日志采集(因为资源占用更低),再由 Logstash 做集中处理。因此完整的流程常为:Filebeat → Logstash → Elasticsearch → Kibana。
本教程基于 Ubuntu 22.04 LTS,请确保你有以下条件:
首先更新系统:
sudo apt updatesudo apt upgrade -yElasticsearch 和 Logstash 都依赖 Java,我们安装 OpenJDK 17:
sudo apt install openjdk-17-jdk -yjava -version确认输出包含 openjdk version "17.x.x" 即可。
1. 添加 Elastic 官方 GPG 密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg2. 添加 APT 仓库:
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list3. 安装 Elasticsearch:
sudo apt updatesudo apt install elasticsearch -y4. 启动并设置开机自启:
sudo systemctl enable elasticsearchsudo systemctl start elasticsearch5. 检查状态(可能需要等待几秒):
curl -X GET "localhost:9200"若返回 JSON 格式的集群信息,说明 Elasticsearch 已成功运行。
sudo apt install logstash -ysudo systemctl enable logstashsudo systemctl start logstash创建一个简单的 Logstash 配置文件,用于接收 Filebeat 发送的日志:
sudo nano /etc/logstash/conf.d/filebeat.conf粘贴以下内容:
input { beats { port => 5044 }}filter { if [fileset][module] == "system" { if [message] =~ /^\w{3}\s+\d{1,2}\s+\d{2}:\d{2}:\d{2}/ { grok { match => { "message" => "%{SYSLOGTIMESTAMP:[system][auth][timestamp]} %{SYSLOGHOST:[system][auth][hostname]} %{DATA:[system][auth][program]}(?:\[%{POSINT:[system][auth][pid]}\])?: %{GREEDYDATA:[system][auth][message]}" } pattern_definitions => { "GREEDYDATA" => ".*" } } } }}output { elasticsearch { hosts => ["http://localhost:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" }}保存后重启 Logstash:
sudo systemctl restart logstashFilebeat 负责从本地日志文件(如 /var/log/syslog)采集数据并发送给 Logstash。
sudo apt install filebeat -y编辑配置文件:
sudo nano /etc/filebeat/filebeat.yml修改以下关键部分(注释掉 Elasticsearch 输出,启用 Logstash 输出):
#output.elasticsearch:# hosts: ["localhost:9200"]output.logstash: hosts: ["localhost:5044"]启用系统日志模块:
sudo filebeat modules enable system加载 Kibana 仪表盘模板(方便后续可视化):
sudo filebeat setup --pipelinessudo filebeat setup --dashboards启动 Filebeat:
sudo systemctl enable filebeatsudo systemctl start filebeatsudo apt install kibana -y编辑配置文件,允许外部访问(默认只监听 localhost):
sudo nano /etc/kibana/kibana.yml取消注释并修改以下行:
server.host: "0.0.0.0"server.port: 5601elasticsearch.hosts: ["http://localhost:9200"]启动 Kibana:
sudo systemctl enable kibanasudo systemctl start kibana现在,打开浏览器访问 http://你的服务器IP:5601,即可进入 Kibana 控制台。
1. 首次登录后,点击左侧菜单的 “Analytics” → “Discover”。
2. 系统会提示你创建索引模式(Index Pattern),输入 filebeat-* 并选择时间字段(如 @timestamp)。
3. 创建完成后,你就能看到实时采集的系统日志了!
通过筛选、搜索、创建可视化图表,你可以轻松实现可视化日志管理,快速定位错误、监控系统状态。
/etc/elasticsearch/jvm.options 中调整 -Xms 和 -Xmx。通过本教程,你已经成功在 Ubuntu 上搭建了一套完整的 ELK 日志分析系统。这套系统不仅能帮助你集中管理多台服务器的日志,还能通过 Kibana 实现强大的可视化日志管理能力。无论是排查故障、监控性能,还是做安全审计,ELK 都是不可或缺的利器。
关键词回顾:本文涵盖了 Ubuntu ELK日志分析、ELK栈安装教程、Logstash Filebeat配置 以及 可视化日志管理 等核心内容,适合初学者快速入门。
快去试试吧!如有疑问,欢迎在评论区交流~
本文由主机测评网于2025-12-13发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025127096.html