本文实例讲述了PHP实现服务器状态监控的方法。分享给大家供大家参考。具体分析如下:
PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧。很简单的东西。
使用方法:
打开压缩包里面的status.php文件。编辑这里的内容为你自己的邮箱信息。代码如下:
$mail->Host = 'smtp.exmail.qq.com'; // SMTP 服务器 $mail->Port = 25; // SMTP服务器的端口号 $mail->Username = 'admin@xxx.com'; // SMTP服务器用户名 $mail->Password = 'password'; // SMTP服务器密码 $mail->SetFrom('admin@xxx.com','Status'); $mail->AddReplyTo('admin@xxx.com','Status'); $mail->Subject = $subject; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test $mail->MsgHTML($body); $address = 'admin@admin.com'; //接收邮箱 //更改这里的内容为你要监控的IP: $server_ip_list = array( '61.135.169.121', '221.204.173.200', '173.194.127.83' );
<?php /* * 服务器状态监控 */ header('Content-type:text/html;charset=utf-8'); include './smtp/class.smtp.php'; include './smtp/class.phpmailer.php'; function sendmail($subject = '',$body = '') { date_default_timezone_set('Asia/Shanghai');//设定时区东八区 $mail = new PHPMailer(); //new一个PHPMailer对象出来 // $body = eregi_replace("[]",'',$body); //对邮件内容进行必要的过滤 $mail->CharSet ="UTF-8";//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码 $mail->IsSMTP(); // 设定使用SMTP服务 $mail->SMTPAuth = true; // 启用 SMTP 验证功能 $mail->Host = 'smtp.exmail.qq.com'; // SMTP 服务器 $mail->Port = 25; // SMTP服务器的端口号 $mail->Username = 'admin@xxx.com'; // SMTP服务器用户名 $mail->Password = 'password'; // SMTP服务器密码 $mail->SetFrom('admin@xxx.com','Status'); $mail->AddReplyTo('admin@xxx.com','Status'); $mail->Subject = $subject; $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test $mail->MsgHTML($body); $address = 'admin@admin.com'; //接收邮箱 $mail->AddAddress($address, ''); //$mail->AddAttachment("images/phpmailer.gif"); // attachment 附件 //$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment if(!$mail->Send()) { echo 'Mailer Error: ' . $mail->ErrorInfo; } else { // echo "Message sent!恭喜,邮件发送成功!"; } } //check server status function checkServerSatatus($ip) { $str = null; $fp = @fsockopen($ip,80,$errno,$errstr,10); if (!$fp) { return false; } else { fclose($fp); return true; } } $server_ip_list = array( '61.135.169.121', '221.204.173.200', '173.194.127.83' ); ?> <!doctype html> <html lang="zh_CN"> <head> <meta charset="UTF-8"> <title>服务器状态监控</title> <style> * { margin: 0px; padding: 0px; } body { font-family: "Microsoft yahei",Arial; font-size:14px; } header { height: 40px; background-color: #2e2e2e; width: 100%; line-height: 35px; } header > h3 { color: #fff; margin-left: 20px; } footer { text-align: center; } a { color: #424242; text-decoration: none; } .wrap { height: auto; zoom:1; overflow: auto; max-width: 500px; width: 100%; margin: 50px auto; } .table { border-collapse: collapse; border: 1px solid #eee; width: 100%; } tr,td{ color: #424242; border-collapse: collapse; border: 1px solid #F0F0F0; height: 30px; text-align: center; } tr:nth-child(2n+1) { background-color: #F7F8FC; } tr:hover { background-color: #F7F8FC; } .online,.offline { height: 20px; background-color: #2ECC71; width: 40px; margin: 0px auto; -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; color: #fff; } .offline { width: 50px; background-color: #E74C3C; } </style> </head> <body> <header> <h3>服务器在线状态监控</h3> </header> <div class="wrap"> <table class="table"> <tbody> <tr><td>ID</td><td>Location</td><td>Address</td><td>Status</td></tr> <?php $i = 0; foreach ($server_ip_list as $key => $val) { $api = file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$server_ip_list[$key].''); $json = json_decode($api); $result = $json->data; $i++; if (checkServerSatatus($server_ip_list[$key])) { echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="online">在线</div></td></tr>"; } else { echo "<tr><td>{$i}</td><td>{$result->country}{$result->region}{$result->city}</td><td>{$server_ip_list[$key]}</td><td><div class="offline">不在线</div></td></tr>"; $subject = "您的服务器 {$server_ip_list[$key]} 无法访问!"; $body = "您的服务器{$server_ip_list[$key]} 无法访问,此邮件根据你设置的监控频率发送,当服务器恢复正常邮件自动停止发送!"; sendmail($subject,$body); } } ?> </tbody> </table> </div> </body> </html>
ps:这个只是一个非常的简单的不能很好的监控到服务器了,现在有很多成熟的免费产品都可以更好的达到我们要求,如dnspod里面有一个D监控了,然后我们就可以操作。
希望本文所述对大家的PHP程序设计有所帮助。
本文向大家介绍如何监控 Linux 服务器状态的方法,包括了如何监控 Linux 服务器状态的方法的使用技巧和注意事项,需要的朋友参考一下 Linux 服务器我们天天打交道,特别是 Linux 工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。 本文介绍的几个命令,不仅仅适用于服务器监控,也适用于我们日常情况下的开发。 1. watch watch
7. 状态监控 主界面右下角状态栏可查看课堂的网络状态,如果房间网络状态不佳,请检查讲师和各个学员的本地网络链接是否正常。 延时 表示各个参会者之间的互动延时,延时在 0.2S 以下为正常状态,如果延时较高则可能会影响参会者的互动体验效果。 丢包 表示网络链路的传输质量,丢包率在 1%以下为正常状态,如果丢包率较高则可能会出现视频卡顿或中断等现象。 网络 表示房间的整体网络状态,其中“好”为正常状
5.2 状态码监控 对于动态请求,Nginx本身不处理请求,而是反向代理到业务服务器,由业务服务器来真正处理请求。 业务服务器的处理状态,可以通过http返回状态码来判定。Nginx本身的access.log中,记录了每条请求以及返回状态码。对返回状态码进行监控,可以了解业务服务器的状态。 目前Camel以业务集群upstream为粒度进行监控,提供了状态码趋势图、状态码大盘、监控规则报警功能。
本文向大家介绍python脚本监控Tomcat服务器的方法,包括了python脚本监控Tomcat服务器的方法的使用技巧和注意事项,需要的朋友参考一下 文章出处:https://blog.csdn.net/sdksdk0/article/details/80933444 作者:朱培 ID:sdksdk0 --------------------------------------
本文向大家介绍基于python3监控服务器状态进行邮件报警,包括了基于python3监控服务器状态进行邮件报警的使用技巧和注意事项,需要的朋友参考一下 在正式的生产环境中,我们常常会需要监控服务器的状态,以保证公司整个业务的正常运转,常常我们会用到像nagios、zabbix这类工具进行实时监控,那么用python我们怎么进行监控呢?这里我们利用了python3调用psutil和yagmail这两
本文向大家介绍Shell脚本实现监控iptables运行状态,包括了Shell脚本实现监控iptables运行状态的使用技巧和注意事项,需要的朋友参考一下 最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样. 脚本内容: vi i
本文向大家介绍C#实现软件监控外部程序运行状态的方法,包括了C#实现软件监控外部程序运行状态的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现软件监控外部程序运行状态的方法。分享给大家供大家参考。具体方法如下: 需要外挂一个程序,用于监控另一个程序运行状态,一旦检测到另一程序关闭,就触发一个事件做其他处理。 引用的类 声明 主要处理部分,该段代码可放在定时器中循环检测监控的程序
微服务治理的一个核心需求便是服务可观察性。作为微服务的牧羊人,要做到时刻掌握各项服务的健康状态,并非易事。云原生时代这一领域内涌现出了诸多解决方案。本组件对可观察性当中的重要支柱遥测与监控进行了抽象,方便使用者与既有基础设施快速结合,同时避免供应商锁定。 安装 通过 Composer 安装组件 composer require hyperf/metric hyperf/metric 组件默认安装