类别 | 描述 | 配置方式 |
全文索引 | 全文索引将原始日志整体切分为多个分词进行索引构建,检索时直接通过关键词进行检索(即全文检索)例如:输入 error 表示检索包含 error 关键词的日志 | 控制台:在索引配置页面中,开启全文索引 |
键值索引 | 键值索引将原始日志按字段(即 key:value)分别切分为多个分词进行索引构建,检索时基于键值方式进行检索(即键值检索)例如:输入 level:error 表示检索 level 字段中包含 error的日志 | 控制台:在索引配置页面中,开启键值索引,并填写对应的字段名称(即key),例如 level |
元数据索引 | 元数据索引也是键值索引的一种,但字段名称会以__TAG__作为前缀进行标识,常用于对日志进行分类例如输入__TAG__.region:"ap-beijing" 表示检索元数据中 region 字段为ap-beijing 的日志 | 控制台:在索引配置页面中,开启键值索引,并填写对应元数据字段名称(即 key),例如 __TAG__.region |
__CONTENT__
字段中,仅支持配置全文索引。如需为其中的部分内容配置键值索引或开启统计,需在采集配置中进行 日志结构化 处理,使用除单行全文和多行全文以外的日志采集提取模式。配置项 | 功能描述 |
全文分词符 | 对原始日志进行分词的字符集合,仅支持英文符号,控制台默认分词符 @&?|#()='",;:<>[]{}/ \\n\\t\\r 注意: 如果分词过长,仅会对其中前10000个字符建立索引,超出部分无法进行检索,但仍会完整存储日志。 |
大小写敏感 | 检索时是否对大小写敏感例如日志为 Error,若大小写敏感,则使用 error 无法检索到该条日志 |
是否包含中文 | 日志中包含中文且需要对中文进行检索时可开启该功能例如日志原文为“用户登录接口超时”,若未开启该功能,搜索“超时”无法检索到该日志,只有完整的搜索“用户登录接口超时”才能检索到该日志,开启该功能后便可通过搜索“超时”检索到该日志 |
10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200
IP: 10.20.20.10request: GET /online/sample HTTP/1.1status: 200time: [2018-07-16 13:12:57]
@&()='",;:<>[]{}/ \\n\\t\\r
(包含空格),则原始日志的所有字段值会切分为如下关键词(每行表示一个关键词):10.20.20.10GETonlinesampleHTTP1.12002018-07-16131257
\\/online\\/login
\\
用于转义/
符号(该符号为检索语法保留符号,因此需要转义)。/
符号是分词符,因此实际的检索条件为 online OR login
,日志中只要包含 online 或 login,即符合检索条件。"/online/login"
/
符号无需再进行转义。login
,不符合该检索条件。"/online/sample"
online
和sample
,且顺序与检索条件一致,符合该检索条件。key:value
,例如status:200
。若不指定字段名,则会当成全文检索处理。内置保留字段 | 说明 |
__FILENAME__ | 日志采集的文件名,可以利用该字段检索特定文件下的日志,例如 __FILENAME__:"/var/log/access.log" 检索 /var/log/access.log 文件的日志 |
__SOURCE__ | 日志采集的源 IP,可以利用该字段检索特定机器下的日志,例如 __SOURCE__:192.168.10.10 检索192.168.10.10 机器的日志 |
__HOSTNAME__ | 日志来源机器名称,可以利用该字段检索特定机器下的日志,需使用2.7.4及以上版本的 Loglistener 才会采集该字段。 |
__TIMESTAMP__ | 日志时间戳(毫秒级别 Unix 时间戳),按时间范围检索日志时,将自动使用该时间对日志进行检索,在控制台显示为“日志时间” |
__PKG_LOGID__ |
配置项 | 功能描述 | 说明 |
字段名称 | 注意: 单个日志主题键值索引最多可添加300个字段。 | - |
数据类型 | 字段的数据类型,包括 text、long、double 三种类型,其中 text 类型支持使用通配符进行模糊检索,long、double 类型支持通过数值范围进行检索。注意: 1. long 类型字段支持数据范围为-1E15 ~ 1E15,超出该范围的数据可能会丢失精度或不支持检索,超长数值字段索引配置建议: 如果不需要通过数值范围比较来检索该字段,可将该字段存储为 text 类型。 如果需要通过数值范围比较来检索该字段,可将该字段存储为 double 类型,可能会丢失部分精度。 2. double 类型字段支持数据范围为-1.79E+308 ~ +1.79E+308,如果浮点数编码位数超过64位,会造成精度丢失。 | long - 整型(Int 64) double - 浮点型(64 bit)double text - 字符串 |
分词符 | 对字段值进行分词的字符集合,仅支持英文符号。 注意: 如果分词过长,仅会对其中前10000个字符建立索引,超出部分无法进行检索,但仍会完整存储日志。 | 控制台默认分词符 @&?|#()='",;:<>[]{}/ \\n\\t\\r |
包含中文 | 字段中包含中文且需要对中文进行检索时可开启该功能。例如日志原文为“用户登录接口超时”,若未开启该功能,搜索“超时”无法检索到该日志,只有完整的搜索“用户登录接口超时”才能检索到该日志,开启该功能后便可通过搜索“超时”检索到该日志。 | - |
开启统计 | 启用后可对该字段使用 SQL 进行统计分析,如 group by ${key} ,sum(${key}) 等。注意: text 类型字段开启统计时,如果值过长,仅前32766个字符参与统计运算(即 SQL)。如果字段包含中文,超出32766字符时该日志将丢失,建议存在该可能性时为该字段关闭统计。 | 属于键值索引功能的一部分,不单独计费 |
大小写敏感 | 检索时是否对大小写敏感 例如日志为 level:Error,若大小写敏感,则使用 level:error 无法检索到该条日志。 | - |
10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200
IP: 10.20.20.10request: GET /online/sample HTTP/1.1status: 200time: [2018-07-16 13:12:57]
字段名称 | 字段类型 | 分词符 | 包含中文 | 开启统计 |
IP | text | @&()='",;:<>[]{}/ \\n\\t\\r | 否 | 是 |
request | text | @&()='",;:<>[]{}/ \\n\\t\\r | 否 | 是 |
status | long | 无 | 否 | 是 |
time | text | @&()='",;:<>[]{}/ \\n\\t\\r | 否 | 是 |
request:\\/online\\/login
\\
用于转义/
符号(该符号为检索语法保留符号,因此需要转义)。/
符号是分词符,因此实际的检索条件为 online OR login
,日志中只要包含 online 或 login,即符合检索条件。request:"/online/login"
/
符号无需再进行转义。login
,不符合该检索条件。request:"/online/sample"
online
和sample
,且顺序与检索条件一致,符合该检索条件。request:"/online/login" | select count(*) as logCounts
* | select count() as logCounts,request group by request order by count() desc limit 10
LogTag
字段传递(详情可参见 上传结构化日志 中的LogTag
字段 ),而原始日志内容通过 Log
字段传递。所有通过LogTag
传递的数据,配置索引时,均需配置元数据索引。元数据索引其实也归属键值索引,索引规则以及配置方式与键值索引相同,唯一差别在于,元数据字段有特定前缀__TAG__.
进行标识,例如:配置region
元数据字段的索引为 __TAG__.region
。10.20.20.10;[2018-07-16 13:12:57];GET /online/sample HTTP/1.1;200
IP: 10.20.20.10request: GET /online/sample HTTP/1.1status: 200time: [2018-07-16 13:12:57]__TAG__.region:ap-beijing
字段名称 | 分词符 |
__TAG__.region | @&()='",;:<>[]{}/ \\n\\t\\r |
__TAG__.region:"ap-beijing"
,可以检索到该示例日志。配置项 | 含义 | 推荐配置 |
内置保留字段包含至全文索引 | 包含:全文索引包含 __FILENAME__ 、__HOSTNAME__ 及__SOURCE__ 这三个内置字段,同时支持全文检索及键值检索,例如"/var/log/access.log" 、__FILENAME__:"/var/log/access.log" 。不包含:全文索引不包含上述三个内置字段,只能使用键值检索,例如 __FILENAME__:"/var/log/access.log" 。 | 包含 |
元数据字段包含至全文索引 | 包含:全文索引包含所有元数据字段(前缀为 __TAG__ 的字段),可直接使用全文检索的方式检索相关日志字段,例如ap-beijing 。不包含:全文索引不包含任何元数据字段,只能使用键值检索的方式检索相关日志字段,例如 __TAG__.region:ap-beijing 。低频日志主题不支持键值检索,此时将无法检索这些字段。仅包含开启键值索引元数据字段:全文索引包含开启了键值索引的元数据字段,不包含未开启键值索引的元数据字段,低频日志主题无该选项。 | 包含 |
日志创建索引异常存储规则 | 日志创建索引过程中如果出现异常,CLS 为了确保日志不丢失,会将原始日志存储在 __RAWLOG__ 中。如果此时仅部分字段创建索引失败,可将失败的部分存储在指定字段中(默认为 RAWLOG_FALL_PART),详见 日志创建索引异常处理规则。 | 启用 |
{"kye1": "http://www.example.com","kye2": {"address": {"country": "中国","city": {"name": "北京","code": "065001"}},"contact": {"phone": {"home": "188xxxxxxxx","work": "187xxxxxxxx"},"email": "xxx@xxx.com"}},"kye3": {"address": {"country": "中国","city": {"name": "北京","code": "065001"}},"contact": {"phone": {"home": "188xxxxxxxx","work": "187xxxxxxxx"},"email": "xxx@xxx.com"}}}
{"Time": 1645065742008,"TopicId": "f813385f-aee0-4238-xxxx-c99b39aabe78","TopicName": "TestJsonParse","Source": "172.17.0.2","FileName": "/root/testLog/jsonParse.log","PkgId": "5CB847DA620DB3D4-10D","PkgLogId": "65536","HighLights": [],"Logs": null,"LogJson": "{\\"kye1\\":\\"http://www.example.com\\",\\"kye2\\":{\\"address\\":\\"{\\\\\\"country\\\\\\":\\\\\\"中国\\\\\\",\\\\\\"city\\\\\\":{\\\\\\"name\\\\\\":\\\\\\"北京\\\\\\",\\\\\\"code\\\\\\":\\\\\\"065001\\\\\\"}}\\",\\"contact\\":\\"{\\\\\\"phone\\\\\\":{\\\\\\"home\\\\\\":\\\\\\"188xxxxxxxx\\\\\\",\\\\\\"work\\\\\\":\\\\\\"187xxxxxxxx\\\\\\"},\\\\\\"email\\\\\\":\\\\\\"xxx@xxx.com\\\\\\"}\\"},\\"kye3\\":\\"{\\\\\\"address\\\\\\":{\\\\\\"country\\\\\\":\\\\\\"中国\\\\\\",\\\\\\"city\\\\\\":{\\\\\\"name\\\\\\":\\\\\\"北京\\\\\\",\\\\\\"code\\\\\\":\\\\\\"065001\\\\\\"}},\\\\\\"contact\\\\\\":{\\\\\\"phone\\\\\\":{\\\\\\"home\\\\\\":\\\\\\"188xxxxxxxx\\\\\\",\\\\\\"work\\\\\\":\\\\\\"187xxxxxxxx\\\\\\"},\\\\\\"email\\\\\\":\\\\\\"xxx@xxx.com\\\\\\"}}\\"}"}
{"Time": 1645065742008,"TopicId": "f813385f-aee0-4238-xxxx-c99b39aabe78","TopicName": "zhengxinTestJsonParse","Source": "172.17.0.2","FileName": "/root/testLog/jsonParse.log","PkgId": "25D0A12F620DBB64-D3","PkgLogId": "65536","HighLights": [],"Logs": null,"LogJson": "{\\"kye1\\":\\"http://www.example.com\\",\\"kye2\\":{\\"address\\":\\"{\\\\\\"city\\\\\\":{\\\\\\"code\\\\\\":\\\\\\"065001\\\\\\",\\\\\\"name\\\\\\":\\\\\\"北京\\\\\\"},\\\\\\"country\\\\\\":\\\\\\"中国\\\\\\"}\\",\\"contact\\":{\\"phone\\":{\\"work\\":\\"187xxxxxxxx\\",\\"home\\":\\"188xxxxxxxx\\"},\\"email\\":\\"xxx@xxx.com\\"}},\\"kye3\\":{\\"address\\":{\\"country\\":\\"中国\\",\\"city\\":{\\"code\\":\\"065001\\",\\"name\\":\\"北京\\"}},\\"contact\\":{\\"phone\\":{\\"work\\":\\"187xxxxxxxx\\",\\"home\\":\\"188xxxxxxxx\\"},\\"email\\":\\"xxx@xxx.com\\"}}}"}
__RAWLOG__
中,作为兜底的异常处理方式。__RAWLOG__
仅支持全文检索(需开启全文索引),不支持键值检索、键值索引及统计分析。产生异常的日志,开启全文索引后,仍按照原始日志全文计算索引流量、索引存储及对应费用,不产生额外费用。__RAWLOG__
字段,只能使用全文检索。__RAWLOG__
字段,又具备创建索引成功的部分字段(该部分字段支持正常配置键值索引及统计分析)。在“索引配置-高级设置”中还可以将异常部分的字段存储在指定字段中(默认为 RAWLOG_FALL_PART,支持配置键值索引及统计分析)。
本页内容是否解决了您的问题?