centos7 上安装 elasticseatch7 (单机版)和 kibana

470 阅读4分钟

在工作中难免会使用 elasticsearch 来集成到系统中,所以需要安装 elasticsearch 服务。本人也是在工作中需要使用 elasticearch 根据网上的教程进行安装的,在安装过程中也遇到了各种问题,查阅网上的资料时发现解决不了出现的问题。elasticsearch6 和 elasticsearch7 有些问题解决的方法是不同的。我们在决定使用 elasticsearch 时 elasticsearch8 已经出来的,但是我们觉得新出来的版本可能不太稳定或者新版本出现问题,网上的教程不是很多,6版本有点低了,所以我们使用了7版本。

本文讲解使用的版本是 elasticsearch7.17.4. 使用 centos7 虚拟机进行安装。

下载 elasticsearch 安装包

访问 elasticsearch 官网进行下载

image.png

image.png

  1. 下载最新版本直接下载即可
  2. 下载其他版本,点击进入页面选择产品和版本号即可进行下载

image.png

image.png

  1. 选择对应系统的安装包,进行下载

image.png

安装 elasticseatch

  1. 把的安装包,上传到虚拟机中
  2. 解压安装包
tar -zxvf elasticsearch-7.17.4-linux-x86_64.tar.gz
  1. 创建存在日志和数据的文件夹
  2. 修改配置文件 进入到解压出来的文件夹中的 config 目录, elasticsearch.yml 文件则为elasticsearch 的配置文件
# 集群名称,名字随便写,如果是集群模式需要所有的服务集群名称需要一致
cluster.name: test_cluster     
# 节点名称                   
node.name: node-1  
# 是否竞争主节点
node.master: true
# 是否存储数据
node.data: true
#最大集群节点数
node.max_local_storage_nodes: 1

# 数据的默认存放路径
path.data: /usr/local/elasticsearch/data
# 日志的默认存放路径                
path.logs: /usr/local/elasticsearch/logs

# 当前节点的IP地址,如果所有的服务器可以通过内网访问,则写内网即可,否则使用外网
network.host: 172.16.0.36
# 对外提供服务的端口,9300为集群服务的端口                           
http.port: 9200        
transport.tcp.port: 9300  

# 写入候选主节点的设备地址,在开启服务后可以被选为主节点
discovery.seed_hosts: ["172.16.0.36:9300"]
# 初始化一个新的集群时需要此配置来选举master  
cluster.initial_master_nodes: ["node-1"]

# 避免出现跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "Authorization"
http.cors.allow-credentials: true

#注意:配置文件上方需要更改两个参数,在Memory下更改:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

注:在配置文件最后添加即可

  1. 更改 jvm.options 配置文件中的内存参数,根据自己服务器内存大小进行配置,默认两个都是4G,并且是注释的, 在段落的最后增加此参数
-Xms512m
-Xmx512m
  1. 修改系统文件,不修改多数情况下会启动失败
  • 修改/etc/security/limits.conf 文件,增加下面内容
* soft nofile 65536 
* hard nofile 131072 
* soft nproc 2048 
* hard nproc 4096
  • 修改 /etc/sysctl.conf 增加 vm.max_map_count=262145
  • 修改完后 sysctl -p 刷新一下
  1. 因为 elasticsearch 不能使用 root 用户启动,所以需要创建其他用户
# 创建 elastic 账号
useradd elastic 
# 使用 root 账号给 elastic 账号进行目录权限
chown -R elastic:elastic /usr/local/elasticsearch
# 切换 elastic 账号进行启动 elasticsearch
su elastic
  1. 启动 elasticserch,进入 bin 目录(/usr/local/elasticsearch/elasticsearch-7.17.4/bin)启动命令
./elasticsearch 
./elasticsearch &
  1. 在浏览器访问ip+端口号(9200),确保服务器的防火墙已经关闭或对应的端口号可以访问,出现以下图则说明安装成功了。

image.png

设置密码

在测试环境我们可以不设置密码,但是在生产环境必须设置密码,不设置密码存在安全隐患。

  1. 生成 CA 证书, 执行命令./elasticsearch-certutil cert -out config/cert/elastic-certificates.p12 -pass ""
  2. 在 elasticsearch.yml 配置文件中增加,重启 ES
#是否启用es的安全设置,启用安全设置后es各节点、客户端的传输都会加密,并需要账号密码 设置证书
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /usr/local/elasticsearch/elasticsearch-7.17.4/config/cert/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/elasticsearch/elasticsearch-7.17.4/config/cert/elastic-certificates.p12
  1. 启动完成后, 执行 ./elasticsearch-setup-passwords interactive 命令,会让你输入密码,每组需要输入两次,也可以所有的密码都输入一个。所有的密码都输入完成之后,重新ES。
  2. 启动 elasticsearch
  3. 再次访问ip+9200 弹出让输入账号密码,说明密码设置成功。账号为 elastic 密码为刚才设置的密码,输入账号密码可以进入说明密码设置成功

image.png

image.png

安装 kibana

kibana 版本需要和 elasticsearch 的版本一致。

  1. 访问 elasticsearch 官网进行下载 image.png

image.png

image.png

选择对应的系统的安装包

image.png

  1. 把包上传到服务器进行解压,tar -zxvf kibana-7.17.4-linux-x86_64.tar.gz
  2. 修改配置文件 config/kibana.yml
# 页面语言,默认为英文,下面配置为中文
# i18n.locale: "zh-CN"

# 服务器IP
server.host: "172.16.0.36"
elasticsearch.hosts: ["http://172.16.0.36:9200"]
# 设置 elasticseatch 的账号密码,如果 elastticseatch 没有设置密码,此选项可以忽略
elasticsearch.username: "elastic"
elasticsearch.password: "123456"
  1. kibana 也不能使用 root 账号启动,可以使用 elastic 账号进行启动,设置账号和账号权限
# 使用 root 账号给 elastic 账号进行目录权限
chown -R elastic:elastic /usr/local/kibana-7.17.4
# 切换 elastic 账号进行启动 elasticsearch
su elastic
  1. 启动 kibana, 进入 bin 目录执行命令 ./kibana 进行启动
  2. 访问:浏览器输入 ip + 端口号(5601)进行访问,需要输入账号密码,登录成功说明配置没有问题

image.png

image.png

至此 elasticsearch 和 kibana 就安装完成了。 后续会有集群配置的教程。