目錄html
Kibana是一個配合Elasticsearch使用的、開源的數據分析和可視化平臺, 能夠與Elasticsearch中存儲的索引文檔進行交互.node
—— 使用Kibana能執行高級的數據分析, 並經過圖表、表格、地圖等形式顯示分析結果.linux
在安裝好單機版Elasticsearch的基礎上, 安裝Kibana插件, 使用其UI界面進行後續的學習操做.git
前提: JDK和Elasticsearch單機服務已成功配置部署.json
(1) 下載安裝包:瀏覽器
下載地址: https://www.elastic.co/downloads/past-releases.bash
本文演示使用的是
kibana-6.6.0-linux-x86_64.tar.gz
.服務器
(2) 解壓並重命名:elasticsearch
# 上傳安裝包至服務器的/data/elk-6.6.0下: cd /data/elk-6.6.0 # 解壓安裝包: tar -zxf kibana-6.6.0-linux-x86_64.tar.gz # 重命名 mv kibana-6.6.0-linux-x86_64.tar.gz kibana
文件位置: $kibana/config/kebana.yml
:ide
# Kibana is served by a back end server. This setting specifies the port to use. # Kibana是個後臺服務, 須要指定服務的IP地址和端口號. 默認值爲5601. server.port: 5601 # Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. # The default is 'localhost', which usually means remote machines will not be able to connect. # To allow connections from remote users, set this parameter to a non-loopback address. # 指定Kibana服務須要綁定的IP地址, 默認值爲本地迴環地址"localhost". 若要容許遠程訪問, 就須要改成本地服務器的IP地址. (127.0.0.1的做用等同於localhost, 可用ifconfig命令查看本機的IPV4地址) server.host: 172.16.22.133 # Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects # the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests # to Kibana. This setting cannot end in a slash. #server.basePath: "" # The maximum payload size in bytes for incoming server requests. #server.maxPayloadBytes: 1048576 # The Kibana server's name. This is used for display purposes. #server.name: "your-hostname" # The URL of the Elasticsearch instance to use for all your queries. # 須要監控的Elasticsearch服務的地址, 默認是本地迴環地址+9200端口 #elasticsearch.url: "http://localhost:9200" # When this setting's value is true Kibana uses the hostname specified in the server.host # setting. When the value of this setting is false, Kibana uses the hostname of the host # that connects to this Kibana instance. #elasticsearch.preserveHost: true # Kibana uses an index in Elasticsearch to store saved searches, visualizations and # dashboards. Kibana creates a new index if the index doesn't already exist. # Kibana在Elasticsearch中的索引 kibana.index: ".kibana"
(1) 啓動Kibana:
cd /data/elk-6.6.0/kibana/bin # 前臺啓動, 不能關閉終端, 即阻塞式啓動, 不能執行其餘操做. 此時可經過Ctrl + C終止服務. ./kibana # 後臺啓動, 可退出終端, 若當前終端窗口關閉, 服務也將終止. nohup ./kibana & # 上述nohup命令將輸出追加到了nohup.out中, 爲了直接查看啓動狀況, 可省去nohup命令: # ./kibana &
(2) 瀏覽器檢查
在瀏覽器訪問: http://172.16.22.133:5601, 出現以下界面, 說明啓動成功:
# 查看node服務的進程id [root@localhost bin]# ps aux | grep node root 15653 3.7 1.0 1142400 88020 pts/0 Sl 04:21 0:07 ./../node/bin/node --no-warnings ./../src/cli # kill掉 ./../src/cli 進程: [root@localhost bin]# kill -9 15653
或者: 若是沒有在後臺啓動Kibana, 即沒有使用nohup命令啓動, 則關閉當前會話(即終端窗口), Kibana服務也將終止.
前往Dev Tools工具界面, 輸入以下命令並點擊 [綠色的向右的箭頭➡] 發送請求:
GET _cluster/health
獲得以下關於集羣健康情況的JSON響應:
{ "cluster_name" : "heal_es", # 集羣名稱, 默認是elasticsearch "status" : "yellow", # 集羣健康狀態 "timed_out" : false, "number_of_nodes" : 1, # 集羣中的節點數 "number_of_data_nodes" : 1, # 存儲數據的節點數 "active_primary_shards" : 33, # 活躍的primary shard數 "active_shards" : 33, # 活躍的shard數, 包括primary shard和replica shard "relocating_shards" : 0, # 當前正在從一個節點遷往其餘節點的分片的數量, 一般是0. 當ES發現集羣不太均衡(如添加或下線一個節點)時, 該值會上漲 "initializing_shards" : 0, # 剛建立的分片個數, 建立第一個索引時、節點重啓時, 會短暫處於此狀態(不該長期停留此狀態) "unassigned_shards" : 5, # 在集羣中存在, 卻又不能找到 -- 即未分配的副本 "delayed_unassigned_shards": 0, "number_of_pending_tasks": 0, "number_of_in_flight_fetch": 0, "task_max_waiting_in_queue_millis" : 0, "active_shards_percent_as_number" : 86.8421052631579 }
①
green
: 全部primary shard和replica shard都已成功分配, 集羣是100%可用的;②
yellow
: 全部primary shard都已成功分配, 但至少有一個replica shard缺失. 此時集羣全部功能都正常使用, 數據不會丟失, 搜索結果依然完整, 但集羣的可用性減弱. —— 須要及時處理的警告.③
red
: 至少有一個primary shard(以及它的所有副本分片)缺失 —— 部分數據不能使用, 搜索只能返回部分數據, 而分配到這個分配上的寫入請求會返回一個異常. 此時雖然能夠運行部分功能, 但爲了索引數據的完整性, 須要儘快修復集羣.
使用
GET _cat/nodes?v
查看當前節點數:ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 172.16.22.133 62 98 2 0.98 1.25 1.39 mdi * 1UlY804
unassigned_shards
: 已經在集羣狀態中存在、但在集羣裏又找不到的分片, 來源一般是未分配的副本. 好比: 一個有 5 分片和 1 副本的索引, 在單節點集羣上就會有 5 個未分配副本分片.
若是集羣狀態是red
, 也會長期存在未分配分片(由於缺乏主分片).
關於Kibana的使用方法, 請參考博主的這篇文章 ES 06 - 經過Kibana插件操做ES中的索引文檔 (CRUD操做).
(1) 問題描述:
啓動Kibana時拋出以下異常: (這裏以Kibana 7.2.0爲例進行說明)
[elastic@localhost bin]$ ./kibana log [06:20:42.283] [fatal][root] Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/build/Release/nodegit.node) at Object.Module._extensions..node (internal/modules/cjs/loader.js:718:18) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object.<anonymous> (/data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/dist/nodegit.js:12:12) at Module._compile (internal/modules/cjs/loader.js:689:30) at Module._compile (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:99:24) at Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Object.newLoader [as .js] (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:104:7) at Module.load (internal/modules/cjs/loader.js:599:32) at tryModuleLoad (internal/modules/cjs/loader.js:538:12) at Function.Module._load (internal/modules/cjs/loader.js:530:3) at Module.require (internal/modules/cjs/loader.js:637:17) at require (internal/modules/cjs/helpers.js:22:18) at Object.require (/data/elk-7.2.0/kibana-7.2.0/x-pack/plugins/code/server/git_operations.js:10:19) at Module._compile (internal/modules/cjs/loader.js:689:30) at Module._compile (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:99:24) at Module._extensions..js (internal/modules/cjs/loader.js:700:10) at Object.newLoader [as .js] (/data/elk-7.2.0/kibana-7.2.0/node_modules/pirates/lib/index.js:104:7) at Module.load (internal/modules/cjs/loader.js:599:32) FATAL Error: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /data/elk-7.2.0/kibana-7.2.0/node_modules/@elastic/nodegit/build/Release/nodegit.node)
(2) 解決方法:
由出錯內容可知, 系統glibc庫版本太低, 須要升級到2.17:
# 退出ES專用用戶, 經過root用戶下載安裝包, 並解壓: wget http://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz tar glibc-2.17.tar.gz # 進入解壓後的目錄, 而後建立編譯目錄: cd glibc-2.17 mkdir build && cd build # 檢查(預編譯): ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin # 若是沒有出現問題的化, 就能夠正式編譯了. 這裏開啓8個線程編譯: make -j 8 # 等待編譯完成後, 安裝: make install # 查看已安裝的GLIBC庫版本: [root@localhost date]# strings /lib64/libc.so.6 | grep GLIBC GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2.3.4 GLIBC_2.4 GLIBC_2.5 GLIBC_2.6 GLIBC_2.7 GLIBC_2.8 GLIBC_2.9 GLIBC_2.10 GLIBC_2.11 GLIBC_2.12 GLIBC_2.13 GLIBC_2.14 GLIBC_2.15 GLIBC_2.16 GLIBC_2.17 GLIBC_PRIVATE # 也可經過下述命令查看: [root@localhost data]# ldd --version ldd (GNU libc) 2.17 Copyright (C) 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
(3) 再次啓動Kibana, 該問題得以解決👌:
參考資料
版權聲明
做者: 瘦風(https://healchow.com)](https://healchow.com)
出處: 博客園 瘦風(https://www.cnblogs.com/shoufeng)
感謝閱讀, 若是文章有幫助或啓發到你, 點個[好文要頂👆] 或 [推薦👍] 吧😜
本文版權歸博主全部, 歡迎轉載, 但 [必須在文章頁面明顯位置標明原文連接], 不然博主保留追究相關人員法律責任的權利.