1.需要准备的资料链接
2.es安装与集群配置
3.head插件安装
4.es基本用法
5.es高级用法
6.springboot整合es
7.计划学习elk搭建
一.准备的资料
https://download.csdn.net/download/wuzhuang12/10643242 相关数据下载
http://www.imooc.com/learn/920 相关学习视频
二.es安装
要注意的问题
1.jdk至少需要在1.8.0_73以上版本
2.linux的内核版本需要在2.6以上(我用的是centos7.x) 下载地址 https://www.elastic.co/downloads/elasticsearch
3.es不能用root用户启动
异常信息:can not run elasticsearch as root
解决方案: 新建用户 adduser xxx 将es文件夹权限修改 chown -R xx|xx 文件夹
安装步骤
1.把下载好的tar包解压至/usr/local目录下
2.进入bin文件加 ./elasticsearch 启动es
- ./elasticsearch -d 后台启动
4.外部访问端口默认9200,多台机器交互时默认9300 使用命令查看端口绑定的ip地址netstat -aon|grep 9200 ,如果绑定的是127.0.0.1只能内部访问,不能外部访问
5.curl -XGET http://ip地址:9200 确认是否启动成功
--安装过程注意的问题
1.修改内存
异常信息:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)
解决方案: 修改/config/jvm.options文件 -Xms200m -Xmx200m
2.修改文件大小
异常信息: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3895] for user [elastic] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决方案: 1.修改/etc/security/limits.conf,修改到提示值即可
- hard nofile 65536
2.修改/etc/security/limits.d/90-nproc.conf 文件 添加
- hard nproc 4096
3.修改/etc/sysctl.conf
添加配置:vm.max_map_count=262144, 然后执行命令 sysctl -p
soft nproc: 可打开的文件描述符的最大数(软限制)
hard nproc: 可打开的文件描述符的最大数(硬限制)
soft nofile:单个用户可用的最大进程数量(软限制)
hard nofile:单个用户可用的最大进程数量(硬限制)
三.简单的集群配置
主节点配置
集群名称,其他节点就是通过这个名字找到指定的集群
cluster.name: wali
节点名称,一个集群里节点名称不能重复
node.name: master
是否为主节点
node.master: true
存放数据的位置
path.data: /home/tar/elasticsearch-6.3.2/data
存放日志的位置
path.logs: /home/tar/elasticsearch-6.3.2/logs
绑定的ip
network.host : 172.31.69.209
指示是否为 Elasticsearch 服务启用 HTTP。如果您要通过使用 Elasticsearch REST 请求来直接查询 Elasticsearch 数据,那么可以启用 HTTP 端口
http.cors.enabled: true
如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。
http.cors.allow-origin: "*"
如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口。
http.port: 9200
用于某个集群中 Elasticsearch 节点之间的通信的端口
transport.tcp.port: 9300
其他节点配置
集群名称,其他节点就是通过这个名字找到指定的集群
cluster.name: wali
节点名称,一个集群里节点名称不能重复
node.name: slave2
存放数据的位置
path.data: /home/wuzhuang/data2
存放日志的位置
path.logs: /home/wuzhuang/logs2
绑定的ip
network.host : 172.31.69.209
提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。
discovery.zen.ping.unicast.hosts: ["172.31.69.209"]
elasticsearch.yml配置属性
属性 | 缺省值 | 描述 |
---|---|---|
cluster.name | federated_cluster | Elasticsearch 集群名称。使用集群可将单独 Process Federation Server 绑定到单个分布式系统中。参与集群的所有服务器都必须具有相同的集群名称。 |
node.name | node1 | Elasticsearch 节点名。集群中的每个 Process Federation Server 都必须具有唯一节点名。 |
node.master | true | 指示某个节点是否符合成为主节点的条件。主节点管理 Elasticsearch 集群的状态。在运行时,Elasticsearch 服务会自动提名某一个合格的集群成员成为主节点。 |
node.data | true | 指示节点是否为数据节点。数据节点包含并管理索引的一部分。 |
http.enabled | false | 指示是否为 Elasticsearch 服务启用 HTTP。如果您要通过使用 Elasticsearch REST 请求来直接查询 Elasticsearch 数据,那么可以启用 HTTP 端口。 |
htttp.port | 9200 | 如果启用了 HTTP 端口,那么此属性指定由 Elasticsearch 服务使用的端口。 |
http.cors.enabled | true | 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。 |
http.cors.allowed.origin | localhost | 如果 http.cors.enabled 的值为 true,那么该属性会指定允许 REST 请求来自何处。 |
transport.tcp.port | 9300 | 用于某个集群中 Elasticsearch 节点之间的通信的端口。 |
discovery.zen.minimum_master_nodes | 1 | 指示某个集群定额所需的 Process Federation Server 的数量。 |
discovery.zen.ping.multicast.enabled | false | 通过发送节点所接收和响应的一个或多个多点广播请求来提供对其他 Elasticsearch 服务节点的多点广播 ping 发现功能。有关更多信息,请参阅 Elasticsearch 文档。 |
discovery.zen.ping.unicasts.hosts | localhost | 提供其他 Elasticsearch 服务节点的单点广播发现功能。配置集群中基于主机 TCP 端口的其他 Elasticsearch 服务的逗号分隔列表。 |
discovery.zen.ping.timeout | 3s | Elastic 搜索节点等待加入 Elasticsearch 集群的时间。 |