本文主要记录我初步学习elastic search,安装至阿里云ecs上的centos的linux系统上。
前几天安装window上成功,今天想测试安装centos上。
首先,我们需要查看我们需要安装的elastic search
需要什么版本的jdk(java环境),
查看elasticsearch支持的jdk版本地址
java jdk11下载地址添加链接描述
JDK推荐直接下载1.8版本的,也是8版本,全部elasticsearch都支持。
jdk1.8版本官方地址。
根据需要,我们下载jdk11和elasticsearch7.8
jdk版本下载源
上面下载elasticsearch实在太慢。推荐下面的镜像地址下载:
elasticsearch所有版本
默认运行网址:http://localhost:9200/
kibana所有版本
默认运行网址:http://localhost:5601/
使用winscp软件,登陆ecs,上传文件。
上传jdk文件到/opt/
目录下,或者先集体上传到一个目录下,一会复制到指定目录下再解压也行。
比如我就是先集体上传到一个自己创建的目录下面。然后再复制到指定目录解压。
我这里以自己的为例子,先集体上传的指定目录。
/opt/
下,并解压复制、切换到指定目录,然后解压。
cp jdk-11.0.8_linux-x64_bin.tar.gz /opt/
cd /opt/
tar -zxvf jdk-11.0.8_linux-x64_bin.tar.gz
mv jdk-11.0.8 jdk
输入命令:
vi /etc/profile
在文件尾部加入如下内容:
这个很重要很重要
,我都第一次找到文章跟着弄不出来。
下面这是正确的写法,错误代码我删了,不过我下面留张错误的图。
export JAVA_HOME=/opt/jdk
export JRE_HOME=${
JAVA_HOME}/jre
export CLASSPATH=.:${
JAVA_HOME}/lib:${
JRE_HOME}/lib
export PATH=${
JAVA_HOME}/bin:$PATH
下面是我找到第一个方式,但是没有成功,为了防止后面有人出错我留着吧。
错误的
图
正确
的图。
修改完成后,保存文件,退出。
通过source命令重新加载/etc/profile文件,使得修改后的内容生效,命令如下。
java -version
其实如果可以,还是安装1.8版本的比较稳定,我发现1.8版本的jdk,都支持,目前1.8版本的jdk可以维护到2030年左右。
jdk1.8版本官方地址,推荐使用镜像下载,官方要注册什么的。还比较慢。
这里选择放在了/opt目录下,进入/opt目录,复制、安装解压命令如下。
cp /root/000_zjf_2020/002_elasticsearch/elasticsearch-7.8.0-linux-x86_64.tar.gz ./
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
mv elasticsearch-7.8.0 elasticsearch
同样为了后续使用方面将解压后的目录文件重命名为elasticsearch,重命名命令如下。
修改系统参数的目的是确保系统有足够的资源启动Elasticsearch。
增加以下参数
vi /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p
vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited
vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk soft nproc 65536
因为启动Elasticsearch5.0版本及以上需要使用非root用户,需要新建一个用户来启动Elasticsearch,命令如下所示。
useradd elk #创建用户elk
groupadd elk #创建组elk
useradd elk -g elk #将用户添加到组
mkdir -pv /opt/elk/{
data,logs} # 创建数据和日志目录
# 修改文件所有者
chown -R elk:elk /opt/elk
chown -R elk:elk /opt/elasticsearch/
修改Elasticsearch的配置文件/opt/elasticsearch/config/elasticsearch.yml
。
以下配置仅供参考。
经过俩天的摸索总算配置好了,可以参考下我的配置,上面有中文解释,
[discovery.seed_hosts
, discovery.seed_providers
, cluster.initial_master_nodes
]这几个必须配置哈,至少要配置一个,不然会报错。
# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
# Before you set out to tweak and tune the configuration, make sure you
# understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
# 集群名称
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
# 当前的节点名称
node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
# 储存数据的路径
path.data: /opt/elk/data
#
# Path to log files:
# 储存的日志logs
path.logs: /opt/elk/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#部署的ecs,内网ip
#network.host: 172.16.54.31
network.host: 0.0.0.0
#
# Set a custom port for HTTP:
#启动的端口
http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when this node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.seed_hosts: ["host1", "host2"]
#集群的所以节点
discovery.seed_hosts: ["node-1"]
#
# Bootstrap the cluster using an initial set of master-eligible nodes:
#
#cluster.initial_master_nodes: ["node-1", "node-2"]
#主节点
cluster.initial_master_nodes: ["node-1"]
#
# For more information, consult the discovery and cluster formation module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#这个时集群使用,意思时至少几个节点集群才能使用,如果时默认的3就是要三个节点或者以上才有效,所以我这里不配置。
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
## 删除全部索引
#DELETE /_all
#注意,这种操作非常危险,不推荐使用,如果想禁用这种操作,可在在es的config/elasticsearch.yml中将参数action.destructive_requires_name设置为true,如
#设置为true防止所有索引被删除。
action.destructive_requires_name: true
切换到创建的elk用户,并且后台启动elasticsearch。
# 切换用户,必须
su elk
# 启动
/opt/elasticsearch/bin/elasticsearch
使用winscp,新打开一个命令窗口,因为我现在不是后台启动。
curl http://127.0.0.1:9200
返回一个json即可是
http://你自己ecs的公网:9200/
再elk用户下(elk
你可以自己随便创建用户)
nohup /opt/elasticsearch/bin/elasticsearch &
https://blog.csdn.net/dog_one/article/details/97959389
https://www.cnblogs.com/xphhh/p/11546246.html
https://www.cnblogs.com/stulzq/p/9286878.html
https://mp.weixin.qq.com/s/y8HZbUezHVaCtdSDDx7SWg
重要的配置
https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configuration-changes.html
https://juejin.im/post/6844903905436909575#heading-9