Kibana 插件環境搭建教程
環境背景, Kibana 7.4.0, Elasticsearch 7.4.0
注意, 執行以下命令時, 盡量在管理員許可權的命令行窗口裡執行, 避免一些沒有許可權的報錯;
1. 準備 Kibana 源碼
git clone //github.com/elastic/kibana.git
如果 github 訪問過慢, 可以切換加速通道: //github.com.cnpmjs.org/elastic/kibana.git
切換對應 ES 版本的分支/標籤:
cd kibana
git fetch # 取回所有分支和標籤的更新
git tag -l | findstr 7.4.0 # windows 下查看 7.4.0 版本的標籤
git checkout v7.4.0 # 切換 7.4.0 標籤
2. 安裝依賴軟體
2.1 node
安裝 .node-version
文件里標記的 node 版本
cat .node-version
2.2 nvm
windows 可以安裝 nvm-windows 工具來管理 node 版本;
nvm list # 查看已安裝的 node 版本列表
nvm use <version> # 切換 node 到指定版本
nvm install <version> # 安裝指定版本的 node
2.3 yarn
npm install --global yarn
3. 初始化 Kibana
3.1 chromedriver
npm install chromedriver --chromedriver_cdnurl=//cdn.npm.taobao.org/dist/chromedriver
3.2 node-gyp
用於編譯插件模組的工具, Kibana 初始化過程中會遇到問題, 所以提前先準備好;
npm install -g node-gyp
設置 npm 指定的 python 版本, 如果已安裝有不同版本的 python:
node-gyp set python /path/to/executable/python
如果之前已經安裝好了的, 會出現以下異常, 可以忽略不管:
***\kibana>npm install -g node-gyp
npm WARN deprecated [email protected]: request has been deprecated, see //github.com/request/request/issues/3142
npm WARN deprecated [email protected]: this library is no longer supported
npm ERR! path ***\Node\global\node-gyp.cmd
npm ERR! code EEXIST
npm ERR! Refusing to delete ***\Node\global\node-gyp.cmd: is outside ***\Node\global\node_modules\node-gyp and not a link
npm ERR! File exists: ***\Node\global\node-gyp.cmd
npm ERR! Move it away, and try again.
npm ERR! A complete log of this run can be found in:
npm ERR! ***\Node\cache\_logs\2021-02-08T09_20_46_911Z-debug.log
3.3 初始化
yarn kbn bootstrap
初始化完成的時候如下圖所示:
如果想切換分支刪除已經下載的依賴, 或者下載的依賴有問題需要清除, 執行一下命令:
yarn kbn clean
yarn cache clean
注意, 清空之後需要回到 3.1 再按照流程安裝相應的依賴包;
4. 環境配置
Kibana 是個大項目, 一些命令容易觸發默認的堆記憶體限制導致記憶體溢出, 可以修改 --max_old_space_size
配置調大最大堆記憶體限制;
export NODE_OPTIONS="--max_old_space_size=2048"
windows 環境下沒有找到配置的位置, 再調試插件的時候也沒有出現記憶體溢出的情況, 暫時不考慮;
5. 連接 ES 集群
準備運行的 Elasticsearch 環境(略)
修改 config/kibana.yml
文件:
elasticsearch.hosts: ["//test-es-host:9200"]
6. 從源碼啟動 Kibana
在 kibana
根目錄下執行命令 yarn start
, 即可啟動 Kibana 進程, 並連接上面配置的 ES 集群;
啟動成功後, 在本地瀏覽器中訪問 //localhost:5601
, 有時候是 5603
等其他埠, 要注意啟動成功的命令行窗口裡的提示, 根據提示修改對應訪問的埠號;
Q. 問題
- Current existing ChromeDriver binary is unavailable, proceding with download and extraction.
先安裝 chromedriver
npm install --global chromedriver --chromedriver_cdnurl=//cdn.npm.taobao.org/dist/chromedriver
- Error: Failed to parse .i18nrc.json file at ….i18nrc.json, info:TypeError: Cannot read property ‘forEach’ of undefined
異常原因是因為 .i18nrc.json
文件中沒有配置翻譯文件; 通過 gen 腳本創建初始化的插件, 一上來就會有這個問題~
{
"paths": {
"mycol": "./"
},
"translations": ["translations/zh-CN.json"] # 添加這一行配置即可, 語言選擇對應的 json 文件即可
}
R. 參考資料
- //www.elastic.co/guide/en/kibana/7.10/development-getting-started.html
- //blog.csdn.net/qq_41882147/article/details/81222054
- kibana 使用備忘錄