日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【云原生 | Kubernetes 系列】---Skywalking部署和监控

發布時間:2024/3/13 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【云原生 | Kubernetes 系列】---Skywalking部署和监控 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【云原生 | Kubernetes 系列】—Skywalking部署和監控

1. 分布式鏈路追蹤概念

在較大的web集群和微服務環境中,客戶端的一次請求可能需要經過多個不同的模塊,多個不同中間件,多個不同的機器一起相互協作才能處理完成客戶端請求,而在這一系列的請求過程之中,處理流程可能是串行執行,也可能是并行執行.那么如何確定客戶端的一次請求到結束背后究竟調用了哪些應用以及哪些模塊并經過了哪些節點,并且每個模塊的調用先后順序是怎么樣的,每個模塊的處理響應性能如何?后期隨著業務系統的不斷增多,業務處理邏輯會越來越復雜,而分布式系統中急需要一套鏈路追蹤(Trace)系統來解決這個問題,從而讓運維人員對整個業務系統一目了然,了如指掌.

分布式服務追蹤系統是整個分布式系統中跟蹤一個用戶請求的完整過程,包過數據采集,數據傳輸,數據存儲,數據分析和數據可視化,獲取并存儲和分享此類追蹤可以讓運維清晰了解用戶請求與業務系統交互背后的整個調用鏈的調用關系,鏈路追蹤系統是針對調試和監控微服務不可或缺的幫手

Dapper是google 2008年開始內部使用的鏈路追蹤系統.

2. Dapper采集

分布式追蹤方法:

  • 黑盒法(black-box)

    無需任何侵入代碼,它的優勢在于無需修改代碼,缺點在于記錄不是很精確,且需要大量數據才能推導出服務間的關系.

  • 標記法(annotation-based)
    需要為每個請求打標記,并通過一個全局標識符將請求途徑的所有服務信息串聯,復盤整個鏈路,標記法記錄準確,但他的缺點也很明顯,需要將標記代碼注入到每個服務中.

  • Span代表系統中具有開始時間和執行時長的請求跨度,span之間通過嵌入或者順序排列建立邏輯因果關系.
    任何一個Span可以包含來自不同的主機信息,這些也要記錄下來.事實上每一個RPC Span可以包含客戶端和服務器兩個過程注釋.由于客戶端和服務器上的時間戳來自不同主機,還必須考慮到時間偏差,在分析工具就利用了時間偏差,即RPC客戶端發送一個請求之后服務端才能收到,對應響應也是一樣的.這樣一來服務器的RPC就有一個時間戳的一個開始和結束,然后就計算出時間消耗.

    Dapper跟蹤記錄和收集管道的過程分為三階段:

  • span數據寫入本地日志文件中
  • Dapper守護進程和收集組件把這些數據從生產環境的主機中進行讀取
  • 最終寫入Dapper的數據倉庫中
  • 一個跟蹤被設計成Bigtable中的一行,每一列相當于一個Span.Bigtable的支持稀疏表格布局正適合這種情況,因為每一次跟蹤可以有任意多個span.

    Dapper資源占用很小
    Dapper守護進程CPU使用率從來沒超過0.3%單核CPU.而且只有少量的內存使用,另外還限制了Dapper守護進程內核scheduler最低的優先級,以防在一臺高負載的服務器上發生cpu競爭.
    一個span在倉庫傳輸中占用平均426byte

    2.1 Dapper應用場景

  • 性能分析: 對請求延遲的目標進行跟蹤,并對容易優化的地方進行定位.
  • 正確性分析: 發現一些只讀請求,應該是訪問從庫但卻訪問了主庫等類似業務場景.
  • 理解系統: 全局優化系統,理解每個查詢的整體代價
  • 測試新版本: 發現新版本的bug和性能問題.
  • 解決依賴關系: 找到服務之間的依賴關系.
  • 3. 分布式鏈路系統APM

    APM系統(Application Performance Management)性能管理系統

    早起APM功能主要在監控CPU,內存,IO,網絡等資源上
    微服務興起后,系統功能被模塊化,再加上k8s與容器化的興起及應用數據量的爆炸式增長,各模塊和服務之間的調用鏈路,響應時間,負載等越來越不好通過傳統的工具進行監控和統計,此時APM系統誕生了.

    4. Skywalking 特點

    實現從請求跟蹤,指標收集和日志記錄的完整信息記錄

    多語言自動探針,支持java,go,python,php,nodejs,Lua,Rust等客戶端

    內置服務器網絡可觀察性,支持從Istio+Envoy Service Mesh收集和分析數據

    模塊化架構,存儲,集群管理,使用插件集合都可以進行自由選擇.

    支持告警.

    優秀的可視化效果.

    4.1 Skywalking組件

    OAP平臺(Observability Analysis Platform,可觀測性分析平臺)或OAP Server,它是一個高度組件化的輕量級分析程序,由兼容各種探針Receiver,流式分析內核和查詢內核三部分構成.

    探針: 基于無侵入式的收集,并通過HTTP或者gRPC方式發送數據到OAP Server

    存儲實現(Sotrage Implementors)SkyWalking OAP Server支持多種存儲實現并且提供了標準接口,可支持不同的存儲后端.

    UI模塊(Skywalking)通過標準的GraphQL(Facebook 2012年開源)協議進行統計數據查詢和展示.

    面向協議設計: 面向協議設計時SkyWalking從5.X開始嚴格遵守的首要設計原則,組件之間使用標準的協議進行數據交互

    4.2 SkyWalking協議

    協議有探針協議和查詢協議

    探針協議:

    探針上報協議: 協議包括語言探針的注冊,Metrics數據上報,Tracing數據上報等標準,Java,Go等探針都需要嚴格遵守此協議的標準.

    探針交互協議:因為分布式追蹤環境,探針間需要借助HTTP Header,MQ Header在應用之間進行通信和交互,探針交互協議就定義了交互的數據格式

    Service Mesh 協議: 是SkyWalking對Service Mesh抽象的專有協議,任何Mesh類的服務都可以通過此協議直接上傳指標數據,用于計算服務的指標數據和繪制拓撲圖.

    第三方協議: 對大型的第三方開源項目尤其是Service Mesh核心平臺Istio和Envoy,提供核心協議適配,支持針對Istio+Envoy Service Mesh進行無縫對接.

    查詢協議:

    元數據查詢: 查詢在skywalking注冊的服務,服務實例,Endpoint等元數據信息.

    拓撲關系查詢: 查詢全局,或單個服務,Endpoint的拓撲圖及依賴關系.

    Metrics指標查詢:區間范圍均值查詢及Top N排名查詢等.

    Trace查詢: 追蹤數據的明細查詢.

    告警查詢: 基于表達式,判斷指標數據是否超出閾值.

    4.3 SkyWalking模塊

    模塊化設計:

    - 探針負責收集數據 - 前端負責展示數據 - OAP Server負責從后端存儲讀寫數據 - 后端存儲負責持久化數據

    輕量化設計:

    ? SkyWalking在設計之初就提出了輕量化的設計理念,skywalking使用最輕量級的jar包模式,實現強大的數據處理和分析能力,可擴展能力和模塊化能力

    4.4 SkyWalking優勢

    SkyWalking優勢:

  • 兼容性好: 支持傳統的分布式部署架構dubbo和spring cloud,也支持云原生中的Istio和Envoy
  • 易于部署和后期維護:組件化,可自定義部署,后期橫向擴容簡單.
  • 高性能:每天數T的數據無壓力
  • 易于二次開發:標準的http和grpc協議,開源的項目,企業可以自主二次開發.
  • 5. SkyWalking部署

    服務器名IP地址服務端口作用
    skywalking-oap192.168.31.23211800(寫),12800(讀)OAP觀測性分析平臺Server端
    es-1192.168.31.419200ES數據庫Version: 7.12.1
    es-2192.168.31.429200ES數據庫Version: 7.12.1
    es-3192.168.31.439200ES數據庫Version: 7.12.1
    zookeeper-1192.168.31.1212181zookeeper節點
    zookeeper-2192.168.31.1222181zookeeper節點
    zookeeper-3192.168.31.1232181zookeeper節點
    django192.168.31.23180django服務端

    創建skywalking工作目錄及下載skywalking

    mkdir /apps && cd /apps wget https://dlcdn.apache.org/skywalking/9.2.0/apache-skywalking-apm-9.2.0.tar.gz tar xf apache-skywalking-apm-9.2.0.tar.gz apt install openjdk-11-jdk -y ## 確認jdk安裝版本正確 root@skywalking-oap:/apps# java --version openjdk 11.0.16 2022-07-19 OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04) OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode, sharing)

    5.2 配置skywalking

    cd /apps/apache-skywalking-apm-bin vim config/application.yml

    修改133行和136行,指定elasticsearch為數據庫及elasticsearch的集群地址

    storage:selector: ${SW_STORAGE:elasticsearch}elasticsearch:namespace: ${SW_NAMESPACE:""}## 單機ES## clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.31.41:9200}## ES集群多個ip用逗號,分割clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.31.41:9200,192.168.31.42:9200,192.168.31.43:9200}

    其他幾個重要參數

    # 配置你的elasticsearch服務的IP和端口,集群IP請用“,”逗號隔開 clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.31.41:9200} clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:192.168.31.41:9200,192.168.31.42:9200,192.168.31.43:9200} #存儲最多7天的內容,過期數據將會清理。因此請根據實際需求進行調整recordDataTTL: ${SW_STORAGE_ES_RECORD_DATA_TTL:7} # Unit is day# 每10秒刷新數據到收集器中flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}# 提供2個并發請求,如果系統業務量大,日志產生的非???#xff0c;請根據實況調整concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}

    5.3 啟動skywalking

    啟動skywalking服務

    # /apps/apache-skywalking-apm-bin/bin/startup.sh SkyWalking OAP started successfully! SkyWalking Web Application started successfully!

    確認skywalk是否正常啟動,如果正常啟動會在es數據庫里創建數據.



    skywalking正常啟動后監聽8080端口
    可以通過192.168.31.232:8080訪問skywalking

    6. 監控案例

    6.1 單體jar包監控

    6.1.1 Halo 環境準備

    Halo需要jdk11以上版本

    yum install -y java-11-openjdk mkdir /apps/halo -p && cd /apps/halo curl -L https://github.com/halo-dev/halo/releases/download/v1.5.4/halo-1.5.4.jar --output halo.jar cd /apps wget https://dlcdn.apache.org/skywalking/java-agent/8.12.0/apache-skywalking-java-agent-8.12.0.tgz tar xf apache-skywalking-java-agent-8.12.0.tgz vi /apps/skywalking-agent/config/agent.config

    6.1.2 配置skywalking agent

    修改/apps/skywalking-agent/config/agent.config配置

    # The group name is optional only. # 在UI顯示,服務的名字 agent.service_name=${SW_AGENT_NAME:Halo}# The agent namespace # 不顯示,一般是所屬項目 agent.namespace=${SW_AGENT_NAMESPACE:Qiu}# Backend service addresses. # skywalk server 地址 collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.31.232:11800}

    啟動服務

    java -javaagent:/apps/skywalking-agent/skywalking-agent.jar -jar /apps/halo/halo.jar

    如果是容器可以

    java -javaagent:/apps/skywalking-agent/skywalking-agent.jar \ -DSW_AGENT_NAMESPACE=Qiu\ -DSW_AGENT_NAME=Halo\ -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.31.232:11800\ -jar /apps/halo/halo.jar

    6.1.3 配置halo 環境

    6.1.4 訪問測試

    測試發幾個博客 nodeip:8090/admin/

    此時SkyWalking可以看到有流量數據

    6.1.5 儀表盤

    Apdex(應用性能指數),是由Apdex聯盟開放的用于評估應用性能的標準,Apdex聯盟起源于2004年,Apdex標準從用戶的角度發出,提供了一個統一的測量和報告用戶體驗的方法,將其量化為范圍0-1的滿意度評價,把最終用戶體驗和應用性能作為一個完整的指標進行統一度量.

    在網絡中運行的一個應用服務,它的響應時間決定了用戶的滿意程度,用戶等待所有交互完整時間的長短直接影響了用戶對應用的滿意程度,這才是對用戶有真正意義的"響應時間",Apdex把完成這樣一個任務所用的時間長短稱為應用的"響應性"

    Apdex定義了應用響應時間的最優門檻為T,根據應用響應時間結合T定義了三種不同的性能表現:

  • 滿意:應用響應時間小于或等于Apdex閾值,比如Apdex閾值為1s,則一個耗時0.6s或者1s的響應結果則可以認為是滿意的.
  • 可容忍:應用響應時間大于Apdex閾值,但小于或等于4倍的Apdex閾值,假設Apdex閾值是1s,那么可容忍值就是4s,稱為響應時間容忍上限
  • 煩躁期: 應用響應時間大于4倍的Apdex閾值
  • 服務:表示對請求提供相同行為的一系列或一組工作負載(服務名稱),在使用Agent或者SDK的時候,可以定義服務的名字,如果不定義的話,SkyWalking將會使用你平臺上定義的名字.

    服務實例:上述的一組工作負載中的每一個工作負載稱為一個實例(一個服務運行的節點),一個服務實例可以是一個kubernetes中的pod或者是一個虛擬機甚至于物理機.

    端點:對于特定服務所接收的請求路徑,如http的rui路徑和rpc服務的類+方法簽名,如/api/v1/

    6.2 Tomcat 環境監控

    6.2.1 安裝環境

    mkdir /apps ## 下載apache-tomcat-8.5.73.tar.gz,apache-skywalking-java-agent-8.12.0.tgz和jenkins.war(2.319.2) tar xf apache-tomcat-8.5.73.tar.gz ln -sf /apps/apache-tomcat-8.5.73 /apps/tomcat mv jenkins.war tomcat/webapps/ tar xf apache-skywalking-java-agent-8.12.0.tgz

    SkyWalking-agent依然配置以下3行
    skywalking-agent/config/agent.config

    agent.service_name=${SW_AGENT_NAME:Jenkins} agent.namespace=${SW_AGENT_NAMESPACE:Qiu} collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.31.232:11800}

    配置tomcat啟動文件

    vi /apps/tomcat/bin/catalina.sh

    追加以下行 用以加載SkyWalking-agent 125行插入

    JAVA_OPTS="$JAVA_OPTS -javaagent:/apps/skywalking-agent/skywalking-agent.jar"

    6.2.2 啟動tomcat

    [root@centos-18 apps]# /apps/tomcat/bin/startup.sh Using CATALINA_BASE: /apps/tomcat Using CATALINA_HOME: /apps/tomcat Using CATALINA_TMPDIR: /apps/tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /apps/tomcat/bin/bootstrap.jar:/apps/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: -javaagent:/apps/skywalking-agent/skywalking-agent.jar Tomcat started. [root@centos-18 apps]# ss -ntl|grep 8080 LISTEN 0 100 *:8080 *:*

    此時訪問skywalking-ui

    6.3 微服務監控

    6.3.1 生產者

    上傳dubbo-demo-provider-2.1.5-assembly.tar.gz

    tar xf dubbo-demo-provider-2.1.5-assembly.tar.gz vi /apps/dubbo-demo-provider-2.1.5/conf/dubbo.properties # 配置zookeeper連接 ## 單個zookeeper ## dubbo.registry.address=zookeeper://192.168.31.122:2181 ## zookeeper集群 dubbo.registry.address=zookeeper://192.168.31.122:2181?backup=192.168.31.121:2181,192.168.31.123:2181

    配置skywalking-agent
    vi skywalking-agent/config/agent.config

    agent.service_name=${SW_AGENT_NAME:dubbo-provider} agent.namespace=${SW_AGENT_NAMESPACE:Qiu} collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.31.232:11800}

    運行生產者

    java -javaagent:/apps/skywalking-agent/skywalking-agent.jar -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC -classpath /apps/dubbo-demo-provider-2.1.5/conf:/apps/dubbo-demo-provider-2.1.5/lib/cache-api-0.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-codec-1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-logging-1.1.1.jar:/apps/dubbo-demo-provider-2.1.5/lib/commons-pool-1.5.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-demo-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/dubbo-demo-provider-2.1.5.jar:/apps/dubbo-demo-provider-2.1.5/lib/fastjson-1.1.8.jar:/apps/dubbo-demo-provider-2.1.5/lib/gmbal-api-only-3.0.0-b023.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-core-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-framework-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-portunif-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/grizzly-rcm-2.1.4.jar:/apps/dubbo-demo-provider-2.1.5/lib/hessian-4.0.7.jar:/apps/dubbo-demo-provider-2.1.5/lib/hibernate-validator-4.2.0.Final.jar:/apps/dubbo-demo-provider-2.1.5/lib/httpclient-4.1.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/httpcore-4.1.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/javassist-3.15.0-GA.jar:/apps/dubbo-demo-provider-2.1.5/lib/jedis-2.0.0.jar:/apps/dubbo-demo-provider-2.1.5/lib/jetty-6.1.26.jar:/apps/dubbo-demo-provider-2.1.5/lib/jetty-util-6.1.26.jar:/apps/dubbo-demo-provider-2.1.5/lib/jline-0.9.94.jar:/apps/dubbo-demo-provider-2.1.5/lib/log4j-1.2.16.jar:/apps/dubbo-demo-provider-2.1.5/lib/management-api-3.0.0-b012.jar:/apps/dubbo-demo-provider-2.1.5/lib/mina-core-1.1.7.jar:/apps/dubbo-demo-provider-2.1.5/lib/netty-3.2.5.Final.jar:/apps/dubbo-demo-provider-2.1.5/lib/servlet-api-2.5-20081211.jar:/apps/dubbo-demo-provider-2.1.5/lib/slf4j-api-1.6.2.jar:/apps/dubbo-demo-provider-2.1.5/lib/spring-2.5.6.SEC03.jar:/apps/dubbo-demo-provider-2.1.5/lib/validation-api-1.0.0.GA.jar:/apps/dubbo-demo-provider-2.1.5/lib/zookeeper-3.3.3.jar: com.alibaba.dubbo.container.Main

    啟動成功

    [3.057s][warning][exceptions] Class com.alibaba.dubbo.common.URL in throws clause of method com.alibaba.dubbo.remoting.Client com.alibaba.dubbo.remoting.Transporter_Adpative.connect(com.alibaba.dubbo.common.URL, com.alibaba.dubbo.remoting.ChannelHandler) is not a subtype of class java.lang.Throwable [2022-09-09 23:49:58] Dubbo service server started!

    6.3.2 消費者

    上傳dubbo-demo-consumer-2.1.5-assembly.tar.gz

    tar xf dubbo-demo-consumer-2.1.5-assembly.tar.gz vi dubbo-demo-consumer-2.1.5/conf/dubbo.properties ## 配置zookeeper地址 dubbo.registry.address=zookeeper://192.168.31.122:2181?backup=192.168.31.121:2181,192.168.31.123:2181

    配置skywalking-agent
    vi skywalking-agent/config/agent.config

    agent.service_name=${SW_AGENT_NAME:dubbo-consumer} agent.namespace=${SW_AGENT_NAMESPACE:Qiu} collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:192.168.31.232:11800}

    啟動consumer

    java -javaagent:/apps/skywalking-agent/skywalking-agent.jar -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xms1024m -Xmx1024m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC -classpath /apps/dubbo-demo-consumer-2.1.5/conf:/apps/dubbo-demo-consumer-2.1.5/lib/cache-api-0.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/commons-codec-1.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/commons-logging-1.1.1.jar:/apps/dubbo-demo-consumer-2.1.5/lib/commons-pool-1.5.5.jar:/apps/dubbo-demo-consumer-2.1.5/lib/dubbo-2.1.5.jar:/apps/dubbo-demo-consumer-2.1.5/lib/dubbo-demo-2.1.5.jar:/apps/dubbo-demo-consumer-2.1.5/lib/dubbo-demo-consumer-2.1.5.jar:/apps/dubbo-demo-consumer-2.1.5/lib/fastjson-1.1.8.jar:/apps/dubbo-demo-consumer-2.1.5/lib/gmbal-api-only-3.0.0-b023.jar:/apps/dubbo-demo-consumer-2.1.5/lib/grizzly-core-2.1.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/grizzly-framework-2.1.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/grizzly-portunif-2.1.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/grizzly-rcm-2.1.4.jar:/apps/dubbo-demo-consumer-2.1.5/lib/hessian-4.0.7.jar:/apps/dubbo-demo-consumer-2.1.5/lib/hibernate-validator-4.2.0.Final.jar:/apps/dubbo-demo-consumer-2.1.5/lib/httpclient-4.1.2.jar:/apps/dubbo-demo-consumer-2.1.5/lib/httpcore-4.1.2.jar:/apps/dubbo-demo-consumer-2.1.5/lib/javassist-3.15.0-GA.jar:/apps/dubbo-demo-consumer-2.1.5/lib/jedis-2.0.0.jar:/apps/dubbo-demo-consumer-2.1.5/lib/jetty-6.1.26.jar:/apps/dubbo-demo-consumer-2.1.5/lib/jetty-util-6.1.26.jar:/apps/dubbo-demo-consumer-2.1.5/lib/jline-0.9.94.jar:/apps/dubbo-demo-consumer-2.1.5/lib/log4j-1.2.16.jar:/apps/dubbo-demo-consumer-2.1.5/lib/management-api-3.0.0-b012.jar:/apps/dubbo-demo-consumer-2.1.5/lib/mina-core-1.1.7.jar:/apps/dubbo-demo-consumer-2.1.5/lib/netty-3.2.5.Final.jar:/apps/dubbo-demo-consumer-2.1.5/lib/servlet-api-2.5-20081211.jar:/apps/dubbo-demo-consumer-2.1.5/lib/slf4j-api-1.6.2.jar:/apps/dubbo-demo-consumer-2.1.5/lib/spring-2.5.6.SEC03.jar:/apps/dubbo-demo-consumer-2.1.5/lib/validation-api-1.0.0.GA.jar:/apps/dubbo-demo-consumer-2.1.5/lib/zookeeper-3.3.3.jar: com.alibaba.dubbo.container.Main

    啟動完畢

    [16:02:12] Hello world0, response form provider: 192.168.31.18:20880 [16:02:14] Hello world1, response form provider: 192.168.31.18:20880 [16:02:16] Hello world2, response form provider: 192.168.31.18:20880 [16:02:18] Hello world3, response form provider: 192.168.31.18:20880

    6.4 Python環境監控

    6.4.1 安裝依賴

    # Install the latest version pip apt install python3 pip3 -y# Install the latest version, using the default gRPC protocol to report data to OAP pip install "apache-skywalking"

    6.4.2 測試django程序

    安裝django依賴包

    # cat requirements.txt apache-skywalking==0.7.0 asgiref==3.4.1 backports.zoneinfo==0.2.1 Django==4.0.1 grpcio==1.43.0 grpcio-tools==1.43.0 packaging==21.3 protobuf==3.19.3 PyMySQL==1.0.2 pyparsing==3.0.6 six==1.16.0 sqlparse==0.4.2 wrapt==1.13.3 # pip3 install -r requirements.txt Successfully installed Django-4.0.1 PyMySQL-1.0.2 apache-skywalking-0.7.0 asgiref-3.4.1 backports.zoneinfo-0.2.1 grpcio-1.43.0 grpcio-tools-1.43.0 protobuf-3.19.3 pyparsing-3.0.6 six-1.16.0 sqlparse-0.4.2 wrapt-1.13.3

    啟動django項目

    # django-admin startproject mysite # cd mysite # python3 manage.py startapp myapp # python3 manage.py migrate ## 創建超級用戶 # python3 manage.py createsuperuser Username (leave blank to use 'root'): root Email address: root@root.cn Password: Password (again): The password is too similar to the username. This password is too short. It must contain at least 8 characters. Bypass password validation and create user anyway? [y/N]: y Superuser created successfully.

    6.4.3 Django寫skywalking配置

    ## 聲明環境變量 # export SW_AGENT_NAME='python-app1' # export SW_AGENT_NAMESPACE='python-app1' # export SW_AGENT_COLLECTOR_BACKEND_SERVICES='192.168.31.232:11800'

    6.4.4 啟動django

    # 修改配置文件 # vi mysite/settings.py ALLOWED_HOSTS = ['192.168.31.231'] # 啟動服務 # sw-python -d run python3 manage.py runserver 192.168.31.231:80

    這樣就可以訪問 192.168.31.231:80

    此時skywalking里就有數據了

    總結

    以上是生活随笔為你收集整理的【云原生 | Kubernetes 系列】---Skywalking部署和监控的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。