You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
3.9 KiB
PHP
107 lines
3.9 KiB
PHP
<?php
|
|
|
|
if (!defined('BASEPATH')) {
|
|
exit('No direct script access allowed');
|
|
}
|
|
|
|
class Index extends CI_Controller
|
|
{
|
|
private $endpoint = 'cn-guangzhou.log.aliyuncs.com';
|
|
private $accessKeyId = 'LTAI4G9HFUkuYzYCBhPK4n2w';
|
|
private $accessKey = 'Yh5vtntTF9JCX8yylvcRlwzO4Prbzb';
|
|
private $project = 'globalhoghlights';
|
|
//private $logstore = 'globalhoghlights';
|
|
private $token = "";
|
|
private $Log_Client;
|
|
private $logstore=array('cht'=>'globalhoghlights','ah'=>'asiahighlights');//站点日志存储库,每个网站对应一个
|
|
|
|
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->model('wwwlogs_model');
|
|
$this->load->library('Aliyun_log_lib');
|
|
$this->Log_Client = new Aliyun_Log_Client($this->endpoint, $this->accessKeyId, $this->accessKey, $this->token);
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
$data=array();
|
|
$orders=$this->wwwlogs_model->get_update_list(10);
|
|
if($orders){
|
|
foreach ($orders as $item){
|
|
$this->orders_view_path($item->COLI_SN,$item->COLI_WebCode,$item->COLI_SenderIP);
|
|
echo 'COLI_WebCode:'.$item->COLI_WebCode.' COLI_ID:'.$item->COLI_ID.' COLI_SenderIP:'.$item->COLI_SenderIP.'<br/>';
|
|
}
|
|
}
|
|
$this->load->view('welcome');
|
|
}
|
|
|
|
//定时抓取订单日志
|
|
public function orders_view_path($COLI_SN,$sitecode='cht',$ip,$offset=0){
|
|
$query_string="
|
|
* | select time_local,http_referer,request_uri,http_user_agent,http_x_forwarded_for
|
|
remote_addr,request_method,request_time,status,body_bytes_sent,upstream_response_time,request_body from log where
|
|
request_uri NOT like '%.jpg'
|
|
and request_uri NOT like '%.png'
|
|
and request_uri NOT like '%.gif'
|
|
and request_uri NOT like '/guide-use.php%'
|
|
and request_uri NOT like '/index.php%'
|
|
and request_uri NOT like '/secureforms/form_token'
|
|
and remote_addr='$ip'
|
|
";//ORDER BY time_local ASC 时间精度不够,会导致相同排序错误,只能用系统默认排序
|
|
/*
|
|
remote_addr :'23.99.99.139'
|
|
AND NOT request_uri :"/secureforms/form_token"
|
|
AND NOT request_uri :".jpg"
|
|
AND NOT request_uri :".png"
|
|
AND NOT request_uri :".gif"
|
|
AND NOT request_uri :"guide-use.php"
|
|
AND NOT request_uri : "/index.php"
|
|
*/
|
|
$from = time()-604800;//往前 604800(7天), 1296000(15天)
|
|
$to = time();
|
|
$request = new Aliyun_Log_Models_GetLogsRequest('globalhoghlights', $this->logstore[$sitecode], $from, $to, '', $query_string, 100, $offset, true);
|
|
try {
|
|
$LogData = new StdClass;
|
|
$LogData->wl_sitecode=$sitecode;
|
|
$LogData->wl_COLI_SN=$COLI_SN;//订单SN
|
|
$response = $this->Log_Client->getLogs($request);
|
|
foreach ($response -> getLogs() as $log) {
|
|
foreach ($log -> getContents() as $key => $value) {
|
|
$LogData->$key=$value;
|
|
}
|
|
$this->wwwlogs_model->add('wwwlogs',$LogData);
|
|
}
|
|
} catch (Aliyun_Log_Exception $ex) {
|
|
logVarDump($ex);
|
|
} catch (Exception $ex) {
|
|
logVarDump($ex);
|
|
}
|
|
}
|
|
|
|
|
|
public function getLogs(Aliyun_Log_Client $client, $project, $logstore)
|
|
{
|
|
$topic = '';
|
|
$from = time()-604800;//往前7天
|
|
$to = time();
|
|
$request = new Aliyun_Log_Models_GetLogsRequest($project, $logstore, $from, $to, $topic, "", 100, 0, false);
|
|
|
|
try {
|
|
$response = $client->getLogs($request);
|
|
foreach ($response -> getLogs() as $log) {
|
|
print $log -> getTime()."\t";
|
|
foreach ($log -> getContents() as $key => $value) {
|
|
print $key.":".$value."\t";
|
|
}
|
|
print "\n";
|
|
}
|
|
} catch (Aliyun_Log_Exception $ex) {
|
|
logVarDump($ex);
|
|
} catch (Exception $ex) {
|
|
logVarDump($ex);
|
|
}
|
|
}
|
|
}
|