国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

掌握Web應用的監控與告警

運維 網絡運維
監控最重要的是在故障發生時,能將告警信息發送出來,讓正確的人第一時間獲悉故障的詳情,只有這樣才能盡快排除故障。企業微信很多公司都有使用,而且Alertmanager支持將企業微信作為告警通道。

最近組里又來了一個需求:當告警發生時,將告警信息通過企業微信發送給開發的相關負責人,方便盡快排除故障。實際使用Alertmanager來完成這項工作,下面介紹具體的實現方法。

詳細配置

  • 告警通道配置

監控最重要的是在故障發生時,能將告警信息發送出來,讓正確的人第一時間獲悉故障的詳情,只有這樣才能盡快排除故障。企業微信很多公司都有使用,而且Alertmanager支持將企業微信作為告警通道。

按照企業微信的官方文檔來配置告警通道,如果覺得麻煩,可以在瀏覽器上搜索“alertmanager 企業微信”關鍵字,就有很多配置例子展示。我們需要得到下面五個鍵值對:

wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'wechat_api_corp_id: '12345678'agent_id: 12345678api_secret: 12345678to_tag: 4

這五個鍵值對需要在Alertmanager中配置,后面四個鍵的值根據實際情況填寫。

企業微信有三種ID來選擇消息的接收對象:用戶ID、部門ID和標簽ID。因為第三種方式支持同時包含用戶和部門,使用起來比較靈活,這里選擇第三種方式。

標簽ID

點擊“標簽詳情”,可以看到標簽ID,在配置Alertmanager時會用到。

標簽ID顯示

  • Blackbox配置

這里直接將配置文件貼出。

docker-compose.yaml:

version: '3.3'services:  blackbox_exporter:    image: prom/blackbox-exporter:v0.19.0    ports:      - "9115:9115"    restart: always    volumes:      - "./config:/config"    command: "--config.file=/config/blackbox.yaml"

config/blackbox.yaml:

modules:  http_get:    prober: http    timeout: 5s    http:      valid_http_versions: ["HTTP/1.1", "HTTP/2.0"]      valid_status_codes: [200]      no_follow_redirects: false      tls_config:        insecure_skip_verify: true
  • Alertmanager配置

這里是關鍵,因為告警通知的發送控制都由Alertmanager來控制。配置文件如下。

docker-compose.yaml:

alertmanager:  image: bitnami/alertmanager:0  restart: "always"  ports:    - 9093:9093  container_name: "alertmanager"  volumes:      - "./config:/etc/alertmanager"

config/config.yml:

global:  resolve_timeout: 5m  wechat_api_url: 'https://qyapi.weixin.qq.com/cgi-bin/'  wechat_api_corp_id: '1234567'templates:  - '/etc/alertmanager/*.tmpl'route:  receiver: wechat  group_wait: 1s  group_interval: 1s  repeat_interval: 2s  group_by: [adm]  routes:    - matchers:          - adm="search"      receiver: searchEngine      group_wait: 10s    - matchers:          - adm="portalweb"      receiver: portalWeb      group_wait: 10sreceivers:- name: wechat  wechat_configs:  - to_tag: infra    message: '{{ template "wechat.message" . }}'    agent_id: 1000002    message_type: markdown    api_secret: verylongstring- name: searchEngine  wechat_configs:  - to_tag: searchdep    message: '{{ template "wechat.message" . }}'    agent_id: 1000002    message_type: markdown    api_secret: verylongstring- name: portalWeb  wechat_configs:  - to_tag: portalwebdep    message: '{{ template "wechat.message" . }}'    agent_id: 1000002    message_type: markdown    api_secret: verylongstring

有幾個參數需要介紹下:

group_wait:Alertmanager 在接收到一條新的告警(第一次出現的告警)時,將這條告警發送給 receiver 之前需要等待的時間。

group_interval:對于一條已經出現過的告警,alertmanager 每隔 group_interval 時間檢查一次告警。

repeat_interval: 對于一條已經出現過的告警,每隔 repeat_interval 會重新發送給 receiver。

有篇文檔整理得很好,這里直接列出來。

“Alertmanager 在收到一條新的告警之后,會等待 group_wait 時間,對這條新的告警做一些分組、更新、靜默的操作。當第一條告警經過 group_wait 時間之后,Alertmanager 會每隔 group_interval 時間檢查一次這條告警,判斷是否需要對這條告警進行一些操作,當 Alertmanager 經過 n 次 group_interval 的檢查后,n*group_interval 恰好大于 repeat_interval 的時候,Alertmanager 才會將這條告警再次發送給對應的 receiver。”

文中這三個參數配置的值很小,主要為測試目的,生產環境根據需要配置。

還有一點需要注意,Alertmanager子路由(即routes里面)中配置的參數會覆蓋根路由(即route里面)中配置的參數,所以按照文件“config/config.yml”中的配置,如果一條告警發送到了“searchEngine”,就不可能再發送給默認的接收者“wechat”,除非子路由沒有匹配。

告警模板文件:config/wechat.tmpl。

{{ define "wechat.message" }}{{- if gt (len .Alerts.Firing) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 -}}# 報警項: {{ $alert.Labels.alertname }}{{- end }}> `**===告警詳情===**` > 告警級別: {{ $alert.Labels.severity }}> 告警詳情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>> 故障時間: <font color="warning">{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 故障實例: <font color="info">{{ $alert.Labels.instance }}</font>{{- end }}{{- end }}{{- if gt (len .Alerts.Resolved) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 -}}# 恢復項: {{ $alert.Labels.alertname }}{{- end }}> `===恢復詳情===` > 告警級別: {{ $alert.Labels.severity }}> 告警詳情: <font color="comment">{{ index $alert.Annotations "description" }}{{ $alert.Annotations.message }}</font>> 故障時間: <font color="warning">{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 恢復時間: <font color="warning">{{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}</font>> 故障實例: <font color="info">{{ $alert.Labels.instance }}</font>{{- end }}{{- end }}{{- end }}

其中語句“{{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}”是將時間轉換成北京時間,否則默認顯示的是UTC時間,不利于故障發生時間的查看。

配置完Alertmanager,再看Prometheus的配置。

  • Prometheus配置

Prometheus需要增加告警規則文件,所有待監控的metrics都保存在Prometheus中,但它并不知道metrics的值處于什么狀態的情況下,自己要發告警給Alertmanager,所以要通過增加告警規則文件告知Prometheus,各個配置文件如下,

docker-compose.yaml:

version: '3.3'services:  prometheus:    image: prom/prometheus    restart: always    ports:      - "9090:9090"    volumes:      - "./config:/config"    command: --config.file=/config/prometheus.yaml

Prometheus的配置文件,config/prometheus.yaml:

# my global configglobal:  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.  # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting:  alertmanagers:    - static_configs:        - targets:          - 192.168.52.128:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:   - /config/alerts.rules # A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.scrape_configs:  - job_name: 'web-monitor'    scrape_interval: 1m    metrics_path: /probe    params:      module: [http_get]    static_configs:      - targets:        - https://www.baidu.com        - https://cn.bing.com        labels:          adm: "search"      - targets:        - https://www.163.com        - https://www.ifeng.com        labels:          adm: "portalweb"    relabel_configs:      - source_labels: [__address__]        target_label: __param_target      - source_labels: [__param_target]        target_label: instance      - target_label: __address__        replacement: 192.168.52.128:9115  # The blackbox exporter's real hostname:port.

Prometheus的告警規則文件,config/alerts.rules:

groups:    - name: Web監控      rules:      - alert: Web API不能訪問        expr: probe_success == 0        for: 10s        labels:          severity: 非常嚴重        annotations:          summary: "{{$labels.instance}}:鏈接不能訪問"          description: "{{$labels.instance}}:鏈接超過10s無法連接"

到這里,所有的配置已經完成,看下效果:

效果展示

在Prometheus上查看probe_success metric的值,看到此時鏈接“https://www.163.com”訪問異常(當然不是真的有問題,可以使用一些手段模擬)。

prometheus查看

查看Alertmanager Web界面,也收到了Prometheus發送過來的告警信息。

Alertmanager告警詳情

企業微信告警信息如下。

企業微信告警

總結

依賴企業微信和Alertmanager便實現根據告警詳情指定告警接收人的配置。

責任編輯:姜華 來源: 今日頭條
相關推薦

2011-03-25 11:06:46

2023-10-26 08:35:53

2010-07-29 14:27:52

FlexWeb

2010-11-24 11:32:46

2011-03-25 11:18:51

2012-01-12 09:30:26

虛擬化云計算Web應用

2012-01-13 13:51:21

云計算

2019-01-17 08:38:03

Redis監控內存

2023-04-20 07:12:33

夜鶯監控夜鶯

2021-09-27 19:41:31

監控Sentry Alerts

2013-08-28 17:35:35

監控故障告警雅虎

2023-09-11 13:33:10

2009-12-15 10:19:05

Linux應用程序

2011-02-21 09:10:42

WebHTML 5JavaScript

2018-12-04 09:02:36

Web服務器PHP

2009-07-02 09:50:19

.NET監控技術

2024-08-13 08:22:04

緩存機制C#內存緩存工具

2024-04-09 08:00:00

Kubernetes管理系統云原生

2015-05-12 15:02:23

API應用性能監控云智慧

2021-05-10 09:00:00

Web工具安全
點贊
收藏

51CTO技術棧公眾號

飘雪影视在线观看免费观看 | jvid一区二区三区| 久久久成人网| 综合网在线视频| 免费国产黄色网址| 国产一区二区三区久久久久久久久 | 欧美三级精品| 欧美大片在线观看一区| 幼a在线观看| 欧美日韩视频在线观看一区二区三区 | 欧美一区网站| 91久久在线播放| 日本在线电影一区二区三区| 日本欧美爱爱爱| 国产成人调教视频在线观看 | 日韩欧美中文字幕在线播放| 色香蕉成人二区免费| 欧美精品手机在线| 日本精品二区| 日韩在线导航| 波多野结衣乳巨码无在线观看| 美女免费视频一区二区| 久久在线免费观看视频| 欧美一性一乱一交一视频| 国产成人免费在线观看| 在线成人一区二区| 国产露出视频在线观看| 亚洲自拍偷拍综合| 国产精品视频久久久| 禁果av一区二区三区| 国产精品久久久久久av福利软件 | 伊人久久大香线蕉精品| 国产一区二区三区观看| 国产欧美在线一区| 一区二区三区四区不卡视频| 在线一二三区| 日韩三级中文字幕| 国产精品伦一区二区| 久久久天堂国产精品女人| 久久在线播放| 久久久一本精品99久久精品66| 国内精品在线播放| 亚洲欧美日韩一级| 欧美性生活大片视频| 少妇在线看www| 久久久久久尹人网香蕉| 亚洲国产精品久久久久蝴蝶传媒| 日韩欧美电影一区二区| 久久久久国产精品麻豆ai换脸| 香港三级经典全部种子下载| 日韩一级完整毛片| 4438全国亚洲精品观看视频| 国产高清在线一区二区| 成人一区二区视频| 日色在线视频| 一区二区三区四区精品| 日韩电影二区| 麻豆映画在线观看| 亚洲成人动漫一区| 97成人资源| 成人激情视频在线播放| 国产精品18久久久久久久久 | 国产精品久久久久久亚洲影视| 国产精品www994| 草草草视频在线观看| 亚洲欧美区自拍先锋| 国产在线观看免费麻豆| 久久亚洲综合国产精品99麻豆精品福利 | 成人欧美一区二区三区在线播放| 加勒比一区二区三区在线| 亚洲精品视频免费在线观看| 粉嫩av一区二区| 国内一区二区在线视频观看| 高清不卡在线观看av| 色播色播色播色播色播在线| 亚洲人成网在线播放| 欧美在线亚洲综合一区| 婷婷中文字幕一区三区| 亚洲性图自拍| 日本精品视频在线| 韩国av一区二区| 国产主播福利在线| 欧美精品久久一区二区| 美国三级日本三级久久99| 在线观看国产福利视频| 欧美高清视频在线| 狠狠色综合日日| 黄色av网站在线| 欧美中文在线字幕| 97久久精品人人做人人爽 | 男人草女人视频| 欧洲一区在线观看| 免费看久久久| 国产手机免费视频| 日韩美一区二区三区| 91tv官网精品成人亚洲| 人人澡人一摸人人添| 日韩在线观看你懂的| 日韩黄色片在线观看| 久久久久久青草| 欧美一区二三区| 久久色中文字幕| 成人黄色免费短视频| 神马一区二区影院| 欧美视频一区二区在线观看| 神马久久av| 777视频在线| 欧美成aaa人片在线观看蜜臀| 国精产品一区一区三区mba桃花| 最新国产在线观看| 无码人妻丰满熟妇区96| xxxxx成人.com| 国产伦精品一区二区三区免费| 久久精品蜜桃| 一区二区三区在线视频111| 欧美日本高清视频在线观看| 国产视频观看一区| 99久久久久免费精品国产| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲成人自拍网| 狼人天天伊人久久| 国产视频在线视频| 久久久91精品| 不卡av电影在线播放| 欧美大胆成人| 国产夫妻自拍一区| 日韩久久精品成人| 国产在线精品一区二区夜色| 第一中文字幕在线| 中文字幕在线亚洲精品| 日韩电影第一页| 国产乱淫av一区二区三区| 午夜影院在线播放| 国产盗摄视频在线观看| 亚洲欧美日韩在线高清直播| 国产69精品久久久久毛片| 九九热在线精品视频| 久久国产色av免费观看| 激情图片小说一区| 亚洲一区二区三区四区在线| 日本不卡一二三区黄网| jvid一区二区三区| 一区二区不卡在线视频 午夜欧美不卡'| 欧美日韩精品一区二区三区四区| 狠狠干综合网| 在线观看午夜av| 蜜臀av.com| 久久久成人的性感天堂| 国产亚洲一区二区三区四区 | 香港三级日本三级a视频| 在线一区二区日韩| 91免费观看国产| 超碰在线成人| 亚洲精品97久久久babes| 动漫美女被爆操久久久| 精品国产乱码久久久久久蜜臀| 国内精品久久久久影院薰衣草| 国产精品久久亚洲不卡| 成人天堂av| 国产精品免费一区二区三区在线观看| 欧美久久久久免费| 国产成人精品免费一区二区| 开心激情综合| 成人免费黄色网页| 91手机视频在线| 91精品国产高清自在线看超| 91黄色激情网站| 国产一区二区三区四区五区美女 | 国产三级三级看三级| 成人激情视频网| 精品国产欧美一区二区| 久久综合成人精品亚洲另类欧美| 精品国产一区二区三区小蝌蚪| 免费观看在线午夜影视| 欧美国产日韩激情| 国产乱肥老妇国产一区二| 日韩精品一区二区三区三区免费| av中文字幕一区| 欧美日韩伦理在线免费| 国产高清中文字幕在线| 激情校园亚洲图片| 国产一区二区不卡视频在线观看| 一区二区三区亚洲| 婷婷激情综合网| 国产高清不卡一区二区| 日韩在线第七页| 欧美自拍电影| 在线看a视频| 福利视频一二区| 91丨九色丨国产| 色综合伊人色综合网| 欧美一a一片一级一片| 91美女片黄在线观看91美女| 亚洲精品影视| 极品一区美女高清| a毛片不卡免费看片| 中文字幕在线影院| 国产精品一区二区免费在线观看| 国产欧美日韩在线播放| 久久久久久久国产精品|