es集羣搭建

 

 

一、複製5份es,版本要相同,且各個節點上jdk版本也要相同,不然會報數據同步格式不一致  invalid internal transport message format。node

二、配置elasticsearch.yml,主要修改如下方面:nginx

  cluster.name: my-application    #集羣名,各個節點要一致git

  node.name: node-01         #節點名github

  path.data: /data1/elk/elasticsearch/data   #數據存儲位置bootstrap

  path.logs: /data1/elk/elasticsearch/logs  #日誌vim

  bootstrap.system_call_filter: false   #關閉鎖內存安全

  network.host: 192.168.0.1     #各個節點IP,每一個節點寫本身的ipapp

  http.port: 9200                       #端口curl

  discovery.zen.ping.unicast.hosts: ["192.168.0.1", "192.168.0.2","192.168.0.3","192.168.0.4","192.168.0.5"]         #集羣ip列表elasticsearch

  discovery.zen.minimum_master_nodes: 3    #集羣master節點數,建議爲(集羣節點總數/2)+1

三、配置好直接啓動便可,隨意先啓動哪一臺,先啓動即爲master。9300是tcp通信端口,集羣間和TCPClient都走的它,因此各個主機間9300必定要能互通。

四、驗證集羣    ,es 9200是http協議的RESTful接口,可用此端口查看集羣狀態

  curl -XGET 'http://192.168.0.1:9200/_cat/nodes?pretty' 

  其中

  • _cat表明查看信息
  • nodes爲查看節點信息,默認會顯示爲一行,因此就用刀了?preety讓信息更有好的顯示
  • ?preety讓輸出信息更友好的顯示

結果以下表示集羣已搭建成功:

 

五、es啓動腳本

  vim /etc/init.d/es

#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch

export JAVA_HOME=/usr/local/jdk1.8.0_92
export JAVA_BIN=/usr/local/jdk1.8.0_92/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH

case "$1" in
start)
su dev<<!
cd /data1/elk/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
stop)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
;;
restart)
es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'`
kill -9 $es_pid
echo "elasticsearch stopped"
su dev<<!
cd /data1/elk/elasticsearch
./bin/elasticsearch -d
!
echo "elasticsearch startup"
;;
*)
echo "start|stop|restart"
;;
esac

exit $?

 

 

 

 

六、集羣管理-cerebro

  下載cerebro     



解壓並配置application.conf wget https://github.com/lmenezes/cerebro/releases/download/v0.7.2/cerebro-0.7.2.zip

 

 

啓動後,訪問http://127.0.0.1:9000 便可

 

由於cerebo目前沒有什麼登陸驗證(最起碼寫這篇博客時,我還不知道,若是大家知道更方便的登陸驗證,請留言告訴我,謝謝~),用戶直接訪問域名便可,不是很安全,因此用nginx配置下登陸驗證。

一、在location /下添加auth_basic_user_file /usr/local/.passwd;
二、登錄http://tool.oschina.net/htpasswd 輸入用戶名和密碼,在線生成加密密碼
三、將生成的密碼寫入/usr/local/.passwd文件中
echo "wuyun:$apr1$TrU5vUSC$RBuz3xG67Mr2pnAV596N5." >/usr/local/.passwd

 

nginx配置以下:

 

 

此時重啓nginx,再登陸訪問域名時就須要輸入帳號密碼了。不輸入密碼會報401 Authorization Required錯誤



另若是logstash啓動多個配置需先創建單獨存在配置文件目錄,

而後啓動
nohup  ./logstash -f ../conf &
相關文章
相關標籤/搜索