• 64ELK日志分析系统


    ELK日志分析系统

    ELK日志分析系统简介

    日志服务器:提高安全性,集中存放日志;
    缺陷:对日志的分析困难。

    ELK日志分析系统

    是基于lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。是用java开发的,可以通过restful web 接口,让用户可以通过浏览器和elasticsearch通信。
    elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,运行进行全文 、结构化搜索,他通常用于索引和搜索大容量的日志数据,也可以用于搜索许多不同类型的文档。

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

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

    • Kibana

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

    image-20220829111241115

    image-20220829100023732

    可以添加的其他组件:

    • filebeat

    轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装filebeat,并指定目录与日志格式,filebeat就能快速收集数据,并发送给logstash进行解析,或是直接发给elasticsearch存储,性能上相比运行与JVM上的logstash优势显示,是对它的替代。常应用于EFLK架构当中。

    filebeat结合logstash带来好处:

    1)通过logstash具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻elasticsearch持续写入数据的压力。
    2)从其他数据源(列如数据库,S3对象存储或消息传递队列)或写入文件
    3)将数据发送到多个目的地,列如S3,HDFS (Hadoop分布式文件 系统) 或写入文件
    4)使用条件数据流逻辑组成更复杂的处理管道

    缓存/消息队列(redis、kafka、rabbitMQ): 可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

    • fluentd

    是一个流行的开源数据收集器。由于logstash太重量级的缺点,logstash性能低,logstash性能低、资源消耗比较多等问题,随后就有fluented的出现。

    相比较logstash,Fluentd更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为logstash的一种替代方案,常应用于EFK架构当中。在Kubernetes集群中也常使用EEK作为日志数据收集的方案在Kubernetes集群中一般是通过Daemonset来运行Fluentd,以便它在每个Kubdrnetes工作节点上都可以运行一个Pod。
    它通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到Elasticsearch集群,在该集群中对其进行索引和存储。

    为什么要是用ELK

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

    往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

    一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

    日志处理步骤

    1.将日志进行集中化管理
    2.将日志格式化(Logstash)并输出到Elasticsearch
    3.对格式化后的数据进行索引和存储(Elasticsearch)
    4.前端数据的展示(Kibana)

    image-20220829094044363

    完整日志系统基本特征

    收集:能够采集多种来源的日志数据
    传输:能够稳定的把日志数据解析过滤并传输到存储系统
    存储:存储日志数据
    分析:支持 UI 分析
    警告:能够提供错误报告,监控机制

    ELK 的工作原理

    (1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。
    (2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
    (3)Elasticsearch 对格式化后的数据进行索引和存储。
    (4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

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

    ElasticSearch介绍

    提供了一个分布式多用户能力的全文搜索引擎

    ElasticSearch核心概念

    1. 接近实时

      ElasticSearch是一个接近实时的搜索平台

      这就是说,我们从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)

    2. 集群化

      集群每一台服务器都有自己的一个唯一标识,比如说id,标识自己在集群中的一个定位。

      个集群就是由一个或多个节点组织在一起,它们共同持有你整个的数据,并一起提供索引和搜索功能。其中一个节点为主节点,这个主节点是可以通过选举产生的,并提供跨节点的联合索引和搜索的功能。

    3. 节点

      节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能。像集群一样,节点也是通过名字来标识,默认是在节点启动时随机分配的字符名。当然,你可以自己定义。该名字也很重要,在集群中用于识别服务器对应的节点。

    4. 索引

      一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品日录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候都要使用到这个名字。在一个集群中,如果你想,可以定义任意多的索引。

      索引(库)→类型(表)→文档(记录)

      input:数据采集
      output:数据输出
      filter:数据过滤

      image-20220829111121179

      类型

      在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑.上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。

      文档

      一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON 格式来表示,而JSON是一个到处存在的互联网数据交互格式。 在一个index/type里面,只要你想,你可以存储任意多的文档。注意,虽然一个文档在物理上位于一个索引中,实际上一个文档必须在一个索引内被索引和分配一个类型。

    5. 分片和副本(默认情况下是5个分片、1个副本,这意味着,如果你的集群至少有两个节点,你的索引将会有5个分片和另外5个副本,)

      在正常情况下,单个节点的存储和索引以及I/O读写效率是很容易遇到瓶颈的。为了提高瓶颈上限,所以在这里,对于存储进行一个分布式,多个节点做一个任务。可以提高存储上线,可以提高搜索上限,同时可以减轻压力均摊。

      elasticsearch提供将索引分成多个分片的功能。当在创建索引时,可以定义想要分片的数量。每一个分片就是一个全功能的独立的索引,可以位于集群中任何节点上。

      • 分片的两个最主要原因: a.提高了扩展能力、b、提高了单机存存储上限,c.分布式并行跨分片操作,提高性能和吞吐量
      • 分布式分片的机制和搜索请求的文档如何汇总完全是由elasticsearch控制的,这些对用户而言是透明的。
      • 网络问题等等其它问题可以在任何时候不期而至,为了健壮性,强烈建议要有一个故障切换机制,无论何种故障以防止分片或者节点不可用。
      • 副本也有两个最主要原因:a.高可用性,以应对分片或者节点故障。出于这个原因,分片副本要在不同的节点上。b. 增加了读写性能,增大吞吐量。搜索可以并行在所有副本上执行。

    ELK日志分析系统集群部署

    1、配置ELK日志分析集群
    2、使用Logstash收集日志
    3、使用Kibana查看分析日志

    实验环境

    #更改主机名 
    Node1节点:hostnamectl set-hostname node1
    Node2节点:hostnamectl set-hostname node2
    #配置域名解析
    vim /etc/hosts
    192.168.74.128  node1
    192.168.74.129  node2
    #查看Java环境,如果没有安装,
    yum -y install java
    java -version	
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    部署 Elasticsearch 软件

    (1)#上传elasticsearch-5.5.0.rpm到/opt目录下
    cd /opt
    rpm -ivh elasticsearch-5.5.0.rpm 
    (2)#加载系统服务
    systemctl daemon-reload    
    systemctl enable elasticsearch.service
    
    (3)#修改elasticsearch主配置文件
    cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
    vim /etc/elasticsearch/elasticsearch.yml
    --17--取消注释,指定集群名字
    cluster.name: my-elk-cluster
    --23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
    node.name: node1
    --33--取消注释,指定数据存放路径
    path.data: /data/elk_data
    --37--取消注释,指定日志存放路径
    path.logs: /var/log/elasticsearch/
    --43--取消注释,改为在启动的时候不锁定内存
    bootstrap.memory_lock: false
    --55--取消注释,设置监听地址,0.0.0.0代表所有地址
    network.host: 0.0.0.0
    --59--取消注释,ES 服务的默认监听端口为9200
    http.port: 9200
    --68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
    discovery.zen.ping.unicast.hosts: ["node1", "node2"]
    #查看主配置文件
    grep -v "^#" /etc/elasticsearch/elasticsearch.yml
    #将node1的配置文件拷贝一份在node2上并去node2上修改
    scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/
    vim /etc/elasticsearch/elasticsearch.yml
    --23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
    node.name: node2
    #查看主配置文件
    grep -v "^#" /etc/elasticsearch/elasticsearch.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    image-20220829114702323

    (4)#创建数据存放路径并授权
    mkdir -p /data/elk_data
    chown elasticsearch:elasticsearch /data/elk_data/
    (5)#启动elasticsearch是否成功开启
    systemctl start elasticsearch.service
    netstat -antp | grep 9200
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    image-20220829115036351

    (6)#查看节点信息
    浏览器访问 ,查看节点 Node1、Node2 的信息
    http://192.168.74.128:9200  http://192.168.74.129:9200 
    #原谅色:green
    http://192.168.74.128:9200/_cluster/health?pretty
    http://192.168.74.129:9200/_cluster/health?pretty
    #######  使用以上方式查看状态并不友好,可以通过 elasticsearch-head插件来直接管理  #####
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220829115411928

    image-20220829115431673

    安装 Elasticsearch-head 插件

    Elasticsearch 在 5.0 版本后,Elasticsearch-head 插件需要作为独立服务进行安装,需要使用npm工具(NodeJS的包管理工具)安装。安装 Elasticsearch-head 需要提前安装好依赖软件 node 和 phantomjs。
    node:是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

    yum install gcc gcc-c++ make -y
    (1)#编译安装 node
    #上传软件包 node-v8.2.1.tar.gz 到/opt
    cd /opt
    tar zxf node-v8.2.1.tar.gz
    cd node-v8.2.1/
    ./configure
    make -j4 && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    phantomjs:是一个基于 webkit 的JavaScriptAPI,可以理解为一个隐形的浏览器,任何基于 webkit 浏览器做的事情,它都可以做到。

    (2)#安装 phantomjs
    #上传软件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到
    cd /opt
    tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
    cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
    cp phantomjs /usr/local/bin
    (3)#安装 Elasticsearch-head 数据可视化工具
    #上传软件包 elasticsearch-head.tar.gz 到/opt
    cd /opt
    tar zxf elasticsearch-head.tar.gz -C /usr/local/src/
    cd /usr/local/src/elasticsearch-head/
    npm install
    (4)#修改 Elasticsearch 主配置文件
    vim /etc/elasticsearch/elasticsearch.yml
    ......
    --末尾添加以下内容--
    http.cors.enabled: true				#开启跨域访问支持,默认为 false
    http.cors.allow-origin: "*"			#指定跨域访问允许的域名地址为所有
    systemctl restart elasticsearch
    (5)#启动 elasticsearch-head 服务
    #必须在解压后的 elasticsearch-head 目录下启动服务,进程会读取该目录下的 gruntfile.js 文件,否则可能启动失败。
    cd /usr/local/src/elasticsearch-head/
    npm run start &
    #elasticsearch-head 监听的端口是 9100
    netstat -natp |grep 9100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    image-20220829122321406

    (6)#通过 Elasticsearch-head 查看 Elasticsearch 信息通过浏览器访问 http://192.168.74.128:9100/ 地址并连接群集。如果看到群集健康值为 green 绿色,代表群集很健康。访问有问题 可以将localhost 改成ip地址192.168.74.128:9200

    image-20220829134820017

    (7)#插入索引
    ##登录192.168.74.128 node1主机#####  索引为index-demo,类型为test,可以看到成功创建
    curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
    ####在192.168.74.128  刷新浏览器输入看索引信息###
    
    • 1
    • 2
    • 3
    • 4

    image-20220829135829912

    上面图可以看见索引默认被分片5个,并且有一个副本。
    点击数据浏览–会发现在node1上创建的索引为index-demo,类型为test, 相关的信息

    image-20220829135912180

    ELK Logstash 部署(在 Apache 节点上操作)

    (1)#修改主机名
    hostnamectl set-hostname apache
    su
    (2)#安装httpd并启动
    yum -y install httpd
    systemctl start httpd
    (3)#安装java环境
    yum -y install java
    java -version
    (4)#安装logstash
    cd /opt
    rpm -ivh logstash-5.5.1.rpm                         
    systemctl start logstash.service                     
    systemctl enable logstash.service
    cd /usr/share/logstash/
    ls
    ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    测试 Logstash与elasticsearch(node)功能是否正常,做对接

    Logstash这个命令测试

    logstash -f 配置文件名字 去连接elasticsearch

    字段描述解释:
    ● -f 通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
    ● -e 后面跟着字符串 该字符串可以被当做logstash的配置(如果是“空”则默认使用stdin做为输入、stdout作为输出)
    ● -t 测试配置文件是否正确,然后退出

    (1)#输入采用标准输入,输出采用标准输出(类似管道)一一登录192.168.74.130在Apache服务器上
    logstash -e 'input { stdin{} } output { stdout{} }'
    www.baidu.com	#键入内容(标准输入)
    2020-12-22T03:58:47.799Z node1 www.baidu.com	#输出结果(标准输出)
    www.sina.com.cn		#输入内容(标准输入)
    2017-12-22T03:59:02.908Z nodel www.sina.com.cn		#输出结果(标准输出)
    //执行ctrl+c退出
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220829141524544

    (2)#使用 rubydebug 输出详细格式显示,codec 为一种编解码器
    logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
    www.baidu.com  ##需要手动输入
    
    • 1
    • 2
    • 3

    image-20220829141737705

    (3)##使用logstash将信息写入elasticsearch中
    logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.74.128:9200"] } }'
    
    • 1
    • 2

    image-20220829142117398

    定义 logstash配置文件

    Logstash 配置文件基本由三部分组成:input、output 以及 filter(可选,根据需要选择使用)。

    input:表示从数据源采集数据,常见的数据源如Kafka、日志文件等
    filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式
    output:表示将Logstash收集的数据经由过滤器处理之后输出到Elasticsearch。

    (1)#给日志目录可读权限
    chmod o+r /var/log/messages					#让 Logstash 可以读取日志
    (2)#修改 Logstash 配置文件,让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中。
    vim /etc/logstash/conf.d/system.conf
    input {
        file{
            path =>"/var/log/messages" 	#指定要收集的日志的位置
            type =>"system"		#自定义日志类型标识
            start_position =>"beginning" 	#表示从开始处收集
        }
    }
    output {
        elasticsearch {	 	#输出到 elasticsearch
            hosts => ["192.168.74.128:9200"] 	#指定 elasticsearch 服务器的地址和端口
            index =>"system-%{+YYYY.MM.dd}" 	#指定输出到 elasticsearch 的索引格式
        }
    }
    (4)#重启服务
    systemctl restart logstash
    (5)#登录192.168.574.128 真机
    打开浏览器 输入http://192.168.74.128:9100/ 查看索引信息###多出 system-xxxx
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    image-20220829142917619

    image-20220829143157343

    ELK Kiabana 部署(在 Node1 节点上操作)

    (1)#安装 Kiabana
    #上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录
    cd /opt
    rpm -ivh kibana-5.5.1-x86_64.rpm
    (2)#设置 Kibana 的主配置文件
    vim /etc/kibana/kibana.yml
    --2--取消注释,Kiabana 服务的默认监听端口为5601
    server.port: 5601
    --7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
    server.host: "0.0.0.0"
    --21--取消注释,设置和 Elasticsearch 建立连接的地址和端口
    elasticsearch.url: "http://192.168.74.128:9200" 
    --30--取消注释,设置在 elasticsearch 中添加.kibana索引
    kibana.index: ".kibana"
    (3)#启动 Kibana 服务
    systemctl start kibana.service
    systemctl enable kibana.service
    netstat -natp | grep 5601
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    image-20220829143918355

    (4)#验证 Kibana
    浏览器访问 http://192.168.74.128:5601
    第一次登录需要添加一个 Elasticsearch 索引:
    Index name or pattern
    //输入:system-*			#在索引名中输入之前配置的 Output 前缀“system”
    单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
    数据展示可以分类显示,在“Available Fields”中的“host”,然后单击 “add”按钮,可以看到按照“host”筛选后的结果
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    image-20220829144600518

    (5)#将 Apache 服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示
    vim /etc/logstash/conf.d/apache_log.conf
    input {
        file{
            path => "/etc/httpd/logs/access_log"
            type => "access"
            start_position => "beginning"
        }
        file{
            path => "/etc/httpd/logs/error_log"
            type => "error"
            start_position => "beginning"
        }
    }
    output {
        if [type] == "access" {
            elasticsearch {
                hosts => ["192.168.74.128:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
            }
        }
            if [type] == "error" {
            elasticsearch {
                hosts => ["192.168.74.128:9200"]
                index => "apache_error-%{+YYYY.MM.dd}"
            }
        }
    }
    cd /etc/logstash/conf.d/
    /usr/share/logstash/bin/logstash -f apache_log.conf
    6.#浏览器访问http://192.168.74.128:9100/测试,查看索引信息能发现
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    image-20220829152355712

    #浏览器访问http://192.168.74.128:5601
    点击左下角有个management选项—index patterns—create index pattern
    ----分别创建apache_error-* 和apache_access-* 的索引

    image-20220829152654433

    Filebeat+ELK 部署

    1.安装 Filebeat
    #上传软件包 filebeat-6.6.0-linux-x86_64.tar.gz 到/opt目录
    tar zxvf filebeat-6.6.0-linux-x86_64.tar.gz
    mv filebeat-6.6.0-linux-x86_64/ /usr/local/filebeat
     
    2.设置 filebeat 的主配置文件
    cd /usr/local/filebeat
     
    vim filebeat.yml
    filebeat.prospectors:
    - type: log         #指定 log 类型,从日志文件中读取消息
      enabled: true
      paths:
        - /var/log/messages       #指定监控的日志文件
      fields:           #可以使用 fields 配置选项设置一些参数字段添加到 output 中
        service_name: filebeat
        log_type: log
        service_id: 192.168.74.131
    --------------Elasticsearch output------------------
    (全部注释掉)
    ----------------Logstash output---------------------
    output.logstash:
      hosts: ["192.168.74.130:5044"]      #指定 logstash 的 IP 和端口 
    #启动 filebeat
    ./filebeat -e -c filebeat.yml
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    4.在 Logstash 组件所在节点上新建一个 Logstash 配置文件
    cd /etc/logstash/conf.d
    vim logstash.conf
    input {
        beats {
            port => "5044"
        }
    }
    output {
        elasticsearch { 	
            hosts => ["192.168.74.128:9200"]
            index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
        }
        stdout { #数据显示
            codec => rubydebug
        }
    } 
    #启动 logstash
    logstash -f logstash.conf
     
    5.浏览器访问 http://192.168.74.128:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    image-20220830104621970

    gstash/conf.d
    vim logstash.conf
    input {
    beats {
    port => “5044”
    }
    }
    output {
    elasticsearch {
    hosts => [“192.168.74.128:9200”]
    index => “%{[fields][service_name]}-%{+YYYY.MM.dd}”
    }
    stdout { #数据显示
    codec => rubydebug
    }
    }
    #启动 logstash
    logstash -f logstash.conf

    5.浏览器访问 http://192.168.74.128:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。

    
    [外链图片转存中...(img-lGhOdvQJ-1663300023672)]
    
    ![image-20220830105354766](https://img-blog.csdnimg.cn/img_convert/87aba22d4e73ec7076c83b1e61b5a2ac.png)
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    day04-MQ
    Qt 中捕获三方库&自身标准打印方法
    基于遗传算法解决的多仓库多旅行推销员问题(Matlab代码实现)
    docker 安装mysql、canal、redis实现redis和mysql缓存一致性
    YOLOv7改进:新颖的上下文解耦头TSCODE,即插即用,各个数据集下实现暴力涨点
    scapy构造ND报文
    高通cDSP简单编程例子(实现查询高通cDSP使用率、签名),RK3588 npu使用率查询
    [⑤ADRV902x]: TES (Transceiver Evaluation Software) 使用
    论文写作概述
    Java初始化顺序
  • 原文地址:https://blog.csdn.net/qq_49124206/article/details/126887744