单页网站制作软件建网站的公司哪里有

张小明 2026/1/8 17:02:05
单页网站制作软件,建网站的公司哪里有,无锡网站建设mkdns,网站 必须有的功能前言 在当今大数据时代#xff0c;日志数据已成为企业运维监控、业务分析和安全审计的核心资产。系统日志、应用程序日志、安全日志等蕴含着服务器运行状态、用户行为轨迹、潜在故障隐患等关键信息#xff0c;是企业保障系统稳定运行、优化业务流程、防范安全风险的重要依据。…前言在当今大数据时代日志数据已成为企业运维监控、业务分析和安全审计的核心资产。系统日志、应用程序日志、安全日志等蕴含着服务器运行状态、用户行为轨迹、潜在故障隐患等关键信息是企业保障系统稳定运行、优化业务流程、防范安全风险的重要依据。然而随着分布式架构的普及企业业务系统往往部署在数十甚至上百台服务器上日志数据呈现出分散存储、格式多样、体量庞大的特点。传统的日志分析方式依赖grep、awk等命令行工具需要运维人员逐台登录服务器查询日志不仅操作繁琐、效率低下还无法满足复杂的日志检索、统计分析和可视化需求。当系统出现故障时分散的日志难以快速关联分析导致问题定位耗时费力。在此背景下ELK StackElasticsearch、Logstash、Kibana作为一套开源的日志集中处理解决方案应运而生。它通过三大组件的协同工作实现了日志数据的集中收集、清洗转换、分布式存储、快速检索和可视化分析彻底解决了传统日志管理的痛点成为企业级日志分析的首选方案。本文将从基础概念出发详细拆解ELK各组件的核心功能与工作原理结合完整的部署实践帮助读者系统掌握ELK的使用方法同时深入解释每一步操作的设计意义。一、ELK概述1.1 什么是ELKELK是Elasticsearch、Logstash、Kibana三个开源工具的缩写三者组合形成一套完整的日志集中处理解决方案。它并非单一软件而是一个协同工作的技术栈能够覆盖日志从采集、处理、存储到分析、可视化的全生命周期满足企业对日志数据的查询、排序、统计、监控等多元化需求。ELK Stack的核心价值在于一体化整合无需额外集成第三方工具即可实现端到端的日志管理且具备开源免费、可扩展性强、社区活跃等优势广泛应用于互联网、金融、电商、政务等多个行业。1.2 各组件角色ELK的三个组件各司其职形成“采集-处理-存储-可视化”的闭环流程具体角色如下Elasticsearch核心搜索与存储引擎。负责接收处理后的日志数据进行分布式存储、索引构建并提供快速的全文搜索和聚合分析能力。它是整个ELK Stack的数据核心相当于“数据仓库搜索引擎”的结合体。Logstash数据采集与处理管道。作为日志流转的“中间件”能够从多种数据源日志文件、数据库、消息队列等采集原始日志通过过滤、清洗、格式转换等操作将非结构化/半结构化数据转化为结构化数据再输出到Elasticsearch。Kibana数据可视化与交互平台。提供图形化Web界面对接Elasticsearch中的数据支持通过折线图、饼图、柱状图、仪表盘等多种形式展示日志分析结果同时提供日志检索、告警配置、权限管理等功能是用户与ELK系统交互的主要入口。1.3 简单理解ELK Stack可以看作一个“日志处理工厂”Logstash是“原料采集与加工车间”从各个服务器原料产地收集原始日志原料经过清洗、切割、格式标准化加工后将合格的结构化数据成品原料输送给ElasticsearchElasticsearch是“智能仓库”将结构化日志数据分类存储入库并建立索引支持快速查询和批量分析出库检索Kibana是“产品展示与销售终端”将仓库中的数据以直观的图表形式展示给用户产品展示并支持用户按需检索、定制报表个性化需求。这套“工厂流水线”实现了日志数据的自动化处理让用户无需关注底层技术细节即可高效利用日志价值。二、Elasticsearch介绍2.1 基本概念Elasticsearch简称ES是基于LuceneApache开源全文检索引擎架构开发的分布式存储检索引擎专门用于存储和分析大容量数据尤其是日志数据。它采用Java开发通过RESTful Web接口提供服务支持跨平台、多语言集成用户可通过浏览器或代码调用其功能。ES的核心定位是“实时、分布式、可扩展”实时性数据写入后可立即被检索和分析延迟低至毫秒级分布式支持多节点组成集群数据分散存储在不同节点具备高可用性和横向扩展能力多场景适配不仅支持全文搜索还能处理结构化数据、时间序列数据如监控指标适用场景广泛。2.2 核心功能全文搜索ES最核心的功能基于Lucene的倒排索引技术能够对文本数据进行快速索引和模糊查询、精准匹配、短语搜索等复杂检索操作。例如在海量应用日志中快速定位包含“NullPointerException”的异常记录。实时数据分析支持数据实时写入和查询无需等待批量处理适合日志监控、实时告警等场景。例如实时统计某时间段内系统的错误日志数量。分布式架构天然支持集群部署数据自动分片存储节点故障时可通过副本快速恢复确保服务不中断。RESTful API提供简单易用的HTTP接口支持通过JSON格式进行数据增删改查可轻松与Java、Python、Go等多种编程语言集成。聚合分析支持对数据进行统计聚合如求和、计数、分组、平均值计算等。例如按小时统计不同服务器的日志产生量。2.3 架构与组件ES的架构设计围绕“分布式存储与检索”展开核心组件包括组件定义与作用集群Cluster由一个或多个ES节点组成的集合集群内所有节点共享数据和负载对外提供统一的服务入口。每个集群有唯一的集群名称默认“elasticsearch”节点通过集群名称加入集群。节点Node运行ES的单个实例一台服务器可部署多个节点但生产环境通常一台服务器一个节点。节点分为不同角色主节点管理集群配置、选举、数据节点存储数据、处理查询、协调节点转发请求不存储数据等角色可配置。索引Index类似于传统数据库中的“表”是一组相关文档的集合。每个索引有唯一名称如“system-2025.09.22”表示2025年9月22日的系统日志ES通过索引组织数据方便管理和检索。文档DocumentES中的最小数据单元类似于数据库中的“行”。每个文档是一个JSON格式的键值对对象包含一条日志的完整信息如时间戳、主机名、日志内容等。文档通过唯一ID标识存储在指定索引中。分片Shard每个索引会被拆分为多个分片默认5个每个分片是一个独立的Lucene索引。分片的作用是实现数据分布式存储不同分片可部署在不同节点提高存储容量和并行处理能力查询时多个分片同时响应提升速度。副本Replica每个分片的备份默认1个副本部署在与原分片不同的节点上。作用是数据冗余当原分片所在节点故障时副本可自动切换为-primary分片确保数据不丢失同时副本可分担查询压力提升检索性能。组件设计意义集群节点实现服务的高可用和横向扩展解决单节点性能瓶颈和故障风险索引按业务场景或时间维度划分数据便于日志生命周期管理如按天删除过期日志分片突破单节点存储容量限制实现并行处理提升大规模数据的查询效率副本平衡数据安全性和查询性能避免单点故障导致的数据丢失。2.4 使用场景日志和事件数据分析与Logstash、Kibana配合处理大规模分布式系统日志支持实时查询、故障定位、性能分析全文搜索应用电子商务平台的商品搜索、社交媒体的内容检索、企业内部文档搜索等监控和报警系统存储系统监控指标如CPU使用率、内存占用结合Kibana实现实时监控和阈值告警商业智能BI分析业务数据如销售数据、用户行为数据通过聚合分析挖掘数据价值辅助企业决策。2.5 Elasticsearch特点与缺点优点高性能基于Lucene的倒排索引和分布式架构全文搜索和聚合分析速度快支持每秒数十万条数据的写入和查询易扩展集群支持动态添加节点数据自动均衡分配无需停机即可扩展存储容量和处理能力灵活性强支持JSON格式的非结构化/半结构化数据无需预先定义严格的表结构 Schema-less适配多种数据类型开源免费核心功能开源社区活跃提供丰富的插件如分词插件、监控插件支持二次开发。缺点资源消耗高作为内存密集型应用ES需要大量内存存储索引和缓存数据处理海量日志时对服务器硬件CPU、内存、磁盘要求较高学习曲线较陡复杂的查询DSL领域特定语言、分布式架构原理、分片策略等需要一定时间掌握管理复杂性大型集群数十个节点的节点角色配置、分片均衡、故障排查、性能调优等需要专业运维知识。三、Logstash介绍3.1 概述Logstash是一款开源的数据采集与处理工具作为ELK Stack的数据“搬运工”和“加工厂”负责连接数据源与存储/分析系统。它由Ruby语言编写运行在Java虚拟机JVM上通过插件化架构支持多种数据输入、处理和输出方式核心优势是“灵活的数据处理能力”。Logstash的核心定位是“数据管道”解决原始日志的“杂乱无章”问题将分散、非结构化的日志数据转化为统一格式的结构化数据为后续的存储和分析打下基础。3.2 主要特点多源数据采集支持从日志文件、数据库MySQL、Oracle、消息队列Kafka、RabbitMQ、HTTP接口、系统日志syslog等多种数据源采集数据通过输入插件Input Plugin实现适配强大的数据处理通过过滤器插件Filter Plugin对采集到的原始数据进行清洗去除无用字段、格式转换如日期格式标准化、字段解析如从日志中提取IP、请求路径、数据 enrichment补充额外字段等操作支持正则表达式、JSON解析、条件判断等复杂逻辑多目标数据输出处理后的数据可输出到Elasticsearch、关系型数据库、文件系统、消息队列等多种目标通过输出插件Output Plugin实现集成可扩展性强支持自定义插件可根据业务需求开发专属的输入、过滤或输出逻辑实时处理采用流式处理模式数据采集后立即处理并输出延迟低适合实时日志监控场景。3.3 使用场景日志收集和分析采集服务器系统日志、应用程序日志如Tomcat、Nginx日志清洗后输出到ES供后续分析数据转换将非结构化日志如文本格式的Nginx访问日志转换为结构化JSON数据便于ES索引和查询数据流整合从多个异构数据源如日志文件数据库消息队列采集数据统一格式后汇聚到ES实现数据集中分析。3.4 数据处理流程Logstash的核心流程为“输入Input→ 过滤Filter→ 输出Output”每个环节通过插件实现Input采集原始数据。例如通过file插件读取服务器日志文件通过kafka插件从消息队列消费数据Filter数据处理核心环节。例如通过grok插件解析文本日志如Nginx日志的“IP - - [时间] “请求” 状态码 大小”格式通过date插件统一时间戳格式通过mutate插件添加/删除字段Output输出处理后的结构化数据。最常用的是输出到Elasticsearch也可输出到文件或数据库备份。流程设计意义模块化拆分输入、过滤、输出相互独立便于灵活配置适配不同业务场景如仅需采集和输出可省略过滤环节插件化架构通过插件扩展支持能力无需修改核心代码即可适配新数据源或新输出目标。3.5 其他数据收集组件Logstash虽然功能强大但存在“重量级”缺点运行在JVM上资源消耗高内存占用大不适合在资源受限的服务器如边缘节点部署。因此ELK生态中出现了轻量级替代方案3.5.1 FilebeatFilebeat是轻量级的日志采集工具基于Go语言开发专门用于日志文件的采集是Logstash的“轻量版替代”常与Logstash配合使用形成EFLK架构。核心优势资源消耗低无需JVM内存占用仅几MB适合在大量客户端服务器部署高可靠性支持断点续传日志采集过程中若网络中断恢复后可从断点继续采集避免数据丢失配置简单仅需指定日志文件路径和输出目标即可快速部署。FilebeatLogstash组合的意义Filebeat部署在客户端负责“就近采集”日志降低客户端资源消耗Logstash部署在服务端负责“集中处理”如复杂过滤、多数据源整合利用服务端充足资源处理复杂逻辑Logstash的磁盘缓冲机制可吸收高并发日志流量避免ES因写入压力过大而性能下降支持多目标输出Logstash可将数据同时输出到ES、HDFS、文件等多个目标满足数据备份和多场景分析需求。此外缓存/消息队列Redis、Kafka、RabbitMQ可作为中间件加入流程实现“流量削峰”和“应用解耦”当日志产生量突增时队列可缓存数据避免Logstash或ES被压垮同时队列隔离了采集层Filebeat和处理层Logstash某一层故障不会直接影响另一层。3.5.2 FluentdFluentd是另一款开源数据采集工具定位与Logstash类似但更轻量、性能更高常与ES、Kibana配合形成EFK架构。核心优势资源消耗低内存占用远低于Logstash处理性能更高易用性强配置简洁支持更多数据源和输出目标社区提供丰富的插件Kubernetes适配性好在K8s集群中常通过DaemonSet部署Fluentd采集每个节点的容器日志是容器化环境日志采集的首选方案。与Logstash的对比Logstash功能更全面过滤逻辑更灵活适合复杂数据处理场景但资源消耗高Fluentd轻量、高效适合大规模分布式环境和容器化场景资源受限的场景优先选择。四、Kibana介绍4.1 概述Kibana是Elasticsearch的官方数据可视化工具提供图形化Web界面无需编写复杂查询语句即可实现对ES中数据的检索、分析和可视化展示。它与ES深度集成支持通过拖拽操作创建图表和仪表盘是用户与ELK系统交互的“窗口”。Kibana的核心定位是“数据可视化与交互平台”将ES中存储的结构化数据转化为直观的图表、报表和仪表盘降低用户使用门槛让非技术人员也能快速获取日志价值。4.2 主要功能数据可视化Visualizations支持折线图、饼图、柱状图、直方图、地图、热力图等多种可视化类型支持自定义图表样式如颜色、坐标轴、图例和数据聚合逻辑如按时间分组、按字段计数动态可视化图表可根据筛选条件和时间范围实时更新适合实时监控场景。功能意义将枯燥的日志数据转化为直观图表帮助用户快速发现数据趋势如某时段错误日志激增。仪表板Dashboards整合多个可视化图表形成统一的监控面板如“系统运维仪表盘”可包含CPU使用率、内存占用、错误日志数量、请求响应时间等图表支持交互式筛选通过时间范围选择、字段筛选如按主机名筛选实时更新所有图表数据支持保存和分享可将常用仪表盘保存方便团队共享。功能意义集中展示关键指标实现“一站式监控”减少用户切换操作。日志管理和搜索Log Management Discovery提供“Discover”功能支持对ES中的原始日志进行实时搜索和过滤支持KQLKibana Query Language和Lucene查询语法可通过简单关键词或复杂条件检索日志如“host:node1 AND message:error”支持日志字段高亮显示、分页查看和导出如导出CSV格式。功能意义替代传统命令行查询提高日志检索效率快速定位故障原因。时间序列分析Time Series Analytics通过“TSVBTime Series Visual Builder”工具支持对时间序列数据如监控指标、日志产生量进行复杂分析支持趋势预测、异常检测如识别偏离正常范围的指标和多指标对比。功能意义适合分析随时间变化的数据如系统性能趋势、业务流量波动。报警与监控Alerts Monitoring支持设置阈值告警如“错误日志数量5分钟内超过10条则告警”支持多种告警通知方式如邮件、短信、Webhook支持监控ELK Stack自身状态如ES集群健康度、Logstash管道运行状态。功能意义实现故障主动预警避免被动排查减少故障影响范围。安全和访问控制Security Access Control基于角色的访问控制RBAC管理员可创建角色分配不同权限如只读权限、编辑权限、仪表盘查看权限支持与外部认证系统集成如LDAP、OAuth实现统一身份认证支持数据级权限控制如限制某角色只能查看特定索引的日志。功能意义保障日志数据安全避免敏感信息泄露适配多团队协作场景。机器学习Machine Learning集成Elastic Stack的机器学习功能支持无监督学习算法自动检测数据中的异常行为如突然激增的请求量、异常的错误码分布支持趋势预测如预测未来1小时的日志产生量。功能意义减少人工监控成本实现智能化异常检测。地图和地理可视化Maps Geospatial Visualization支持基于地理坐标的数据可视化如展示不同地区的用户访问量、服务器分布支持动态过滤地理数据和叠加多层数据如在地图上显示访问量和错误率。功能意义适合位置相关的日志分析如CDN节点日志、用户访问日志。Canvas和报告Canvas ReportingCanvas支持创建高度自定义的可视化报告如业务报表、运维总结可添加图片、文字、图表支持拖拽排版Reporting支持自动生成PDF、CSV格式的报告可设置定时发送如每日凌晨发送前一天的系统日志报告。功能意义满足企业级报表需求方便数据汇报和归档。4.3 使用场景日志管理与分析集中查看和分析分布式系统日志快速定位故障如通过检索异常日志关键词找到故障原因实时监控通过仪表盘和告警功能实时监控系统性能、服务可用性和业务流量业务数据分析分析用户行为日志如访问路径、停留时间、销售日志等挖掘业务优化点安全分析与威胁检测分析安全日志如登录日志、防火墙日志识别恶意攻击如暴力破解、异常访问机器学习与数据预测通过机器学习功能实现系统异常自动检测、业务流量预测等。4.4 Kibana的工作原理Kibana本身不存储数据所有数据均来自Elasticsearch其工作流程如下数据存储日志数据经Logstash/Filebeat处理后写入Elasticsearch并建立索引查询请求用户在Kibana界面执行搜索或查看图表时Kibana将用户操作转化为ES支持的查询语句如RESTful API请求发送给Elasticsearch数据返回Elasticsearch执行查询后将结果原始日志或聚合分析结果返回给Kibana可视化展示Kibana将返回的结果通过图表、列表等形式展示给用户。工作原理意义分离存储与展示Kibana不承担数据存储压力专注于可视化和交互确保界面响应速度依赖ES的查询能力充分利用ES的高效检索和聚合分析能力确保可视化数据的实时性和准确性。五、为什么要使用ELK在分布式系统环境中传统日志管理方式存在诸多痛点而ELK的出现恰好解决了这些问题具体如下1. 解决日志分散存储的问题传统模式下日志分散存储在各个服务器的本地文件中运维人员需要逐台登录服务器查询日志操作繁琐、效率低下。例如管理100台服务器时排查一个跨服务器的故障可能需要登录数十台机器耗时费力。ELK通过Logstash/Filebeat集中采集所有服务器的日志统一存储到Elasticsearch实现“日志集中化管理”用户无需登录多台服务器即可在Kibana中一站式查询所有日志。2. 解决日志检索效率低的问题传统模式下日志检索依赖grep、awk等命令行工具对于海量日志或复杂查询条件如按时间范围关键词字段筛选检索速度慢且不支持模糊查询、聚合统计等高级功能。ELK中Elasticsearch为日志建立倒排索引支持秒级检索海量日志且Kibana提供可视化查询界面支持复杂条件筛选和聚合分析大幅提升日志检索效率。例如要查询“2025年9月22日10-12点之间node1服务器的所有错误日志”仅需在Kibana中设置时间范围和筛选条件即可快速得到结果。3. 解决日志分析能力弱的问题传统模式下日志分析仅能实现简单的计数、排序无法满足复杂的数据分析需求如趋势分析、异常检测、多维度统计。例如无法快速分析某应用的请求响应时间分布或某时段的故障发生率。ELK通过ES的聚合分析功能和Kibana的可视化工具支持多维度、深层次的日志分析可快速生成趋势图表、统计报表帮助用户从日志中挖掘价值如识别系统性能瓶颈、优化业务流程。4. 提升故障定位效率分布式系统中故障往往涉及多个服务模块和服务器传统模式下需要手动关联多台服务器的日志定位故障原因耗时久。ELK将所有日志集中存储并建立关联如通过请求ID关联不同服务器的日志用户可通过Kibana快速检索相关日志追溯故障链路大幅缩短故障定位时间。例如某用户请求失败可通过请求ID查询该请求在所有服务器上的日志快速定位故障发生的模块和原因。5. 支持日志生命周期管理传统模式下日志存储依赖服务器本地磁盘缺乏统一的生命周期管理过期日志手动删除繁琐且容易因磁盘满导致服务异常。ELK中可通过ES的索引生命周期管理ILM功能自动实现日志的滚动、归档和删除如按天创建索引保留30天的日志过期自动删除降低运维成本避免磁盘溢出风险。六、完整日志系统基本特征一套可靠的企业级日志系统需具备以下5个核心特征ELK Stack完全满足这些要求1. 全面的收集能力能够采集多种来源、多种格式的日志数据包括系统日志如Linux的/var/log/messages应用程序日志如Java应用的log4j日志、Nginx访问日志数据库日志如MySQL的慢查询日志云服务日志如AWS、阿里云的服务日志容器日志如Docker、Kubernetes容器日志。ELK实现方式通过Logstash的输入插件和Filebeat的采集功能支持上述所有日志来源的采集。2. 稳定的传输能力确保日志数据从采集端到存储端的稳定传输具备以下特点可靠性支持断点续传、重试机制避免网络中断或服务故障导致的数据丢失安全性支持数据加密传输如TLS/SSL防止日志数据在传输过程中泄露可控性支持流量控制和缓冲机制避免高并发日志压垮存储系统。ELK实现方式Filebeat支持断点续传和重试Logstash支持磁盘缓冲ES支持数据批量写入和流量控制可通过Kafka等消息队列实现流量削峰。3. 高效的存储能力能够存储海量日志数据具备以下特点高容量支持PB级数据存储可通过集群扩展存储容量高性能支持高并发写入和快速检索满足实时分析需求可扩展性支持横向扩展动态添加存储节点持久性支持数据持久化存储和备份避免数据丢失。ELK实现方式ES的分布式存储架构支持高容量和横向扩展倒排索引确保快速检索副本机制保障数据持久性。4. 强大的分析能力支持对日志数据进行多维度、深层次的分析包括全文检索支持关键词、模糊、短语等多种检索方式聚合分析支持计数、求和、分组、平均值等统计操作时间序列分析支持趋势分析、异常检测关联分析支持多日志源的关联查询如通过请求ID关联应用日志和数据库日志。ELK实现方式ES提供全文检索和聚合分析功能Kibana提供可视化分析工具和关联查询能力。5. 灵活的警告能力能够及时发现日志中的异常信息并通过告警通知用户具备以下特点多条件告警支持基于阈值、趋势、异常行为等多种条件触发告警多渠道通知支持邮件、短信、Webhook、钉钉/企业微信等多种通知方式可定制化支持自定义告警频率、告警级别如警告、严重、紧急。ELK实现方式Kibana的Alerts Monitoring功能支持上述告警需求可与第三方通知工具集成。七、ELK的工作原理重点ELK的工作流程围绕“日志采集-处理-存储-可视化”展开核心步骤如下每个步骤的细节和设计意义如下步骤1日志采集部署操作在所有需要收集日志的服务器上部署Logstash或在客户端部署Filebeat轻量场景若日志已集中存储在日志服务器则仅在日志服务器部署Logstash。设计意义就近采集日志减少日志传输距离和网络带宽占用Filebeat轻量部署适合资源受限的客户端Logstash部署在服务端适合复杂处理场景。步骤2日志处理与传输操作Logstash/Filebeat采集原始日志后Logstash通过过滤器插件对日志进行清洗、格式转换、字段解析将非结构化日志转化为JSON格式的结构化数据然后将处理后的数据输出到Elasticsearch。设计意义结构化处理让日志数据具备统一格式便于ES索引和查询数据清洗去除无用字段如日志中的冗余字符减少存储占用字段解析提取关键信息如从Nginx日志中提取IP、请求方法、状态码提升后续分析效率。步骤3日志存储与索引操作Elasticsearch接收Logstash输出的结构化数据根据预设的索引规则如按天创建索引创建索引将数据分片存储到集群节点并生成倒排索引用于快速检索同时创建副本确保数据安全。设计意义索引创建按时间或业务维度划分索引便于日志管理和过期删除分片存储实现分布式处理提升写入和查询性能倒排索引支持快速全文检索满足复杂查询需求副本存储保障数据高可用避免节点故障导致的数据丢失。步骤4数据可视化与交互操作用户通过Kibana的Web界面向Elasticsearch发送查询请求如检索特定关键词日志、统计某时段错误日志数量ES执行查询后返回结果Kibana将结果以图表、列表等形式展示给用户同时支持告警配置、报表生成等功能。设计意义降低用户使用门槛让非技术人员也能快速获取日志价值实现“数据→信息→洞察”的转化。完整工作流程图客户端服务器1 → Filebeat采集 → Logstash处理 → Elasticsearch存储 → Kibana可视化 客户端服务器2 → Filebeat采集 → 客户端服务器3 → Logstash采集 →八、部署 ELK 日志分析系统基于 CentOS 7 系统结合指定虚拟机地址node1/192.168.10.13、node2/192.168.10.14、apache/192.168.10.15、filebeat/192.168.10.16详细讲解 ELK 6.6.1 版本的部署流程包含环境准备、组件部署、配置验证等步骤并明确每一步操作的核心意义。8.1 环境准备8.1.1 部署环境规划配置与名称IP 地址服务配置节点角色说明Node1 节点2C/4G192.168.10.13Elasticsearch集群、KibanaES 主节点、Kibana 可视化节点Node2 节点2C/4G192.168.10.14Elasticsearch集群ES 数据节点保障集群高可用Apache 节点192.168.10.15Logstash、Apache日志采集/处理节点、测试日志源Filebeat 节点192.168.10.16Filebeat轻量日志采集节点后续 EFLK 架构使用环境规划意义按功能拆分节点避免单节点资源竞争同时通过双 ES 节点构建集群提升数据存储的可靠性和查询性能。8.1.2 基础环境配置所有节点均需执行1. 关闭防火墙与增强功能# 临时关闭防火墙即时生效重启失效systemctl stop firewalld# 禁止防火墙开机自启永久关闭systemctl disable firewalld# 临时关闭 SELinux即时生效重启失效setenforce0# 永久关闭 SELinux修改配置文件需重启服务器生效sed-is/SELINUXenforcing/SELINUXdisabled//etc/selinux/config操作意义ELK 组件间需通过端口通信如 ES 9200、Kibana 5601关闭防火墙和 SELinux 可避免端口被拦截简化部署流程生产环境可按需开放指定端口。2. 更改主机名与配置域名解析# Node1 节点设置主机名hostnamectl set-hostname node1# Node2 节点设置主机名hostnamectl set-hostname node2# Apache 节点设置主机名hostnamectl set-hostname apache# Filebeat 节点设置主机名hostnamectl set-hostname filebeat编辑/etc/hosts文件添加主机名与 IP 映射vim/etc/hosts# 添加以下内容192.168.10.13 node1192.168.10.14 node2192.168.10.15 apache192.168.10.16 filebeat操作意义让节点间可通过主机名直接通信避免依赖 IP 地址简化集群配置和后续维护。3. 安装 Java 环境Elasticsearch 和 Logstash 依赖 Java 运行环境需安装 JDK 1.8 版本# 安装 OpenJDK 1.8yum -yinstalljava-1.8.0-openjdk-devel# 验证安装结果java -version验证结果示例openjdk version 1.8.0_131 OpenJDK Runtime Environment (build 1.8.0_131-b12) OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)操作意义提供 ELK 组件运行所需的底层环境确保组件正常启动和运行。8.2 Elasticsearch 集群部署Node1、Node2 节点操作8.2.1 部署 Elasticsearch 软件1. 安装 Elasticsearch RPM 包# 上传 elasticsearch-6.6.1.rpm 到 /opt 目录官网下载地址https://www.elastic.co/cn/downloads/cd/opt# 安装 RPM 包rpm-ivh elasticsearch-6.6.1.rpm操作意义通过 RPM 包快速完成软件安装自动配置系统服务、目录结构和用户权限。2. 加载系统服务并设置开机自启# 重新加载系统服务配置让系统识别 Elasticsearch 服务systemctl daemon-reload# 设置 Elasticsearch 开机自启systemctlenableelasticsearch.service操作意义确保服务器重启后 Elasticsearch 自动启动减少人工干预保障服务连续性。3. 修改 Elasticsearch 主配置文件先备份原始配置文件再修改核心参数Node1 和 Node2 节点仅node.name不同# 备份配置文件防止修改错误无法回滚cp/etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak# 编辑主配置文件vim/etc/elasticsearch/elasticsearch.yml核心配置参数按文件行号修改取消注释并调整值# 17 行指定集群名称所有节点必须一致用于节点加入集群cluster.name:my-elk-cluster# 23 行指定节点名称Node1 设为 node1Node2 设为 node2唯一标识节点node.name:node1# Node2 节点改为 node2# 33 行指定数据存放路径单独目录便于数据备份和管理path.data:/data/elk_data# 37 行指定日志存放路径分离数据和日志避免磁盘空间竞争path.logs:/var/log/elasticsearch/# 43 行启动时不锁定内存新手部署避免因内存不足导致启动失败生产环境建议开启bootstrap.memory_lock:false# 55 行设置监听地址0.0.0.0 允许所有 IP 访问支持跨节点通信network.host:0.0.0.0# 59 行ES 服务默认监听端口9200 为 HTTP 通信端口http.port:9200# 68 行集群发现方式单播模式指定集群节点 IP避免广播风暴discovery.zen.ping.unicast.hosts:[192.168.10.13,192.168.10.14]配置意义集群名称统一节点归属节点名称标识个体数据/日志路径规划存储监听地址和端口保障通信单播发现确保集群稳定组建。4. 创建数据存放路径并授权# 创建数据存储目录按配置文件中 path.data 路径创建mkdir-p /data/elk_data# 授权 elasticsearch 用户服务默认运行用户拥有目录读写权限chownelasticsearch:elasticsearch /data/elk_data/操作意义Elasticsearch 需写入数据到指定目录授权后避免因权限不足导致启动失败或数据写入异常。5. 启动 Elasticsearch 并验证# 启动 Elasticsearch 服务首次启动需加载索引耗时约 30 秒systemctl start elasticsearch.service# 查看服务状态active (running) 表示启动成功systemctl status elasticsearch.service# 验证 9200 端口是否监听确认服务正常对外提供通信netstat-antp|grep9200操作意义启动服务并验证端口确保 Elasticsearch 正常运行为后续组件对接做准备。6. 查看节点与集群状态通过浏览器或curl命令验证节点和集群状态# 查看 Node1 节点信息返回 JSON 格式节点详情curlhttp://192.168.10.13:9200# 查看 Node2 节点信息curlhttp://192.168.10.14:9200# 查看集群健康状态status 为 green 表示健康curlhttp://192.168.10.13:9200/_cluster/health?pretty集群健康状态说明green健康状态所有主分片和副本分片均正常yellow数据完整但部分副本分片未分配单节点集群常见red数据不完整存在未分配的主分片需排查故障。操作意义确认节点成功加入集群集群状态正常保障数据存储和查询功能可用。8.2.2 安装 Elasticsearch-head 插件Node1 节点操作Elasticsearch-head 是可视化管理工具支持查看集群状态、索引数据、分片分布等简化集群管理。1. 编译安装 Node.js插件依赖环境# 安装编译依赖工具yum -yinstallgcc gcc-cmake# 上传 node-v8.2.1.tar.gz 到 /opt 目录cd/opt# 解压安装包tarzxvf node-v8.2.1.tar.gz# 编译并安装-j2 表示使用 2 个 CPU 核心加速编译cdnode-v8.2.1/ ./configuremakemakeinstall# 验证安装输出版本号表示成功node -vnpm-v操作意义Elasticsearch-head 基于 Node.js 开发需安装其运行环境才能启动插件。2. 安装 phantomjs前端渲染依赖# 上传 phantomjs-2.1.1-linux-x86_64.tar.bz2 到 /opt 目录cd/opt# 解压到指定目录tarjxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/# 将 phantomjs 命令添加到系统环境变量便于全局调用cp/usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/# 验证安装phantomjs -v操作意义phantomjs 提供 WebKit 内核支持保障 Elasticsearch-head 前端页面正常渲染。3. 安装 Elasticsearch-head 插件# 上传 elasticsearch-head.tar.gz 到 /opt 目录cd/opt# 解压到指定目录tarzxvf elasticsearch-head.tar.gz -C /usr/local/src/# 进入插件目录安装依赖包cd/usr/local/src/elasticsearch-head/npminstall操作意义安装插件核心文件和依赖确保插件可正常启动。4. 修改 Elasticsearch 配置开启跨域访问Elasticsearch-head 运行在 9100 端口ES 运行在 9200 端口需开启跨域支持才能通信vim/etc/elasticsearch/elasticsearch.yml# 在文件末尾添加以下内容http.cors.enabled:true# 开启跨域访问支持http.cors.allow-origin:*# 允许所有域名访问生产环境可指定具体域名# 重启 Elasticsearch 使配置生效systemctl restart elasticsearch.service操作意义解决浏览器跨域访问限制让 Elasticsearch-head 可正常调用 ES 的 API 获取数据。5. 启动 Elasticsearch-head 服务# 进入插件目录必须在此目录启动否则无法读取配置文件cd/usr/local/src/elasticsearch-head/# 后台启动服务 表示后台运行避免占用终端npmrun start# 验证 9100 端口是否监听插件默认端口netstat-natp|grep9100启动成功标识终端输出Started connect web server on http://localhost:9100。操作意义启动可视化工具方便后续查看集群状态和数据。6. 验证插件功能打开浏览器访问http://192.168.10.13:9100在“连接”输入框中输入http://192.168.10.13:9200点击“连接”集群健康值显示“green”表示连接成功可查看集群节点、索引数量、分片分布等信息。7. 插入测试索引验证 ES 写入功能通过curl命令插入一条测试数据验证 ES 数据写入和索引功能curl-X PUThttp://192.168.10.13:9200/index-demo/test/1?pretty-HContent-Type: application/json-d{user:zhangsan,mesg:hello world}输出结果示例{_index:index-demo,_type:test,_id:1,_version:1,result:created,_shards:{total:2,successful:2,failed:0},created:true}在 Elasticsearch-head 中点击“数据浏览”可查看插入的测试数据确认 ES 功能正常。8.3 Logstash 部署Apache 节点操作IP192.168.10.15Logstash 负责采集 Apache 节点的日志系统日志、Apache 访问/错误日志处理后输出到 Elasticsearch。8.3.1 环境准备安装 Apache 服务与 Java 环境1. 安装 Apache 服务作为日志源# 安装 Apachehttpd 服务yum -yinstallhttpd# 启动 Apache 服务systemctl start httpd# 设置开机自启systemctlenablehttpd操作意义Apache 服务会生成访问日志/etc/httpd/logs/access_log和错误日志/etc/httpd/logs/error_log作为 Logstash 的采集目标。2. 安装 Java 环境Logstash 依赖# 安装 OpenJDK 1.8yum -yinstalljava# 验证安装java -version操作意义Logstash 运行在 JVM 上需 Java 环境支持才能启动。8.3.2 安装与配置 Logstash1. 安装 Logstash# 上传 logstash-6.6.1.rpm 到 /opt 目录cd/opt# 安装 RPM 包rpm-ivh logstash-6.6.1.rpm# 启动 Logstash 服务systemctl start logstash.service# 设置开机自启systemctlenablelogstash.service# 创建软链接便于在任意目录执行 logstash 命令ln-s /usr/share/logstash/bin/logstash /usr/local/bin/操作意义完成 Logstash 安装和服务配置确保服务可正常启动和调用。2. 测试 Logstash 功能验证输入输出流程Logstash 支持通过命令行快速测试验证服务是否正常测试 1标准输入 → 标准输出logstash -einput { stdin{} } output { stdout{} }输入www.baidu.com输出结果示例2020-12-22T03:58:47.799Z apache www.baidu.com测试意义验证 Logstash 基本输入输出功能stdin 采集标准输入stdout 输出到控制台。测试 2标准输入 → Rubydebug 格式输出结构化展示logstash -einput { stdin{} } output { stdout{ codecrubydebug } }输入www.baidu.com输出结果示例{timestamp2020-12-22T02:15:39.136Z,version1,hostapache,messagewww.baidu.com}测试意义验证 Logstash 数据结构化能力Rubydebug 编解码器将输出格式化为 JSON便于后续 ES 索引。测试 3标准输入 → 输出到 Elasticsearchlogstash -einput { stdin{} } output { elasticsearch { hosts[192.168.10.13:9200] } }输入www.baidu.com、www.sina.com.cn等内容按CtrlC退出。通过 Elasticsearch-head 访问http://192.168.10.13:9100可查看新增的logstash-YYYY.MM.DD索引确认数据已写入 ES。测试意义验证 Logstash 与 Elasticsearch 的连接和数据输出功能确保日志可正常传输到存储节点。3. 配置 Logstash 采集系统日志创建配置文件让 Logstash 采集 Linux 系统日志/var/log/messages并输出到 ES# 给日志文件添加读权限Logstash 运行用户需读取权限chmodr /var/log/messages# 创建配置文件存储在 /etc/logstash/conf.d/ 目录Logstash 自动识别vim/etc/logstash/conf.d/system.conf配置文件内容input{file{path /var/log/messages# 采集的日志文件路径type system# 自定义日志类型标识便于 Kibana 筛选start_position beginning# 从日志文件开头开始采集包含历史日志}}output{elasticsearch{hosts [192.168.10.13:9200]# 输出到 ES 集群Node1 节点index system-%{YYYY.MM.dd}# 索引名称按天拆分便于日志生命周期管理}}配置意义明确采集目标、日志类型和输出地址按天创建索引可避免单索引过大简化日志清理和查询。4. 配置 Logstash 采集 Apache 日志创建配置文件采集 Apache 访问日志和错误日志vim/etc/logstash/conf.d/apache_log.conf配置文件内容input{# 采集 Apache 访问日志file{path /etc/httpd/logs/access_log type access# 日志类型访问日志start_position beginning}# 采集 Apache 错误日志file{path /etc/httpd/logs/error_log type error# 日志类型错误日志start_position beginning}}output{# 访问日志输出到单独索引if[type] access{elasticsearch{hosts [192.168.10.13:9200]index apache_access-%{YYYY.MM.dd}}}# 错误日志输出到单独索引if[type] error{elasticsearch{hosts [192.168.10.13:9200]index apache_error-%{YYYY.MM.dd}}}}配置意义分离访问日志和错误日志到不同索引便于分类查询和分析如单独监控错误日志激增情况。5. 重启 Logstash 加载配置systemctl restart logstash.service操作意义让 Logstash 加载新配置开始采集系统日志和 Apache 日志传输到 Elasticsearch。8.4 Kibana 部署Node1 节点操作IP192.168.10.13Kibana 提供可视化界面对接 Elasticsearch 数据支持日志查询、图表展示和告警配置。8.4.1 安装 Kibana# 上传 kibana-6.6.1-x86_64.rpm 到 /opt 目录cd/opt# 安装 RPM 包rpm-ivh kibana-6.6.1-x86_64.rpm操作意义快速完成 Kibana 安装自动配置系统服务和目录。8.4.2 修改 Kibana 主配置文件vim/etc/kibana/kibana.yml核心配置参数取消注释并修改# 2 行Kibana 监听端口默认 5601用于浏览器访问server.port:5601# 7 行监听地址0.0.0.0 允许所有 IP 访问支持远程连接server.host:0.0.0.0# 28 行对接 Elasticsearch 集群指定 Node1 节点地址elasticsearch.hosts:[http://192.168.10.13:9200]# 37 行Kibana 配置存储索引存储仪表盘、可视化图表等配置kibana.index:.kibana配置意义明确 Kibana 访问端口、通信地址以及与 ES 的对接方式确保可正常获取数据和存储配置。8.4.3 启动 Kibana 服务# 启动 Kibana 服务systemctl start kibana.service# 设置开机自启systemctlenablekibana.service# 验证 5601 端口是否监听netstat-natp|grep5601操作意义启动 Kibana 服务为用户提供可视化操作入口。8.4.4 验证 Kibana 功能浏览器操作1. 访问 Kibana 界面打开浏览器访问http://192.168.10.13:5601首次登录需创建“索引模式”Kibana 识别 ES 索引的桥梁。2. 创建索引模式对接 ES 日志索引步骤 1创建系统日志索引模式点击左侧导航栏「Management」→「Index Patterns」→「Create index Pattern」输入索引模式名称system-*匹配所有系统日志索引点击「Next step」选择时间过滤字段timestamp按时间筛选日志点击「Create index Pattern」完成创建。步骤 2创建 Apache 日志索引模式重复上述步骤分别创建apache_access-*Apache 访问日志和apache_error-*Apache 错误日志索引模式。3. 查看日志数据点击左侧导航栏「Discover」在顶部下拉框选择对应的索引模式如system-*即可查看 ES 中的日志数据支持按时间范围、关键词、字段筛选查询。操作意义通过可视化界面快速检索和分析日志替代传统命令行工具提升运维效率。九、FilebeatELK 部署EFLK 架构Filebeat 是轻量级日志采集工具资源消耗低适合部署在客户端节点如大量应用服务器与 ELK 配合形成 EFLK 架构优化日志采集性能。9.1 环境规划配置与名称IP 地址服务配置节点角色说明Node1 节点2C/4G192.168.10.13Elasticsearch集群、KibanaES 主节点、Kibana 可视化节点Node2 节点2C/4G192.168.10.14Elasticsearch集群ES 数据节点Apache 节点192.168.10.15Logstash、Apache日志处理节点接收 Filebeat 数据Filebeat 节点192.168.10.16Filebeat轻量日志采集节点采集本地日志9.2 Filebeat 节点部署IP192.168.10.169.2.1 安装 Filebeat支持两种安装方式以下以 RPM 包安装为例# 上传 filebeat-6.6.1-x86_64.rpm 到 /opt 目录cd/opt# 安装 RPM 包rpm-ivh filebeat-6.6.1-x86_64.rpm# 创建软链接便于全局执行 filebeat 命令ln-s /usr/share/filebeat/bin/filebeat /usr/local/bin/操作意义完成 Filebeat 安装确保命令可全局调用。9.2.2 配置 Filebeat 采集日志修改 Filebeat 主配置文件采集本地系统日志并发送到 Logstashvim/etc/filebeat/filebeat.yml核心配置内容# 日志采集配置filebeat.prospectors:-type:log# 采集类型日志文件enabled:true# 启用该采集规则paths:-/var/log/messages# 采集的日志文件路径-/var/log/*.log# 采集 /var/log 目录下所有 .log 日志fields:# 自定义字段标识日志来源便于 ES 筛选service_name:filebeatlog_type:systemservice_id:192.168.10.16# Filebeat 节点 IP# 禁用 Elasticsearch 直接输出改为发送到 Logstash#--------------Elasticsearch output-------------------#output.elasticsearch:# hosts: [localhost:9200]# 配置 Logstash 输出发送到 Apache 节点的 Logstash----------------Logstash output---------------------output.logstash:hosts:[192.168.10.15:5044]# Logstash 节点 IP 和端口5044 为 Beats 输入默认端口配置意义指定采集日志路径、自定义标识字段将日志发送到 Logstash 进行集中处理而非直接写入 ES减轻 ES 写入压力。9.2.3 启动 Filebeat 服务# 启动 Filebeat-e 输出日志到控制台-c 指定配置文件filebeat -e -c /etc/filebeat/filebeat.yml操作意义启动采集服务将本地日志实时发送到 Logstash。9.3 Logstash 节点配置接收 Filebeat 数据IP192.168.10.15创建 Logstash 配置文件接收 Filebeat 发送的数据并输出到 ES# 创建配置文件vim/etc/logstash/conf.d/logstash.conf配置文件内容input{beats{port 5044# 监听 5044 端口接收 Beats 类型数据Filebeat 属于 Beats 家族}}output{elasticsearch{hosts [192.168.10.13:9200]# 输出到 ES 集群index %{[fields][service_name]}-%{YYYY.MM.dd}# 索引名称包含 Filebeat 自定义字段}# 控制台输出调试用生产环境可注释stdout{codec rubydebug}}配置意义通过 Beats 输入插件接收 Filebeat 数据按自定义字段生成索引确保日志来源可追溯。启动 Logstash 加载配置# 启动 Logstash指定配置文件logstash -f /etc/logstash/conf.d/logstash.conf操作意义让 Logstash 监听 5044 端口接收并处理 Filebeat 发送的日志再传输到 ES 存储。9.4 验证 EFLK 架构功能浏览器访问 Elasticsearch-headhttp://192.168.10.13:9100查看是否生成filebeat-YYYY.MM.dd索引访问 Kibanahttp://192.168.10.13:5601创建filebeat-*索引模式点击「Discover」选择filebeat-*索引模式即可查看 Filebeat 采集的日志数据。验证意义确认 EFLK 架构流程通畅Filebeat 采集、Logstash 处理、ES 存储、Kibana 可视化全链路可用。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

这么建设新的网站wordpress子主题插件

🚀 还在为下载游戏烦恼吗? 别担心,OpenFrontIO这款基于浏览器的实时战略游戏让你随时随地都能开启领土征服之旅!无论你是资深RTS玩家还是新手小白,这款开源项目都能为你带来前所未有的游戏体验。 【免费下载链接】Open…

张小明 2026/1/8 0:56:31 网站建设

多语言商城网站开发wordpress免登录发布模块接口

网络故障排查与TCP/IP地址管理全解析 在当今数字化时代,网络连接就如同键盘和咖啡一样,成为了计算机使用中不可或缺的一部分。无论是个人用户还是企业用户,都高度依赖快速可靠的网络访问。然而,网络故障却时常给我们带来困扰。下面将深入探讨网络故障排查以及TCP/IP地址管…

张小明 2026/1/8 0:56:31 网站建设

一个公司只能备案一个网站吗免费店铺logo在线制作

教程 1、登录小米开放者平台,并进入控制台:Xiaomi MiMo 开放平台 2、点击左侧“API-Keys”栏,再创建API-Key 3、启动iFlow-CLI,输入指令/auth,选择第三种登录方式:“OpenAI 兼容 API” 4、在base URL输入框…

张小明 2026/1/8 0:56:39 网站建设

php网站 缓存嘉兴建设公司网站

5个简单步骤:用MouseInc打造你的专属鼠标手势系统 🚀 【免费下载链接】MouseInc.Settings MouseInc设置界面 项目地址: https://gitcode.com/gh_mirrors/mo/MouseInc.Settings 还在为频繁切换窗口、重复点击菜单而烦恼吗?想要通过优雅…

张小明 2026/1/8 0:56:37 网站建设

重庆城市管理学院网站做粥哪个美食网站好

DeepSeek模型高效上云指南:腾讯云TI平台全流程部署详解 【免费下载链接】DeepSeek-V3.2-Exp DeepSeek-V3.2-Exp是DeepSeek推出的实验性模型,基于V3.1-Terminus架构,创新引入DeepSeek Sparse Attention稀疏注意力机制,在保持模型输…

张小明 2026/1/8 0:56:37 网站建设

做网站网络合同wordpress单页下载插件

Langchain-Chatchat 能否支持 SFTP 文件自动拉取? 在企业智能问答系统日益普及的今天,如何让本地知识库“跟上业务节奏”,成为许多技术团队面临的现实挑战。尤其是当企业的核心文档分散在多个远程安全服务器上时,手动上传不仅效率…

张小明 2026/1/8 0:56:38 网站建设