打开ElasticSearch、kibana、logstash的正确方式

本文详细介绍了如何使用Docker搭建ELK(Elasticsearch, Logstash, Kibana)系统,包括Elasticsearch集群的搭建、Logstash对Elasticsearch索引库数据的导入导出以及安装ik中文分词器。同时,文章提到了在搭建过程中遇到的版本匹配、配置文件设置和资源限制等问题及其解决方案。" 81977047,7736926,Java开发环境配置:MySQL、Navicat和PowerDesigner安装指南,"['数据库', 'Java开发', 'Navicat', 'MySQL', '数据库设计']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Elasticsearch是什么?为什么每次学习一门技术都是英文的呢?真的是脑阔疼。既然它是英文的,我们不妨借助有道来初步的看看Elasticsearch到底是何方神圣,竟如此多娇。其分为elastic和search两个独立的单词,我们来无脑有道一波看看,得到的解释如下:

 

从有道的解释来看,我们可以简单的对其理解为:Elasticsearch是及其具有弹性的、灵活的、像松紧带一样的且可供搜寻检索的一款工具。o(*≧▽≦)ツ┏━┓

 

百度百科对其解释如下:

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache、Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

从如上信息我们可以得知,Elasticsearch是一款实时、分布式存储的搜索引擎,在实际开发过程中,我们常常会把数据放在Elasticsearch搜索引擎中,然后从引擎中去实际需要的数据。而且在实际搜索过程中,我们也会有许多的Api支持来对数据进行检索,比如排序、条件查询等,其中在Elasticsearch中最为强大之处就是他的模糊检索功能。讲到这,可能有些Mysql经验但没接触过Elasticsearch的朋友可能会有个疑问,Mysql大法不是无敌么,其中的like语句不能模糊查询么?where and不能条件检索么?orderby不能对数据进行排序么?我随随便便就信手拈来一个Sql语句不就能实现业务的需求么:

select department_name, count(*) 员工个数
from departments d, employees e
where d.department_id = e.department_id
group by d.department_id
having count(*)>5
order by count(*) desc;

是这样没错,以上SQL代码的确能够实现实际需求,但是当我们的业务逐渐变得复杂、庞大,我们的用户量越来越多,我们就不得不站在用户的角度来想想了。试想一下,假设哪些淘宝er每天打开淘宝搜索自己想要的数据时都要等个几十秒,那会是怎样的一种画面。又比如,在打开我们常见文件来检索我们需要数据的时候,比如txt、word、excel,我们一般都能迅速打开,那是因为这些文件占用实际空间都太小,这些文件大多就几kb,假设我们打开一个以G为单位的日志文件,此时的系统还能像以往那样正常么?换言之,Elasticsearch采用的是索引搜索,能够具有强大的搜索能力,能够达到实时搜索,稳定,可靠,快速,安装的效用。

另外,Elasticsearch在处理日志的过程中,其常常与数据收集和日志解析引擎Logstash以及名为Kibana的分析和可视化平台配合使用,也就是常说的ELK系统。文本将主要介绍以下几个方面的内容

  • 基于Docker容器来搭建ELK
  • Elasticsearch集群的搭建
  • 在Elasticsearch中引入IK分词器插件
  • 基于Logstash对Elasticsearch索引库中数据的导入和导出

 


一、ELK系统的搭建

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
1
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

总结就是Elasticsearch用于搜索,Kibana用于可视化,Logstash用于搜集。下面我们来基于Docker来搭建一下ELK系统,关于Docker的安装及基本使用,前面的文章已经有过记录了,此处不再过多的介绍。另外,值得注意的是这三者之间的版本关系,(如果使用其他版本的工具,则按照如下方式搭建可能会产生其他问题):

  • Elasticsearch:5.6.8
  • Kibana:5.6.8
  • Logstash:lastest

Elasticsearch的安装

  • Docker拉取Elasticsearch镜像
docker pull elasticsearch:5.6.8
  • 在本地创建elasticsearch容器所映射的配置文件以及data目录

这里需要将http.host配置成0.0.0.0的授权对象,并将配置写入config目录下的elasticsearch.yml配置文件中

# 在centos本地创建配置文件,并配置
mkdir -p /resources/elasticsearch/config        # 创建config目录
mkdir -p /resources/elasticsearch/data             # 创建data目录
# 将http.host配置为0.0.0.0的授权对象,将配置写入config目录下的elasticsearch.yml配置文件中
echo "http.host: 0.0.0.0" >> /resources/elasticsearch/config/elasticsearch.yml
  • 创建一个elasticsearch容器,并开机自运行

首先需要创建容器并开机运行(single-node表示单节点模式,后面会介绍集群方式下elasticsearch的搭建),然后将elasticsearch容器设置为开机自启动。穿件es容器时的参数介绍如下:

  1. --name:为容器起一个别名
  2. -p:将容器的运行端口映射到本地端口
  3. "discovery.type=single-node":表示单节点模式下创建,后文将介绍集群模式的搭建
  4. -v:表示将容器中的配置文件和data文件映射到上文本地所创建的文件,方便后面的配置
# 创建容器并开机运行(single-node表示单节点模式,后面会介绍集群方式下elasticsearch的搭建)
# 注意:在docker中\表示换行
docker run --name elasticsearch -p 9200:9200 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
-v /resources/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /resources/elasticsearch/data:/usr/share/elasticsearch/data -d elasticsearch:5.6.8
# 参数介绍:
# --name:为容器起一个别名
# -p:将容器的运行端口映射到本地端口
# -e "discovery.type=single-node":表示单节点模式下创建,后文将介绍集群模式的搭建
# -v:表示将容器中的配置文件和data文件映射到上文本地所创建的文件,方便后面的配置

# 将elasticsearch容器设置为开机自启动
docker update new-elasticsearch --restart=always

这样一来,我们便安装好elasticsearch了,我们可以使用curl命令来测试一下:

# 使用curl来访问elasticsearch的运行端口
curl localhost:9200
# 运行输出结果如下则成功安装
{
  "name" : "XwmNOpR",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "yB3VNHxmQzevk1vXUQTkcg",
  "version" : {
&nb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值