插件窝 干货文章 如何使用serverchan微信推送告警

如何使用serverchan微信推送告警

告警 ServerChan SCKEY 推送 312    来源:    2025-05-22

使用ServerChan进行微信推送告警的完整指南

ServerChan(Server酱)是一款简单易用的消息推送服务,可以将服务器告警、监控信息等推送到微信。以下是详细的使用方法:

一、注册与配置

  1. 注册ServerChan账号

    • 访问ServerChan官网
    • 使用GitHub账号登录(如果没有GitHub账号需要先注册)
  2. 获取SCKEY

    • 登录后进入"发送消息"页面
    • 找到"SCKEY"(形如SCU123456789abcdefg)
    • 这是你的唯一标识,用于API调用
  3. 绑定微信

    • 点击"微信推送"按钮
    • 扫码关注ServerChan公众号完成绑定

二、基础推送方法

1. GET请求方式(最简单)

https://sc.ftqq.com/SCKEY.send?text=标题&desp=内容

示例(将SCKEY替换为你自己的):

curl "https://sc.ftqq.com/SCU123456789abcdefg.send?text=服务器告警&desp=CPU使用率超过90%"

2. POST请求方式(推荐)

curl -X POST \
  https://sc.ftqq.com/SCU123456789abcdefg.send \
  -d "text=服务器告警" \
  -d "desp=CPU使用率超过90%"

三、高级使用方法

1. Markdown格式支持

desp参数中使用Markdown语法:

curl -X POST \
  https://sc.ftqq.com/SCU123456789abcdefg.send \
  -d "text=服务器详细告警" \
  -d "desp=### 服务器状态\n- **CPU**: 95%\n- **内存**: 85%\n- **磁盘**: 78%"

2. 在脚本中使用

Bash脚本示例:

#!/bin/bash

SCKEY="你的SCKEY"
ALERT_MSG="服务器CPU使用率超过阈值!"

curl -s -X POST \
  "https://sc.ftqq.com/$SCKEY.send" \
  -d "text=服务器告警" \
  -d "desp=$ALERT_MSG"

Python脚本示例:

import requests

def send_wechat_alert(title, content):
    sckey = "你的SCKEY"
    url = f"https://sc.ftqq.com/{sckey}.send"
    data = {
        "text": title,
        "desp": content
    }
    response = requests.post(url, data=data)
    return response.json()

# 使用示例
send_wechat_alert("数据库备份失败", "今天凌晨的数据库备份任务执行失败,请检查!")

四、集成到监控系统

1. 与Zabbix集成

在Zabbix的报警媒介中添加Webhook:

  1. 进入"管理" → "报警媒介类型" → "创建媒体类型"
  2. 名称: ServerChan
  3. 类型: Webhook
  4. 参数:
    • URL: https://sc.ftqq.com/{SCKEY}.send
    • POST数据: {"text":"{ALERT.SUBJECT}","desp":"{ALERT.MESSAGE}"}

2. 与Prometheus Alertmanager集成

在Alertmanager配置中添加webhook:

receivers:
- name: 'wechat'
  webhook_configs:
  - url: 'https://sc.ftqq.com/SCU123456789abcdefg.send'
    send_resolved: true

五、注意事项

  1. 消息频率限制:免费版每分钟最多发送5条消息
  2. 内容长度限制:标题(text)最多256字节,内容(desp)最多64KB
  3. 安全性:SCKEY相当于密码,不要泄露或在客户端代码中暴露
  4. 企业微信支持:ServerChan也支持推送到企业微信,配置方法类似

六、故障排查

  1. 收不到消息

    • 检查SCKEY是否正确
    • 确认微信已成功绑定ServerChan公众号
    • 查看ServerChan官网的消息发送记录
  2. API返回错误

    • 400错误:参数错误
    • 403错误:SCKEY无效或被禁用
    • 429错误:发送频率过高

通过以上步骤,你可以轻松地将ServerChan集成到你的监控系统中,实现微信实时告警推送。