Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse

这篇具有很好参考价值的文章主要介绍了Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse

一、ELK概述:

ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。

Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。 本项目中主要通过Elasticsearch存储所有获取的日志。

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

Kibana: 数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。

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

Redis:NoSQL数据库(key-value),也数据轻型消息队列,不仅可以对高并发日志进行削峰还可以对整个架构进行解耦。

二、新型ELK框架

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

三、部署过程

1、客户端安装filebeat

早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。

Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

(2)filebeat的工作原理

启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

工作流程图如下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

从图中所示,filebeat结构:由两个组件构成,分别是inputs(输入)和harvesters(收集器),这些组件一起工作来跟踪文件并将事件数据发送到您指定的输出,harvester负责读取单个文件的内容。harvester逐行读取每个文件,并将内容发送到输出。为每个文件启动一个harvester。harvester负责打开和关闭文件,这意味着文件描述符在harvester运行时保持打开状态。如果在收集文件时删除或重命名文件,Filebeat将继续读取该文件。这样做的副作用是,磁盘上的空间一直保留到harvester关闭。默认情况下,Filebeat保持文件打开,直到达到close_inactive。

关闭harvester可以会产生的结果:

文件处理程序关闭,如果harvester仍在读取文件时被删除,则释放底层资源。

只有在scan_frequency结束之后,才会再次启动文件的收集。

如果该文件在harvester关闭时被移动或删除,该文件的收集将不会继续。

(3)filebeat的安装

通过wget获取filebeat的tar.gz包。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.6.2-linux-x86_64.tar.gz

命令执行结果如下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

在/home目录下建立filebeat目录,然后把filebeat的压缩包解压到目录filebeat下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

解压后,在/usr/filebeat的对应版本filebeat目录下,编辑file--beat.yml文件。

修改的内容有加几个字段。

enabled:true
paths:程序日志路径
output.redis:日志输出地方
hosts:redis所在服务器IP
port:redis端口
key:redis中的key

①filebeat.input中的enabled改为true

②注意input的paths:-/var/log/*.log,其目的监控var中的log日志。

③将output.elasticsearch内容注释。将输出内容输出到redis中,redis数据的key值是filebeat,输出参数中的db是写入redis数据库中是哪一个库。

内容如下。

 linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

接下来停止防火墙。

systemctl disable firewalld.service
systemctl stop firewalld.service

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

再关闭selinux。

进入到etc,再进入到selinux目录下,编辑config文件,注释掉SELINUX相关内容。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

2、安装redis

yum install -y redis

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

安装成功后,如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

然后,进入etc目录下,编辑redis.conf文件。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

将地址绑定设定为0.0.0.0,即任何地址IP都可以登录redis。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

启动filebeat。

在filebeat的目录下执行:

./filebeat -e -c filebeat.yml

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

然后启动redis,主要是查看filebeat的log数据是否被redis接收。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

redis-cli进入redis 的命令行方式。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

进入redis查看是否有数据

keys *可以看看所有key,此操作为慢查询,若redis跑了大量线上业务请不要进行此操作。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

lrange filebeat 0 -1 查询key所有的数据,若filebeat启动时间过长请勿进行此操作。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

3、安装jdk

首先在/usr中创建目录java。如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

然后在/home/soft目录下将jdk的tar包解压到/usr的java目录下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

在/etc目录下编辑profile文件,设置环境变量。 

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

接下来,source一下profile文件,使设置生效。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

4、安装elasticsearch

在/home/soft 目录下拷贝elasticsearch文件夹,将文件夹拷贝到/usr目录下并重命名elasticsearch。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

因为root用户不能启动,所以需要创建一个ES用户。

创建用户使用

useradd es

如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

给用户添加密码使用

passwd es

如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

给用户授权。

chown -R es:es elasticsearch

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

接下来切换用户。

su es

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

在elasticsearch目录下编辑文件elasticsearch.yml

将xpack.security.enabled和xpack.security.http.ssl设为false

如下图。

#ES监听地址任意IP都可访问
network.host: 0.0.0.0
http.port: 9200
 
#若是集群,可在里面引号中添加,逗号隔开
discovery.zen.ping.unicast.hosts: [“192.168.3.205”]
 
# enable cors,保证_site类的插件可以访问es 
http.cors.enabled: true #手动添加
http.cors.allow-origin: “*” #手动添加

进入elasticsearch的文件夹,启动elasticsearch,需要注意的是启动elasticsearch需要注意bin下面elasticsearch文件的执行权限。

两点:

(1)切换到es用户。su es

(2)为elasticsearch添加执行权限

Chmod +X elasticsearch

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

接下来,启动elasticsearch就可以启动elasticsearch程序了。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

不过启动时,报错。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

其原因在于虚拟机内存太小。需要设置etc下的文件sysctl.conf文件。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

在文件的最后一行添加内容,vm.maxmapcount=262144

设置虚拟机内存的大小后,再次重启机器,启动./elasticsearch,最终启动elasticsearch的结果如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

至此,elasticsearch已启动成功。

5、安装logstash

首先在usr的目录下建立文件夹logstash

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

把home目录下soft目录下的logstash的压缩包解压到/usr/logstash目录下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

解压后可以测试logstash,测试脚本如下。

logstash -e “input {stdin{}} output {stdout{}}”

Stdin是基本的输入,stdout是基本的输出。

注意,logstash也需要jdk8.0的支持。在centos中的logstash目录的bin目录下,执行./logstash。执行测试指令如下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

此时输入任何一个语句,输出当前时间及后面的语句。如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

这里可以将输出限定为指定的格式。

logstash -e “iniput{stdin{}} output {stdout{codec=>rubydebug}}”

这里的输出code=>rubydebug指出了一种特定的输出格式。

如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

从图中所示,logstash已经显示Successfully started,表示logstash已经启动成功。

输入”this is a book”,输出会有一定的格式,如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

设定logstash的输入为Redis,输出为ES,将此设置存储成文件,文件内容如下。

input{
    redis{
      port=>”6379”
      host=>”192.168.110.150”,
      data_type=>”list”,
      type=>”log”,
      key=>”filebeat”
    }
}
output{
    elasticsearch{
        host=>”192.168.110.150:9200”
        index=>”logstash1-%{+YYYY.MM.dd}”
    }
}

logstash加载文件可以通过-f来实现。具体执行指令如下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

最终显示started,如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

6、检查redis中的keys值,是否被logstash取走。

打开终端,进入redis-cli,在命令行中输入keys *,可以查看log日志是否被logstash取走。如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

可以发现,redis终端中的“filebeat”键已经被logstash取走。

7、验证ES是否接收到数据。

使用curl指令查看ES中是否已接收到数据。

curl http://192.168.110.150:9200/_search?pretty

如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

从结果上看,logstash已经把数据推送到ES中。

8、安装node.

安装node是安装elasticsearch-head的前提条件。

安装node可以使用yum install -y nodejs,如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

安装后,可以使用node -v查看安装是否成功。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

安装nodejs后,安装npm

yum install -y npm

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

安装后,可以验证npm的版本号

npm -v

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

9、安装elasticsearch-head插件

进入home/soft中的elasticsearch-head-master的文件夹。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

 

然后执行npm install方法,安装elasticsearch-head插件。

安装结束后,npm run start启动elasticsearch-head的服务。

10、安装kibana

解压目录文件,把home/soft目录中的kibana压缩文件解压到/usr的kibana目录下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

解压成功后,在usr/kibana目录下有一个文件kibana-5.3.1-x86_64,在其目录下有一个配置目录config。编辑其下面的配置文件kibana.yml。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

在kabana.yml打开一些配置前的#号,并修改内容如下。

  linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

注意配置文件中,每个“:”号后面有空格。

最后启动kibana服务,进入到/usr/kibana目录下,再进入kibana-5.3.1-linux-x86_64,再进入bin目录中,使用./kibana命令,启动kibana。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

访问http://192.168.110.150:5601,出现kibaba的界面如下。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

过一阵,kibana页面发生变化。如下图所示。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

在Index name or pattern中输入与ES中索引相匹配的ES数据。同时选择Time-fileld-name,Time-field-name会存在默认项。点击“create”进入下一项。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

通过地址http://192.168.110.150:5601/status可以查看kibana的运行情况。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

正常情况下,点击Discover可以显示具体的图像。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

 

异常情况如下图。

linux搭建filebeat,大数据,数据采集,elk,redis,大数据,logstash,elasticsearch

至此,设置结束。 文章来源地址https://www.toymoban.com/news/detail-527581.html

到了这里,关于Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Elk+Filebeat+Kafka实现日志收集

    Elk+Filebeat+Kafka实现日志收集

    1.实验组件 2.安装前准备 3.安装Zookeeper 1.安装Kafka 2.命令行测试  1.安装Filebeat 2.时间同步 3.配置filebeat 4.配置logstash 1.安装配置filebeat 2.配置logstash

    2024年02月05日
    浏览(14)
  • 搭建EFK(Elasticsearch+Filebeat+Kibana)日志收集系统[windows]

    搭建EFK(Elasticsearch+Filebeat+Kibana)日志收集系统[windows]

    EFK简介 Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。 FileBeats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然

    2024年02月08日
    浏览(11)
  • 【Elastic (ELK) Stack 实战教程】06、Filebeat 日志收集实践(下)

    【Elastic (ELK) Stack 实战教程】06、Filebeat 日志收集实践(下)

    目录 一、Filebeat 收集 Nginx 日志实践 1.1 为什么收集 Nginx 日志 1.2 Nginx 日志收集架构图 1.3 Nginx 日志收集实践 1.3.1 安装 Nginx  1.3.2 配置 filebeat 1.3.3 kibana 展示 1.4 Nginx json 日志收集实践 1.4.1 收集问题 1.4.2 解决方案 1.4.3 配置 json 1.4.4 配置 Filebeat 1.4.5 Kibana 展示 1.5 Nginx 多个日志收

    2024年02月01日
    浏览(11)
  • 使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

    使用ELK(ES+Logstash+Filebeat+Kibana)收集nginx的日志

    书接上回:《ELK中Logstash的基本配置和用法》 默认情况下,Nginx的日志记录的是下面的格式: 在 nginx.conf 中也可以看到相关配置信息: 现在为了方便收集日志,我们把这里的格式改为 json格式,在 nginx.conf 中加入下面的内容: 以上配置是手动组装了一个json格式的配置信息。

    2024年02月11日
    浏览(13)
  • ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

    ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

    节点名称 节点名称 ip地址 kibana kibana 10.0.0.100 elasticsearch elasticsearch 10.0.0.101 filebeat filebeat 10.0.0.102 elasticsearch、Kibana、metricbeat、filebeat版本要一致,如都是7.17.5版本 1.2.1 安装elasticsearch CPU 2C 内存4G或更多 1.2.2 安装 Kibana 1.2.3 安装metricbeat 1.2.3 安装filebeat 1.2.4 安装Nginx 1.2.5 安装t

    2024年02月09日
    浏览(11)
  • 系统学习Linux-ELK日志收集系统

    系统学习Linux-ELK日志收集系统

    ELK日志收集系统集群实验 实验环境 角色 主机名 IP 接口 httpd 192.168.31.50 ens33 node1 192.168.31.51 ens33 noed2 192.168.31.53 ens33 环境配置 设置各个主机的ip地址为拓扑中的静态ip,并修改主机名 安装elasticsearch node1 vim /etc/elasticsearch/elasticsearch.yml  node2 移动到elk文件夹 修改elasticsearch配置文

    2024年02月10日
    浏览(10)
  • 基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

    基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

           先准备3台Nginx服务器,用做后端服务器,(由于机器有限,也直接用这三台机器来部署ES集群),然后准备2台服务器做负载均衡器(Nginx实现负载均衡具体实现操作有机会在介绍),如果是简单学习测试,可以先使用3台Nginx服务器就可以,先告一段落。 3台Nginx服务

    2024年02月15日
    浏览(14)
  • ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

    ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

    学习如何从头开始搭建和部署ELKF日志系统,利用Elasticsearch、Logstash、Filebeat和Kibana来实现高效的数据采集、处理和可视化展示。跟随本教程,轻松构建稳定的日志系统。

    2024年02月05日
    浏览(8)
  • 基于Filebeat、Kafka搭建ELK日志分析平台详细步骤

    基于Filebeat、Kafka搭建ELK日志分析平台详细步骤

    写在前头:公司一直没有搭建一个支持实时查询日志的平台,平常看日志都得去服务器下载,大大降低开发效率,前段时间有大佬同事搭建了一款日志平台,支持sit,uat等各个环境的日志实时查询,大大提高bug定位速度。因对其感兴趣特向大佬请教,学习记录下搭建流程。 选

    2024年02月06日
    浏览(15)
  • ELK+FileBeat日志分析系统

    ELK+FileBeat日志分析系统

    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎

    2024年02月08日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包