脚本宝典收集整理的这篇文章主要介绍了PHP简单实现定时监控nginx日志文件功能示例,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了PHP简单实现定时监控Nginx日志文件功能。分享给大家供大家参考,具体如下:
此功能是为了实现,定时监控Nginx生成的日志数据,并将新增的数据提交到一个接口(比如大数据的接口,让大数据来进行分析)
$file_size){ //说明是第二天的日志文件,指针放到文件头 $file_size = 0; }else{ //从上次记录的位置开始 $file_size = $LOG_size; } $file_size_new = 0; $add_size = 0; $ignore_size = 0; $fp = foPEn(LOG_NamE,"r"); while(1){ clearstatcache(); $read_num = 0; $file_size_new = filesize(LOG_NAME); $add_size = $file_size_new - $file_size; $add_data = array(); $add_log = ''; if($add_size > 0){ //大于一个阈值提交数据 if($add_size > MAX_SHOW){ fseek($fp,$file_size); //当增加量超过8192,需要分页读取增加量 $page = ceil($add_size/8192); for($i=1; $i<=$page; $i++){="" if($i="=" $page){//最后一页="" $end_add="$add_size" -="" ($page="" -1)="" *="" 8192;="" $add_log="" .="fread($fp,$end_add);" }else{="" $add_log="" .="fread($fp,8192);" $file_size_step="$file_size" +="" $i="" *="" 8192;="" fseek($fp,$file_size_step);="" }="" }="" $add_data['add_log']="$add_log;" $add_data['add_log']="base64_encode($add_data['add_log']);" http_post(log_url,$add_data);="" $file_size="$file_size_new;" 记录当前位置="" save_filesize($file_size);="" }="" }else="" if($add_size="">=$page;>< 0){="" 第二天从头部开始="" $file_size="0;" }="" sleep(2);="" }="" fclose($fp);="" *="" *="">获取上次打开文件位置 */ function get_filesize(){ $size = file_get_contents(LOG_SIZE); return $size; } /** * 每次提交后保存这次读取文件的位置 */ function save_filesize($size){ return file_put_contents(LOG_SIZE,$size); } /** * http请求 * @param array $data * @return boolean */ function http_post($url = '',$data = array()) { if(empty($url)){ return FALSE; } if($data){ $data = http_build_query($data); } $ch = curl_init (); curl_setopt ( $ch,CURLOPT_URL,$url ); curl_setopt ( $ch,CURLOPT_POST,1 ); curl_setopt ( $ch,CURLOPT_HEADER,0 ); curl_setopt ( $ch,CURLOPT_TIMEOUT,5 ); curl_setopt ( $ch,CURLOPT_RETURNtransfer,CURLOPT_POSTFIELDS,$data ); $return = curl_exec ( $ch ); curl_close ( $ch ); return $return; }
以上是脚本宝典为你收集整理的PHP简单实现定时监控nginx日志文件功能示例全部内容,希望文章能够帮你解决PHP简单实现定时监控nginx日志文件功能示例所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。