手摸手 Elastic Stack 使用教程 - 環境安裝


前言

在日常的開發中,會涉及到對一些中間件以及基礎組件的使用,日志匯總分析、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

啟動 elasticsearch

啟動之后,可以在服務器上通過 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

遠程訪問 elasticsearch 服務

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

因為 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

在重新啟動 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 端口很危險,請謹慎操作,謹慎操作!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM