前言
在日常的開發中,會涉及到對一些中間件以及基礎組件的使用,日志匯總分析、APM 監控、介面的健康檢查、站內搜索,以及對于服務器、nginx、iis 等等的監控,最近的幾個需求點,都和 Elastic Stack 有著很大的聯系,有些需求可能使用 Elastic Stack 并不會是最優的方案,本著減少后期運維風險的原則,所以這里選擇了統一
因此自己之前也沒接觸過,所以私底下就自己捯飭捯飭,看看如何使用,畢竟,技多不壓身,當然,能夠使用的前提是有環境支持,所以第一步需要在本地安裝上 Elastic Stack
Step by Step
2.1、介紹&準備
Elastic Stack,主要包含了 Elasticsearch(資料存盤)和 Kibana(可視化管理)以及一系列的插件,插件最終實作的也是將各種指標、日志、資料抽取到 elasticsearch 中,通過 kibana 進行可視化的展示、資料分析
作為整個技術堆疊的基礎,所以首先需要安裝的就是 elasticsearch 和 kibana
雖然也可以安裝在 windows 上,但是本著不給自己找事的原則,以及出了問題好尋找解決方案,這里選擇將 Elastic Stack 安裝到 CentOS 7.6 上
因為我是使用的 RPM 進行安裝的,由于某些原因,官網提供的組件包下載地址,如果沒有特殊手段的話,可能會下載到地老天荒,因此這里可以使用國內的鏡像地址進行下載,我是使用的清華的鏡像進行下載的(鏈接直達),你可以依據自己的喜好來選擇鏡像地址

2.2、下載組件包
登錄服務器,通過 wget 命令下載 elasticsearch 和 kibana or 直接在本地下載好然后再丟到服務器上,這里需要注意,確保 elasticsearch、kibana 以及后續使用的各個插件的版本一定要保持一致,不然的話可能會存在一些莫名其妙的問題
-- 下載 elasticsearch
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.9.0/elasticsearch-7.9.0-x86_64.rpm
-- 下載 kibana
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum/elastic-7.x/7.9.0/kibana-7.9.0-x86_64.rpm

2.3、安裝與配置
2.3.1、配置 elasticsearch
當組件下載完成后,就可以開始程式的安裝,因為我是使用的 RPM 包,所以這里可以直接通過 rpm 命令完成 elasticsearch 的安裝
sudo rpm --install elasticsearch-7.9.0-x86_64.rpm

當命令執行完成后,可以看到,控制臺已經很清楚的提醒我們,通過 systemctl 指令就可以完成對于 elasticsearch 服務的管理
-- 設定開機自啟
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
-- 啟動 elasticsearch 服務
sudo systemctl start elasticsearch.service

啟動之后,可以在服務器上通過 curl 127.0.0.1:9200 來驗證我們的 elasticsearch 是否已經安裝成功,如果可以顯示出服務的相關資訊,則代表 elasticsearch 已經安裝成功了
與 mysql、mongodb 相同,默認情況下,elasticsearch 是不允許遠程訪問服務的,但是,鑒于實際的使用情況,這里需要修改組態檔,從而允許遠程訪問服務器上的 elasticsearch 服務
首先,通過 whereis elasticsearch 命令查找程式的安裝路徑,這里會有兩個路徑,通過查閱官方檔案可以得知,/etc/elasticsearch 是組態檔所在的路徑,而 /usr/share/elasticsearch 則是 elasticsearch 的運行路徑所在
切換到 /etc/elasticsearch 目錄下,打開 elasticsearch.yml 檔案,找到 Network 節點,調整如下的配置,從而允許遠程訪問服務,PS,因為組態檔是 yml 檔案,所以這里的對于內容格式有著很嚴格的要求,一定不能忘記 : 后面的空格
network.host: 0.0.0.0

當組態檔被修改后,需要重新啟動 elasticsearch 服務,通過 systemctl 命令來重啟服務,不出意外的話,你會發現服務啟動不起來 ??
-- 重啟 elasticsearch 服務
systemctl restart elasticsearch.service
這里我們可以通過 systemctl status 來查看服務無法正常啟動的原因
systemctl status elasticsearch.service -l

在控制臺列印的資訊中,我們重點關注錯誤資訊中的這句話,可以看到,我們需要針對 elasticsearch 進行節點的相關配置,因為這里采用的只是單機單節點,并不會搭建集群,因此,重新打開 elasticsearch.yml 檔案,修改如下的配置項即可
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
# 設定集群名稱
cluster.name: elastic-cluster
# 設定節點名稱
node.name: node-mater
# 默認初始化的節點名稱
cluster.initial_master_nodes: ["node-mater"]
當然,你也可以直接修改組態檔,指明當前的 elasticsearch 服務以單節點的形式運行,不過,不推薦這種方式
discovery.type: single-node
保存對于組態檔的修改,重新執行啟動服務的命令,可以看到服務已經啟動以來了,當然,此時如果你想要通過遠程訪問該服務的話,還請確保服務器的防火墻有開放 9200 埠,此時再通過瀏覽器訪問即可打開如下的頁面
-- 永久開放 9200 埠
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
-- 重啟防火墻
firewall-cmd --reload

2.3.2、安裝 kibana
與安裝 elasticsearch 時相似,回到檔案所在的路徑,通過 rpm 命令,就可以完成 kibana 的安裝,之后就可以通過 systemctl 來控制 kibana 的啟動
-- 回到用戶的根目錄
cd ~
-- 安裝 kibana
sudo rpm --install kibana-7.9.0-x86_64.rpm
-- 設定開機自啟
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
-- 啟動 elasticsearch 服務
sudo systemctl start kibana.service

因為 kibana 是對 elasticsearch 中的資料進行可視化管理的,所以這里需要修改 kibana 的組態檔來完成與 elasticsearch 的串接,與 elasticsearch 組態檔所在的路徑相似,kibana 的組態檔位于 /etc/kibana 路徑下,找到 kibana.yml 檔案,需要調整的配置項如下
## 允許遠程訪問
server.host: "0.0.0.0"
## 設定服務的名稱
server.name: "elastic-kibana"
## 設定需要連接的 elasticsearch 服務地址
elasticsearch.hosts: ["localhost:9200"]
## 設定頁面通過中文顯示
i18n.locale: "zh-CN"
當然,別忘了開放服務器的 5601 埠,從而允許遠程訪問
-- 永久開放 5601 埠
sudo firewall-cmd --zone=public --add-port=5601/tcp --permanent
-- 重啟防火墻
firewall-cmd --reload

在重新啟動 kibana 之后,如果你立刻通過瀏覽器訪問可能會提示下面的內容,嗯,請坐和放寬,等一會,多重繪幾次就可以了,如果一直出現下面這個提示,可通過 systemctl status 命令來查看具體是 elasticsearch or kibana 出問題了,畢竟就這兩個服務 ??
Kibana server is not ready yet
之前在我的云服務器上安裝時,當 kibana 安裝啟動之后,一直報這個錯誤,最終發現是 elasticsearch 一直啟動不起來,看了看錯誤資訊,結果發現是 elasticsearch 所使用的 jvm 記憶體不夠了,嗯,1 核 2G 記憶體的主機,如果你也遇到這樣的問題,這個時候你可以修改 /etc/elasticsearch 路徑下的 jvm.options 檔案,來調整 elasticsearch 的 jvm 虛擬機配置,之后重啟就可以了
至此,就完成了 elasticsearch 和 kibana 的安裝,后續也就可以基于 elasticsearch 來實作一些功能,另,對于權限相關的管控以及如何基于實際的需求來實作一些功能,則在后面不定期的文章中進行體現
2.4、注意
公網直接開放 9200 埠、5601 埠很危險,請謹慎操作,謹慎操作!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/580.html
標籤:其他
上一篇:python+requests 搭建api自動化測驗框架
下一篇:rtmp規范1.0全面指南
