PHP简单实现定时监控nginx日志文件功能示例

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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="">< 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,请注明来意。