1. 程式人生 > >Elasticsearch入門教程(一):Elasticsearch及外掛安裝

Elasticsearch入門教程(一):Elasticsearch及外掛安裝

一:安裝Elasticsearch

  1. 下載並解壓Elasticsearch

    直接到官網(https://www.elastic.co/cn/downloads/elasticsearch)下載適合自己的系統的Elasticsearch,這裡下載的是目前最新的版本6.1.1,然後解壓放到合適的目錄即可,這裡放在/usr/local下面.

    elasiticsearch目錄
    bin 執行Elasticsearch例項和管理外掛的一些指令碼
    config 配置檔案, elasticsearch.yml
    data 在節點上每個索引/碎片的資料檔案的位置
    lib Elasticsearch自身使用的.jar檔案
    logs 日誌檔案
    modules
    plugins 已安裝的外掛的存放位置

  2. 啟動Elasticsearch

    切換到Elasticsearch目錄下,然後執行bin下的elasticsearch

    cd /usr/local/elasticsearch-6.1.1
    
    ./bin/elasticsearch

    ./bin/elasticsearch是前臺啟動,如果想後臺啟動可以使用-d引數: ./bin/elasticsearch -d

  3. REST訪問

    curl -XGET 'http://localhost:9200'
    
    {
      "name" : "XV7DTDS",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "4-7jTDMbSASmws83WgavTg"
    , "version" : { "number" : "6.1.1", "build_hash" : "bd92e7f", "build_date" : "2017-12-17T20:23:25.338Z", "build_snapshot" : false, "lucene_version" : "7.1.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, "tagline" : "You Know, for Search"
    }
  4. 停止Elasticsearch

    如果使用前臺模式啟動的話直接使用Ctrl+C來停止Elasticsearch

二:安裝ik分詞器

分詞是全文索引中非常重要的部分,Elasticsearch是不支援中文分詞的,ik分詞器支援中文

  1. 安裝ik分詞器

    直接解壓elasticsearch-analysis-ik-6.1.1.zip,並將解壓後的檔案目錄elasticsearch放到elasticsearch的安裝目錄下的plugins下,然後重啟elasticsearch即可
    這裡寫圖片描述

  2. 測試ik分詞器

    curl -XGET -H 'Content-Type: application/json' 'http://localhost:9200/_analyze?pretty' -d '{
    "analyzer" : "ik_max_word",
    "text": "中華人民共和國國歌"
    }'

三: 安裝kibana

Kibana是一個開源的分析和視覺化平臺,旨在與 Elasticsearch 合作。Kibana 提供搜尋、檢視和與儲存在 Elasticsearch 索引中的資料進行互動的功能。開發者或運維人員可以輕鬆地執行高階資料分析,並在各種圖表、表格和地圖中視覺化資料。

  1. 配置elasticsearch.url
    編輯 kibana目錄/conf/kibana.yml 檔案中有一個elasticsearch.url被註釋掉了,開啟elasticsearch.url註釋即可

  2. 啟動kibana
    切換到kibana目錄並啟動

    cd /usr/local/kibana-6.1.1
    ./bin/kibana

四: 安裝x-pack

注意:安裝x-pack需要先安裝kibana

x-pack是elasticsearch的一個擴充套件包,將安全,警告,監視,圖形和報告功能捆綁在一個易於安裝的軟體包中
具體按住步驟官網上有詳細說明:https://www.elastic.co/downloads/x-pack

  cd /usr/local/elasticsearch-6.1.1
  # 安裝過程中輸入y即可
  ./bin/elasticsearch-plugin install x-pack

  # 啟動es
  ./bin/elasticsearch


  # 在另一個視窗執行
  cd /usr/local/elasticsearch-6.1.1
  # 設定過程中提示,輸入y即可
  ./bin/x-pack/setup-passwords auto
        # 返回結果
        Changed password for user kibana
        PASSWORD kibana = wZ54LdeFa+1N5C##IAuF

        Changed password for user logstash_system
        PASSWORD logstash_system = E6&gqoW5TP-?JJMLsHjs

        Changed password for user elastic
        PASSWORD elastic = @Dc?$qz3w6eZf%jUwKD+

  cd /usr/local/kibana-6.1.1
  # 安裝過程比較慢
  ./bin/kibana-plugin install x-pack

  # 在kibana.yml中配置使用者名稱和密碼
  elasticsearch.username: "kibana"
  # 密碼是上面步驟自動生成的
  elasticsearch.password: "wZ54LdeFa+1N5C##IAuF"

安裝完成後訪問http://localhost:5601/並使用使用者名稱: elastic 密碼:@Dc?$qz3w6eZf%jUwKD+ 登入

這裡寫圖片描述

注意:elastic的角色是超級使用者superuser,超級使用者可以在Dev Tools中使用api操作es,kibana使用者的角色是kibana_system,通過Management可以對使用者進行管理,如建立使用者、修改密碼(為了方便,這裡把密碼改成了123456)、分配許可權等
這裡寫圖片描述
Dev Tools: 可以對curl進行簡化操作es,只需要指定HTTP動詞、api路徑和引數即可。例如

PUT /megacorp/employee/1
{
“first_name” : “John”,
“last_name” : “Smith”,
“age” : 25,
“about” : “I love to go rock climbing”,
“interests”: [ “sports”, “music” ]
}

Monitoring: 用於監控叢集

# -i:用於顯示響應頭
# -u:用於設定使用者名稱和密碼
# -H:用於設定引數的格式
# -X:用於指定http的動詞
# 在路徑上使用引數?pretty表示將響應結果進行格式化輸出,更加容易讀
curl -XGET -i -u elastic:123456  -H 'Content-Type: application/json' 'http://localhost:9200/_analyze?pretty' -d '{
  "analyzer" : "ik_max_word",
  "text": "中華人民共和國國歌"
}'

ES中常用的響應狀態碼:
200 OK - 一般表示操作成功
404 Not Found - 一般在查詢時找不到文件是返回404找不到
201 Created - 一般建立文件成功時返回201已經建立
409 Conflict - 一般建立文件或者更新文件時失敗返回衝突

問題

在登入kibana,如果使用者名稱和密碼不能輸入,提示“Login is currently disabled. Administrators should consult the Kibana logs for more details.”

需要重新生成密碼, 然後將elstic的使用者名稱和密碼配置到kibana.yml中

./bin/x-pack/setup-passwords auto

elasticsearch.username: "elastic"
elasticsearch.password: "<pwd>"

安裝Logstash

該部分不是必須的,可忽略。

Logstash是一款輕量級的日誌蒐集處理框架,可以方便的把分散的、多樣化的日誌蒐集起來,並進行自定義的處理,然後傳輸到指定的位置,比如某個伺服器或者檔案。能集中處理各種型別的資料,能標準化不同模式和格式的資料,能快速的擴充套件自定義日誌的格式,能非常方便的新增外掛來自定義資料來源, Logstash採用JRuby開發的,本身也支援外掛的功能

ELK:開源分散式日誌分析搜尋平臺

  • E: elasticsearch, 負責資料的儲存和查詢
  • L: logstash, 負責日誌資料的過濾和解析
  • K: Kibana, 負責web方式的前端展現

啟動
./logstash -e ‘input { stdin {} } output { stdout {} }’

安裝時注意jdk的版本,如果在啟動時報已下錯誤可能是jdk版本低了
NameError: cannot link Java class org.logstash.RubyUtil org/logstash/RubyUtil : Unsupported major.minor version 52.0

input: 用於處理輸入的
filter: 用於處理過濾的
output: 用於處理輸出的

input {
  file {
    path => ""
    start_position => beginning
  }
}
filter {

}
output {
  elasticsearch {}
  stdout {}
}

我的微信公眾號: