阿里云CDN日志下载涉及离线日志和实时日志两种类型,以下是详细的步骤和相关信息:
离线日志下载
1、登录CDN控制台:
打开阿里云CDN控制台。
在左侧导航栏中,单击“日志管理 > 离线日志”。
2、选择域名和查询时间:
在日志下载页签,选择需要下载日志的域名和查询时间。
注意:默认可下载最长时间为30天的日志数据。
3、下载日志:
根据查询结果,单击操作列下的“下载”,即可将日志下载至本地路径保存进行分析。
4、日志字段含义:
CDN日志包含多个字段,如客户端IP、请求方法、URL、状态码、响应大小等,具体含义可以参考CDN日志字段说明。
5、延长离线日志存储时间:
如果需要长期存储日志以便分析,可以使用离线日志转存服务,将日志转存到OSS进行长期存储。
操作步骤包括开通函数计算产品、创建日志转存服务、授权并关联函数服务的域名等。
实时日志下载
1、开通实时日志服务:
登录CDN控制台。
在左侧导航栏中,单击“日志管理 > 实时日志”。
在实时日志推送页签,创建实时日志推送服务,选择需要开启实时日志的域名后创建。
2、日志推送配置与字段含义:
实时日志推送的信息内容更加丰富,具体字段含义可以参考CDN实时日志字段说明。
3、实时日志分析:
创建投递项目后,可以点击对应的分析与告警,跳转至DCDN访问中心查看报表。
报表业务默认展示了常见图表,也可以根据业务需求创建自定义报表。
示例代码(Linux系统下运行)
以下是一个使用Python脚本下载阿里云CDN日志的示例代码:
#!/usr/bin/python2.7 * coding:utf8 * import sys, os import gzip import json import urllib from hashlib import sha1 import time import uuid import configparser from requests import request class read_config(object): def __init__(self): self._CONFIGFILE = os.path.join(os.path.dirname(os.path.abspath(__file__)), "aliyun.ini") self._config = configparser.ConfigParser() self._config.read(self._CONFIGFILE) self._access_id = self._config.get('Credentials', 'accesskeyid') self._access_key = self._config.get('Credentials', 'accesskeysecret') self._Action = self._config.get('Must', 'Action') self._DomainName = self._config.get('Must', 'DomainName') self._Must_list = self._config.items('Select') self._user_param = {} @property def access_key_id(self): return self._access_id @property def access_key_secret(self): return self._access_key @property def user_params(self): if self._Action and self._DomainName: self._user_param['Action'] = self._Action self._user_param['DomainName'] = self._DomainName for i in self._Must_list: self._user_param[i[0]] = i[1] return self._user_param class read_write(object): def __init__(self): self._logfilename = os.path.join(os.path.dirname(os.path.abspath(__file__)), ".download") @property def read(self): try: with open(self._logfilename, 'rb') as f: logfile = f.read() logfile = json.loads(logfile) if len(logfile) > 20: logfile.pop(0) return logfile except IOError as f: return [] def write(self, logfile): with open(self._logfilename, "wb") as f: file = json.dumps(logfile) f.write(file) class GZipTool(object): """压缩与解压gzip""" def __init__(self, bufSize=1024 * 8): self.bufSize = bufSize self.fin = None self.fout = None def compress(self, src, dst): self.fin = open(src, 'rb') self.fout = gzip.open(dst, 'wb') self.__in2out() def decompress(self, gzFile, dst): self.fin = gzip.open(gzFile, 'rb') self.fout = open(dst, 'wb') self.__in2out() def __in2out(self): while True: buf = self.fin.read(self.bufSize) if len(buf) < 1: break self.fout.write(buf) self.fin.close() self.fout.close() def percent_encode(str): res = urllib.quote(str.decode('UTF8').encode('UTF8')) return res
注意事项
确保已正确配置AccessKey ID和AccessKey Secret。
对于实时日志分析,需要确保已开通实时日志服务并正确配置相关参数。
在进行日志分析时,请遵守相关法律法规和隐私政策。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1239831.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复