PHP implementation of Server Status monitoring method, PHP implementation of server monitoring
This paper describes the method of implementing server state Monitoring by PHP. Share to everyone for your reference. The specific analysis is as follows:
PHP Server Status Monitoring for many friends do not do, only to see the site hanging to know, this midnight site is not aware of the situation, for the site is also very bad, for this two days to write a Web server state monitoring, see a friend said need, then I put it out. Very simple stuff.
How to use:
Open the status.php file inside the compressed package. Edit the content here for your own mailbox information. The code is as follows:
Copy CodeThe code is as follows: $mail->host = ' smtp.exmail.qq.com '; SMTP Server
$mail->port = 25; Port number of the SMTP server
$mail->username = ' admin@xxx.com '; SMTP Server user name
$mail->password = ' Password '; SMTP server password
$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 '; Receive mailbox
Change the content here for the IP you want to monitor:
$server _ip_list = Array (
' 61.135.169.121 ',
' 221.204.173.200 ',
' 173.194.127.83 '
);
Then visit your http://yourdomain.com/status.php file to see the current server status and automatically send mail to the mailbox you set up. If you need automatic monitoring, add cron tasks or use any surveillance treasure or something!
The complete code is as follows:
Copy CodeThe code is as follows: <?php
/*
* Server Status Monitoring
*/
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 ');//Set time zone East eight zone
$mail = new Phpmailer (); New a Phpmailer object.
$body = Eregi_replace ("[]", "', $body); Filtering the content of the message as necessary
$mail->charset = "UTF-8";//Set the message encoding, default iso-8859-1, if the Chinese language must be set, otherwise garbled
$mail->issmtp (); Setting up using the SMTP service
$mail->smtpauth = true; Enable the SMTP authentication feature
$mail->host = ' smtp.exmail.qq.com '; SMTP Server
$mail->port = 25; Port number of the SMTP server
$mail->username = ' admin@xxx.com '; SMTP Server user name
$mail->password = ' Password '; SMTP server password
$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 '; Receive mailbox
$mail->addaddress ($address, ');
$mail->addattachment ("Images/phpmailer.gif"); Attachment Accessories
$mail->addattachment ("Images/phpmailer_mini.gif"); Attachment
if (! $mail->send ()) {
Echo ' Mailer Error: '. $mail->errorinfo;
} else {
echo "Message sent! Congratulations, Mail sent successfully! ";
}
}
Check Server Status
function Checkserversatatus ($IP) {
$STR = null;
$fp = @fsockopen ($ip, $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 '
);
?>
<title>Server Status Monitoring</title>
Server Online Status Monitoring
Id |
Location |
Address |
Status |
<?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 "
{$i} |
{$result->country} {$result->region} {$result->city} |
{$server _ip_list[$key]} |
Online |
"; } else {echo '
{$i} |
{$result->country} {$result->region} {$result->city} |
{$server _ip_list[$key]} |
Not online |
"; $subject = "Your server {$server _ip_list[$key]} cannot be accessed! "; $body = "Your server {$server _ip_list[$key]} cannot be accessed, this message is sent according to the monitoring frequency you set, when the server resumes normal mail automatically stop sending! "; SendMail ($subject, $body); }}?>
Attention:
Include './smtp/class.smtp.php ';
Include './smtp/class.phpmailer.php ';
The file can download the Phpmailer package and then we'll copy the two files out of the package and then we can use them.
PS: This is just a very simple not very good monitoring to the server, now have a lot of mature free products can better meet our requirements, such as dnspod inside there is a D monitoring, and then we can operate.
I hope this article is helpful to everyone's PHP programming.
http://www.bkjia.com/PHPjc/924537.html www.bkjia.com true http://www.bkjia.com/PHPjc/924537.html techarticle PHP Implementation of server Status monitoring methods, PHP implementation of server monitoring This article describes the PHP implementation of server status monitoring methods. Share to everyone for your reference. The specific analysis is as follows: ...