运维实操——日志分析系统ELK(下)之kibana数据可视化xpack安全验证metricbeat控制台

Posted 谁主沉浮lyb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维实操——日志分析系统ELK(下)之kibana数据可视化xpack安全验证metricbeat控制台相关的知识,希望对你有一定的参考价值。


接上篇,server3、server4、server5,是Elasticsearch集群。server6是logstash。本文学习kibana

1、什么是kibana?

kibana主要从es里面加载数据然后展示数据。Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等

还可以将地理数据融入任何地图

Kibana 开发工具为开发人员提供了多种强大方法来帮助其与 Elastic Stack 进行交互

总之kibana的功能非常强大。当然了这也就意味着比较吃内存

2、kibana安装

官网https://elasticsearch.cn/download/下载rpm包,注意ELK版本要都一致
由于开启虚拟机数量太多了,本文kibana安装在了server6,和logstash是同一台虚拟机
安装kibana,进入/etc/kibana,修改配置文件

指定端口kibana的开放端口为5601,kibana主机ip为172.25.77.6

指定es集群的主机ip,指定kibana的索引

设置为中文

开启kibana,开放了5601端口

网页访问http://172.25.77.6:5601,进入kibana

先添加样例数据,看看效果

查看

各种各样的图,功能强大

当然es也相应的产生了几个新的索引

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

接下来我们创建一个索引,查看之前的存在es中的apache的日志数据
管理 -> 索引模式 -> 创建索引模式

选择apachelog-这个索引 -> 下一步

选择时间戳 -> 创建索引模式,现在就创建了一个和apache的日志相关联的索引了

可视化 -> 创建可视化

选择可视化类型为指标

选择索引apachelog-


可以看到访问次数为4,之前确实测试访问了四次。这里要注意时间范围的选择,默认是过去15分钟的数据,那样肯定看不到访问的次数

保存

执行grok.conf文件,即运行logstash,才能采集数据,输入给es

真机压力测试,总共访问100次172.25.77.6/index.html,并发数为1

可以看到kibana变为了104,如果没变,点击右上角的refresh刷新

同理server3也可以压力测试


可以看到kibana变为了304次

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

可视化 -> 创建可视化

垂直条形图

选择索引

Y轴是访问的次数,默认没有X轴,添加X轴

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

可以看到条形图,可以看到server3访问了200次,这几访问了104次

保存

上面两个图能放在一起分析吗?可以的
仪表板 -> 添加

添加websit和top5

放在一起了,公司中可以把该界面投到一个大电视上,实时监控数据信息

保存

server4也压力测试

实时数据监测

5、启用xpack安全验证

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

(1)设置es集群

先配置传输层,使es集群可以通信
server3进入/usr/share/elasticsearch/,使用elasticsearch-certutil工具生成ca,密码可以空,方便使用

server3使用ca创建证书elastic-stack-ca.p12

密码可以为空,直接回车

把证书复制到elasticsearch的配置目录,文件拥有者改为 elasticsearch,以便elasticsearch可以使用证书,或者直接改权限大小也行。

修改elasticsearch的主配置文件

添加五句话,开启xpack安全验证

server3拷贝证书到集群中的其它节点server4和server5

server4把文件拥有者改为 elasticsearch,修改elasticsearch的主配置文件

server4添加五句话,开启xpack安全验证

server5把文件拥有者改为 elasticsearch,修改elasticsearch的主配置文件

server5添加五句话,开启xpack安全验证

server3重启elasticsearch

server4重启elasticsearch

server5重启elasticsearch

查看9200端口正常启动,es集群正常

ES集群重启正常后,server3交互式设置用户密码全部为westos

(2)设置kibana

server6进入/etc/kibana,修改主配置文件。添加访问es集群的用户和密码

重启kibana,5601端口正常

重新登陆kibana

正常了

(3)设置Logstash

server6采集数据时的文件grok.conf需要添加用户名和密码才可以运行

执行grok.conf文件,开始采集

看到kibana显示访问次数为404

server3压力测试100次

看到kibana显示访问次数为504,没问题,正常了

(4)设置elasticsearch-head

现在elasticsearch-head登陆不了了

进入server3的/etc/elasticsearch目录,修改主配置文件,允许head认证后访问

重启elasticsearch

现在访问head不能只写ip和端口了,还需要加认证信息,http://172.25.77.3:9100/?auth_user=elastic&auth_password=westos

6、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.77.3:9200,会出现提示操作

官方下载metricbeat安装包,给server3、server4、server5

server3安装metricbeat

server4安装metricbeat

server5安装metricbeat

server3激活elasticsearch-xpack模块,进入/etc/metricbeat/modules.d查看全部模块,可以看到很多文件后面带个disable表示未激活,elasticsearch-xpack已被激活,其实激活命令本质上就是改文件的名字,编辑elasticsearch-xpack.yml文件

由于开启了xpack,需要添加用户名和密码

server4激活elasticsearch-xpack模块,编辑elasticsearch-xpack.yml文件

添加用户名和密码

server5激活elasticsearch-xpack模块,编辑elasticsearch-xpack.yml文件

添加用户名和密码

返回上一层,server3修改metricbeat主配置文件

设置es的ip(集群中任意一个都可以),添加用户名和密码

server3重启metricbeat

返回上一层,server4修改metricbeat主配置文件

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

server4重启metricbeat

返回上一层,server5修改metricbeat主配置文件

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

server5重启metricbeat

根据提示操作完,kibana这里会显示成功

稍等片刻,es集群的三个节点都是蓝色了,成功开启

随便点击一个节点,这里查看server5的数据

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

7、kibana控制台

控制台插件提供一个用户界面来和 Elasticsearch 的 REST API 交互。控制台有两个主要部分: editor ,用来编写提交给 Elasticsearch 的请求; response 面板,用来展示请求结果的响应。
由于我们开启了xpack,想要输入命令时还需要用户密码,这里还有一个更加方便的方法,使用kibana的控制台,可以直接输入命令,还不用用户密码,因为登陆kibana时已经输入过了。控制台实际还是后台调用了API,找es执行,再返回给kibana展示。

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

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

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

当请求响应后,您可以在侧面的面板中看到它

8、补充

(1)冷热分离

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

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

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

(2)搜索速度优化

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

以上是关于运维实操——日志分析系统ELK(下)之kibana数据可视化xpack安全验证metricbeat控制台的主要内容,如果未能解决你的问题,请参考以下文章

Linux企业运维——ELK日志分析平台(下)kibana数据可视化xpack安全验证轻量级metricbeat

Linux企业运维——ELK日志分析平台(下)kibana数据可视化xpack安全验证轻量级metricbeat

Linux运维番外篇 高效且清晰的日志分析系统--ELK日志系统

Linux运维番外篇 高效且清晰的日志分析系统--ELK日志系统

企业运维之 ELK日志分析平台(Kibana)

企业运维之 ELK日志分析平台(Kibana)