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

ELK+FileBeat 7.14.0版本安装、部署及使用

框架 简介 作用
Elasticsearch 开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。 接收搜集的海量结构化日志数据,并提供给Kibana查询分析。
Logstash 开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。 用于收集日志,对日志进行过滤形成结构化数据,并转发到Elasticsearch中。
Kibana 开源日志报表系统,对Elasticsearch以及Logstash有良好的web页面支持。 对Elasticsearch提供的数据进行分析展示。

一 、下载:采用国内镜像云

官网下载地址:https://www.elastic.co/cn/downloads/elasticsearch
国内镜像源(华为):https://mirrors.huaweicloud.com/elasticsearch/

选择合适的版本下载(推荐下载自带 JDK 的版本,否者自己配置的 JDK 可能不符合版本要求。注意:Elasticsearch, 会优先使用系统配置的 JDK 。可将 Elasticsearch 自带的 JDK 配置到系统的环境变量中,如果不这样做的话,在安装 Logstash 时,启动会报没有配置 JDK 环境变量的错误。)

二、elasticsearch安装部署

sudotar-zxvfelasticsearch-7.14.0-linux-x86_64.tar.gz-C/usr/local/
1. 编辑elasticsearch.yml文件

进入elasticsearch-7.14.0/config/文件夹,编辑elasticsearch.yml文件

2.创建es用户赋值权限

es不能使用root用户启动,必须用其他用户并且给这个用户赋予操作elasticsearch-7.14.0文件夹的权限

useradd -m es
passwd es
chown -R es:es /usr/local/elasticsearch-7.14.0/

3.启动前需要先配置一些环境:
sudovi/etc/security/limits.conf 添加: * soft nofile65536* hard nofile655362、配置文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量vi/etc/sysctl.conf 在文件末尾添加vm.max_map_count=655360然后执行sudosysctl-p
4.启动

在/usr/local/elasticsearch-7.14.0/文件夹下执行

./bin/elasticsearch

浏览器打开http://192.168.2.129:9200/,如出现下图,则说明启动成功

5.设置密码

./bin/elasticsearch-setup-passwords interactive

三、logstash安装部署

sudo tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz -C /usr/local/

1. 编辑logstash-sample.conf

进入logstash-7.14.0/config目录下编辑logstash-sample.conf文件。当然也可以新建一个配置文件,这里以logstash-sample.conf为例

在input->beats->port默认是5044,后面部署的filebeat的日志都会发送到这里,所以filebeat里面的配置要和这里的保持一致

输出到es里的配置增加了action, 配置了es的hosts,另外配置一个index,这里的索引不能使用大写字母

input{beats{port=>5044}}output{elasticsearch{hosts=>["http://localhost:9200"]index=>"elklog"user=>"elastic"password=>"elastic"}}
2. 启动

sudo ./bin/logstash -f ./config/logstash-sample.conf

四、kibana安装部署

将kibana安装包解压到/usr/local/目录

sudo tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz -C /usr/local/

1.编辑kibana.yml文件

进入kibana-7.14.0-linux-x86_64/config文件夹,编辑kibana.yml文件

sudo chown -R es:es /usr/local/kibana-7.14.0-linux-x86_64/ 启动kibana: 在kibana-7.14.0-linux-x86_64文件夹下执行 ./bin/kibana 防火墙开放5601端口,网页访问http://192.168.2.129:5601/

五、filebeat安装部署

filebeat是一个轻量级的日志采集服务,可以将采集的日志发送到es或者logstash,这里测试时将filebeat部署在另外一台服务器上ip:192.168.2.173

解压filebeat到指定位置

sudotar-zxvffilebeat-7.14.0-linux-x86_64.tar.gz-C/usr/local/
1.编辑filebeat.yml文件

进入filebeat-7.14.0-linux-x86_64文件夹,编辑filebeat.yml文件,这里只设置了输入格式为log的路径,同时把enable设置为true

# ============================== Filebeat inputs ===============================filebeat.inputs: - type: log enabled:truepaths:# 修改为你要采集的日志路径,示例:# - /opt/*.log# - /var/log/secure- /var/log/*.log exclude_files:['\.gz$']# ======================= Elasticsearch template setting =======================setup.template.name:"k8s-czgx-prod1"setup.template.pattern:"k8s-czgx-prod1-*"setup.template.enabled:truesetup.ilm.enabled:false# ================================= Processors =================================processors: - add_cloud_metadata: ~# ================================== Outputs ===================================output.elasticsearch: hosts:["127.0.0.1:9200"]username:"elastic"password:"elastic"index:"k8s-czgx-prod1-%{+YYYY.MM.dd}"# ============================== Logging =================================logging.level: info logging.to_files:truelogging.files: path: ./logs name: filebeat keepfiles:7

在filebeat-7.14.0-linux-x86_64文件夹下执行

./filebeat -e -c ./filebeat.yml

六、收集java日志格式

[2022-07-1410:03:30.310][http-nio-8080-exec-2][ERROR](com.zz.framework.exception.handler.GlobalExceptionHandler:83)- 数据校验异常,异常字段

logstash配置

cat>/etc/logstash/conf.d/app-java.conf<<EOF input { beats { port => 5044 } } filter { grok { match => [ "message", "\[%{DATA:logtime}\] " ] break_on_match => false } date { match=> ["logtime","yyyy-MM-dd HH:mm:ss.SSS"] target=>"@timestamp" } } output { if "APPname1" in [tags] { elasticsearch { hosts => ["elasticsearch集群ip:9200"] index => "java-APPname-%{+YYYY-MM-dd}" user => "elastic" password => "123456" } }else if "APPname2" in [tags] { elasticsearch { hosts => ["elasticsearch集群ip:9200"] index => "java-APPname-%{+YYYY-MM-dd}" user => "elastic" password => "123456" } }else { elasticsearch { hosts => ["elasticsearch集群ip:9200"] index => "java-%{+YYYY-MM-dd}" user => "elastic" password => "123456" } } } EOFsystemctl start logstash

filebeat配置

rpm-ivhfilebeat-7.17.4-x86_64.rpmcp/etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bakcat>/etc/filebeat/filebeat.yml<<EOF filebeat.inputs: - type: log enabled: true paths: - /tmp/APPname1.log tags: ["APPname1"] fields: env: test app: APPname multiline.pattern: '^\[' multiline.negate: true multiline.match: "after" - type: log enabled: true paths: - /tmp/APPname2.log tags: ["APPname2"] fields: env: stg app: APPname multiline.pattern: '^\[' multiline.negate: true multiline.match: "after" filebeat.config.modules: path:${path.config}/modules.d/*.yml reload.enabled: true output.logstash: hosts: ["logstashIP1:5044","logstashIP2:5044","logstashIP3:5044"] EOFsystemctl start filebeat

7、Elasticsearch 快照备份与完整恢复流程(适配 ELK 7.14.0)

基于你现有的 NFS 快照仓库back,配套 Filebeat 生成的按天索引k8s-czgx-prod1-YYYY.MM.dd

7.1 前置准备(一次性操作)

1)快照存储目录权限

chown-Res:es /data/nfs/elk

2)注册快照仓库(已执行,记录备查)

curl-uelastic:elastic-XPUThttp://localhost:9200/_snapshot/back-H"Content-Type:application/json"-d'{ "type":"fs", "settings":{ "location":"/data/nfs/elk", "compress":true } }'

校验仓库

curl-uelastic:elastic http://localhost:9200/_snapshot/back

7.2 自动每日备份脚本(只备份当天索引)

新建/opt/es-daily-back.sh

#!/bin/bashES_USER="elastic"ES_PASS="elastic"ES_URL="http://localhost:9200"REPO="back"TODAY=$(date+%Y.%m.%d)SNAP_NAME="daily-snap-${TODAY}"LOG_FILE="/var/log/es_daily_backup.log"echo"==========================">>${LOG_FILE}echo"$(date)开始创建快照:${SNAP_NAME}">>${LOG_FILE}# 如果当天快照已存在先删除resp=$(curl-s-u${ES_USER}:${ES_PASS}"${ES_URL}/_snapshot/${REPO}/${SNAP_NAME}")ifecho"$resp"|jq-r'.snapshot'|grep-q"${SNAP_NAME}";thenecho"$(date)旧快照存在,执行删除">>${LOG_FILE}curl-s-u${ES_USER}:${ES_PASS}-XDELETE"${ES_URL}/_snapshot/${REPO}/${SNAP_NAME}">>${LOG_FILE}2>&1fi# 创建快照,仅备份当日索引,关闭全局状态避免恢复冲突curl-s-u${ES_USER}:${ES_PASS}-XPUT"${ES_URL}/_snapshot/${REPO}/${SNAP_NAME}?wait_for_completion=true"\-H"Content-Type:application/json"-d'{ "indices":"k8s-czgx-prod1-'${TODAY}'", "ignore_unavailable":true, "include_global_state":false }'>>${LOG_FILE}2>&1# 自动清理:保留最近30天快照OLD_SNAPSHOTS=$(curl-s-u${ES_USER}:${ES_PASS}"${ES_URL}/_snapshot/${REPO}/_all"|\jq-r'.snapshots[] | .snapshot'|grep"^daily-snap-"|sort|head-n-30)forsnapin$OLD_SNAPSHOTS;doecho"$(date)删除过期快照${snap}">>${LOG_FILE}curl-s-u${ES_USER}:${ES_PASS}-XDELETE"${ES_URL}/_snapshot/${REPO}/${snap}">>${LOG_FILE}2>&1doneecho"$(date)备份流程结束">>${LOG_FILE}

授权 + 定时任务

chmod+x /opt/es-daily-back.shcrontab-e# 每日凌晨01:00执行备份01* * * /opt/es-daily-back.sh

7.3 常用快照管理命令

# 查看所有快照curl-uelastic:elastic http://localhost:9200/_snapshot/back/_all# 删除指定快照(禁止手动rm NFS目录文件)curl-uelastic:elastic-XDELETEhttp://localhost:9200/_snapshot/back/daily-snap-2026.07.23

7.4 快照恢复操作(重点,线上环境推荐重命名恢复

⚠️ 禁止直接同名恢复!集群已有打开索引会报错。

方式1:Kibana Web页面恢复

  1. Stack Management → Snapshot and Restore
  2. 找到目标快照daily-snap-2026.07.23→ Restore
  3. Logistics页面开启Rename data streams and indices
    • Capture pattern:(.*)
    • Replacement pattern:restore_$1
  4. Index settings页面所有选项保持关闭,点击Next
  5. Review确认无报错,执行 Restore snapshot
    恢复完成后索引名称:restore_k8s-czgx-prod1-2026.07.23

方式2:API命令行恢复

curl-uelastic:elastic-XPOST"http://localhost:9200/_snapshot/back/daily-snap-2026.07.23/_restore"-H"Content-Type:application/json"-d'{ "rename_pattern":"(.*)", "rename_replacement":"restore_$1" }'
http://www.jsqmd.com/news/1257093/

相关文章:

  • AICR:AI Code Review 从 0 到 1 的真实演进路线
  • WHO各国预期寿命影响因素分析与轻量回归预测
  • 三步解锁网易云音乐NCM加密:ncmdumpGUI让你的音乐无处不在
  • Chrome全屏截图插件终极指南:一键保存完整网页的完美解决方案
  • 仅剩73家企业获授「AI-MQ可信生成认证」:解读信通院首批认证标准,含Schema一致性校验、Exactly-Once语义推演、TraceID穿透率3大硬指标
  • HarmonyOS7 TransitionEffect 实战:组件显示隐藏的过渡动画
  • AI 版权求证:用 Andersen、Getty、Bartz 等真实裁决,拆“AI 偷画“传言
  • 深圳汽车养护服务行业GEO优化公司选型指南丨2026生成式引擎优化服务商深度测评与头部榜单解析 - 企业新闻快传
  • VLA-世界模型-TVA:具身智能的递归改进引擎(4)
  • C++ vector二维数组:从内存布局到性能优化的深度解析
  • 深圳人力资源服务行业GEO优化公司选型指南丨生成式引擎优化服务商深度测评与2026本地实践 - 小随科技
  • 完全指南:5分钟掌握免费在线EPUB编辑器EPubBuilder
  • 走进 Gang of Four 设计模式:责任链模式
  • 大模型选型生死线:幻觉率>5%即不可商用?头部金融科技公司内部评估标准首次流出
  • 专业工具完全指南:高效解决Windows Edge浏览器卸载难题的PowerShell脚本方案
  • OneMore:160+功能让OneNote变身终极笔记管理神器
  • Linux基础命令的使用
  • Adobe GenP破解工具:3分钟免费激活Adobe全家桶终极指南
  • SCMP供应链管理专家报名步骤 - 众智商学院职业教育
  • 2026年7月国内正规的焊管批发厂家哪家好,镀锌方管/球墨铸铁管/焊管,焊管直销厂家哪家好 - 品牌推荐师
  • HarmonyOS7 多媒体能力怎么放进一个页面:MediaPanelSwitcher 组合式案例解析
  • 如何安全畅玩GTA5:YimMenu保护工具终极使用指南
  • VC++串口通讯模块实战:异步I/O、环形缓冲区与工业级可靠性设计
  • 小型化工业网关机工控主板怎么选?多网口与无线扩展集成要点
  • SQLyog社区版:5分钟掌握完全免费的MySQL数据库管理终极指南
  • 如何实现30+平台自动签到:青龙面板一站式解决方案完全指南
  • 2026 年更新:武清可靠的轮式挖掘机出租厂家哪家专业,别再租昂贵设备!这台机器如何帮你省下大笔工程费? - 行业甄选官
  • windows 部署 jar包的方式
  • 上海企业HR招聘渠道盘点:主流平台优劣分析
  • 绿皮书第三章ref