初識ELK(ElasticSearch-LogStash-Kibana)

ElasticSearch-基本概念

  • 詞項: 全部文檔中出現的不重複個體html

  • 分片: 底層工做單元,保存所有數據中的一部分,能搜索任意一個節點上的資源(文檔會被存儲和索引到分片內)。分爲主分片和副本分片,索引內的任意一個文檔都歸屬於主分片,副本分片是主分片的拷貝,提供讀服務,副本分片和主分片不會被分到同一個節點git

  • Document: 根對象,能被indexed的基本信息單元,用JSON表示,ID惟一,不可修改,只能替換github

  • 文檔元數據web

    1. _Index 索引。類似document的集合,標明文檔存放的位置apache

    2. _type 數據子分區。同一索引下的數據邏輯分區,一個索引能夠有多個類型bash

    3. _id 與 _index,_type一塊兒惟一肯定一個文檔併發

    4. _version 保證相互衝突的變動不會致使數據丟失。ES使用樂觀併發控制,默認不阻塞併發請求,若是請求版本號不對,返回錯誤狀態碼app

  • Shards: 索引被切分存儲的片斷curl

  • Replication: 索引shards的拷貝url

  • _score:正浮點數,表示相關性,評分越高,相關性越高

  • 倒排索引:文檔中全部不重複詞的列表構成,其中每一個詞有一個包含它的文檔列表,只能搜索到索引中存在的詞條

LogStash

./bin/logstash -f conf/test.conf 啓動方式

  • [] 字段引用,將字段名放到裏面便可。 例如: 獲取精度 [geoip][location][0]

  • a => true 數據類型,前面表明數據的字段名,後面是值,當前爲bool

  • stdin 中 type用來標記事件類型,tags由具體插件添加、刪除

  • start_position: logstash讀取文件的初始位置,默認使用結束位置

grok表達式語法

  1. 完整語法: %{PATTERN_NAME:capture_name:data_type}

  2. 寫表達式若是沒有徹底匹配那麼會匹配失敗

  3. 同樣的字符串直接寫對應字符便可,但願解析的用%{}包裹

  4. (?\w+) 表示匹配 單詞 一次或屢次並將結果存儲在 param1裏面

  5. pattern_dir 指定grok表達式存儲的位置,match直接引用

  6. 正則寫到想要匹配的位置便可

附錄

grok 表達式驗證地址
官方grok內置正則
正則語法

Kibana查詢

kibana框中的查詢可使用LUCENE查詢語法或者是ES的查詢語句

Field

查詢指定的字段不然使用默認字段

好比 index包含兩個字段 title , text ;text是默認字段

title:」hello world」 AND text:to 和 title:」hello world」 AND to 等效

title: hello world 查詢的則是 title爲hello的字段 text爲world的字段

wildcard

te?t 匹配 text test ;表示任意一個字符

test* 匹配 test tests tester;表示0到多個字符

?和 * 不能用在第一個位置

Fuzzy

roam~ 匹配 foam和roams 基於 Levenshtein Distance,波浪線添加在末尾。從1.9版本開始能夠追加數字表明類似度,越接近1類似度越高,好比 roam~0.8,默認是0.5

Proximity

「jakarta apache」~10 匹配從jakarta到apache中間隔10個單詞

Range

mode_date:[20020101 TO 20030101] 匹配時間在20020101到20030101之間,包括20020101和20030101

title:{Aida TO Carmen} 匹配Aida 到 Carmen之間,不包括Aida和Carmen

「[」表示包含 「{」表示不包含

AND(+) OR NOT(-)

關鍵字要大寫

(jakarta OR apache) AND website 組合查詢 包含 website 和 jakarta/apache

逃逸字符

\(1\+1\)\:2

使用ES查詢語法

將ES命令中的 -d 後面的參數加入便可;好比curl查詢爲

curl -XGET 'localhost:9200/_search?format=yaml' -d ' { "query":{"term":{"addre":"beijing"}}}'
複製代碼

命令行下輸入爲:{ "query":{"term":{"addre":"beijing"}}}

附錄

Lucene 語法

相關文章
相關標籤/搜索