管理服务器太多了,不可能每时每刻都登录到上面查看服务器状况,从http://blog.s135.com
系统监控接口程序(boobooke.php)具有的报警方式 1、MSN实时报警 Shell脚本在计划任务设定时间内执行,结合PHP程序判断是否发送短消息到管理员的MSN。 发送MSN短消息用了一个PHP类:sendMsg 2、被监控服务器Shell脚本 ①磁盘分区使用率监控 /usr/local/servmon/bin/diskstat_send
#!/bin/sh LANG=zh_cn disk=$(/bin/df -kP | grep / | awk -F ' ' ' {print $6":"$5}' | awk -F '%' ' {print $1}' | tr -s '\n' ';') date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S") ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | tr -s '\n' ';') /usr/bin/curl -d menu=diskstat -d password=$2 -d date=$date -d ip=$ip -d data=$disk $1 ②交换分区使用率监控 /usr/local/servmon/bin/swapstat_send
#!/bin/sh LANG=zh_cn data=$(/usr/bin/free -m | grep Swap | awk '{print $2":"$3":"$4}') date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S") ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | tr -s '\n' ';') /usr/bin/curl -d menu=swapstat -d password=$2 -d date=$date -d ip=$ip -d data=$data $1 ③负载情况使用率监控 /usr/local/servmon/bin/loadstat_send
#!/bin/sh LANG=zh_cn load=$(/usr/bin/uptime | awk -F'load average: ' '{print $2}' | awk '{print $1$2$3}') date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S") ip=$(/sbin/ifconfig | grep "inet addr" | grep -v "127.0.0.1" | awk '{print $2;}' | awk -F':' '{print $2;}' | tr -s '\n' ';') /usr/bin/curl -d menu=loadstat -d password=$2 -d date=$date -d ip=$ip -d data=$load $1 ④Linux服务器计划任务 /etc/cron.d/boobooke
*/30 * * * * root /bin/sh /usr/local/servmon/bin/diskstat_send http://127.0.0.1/boobooke.php password */10 * * * * root /bin/sh /usr/local/servmon/bin/swapstat_send http://127.0.0.1/boobooke.php password 1,16,31,46 * * * * root /bin/sh /usr/local/servmon/bin/loadstat_send http://127.0.0.1/boobooke.php password ⑤service crond start 3、PHP接口程序 http://192.168.1.22/boobooke.php <?php
/** ********************************************************************* * Copyright (c) 2008, [赶星] * All rights reserved. * * 文件名称: boobooke.php * 摘 要: 服务器监控系统※赶星修改※接口程序 * 描 述: * 作 者: 张宴 新浪UC:103500 博客:blog.s135.com * 作 者: 赶星 QQ:10908105 博客:51CTO提醒您,请勿滥发广告! * 版 本: 1.1 * 时 间: 2008-10-07 ********************************************************************* */ //------------------配置信息------------------ $password = "123123";//设置数据传输验证密码,※赶星修改※客户端安装时需要指定此密码 $disk_max = "70";//磁盘分区使用百分比超过此值,则报警。默认为90% $swap_max = "1";//Swap交换空间使用百分比超过此值,则报警。默认为50% //-------------------------------------------- //-----------------定义发msn函数--------------- function sendmsn() { $send_msn = "10908105@qq.com";//机器人MSN帐号 $send_msn_password = "boobooke";//机器人MSN密码 $re_msn = "onlyloveyou2005@163.com";//接收管理员MSN帐号 global $message; error_reporting(E_ALL); include('sendMsg.php'); $sendMsg = new sendMsg(); $sendMsg->login($send_msn,$send_msn_password); $sendMsg->createSession($re_msn); $sendMsg->sendMessage(iconv("GBK", "UTF-8", $message), 'Times New Roman', '008000'); } //--------------函数定义结束------------------- //密码验证 if (htmlspecialchars($_POST["password"]) != $password) { echo "数据传输验证密码错误!\n"; exit(); } //磁盘分区报警(分区使用率超过90%后会发MSN消息报警) if (htmlspecialchars($_POST["menu"]) == "diskstat") { $is_send_msn = "0";//是否发MSN消息,0为不发邮件 $date = htmlspecialchars($_POST["date"]); $ip = htmlspecialchars($_POST["ip"]); $data = htmlspecialchars($_POST["data"]); $arr1 = explode(";", $data); foreach ($arr1 as $key1 => $value1) { $arr2 = explode(":", $value1); if ($arr2[0] != "" && $arr2[1] != "" && $arr2[1] >= $disk_max) { $subject = "[系统监控]_磁盘分区空间不足_" . $ip; $message = "服务器监控系统 ※赶星修改※ V1.1\r\n"; $message = $message . "----------------------------------------\r\n"; $message = $message . "报警服务器:" . $ip . "\r\n"; $message = $message . "----------------------------------------\r\n"; $message = $message . "报警时间:" . $date . "\r\n"; $message = $message . "----------------------------------------\r\n"; $message = $message . "报警内容:\r\n"; $message = $message . "●磁盘分区 " . $arr2[0] . " 空间不足(空间使用率达到" . $arr2[1] . "%)\r\n"; $is_send_msn = "1";//是否发MSN消息,1为发送MSN消息 } } if ($is_send_msn == "1") { sendmsn(); } else { echo "磁盘分区空间足够,无须发送报警MSN消息!\n"; } exit(); } //Swap交换空间报警(Swap交换空间使用率超过60%后会发MSN消息报警) if (htmlspecialchars($_POST["menu"]) == "swapstat") { $is_send_msn = "0";//是否发MSN消息,0为不发MSN消息 $date = htmlspecialchars($_POST["date"]); $ip = htmlspecialchars($_POST["ip"]); list($total, $used, $free) = split(":", htmlspecialchars($_POST["data"])); $percentage = round($used / $total * 100, 0); if ($percentage >= $swap_max) { $subject = "[系统监控]_Swap交换空间使用率高达" . $percentage . "%_" . $ip; $message = "服务器监控系统 ※赶星修改※ V1.1\r\n"; $message = $message . "--------------------------------------------\r\n"; $message = $message . "报警服务器:" . $ip . "\r\n"; $message = $message . "--------------------------------------------\r\n"; $message = $message . "报警时间:" . $date . "\r\n"; $message = $message . "--------------------------------------------\r\n"; $message = $message . "报警内容:\r\n"; $message = $message . "●Swap交换空间使用率高达" . $percentage . "%,若继续增加到100%可能会导致服务器死机。\r\n"; $message = $message . "●Swap交换空间总量:" . $total . " MB\r\n"; $message = $message . "●Swap交换空间使用:" . $used . " MB\r\n"; $message = $message . "●Swap交换空间剩余:" . $free . " MB\r\n"; $is_send_msn = "1";//是否发MSN消息,1为发送MSN消息 } if ($is_send_msn == "1") { sendmsn(); } else { echo "Swap交换空间使用率不高,无须发送报警MSN!\n"; } exit(); } //系统负载过高报警 if (htmlspecialchars($_POST["menu"]) == "loadstat") { $is_send_msn = "0";//是否发MSN消息,0为不发MSN消息 $date = htmlspecialchars($_POST["date"]); $ip = htmlspecialchars($_POST["ip"]); list($load_last_1min, $load_last_5min, $load_last_15min) = split(",", htmlspecialchars($_POST["data"])); if ($load_last_15min >= 25) { if ($load_last_15min < 50) { $level = "轻微"; } elseif ($load_last_15min < 100) { $level = "严重"; } elseif ($load_last_15min < 500) { $level = "非常严重"; } else { $level = "接近崩溃"; } $subject = "[系统监控]_系统负载过高(" . $level . ")_" . $ip; $message = "服务器监控系统 ※赶星修改※ V1.1\r\n"; $message = $message . "-------------------------------------------------------\r\n"; $message = $message . "报警服务器:" . $ip . "\r\n"; $message = $message . "-------------------------------------------------------\r\n"; $message = $message . "报警时间:" . $date . "\r\n"; $message = $message . "-------------------------------------------------------\r\n"; $message = $message . "报警内容:\r\n"; $message = $message . "●系统负载过高,级别:" . $level . " (25~50轻微、50~100严重、100~500非常严重、>500接近崩溃)\r\n"; $message = $message . "●最近 1分钟系统负载:" . $load_last_1min . "\r\n"; $message = $message . "●最近 5分钟系统负载:" . $load_last_5min . "\r\n"; $message = $message . "●最近15分钟系统负载:" . $load_last_15min . "\r\n"; $is_send_msn = "1";//是否发MSN消息,1为发送MSN消息 } if ($is_send_msn == "1") { sendmsn(); } else { echo "系统负载不高,无须发送报警MSN消息!\n"; } exit(); } =========================================== =========================================== |
MSN消息监控Linux
原创
©著作权归作者所有:来自51CTO博客作者10908105的原创作品,如需转载,请与作者联系,否则将追究法律责任
MSN消息监控Linux
https://blog.51cto.com/ganxing/162563
MSN消息监控Linux
https://blog.51cto.com/ganxing/162563
请输入内容
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M
相关文章
-
实战案例:Zabbix对Linux主机监控
zabbix监控Linux主机
centos linux 分布式系统 zabbix监控Linux主机 -
Linux系统资源监控实践详解
在部署项目前,你需要估量一个项目运行硬件环境需要的资源。项目运行过程中,需要对服务器资源进行监控
linux 系统资源监控 java centos sed -
grep,awk,sed——Linux 文本处理三剑客
Linux 三剑客是(grep,sed,awk)三者的简称,熟练使用这三个工具可以提升运维效率。Linux 三剑客
linux 正则表达式 运维 sed 字符串 -
使用graphite和cabot搭建监控服务
说起监控,我们一般会首先想到zabbix,nagios,ga
ganglia graphite python virtualenv 配置文件 -
Linux 技术应用实践-调用宿主机命令检查docker容器网络、进程状态
最近偶然听了几堂极客时间的云原生免费公开课程,首次接触到了Linux namespace技术,并了解到这正是现在风头正劲的容器技术基石,引起了自己探究一二的兴趣
docker linux 网络 bash proc文件系统 -
工业物联网体系架构
整体架构IoT设备组件硬件抽象层为了确保便携性,IoT设备需要包括一个
网络 网关 java 物联网 linux -
supervisor进程管理工具
supervisor是一个管理进程的工具,使用python语言开发的通用的管理程序,可以管理和监控Linux上的指定进程,能将进程变成后台的daemon,并监控进程状态,出现异常退出时能自动重启。nbsp;nbsp;nbsp;nbsp;本文使用的...
supervisor supervisord supervisorctl 进程管理 守护进程 -
nmon linux监控工具
nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具,它能在系统运行过程中实时地捕捉系统资源的使用情况
linux 运维 服务器 数据 centos -
Linux基础系列(七)
性能监控监控CPU使用情况uptime内容:18:56:27 up 120 days,32 min,3 users,load
进程管理 查看CPU 查看内存 查看硬盘 Linux入门 -
Linux安装Prometheus
简介1.架构图2.核心概念安装配置和使用下载二进制包并解压官方地址:https://github.com/pro
监控类 docker 数据 linux
小杰 2009-11-29
dd 2009-06-03
dd 2009-06-03