阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

ELKstack 搭建日志管理平台

161次阅读
没有评论

共计 2411 个字符,预计需要花费 7 分钟才能阅读完成。

ELKstack 是 Elasticsearch、Logstash、Kibana 三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。

ELKstack 具有如下几个优点:

  • 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
  • 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,是目前最通用的配置语法设计;
  • 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到百亿级数据查询的秒级响应;
  • 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
  • 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。

[Elasticsearch]

Elasticsearch 是一个分布式实时搜索分析引擎,其搜索引擎基于 Lucene。 ES 官网再三强调自己不仅仅是一个 Lucence,再 Lucence 之上还可以做到:

  • A distributed real-time document store where every field is indexed and searchable
  • A distributed search engine with real-time analytics
  • Capable of scaling to hundreds of servers and petabytes of structured and unstructured data

【ES 安装】
最新版本 ES 是 2.0.0 官方下载链接 下载 deb 包安装
在此之前,因为 ES 依赖 java,所以我们需要先安装 1.7 以上版本的 jre。

【ES 配置】

ELKstack 搭建日志管理平台

关于 ES 的配置都在这个目录下,我们主要配置 elasticsearch.yml

ELKstack 搭建日志管理平台

配置文件注释非常的详细,主要是配置集群信息、节点信息、索引、网络等参数。这里图中红色箭头标识出的字段值得注意一下
cluster.name: ES 通过该字段来 配置集群。当我们在一个节点上安装一个 ES 之后,它默认集群名字是 elasticsearch,然后我们又去内网中另外一个节点安装 ES,它默认名字也是 elasticsearch,你会发现,这两个 ES 自动构建成一个集群。
node.name: 该字段是该节点名字。

ES http 默认监听端口 9200,tcp 默认监听端口是 9300


【ES API】
这里介绍一些简单的 API,目的是为了验证我们安装成功以及验证后面的例子。

curl 'http://localhost:9200/?pretty' ES 基本信息,可以判断我们 ES 集群运行正常。

ELKstack 搭建日志管理平台

curl 'localhost:9200/_cat/health?v' 查看节点状态

ELKstack 搭建日志管理平台

这里我们关注的字段是 status
status 一共有 3 个取值:red (挂了),yellow(有一些问题,但不要紧)、green(完全正常)
通常 yellow 是因为存储未完全同步,问题不大。

curl 'localhost:9200/_cat/indices?v' 查看索引
ELKstack 搭建日志管理平台

ES 提供更多的 API 加载一个 doc,建立索引,搜索等功能。在这里我们主要介绍如何搭建一个日志管理平台,因此后续 API 不一一做介绍。更多 API 详见 这里。


[Logstash]

Logstash 是一个基于 java 开源的 数据收集 引擎。

ELKstack 搭建日志管理平台

【Logstash 安装】

Logstash 依赖 java,需要安装 jre1.7 以上版本.
最新版本 Logstash 是 2.0.0 官方下载链接
与 ES 一样,下载 deb 包安装。

【Logstash 配置】
我们主要配置的是
/etc/logstash/con.d/logstash.conf
ELKstack 搭建日志管理平台

一个标准的 conf 由三部分组成:

  • 1.input 数据来源,这里是抓 nova-scheduler 的日志信息。input 支持的插件
  • 2.filter 用来配置过滤信息,可以没有。filter 支持的插件
  • 3.output 数据去向,这里是将数据传递给 elasticsearch。output 支持的插件

配置完成后,需要重启 logstash 服务。


[kibana]
kibana 作为 ES 可视化 web 平台而设计。在早期,logstash 自带 web 叫做 logstash-web 用于查看 ES 中的数据,然而功能过于简单,于是后期又开发了 Kibana。第一个 Kibana 用 php 语言发布,随后又用 ruby 重写,发布了 Kibana2,再之后又有了 angularjs 版本的 Kibana3. 最后由 ES 公司重构出 Kibana4。由于 Kibana3 和 Kibana4 的侧重点不一样,因此 3 和 4 在并存使用。

本文使用的是 Kibana4

【Kibana 安装】

最新版本 Kibana4.2.0 官方下载链接

【Kibana 配置】
通常我们配置 /kibana/config/kibana.yml 文件
ELKstack 搭建日志管理平台
简单的配置就是图中红色箭头标注内容,Kibana 监听的地址和端口,还有 ES 的地址。

[Kibana 运行]
/kibana/bin/kibana 或者丢到 nginx 运行。

运行后,访问 http://localhost:5601

ELKstack 搭建日志管理平台

Kibana 将日志信息一条一条的展示出来。

也可以通过 Visualization 模块用图表方式展现统计数据:
ELKstack 搭建日志管理平台


至此我们通过 ELKstack 捞出了 nova-scheduler 的日志信息。这只是简单的一个部署配置介绍,如果要在生产环境使用,还需要考虑更多的因素。ES 和 logstash 会消耗大量的 cpu 和内存,在配置时需要考虑性能调优,logstash 在传输日志基于 http,需要考虑其网络带宽消耗情况。万一我们监控的服务异常,日志疯狂输出,会带动 logstash 消耗大量资源和网络带宽,最终导致宿主机宕机。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134167.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2411字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中