ITPub博客

首页 > 数据库 > 数据库开发技术 > EFK真的比ELK强吗?

EFK真的比ELK强吗?

原创 数据库开发技术 作者:运维book思议 时间:2023-03-14 11:34:32 0 删除 编辑

先放个链接,万一有人关注呢

优质文章推荐

↓ ↓ ↓ ↓ ↓

Linux系统初始化脚本

能够监控100台服务器的磁盘利用率的脚本——16行代码实现

Linux系统初始化脚本之二

Linux系统巡检脚本——快速获取当前系统信息

Linux远程执行脚本——Python运维脚本

哪个Linux发行版会成为CentOS的平替?

ELK与EFK

ELK由Elasticsearch、Logstash和Kibana三个开源软件组成,它们分别负责数据存储、数据处理和数据可视化。其中,Logstash是数据处理管道,它可以从多种数据源中提取、转换和加载数据,最终将数据存储到Elasticsearch中;Kibana则是数据可视化工具,它可以让用户轻松地对存储在Elasticsearch中的数据进行查询、分析和可视化。

EFK由Elasticsearch、Fluentd和Kibana三个开源软件组成,它们也分别负责数据存储、数据处理和数据可视化。其中,Fluentd是数据处理管道,它可以从多种数据源中提取、转换和加载数据,最终将数据存储到Elasticsearch中。

相比于ELK,EFK的优势在于:

  1. Fluentd比Logstash更加轻量级:Fluentd是使用Ruby语言编写的轻量级数据处理管道,而Logstash是使用Java语言编写的重量级数据处理管道。因此,Fluentd在处理大量数据时更加高效,并且占用的系统资源更少。

  2. Fluentd更加灵活:Fluentd具有更加灵活的插件架构,可以轻松地扩展和定制数据处理管道。与此相比,Logstash的插件体系结构更加复杂,扩展和定制难度更大。

  3. Fluentd支持多种数据源:Fluentd可以从多种数据源中提取和处理数据,包括文件、日志、TCP、UDP、HTTP等,而Logstash则主要支持日志数据的处理。

  4. Fluentd更加容易配置:Fluentd的配置文件使用YAML格式,更加易于理解和编辑。与此相比,Logstash的配置文件使用JSON格式,配置更加繁琐。

所以,EFK在数据处理的效率、灵活性和易用性方面优于ELK。当然,在实际应用中,还需要根据具体的需求和环境来选择适合自己的日志管理系统。

EFK部署方式

1、在每个主机上安装Docker和Docker Compose。

$ sudo yum install docker docker-compose

2、在任何一个主机上创建一个目录,用于存储Elasticsearch、Fluentd和Kibana的配置文件和数据。

$ mkdir /opt/efk$ cd /opt/efk

3、创建docker-compose.yaml文件,并使用以下内容填充它:

version: '3'
services: elasticsearch: image: elasticsearch:7.0.0 container_name: elasticsearch environment: - "discovery.type=single-node" ports: - "9200:9200" - "9300:9300" volumes: - ./data/elasticsearch:/usr/share/elasticsearch/data
fluentd: image: fluent/fluentd-kubernetes-daemonset:v1.3-debian-elasticsearch7-1.0 container_name: fluentd volumes: - ./conf/fluent.conf:/fluentd/etc/fluent.conf - ./logs:/fluentd/log environment: - FLUENT_UID=1000 links: - elasticsearch
kibana: image: kibana:7.0.0 container_name: kibana ports: - "5601:5601" environment:      - "ELASTICSEARCH_URL=http://elasticsearch:9200"
该文件使用Docker Compose创建三个服务:Elasticsearch、Fluentd和Kibana。这些服务分别运行在不同的容器中,并通过网络连接。
4、创建Elasticsearch配置文件elasticsearch.yml。
$ vi ./data/elasticsearch/elasticsearch.yml

将以下内容添加到配置文件中:

cluster.name: my-clusternode.name: node-1network.host: 0.0.0.0discovery.seed_hosts: ["elasticsearch"]cluster.initial_master_nodes: ["node-1"]

5、创建Fluentd配置文件fluent.conf。

$ vi ./conf/fluent.conf

将以下内容添加到配置文件中:

<source>  @type forward  port 24224  bind 0.0.0.0</source>
<match **> @type elasticsearch hosts elasticsearch:9200 index_name fluentd type_name fluentd logstash_format true logstash_prefix fluentd</match>

6、在所有主机上启动EFK服务。

$ sudo docker-compose up -d

7、现在可以通过浏览器访问任何一个主机的Kibana服务并查看日志了。在浏览器中输入以下URL:

http://<IP_ADDRESS_OF_ANY_HOST>:5601

如果需要添加更多主机以扩展EFK集群,请重复步骤1-6,并使用相同的elasticsearch配置(步骤4)和相同的fluentd配置(步骤5)连接到现有集群。

结束!

谢谢你这么好看还关注我

原文作者:运维book思议;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2022-09-24

  • 博文量
    333
  • 访问量
    215306