1、前言html
主要來說述一下Kibana使用以及上生產時候的一些配置,要是你們對這塊比較感興趣我到時候也能夠在結合Grafana作一些圖表方面的介紹,後面等介紹完Beats之後我去阿里雲租幾臺機器,給你們來個ELK方面的實戰,而後要是時間充分在和你們一塊兒學習下Elasticsearch源碼,廢話很少說開始嘍;node
2、Kibana配置後端
主要介紹一些經常使用的配置,剩下一些冷門的你們能夠查看下官方配置;服務器
server.port:架構
默認值: 5601 該配置指定Kibana 使用的端口號;app
server.host:elasticsearch
默認值: "localhost" 指定後端服務器的主機地址;tcp
server.maxPayloadBytes:ide
默認值: 1048576 服務器請求的最大負載,單位字節;工具
server.name:
默認值: "主機名" Kibana 實例對外展現的名稱;
elasticsearch.url:
默認值: "http://localhost:9200" 用來處理全部查詢的 Elasticsearch 實例的 URL ;
kibana.index:
默認值: ".kibana" Kibana 使用 Elasticsearch 中的索引來存儲保存的檢索,可視化控件以及儀表板。若是沒有索引,Kibana 會建立一個新的索引;
elasticsearch.requestTimeout:
默認值: 30000 等待後端或 Elasticsearch 的響應時間,單位微秒,該值必須爲正整數;
logging.dest:
默認值: stdout指定 Kibana 日誌輸出的文件;
以上基本就是經常使用的甚至一些都用不到,若是你們想啓用SSL你們去參考下官方配置,我將這塊的都已經默認關閉了;接下來咱們主要來介紹下生產線上一些相關方面的配置,以前咱們介紹Elasticsearch 的時候只介紹兩種主要的節點,還有一個節點類型沒有介紹,他就是協調節點,該節點做用負載平衡器,該節點處理傳入的HTTP請求,根據須要將操做重定向到羣集中的其餘節點,並收集並返回結果;咱們主要利用這個特性來搭建Kibana生產的部署架構,固然你直接配置也是能夠,這個只是推薦,咱們主要利用這個節點來協調Kibana 的請求,獲取返回咱們須要數據,官方有個名字Coordinating only node,總體架構以下圖:
接下來咱們結合上面架構咱們須要如何配置Elasticsearch,
1.在與Kibana相同的計算機上安裝Elasticsearch客戶端節點;
2.經過設置將節點配置爲僅協調節點:
node.master: false;
node.data: false;
node.ingest: false;
3.將客戶端節點添加到elasticsearch集羣;
cluster.name: "my_cluster";
4.配置network.host(對Kibana HTTP鏈接)和transport.host(須要鏈接的到集羣上的節點):
network.host: localhost;
http.port: 9200;
transport.host: YOUR_IP;
transport.tcp.port: 9300;
5.配置kibana;
elasticsearch.url: "http://localhost:9200";
接下來咱們思考下這樣架構的好處,協調節點不參與選主環節,減小了選主時間,經過協調節點專門處理監控或者咱們須要的一些數據的請求,使其餘節點專一於線上請求,提高了效率,要說有什麼很差,那就是須要多一臺機器;接下來咱們來經過Kibana作一些圖表;
3、Kibana入門實戰
Elasticsearch集羣搭建和Logstash相關下載和安裝就不講解了,咱們主要藉助Kibana來分析120年奧運會運動員或者國家一些狀況,數據我是在這個網址下載的,準確性方面我沒去核對,咱們主要藉助這些數據來學習Kibana就行了。總體流程是經過Logstash講CSV文件導入到Elasticsearch,而後藉助Kibana分析,我把Logstash配置粘貼到下面,經過使用logstash.bat -f ../config/logstash.conf啓動起來就能夠將文件導入到Elasticsearch中,在啓動起來以前咱們還須要在Elasticsearch創建模板,固然也能夠經過Logstash指定模板這個有興趣本身百度下,我也將Mapping模板放到下面;
input { file{ path => ["C:/Users/wangt/Desktop/athlete_events.csv"] # 設置多長時間檢測文件是否修改(單位:秒) stat_interval => 1 # 監聽文件的起始位置,默認是end start_position => beginning # 設置多長時間會寫入讀取的位置信息(單位:秒) sincedb_write_interval => 5 } } filter { #去除每行記錄中須要過濾的NA,替換爲空字符串 mutate{ gsub => [ "message", "NA", "" ] } csv { # 每行記錄的字段之間以,分隔 separator => "," columns => ["name","sex","age","height","weight","team","noc","games","year","season","city","sport","event","medal"] # 過濾掉默認加上的字段 remove_field => ["host", "path","message"] } } output { elasticsearch { hosts => ["127.0.0.1:9200","127.0.0.1:9201","127.0.0.1:9202"] index => "olympicawards" } }
{ "mappings":{ "doc":{ "properties":{ "@timestamp":{ "type":"date" }, "@version":{ "type":"keyword" }, "name":{ "type":"keyword" }, "sex":{ "type":"keyword" }, "age":{ "type":"integer" }, "weight":{ "type":"float" }, "team":{ "type":"keyword" }, "noc":{ "type":"keyword" }, "games":{ "type":"keyword" }, "year":{ "type":"integer" }, "season":{ "type":"keyword" }, "sport":{ "type":"keyword" }, "event":{ "type":"keyword" }, "medal":{ "type":"keyword" } } } } }
以上就是你們須要的模板,這裏不作特別複雜儀表盤等ELK實戰的時候咱們來作一些比較複雜東西,可是本質上是不變的,只要對DSL足夠了解,構建儀表盤都是分分鐘的事,咱們先來總體介紹下Kibana的總體界面,而後在作一個簡單的儀表盤就完成這篇博客;
主要有7大模塊,介紹下每一個模塊的做用:
Discover:以頁面的形式展現Elasticsearch中的數據,能夠作一些過濾、搜索等等操做;
Visualize:根據Elasticsearch建立可視化的界面;
Dashboard:儀表盤能夠將可視化界面組合在一些,相似如今的比較流行的大屏界面同樣;
Timelion:時間序列數據可視化工具,按照時間檢索數據;
Dev Tools:經過DSL進行查詢數據的工具;
Monitoring:監控數據Elasticsearch、Logstash和Beats運行情況的工具;
Management:Kibana管理索引以及一些參數配置地方;
接下來咱們使用Visualize和Dashboard作圖表,經過Visualize構建相關類型的圖表,有以下類型:
選中想要構建類型,經過添加一些類型或者增長一些過濾條件來展現數據;
最終經過保存按鈕保存起來,在構建Dashboard時候使用,
點擊增長按鈕,選擇在Visualize保存的圖表,而後經過調整位置獲得本身想要的界面,最終保存下來;
最終就完成對整個索引信息的圖表化展現。
4、結束
歡迎你們加羣438836709,歡迎你們關注我!