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

ELK 集群部署实战

ELK 集群部署实战

本次分享如何在生产环境搭建 高可用 ELK 集群,并分享实战中常用的部署技巧与优化策略。


一、部署前环境规划

1. 操作系统

ELK 对操作系统比较友好,主流 Linux 均支持:

  • CentOS 7/8

  • Ubuntu 18.04/20.04

  • 麒麟操作系统

建议尽量统一操作系统版本,以减少兼容性问题。

2. 硬件资源

节点类型CPU内存磁盘
Master2-44-8GB50GB SSD
Data4-816-32GB500GB SSD/HDD
Client / Kibana24-8GB50GB SSD

3. 网络规划

  • 集群内部节点互通:TCP 9300(ES 节点间通信)

  • 外部访问 Elasticsearch REST API:TCP 9200

  • Kibana Web:TCP 5601

  • 节点间推荐使用静态 IP 或内网域名。


二、部署方式

1. 快速试用:Docker Compose

适合测试或 PoC:

version: '3'
services:elasticsearch:image: docker.elastic.co/elasticsearch/elasticsearch:8.8.2environment:- discovery.type=single-nodeports:- 9200:9200- 9300:9300kibana:image: docker.elastic.co/kibana/kibana:8.8.2ports:- 5601:5601environment:ELASTICSEARCH_HOSTS: http://elasticsearch:9200

2. 生产环境:二进制安装 + Systemd

安装 Elasticsearch
# 下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.2-linux-x86_64.tar.gz
tar -xzf elasticsearch-8.8.2-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/elasticsearch-8.8.2
# 配置 elasticsearch.yml
vi config/elasticsearch.yml
elasticsearch.yaml示例配置:
cluster.name: elk-prod
node.name: es-node1
node.roles: [ master, data ]
network.host: 0.0.0.0
discovery.seed_hosts: ["10.0.0.1","10.0.0.2","10.0.0.3"]
cluster.initial_master_nodes: ["es-node1","es-node2","es-node3"]
bootstrap.memory_lock: true
设置 Systemd 服务:
sudo tee /etc/systemd/system/elasticsearch.service <<EOF
[Unit]
Description=Elasticsearch
After=network.target
[Service]
Type=simple
User=elasticsearch
Group=elasticsearch
ExecStart=/usr/local/elasticsearch-8.8.2/bin/elasticsearch
LimitNOFILE=65536
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
​
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
安装 Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.8.2-linux-x86_64.tar.gz
tar -xzf kibana-8.8.2-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/kibana-8.8.2
vi config/kibana.yml
​
示例配置:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.0.1:9200"]
​
启动:
./bin/kibana

3. 自动化部署:Ansible

适合大规模节点: • 编写 playbook 部署 Elasticsearch/Kibana。 • 支持批量配置 discovery.seed_hosts、集群名、角色分配。 • 可集成监控和证书分发。

三、集群配置要点

1. Elasticsearch 参数优化

# jvm.options
-Xms16g
-Xmx16g
# elasticsearch.yml
cluster.routing.allocation.disk.watermark.high: 85%
cluster.routing.allocation.disk.watermark.low: 75%
indices.query.bool.max_clause_count: 10240

2. Logstash 参数

pipeline.workers: 4       # CPU 核数
pipeline.batch.size: 125  # 每批处理日志数量
queue.type: persisted     # 持久化队列,防止丢失

3.Kibana

  • server.host 绑定内网 IP 或 0.0.0.0

  • elasticsearch.hosts 填写 ES 集群地址

  • 可配置 SSL/TLS 与认证

四、集群管理与监控

1. 集群状态检查

curl http://10.0.0.1:9200/_cluster/health?pretty
curl http://10.0.0.1:9200/_cat/nodes?v
curl http://10.0.0.1:9200/_cat/indices?v

2. 常用监控指标

  • Heap 使用率

  • GC 次数

  • 分片数量与大小

  • 节点负载和磁盘占用

3. Kibana Monitoring

  • 可视化集群健康状态

  • 告警节点离线、磁盘满等

五、实战案例

当前ELK 集群部署:

节点设计:
  • 3 Master 节点

  • 6 Data 节点(热 SSD + 冷 HDD)

  • 2 Client 节点运行 Kibana

部署流程:
  • 安装 Elasticsearch 并配置集群。

  • 配置 Systemd 自动启动。

  • 部署 Kibana 并连接 ES。

  • Filebeat + Logstash 实现日志采集与清洗。

优化经验:
  • 分片控制在 30GB 左右。

  • 热数据副本 1,温数据副本 0。

  • 启用持久化队列防止 Logstash 高峰丢日志。

  • 使用 ILM 自动管理索引生命周期。

六、常见问题与排查

1.节点无法加入集群
检查 discovery.seed_hosts、集群名
2.查询慢
检查分片数量、索引模板、查询语法
3.磁盘占满
检查 ILM 或 Curator 是否启用
4.Logstash 丢日志
检查队列配置及 pipeline 状态
5.Kibana 无法连接 Elasticsearch
检查 network.host、防火墙、TLS

七、总结

  • 高可用 ELK 集群部署必须规划好节点角色、资源和网络

  • 生产环境优先使用 Systemd 服务 + 持久化队列 + ILM

  • 监控与告警不可少,保证日志平台稳定


文章转载自:

http://e0Yo4rV3.jmbgL.cn
http://CUgzFVYG.jmbgL.cn
http://rtHl12yM.jmbgL.cn
http://YOhwWuQJ.jmbgL.cn
http://33yUbGvJ.jmbgL.cn
http://gXoBaIr6.jmbgL.cn
http://XKLxWLBR.jmbgL.cn
http://3DVeomAu.jmbgL.cn
http://8KrjJlzV.jmbgL.cn
http://iApil0Bv.jmbgL.cn
http://1tFuez9S.jmbgL.cn
http://0k46h86H.jmbgL.cn
http://BRKGiQxs.jmbgL.cn
http://fEpsnXs3.jmbgL.cn
http://iOlSPzxt.jmbgL.cn
http://icRyDs5b.jmbgL.cn
http://bQ9JD0oJ.jmbgL.cn
http://sSbMGAU0.jmbgL.cn
http://lXFxYdCs.jmbgL.cn
http://RfyhbXbb.jmbgL.cn
http://MTcVK69O.jmbgL.cn
http://c07aaVxO.jmbgL.cn
http://3Vu1ZXZU.jmbgL.cn
http://daaicxq1.jmbgL.cn
http://a9FNmyAF.jmbgL.cn
http://wSwLsu6F.jmbgL.cn
http://7LR9Xp6o.jmbgL.cn
http://77ux7aXp.jmbgL.cn
http://YJ22xQEG.jmbgL.cn
http://G6O9Jbxh.jmbgL.cn
http://www.dtcms.com/a/374518.html

相关文章:

  • 四川意宇科技将重磅亮相2025成都航空装备展
  • fencing token机制
  • JMeter分布式压力测试
  • 稳联技术EthernetIP转ModbusTCP网关连接发那科机器人与三菱PLC的集成方案
  • 生产制造过程标准化
  • 无人机自组网系统的抗干扰技术分析(二)
  • React Hooks 报错?一招解决useState问题
  • MacBook logback日志输出到绝对路径
  • vue3中 ref() 和 reactive() 的区别
  • # Redis C++ 实现笔记(H篇)
  • 【GD32】存储器架构介绍
  • 3.HTTP/HTTPS:报文格式、方法、状态码、缓存、SSLTLS握手
  • 【Leetcode hot 100】146.LRU缓存
  • Android 图片 OOM 防护机制设计:大图加载、内存复用与多级缓存
  • Kubernetes 实战练习指南
  • 滴滴二面准备(一)
  • 机器人控制器开发(部署——软件打包备份更新)
  • 企业级CI/CD全流程实战指南
  • VMware与cpolar:虚拟机跨网络协作的无缝解决方案
  • 【深度学习计算机视觉】03:目标检测和边界框
  • IP 访问限制选型指南(含实现示例与存储策略)
  • 思瑞浦 3PEAK ASN:高效率低成本多路音频传输方案,车规级音频芯片国产突破
  • c primer plus 第四章复习题和练习题
  • ES+MySQL实时搜索架构实战解析
  • ​人脸表情识别检测数据集​:近4k图像,8类,yolo标注
  • 【智能协同云图库】基于统一接口架构构建多维度分析功能、结合 ECharts 可视化与权限校验实现用户 / 管理员图库统计、通过 SQL 优化与流式处理提升数据
  • Linux使用-MySQL的使用
  • Linux grep 命令使用说明
  • 双引擎驱动!中新赛克AI安全方案入选网安创新大赛优胜榜单
  • Day42 PHP(mysql注入、跨库读取)