zoukankan      html  css  js  c++  java
  • ELK搭建

    一、ELK介绍

    1. ELK简介

           ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称(但是后期出现的filebeat(beats中的一种)可以用来替代logstash的数据收集功能,比较轻量级)。市面上也被成为Elastic Stack。

      Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

      Logstash是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。Logstash能够动态地采集、转换和传输数据,不受格式或复杂度的影响。利用Grok从非结构化数据中派生出结构,从IP地址解码出地理坐标,匿名化或排除敏感字段,并简化整体处理过程。

      Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎,是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。Elasticsearch为所有类型的数据提供近乎实时的搜索和分析。无论您是结构化文本还是非结构化文本,数字数据或地理空间数据,Elasticsearch都能以支持快速搜索的方式有效地对其进行存储和索引。

      Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。并且可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。还可以让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态

    2. 完整日志系统基本特征

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

    二、ELK部署

    elk各个组件的网址可以在官网下载:https://www.elastic.co/cn/

    或者在中文社区下载:https://elasticsearch.cn/download/

    2.1 Elasticsearch安装

    安装包下载:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz

    1、安装jdk,es启动需要依赖java环境

    # tar zxf jdk-8u191-linux-x64.tar.gz  -C  /usr/local/
    # cd /usr/local/jdk1.8.0_191/
    # pwd
    /usr/local/jdk1.8.0_191
    
    # vim /etc/profile
    export JAVA_HOME=/usr/local/jdk1.8.0_191
    export PATH=$PATH:$JAVA_HOME/bin
    
    # source /etc/profile
    # java -version
    java version "1.8.0_191"
    Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
    

    2、解压es包

    # tar  zxf  elasticsearch-6.3.2.tar.gz -C /usr/local/
    

    3、创建elasticsearch用户

    # useradd es 
    # echo 123456 |passwd es --stdin 
    # chown -R es.es /usr/local/elasticsearch-6.3.2/

    4、修改es的配置文件

    # vim /usr/local/elasticsearch-6.3.2/config/elasticsearch.yml
    path.data: /usr/local/elasticsearch-6.3.2/data    #修改data存放的路径
    path.logs: /usr/local/elasticsearch-6.3.2/logs #修改logs日志的路径
    network.host: 172.16.68.169 #监听的网络地址
    http.port: 9200 #开启监听的端口

    # mkdir /usr/local/elasticsearch-6.3.2/data 创建data目录
    # chown -R /usr/local/elasticsearch-6.3.2/data

    5、配置config/jvm.options

    # vim /usr/local/elasticsearch-6.3.2/config/jvm.options 根据自身环境修改启动需要的内存 

    -Xms512m
    -Xmx512m

    6、linux系统参数设置

    vim /etc/security/limits.conf #永久修改
    * soft nofile 65536
    * hard nofile 65536
    * soft nproc 4096 
    * hard nproc 4096
    * soft memlock unlimited
    * hard memlock unlimited
    配置虚拟内存 sysctl -w vm.max_map_count=262144 #临时修改该值 vim /etc/sysctl.conf #永久修改 vm.max_map_count=262144
    sysctl -p

    7、启动es

    # su - es -c  'nohup /usr/local/es/bin/elasticsearch 2>&1 &'
    

    # curl http://172.16.68.169:9200
    {
      "name" : "BYraTdr",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "JypXZhZ2TEa3HeDM6tshhw",
      "version" : {
        "number" : "6.3.2",
        "build_flavor" : "default",
        "build_type" : "tar",
        "build_hash" : "053779d",
        "build_date" : "2018-07-20T05:20:23.451332Z",
        "build_snapshot" : false,
        "lucene_version" : "7.3.1",
        "minimum_wire_compatibility_version" : "5.6.0",
        "minimum_index_compatibility_version" : "5.0.0"
      },
      "tagline" : "You Know, for Search"
    }

    8、安装elasticsearch-head插件

    由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。

    (1)安装node.js

    # wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-x64.tar.xz
    # tar xf node-v6.10.2-linux-x64.tar.xz
    # mv node-v6.10.2-linux-x64 /usr/local/
    
    # tail /etc/profile
    export PATH=$PATH:/usr/local/node-v6.10.2-linux-x64/bin
    
    # source /etc/profile
    

     (2)下载head插件

    # yum install -y git
    # git clone https://github.com/mobz/elasticsearch-head.git
    # cd elasticsearch-head/
    # npm install -g grunt --registry=https://registry.npm.taobao.org
    # npm install
    

    (3)修改配置elasticsearch-head下Gruntfile.js文件

    修改connect配置节点

     修改 _site/app.js 修改http://localhost:9200字段到本机ES端口与IP

     (4)修改es配置文件elasticsearch.yml

    # tail elasticsearch.yml
    
    # 是否支持跨域
    http.cors.enabled: true
    
    # *表示支持所有域名
    http.cors.allow-origin: "*"

    之后重启es 

    (5)启动head插件服务(后台运行)

    # elasticsearch-head/node_modules/grunt/bin/grunt server &
    

     2.2 logstash安装

    # tar zxf logstash-6.3.2.tar.gz -C /usr/local/
    # cd /usr/local/logstash-6.3.2/bin
    # ./logstash -e 'input { stdin { } } output { stdout {} }' 

     logstash使用配置文件

    官方指南:
    https://www.elastic.co/guide/en/logstash/current/configuration.html
    
    创建配置文件
    # mkdir /usr/local/logstash-6.3.2/conf.d
    # vim /usr/local/logstash-6.3.2/conf.d/elk.conf

      input {
          file {
              path => "/var/log/messages"
              type => "messages"
              start_position => "beginning"
          }
      } 
      filter {
          grok {
              match => { "message" => "%{COMBINEDAPACHELOG}"}
          }
      }

      output {
          elasticsearch {
              hosts => ["172.16.68.169:9200"]
              index => "messages-log-%{+YYYY.MM.dd}"
          }
      }

    
    使用配置文件运行logstash
    # /usr/local/logstash-6.3.2/bin/logstash -f /usr/local/logstash.3.2/conf.d/elk.conf  &

    执行的结果(查看elasticsearch集群):

     2.3 Kibana安装

    # tar zxf kibana-6.3.2-linux-x86_64.tar.gz  -C /usr/local/
    # cd /usr/local/kibana-6.3.2-linux-x86_64/
    
    # vim config/kibana.yml
    
    server.port: 5601
    server.host: "172.16.68.169"
    elasticsearch.hosts: ["http://172.16.68.169:9200"]
    kibana.index: ".kibana"

    启动Kibana

    # /usr/local/kibana-6.3.2-linux-x86_64/bin/kibana &
    
    # netstat  -antp |grep 5601
    tcp        0      0 172.16.68.169:5601      0.0.0.0:*               LISTEN      6070/node
    

      

    参考:https://www.cnblogs.com/cheyunhua/p/11238489.html

              https://www.cnblogs.com/xiaojianfeng/p/9435507.html

              https://www.cnblogs.com/zsql/p/13164414.html

     

  • 相关阅读:
    tomcat 无法clean 的bug
    Open Type vs Open resource
    Cannot change version of project facet Dynamic Web Module to 2.4.
    股权稀释
    Java的各种打包方式
    记忆
    【转】给女儿的信
    买房费用
    工作职场
    装修-水电改造
  • 原文地址:https://www.cnblogs.com/lina-2159/p/13640244.html
Copyright © 2011-2022 走看看