Linux 系统下 ELK Stack 安装与配置详细教程:从基础到实战
一、简介
ELK Stack 是一个流行的日志管理和分析平台,由 Elasticsearch、Logstash 和 Kibana 三个开源工具组成。Elasticsearch 是一个高性能的搜索引擎,用于存储和索引日志数据;Logstash 是一个数据处理管道,用于解析和转换日志数据;Kibana 是一个数据可视化工具,用于展示和分析日志数据。
二、环境准备
在开始安装之前,请确保您的 Linux 系统满足以下要求:
- 一个具有至少 4 GB 内存的 Linux 服务器(如 Ubuntu、CentOS 等)。
- Java JDK 8 及以上版本(Elasticsearch 需要 Java)。
- 当前用户有权使用
sudo
命令。
三、安装步骤
(一)安装 Elasticsearch
-
下载并安装
- 从 Elasticsearch 官方网站获取最新版本信息。
- 以 Ubuntu 系统为例,首先导入 Elasticsearch 的 GPG 密钥:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- 添加 Elasticsearch 的官方 APT 存储库:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
- 更新系统包列表并安装 Elasticsearch:
sudo apt update sudo apt install elasticsearch -y
-
配置 Elasticsearch
- 编辑 Elasticsearch 的配置文件
/etc/elasticsearch/elasticsearch.yml
:sudo nano /etc/elasticsearch/elasticsearch.yml
- 根据需要修改配置,例如设置
network.host
为localhost
或其他特定 IP 地址。 - 保存并退出文件后,启动 Elasticsearch 服务:
sudo systemctl start elasticsearch
- 为了在系统启动时自动启动 Elasticsearch,运行以下命令:
sudo systemctl enable elasticsearch
- 编辑 Elasticsearch 的配置文件
-
测试 Elasticsearch
- 使用以下命令测试 Elasticsearch 是否正常运行:
curl -X GET "localhost:9200"
- 如果一切正常,您将看到 Elasticsearch 的一些基本信息。
- 使用以下命令测试 Elasticsearch 是否正常运行:
(二)安装 Logstash
-
下载并安装
- 同样以 Ubuntu 系统为例,使用以下命令安装 Logstash:
sudo apt install logstash
- 同样以 Ubuntu 系统为例,使用以下命令安装 Logstash:
-
创建配置文件
- 在 Logstash 的默认配置目录中创建一个新的配置文件
logstash.conf
。 - 编辑该文件,定义 Logstash 的输入、过滤器和输出插件。例如:
input { beats { port => 5044 } } filter { # 在此处添加过滤器插件,例如 grok 插件用于解析日志 } output { elasticsearch { hosts => ["localhost:9200"] } }
- 在 Logstash 的默认配置目录中创建一个新的配置文件
-
启动 Logstash
- 使用以下命令启动 Logstash 并加载配置:
sudo systemctl enable logstash sudo systemctl start logstash
- 使用以下命令启动 Logstash 并加载配置:
(三)安装 Kibana
-
下载并安装
- 在 Ubuntu 系统上,运行以下命令安装 Kibana:
sudo apt install kibana
- 在 Ubuntu 系统上,运行以下命令安装 Kibana:
-
配置 Kibana
- 编辑 Kibana 的配置文件
/etc/kibana/kibana.yml
:sudo nano /etc/kibana/kibana.yml
- 确保以下配置项正确:
server.host: "localhost" elasticsearch.hosts: ["http://localhost:9200"]
- 保存并退出文件后,启动 Kibana 服务:
sudo systemctl start kibana
- 为了在系统启动时自动启动 Kibana,运行以下命令:
sudo systemctl enable kibana
- 编辑 Kibana 的配置文件
-
访问 Kibana
- 打开浏览器,输入
http://localhost:5601
,即可访问 Kibana 的 Web 界面。
- 打开浏览器,输入
(四)安装 Filebeat
-
安装
- 在 Ubuntu 系统上,运行以下命令安装 Filebeat:
sudo apt install filebeat -y
- 在 Ubuntu 系统上,运行以下命令安装 Filebeat:
-
配置 Filebeat
- 编辑 Filebeat 的配置文件
/etc/filebeat/filebeat.yml
:sudo nano /etc/filebeat/filebeat.yml
- 取消注释以下内容:
output.logstash: hosts: ["localhost:5044"]
- 启用 Filebeat 的系统模块:
sudo filebeat modules enable system
- 加载索引模板:
sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
- 编辑 Filebeat 的配置文件
-
启动 Filebeat
- 启动并启用 Filebeat 服务:
sudo systemctl start filebeat sudo systemctl enable filebeat
- 启动并启用 Filebeat 服务:
四、验证安装
-
检查 Filebeat 是否将数据发送到 Elasticsearch
- 运行以下命令:
curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'
- 如果返回结果中包含 Filebeat 收集的日志数据,则说明安装成功。
- 运行以下命令:
-
在 Kibana 中查看日志数据
- 登录 Kibana 的 Web 界面,进入“Discover”页面,即可查看和分析日志数据。
五、注意事项
- 性能优化
- 根据实际需求调整 Elasticsearch 和 Logstash 的资源配置。
- 例如,调整 Elasticsearch 的 JVM 堆大小,编辑
/etc/elasticsearch/jvm.options
文件:-Xms4g -Xmx4g
- 安全性
- 为 Elasticsearch、Logstash 和 Kibana 配置访问控制和身份验证。
- 例如,使用 Nginx 作为反向代理,为 Kibana 设置基本认证。
- 集群部署
- 如果需要高可用性和扩展性,可以部署 Elasticsearch 和 Kibana 的集群。
- 修改 Elasticsearch 的配置文件,指定集群名称、节点名称和发现种子主机。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步