Kibana

  • Kibana简介
  • 怎么将数据导入kibana
  • 演示环境
  • kibana安装与配置
  • 可视化现有 Elasticsearch 索引中的数据
    • 创建索引
    • 创建可视化仪表盘图
    • 创建可视化垂直条形图
    • 创建仪表板
  • 启用xpack安全验证
    • es集群端设置
    • kibana端设置
    • logstash端设置
    • elasticsearch-head的设置
  • metricbeat轻量级采集工具
  • kibana控制台
  • ELK优化
    • 数据冷热分离
    • 搜索速度优化

Kibana简介

Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。可以将地理数据融入任何地图;精选的时序性 UI,对Elasticsearch 中的数据执行高级时间序列分析;利用 Graph 功能分析数据间的关系;Kibana 开发工具为开发人员提供了多种强大方法来帮助其与 Elastic Stack 进行交互。

Kibana7.6指南:https://www.elastic.co/guide/en/kibana/7.6/index.html

怎么将数据导入kibana

要开始在 Kibana 中处理数据,可以:
1、使用文件数据可视化工具上传 CSV、JSON 或日志文件。
2、使用 GeoJSON 上传功能上传地理空间数据。
3、通过设置 Beats 模块索引日志、指标、事件或应用程序数据。
4、将 Kibana 与现有的 Elasticsearch 索引连接起来。

Kibana 使用索引模式来告诉它要探索哪些 Elasticsearch 索引。如果添加示例数据或运行内置教程,将免费获得一个索引模式,并且很好地开始探索。如果加载自己的数据,则可以在Management 中创建索引模式。

演示环境

es、logstash和kibana都是7.6.1版本es集群:
server1     192.168.122.11
server2     192.168.122.12logstash和kibana部署在一台虚拟机上:
server3     192.168.122.13

kibana安装与配置

kibana下载:https://elasticsearch.cn/download/
#注意版本要与es和logstash版本一致

[root@server3 ~]# rpm -ivh kibana-7.6.1-x86_64.rpm
[root@server3 ~]# cd /etc/kibana/
[root@server3 kibana]# ls
apm.js  kibana.yml
[root@server3 kibana]# vim kibana.yml

设置服务端口和服务监听地址(都是本机的)

设置ES集群地址、kibana在ES中创建的索引

设置中文

开启服务,端口正常开启

到浏览器访问部署kibana端的5601端口,访问成功,进入如下界面

可以添加官方准备好的模板

查看dashborad

官方的模板做的很成熟很漂亮,这时去es端查看会看到相应的索引已经建立

可视化现有 Elasticsearch 索引中的数据

创建索引

创建一个索引,查看之前的存在es中的apache的日志数据,按下图步骤操作即可
将es中的apache的索引筛选出来
选择时间戳 -> 创建索引模式,现在就创建了一个和apache的日志相关联的索引了
选择索引apachelog-

创建可视化仪表盘图

按下图操作
选择创建仪表盘,这儿自己想创建其他的都可以,只不过是数据的表现形式不同罢了

选择索引apachelog-*
可以看到访问次数为124。这里要注意时间范围的选择,默认是过去15分钟的数据,调整为查看今天的数据

保存该可视化
取个名字直接保存

创建可视化垂直条形图

和上面的操作同理
选择垂直条形图

选择索引
条形图的Y轴是访问的次数,默认没有X轴,添加X轴

选择词来定义,使用客户ip作为X轴,降序排列,看最高的前五名,应用更改

可以看到条形图,被不同的主机访问过的次数(提前在不同主机访问kibana主机的apache,做了压测)
保存可视化图

创建仪表板

创建一个仪表板将上面保存的不同的图放到一起对比显示
添加websit和top5(前面保存的图)

如此便将不同的数据视图放在一起了,该界面可以全屏显示,展示数据信息时很方便

我们在不同的主机访问目标主机的apache再产生点数据

[root@server2 ~]# ab -n 122 -c1 http://192.168.122.13/index.html    #有ab压测工具的可以使用该命令
[root@server2 ~]# for i in {1..77};do curl 192.168.122.13;done     #没有ab工具的也可以用循环来进行大量访问

刷新可以看到数据的变化

启用xpack安全验证

目前部署的ELK三个软件端口都是开放的,任何人都能访问,没有任何安全保障,容易受到攻击,比如日志索引被删除等恶意行为,所以使用 xpack安全组件来保护ELK,这样es都是内部运行的,不暴露外网,更安全。

按下图操作查看es集群内部状态
点击右上角的进入设置模式
会不停的报错,因为我们没有开启xpack安全验证

es集群端设置

开启xpack安全验证。集群模式需要先创建证书。先配置传输层,使es集群可以通信

# cd /usr/share/elasticsearch/
# bin/elasticsearch-certutil ca         #使用elasticsearch-certutil工具生成ca,密码可以空,方便使用
# bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12     #使用ca创建证书elastic-stack-ca.p12,密码可以为空,直接回车
# cp elastic-certificates.p12 elastic-stack-ca.p12 /etc/elasticsearch       #把证书复制到elasticsearch的配置目录
# cd /etc/elasticsearch
# chown elasticsearch elastic-certificates.p12 elastic-stack-ca.p12     #文件拥有者改为 elasticsearch,以便elasticsearch可以使用证书,或者直接改权限大小也行

修改elasticsearch的主配置文件,添加五句话,开启xpack安全验证,重新启动elasticsearch服务

[root@server1 elasticsearch]# vim /etc/elasticsearch/elasticsearch.ymlxpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12[root@server1 elasticsearch]# systemctl restart elasticsearch.service


拷贝证书到集群中的其它节点server2,做同server1一样的修改;开启xpack安全验证,重新启动elasticsearch服务

[root@server2 elasticsearch]# chown elasticsearch elastic-certificates.p12  #文件拥有者改为 elasticsearch
[root@server2 elasticsearch]# vim /etc/elasticsearch/elasticsearch.yml     #修改elasticsearch的主配置文件
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/elastic-certificates.p12[root@server2 elasticsearch]# systemctl restart elasticsearch.service

ES集群重启正常后,设置用户密码

[root@server1 bin]# pwd
/usr/share/elasticsearch/bin
[root@server1 bin]# ./elasticsearch-setup-passwords interactive
#交互式设置用户密码全部为elastic

kibana端设置

这时访问kibana已经需要用户名密码了

登录进去会发现kibana状态为红即没有正常运行

所以设置kibana,修改主配置文件。添加访问es集群的用户和密码,然后重启kibana

[root@server3 conf.d]# cd /etc/kibana/
[root@server3 kibana]# vim kibana.yml
[root@server3 kibana]# systemctl restart kibana.service


服务正常开启
重新以elastic用户身份登陆kibana已正常,退出设置模式

logstash端设置

server3采集本机apache的数据时需要添加用户名和密码才可以正常运行采集

[root@server3 conf.d]# pwd
/etc/logstash/conf.d
[root@server3 conf.d]# vim grank.conf input {file {path => "/var/log/httpd/access_log"start_position => "beginning"}}filter {grok {match => { "message" => "%{HTTPD_COMBINEDLOG}" }}
}output {stdout {}elasticsearch {hosts => ["192.168.122.11:9200"]index => "apachelog-%{+yyyy.MM.dd}"user => "elastic"            #添加用户名password => "elastic"       #添加密码}}

运行 Logstash 并加载grok.conf文件中定义的 Logstash 配置

# /usr/share/logstash/bin/logstash -f grok.conf

在其他主机进行压测访问apache产生日志

到kibana端查看数据上传成功,证明logstash采集成功

elasticsearch-head的设置

现在返回elasticsearch-head,会发现访问失败
进入server1的/etc/elasticsearch目录,修改主配置文件,允许head认证并重启服务

[root@server1 bin]# cd /etc/elasticsearch/
[root@server1 elasticsearch]# vim elasticsearch.yml
[root@server1 elasticsearch]# systemctl restart elasticsearch.service


在浏览器加上验证后缀访问成功

http://192.168.122.11:9100/?auth_user=elastic&auth_password=elastic

metricbeat轻量级采集工具

logstash是负责采集数据的,是入口,流向为logstash-> ES->kibana,但是它的资源消耗很大,有时候没那么多内存给他占用,同时有些定制的采集指标logstash无法满足。所以我们想使用轻量级的采集工具metricbeat来实现采集,流向为metricbeat-> ES->kibana,可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,还可针对系统上的每个进程获得与 top 命令类似的统计数据。同时Metricbeat 提供多种内部模块,用于从服务中收集指标,例如 Apache、NGINX、MongoDB、MySQL、PostgreSQL、Prometheus、Redis 等等。

点击使用metricbeat,现在是红色的,还不可用

输入监测集群URL:http://192.168.122.11:9200,会出现提示操作,按照提示操作即可

官方下载metricbeat安装包给server1、server2安装,并都给server1和server2(即es集群内的所有主机)进行以下步骤

[root@server1 ~]# rpm -ivh metricbeat-7.6.1-x86_64.rpm
[root@server1 ~]# metricbeat modules enable elasticsearch-xpack        #激活elasticsearch-xpack模块
[root@server1 modules.d]# cd /etc/metricbeat/modules.d
[root@server1 modules.d]# vim elasticsearch-xpack.yml

进入/etc/metricbeat/modules.d查看全部模块,可以看到很多文件后面带disable表示未激活,elasticsearch-xpack已被激活,其实激活命令本质上就是改文件的名字,编辑elasticsearch-xpack.yml文件
由于开启了xpack,需要添加用户名和密码

修改metricbeat主配置文件

[root@server1 modules.d]# cd ..
[root@server1 metricbeat]# ls
fields.yml  metricbeat.reference.yml  metricbeat.yml  modules.d
[root@server1 metricbeat]# vim metricbeat.yml
[root@server1 metricbeat]# systemctl enable --now metricbeat.service

设置es集群ip,添加用户名和密码,重启metricbeat

此时到kibana查看会发现迁移状态已经自动捕捉到,点击完成即可
server2按上面相同步骤完成后也同样成功迁移

此时按照提示再点击禁用内部收集即可完成迁移

es集群的三个节点都是蓝色了,成功开启
随便点击一个节点,这里查看server1的数据,可以看到节点内存、CPU等状态

类似的轻量级采集的base还有很多,比如filebeat等等,这里不再赘述,感兴趣的同学自行查阅文档。
filebeat的数据流向为filebeat->logstash-> ES->kibana,组合使用,假如流量很大,为了确保数据不丢失,可以加入中间件kafaka或者redis,实现消息队列,即filebeat->logstash->kafaka-> ES->kibana

kibana控制台

控制台插件提供一个用户界面来和 Elasticsearch 的 REST API(REST就是一种设计API的模式) 交互。控制台有两个主要部分: editor ,用来编写提交给 Elasticsearch 的请求; response 面板,用来展示请求结果的响应。

由于我们开启了xpack,想要输入命令时还需要用户密码,这里还有一个更加方便的方法,使用kibana的控制台,可以直接输入命令,还不用用户密码,因为登陆kibana时已经输入过了。控制台实际还是后台调用了API,找es执行,再返回给kibana展示。

简单测试,输入了健康查询语句,可以看到节点的健康状况

当敲入一行命令,控制台会给出上下文相关的提示。这些提示可以探索每条 API 参数,或者用于提高输入速度。控制台会提示 APIs 、索引和字段名。

一旦在左边的面板中敲入命令,可以点击 URL 行边上的绿色小三角提交这条请求到 Elasticsearch。注意,当移动光标的时候,会有一个小三角和扳手图标跟随着。我们把这个叫做动作菜单。也可以选择写多条请求并一起提交它们。

ELK优化

数据冷热分离

注意ELK是实时监测数据的,虽然有数据库的功能,但是完全和数据库不一样,实时监测非常消耗资源,如果只当数据库,纯属大材小用。

一般要把数据冷热分离,刚刚采集到数据可以理解为热数据(hot),实时写入ELK分析;过一段时间,数据变为温数据(warm),可以用来查询,不再写入;再过一段时间变为冷数据(cold),查询也很少了,我们可以考虑把他放到数据库中存储,或者从硬件方面来说,从高性能的节点存储换为普通性能的节点,把高性能的节点留给热数据;再过很久,会删除数据。

  • 想要实现上面的冷热分离,进行生命周期管理,必须有
    1、节点标签。区分冷热节点
    2、生命周期策略。定义热阶段的大小,最长时间,存在时长等等
    3、索引模板引用索引模板策略。模板创建索引,加载生命周期策略
    4、索引模板指定调度节点。将新建索引分片分配到热节点

搜索速度优化

为了提高es搜索速度,可以考虑下面几种方法:
1、为文件系统cache留有足够内存,内存越大,速度越快
2、提升i/o,使用固态硬盘
3、减少层层嵌套

日志分析系统ELK之Kibana、es的替代metricbeat相关推荐

  1. 企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana)

    企业级日志分析系统ELK(Elasticsearch , Logstash, Kibana) 前言 一.ELK概述 1.ELK日志分析系统 2.ELK日志处理特点 3.Elasticsearch概述 ...

  2. 运维实操——日志分析系统ELK(中)之logstash采集数据、伪装rsyslog、多行过滤、grok切片

    日志分析系统ELK(中)之logstash 1.什么是logstash? 2.Logstash安装 3.logstash简单命令行测试 4.logstash文件测试 (1)命令行输入,输出到文件 (2 ...

  3. 实时日志分析系统-ELK

    一.ELK简介 1.什么是日志 日志就是程序产生的,遵循一定格式(通常包括时间戳)的文本数据. 通常日志由服务器生成,输出到不同的文件中,一般会有系统日志. 应用日志.安全日志.这些日志分散地存储在不 ...

  4. Ubuntu 16.04源码搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana)

    ELK环境 : 操作系统:Ubuntu 16.04 RAM:4GB CPU:2 注意 : 5.0版本之前可以在启动指令后跟:-Des.insecure.allow.root=true或者修改elast ...

  5. ELK学习10_ELK系列--实时日志分析系统ELK 部署与运行中的问题汇总

    前记: 去年测试了ELK,今年测试了Storm,最终因为Storm需要过多开发介入而放弃,选择了ELK.感谢互联网上各路大神,目前总算是正常运行了. logstash+elasticsearch+ki ...

  6. ELK企业级日志分析系统部署

    ELK企业级日志分析系统部署 文章目录 ELK企业级日志分析系统部署 1.什么是ELK日志分析系统 2.ELK日志分析系统诞生的原因 3.ELK日志分析系统的核心开源工具 3.1Logstash解析 ...

  7. ELK日志分析系统及相关

    目录 前言 一.ELK概述 1.ELK日志分析系统 2.ELK中日志处理步骤 二.Elasticsearch介绍 1.Elasticsearch的基础核心概念 2.mysql关系型数据库与Elasti ...

  8. 超实用的ELK日志分析系统

    文章目录 前言: 一.ELK日志分析系统简介 (一).日志服务器 (二).ELK日志分析系统 补充: (三).日志处理步骤 (四).Elasticsearch 介绍 (五).Logstash介绍 (六 ...

  9. 理论+实验:ELK日志分析系统

    目录 一.ELK日志分析系统简介 1.1 ELK日志分析系统简介-1 1.2 ELK日志分析系统简介-2 二.Elasticesarch介绍 三.Logstash介绍 四.Kibana介绍 五.部署E ...

最新文章

  1. 【小题目】输入三个数字表示年月日,输出这一天在这一年是第几天
  2. SAP Spartacus app module注入config module的过程
  3. 本地运行hadoop-Failed to locate the winutils binary in the hadoop binary path
  4. 自学python到什么程度就可以工作-Python学到什么程度可以面试工作?
  5. maven插件打包exec_Exec Maven插件–从Maven Build运行Java程序
  6. C#模拟GetPOST提交表单(一)--HttpWebRequest以及HttpWebResponse --WebClient,restsharp
  7. 21天学通c语言中用的编译器,21天学通C语言
  8. 修好了一个罗技鼠标,鼠标左键单击变双击问题解决了。
  9. Win10 wifi无法上网,连网线却可以正常上网的解决办法
  10. Unity小游戏教程系列 | 创建小型太空射击游戏(一)
  11. wav pcm格式文件解析
  12. mysql查询结果数量_sql语句统计查询结果数量怎么写?
  13. python 下载 M3U8 视频
  14. 关于周报的写法和原则
  15. 7-2 计算正五边形的面积和周长 (25分)
  16. 爬虫--爬取单张图片
  17. 聊一聊我眼中的阿里P8、P9及以上人的水平
  18. gitlab合并分支
  19. java+appium+mumu模拟器 APP和小程序自动化测试
  20. 隐藏手机号码中间四位数

热门文章

  1. 如何在照片上涂鸦写字?分享几种照片涂鸦方法
  2. 强力推荐的文本编辑器 Notepad
  3. 给大家推荐一个超星图书馆
  4. 母婴用品销售信息数据
  5. Win7通过SCHTASKS获取计划任务
  6. C# 中什么是GUID?
  7. Python-Flask 模型介绍和配置(6)
  8. markdown向上取整和向下取整
  9. 【imessage群发】软件安装日历推送,家庭推SandBoxApnsServer
  10. 韩国服务器稳定怎么解决,韩国服务器不稳定怎么办