前序
文章出自
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
文章内容全部出自本人对官方文档的翻译,以及两年多的es使用经验理解,自己理解的部分会特殊标记,无特殊标记处均翻自官网,参考文章时请注意辨别。
文章内容
正文
安装elasticSearch
官网提供了各种版本的安装教程,这里仅以mac版本作为样例。
下载
通过执行下面命令可以进行mac版本的es安装包的下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.1-linux-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.17.1-linux-x86_64.tar.gz.sha512
tar -xzf elasticsearch-7.17.1-linux-x86_64.tar.gz
cd elasticsearch-7.17.1/
比较下载的tar.gz
文件和发布的校验和最终会输出一个elasticsearch-{version}-darwin-x86_64.tar.gz: OK
cd elasticsearch-7.17.1/
进入到的目录也被称为$ES_HOME
开启系统索引的自动创建功能
一些商业化的功能会自动的创建一些索引,默认情况下ES也是支持自动创建索引的,但是如果ES集群设置了禁止自动创建索引的功能的话,就需要在ES的elasticsearch.yml
文件中配置一下属性。
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*
# 如果使用了Logstash和Beats服务,你也就需要在配置文件中添加更多的配置,如果你不确定你要配置的值应该是什么的话,你可以给action.auto_create_index配置为*
个人理解:
es默认是会自动创建索引的,但是这个功能是可以关掉的,比如我不希望这个集群有log-以外的任何索引
创建,那么我就可以关掉自动创建索引功能,来达到限制的作用。
但是es集群启动的时候有一些监控的索引是必须要创建的,不然启动会异常,所以需要在es的配置文件中
配置es自己启动必要创建的索引前缀。
像Logstash和Beats服务创建索引时,也会遇到和es启动时创建索引一样的问题,根据使用环境改就好
了。
从命令行启动ElasticSearch集群
在命令行执行如下命令
./bin/elasticsearch
如果你有密钥库的密码保护机制,及时的输入密码就好了,密码配置后续文章也会介绍。
默认情况下,es会在终端界面和日志文件目录中都打印日志,但是一旦集群完成启动的初始化之后,es就不会打印任何日志了,直到出现一些需要记录的事件的发生。你也可以使用http协议和es集群进行交互,es默认开启的是9200端口,如果要关闭es集群使用control-c
命令。
检查ElasticSearch集群是否启动
你可以在你启动ElasticSearch集群的机器上,通过http请求本地的9200端口,命令如下
curl -X GET "localhost:9200/?pretty"
集群给你返回的结果应该是下面这样的:
{
"name" : "Cp8oag6",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
"version" : {
"number" : "7.17.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "f27399d",
"build_date" : "2022-02-30T09:54:32.379Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "1.2.3",
"minimum_index_compatibility_version" : "1.2.3"
},
"tagline" : "You Know, for Search"
}
你也可以在在命令行中使用-q或-quit来禁止打印到标准输出的日志。
后台启动
可以在命令行使用-d进行后台启动,使用-p选项可以将启动的进程号记录到文件中。命令如下:
./bin/elasticsearch -d -p pid
如果开启了密码相关的配置,输入密码即可
日志信息可以在$ES_HOME/logs/
目录中找到
如果需要关闭集群,直接kill掉在pid
文件中记录的进程号即可
pkill -F pid
在命令行配置ElasticSearch集群
ElasticSearch默认会读取$ES_HOME/config/elasticsearch.yml
文件中的内容进行集群配置加载。这个文件的详细内容后面文章会专门介绍。
添加一个配置可以在文件中添加,但是也可以在命令行中使用-E
的语法进行添加的,例如
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
# 原则上所有的配置都应该放在elasticsearch.yml文件中,但是一些特殊的节点的名字进行配置时,也会在命令行指定该节点的名字的。
目录规划
默认情况下,所有的文件都在ES_HOME
文件夹下面,ES解压缩包文件的时候会创建。
这样做也是非常方便的,因为你在使用和卸载ES的时候不用自己去创建和删除文件。当然,一些文件也是可以手动指定位置的,比如log文件,data文件,配置文件等,这样的话你在卸载ES的时候不会导致一些重要的数据丢失。
类型 | 描述 | 默认位置 | 配置 |
---|---|---|---|
home | ES默认的根目录ES_HOME | 通过解压缩包生成文件创建的目录 | |
bin | 包含elasticsearch 启动一个节点和elasticsearch-plugin 安装插件的二进制脚本 | ES_HOME/bin | |
conf | 包含elasticsearch.yaml 的配置文件 | ES_HOME/config | |
data | 在节点上为每一个索引分配分片时数据存储文件的位置 | ES_HOME/data | path.data |
logs | 存储日志文件的位置 | ES_HOME/logs | path.logs |
plugins | 配置文件的目录,每一个插件都会一个一个插件的子目录 | ES_HOME/plugins | |
repo | 分片的文件系统仓库地址。可以是多个地址。文件存储系统可以放在此处定义的任意一个目录或者子目录中 | Not Configured | path.repo |
个人理解:
这里的repo和data,后续的文档会给出详细的说明,以及区别。