【 Java微服务中间件 】Elasticsearch 分布式搜索引擎Linux系统安装指南:从 ES 到 IK 分词器与 Kibana可视化平台

78 阅读10分钟

一、Elasticsearch安装

1、安装Java环境(必选)

Elasticsearch基于[Java开发],需先安装Java 11或更高版本(推荐OpenJDK 11)。

  1. 更新apt包索引:
sudo apt update

AI写代码bash
1

2. 安装OpenJDK 11:

sudo apt install openjdk-11-jdk -y

AI写代码bash
1

3. 验证Java安装:

java -version

AI写代码bash
1

输出类似以下内容即成功:

2、添加Elasticsearch官方仓库

Ubuntu默认仓库不含ES,需手动添加官方仓库。

  1. 导入Elasticsearch的GPG签名密钥(验证包完整性):
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

AI写代码bash
1

2. 添加ES仓库到apt源(以8.x为例,其他版本替换8.x为对应版本号,如7.x):

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list

AI写代码bash
1

3、安装Elasticsearch

  1. 更新apt包索引(加载新仓库):
sudo apt update

AI写代码bash
1

2. 安装Elasticsearch:

sudo apt install elasticsearch=7.6.0

AI写代码bash
1
  1. 验证安装是否成功
dpkg -l | grep elasticsearch

AI写代码shell
1

4、配置Elasticsearch

ES的核心配置文件为/etc/elasticsearch/elasticsearch.yml,需根据需求修改(默认仅允许本地访问)。

  1. 编辑配置文件:
sudo vim /etc/elasticsearch/elasticsearch.yml

AI写代码bash
1

2. 关键配置项(按需修改):

注意:ES 8.x默认启用安全功能(HTTPS、密码认证),新手测试可临时禁用(生产环境必须启用):
添加xpack.security.enabled: false(禁用密码和HTTPS)。

- **允许远程访问**(默认仅`localhost`,如需外部访问):  

AI写代码
1

network.host: 127.0.0.1改为network.host: 0.0.0.0(允许所有IP访问,生产环境建议指定具体IP)。
集群名称(默认elasticsearch,可自定义):
cluster.name: my-es-cluster
节点名称(默认随机,可自定义):
node.name: es-node-1
初始化主节点(单节点模式):
cluster.initial_master_nodes: ["es-node-1"]

  1. 保存退出(Ctrl+O→回车→Ctrl+X)。

5、启动Elasticsearch并设置开机自启

  1. 启动ES服务:
sudo systemctl start elasticsearch

AI写代码bash
1

2. 设置开机自启:

sudo systemctl enable elasticsearch

AI写代码bash
1

3. 检查服务状态(确保为active (running)):

sudo systemctl status elasticsearch

AI写代码bash
1

6、验证安装

ES默认监听9200端口,通过curl验证是否正常运行:

curl http://localhost:9200

AI写代码bash
1

成功输出示例(包含版本、集群信息):

7、(可选)开放防火墙端口

若需远程访问ES,需开放9200端口(以ufw防火墙为例):

sudo ufw allow 9200/tcp
sudo ufw reload

AI写代码bash
12

注意:如果使用云服务器需要到对用服务器控制面板中放行端口。

常见问题

  • 启动失败:检查Java版本是否兼容(ES 8.x需Java 11+),或配置文件语法错误(通过sudo journalctl -u elasticsearch查看日志)。
  • 远程无法访问:确认network.host配置为0.0.0.0,且防火墙已开放9200端口。
  • 安全验证错误:若未禁用安全功能,需用https访问(默认端口9200),并通过sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password生成密码。

至此,Elasticsearch已在Ubuntu上安装完成。

二、IK分词器安装

1、IK分词器介绍

IK分词器(IK Analyzer)是一款针对中文文本的分词工具,专为Elasticsearch(ES)设计,用于解决ES默认分词器对中文处理不佳的问题(默认分词器会将中文拆分为单个字符,无法识别词语)。

其核心特点包括:

  • 支持细粒度和粗粒度分词:细粒度(ik_max_word)会将文本拆分为尽可能多的词语,粗粒度(ik_smart)会做最粗粒度的拆分(适合快速检索)。
  • 自定义词典:支持用户添加行业术语、专有名词等自定义词语,避免被错误拆分。
  • 停用词过滤:可配置过滤无意义词汇(如“的”“了”等),优化索引效率。

2、Ubuntu环境下IK分词器安装步骤

IK分词器是ES的插件,安装前需确保:

  1. Elasticsearch已正常安装(参考之前的Ubuntu安装教程);
  2. IK分词器版本必须与ES版本完全一致(例如ES 7.6.0需对应IK 7.6.0)。
步骤1:确认Elasticsearch版本

首先查看已安装的ES版本,避免版本不兼容:

# 查看ES版本(需ES服务已启动)
curl http://localhost:9200 | grep "number"

AI写代码bash
12

输出类似 "number" : "7.6.0",记录版本号(如7.6.0)。

步骤2:下载并安装IK分词器

安装方式有两种,推荐在线安装(简单),若网络不佳可选择手动安装

方式1:在线安装(推荐)

通过ES自带的elasticsearch-plugin命令在线下载并安装,需替换命令中的{ES版本}为实际版本(如7.6.0):

# 切换到ES安装目录的bin文件夹(默认路径)
cd /usr/share/elasticsearch/bin

# 执行安装命令(需sudo权限,确保用户有权限操作)
sudo ./elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/{ES版本号}

AI写代码bash
12345

例如,ES版本为7.6.0时:

sudo ./elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.6.0

AI写代码shell
1

安装过程中会提示“是否继续”,输入y回车即可。

步骤3:重启Elasticsearch使插件生效

安装完成后,必须重启ES服务才能加载IK分词器:

sudo systemctl restart elasticsearch

# 检查ES状态(确保为active (running))
sudo systemctl status elasticsearch

AI写代码bash
1234
步骤4:验证IK分词器是否安装成功

通过ES的分词API测试,发送请求验证是否能正常分词:

IK分词器包含两种模式:

  • ik_smart:最少切分
  • ik_max_word:最细切分
# 使用ik_max_word(细粒度)测试
curl -X POST "http://localhost:9200/_analyze" -H "Content-Type: application/json" -d '
{
  "analyzer": "ik_max_word",
  "text": "我爱北京天安门"
}'

AI写代码bash
123456

若安装成功,会返回分词结果(拆分出“我”“爱”“北京”“天安门”等词语),类似:




{
	"tokens": [{
		"token": "我",
		"start_offset": 0,
		"end_offset": 1,
		"type": "CN_CHAR",
		"position": 0
	}, {
		"token": "爱",
		"start_offset": 1,
		"end_offset": 2,
		"type": "CN_CHAR",
		"position": 1
	}, {
		"token": "北京",
		"start_offset": 2,
		"end_offset": 4,
		"type": "CN_WORD",
		"position": 2
	}, {
		"token": "天安门",
		"start_offset": 4,
		"end_offset": 7,
		"type": "CN_WORD",
		"position": 3
	}, {
		"token": "天安",
		"start_offset": 4,
		"end_offset": 6,
		"type": "CN_WORD",
		"position": 4
	}, {
		"token": "门",
		"start_offset": 6,
		"end_offset": 7,
		"type": "CN_CHAR",
		"position": 5
	}]
}

AI写代码json
123456789101112131415161718192021222324252627282930313233343536373839404142
步骤5:(可选)配置自定义词典

若需添加自定义词语(如行业术语),可修改IK的配置文件:

  1. 进入IK分词器的配置目录(默认路径):
cd /usr/share/elasticsearch/plugins/analysis-ik/config

AI写代码bash
1

2. 新建自定义词典文件(如my_dict.dic):

sudo nano my_dict.dic

AI写代码bash
1

在文件中按行添加自定义词语(编码需为UTF-8,且无BOM头):

人工智能
机器学习

AI写代码plain
12

3. 编辑IK的主配置文件IKAnalyzer.cfg.xml,引入自定义词典:

sudo nano IKAnalyzer.cfg.xml

AI写代码bash
1

<entry key="ext_dict"></entry>中添加自定义词典文件名:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <comment>IK Analyzer 扩展配置</comment>
  <!-- 自定义扩展词典 -->
  <entry key="ext_dict">my_dict.dic</entry>
  <!-- 自定义停用词词典(可选) -->
  <entry key="ext_stopwords"></entry>
</properties>


AI写代码xml
12345678910

4. 重启ES使自定义词典生效:

sudo systemctl restart elasticsearch

AI写代码bash
1

注意事项

  • 版本必须一致:IK分词器版本与ES版本不匹配会导致ES启动失败(可通过sudo journalctl -u elasticsearch查看错误日志)。
  • 权限问题:安装插件或修改配置文件时,需确保elasticsearch用户有读写权限(默认插件目录权限已适配,若手动操作需注意sudo使用)。
  • 网络问题:在线安装失败时,优先检查网络或改用手动安装。

通过以上步骤,即可在Ubuntu的Elasticsearch中成功使用IK分词器处理中文文本。

三、Kibana安装

1、Kibana 介绍

Kibana 是 Elastic Stack(ELK Stack)的核心组件之一,是 Elasticsearch 的官方可视化平台,主要用于:

  • 数据可视化:通过图表(折线图、柱状图、地图等)直观展示 Elasticsearch 中的数据;
  • ES 交互工具:提供 Dev Tools 控制台,支持直接编写和执行 ES 的 REST API(如查询、索引操作等),替代命令行的 curl
  • 集群管理:监控 ES 集群健康状态、节点性能、索引信息等;
  • 日志分析:结合 Logstash 可实现日志的收集、存储、分析和可视化一体化。

2、安装 Kibana(与 ES 版本严格一致)

Kibana 的版本必须与 Elasticsearch 完全相同(否则会出现兼容性问题)。由于之前安装的是 ES 7.6.0,因此需安装 Kibana 7.6.0

步骤 1:添加 Kibana 官方仓库

Kibana 与 Elasticsearch 同属 Elastic 官方,可复用之前添加的 Elastic 仓库(若已添加过 ES 仓库,可跳过此步)。

  1. 若未添加过 Elastic 仓库,先导入 GPG 密钥:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg

AI写代码bash
1

2. 添加 Elastic 仓库(包含 Kibana):

echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic.list > /dev/null

AI写代码bash
1
步骤 2:安装 Kibana 7.6.0
  1. 更新 apt 包索引:
sudo apt update

AI写代码bash
1

2. 安装指定版本的 Kibana(必须与 ES 版本一致):

sudo apt install kibana=7.6.0 -y

AI写代码bash
1
步骤 3:配置 Kibana

Kibana 的核心配置文件为 /etc/kibana/kibana.yml,主要配置 ES 连接地址和访问权限。

  1. 编辑配置文件:
sudo vim /etc/kibana/kibana.yml

AI写代码bash
1

2. 关键配置项(按需修改):

*   **连接 Elasticsearch 地址**(默认已配置本地 ES,若 ES 在其他机器,需修改):
elasticsearch.hosts: ["http://localhost:9200"]  # 若ES远程,改为实际IP:9200

AI写代码yaml
1
- **允许远程访问 Kibana**(默认仅 `localhost` 可访问,如需外部浏览器访问):  

AI写代码
1

将 server.host: "localhost" 改为 server.host: "0.0.0.0"(允许所有IP访问)。
Kibana 端口(默认 5601,可自定义):

server.port: 5601

AI写代码yaml
1

3. 保存退出(Ctrl+O→回车→Ctrl+X)。

步骤 4:启动 Kibana 并设置开机自启
  1. 启动 Kibana 服务:
sudo systemctl start kibana

AI写代码bash
1

2. 设置开机自启:

sudo systemctl enable kibana

AI写代码bash
1

  1. 检查服务状态(确保为 active (running)):
sudo systemctl status kibana

AI写代码bash
1

步骤 5:验证 Kibana 安装
  1. 本地验证:在服务器上通过 curl 检查 Kibana 是否启动:
curl http://localhost:5601

AI写代码bash
1

若返回类似 <html lang="en">...</html> 的 HTML 内容,说明启动成功。

  1. 远程访问(若配置了 server.host: 0.0.0.0):
    在本地浏览器中访问 http://服务器IP:5601,首次打开会显示 Kibana 欢迎界面(可能需要几分钟加载)。

步骤 6:(可选)开放防火墙端口

若需远程访问 Kibana,需开放默认端口 5601(以 ufw 防火墙为例):

sudo ufw allow 5601/tcp
sudo ufw reload

AI写代码bash
12

3、首次使用 Kibana

  1. 打开 Kibana 界面后,点击左侧菜单的 Dev Tools(开发者工具),即可进入控制台,直接编写 ES 命令(如查询索引):
# 示例:查询ES集群健康状态
GET /_cluster/health

AI写代码json
12

点击右侧的运行按钮,即可看到返回结果。

常见问题

  • Kibana 启动失败
    查看日志排查错误:sudo journalctl -u kibana。常见原因:

    • 版本与 ES 不一致(必须完全相同);
    • elasticsearch.hosts 配置错误(ES 未启动或地址错误)。
  • 远程无法访问 Kibana
    检查 server.host 是否设为 0.0.0.0,以及防火墙是否开放 5601 端口。

  • ES 启用安全认证后 Kibana 无法连接
    需在 kibana.yml 中添加 ES 的用户名和密码:

elasticsearch.username: "kibana"
elasticsearch.password: "你的密码"

AI写代码yaml
12

通过以上步骤,即可成功安装并使用 Kibana 可视化管理 Elasticsearch。