专业的编程技术博客社区

网站首页 > 博客文章 正文

一个超好用的消息推送工具:server酱

baijin 2024-08-24 22:26:03 博客文章 7 ℃ 0 评论

在网站运维中常常需要知道服务器运行情况,以及各方面指标是否存在异常,以便第一时间进行处理。虽然现在阿里云在这方面已经有了很完善的解决方案。不过,最近看到一个名叫“server酱”专做消息推送的工具。按耐不住自己的好奇心,又去尝试了下~[呲牙]

Server酱是什么

「Server酱」,英文名「ServerChan」,是从服务器、路由器等设备上推消息到手机的工具。这是来自官方的介绍。

Server酱如何开通

登录Server酱网站,用微信扫描登录,然后设置消息通道,即可。全过程仅仅需要1分钟。

Server酱支持哪些渠道

新版Server酱,是一个支持多消息通道、并对此进行统一管理的平台。

通过它,可以实现以下消息通道的推送:

  • 企业微信应用消息:无需安装企业微信客户端,可在微信中直接收到消息,内容显示文
  • 手机客户端:Andorid有官方测试版,iOS 可用 Bark 通道
  • 群机器人:企业微信、钉钉、飞书群
  • 邮件和短信:通过自定义通道调用云服务实现
  • 微信服务号和测试号:依赖模板消息接口(微信可能会在某天下线该接口,建议配置多个通道随时切换)

关于上述Server酱所支持渠道,这个是我为什么尝试选择使用它的原因。可以通过自己实际需要去定制化的推送到不同终端,并且设置不繁琐,方便快捷。

好了,接下来就看下实践效果。

实践

案例:实时获取服务器cpu、内存、磁盘可用空间使用情况,并通过server酱推送。

  1. 首先,定义获取cpu、内存、磁盘可用空间使用情况的方法
function get_used_status(){

    $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况
    $rs = "";
    while(!feof($fp)){
    $rs .= fread($fp,1024);
    }
    pclose($fp);
    $sys_info = explode("\n",$rs);
    $task_info = explode(",",$sys_info[3]);//进程 数组
    $cpu_info = explode(",",$sys_info[4]);  //CPU占有量  数组
    $mem_info = explode(",",$sys_info[5]); //内存占有量 数组
    //正在运行的进程数
    $task_running = trim(trim($task_info[1],'running'));


    //CPU占有量
    $cpu_usage = trim(trim($cpu_info[0],'Cpu(s): '),'%us');  //百分比

    //内存占有量
    $mem_total = trim(trim($mem_info[0],'Mem: '),'k total');
    $mem_used = trim($mem_info[1],'k used');
    $mem_usage = round(100*intval($mem_used)/intval($mem_total),2);  //百分比


    $fp = popen('df -lh | grep -E "^(/)"',"r");
    $rs = fread($fp,1024);
    pclose($fp);
    $rs = preg_replace("/\s{2,}/",' ',$rs);  //把多个空格换成 “_”
    $hd = explode(" ",$rs);
    $hd_avail = trim($hd[3],'G'); //磁盘可用空间大小 单位G
    $hd_usage = trim($hd[4],'%'); //挂载点 百分比
    //print_r($hd);


    //检测时间
    $fp = popen("date +\"%Y-%m-%d %H:%M\"","r");
    $rs = fread($fp,1024);
    pclose($fp);
    $detection_time = trim($rs);


    return array('cpu_usage'=>$cpu_usage,'mem_usage'=>$mem_usage,'hd_avail'=>$hd_avail,'hd_usage'=>$hd_usage,'task_running'=>$task_running,'detection_time'=>$detection_time);
 }

2.然后,定义server酱推送方法

function sct_send(  $text , $desp = '' , $key = '[SENDKEY]'  )
{
    $postdata = array( 'title' => $text, 'desp' => $desp );

    return curl('https://sctapi.ftqq.com/'.$key.'.send',$postdata);

}

3.最后,调用并获取服务器基本信息,并推送消息。

$linux_info = get_used_status();

$title = '服务器使用情况';

$desc = 'CPU占用量:'.$linux_info['cpu_usage'].'%,内存占用量:'.$linux_info['mem_usage'].'%,磁盘可用空间大小:'.$linux_info['hd_usage'].'G';

$desc .= '---- 检测时间:'.$linux_info['detection_time'];

sct_send($title,$desc,$key); //此处的key即为 在server酱上获取到的key

4.最终推送效果图:




总结

server酱虽然比不上一些大而全的解决方案,但是它在消息推送处理方面,一直做的很专注。效果也确实很明显。所以,如果是和我一样有好奇心,并且爱动手的还不快来,实际操作下~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表