DevOps

Elasticsearch Logstash Kibana

2016-10-17  本文已影响66人  JackyBA

ref: Learning ELK Stack

[Elasticsearch](https://www.elastic.co/products/elasticsearch)

Note:
《Learning ELK Stack 中文版》中由于版本问题导致多处配置和命令等无效或不正确,因此应参考官方文档。

ElasticSearch v5

ref: ElasticSearch 5学习(1)——安装Elasticsearch、Kibana和X-Pack

Elasticsearch

Elasticsearch 是一个基于Apache Lucene 的分布式开源搜索引擎

Official Documentation:
https://www.elastic.co/downloads/elasticsearch/

Installation Steps
  1. Download and unzip
  2. Run
    $ bin/elasticsearch
  3. Run
    $ curl -X GET http:localhost:9200/

Elasticsearch 插件

Kopf 是用JavaScript, AngularJS, JQuery和Twitter Bootstrap写的一个简单的Elasticsearch Web管理工具。

  1. 安装
    $ bin/plugin install lmenezes/elasticsearch-kopf
  2. 访问
    http://localhost:9200/_plugin/kopf/
Elasticsearch 基本概念

主分片和副分片驻留在不同的节点上,以便于满足多个请求情况下的故障转移和负载平衡。

节点可以有以下3中角色:

  1. 数据节点:索引,搜索文档;
    node.master= false
    node.data = true
  2. 主节点:管理集群;
    node.master= true
    node.data = false
  3. 路由节点/负载平衡节点:负载均衡,路由搜索请求,将文档索引到适当的节点;
    node.master= false
    node.data = false
Elasticsearch RESTful API

使用命令行查询集群的常见语法:
$ curl -X <VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>/<OPERATION_NAME>?<QUERY_STRING>' -d '<BODY>'

  1. 查看集群中所有可用索引:
    $ curl -X GET 'http://localhost:9200/_cat/indices/?v'
  2. 查看集群中所有节点
    $ curl -X GET 'http://localhost:9200/_cat/nodes/?v'
  3. 查看字段并排序
    $ curl -X GET 'http://localhost:9200/logstash-*/_search?pretty' -d '{"query":{"match_all":{}}, "sort":{"open":{"order":"desc"}}, "size":3}'

Logstash

Logstash 是一个数据管道,主要用来收集、解析和分析大量结构化和非结构化的数据以及各各种系统产生的事件。

Official Documentation: https://www.elastic.co/guide/en/logstash/current/index.html/

运行 Logstash
配置Logstash
# 这是一条注释
input {}
filter {}
output {}
# Logstash config
# logstash.cfg

# input
input {
    file {
    path => "/User/Jacky/Projects/Scripts/google.csv"
    start_position => "beginning"
    }
}

# filter
filter {
    csv {
    columns => ["date_of_record", "open", "high", "low", "close", "volume", "adj_close"]
    separator => ","
    }

    date {
    match => ["date_of_record", "yyyy-MM-dd"]
    target => "@timestamp"
    }

    mutate {
    convert => ["open","float"]
    convert => ["high","float"]
    convert => ["low","float"]
    convert => ["close","float"]
    convert => ["volume","float"]
    convert => ["adj_close","float"]
    }

}

# output
output {
    elasticsearch {
    hosts => ["localhost"]
    }
}

特别注意 output配置,如果配置为:

output {
    elasticsearch {
        host => "localhost:9200"
    }
}

会报错,此处请参考Doc:
https://www.elastic.co/guide/en/logstash/current/advanced-pipeline.html#indexing-parsed-data-into-elasticsearch/

Logstash 插件类型
  1. 输入 input
  2. 过滤器 filter
  3. 输出 output
  4. 编解码器 codec
grok 插件

gork模式:
https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns/

Logstash 所有过滤插件列表和最新文档:
https://www.elastic.co/guide/en/logstash/current/filter-plugins.html

Kibana

Kibana 是一个基于Apache 2.0 开源协议的开源数据可视化平台

  1. 运行
    $ bin/kibana
  2. 访问
    http://localhost:5601/
创建可视化视图
上一篇 下一篇

猜你喜欢

热点阅读