Rocky9实现elasticsearch单体和集群、kibana样例数据管理、cerebro的索引管理

实验目的

掌握elasticsearch、kibanna和logstash的概念、原理以及特点,实现ELK的单体模式,elasticsearch集群的主从效果、分片效果,cerebro的索引管理,实现kibana样例数据展示

主要内容

1、实现ELK的单体模式

2、实现cerebro管理索引

3、实现elasticsearch集群(主从效果、分片效果)

4、实现kibana(样例数据展示出)

实验环境与准备

3台拍完快照配置好的linux主机,一台为elasticsearch主节点,一台为elasticsearch从节点,一台作为kibanna和cerebro主机

四、实验分析与设计思路

Elasticsearch 使用的是一种名为倒排索引的数据结构,这一结构的设计可以允许十分快速地进行全文本搜索。倒排索引会列出在所有文档中出现的每个特有词汇,并且可以找到包含每个词汇的全部文档。在索引过程中,Elasticsearch 会存储文档并构建倒排索引,这样用户便可以近实时地对文档数据进行搜索。索引过程是在索引 API 中启动的,通过此 API 您既可向特定索引中添加 JSON 文档,也可更改特定索引中的 JSON 文档。

Kibana --5601 是一款适用于 Elasticsearch 的基于Javascript语言实现的数据可视化和管理工具,可以提供实时的直方图、线形图、饼状图和地图。Kibana 同时还包括诸如 Canvas 和 Elastic Maps 等高级应用程序;

Logstash 是 Elastic Stack 的核心产品之一,可用来对数据进行聚合和处理,并将数据发送到Elasticsearch。Logstash 是一个基于Java实现的开源的服务器端数据处理管道,允许您在将数据索引到Elasticsearch 之前同时从多个来源采集数据,并对数据进行过滤和转换。

可以通过插件实现日志收集和转发,支持日志过滤,支持普通log、自定义json格式的日志解析。

Logstash的数据处理过程主要包括:Inputs, Filters, Outputs 三部分, 另外在Inputs和Outputs中可以使用Codecs对数据格式进行处理。这四个部分均以插件形式存在,用户通过定义pipeline配置文件,设置需要使用的input,filter,output, codec插件,以实现特定的数据采集,数据处理,数据输出等功能

需要注意的是elasticsearch分配的内存不能主机的一半,是官方的规定

五、详细实验过程

1、实现ELK的单体模式

主从主机10.100和10.110均安装elasticsearch

[root@node-2 ~]# yum -y localinstall elasticsearch-8.9.0-x86_64.rpm

进入到elasticsearch的配置文件的目录下,配置jvm.options和elasticsearch.yml

[root@node-1 ~]# cd /etc/elasticsearch/

[root@node-1 elasticsearch]# vim jvm.options

为了防止将配置文件配坏掉,我们把elasticsearch.yml进行备份

cp elasticsearch.yml elasticsearch.yml.bak

[root@node-1 elasticsearch]# vim elasticsearch.yml

启动elasticsearch服务,可以看到elasticsearch对应的端口9200和9300已经打开

[root@node-1 elasticsearch]# systemctl start elasticsearch.service

[root@node-1 elasticsearch]# ss -tnl

[root@node-1 elasticsearch]# ps aux

在网页端输入查看192.168.10.100:9200 显示的效果

ES单点搭建完毕后在浏览器内进行访问 验证结果

http://192.168.10.100:9200/_cat/nodes?v 节点信息查看

http://192.168.10.100:9200/_cat/indices?v 索引信息查看

通过post指令上传索引数据

curl -X POST http://192.168.10.100:9200/fan/_doc -H 'Content-Type:application/json' -d '{"name": "fan","age": 18}'

http://192.168.10.100:9200/fan/_search?q=* 索引数据查询 默认情况下一片一副本

加入索引数据之后,再次查看索引信息,可以看到已经显示出刚才加入的索引数据了

http://192.168.10.100:9200/_cat/indices?v 索引信息查看

健康状态有三种,健康为green,yellow为有问题但是能用,red代表有问题不能用

修改内核参数(传送给110是为了后面做集群做铺垫)

内核参数 vm.max_map_count 用于限制一个进程可以拥有的VMA(虚拟内存区域)的数量

echo "vm.max_map_count = 262144" >> /etc/sysctl.conf 虚拟内存集

echo "fs.file-max = 1000000" >> /etc/sysctl.conf 最大文件句柄

sysctl -p

vim /etc/security/limits.conf

优化资源限制配置,将下面内容加入到文档最后面即可

vim /etc/security/limits.conf

* soft core unlimited

* hard core unlimited

* soft nproc 1000000

* hard nproc 1000000

* soft memlock 1000000

* hard memlock 1000000

* soft msgqueue 1000000

* hard msgqueue 1000000

将配置好的文件传送到10.110对应的目录中

scp /etc/security/limits.conf 192.168.10.110:/etc/securitnf

scp /etc/sysctl.conf 192.168.10.110:/etc/sysctl.conf

2、实现cerebro管理索引

在10.120主机上安装cerebro

yum -y install cerebro-0.9.4-1.noarch.rpm   rpm包安装

rpm -ql cerebro-0.9.4-1.noarch  查看cerebro的配置文件的相关位置

vim /usr/share/cerebro/conf/application.conf   主配置文件

[root@node-3 ~]# /usr/bin/cerebro

[root@node-3 ~]# ss -tnl

在网页上访问 192.168.10.120:9000 成功连接到cerebro ,选择handsome点击connect即可跳转到主页面

在cerebro的管理页面中可以进行创建index

3、实现es集群

①主从效果

配置集群的从elasticsearch,10.110的配置文件,将配置好的elasticsearch文件传给10.100

[root@node-2 ~]# cd /etc/elasticsearch/

[root@node-2 elasticsearch]# vim elasticsearch.yml

[root@node-2 elasticsearch]# vim jvm.options

scp elasticsearch.yml 192.168.10.100:/etc/elasticsearch/

[root@node-1 elasticsearch]# vim elasticsearch.yml 将node1的主机名改为自己的

10.100重启elasticsearch服务10.110启动elasticsearch服务

[root@node-1 elasticsearch]# systemctl restart elasticsearch.service

[root@node-2 elasticsearch]# systemctl start elasticsearch.service

ss -tnl 查看两个主机启动服务之后的端口是否开启

重启10.120的cerebro服务,查看cerebro的端口9000是否打开

[root@node-3 ~]# systemctl start cerebro.service

[root@node-3 ~]# ss -tnl

网页上查看cerebro是否已经有了新节点,已经添加上了

可以看到10.100是主节点,10.110是从节点(实心☆就是主,空心☆就是从)

停掉10.100 node1的服务,验证主从效果 ,修改cerebro的配置文件,将主节点指向10.110

重启cerebro之后启动10.100的elasticsearch服务

[root@node-1 elasticsearch]# systemctl stop elasticsearch.service

[root@node-3 ~]# vim /usr/share/cerebro/conf/application.conf

[root@node-1 elasticsearch]# systemctl start elasticsearch.service

查看,因为我是开了两台主机,所以效果没有出来

②分片效果

创建index验证分片效果

可以看到新创建的index fl分片为4,副本为2,两两互不在一台节点上

0,2在node1上,副本在node2上,而1,3在node2上,副本在node1上

4、实现kibana(样例数据展示出)

进入到主配置文件的目录,修改配置文件后启动服务,查看端口和服务的运行状态

[root@node-3 ~]# cd /etc/kibana/

[root@node-3 kibana]# vim kibana.yml

[root@node-3 kibana]# systemctl status kibana.service

[root@node-3 kibana]# ss -tnl

在网页上输入192.168.10.120:5601 进入到kibana的网页服务网站

试用样例数据

选择其他样例数据集

随机选一个添加数据,添加完成显示已安装

在cerebro上查看新添加的数据,可以看到special多了19个,分片和docs和存储量也增多了

在kibana上查看新添加的数据,可以看到有柱状图命中数、文档和字段统计信息

在开发工具中可以看到索引管理、可以看到数据视图

实验结果及分析

Elasticsearch 具有分布式的本质特征。Elasticsearch 中存储的文档分布在不同的容器中,这些容器称为分片,可以进行复制以提供数据冗余副本,以防发生硬件故障。Elasticsearch 的分布式特性使得它可以扩展至数百台(甚至数千台)服务器,并处理 PB 量级的数据。

Elasticsearch 包含一系列广泛的功能。除了速度、可扩展性和弹性等优势以外,Elasticsearch 还有大量强大的内置功能(例如数据汇总和索引生命周期管理),可以方便用户更加高效地存储和搜索数据。

Elastic Stack 简化了数据采集、可视化和报告过程。通过与 Beats 和 Logstash 进行集成,用户能够在向 Elasticsearch 中索引数据之前轻松地处理数据。同时,Kibana 不仅可针对 Elasticsearch数据提供实时可视化,同时还提供 UI 以便用户快速访问应用程序性能监测 (APM)、日志和基础设施指标等数据。

原始数据会从多个来源(包括日志、系统指标和网络应用程序)输入到 Elasticsearch 中。数据采集指在Elasticsearch 中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在 Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查询,并使用聚合来检索自身数据的复杂汇总。在Kibana 中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对 Elastic Stack 进行管理。

Elasticsearch 索引指相互关联的文档集合。Elasticsearch 会以 JSON 文档的形式存储数据。每个文档都会在一组键(字段或属性的名称)和它们对应的值(字符串、数字、布尔值、日期、数组、地理位置或其他类型的数据)之间建立联系。

总结

换一个大的内存条是非常有必要的,还是非常吃内存的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我变秃了也没变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值