天天看點

大資料産品日志服務問題排查思路

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 [email protected];

GRANT Read, List ON PROJECT ODPS_PROJECT_NAME TO USER [email protected];

GRANT Describe, Alter, Update ON TABLE ODPS_TABLE_NAME TO USER [email protected];

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+)s

1

+[([^]]+)](S+ [d+]) | (W+sS+ [sS]*)

56.如果主賬号删除project提示權限不足,可以看下是否配置了CDN産品的投遞日志

  1. [

繼續閱讀