vim prometheus.yml
global:scrape_interval: 15sexternal_labels:monitor: 'codelab-monitor'scrape_configs:- job_name: teststatic_configs:- targets: ['10.13.82.244:8000']labels:instance: proxy- job_name: nodestatic_configs:- targets: ['10.13.82.244:9100','10.13.82.196:9100']alerting:alertmanagers:- static_configs:- targets: ["localhost:9093"]rule_files:- rule.yml
vim rule.yml
groups:- name: test-rulerules:- alert: "内存报警"expr: 100 - ((node_memory_MemAvailable * 100) / node_memory_MemTotal) > 10for: 1slabels:severity: warningannotations:summary: "服务名:{{$labels.alertname}}"description: "业务500报警: {{ $value }}"value: "{{ $value }}"- name: test-rule2rules:- alert: "内存报警"expr: 100 - ((node_memory_MemAvailable * 100) / node_memory_MemTotal) > 40for: 1slabels:severity: testannotations:summary: "服务名:{{$labels.alertname}}"description: "业务500报警: {{ $value }}"value: "{{ $value }}"
vim alertmanager.yml
global:smtp_smarthost: 'xxx'smtp_from: 'xxx'smtp_auth_username: 'xxx'smtp_auth_password: 'xxx'smtp_require_tls: falsetemplates:- '/alertmanager/template/*.tmpl'route:receiver: 'default-receiver'group_wait: 1s #组报警等待时间group_interval: 1s #组报警间隔时间repeat_interval: 1s #重复报警间隔时间group_by: [cluster, alertname]routes:- receiver: testgroup_wait: 1smatch_re:severity: testreceivers:- name: 'default-receiver'email_configs:- to: 'xx@xx.xx'html: '{{ template "xx.html" . }}'headers: { Subject: " {{ .CommonAnnotations.summary }}" }- name: 'test'email_configs:- to: 'xxx@xx.xx'html: '{{ template "xx.html" . }}'headers: { Subject: " {{ 第二路由匹配测试}}" }
vim test.tmpl
{{ define "xx.html" }}<table border="5"><tr><td>报警项</td><td>磁盘</td><td>报警阀值</td><td>开始时间</td></tr>{{ range $i, $alert := .Alerts }}<tr><td>{{ index $alert.Labels "alertname" }}</td><td>{{ index $alert.Labels "instance" }}</td><td>{{ index $alert.Annotations "value" }}</td><td>{{ $alert.StartsAt }}</td></tr>{{ end }}</table>{{ end }}
启动:./alertmanager —log.level=debug ./prometheus —log.level=debug
