帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

ELK on QingCloud AppCenter 用户指南

简介

ELKElasticsearchKibanaLogstash 这三个软件集合的简称, Elasticsearch 是一个实时分布式搜索和分析引擎, Kibana 则为 Elasticsearch 提供了强大的可视化界面, Logstash 为用户提供数据采集、转换、优化和输出的能力。 ELK 目前被广泛应用于实时日志处理、全文搜索和数据分析等领域。

ELK on QingCloud 对 Elasticsearch、Kibana 与 Logstash(后两者为可选)三者进行了很好的集成后以 AppCenter 云应用的形式交付给用户使用。

ELK on QingCloud 功能概览

  • ELK 版本全新升级到 6.7.1
  • 为 Elasticsearch 提供了更强大的分词功能支持,集成了 IK Analysis 中文分词插件,并为该插件提供了 结巴分词 的词库和 IK 自带的搜狗词库,同时还支持用户上传自定义词典
  • Elasticsearch 与 青云对象存储 QingStor 集成。Elasticsearch 集成了官方 S3 Repository 插件,可通过标准 S3 接口与青云对象存储 QingStor 集成,以便生成 snapshot 并将其存储到到 QingStor 中,并可以在必要时从中恢复
  • Logstash 与 青云对象存储 QingStor 集成,用户可以很方便地从 QingStor 对象存储通过内置的 官方插件 logstash-input-s3 输入数据到 Elasticsearch 或者通过 logstash-output-s3 插件将输入到 logstash 的数据导出到青云对象存储
  • Logstash 提供自定义插件能力
  • Kibana 节点集成 ES 反向代理和负载均衡,并提供 Elasticsearch 节点失效时的故障转移能力
  • Kibana 节点提供 Cerebro、ES Head、ElasticHD、Elasticsearch-HQ、ES SQL 等可视化管理工具,方便用户通过浏览器使用 Elasticsearch
  • 所有节点内置日志查看工具,用户可通过浏览器直接访问日志文件,方便定位问题
  • 集群关键指标监控
  • 一键集群安装部署
  • 支持节点横向和纵向扩容
  • 从 1.2.1 版本开始集成 elasticsearch-analysis-pinyin 插件

ELK on QingCloud 集群组件说明

ELK on QingCloud 为用户提供了以下组件,用以服务集群其他组件或直接为用户提供服务。

  • ES Head 提供一个Elasticsearch cluster的web控制台,用户可以在这个控制台里很方便的查看集群拓扑架构、监控集群状态,进行节点和索引级别的各种操作,以及进行数据的浏览、查询、分析等。在浏览器输入网址 http://<Kibana节点IP>:9100/ 即可使用该插件提供的集群控制台。进入后请输入http://<任意Elasticsearch节点IP>:9200/后,点击连接即可查看Elasticsearch集群状态。
  • elasticsearch-sql 使用户可以使用SQL来进行Elasticsearch查询,并且可以在SQL中使用Elasticsearch的函数。在浏览器输入网址 http://<Kibana节点IP>:8080/ 即可使用该插件提供的查询页面。此插件在1.2.1版本加入。
  • Cerebro 的前身是kopf,她是一个开源的Elasticsearch Web管理工具,她提供了查看集群节点资源使用状态、查看集群分片状态、创建索引、修改集群设置、创建仓库及快照等功能,为用户提供了极大的便利。在浏览器输入网址 http://<Kibana节点IP>:9000/ 即可使用该插件提供的集群控制台。进入后请输入http://<任意Elasticsearch节点IP>:9200/后,点击Connect即可查看Elasticsearch集群状态。此插件在1.2.1版本加入。
  • ElasticHD 是一个Elasticsearch可视化管理工具, 支持ES监控、实时搜索,Index template快捷替换修改,索引列表信息查看,SQL converts to DSL等功能。在浏览器输入网址 http://<Kibana节点IP>:9800/ 即可使用该插件提供的集群控制台。
  • Elasticsearch-HQ 是一个 ES 可视化监控和管理工具,可在浏览器打开 http://<Kibana 节点 IP>:5000 使用。
  • Caddy 是一个支持 HTTP/2 的跨平台 Web 服务器,除了日志查看功能,还为 Logstash 节点提供上传分词和停止词词典功能,为 Elasticsearch 节点提供上传同义词词典功能。Caddy运行在集群节点的80端口,用户可通过 http://[节点IP]/ 查看日志。
  • HAProxy 是一个高性能的负载均衡软件,部署在 Kibana 节点上,为我们提供 Elasticsearch 的负载均衡和故障转移功能。建议用户通过集群的 VIP (绑定在 Kibana 节点上)访问 Elasticsearch 服务(http://[VIP]:9200/)。

    ELK 5.5.1 - QingCloud 1.2.8 及之前版本使用 Nginx 。

  • Keepalived 为 HAProxy 提供故障转移能力,防止 HAProxy 单点失败,确保 http://[VIP]:9200/ 的高可用。

    注意:如需此功能,需要配置两个 Kibana 节点。此组件从版本 ELK 6.7.1 - QingCloud 2.0.0 起开始支持。

部署ELK服务

基本设置

基本设置

填写服务名称描述,选择版本。如快速配置不能满足要求,可选择“自定义”逐项设置。

Elasticsearch 节点设置

Elasticsearch节点设置

填写 Elasticsearch 节点CPU、内存、节点数量、主机类型及数据盘大小等配置信息。

Elasticsearch 专有主节点设置

Elasticsearch专有主节点设置

填写 Elasticsearch 专有主节点CPU、内存、节点数量、主机类型及数据盘大小等配置信息。

Kibana节点设置

Kibana节点设置

填写 Kibana 节点CPU、内存、节点数量及主机类型等配置信息。

Logstash节点设置

Logstash节点设置

填写 Logstash 节点CPU、内存、节点数量、主机类型及数据盘大小等配置信息。

网络设置

网络设置

出于安全考虑,所有的集群都需要部署在私有网络中,请选择自己创建的已连接路由器的私有网络

服务环境参数设置

服务环境参数设置

提供了多项自定义参数供用户填写,可以点击展开配置对所有配置项进行修改,也可使用默认值并在集群创建后按需进行修改。

用户协议

阅读并同意青云 AppCenter 用户协议之后即可开始部署应用。

ELK on QingCloud 使用简介

查看服务详情

查看服务详情

创建成功后,点击集群列表页面相应集群可查看集群详情。可以看到集群分为 Elasticsearch 节点、Elasticsearch 专有主节点、Kibana 节点和 Logstash 节点等角色:

  • Elasticsearch 节点管理所有数据;
  • Elasticsearch 专有主节点管理集群状态,生产环境建议配置三个 ES 专有主节点保证 ES 集群的高可用;
  • Logstash 节点可通过增加节点数的方式来满足上层应用的故障转移需求;
  • Kibana 节点提供 Kibana 以及 Cerebro 等 Elasticsearch 可视化管理工具,并且绑定了 VIP 保证 Elasticsearch 服务的高可用。

Elasticsearch 节点可提供远程扩展字典及热更新,Logstash 节点提供用户自定义插件能力,具体使用方法将在下文中详述。

ELK Architecture

ELK 提供的是 HTTP RESTful 接口,可以使用很多兼容的工具进行交互。为了方便测试,下文使用 curl 命令行工具与 ELK 进行交互。下文使用的 IP 地址说明如下,请根据实际情况修改:

示例 IP 地址 说明
192.168.2.2 Elasticsearch 节点 IP
192.168.2.7 Logstash 节点 IP
192.168.2.9 Kibana 节点 IP

Elasticsearch 基本用法

Elasticsearch 用索引(index)来组织数据,用户向 Elasticsearch 发送数据时需要指定目标索引,比如如下命令把数据(访问日志)以 JSON 格式发送到了名为 access-log-2019.05.13 的索引(索引名称可根据实际情况指定):

Elasticsearch 从 6.x 版本起,新创建的 index 不再支持多 mapping types(在老版本创建的可以在 6.x 版本继续使用),官方建议使用 _doc 作为唯一的 mapping type,更多详情请查阅 官方说明

curl -H "Content-Type: application/json" "192.168.2.2:9200/access-log-2019.05.13/_doc" -d'{
  "from": "10.10.10.10",
  "success": true
}'

从 Elasticsearch 查询数据时也需要指定目标索引,比如如下命令从名为 access-log-2019.05.13 的索引查询:

curl -H "Content-Type: application/json" "192.168.2.2:9200/access-log-2019.05.13/_search?q=*"

Logstash 基本用法

Logstash 可通过服务器端的数据处理流水线(pipeline),对来自多种数据源的数据进行转换后,发送到指定的多种目标(比如 Elasticsearch,QingStor 对象存储等)。

Logstash 流水线

本应用默认开启了 HTTP Input 插件(运行在 Logstash 节点的 9700 端口),比如下面的命令通过此插件把数据(字符串)发送到 Logstash(随后经过处理, Logstash 最终把数据发送到 Elasticsearch):

curl -d "This is a test message." 192.168.2.7:9700 # 发送测试数据

curl 192.168.2.2:9200/logstash-*/_search # 查询

Kibana 基本用法

Kibana 是 Elasticsearch 的可视化工具,可通过浏览器访问。在浏览器中输入 http://192.168.2.9:5601/ 打开 Kibana,首先点击左侧栏的 Management 菜单,然后点击 Create index pattern 按钮来创建index pattern,默认情况下,Kibana 认为您要访问的是通过 Logstash 导入 Elasticsearch 的数据。这时候您可以用默认的 logstash-* 作为您的 index pattern。

如果显示 “Unable to fetch mapping. Do you have indices matching the pattern?”,可参考 Logstash 基本用法 发送一些数据。

配置index

配置index

index pattern 创建成功后可点击左侧栏的 Discover 菜单查看导入的日志。

关于Kibana更多的使用方式,请参考官方文档


ELK常被联合使用于日志收集,存储,检索及分析领域,场景一和场景二将详解 ELK on QingCloud 在这方面的应用

为了方便测试,这两个场景选择了logstash http input插件输入日志数据,在实际应用中用户可以选择多种logstash input插件从各种数据源获取日志数据,比如文件、log4j、syslog、QingStor对象存储、Kafka等

此外,logstash默认将日志输出到Elasticsearch中,用户可以通过output_es_content配置项,对这个输出过程进行定制。用户还可以通过output_conf_content配置项,选择将日志输出到除了Elasticsearch之外的其他位置,比如QingStor对象存储

场景一:英文日志搜索场景

场景一为用户呈现了英文日志从Logstash导入到Elasticsearch,再通过Kibana进行搜索的完整的过程。

第一步,在集群详情页面找到任意Logstash节点的IP地址。参照 Logstash 基本用法,执行如下命令将一条模拟日志发往Logstash:

curl -d "[09-07 15:57:26]: call_es_api [:10105/_cluster/health] Exception [error: [Errno -5] No address associated with hostname], try to sleep 10 second." 192.168.2.7:9700

第二步,参照 Kibana 基本用法 在浏览器中访问Kibana节点并配置 index pattern:

点击左侧的 Discover 菜单项,显示近期接收到的日志,在搜索栏中输入“error”,点击右侧的“搜索”按钮。如图,“error”被高亮显示,测试成功。

Kibana Search

场景二:中文日志搜索场景

场景二为用户呈现了中文日志从 Logstash 导入到 Elasticsearch,再通过 Kibana 进行搜索的完整的过程。

注意:版本 ELK 6.7.1 - QingCloud 2.0.0 已内置用于指定 ik 分词器的模板文件,用户可以直接使用;如果是以前的版本,需要事先把 模板文件 下载到 Logstash 节点的 /data/elasticserach/dicts/ 目录下再进行后面的操作,否则 Logstash 会因找不到模板文件而无法启动(可以直接登录到节点下载,也可以通过如下命令上传,注意 URL 最后的 / 不能省略:

curl -sL https://docs.qingcloud.com/product/big_data/elk/logstash.json |
  curl -F "file=@-;filename=logstash.json" 192.168.2.7/dicts/

第一步,在集群详情页面,切换到参数配置页面,选择 Logstash 节点,修改output_es_content配置项为如下,点击保存。

template_overwrite => true
template => "/data/elasticsearch/dicts/logstash.json"

第二步,重启 Logstash 节点:在集群列表页面右键点击您的 ELK 集群,点击重启,选择 Logstash 节点,点击提交,此时 Logstash 节点将会重启。

第三步,待 Logstash 重启完成后,向 Logstash 发送数据:

curl -d "中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首" 192.168.2.7:9700

第四步,参照 Kibana 基本用法 在浏览器中访问Kibana节点并配置 index pattern。

点击左侧的 Discover 菜单项,显示近期接收到的日志,在搜索栏中输入“中国”,点击右侧的“搜索”按钮。如图,“中国”被高亮显示并且中间没有空格分隔,测试成功。

Kibana Search CN


场景三:使用 IK Analysis 插件和自定义字典进行中文分词

场景三为用户呈现了直接调用 Elasticsearch API 的中文分词使用方式,为了在 Elasticsearch 中获取更好的中文分词效果,ELK on QingCloud 集成了 IK Analysis 中文分词插件,并为该插件提供了结巴分词的词库和 IK 自带的搜狗词库,同时还支持用户上传自定义词典。IK Analysis 插件用法请参考 IK Analysis plugin

第一步,把自定义字典上传到可访问到的 HTTP 服务器上,本示例将通过如下命令上传到某个 Logstash 节点,用户也可以放在其他任意 HTTP 服务器,只要 Elasticsearch 节点可以访问到即可:

注意:URL最后的 / 不能省略

curl -F "file=@-;filename=mydict.dic" 192.168.2.7/dicts/ <<- EOF
青云
优帆科技
优帆
EOF

上传成功后可通过访问 192.168.2.7/dicts/mydict.dic 来查看上传的字典文件。

第二步,在集群详情页面中切换到配置参数标签页,选择”Elasticsearch节点”进行参数配置,设置remote_ext_dict设置项为用户自定义字典的可访问 URL(如示例的 http://192.168.2.7/dicts/mydict.dic)后保存, 然后在集群列表页面 重启 集群中的Elasticsearch节点。

第三步,执行如下命令测试中文分词功能:

INDEX=chinese-news # 可根据实际情况调整
MAPPING_TYPE=_doc      # ELK 6.7.1 - QingCloud 2.0.0 以前版本请去掉开头的下划线,即:doc

# 创建 $INDEX 索引
curl -XPUT 192.168.2.2:9200/$INDEX; echo

# 创建 mapping
curl -s -H "Content-Type: application/json" 192.168.2.2:9200/$INDEX/$MAPPING_TYPE/_mapping -d'
{
    "properties": {
        "content": {
            "type": "text",
            "analyzer": "ik_max_word",
            "search_analyzer": "ik_smart"
        }
    }
}'; echo

# 索引 一些 文档
postData() {
  curl -H "Content-Type: application/json" -d'{"content":"'$1'"}' 192.168.2.2:9200/$INDEX/$MAPPING_TYPE; echo
}

sampleData="
美国留给伊拉克的是个烂摊子吗
公安部:各地校车将享最高路权
中韩渔警冲突调查:韩警平均每天扣1艘中国渔船
中国驻洛杉矶领事馆遭亚裔男子枪击,嫌犯已自首
北京优帆科技有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础云服务商
青云的12字决:从初创企业到云生态的蜕变
"

for data in $sampleData; do postData "$data"; done

# 高亮查询
query() {
  curl -s -H "Content-Type: application/json" 192.168.2.2:9200/$INDEX/$MAPPING_TYPE/_search -d@- <<- EOF |
  {
      "query" : { "match" : { "content" : "$1" }},
      "highlight" : {
          "pre_tags" : ["<tag1>", "<tag2>"],
          "post_tags" : ["</tag1>", "</tag2>"],
          "fields" : {
              "content" : {}
          }
      }
  }
EOF
  grep --color "<tag1>[^<]*</tag1>"
}

words="
中国
青云
优帆科技
"
sleep 5; for word in $words; do query "$word"; done

第五步,查看中文分词结果,结果如下图红色部分所示既为成功。即”中国”、”青云”、”优帆科技”被当做固定的中文分词表示。

中文分词结果示意图

第六步,可根据实际需要随时更新用户自定义字典,Elasticsearch 会自动检测 HTTP 响应头中的 Last-Modified 和 ETag 的变化,来进行分词字典的热更新。

场景四:同义词词典配置与同义词搜索

首先需要上传同义词词典到所有 Elasticsearch 节点:

第一步,按照每行一组同义词、词语之间以 半角 逗号 , 分隔的格式准备名为 synonym.txt 的同义词词典文件,如:

番茄,西红柿 => 西红柿,番茄

详细的synonym.txt文件配置说明请参考官方文档

第二步,通过如下命令在 所有 Elasticsearch 节点和 Elasticsearch 专有主节点上传词典:

注意: URL最后的 / 不能省略

curl -T synonym.txt http://192.168.2.2/analysis/

上传成功后可通过访问 http://192.168.2.2/analysis/synonym.txt 来查看同义词文件。

第三步,重启集群中的 Elasticsearch 节点和专有主节点,待集群恢复 green 状态,可通过以下地址查看(等待 status 字段变为 green ):

curl 192.168.2.2:9200/_cluster/health?pretty

第四步,进行同义词搜索测试。

使用如下bash脚本测试同义词搜索功能:

INDEX=synonym-test
MAPPING_TYPE=_doc      # ELK 6.7.1 - QingCloud 2.0.0 以前版本请去掉开头的下划线,即:doc

# 创建 索引
curl -H "Content-Type: application/json" -XPUT http://192.168.2.2:9200/$INDEX -d'
{
  "index": {
    "analysis": {
      "analyzer": {
        "by_smart": {
          "type": "custom",
          "tokenizer": "ik_smart",
          "filter": ["by_tfr","by_sfr"],
          "char_filter": ["by_cfr"]
        },
        "by_max_word": {
          "type": "custom",
          "tokenizer": "ik_max_word",
          "filter": ["by_tfr","by_sfr"],
          "char_filter": ["by_cfr"]
        }
      },
      "filter": {
        "by_tfr": {
          "type": "stop",
          "stopwords": [" "]
        },
        "by_sfr": {
          "type": "synonym",
          "synonyms_path": "analysis/synonym.txt"
        }
      },
      "char_filter": {
        "by_cfr": {
          "type": "mapping",
          "mappings": ["| => |"]
        }
      }
    }
  }
}'

# 创建 mapping
curl -H "Content-Type: application/json" -XPUT http://192.168.2.2:9200/$INDEX/$MAPPING_TYPE/_mapping -d'
{
  "properties": {
    "content": {
      "type": "text",
      "analyzer": "by_max_word",
      "search_analyzer": "by_smart"
    }
  }
}'

# 索引 一些 文档
postData() {
  curl -H "Content-Type: application/json" -d'{"content":"'$1'"}' 192.168.2.2:9200/$INDEX/$MAPPING_TYPE; echo
}

phrases="
我有一个西红柿
番茄炒蛋饭
西红柿鸡蛋面
"
for phrase in $phrases; do postData $phrase; done

# 高亮 查询
sleep 5; curl -s -H "Content-Type: application/json" -XPOST http://192.168.2.2:9200/$INDEX/_search  -d'{
    "query" : { "match" : { "content" : "番茄" }},
    "highlight" : {
        "pre_tags" : ["<tag1>", "<tag2>"],
        "post_tags" : ["</tag1>", "</tag2>"],
        "fields" : {
            "content" : {}
        }
    }
}' | grep --color "<tag1>[^<]*</tag1>"

第五步,查看同义词搜索结果,如下图所示,包含”西红柿”和”番茄”的文档均被搜索出来。

查看同义词搜索结果


QingStor 对象存储为用户提供了云端可无限扩展的通用数据存储服务,具有安全可靠、简单易用、高性能、低成本等特点。 用户可以将数据、日志、静态资源等多种文件类型,通过多种方式上传至QingStor对象存储中,以满足日常数据存储、归档、分析等需求。 为了更好的满足用户的需求,青云提供了Elasticsearch、Logstash等与QingStor对象存储的集成功能。

场景五:Elasticsearch 与 QingStor 对象存储集成

Elasticsearch可以通过快照(snapshot)将指定index甚至整个cluster的数据存储到某远端仓库(repository), 并能从该远端仓库存储的快照中恢复数据。本应用的 Elasticsearch 可以通过 S3 Repository Plugin 与 QingStor 对象存储集成以便生成快照将数据存储到 QingStor 中,并可以在必要时从中恢复。

第一步,创建一个repository:

curl -H "Content-Type: application/json" -XPUT 192.168.2.2:9200/_snapshot/repo-qingstor -d'{
  "type": "s3",
  "settings": {
    "endpoint": "s3.pek3a.qingstor.com", 
    "access_key": "<YourAccessKey>",
    "secret_key": "<YourSecretKey>",
    "bucket": "my_qingstor_bucket"
  }
}'
参数 说明
repository 名称,如示例中的 repo-qingstor
endpoint s3.[region].qingstor.com (请根据实际情况就近选择,目前支持:pek3a, pek3b, sh1a,gd2,请参阅 区域及访问域名 获取最新列表)
access_key 青云账号关联的access_key
secret_key 青云账号关联的secret_key
bucket QingStor上bucket名称my_qingstor_bucket(如果不存在将创建出来)

更多参数的详细说明请参阅 官方文档

第二步,通过如下命令查看、删除已有的 repository:

curl 192.168.2.2:9200/_snapshot/repo-qingstor    # 获取指定repository信息

curl "192.168.2.2:9200/_snapshot/repo*,*backup*" # 获取所有满足特定条件的repository信息

curl 192.168.2.2:9200/_snapshot/_all             # 获取所有repository信息

curl -XDELETE 192.168.2.2:9200/_snapshot/repo-qingstor # 删除repository

第三步,用如下命令创建快照(该快照将会存放在之前指定的 QingStor 的 bucket my_qingstor_bucket 中):

# 创建包含集群所有index的snapshot
curl -H "Content-Type: application/json" -XPUT "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13?wait_for_completion=true"

# 创建包含集群指定index(此处为index_1,index_2)的snapshot
curl -H "Content-Type: application/json" -XPUT "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13?wait_for_completion=true" -d'
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false
}
'

参数 wait_for_completion 为 true 时表示该命令将会在快照创建完成返回; false 表示该命令将会在快照初始化完成就返回

第四步,通过如下命令查看、删除快照:

curl "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13" # 查看指定repository中某snapshot信息

curl "192.168.2.2:9200/_snapshot/repo-qingstor/_all"              # 查看指定repository中所有snapshot信息

curl -XDELETE "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13" # 删除snapshot

第五步,通过如下命令恢复存储在 QingStor 的快照到 Elasticsearch 集群:

# 恢复包含集群所有index的snapshot
curl -H "Content-Type: application/json" -XPOST "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13/_restore"

# 恢复包含集群指定index(此处为index_1,index_2)的snapshot
curl -H "Content-Type: application/json" -XPOST "192.168.2.2:9200/_snapshot/repo-qingstor/backup-2019.05.13/_restore" -d'
{
  "indices": "index_1,index_2",
  "ignore_unavailable": true,
  "include_global_state": false,
  "rename_pattern": "index_(.+)",
  "rename_replacement": "restored_index_$1"
}
'

注意:要恢复的index必须是集群中处于关闭状态的index, 处于打开状态的index将会提示无法恢复

第六步,快照由于并没有和具体的集群信息绑定,所以也可以恢复到另一个不同的集群,用户可以用这种方法在不同集群之间通过 QingStor 导入导出数据。

注意:新集群的版本必须和老集群一致或者更新。

  • 先在目标集群中生成和源集群同样的 repository(必须使用同样的参数,具体方法请参考 第一步 )。

  • 在新的集群创建好与老集群相同的 repository 后,就可以通过 第五步 中提到的命令(需要把 URL 地址改成新集群里节点的地址)将老集群的数据恢复到新集群上去。

    更详细的有关集群快照的生成和恢复的信息请参考 Elasticsearch官方文档

注意:如果 ES 集群和 QingStor 位于同一区域进行数据迁移耗公网流量,如果不在同一区域则需要消耗公网流量,比如位于 北京3区-A 的 ES 集群可以选择同一区域的 QingStor (https://s3.pek3a.qingstor.com)避免产生公网流量。

场景六:Elasticsearch 集群日志查看

ELK 6.7.1 - QingCloud 2.0.0 版本可直接通过浏览器访问 Elasticsearch 节点的 80 端口 http://192.168.2.2/logs/ 查看,以前的版本请按下面的步骤操作。

第一步,在集群列表页面,在ELK集群上点击右键选择 自定义服务 > 收集ES日志,然后选择 Elasticsearch节点 点击提交。

收集ES日志

第二步,任务执行成功后可通过浏览器访问http://<Logstash节点IP>/logs/查看对应ES节点的日志。

注解 如存在多个Logstash节点请在集群详情页面切换到参数配置界面,配置Elasticsearch节点的logstash_node_ip配置项。


场景 十一 将介绍如何对 ELK on QingCloud 中的logstash进行个性化定制及使用

场景七:Logstash 与 QingStor 对象存储集成

Logstash 支持从 QingStor 对象存储输入数据到 Elasticsearch,或者从 Elasticsearch 导出数据到 QingStor 对象存储。

请先在 青云控制台 申请 Access Key创建Bucket

第一步,在集群详情页面,切换到参数配置页面,选择 Logstash 节点,修改input_conf_content配置项为如下,点击保存。

s3 {
    access_key_id => "access key id"
    secret_access_key => "secret access key"
    endpoint => "https://s3.pek3a.qingstor.com"
    bucket => "logstash-input"
    prefix => "prefix/"
}

请根据实际情况调整上面的参数,比如按区域就近指定 endpoint 地址等,关于参数的详情可参考其 官方文档

ELK 6.7.1 - QingCloud 2.0.0 之前的版本请使用 Logstash Inputs QingStor 插件参考如下示例进行配置:

qingstor {
    access_key_id => "your_access_key_id"
    secret_access_key => "your_secret_access_key"
    bucket => "bucket_name"
    region => "pek3a"
    sincedb_path => "~/.sincedb"
}

请根据您的具体配置替换上面的配置,其他配置参数详情请参见手册

第二步,重启 Logstash 节点。

在集群列表页面右键点击您的 ELK 集群,点击重启,选择 Logstash 节点,点击提交,此时 Logstash 节点将会重启。

第三步,保存成功后请在您配置的 bucket 里上传日志文件。

第四步,参照 Kibana 基本用法 使用浏览器输入 http://192.168.2.9:5601/ 打开 Kibana 界面,配置index pattern后,既可在Discover查看到导入的日志。

Logstash 默认的 output 是 Elasticsearch, 并自动配置好了 Elasticsearch 集群的 hosts 选项。如果需要在 output 到 Elasticsearch 的过程中指定其他参数, 可以在output_es_content中指定,比如:

	action => "update"
	index => "my-first-index"

如还需输出到其他位置,可以通过output_conf_content指定,比如通过如下配置将数据上传到 QingStor 对象存储:

s3 {
    access_key_id => "access key id"
    secret_access_key => "secret access key"
    endpoint => "https://s3.pek3a.qingstor.com"
    bucket => "bucket name"
    prefix => "prefix/"
    rotation_strategy => "size_and_time"
    codec => "json"
    size_file => 2048
    time_file => 5
    encoding => "gzip"
}

更多参数详情可参考其 官方文档

ELK 6.7.1 - QingCloud 2.0.0 之前的版本请使用 Logstash Outputs QingStor 插件参考如下示例进行配置:

qingstor {
    codec => "json"
    access_key_id => <your-access_key_id>
    secret_access_key => <your-secret-access_key>
    bucket => <bucket-name>
    region => "pek3a"
    encoding => "gzip"
    rotation_strategy => "size_and_time"
    file_size => 10485760
    file_time => 10
}

关于Logstash-input/output-qingstor插件的更多细节信息请查看相关文档

场景八:Logstash 插件安装使用方法

注意:此处仅讨论在线安装,需要有公网连接,如需离线安装,请参考 官方文档。下面以 logstash-output-influxdb 插件的安装为例,其他插件安装方式类似。

第一步,在集群列表页面的Logstash节点上点击节点ID右侧的显示器图标,打开Web终端。输入默认用户名 ubuntu、密码 p12cHANgepwD,进入shell。

ELK 6.7.1 - QingCloud 2.0.0 之前的版本请继续输入命令 sudo su 切换到 root 用户。

第二步,运行如下命令下载 logstash-output-influxdb 插件:

cd /data/logstash/plugins
git clone https://github.com/logstash-plugins/logstash-output-influxdb.git

第三步,在集群详情页面,切换到参数配置页面,选择Logstash节点,修改gemfile_append_content配置项为如下示例并点击保存:

gem "logstash-output-influxdb", :path => "/data/logstash/plugins/logstash-output-influxdb"

第四步,打开之前的Web终端,执行如下命令安装插件:

cd /usr/share/logstash
logstash-plugin install --no-verify

ELK 5.5.1 - QingCloud 1.2.0 及以前版本请使用如下命令:

sudo docker exec -it $(docker ps -q) logstash-plugin install --no-verify

第五步,在集群详情页面,切换到参数配置页面,选择 Logstash 节点,修改output_conf_content配置项为如下,点击保存。

influxdb {
    data_points => {
        "duration" => "%{data.event.duration}"
    }
    host => '192.168.0.7'
    password => ''
    user => ''
    db => 'elk'
}

请参考相关插件的配置参数进行必要的修改,logstash-output-influxdb相关的配置参数请参考其文档

注意:如您有多个 Logstash 节点,请在所有 Logstash 节点上执行第1、2、4步骤,确保所有 Logstash 节点成功安装相关插件,不然状态会显示不正常。

第六步,重启Logstash节点:

在集群列表页面右键点击您的ELK集群,点击重启,选择Logstash节点,点击提交,此时Logstash节点将会重启。

第七步,参考 Logstash 基本用法 发送一条数据:

curl -d "qingcloud" 127.0.0.1:9700

如成功,则influxdb中将新增一条point,说明插件配置生效,如发现influxdb中没有新增point,请查看logstash日志,位置为/data/logstash/logs/logstash-plain.log

场景九:Logstash自定义插件支持

第一步,在集群列表页面的Logstash节点上点击节点ID右侧的显示器图标,打开Web终端。输入默认用户名 ubuntu、密码 p12cHANgepwD,进入shell。

ELK 6.7.1 - QingCloud 2.0.0 之前的版本请继续输入命令 sudo su 切换到 root 用户。

第二步,用如下命令创建自定义插件,其中 filter 可替换为您想要定制的插件的类型,类型包括 {input, filter, codec, output}abcd 可替换为您要开发的插件的名称,更多详情请参考 官方文档

logstash-plugin generate --type filter --name abcd --path /data/logstash/plugins

ELK 5.5.1 - QingCloud 1.2.0 及以前版本请使用如下命令:

sudo docker exec -it $(docker ps -q) logstash-plugin generate --type filter --name abcd --path /data/logstash/plugins

生成插件

第三步,进入上面生成的插件目录,修改其中的文件,按实际业务需求进行开发,并修改 .gemspec 文件(比如示例 /data/logstash/plugins/logstash-filter-abcd/logstash-filter-abcd.gemspec),把包含 TODOFIXME 的行改成实际内容,否则会导致 Logstash 无法启动。

第四步,在集群列表页面中切换到配置参数标签页,选择”Logstash节点”进行参数配置,点击”修改属性”,根据您的插件类型及参数修改相应的配置项,如示例中,将filter_conf_content修改为abcd {},根据您插件所在位置修改gemfile_append_content,插件位置前缀必须是/data/logstash/plugins,如示例中,将gemfile_append_content修改为gem "logstash-filter-abcd", :path => "/data/logstash/plugins/logstash-filter-abcd",修改后保存即可,如下图为示例中配置的展示。

注意:如您有多个Logstash节点,请在所有Logstash节点上执行第1、2、3步骤,确保所有Logstash节点成功安装相关插件,不然状态会显示不正常。

Logstash参数配置

第五步,重启Logstash节点:

在集群列表页面右键点击您的ELK集群,点击重启,选择Logstash节点,点击提交,此时Logstash节点将会重启。

第六步,参考 Logstash 基本用法 发送一条数据:

curl -d "qingcloud" 192.168.2.7:9700

参照 Kibana 基本用法 在浏览器打开 Kibana 并进行必要配置,点击左侧的Discover菜单项,显示近期接收到的日志,如图,示例中的logstash_filter_abcd成功将原消息中的qingcloud替换为了Hello World!,说明插件配置生效。

日志展示

场景十:Logstash 自定义启动配置文件

默认情况下,logstash的启动配置文件会根据 配置参数Logstash节点input_conf_content、filter_conf_content、output_conf_content、output_es_content 配置项自动生成,如果用户想自定义logstash.conf配置文件,只需在 /data/logstash/config/ 目录创建 logstash.conf.lock 文件,系统就不再覆盖 logstash.conf 文件。

用户通过上述方法修改 logstash.conf 配置文件后,需执行 /usr/share/logstash/sbin/restart.sh 重启 logstash 服务。

如显示 [=[Restart]=] Can't lock the file.,则表示其他操作正在执行,请稍后再次尝试重启命令;

如果重启失败,可查看位于 /data/logstash/logs/logstash-plain.log/var/log/syslog 的日志文件排查原因。

ELK 5.5.1 - QingCloud 1.2.0 及以前版本请使用如下命令:

sudo docker exec -it $(docker ps -q) restart.sh

场景十一:logstash-input-syslog插件使用说明

Logstash 预置了 logstash-input-syslog 插件,通过此插件可在 Logstash 节点上运行 syslog 服务以收集日志。

更多的预置 Logstash 插件请参见 Logstash 预置插件列表

第一步,在集群详情页面,切换到参数配置页面,选择 Logstash 节点,修改input_conf_content配置项为如下,点击保存。

syslog { port => 514 }

请注意不要使用 22、80、9600 端口。

请根据您的具体配置替换上面的配置,其他配置参数详情请参见官方文档

第二步,重启Logstash节点。

在集群列表页面右键点击您的ELK集群,点击重启,选择Logstash节点,点击提交,此时Logstash节点将会重启。

第三步,将syslog日志发送到logstash配置的端口,如本示例登录到 Logstash 节点上使用 logger 命令发送到 514 端口:

logger -n 192.168.2.7 -P 514 "This is a test message for logstash syslog plugin."

第四步,测试插件是否如预期工作,在浏览器中访问Kibana节点提供的Web界面(http://<Kibana节点IP>:5601),默认进入配置索引模式界面,如图,直接点击Create即可,点击左侧的Discover菜单项,显示近期接收到的日志,说明插件配置生效。

syslog

在线伸缩

增加节点

在 ELK App 详情页点击 新增节点 按钮可以增加 Elasticsearch 节点Elasticsearch 专有主节点Kibana 节点Logstash 节点的数量,可以对每个新增节点指定 IP 或选择自动分配。

增加节点

删除节点

可以在 ELK 详情页选中需要删除的节点,然后点击 删除 按钮,删除节点前系统会自动将数据从待删除节点迁移到其他节点,迁移数据如果因各种原因失败,则不会删除节点。

注意ELK 5.5.1 - QingCloud 1.2.2 之前的版本需要人工确保数据是否已经安全转移到其他节点再删除,如操作不当会有数据丢失风险,建议升级到最新版,由系统自动检查。

如确实需要在 ELK 5.5.1 - QingCloud 1.2.2 之前的版本删除节点,注意一次只能删除一个,并且必须等到上个节点删除后且 Elasticsearch 集群完成数据迁移后状态变成 Green 才能删除下一个节点,否则数据可能会丢失。删除节点过程中会锁定 ELK 集群不让对其进行其它生命周期操作。

对于通常规模的集群大概需要1、2分钟的时间恢复到 Green 状态,可通过访问任意 Elasticsearch 节点的 9200 端口来获得集群状态,示例命令为:

curl 192.168.2.2:9200/_cluster/health

也可以通过浏览器访问Kibana节点的9100端口提供的 ES Head 界面或 Kibana 节点的 9800 端口提供的 ElasticHD 界面来查看集群状态。

纵向伸缩

ELK允许分别对各种角色的节点进行纵向的扩容及缩容。

纵向伸缩

监控告警

Elasticsearch 集群监控

为了帮助用户更好的管理和维护ELK集群,我们提供了针对 Elasticsearch 集群的监控指标,可通过点击任意 Elasticsearch 节点右侧的监控按钮来查看。

监控示意图1

监控示意图2

监控示意图3

告警

我们提供了资源和 Elasticsearch 集群级别的告警服务,包括 CPU 使用率、内存使用率、硬盘使用率、JVM 堆占用等。

配置参数

可以通过 配置参数 来定制个性化的ELK服务并进行调优。

修改配置参数

在 ELK 详情页,点击 配置参数 Tab 页,切换到Elasticsearch节点Kibana节点Logstash节点,点击 修改属性,修改完后,需要进行 “保存”。如图所示:

配置参数

注意ELK 6.7.1 - QingCloud 2.0.0 之前的版本在修改 Elasticsearch、Logstash 节点相关配置后需手动重启。

注意事项

安全

Elasticsearch 本身的 API 没有提供安全机制,同时 Elasticsearch 的 API 的功能非常强大,所以强烈不建议通过公网将 Elasticsearch 直接暴露出去,Elasticsearch 需要在应用或者 API 网关后面。 针对Elasticsearch的攻击频发,因此建议用户通过 VPN 的方式而不是端口转发的方式访问集群节点,配置青云VPN的方法详见 用户指南

数据迁移

方法1: 通过 QingStor 对象存储迁移

可借助青云 QingStor 对象存储完成数据迁移(比如原青云大数据平台的 Elasticsearch 用户可通过此方法把数据迁移到新版 ELK on QingCloud 应用后继续使用),具体操作步骤如下:

第一步,根据 部署ELK服务 创建 ELK on QingCloud 集群。

第二步,根据 青云对象存储文档 创建对象存储的Bucket。

第三步,在青云控制台申请API 密钥

第四步,通过如下命令为原青云大数据平台的Elasticsearch集群创建repository。

curl -XPUT 'http://<原青云大数据平台的Elasticsearch集群的某一节点的IP地址>:9200/_snapshot/repo-qingstor/' -d'
{
  "type": "s3",
  "settings": {
    "endpoint": "s3.pek3a.qingstor.com",
    "access_key": "<YourAccessKey>",
    "secret_key": "<YourSecretKey>",
    "bucket": "my_qingstor_bucket"
  }
}
'

上述命令必须指定的几个关键参数包括:

参数 说明
集群节点地址 需替换为具体的IP地址原青云大数据平台的Elasticsearch集群的某一节点的IP地址>
repository repo-qingstor
endpoint s3.pek3a.qingstor.com (请就近选择pek3a, pek3b, sh1a,gd2中的一个)
access_key 青云账号关联的access_key
secret_key 青云账号关联的secret_key
bucket QingStor上bucket名称my_qingstor_bucket(如果不存在将创建出来)

第五步,创建了repository后,用如下命令即可创建名为backup-2019.05.13的快照(该快照将会存放在之前指定的QingStor的bucket my_qingstor_bucket中):

创建包含集群所有index的snapshot
curl -XPUT 'http://<原青云大数据平台的Elasticsearch集群的某一节点的IP地址>:9200/_snapshot/repo-qingstor/migration-2019.05.13?wait_for_completion=true'

第六步,在ELK on QingCloud集群上创建和第四步中相同配置的repository。命令如下:

curl -H 'Content-Type: application/json' -XPUT 'http://<ELK on QingCloud集群的某一节点的IP地址>:9200/_snapshot/repo-qingstor/' -d'
{
  "type": "s3",
  "settings": {
    "endpoint": "s3.pek3a.qingstor.com",
    "access_key": "<YourAccessKey>",
    "secret_key": "<YourSecretKey>",
    "bucket": "my_qingstor_bucket"
  }
}
'

注意!这里只有IP地址需变更为ELK on QingCloud集群的某一节点的IP地址,其他配置应与第四步中的配置完全相同。

第七步,通过如下命令恢复存储在QingStor的快照到ELK on QingCloud集群,完成数据迁移。

curl -H 'Content-Type: application/json' -XPOST 'http://<ELK on QingCloud集群的某一节点的IP地址>:9200/_snapshot/repo-qingstor/migration-2019.05.13/_restore'

注意!目前 QingStor 对象存储只开放了北京3区-A、北京3区-B、上海1区-A和广东2区,这些区内的数据迁移是不耗公网网络流量的,其他区借助对象存储迁移是需要耗费公网流量的。

方法2: 使用elasticdump工具完成迁移

第一步,在任意可以连通两个Elasticsearch集群的主机上安装elasticdump,命令如下:

# 没有nodejs及npm需要手动安装
npm install elasticdump -g

第二步,elasticdump安装成功后,即可进行数据迁移操作,命令如下:

elasticdump --input=http://192.168.0.37:9200 --output=http://192.168.0.24:9200

将192.168.0.37替换为原青云大数据平台的Elasticsearch集群的任意节点的IP地址,将192.168.0.24替换为ELK on QingCloud集群的任意Elasticsearch节点的IP地址。

App 设计说明

用户可通过网页 VNC 登录到 Logstash 节点,安装目录在 /usr/share/logstash

ELK 5.5.1 - QingCloud 1.2.0 及以前版本的 Logstash 运行在 Docker 容器的 /opt/logstash 目录下,用户需先进入 Docker 容器查看 Logstash 文件:

# 执行如下命令进入运行中的CONTAINER中
sudo docker exec -it $(docker ps -q) /bin/bash
# 然后在CONTAINER中执行如下命令即可看到logstash的安装目录
ls
# 执行如下命令可看到其位于/opt/logstash目录下
pwd

本 App 的源码全部开源在 GitHub

Elasticsearch 集成插件列表

  • elasticsearch-analysis-ik
  • elasticsearch-analysis-pinyin (1.2.1加入)
  • repository-s3
  • analysis-icu (1.2.1加入)
  • analysis-kuromoji (1.2.1加入)
  • analysis-phonetic (1.2.1加入)
  • ingest-attachment (1.2.1加入)
  • ingest-geoip (1.2.1加入)
  • ingest-user-agent (1.2.1加入)
  • mapper-murmur3 (1.2.1加入)
  • mapper-size (1.2.1加入)

Logstash 集成插件列表

  • logstash-codec-cef
  • logstash-codec-collectd
  • logstash-codec-dots
  • logstash-codec-edn
  • logstash-codec-edn_lines
  • logstash-codec-es_bulk
  • logstash-codec-fluent
  • logstash-codec-graphite
  • logstash-codec-json
  • logstash-codec-json_lines
  • logstash-codec-line
  • logstash-codec-msgpack
  • logstash-codec-multiline
  • logstash-codec-netflow
  • logstash-codec-plain
  • logstash-codec-rubydebug
  • logstash-filter-aggregate
  • logstash-filter-anonymize
  • logstash-filter-cidr
  • logstash-filter-clone
  • logstash-filter-csv
  • logstash-filter-date
  • logstash-filter-de_dot
  • logstash-filter-dissect
  • logstash-filter-dns
  • logstash-filter-drop
  • logstash-filter-elasticsearch
  • logstash-filter-fingerprint
  • logstash-filter-geoip
  • logstash-filter-grok
  • logstash-filter-http
  • logstash-filter-jdbc_static
  • logstash-filter-jdbc_streaming
  • logstash-filter-json
  • logstash-filter-kv
  • logstash-filter-memcached
  • logstash-filter-metrics
  • logstash-filter-mutate
  • logstash-filter-ruby
  • logstash-filter-sleep
  • logstash-filter-split
  • logstash-filter-syslog_pri
  • logstash-filter-throttle
  • logstash-filter-translate
  • logstash-filter-truncate
  • logstash-filter-urldecode
  • logstash-filter-useragent
  • logstash-filter-uuid
  • logstash-filter-xml
  • logstash-input-azure_event_hubs
  • logstash-input-beats
  • logstash-input-couchdb_changes
  • logstash-input-dead_letter_queue
  • logstash-input-elasticsearch
  • logstash-input-exec
  • logstash-input-file
  • logstash-input-ganglia
  • logstash-input-gelf
  • logstash-input-generator
  • logstash-input-graphite
  • logstash-input-heartbeat
  • logstash-input-http
  • logstash-input-http_poller
  • logstash-input-imap
  • logstash-input-irc
  • logstash-input-jdbc
  • logstash-input-kafka
  • logstash-input-log4j
  • logstash-input-lumberjack
  • logstash-input-pipe
  • logstash-input-qingstor (ELK 6.7.1 - QingCloud 2.0.0 版本中已移除)
  • logstash-input-rabbitmq
  • logstash-input-redis
  • logstash-input-s3
  • logstash-input-snmp
  • logstash-input-snmptrap
  • logstash-input-sqs
  • logstash-input-stdin
  • logstash-input-syslog
  • logstash-input-tcp
  • logstash-input-twitter
  • logstash-input-udp
  • logstash-input-unix
  • logstash-input-xmpp
  • logstash-output-cloudwatch
  • logstash-output-csv
  • logstash-output-elastic_app_search
  • logstash-output-elasticsearch
  • logstash-output-email
  • logstash-output-file
  • logstash-output-graphite
  • logstash-output-http
  • logstash-output-irc
  • logstash-output-kafka
  • logstash-output-lumberjack
  • logstash-output-nagios
  • logstash-output-null
  • logstash-output-pagerduty
  • logstash-output-pipe
  • logstash-output-qingstor (ELK 6.7.1 - QingCloud 2.0.0 版本中已移除)
  • logstash-output-rabbitmq
  • logstash-output-redis
  • logstash-output-s3
  • logstash-output-sns
  • logstash-output-sqs
  • logstash-output-statsd
  • logstash-output-stdout
  • logstash-output-tcp
  • logstash-output-udp
  • logstash-output-webhdfs
  • logstash-output-xmpp
  • logstash-patterns-core

版本历史

ELK 6.7.1 - QingCloud 2.0.0

  • 升级到新版 ELK 6.7.1
  • 新增 ES 专有主节点(Dedicated Master)
  • 新增 ES VIP 并支持高可用

ELK 5.5.1 - QingCloud 1.2.8

  • 修复ELK5.5.1-QingCloud1.2.7版本无法在地址范围为172.17.0.0/16的VPC网络中创建的问题
  • 基于ElasticSearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.7

  • 修复监控脚本遗留的问题
  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.6 (deprecated)

  • 新增配置ES日志输出级别的功能
  • 新增ES日志文件清理的功能
  • 新增Heap dump文件输出到数据盘的功能
  • 修复SIGTERM无法停止ES、Logstash服务的问题
  • 修复集群负载较重时遗留大量监控进程的问题
  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.5

  • 修复Logstash节点无法删除的问题
  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.4

  • 新增上传同义词词典功能
  • 新增nginx_client_max_body_size配置项,Nginx默认请求体大小增加到20m
  • 新增path.repo配置项
  • 新增repositories.url.allowed_urls配置项
  • 新增es_additional_config配置项
  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.3

  • 优化heap dump行为,避免OOM时生成heap dump文件造成文件系统被占满导致节点离线
  • 新增action.destructive_requires_name配置项
  • 新增indices.fielddata.cache.size配置项
  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本

ELK 5.5.1 - QingCloud 1.2.2

  • 优化删除节点逻辑

ELK 5.5.1 - QingCloud 1.2.1

  • 修复之前版本无法使用logstash-input-beats插件的问题
  • 集成ES SQL、Cerebro可视化插件
  • 集成elasticsearch-analysis-pinyin、analysis-icu、analysis-kuromoji、analysis-phonetic、ingest-attachment、ingest-geoip、ingest-user-agent、mapper-murmur3、mapper-size插件

ELK 5.5.1 - QingCloud 1.2

  • 修复ELK5.5.1-QingCloud1.1版本无法在地址范围为172.17.0.0/16的VPC网络中创建的问题

ELK 5.5.1 - QingCloud 1.1

  • 基于Elasticsearch5.5.1版本、Kibana5.5.1版本、Logstash5.4.3版本
  • 支持节点横向和纵向扩容
  • ES集成了IK中文分词插件,提供了结巴分词的词库和IK自带的搜狗词库,同时还支持用户上传自定义词典
  • ES集成官方S3存储仓库插件支持,可通过标准S3接口与青云对象存储集成
  • Logstash集成青云对象存储的input/output插件
  • Logstash提供自定义插件能力
  • Kibana集成Nginx,提供ES节点失效时的故障转移能力
  • 提供ES Head,ElasticHD可视化插件,方便用户通过浏览器使用ES
  • 集群关键指标监控

ELK on QingCloud升级操作方式

ELK on QingCloud进行版本升级时,用户集群的应用版本的右侧会出现升级标志,用户可通过关闭集群,然后右键升级的方式来完成集群升级操作。

旧版 Elasticsearch 服务文档

请访问这里