1.需要準(zhǔn)備的資料鏈接
2.es安裝與集群配置
3.head插件安裝
4.es基本用法
5.es高級(jí)用法
6.springboot整合es
7.計(jì)劃學(xué)習(xí)elk搭建
一.準(zhǔn)備的資料
https://download.csdn.net/download/wuzhuang12/10643242 相關(guān)數(shù)據(jù)下載
http://www.imooc.com/learn/920 相關(guān)學(xué)習(xí)視頻
二.es安裝
要注意的問(wèn)題
1.jdk至少需要在1.8.0_73以上版本
2.linux的內(nèi)核版本需要在2.6以上(我用的是centos7.x) 下載地址 https://www.elastic.co/downloads/elasticsearch
3.es不能用root用戶啟動(dòng)
異常信息:can not run elasticsearch as root
解決方案: 新建用戶 adduser xxx 將es文件夾權(quán)限修改 chown -R xx|xx 文件夾
安裝步驟
1.把下載好的tar包解壓至/usr/local目錄下
2.進(jìn)入bin文件加 ./elasticsearch 啟動(dòng)es
- ./elasticsearch -d 后臺(tái)啟動(dòng)
4.外部訪問(wèn)端口默認(rèn)9200,多臺(tái)機(jī)器交互時(shí)默認(rèn)9300 使用命令查看端口綁定的ip地址netstat -aon|grep 9200 ,如果綁定的是127.0.0.1只能內(nèi)部訪問(wèn),不能外部訪問(wèn)
5.curl -XGET http://ip地址:9200 確認(rèn)是否啟動(dòng)成功
--安裝過(guò)程注意的問(wèn)題
1.修改內(nèi)存
異常信息: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, 然后執(zhí)行命令 sysctl -p
soft nproc: 可打開(kāi)的文件描述符的最大數(shù)(軟限制)
hard nproc: 可打開(kāi)的文件描述符的最大數(shù)(硬限制)
soft nofile:?jiǎn)蝹€(gè)用戶可用的最大進(jìn)程數(shù)量(軟限制)
hard nofile:?jiǎn)蝹€(gè)用戶可用的最大進(jìn)程數(shù)量(硬限制)
三.簡(jiǎn)單的集群配置
主節(jié)點(diǎn)配置
集群名稱,其他節(jié)點(diǎn)就是通過(guò)這個(gè)名字找到指定的集群
cluster.name: wali
節(jié)點(diǎn)名稱,一個(gè)集群里節(jié)點(diǎn)名稱不能重復(fù)
node.name: master
是否為主節(jié)點(diǎn)
node.master: true
存放數(shù)據(jù)的位置
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 服務(wù)啟用 HTTP。如果您要通過(guò)使用 Elasticsearch REST 請(qǐng)求來(lái)直接查詢 Elasticsearch 數(shù)據(jù),那么可以啟用 HTTP 端口
http.cors.enabled: true
如果 http.cors.enabled 的值為 true,那么該屬性會(huì)指定允許 REST 請(qǐng)求來(lái)自何處。
http.cors.allow-origin: "*"
如果啟用了 HTTP 端口,那么此屬性指定由 Elasticsearch 服務(wù)使用的端口。
http.port: 9200
用于某個(gè)集群中 Elasticsearch 節(jié)點(diǎn)之間的通信的端口
transport.tcp.port: 9300
其他節(jié)點(diǎn)配置
集群名稱,其他節(jié)點(diǎn)就是通過(guò)這個(gè)名字找到指定的集群
cluster.name: wali
節(jié)點(diǎn)名稱,一個(gè)集群里節(jié)點(diǎn)名稱不能重復(fù)
node.name: slave2
存放數(shù)據(jù)的位置
path.data: /home/wuzhuang/data2
存放日志的位置
path.logs: /home/wuzhuang/logs2
綁定的ip
network.host : 172.31.69.209
提供其他 Elasticsearch 服務(wù)節(jié)點(diǎn)的單點(diǎn)廣播發(fā)現(xiàn)功能。配置集群中基于主機(jī) TCP 端口的其他 Elasticsearch 服務(wù)的逗號(hào)分隔列表。
discovery.zen.ping.unicast.hosts: ["172.31.69.209"]
elasticsearch.yml配置屬性
| 屬性 | 缺省值 | 描述 |
|---|---|---|
| cluster.name | <kbd class="ph userinput">federated_cluster</kbd> | Elasticsearch 集群名稱。使用集群可將單獨(dú) Process Federation Server 綁定到單個(gè)分布式系統(tǒng)中。參與集群的所有服務(wù)器都必須具有相同的集群名稱。 |
| node.name | <kbd class="ph userinput">node1</kbd> | Elasticsearch 節(jié)點(diǎn)名。集群中的每個(gè) Process Federation Server 都必須具有唯一節(jié)點(diǎn)名。 |
| node.master | <kbd class="ph userinput">true</kbd> | 指示某個(gè)節(jié)點(diǎn)是否符合成為主節(jié)點(diǎn)的條件。主節(jié)點(diǎn)管理 Elasticsearch 集群的狀態(tài)。在運(yùn)行時(shí),Elasticsearch 服務(wù)會(huì)自動(dòng)提名某一個(gè)合格的集群成員成為主節(jié)點(diǎn)。 |
| node.data | <kbd class="ph userinput">true</kbd> | 指示節(jié)點(diǎn)是否為數(shù)據(jù)節(jié)點(diǎn)。數(shù)據(jù)節(jié)點(diǎn)包含并管理索引的一部分。 |
| http.enabled | <kbd class="ph userinput">false</kbd> | 指示是否為 Elasticsearch 服務(wù)啟用 HTTP。如果您要通過(guò)使用 Elasticsearch REST 請(qǐng)求來(lái)直接查詢 Elasticsearch 數(shù)據(jù),那么可以啟用 HTTP 端口。 |
| htttp.port | <kbd class="ph userinput">9200</kbd> | 如果啟用了 HTTP 端口,那么此屬性指定由 Elasticsearch 服務(wù)使用的端口。 |
| http.cors.enabled | <kbd class="ph userinput">true</kbd> | 如果啟用了 HTTP 端口,那么此屬性會(huì)指定是否允許跨源 REST 請(qǐng)求。 |
| http.cors.allowed.origin | <kbd class="ph userinput">localhost</kbd> | 如果 http.cors.enabled 的值為 <kbd class="ph userinput">true</kbd>,那么該屬性會(huì)指定允許 REST 請(qǐng)求來(lái)自何處。 |
| transport.tcp.port | <kbd class="ph userinput">9300</kbd> | 用于某個(gè)集群中 Elasticsearch 節(jié)點(diǎn)之間的通信的端口。 |
| discovery.zen.minimum_master_nodes | <kbd class="ph userinput">1</kbd> | 指示某個(gè)集群定額所需的 Process Federation Server 的數(shù)量。 |
| discovery.zen.ping.multicast.enabled | <kbd class="ph userinput">false</kbd> | 通過(guò)發(fā)送節(jié)點(diǎn)所接收和響應(yīng)的一個(gè)或多個(gè)多點(diǎn)廣播請(qǐng)求來(lái)提供對(duì)其他 Elasticsearch 服務(wù)節(jié)點(diǎn)的多點(diǎn)廣播 ping 發(fā)現(xiàn)功能。有關(guān)更多信息,請(qǐng)參閱 Elasticsearch 文檔。 |
| discovery.zen.ping.unicasts.hosts | <kbd class="ph userinput">localhost</kbd> | 提供其他 Elasticsearch 服務(wù)節(jié)點(diǎn)的單點(diǎn)廣播發(fā)現(xiàn)功能。配置集群中基于主機(jī) TCP 端口的其他 Elasticsearch 服務(wù)的逗號(hào)分隔列表。 |
| discovery.zen.ping.timeout | <kbd class="ph userinput">3s</kbd> | Elastic 搜索節(jié)點(diǎn)等待加入 Elasticsearch 集群的時(shí)間。 |