索引是一種存儲結構,用于對日志數據進行查詢。通過配置索引后,可對日志進行查詢和分析操作。不同的索引配置,則會產生不同的查詢和分析結果,請根據您的需要,合理配置索引。
日志示例
以下是一條典型日志,content字段值是日志原文,使用分隔符逗號將原始日志解析成3個字段level、status、message;
示例日志中的hostName、hostIP、pathFile是常見的內置保留字段,詳細內置字段請參考內置保留字段。
{
"hostName":"epstest-xx518",
"hostIP":"192.168.0.31",
"pathFile":"stdout.log",
"content":"error,400,I Know XX",
"level":"error",
"status":400,
"message":"I Know XX"
}
索引類型
云日志服務的索引類型如下:
表 1 索引類型表
| 索引類型 | 說明 |
|---|---|
| 全文索引 | 開啟全文索引后,日志服務根據您設置的分詞符將整條日志所有字段值拆分成多個詞并構建索引。用戶上傳的自定義標簽(label)字段,不包含全文索引中,如果您需要搜索自定義標簽字段,請添加對應的字段索引。LTS內置保留字段,不包含全文索引中,您需要通過字段索引Key:Value的方式進行搜索,請參考內置保留字段。 |
| 字段索引 | 配置字段索引后,您可以指定字段名稱和字段值(Key:Value)進行查詢,縮小查詢范圍。日志服務默認為部分內置保留字段創建字段索引,請參考內置保留字段。如果您的某個字段單獨配置了字段索引,那么該字段值的分詞符以字段索引配置為準。結構化配置中的的快速分析列已被移除,如果您要使用快速分析功能,則必須配置字段索引且開啟對應字段的快速分析按鈕。關于日志示例有兩種情況:在日志示例中,配置了level和status兩個字段索引,其中level是string類型,字段值是error,單獨配置了分詞符,status是long類型,不需要配置分詞符;您可以使用level : error的方式精確搜索level字段值為error的所有日志。在日志示例中,云日志服務LTS會默認為hostName、hostIP、pathFile這些內置保留字段創建字段索引。 |
注意事項
- 全文索引屬性和字段索引屬性必須至少啟用一種。
- 索引配置(新增、編輯、刪除字段,修改配置項等操作)只對新寫入的日志生效,歷史日志不會生效。當前不支持對歷史日志重建索引。
- 關閉索引后,歷史索引的存儲空間將在當前日志流的數據保存時間到期后,自動被清除。
- 日志服務默認已為部分內置保留字段創建字段索引,請參見內置保留字段。
- 不同的索引配置,會產生不同的查詢和分析結果,請根據您的需求,合理創建索引。全文索引和字段索引互不影響。
- 索引配置修改后,對新寫入的日志數據生效,歷史日志數據不會生效。
配置全文索引
-
登錄云服務日志控制臺,單擊“日志管理”。
-
在日志組列表中,單擊日志組名稱左側的
,選擇日志流,進入日志流管理界面。 -
在日志流詳情頁面,單擊右上角
,進入索引配置頁面。 -
在索引配置頁面中,默認開啟“全文索引”按鈕。
說明在索引配置頁面選擇自動配置時,默認獲取最近15分鐘的原始日志和內置字段的交集,LTS自動將原始日志和內置字段的交集、當前結構化字段、tag字段一起組成字段索引下方的表格數據。
若15分鐘內沒有原始日志,則獲取hostIP、hostName、pathFile、結構化字段、tag字段結合共同組成字段索引下方的表格數據。
ECS接入選擇結構化配置時,進入索引配置頁面,則會自動加上如下字段:category、 hostName、hostId、 hostIP、 hostIPv6、 pathFile,添加字段時,若某個字段已存在于索引配置,則不會重復添加。
CCE接入選擇結構化配置時,進入索引配置頁面,則會自動加上如下字段:category、 clusterId、 clusterName、 nameSpace、 podName、 containerName、 appName、 hostName、 hostId、 hostIP、 hostIPv6、 pathFile,添加字段時,若某個字段已存在于索引配置,則不會重復添加。
-
請參考表2配置參數信息。
表 2 自定義全文索引配置參數
| 參數 | 說明 |
|---|---|
| 全文索引 | 打開全文索引開關,表示創建全文索引。 |
| 大小寫敏感 | 查詢時是否區分英文字母的大小寫。打開大小寫敏感開關,則查詢時區分大小寫。例如示例日志含有Know,那么您只能使用Know才能查詢到該日志。關閉大小寫敏感開關,則查詢時不區分大小寫。例如示例日志含有Know,那么您使用關鍵字KNOW和know都能查到該日志。 |
| 包含中文 | 查詢時是否區分中英文。打開包含中文開關后,如果日志中包含中文,默認按照一元分詞法拆分中文內容,按照分詞符的設置拆分英文內容。一元分詞是指將中文字符串拆分為一個個獨立的中文字。使用一元分詞符的優點是對海量日志分詞效率高,其他中文分詞方法對寫入速度影響大。關閉包含中文開關后,按照分詞符的設置拆分所有內容。例如示例日志內容為:error,400,I Know 今天是星期一。關閉包含中文開關后,按照分詞符的設置拆分英文內容,日志會被拆分為error、400、I、Know、今天是星期一,您可以通過error或今天是星期一查找該日志。打開包含中文開關后,日志服務后臺分詞器將日志拆分為error、400、I、Know、今、天、是、星、期、一,您通過error或今天等詞都可以查找到該日志。 |
| 分詞符 | 根據指定分詞符,將日志內容拆分成多個詞。日志服務的默認分詞符為, '";=()[]{}@&<>/:\n\t\r。當默認設置不能滿足您的需求時,您可以自定義設置分詞符。所有的ASCII碼包括中文都可被定義為分詞符。如果設置分詞符為空,則字段值將被當成一個整體,您只能通過完整字符串或模糊查詢查找對應的日志。例如示例日志內容為:error,400,I Know 今天是星期一。如果不設置任何分詞符,整條日志被作為一個詞error,400,I Know 今天是星期一,您只能通過完整字符串error,400,I Know 今天是星期一或模糊查詢error,400,I K查找該日志。如果設置分詞符為逗號(,),則原始日志被拆分為error*、400、I Know 今天是星期一3個詞,您通過任意一個詞或詞的模糊查詢都可以找到該日志,例如error、400、Kn*、今天是*。如果設置分詞符為逗號(,)和空格,則原始日志被拆分為error、400、I、Know、今天是星期一5個詞,您通過任意一個詞或詞的模糊查詢都可以找到該日志,例如Know、今天是*。 |
| 特殊分詞符 | 單擊“添加特殊分詞符”,參考ASCII碼對照表輸入ASCII值。 |
- 完成后,單擊確定。
配置字段索引
創建字段索引時,最多支持添加500個字段。其中JSON類型字段,最多支持添加100個子字段。
說明字段索引的自定義分詞符和特殊分詞符僅支持白名單用戶提交工單申請使用。詳細操作請參考。
-
在索引配置頁面的字段索引下方,單擊“添加字段”,參考表3設置字段信息。
-
或者勾選字段,單擊批量配置,在批量配置頁面設置參數。

-
參考表3配置字段索引。
說明字段索引的參數配置僅對該字段生效。
當添加的字段在日志內容中不存在時,則配置的該索引字段無效。
表 3 自定義字段索引配置參數
| 參數 | 說明 |
|---|---|
| 字段名稱 | 日志字段名稱,例如示例日志中的level。字段名稱只能包括字母、數字或下劃線(),且只能以字母或下劃線()開頭,字段名稱中不能含有雙下劃線。 雙下劃線()在LTS不對用戶呈現的內置保留字段中使用,用戶自定義日志字段名中不能使用雙下劃線,否則無法配置字段索引名稱。 日志服務默認會對部分內置保留字段開啟字段索引,請參見內置保留字段。 |
| 類型 | 日志字段值(Value)的數據類型,可選值為string、long、float。long類型和float類型不支持設置大小寫敏感、包含中文和分詞符。 |
| 大小寫敏感 | 查詢時是否區分英文字母的大小寫。打開大小寫敏感開關,則查詢時區分大小寫。 例如示例日志message字段中含有Know,那么您只能使用message:Know才能查詢到該日志。 關閉大小寫敏感開關,則查詢時不區分大小寫。例如示例日志message字段中含有Know,那么您使用關鍵字message:KNOW和message:know都能查到該日志。 |
| 自定義分詞符 | 根據指定分詞符,將日志內容拆分成多個詞。日志服務的默認分詞符為, '";=()[]{}@&<>/:\n\t\r。 當默認設置不能滿足您的需求時,您可以自定義設置分詞符。所有的ASCII碼包括中文都可被定義為分詞符。 如果設置分詞符為空,則字段值將被當成一個整體,您只能通過完整字符串或模糊查詢查找對應的日志。 例如示例日志message字段內容為:I Know 今天是星期一。 如果不設置任何分詞符,整條日志被作為一個詞I Know 今天是星期一,您只能通過完整字符串message:I Know 今天是星期一或模糊查詢**message:I Know 今天是*查找該日志**。 如果設置分詞符為空格,則原始日志被拆分為I、Know、今天是星期一3個詞,您通過任意一個詞或詞的模糊查詢都可以找到該日志,例如message:Know或message:今天是星期一。 |
| 特殊分詞符 | 單擊“添加特殊分詞符”,參考ASCII碼對照表輸入ASCII值。 |
| 包含中文 | 查詢時是否區分中英文。打開包含中文開關后,如果日志中包含中文,默認按照一元分詞法拆分中文內容,按照分詞符的設置拆分英文內容。 一元分詞是指將中文字符串拆分為一個個獨立的中文字。使用一元分詞符的優點是對海量日志分詞效率高,其他中文分詞方法對寫入速度影響大。 關閉包含中文開關后,按照分詞符的設置拆分所有內容。例如示例日志message字段內容為:I Know 今天是星期一。 關閉包含中文開關后,按照分詞符的設置拆分英文內容,日志會被拆分為I、Know、今天是星期一,您可以通過message:Know或message:今天是星期一查找該日志。 打開包含中文開關后,日志服務后臺分詞器將日志拆分為I、Know、今、天、是、星、期、一,您通過message:Know或message:今天等詞都可以查找到該日志。 |
| 快速分析 | 默認為開啟狀態,開啟后,可以對字段值做采樣統計,請參見11.6.4-快速分析。 快速分析的原理是對搜索命中的日志采樣10萬條進行數據統計,不是全量統計。快速分析的字段長度最大為2000字節。快速分析字段展示前100條數據。 |
| 操作 | 單擊 ,刪除添加的自定義字段。 |
- 完成后,單擊“確定”。
自動配置字段索引
在創建字段索引時,您可以單擊自動配置,日志服務會自動添加一些字段索引,您可以根據自己的需要增加或者刪除字段:
- 日志服務會根據采集時預覽數據中的第一條內容,自動生成字段索引。
- 日志服務會選取幾個最常見的內置保留字段添加到字段索引中(例如hostIP、hostName、pathFile)。
ASCII碼對照表
表 4 ASCII碼對照表
| ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 |
|---|---|---|---|---|---|---|---|
| 0 | NUL(空字符) | 32 | 空格 | 64 | @ | 96 | ` |
| 1 | SOH(標題開始) | 33 | ! | 65 | A | 97 | a |
| 2 | STX(正文開始) | 34 | " | 66 | B | 98 | b |
| 3 | ETX(正文結束) | 35 | # | 67 | C | 99 | c |
| 4 | EOT(傳輸結束) | 36 | $ | 68 | D | 100 | d |
| 5 | ENQ(詢問字符) | 37 | % | 69 | E | 101 | e |
| 6 | ACK(確認回應) | 38 | & | 70 | F | 102 | f |
| 7 | BEL(響鈴) | 39 | ' | 71 | G | 103 | g |
| 8 | BS(退格) | 40 | ( | 72 | H | 104 | h |
| 9 | HT(水平定位符號,制表符) | 41 | ) | 73 | I | 105 | i |
| 10 | LF(換行) | 42 | ***** | 74 | J | 106 | j |
| 11 | VT(垂直定位符號) | 43 | + | 75 | K | 107 | k |
| 12 | FF(換頁鍵) | 44 | , | 76 | L | 108 | l |
| 13 | CR(歸位鍵) | 45 | - | 77 | M | 109 | m |
| 14 | SO(取消變換) | 46 | . | 78 | N | 110 | n |
| 15 | SI(啟用變換) | 47 | / | 79 | O | 111 | o |
| 16 | DLE(跳出數據通訊) | 48 | 0 | 80 | P | 112 | p |
| 17 | DC1(設備控制1) | 49 | 1 | 81 | Q | 113 | q |
| 18 | DC2(設備控制2) | 50 | 2 | 82 | R | 114 | r |
| 19 | DC3(設備控制3) | 51 | 3 | 83 | S | 115 | s |
| 20 | DC4(設備控制4) | 52 | 4 | 84 | T | 116 | t |
| 21 | NAK(確認失敗回應) | 53 | 5 | 85 | U | 117 | u |
| 22 | SYN(同步用暫停) | 54 | 6 | 86 | V | 118 | v |
| 23 | ETB(區塊傳輸結束) | 55 | 7 | 87 | W | 119 | w |
| 24 | CAN(取消) | 56 | 8 | 88 | X | 120 | x |
| 25 | EM(連接介質中斷) | 57 | 9 | 89 | Y | 121 | y |
| 26 | SUB(替換) | 58 | : | 90 | Z | 122 | z |
| 27 | ESC(跳出) | 59 | ; | 91 | [ | 123 | { |
| 28 | FS(文件分割符) | 60 | < | 92 | |124 | ** | ** |
| 29 | GS(組群分隔符) | 61 | = | 93 | ] | 125 | } |
| 30 | RS(記錄分隔符) | 62 | > | 94 | ^ | 126 | ~ |
| 31 | US(單元分隔符) | 63 | ? | 95 | _ | 127 | DEL(刪除) |
,選擇日志流,進入日志流管理界面。
,進入索引配置頁面。
,刪除添加的自定義字段。