精华内容
下载资源
问答
  • ELK日志分析系统搭建

    2020-09-21 09:47:09
    文章目录ELK日志分析系统一、ELK日志分析系统简介(一)日志服务器(二)ELK日志分析系统组成二、ELK日志分析系统搭建实战 一、ELK日志分析系统简介 (一)日志服务器 提高安全性 集中存放日志 缺点:对日志的分析...

    ELK日志分析系统

    一、ELK日志分析系统简介

    (一)日志服务器

    • 提高安全性
    • 集中存放日志
    • 缺点:对日志的分析困难

    (二)ELK日志分析系统组成

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

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

    • Elasticsearch核心概念

    1. 接近实时

    2. 集群

    3. 节点

    4. 索引

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

    5. 分片和副本

    • Logstash介绍
    1. 一款强大的数据处理工具
    2. 可实现数据传输、格式处理、格式化输出
    3. 数据输入、数据加工(如过滤、改写等)
    • LogStash主要组件
    1. Shipper
    2. Indexer
    3. Broker
    4. Search and Storage
    5. Web Interface
    • Kibana介绍
    1. 一个针对Elasticsearch的开源分析及可视化平台
    2. 搜索、查看存储在Elasticsearch索引中的数据
    3. 通过各种图表进行高级数据分析及展示
    • Kibana主要功能
    1. Elasticsearch无缝之集成
    2. 整合数据,复杂数据分析
    3. 让更多团队成员受益
    4. 接口灵活,分享更容易
    5. 配置简单,可视化多数据源
    6. 简单数据导出

    二、ELK日志分析系统搭建实战

    • 实验环境:VMware Workstation 15.5、Xshell 6、Centos7.6
    • 软件包版本:elasticsearch-5.5.0、logstash-5.5.1、kibana-5.5.1、elasticsearch-head.tar、node-v8.2.1、phantomjs-2.1.1
    • 实验虚拟机IP分配
    设备名/作用 IP
    node1:elasticsearch、elasticsearch-head 192.168.50.133
    node2:elasticsearch、logstash、kibana 192.168.50.134
    • 实验步骤

    1、为各台设备设置主机名并在host文件中添加主机名解析

    hostnamectl set-hostname node1    ## 节点1
    hostnamectl set-hostname node2    ## 节点2
    
    编辑host文件:vim /etc/hosts
    添加:
    192.168.50.133 node1
    192.168.50.134 node2
    

    2、关闭两台服务器的防火墙

    systemctl stop firewalld && setenforce 0
    

    3、在node1上安装es

    rpm -ivh elasticsearch-5.5.0.rpm    ## 安装
    systemctl daemon-reload    重载服务配置
    systemctl enable elasticsearch.service    ## 设置开机自启动
    

    4、编辑es配置文件并修改

    vim /etc/elasticsearch/elasticsearch.yml
    
    修改以下内容:
    
    17 cluster.name: my-elk_cluster              ## 集群名
    23 node.name: node1                             ## 节点名
    33 path.data: /data/elk_data                   ## 数据存放路径
    37 path.logs: /var/log/elasticsearch      ## 日志存放路径
    43 bootstrap.memory_lock: false           ## 不在启动的时候锁定内存
    55 network.host: 0.0.0.0                      ## 提供服务绑定的IP地址,监听所有地址
    59 http.port: 9200                              ## 监听端口为9200
    68 discovery.zen.ping.unicast.hosts: ["node1", "node2"]     ## 集群发现通过单播发现
    

    5、创建数据存放路径

    mkdir -p /data/elk_data
    chown elasticsearch.elasticsearch /data/elk_data/     ## 设置目录权限
    

    6、开启es服务

    systemctl start elasticsearch.service
    

    7、查看服务端口是否开启

    netstat -natp | grep 9200     ## 刚启动的话看不到9200端口,等10秒左右后就有了
    

    8、打开浏览器分别访问两个节点

    http://192.168.50.133:9200/
    http://192.168.50.134:9200/
    
    ## 节点1:
    {
      "name" : "node1",
      "cluster_name" : "my-elk-cluster",
      "cluster_uuid" : "Tl4HiPhqSLmvuCmK8slYtA",
      "version" : {
        "number" : "5.5.0",
        "build_hash" : "260387d",
        "build_date" : "2017-06-30T23:16:05.735Z",
        "build_snapshot" : false,
        "lucene_version" : "6.6.0"
      },
      "tagline" : "You Know, for Search"
    }
    
    ## 节点2:
    {
      "name" : "node2",
      "cluster_name" : "my-elk_cluster",
      "cluster_uuid" : "VTnP4Wo2R3i4_3PQ-dtyDg",
      "version" : {
        "number" : "5.5.0",
        "build_hash" : "260387d",
        "build_date" : "2017-06-30T23:16:05.735Z",
        "build_snapshot" : false,
        "lucene_version" : "6.6.0"
      },
      "tagline" : "You Know, for Search"
    }
    

    9、检查集群健康状态

    http://192.168.50.133:9200/_cluster/health?pretty
    http://192.168.50.134:9200/_cluster/health?pretty
    
    {
      "cluster_name" : "my-elk-cluster",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 1,
      "number_of_data_nodes" : 1,
      "active_primary_shards" : 0,
      "active_shards" : 0,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0,
      "delayed_unassigned_shards" : 0,
      "number_of_pending_tasks" : 0,
      "number_of_in_flight_fetch" : 0,
      "task_max_waiting_in_queue_millis" : 0,
      "active_shards_percent_as_number" : 100.0
    }
    
    {
      "cluster_name" : "my-elk_cluster",
      "status" : "green",
      "timed_out" : false,
      "number_of_nodes" : 1,
      "number_of_data_nodes" : 1,
      "active_primary_shards" : 0,
      "active_shards" : 0,
      "relocating_shards" : 0,
      "initializing_shards" : 0,
      "unassigned_shards" : 0,
      "delayed_unassigned_shards" : 0,
      "number_of_pending_tasks" : 0,
      "number_of_in_flight_fetch" : 0,
      "task_max_waiting_in_queue_millis" : 0,
      "active_shards_percent_as_number" : 100.0
    }
    

    10、上面这种json格式并不友好,不能很好的监控群集状态,或进行一些数据索引的操作,所以我们再来安装一个lasticsearch-head数据可视化工具,安装这个工具前首先要安装node组件依赖包和phantomjs前端框架

    ## 安装node组件依赖包
    1.安装编译环境:yum -y install gcc gcc-c++ make
    2.解压缩:tar zxvf /opt/node-v8.2.1.tar.gz /opt
    3.进入软件目录进行配置:
    cd node-v8.2.1/
    ./configure
    4.编译:make -j3   ## 时间很长,需要耐心等待
    5.安装:make install
    

    11、安装phantomjs前端框架

    解压缩:tar jxvf /opt/phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
    
    命令让系统识别:cp /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/
    

    12、安装elasticsearch-head数据可视化工具

    解压缩:tar zxvf /opt/elasticsearch-head.tar.gz -C /usr/local/src/
    进入目录:cd /usr/local/src/elasticsearch-head/
    安装:npm install
    
    编辑配置文件:vim /etc/elasticsearch/elasticsearch.yml
    添加如下两行:
    http.cors.enabled: true     ## 开启跨域访问支持,默认为false
    http.cors.allow-origin: "*"   ## 跨域访问允许的域名地址
    PS:注意这两行内容必须添加,否则无法访问head工具页面
    
    重启es服务:systemctl restart elasticsearch
    

    13、启动elasticsearch-head 启动服务

    cd /usr/local/src/elasticsearch-head/
    启动:npm run start &
    
    查看是否开启:
    [root@node1 elasticsearch-head]# netstat -natp | grep 9100
    tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      10654/grunt 
    

    现在es搭建完成,我们可以先创建一个索引

    在node1上创建索引为index-demo,类型为test,可以看到成功创建【注意:现在web页面创建索引,再输入命令插入】
    curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
    
    返回内容:
    {
      "_index" : "index-demo",
      "_type" : "test",
      "_id" : "1",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 2,
        "failed" : 0
      },
      "created" : true
    }
    

    打开Web页面输入安装elasticsearch-head工具的服务器ip:http://192.168.50.133:9200/
    wHS29A.md.jpg

    14、在node2上安装logstash并进行相关设置

    1.安装rpm包:rpm -ivh logstash-5.5.1.rpm
    2.开启logstash:systemctl start logstash.service
    3.设置开机自启动:systemctl enable logstash.service
    4.将logstash命令建立软连接:ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
    
    ★logstash命令解释:
    -f:通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
    -e:后面跟着字符串,该字符串可以被当做logstash的配置(如果是“ ”,则默认使用stdin作为输入,stdout作为输出)
    -t:测试配置文件是否正确,然后退出
    

    15、将logstash日志生成到elasticsearch中(系统日志)

    修改系统日志文件的权限:chmod o+r /var/log/messages
    
    编辑logstash配置文件:vim /etc/logstash/conf.d/system.conf
    写入以下内容:
    
    input {
        file{
          path => "/var/log/messages"
          type => "system"
          start_position => "beginning"
           }
          }
    output {
          elasticsearch {
            hosts => ["192.168.50.133:9200"]
            index => "system-%{+YYYY.MM.dd}"
             }
           }
           
    重启服务:systemctl restart logstash
    

    16、在node2上安装Kibana

    1.安装:rpm -ivh kibana-5.5.1-x86_64.rpm
    2.修改配置文件:vim /etc/kibana/kibana.yml
    
    2 server.port: 5601                ## 开启端口
    7 server.host: "0.0.0.0"           ## 侦听地址(全网段)
    21 elasticsearch.url: "http://192.168.50.133:9200"        ## 和elasticsearch建立关系
    30 kibana.index: ".kibana"          ## 在elasticsearch中添加.kibana索引
    
    3.启动服务:systemctl start kibana
      开机自启:systemctl enable kibana
    

    17、在Kibana中创建索引来查看从es中收集到的日志

    ①单击Management
    wHS6tH.jpg

    ②创建索引,输入索引名,点击create按钮创建
    wHSchd.md.jpg
    wHSR1I.md.jpg

    ③单击Discover按钮在左上角选择"system"即可在右侧查看到日志信息了
    wHSyAe.md.jpg

    展开全文
  • ELK日志分析系统搭建 elk套件是指elasticsearchlogstashkibana三件套它们可以组成一套日志分析和监控工具本文说明安装过程和典型的配置过程由于三个软件各自的版本号太多建议采用官网...elasticsearch版本2.4.0 ...
  • elk日志分析系统搭建

    2018-12-03 14:14:19
    https://www.cnblogs.com/yuhuLin/p/7018858.html
    展开全文
  • 搭建自己的ELK日志分析系统,安装与配置。
  • 文章目录ELK日志分析日志一:ELK日志分析系统简介1.1 一般的日志服务器1.2 ELK日志分析系统1.3 日志处理步骤二:Elasticsearch介绍2.1 Elasticsearch概述2.2 Elasticsearch的概念2.3 分片的两个最主要原因:2.4 开启...

    ELK日志分析日志

    一:ELK日志分析系统简介

    1.1 一般的日志服务器

    • 提高安全性
    • 集中存放日志
    • 缺陷:对日志的分析困难

    1.2 ELK日志分析系统

    • Elasticsearch

    • Logstash

    • Kibana

    • mark

      1. Logstash部署至服务主机,对各个服务的日志进行采集、过滤、推送。
      2. Elasticsearch存储Logstash传送的结构化数据,提供给Kibana。
      3. Kibana提供用户UIweb页面进行,数据展示和分析形成图表等。
      4. logs 泛指,各种日志文件以及日志信息:windows,negix,tomcat,webserver等等。

    1.3 日志处理步骤

    1.将APP servers的日志进行集中化管理到Logstash agent

    2.将日志格式化(Logstash)并输出到Elasticsearch cluster

    3.对格式化后的数据进行索引和存储(Elasticsearch)

    4.前端数据的展示(Kibana)

    5.可以在线查看界面化展示

    mark

    Logstash 收集APP server产生的log,然后存放到Elasticsearch集群节点中

    kibana从Elasticsearch集群节点中查询数据生成图表,再返回给Brower

    二:Elasticsearch介绍

    2.1 Elasticsearch概述

    • 提供了一个分布式多用户能力的全文搜索引擎
    • 是一个基于Lucene的搜索服务器
    • 基于restful web接口
    • 使用java开发
    • 作为apache许可条款下的开放源码发布,是第二流行的企业搜索引擎
    • 被设计用于云计算中,能够达到实时搜索、稳定、可靠、快速、安装实用方便的需求

    2.2 Elasticsearch的概念

    • 接近实时(NRT)

    Elasticsearch是一个接近即时的搜索平台,从索引一个文档知道这个文档能够被搜索到的过程中有一个轻微的延迟(通常是1S)

    • 集群(cluster)

    由一个及其以上的节点组织在一起,它们共同持有整个数据,并一起提供索引和搜索功能

    其中一个节点为主节点,这个节点是可以通过选举产生,并提供跨节点的联合索引和搜索的功能

    集群有一个唯一标识的名字,默认是elaticsearch

    集群名字很重要,每个节点是基于集群名字加入到其集群中;因此,要确保集群的唯一性,在不同环境中使用不同的集群名字

    一个集群只可以有一个节点,建议在配置elasticsearch时,配置成集群模式

    • 节点(node)

    节点就是一台单一的服务器,是集群的一部分,存储数据并参与集群的索引和搜索功能

    像集群一样,节点之间可是通过名字来标识区分,默认是在节点启动时随机分配的字符名

    当然,你可以自己定义,该名字很重要,起到在集群中定位到对应的节点

    节点可以通过指定集群名字来加入到集群中,默认情况下,每个节点被设置成加入到elasticsearch集群。

    如果启动了多个节点,假设能够自动发现对方,他们将会自动组建一个名为elastisearch的集群

    • 索引(index)——索引(库)——类型(表)——文档(记录)

    一个索引就是一个拥有几分相似特征的文档的集合

    比如说,你可以有一个客户数据的索引、一个产品目录的索引、还有一个订单数据的索引

    一个索引用一个名字来标识(必须全部是小写字母组合),并且当我们要对相应的索引中的文档进行索引、收缩、更新和删除的时候,都要用到这个名字

    在一个集群中,可以定义多个索引

    • 类型(type)

    在一个索引中,你可以定义一种或多种类型

    一个类型是你的索引的一个逻辑上的分类分区,其寓意完全由你来定义

    通常,会为具有一组共同字段的文档定义一个类型

    比如:我们假设运营一个博客平台并且将所有的数据存储到一个索引中,在这个索引中,你可以为用户数据定义一个类型,为博客数据定义一个类型,也可以为评论数据定义另一个类型

    • 文档(Document)

    一个文档是一个可被索引的基础信息单元

    比如:你可以拥有一个客户的文档,某一个产品的文档;文档以JSON(Javascript Object Notation)格式来表示,json是一个通用的互联网数据交互模式

    在一个index/type内,你可以存储任意多的文档

    注意:虽然一个文档在物理上位于一个索引内,但是实际上一个文档必须在一个索引内可以被索引和分配一个类型

    • 分片和副本 (shards & replicas)

    在实际情况下,索引存储的数据可能超过单个节点的硬件设置

    比如十亿个文档需要1TB空间存储,可能不适合存储在单个节点上,读写被限制在单个节点;从单个节点搜索请求也太慢了

    为了解决这个问题,elasticsearch集群提供将索引分割开,进行分片的功能

    当创建索引时,可以定义想要分片的数量

    每一个分片就是一个全功能的独立的索引,可以位于集群中的任何节点上

    2.3 分片的两个最主要原因:

    1.可以进行水平分割横向扩展,增大存储量

    2.分布式并行跨分片操作,提高性能和吞吐量

    分布式分片的机制和搜索i请求的文档如何汇总由elasticsearch控制,这些对用户来说是透明的

    网络问题等其他不可控因素可以在任何时候不期而至,为了集群的健壮性,可以做一个故障切换机制,无论出现何种故障以防止分片或者节点不可用,为此,elasticsearch可以将索引分片复制一份或者多分,这被称之为分片副本

    2.4 开启分片副本的主要原因

    1.高可用性,以应对分片或者节点故障,处于这个原因,分片副本要在不同节点上

    2.提高IO性能,增大吞吐量,搜索可以并行在所有副本执行

    总之,每个索引可以被分成多个分片,一个索引也可以被复制0次或者多次

    一旦复制了,每个索引就有了主分片(可以作为复制源的原始分片)和复制分片(主分片的拷贝)之分

    分片和副本的数量可以在索引创建的时候指定,在索引创建之后,你可以在任何时候动态改变副本的数量,但是你事后无法改变分片的数量

    默认情况下,Elasticsearch中的每个索引被分片为5个主分片和1个副本,这意味着,如果你的集群中至少有两个节点的情况下,你的索引将会有5个主分片和另外5个副本分片(1个完全拷贝),这样的话每个索引总共就有10个分片

    三:Logstash介绍

    3.1 Logstash概述

    • 一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
    • 工作思路:数据输入(collect)、数据加工(如过滤、改写等enrich)以及数据输出(transport)
    • 由LRuby语言编写,基于消息(message-based)的简单架构,并运行在Java虚拟机(JVM)上。
    • 不同于分离的代理端(agent)或主机端(server),Logstash可配置单一的代理端(agent)与其他开源软件结合,以实现不同的功能

    3.2 Logstash主要组件

    • Shipper:日志收集

    负责监控本地日志文件的变化,及时把日志文件的最新内容收集起来

    通常,远程代理端(agent)只需要运行这个组件即可

    • Indexer:日志存储

    负责接受日志并写入到本地文件

    • Broker:日志hub

    负责链接多个shipper和对应数目的indexer

    • Search and Storage

    允许对事件进行搜索和存储

    • Web Interface

    基于web的展示界面

    以上组件在lLogstash架构中可以独立部署,因此提供了很好的集群扩展性.

    • mark

    • Logstash由input、filter和output三部分组成,

      input负责从数据源提取数据,

      filter负责解析、处理数据,

      output负责输出数据,每部分都有提供丰富的插件

    3.3 Logstash主机分类

    • 代理主机(agent):作为事件的传递者(shipper),将各种日志数据发送到中心主机;只需要运行logstash代理程序
    • 中心主机(central host):可运行包括中间转发器(broker)、索引器(indexer)、搜索和存储器(search & storage)、web界面端(web interface)在内的各个组件,以实现对日志数据地接收、处理和存储

    四:Kibana介绍

    4.1 Kibana概述

    • 一个针对Elasticsearch的开源分析及可视化平台
    • 搜索、查看存储在Elasticsearch索引中的数据
    • 通过各种图标进行高级数据分析及展示
    • 让海量数据更容易理解
    • 操作简单,基于浏览器地用户界面就可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态
    • 设置安装Kibana非常简单,无需编写代码,几分钟内就可以完成Kibana安装并启动Elasticsearch监测

    4.2 Kibana主要功能

    • Elasticsearch无缝之集成。Kibana架构为Elasticsearch定制,可以将任何结构化和非结构化加入Elasticsearch索引,Kibana还充分利用了Elasticsearch强大的搜索和分析功能
    • 整合数据,复杂数据分析;根据海量数据创建柱形图、折线图、三代泥土、直方图、饼图和地图;提升了Elasticsearch地分析能力,更够更加智能化地分析数据,执行数学转化并且根据要求对数据切割分块
    • 让更多团队成员受益;强大的数据可视化让各个业务岗位都可以直观了解数据
    • 接口灵活,分享更容易;使用Kibana可以更加方便地创建保存和分享数据,并将可视化数据快速交流
    • 配置简单,可视化多数据源;Kibana地配置和启动非常简单,用户体验友好,Kibana自带web服务器,可以快速运行;kibana可以非常方便地把来自logstash、ES-hadoop、Beats或第三方技术整合到Elasticsearch,支持地第三方技术包括apacheflume、fluentd等
    • 简单数据导出;Kibana可以方便地导出感兴趣地数据,与其他数据融合后快速建模分析,发现新结果

    五:实操演示

    三台centos7服务器,配置安装ELK日志分析系统

    安装集群方式,两个Elasticsearch节点,并监控apache服务器日志

    主机名 IP地址 安装软件
    node1 192.168.100.140 Elasticsearch 、Kibana
    node2 192.168.100.150 Elasticsearch
    apache 192.168.100.160 Logstash 、apahce

    mark

    mark

    5.1: 配置环境

    • #配置主机名
      
      hostnamectl set-hostanme node1   ##192.168.100.140
      hostnamectl set-hostname node2   ##192.168.100.150
      hostnamectl set-hostname apache  ##192.168.100.160
      
      #关闭防火墙和SElinux安全性功能
      systemctl stop firewalld
      setenforce 0
      
      #查看java环境
      [root@node1 elk]# java -version
      openjdk version "1.8.0_181"
      [root@node2 ~]# java -version
      openjdk version "1.8.0_181"
      
      #在node1和node2中做地址映射
      vi /etc/hosts
      192.168.100.140 node1
      192.168.100.150 node2
      

    5.2: 部署elasticsearch软件(node1和node2都需要安装)

    • 配置node1

      1、安装elasticsearch—rpm包
      [root@node1 ~]# mount.cifs //192.168.1.150/redhat7 /mnt
      Password for root@//192.168.1.150/redhat7:  ******
      [root@node1 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# pwd
      /mnt/elk
      
      [root@node1 ~]# cd /opt
      [root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm ##安装
       
      2、加载系统服务
      [root@node1 opt]# systemctl daemon-reload    
      [root@node1 opt]# systemctl enable elasticsearch.service    ##永久启动elasticsearch服务
       
      3、更改elasticsearch主配置文件
      [root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
      [root@node1 opt]#  vim /etc/elasticsearch/elasticsearch.yml
      17)cluster.name: my-elk-cluster                   ####集群名字
      23)node.name: node1                                  ####节点名字
      33)path.data: /data/elk_data                        ####数据存放路径
      37)path.logs: /var/log/elasticsearch/           ####日志存放路径
      43)bootstrap.memory_lock: false                 ####不在启动的时候锁定内存
      55)network.host: 0.0.0.0                               ####提供服务绑定的IP地址,0.0.0.0代表所有地址
      59)http.port: 9200                                        ####侦听端口为9200
      68)discovery.zen.ping.unicast.hosts: ["node1", "node2"]           ####集群发现通过单播实现
       
      [root@node1 opt]#  grep -v "^#" /etc/elasticsearch/elasticsearch.yml
      cluster.name: my-elk-cluster
      node.name: node1
      path.data: /data/elk_data
      path.logs: /var/log/elasticsearch/
      bootstrap.memory_lock: false
      network.host: 0.0.0.0
      http.port: 9200
      discovery.zen.ping.unicast.hosts: ["node1", "node2"]
       
      4、创建数据存放路径并授权
      [root@node1 ~]# mkdir -p /data/elk_data
      [root@node1 ~]# chown elasticsearch:elasticsearch /data/elk_data/    ##设置日志文件的属性
      [root@node1 etc]# id elasticsearch		"安装rpm包后自带用户"
      uid=987(elasticsearch) gid=981(elasticsearch) =981(elasticsearch)
       
      5、启动elasticsearch是否成功开启
      [root@node1 ~]# systemctl start elasticsearch.service 
      [root@node1 ~]# netstat -natp | grep 9200
      tcp6       0      0 :::9200                 :::*                    LISTEN      37295/java          
      [root@node1 ~]# 
      
    • mark

    • 配置node2

      1、安装elasticsearch—rpm包
      [root@node2 ~]# mount.cifs //192.168.1.150/redhat7 /mnt
      Password for root@//192.168.1.150/redhat7:  ******
      [root@node2 ~ ]# cd /mnt/elk
      [root@node2 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# pwd
      /mnt/elk
      
      [root@node2 ~]# cd /opt
      [root@node2 opt]# rpm -ivh elasticsearch-5.5.0.rpm ##安装
       
      2、加载系统服务
      [root@node2 opt]# systemctl daemon-reload    
      [root@node2 opt]# systemctl enable elasticsearch.service    ##永久启动elasticsearch服务
       
      3、更改elasticsearch主配置文件
      [root@node2 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
      [root@node2 opt]#  vim /etc/elasticsearch/elasticsearch.yml
      17)cluster.name: my-elk-cluster                   ####集群名字
      23)node.name: node2                                  ####节点名字
      33)path.data: /data/elk_data                        ####数据存放路径
      37)path.logs: /var/log/elasticsearch/           ####日志存放路径
      43)bootstrap.memory_lock: false                 ####不在启动的时候锁定内存
      55)network.host: 0.0.0.0                               ####提供服务绑定的IP地址,0.0.0.0代表所有地址
      59)http.port: 9200                                        ####侦听端口为9200
      68)discovery.zen.ping.unicast.hosts: ["node1", "node2"]           ####集群发现通过单播实现
       
      [root@node2 opt]#  grep -v "^#" /etc/elasticsearch/elasticsearch.yml
      cluster.name: my-elk-cluster
      node.name: node2
      path.data: /data/elk_data
      path.logs: /var/log/elasticsearch/
      bootstrap.memory_lock: false
      network.host: 0.0.0.0
      http.port: 9200
      discovery.zen.ping.unicast.hosts: ["node1", "node2"]
       
      4、创建数据存放路径并授权
      [root@node2 ~]# mkdir -p /data/elk_data
      [root@node2 ~]# chown elasticsearch:elasticsearch /data/elk_data/    ##设置日志文件的属性
      [root@node2 etc]# id elasticsearch		"安装rpm包后自带用户"
      uid=987(elasticsearch) gid=981(elasticsearch) =981(elasticsearch)
       
      5、启动elasticsearch是否成功开启
      [root@node2 ~]# systemctl start elasticsearch.service 
      [root@node2 opt]# netstat -natp | grep 9200
      tcp6       0      0 :::9200                 :::*                    LISTEN      10640/java  
      [root@node1 ~]# 
      #直接访问
      192.168.100.140:9200
      192.168.100.150:9200
      #查看node1和node2的健康信息
      192.168.100.140:9200/_cluster/health?pretty
      192.168.100.150:9200/_cluster/health?pretty
      
      #查看集群状态信息
      192.168.100.140:9200/_cluster/state?pretty
      192.168.100.150:9200/_cluster/state?pretty
      

      mark

    • 查看node1和node2的健康信息

      mark

      mark

      注:由于通过上面的信息查看elasticsearch的集群信息,比较麻烦,所以下面使用elastcsearch-head插件来视图化管理集群

    5.3: 部署elasticsearch-head插件(node1和node2都需要安装)

    • 配置node1

      #编译安装node组件依赖包##耗时比较长
      [root@node1 opt]# yum install gcc gcc-c++ make -y    ##安装编译工具
      [root@node2 ~ ]# cd /mnt/elk
      [root@node2 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xzvf node-v8.2.1.tar.gz -C /opt
      [root@node1 elk]# cd /opt/node-v8.2.1/
      [root@node1 node-v8.2.1]# ./configure 
      [root@node1 node-v8.2.1]# make -j4
      [root@node1 node-v8.2.1]# make install
       
      #安装phantomjs(前段框架显示)####
      上传软件包到/usr/local/src/
      [root@node1 node-v8.2.1]# cd /mnt/elk
      [root@node1 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
      [root@node1 elk]# cd /usr/local/src
      [root@node1 src]# ls
      phantomjs-2.1.1-linux-x86_64
      [root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/bin
      [root@node1 bin]# cp phantomjs /usr/local/bin
       
       
      #安装elasticsearch-head(支持插件视图化管理集群)###
      
      [root@node1 node-v8.2.1]# cd /mnt/elk
      [root@node1 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xzvf elasticsearch-head.tar.gz -C /usr/local/src
      cd /usr/local/src/
      cd elasticsearch-head/
      npm install
      
       
      #####修改主配置文件###
      [root@node1 ~]# cd ~
      [root@node1 ~]# vi /etc/elasticsearch/elasticsearch.yml   ####下面配置文件,插末尾##
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      [root@node1t ~]# systemctl restart elasticsearch
       
      ####启动elasticsearch-head  启动服务器####
      [root@node1 ~]# cd /usr/local/src/elasticsearch-head/
      [root@node1 elasticsearch-head]# npm run start &      ####切换到后台运行
      [1] 114729
      [root@node1 elasticsearch-head]# 
      > elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
      > grunt server
      
      Running "connect:server" (connect) task
      Waiting forever...
      Started connect web server on http://localhost:9100	##回车
       
      [root@node1 elasticsearch-head]# netstat -lnupt | grep 9100
      tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      58131/grunt         
      [root@node1 elasticsearch-head]# netstat -lnupt | grep 9200
      tcp6       0      0 :::9200                 :::*                    LISTEN      58031/java  
      
    • 配置node2

      #编译安装node组件依赖包##耗时比较长
      [root@node1 opt]# yum install gcc gcc-c++ make -y    ##安装编译工具
      [root@node2 ~ ]# cd /mnt/elk
      [root@node2 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xzvf node-v8.2.1.tar.gz -C /opt
      [root@node1 elk]# cd /opt/node-v8.2.1/
      [root@node1 node-v8.2.1]# ./configure 
      [root@node1 node-v8.2.1]# make -j4
      [root@node1 node-v8.2.1]# make install
       
      #安装phantomjs(前段框架显示)####
      上传软件包到/usr/local/src/
      [root@node1 node-v8.2.1]# cd /mnt/elk
      [root@node1 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
      [root@node1 elk]# cd /usr/local/src
      [root@node1 src]# ls
      phantomjs-2.1.1-linux-x86_64
      [root@node1 src]# cd phantomjs-2.1.1-linux-x86_64/bin
      [root@node1 bin]# cp phantomjs /usr/local/bin
       
      #安装elasticsearch-head(支持插件视图化管理集群)###
      
      [root@node1 node-v8.2.1]# cd /mnt/elk
      [root@node1 elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      [root@node1 elk]# tar xzvf elasticsearch-head.tar.gz -C /usr/local/src
      cd /usr/local/src/
      cd elasticsearch-head/
      npm install
      
      #修改主配置文件###
      [root@node1 ~]# cd ~
      [root@node1 ~]# vi /etc/elasticsearch/elasticsearch.yml   ####下面配置文件,插末尾##
      http.cors.enabled: true
      http.cors.allow-origin: "*"
      [root@node1t ~]# systemctl restart elasticsearch
       
      #启动elasticsearch-head  启动服务器####
      [root@node1 ~]# cd /usr/local/src/elasticsearch-head/
      [root@node1 elasticsearch-head]# npm run start &      ####切换到后台运行
      [1] 114729
      [root@node1 elasticsearch-head]# 
      > elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
      > grunt server				"自动弹出"
      
      Running "connect:server" (connect) task
      Waiting forever...
      Started connect web server on http://localhost:9100	##回车
       
      [root@node2 elasticsearch-head]# netstat -lnupt | grep 9100
      tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      112114/grunt        
      [root@node2 elasticsearch-head]# netstat -lnupt | grep 9200
      tcp6       0      0 :::9200                 :::*                    LISTEN      112022/java  
      
    • 在物理机上访问elasticsearch集群状态

      mark

      mark

    5.4: 创建elasticsearch索引

    • 创建索引有两种方式

    • 第一种,直接在web页面上创建

      mark

    • 第二种使用命令创建索引

      ###索引名为 index-demo,类型为test
      [root@node1 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
      {
        "_index" : "index-demo",
        "_type" : "test",
        "_id" : "1",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 2,
          "successful" : 2,
          "failed" : 0
        },
        "created" : true				"创建成功"
      }
      
      本地浏览器
      http://192.168.100.140:9100/	"刷新"
      http://192.168.100.150:9100/	
      

      mark

      mark

    5.4: 部署Logstash(Apache服务器上部署)

    • 部署apache服务,以及安装Logstash

      #部署apache服务,以及安装Logstash
      1、安装Apahce服务(httpd)
      yum -y install httpd
      systemctl start httpd
      netstat -ntap|grep httpd
      2、安装Java环境
      java -version        ###如果没有装 安装yum -y install java
      openjdk version "1.8.0_181"
      OpenJDK Runtime Environment (build 1.8.0_181-b13)
      OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
       
      3、安装logstash
      上传logstash-5.5.1.rpm到/opt目录下
      [root@apache ~]# mount.cifs //192.168.31.224/redhat7 /mnt
      Password for root@//192.168.31.224/redhat7:  ******
      [root@apache ~]# cd /mnt/elk
      [root@apache elk]# ls
      elasticsearch-5.5.0.rpm    logstash-5.5.1.rpm
      elasticsearch-head.tar.gz  node-v8.2.1.tar.gz
      kibana-5.5.1-x86_64.rpm    phantomjs-2.1.1-linux-x86_64.tar.bz2
      
      rpm -ivh logstash-5.5.1.rpm                                                  ##安装logstash
      systemctl start logstash.service                                              ##启动logstash
      systemctl enable logstash.service
      systemctl status logstash.service
      ln -s /usr/share/logstash/bin/logstash /usr/local/bin/   ##建立logstash软连接
       
      4、logstash(Apache)与elasticsearch(node)功能是否正常,做对接测试####
      Logstash这个命令测试
      字段描述解释:
      	-f  通过这个选项可以指定logstash的配置文件,根据配置文件配置logstash
      	-e  后面跟着字符串 该字符串可以被当做logstash的配置(如果是” ,则默认使用stdin做为输入、stdout作为输出)
      	-t  测试配置文件是否正确,然后退出
       
      '//输入采用标准输入 输出采用标准输出,进行测试'
      [root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'
      ...省略内容
      2020-09-14T13:52:29.177Z apache 
      www.baidu.com	"输入网址"
      2020-09-14T13:52:59.360Z apache www.baidu.com
      www.sina.com.cn	"输入网址"
      2020-09-14T13:53:16.215Z apache www.sina.com.cn
      www.taobao.com
      2020-09-14T13:53:30.410Z apache www.taobao.com
      www.suning.com
      2020-09-14T13:53:36.695Z apache www.suning.com
      
      '//都没问题,可以Ctrl + c取消了'
      
      '//测试:使用rubydebug显示详细输出,codec为一种编解码器'
      [root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
      ...省略内容
      The stdin plugin is now waiting for input:
      21:54:29.927 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
      www.baidu.com	"输入网址"
      {
          "@timestamp" => 2020-09-14T13:55:00.234Z,
            "@version" => "1",
                "host" => "apache",
             "message" => "www.baidu.com"
      }
      www.suning.com	"输入网址"
      {
          "@timestamp" => 2020-09-14T13:55:15.182Z,
            "@version" => "1",
                "host" => "apache",
             "message" => "www.suning.com"
      }
      
      '//没问题,可以Ctrl + c取消了'
      
      5. 使用logstash将信息写入elasticsearch中' "主节点的地址"
      [root@apache opt]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.100.140:9200"] } }'
      ...省略内容
      21:58:09.312 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
      www.baidu.com	"输入网址"
      www.sina.com.cn
      www.suning.com 
      '//没问题,可以Ctrl + c取消了'
      
      6.宿主机浏览器访问node1节点,查看索引信息
      http://192.168.100.140:9100/
      http://192.168.100.150:9100/
      
    • 在物理机上访问elasticsearch集群是否记录这个日志

      mark

    • 使得Logstash与elasticsearch做对接设置

      Logstash配置文件主要由三部分组成:input、output、filter(根据需要)
       
      [root@apache opt]# chmod o+r /var/log/messages
      [root@apache opt]# ll /var/log/messages
      -rw----r--. 1 root root 572555 4  16 23:50 /var/log/messages
       
      [root@apache opt]# vi /etc/logstash/conf.d/system.conf 
      input {
             file{
              path => "/var/log/messages"
              type => "system"
              start_position => "beginning"
              }
            }
      output {
              elasticsearch {
                hosts => ["192.168.100.140:9200"]		"主节点的地址"
                index => "system-%{+YYYY.MM.dd}"
                }
              }
      [root@apache conf.d]# cd
       
      [root@apache ~]# systemctl restart logstash.service
      
      #测试登录192.168.100.140:9100,连接192.168.100.140:9200 查看是否有system的索引
      

      mark

    5.6: 部署kilbana(node1上部署)

    • 在node1主机安装kibana,提供日志分析功能

      #在node1主机安装kibana,提供日志分析功能,也可以单独开一个节点安装
      [root@node1 ~]# mount.cifs  //192.168.31.224/redhat7 /mnt
      [root@node1 ~]# cd /mnt/elk
      [root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm
      [root@node1 elk]# cd /etc/kibana/
      [root@node1 kibana]# cp kibana.yml kibana.yml.bak
      [root@node1 kibana]# vi kibana.yml
      2)server.port: 5601                #### kibana打开的端口
      7)server.host: "0.0.0.0"           ####kibana侦听的地址
      21)elasticsearch.url: "http://192.168.100.140:9200"             ###和elasticsearch建立联系
      30)kibana.index: ".kibana"              ####在elasticsearch中添加.kibana索引
      [root@node1 kibana]# systemctl start kibana.service    ###启动kibana服务
      [root@node1 kibana]# systemctl enable kibana.service   ###开机启动kibana服务
       
      [root@node1 kibana]# netstat -natp | grep 5601
      tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      84119/node          
      [root@node1 kibana]# 
      
      #登录且创建索引,注意:这里的索引,必须是elasticsearch集群中存在的索引才能在kilbana中创建
      测试//192.168.100.140:5601
      

      mark

      mark

    • 对接Apache主机的Apache 日志文件(access.log和error.log)

      [root@apache opt]# cd /etc/logstash/conf.d/
      [root@apache conf.d]# touch apache_log.conf
      [root@apache conf.d]# vi 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.100.140:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
                }
              }
              if [type] == "error" {
              elasticsearch {
                hosts => ["192.168.100.140:9200"]			"主节点的地址"
                index => "apache_error-%{+YYYY.MM.dd}"
                }
              }
              }
       
      [root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf	'//指定配置文件做测试'	
      					
      
    • 登录192.168.100.140:9200,在elasticsearch集群中查看是否存在,这两个索引
      先访问下apache刷新几次 192.168.100.160:80再查看192.168.100.140:9200
      索引里会产生access和error两个日志

      mark

    • 登录192.168.100.140:5601,进入kibana中建立索引
      建立apache_access和apache_error两个索引,并查看索引内容

      mark

      mark

      mark

      mark

      点击discover

      mark

      mark

    mark

    展开全文
  • SpringBoot配置ELK日志分析系统搭建

    千次阅读 多人点赞 2018-12-12 13:38:52
    SpringBoot配置ELK日志分析系统ELK介绍环境配置准备工作配置Elasticsearch配置Kibana配置Logstash准备微服务运行测试 ELK介绍 引用网上别人的介绍: Logstash:日志收集工具,可以从本地磁盘,网络服务(自己监听...

    ELK介绍

    引用网上别人的介绍:

    Logstash:日志收集工具,可以从本地磁盘,网络服务(自己监听端口,接受用户日志),消息队列中收集各种各样的日志,然后进行过滤分析,并将日志输出到Elasticsearch中。

    Elasticsearch:日志分布式存储/搜索工具,原生支持集群功能,可以将指定时间的日志生成一个索引,加快日志查询和访问。

    Kibana:可视化日志Web展示工具,对Elasticsearch中存储的日志进行展示,还可以生成炫丽的仪表盘。

    环境配置

    准备工作

    1. 首先建议在linux上配置ELK会更为方便,Windows对组件兼容较差,官网上各种版本都有可以自行下载。
      附上传送门:https://www.elastic.co/cn/downloads
    2. 服务器需要java运行环境,配置方式也不赘述了,不会的请移步传送门:
      http://www.runoob.com/w3cnote/win7-linux-java-setup.html
    3. 在根目录创建名为elk的文件夹
    mkdir elk
    

    将下载好的三个文件解压进文件夹中
    博客中文件夹的结构为:

    elk:
    	elasticsearch
    	logstash
    	kibana
    

    配置Elasticsearch

    vi /elk/elasticsearch/config/elasticsearch.yml
    
    //配置外网连接,如果不能用请检查防火墙配置
    network.host: 0.0.0.0
    http.port: 9200
    
    //后台启动elasticsearch服务
    /elk/elasticsearch/bin/elasticsearch &
    

    启动没有报错成功后,在浏览器输入ip:9200端口,显示下图所示为启动成功
    在这里插入图片描述

    配置Kibana

    vi /elk/kibana/config/kibana.yml
    //常用配置:
    elasticsearch.url: "http:localhost:9200" //配置elasticsearch所在的IP和端口
    server.port: 8888  //设置服务端口即可视化页面映射端口
    server.host: "IP"   //设置服务IP
    

    启动测试

    /elk/kibana/bin/kibana &
    

    启动完成没有报错后,在浏览器输入IP:Ports,在配置文件中配置的地址,
    出现如下页面为成功
    在这里插入图片描述

    配置Logstash

    我们在项目中使用的是springboot自带的logback,我们使用自定义的配置文件
    首先在logstash目录中创建一个文件夹

    mkdir /elk/logstash/webconfig
    

    创建并编辑一个新配置文件

    vi /elk/logstash/webconfig/log_elk.conf
    

    在配置文件中添加
    配置文件详细入门参考传送门:https://www.cnblogs.com/moonlightL/p/7760512.html

    input {
     # 我们创建了两个微服务demo 所以建立两个不同的输入,将两个服务的日志分别输入到不同的索引中
      tcp {
        mode => "server"
        host => "0.0.0.0"  # 允许任意主机发送日志
        type => "elk1"      # 设定type以区分每个输入源
        port => 4567      
        codec => json_lines    # 数据格式
      }
      tcp {
        mode => "server"
        host => "0.0.0.0"
        type => "elk2"
        port => 4667
        codec => json_lines
      }
    
    }
    filter {
      #Only matched data are send to output.
    }
    output {
      # For detail config for elasticsearch as output,
      # See: https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html
    
      if [type] == "elk1" {
        elasticsearch {
          action => "index"          # 输出时创建映射
          hosts  => "192.168.87.136:9200"   # ElasticSearch 的地址和端口
          index  => "elk1"         # 指定索引名
          codec  => "json"
         }
      }
      if [type] == "elk2" {
        elasticsearch {
          action => "index"          #The operation on ES
          hosts  => "192.168.87.136:9200"   #ElasticSearch host, can be array.
          index  => "elk2"         #The index to write data to.
          codec  => "json"
         }
      }
    }
    

    启动Logstash

    //-f后可以接指定的配置文件,也可以是一个目录,它会自动将目录中的所有配置文件一起导入合成一个配置文件,实现多配置文件启动
    
    //单文件:
    /elk/logstash/bin/logstash -f /elk/logstash/wegconfig/log_elk.conf   &
    //目录:
    /elk/logstash/bin/logstash -f /elk/logstash/wegconfig  &
    

    Logstash启动比较慢,最后启动成功后显示:
    在这里插入图片描述

    准备微服务

    使用idea创建springboot项目,勾选web组件。
    在resource文件夹下创建配置文件logback-spring.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/base.xml" />
    
        <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
            <!--配置logstash的ip和端口,在logstash配置文件中-->
            <destination>localhost:4567</destination>
            <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
        </appender>
    
        <root level="INFO">
            <appender-ref ref="LOGSTASH" />
            <appender-ref ref="CONSOLE" />
        </root>
    </configuration>
    

    新建一个IndexController类

    @RestController
    public class IndexController {
        private final Logger logger = LoggerFactory.getLogger(getClass());
    
        @GetMapping("/index")
        public Object index() {
                logger.debug("======ELK2测试=======");
                logger.info("======ELK2测试=======");
                logger.warn("======ELK2测试=======");
                logger.error("======ELK2测试=======");
    
            return "success";
        }
    }
    
    

    在另一个微服务中也同理创建,只需要修改logback-spring.xml中的Logstash端口号,在Controller中日志输出的内容也可以做简单区分。
    最后启动两个微服务。

    运行测试

    1. 依次启动Elasticsearch,Kibana,Logstash和两个微服务
    2. 打开Kibana页面
      在这里插入图片描述
      在这里插入图片描述
      页面中已经有了我们配置的两个索引,其中有11条日志是在我们启动微服务时springboot输出的日志,在有第一条日志通过tcp发送到Logstash,Logstash将它转发到Elasticsearch时Elasticsearch自动为我们创建了索引。

    接着我们在Kibana中添加该索引
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    两个索引添加完成后
    在这里插入图片描述
    我们在浏览器中访问两个微服务的index地址后刷新kibana页面。
    在这里插入图片描述

    简单的搭建到此就结束了

    展开全文
  • SpringBoot配置ELK日志分析系统ELK介绍环境配置准备工作配置Elasticsearch配置Kibana配置Logstash...
  • ELK内容很多,最近刚接触,看到啥写啥。 本文涉及三个软件:Elasticsearch、Kibana、Winlogbeat,所有软件都是基于7.6.2。 Elasticsearch和Kibana 安装在服务器端,Winlogbeat 安装在客户端,当然,作为测试用,也...
  • ELK安装步骤 简单介绍 ElasticSearch:用于存储日志信息。 Logstash:用于收集、处理和转发日志信息。 Kibana:提供可搜索的Web可视化界面。 准备工作安装JDK Elasticsearch7 自带jdk11,如果没有安装jdk, es7使用...
  • 想必大家都大概了解它是用来做日志存储和分析的,这在集群环境中尤其显得神通广大,当集群环境中的某些服务出现故障时,我们可以不必连接每一台服务区来分别查看对应的日志文件,而只需在Elasticsearch中查找即可,...
  •  重新加载系统配置文件 source /etc/profile 执行 mvn --version查看是否安装成功   进入ik下载目录解压文件 unzip命令安装 apt-get install   unzip unzip elasticsearch-analysis-ik-6.2.x....
  • https://github.com/mobz/elasticsearch-head

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,919
精华内容 5,167
关键字:

elk日志分析系统搭建