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

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

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环境

通过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

tar zxf elasticsearch-6.3.2.tar.gz
mv elasticsearch-6.3.2 /usr/local/es

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

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服务环境

useradd es
mkdir -p /es/{
data,logs}  # 日志及数据存放目录
chown -R es:es /usr/local/es /es # 使用es用户启动时,权限不对也会报错

网络对时

ntpdate ntp.ntsc.ac.cn

重启服务器

reboot

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

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

tar zxf kibana-6.3.2-linux-x86_64.tar.gz
mv kibana-6.3.2-linux-x86_64 /usr/local/kibana

修改Kibana配置文件

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

tar zxf filebeat-6.3.2-linux-x86_64.tar.gz 
mv filebeat-6.3.2-linux-x86_64 /usr/local/filebeat

举例收集nginx的日志
安装nginx

yum -y install epel-release
yum -y install nginx
启动
nginx
查看配置文件
cat /etc/nginx/nginx.conf
得知配置文件存放在/var/log/nginx/*.log
访问测试

在这里插入图片描述

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

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
su es
/usr/local/es/bin/elasticsearch
  • filebeat
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
  • kibana
/usr/local/kibana/bin/kibana

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

在访问kibana的ip:5601,http://192.168.1.10:5601
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/101840.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 通过进程名获取 窗口句柄

    通过进程名获取 窗口句柄HWNDFindMainWindow(unsignedintprocessID){structHANDLE_DATA{unsignedintprocessID;HWNDhandle;}data;data.processID=processID;data.handle=0;staticautoIsMainWindow=[](HWNDhandle)->BOOL{.

  • 基于云平台的物联网架构和原理设计_物联网的架构

    基于云平台的物联网架构和原理设计_物联网的架构基于云平台的物联网架构和原理云的服务架构云计算是通过各种技术手段服务客户的一种方式,包括三层服务模式,即最底层的IaaS(基础设施即服务),中间层的PaaS(平台即服务),和顶层的SaaS(软件即服务)。IaaS:最底层,为客户提供基础设施资源,包括计算、存储、网络等,这是构建云平台和云应用的硬件支撑,同时它本身作为一种服务,面向使用者(如单纯的存储数据)和开发者(如使用服务器)。P…

  • 周鸿祎说腾讯_周鸿祎的3Q

    周鸿祎说腾讯_周鸿祎的3Q6月10日老杳吧的一个手机厂商聚会上,奇虎360董事长周鸿祎有一段很有意思的发言。他用充满煽动性的语言对手机厂商们描述了市场环境、分析了自己的“敌人”小米科技和整个互联网的“敌人”腾讯,并极力为自己的360手机合作平台招徕伙伴。他对在场的手机和相关硬件生产商说,“现在所有的互联网公司在琢磨怎么做手机的同时,我觉得手机公司应该琢磨自己怎么转型。” 酷派、中兴、华为一年出多少手机,这个量比小米

  • sqrt mysql_详解MySQL中的SQRT函数的使用方法_MySQL

    sqrt mysql_详解MySQL中的SQRT函数的使用方法_MySQLMySQL的SQRT函数是用来计算出任何数量的平方根。可以使用SELECT语句找出方检定根的任意数如下:mysql>selectSQRT(16);+———-+|SQRT(16)|+———-+|4.000000|+———-+1rowinset(0.00sec)所看到的浮点值,因为内部MySQL将处理浮点数据类型的平方根。可以使用SQRT…

  • MATLAB绘图怎么变得更好看[通俗易懂]

    MATLAB绘图怎么变得更好看[通俗易懂]同样用的都是MATLAB,为啥大佬们画的图都那么好看,而你画的图都是简单、普通,那是因为我们掌握的基础元素不一样,只有掌握了最基本的基础元素,再加上日益增长的审美,才会有一张好图出来。二维绘图 函数名 说明 plot 基本的线性坐标绘图 loglog X-Y轴双对数坐标绘图 …

  • Db4o数据库:细说查询[通俗易懂]

    Db4o数据库:细说查询[通俗易懂]通过第一篇的介绍,相信大家也对Db4o有一定的了解,接下来就详细说一下有关查询的话题。Db4o原生支持3中查询模式:Query-By-Example:简称QBE,根据模板类进行匹配查询,这是最简单的一种模式NativeQuery:简称NQ,Db4o推荐的查询模式TheSODAAPI:这是Db4o底层查询API,官网文档解释,此API提供向后的兼容性,适用于动态

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号