您当前的位置是:  首页 > 新闻 > 国内 >
 首页 > 新闻 > 国内 >

青云QingCloud 推出ELK集群服务

--实现日志分析与全文搜索系统的一键部署

2017-09-22 10:22:57   作者:   来源:CTI论坛   评论:0  点击:


  生活中我们往往通过照片、日记来回顾之前发生的事。而在计算机的世界里,Log 日志记录着一切。
  日志时时刻刻记录着操作系统、应用服务、业务逻辑等情景下不断产生的数据,根据不完全统计,全球每天大约要产生  2 EB 日志数据,面对如此海量的数据,在需要查找一些重要的信息时,一套集中式日志管理系统显得尤为重要。
  日志管理相关的工具、产品和服务有很多:Rsyslog、Syslog-ng、商业化的 Splunk、FaceBook 的 Scribe,Apache 的 Chukwa,Linkedin 的 Kafak,Cloudera 的 Fluentd,Elastic 的 ELK 等等。
  其中,开源的 ELK 架构在最近两年迅速崛起,成为机器数据分析、实时日志处理领域,开源界的第一选择。简单来说,ELK 是 Elasticsearch、 Logstash 和 Kibana 这三个软件集合的简称:
  • Elasticsearch 是一个实时分布式搜索和分析引擎
  • Logstash 为用户提供数据采集、转换、优化和输出的能力
  • Kibana 则为 Elasticsearch 提供了强大的可视化界面
  此次 QingCloud 推出的 ELK 服务,将原有三大独立的应用组件整合到一个服务中,并通过 AppCenter 以云应用的形式交付给用户使用,使得组件相互之间可以自动感知和配置,支持一键部署、节点横向和纵向扩容,极大地减轻了组件的独立搭建和手动配置的繁杂工作。
  ELK on QingCloud 带来了哪些特性呢?
  ELK on QingCloud 功能概览
  • ELK 版本全新升级至 5.0,其中 Elasticsearch、Kibana 版本为 5.5.1,Logstash 版本为 5.4.3,同时也支持新版本的一键升级;
  • Elasticsearch 中文分词功能全面增强,集成了 IK Analysis 中文分词插件,并为该插件集成了结巴分词的词库和 IK 自带的搜狗词库,同时还支持用户上传自定义词典;
  • 与 QingStor 对象存储深度集成:可对 Elasticsearch 集群进行备份,生成集群快照至 QingStor 对象存储并可从备份的快照中恢复数据;Logstash 提供 QingStor   input/output 插件;
  • 新增 ElasticHD 可视化插件,方便用户通过浏览器使用 Elasticsearch 进行数据搜索和分析;
  • 一键实现集群的安装部署,支持节点横向和纵向扩容,支持集群关键指标监控。
  伴随如此多的功能特性,ELK 服务应用在哪些场景下呢?
  日志收集、存储、检索及分析
  ELK on QingCloud 可以通过 Logstash input 插件,从多种数据源获取日志数据(文件、log4j、syslog、QingStor 对象存储、Kafka、Elasticsearch 等)并保存到 Elasticsearch 中。
  Logstash 节点默认配置了http input 插件,下面将以此插件为例(用户可以选择其他多种 input 插件),以 HTTP 的方式输入数据进行测试,步骤如下:
  首先,在集群详情页面找到任意 Logstash 节点的 IP 地址,执行如下命令:
  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."http://:9700
  将一条模拟日志发往 Logstash,Logstash 默认会将输入数据发送至 Elasticsearch。
  接下来就可以在 Kibana 中查到由 Logstash 输入到 Elasticsearch 中的日志数据了:
  在浏览器中访问 Kibana 节点提供的 Web 界面 ( http://:5601 ),默认进入配置索引模式界面,如图,直接点击 Create 即可。
  点击左侧的 Discover 菜单项,显示近期接收到的日志,在搜索栏中输入“error”,点击右侧的“搜索”按钮。如图,“error” 被高亮显示,测试成功。
  IK Analysis 插件中文分词 & 上传自定义词典
  假设这样一个情境,用户想通过 Elasticsearch 检索日志中「优帆科技」关键词,在未设置词典的情况下,会搜索出所有包含:「优」「帆」「科技」等词的日志,使搜索效果大打折扣,但若上传并配置好自定义词典,便可以精确地搜索出包含「优帆科技」这个关键字的日志内容。
  为了在 Elasticsearch 中获取更好的中文分词效果,ELK on QingCloud 集成了 IK Analysis 中文分词插件,并为该插件提供了结巴分词的词库和 IK 自带的搜狗词库,同时还支持用户上传自定义词典。IK Analysis 插件用法请参考 IK Analysis plugin(https://github.com/medcl/elasticsearch-analysis-ik)
  上传用户自定义词典步骤如下:
  首先,在集群详情页面找到任意 Logstash 节点的 IP 地址。
  其次,通过 curl -T <字典文件> http:///dicts/ 命令上传用户自定义字典。上传成功后可通过访问 http:///dicts/ 来查看字典文件。
  最后,在集群详情页面中切换到配置参数标签页,选择"Elasticsearch 节点"进行参数配置,设置 remote_ext_dict 设置项为用户自定义字典的可访问 url (如示例中为http://192.168.0.13/dicts/mydict.dic) 后保存, 然后在集群列表页面重启集群中的 Elasticsearch 节点。
  注:请在配置保存之后,在集群列表页面手动重启集群中的 Elasticsearch 节点。
  ELK 服务深度集成 QingStor 对象存储
  Elasticsearch 与 QingStor 对象存储集成
  Elasticsearch 通过与对象存储进行集成,可以实现集群数据备份和跨区的数据迁移。
  青云提供的 Elasticsearch 服务可以生成集群快照进而将快照备份到到 QingStor 中,并可以在必要时从中恢复。同时,存储在快照中的信息不是和某个具体的集群或集群名字绑定的,因此可以把在一个集群中生成的快照恢复到另一个集群中去,比如把在 pek3a 中 ES 集群生成的快照恢复到 sh1a 的 ES 集群中区。
  随着 Elasticsearch 中数据不断增多,集群的存储成本也随之上升。Logstash与对象存储集成后,不仅可以将 QingStor 对象存储中的数据快速传输至 Elasticsearch 进行分析;
  还可将 Elasticsearch 中的数据或 Logstash 采集的数据导入并长期保存在 QingStor 对象存储中,通过定期删除现有集群中的冷数据,从而极大地降低使用 ELK 的存储成本。
  Logstash-input/output-qingstor 插件使用方式
  Logstash 集成了青云对象存储 QingStor 的 logstash input/ouput插件用户可以很方便地:
  从 QingStor 对象存储通过 Logstash-input-qingstor 插件将 QingStor 中的数据输入到 Elasticsearch 中;
  通过 Logstash-output-qingstor 插件,将各种来源的输入数据,除了输出到 Elasticsearch 集群中外,还可以将数据保存至 QingStor 对象存储永久保存。
  告别繁琐的集群配置,一键部署 ELK
  作为青云首款集成多个产品的端到端解决方案,ELK 服务目前已经在青云QingCloud AppCenter 应用中心上线,感兴趣的用户可以通过 AppCenter 一键部署 ELK 服务。
  第 1 步:基本设置
  填写服务名称和描述,选择版本。
  第 2 步:Elasticsearch 节点设置
  填写 Elasticsearch 节点 CPU、内存、节点数量、主机类型及数据盘大小等配置信息。
  第 3 步:Kibana 节点设置
  填写 Kibana 节点 CPU、内存、节点数量及主机类型等配置信息。
  第 4 步:Logstash 节点设置
  填写 Logstash 节点 CPU、内存、节点数量、主机类型及数据盘大小等配置信息。
  第 5 步:网络设置
  出于安全考虑,所有的集群都需要部署在私有网络中,请选择自己创建的已连接路由器的私有网络
  第 6 步:服务环境参数设置
  创建成功后,点击集群列表页面相应集群可查看集群详情。可以看到集群分为 Elasticsearch 节点、Kibana 节点和 Logstash 节点三种角色。
  注:Kibana 节点和 Logstash 节点为可选,用户可以创建仅包含 Elasticsearch 节点的集群。如果想要使用 Kibana、Head 或者 ElasticHD,则需要创建 Kibana节点;如需要使用 Logstash、上传自定义词典或者查看 Elasticsearch 集群各节点的 log,则需要创建 Logstash 节点。
【免责声明】本文仅代表作者本人观点,与CTI论坛无关。CTI论坛对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

专题