Prometheus+alertmanager

简介: Prometheus+alertmanager

5、alertmanager 告警配置
官网下载地址:
https://github.com/prometheus/alertmanager/releases/download/v0.21.0/alertmanager-0.21.0.linux-amd64.tar.gz
https://github.com/prometheus/alertmanager/releases/download/v0.15.2/alertmanager-0.15.2.linux-amd64.tar.gz
1、安装

# 解压
[root@prometheus-193-53 alertmanager]# mkdir -p /data/alertmanager/{bin,conf,logs,data,templates}
[root@prometheus-193-53 ~]# tar xf alertmanager-0.15.2.linux-amd64.tar.gz -C /data/

[root@prometheus-193-53 alertmanager]# mv ../alertmanager-0.15.2.linux-amd64/{alertmanager,amtool} /data/alertmanager/bin/
[root@prometheus-193-53 alertmanager]# mv ../alertmanager-0.15.2.linux-amd64/alertmanager.yml /data/alertmanager/conf/
[root@prometheus-193-53 alertmanager]# tree
.
├── bin
│   ├── alertmanager
│   └── amtool
├── conf
│   └── alertmanager.yml
├── data
├── logs
└── templates

# 写启动文件
cat <<EOF >/lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
Documentation=https://prometheus.io/
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
User=root
ExecStart=/data/alertmanager/bin/alertmanager --storage.path="/data/alertmanager/data/" \
--config.file=/data/alertmanager/conf/alertmanager.yml \
--web.external-url=http://x.x.x.x:9093
Restart=always
RestartSec=1
# Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# 启动 并 开机自启 如果无法启动 检查启动用户
systemctl enable alertmanager && systemctl start alertmanager

# 重新加载配置
kill -SIGHUP $(pidof alertmanager)
参数 描述
--config.file="alertmanager.yml" 指定Alertmanager配置文件路径
--storage.path="data/" Alertmanager的数据存放目录
--data.retention=120h 历史数据保留时间,默认为120h
--alerts.gc-interval=30m 警报gc之间的间隔
--web.external-url=WEB.EXTERNAL-URL 外部可访问的Alertmanager的URL(例如Alertmanager是通过nginx反向代理)
--web.route-prefix=WEB.ROUTE-PREFIX wen访问内部路由路径,默认是 --web.external-url
--web.listen-address=":9093" 监听端口,可以随意修改
--web.get-concurrency=0 并发处理的最大GET请求数,默认为0
--web.timeout=0 web请求超时时间
--cluster.listen-address="0.0.0.0:9094" 集群的监听端口地址。设置为空字符串禁用HA模式
--cluster.advertise-address=CLUSTER.ADVERTISE-ADDRESS 配置集群通知地址
--cluster.gossip-interval=200ms 发送条消息之间的间隔,可以以增加带宽为代价更快地跨集群传播
--cluster.peer-timeout=15s 在同级之间等待发送通知的时间
--log.level=info 自定义消息格式 [debug, info, warn, error]
--log.format=logfmt 日志消息的输出格式: [logfmt, json]
--version 显示版本号

3、Prometheus 配置

###告警组件调用
alerting:
  alertmanagers:
  - static_configs:
    - targets: ["x.x.x.x:9093"]

###告警规则
rule_files:
   - ./rule/*.yml
  # - "first_rules.yml"
  # - "second_rules.yml"
- name: it-load5m
  rules:
  - alert: "负载过高(5分钟)"
    expr: node_load5{instance =~ "node-10.106.57.15[12]"}  > 16
    for: 1m
    labels:
      env: "{{ $labels.instance }}"
      app: 资源
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }})  的负载(5分钟)超过16,当前值:{{ $value }}"

------------- 探针告警规则
- name: node-export
  rules:
  - alert: "node-export 探针未启动或引擎宕机"
    expr: up{job=~"prometheus"} == 0
    for: 1m
    labels:
      env: 生产环境
      app: 监控
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }})探针未启动或引擎宕机,请及时进行检查,当前值:{{ $value }}"

----------------------------- 磁盘
- name: 磁盘
  rules:
  - alert: "磁盘使用率超过80%"
    expr: (1 - (node_filesystem_free_bytes{job=~'prometheus',fstype=~"ext4|xfs"} / node_filesystem_size_bytes{job=~'prometheus',fstype=~"ext4|xfs"})) * 100 >= 80
    for: 1m
    labels:
      env: 生产环境
      app: 监控
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }})磁盘使用率超过80%,请及时进行处理,当前值:{{ $value }}"


----------------------  内存
- name: 内存告警
  rules:
  - alert: "内存告警"
    expr: (100 - 100 * windows_os_physical_memory_free_bytes{job=~"Windows"} / windows_cs_physical_memory_bytes{job=~"Windows"}) > 90
    for: 1m
    labels:
      env: 生产环境
      app: windows
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }}) 内存使用率超过90%,请及时进行检查,当前值:{{ $value }}"

------------------------- cpu
- name: CPU告警
  rules:
  - alert: "CPU告警"
    expr: (100 - (avg by (instance) (irate(windows_cpu_time_total{job=~"Windows",mode="idle"}[2m])) * 100)) > 90
    for: 1m
    labels:
      env: 生产环境
      app: windows
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }}) CPU 使用率超过90%,请及时进行检查,当前值:{{ $value }}"

4、告警规则配置

--------------------------------  探测所有 探针-------------------
- name: node
  rules:
  - alert: "探针未启动"
    expr: up == 0
    for: 1m
    labels:
      env: 生产
      app: 主机资源
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }})探针未启动或宕机,当前值:{{ $value }}"

------------------------------- 探测指定探针——————————————————————
- name: node-exporter-record
  rules:
  - alert: "服务器宕机"
    expr: up{job=~"Windows"} == 0
    labels:
      env: 实业生产NC
      app: 主机状态
    annotations:
      description: "{{ $labels.instance }} ({{ $labels.role }})服务器宕机,当前值:{{ $value }}"
相关文章
Prometheus 整合 AlertManager
Alertmanager 主要用于接收 Prometheus 发送的告警信息,它很容易做到告警信息的去重,降噪,分组,策略路由,是一款前卫的告警通知系统。它支持丰富的告警通知渠道,可以将告警信息转发到邮箱、企业微信、钉钉等。这一节讲解利用AlertManager,把接受到的告警信息,转发到邮箱。
2084 0
|
6月前
|
Prometheus 监控 Kubernetes
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(上)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
2月前
|
Prometheus 运维 监控
Prometheus AlertManager 生产实践 - 直接根据 to_email label 发 alert 到对应邮箱
Prometheus AlertManager 生产实践 - 直接根据 to_email label 发 alert 到对应邮箱
|
2月前
|
存储 Prometheus 监控
Prometheus Alertmanager 生产配置趟过的坑总结
Prometheus Alertmanager 生产配置趟过的坑总结
|
5月前
|
Prometheus Cloud Native 网络安全
Prometheus+Grafana+Alertmanager部署教程(超详细)
Prometheus+Grafana+Alertmanager部署教程(超详细)
368 1
|
6月前
|
Prometheus Kubernetes 监控
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档(下)
Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档
|
9月前
|
Prometheus 运维 Cloud Native
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
【2023】Prometheus-接入Alertmanager并实现邮件告警通知
283 0
|
Prometheus Cloud Native Docker
docker 安装 prometheus、grafana 和 alertmanager
docker 安装 prometheus、grafana 和 alertmanager
368 0
|
Prometheus 监控 Kubernetes
k8s搭建Prometheus Grafana Alertmanager组件
k8s搭建Prometheus Grafana Alertmanager组件
|
存储 Prometheus 监控
Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)
Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)
338 0
Longhorn,企业级云原生容器分布式存储 - 监控(Prometheus+AlertManager+Grafana)