vim prometheus.yml

    1. global:
    2. scrape_interval: 15s
    3. external_labels:
    4. monitor: 'codelab-monitor'
    5. scrape_configs:
    6. - job_name: test
    7. static_configs:
    8. - targets: ['10.13.82.244:8000']
    9. labels:
    10. instance: proxy
    11. - job_name: node
    12. static_configs:
    13. - targets: ['10.13.82.244:9100','10.13.82.196:9100']
    14. alerting:
    15. alertmanagers:
    16. - static_configs:
    17. - targets: ["localhost:9093"]
    18. rule_files:
    19. - rule.yml

    vim rule.yml

    1. groups:
    2. - name: test-rule
    3. rules:
    4. - alert: "内存报警"
    5. expr: 100 - ((node_memory_MemAvailable * 100) / node_memory_MemTotal) > 10
    6. for: 1s
    7. labels:
    8. severity: warning
    9. annotations:
    10. summary: "服务名:{{$labels.alertname}}"
    11. description: "业务500报警: {{ $value }}"
    12. value: "{{ $value }}"
    13. - name: test-rule2
    14. rules:
    15. - alert: "内存报警"
    16. expr: 100 - ((node_memory_MemAvailable * 100) / node_memory_MemTotal) > 40
    17. for: 1s
    18. labels:
    19. severity: test
    20. annotations:
    21. summary: "服务名:{{$labels.alertname}}"
    22. description: "业务500报警: {{ $value }}"
    23. value: "{{ $value }}"

    vim alertmanager.yml

    1. global:
    2. smtp_smarthost: 'xxx'
    3. smtp_from: 'xxx'
    4. smtp_auth_username: 'xxx'
    5. smtp_auth_password: 'xxx'
    6. smtp_require_tls: false
    7. templates:
    8. - '/alertmanager/template/*.tmpl'
    9. route:
    10. receiver: 'default-receiver'
    11. group_wait: 1s #组报警等待时间
    12. group_interval: 1s #组报警间隔时间
    13. repeat_interval: 1s #重复报警间隔时间
    14. group_by: [cluster, alertname]
    15. routes:
    16. - receiver: test
    17. group_wait: 1s
    18. match_re:
    19. severity: test
    20. receivers:
    21. - name: 'default-receiver'
    22. email_configs:
    23. - to: 'xx@xx.xx'
    24. html: '{{ template "xx.html" . }}'
    25. headers: { Subject: " {{ .CommonAnnotations.summary }}" }
    26. - name: 'test'
    27. email_configs:
    28. - to: 'xxx@xx.xx'
    29. html: '{{ template "xx.html" . }}'
    30. headers: { Subject: " {{ 第二路由匹配测试}}" }

    vim test.tmpl

    1. {{ define "xx.html" }}
    2. <table border="5">
    3. <tr><td>报警项</td>
    4. <td>磁盘</td>
    5. <td>报警阀值</td>
    6. <td>开始时间</td>
    7. </tr>
    8. {{ range $i, $alert := .Alerts }}
    9. <tr><td>{{ index $alert.Labels "alertname" }}</td>
    10. <td>{{ index $alert.Labels "instance" }}</td>
    11. <td>{{ index $alert.Annotations "value" }}</td>
    12. <td>{{ $alert.StartsAt }}</td>
    13. </tr>
    14. {{ end }}
    15. </table>
    16. {{ end }}


    启动:./alertmanager —log.level=debug ./prometheus —log.level=debug