skywalking --部署叽赊、使用恋沃、告警、日志集成

skywalking使用

初識

Skywalking是一個可觀測性分析平臺(Observability Analysis Platform簡稱OAP) 和應(yīng)用性能管理系統(tǒng)(Application Performance Management簡稱APM)必指。

  • 提供分布式鏈路追蹤囊咏、服務(wù)網(wǎng)格(Service Mesh)遙測分析、度量(Metric)聚合和可視化一體化解決方案

特點

多語言自動探針塔橡,Java梅割,.NET Core和Node.JS。
多種監(jiān)控手段葛家,語言探針和service mesh户辞。
輕量高效。不需要額外搭建大數(shù)據(jù)平臺癞谒。
模塊化架構(gòu)底燎。UI刃榨、存儲、集群管理多種機(jī)制可選书蚪。
支持告警喇澡。
優(yōu)秀的可視化效果。

架構(gòu)

  • 探針(agent)負(fù)責(zé)進(jìn)行數(shù)據(jù)的收集殊校,包含了Tracing和Metrics的數(shù)據(jù)晴玖,agent會被安裝到服務(wù)所在的 服務(wù)器上,以方便數(shù)據(jù)的獲取为流。
  • 可觀測性分析平臺OAP(Observability Analysis Platform)呕屎,接收探針發(fā)送的數(shù)據(jù),并在內(nèi)存中使用分析引擎(Analysis Core)進(jìn)行數(shù)據(jù)的整合運(yùn)算敬察,然后將數(shù)據(jù)存儲到對應(yīng)的存儲介質(zhì)上秀睛,比如 Elasticsearch、MySQL數(shù)據(jù)庫莲祸、H2數(shù)據(jù)庫等蹂安。同時OAP還使用查詢引擎(Query Core)提供HTTP查 詢接口。
  • Skywalking提供單獨(dú)的UI進(jìn)行數(shù)據(jù)的查看锐帜,此時UI會調(diào)用OAP提供的接口田盈,獲取對應(yīng)的數(shù)據(jù)然后進(jìn)行展示

概念

  • 端點就是對外提供的接口,例如用戶服務(wù)對外提供的HTTP接口/usr/queryAll就是一個端點

一缴阎、skywalking在kubesphere上的部署

1允瞧、oap-server部署

  • 使用鏡像 core.harbor.domain:32388/library/skywalking-oap-server:8.6.0-es7

  • 在kubesphere上創(chuàng)建配置文件 application.yml

  • 修改config/application.yml

    • 將storage:中selector:設(shè)置為elasticsearch7
    • 在elasticsearch7:中,根據(jù)實際情況蛮拔,修改clusterNodes等信息


      image.png
  • 創(chuàng)建elasticsearch服務(wù)

    • 在kubesphere上創(chuàng)建配置文件 elasticsearch.yml
    • elasticsearch.yml修改clusterNodes等信息(對應(yīng)上文)
  • 創(chuàng)建oap-server服務(wù)和工作負(fù)載述暂,配置上application.yml

2、ui 界面部署

  • 使用鏡像 core.harbor.domain:32388/library/skywalking-ui:8.6.0
  • 創(chuàng)建oap-server服務(wù)和工作負(fù)載建炫,配置環(huán)境變量
    • collector.ribbon.listOfServers: skywalking-oap-server.nobody:12800 //指向前面部署的oap-server

3畦韭、項目集成agent Jar包

  • 將skywalking拷貝到kubesphere的宿主機(jī)上, skywalking/agent/skywalking-agent.jar

  • 在服務(wù)上掛載使用主機(jī)地址 hostPath: path: /var/local/skywalking(即skywalking文件夾地址)
    image.png
  • 環(huán)境變量添加

    • name: JAVA_TOOL_OPTIONS
    • value: ' -javaagent:/maven/skywalking/agent/skywalking-agent.jar -Dskywalking.agent.service_name=zuul //服務(wù)名稱,在ui界面顯示 -Dskywalking.collector.backend_service=skywalking-oap-server.nobody:11800' //server地址

二肛跌、skywalking界面功能介紹

  • 儀表盤:查看被監(jiān)控服務(wù)的運(yùn)行狀態(tài)

    • 服務(wù)維度


      image.png
      • Service Apdex(數(shù)字):當(dāng)前服務(wù)的評分 Service Apdex(折線圖):不同時間的Apdex評分 Successful Rate(數(shù)字):請求成功率 Successful Rate(折線圖):不同時間的請求成功率 Servce Load(數(shù)字):每分鐘請求數(shù) Servce Load(折線圖):不同時間的每分鐘請求數(shù) Service Avg Response Times:平均響應(yīng)延時廊驼,單位ms Global Response Time Percentile:百分比響應(yīng)延時 Servce Instances Load:每個服務(wù)實例的每分鐘請求數(shù) Show Service Instance:每個服務(wù)實例的最大延時 Service Instance Successful Rate:每個服務(wù)實例的請求成功率
    • 服務(wù)實例維度


      image.png
      • Service Instance Load:當(dāng)前實例的每分鐘請求數(shù)
        Service Instance Successful Rate:當(dāng)前實例的請求成功率
        Service Instance Latency:當(dāng)前實例的響應(yīng)延時
        JVM CPU:jvm占用CPU的百分比
        JVM Memory:JVM內(nèi)存占用大小,單位m
        JVM GC Time:JVM垃圾回收時間惋砂,包含YGC和OGC JVM GC Count:JVM垃圾回收次數(shù)妒挎,包含YGC和OGC
    • 端點維度


      image.png
      • Endpoint Load in Current Service:每個端點的每分鐘請求數(shù)
        Slow Endpoints in Current Service:每個端點的最慢請求時間,單位ms
        Successful Rate in Current Service:每個端點的請求成功率
        Endpoint Load:當(dāng)前端點每個時間段的請求數(shù)據(jù) Endpoint Avg Response Time:當(dāng)前端點每個時間段的請求行響應(yīng)時間
        Endpoint Response Time Percentile:當(dāng)前端點每個時間段的響應(yīng)時間占比
        Endpoint Successful Rate:當(dāng)前端點每個時間段的請求成功率
  • 拓?fù)鋱D:以拓?fù)鋱D的方式展現(xiàn)服務(wù)關(guān)系

  • 追蹤:追蹤接口內(nèi)部調(diào)用過程

    • 左側(cè):api接口列表西饵,紅色-異常請求酝掩,藍(lán)色-正常請求
    • 右側(cè):api追蹤列表,api請求連接各端點的先后順序和時間
  • 性能剖析:單獨(dú)端點進(jìn)行采樣分析眷柔,并可查看堆棧信息

  • 告警:觸發(fā)告警的告警列表期虾,包括實例原朝,請求超時等

界面介紹 參考鏈接

三、skywalking告警

  • 在kubesphere上創(chuàng)建配置文件 alarm-settings.yml
  • 編輯alarm-settings.yml
rules:
  # 規(guī)則唯一名稱镶苞,必須以'_rule'結(jié)尾.
  service_resp_time_rule:
    # 度量名稱喳坠,也是OAL腳本中的度量名,目前Service, Service Instance, Endpoint的度量可以用于告警
    metrics-name: service_resp_time
    # [可選]默認(rèn)茂蚓,匹配此指標(biāo)中的所有服務(wù)
    include-names:
      - service_a
      - service_b
    exclude-names:
      - service_c
    # 閾值壕鹉,對于多種指標(biāo)值的如percentile可以配置P50、P75聋涨、P90晾浴、P95、P99的閾值
    threshold: 75
    # 操作符
    op: <
    # 評估度量標(biāo)準(zhǔn)的時間長度
    period: 10
    # 度量有多少次符合告警條件后牍白,才會觸發(fā)告警
    count: 3
    # 檢查多少次脊凰,告警觸發(fā)后保持沉默,默認(rèn)周期相同
    silence-period: 10
    # 該規(guī)則觸發(fā)時茂腥,發(fā)送的通知消息
    message: Response time of service {name} is more than 50ms in 1 minutes of last 1 minutes.

  • 配置webhook接口(將告警信息傳出)
    webhooks: 
  - http://ip:port/skyWalking/alarm
  • oap-service配置上alarm-settings.yml狸涌,并重啟

四、skywalking日志集成

  • 在kubesphere上創(chuàng)建配置文件 agent.config
  • 編輯agent.config(aop-server和agent在同一主機(jī)不需要改動配置)
plugin.toolkit.log.grpc.reporter.server_host=skywalking-oap-server.nobody
plugin.toolkit.log.grpc.reporter.server_port=11800

  • 項目代碼修改
    • pom文件添加 jar依賴(注意和agent的版本一致)
<!-- 引入skywalking 日志依賴 -->
    <dependency>
      <groupId>org.apache.skywalking</groupId>
      <artifactId>apm-toolkit-logback-1.x</artifactId>
      <version>8.6.0</version>
    </dependency>

  • logback-spring.xml 修改
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <!--加上skywalking的追蹤id-->
        <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
            <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
        </layout>
    </encoder>
</appender>
<!-- skywalking grpc 日志收集 8.4.0版本開始支持 -->
    <appender name="grpc-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

  • 項目部署
    • 項目上配置應(yīng)用上 agent.config
    • ui頁面顯示
      image.png

附錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末最岗,一起剝皮案震驚了整個濱河市帕胆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仑性,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件右蹦,死亡現(xiàn)場離奇詭異诊杆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)何陆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門晨汹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贷盲,你說我怎么就攤上這事淘这。” “怎么了巩剖?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵铝穷,是天一觀的道長。 經(jīng)常有香客問我佳魔,道長曙聂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任鞠鲜,我火速辦了婚禮宁脊,結(jié)果婚禮上断国,老公的妹妹穿的比我還像新娘。我一直安慰自己榆苞,他們只是感情好稳衬,可當(dāng)我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坐漏,像睡著了一般薄疚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仙畦,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天输涕,我揣著相機(jī)與錄音,去河邊找鬼慨畸。 笑死莱坎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的寸士。 我是一名探鬼主播檐什,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼弱卡!你這毒婦竟也來了乃正?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤婶博,失蹤者是張志新(化名)和其女友劉穎瓮具,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凡人,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡名党,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了挠轴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片传睹。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖岸晦,靈堂內(nèi)的尸體忽然破棺而出欧啤,到底是詐尸還是另有隱情,我是刑警寧澤启上,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布邢隧,位于F島的核電站,受9級特大地震影響冈在,放射性物質(zhì)發(fā)生泄漏府框。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望迫靖。 院中可真熱鬧院峡,春花似錦、人聲如沸系宜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盹牧。三九已至俩垃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間汰寓,已是汗流浹背口柳。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留有滑,地道東北人跃闹。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像毛好,于是被迫代替她去往敵國和親望艺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容