微服务组件记事本:本地搭建Skywalking
最近一直在研究微服務,完全避免不了的是各種中間件的使用,打算把過程簡要記錄下來,過程很簡單,也不會有原理和源代碼級別的講解,只是做下簡單的知識備份。
今天開始研究下鏈路追蹤Skywalking,還記得之前在《老張的另一個開源項目——Ancba招募令》的項目中,也用到了鏈路追蹤的組件——Zipkin,不過還是感覺比較簡單了些,主要是日志級別的,如果比較復雜的就不好辦了,所以打算研究下Skywalking,也集成到項目中。
(Zipkin在Ancba項目中的示例)
本次示例先從本地開始,都是基于Docker來操作的,所以必須安裝DockerDesktop環境,相關的安裝和K8s服務,可以看我這篇文章《本地搭建K8s環境,并配置Ingress代理
安裝 ElasticSearch
執行安裝命令:
docker?run?--name?elasticsearch?\ -p?9200:9200?-p?9300:9300??\ -e?"discovery.type=single-node"?\ -e?ES_JAVA_OPTS="-Xms512m?-Xmx512m"?\ -d?elasticsearch:6.8.19有三點需要注意:
這里為了演示,設置為單節點了。
測試環境,設置初始內存和最大內存,防止啟動ES失敗。
采用的是es6版本(不是前端的那個es),最新的是es7,不過下邊安裝skywalking的es7的時候啟動失敗,所以采用了es6版本。
安裝es是為了配合Skywalking,也不是必須的,Skywalking也有內存模式。
訪問http://localhost:9200,效果如下:
安裝?Kibana
既然安裝好了ElasticSearch,就需要一個看板,可以使用Chrome的一個插件——ElasticSearch Head,界面是真的不太好看,不過也能使用,這里就推薦使用Kibana。
執行安裝命令:
docker?run?-d?--name?kibana?-p?5601:5601?\ -v?D:/Code/ark/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml?\ kibana:6.8.0這里掛載了一個yml配置文件,是為了配置上文我們設置好的ElasticSearch信息。
# Default Kibana configuration for docker target server.name: kibana server.host: "0" elasticsearch.hosts: [ "http://192.168.1.7:9200" ] elasticsearch.username: "name" elasticsearch.password: "password" xpack.monitoring.ui.container.elasticsearch.enabled: true當然也可以不用指定yml,指定下具體的host就行了,本地ip地址:
因為Kibana訪問的就是elasticsearch的host:
安裝完的效果是這樣:
安裝 Skywalking
直接執行容器命令:
docker run --name skywalking-oap --restart always \ -p 11800:11800 -p 12800:12800 -d \ --link elasticsearch:elasticsearch \ -e SW_STORAGE=elasticsearch \ -e SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200 \ apache/skywalking-oap-server:8.3.0-es6還是要注意幾點:
這里是配置了es存儲的模式,也可以直接內存模式,去掉345那三行就行。
oap的版本要和es的版本統一,用es6。
這里如果直接訪問11800/12800可能會沒效果或者報錯,忽略它,直接按照UI來看看效果。
安裝?Skywalking-UI
執行安裝命令:
docker?run?--name?skywalking-ui?--restart?always?\ -p?8080:8080?\ --link?skywalking-oap:skywalking-oap?\ -e?SW_OAP_ADDRESS=skywalking-oap:12800?\ -d?apache/skywalking-ui:8.3.0同樣要注意幾點:
需要配置上skywalking的容器名,就是第三行。
ui的版本也盡量和oap的版本統一。
最后的效果如圖:
這里目前還沒有任何數據,下篇我們將說說,如何進行真實的服務中鏈路追蹤操作。
總結
以上是生活随笔為你收集整理的微服务组件记事本:本地搭建Skywalking的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dapr牵手.NET学习笔记:可观测性-
- 下一篇: 【另类见解】那些要保证缓存和数据库数据一