大数据产品日志服务问题排查思路

1.使用Nginx配置要和服务器的的Nginx的配置一致。
2.数据投递到maxCompute丢失,考虑下日志服务中是否包含了/,会被maxCompute丢弃
3.需要把group by order by的字段设置成索引。
4.默认查询的时候,分钟级别数据一定是严格有序的。但是一分钟内,多个s级别数据不一定有序。如果有严格要求,可以使用排序语句
5.分词符包含的符号不允许再查询时整体查找(并且不建议使用中文符号作为分词符,如【】)。
6.count_if(x)/count()出来是整型的,需要0.1变成double
7.通过rsync复制的日志可能会采集重复。
8.K8S集群采集日志阿里云的NAS文件系统管理 挂载到容器需要将logtail也挂载到这个nas
9.where ip = "192.168.0.1"报错,需改成单引号
10.json格式的数据key必须是英文,gbk的话搜索中文时也有可能返回不符合条件的数据
11.同一时刻运行的SQL并发最大为15
12.logstore和RDS关联查询仅支持,北京、青岛、杭州。可以把日志服务迁移到青岛,RDS可以在上海
13.想要查询必须添加字段为索引字段或者开启了全文索引
14.跨region访问日志服务只能走公网入口,会有一定的延迟,建议使用全球加速。全球加速不会影响现有业务
15.ip_to_country(ip,'en')和ip_to_country_code(ip) 结果一样,语义不一样,一个是英文国家名,一个是国家编码
16.日志服务不支持删除日志数据(可以设置日志保存时间),也不支持Quick BI,一个文件只能被一个Logtail采集
17.直接搜索和* and 字段:关键字。直接搜索是全文检索,另一个是字段检索。
18.投递到OSS,如果需要删除OSS的日志,需要进行OSS的设置,设置生效要过了当天的12:00
19.现搜索的__time__不准确,可查询服务器的时区是否是UTC
20.不支持使用代码中的方法获取sql的结果数量,如果想要获取sql结果数量,可以在SQL外层嵌套count(1)获取行数
21.K8S容器,一个物理机上的所有容器对应一个logtail容器。
22.internal-alert-history 不可删除
23.自定义域名在全球加速中遇到。
24.索引包含中文生效以后之前的数据不会再生效,并且可以进行拆分查找。
25.split log lines fail:please check log_begin_regex 需查看行首正则表达式
26.web Tracking 默认支持https
27.目前日志服务查询时间范围指定,确实只支持精确到分,不支持精确到秒的,即使以前支持配置精确到秒,实际上还是有分钟级别的误差的
28.from后面只能加log,如果想使用count(*)可以使用group by
29.SDK支持跨logstore查询,界面不支持。
30.livetail除非集群或者docker,否则只能采集单台机器的日志
31.查询的索引显示null,是文本文档的格式,不支持,建议使用文本的索引来实现。
32.目前只支持中国地图,世界地图,高德地图。
33.换行符,定位不到,不支持,换行符也无法高亮显示
34.投递到maxCompute报权限问题。ODPS-0420095: Access Denied - Authorization Failed [4019], You have NO privilege 'odps:Describe' on {acs:odps:*:projects//tables/}.
应该是因为默认添加的权限丢失,在MaxCompute上运行下面三个命令重新添加一下权限,ODPS_PROJECT_NAME ODPS_TABLE_NAME替换成自己的项目名和表名
ADD USER aliyun$shennong_open@aliyun.com;
GRANT Read, List ON PROJECT ODPS_PROJECT_NAME TO USER aliyun$shennong_open@aliyun.com;
GRANT Describe, Alter, Update ON TABLE ODPS_TABLE_NAME TO USER aliyun$shennong_open@aliyun.com;

35.ListTopics 接口后续不再维护了,可能出现topic获取不全的情况
36.目前默认project下的logstore和shard限制都是200,正常情况都是够用的,尽量都建议合并同类日志使用相同logstore
37.jmespath.exceptions.UnknownFunctionError: Unknown function: map()
需要升级python版本到3.6 重新安装客户端测试一下,多半是版本兼容性的问题。
38.服务端5分钟内至多收到一次通知,每个机器人每分钟最多发送20条。
39.导出日志如果只有100条的话建议加上limit N 这里N取一个足够大的值,比如100000
40.目前还不支持使用代码中的方法获取sql的结果数量,如果想要获取sql结果数量,可以在SQL外层嵌套count(1)获取行数
41.日志服务一直显示"服务开通中,请稍等1分钟后进行重试",如果确认主账号绑定了ak,可以考虑是否开通了日志服务,开通地址:https://common-buy.aliyun.com/?commodityCode=sls#/open
42.sls告警多条告警的时候只能告警出来一条。
43.关键词过滤只有30个,超出的需要加到where条件里
44.分词符是ASCII码的,不能加上中文的【】您需要为该字段打开包含中的选项,去掉分词符中的【】,点击查询时关键字中会自动带上 【】,就可以查询出结果了
45.date_parse(substr(time,1,19),'%Y-%m-%d %T')用于配置2011-11-11 11:11:11.111
46.app_info.json文件ip相同。查询时候通过这个IP进行搜索会同时过滤出这几台的日志,其他基本无影响。IP是相同的吗?不影响采集,查询时候不能通过__source__ 进行过滤
47.告警包含source和路径。- [Context] ${Results[0].FireResult.__source__}和- [Context] ${Results[0].FireResult.__tag__:__path__}
48.判断null可以使用: length("result.data.token") = 0
49.getLogs方法 目前SQL分析返回的字段长度不能超过2K;关键字过滤返回字段长度不超过10K,没办法改变这个限制的。
50.dataworks投递日志时字段: time 用 C_LogTime;__source__ 用 C_Source;__topic__ 用 C_Topic;tag字段,使用冒号后面的字段
51.日志服务订阅仪表盘权限:CreateJob。project级别的
修改,取消,查看等: CreateJob、UpdateJob、GetJob、ListJobs、DeleteJob
52.关闭统计功能之后写入的数据没办法通过SQL查询,返回的就是null,可以通过select * from log where进行过滤
53.控制台分享内嵌进自建网站iframe里,默认不支持设置黑色主题,如果是浏览器直接添加?theme=dark,iframe中需要增加sls_iframe=true

54.关闭统计功能之后写入的数据没办法通过SQL查询,返回的就是null,可以通过select * from log where进行过滤

55.样例日志:
2019-09-24 10:12:54.764 | INFO |[event-bus-Executor1] c.c.m.i.base.service.DLockTemplate [86] | 分布式锁 unLock key=com.cfpamf.ms.insur.admin.event.handler.OrderCommissionHandlerCIC190924LWRNIYS
手写正则匹配:(d+-d+-d+ d+:d+:d+.d+) |(sS+)s1+[([^]]+)](S+ [d+]) | (W+sS+ [sS]*)

56.如果主账号删除project提示权限不足,可以看下是否配置了CDN产品的投递日志


  1. [
上一篇:maxCompute(ODPS)问题排查思路


下一篇:阿里云人脸识别典型问题处理