温室网站建设,什么是网站建设策划,网站建设和,免费制作手机网站记录一下Prometheus与Alertmanager的配置参数等内容 目录1.Prometheus1.1.prometheus.yml1.2.告警规则定义2.alertmanager2.1.alertmanager.yml2.1.1.global#xff1a;全局配置2.1.1.1.以email方式作为告警发送方2.1.1.2.以wechat方式作为告警发送方2.1.1.3.以webhook方式作为…记录一下Prometheus与Alertmanager的配置参数等内容
目录1.Prometheus1.1.prometheus.yml1.2.告警规则定义2.alertmanager2.1.alertmanager.yml2.1.1.global全局配置2.1.1.1.以email方式作为告警发送方2.1.1.2.以wechat方式作为告警发送方2.1.1.3.以webhook方式作为告警发送方2.1.2.templates告警通知模板2.1.3.route路由2.1.3.1.routes子路由用法示例2.1.4.receivers接收器2.1.4.1.email_configs配置邮件告警通知2.1.4.2.webhook_config配置钉钉告警通知2.1.4.3.wechat_config配置微信告警通知2.1.5.inhibit_rules告警抑制2.2.templates告警通知模板2.2.1.定义一个email告警通知模板1.Prometheus
1.1.prometheus.yml
global:
# 采集间隔时间为15秒默认1分钟scrape_interval: 15s
# 评估规则间隔15秒默认1分钟evaluation_interval: 15s# 接入alertmanager工具
alerting:alertmanagers:- static_configs:- targets:- 192.168.10.5:9093# 定义告警规则存放位置
rule_files:- /data/prometheus/rules/*_rules.yml# 采集数据源的源信息的配置项可以配置多个
scrape_configs:- job_name: prometheusstatic_configs:- targets: [localhost:9090]1.2.告警规则定义
node节点告警规则定义列出两个例子其他告警规则照猫画虎
groups:- name: node_statusrules:- alert: 节点状态expr: up 0for: 1mlabels:severity: 紧急严重annotations:discription: Node has been down for more than 2 minutessummary: IP为 {{ $labels.instance }} 节点宕机- name: cpu_userules:- alert: CPU使用情况expr: ((node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Buffers_bytes - node_memory_Cached_bytes) / node_memory_MemTotal_bytes) 0.9for: 1mlavels:severity: 警告annotations:discription: 内存使用超过百分之九十了summary: IP为 {{ $labels.instance }} 节点内存告警2.alertmanager
2.1.alertmanager.yml
2.1.1.global全局配置
2.1.1.1.以email方式作为告警发送方
global:# 邮箱SMTP服务器代理地址smtp_from: smtp.163.com:465# 发送邮件的名称smtp_smarthost: xxx163.com# 邮箱用户名smtp_auth_username: xxx163.com# 邮箱授权密码tokensmtp_auth_password: PLAPPSJXJCQABYAF# 通过指定文件来输入密码与上条选一即可smtp_auth_password_file: password/pass# 设置tls协议是否使用分别是ture/falsesmtp_require_tls: false# 用于控制在确认报警后多久可以被视为解决的时间,默认5分resolve_timeout: 5m2.1.1.2.以wechat方式作为告警发送方
global:
# 企业微信API地址默认为https://qyapi.weixin.qq.com/cgi-bin/wechat_api_url: XXX
# 设置为企业微信中创建的Prometheus应用中记录的“Secret”内容wechat_api_secret: XXX
# 设置为企业微信中记录的“企业ID”wechat_api_corp_id: XXX2.1.1.3.以webhook方式作为告警发送方
默认全局段没有配置
2.1.2.templates告警通知模板 alertmanager启动会加载该目录下文件可自行定义告警内容。 templates模板用于定义接收告警的内容
# 注意目录需自行创建目录存放在alertmanager安装目录
templates:- template/*.tmpl2.1.3.route路由
用于处理prometheus生成的告警信息将其发送到receiver指定的目的地址。设置的第一个route为根节点后面包含的节点为子节点
route:# 对报警进行分组将多个相似告警合并为一个组减少重复报警group_by: [cluster,alertname]# 从接收告警到发送告警的等待时间时间段内告警会合并一个通知默认30sgroup_wait: 30s# 相同的group之间发送告警的时间间隔默认5分钟group_interval: 5m# 告警成功发送后能再次发送相同告警的时间间隔默认4小时repeat_interval: 20m# 配置要发送告警使用的接收器名称receiver: email# 默认为false用于指示处理警告时进行下一步处理# 若设置为true告警则进行匹配子节点continue: false# 用于将报警规则与报警事件进行匹配的功能# 通过字符方式进行匹配判断告警中是否有标签labelnamelabelvaluematch:[ labelname: labelvalue ]# 通过正则表达式进行告警规则匹配设置match_re:[ labelname: regex, ... ]# 可以设置触发器发出的报警消息来检测指定的指标值并执行相应的报警操作# 例如定义报警时间、报警级别等matchers:- foo bar- dings ! bums# 暂停某个时间段内告警比如晚上8点到第二天7点间暂停告警mute_time_intervals: [{start: 20:00, end: 07:00}]# 指定在哪些时间段内才发出警告用法与上条一样active_time_intervals: [{start: 20:00, end: 07:00}]# 可进行子路由节点匹配设置routes: 2.1.3.1.routes子路由用法示例
下面这段代码的含义是告警发送给admin-receiver按照cluster与alertname进行分组。子路由中若告警匹配到标签servicemysql或serviceredis将会向databas-pager发送告警子路由中若告警匹配到标签teamfrontend则会按照标签product,environment对告警进行分组后发送
route:... ...group_by: [cluster,alertname]receiver: admin-receiverroutes:- receiver: database-pagergroup_wait: 10smatchers:- service~mysql|redis- receiver: frontend-pagergroup_by: [product,environment]matchers:- teamfrontend2.1.4.receivers接收器
接收器是一个通称每个接收器需要一个唯一的全局名称接收器的名称要与routes中的receiver保持一致
receivers:
# 指定接收器名称
- name: database-pager
# 配置email告警email_configs:[ - email_config, ... ]
# 配置钉钉告警webhook_configs:[ - webhook_config, ... ]
# 配置微信告警wechat_configs:[ - wechat_config, ... ]
- name: database-pageremail_configs:[ - email_config, ... ]webhook_configs:[ - webhook_config, ... ]wechat_configs:[ - wechat_config, ... ]2.1.4.1.email_configs配置邮件告警通知
还有一些其他的选项没有列出如需要请自行查看官网
email_configs:
# 设置接收告警邮件的地址- to: 接收通知邮箱地址
# 设置告警通知内容的来源名字为模板文件的define内容html: {{ template email.html . }}
# 故障恢复是否通知默认为falsesend_resolved: true
# 告警邮件标题headers:subject: [XXX] 告警通知 2.1.4.2.webhook_config配置钉钉告警通知
webhook_configs:
- url: 接收钉钉告警的地址send_resolved: true2.1.4.3.wechat_config配置微信告警通知
wechat_configs:
# 用于验证身份的企业id
- corp_id: XXX
# 企业微信API地址api_url: XXX
# 设置为企业微信中创建的Prometheus应用中记录的“AgentId”内容agent_id: XXX
# 设置为企业微信中新建的Prometheus应用中记录的“Secret”内容api_secret: XXX
# 设置为企业微信中的“部门ID”to_party: 2
# 设置为企业微信中使用的账号to_user: XXXsend_resolved: true2.1.5.inhibit_rules告警抑制
可以指定在特定条件下要忽略的告警条件可以使用此选项设置首选项例如优先处理某些告警如果同一组中的告警同时发生则忽略其他告警
inhibit_rules:
# 当存在源标签告警触发时抑制含有目标标签的告警
- source_match:severity: criticaltarget_match:severity: warning
# 保证该配置下标签内容相同才会被抑制equal: [alertname,dev,instance]2.2.templates告警通知模板
由alertmanager.yml中templates:块定义存放位置
2.2.1.定义一个email告警通知模板
{{ define test.html }}
{{- if gt (len .Alerts.Firing) 0 -}}
{{- range $index, $alert : .Alerts -}}ERROR br
告警名称{{ .Labels.alertname }}br
告警级别{{ .Labels.severity }}br
告警机器{{ .Labels.instance }} {{ .Labels.device }}br
告警详情{{ .Annotations.summary }}br
告警时间{{ (.StartsAt.Add 28800e9).Format 2006-01-02 15:04:05 }}brEND br
{{- end }}
{{- end }}
{{- if gt (len .Alerts.Resolved) 0 -}}
{{- range $index, $alert : .Alerts -}}INFO br
告警名称{{ .Labels.alertname }}br
告警级别{{ .Labels.severity }}br
告警机器{{ .Labels.instance }}br
告警详情{{ .Annotations.summary }}br
告警时间{{ (.StartsAt.Add 28800e9).Format 2006-01-02 15:04:05 }}br
恢复时间{{ (.EndsAt.Add 28800e9).Format 2006-01-02 15:04:05 }}brEND br
{{- end }}
{{- end }}
{{- end }}
模板中的变量来自下图 后续待定