准备ES
This section includes information on how to setup Elasticsearch and get it running, including:
Downloading
Installing
Starting
Configuring
本节包含如何安装、启动ES。包括:
- 下载
- 安装
- 启动
- 配置
Supported platforms支持的平台
基本能叫出名的系统,都是支持的,比如centos、ubuntu、windows
Java (JVM) Version
Elasticsearch is built using Java, and requires at least Java 8 in order to run. Only Oracle’s Java and the OpenJDK are supported. The same JVM version should be used on all Elasticsearch nodes and clients.
We recommend installing Java version 1.8.0_131 or a later version in the Java 8 release series. We recommend using a supported LTS version of Java. Elasticsearch will refuse to start if a known-bad version of Java is used.
The version of Java that Elasticsearch will use can be configured by setting the JAVA_HOME environment variable.
配置JDK环境,ES6.7需要运行在至少Java8的环境。
安装ES
下载tar.gz包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.7.0.tar.gz.sha512
tar -xzf elasticsearch-6.7.0.tar.gz
cd elasticsearch-6.7.0/
运行ES
./bin/elasticsearch
通过Ctrl+C
可以终止进程。
检查ES是否运行
可以通过发送请求到localhost:9200
查看
GET /
返回
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "f27399d",
"build_date" : "2016-03-30T09:51:41.449Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
作为守护进程运行ES
To run Elasticsearch as a daemon, specify -d on the command line, and record the process ID in a file using the -p option:
./bin/elasticsearch -d -p pid
关闭ES
pkill -F pid
配置ES
配置本地文件
ES有是3个配置文件
- elasticsearch.yml
- for configuring Elasticsearch
- jvm.options
- for configuring Elasticsearch JVM settings
- log4j2.properties
- for configuring Elasticsearch logging
配置文件的格式
配置文件的格式是YAML。
path:
data: /var/lib/elasticsearch
logs: /var/log/elasticsearch
环境变量替换
node.name: ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}
在启动ES的时候,会提醒你输入变量值.
Enter value for [node.name]:
设置JVM选项
You should rarely need to change Java Virtual Machine (JVM) options. If you do, the most likely change is setting the heap size. The remainder of this document explains in detail how to set JVM options.
通常很少会需要去修改JVM参数。如果要修改,通常最可能要修改的是JVM的堆大小。
安全设置
日志配置
重要的ES配置
常见问题
使用root用户启动会提示异常
[root@CHENG2 bin]# ./elasticsearch
[2019-03-24T09:48:30,896][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [unknown] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
报这个错误,需要使用root权限给用户授权
java.io.FileNotFoundException: /home/es/elasticsearch-6.6.2/logs/elasticsearch.log (Permission denied) java.io.FileNotFoundException: /home/es/elasticsearch-6.6.2/logs/elasticsearch.log (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
正规操作
groupadd esgroup
useradd esuser -g esgroup -p espassword
cd /opt
chown -R esuser:esgroup elasticsearch-6.2.4
su esuser
./bin/elasticsearch -d
外网无法访问
修改/config/elasticsearch.yml
修改属性值
network.host:0.0.0.0