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