本文的安装文件是 2021.09.23 最新发布的【elasticsearch-7.15.0-linux-x86_64.tar.gz】和【kibana-7.15.0-linux-x86_64.tar.gz】以下内容均以 7.15.0 版本进行说明。
1 ElasticSearch
1.1 环境
elasticsearch 的运行依赖 JDK,支持的最低版本为 Java 8。
Elasticsearch requires at least Java 8.
Specifically as of this writing,
it is recommended that you use the Oracle JDK version 1.8.0_131.
我用的是JDK11【顺便测试11是否支持】:
[root@aliyun ~]# java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11+28)
OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
1.2 安装配置
- 解压并移动到 /usr/local/elasticsearch 下
tar -zxvf ./elasticsearch-7.15.0-linux-x86_64.tar.gz
mv ./elasticsearch-7.15.0/ /usr/local/elasticsearch
- 用户添加及权限授予
ES跟MySQL类似,不能使用root用户启动,否在会报异常:
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
添加 elasticsearch 用户组和用户:
# 添加组和用户
groupadd elasticsearch
useradd -g elasticsearch elasticsearch
# 设置密码
[root@aliyun ~]# echo "elasticsearch" | passwd elasticsearch --stdin
Changing password for user elasticsearch.
passwd: all authentication tokens updated successfully.
将ES的文件转到 elasticsearch 下:
cd /usr/local/elasticsearch
chown -R elasticsearch .
chgrp -R elasticsearch .
[root@aliyun elasticsearch]# ll
total 636
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Sep 16 11:09 bin
drwxr-xr-x 3 elasticsearch elasticsearch 169 Sep 23 16:14 config
drwxr-xr-x 9 elasticsearch elasticsearch 121 Sep 16 11:09 jdk
drwxr-xr-x 3 elasticsearch elasticsearch 4096 Sep 16 11:09 lib
-rw-r--r-- 1 elasticsearch elasticsearch 3860 Sep 16 11:01 LICENSE.txt
drwxr-xr-x 2 elasticsearch elasticsearch 6 Sep 16 11:07 logs
drwxr-xr-x 60 elasticsearch elasticsearch 4096 Sep 16 11:09 modules
-rw-r--r-- 1 elasticsearch elasticsearch 628969 Sep 16 11:07 NOTICE.txt
drwxr-xr-x 2 elasticsearch elasticsearch 6 Sep 16 11:07 plugins
-rw-r--r-- 1 elasticsearch elasticsearch 2710 Sep 16 11:01 README.asciidoc
修改 sudoers 文件,给用户 elasticsearch 添加 sudo 权限:
[root@aliyun ~]# vim /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
# 添加elasticsearch
elasticsearch ALL=(ALL) ALL
- 系统参数配置【vm.max_map_count】
否则会报错:
ERROR: [1] bootstrap checks failed
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
# 查看系统环境变量 vm.max_map_count
[root@aliyun elasticsearch]# sysctl -a | grep vm.max_map_count
vm.max_map_count = 65530
# 修改系统环境变量 vm.max_map_count
[root@aliyun elasticsearch]# vim /etc/sysctl.conf
# 末尾添加
vm.max_map_count = 262144
# 配置文件修改完后需要重启才能生效 可使用下面命令使得本次启动有效
[root@aliyun ~]# sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
- 单机版配置【修改两个文件】
【文件 1️⃣ elasticsearch.yml】
[root@aliyun ~]# vim /usr/local/elasticsearch/config/elasticsearch.yml
# 1.添加一下配置 【关掉bootstrap的自检测程序 启动会更快】
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
# 2.Network 配置修改
network.host: 0.0.0.0
报错问题及处理:
[2021-09-23T16:27:14,520][ERROR][o.e.b.Bootstrap]
[aliyun] node validation exception [1] bootstrap checks failed.
You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for
production use; at least one of [discovery.seed_hosts, discovery.seed_providers,
cluster.initial_master_nodes] must be configured
[root@aliyun ~]# vim /usr/local/elasticsearch/config/elasticsearch.yml
# 3.Discovery 配置修改,必须配置至少一项:
# [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
cluster.initial_master_nodes: ["aliyun"]
【文件 2️⃣ jvm.options】
es运行在Java虚拟机环境下,默认占用1G内存,【我使用的是阿里云低端主机1核2G内存的,这里调小一些,非生产环境也可以调小使用,生产环境要根据需求进行调整。】
[root@aliyun ~]# vim /usr/local/elasticsearch/config/jvm.options
# 初始化堆空间
-Xms256m
# 最大堆空间
-Xmx256m
1.3 启动验证
# 启动要使用elasticsearch用户
[root@aliyun ~]# su elasticsearch
[elasticsearch@aliyun root]$ /usr/local/elasticsearch/bin/elasticsearch
# 后台启动
[elasticsearch@aliyun root]$ /usr/local/elasticsearch/bin/elasticsearch -d
[root@aliyun ~]# jps
10548 Jps
10312 Elasticsearch
也可以通过 IP:9200 进行验证:
至此,最新版本的 elasticsearch 安装配置启动完成。
2 kibana
2.1 安装配置
- 解压并移动到 /usr/local/kibana下
tar -zxvf ./kibana-7.15.0-linux-x86_64.tar.gz
mv ./kibana-7.15.0-linux-x86_64/ /usr/local/kibana
- 修改配置文件【kibana.yml】
[root@aliyun ~]# vim /usr/local/kibana/config/kibana.yml
# 可使用默认值
# server.port: 5601
# kibana.index: ".kibana"
# 以下配置需要修改
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"] # 多个用逗号隔开
i18n.locale: "zh-CN" # 界面中文设置【如果需要的话】
xpack.security.enabled: false # 否则页面会弹出提示
Elasticsearch built-in security features are not enabled. Without authentication,
your cluster could be accessible to anyone.
See https://www.elastic.co/guide/en/elasticsearch/reference/7.15/security-minimal-setup.html
to enable security.
2.2 启动验证
# kibana 也是不能使用root用户启动的 但是提供了 --allow-root 使其可以用root用户启动
[root@aliyun ~]# /usr/local/kibana/bin/kibana --allow-root
# 后台启动
[root@aliyun ~]# nohup /usr/local/kibana/bin/kibana --allow-root &
[root@aliyun ~]# ps -aux | grep kibana
root 1845 0.5 3.0 617844 53972 pts/1 Sl+ 17:49 0:00 /usr/local/kibana/bin/../node/bin/node /usr/local/kibana/bin/../src/cli/dist --allow-root
root 1857 23.3 24.7 1216092 443012 pts/1 Sl+ 17:49 0:17 /usr/local/kibana/node/bin/node --preserve-symlinks-main --preserve-symlinks /usr/local/kibana/src/cli/dist --allow-root
root 2024 0.0 0.0 12108 1080 pts/2 R+ 17:50 0:00 grep --color=auto kibana
也可以通过 IP:5601进行验证:
2.3 设置开机启动
# 添加 kibana.service 文件
vim /lib/systemd/system/kibana.service
# 内容如下
[Unit]
Description=Kibana
[Service]
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/usr/local/kibana/bin/kibana --allow-root
User=elasticsearch
Group=elasticsearch
[Install]
WantedBy=multi-user.target
# 重新加载systemd的守护线程 systemctl daemon-reload
systemctl enable kibana
# 启动kibana.service:
systemctl start kibana.service
# 查看kibana.serivce状态:
systemctl status kibana.service
ps aux|grep kibana
# 如果出现错误可以使用如下命令查看日志:journalctl -u kibana.service
2.4 仪表盘
kibana 的仪表盘类似于Tableau、永洪、帆软等可视化工具,详细的使用需要自行学习,这里贴出一个很简单的图,界面还是挺美观的而且可设置项也是挺多,最为关键的是开源免费:
3.总结
至此,最新版 elasticsearch + kibana(7.15.0)安装配置及启动成功 👌