ELK简介、elasticsearch安装部署

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: * ELK是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈。 * Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。* Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。* Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 Elas

一、ELK的基本介绍

1、ELK日志协议栈
  • ELK是三个软件产品的首字母缩写,Elasticsearch,Logstash 和 Kibana。这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK 协议栈。
  • Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
  • Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。
  • Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch

提供的日志分析友好的web UI界面,可以帮助汇总、分析、搜索重要数据日志。

名称 语言 描述
ElasticSearch Java 实时的分布式搜索和分析引擎,他可以用于全文检索,结构化搜索以及分析,基于lucene、类似于Solr
Logstash JRuby 具有实时渠道能力的数据收集引擎,包含输入、过滤、输出模块,一般在过滤模块中做日志格式化的解析工作
Kibana JavaScript 为ElasticSerach提供分析平台和可视化的Web平台。他可以ElasticSerach的索引中查找,呼唤数据,并生成各种维度的表图
2、ELK日志协议栈整体架构

在这里插入图片描述

3、ELK的参考资料

ELK官网:https://www.elastic.co/
ELK官网文档:https://www.elastic.co/guide/index.html
ELK中文手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
ELK中文社区:https://elasticsearch.cn/

二、Elasticsearch的安装、学习

1、关于Elasticsearch的简介

Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

2、Elasticsearch在linux下的安装部署
第一步:创建普通用户

注意:ES不能使用root用户来启动,必须使用普通用户来安装启动。这里我使用以前创建的book用户来安装我们的es服务

第二步:下载并上传压缩包,然后解压

将es的安装包下载并上传到companynode01服务器的/book/soft,companynode01服务器使用es用户执行以下命令:

cd /book/soft/

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz

tar -zxvf elasticsearch-6.7.0.tar.gz -C /book/install
第三步:修改配置文件
  • 修改elasticsearch.yml

companynode01服务器使用book用户来修改配置文件

cd /book/install/elasticsearch-6.7.0/config/

mkdir -p /book/install/elasticsearch-6.7.0/logs/

mkdir -p /book/install/elasticsearch-6.7.0/datas

vim elasticsearch.yml

修改为:

cluster.name: myes
node.name: companynode01
path.data: /book/install/elasticsearch-6.7.0/datas
path.logs: /book/install/elasticsearch-6.7.0/logs
network.host: 192.168.1.11
http.port: 9200
discovery.zen.ping.unicast.hosts: ["companynode01", "companynode02", "companynode03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"
  • 修改jvm.option

修改jvm.option配置文件

cd /book/install/elasticsearch-6.7.0/config
vim jvm.options

根据服务器的内存大小修改:

-Xms3g
-Xmx3g
第四步:将安装包分发到其他服务器上面

companynode01使用book用户将安装包分发到其他服务器上面去

cd /book/install/
scp -r elasticsearch-6.7.0/ companynode02:$PWD
scp -r elasticsearch-6.7.0/ companynode03:$PWD
第五步:companynode02与companynode03修改es配置文件

companynode02与companynode03也需要修改es配置文件(你配置的所有服务器都修改)
companynode02使用book用户执行以下命令修改es配置文件

cd /book/install/elasticsearch-6.7.0/config/
vim elasticsearch.yml

示例:companynode02修改为(修改为你当前服务器的配置,主要是节点名称和host):

cluster.name: myes
node.name: companynode02
path.data: /book/install/elasticsearch-6.7.0/datas
path.logs: /book/install/elasticsearch-6.7.0/logs
network.host: 192.168.1.12
http.port: 9200
discovery.zen.ping.unicast.hosts: ["companynode01", "companynode02", "companynode03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"

所有的服务器都按照上述思路修改。

第六步:修改系统配置,解决启动时候的问题

由于现在使用普通用户来安装es服务,且es服务对服务器的资源要求比较多,包括内存大小,线程数等。所以我们需要给普通用户解开资源的束缚

问题一:普通用户打开文件的最大数限制
问题错误信息描述:
max file descriptors [4096] for elasticsearch process likely too low,
increase to at least [65536]

ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
所有机器使用book用户执行以下命令解除打开文件数据的限制

sudo vim /etc/security/limits.conf

修改为

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
问题二:普通用户启动线程数限制

三台机器执行以下命令打开文件最大数

sudo vim /etc/sysctl.conf

修改为:

vm.max_map_count=655360
fs.file-max=655360

执行以下命令生效

sudo sysctl -p

注意:以上两个问题修改完成之后,一定要重新连接linux生效。关闭secureCRT或者XShell工具,然后重新打开工具连接linux即可

重新连接之后执行以下命令,出现这个结果即可准备启动ES了

在这里插入图片描述

第七步:启动ES服务

所有机器使用book用户执行以下命令启动es服务

nohup /book/install/elasticsearch-6.7.0/bin/elasticsearch 2>&1 &

启动成功之后jsp即可看到es的服务进程,并且访问页面
http://companynode01:9200/?pretty

能够看到es启动之后的一些信息
注意:如果哪一台机器服务启动失败,那么就到哪一台机器配置的日志路径寻找错误,例如这里我的路径:

/book/install/elasticsearch-6.7.0/logs

在UI界面中出现如下图所示的界面,每台服务器都有即为成功启动

在这里插入图片描述

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
14天前
|
存储 监控 安全
|
1月前
|
存储 JSON 监控
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
大数据-167 ELK Elasticsearch 详细介绍 特点 分片 查询
51 4
|
6月前
|
SQL JSON API
ELK技术栈 - Elasticsearch 学习笔记(三)
ELK技术栈 - Elasticsearch 学习笔记(三)
98 0
|
4月前
|
存储 缓存 数据处理
ELK中 Elasticsearch和Logstash内存大小设置的考虑
ELK中 Elasticsearch和Logstash内存大小设置的考虑
266 0
|
6月前
|
监控 应用服务中间件 nginx
使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
ELK的架构有多种,本篇分享使用的架构如图所示: Beats(Filebeat) -> -> Elasticsearch -> Kibana,目前生产环境一天几千万的日志,内存占用大概 10G
375 4
|
6月前
|
存储 JSON API
ELK技术栈 - Elasticsearch 学习笔记(二)
ELK技术栈 - Elasticsearch 学习笔记(二)
252 0
|
6月前
|
存储 SQL JSON
ELK技术栈 - Elasticsearch 学习笔记(一)
ELK技术栈 - Elasticsearch 学习笔记(一)
246 0
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
18 5
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
109 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo