一、什么是ELKB

E: Elasticsearch (数据库)
L: Logstash (数据处理)
K: Kibana (数据展示)
B: Beats (数据上报)

1、beats 介绍

Beats 是轻量级(资源高效,无依赖性,小型)和开放源代码日志发送程序的集合。 查看更多

简单来理解,beats 是一些轻量级的各种数据收集器,将各种数据收集,发送到缓存队列,或者是logstash, 或者直接发送到elasticsearch

Elastic社区有多种开源的beats. 收集日志文件(Filebeat), 网络数据(Packetbeat),服务器性能指标 (Metricbeat)等。

2、logstash 介绍

Logstash 是一个实时的管道式开源日志收集引擎。Logstash可以动态的将不同来源的数据进行归一并且将格式化的数据存储到你选择的位置。查看更多

简单来说,beats 是将原始数据,进行数据上报,侧重点在于轻量,稳定,不能占用系统太多资源,只支持简单的数据格式修改配置

logstash 也可以进行数据收集,但是logstash比较重,核心的作用在于数据的收集,格式转换和推送存储,有强大的过滤规则,和数据清洗能力,对数据进行清洗后,再发送到es存储

举个例子: 起一个 logstash 服务,可以分别配置不同的数据转换规则,将 filebeat , packetbeat等上报过来的不同格式的原始数据,转换清洗成统一规则的数据格式,再发送到es进行存储。

3、elasticsearch 介绍

Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。

Lucene是什么?

Lucene 是一个开源的、成熟的全文索引与信息检索(IR)库,采用Java实现。查看更多

跟 mysql,mongoBD 等区别: 文档数据库 分布式 每个字段的数据均可搜索 高性能搜索 大数据 全文检索 优秀的分词 近乎实时性
跟 hbase 的区别: es 更像搜索引擎,支持快速查询检索分析。 hbase 是列存储数据库,更倾向于大数据存储 。 查看更多

qms 系统的存储采用了 elastic

elastic一些基本关键词: 集群 索引 分片 分词 聚合 分桶 等

一、什么是Kibana

Kibana是一个开源的分析与可视化平台,可以用来监控es的运行状态,可以查看检索es数据,可以创建各种报表和图标。

同时也可以基于 Elastic 许可或 SSPL 免费使用 Kibana,而且还可基于 Elastic 许可使用其他免费功能。下面是 Elastic Stack 默认分发包提供的免费功能:

  • APM
  • Canvas
  • Metrics
  • Logs
  • Maps
  • SIEM
  • 堆栈监测
  • Uptime

1、 如何安装kibana (假定已经有es情况下,无需重复安装es,一般es和kibana都是单独安装部署)

docker 安装 查看更多

创建 network

docker network create elastic

pull image 和 起服务

docker pull docker.elastic.co/kibana/kibana:7.13.1 docker run —name kib01-test —net elastic -p 5601:5601 -e “ELASTICSEARCH_HOSTS=http://es01-test:9200“ docker.elastic.co/kibana/kibana:7.13.1

其中 http://es01-test:9200 为 es 数据库地址和端口

这里注意,kibana的版本要跟es版本一致,不然会遇到明显的兼容问题,一般kibana跟es都有对应版本

源码安装 查看更多

下载对应的版本的压缩包,并解压

wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-linux-x86_64.tar.gz sha1sum kibana-6.0.0-linux-x86_64.tar.gz tar -xzf kibana-6.0.0-linux-x86_64.tar.gz cd kibana/

修改配置文件,配置文件在 $KIBANA_HOME/config/kibana.yml

vim config/kibana.yml

这里有比较多的配置,这里就改了 server.host 和 elasticsearch.hosts , server.host 比较重要,假如没有指定ip访问,默认只能用localhost 或者 127.0.0.1 访问

启动服务,直接执行 bin/kibana文件就可以

./bin/kibana

** 可能遇到的一些异常问题

服务启动比较慢,正常情况下是能起来的, 不过也有可能会操作系统缺乏一些必要的库,直接将报错信息去谷歌搜索就能解决

kibana 源码目录,这里可以看到有node_modules ,因此 kibana依赖于 node 环境,要先装node服务

默认不建议用root用户起服务,可以使用其他非root用户起服务

上面执行 ./bin/kibana 是前端运行,假如退出了ssh登录,服务会自动停止,因此假如需要持续提供服务,可以用nohup起

nohup ./bin/kibana &

服务起了之后,可以通过 http://ip:5601 访问服务,kibana默认端口是5601 ,要记得放开防火墙,假如需要更换端口,可以按照上面的步骤,修改config/kibana.yml 文件配置,再重启服务

2、kibana能做什么用 查看更多

根据官方的简单说明,kibana的核心功能有这几块:

1、提供可视化的查询操作按钮,以及支持query语句,快速搜索查看es数据库的数据

2、可以快速对数据进行统计,创建饼图,柱状图等一系列仪表盘

3、可以快速创建聚合汇总table 统计数据,并支持导出

4、创建各种规则的仪表盘,非常灵活的自定义各种图标

5、可视化见面监控和管理es集群的状态

6、提供了其他一系列非常优秀的数据管理工具,以及APM监控工具

比如 canvas ,可以通过内置的模板进行傻瓜化画仪表盘,noCode 排版,居然也能支持css 写布局

同时是支持可视化排版,可以自由拖拽,并灵活配置各种数据源,创建自己的仪表风格,可以支持使用自己创建的图表

比如 map 支持坐标位置绘制地图图层

同时还有 logs metrics apm uptime 等可视化工具开箱即用

这里介绍下 apm 工具 了解更多

APM = Application Performance Monitor 应用程序性能监控

支持 java , .net , nodejs , python , go, javascript 等多个主流语言,非常有好的日志报表展示工具

APM 分两部分,一部分是 server 端,支持多个系统安装,配置一下就可以起服务进行使用

另外一部分是 agent 端

支持 各种编程语言 直接安装引入,比如 js rum 和 nodejs 都是 安装 npm包,在入口引入就可以使用

elastic 社区不断优化他们的APM工具,开箱即用,对于用户的行为分析,访问轨迹,停留时间,js报错,执行性能,以及各种数据汇总分析,都能有非常好的支持,比轻量的sentry感觉更强大一些

对于前端项目,大概有以下多种数据统计: http-request(http接口请求数据性能统计)、page-load(页面加载性能统计)、route-change(路由切换统计)、user-interaction(用户点击交互统计)

查看更多demo

kibana的告警模块 ,查看介绍详情

暂未安装成功