什么是SLS
阿里云日志服务(Log Service)快速分析功能提供给用户一键交互式查询体验,意图帮助用户快速分析某一字段在一段时间内的分布情况,减少用户索引关键数据的成本。通过快速采集,用户可以在阿里云平台进行(Syslog、accesslog)日志分析,也可以将日志导入到kafka消息队列、ODPS(类似mapreduce)进行分析,从而快速发现技术故障、漏洞与风控欺诈问题。

前几年吹得比较火的”态势感知”,很多做安全概念的公司到客户的公司环境一看,发现连日志都没有,于是转变成了重点攻克日志采集与日志存储。若是大公司和国企如电信等,光是日志收集采集清楚覆盖全,就已经能够他们忙活大半年了。
快速入门(QuickStart)
云控制台安装与配置
阿里云日志服务SLS的入口在这里https://sls.console.aliyun.com/
可以新建一个project,然后选择对应的区域(region),区域(region)与后续SDK中的endpoint有关,在此Demo中我建议选择“华北5”,因为下面例子以华北5为例。

- 一路点下去,直到完成一个Logstore的生成,在”数据接入向导”的地方,选择自定义数据中的API/SDK,这个用起来最简单且不需其他依赖。
logstore的安装与发包测试
完成云控制台的配置之后,我们可以下载python版本的SDK和Java版本的SDK进行试用了。其中资料可以在附录中找到。
以python版本的SDK为例,Sample代码下载下来后,你遇到的一个重要问题肯定是Endpoint如何填写以及accessid,accesskey的填写。endpoint如果是华北5的话可以填写cn-huhehaote.log.aliyuncs.com,其他Region的话需要自己找。
仔细阅读SDK中的sample.py代码,你会发现技术体系包含project,logstore,topic。前两个都是你在控制台填写的名称,后面这个topic是SDK中传需的,它将在”日志查询”中用于筛选日志。

- python的SDK的使用大致如下,如果你靠复制粘贴使用时报错,可能你需要下载附录中阿里云的SLS三方库。
#!/usr/bin/env python#encoding: utf-8import timefrom aliyun.log.logexception import LogExceptionfrom aliyun.log.logitem import LogItemfrom aliyun.log.logclient import LogClientfrom aliyun.log.getlogsrequest import GetLogsRequestfrom aliyun.log.putlogsrequest import PutLogsRequestfrom aliyun.log.listtopicsrequest import ListTopicsRequestfrom aliyun.log.listlogstoresrequest import ListLogstoresRequestfrom aliyun.log.gethistogramsrequest import GetHistogramsRequestfrom aliyun.log.index_config import *from aliyun.log.logtail_config_detail import *from aliyun.log.machine_group_detail import *from aliyun.log.acl_config import *def sample_put_logs(client, project, logstore):topic = 'log_demo'source = ''contents = [('key_1', 'key_1'),('key_2', 'key_2'),('key_3', 'key_3'),('avg', '30')]logitemList = [] # LogItem listlogItem = LogItem()logItem.set_time(int(time.time()))logItem.set_contents(contents)for i in range(0, 1) :logitemList.append(logItem)request = PutLogsRequest(project, logstore, topic, source, logitemList)response = client.put_logs(request)response.log_print()if __name__=='__main__':endpoint = 'cn-huhehaote.log.aliyuncs.com'accessKeyId = ''accessKey = ''project = 'leguhuabei5'logstore = 'legu_test001'token = ""client = LogClient(endpoint, accessKeyId, accessKey,token)try :i = 0while (i<1000):sample_put_logs(client, project, logstore)time.sleep(1)except LogException, e:print e
正常运行时会是如下这样子的反馈:
查看采集结果
- 在阿里云官网云控制台,可以点击”日志消费”下的预览查看服务端收集到的日志,”查询分析”处也可以查看采集到的日志。

逻辑与概念
webTracking是什么? — 不知道,暂不计划在这里讲。
其他几种日志类型,如logtail采集、nginx采集如何使用? — 不知道,暂不计划在这里讲。
如何使用logtail采集? — 不知道,暂不计划在这里讲。
附录
- 官方教程(显然并不是站在使用者角度写的,文档组织结构该换一种表达方式 … )
https://help.aliyun.com/document_detail/43772.html?spm=a2c4g.11186623.4.1.y8zn9e
- Endpoint的文档看这里
[https://help.aliyun.com/document_detail/29008.html?spm=5176.2020520112.108.1.52d234c0ucMr2t](https://help.aliyun.com/document_detail/29008.html?spm=5176.2020520112.108.1.52d234c0ucMr2t)
- python版本的SDK
[https://github.com/aliyun/aliyun-log-python-sdk?spm=a2c4g.11186623.2.5.JjeNlC](https://github.com/aliyun/aliyun-log-python-sdk?spm=a2c4g.11186623.2.5.JjeNlC)
- Java版本的SDK
[https://help.aliyun.com/document_detail/29068.html?spm=a2c4g.11186623.6.825.ODmyJ4](https://help.aliyun.com/document_detail/29068.html?spm=a2c4g.11186623.6.825.ODmyJ4)
