作者其他ELK快速入門系列文章
簡介
Kibana 是一款開源的數據分析和可視化平台,它是 Elastic Stack 成員之一,設計用於和 Elasticsearch 協作。您可以使用 Kibana 對 Elasticsearch 索引中的數據進行搜索、查看、交互操作。您可以很方便的利用圖表、表格及地圖對數據進行多元化的分析和呈現。
Kibana 可以使大數據通俗易懂。它很簡單,基於瀏覽器的界面便於您快速創建和分享動態數據儀表板來追蹤 Elasticsearch 的實時數據變化。
搭建 Kibana 非常簡單。您可以分分鍾完成 Kibana 的安裝並開始探索 Elasticsearch 的索引數據 — 沒有代碼、不需要額外的基礎設施。
界面
為了給大家一個直觀的感覺,先上個圖讓大家來圍觀一下它靚照:
支持的平台
Kibana 有 Linux、Darwin 和 Windows 版本的安裝包。由於 Kibana 基於 Node.js 運行,我們在這些平台上包含了一些必要的 Node.js 二進制文件。Kibana 不支持在獨立維護的 Node.js 版本上運行。
Elasticsearch 版本
Kibana 的版本需要和 Elasticsearch 的版本一致。這是官方支持的配置。
運行不同主版本號的 Kibana 和 Elasticsearch 是不支持的(例如 Kibana 5.x 和 Elasticsearch 2.x),若主版本號相同,運行 Kibana 子版本號比 Elasticsearch 子版本號新的版本也是不支持的(例如 Kibana 5.1 和 Elasticsearch 5.0)。
運行一個 Elasticsearch 子版本號大於 Kibana 的版本基本不會有問題,這種情況一般是便於先將 Elasticsearch 升級(例如 Kibana 5.0 和 Elasticsearch 5.1)。在這種配置下,Kibana 啟動日志中會出現一個警告,所以一般只是使用於 Kibana 即將要升級到和 Elasticsearch 相同版本的場景。
運行不同的 Kibana 和 Elasticsearch 補丁版本一般是支持的(例如:Kibana 5.0.0 和 Elasticsearch 5.0.1),盡管我們鼓勵用戶去運行最新的補丁更新版本。
安裝 Kibana
從6.0.0開始,Kibana 只支持64位操作系統。
Kibana 提供以下格式的安裝包:
tar.gz/zip |
tar.gz 包用來在 Linux 和 Darwin 系統下安裝,也是最方便的一種選擇。 zip 包是唯一支持 Windows 系統的安裝包。 使用 .tar.gz 安裝 Kibana 或者 在 Windows 上安裝 Kibana |
deb |
deb 包用來在 Debian、Ubuntu 和其他基於 Debian 的系統下安裝,Debian 包可以從 Elastic 官網或者我們的 Debian 倉庫中下載。 使用 Debian 包安裝 Kibana |
rpm |
rpm 包用來在 Red Hat、Centos、SLES、OpenSuSe 以及其他基於 RPM 的系統下安裝。RPM 包可以從 Elastic 官網或者我們的 RPM 倉庫下載。 使用 RPM 包安裝 Kibana |
docker |
Elastic Docker 倉庫中有現有的可以運行 Kibana 的 Docker 鏡像,並預裝了 X-Pack 。 Docker 容器中運行 Kibana |
使用 .tar.gz 安裝 Kibana
Kibana 為 Linux 和 Darwin 平台提供了 .tar.gz 安裝包。這些類型的包非常容易使用。
Kibana 的最新穩定版本可以在 Kibana 下載頁找到。其它版本可以在 已發布版本中查看。
下載安裝 Linux 64 位包
Kibana v6.0.0 的 Linux 文件可以按照如下方式下載和安裝:
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-linux-x86_64.tar.gz
sha1sum kibana-6.0.0-linux-x86_64.tar.gz
tar -xzf kibana-6.0.0-linux-x86_64.tar.gz
cd kibana/
|
比較 sha1sum 或 shasum 產生的 SHA 跟 發布 SHA是否一致。 |
|
該目錄是 $KIBANA_HOME 。 |
下載安裝 Darwin 包
Kibana v6.0.0 的 Darwin 文件可以按照如下方式下載和安裝:
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-darwin-x86_64.tar.gz
shasum kibana-6.0.0-darwin-x86_64.tar.gz
tar -xzf kibana-6.0.0-darwin-x86_64.tar.gz
cd kibana/
|
比較 sha1sum 或 shasum 產生的SHA 跟 發布的 SHA是否一致。 |
|
該目錄是 $KIBANA_HOME 。 |
從命令行啟動 Kibana
Kibana 可以從命令行啟動,命令如下:
./bin/kibana
默認 Kibana 在前台啟動,打印日志到標准輸出 (stdout),可以通過 Ctrl-C 命令終止運行。
通過配置文件配置 Kibana
Kibana 默認情況下從 $KIBANA_HOME/config/kibana.yml 加載配置文件。該配置文件的格式在 配置 Kibana 中做了說明。
.tar.gz 文件目錄
.tar.gz 整個包是獨立的。默認情況下,所有的文件和目錄都在 $KIBANA_HOME — 解壓包時創建的目錄下。這樣非常方便,因為您不需要創建任何目錄來使用 Kibana,卸載 Kibana 就是簡單地刪除 $KIBANA_HOME 目錄。但還是建議修改一下配置文件和數據目錄,這樣就不會刪除重要數據。
類型 |
描述 |
默認位置 |
設置 |
home |
Kibana home 目錄或 $KIBANA_HOME 。 |
解壓包時創建的目錄 |
|
bin |
二進制腳本,包括 kibana 啟動 Kibana 服務和 kibana-plugin 安裝插件。 |
$KIBANA_HOME\bin |
|
config |
配置文件,包括 kibana.yml 。 |
$KIBANA_HOME\config |
|
data |
Kibana 和其插件寫入磁盤的數據文件位置。 |
$KIBANA_HOME\data |
|
optimize |
編譯過的源碼。某些管理操作(如,插件安裝)導致運行時重新編譯源碼。 |
$KIBANA_HOME\optimize |
|
plugins |
插件文件位置。每一個插件都有一個單獨的二級目錄。 |
$KIBANA_HOME\plugins |
|
在 Windows 上安裝 Kibana
在 Windows 中安裝 Kibana 使用 .zip 包。
最新穩定版 Kibana 可以從 Kibana 下載頁獲得。其他版本可以在 已發布版本中查看。
下載安裝 .zip 包
下載 Kibana v6.0.0 的 .zip windows 文件: https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-windows-x86_64.zip
用您喜歡的解壓工具解壓下載的 zip 包。會創建一個文件夾叫 kibana-6.0.0-windows-x86_64,也就是我們指的 $KIBANA_HOME 。在一個終端窗口中, CD 到 $KIBANA_HOME 目錄,例如:
CD c:\kibana-6.0.0-windows-x86_64
從命令行啟動 Kibana
Kibana 可以從命令行啟動,如下:
.\bin\kibana
默認情況下,Kibana 在前台啟動,輸出 log 到 STDOUT ,可以通過 Ctrl-C 停止 Kibana。
通過配置文件配置 Kibana
Kibana 默認情況下從 $KIBANA_HOME/config/kibana.yml 加載配置文件。該配置文件的格式在 配置 Kibana 中做了說明。
.zip 文件目錄
.zip 整個包是獨立的。默認情況下,所有的文件和目錄都在 $KIBANA_HOME — 解壓包時創建的目錄下。這是非常方便的,因為您不需要創建任何目錄來使用 Kibana,卸載 Kibana 只需要簡單的刪除 $KIBANA_HOME目錄。但還是建議修改一下配置文件和數據目錄,這樣就不會刪除重要數據。
類型 |
描述 |
默認位置 |
設置 |
home |
Kibana home 目錄或 $KIBANA_HOME 。 |
解壓包時創建的目錄 |
|
bin |
二進制腳本,包括 kibana 啟動 Kibana 服務和 kibana-plugin 安裝插件。 |
$KIBANA_HOME\bin |
|
config |
配置文件包括 kibana.yml 。 |
$KIBANA_HOME\config |
|
data |
Kibana 和其插件寫入磁盤的數據文件位置。 |
$KIBANA_HOME\data |
|
optimize |
編譯過的源碼。某些管理操作(如,插件安裝)導致運行時重新編譯源碼。 |
$KIBANA_HOME\optimize |
|
plugins |
插件文件位置。每一個插件都一個單獨的二級目錄。 |
$KIBANA_HOME\plugins |
|
使用 Debian 包安裝 Kibana
Kibana Debian 安裝包可以在官網下載或者從APT 倉庫下載。它可以用來在任何基於 Debian 的系統,如 Debian 和 Ubuntu 上安裝 Kibana。
Kibana 最新穩定版本可以在官方 Kibana 下載頁找到。其他版本可以在 官方已發布版本中查看。
導入 Elastic PGP 密鑰
我們所有部署包的簽名使用的是 Elastic Signing Key (PGP key D88E42B4, 從 https://pgp.mit.edu 可以獲得),指紋為:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
下載並安裝簽名公鑰:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
從 APT 倉庫安裝
在開始之前,您需要在 Debian 系統上安裝 apt-transport-https 包:
sudo apt-get install apt-transport-https
保存倉庫的定義到 /etc/apt/sources.list.d/elastic-6.x.list:
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
請不要用 add-apt-repository 因為它需要添加 deb-src 入口,但是我們沒有提供包源。如果您已經添加了 deb-src 入口,您將會遇到如下錯誤:
Unable to find expected entry 'main/source/Sources' in Release file
(Wrong sources.list entry or malformed file)
從 /etc/apt/sources.list 文件中刪除 deb-src 入口,便可以正常安裝。
使用以下命令安裝 Kibana Debian 包:
sudo apt-get update && sudo apt-get install kibana
如果在倉庫中有兩條相同的 Kibana 入口,執行 apt-get update 命令時您將會遇到如下錯誤:
Duplicate sources.list entry https://artifacts.elastic.co/packages/6.x/apt/ ...`
檢查這些文件中是否有重復記錄: /etc/apt/sources.list.d/kibana-6.x.list 、 /etc/apt/sources.list.d/ 和 /etc/apt/sources.list 。
手動下載安裝 Debian 包
Kibana v6.0.0 的 Debian 包可以使用如下命令從網站下載安裝:
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-amd64.deb
sha1sum kibana-6.0.0-amd64.deb
sudo dpkg -i kibana-6.0.0-amd64.deb
|
比較 sha1sum 或 shasum 產生的 SHA跟 發布的 SHA。 |
SysV init 和 systemd 對比
Kibana 安裝后不會自動啟動。如何啟動和停止 Kibana,依賴與您的操作系統。使用 SysV init 還是 systemd (新的發行版使用),可以通過以下命令來顯示使用的是哪種:
ps -p 1
使用 SysV init 運行 Kibana
使用 update-rc.d 命令配置 Kibana 開機自動啟動:
sudo update-rc.d kibana defaults 95 10
Kibana 可以使用 service 命令來啟動和停止:
sudo -i service kibana start
sudo -i service kibana stop
不管什么原因,如果 Kibana 啟動失敗,它會輸出失敗原因到 STDOUT。日志文件在 /var/log/kibana/ 目錄下面。
使用 systemd 運行 Kibana
配置 Kibana 開機自動啟動,執行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
Kibana 啟動和停止命令如下:
sudo systemctl start kibana.service
sudo systemctl stop kibana.service
這些命令不會提供任何關於 Kibana 是否成功啟動的反饋信息。而是將這些信息寫入日志文件中,日志文件的位置在 /var/log/kibana/ 。
通過配置文件配置 Kibana
Kibana 默認情況下從 $KIBANA_HOME/config/kibana.yml 加載配置文件。該配置文件的格式在 配置 Kibana 中有相關說明。
Debian 包目錄
在 Debian 包結構中,Debian 會把配置文件、日志和數據目錄放在如下位置:
類型 |
描述 |
默認位置 |
設置 |
home |
Kibana home 目錄或 $KIBANA_HOME 。 |
/usr/share/kibana |
|
bin |
二進制腳本,包括 kibana 啟動 Kibana server 和 kibana-plugin 安裝插件。 |
/usr/share/kibana/bin |
|
config |
配置文件,包括 kibana.yml 。 |
/etc/kibana |
|
data |
Kibana 和其插件寫入磁盤的數據文件位置。 |
/var/lib/kibana |
|
optimize |
編譯過的源碼。某些管理操作 (如,插件安裝) 導致運行時重新編譯源碼。 |
/usr/share/kibana/optimize |
|
plugins |
插件文件位置。每一個插件都有一個單獨的二級目錄。 |
/usr/share/kibana/plugins |
|
使用 RPM 包安裝 Kibana
Kibana RPM 包可以從官方網站下載或者從官方推薦的 RPM 倉庫下載。RPM 包可以用來安裝 Kibana 在任何基於 RPM 包管理的系統上,如 OpenSuSE 、SLES、Centos、Red Hat 和 Oracle 企業版等系統上。
RPM 安裝不支持舊的系統版本,例如 SLES 11 和 CentOS 5。詳情請參考 使用 .tar.gz 安裝 Kibana 。
Kibana 的最新穩定版本可以在官方網站 Kibana 下載頁找到。其它版本可以在 已發布版本中查看。
導入 Elastic PGP 密鑰
我們所有部署包的簽名使用的是 Elastic Signing Key (PGP key D88E42B4, 從 https://pgp.mit.edu 可以獲得),指紋為:
4609 5ACC 8548 582C 1A26 99A9 D27D 666C D88E 42B4
下載並安裝簽名公鑰:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
從 RPM 倉庫安裝
對於 RedHat 的發行版,在 /etc/yum.repos.d/ 目錄下新建一個 kibana.repo 文件,對於 OpenSuSE 的發行版,在 /etc/zypp/repos.d/ 目錄下新建一個 kibana.repo 文件,包含如下內容:
[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
您的倉庫已經准備好了。現在您可以用下面的命令來安裝 Kibana:
sudo yum install kibana
sudo dnf install kibana
sudo zypper install kibana
|
在 CentOS 和基於較低版本的 Red Hat 發行版上使用 yum 。 |
|
在 Fedora 和較高版本的 Red Hat 發行版上使用 dnf 。 |
|
在基於 OpenSUSE 的發行版上使用 zypper 。 |
手動下載安裝 RPM
Kibana v6.0.0 的 RPM 包可以使用如下命令從網站下載安裝 :
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.0.0-x86_64.rpm
sha1sum kibana-6.0.0-x86_64.rpm
sudo rpm --install kibana-6.0.0-x86_64.rpm
|
比較 sha1sum 或 shasum 產生的 SHA 跟 發布的 SHA。 |
SysV init 和 systemd 對比
Kibana 安裝后不會自動啟動。如何啟動和停止 Kibana,依賴與您的操作系統。使用 SysV init 還是 systemd (新的發行版使用),可以通過以下命令來顯示使用的是哪種:
ps -p 1
SysV init 運行 Kibana
使用 chkconfig 命令配置 Kibana 開機自動啟動:
sudo chkconfig --add kibana
Kibana 可以用 service 命令來啟動和停止:
sudo -i service kibana start
sudo -i service kibana stop
任何原因導致的 Kibana 啟動失敗,都會輸出失敗原因到 STDOUT。日志文件在 /var/log/kibana/ 目錄下面。
使用 systemd 運行 Kibana
配置 Kibana 開機自動啟動,執行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
Kibana 啟動和停止命令如下:
sudo systemctl start kibana.service
sudo systemctl stop kibana.service
這些命令不會提供任何關於 Kibana 是否成功啟動的反饋信息。而是將這些信息寫入日志文件中,日志文件的位置在 /var/log/kibana/ 。
通過配置文件配置 Kibana
Kibana 默認情況下從 $KIBANA_HOME/config/kibana.yml 加載配置文件。該配置文件的格式在 配置 Kibana 中有相關說明。
RPM 文件目錄
在 RPM 包中,會把配置文件、日志和數據目錄放在如下位置:
類型 |
描述 |
默認位置 |
設置 |
home |
Kibana home 目錄或 $KIBANA_HOME 。 |
/usr/share/kibana |
|
bin |
二進制腳本,包括 kibana 啟動 Kibana server 和 kibana-plugin 安裝插件。 |
/usr/share/kibana/bin |
|
config |
配置文件,包括 kibana.yml 。 |
/etc/kibana |
|
data |
Kibana 和其插件寫入磁盤的數據文件位置。 |
/var/lib/kibana |
|
optimize |
編譯過的源碼。某些管理操作(如,插件安裝)導致運行時重新編譯源碼。 |
/usr/share/kibana/optimize |
|
plugins |
插件文件位置。每一個插件都有一個單獨的二級目錄。 |
/usr/share/kibana/plugins |
|
Docker 容器中運行 Kibana
Kibana 的 Docker 鏡像可以從 Elastic 官網上的 Docker 鏡像倉庫獲取。該鏡像是隨 X-Pack 一起打包的。
X-Pack 在這個 image 中是預裝好的。安裝了 X-Pack,Kibana 會去連接同樣帶有 X-Pack 的 Elasticsearch 集群。
獲取鏡像
向 Elastic Docker 倉庫發送一條 docker pull 命令就可以獲取 Kibana Docker 鏡像。
命令如下:
docker pull docker.elastic.co/kibana/kibana:6.0.0
配置 Docker 中的 Kibana
Docker 鏡像提供了幾種方法來配置 Kibana。傳統的方法是給出一個 配置 Kibana 中描述的配置文件 kibana.yml ,也可以使用環境變量來定義設置項。
綁定配置
一種配置 Docker 中 Kibana 的方法是通過綁定配置文件 kibana.yml 。使用 docker-compose 工具,向下面這樣綁定:
services:
kibana:
image: docker.elastic.co/kibana/kibana:6.0.0
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
環境變量設置
在 Docker 中,Kibana 可以通過環境變量的方法設置。環境變量如下:
表 1. Docker 環境變量
Environment Variable |
Kibana Setting |
ELASTICSEARCH_CUSTOMHEADERS |
elasticsearch.customHeaders |
ELASTICSEARCH_PASSWORD |
elasticsearch.password |
ELASTICSEARCH_PINGTIMEOUT |
elasticsearch.pingTimeout |
ELASTICSEARCH_PRESERVEHOST |
elasticsearch.preserveHost |
ELASTICSEARCH_REQUESTHEADERSWHITELIST |
elasticsearch.requestHeadersWhitelist |
ELASTICSEARCH_REQUESTTIMEOUT |
elasticsearch.requestTimeout |
ELASTICSEARCH_SHARDTIMEOUT |
elasticsearch.shardTimeout |
ELASTICSEARCH_SSL_CA |
elasticsearch.ssl.ca |
ELASTICSEARCH_SSL_CERT |
elasticsearch.ssl.cert |
ELASTICSEARCH_SSL_KEY |
elasticsearch.ssl.key |
ELASTICSEARCH_SSL_VERIFY |
elasticsearch.ssl.verify |
ELASTICSEARCH_STARTUPTIMEOUT |
elasticsearch.startupTimeout |
ELASTICSEARCH_URL |
elasticsearch.url |
ELASTICSEARCH_USERNAME |
elasticsearch.username |
KIBANA_DEFAULTAPPID |
kibana.defaultAppId |
KIBANA_INDEX |
kibana.index |
LOGGING_DEST |
logging.dest |
LOGGING_QUIET |
logging.quiet |
LOGGING_SILENT |
logging.silent |
LOGGING_VERBOSE |
logging.verbose |
OPS_INTERVAL |
ops.interval |
PID_FILE |
pid.file |
SERVER_BASEPATH |
server.basePath |
SERVER_HOST |
server.host |
SERVER_MAXPAYLOADBYTES |
server.maxPayloadBytes |
SERVER_NAME |
server.name |
SERVER_PORT |
server.port |
SERVER_SSL_CERT |
server.ssl.cert |
SERVER_SSL_KEY |
server.ssl.key |
XPACK_MONITORING_ELASTICSEARCH_URL |
xpack.monitoring.elasticsearch.url |
XPACK_MONITORING_ELASTICSEARCH_USERNAME |
xpack.monitoring.elasticsearch.username |
XPACK_MONITORING_ELASTICSEARCH_PASSWORD |
xpack.monitoring.elasticsearch.password |
XPACK_MONITORING_ENABLED |
xpack.monitoring.enabled |
XPACK_MONITORING_MAX_BUCKET_SIZE |
xpack.monitoring.max_bucket_size |
XPACK_MONITORING_MIN_INTERVAL_SECONDS |
xpack.monitoring.min_interval_seconds |
XPACK_MONITORING_NODE_RESOLVER |
xpack.monitoring.node_resolver |
XPACK_MONITORING_REPORT_STATS |
xpack.monitoring.report_stats |
XPACK_MONITORING_KIBANA_COLLECTION_ENABLED |
xpack.monitoring.kibana.collection.enabled |
XPACK_MONITORING_KIBANA_COLLECTION_INTERVAL |
xpack.monitoring.kibana.collection.interval |
XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED |
xpack.monitoring.ui.container.elasticsearch.enabled |
XPACK_SECURITY_ENABLED |
xpack.security.enabled |
XPACK_SECURITY_COOKIENAME |
xpack.security.cookieName |
XPACK_SECURITY_ENCRYPTIONKEY |
xpack.security.encryptionKey |
XPACK_SECURITY_SECURECOOKIES |
xpack.security.secureCookies |
XPACK_SECURITY_SESSIONTIMEOUT |
xpack.security.sessionTimeout |
這些變量可以像下面這樣,用 docker-compose 設置:
services:
kibana:
image: docker.elastic.co/kibana/kibana:6.0.0
environment:
SERVER_NAME: kibana.example.org
ELASTICSEARCH_URL: http://elasticsearch.example.org
優先使用環境變量,然后是配置文件 kibana.yml 中的配置項。
Docker 默認值
使用 Docker 時,下面的配置項有不同的默認值 :
server.host |
"0" |
elasticsearch.url |
http://elasticsearch:9200 |
elasticsearch.username |
elastic |
elasticsearch.password |
changeme |
xpack.monitoring.ui.container.elasticsearch.enabled |
true |
這些配置項的默認值在 kibana.yml 中設置。可以通過 自定義 kibana.yml 或者 環境變量覆蓋這些默認值。
Kibana 是一個 web 應用,可以通過5601端口訪問。只需要在瀏覽器中指定 Kibana 運行的機器,然后指定端口號即可。例如, localhost:5601
或者 http://YOURDOMAIN.com:5601
,詳見之前界面章節展現靚照。