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 espasswd eschown -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_count655360然后执行sudosysctl-p4.启动在/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{port5044}}output{elasticsearch{hosts[http://localhost:9200]indexelkloguserelasticpasswordelastic}}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-prod1setup.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:elasticpassword:elasticindex: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.confEOF input { beats { port 5044 } } filter { grok { match [ message, \[%{DATA:logtime}\] ] break_on_match false } date { match [logtime,yyyy-MM-dd HH:mm:ss.SSS] targettimestamp } } 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 logstashfilebeat配置rpm-ivhfilebeat-7.17.4-x86_64.rpmcp/etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bakcat/etc/filebeat/filebeat.ymlEOF 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 filebeat7、Elasticsearch 快照备份与完整恢复流程适配 ELK 7.14.0基于你现有的 NFS 快照仓库back配套 Filebeat 生成的按天索引k8s-czgx-prod1-YYYY.MM.dd7.1 前置准备一次性操作1快照存储目录权限chown-Res:es /data/nfs/elk2注册快照仓库已执行记录备查curl-uelastic:elastic-XPUThttp://localhost:9200/_snapshot/back-HContent-Type:application/json-d{ type:fs, settings:{ location:/data/nfs/elk, compress:true } }校验仓库curl-uelastic:elastic http://localhost:9200/_snapshot/back7.2 自动每日备份脚本只备份当天索引新建/opt/es-daily-back.sh#!/bin/bashES_USERelasticES_PASSelasticES_URLhttp://localhost:9200REPObackTODAY$(date%Y.%m.%d)SNAP_NAMEdaily-snap-${TODAY}LOG_FILE/var/log/es_daily_backup.logecho${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}21fi# 创建快照仅备份当日索引关闭全局状态避免恢复冲突curl-s-u${ES_USER}:${ES_PASS}-XPUT${ES_URL}/_snapshot/${REPO}/${SNAP_NAME}?wait_for_completiontrue\-HContent-Type:application/json-d{ indices:k8s-czgx-prod1-${TODAY}, ignore_unavailable:true, include_global_state:false }${LOG_FILE}21# 自动清理保留最近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}21doneecho$(date)备份流程结束${LOG_FILE}授权 定时任务chmodx /opt/es-daily-back.shcrontab-e# 每日凌晨01:00执行备份01* * * /opt/es-daily-back.sh7.3 常用快照管理命令# 查看所有快照curl-uelastic:elastic http://localhost:9200/_snapshot/back/_all# 删除指定快照禁止手动rm NFS目录文件curl-uelastic:elastic-XDELETEhttp://localhost:9200/_snapshot/back/daily-snap-2026.07.237.4 快照恢复操作重点线上环境推荐重命名恢复⚠️ 禁止直接同名恢复集群已有打开索引会报错。方式1Kibana Web页面恢复Stack Management → Snapshot and Restore找到目标快照daily-snap-2026.07.23→ RestoreLogistics页面开启Rename data streams and indicesCapture pattern(.*)Replacement patternrestore_$1Index settings页面所有选项保持关闭点击NextReview确认无报错执行 Restore snapshot恢复完成后索引名称restore_k8s-czgx-prod1-2026.07.23方式2API命令行恢复curl-uelastic:elastic-XPOSThttp://localhost:9200/_snapshot/back/daily-snap-2026.07.23/_restore-HContent-Type:application/json-d{ rename_pattern:(.*), rename_replacement:restore_$1 }

相关新闻

小白python入门 - 17. Python面向对象编程入门

小白python入门 - 17. Python面向对象编程入门

面向对象编程(Object-Oriented Programming, OOP)是一种被广泛采用的编程范式。所谓编程范式,本质上就是程序设计的方法论,它定义了程序员如何理解程序结构以及编写代码的核心方式。 在之前的课程中,我们提到“程序是指…

2026/7/24 22:35:59 阅读更多 →
API中转站成本控制:测试流量和正式账单必须分开

API中转站成本控制:测试流量和正式账单必须分开

很多团队使用 API中转站 一段时间后,才发现账单看不明白。正式功能、测试脚本、批量内容、临时调试混在一起,最终只能看到总费用,却不知道钱具体花在哪里。 这类场景虽然具体,但背后都涉及统一入口、流程拆分、记录归档和人工复核…

2026/7/24 22:35:59 阅读更多 →
Claude中转站知识库问答:回答可靠性来自资料治理

Claude中转站知识库问答:回答可靠性来自资料治理

知识库问答最怕模型给出看似完整却不准确的答案。Claude中转站可以提供模型能力,但如果资料过期、重复、互相矛盾,模型只会把错误信息整理得更流畅。 这类场景虽然具体,但背后都涉及统一入口、流程拆分、记录归档和人工复核。只要其中任何一环…

2026/7/24 22:35:59 阅读更多 →

最新新闻

机器视觉9 —— CogHistogramTool 直方图工具

机器视觉9 —— CogHistogramTool 直方图工具

CogHistogramTool 是康耐视(Cognex)VisionPro 中的一个用于计算和分析图像直方图的工具。以下是其详细介绍:功能直方图计算:能计算图像的灰度直方图,统计图像中每个灰度值的像素数量,也能计算颜色直方图&am…

2026/7/24 22:42:02 阅读更多 →
BetterNCM Installer终极指南:3分钟搞定网易云插件安装的完整方案

BetterNCM Installer终极指南:3分钟搞定网易云插件安装的完整方案

BetterNCM Installer终极指南:3分钟搞定网易云插件安装的完整方案 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件安装的复杂步骤而烦恼吗&#xff1f…

2026/7/24 22:42:02 阅读更多 →
nginx---cors跨域风险修复和防止Host头攻击

nginx---cors跨域风险修复和防止Host头攻击

经过两天的折腾,试了很多方法,最后总结下有效的设置:location /test/abc/ {#防止修改Host头攻击if ($http_Host ! "***.***.com:15689"){return 403;}#不允许任意跨域访问set $andflag 0;set $cors ;#后台已设置Access-Control-All…

2026/7/24 22:42:02 阅读更多 →
AI驱动的GEO智能体:数字营销的实时优化与多维度数据融合

AI驱动的GEO智能体:数字营销的实时优化与多维度数据融合

1. 项目背景与核心价值在数字营销领域,GEO(Geo-Enabled Optimization)优化一直是品牌提升本地化营销效果的关键手段。传统GEO优化主要依赖人工分析地理位置数据、用户画像和消费行为,不仅效率低下,还难以应对瞬息万变的…

2026/7/24 22:42:02 阅读更多 →
高性能SAR ADC电源与PCB布局设计:从理论到ADS892xB实战

高性能SAR ADC电源与PCB布局设计:从理论到ADS892xB实战

1. 项目概述:为什么ADC的电源和布局如此关键? 在精密数据采集系统里,模数转换器(ADC)的性能上限,往往不是由芯片本身的参数决定的,而是由我们工程师在电路板上的“画线”功夫决定的。我接触过不…

2026/7/24 22:42:02 阅读更多 →
QQ音乐格式转换终极指南:3分钟解锁加密音乐文件

QQ音乐格式转换终极指南:3分钟解锁加密音乐文件

QQ音乐格式转换终极指南:3分钟解锁加密音乐文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经下…

2026/7/24 22:41:02 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻