ELK日志分析平台 3 (kibana数据可视化)

一、kibana数据可视化

1.简介

kibana主要从es里面加载数据然后展示数据。Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等
在这里插入图片描述
还可以将地理数据融入任何地图
在这里插入图片描述
Kibana 开发工具为开发人员提供了多种强大方法来帮助其与 Elastic Stack 进行交互;
总之kibana的功能非常强大,这也就意味着比较费内存
在这里插入图片描述

2.kibana安装

官网点击下载rpm包,注意ELK版本要都一致
由于开启虚拟机数量太多了,本文kibana安装在了server10,和logstash是同一台虚拟机
进入/etc/kibana,修改配置文件
在这里插入图片描述
安装kibana
请添加图片描述
进入/etc/kibana,修改配置文件;
指定端口kibana的开放端口为5601,kibana主机ip为172.25.36.10
请添加图片描述
指定ES集群地址和 kibana在ES中创建的索引;
请添加图片描述
设置为中文
请添加图片描述
开启kibana,开放了5601端口
请添加图片描述
网页访问http://172.25.36.10:5601,进入kibana
请添加图片描述
先添加样例数据,看看效果
请添加图片描述

3.创建可视化访问量的指标

接下来我们创建一个索引,查看之前的存在es中的apache的日志数据
管理 -> 索引模式 -> 创建索引模式
请添加图片描述
选择apachelog-这个索引 -> 下一步
请添加图片描述
选择时间戳 -> 创建索引模式,现在就创建了一个和apache的日志相关联的索引了
请添加图片描述
可视化 -> 创建可视化
在这里插入图片描述
选择指标
请添加图片描述
可以看到访问次数为203。这里要注意时间范围的选择,默认是过去15分钟的数据,那样肯定看不到访问的次数
请添加图片描述
保存
请添加图片描述
执行grok.conf文件,即运行logstash,才能采集数据,输入给es
请添加图片描述
真机压力测试,总共访问100次172.25.36.10/index.html,并发数为1
请添加图片描述
可以看到kibana变为了303,点击右上角的refresh刷新
请添加图片描述
可以在es中看到相应的索引
请添加图片描述
server7也可以压力测试
请添加图片描述
server8也可以压力测试
请添加图片描述
可以看到kibana变为了503次
请添加图片描述
查看apachelog索引下的日志信息
请添加图片描述

4.创建可视化访问量的垂直条形图

点击可视化 -> 创建可视化
在这里插入图片描述
选择垂直条形图
在这里插入图片描述
选择索引
在这里插入图片描述
Y轴是访问的次数,默认没有X轴,添加X轴;
选择词来定义,使用客户ip作为X轴,降序排列,看最高的前五名,执行
请添加图片描述
可以看到条形图,可以看到相应主机对apache的访问量
请添加图片描述
保存
请添加图片描述
将两个图放在一起分析;
点击仪表板 -> 添加
请添加图片描述
添加websit和top5
请添加图片描述
可以看到两个数据放在了一起
请添加图片描述
保存
请添加图片描述

二、启用xpack安全验证

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

点击集群监控,如下所示,选择monitoring监控
在这里插入图片描述
点击设置模式
请添加图片描述
此时会出现一些报错,如下图右方所示,提示我们启用Xpack认证(安全起见)
请添加图片描述
接下来我们开始启用xpack安全验证;

1.配置所有的elasticsearch集群节点

先配置传输层,使es集群可以通信
server7进入/usr/share/elasticsearch/,调用bin目录下的指令,使用elasticsearch-certutil工具生成ca,密码可以不指定(直接回车)
请添加图片描述
通过生成的p12来申请证书
请添加图片描述
生成成功
请添加图片描述
可以看到生成的证书,接下来需要将生成的证书拷贝到/etc/elasticsearch(elasticsearch的配置目录)
在这里插入图片描述
拷贝成功
请添加图片描述
文件拥有者改为 elasticsearch,以便elasticsearch可以使用证书,或者直接改权限大小也可以
请添加图片描述
修改elasticsearch的主配置文件
请添加图片描述
添加五句话,开启xpack安全验证
请添加图片描述
server7拷贝证书到集群中的其它节点server8/9
请添加图片描述
server8/9把文件拥有者改为 elasticsearch
请添加图片描述
server8/9修改elasticsearch的主配置文件,开启xpack安全验证
请添加图片描述
最后,server7/8/9重启elasticsearch
在这里插入图片描述
ES集群重启正常后,server7交互式设置用户密码全部为westos(由于启用了安全认证,因此需要密码)
请添加图片描述
为了便于记忆,这里的密码都设置为westos
请添加图片描述

2.设置kibana连接ES的用户密码

server10进入/etc/kibana,修改主配置文件。添加访问es集群的用户和密码
请添加图片描述
请添加图片描述
重启kibana,5601端口正常
在这里插入图片描述
重新登陆kibana(虽然配置文件中用户名设置的是kibana,但是登陆的时候需要用elastic(权限高,可以执行更多操作))

请添加图片描述
此时,没有报错了
在这里插入图片描述

3.设置Logstash连接ES用户密码

server7采集数据时的文件grok.conf需要添加用户名和密码才可以运行,执行grok.conf文件,开始采集
请添加图片描述
真机压力测试100次
请添加图片描述
可以看到kibana显示的实时访问次数
请添加图片描述

4.设置elasticsearch-head

由于启用了xpack安全验证,现在elasticsearch-head登陆不了了
在这里插入图片描述
进入server7的/etc/elasticsearch目录,修改主配置文件,允许head认证后访问
请添加图片描述
重启elasticsearch
请添加图片描述
现在访问head不能只写ip和端口了,还需要加认证信息,http://172.25.36.7:9100/?auth_user=elastic&auth_password=westos
请添加图片描述

三、metricbeat轻量级采集工具

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

进入kibana,点击集群 -> 使用metricbeat
在这里插入图片描述
点击使用metricbeat,现在是红色的,还不可用,输入监测集群URLhttp://172.25.36.7:9200
请添加图片描述
根据提示进行下一步操作
请添加图片描述
官方下载metricbeat安装包,给server7
请添加图片描述
server7安装metricbeat,激活elasticsearch-xpack模块,进入/etc/metricbeat/modules.d查看全部模块,可以看到很多文件后面带个disable表示未激活,elasticsearch-xpack已被激活,其实激活命令本质上就是改文件的名字,编辑elasticsearch-xpack.yml文件
请添加图片描述
由于开启了xpack,需要添加用户名和密码
请添加图片描述
返回上一层,server7修改metricbeat主配置文件(由metricbeat直接将采集的数据发送给检测集群es,不经过logstash的汇聚)
请添加图片描述
设置es的ip(集群中任意一个都可以),添加用户名和密码
请添加图片描述
重启es服务,查看9200端口开放正常
请添加图片描述
根据提示操作完,kibana这里会显示成功(自动检测的)

请添加图片描述
同理,对server8/9进行metricbeat的安装(不再赘述);
点击禁用内部收集
请添加图片描述
此时设定全部完成
请添加图片描述
可以查看到server7的检测信息
请添加图片描述

四、kibana数据可视化

filebeat可以对日志信息进行检测
请添加图片描述
点击logs
请添加图片描述
可以看到很多日志信息
请添加图片描述
此时不能通过hostname检索到es各个主机的日志信息(未安装filebeat)
请添加图片描述
集群日志都在以下目录
请添加图片描述
filebeat的数据流向为filebeat->logstash-> ES->kibana,组合使用。假如流量很大,为了确保数据不丢失,可以加入中间件kafaka或者redis,实现消息队列,即filebeat->logstash->kafaka-> ES->kibana;
server7安装filebeat,激活es模块
请添加图片描述
可以查看官网指导,进行相应配置(点击
请添加图片描述
编辑文件
在这里插入图片描述
1、服务器日志文件集设置:
var.paths 一组基于全局的路径,指定在何处查找日志文件。Go Glob支持的所有模式也在这里得到了支持。例如,您可以使用通配符从预定义级别的子目录:/path/to/log//. 1log获取所有文件。这将从/path/到/log的子文件夹中获取所有的.log文件。它不会从/path/获取日志文件到/log文件夹本身。如果此设置为空,Filebeat将根据您的操作系统选择日志路径;
2、gc日志文件集设置
3、审计日志文件集设置
请添加图片描述
4、慢日志日志集设置;
5、弃用日志文件集设置
请添加图片描述
返回到filebeat全局文件

请添加图片描述
启动服务
请添加图片描述
此时点击Logs
请添加图片描述
可以通过hostname查看相应es主机的日志信息
请添加图片描述
通过实时流式传输
请添加图片描述

补充:
(1)冷热分离
注意ELK是实时监测数据的,虽然有数据库的功能,但是完全和数据库不一样,实时监测非常消耗资源,如果只当数据库,纯属大材小用。一般要把数据冷热分离,刚刚采集到数据可以理解为热数据(hot),实时写入ELK分析;过一段时间,数据变为温数据(warm),可以用来查询,不再写入;再过一段时间变为冷数据(cold),查询也很少了,我们可以考虑把他放到数据库中存储,或者从硬件方面来说,从高性能的节点存储换为普通性能的节点,把高性能的节点留给热数据;再过很久,会删除数据。

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

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值