最近在項目中ElasticSearch的使用愈來愈多,最新的項目中要求ES使用集羣,在啥都不知道的狀況下弄了兩天後,終於搞定,所以寫個筆記記錄下。html
1.首先咱們須要建立一個Virtual network,輸入name和選擇location後,就是一直下一步,直到完成。java
雖然這個Virtual network不是必須的,可是這會使整個配置簡單不少。這個Virtual network的做用是是在其下面的virtual machina能夠互相通訊,若是沒有這個你須要配置的就不僅是防火牆這麼簡單了。node
2.咱們須要建立一個Cloud service, 這個Cloud service會包含咱們全部的集羣的Virtual machine,而且爲其提供Auto scale, Cloud service能夠在建立Virtual machine的時候一塊兒建立,就不在這裏單首創建了。git
如下是Cloud service的一些認知github
3.接下來咱們就能夠開始建立最關鍵的Virtual machine了,ElasticSearch等都是安裝在Azure的Virtual Machine上的。shell
1)輸入virtual machine的name和登錄遠程用的user name和passwordwindows
2)在第一次建立的時候選擇建立新的Cloud service, 新的Availability set安全
3)接下來就是一路next,直到建立完成。oracle
直到如今咱們已經完成了azure的一部分建立,接着咱們能夠在azure的面板選擇建立完成的VM(Virtual Machine,接下來簡稱VM),點擊connect,會下載一個RDP的文件,使用這個咱們能夠遠程到VM上進行咱們的Elastic search安裝elasticsearch
我建議先在VM安裝一個Chrome,剛剛建立的VM自帶的IE因爲有不少安全的設置,因此很難用。另外因此安裝都要在C盤進行,D盤是臨時盤,在VM重啓的時候會被覆蓋。
4.如今開始安裝Elastic search
1)安裝JDK,能夠直接在VM進行下載(不得不說Azure上面的下載速度簡直飛快),而且寫入系統環境變量(這個能夠自行百度)
2)下載Elastic search,而且解壓到C盤
3) 要使ES的集羣能使用,咱們須要安裝一個插件,https://github.com/elastic/elasticsearch-cloud-azure, 這個插件將使用Azure Api,獲取某個cloud service下面的全部VM,進行unicast discovery
(1) 生成證書,若是你安裝了git,可使用git的命令行工具進行生成,如下是生成所須要的命令(注意要將[Your password here]改爲本身的密碼)
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout azure-private.key -out azure-certificate.pem chmod 600 azure-private.key azure-certificate.pem openssl x509 -outform der -in azure-certificate.pem -out azure-certificate.cer
# Generate a keystore (azurekeystore.pkcs12)
# Transform private key to PEM format openssl pkcs8 -topk8 -nocrypt -in azure-private.key -inform PEM -out azure-pk.pem -outform PEM # Transform certificate to PEM format openssl x509 -inform der -in azure-certificate.cer -out azure-cert.pem cat azure-cert.pem azure-pk.pem > azure.pem.txt # You MUST enter a password! openssl pkcs12 -export -in azure.pem.txt -out azurekeystore.pkcs12 -name azure -noiter -nomaciter -password pass:[Your password here]
Settings -> Manage Certificates
.(2)下載這個壓縮包,修改elasticsearch.yml文件,並將其拷貝到ES的Config目錄下,覆蓋兩個文件
(3)安裝插件,在VM上面打開CMD,cd到你的ES的文件夾下的bin目錄,好比個人cd C:\elasticsearch-1.7.3\bin,
而且執行plugin install elasticsearch/elasticsearch-cloud-azure/2.7.1(注意,後面的版本號要對應你的ES的版本,對應的版本能夠在這裏找到)PS:這裏的cmd別關
4)接下來能夠安裝Elastic search了,若是上面安裝插件的時候,cmd沒有關閉,能夠直接接下去執行,若是關閉了也能夠再次打開bin
(1)依次執行下面的命令:
(2)到windows services將Elastic search的service設置爲Auto start(Delayed start)
5)設置防火牆,執行下面的power shell命令,第一個ES對外的Port,第二個是內部通信用的Port
6)到這裏ES的設置已經完成,在VM上面輸入localhost:9200和http://localhost:9200/_plugin/head/能夠看到,若是有什麼錯誤的話,能夠在logs裏面找到你須要的信息
5. 設置VM的Endpoints,咱們須要在這裏設置VM的對外開放的端口,這裏沒啥難度,在azure management裏面找到剛纔建立的VM,進入到詳細頁面,有一個endpoints的tab,添加端口就行,主要是添加Laod balance,只有Basic的VM是不能添加load balance的,這個要注意。
完成後,咱們就能夠經過外網訪問ES了,在cloud service裏面找到PUBLIC VIRTUAL IP (VIP) ADDRESS,替換掉上面的localhost,試試是否能夠訪問。
6. 到這裏,須要的設置已經都完成了,接下來咱們就須要copy多個VM,造成集羣
1)在VM的頁面,下面有個,咱們能夠把VM整個capture成一個Image
2)接着建立咱們的第二個VM,在建立頁面咱們能夠選擇My images,能夠看到咱們剛纔建立的那個Image,使用這個image建立VM,接下來的步奏和上面的基本一致,只是cloud service和availability set須要選擇咱們第一次建立的。
3) 建立完成後,咱們再去看head,就能夠看到
之後用一樣方式建立的VM都會自動加入到集羣裏面來。
7)設置Auto-scale,這個在Cloud service設置裏面能夠找到,具體的能夠參考這個博客
PS:被Auto-scale關掉的VM是不算錢的,能夠省下不少的費用
大功告成,我目前在項目裏面添加了5個VM,目前的狀況