日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ELK 中的elasticsearch 集群的部署

發(fā)布時(shí)間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ELK 中的elasticsearch 集群的部署 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文內(nèi)容

  • 背景
  • ES集群中第一個(gè)master節(jié)點(diǎn)
  • ES slave節(jié)點(diǎn)

本文總結(jié) Elasticsearch(以下簡(jiǎn)稱ES)搭建集群的經(jīng)驗(yàn)。以 Elasticsearch-rtf-2.2.1 版本為例。

我搭過(guò)三個(gè)集群:研究ELK時(shí)搭了一個(gè);測(cè)試環(huán)境搭了一個(gè);生產(chǎn)環(huán)境搭了一個(gè)。回想起來(lái),搭建這三個(gè)集群時(shí)遇到的問(wèn)題都不一樣(我這么說(shuō),主要針對(duì)集群中節(jié)點(diǎn)發(fā)現(xiàn),以及master問(wèn)題,而不是es啟動(dòng)不起來(lái)或報(bào)錯(cuò)等問(wèn)題)~

  • 研究ELK時(shí),搭建ES集群倒是很順利,原因很簡(jiǎn)單,先從一臺(tái)機(jī)器開(kāi)始的;
  • 可是測(cè)試環(huán)境搭建集群時(shí),遭遇新加入節(jié)點(diǎn)一直不能發(fā)現(xiàn) master 節(jié)點(diǎn),或是集群節(jié)點(diǎn)出現(xiàn)都選舉自己為 master 這兩個(gè)情況,因?yàn)?#xff0c;節(jié)點(diǎn)都是陸續(xù)啟動(dòng)的,配置不當(dāng),是會(huì)出問(wèn)題;
  • 等到在生產(chǎn)環(huán)境搭建集群時(shí),遭遇無(wú)法選舉出 master 節(jié)點(diǎn)的情況。ES head 和 kopf 兩個(gè)插件都不可用,因?yàn)?#xff0c;既然集群沒(méi)有選舉出 master 節(jié)點(diǎn),顯然,整個(gè)集群是用不了的。而前面的情況,head 和 kopf 插件還是能用的,但能用,意義也不大~

總結(jié)起來(lái),搭建集群,應(yīng)該注意兩個(gè)問(wèn)題。首先,當(dāng)然是 Elasticsearch.yml 配置是否正確;再就是你的操作方式。比如節(jié)點(diǎn)啟動(dòng)步驟等。

因?yàn)?#xff0c;如果搭建一個(gè)集群,那么必須保證集群有一個(gè) master 節(jié)點(diǎn),一般來(lái)說(shuō),第一個(gè)啟動(dòng)的節(jié)點(diǎn),一定是 master。然后,分別啟動(dòng)其他節(jié)點(diǎn),這些節(jié)點(diǎn)就會(huì)找到 master 節(jié)點(diǎn),而 master 節(jié)點(diǎn),也會(huì)發(fā)現(xiàn)這些節(jié)點(diǎn)。

  • 因此,配置集群中的第一個(gè)master節(jié)點(diǎn),務(wù)必簡(jiǎn)單(簡(jiǎn)單到什么程度,后面再說(shuō)),先啟動(dòng)它,它會(huì)立刻成為 master 節(jié)點(diǎn)。之后,再配置其他節(jié)點(diǎn),最好直接告訴它們,可能的 master 節(jié)點(diǎn)是什么,然后啟動(dòng)他們,它們就會(huì)發(fā)現(xiàn) master,而 master 節(jié)點(diǎn),也會(huì)發(fā)現(xiàn)新加入的節(jié)點(diǎn)。
  • 否則,如果第一個(gè)啟動(dòng)的節(jié)點(diǎn),配置過(guò)于復(fù)雜(條件苛刻),造成它不能成為 master 節(jié)點(diǎn),那么,整個(gè)集群會(huì)失敗。

稍后,你再配置節(jié)點(diǎn)時(shí),可以采用更高級(jí)、復(fù)雜點(diǎn)的配置,就不會(huì)有什么問(wèn)題了~

所以,我才強(qiáng)調(diào),ES 集群中第一個(gè) master 節(jié)點(diǎn)的配置務(wù)必簡(jiǎn)單,以后再調(diào)整。

背景


假設(shè),我們想搭建這樣一個(gè)名為 myfirstcluster 的ES集群,它有兩個(gè)節(jié)點(diǎn):

節(jié)點(diǎn)主機(jī)名是否為 master
192.168.1.2es-01
192.168.1.3es-02

ES集群中第一個(gè)master節(jié)點(diǎn)


最簡(jiǎn)單的 ES master 節(jié)點(diǎn)配置如下。該配置文件,是一個(gè)完整的 ES 配置文件,所以很長(zhǎng)。我順便翻譯成了中文。

1: # ======================== Elasticsearch Configuration ========================= 3: # 注意: Elasticsearch 大多數(shù)設(shè)置都有默認(rèn)值. 5: # 7: # 9: # <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html> 11: # ---------------------------------- 集群 ----------------------------------- 13: # 集群名稱: 15: cluster.name: mycluster 17: # ------------------------------------ 節(jié)點(diǎn) ------------------------------------ 19: # 節(jié)點(diǎn)名稱: 21: node.name: es-01 23: node.data: true 25: # 為節(jié)點(diǎn)添加自定義屬性,如機(jī)架: 27: # node.rack: r1 29: # ----------------------------------- 路徑 ------------------------------------ 31: # 存放數(shù)據(jù)的目錄 (多個(gè)目錄用逗號(hào)分隔): 33: # path.data: /path/to/data 35: # 日志文件目錄: 37: # path.logs: /path/to/logs 39: # ----------------------------------- 內(nèi)存 ----------------------------------- 41: # 啟動(dòng)時(shí)鎖定內(nèi)存: 43: # bootstrap.mlockall: true 45: # 確保設(shè)置了 `ES_HEAP_SIZE` 環(huán)境變量, 大小為系統(tǒng)內(nèi)存的一半, 47: # 49: # 51: # 53: # 55: # 57: http.port: 9200 59: tcp.port: 9300 61: # 更多信息, 參見(jiàn)如下鏈接: http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html> 64: # --------------------------------- 節(jié)點(diǎn)發(fā)現(xiàn) ---------------------------------- 66: # 當(dāng)新節(jié)點(diǎn)加入時(shí),傳遞一個(gè)主機(jī)的初始化列表以完成節(jié)點(diǎn)發(fā)現(xiàn): 68: # 70: # 72: # 74: # 76: # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html> 78: # ---------------------------------- 網(wǎng)關(guān) ----------------------------------- 80: # 當(dāng)整個(gè)集群重新啟動(dòng)后, 只有 N 個(gè)節(jié)點(diǎn)啟動(dòng)了, 集群才會(huì)恢復(fù),否則將阻塞: 82: # gateway.recover_after_nodes: 2 84: # 更多信息, 參見(jiàn)如下鏈接: http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html> 87: # ---------------------------------- 其他 ----------------------------------- 89: # 禁止在一個(gè)系統(tǒng)上啟動(dòng)多個(gè)節(jié)點(diǎn): 91: # node.max_local_storage_nodes: 1 93: # 當(dāng)刪除 index 是必需顯式名稱: 95: # action.destructive_requires_name: true 96:? 98: analysis: 100: my_pinyin: 102: first_letter: prefix 104: pinyin_first_letter: 106: first_letter: only 108: type: mmseg 110: mmseg_complex: 112: seg_type: complex 114: type: mmseg 116: semicolon_spliter: 118: pattern: ";" 120: type: pattern 122: ngram_1_to_2: 124: min_gram: 1 126: ngram_1_to_3: 128: min_gram: 1 130: filter: 132: max_gram: 10 134: type: nGram 136: max_gram: 10 138: type: nGram 140: max_gram: 10 142: type: nGram 144: min: 2 146: type: length 148: min: 3 150: type: length 152: type: pinyin 154: analyzer: 156: type: custom 158: - lowercase 160: lowercase_keyword_ngram_min_size1: 162: filter: 164: - stop 166: - unique 168: lowercase_keyword_ngram_min_size2: 170: filter: 172: - min2_length 174: - trim 176: tokenizer: nGram 178: type: custom 180: - lowercase 182: - stop 184: - unique 186: lowercase_keyword_ngram: 188: filter: 190: - stop 192: - unique 194: lowercase_keyword_without_standard: 196: filter: 198: tokenizer: keyword 200: type: custom 202: - lowercase 204: ik: 206: - ik_analyzer 208: ik_max_word: 210: use_smart: true 212: type: ik 214: mmseg: 216: - mmseg_analyzer 218: mmseg_maxword: 220: filter: 222: tokenizer: mmseg_maxword 224: type: custom 226: - lowercase 228: mmseg_simple: 230: filter: 232: tokenizer: mmseg_simple 234: type: pattern 236: pct_spliter: 238: pattern: "[%]+" 240: type: snowball 242: simple_english_analyzer: 244: tokenizer: whitespace 246: - standard 248: - snowball 250: type: custom 252: filter: 254: pinyin_ngram_analyzer: 256: tokenizer: my_pinyin 258: - lowercase 260: - trim 262: pinyin_first_letter_analyzer: 264: tokenizer: pinyin_first_letter 266: - standard 268: pinyin_first_letter_keyword_analyzer: 270: - pinyin_first_letter_analyzer_keyword 272: tokenizer: keyword 274: - pinyin_first_letter 276: path_analyzer: #used for tokenize :/something/something/else 278: tokenizer: path_hierarchy 279:? 281: index.analysis.analyzer.default.type: ik 282:? 284: # rtf.filter.redis.port: 6379

說(shuō)明:

  • 第15行,指定集群名稱 myfirstcluster;
  • 第21行,指定節(jié)點(diǎn)名稱,最好寫(xiě)主機(jī)名;
  • 第22和23行,指定該是否可能為master節(jié)點(diǎn),以及是否為數(shù)據(jù)節(jié)點(diǎn)。ES的所說(shuō)master節(jié)點(diǎn),其實(shí)弱化了很多,僅僅就是為了節(jié)點(diǎn)發(fā)現(xiàn)和選舉master節(jié)點(diǎn)而已,它甚至都可以不用來(lái)保存數(shù)據(jù)。

因此,看你的規(guī)劃,完全可以讓一個(gè) master 節(jié)點(diǎn),不保存任何數(shù)據(jù);

  • 第54行,指定節(jié)點(diǎn)IP地址,192.168.1.2;
  • 第57行,指定HTTP端口,比如,head、kopf插件等插件,都使用該端口。事實(shí)上,你可以指定從 92開(kāi)頭的任何端口;
  • 第59行,指定集群內(nèi)部通信的端口,比如,節(jié)點(diǎn)發(fā)現(xiàn)都使用該端口。事實(shí)上,你可以指定93開(kāi)頭的任何端口,該行也可以寫(xiě)成“transport.tcp.port: 9300”;

這7行配置,在我看來(lái),針對(duì)集群中第一個(gè)master節(jié)點(diǎn),必須配置正確的。其他配置,可以暫時(shí)不用。

其中,第57行和第59行,實(shí)際上,一臺(tái)物理機(jī),是可以運(yùn)行多個(gè) ES,只需要指定不同的配置文件即可。

  • 第69行,指定節(jié)點(diǎn)初始化列表,因?yàn)樵摴?jié)點(diǎn)是集群第一臺(tái)機(jī)器,并且要當(dāng) master,所以寫(xiě)”127.0.0.1:9300”,端口號(hào),就是你在第59行指定的端口。相關(guān)資料顯示,也可以不指定端口,那是不是會(huì)93開(kāi)頭的所有端口掃描一下呢?;
  • 從97行開(kāi)始,是配置ES的分詞。

slave 節(jié)點(diǎn)


Slave 節(jié)點(diǎn)配置如下。該配置文件內(nèi)容只列出了配置項(xiàng),但是是完整的。

1: # ======================== Elasticsearch Configuration ========================= 3: # ---------------------------------- Cluster ----------------------------------- 5: # Use a descriptive name for your cluster: 7: cluster.name: myfirstcluster 9: # ------------------------------------ Node ------------------------------------ 11: # Use a descriptive name for the node: 13: node.name: es-02 15: node.data: true 17: # ----------------------------------- Paths ------------------------------------ 19: # Path to directory where to store the data (separate multiple locations by comma): 21: # path.data: /path/to/data 23: # Path to log files: 25: # path.logs: /path/to/logs 27: # ----------------------------------- Memory ----------------------------------- 29: # ... 31: # ---------------------------------- Network ----------------------------------- 33: # Set the bind address to a specific IP (IPv4 or IPv6): 35: network.host: 192.168.1.3 37: # Set a custom port for HTTP: 39: http.port: 9200 41: # 43: # 45: # The default list of hosts is ["127.0.0.1", "[::1]"] 47: discovery.zen.ping.unicast.hosts: ["192.168.1.2:9300"] 49: # ---------------------------------- Gateway ----------------------------------- 51: # ... 53: # ---------------------------------- Various ----------------------------------- 55:? 57: analysis: 59: my_pinyin: 61: first_letter: prefix 63: pinyin_first_letter: 65: first_letter: only 67: type: mmseg 69: mmseg_complex: 71: seg_type: complex 73: type: mmseg 75: semicolon_spliter: 77: pattern: ";" 79: type: pattern 81: ngram_1_to_2: 83: min_gram: 1 85: ngram_1_to_3: 87: min_gram: 1 89: filter: 91: max_gram: 10 93: type: nGram 95: max_gram: 10 97: type: nGram 99: max_gram: 10 101: type: nGram 103: min: 2 105: type: length 107: min: 3 109: type: length 111: type: pinyin 113: analyzer: 115: type: custom 117: - lowercase 119: lowercase_keyword_ngram_min_size1: 121: filter: 123: - stop 125: - unique 127: lowercase_keyword_ngram_min_size2: 129: filter: 131: - min2_length 133: - trim 135: tokenizer: nGram 137: type: custom 139: - lowercase 141: - stop 143: - unique 145: lowercase_keyword_ngram: 147: filter: 149: - stop 151: - unique 153: lowercase_keyword_without_standard: 155: filter: 157: tokenizer: keyword 159: type: custom 161: - lowercase 163: ik: 165: - ik_analyzer 167: ik_max_word: 169: use_smart: false 171: type: ik 173: mmseg: 175: - mmseg_analyzer 177: mmseg_maxword: 179: filter: 181: tokenizer: mmseg_maxword 183: type: custom 185: - lowercase 187: mmseg_simple: 189: filter: 191: tokenizer: mmseg_simple 193: type: pattern 195: pct_spliter: 197: pattern: "[%]+" 199: type: snowball 201: simple_english_analyzer: 203: tokenizer: whitespace 205: - standard 207: - snowball 209: type: custom 211: filter: 213: pinyin_ngram_analyzer: 215: tokenizer: my_pinyin 217: - lowercase 219: - trim 221: pinyin_first_letter_analyzer: 223: tokenizer: pinyin_first_letter 225: - standard 227: pinyin_first_letter_keyword_analyzer: 229: - pinyin_first_letter_analyzer_keyword 231: tokenizer: keyword 233: - pinyin_first_letter 235: path_analyzer: #used for tokenize :/something/something/else 237: tokenizer: path_hierarchy 238:? 240: index.analysis.analyzer.default.type: ik

說(shuō)明:

  • 第7行,也是指定了集群名稱;
  • 第13行,指定了節(jié)點(diǎn)名稱為 es-02(主機(jī)名)
  • 第14和15行,指定了該節(jié)點(diǎn)可能成為 master 節(jié)點(diǎn),還可以是數(shù)據(jù)節(jié)點(diǎn);
  • 第35行,指定節(jié)點(diǎn)IP地址為 192.168.1.3;
  • 第39行,指定http端口,你使用head、kopf等相關(guān)插件使用的端口;
  • 第40行,集群內(nèi)部通信端口,用于節(jié)點(diǎn)發(fā)現(xiàn)等;

上面的配置master也是這么配置的。

  • 第47行,跟master節(jié)點(diǎn)配置不一樣了。這里直接告訴該的節(jié)點(diǎn),可能的master節(jié)點(diǎn)是什么。

?

?

文章摘自:http://www.cnblogs.com/liuning8023/p/5454696.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的ELK 中的elasticsearch 集群的部署的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。