部署EBK进行日志收集与性能监控

· Read in about 2 min · (245 Words)
dev work

关于EBK

EBK 指的是elastic公司开发的一系列软件的简称,其分别代表:Elasticsearch, Beats与Kibana这三种软件。

其中:

  • Elasticsearch 主要是用来存储数据,并根据索引进行检索数据。
  • Beats 其实是几个软件的组合(Filebeat, Metricbeat, Packetbeat, Winlogbeat),是用于收集数据并输出到某一个地方。
  • Kibana 是用来展示数据的一个UI界面。

如何使用

关于EBK如何使用可以参考下图:

部署

环境:Ubuntu 16.04 64bit

  1. Elasticsearch(5.2)
    Elasticsearch安装需要先安装Java

    # 1. install java
    sudo add-apt-repository -y ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get -y install oracle-java8-installer
    
    # 2. install elasticsearch
    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
    sudo apt-get update && sudo apt-get install elasticsearch
    
  2. Kibana

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
    sudo apt-get update && sudo apt-get install kibana
    
  3. Beats
    注意,这里使用的是5.5.1版本的beats,如果版本号有变,请自行替换。

配置

  1. Elasticsearch
    Elasticsearch的配置文件位置是/etc/elasticsearch/elasticsearch.yml,修改此文件来进行自定义配置。

    # 编辑 /etc/elasticsearch/elasticsearch.yml
    network.host: 192.168.10.3    # 将绑定host修改,以便外界可以访问
    
  2. Kibana

    # 编辑 /etc/kibana/kibana.yml
    server.host: "192.168.10.2"   # 将绑定host修改成本机IP地址或者0.0.0.0,外界才能访问
    
  3. Filebeat

    # 编辑 /etc/filebeat/filebeat.yml
    #- input_type: log
      paths:
          - /var/realpath/*.log
      tags: ["api", "dev"]
      fields:
        service: api
        env: dev
    output.elasticsearch:
    # Array of hosts to connect to.
      hosts: ["192.168.10.3:9200"]    # 更改连接的ES主机端口
    

    测试配置文件:filebeat -c filebeat.yml -configtest

  4. Metricbeat

    # 编辑 /etc/metricbeat/metricbeat.yml
    output.elasticsearch:
      # Array of hosts to connect to.
      hosts: ["192.168.10.3:9200"]    # 更改连接的ES主机端口
    

运行

  1. Elasticsearch

    sudo systemctl daemon-reload
    sudo systemctl enable elasticsearch.service
    sudo systemctl start elasticsearch.service
    
  2. Kibana

    sudo systemctl daemon-reload
    sudo systemctl enable kibana.service
    sudo systemctl start kibana.service
    

数据展示

当数据采集后,需要通过kibana进行展示,kibana主要组件有:Discover, Visualize, Dashboard。 其中,Discover是Visualize和Dashboard的基础。

Discover 组件有一个搜索框,你可以在里面进行搜索过滤数据。在进行搜索时,可以使用Lucene或者Elasticsearch的语法。

其中Lucene语法类似于下面这条:

name: hello AND type: log AND beat.hostname: api-host

当你搜索到你想要的数据之后,可以选择Save Search来保存此次搜索条件,创建一个搜索分类。

当创建完搜索后,可以去配置 Visualize 和 Dashboard。

资料引用

  1. Elastic getting-started
  2. Install ELK on Ubuntu 16.04
  3. ELK中文文档

lucene syntax es syntax

Comments