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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【Consul】Consul实践指导-健康检查(Checks)

發布時間:2025/3/21 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Consul】Consul实践指导-健康检查(Checks) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Consul的一個基本功能是提供系統級和應用級健康檢查。如果健康檢查與某個服務關聯,則稱為是應用級的;如果不予服務關聯,則監控整個節點的健康。

check定義在配置文件中,或運行時通過HTTP接口添加。Check是通過HTTP與節點保持一致。

有五種check方法:

1.1.1 ?Script+ Interval

? ? ? ??通過執行外部應用進行健康檢查:這種外部程序具有退出代碼,并可能產生一些輸出;腳本按照指預置時間間隔來調用(比如,每30秒調用一次),類似于Nagios插件系統,腳本輸出限制在4K以內,輸出大于4K將截斷。默認情況下,腳本超時時間為30秒——可通過timeout來配置。

示例:

?

  • {

  • "check": {

  • "id": "mem-util",

  • "name": "Memoryutilization",

  • "script": "/usr/local/bin/check_mem.py",

  • "interval": "10s",

  • "timeout": "1s"

  • }

  • }


  • 注:實際操作發現,并不支持py,必須為shell腳本

    ?

    ?

    1.1.2 ?HTTP+ Interval

    ? ? ? ??這種檢查將按照預設的時間間隔創建一個HTTP “get”請求。HTTP響應代碼來標示服務所處狀態:任何2xx代碼視為正常,429表示警告——有很多請求;其他值表示失敗。

    這種類型的檢查應使用curl或外部程序來處理HTTP操作。默認情況下,HTTP Checks中,請求超時時間等于調用請求的間隔時間,最大10秒。有可能使用客制的HTTP check,可以自由配置timeout時間,輸出限制在4K以內,輸出大于4K將截斷。

    ?

  • {

  • "check": {

  • "id": "api",

  • "name": "HTTPAPI on port 5000",

  • "http": "http://localhost:5000/health",

  • "interval": "10s",

  • "timeout": "1s"

  • }

  • }

  • ?

    ?

    1.1.3 ?TCP+ Interval

    ? ? ? ??將按照預設的時間間隔與指定的IP/Hostname和端口創建一個TCP連接。服務的狀態依賴于TCP連接是否成功——如果連接成功,則狀態是“success”;否則狀態是“critical”。如果一個Hostname解析為一個IPv4和一個IPv6,將嘗試連接這兩個地址,第一次連接成功則服務狀態是“success”。

    ? ? ? ??如果希望通過這種方式利用外部腳本執行健康檢查,那么腳本應該采用“netcat”或者簡單的socket操作。

    默認情況下,TCP checks中,請求超時時間等于調用請求的間隔時間,最大10秒。也是可以自由配置的。

    ?

  • {

  • "check": {

  • "id": "ssh",

  • "name": "SSHTCP on port 22",

  • "tcp": "localhost:22",

  • "interval": "10s",

  • "timeout": "1s"

  • }

  • }

  • ?

    ?

    1.1.4 ?Timeto Live(TTL)

    ? ? ? ??這種checks為給定TTL保留了最后一種狀態,checks的狀態必須通過HTTP接口周期性更新,如果外部接口沒有更新狀態,那么狀態就會被認定為不正常。

    ? ? ? ??這種機制,在概念上類似“死人開關”,需要服務周期性匯報健康狀態。比如,一個健康的APP可以周期性的將狀態put到HTTP端;如果app出問題了,那么TTL將過期,健康檢查將進入Critical狀態。用來為給定check更新健康信息的endpoint都是pass endpoint和fail endpoint。(參見agent http endpoint)

    ? ? ? ??TTL checks同時會將其最后已知狀態更新至磁盤,這允許Agent通過重啟后恢復到已知的狀態。通過TTL端上一次check來維持健康狀態的有效性。

    ?

  • {

  • "check": {

  • "id": "web-app",

  • "name": "WebApp Status",

  • "notes": "Webapp does a curl internally every 10 seconds",

  • "ttl": "30s"

  • }

  • }

  • ?

    ?

    1.1.5 ?Docker+ interval

    ? ? ? ??這種檢查依賴于調用封裝在docker容器內的外部程序。運行的docker通過docker Exec API來觸發外部應用。

    ? ? ? ??我們期望,consul Agent用戶訪問Docker HTTP API或UNIX套接字。Consul使用$DOCKER_HOST來確定Docker API端點。應用程序將運行,并對在容器內運行的服務執行健康檢查,并返回適當的退出代碼。Check按照指定的時間間隔調用。

    ? ? ? ??如果在同一個host主機上有多重shell,那么同樣需要配置shell參數。

    輸出限制在4K以內,輸出大于4K將截斷。

    ?

  • {

  • "check": {

  • "id": "mem-util",

  • "name": "Memoryutilization",

  • "docker_container_id": "f972c95ebf0e",

  • "shell": "/bin/bash",

  • "script": "/usr/local/bin/check_mem.py",

  • "interval": "10s"

  • }

  • }

  • ?

    ?

    1.1.6 小結

    ? ? ? ??每一種check都必須包含name,id和notes兩個是可選的。如果沒有提供id,那么id會被設置為name。在一個節點中,check的ID都必須是唯一的。如果名字是沖突的,那么ID就應該設置。

    ? ? ? ??字段Notes主要是增強checks的可讀性。Script check中,notes字段可以由腳本生成。同樣,適用HTTP接口更新TTL check的外部程序一樣可以設置notes字段。

    ?

    1.1.7 ?Check腳本

    ? ? ? ??Check腳本可以自由地做任何事情確定check的狀態。唯一的限制是:退出代碼必須遵循下面的約定:

    ?

  • 退出代碼0 – 正常
  • 退出代碼1 – 告警
  • 其他值 - 失敗。
  • ?

    ? ? ? ??Consul依賴此約定。腳本其他的輸出都保存在notes字段中,可以供人查看。

    ?

    1.1.8 ?健康狀態初始化

    ? ? ? ??默認情況下,當checks注冊到Consul agent時,健康狀態立即被設置為“Critical”。可以防止服務直接被注冊為通過(“passing”)狀態,在進入service pool前認為是健康狀態。在某些情況下,checks可能需要指定健康檢查的初始狀態,可以通過設置“status”字段來實現。

    如下:

    ?

  • {

  • "check": {

  • "id": "mem",

  • "script": "/bin/check_mem",

  • "interval": "10s",

  • "status": "passing"

  • }

  • }

  • 初始狀態設置為passing。

    ?

    1.1.9 ?Service-boundchecks

    ? ? ? ??健康檢查(Health checks)或者有可能綁定到指定的服務。這將確保健康檢查的狀態只會影響給定的服務而不是整個節點。服務綁定健康檢查需要提供一個service_id字段。

    ?

  • {

  • "check": {

  • "id": "web-app",

  • "name": "WebApp Status",

  • "service_id": "web-app",

  • "ttl": "30s"

  • }

  • }

  • ? ? ? ??在上述示例中,web-app健康檢查如果失敗了,只會影響web-app服務的有效性,本節點的其他服務是不受影響的。

    ?

    1.1.10??MultipleCheck Definitions

    多個check定義,可以使用字段“checks”,示例:

    ?

  • {

  • "checks": [

  • {

  • "id": "chk1",

  • "name": "mem",

  • "script": "/bin/check_mem",

  • "interval": "5s"

  • },

  • {

  • "id": "chk2",

  • "name": "/health",

  • "http": "http://localhost:5000/health",

  • "interval": "15s"

  • },

  • {

  • "id": "chk3",

  • "name": "cpu",

  • "script": "/bin/check_cpu",

  • "interval": "10s"

  • },

  • ...

  • ]

  • }


  • 注,實踐過程中發現,腳本并不支持python,必須為shell腳本

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的【Consul】Consul实践指导-健康检查(Checks)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 欧美一区二区三区不卡视频 | 精品人人人人 | 夜夜躁狠狠躁日日躁av | 免费观看成人在线视频 | jizz黄色片 | 天天都色| 国产乱码精品一区二区三 | 国产免费又黄又爽又色毛 | 精品少妇久久久 | 欧美成人三级在线观看 | 一区av在线| 在线免费观看视频网站 | 假日游船法国满天星 | 中文字幕丰满孑伦无码专区 | 亚洲v国产 | 无码人妻精品中文字幕 | 五十路熟母 | 波多野结衣潜藏淫欲 | 激情五月婷婷在线 | 九草av| 精品人妻天天爽夜夜爽视频 | 成人理论影院 | 午夜精品久久久久久久久久 | 电影91久久久 | 蜜桃视频在线观看一区 | 7777精品久久久久久 | 亚洲综合图 | 99色热| 日日操日日爽 | 在线精品一区二区三区 | 亚洲精品91| 恶虐女帝安卓汉化版最新版本 | 9久9久9久女女女九九九一九 | 国产香蕉9 | 蜜桃av中文字幕 | jizz成熟丰满日本少妇 | 成av在线| 日韩黄色一级片 | 97av在线播放 | 中文字幕免费在线播放 | 久久国产精品一区二区 | 理论片91| 日韩高清在线 | 精品人伦一区二区三 | 北条麻妃av在线播放 | 成人玩具h视频 | 欧美精品videos另类日本 | 欧美亚洲二区 | 国产视频一区二区三 | 久久艹免费视频 | 伊人久久久久久久久久久久久 | 天天射天天干 | 男人的天堂99 | 日本黄色免费网站 | a级免费视频 | 影音先锋欧美资源 | 爱色av网站| 亚洲麻豆精品 | 免费无码毛片一区二三区 | 老湿机69福利 | 亚洲一二三四区 | 三级欧美日韩 | 亚洲最大毛片 | 在线观看麻豆 | 天天插天天 | 日本人妻不卡一区二区三区中文字幕 | 最好看的中文字幕国语电影mv | 香蕉视频亚洲一级 | 迈开腿让我尝尝你的小草莓 | 在线观看日韩一区二区 | 亚洲你我色 | 91成人入口 | 男女扒开双腿猛进入爽爽免费 | 精品国产传媒 | 森泽佳奈中文字幕 | av毛片基地 | 久久福利一区 | 偷拍视频久久 | 欧美怡红院视频 | 自拍超碰在线 | 综合视频| 久草天堂 | 黄色三级网站 | 亚洲情网| 欧美福利视频一区二区 | 91综合在线| 久久免费在线观看视频 | 中文字幕日韩一区二区三区不卡 | 深喉口爆一区二区三区 | 日韩av成人网 | 少妇真实被内射视频三四区 | 欧美黄色大片视频 | 成人在线观看免费爱爱 | 国产美女作爱全过程免费视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 高清精品xnxxcom | 色婷婷yy| 国产综合一区二区 | 99操|