首页 数字经济

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南

分类:数字经济
字数: (8065)
阅读: (5194)
内容摘要:ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南,

在海量数据分析场景下,ELK Stack (Elasticsearch, Logstash, Kibana) 已经成为日志管理和数据可视化的主流选择。本文将深入探讨 安装 Elasticsearch、Kibana 和 Logstash 的过程,并分享一些实战中的避坑经验,助你快速搭建高效的日志分析平台。

Elasticsearch 安装与配置

下载与安装

首先,从 Elastic 官网下载对应操作系统的 Elasticsearch 安装包。这里以 Linux 环境为例,演示使用 rpm 包进行安装:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.0-x86_64.rpm
sudo rpm -i elasticsearch-8.11.0-x86_64.rpm

配置 Elasticsearch

Elasticsearch 的主要配置文件位于 /etc/elasticsearch/elasticsearch.yml。我们需要根据实际需求进行修改,例如设置集群名称、节点名称、网络端口等。以下是一些常见的配置项:

cluster.name: my-application # 集群名称,所有节点必须一致
node.name: node-1 # 节点名称,每个节点唯一
network.host: 0.0.0.0 # 监听地址,0.0.0.0 表示监听所有地址
http.port: 9200 # HTTP 端口
discovery.seed_hosts: ["node-1", "node-2"] # 集群节点列表
cluster.initial_master_nodes: ["node-1", "node-2"] # 初始化 Master 节点

注意: Elasticsearch 8.x 默认开启了安全认证,首次启动时会生成密码。务必妥善保存,否则后续访问 Kibana 或使用 API 时需要输入用户名和密码。

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南

启动与验证

使用以下命令启动 Elasticsearch:

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch # 设置开机自启动

使用 curl 命令验证 Elasticsearch 是否正常运行:

curl -u elastic:YOUR_PASSWORD http://localhost:9200

如果返回 Elasticsearch 的版本信息,则表示安装成功。

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南

Kibana 安装与配置

下载与安装

同样,从 Elastic 官网下载对应操作系统的 Kibana 安装包。使用 rpm 包进行安装:

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.11.0-x86_64.rpm
sudo rpm -i kibana-8.11.0-x86_64.rpm

配置 Kibana

Kibana 的配置文件位于 /etc/kibana/kibana.yml。我们需要配置 Elasticsearch 的连接信息:

server.port: 5601 # Kibana 端口
server.host: "0.0.0.0" # 监听地址
elasticsearch.hosts: ["http://localhost:9200"] # Elasticsearch 地址
elasticsearch.username: "kibana_system" # Elasticsearch 用户名
elasticsearch.password: "YOUR_KIBANA_PASSWORD" # Elasticsearch 密码

注意: elasticsearch.usernameelasticsearch.password 需要使用 Elasticsearch 中具有 kibana_system 角色的用户。默认情况下,Elasticsearch 会创建一个这样的用户,但需要手动设置密码。

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南

启动与验证

使用以下命令启动 Kibana:

sudo systemctl start kibana
sudo systemctl enable kibana # 设置开机自启动

在浏览器中访问 http://your_server_ip:5601,如果能看到 Kibana 的界面,则表示安装成功。首次访问需要输入 Elasticsearch 的用户名和密码。

Logstash 安装与配置

下载与安装

同样,从 Elastic 官网下载对应操作系统的 Logstash 安装包。使用 rpm 包进行安装:

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.11.0-x86_64.rpm
sudo rpm -i logstash-8.11.0-x86_64.rpm

配置 Logstash

Logstash 的配置主要通过 Pipeline 来定义。Pipeline 包括 Input、Filter 和 Output 三个部分。以下是一个简单的示例:

input {
  beats {
    port => 5044 # 监听 Beats 端口
  }
}

filter {
  grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" } # 使用 Grok 解析 Apache 日志
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "apache-%{+YYYY.MM.dd}" # 索引名称
    user => "logstash_system" # Elasticsearch 用户名
    password => "YOUR_LOGSTASH_PASSWORD" # Elasticsearch 密码
  }
  stdout { codec => rubydebug } # 输出到控制台,方便调试
}

注意: elasticsearch.usernameelasticsearch.password 需要使用 Elasticsearch 中具有 logstash_system 角色的用户。默认情况下,Elasticsearch 会创建一个这样的用户,但需要手动设置密码。

启动与验证

使用以下命令启动 Logstash:

sudo systemctl start logstash
sudo systemctl enable logstash # 设置开机自启动

发送一些数据到 Logstash,然后在 Kibana 中查看数据是否成功索引。

实战避坑经验

  • 版本兼容性: ELK Stack 的各个组件之间存在版本兼容性问题。尽量使用相同版本的组件,避免出现不兼容的情况。
  • 内存配置: Elasticsearch 对内存要求较高。建议根据数据量和节点数量合理配置 JVM 堆大小,避免出现 OOM 错误。可以通过修改 /etc/elasticsearch/jvm.options 文件来配置 JVM 堆大小。
  • 防火墙设置: 确保防火墙允许 Elasticsearch、Kibana 和 Logstash 的端口通信。
  • 安全认证: Elasticsearch 8.x 默认开启安全认证,务必妥善保管生成的密码。生产环境中建议使用 TLS 加密通信,增强安全性。
  • Grok 表达式: Logstash 使用 Grok 表达式解析日志。编写 Grok 表达式时,需要仔细匹配日志格式,避免解析失败。可以使用 Grok Debugger 工具进行调试。
  • 索引生命周期管理: 对于海量日志数据,建议使用 ILM (Index Lifecycle Management) 功能,对索引进行自动管理,例如定期删除旧索引,优化存储空间。

通过以上步骤,你就可以成功地 安装 Elasticsearch、Kibana 和 Logstash,并搭建起一个高效的日志分析平台。在实际应用中,还需要根据具体需求进行更深入的配置和优化。同时也要关注Elastic Stack的版本更新,及时升级,享受最新的功能和安全特性。例如,Elastic Agent逐渐取代了Beats,拥有更强大的数据采集能力。

ELK Stack 快速上手:Elasticsearch、Kibana、Logstash 安装配置与避坑指南

转载请注明出处: 代码一只喵

本文的链接地址: http://m.acea2.store/blog/344162.SHTML

本文最后 发布于2026-04-21 01:11:54,已经过了6天没有更新,若内容或图片 失效,请留言反馈

()
您可能对以下文章感兴趣
评论
  • 彩虹屁大师 1 天前
    Grok表达式那块儿确实是难点,有没有推荐的Grok Debugger工具?
  • 吃土少女 5 天前
    感谢分享,正准备搭建一套ELK环境,这个教程很详细!
  • 月亮不营业 1 天前
    想问一下,如果数据量特别大,Elasticsearch的集群规模应该如何规划?
  • 西瓜冰冰凉 6 天前
    想问一下,如果数据量特别大,Elasticsearch的集群规模应该如何规划?
  • 黄焖鸡米饭 5 天前
    感谢分享,正准备搭建一套ELK环境,这个教程很详细!