参考文档https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html
Set up ElasticSearch 部分
Installing Elasticsearch 章节
Download&Running
选择下载zip文件
文件下载到当前目录
开启 ES
具体操作
cd ~/Download
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz
cd elasticsearch
./bin/elasticsearch
开启之后使用另一个终端发起请求
curl -X GET "localhost:9200/"
返回节点相关信息
如果需要启动为后台服务,参数为-d
-p 保存 pid 到文件 ‘pid’
./bin/elasticsearch -d -p pid
在前台模式下想要停止只需要 ctrl+c 或者 control+c 就可以
但是在后台模式下想要关闭需要在终端输入
kill -9 `cat pid`
$ ./bin/elasticsearch -p /tmp/elasticsearch-pid -d #将当前程序的pid保存为文件后,后台启动ES服务
$ cat /tmp/elasticsearch-pid && echo #显示文件中保存的pid
15516
$ kill -SIGTERM 15516 #结束pid为15516的进程
也可以在启动时添加参数 设置集群(cluster)名称 ,设置节点(node)名称,不添加参数即为默认
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
Elasticsearch 的具体配置
Elasticsearch 有三个配置文件:
elasticsearch.yml
用于配置 Elasticsearchjvm.options
用于配置 Elasticsearch JVM 设置log4j2.properties
用于配置 Elasticsearch日志记录
这些文件位于 config目录中
配置 JVM 参数
Elasticsearch 是基于 Java 开发的所以需要对应用的 JVM 参数进行优化配置,以达到最好的性能
Secure setting
某些设置是敏感的,依靠文件系统权限来保护其值是不够的。对于此用例,Elasticsearch 提供了一个密钥库和 elasticsearch-keystore
管理密钥库中设置的工具
bin/elasticsearch-keystore create #创建一个keystore
bin/elasticsearch-keystore list #列出所有的key
bin/elasticsearch-keystore add the.setting.name.to.set #添加一个key
bin/elasticsearch-keystore remove the.setting.name.to.remove #删除一个key
在 keystone 中添加后,可以通过变量的方式调用,通常情况下,这些设置都会在重启节点的情况下生效
虽然启动 Elasticsearch 只需要很少的配置(默认配置),但在投入生产之前需要考虑许多设置。
如
ES配置
Path setting | 路径设置 | 将数据和日志保存在服务器其他位置,这样即使在升级ES版本的情况下也能保持数据和日志不被更改 |
Cluster name | 集群名称 | 如果不设置,默认值为elasticsearch,只有cluster.name相同的节点才会被聚合为一个集群 |
Node name | 节点名称 | 默认使用随机生成的uuid前七个字符,重启ES不会更改 |
Network host | 网络主机 | 对外提供服务的IP地址,默认为localhost,一旦配置即认为进入生产环境 |
Discovery setting | 集群节点发现机制的设置 | 发现部署在其他服务器上的集群节点 discovery.zen.ping.unicast.hosts 为避免分裂大脑,应将此设置设置为符合条件的主节点的法定数量:(master_eligible_nodes / 2)+ |
Heap size | JVM堆内存的配置 | ES要求堆内存最小和最大空间设置要相等 |
Heap dump path | 堆转储路径 | 默认/var/lib/elasticsearch |
GC logging | 垃圾回收日志 | 默认启用 |
Temp directory | 临时目录 | 某些Linux下会自动定时清理/tmp,所以尽量为ES设置单独的临时目录 |
系统配置
Disable swapping | 禁用交换分区 | swap影响性能、节点稳定性 |
Increase file descriptor | 增加文件描述符 | 用尽文件描述符有可能导致数据丢失 |
Ensure sufficient threads | 确保足够的线程数 | 至少为4096 |
JVM DNS cache setting | JVM DNS 缓存设置 |
|
Temporary directory not mounted with noexec | 临时目录未挂载noexec |
|
Bootstrap 检查
启动 ES 的时候会进行 Bootstrap 检查,一旦配置了 network.host,ES 就会认为进入生产模式,并将警告升级为异常,ES 将不会启动,在开发模式下如果未配置会将警告写入日志文件,但 ES 依然会运行,
包括:
Heap size check | 堆大小检查 | 如果以不等的初始和最大堆大小启动JVM,则在系统使用期间调整JVM堆的大小时,它可能会暂停。要避免这些调整大小暂停,最好以初始堆大小等于最大堆大小来启动JVM |
File descriptor check | 文件描述符检查 |
|
Memory lock check | 内存锁检查 | 请求JVM通过mlockall将堆锁定在内存中 |
Maximum number of threads check | 最大线程数检查 | 检查的最大线程数确保Elasticsearch进程有权在正常使用下创建足够的线程 |
Maximum file size check | 最大文件大小检查 | Elasticsearch应具有无限的地址空间 |
Maximum number of threads check | 最大内存映射数检查 | 为了mmap有效使用,Elasticsearch还需要能够创建许多内存映射区域,检查内核是否允许进程至少具有262,144个内存映射区域 |
Client JVM check | JVM客户端检查 |
|
Use serial collector check | 使用串行收集器检查 | 串行收集器检查可确保Elasticsearch未配置为与串行收集器一起运行 |
OnError and OnOutOfMemoryError checks | 致命错误检查 |
|
Early-access check | 早期版本检查 | 类似内侧(Beta) |
G1GC check |
| 早期版本JDK中组件可能导致索引损坏 |
All permission check | 所有权限检查 | 相当于禁用安全管理 |
设置X-Pack
X-Pack 是一种 Elastic Stack 扩展,可提供安全性,警报,监控,报告,机器学习和许多其他功能
安装X-Pack 默认情况下安装 elasticsearch 同时会安装 X-Pack
配置监控 配置集群以收集监视数据 确定存储监控数据的位置 添加可信的CA证书 配置集群将数据发送到监视集群 注意更新集群设置后重启 ES 生效
配置安全性 用来保护集群 对数据进行密码保护 实施更高级的安全措施,如加密通信,基于角色的访问控制,IP过滤和审核
X-Pack设置 许可证管理 机器学习(默认开启) SQL Access(默认开启)
Bootstrap检查X-Pack 加密敏感数据检查 公钥基础结构检查 角色映射检查 SSL/TLS检查(高级许可证) 令牌环检查