继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Linux部署ELK、日志收集分析

我心依然_Song
关注TA
已关注
手记 30
粉丝 13
获赞 106

什么是ELK

ELK分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

三者之间互相配合使用,完美衔接,高效的满足了很多场合的应用。是目前主流的一种日志系统。

环境准备

本文示例使用的是docker镜像构建的虚拟环境。此镜像已安装全部所需依赖,使用此镜像无需安装ELK,直接启动运行即可。
镜像详细信息访问点击此处

# 镜像拉取:
docker pull henghengg/lnmp:ELK

ElasticSearch安装

  • 安装之后需要先安装java

    $ yum install java
    $ java -version
    openjdk version "1.8.0_332"
    OpenJDK Runtime Environment (build 1.8.0_332-b09)
    OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)
    
  • 解压下载好的压缩包进行安装

    $ cd /usr/local/gz_elastic
    $ tar -zxvf elasticsearch-8.0.0-linux-x86_64.tar.gz
    $ mv elasticsearch-8.0.0 /usr/local/elk/
    

    注意:不要在root下运行elasticsearch
    图片描述

  • 新建用户赋权限

    $ useradd es
    $ chown -R es /usr/local/elk/
    
  • 切换用户运行

    $ su es
    $ cd /usr/local/elk/elasticsearch
    
  • 修改配置文件

    vi config/elasticsearch.yml
    
    # network.host 改为 0.0.0.0
    # http.port 改为 9200
    # xpack.security.enabled 改为 false
    # xpack.security.http.ssl:
    	  enabled 改为 false
    
  • 修改后启动即可无安全限制访问

    ./bin/elasticsearch	
    
  • 打开浏览器输入http://127.0.0.1:9200/

    {
    name: "d0d206d4ad9d",
    cluster_name: "elasticsearch",
    cluster_uuid: "WUoWDYqlSL23xXSxEIMFYA",
    version: {
    number: "8.0.0",
    build_flavor: "default",
    build_type: "tar",
    build_hash: "1b6a7ece17463df5ff54a3e1302d825889aa1161",
    build_date: "2022-02-03T16:47:57.507843096Z",
    build_snapshot: false,
    lucene_version: "9.0.0",
    minimum_wire_compatibility_version: "7.17.0",
    minimum_index_compatibility_version: "7.0.0"
    },
    tagline: "You Know, for Search"
    }
    

Kibana安装

  • 解压下载好的压缩包进行安装

    $ cd /usr/local/gz_elastic
    $ tar -zxvf kibana-8.0.0-linux-x86_64.tar.gz
    $ mv kibana-8.0.0 /usr/local/elk/
    $ cd /usr/local/elk/kibana-8.0.0
    
  • 修改配置文件

    $ vi config/kibana.yml
    # 修改项如下
    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.hosts: ["http://127.0.0.1:9200"]
    i18n.locale: "zh-CN"	
    
  • 启动

    同样在es用户下启动,而且必须确定elasticsearch已经启动

    ./bin/kibana
    
  • 打开浏览器输入地址:http://192.168.1.3:5601/

    图片描述

Logstash安装

  • 解压下载好的压缩包进行安装

    $ cd /usr/local/gz_elastic
    $ tar -zxvf logstash-8.0.0-linux-x86_64.tar.gz
    $ mv logstash-8.0.0 /usr/local/elk/
    $ cd /usr/local/elk/logstash-8.0.0
    
  • 日志收集配置

    $ vi config/logstash.conf
    # input output可以有多个
    input {
       file {
          #需要输入的log文件的路径
          path => "/www/hyperf/runtime/logs/"
          start_position => "beginning"
          #具体的业务需要的名字即可
          #type =>  ""
       }
    }
    filter {
      grok {
        match => {
          "message" => '%{DATESTAMP:time}\s*%{WORD:logName}\s*\[%{USERNAME:faint}\]\s*%{LOGLEVEL:level}\s*%{USERNAME:magenta}\s*%{USER:a}\s*%{GREEDYDATA:data}'
        }
      }
    
      date {
        match => [ "time", "yyyy-MM-dd HH:mm:ss.SSS" ]
      }
    }
    output {
        elasticsearch {
            hosts => "http://127.0.0.1:9200"
            index => "hyperf-%{+YYYY.MM.dd}"
            #document_id => "%{id}"
            #user  => "elastic"
            #password => "123456"
        }
     stdout {
            codec => rubydebug
        }
    
    }
    
    
  • 启动

    示例中收集的是/www下一个hyperf项目的日志信息,启动logstash前,可以先启动项目运行,然后启动logstash收集日志
    $ ./bin/logstash -f config/logstash.conf --config.reload.automatic

    启动成功如下:
    图片描述

    日志信息收集:
    图片描述

kibana日志收集信息查看

找到索引管理->索引模板,然后创建模板,信息如下:
图片描述

然后在下面kibana选择数据视图,创建视图,输入和logstash.conf中index一样的名称,会自动匹配出已存在的索引,点击创建视图即可。
图片描述

最后查看
图片描述

选择对应的视图后,右侧会自动显示索引命中的日志信息。
图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP