当前位置:首页 > Ubuntu > 正文

Ubuntu使用ELK栈分析日志(手把手教你搭建ELK日志分析系统)

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

Ubuntu使用ELK栈分析日志(手把手教你搭建ELK日志分析系统) Ubuntu ELK日志分析 ELK栈安装教程 Logstash Filebeat配置 可视化日志管理 第1张

一、什么是 ELK 栈?

ELK 是三个开源项目的首字母缩写:

  • Elasticsearch:分布式搜索引擎,用于存储和快速检索日志数据。
  • Logstash:日志处理管道,可接收、过滤、转换并输出日志。
  • Kibana:可视化界面,用于查询、分析和展示 Elasticsearch 中的数据。

近年来,很多人用轻量级的 Filebeat 替代 Logstash 做日志采集(因为资源占用更低),再由 Logstash 做集中处理。因此完整的流程常为:Filebeat → Logstash → Elasticsearch → Kibana

二、准备工作

本教程基于 Ubuntu 22.04 LTS,请确保你有以下条件:

  • 一台 Ubuntu 服务器(本地或云服务器均可)
  • sudo 权限
  • 至少 4GB 内存(Elasticsearch 对内存要求较高)

首先更新系统:

sudo apt updatesudo apt upgrade -y

三、安装 Java 环境

Elasticsearch 和 Logstash 都依赖 Java,我们安装 OpenJDK 17:

sudo apt install openjdk-17-jdk -yjava -version

确认输出包含 openjdk version "17.x.x" 即可。

四、安装 Elasticsearch

1. 添加 Elastic 官方 GPG 密钥:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg

2. 添加 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.list

3. 安装 Elasticsearch:

sudo apt updatesudo apt install elasticsearch -y

4. 启动并设置开机自启:

sudo systemctl enable elasticsearchsudo systemctl start elasticsearch

5. 检查状态(可能需要等待几秒):

curl -X GET "localhost:9200"

若返回 JSON 格式的集群信息,说明 Elasticsearch 已成功运行。

五、安装 Logstash

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 logstash

六、安装 Filebeat(日志采集器)

Filebeat 负责从本地日志文件(如 /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 filebeat

七、安装 Kibana(可视化界面)

sudo 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 控制台。

八、在 Kibana 中查看日志

1. 首次登录后,点击左侧菜单的 “Analytics” → “Discover”

2. 系统会提示你创建索引模式(Index Pattern),输入 filebeat-* 并选择时间字段(如 @timestamp)。

3. 创建完成后,你就能看到实时采集的系统日志了!

通过筛选、搜索、创建可视化图表,你可以轻松实现可视化日志管理,快速定位错误、监控系统状态。

九、常见问题与优化建议

  • 内存不足:Elasticsearch 默认分配 1GB 堆内存,可在 /etc/elasticsearch/jvm.options 中调整 -Xms-Xmx
  • 安全加固:生产环境建议启用 HTTPS、用户认证(可使用 Elastic 的免费安全功能)。
  • 日志轮转:避免日志文件无限增长,配置 logrotate。

十、总结

通过本教程,你已经成功在 Ubuntu 上搭建了一套完整的 ELK 日志分析系统。这套系统不仅能帮助你集中管理多台服务器的日志,还能通过 Kibana 实现强大的可视化日志管理能力。无论是排查故障、监控性能,还是做安全审计,ELK 都是不可或缺的利器。

关键词回顾:本文涵盖了 Ubuntu ELK日志分析ELK栈安装教程Logstash Filebeat配置 以及 可视化日志管理 等核心内容,适合初学者快速入门。

快去试试吧!如有疑问,欢迎在评论区交流~