ELK 企业级日志分析系统

目录

一、ELK 简介

filebeat 结合 logstash 带来好处

缓存/消息队列(redis、kafka、RabbitMQ等)

Fluentd

为什么要使用 ELK

二、完整日志系统基本特征

ELK 的工作原理

三、部署ELK集群部署

第一步 关闭防火墙和安全机制

第二步  给节点服务器设置地址映射关系

第三步 查看JDK是否安装

第四步 给节点服务器安装ES

第五步 加载系统服务

第六步 备份并修改配置文件

第七步 查看取消注释的行

第八步 给两个Node节点创建存放路径并授权

第九步 启动服务器并查看

第十步 用浏览器访问查看

第十一步 安装 Elasticsearch-head 插件

第十二步 编译安装Node

第十三步 安装Phantomjs框架

第十四步  安装Elasticsearch-head

第十五步 修改Elasticsearch主配置文件

第十六步 重启ES服务

第十七步  启动ES-head服务

第十八步 浏览器访问测试

第十九步 插入测试索引

第二十步 查看索引信息

第二十一步 安装Apache节点服务

第二十二步  启动HTTP服务

第二十三步 安装Java环境

第二十四步 安装并启动Logstash服务

第二十五步  加入系统识别服务

第二十六步 使用Logstash把信息写入ES当中

第二十七步 将Logstash日志写入到ES指定IP地址

第二十八步 刷新浏览器访问

第二十九步  给日志文件赋权

第三十步 编写配置文件

第三十一步 重启Logstash服务

第三十二步 再次查看刷新指定ES地址

四、ELK中部署Kibana可视化界面

第一步  在Node1节点服务器中安装部署Kibana

第二步 修改配置文件

第三步 启动Kibana服务

第四步 用浏览器访问测试

第五步 编写配置文件

第六步 执行指定文件

第七步 用浏览器访问测试


一、ELK 简介

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

●ElasticSearch:是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。

Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与Elasticsearch 通信。

Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。
1秒

●Kiabana:Kibana 通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。

●Logstash:作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。

Logstash 由 Ruby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。

相对  input(数据采集)  filter(数据过滤)  output(数据输出) 

可以添加的其它组件

●Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进或是直接发给

Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。行解析

filebeat 结合 logstash 带来好处

① 通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力

② 从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取

③ 将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件

④ 使用条件数据流逻辑组成更复杂的处理管道

缓存/消息队列(redis、kafka、RabbitMQ等)

可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

Fluentd

是一个流行的开源数据收集器。由于 logstash 太重量级的缺点,Logstash 性能低、资源消耗比较多等问题,随后就有 Fluentd 的出现。相比较 logstash,Fluentd 更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为 logstash 的一种替代方案,常应用于 EFK 架构当中。在 Kubernetes 集群中也常使用 EFK 作为日志数据收集的方案。

在 Kubernetes 集群中一般是通过 DaemonSet 来运行 Fluentd,以便它在每个 Kubernetes 工作节点上都可以运行一个 Pod。 它通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,在该集群中对其进行索引和存储。

为什么要使用 ELK

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。
一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

二、完整日志系统基本特征

收集:能够采集多种来源的日志数据

传输:能够稳定的把日志数据解析过滤并传输到存储系统

存储:存储日志数据

分析:支持 UI 分析

警告:能够提供错误报告,监控机制

ELK 的工作原理

① 在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。

② Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

③ Elasticsearch 对格式化后的数据进行索引和存储。

④ Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。

三、部署ELK集群部署

Node1节点(2C/4G):node1/192.168.8.130                    Elasticsearch  Kibana

Node2节点(2C/4G):node2/192.168.8.140                    Elasticsearch

Apache节点:Apache/192.168.8.200                        Logstash  Apache

第一步 关闭防火墙和安全机制

命令:systemctl stop firewalld

setenforce 0

第二步  给节点服务器设置地址映射关系

命令:echo "192.168.8.130 node1" >> /etc/hosts

echo "192.168.8.140 node2" >> /etc/hosts 

第三步 查看JDK是否安装

命令:java -version

第四步 给节点服务器安装ES

命令:rpm -ivh elasticsearch-5.5.0.rpm

第五步 加载系统服务

命令:systemctl daemon-reload    
systemctl enable elasticsearch.service

第六步 备份并修改配置文件

命令:cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ELK(Elasticsearch、Logstash、Kibana)是一个开源的日志管理和分析平台,能够帮助企业收集、存储、搜索、分析和可视化各种类型的日志数据。而Kafka是一个高吞吐量的分布式消息队列系统,可以用来收集和传输大规模的日志数据。Reyslog是一个开源的日志收集器,可以帮助企业从各种不同的数据源中收集日志数据。Filebeat是一个轻量级的日志收集工具,可以帮助企业从各种不同的文件中收集日志数据。 以下是ELK+kafka+reyslog+filebeat企业级部署的步骤: 1. 安装和配置Elasticsearch、Logstash和Kibana,并确保它们能够正常运行。可以使用docker-compose等工具来简化部署过程。 2. 安装和配置Kafka,并创建一个主题(topic)用于存储日志数据。 3. 安装和配置Reyslog,并将其配置为从各种不同的数据源中收集日志数据,并将其发送到Kafka主题(topic)中。 4. 安装和配置Filebeat,并将其配置为从各种不同的文件中收集日志数据,并将其发送到Kafka主题(topic)中。 5. 在Kibana中创建一个索引(index),并定义一个包含所有必需字段的映射(mapping)。然后,使用Logstash来将从Kafka主题(topic)中接收到的日志数据转换为适合索引(index)的格式,并将其存储在Elasticsearch中。 6. 在Kibana中创建一个仪表板(dashboard),并使用其可视化功能来呈现和分析日志数据。可以使用各种不同的可视化插件来创建自定义可视化效果。 7. 部署整个系统,并定期监控其性能和可用性,以确保其正常运行。 总之,ELK+kafka+reyslog+filebeat企业级部署需要进行一系列复杂的配置和设置,需要具备一定的技术知识和实践经验。建议企业可以考虑使用专业的日志管理和分析平台,如Splunk等,以简化部署和管理过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值