prometheus+grafana监控以及企业微信告警(单机二进制部署)
一.下载部署包,更改其中两个包名称,放到/data下
1.安装包以及解压步骤
grafana-enterprise-8.4.4-1.x86_64.rpm
prometheus-2.34.0.tar.gz
node_exporter-1.3.1.linux-amd64.tar.gz
alertmanager-0.23.0.linux-amd64.tar.gz
tar -xzvf prometheus-2.34.0.tar.gz
mv prometheus-2.34.0.linux-amd64 /data/prometheus
tar -xzvf node_exporter-1.3.1.linux-amd64.tar.gz
mv node_exporter-1.3.1.linux-amd64 /data/node_exporter
tar -xzvf alertmanager-0.23.0.linux-amd64.tar.gz
mv alertmanager-0.23.0.linux-amd64 /data/alertmanager
yum install ./grafana-enterprise-8.4.4-1.x86_64.rpm -y
二、添加各个服务的service

# 普罗米修斯
cat <<EOF | sudo tee /lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target[Service]
Type=simple
User=root
WorkingDirectory=/data/prometheus
ExecStart=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.ymlRestart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF# node_exporter
cat <<EOF | sudo tee /lib/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
Wants=network-online.target[Service]
Type=simple
User=root
ExecStart=/data/node_exporter/node_exporterRestart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF# alertmanager
cat <<EOF | sudo tee /lib/systemd/system/alertmanager.service
[Unit]
Description=alertmanager
After=alertmanager.target[Service]
ExecStart=/data/alertmanager/alertmanager --config.file=/data/alertmanager/alertmanager.ymlRestart=on-failure
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
EOF

三.启动

systemctl enable node_exporter
systemctl enable prometheus
systemctl enable grafana-server
systemctl enable alertmanagersystemctl start node_exporter
systemctl start prometheus
systemctl start grafana-server
/usr/share/grafana/bin/grafana-cli plugins install  grafana-piechart-panel

四.监控linux主机和windows主机
监控linux

1.在每台被控linux主机安装node_exporter
2.在普罗米yml文件里添加所要监控的主机

监控windows
1.在每台被控windows主机安装wmi_exporter。wmi_exporter下载地址:https://github.com/martinlindhe/wmi_exporter/releases
下载后,双击即可完成安装。完成安装后,会自动创建一个开机自启的服务。
2.在普罗米yml文件里添加配置

五.配置grafana,添加数据源

2.根据需求添加模板(linux模板12633,windows12422)


六.企业微信监控告警
1.在企业微信创建群聊,添加机器人会有webhook地址。
2.在普罗米yml文件里开启alertmanager服务端口和自定义规则。

3.在上述规则目录编写规则yml文件
创建目录:
mkdir /data/rules
进入目录:
cd /data/rules
编写规则文件:

1.vim host_rules.yml
groups:
# 报警组组名称
- name: alters#报警组规则rules:#告警名称,需唯一- alert: cpu使用率大于75%#promQL表达式expr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!='idle'}[5m]))) by (instance) > 0.75#满足此表达式持续时间超过for规定的时间才会触发此报警for: 1mlabels:#严重级别severity: warningannotations:#发出的告警标题summary: "实例 {{ $labels.instance }} CPU 使用率过高"#发出的告警内容description: "实例{{ $labels.instance }} CPU 使用率超过 75% (当前值为: {{ $value }})"- alert: 内存使用率大于90%expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes > 0.90for: 1mlabels:severity: warningannotations:summary: "实例 {{ $labels.instance }} 内存使用率过高"description: "实例 {{ $labels.instance }} 内存使用率 90% (当前值为: {{ $value }})"2.vim node_alters.ymlgroups:
- name: examplerules:- alert: 服务器宕机expr: avg by (instance) (up{}) == 0for: 10slabels:severity: emergencyannotations:description: "实例 {{ $labels.instance }}服务器已宕机,请进行检查."summary: "{{ $labels.instance }} 服务器宕机"- alert: 磁盘使用率大于80%expr: 100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"} * 100) > 80for: 2mlabels:severity: warningannotations:description: "{{ $labels.instance  }} : {{ $labels.job  }} :{{ $labels.mountpoint  }} 这个分区使用大于百分之80% (当前值:{{ $value }})"summary: "Instance {{ $labels.instance  }} :{{ $labels.mountpoint }} 分区使用率过高"

4.访问普罗米页面,看是否添加成功

5.在普罗米服务端添加python自动化脚本
(1)安装python3环境
(2)把脚本app.py放在/usr/bin/目录下,脚本内容如下:

cd /usr/bin
vim app.py
import json
import os
from flask import request, Flask
from dingtalkchatbot.chatbot import DingtalkChatbot     def Open(s):Path = './temp.json'if os.path.exists(Path):os.remove(Path)     f = open(Path, 'w')print(s, file = f)f.close()def GetData():PostData = request.get_data()  Data = json.loads(PostData)  JsonData = json.dumps(Data, ensure_ascii=False, indent=4)  return Dataapp = Flask(__name__)
app.config['JSON_AS_ASCII'] = False@app.route('/webhook/test/', methods=['POST'])
def IssueCreate():# Open(GetData())status = GetData()['status']alertname = GetData()['alerts'][0]['labels']['alertname']serverity = GetData()['alerts'][0]['labels']['severity']instance = GetData()['alerts'][0]['labels']['instance']start_time = GetData()['alerts'][0]['startsAt']message = str('##' + 'Prometheus告警:%s' + '##' + '\n''状态:%s' %status + '\n''告警信息:%s' %alertname + '\n''告警级别:%s' %serverity + '\n''IP地址:%s' %instance + '\n''开始时间:%s' %start_time + '\n')print(message)send_message(message)return "OK", 200
def send_message(message):webhook = '机器人地址'xiaoding = DingtalkChatbot(webhook)xiaoding.send_text(msg=message, is_at_all=True)     if __name__ == '__main__':app.run(debug = False, host = '0.0.0.0', port = 8888)

(3)配置脚本自启动文件

vim /usr/lib/systemd/system/app.service
[Unit]
Description=QR Code Reader Service
After=multi-user.target
Conflicts=getty@tty1.service[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/bin/app.py
StandardInput=tty-force[Install]
WantedBy=multi-user.target

(4)在alertmanager的yml文件修改

global:resolve_timeout: 5m   处理超时时间
route:group_by: ['alertname']group_wait: 10s    等待时间group_interval: 10s   相同的Gourp之间发送告警通知的时间间隔repeat_interval: 5m   重复报警的间隔时长receiver: 'web.hook'
receivers:- name: 'web.hook'webhook_configs:- url: 'http://本机ip:8888/webhook/test/'
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

(5)重启服务alertmanager。看企业微信是否可以收到告警信息。

prometheus+grafana监控以及企业微信告警相关推荐

  1. Prometheus配合 alertmanager 使用企业微信告警(坑已平!!!)

    部署Prometheus 和 Alertmanager略 安装包部署prometheus+Grafana+node_exporter_争取不加班!的博客-CSDN博客 prometheus监控报警部署 ...

  2. Prometheus+Grafana监控安装及配置JVM实现企业微信告警

    背景 本人Java开发工程师一枚,主攻后端,需要搭建一套Prometheus+Grafana的监控系统,采用企业微信告警通知.在网上各种查阅资料的同时,发现很多资料都大致相通且不完整,踩坑无数,经过多 ...

  3. Prometheus监控(三)—— 钉钉和企业微信告警

    一.prometheus 实现钉钉和企业微信告警 基础流程 1.1 钉钉通知 altermanager基础设置可以参照: https://editor.csdn.net/md/?articleId=1 ...

  4. 使用 Prometheus 实现邮件/企业微信告警

    一.安装 AlterManager 如果没有安装 Prometheus 以及监控客户端的话,可以看博主前面的文章:Prometheus(普罗米修斯)监控系统 [root@k8s-master01 ~] ...

  5. Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...

  6. Grafana监控系统之Prometheus+Grafana监控系统搭建

    Grafana监控系统之Prometheus+Grafana监控系统搭建 本文章内容较长,可通过右上角点击目录快速定位想看的内容 => => 一. 概述 1.1 Grafana介绍 Gra ...

  7. Zabbix设置邮件告警+企业微信告警

    一.告警流程 首先要创建模板 在模板中创建触发器和监控项 创建监控项 创建触发器 1.1添加报警媒介 1.2声音设置 1.3创建用户 1.4配置动作 为触发器 系统用户登录数大于3 添加动作 1.5配 ...

  8. Prometheus+Grafana 监控 MySQL

    Prometheus 获取 MySQL 的监控数据,并通过 Grafana 展示的过程.首先来看整体架构图: 1 架构图 如上图,通过 mysql_exporter 获取 MySQL 的监控数据,通过 ...

  9. 使用Prometheus+Grafana 监控MySQL/MONGODB

    使用Prometheus+Grafana 监控MySQL/MONGODB 之前就久仰 Prometheus 大名,因为有用zabbix 进行监控,就没去安装它.现在正好用上监控MONGO+MYSQL. ...

最新文章

  1. c语言储存10的500,c语言程序基础练习题500道
  2. 算法分析与设计-实验二 动态规划算法设计
  3. 编写字符串比较函数strcmp .
  4. cgi+bin+php,crontab+php-cgi/php 定时执行PHP脚本
  5. 运河杯交通违章 运行不起来
  6. fn:substring()函数
  7. 在GIS中运用坐标系统
  8. Windows Mobile 6.5 新功能widget开发
  9. 罗翔 ---- 落俗不可避免,浪漫至死不渝
  10. Confluence 6 Windows 中以服务方式自动重启修改运行服务的用户
  11. 电脑广告太多,请避免安装这些软件
  12. 树莓派4b vnc黑屏显示Cannot currently show the desktop解决办法
  13. linux编写自动运行一串命令的脚本
  14. 弘辽科技:揭秘淘宝直通车更深层的秘密,你开对车了吗?
  15. 创业者的噩梦 -商业竞争究竟有多残酷和黑暗
  16. Python动态画图小代码(Turtle Graphics)
  17. 【信号处理】因果系统的理解
  18. cosx等价无穷小_第一章 函数与极限 第七节 无穷小的比较
  19. ijkplayer环境搭建
  20. linux-FHS总结

热门文章

  1. win10-SW2016工程图关联零件属性链接操作
  2. 白鹭引擎用java_白鹭引擎产品工具更新 完善小游戏、QQ玩一玩开发支持
  3. https 请求需要证书,忽略安全证书
  4. 2014Android Demo源码 文件夹 PATH 列表
  5. 《数据分析实战:基于EXCEL和SPSS系列工具的实践》一导读
  6. R语言并行计算 deviation of null beta diversity(beta多样性零偏差)
  7. Rust 管理员命令列表
  8. tortoisegit push 时提示 git did not exit cleanly (exit code 1)
  9. 当限量潮牌遇到 DeFi, 币圈项目社群当投机时尚结合加密基元
  10. Java回炉之语言基础