前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >EFK(Elasticsearch+Filebeat+Kibana)日志收集系统

EFK(Elasticsearch+Filebeat+Kibana)日志收集系统

作者头像
互联网-小阿宇
发布于 2022-11-21 11:49:57
发布于 2022-11-21 11:49:57
58900
代码可运行
举报
文章被收录于专栏:互联网-小阿宇互联网-小阿宇
运行总次数:0
代码可运行

EFK简介

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

Beats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然后便可在 Elastisearch 中集中处理数据。如果需要更加强大的处理性能,Beats 还能将数据输送到 Logstash 进行转换和解析。

Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。不仅如此,您还可以使用 Vega 语法来设计独属于您自己的可视化图形。所有这些都利用 Elasticsearch 的完整聚合功能。

Elasticsearch 通常与 Kibana 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 允许你通过 web 界面来浏览 Elasticsearch 日志数据。

EFK架构图

ELK和EFK的区别

ELK 是现阶段众多企业单位都在使用的一种日志分析系统,它能够方便的为我们收集你想要的日志并且展示出来

ELK是Elasticsearch、Logstash、Kibana的简称,这三者都是开源软件,通常配合使用。

1. Elasticsearch -->存储数据

是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写,能对大容量的数据进行接近实时的存储、搜索和分析操作。

2. Logstash --> 收集数据

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

3. Kibana --> 展示数据

数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示。

EFK是ELK日志分析系统的一个变种,加入了filebeat 可以更好的收集到资源日志 来为我们的日志分析做好准备工作。

优缺点

Filebeat 相对 Logstash 的优点:

  • 侵入低,无需修改 elasticsearch 和 kibana 的配置;
  • 性能高,IO 占用率比 logstash 小太多;

当然 Logstash 相比于 FileBeat 也有一定的优势,比如 Logstash 对于日志的格式化处理能力,FileBeat 只是将日志从日志文件中读取出来,当然如果收集的日志本身是有一定格式的,FileBeat 也可以格式化,但是相对于Logstash 来说,效果差很多。

安装环境

此次实验用的一台服务器进行操作 准备安装包,EFK的三个安装包保持相同版本

安装es的节点一定安装java环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
通过yum安装java
[root@localhost ~]# yum search jdk
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
================================================================= N/S matched: jdk =================================================================
copy-jdk-configs.noarch : JDKs configuration files copier
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-headless.x86_64 : The OpenJDK runtime environment without audio and video support
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.i686 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment 8
java-1.8.0-openjdk-accessibility.i686 : OpenJDK accessibility connector
java-1.8.0-openjdk-accessibility.x86_64 : OpenJDK accessibility connector
java-1.8.0-openjdk-demo.i686 : OpenJDK Demos 8
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos 8
java-1.8.0-openjdk-devel.i686 : OpenJDK Development Environment 8
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment 8
java-1.8.0-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 8
java-1.8.0-openjdk-javadoc.noarch : OpenJDK 8 API documentation
java-1.8.0-openjdk-javadoc-zip.noarch : OpenJDK 8 API documentation compressed in a single archive
java-1.8.0-openjdk-src.i686 : OpenJDK Source Bundle 8
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle 8
java-11-openjdk.i686 : OpenJDK Runtime Environment 11
java-11-openjdk.x86_64 : OpenJDK Runtime Environment 11
java-11-openjdk-demo.i686 : OpenJDK Demos 11
java-11-openjdk-demo.x86_64 : OpenJDK Demos 11
java-11-openjdk-devel.i686 : OpenJDK Development Environment 11
java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11
java-11-openjdk-headless.i686 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-headless.x86_64 : OpenJDK Headless Runtime Environment 11
java-11-openjdk-javadoc.i686 : OpenJDK 11 API documentation
java-11-openjdk-javadoc.x86_64 : OpenJDK 11 API documentation
java-11-openjdk-javadoc-zip.i686 : OpenJDK 11 API documentation compressed in a single archive
java-11-openjdk-javadoc-zip.x86_64 : OpenJDK 11 API documentation compressed in a single archive
java-11-openjdk-jmods.i686 : JMods for OpenJDK 11
java-11-openjdk-jmods.x86_64 : JMods for OpenJDK 11
java-11-openjdk-src.i686 : OpenJDK Source Bundle 11
java-11-openjdk-src.x86_64 : OpenJDK Source Bundle 11
java-11-openjdk-static-libs.i686 : OpenJDK libraries for static linking 11
java-11-openjdk-static-libs.x86_64 : OpenJDK libraries for static linking 11
ldapjdk-javadoc.noarch : Javadoc for ldapjdk
icedtea-web.x86_64 : Additional Java components for OpenJDK - Java browser plug-in and Web Start implementation
ldapjdk.noarch : The Mozilla LDAP Java SDK

  名称和简介匹配 only,使用“search all”试试。

查询到版本然后进行安装
[root@localhost ~]# yum -y install java-1.8.0-openjdk
[root@localhost ~]# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)

安装es

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar zxf elasticsearch-6.3.2.tar.gz
mv elasticsearch-6.3.2 /usr/local/es

调整系统文件描述符的软硬限制

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /etc/security/limits.conf
 末尾添加
 打开文件的软限制,ES要求系统文件描述符大于65535
* soft nofile 655360
 打开文件的硬限制
* hard nofile 655360
 用户可用进程数软限制
* soft nproc 2048
 用户可用进程数硬限制
* hard nproc 4096
 JVM能够使用最大线程数
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
sysctl -p 

配置Elasticsearch服务环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
useradd es
mkdir -p /es/{data,logs}  # 日志及数据存放目录
chown -R es:es /usr/local/es /es # 使用es用户启动时,权限不对也会报错

网络对时

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ntpdate ntp.ntsc.ac.cn

重启服务器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
reboot

编辑elasticsearch.yml配置文件,ES默认就是集群模式的,所以只有一个节点也是集群模式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /usr/local/es/config/elasticsearch.yml 
 取消注释
cluster.name: my-application
node.name: node-1
 添加
node.master: true
node.data: true
 取消注释并修改
path.data: /es/data
path.logs: /es/logs
network.host: 192.168.1.10   # 改为本机ip
discovery.zen.minimum_master_nodes: 1 # master的最少节点数
 取消注释
http.port: 9200

安装Kibana

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar zxf kibana-6.3.2-linux-x86_64.tar.gz
mv kibana-6.3.2-linux-x86_64 /usr/local/kibana

修改Kibana配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /usr/local/kibana/config/kibana.yml
 取消注释
server.port: 5601
server.host: "192.168.1.10"
 用来连接es服务
elasticsearch.url: "http://192.168.1.10:9200"

安装Filebeat

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
tar zxf filebeat-6.3.2-linux-x86_64.tar.gz 
mv filebeat-6.3.2-linux-x86_64 /usr/local/filebeat

举例收集nginx的日志 安装nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install epel-release
yum -y install nginx
启动
nginx
查看配置文件
cat /etc/nginx/nginx.conf
得知配置文件存放在/var/log/nginx/*.log
访问测试

整合环境 修改filebeat配置文件,将本机的nginx日志文件打标签为nginx,方便elasticsearch来创建索引

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vim /usr/local/filebeat/filebeat.yml
 添加注释
 filebeat.inputs:
 - type: log
 paths:
    - /var/log/*.log
 添加以下内容为inputs配置
filebeat:
  prospectors:
    - type: log
      paths:
        - /var/log/nginx/*.log
      tags: ["nginx"]
 修改
  enabled: true # 表示以上配置是否生效
修改
setup.kibana:
  host: "192.168.1.10:5601" #kibana的主机ip

 output.elasticsearch:
  hosts: ["192.168.1.10:9200"] #es主机的ip

进行启动

  • es
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
su es
/usr/local/es/bin/elasticsearch
  • filebeat
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
  • kibana
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/usr/local/kibana/bin/kibana

各个服务启动之后阻塞信息都是INFO就没问题,遇到WARN是no route的就关闭防火墙或者放行端口

在访问kibana的ip:5601,http://192.168.1.10:5601

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
CVPR 2020 论文大盘点-实例分割篇
本文盘点CVPR 2020 所有实例分割(Instance Segmentation)相关论文(语义分割在这里,不含全景分割、医学图像分割、交互式分割等,以上将会另行总结),总计18篇,对文献进行了分类汇总,希望对大家有帮助。
CV君
2020/06/28
9720
CVPR 2020 论文大盘点-实例分割篇
CVPR 2020 论文大盘点-全景分割与视频目标分割篇
今天的内容关注于全景分割(Panoptic Segmentation)和视频目标分割(Video Object Segmentation,VOS)。
CV君
2020/06/28
9700
CVPR 2020 论文大盘点-全景分割与视频目标分割篇
CVPR 2020 论文大盘点-人体姿态估计与动作捕捉篇
本文盘点CVPR 2020 所有人体姿态估计(Human Pose Estimation)、手势识别(Gesture Recognition)、人体形状与姿态估计(Human Shape and Pose Estimation)、人体运动捕捉(Human Motion Capture)相关论文,总计27篇,对文献进行了分类汇总,希望对大家有帮助。
CV君
2020/06/28
3.6K0
CVPR 2020 论文大盘点-人体姿态估计与动作捕捉篇
CVPR 2020 论文大盘点—目标跟踪篇
最大的特点是目标跟踪技术正在向目标的像素级跟踪(video object Segmentation 视频目标分割)发展,有7篇相关文献;另外更加实用的多目标跟踪(Multi-Object Tracking)也很受关注,有7篇文章;大家常见的单目标跟踪有10篇,自动驾驶中3D目标跟踪有3篇,其他细分的跟踪详见下文。
CV君
2020/06/19
1.2K0
CVPR 2020 论文大盘点-行人检测与重识别篇
行人检测的论文不多,总计 5 篇,从内容看解决行人与行人、行人与物体间的遮挡是研究的重点。
CV君
2020/06/19
2.1K0
CVPR 2020 论文大盘点-文本图像篇
本文盘点CVPR 2020 所有文本图像(text)相关论文,主要分为手写文本和场景文本两大方向,总计16篇,对文献进行了细致的分类,大部分论文是围绕识别问题的研究。
CV君
2020/06/28
9260
CVPR 2020 论文大盘点-文本图像篇
CVPR 2020 论文大盘点-超分辨率篇
这21篇文章中方向以做图像超分辨率居多有10篇,视频超分辨率3篇,人脸超分辨率2篇,特定领域超分辨率即深度图、光场、高光谱图像超分辨率各1篇,零样本超分辨率1篇,探索专用于超分辨率的数据增广方法的1篇,最后还有一篇超分辨率技术的有趣应用:语义分割1篇。
CV君
2020/06/19
1.3K0
推荐几篇新出的 CVPR 2021开源论文,含图像分割、域适应、图像检索、视线估计等
本文分享几篇近期值得关注的 CVPR 2021 的开源论文,包括图像到图像翻译、全景分割、语义分割、域适应、图像检索、无监督学习,以及一篇关于首次对从人们相互注视的图像/视频中学习弱监督的三维视线范式(LAEO)的研究。
CV君
2021/06/08
1.2K0
推荐几篇新出的 CVPR 2021开源论文,含图像分割、域适应、图像检索、视线估计等
CVPR 2019 论文大盘点—文本图像相关篇
其中研究文本检测的最多,共 7 篇,包括已经非常知名的PSENet,还有最近异常火爆的CRAFT。
CV君
2019/12/27
6720
CVPR 2020 论文大盘点-人脸技术篇
本文盘点CVPR 2020 所有人脸相关论文,总计64篇,涵盖方向众多,传统方向比如人脸识别、检测等依旧是研究的重点,除此之外,人脸生成、编辑,人脸反欺骗也有众多工作,一方面是研究如何造假脸,一方面是如何识别造假。也是蛮有意思的。
CV君
2020/06/15
1.9K0
CVPR 2020 论文大盘点-语义分割篇
图像分割应用广泛,在CVPR 2020 论文中所占比例很高,可说是一大热门,有110多篇相关论文,本文盘点CVPR 2020 所有语义分割(Semantic Segmentation)相关论文(不含实例分割、全景分割、医学图像分割、交互式分割等,以上将会另行总结),总计37篇,对文献进行了分类汇总,希望对大家有帮助。
CV君
2020/06/28
1.9K0
CVPR 2020 论文大盘点-语义分割篇
CVPR 2020 论文大盘点-遥感与航拍影像处理识别篇
本文总结CVPR 2020 中所有遥感与航拍(Remote Sensing、Aerial Image)影像处理识别相关论文,总计 18 篇。
CV君
2020/07/09
1.5K0
CVPR 2020 论文大盘点-图像修复Inpainting篇
图片来自 https://sites.google.com/site/gachoncvip/projects/image-inpainting
CV君
2020/07/03
1.8K0
ECCV 2020 谷歌论文盘点—Poster 篇
今天盘点Poster中的谷歌论文,总计27篇,从这些论文中可看出,谷歌很重视自动驾驶,多篇论文为自动驾驶领域,目标检测、NAS、数据增广方法等也是研究的重点。
CV君
2020/09/15
8710
CV Code|计算机视觉开源周报20200501期
[1]Streaming Object Detection for 3-D Point Clouds
CV君
2020/05/20
7190
ECCV 2020论文大盘点-3D目标检测篇
[1].Generative Sparse Detection Networks for 3D Single-shot Object Detection
小白学视觉
2020/09/30
7820
ECCV 2020论文大盘点-3D目标检测篇
CVPR 2020 论文大盘点-光流篇
图片来自 https://github.com/PharrellWANG/optical-flow-visualization
CV君
2020/07/13
1.6K0
CVPR 2020 论文大盘点-目标检测篇
LiDAR-Based Online 3D Video Object Detection With Graph-Based Message Passing and Spatiotemporal Transformer Attention
CV君
2020/06/19
1.6K0
ECCV 2020 Spotlight 谷歌论文大盘点
本文继续盘点谷歌 Spotlight 中论文,看看工业界巨头都在关注什么方向,取得了哪些突破。该部分论文总计 12 篇,
CV君
2020/09/15
7150
CVPR 2020 论文大盘点-图像与视频检索篇
本文总结CVPR 2020 中所有与图像和视频检索(Image and Video Retrieval)相关论文,总计 16 篇。
CV君
2020/07/09
1.3K0
推荐阅读
相关推荐
CVPR 2020 论文大盘点-实例分割篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档