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.
information-system/application/third_party/wwwlog/controllers/index.php

195 lines
7.4 KiB
PHTML

<?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'
, 'gh' => 'globalhighlights'
, 'ct' => 'chinatravel'
, 'yz' => 'yangtzeriver'
, 'gl' => 'guilinchina'
, 'sht' => 'shanghaihighlights'
, 'gm' => 'chinarundreisen'
, 'jp' => 'arachina'
, 'ru' => 'chinahighlights_ru'
, 'it' => 'viaggio-in-cina'
, 'vac' => 'viaje-a-china'
2 years ago
, 'vc' => 'voyageschine'
, 'vchw' => 'voyageschine',
); //站点日志存储库,每个网站对应一个
public 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, strtolower($item->COLI_WebCode), $item->COLI_SenderIP);
echo 'COLI_WebCode:' . $item->COLI_WebCode . ' COLI_ID:' . $item->COLI_ID . ' COLI_SenderIP:' . $item->COLI_SenderIP . '<br/>';
}
}
2 years ago
// test
2 years ago
// try {
// $this->orders_view_path_int();
// } catch (Exception $err) {
// print_r($err);
// }
2 years ago
$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 from log where
request_uri NOT like '%.jpg'
and request_uri NOT like '%.JPG'
and request_uri NOT like '%.png'
and request_uri NOT like '%.gif'
and request_uri NOT like '%.css'
3 years ago
and request_uri NOT like '%.webp'
and request_uri NOT like '%.js'
and request_uri NOT like '%.woff'
and request_uri NOT like '%.ttf'
and request_uri NOT like '%.eot'
and request_uri NOT like '%.ico'
and request_uri NOT like '/guide-use.php%'
and request_uri NOT like '/index.php%'
and request_uri NOT like '/secureforms/form_token'
and request_uri NOT like '/ip/'
and request_uri NOT like '/ajax/getads/'
and request_uri NOT like '/public/template/footer.html'
and request_uri NOT like '/public/%'
3 years ago
and (remote_addr='$ip' OR http_x_forwarded_for like '%$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"
and remote_addr='$ip'
*/
$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) {
print_r($ex);
} catch (Exception $ex) {
print_r($ex);
}
}
2 years ago
//定时抓取订单日志 - 国际站
2 years ago
public function orders_view_path_int( /*$COLI_SN, $sitecode = 'cht', $ip, $offset = 0*/)
2 years ago
{
2 years ago
// 测试数据 - 2
2 years ago
$COLI_SN = 1004250;
$sitecode = 'vchw';
$ip = '2a01:cb1c:8190:df00:dc11:12fb:3ed1:1bcb';
$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 from log where
request_uri NOT like '%.jpg'
and request_uri NOT like '%.JPG'
and request_uri NOT like '%.png'
and request_uri NOT like '%.gif'
and request_uri NOT like '%.css'
and request_uri NOT like '%.webp'
and request_uri NOT like '%.js'
and request_uri NOT like '%.woff'
and request_uri NOT like '%.ttf'
and request_uri NOT like '%.eot'
and request_uri NOT like '%.ico'
and request_uri NOT like '/guide-use.php%'
and request_uri NOT like '/index.php%'
and request_uri NOT like '/secureforms/form_token'
and request_uri NOT like '/ip/'
and request_uri NOT like '/ajax/getads/'
and request_uri NOT like '/public/template/footer.html'
and request_uri NOT like '/public/%'
and (remote_addr='$ip' OR http_x_forwarded_for like '%$ip%')
"; //ORDER BY time_local ASC 时间精度不够,会导致相同排序错误,只能用系统默认排序
$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);
print_r($LogData);
}
} catch (Aliyun_Log_Exception $ex) {
print_r($ex);
} catch (Exception $ex) {
print_r($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);
}
}
}