《騰訊雲 x Elasticsearch三週年》活動來了。文章寫之前的思路是:在騰訊雲伺服器使用docker搭建ES。但是理想很豐滿,顯示很骨感,在操作過程中一波三折,最後還是含著淚美滋滋地,白嫖了一個月的騰訊雲ES服務。
最後就是利用騰訊雲的Elasticsearch和Kibana,和我在騰訊雲伺服器上搭建MySQL進行了一波聯動,完成了資料庫內部指標的展示。
<伺服器搭建ES> 部分只用作記錄,可以忽略直接看 <騰訊雲領取ES的活動> 進行後續操作。
本來想自己編寫dockerfile生成映象,沒成想ES官網提供了docker映象,這裡就使用官方映象,操作檔案參考連結:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.6.2
# 在 /etc/sysctl.conf 末尾新增
vm.max_map_count=262144
修改之後重啟或者使用以下命令使其生效:
/sbin/sysctl -p
# 在 /etc/security/limits.conf 末尾新增
* soft nofile 65536
* hard nofile 65536
docker我也是提前安裝好了,可以參考我之前的文章
yum -y install docker-ce
如果安裝叢集,還需要安裝docker-compose,官網提供了此種安裝方式,但是我的服務記憶體實在太小,嘗試幾次之後就果斷放棄了。
啟動ES的時候,會自動啟用安全認證設定,包括:
# 建立es網路
docker network create elastic
# 啟動單節點ES
docker run --name es01 --net elastic -p 9200:9200 -it docker.elastic.co/elasticsearch/elasticsearch:8.6.2
在啟動單節點ES的時候,終端會列印一個使用者密碼(使用者名稱:elastic),和一個註冊Kibana用的token。因為只會在第一次啟動時輸出,所以要儲存好。
這裡使用的是前臺啟動,在儲存好密碼之後,再使用docker start後臺啟動容器。
執行命令將http_ca.crt拷貝到宿主機。
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .
使用下載的安全證書和使用者密碼存取ES服務。
curl --cacert http_ca.crt -u elastic https://localhost:9200
至此,ES搭建完成。
測試外網無法存取伺服器中的ES,需要修改以下設定:
# /etc/sysctl.conf 預設為0,修改成1
net.ipv4.ip_forward = 1
重啟網路和es:
systemctl restart network
docker restart es01
這樣就可以外網存取到ES了。
docker pull docker.elastic.co/kibana/kibana:8.6.2
docker run --name kib-01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.6.2
啟動Kibana的時候會輸出一個地址,去瀏覽器中設定。
複製ES啟動時生成的token填入。
token過期了,可以再生成一個。
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
花了老大的勁才忙活到這兒,™然後啟動kibana就CPU狂飆,丐版伺服器終究錯付。搞了一下午無果,決定還是去騰訊雲看看能不能白嫖。
果然到有ES白嫖一月的活動,嗚嗚嗚嗚。覺得自己是個鐵憨憨。
購買付款。
兩分鐘完事兒,進入控制檯。
可以看到叢集已經分配好,查詢叢集架構可以發現一共三個ES、一個Kibana。
在視覺化設定中新增本機的IP到白名單,就可以存取Kibana。
點選公網存取地址,進入Kibana。
在Kibana首頁,進入 Add data,可以新增很多種類資料來源。這裡挑選進行操作
選擇 MySQL metrics,這個可以獲取MySQL的內部指標。首先下載metricbeat。然後根據官方步驟完成設定:
官方操作檔案:
資料載入完成之後,點選check data 會提示資料成功接收。
在Kibana首頁找到Dashboard。
選擇匯入的MySQL指標資料。
如圖,MySQL各種指標就展示出來了。
在控制檯點選幾下,就完成了一下午的工作量,不得不感嘆SaaS有點東西。如果對Elasticsearch和Kibana有興趣的,在騰訊雲白嫖一個挺合適的。