群晖nas自建企业微信并配置异常通知

效果图展示

需求: 求人不如求己,告警信息发在某酱等第三方的告警,如果对方异常了或者突然收费了,我们还无法使用,所以我找了一晚上脚本,我们使用自己的脚本进行群晖nas消息推送。如果没有服务器的话,也可以使用群晖nas搭建一个php环境,我这920+就不让它遭这个醉了,做一个nas该做的事情

群晖NAS这里显示的通知结果也会发送给企业微信

群晖nas自建企业微信并配置异常通知

微信告警通知界面

群晖nas自建企业微信并配置异常通知

创建企业微信

如果已经有企业微信的童鞋,可以忽略本步骤,直接创建脚本

http://work.weixin.qq.com/

第一步注册

群晖nas自建企业微信并配置异常通知

提示:这里简单的说一下,微信企业号和微信公众号是不一样的!
群晖nas自建企业微信并配置异常通知

继续下一步

提示一下: 因为这步需要添加管理员的身份证号以及手机号,我这里就不截图了

二、配置微信企业号

当我们设置完微信号的信息之后,请继续跟我操作。中间可能步骤不是特别全,就是设置企业的信息

我们需要记录CorpID

群晖nas自建企业微信并配置异常通知

我们点击通讯录,添加一个组,或者添加一个成员。成员可以使用微信邀请或者短信邀请

群晖nas自建企业微信并配置异常通知

添加完管理员需要记录管理员账号

群晖nas自建企业微信并配置异常通知

点进去
群晖nas自建企业微信并配置异常通知

记录用户账号 不记录也是没得关系的
群晖nas自建企业微信并配置异常通知

群晖nas自建企业微信并配置异常通知

设置应用

群晖nas自建企业微信并配置异常通知

同样也可以在微信插件里面二维码邀请关注加入通讯录

群晖nas自建企业微信并配置异常通知

创建完成后

需要记录AgentldSecret

这里不记录也没得关系,后面也可以查看

群晖nas自建企业微信并配置异常通知

准备事项:

企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息

需要得到的信息
记录用户的账号

CorpID和Secret、Agentld

创建PHP Send发送脚本

这里脚本建议找一台服务器来处理,如果用群晖运行会担心发送失败的情况

<?php
//i4t.com 群晖nas发送告警

$num = $_GET['num'];
$passwd = $_GET['passwd'];
$title = $_GET['title'];
$description = $_GET['description'];
// 声明页面 header
header("Content-type:text/html;charset=utf-8");

// 获取 access_token
function getToken(){

    // 定义 id 和 secret
    $corpid='wwc13*******';//这里填写你的企业 ID
    $corpsecret='f2MBU****asdx***-asd**';//这里填写你刚创建的应用 secret

    // 读取 access_token
    include './access_token.php';

    // 判断是否过期
    if (time() > $access_token['expires']){

        // 如果已经过期就得重新获取并缓存
        $access_token = array();
        $access_token['access_token'] = getNewToken($corpid,$corpsecret);
        $access_token['expires']=time()+7000;

        // 将数组写入 php 文件
        $arr = '<?php'.PHP_EOL.'$access_token = '.var_export($access_token,true).';'.PHP_EOL.'?>';
        $arrfile = fopen("./access_token.php","w");
        fwrite($arrfile,$arr);
        fclose($arrfile);

        // 返回当前的 access_token
        return $access_token['access_token'];

    }else{

        // 如果没有过期就直接读取缓存文件
        return $access_token['access_token'];
    }
}

// 获取新的 access_token
function getNewToken($corpid,$corpsecret){
    $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corpid}&corpsecret={$corpsecret}";
    $access_token_Arr =  https_request($url);
    return $access_token_Arr['access_token'];
}

// curl 请求函数
function https_request ($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $out = curl_exec($ch);
    curl_close($ch);
    return  json_decode($out,true);
}

// 发送应用消息函数
function send($data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.getToken());
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    return curl_exec($ch);
}

 // 文本卡片消息体

 $postdata = array(
    'touser' => '@all',          //不需要写联系人,会发送给所有人
    'msgtype' => 'textcard',
    'agentid' => '1000004',//这里填写你刚创建的应用 AgentId
    'textcard' => array(
        'title' => $title,
        'description' => $description,
        'num' => $num,
        'url' => 'https://i4t.com',  //这里的域名写不写都可以,可以写成群晖nas的域名
        'passwd' => $passwd,
    ),
    'enable_id_trans' => 0,
    'enable_duplicate_check' => 0,
    'duplicate_check_interval' => 1800
);

// 调用发送函数
 echo send(json_encode($postdata));
// echo "$title, $description"
?>

配置Send脚本并测试

这里通知建议使用一台服务器,有php环境和web环境会方便很多。如果没有可以使用下面的腾讯云Serverless构建函数

温馨提示:脚本是参考下面大佬的文件,但是我原来的基础上做了修改,不建议直接拷贝它的,群晖有一些传参是必须要添加的

腾讯云Serverless构建php环境

我这里找一台服务器作为演示

因为使命环境的要求,我的php接口没法公开出来,不然我可以设置传参大家调用我的接口就可以。目前工信部是不允许这样操作的

环境我这里使用宝塔进行演示

群晖nas自建企业微信并配置异常通知

双击index.php编辑文件,将我们上面的php文件按照备注进行修改
群晖nas自建企业微信并配置异常通知

修改完毕后创建域名
群晖nas自建企业微信并配置异常通知

访问下面的地址进行测试

http://send.frps.cn/index.php?num=777&passwd=123&title=i4t.com标题&description=内容

  • [ ] num任意id (传参需要为群晖需要有电话号,实际上不显示)
  • [ ] passwd任意密码 (传参需要)
  • [x] title发送通知标题 (这里随便写,后面我们修改群晖的即可)
  • [x] description 发送内容 (这里随便写,后面由群晖自己生成)

群晖nas自建企业微信并配置异常通知

微信我们可以收到下面的通知,给大家截大概样子

群晖nas自建企业微信并配置异常通知

群晖nas自建企业微信并配置异常通知

这里我们如果点击卡片,会跳入到我们设置的url变量对应的域名 (我们可以设置为群晖nas的地址)

配置群晖Nas通知

这里我使用DSM 7.1进行演示,DSM 6的操作基本上大同小异

如果大家有疑问可以在文章下面评论一下,我会及时回答

首先登陆群晖控制面板
群晖nas自建企业微信并配置异常通知

选择 通知设置
群晖nas自建企业微信并配置异常通知

选择 短信通知
群晖nas自建企业微信并配置异常通知

新增短信服务提供商

群晖nas自建企业微信并配置异常通知

这里需要注意一点 description=这里后面必须写hello world,否则群晖检查不过去。其它按需设置即可

群晖nas自建企业微信并配置异常通知

然后点击下一步

这里什么都不需要修改,直接下一步
群晖nas自建企业微信并配置异常通知

这里的参数格式请和我保持一致! 不需要乱修改,这里的传参和代码绑定

群晖nas自建企业微信并配置异常通知

  • [x] 用户账号为title发送信息的标题,自己定义即可
  • [ ] 密码随便写,什么密码都不是,只是需要这个值 (不可以不填)
  • [ ] 手机号随便写,不可以不填

群晖nas自建企业微信并配置异常通知

点击寄送测试短信

群晖nas自建企业微信并配置异常通知

微信查看结果
群晖nas自建企业微信并配置异常通知

然后点击应用即可
群晖nas自建企业微信并配置异常通知

配置应用通知

接下来需要在推送通知中配置

点击规则-->勾选短信 && 推送服务-->勾选应用
群晖nas自建企业微信并配置异常通知

测试!

接下来进行测试,我们随便在Docker中下载的镜像即可 (我下载我之前的镜像)
群晖nas自建企业微信并配置异常通知

下载完成后,群晖的通知已经显示下载完毕
群晖nas自建企业微信并配置异常通知

我们可以去微信查看了
群晖nas自建企业微信并配置异常通知

群辉

群晖Transmission 做种时提示红种Unable to save resume file: Too many open files

2022-5-6 11:16:07

群辉

群晖SSD高速缓存设置教程 添加SSD固态硬盘作为缓存盘

2022-5-9 12:08:49

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索