Elastic Stack /ELK在CentOS8下的安装(ElasticSearch、Logstash、Kibana)

想用ElasticSearch做一个应用的搜索,来提高查询速度。查了下资料发现需要ELK(ElasticSearch、Logstash、Kibana)三个软件一起配合使用更好;再加上beats(单一采集器),统称为Elastic Stack,不过我没用到beats,这里只简单介绍ELK在centos8环境下的压缩包安装。

注意选择安装版本

先去https://github.com/medcl/elasticsearch-analysis-ik/releases/ 看一下中文分词插件的最新版本,然后再去官网下载相同版本号的elasticsearch: https://www.elastic.co/cn/downloads/elasticsearch 。我刚开始安装了elasticsearch8.3.2,后来安装插件时发现没有8.3.2版本的中文分词插件,低版本的又不能安装,最后我又重新下载安装了elasticsearch8.2.2版本。

一、安装ElasticSearch

# 解压安装包
tar -xvf elasticsearch-8.2.2-linux-x86_64.tar.gz

# 切换到配置文件目录
cd /opt/elasticsearch-8.2.2/config

# 编辑jvm.options文件,修改内存参数
vim jvm.options

把jvm.options文件中默认的

## -Xms4g
## -Xmx4g

改为(根据实际内存调整,我是测试的,后来改为512m)

-Xms1g
-Xmx1g

修改配置文件:

# 编辑 elasticsearch.yml 配置文件
vim elasticsearch.yml

将默认的

#network.host: 192.168.0.1

改为 (为了其他外网电脑可以访问到,默认只是本机能访问到)

network.host: 0.0.0.0
#增加下面这行,关闭ip地址库下载(网络原因,有时会报错)
ingest.geoip.downloader.enabled: false
# 如果测试用,可以关闭用户密码登录,把下面的值改为false
xpack.security.enabled: false

创建一个es用户并授权

#ES不能使用root用户启动,那么我们新建一个es用户,并赋予权限:
useradd es
#修改密码
passwd es
#改变目录权限
chown -R es:es elasticsearch-8.2.2
#可以把es用户加入到sudoers中,这里省略

还需要修改一些系统的配置才能运行

# 修改文件句柄数
vim /etc/security/limits.conf
#增加以下内容
*  soft  nofile  65536
*  hard  nofile  65536

# 调整vm.max_map_count的大小
# 永久修改
echo vm.max_map_count=262144 >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

# 临时修改
sysctl -w vm.max_map_count=262144
或sudo sysctl -w vm.max_map_count=262144

安装中文分词插件并运行(在线)

#切换为es用户
su es
cd elasticsearch-8.2.2/bin

# 安装中文分词插件
 ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.2.2/elasticsearch-analysis-ik-8.2.2.zip
# 查看插件是否安装成功
./elasticsearch-plugin list
#启动ES
 ./elasticsearch &

如果开启了安全策略,第一次运行时不要加-d参数,因为要在终端显示密码,注意保存下来,类似以下:
Password for the elastic user (reset with bin/elasticsearch-reset-password -u elastic):
R4wX1dhpU8WPY8*EEmB5

安装中文分词插件(离线)

对于网速慢或限制上网的朋友,还有一种安装插件的方法,就是先把elasticsearch-analysis-ik-8.2.2.zip下载到本地比如在/opt目录下,然后运行命令:
./elasticsearch-plugin install file:///opt/elasticsearch-analysis-ik-8.2.2.zip

开启防火墙端口

firewall-cmd --zone=public --permanent --add-port=9200/tcp
firewall-cmd --reload

测试是否正常运行

在浏览器中输入地址 http://ip地址:9200/ ,返回类似下面JSON即为成功:

{
  "name": "test-centos-8-1",
  "cluster_name": "elasticsearch",
  "cluster_uuid": "T99WI-IdRAqVjGPzbpeD3A",
  "version": {
    "number": "8.2.2",
    "build_flavor": "default",
    "build_type": "tar",
    "build_hash": "9876968ef3c745186b94fdabd4483e01499224ef",
    "build_date": "2022-05-25T15:47:06.259735307Z",
    "build_snapshot": false,
    "lucene_version": "9.1.0",
    "minimum_wire_compatibility_version": "7.17.0",
    "minimum_index_compatibility_version": "7.0.0"
  },
  "tagline": "You Know, for Search"
}

二、安装 Logstash

# 下载并解压(版本号一致)
sudo tar -xvf logstash-8.2.2-linux-x86_64.tar.gz
# 查看已安装的插件
cd /opt/logstash-8.2.2/bin
./logstash-plugin list

需要配置后才能运行数据采集,下一篇文章中(https://www.jianshu.com/p/80f8472b9235)会介绍用Jdbc input plugin插件来同步数据到ElasticSearch,这里就不运行了。试过logstash是可以用root账号来运行的。

三、安装 Kibana

# 下载并解压(版本号一致)
sudo tar -xvf kibana-8.2.2-linux-x86_64.tar.gz 
# 修改配置文件
cd /opt/kibana-8.2.2/config
vim kibana.yml 

修改以下值,将默认语言改为中文
i18n.locale: "zh-CN"
如果elasticsearch中开启了安全策略,还要修改账号和密码(新建的用户账号,不能用默认elastic账号)

运行Kibana

#开启防火墙端口
firewall-cmd --zone=public --permanent --add-port=5601/tcp
firewall-cmd --reload

#授权并切换为es用户
chown -R es:es kibana-8.2.2
su es

# 启动 Kibana
cd /opt/kibana-8.2.2/bin
./kibana &

查看运行

在浏览器中输入地址 http://ip地址:5601/ 就可以看到如下的界面:

kibaba界面

四、学习资料分享

官方的资料多是英文的,我找到几个中文的:
Elastic Stack 实战手册:https://developer.aliyun.com/ebook/7687
ELKstack 中文指南:https://elkguide.elasticsearch.cn/logstash/get-start/
Kibana 用户手册:https://www.elastic.co/guide/cn/kibana/current/index.html

当然这些文档都不是最新版本的,最高也就7.0版,现在官方最新8.4版了。有些已经过时了,比如取消了type,不需要安装Jdbc input plugin插件了。如果你英文水平较好的话,还是看官网文档吧: https://www.elastic.co/guide/en/elasticsearch/reference/index.html

你可能感兴趣的:(Elastic Stack /ELK在CentOS8下的安装(ElasticSearch、Logstash、Kibana))