1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    詳解Apache SkyWalking 告警配置指南_Linux

    來源:腳本之家  責任編輯:小易  

    Apache SkyWalking

    Apache SkyWalking是分布式系統的應用程序性能監視工具(Application Performance Management,APM),專為微服務、云原生架構和基于容器(Docker、K8s、Mesos)架構而設計。

    它提供了分布式追蹤、服務網格遙測分析、度量聚合和可視化一體化解決方案。

    Apache SkyWalking告警

    Apache SkyWalking告警是由一組規則驅動,這些規則定義在config/alarm-settings.yml文件中。

    告警規則的定義分為三部分。

    告警規則:定義了觸發告警所考慮的條件。 webhook:當告警觸發時,被調用的服務端點列表。 gRPCHook:當告警觸發時,被調用的遠程gRPC方法的主機和端口。 Slack Chat Hook:當告警觸發時,被調用的Slack Chat接口。 微信 Hook:當告警觸發時,被調用的微信接口。 釘釘 Hook:當告警觸發時,被調用的釘釘接口。

    文章持續更新,微信搜索「萬貓學社」第一時間閱讀,關注后回復「電子書」,免費獲取12本Java必讀技術書籍。

    告警規則

    告警規則有兩種類型,單獨規則(Individual Rules)和復合規則(Composite Rules),復合規則是單獨規則的組合。

    單獨規則(Individual Rules)

    單獨規則主要有以下幾點:

    規則名稱:在告警信息中顯示的唯一名稱,必須以_rule結尾。 metrics-name:度量名稱,也是OAL腳本中的度量名。默認配置中可以用于告警的度量有:服務,實例,端點,服務關系,實例關系,端點關系。它只支持long,double和int類型。 include-names:包含在此規則之內的實體名稱列表。 exclude-names:排除在此規則以外的實體名稱列表。 include-names-regex:提供一個正則表達式來包含實體名稱。如果同時設置包含名稱列表和包含名稱的正則表達式,則兩個規則都將生效。 exclude-names-regex:提供一個正則表達式來排除實體名稱。如果同時設置排除名稱列表和排除名稱的正則表達式,則兩個規則都將生效。 include-labels:包含在此規則之內的標簽。 exclude-labels:排除在此規則以外的標簽。 include-labels-regex:提供一個正則表達式來包含標簽。如果同時設置包含標簽列表和包含標簽的正則表達式,則兩個規則都將生效。 exclude-labels-regex:提供一個正則表達式來排除標簽。如果同時設置排除標簽列表和排除標簽的正則表達式,則兩個規則都將生效。

    標簽的設置必須把數據存儲在meter-system中,例如:Prometheus, Micrometer。以上四個標簽設置必須實現LabeledValueHolder接口。

    threshold:閾值。

    對于多個值指標,例如percentile,閾值是一個數組。像value1 value2 value3 value4 value5這樣描述。
    每個值可以作為度量中每個值的閾值。如果不想通過此值或某些值觸發警報,則將值設置為 -
    例如在percentile中,value1是P50的閾值,value2是P75的閾值,那么-,-,value3, value4, value5的意思是,沒有閾值的P50和P75的percentile告警規則。

    op:操作符,支持>, >=, <, <=, =。 period:多久告警規則需要被檢查一下。這是一個時間窗口,與后端部署環境時間相匹配。 count:在一個周期窗口中,如果按op計算超過閾值的次數達到count,則發送告警。 only-as-condition:true或者false,指定規則是否可以發送告警,或者僅作為復合規則的條件。 silence-period:在時間N中觸發報警后,在N -> N + silence-period這段時間內不告警。 默認情況下,它和period一樣,這意味著相同的告警(同一個度量名稱擁有相同的Id)在同一個周期內只會觸發一次。 message:該規則觸發時,發送的通知消息。

    舉個例子:

    rules:
      service_resp_time_rule:
        metrics-name: service_resp_time
        op: ">"
        threshold: 1000
        period: 10
        count: 2
        silence-period: 10
        message: 服務【{name}】的平均響應時間在最近10分鐘內有2分鐘超過1秒
      service_instance_resp_time_rule:
        metrics-name: service_instance_resp_time
        op: ">"
        threshold: 1000
        period: 10
        count: 2
        silence-period: 10
        message: 實例【{name}】的平均響應時間在最近10分鐘內有2分鐘超過1秒
      endpoint_resp_time_rule:
        metrics-name: endpoint_avg
        threshold: 1000
        op: ">"
        period: 10
        count: 2
        message: 端點【{name}】的平均響應時間在最近10分鐘內有2分鐘超過1秒

    文章持續更新,微信搜索「萬貓學社」第一時間閱讀,關注后回復「電子書」,免費獲取12本Java必讀技術書籍。

    復合規則(Composite Rules)

    復合規則僅適用于針對相同實體級別的告警規則,例如都是服務級別的告警規則:service_percent_rule && service_resp_time_percentile_rule
    不可以編寫不同實體級別的告警規則,例如服務級別的一個告警規則和端點級別的一個規則:service_percent_rule && endpoint_percent_rule

    復合規則主要有以下幾點:

    規則名稱:在告警信息中顯示的唯一名稱,必須以_rule結尾。 expression:指定如何組成規則,支持&&, ||, ()操作符。 message:該規則觸發時,發送的通知消息。

    舉個例子:

    rules:
      service_resp_time_rule:
        metrics-name: service_resp_time
        op: ">"
        threshold: 1000
        period: 10
        count: 2
        silence-period: 10
        message: 服務【{name}】的平均響應時間在最近10分鐘內有2分鐘超過1秒
      service_sla_rule:
        metrics-name: service_sla
        op: "<"
        threshold: 8000
        period: 10
        count: 2
        silence-period: 10
        message: 服務【{name}】的成功率在最近10分鐘內有2分鐘低于80%
    composite-rules:
      comp_rule:
        expression: service_resp_time_rule && service_sla_rule
        message: 服務【{name}】在最近10分鐘內有2分鐘超過1秒平均響應時間超過1秒并且成功率低于80%

    文章持續更新,微信搜索「萬貓學社」第一時間閱讀,關注后回復「電子書」,免費獲取12本Java必讀技術書籍。

    Webhook

    Webhook 要求一個點對點的 Web 容器。告警的消息會通過 HTTP 請求進行發送,請求方法為 POSTContent-Typeapplication/json,JSON 格式包含以下信息:

    scopeId:目標 Scope 的 ID。 name:目標 Scope 的實體名稱。 id0:Scope 實體的 ID。id1:未使用。 ruleName:您在 alarm-settings.yml 中配置的規則名。 alarmMessage. 告警消息內容。 startTime. 告警時間戳,當前時間與 UTC 1970/1/1 相差的毫秒數。

    舉個例子:

    [{
    	"scopeId": 1, 
    	"scope": "SERVICE",
    	"name": "one-more-service", 
    	"id0": "b3JkZXItY2VudGVyLXNlYXJjaC1hcGk=.1",  
    	"id1": "",  
        "ruleName": "service_resp_time_rule",
    	"alarmMessage": "服務【one-more-service】的平均響應時間在最近10分鐘內有2分鐘超過1秒",
    	"startTime": 1617670815000
    }, {
    	"scopeId": 2,
    	"scope": "SERVICE_INSTANCE",
    	"name": "e4b31262acaa47ef92a22b6a2b8a7cb1@192.168.30.11 of one-more-service",
    	"id0": "dWF0LWxib2Mtc2VydmljZQ==.1_ZTRiMzEyNjJhY2FhNDdlZjkyYTIyYjZhMmI4YTdjYjFAMTcyLjI0LjMwLjEzOA==",
    	"id1": "",
        "ruleName": "instance_jvm_young_gc_count_rule",
    	"alarmMessage": "實例【e4b31262acaa47ef92a22b6a2b8a7cb1@192.168.30.11 of one-more-service】的YoungGC次數在最近10分鐘內有2分鐘超過10次",
    	"startTime": 1617670815000
    }, {
    	"scopeId": 3,
    	"scope": "ENDPOINT",
    	"name": "/one/more/endpoint in one-more-service",
    	"id0": "b25lcGllY2UtYXBp.1_L3RlYWNoZXIvc3R1ZGVudC92aXBsZXNzb25z",
    	"id1": "",
        "ruleName": "endpoint_resp_time_rule",
    	"alarmMessage": "端點【/one/more/endpoint in one-more-service】的平均響應時間在最近10分鐘內有2分鐘超過1秒",
    	"startTime": 1617670815000
    }]

    gRPCHook

    告警消息將使用 Protobuf 類型通過gRPC遠程方法發送。消息格式的關鍵信息定義如下:

    syntax = "proto3";
    
    option java_multiple_files = true;
    option java_package = "org.apache.skywalking.oap.server.core.alarm.grpc";
    
    service AlarmService {
        rpc doAlarm (stream AlarmMessage) returns (Response) {
        }
    }
    
    message AlarmMessage {
        int64 scopeId = 1;
        string scope = 2;
        string name = 3;
        string id0 = 4;
        string id1 = 5;
        string ruleName = 6;
        string alarmMessage = 7;
        int64 startTime = 8;
    }
    
    message Response {
    }

    Slack Chat Hook

    您需要遵循傳入Webhooks入門指南并創建新的Webhooks。

    如果您按以下方式配置了Slack Incoming Webhooks,則告警消息將按 Content-Typeapplication/json 通過HTTP的 POST 方式發送。

    舉個例子:

    slackHooks:
      textTemplate: |-
        {
          "type": "section",
          "text": {
            "type": "mrkdwn",
            "text": ":alarm_clock: *Apache Skywalking Alarm* \n **%s**."
          }
        }
      webhooks:
        - https://hooks.slack.com/services/x/y/z

    微信Hook

    只有微信的企業版才支持 Webhooks ,如何使用微信的 Webhooks 可參見如何配置群機器人

    如果您按以下方式配置了微信的 Webhooks ,則告警消息將按 Content-Typeapplication/json 通過HTTP的 POST 方式發送。

    舉個例子:

    wechatHooks:
      textTemplate: |-
        {
          "msgtype": "text",
          "text": {
            "content": "Apache SkyWalking 告警: \n %s."
          }
        }
      webhooks:
        - https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=dummy_key

    釘釘 Hook

    您需要遵循自定義機器人開放并創建新的Webhooks。為了安全起見,您可以為Webhook網址配置可選的密鑰。

    如果您按以下方式配置了釘釘的 Webhooks ,則告警消息將按 Content-Typeapplication/json 通過HTTP的 POST 方式發送。

    舉個例子:

    dingtalkHooks:
      textTemplate: |-
        {
          "msgtype": "text",
          "text": {
            "content": "Apache SkyWalking 告警: \n %s."
          }
        }
      webhooks:
        - url: https://oapi.dingtalk.com/robot/send?access_token=dummy_token
          secret: dummysecret

    微信掃描二維碼,關注java 技術迷,回復「電子書」,免費獲取Java必讀技術書籍。

    到此這篇關于Apache SkyWalking 告警配置指南的文章就介紹到這了,更多相關SkyWalking 告警配置內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

    您可能感興趣的文章:Spring Cloud 整合Apache-SkyWalking實現鏈路跟蹤的方法

  3. 本文相關:
  4. linux中ipset命令的使用方法詳解
  5. linux系統架構類型的5條常用查看命令
  6. ubuntu制作本地源的實現方法
  7. centos 7中 minimal 安裝jdk 1.8的教程
  8. apache虛擬主機的配置和泛域名解析實現代碼
  9. apache默認是不支持ssi如何給apache增加ssi支持
  10. ubuntu安裝scrcpy完成手機投屏和控制(ubuntu用qq微信的另一種方法
  11. linux文件管理使用詳解
  12. apache hadoop版本詳解
  13. 簡單了解linux終端創建文件的2種常用方法
  14. skywalking怎么配置探測MySQL和redis
  15. skywalking如何探測項目中的oracle數據庫?
  16. 如何把docker鏡像做得很小
  17. 如何使用docker來制作我現在正在使用的系統的鏡像
  18. linux下的centos的apache的端口給人占用了,怎么辦
  19. linux下關于apache端口的問題,高手請進
  20. docker commit和docker file的區別
  21. 如何使用docker來制作我現在正在使用的系統的鏡像
  22. 怎么制作docker鏡像 有多大
  23. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全星外虛擬主機華眾虛擬主機linuxwin服務器ftp服務器dns服務器tomcat nginxzabbix云和虛擬化服務器其它首頁服務器linuxspring cloud 整合apache-skywalking實現鏈路跟蹤的方法linux中ipset命令的使用方法詳解linux系統架構類型的5條常用查看命令ubuntu制作本地源的實現方法centos 7中 minimal 安裝jdk 1.8的教程apache虛擬主機的配置和泛域名解析實現代碼apache默認是不支持ssi如何給apache增加ssi支持ubuntu安裝scrcpy完成手機投屏和控制(ubuntu用qq微信的另一種方法linux文件管理使用詳解apache hadoop版本詳解簡單了解linux終端創建文件的2種常用方法apache開啟.htaccess及.htaccessservice temporarily unavailabllinux下實現免密碼登錄(超詳細)apache rewrite url重定向功能的linux下用cron定時執行任務的方法apache性能測試工具ab使用詳解阿里云服務器ping不通解決辦法(centos 6.4安裝配置lamp服務器(alinux nohup實現后臺運行程序及查centos+nginx+php+mysql詳細配置linux(center os7)安裝jdk、tomcat、mycentos7下docker的安裝教程安裝ubuntu 16.04后要做的事(總結)keepalived實現nginx高可用linux qt kit丟失及version為空問題解決方詳解linux centos7下安裝python的方法linux 重命名命令自制詳細介紹centos7安裝mysql5.7解壓縮版簡明教程在后臺運行linux命令的方法ubuntu server 16.04 lts 上安裝 lamp圖解
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载