栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

目录
  • 一、kibana数据可视化
    • 1.简介
    • 2.kibana安装
    • 3.创建可视化访问量的指标
    • 4.创建可视化访问量的垂直条形图
  • 二、启用xpack安全验证
    • 1.配置所有的elasticsearch集群节点
    • 2.设置kibana连接ES的用户密码
    • 3.设置Logstash连接ES用户密码
    • 4.设置elasticsearch-head
  • 三、metricbeat轻量级采集工具
  • 四、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、减少层层嵌套

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/677931.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号