ELK簡介

ELK是一整套解決方案,是三個軟件產品的首字母縮寫,Elasticsearch,Logstash和Kibana。

Logstash:負責數據的收集,處理和儲存

Elasticsearch:負責數據的檢索和分析

Kibana:負責可視化

體系結構


基本流程是 logstash 負責從各種數據源里采集數據,然后再寫入 Elasticsearch,Elasticsearch 對這些數據創建索引,然后由 Kibana 對其進行各種分析并以圖表的形式展示。

安裝過程

具體安裝過程如下:

步驟1,安裝JDK1.8

步驟2,安裝Elasticsearch

步驟3,安裝Kibana

步驟4,安裝logstash

步驟5,安裝logstash-input-jdbc

步驟6,驗證

logstash


Mysql in elasticsearch out

input {

jdbc {

jdbc_connection_string => "jdbc:mysql://xxx.xxx.xxx.xxx:3306/database?useCursorFetch=true&defaultFetchSize=100"

jdbc_user => "user"

jdbc_password => "password"

jdbc_validate_connection => true

jdbc_driver_library => "/usr/local/logstash/lib/mysql-connector-java-5.1.13-bin.jar"

jdbc_driver_class => "com.mysql.jdbc.Driver"

statement => "select * from article"

}

}

output {

elasticsearch {

index => "article"

hosts => "xxx.xxx.xxx.xxx:9200"

}

}

Kibana

配置ES的索引顯示


Kibana ES Dev Tools

elasticsearchAPI基于HTTP協議,以JSON為數據交互格式的RESTful API向Elasticsearch發出的請求的組成部分與其它普通的HTTP請求是一樣的:curl -X'://:/?' -d ''

VERB HTTP方法:GET, POST, PUT, HEAD, DELETE

PROTOCOL http或者https協議(只有在Elasticsearch前面有https代理的時候可用)

HOST Elasticsearch集群中的任何一個節點的主機名,如果是在本地的節點,那么就叫localhost

PORT Elasticsearch HTTP服務所在的端口,默認為9200

PATH API路徑(例如_count將返回集群中文檔的數量),PATH可以包含多個組件,例如_cluster/stats或者_nodes/stats/jvm

QUERY_STRING 一些可選的查詢請求參數,例如?pretty參數將使請求返回更加美觀易讀的JSON數據

BODY 一個JSON格式的請求主體(如果請求需要的話)

舉例說明,為了計算集群中的文檔數量,我們可以這樣做:

curl -XGET 'http://xxx.xxx.xxx.xxx:9200/_count?pretty' -d '

{

"query": {

"match_all": {}

}

}

'

索引

在Elasticsearch中,文檔歸屬于一種類型(type),而這些類型存在于索引(index)中,我們可以畫一些簡單的對比圖來類比傳統關系型數據庫:

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices? -> Types? -> Documents -> Fields

我們將進行如下操作:

為每個員工的文檔(document)建立索引,每個文檔包含了相應員工的所有信息。

每個文檔的類型為employee。

employee類型歸屬于索引megacorp。

megacorp索引存儲在Elasticsearch集群中。

實際上這些都是很容易的(盡管看起來有許多步驟)。我們能通過一個命令執行完成的操作:

PUT /megacorp/employee/1

{

"first_name" : "John",

"last_name" :? "Smith",

"age" :? ? ? ? 25,

"about" :? ? ? "I love to go rock climbing",

"interests": [ "sports", "music" ]

}

我們看到path:/megacorp/employee/1包含三部分信息:

名字 ? ? ? ? ? ? ? ? ? ? ?說明

megacorp ? ? ? ? ? ?索引名

employee ? ? ? ? ? ? 類型名

1 ? ? ? ? ? ? ? ? ? ? ? ? ? ?這個員工的ID

接下來,讓我們在目錄中加入更多員工信息:

PUT /megacorp/employee/2

{

"first_name" :? "Jane",

"last_name" :? "Smith",

"age" :? ? ? ? 32,

"about" :? ? ? "I like to collect rock albums",

"interests":? [ "music" ]

}

PUT /megacorp/employee/3

{

"first_name" :? "Douglas",

"last_name" :? "Fir",

"age" :? ? ? ? 35,

"about":? ? ? ? "I like to build cabinets",

"interests":? [ "forestry" ]

}

搜索

檢索文檔

我們只要執行HTTP GET請求并指出文檔的“地址”——索引、類型和ID既可。根據這三部分信息,我們就可以返回原始JSON文檔:

GET /megacorp/employee/1

簡單搜索

搜索全部員工的請求:

GET /megacorp/employee/_search

搜索姓氏中包含“Smith”的員工

GET /megacorp/employee/_search?q=last_name:Smith

使用DSL語句查詢

GET /megacorp/employee/_search

{

"query" : {

"match" : {

"last_name" : "Smith"

}

}

}

全文搜索

搜索所有喜歡“rock climbing”的員工:

GET /megacorp/employee/_search

{

"query" : {

"match" : {

"about" : "rock climbing"

}

}

}

短語搜索

匹配若干個單詞或者短語(phrases),將match查詢變更為match_phrase查詢即可:

GET /megacorp/employee/_search

{

"query" : {

"match_phrase" : {

"about" : "rock climbing"

}

}

}

聚合

Elasticsearch有一個功能叫做聚合(aggregations),它允許你在數據上生成復雜的分析統計。它很像SQL中的GROUP BY但是功能更強大。

舉個例子,讓我們找到所有職員中最大的共同點(興趣愛好)是什么:

GET /megacorp/employee/_search

{

"aggs": {

"all_interests": {

"terms": { "field": "interests" }

}

}

}

問題: set fielddata = true on

解決:

PUT megacorp/_mapping/employee

{

"employee": {

"properties": {

"interests": {

"type": "text",

"fielddata": true

}

}

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,582評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,540評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,801評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,223評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,442評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,976評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,800評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,996評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,233評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,702評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374

推薦閱讀更多精彩內容