网站建设公司 南宁浙江省杭州市软装设计公司
2026/4/18 8:58:46 网站建设 项目流程
网站建设公司 南宁,浙江省杭州市软装设计公司,建设网站的条件,网站建设个人简历文章目录 前言一、什么是ELK二、ELK核心组件说明1、Elasticsearch1.1、什么是Elasticsearch1.2、Elasticsearch 作用1.3、Elasticsearch 应用场景1.4、Elasticsearch 工作原理 2、Logstash2.1、什么是Logstash2.2、Logstash作用2.3、Logstash应用场景2.4、Logstash工作原理 3、…文章目录前言一、什么是ELK二、ELK核心组件说明1、Elasticsearch1.1、什么是Elasticsearch1.2、Elasticsearch 作用1.3、Elasticsearch 应用场景1.4、Elasticsearch 工作原理2、Logstash2.1、什么是Logstash2.2、Logstash作用2.3、Logstash应用场景2.4、Logstash工作原理3、Kibana3.1、Kiabana是什么3.2、Kiabana作用3.3、Kiabana应用场景3.4、Kibana 的工作原理三、ELK框架部署1、环境规划1.1、服务器规划1.2、系统设置node1、node2执行2、Elasticsearch部署2.1、Elasticsearch安装2.3、检查节点状态和排错日志2.4、测试结果3、Logstash部署3.1、部署Logstash3.2、测试Logstash4、Kiabana部署4.1、Kiabana部署流程4.2、Kiabana测试4.3、浏览器访问Kiabana流程四、ELKFilebeat部署1、filebeat介绍2、filebeat部署3、测试验证总结前言随着业务规模扩大日志与监控数据激增ELK Stack 7.8.1 凭借高效采集、存储与可视化能力成为解决数据治理难题的优选方案。一、什么是ELKELK 是一套开源的日志分析与可视化技术栈的简称由三个核心组件的首字母组成EElasticsearchLLogstashKKibana核心作用是实现日志的收集、存储、分析、检索与可视化。二、ELK核心组件说明1、Elasticsearch1.1、什么是Elasticsearch是一款 分布式、RESTful 风格的开源搜索引擎。实时存储、检索和分析海量数据。1.2、Elasticsearch 作用全文检索支持模糊匹配、关键词检索、短语检索等复杂文本查询​数据聚合对数据进行统计分析如计数、求和、分组生成指标结果​分布式存储自动分片存储数据支持集群扩展保证高可用​实时响应数据写入后秒级可查满足实时监控、即时搜索需求。1.3、Elasticsearch 应用场景日志 / 日志分析存储应用日志、系统日志支持按关键词快速排查问题​电商搜索商品标题、描述的全文检索如 “红色连衣裙” 模糊匹配​监控告警采集系统 / 应用指标CPU、接口响应时间实时监控并触发告警​企业级检索文档库、知识库、内部系统的内容检索如合同、文档搜索。1.4、Elasticsearch 工作原理数据写入流程​数据如日志、文档被写入 ES 时先经过「分词器」拆分关键词如 “Elasticsearch 入门” 拆分为 “elasticsearch”“入门”​分词后的关键词与文档 ID 建立映射关系即「倒排索引」核心数据结构​数据按配置的「分片规则」分发到集群中的主分片同时同步到副本分片保证高可用。数据查询流程​接收用户查询请求如 REST API 调用解析查询语句​基于倒排索引快速匹配包含关键词的文档​对匹配结果进行评分排序按相关性权重​合并主分片 副本的查询结果返回给用户。2、Logstash2.1、什么是Logstash是一款 开源的数据处理管道工具。采集、清洗、转换、传输数据连接数据源与存储 / 分析系统。2.2、Logstash作用多源数据采集支持从文件、数据库、消息队列Kafka、HTTP 接口等多种来源采集数据.数据清洗转换对非结构化数据如原始日志进行过滤、拆分、格式化如提取字段、去除冗余信息转为结构化数据数据路由传输将处理后的数据输出到 Elasticsearch、MySQL、Redis 等目标存储。2.3、Logstash应用场景1、日志集中采集收集多台服务器的应用日志、系统日志如 Nginx 日志、Java 应用日志统一汇总​2、数据预处理将非结构化日志如 “2025-12-11 10:00:00 [INFO] user123 actionlogin”转为 JSON 结构化格式​3、跨系统数据同步将数据库中的业务数据如订单数据同步到 Elasticsearch 用于检索分析。2.4、Logstash工作原理核心是「三阶段数据处理管道」流程如下​1、Input输入阶段通过插件采集数据如 file 插件读取日志文件、kafka 插件消费消息队列数据​2、Filter过滤阶段对采集到的数据进行处理如 grok 插件解析日志格式、mutate 插件添加 / 删除字段、date 插件格式化时间​3、Output输出阶段通过插件将处理后的结构化数据输出到目标系统如 elasticsearch 插件写入 ES、file 插件保存到本地文件。​底层采用多线程处理每个阶段可配置线程数提高并发处理能力。3、Kibana3.1、Kiabana是什么Kibana 是 开源的数据可视化与分析平台Elasticsearch 的官方配套工具核心定位是「让 ES 中的数据 “可视化”」提供交互式界面供用户查询、分析、展示数据。3.2、Kiabana作用1数据可视化通过图表折线图、柱状图、饼图、地图等展示 ES 中的数据​2交互式查询提供「Dev Tools」界面支持直接编写 ES 查询语句DSL实时查看结果​3仪表盘定制将多个图表组合为仪表盘如系统监控仪表盘、业务指标仪表盘支持实时刷新​4告警配置对关键指标如 CPU 使用率、错误日志数量设置阈值触发告警邮件、短信等。3.3、Kiabana应用场景1系统监控展示服务器 CPU、内存、磁盘使用率应用接口响应时间、错误率等指标​2日志分析通过日志面板筛选、搜索日志快速定位问题如报错日志详情​3业务报表展示电商订单量、用户活跃度、销售额等业务数据支持按时间 / 地区拆分​4数据探索数据分析师通过交互式查询探索数据规律如用户行为偏好。3.4、Kibana 的工作原理1连接 ESKibana 启动时需配置 ES 集群地址通过 ES 的 REST API 与 ES 建立通信​2数据请求用户在 Kibana 界面操作如创建图表、执行查询Kibana 将操作转换为 ES 支持的查询语句如 DSL​3数据获取ES 执行查询后返回结果Kibana 接收数据并进行格式化处理​4可视化渲染将处理后的数据渲染为图表、仪表盘或日志列表展示给用户​5持久化用户创建的仪表盘、查询语句可保存到 Kibana 本地存储或 ES 索引中支持共享。三、ELK框架部署1、环境规划1.1、服务器规划node1 4G ip:192.168.10.105Elasticsearch7.8.1集群、Kibana7.8.1、jdk 1.8.0_131node2 4G ip:192.168.10.106Elasticsearch7.8.1集群、jdk 1.8.0_131Logstash ip:192.168.10.107httpd 、Logstash7.8.1filebeat ip:192.168.10.102filebeat7.8.11.2、系统设置node1、node2执行#1、关闭防火墙systemctl stop firewalld#关闭防火墙setenforce0#关闭增强功能#2、更改主机名、配置域名解析、查看Java环境Node1节点hostnamectl set-hostname node1 Node2节点hostnamectl set-hostname node2#3、主机名与IP解析vim/etc/hosts192.168.10.105 node1192.168.10.106 node2#4、java安装 version 1.8.0_131 (1.8.0_2** 可能会有问题)#使用jdk后续需要调整elasticsearch的路径yuminstall-y java java -versionjdk环境验证java -version2、Elasticsearch部署2.1、Elasticsearch安装node1、node2操作#1安装elasticsearch—rpm包,上传包elasticsearch-7.8.1-x86_64.rpm#rpm安装:需手动找包 解决依赖 yum安装一条命令完成 编译安装编译步骤多、耗时长cd/optrpm-ivh elasticsearch-7.8.1-x86_64.rpm#2加载系统服务#加载新增 / 修改的服务配置比如刚创建 / 修改了 Elasticsearch 的 service 文件systemctl daemon-reload systemctlenableelasticsearch.service#3修改elasticsearch主配置文件cp/etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bakvim/etc/elasticsearch/elasticsearch.yml --17--取消注释指定集群名字 cluster.name: my-elk-cluster --23--取消注释指定节点名字Node1节点为node1Node2节点为node2 node.name: node1# 添加 设置该节点为主节点候选人node.master:true# 添加 设置该节点可以存储数据node.data:true--33--取消注释指定数据存放路径 path.data: /data/elk_data --37--取消注释指定日志存放路径 path.logs: /var/log/elasticsearch/ --43--取消注释改为在启动的时候不锁定内存 bootstrap.memory_lock:false--55--取消注释设置监听地址0.0.0.0代表所有地址 network.host:0.0.0.0 --59--取消注释ES 服务的默认监听端口为9200 http.port:9200transport.tcp.port:9300--68--取消注释集群发现通过单播实现指定要发现的节点 node1、node2# 添加7.8比较特殊discovery.seed_hosts:[192.168.10.105:9300,192.168.10.106:9300]cluster.initial_master_nodes:[node1,node2]#查看elasticsearch.yml的有效配置grep-v^#/etc/elasticsearch/elasticsearch.yml#创建数据存放路径并授权。RPM 包安装 Elasticsearch 时会自动创建elasticsearch用户、组这是 RPM 包的标准化设计编译安装 / 解压安装则需要手动创建。mkdir-p /data/elk_datachownelasticsearch:elasticsearch /data/elk_data/#4 启动elasticsearchsystemctl start elasticsearch.servicenetstat-antulp|grep9200#5 插入索引 测试索引索引为 index-demo类型为 test。curl-X PUTlocalhost:9200/index-demo1/test/1?prettypretty-Hcontent-Type: application/json-d{user:zhangsan,mesg:hello world}#6 查看该node节点目前的所有索引有测试索引index-demo1就正常curl-X GEThttp://localhost:9200/_cat/indices?hindex2.3、检查节点状态和排错日志#5 检查单节点 ES 服务是否启动成功.各种方法如下systemctl status elasticsearch.servicenetstat-antulp|grep9200浏览器访问 http://192.168.10.105:9200# 查看node1节点信息# 查看单节点健康状态# 绿色健康 数据和副本 全都没有问题# 红色数据都不完整# 黄色数据完整但副本有问题浏览器访问 http://192.168.10.105:9200/_cluster/health?pretty# 6、验证集群是否正常各种方法如下# 查看集群健康状态浏览器访问 http://192.168.10.105:9200/_cluster/state?pretty# curl访问ES的REST API推荐# 若curl无响应指定节点IP访问比如在Node1上查# number_of_nodes 字段2表示两个节点都加入集群# number_of_data_nodes 字段2两个节点都是数据节点。curl-XGEThttp://localhost:9200/_cluster/health?prettycurl-XGEThttp://192.168.10.105:9200/_cluster/health?pretty# 查看集群节点列表确认节点发现正常master 列有一个*表示该节点是主节点集群正常选主。curl-XGEThttp://localhost:9200/_cat/nodes?v正常输出示例能看到 node1 和 node2 两个节点 p heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name192.168.10.105108020.100.050.01mdi * node1192.168.10.106127810.080.040.00mdi - node2单节点日志排错#查看ES日志若服务状态异常优先看日志定位问题日志中无 ERROR 级别的报错如权限、端口占用、配置语法错误tail-f /var/log/elasticsearch/my-elk-cluster.log集群日志排错:/var/log/elasticsearch/my-elk-cluster.log# 集群名.log主日志文件核心# 补充RPM安装还会生成以下日志辅助排查/var/log/elasticsearch/elasticsearch.log# 兜底日志部分版本会复用/var/log/messages# 系统日志包含ES服务启动/崩溃的系统层面信息/var/log/elasticsearch/_cat/# 分片/节点状态日志可选# 实时查看主日志按CtrlC停止优先看ERROR级别tail-f /var/log/elasticsearch/my-elk-cluster.log|grep-ierror# 进阶只看ERROR/FATAL级别过滤掉无关信息tail-f /var/log/elasticsearch/my-elk-cluster.log|grep-EERROR|FATAL# 若日志量大按时间筛选最近100行ERRORtail-n100/var/log/elasticsearch/my-elk-cluster.log|grep-ierror2.4、测试结果elasticsearch成功运行。且master值为* ,表示该节点为主节点curl -XGET ‘http://localhost:9200/_cat/nodes?v’3、Logstash部署日志收集器要部署在应用服务上。例如Apache 节点上3.1、部署Logstash#1 前置准备hostnamectl set-hostname apache yum -yinstallhttpd systemctl start httpdchmod755/var/log/httpd/ yum -yinstalljava java -version#2 安装Logstash。上传软件包 logstash-7.8.1.rpm 到/opt目录下cd/optrpm-ivh logstash-7.8.1.rpm systemctl start logstash.service systemctlenablelogstash.serviceln-s /usr/share/logstash/bin/logstash /usr/local/bin/定义logstash配置文件修改 Logstash 配置文件让其收集系统日志/var/log/messages并将其输出到 elasticsearch中。chmodr /var/log/messagesvim/etc/logstash/conf.d/system.conf#---写入-----------------------input{file{path/var/log/messagestypesystemstart_positionbeginning}file{path/var/log/httpd/access_logtypeapachestart_positionbeginning}}output{# 条件1type为system的日志输出到system-日期 索引if[type]system{elasticsearch{hosts[192.168.10.105:9200]indexsystem-%{YYYY.MM.dd}}}# 条件2type为apache的日志输出到apache-日期 索引也可自定义其他配置elseif[type]apache{elasticsearch{hosts[192.168.10.105:9200]indexapache-%{YYYY.MM.dd}# 仅索引名差异化其他保持不变}}}#-----------------------------------------------systemctl restart logstash# 在elastsearch节点通过curl -X GET http://localhost:9200/_cat/indices?hindex 查看索引信息3.2、测试LogstashLogstash成功部署message日志成功输出到el节点.再通过访问httpd触发access.log日志输出到el,如下所示4、Kiabana部署4.1、Kiabana部署流程在 Node1 节点上操作#1下载或上传压缩包安装# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.1-linux-x86_64.tar.gzcd/optrpm-ivh kibana-7.8.1-x86_64.rpm#2设置 Kibana 的主配置文件vim/etc/kibana/kibana.yml --2--取消注释Kiabana 服务的默认监听端口为5601 server.port:5601--7--取消注释设置 Kiabana 的监听地址0.0.0.0代表所有地址 server.host:0.0.0.0--28--取消注释设置和 Elasticsearch 建立连接的地址和端口 elasticsearch.hosts:[http://192.168.10.105:9200]--37--取消注释设置在 elasticsearch 中添加.kibana索引 kibana.index:.kibana# 3启动 Kibana 服务systemctl start kibana.service systemctlenablekibana.servicenetstat-natp|grep56014.2、Kiabana测试kibana部署调用el节点数据进行显示4.3、浏览器访问Kiabana流程四、ELKFilebeat部署1、filebeat介绍轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat并指定目录与日志格式Filebeat 就能快速收集数据并发送给 logstash 进或是直接发给 Elasticsearch 存储性能上相比运行于 JVM 上的 logstash 优势明显是对它的替代。常应用于 EFLK 架构当中。行解析filebeat 结合 logstash 带来好处1通过 Logstash 具有基于磁盘的自适应缓冲系统该系统将吸收传入的吞吐量从而减轻Elasticsearch 持续写入数据的压力2从其他数据源例如数据库S3对象存储或消息传递队列中提取3将数据发送到多个目的地例如S3HDFSHadoop分布式文件系统或写入文件4使用条件数据流逻辑组成更复杂的处理管道缓存/消息队列redis、kafka、RabbitMQ等可以对高并发日志数据进行流量削峰和缓冲这样的缓冲可以一定程度的保护数据不丢失还可以对整个架构进行应用解耦。2、filebeat部署#1上传软件包 filebeat-7.8.1-linux-x86_64.tar.gz 到/opt目录cd/opttarzxvf filebeat-7.8.1-linux-x86_64.tar.gzmvfilebeat-7.8.1-linux-x86_64/ /usr/local/filebeat#2设置 filebeat 的主配置文件vim/usr/local/filebeat/filebeat.yml#写入filebeat.prospectors:#7版本以上是filebeat.utils- type: log enabled:truepaths: - /var/log/messages#指定监控的日志文件- /var/log/*.log fields:#可以使用 fields 配置选项设置一些参数字段添加到 output 中service_name: filebeat log_type: log#标记 “这份日志是由 102 这台采集服务器采集的”service_id:192.168.10.102 --------------Elasticsearch output-------------------(全部注释掉)----------------Logstash output--------------------- output.logstash: hosts:[192.168.10.107:5044]#指定 logstash 的 IP 和端口#3启动 filebeatcd/usr/local/filebeat ./filebeat -e -c filebeat.yml4、logstash写入配置文件vim/etc/logstash/conf.d/logstash.conf#写入input{beats{port5044host0.0.0.0}}output{elasticsearch{hosts[192.168.10.105:9200]index%{[fields][service_name]}-%{YYYY.MM.dd}}stdout{codecrubydebug}}#启动 logstashcd/etc/logstash/conf.d/ logstash -f logstash.conf3、测试验证Filebeat部署完成总结本文详解 ELK 7.8.1 核心组件、部署流程及 Filebeat 集成方案助力搭建稳定的日志分析平台提升运维与业务分析效率。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询