云服务器内容精选
-
背景信息 Log4j是Apache的一个开源项目,通过使用Log4j工具,我们可以将日志输出并保存到日志文件中,开发或运维人员会基于该日志统计日志级别的数量和占比,或者通过运行日志统计业务数据。 如统计今天某商品的交易量,示例日志如下: 2020-12-28_21:10:48.081 [http-nio-8083-exec-6] INFO discounted shoes - num is :9
-
配置字段索引 创建字段索引时,最多支持添加500个字段。其中JSON类型字段,最多支持添加100个子字段。 字段索引的自定义分词符和特殊分词符仅支持白名单用户提交工单申请使用。详细操作请参考提交工单。 配置全文索引后,在索引配置页面的 日志分析 下方,单击开启可视化后,配置的字段索引支持SQL可视化分析,否则无法查询到ICAgent结构化的可视化数据。 设置快速分析采样条数,默认值10万条,最小值为10万条,最大值1000万条。通过采样快速统计字段值取值分布,并非对全量数据进行分析,采样条数越多分析数据越慢。 在索引配置页面的字段索引下方,单击“添加字段”,配置字段索引。具体的参数配置请参考表5 自定义字段索引配置参数。 字段索引的参数配置仅对该字段生效。 当添加的字段在日志内容中不存在时,则配置的该索引字段无效。 更多内置字段请参考内置保留字段。 自动配置字段索引:单击“自动配置”, 云日志 服务会根据采集时预览数据中的第一条内容或常见内置保留字段(例如hostIP、hostName、pathFile)自动生成字段索引,您可以根据自己的需要增加或者删除字段。 批量配置字段索引:批量勾选字段,单击“批量配置”,进行批量配置字段索引。 表3 自定义字段索引配置参数 参数 说明 字段名称 日志字段名称,例如示例日志中的level。 字段名称只能包括字母、数字或下划线(_),且只能以字母或下划线(_)开头,字段名称中不能含有双下划线。 说明: 双下划线(__)在LTS不对用户呈现的内置保留字段中使用,用户自定义日志字段名中不能使用双下划线__,否则无法配置字段索引名称。 日志服务默认会对部分内置保留字段开启字段索引,请参见内置保留字段。 若是内置字段,在字段名称后会显示“内置”字眼,方便用户识别。 执行操作 显示字段的添加状态:新增、不修改、修改、删除。索引字段有变动后,单击“修改对比”,即可查看原配置内容与修改后配置内容的差异。 显示新增的字段不支持修改执行操作。 修改类型、大小写敏感、自定义分词符、特殊分词符、包含中文、快速分析时,会与原索引配置中的字段进行对比,若任意一项不同,则执行操作变为“修改”。 索引配置单击确定后,不会保存执行操作为“删除”的字段。 类型 日志字段值(Value)的数据类型,可选值为string、long、float、json。 说明: 字段json类型只对ICAgent结构化解析生效,对云端结构化解析不生效。 long类型和float类型不支持设置大小写敏感、包含中文和分词符。 大小写敏感 查询时是否区分英文字母的大小写。 打开大小写敏感开关,则查询时区分大小写。例如示例日志message字段中含有Know,那么您只能使用message:Know才能查询到该日志。 关闭大小写敏感开关,则查询时不区分大小写。例如示例日志message字段中含有Know,那么您使用关键字message:KNOW和message:know都能查到该日志。 自定义分词符 根据指定分词符,将日志内容拆分成多个词。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的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条数据。 操作 单击,删除添加的自定义字段。 图1 批量配置 完成后,单击“确定”。
-
内置保留字段 在采集日志时,云日志服务会将采集时间、日志类型、主机IP等信息以Key-Value对的形式添加到日志中,这些字段是云日志服务的内置字段。 使用API写入日志数据或添加ICAgent配置时,请不要将字段名称设置为内置保留字段,否则可能会造成字段名称重复、查询不精确等问题。 日志服务为日志数据增加的内置保留字段当前免费,后续会按照按量付费方式正常收费(为其开启索引时也会产生少量索引流量及存储费用)。更多信息请参见价格计算器。 用户自定义日志字段名称中不能使用双下划线__,否则无法配置索引。 表4 内置保留字段说明 内置保留字段 数据格式 索引与统计设置 说明 collectTime 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为collectTime创建字段索引,索引数据类型为long类型。 查询时输入collectTime : xxx。 采集时间,指日志被采集器ICAgent采集时的时间。 例如示例中的"collectTime":"1681896081334",转换成标准时间是2023-04-19 17:21:21 __time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为time创建字段索引,索引数据类型为long类型。该字段不支持查询。 日志时间,指的是日志在控制台页面展示的日志时间。 例如示例中的"__time__":"1681896081334",转换成标准时间是2023-04-19 17:21:21 日志时间默认使用采集时间,也支持自定义日志时间。 lineNum 整型 索引设置:开启索引后,日志服务默认为lineNum创建字段索引,索引数据类型为long类型。 行号(偏移量),用来排序日志。 非高精度日志会根据collectTime生成,默认是collectTime * 1000000 + 1,高精度日志就是用户上报的纳秒值。 例如示例中的"lineNum":"1681896081333991900"。 category 字符串 索引设置:开启索引后,日志服务默认为category创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入category: xxx。 日志类型,表示该日志的来源。 例如ICAgent采集的日志该字段为LTS,某云服务例如D CS 上报的日志该字段为DCS。 clusterName 字符串 索引设置:开启索引后,日志服务默认为clusterName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入clusterName: xxx。 集群名称,k8s场景下集群名称。 例如示例中的"clusterName":"epstest"。 clusterId 字符串 索引设置:开启索引后,日志服务默认为clusterId创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入clusterId: xxx。 集群ID,k8s场景下集群ID。例如示例中的"clusterId":"c7f3f4a5-xxxx-11ed-a4ec-0255ac100b07"。 nameSpace 字符串 索引设置:开启索引后,日志服务默认为nameSpace创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入nameSpace: xxx。 命名空间,k8s场景下命名空间。 例如示例中的"nameSpace":"monitoring"。 appName 字符串 索引设置:开启索引后,日志服务默认为appName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入appName: xxx。 组件名称,k8s场景下工作负载的名称。 例如示例中的"appName":"alertmanager-alertmanager"。 serviceID 字符串 索引设置:开启索引后,日志服务默认为serviceID创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入serviceID: xxx。 工作负载ID,k8s场景下工作负载ID。 例如示例中的"serviceID":"cf5b453xxxad61d4c483b50da3fad5ad"。 podName 字符串 索引设置:开启索引后,日志服务默认为podName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入podName: xxx。 POD名称,k8s场景下POD名称。 例如示例中的"podName":"alertmanager-alertmanager-0"。 podIp 字符串 索引设置:开启索引后,日志服务默认为podIp创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入podIp: xxx。 pod的ip,k8s场景下pod的IP地址。 例如示例中的"podIp":"10.0.0.145"。 containerName 字符串 索引设置:开启索引后,日志服务默认为containerName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入containerName: xxx。 容器名称,k8s场景下容器名称。 例如示例中的"containerName":"config-reloader"。 hostName 字符串 索引设置:开启索引后,日志服务默认为hostName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostName: xxx。 主机名称,ICAgent所在主机的名称。 例如示例中的"hostName":"epstest-xx518"。 hostId 字符串 索引设置:开启索引后,日志服务默认为hostId创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostId: xxx。 主机ID,ICAgent所在主机的id,该id由ICAgent生成。例如示例中的"hostId":"318c02fe-xxxx-4c91-b5bb-6923513b6c34"。 hostIP 字符串 索引设置:开启索引后,日志服务默认为hostIP创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostIP: xxx。 主机IP,日志采集器所在主机的ip(适用于ipv4场景) 例如示例中的"hostIP":"192.168.0.31"。 hostIPv6 字符串 索引设置:开启索引后,日志服务默认为hostIPv6创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostIPv6: xxx。 主机IP,日志采集器所在主机的ip(适用于ipv6场景) 例如示例中的"hostIPv6":""。 pathFile 字符串 索引设置:开启索引后,日志服务默认为pathFile创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入pathFile: xxx。 文件路径,采集的日志文件的路径。 例如示例中的"pathFile":"stdout.log"。 content 字符串 索引设置:开启全文索引后,会使用全文索引定义的分词符对content字段的value进行分词;不支持将content字段配置到字段索引中。 日志原文, 例如示例中的"content":"level=error ts=2023-04-19T09:21:21.333895559Z" __receive_time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为__receive_time__创建字段索引,索引数据类型为long类型。 上报日志的服务端时间,相当于LTS采集端接收到日志的时间。 __client_time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为__client_time__创建字段索引,索引数据类型为long类型。 端侧日志的客户端上报时间。 _content_parse_fail_ 字符串 索引设置:开启索引后,日志服务默认为_content_parse_fail_创建字段索引,索引数据类型为string类型,分词字符为默认分词符。查询时输入_content_parse_fail_: xxx。 上报日志解析失败的日志内容。 __time 整型,Unix时间戳(毫秒) 不支持将__time字段配置到字段索引中。 不涉及。 logContent 字符串 不支持将logContent字段配置到字段索引中。 不涉及。 logContentSize 整型 不支持将logContentSize字段配置到字段索引中。 不涉及。 logIndexSize 整型 不支持将logIndexSize字段配置到字段索引中。 不涉及。 groupName 字符串 不支持将groupName字段配置到字段索引中。 不涉及。 logStream 字符串 不支持将logStream字段配置到字段索引中。 不涉及。
-
索引类型 云日志服务LTS 支持全文索引和字段索引,详细请参考表1。 表1 索引类型 索引类型 说明 全文索引 开启全文索引后,日志服务根据您设置的分词符将整条日志所有字段值拆分成多个词并构建索引。 说明: 用户上传的自定义标签(label)字段,不包含在全文索引中,如果您需要搜索自定义标签字段,请添加对应的字段索引。 LTS内置保留字段,不包含在全文索引中,您需要通过字段索引Key:Value的方式进行搜索,请参考内置保留字段。 字段索引 配置字段索引后,您可以指定字段名称和字段值(Key:Value)进行查询,缩小查询范围。 说明: 日志服务默认为部分内置保留字段创建字段索引,请参考内置保留字段。 如果您的某个字段单独配置了字段索引,那么该字段值的分词符以字段索引配置为准。 结构化配置中的快速分析列已被移除,如果您要使用快速分析功能,则必须配置字段索引且开启对应字段的快速分析按钮。 关于日志示例有两种情况: 在日志示例中,配置了level和status两个字段索引,其中level是string类型,字段值是error,单独配置了分词符,status是long类型,不需要配置分词符;您可以使用level : error的方式精确搜索level字段值为error的所有日志。 在日志示例中,云日志服务LTS会默认为hostName、hostIP、pathFile这些内置保留字段创建字段索引。
-
注意事项 全文索引属性和字段索引属性必须至少启用一种。 创建索引会产生索引流量和索引存储空间,费用说明请参见价格计算器。 关闭索引后,历史索引的存储空间将在当前日志流的数据保存时间到期后,自动被清除。 云日志服务默认已为部分内置保留字段创建字段索引,请参见内置保留字段。 不同的索引配置,会产生不同的查询和分析结果,请根据您的需求,合理创建索引。全文索引和字段索引互不影响。 索引配置修改后,对新写入的日志数据生效,历史日志数据不会生效。 在字段索引功能上线前,SQL分析支持的字段来自于云端结构化解析;在字段索引功能上线后,只要用户配置了字段索引,SQL分析支持的字段将来自于字段索引,因此修改字段索引可能对现有的可视化图表、仪表盘、SQL告警、定时SQL、Grafana接入中的查询结果产生影响,请谨慎操作! 字段索引配置为JSON数据类型时,在“日志搜索”页面不支持对JSON子字段使用快速分析、跳转图表,不支持可视化;在“搜索分析”页面下支持JSON子字段使用快速分析和SQL可视化功能。 字段索引配置为JSON数据类型时,对JSON父字段查询时支持对命中结果高亮,对JSON子字段查询时不支持对命中结果高亮。
-
配置全文索引 登录云日志服务控制台,进入“日志管理”页面。 单击目标日志组和日志流名称。 在日志流详情页面,单击右上角,在弹出页面中,选择“索引配置”,进入索引配置页面。 在索引配置页面中,默认开启“全文索引”按钮,参考表3 自定义全文索引配置参数配置各参数信息。 在索引配置页面选择自动配置时,默认获取最近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 自定义全文索引配置参数 参数 说明 全文索引 打开全文索引开关,表示创建全文索引。 大小写敏感 查询时是否区分英文字母的大小写。 打开大小写敏感开关,则查询时区分大小写。例如示例日志含有Know,那么您只能使用Know才能查询到该日志。 关闭大小写敏感开关,则查询时不区分大小写。例如示例日志含有Know,那么您使用关键字KNOW和know都能查到该日志。 包含中文 查询时是否区分中英文。 打开包含中文开关后,如果日志中包含中文,默认按照一元分词法拆分中文内容,按照分词符的设置拆分英文内容。 说明: 一元分词是指将中文字符串拆分为单个独立的中文字。 使用一元分词符的优点是对海量日志分词效率高,其他中文分词方法对写入速度影响大。 打开包含中文功能,会对中文使用一元分词(每个汉字单独分词),如果需要更精确的搜索结果,请用短语搜索,语法为:#"待搜索的短语"。 关闭包含中文开关后,按照分词符的设置拆分所有内容。 例如示例日志内容为: error,400,I Know 今天是星期一。 关闭包含中文开关后,按照分词符的设置拆分英文内容,日志会被拆分为error、400、I、Know、今天是星期一,您可以通过error或今天是星期一查找该日志。 打开包含中文开关后,日志服务后台分词器将日志拆分为error、400、I、Know、今、天、是、星、期、一,您通过error或今天等词都可以查找到该日志。 分词符 根据指定分词符,将日志内容拆分成多个词。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的ASCII码包括中文都可被定义为分词符。 如果设置分词符为空,则字段值将被当成一个整体,您只能通过完整字符串或模糊查询查找对应的日志。 单击“预览”,查看分词预览效果。 例如示例日志内容为: error,400,I Know 今天是星期一。 如果不设置任何分词符,整条日志被作为一个词error,400,I Know 今天是星期一,您只能通过完整字符串error,400,I Know 今天是星期一或模糊查询error,400,I K*查找该日志。 如果设置分词符为逗号(,),则原始日志被拆分为error、400、I Know 今天是星期一3个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如error、400、I Kn*、今天是*。 如果设置分词符为逗号(,)和空格,则原始日志被拆分为error、400、I、Know、今天是星期一5个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如Know、今天是*。 特殊分词符 单击“添加特殊分词符”,参考ASCII码对照表输入ASCII值。 完成后,单击“确定”。
-
配置字段索引 创建字段索引时,最多支持添加500个字段。其中JSON类型字段,最多支持添加100个子字段。 字段索引的自定义分词符和特殊分词符仅支持白名单用户提交工单申请使用。详细操作请参考提交工单。 配置全文索引后,在索引配置页面的日志分析下方,单击开启可视化后,配置的字段索引支持SQL可视化分析,否则无法查询到ICAgent结构化的可视化数据。 设置快速分析采样条数,默认值10万条,最小值为10万条,最大值1000万条。通过采样快速统计字段值取值分布,并非对全量数据进行分析,采样条数越多分析数据越慢。 在索引配置页面的字段索引下方,单击“添加字段”,配置字段索引。具体的参数配置请参考表5 自定义字段索引配置参数。 字段索引的参数配置仅对该字段生效。 当添加的字段在日志内容中不存在时,则配置的该索引字段无效。 更多内置字段请参考内置保留字段。 自动配置字段索引:单击“自动配置”,云日志服务会根据采集时预览数据中的第一条内容或常见内置保留字段(例如hostIP、hostName、pathFile)自动生成字段索引,您可以根据自己的需要增加或者删除字段。 批量配置字段索引:批量勾选字段,单击“批量配置”,进行批量配置字段索引。 表3 自定义字段索引配置参数 参数 说明 字段名称 日志字段名称,例如示例日志中的level。 字段名称只能包括字母、数字或下划线(_),且只能以字母或下划线(_)开头,字段名称中不能含有双下划线。 说明: 双下划线(__)在LTS不对用户呈现的内置保留字段中使用,用户自定义日志字段名中不能使用双下划线__,否则无法配置字段索引名称。 日志服务默认会对部分内置保留字段开启字段索引,请参见内置保留字段。 若是内置字段,在字段名称后会显示“内置”字眼,方便用户识别。 执行操作 显示字段的添加状态:新增、不修改、修改、删除。索引字段有变动后,单击“修改对比”,即可查看原配置内容与修改后配置内容的差异。 显示新增的字段不支持修改执行操作。 修改类型、大小写敏感、自定义分词符、特殊分词符、包含中文、快速分析时,会与原索引配置中的字段进行对比,若任意一项不同,则执行操作变为“修改”。 索引配置单击确定后,不会保存执行操作为“删除”的字段。 类型 日志字段值(Value)的数据类型,可选值为string、long、float、json。 说明: 字段json类型只对ICAgent结构化解析生效,对云端结构化解析不生效。 long类型和float类型不支持设置大小写敏感、包含中文和分词符。 大小写敏感 查询时是否区分英文字母的大小写。 打开大小写敏感开关,则查询时区分大小写。例如示例日志message字段中含有Know,那么您只能使用message:Know才能查询到该日志。 关闭大小写敏感开关,则查询时不区分大小写。例如示例日志message字段中含有Know,那么您使用关键字message:KNOW和message:know都能查到该日志。 自定义分词符 根据指定分词符,将日志内容拆分成多个词。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的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条数据。 操作 单击,删除添加的自定义字段。 图1 批量配置 完成后,单击“确定”。
-
内置保留字段 在采集日志时,云日志服务会将采集时间、日志类型、主机IP等信息以Key-Value对的形式添加到日志中,这些字段是云日志服务的内置字段。 使用API写入日志数据或添加ICAgent配置时,请不要将字段名称设置为内置保留字段,否则可能会造成字段名称重复、查询不精确等问题。 日志服务为日志数据增加的内置保留字段当前免费,后续会按照按量付费方式正常收费(为其开启索引时也会产生少量索引流量及存储费用)。更多信息请参见价格计算器。 用户自定义日志字段名称中不能使用双下划线__,否则无法配置索引。 表4 内置保留字段说明 内置保留字段 数据格式 索引与统计设置 说明 collectTime 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为collectTime创建字段索引,索引数据类型为long类型。 查询时输入collectTime : xxx。 采集时间,指日志被采集器ICAgent采集时的时间。 例如示例中的"collectTime":"1681896081334",转换成标准时间是2023-04-19 17:21:21 __time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为time创建字段索引,索引数据类型为long类型。该字段不支持查询。 日志时间,指的是日志在控制台页面展示的日志时间。 例如示例中的"__time__":"1681896081334",转换成标准时间是2023-04-19 17:21:21 日志时间默认使用采集时间,也支持自定义日志时间。 lineNum 整型 索引设置:开启索引后,日志服务默认为lineNum创建字段索引,索引数据类型为long类型。 行号(偏移量),用来排序日志。 非高精度日志会根据collectTime生成,默认是collectTime * 1000000 + 1,高精度日志就是用户上报的纳秒值。 例如示例中的"lineNum":"1681896081333991900"。 category 字符串 索引设置:开启索引后,日志服务默认为category创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入category: xxx。 日志类型,表示该日志的来源。 例如ICAgent采集的日志该字段为LTS,某云服务例如DCS上报的日志该字段为DCS。 clusterName 字符串 索引设置:开启索引后,日志服务默认为clusterName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入clusterName: xxx。 集群名称,k8s场景下集群名称。 例如示例中的"clusterName":"epstest"。 clusterId 字符串 索引设置:开启索引后,日志服务默认为clusterId创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入clusterId: xxx。 集群ID,k8s场景下集群ID。例如示例中的"clusterId":"c7f3f4a5-xxxx-11ed-a4ec-0255ac100b07"。 nameSpace 字符串 索引设置:开启索引后,日志服务默认为nameSpace创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入nameSpace: xxx。 命名空间,k8s场景下命名空间。 例如示例中的"nameSpace":"monitoring"。 appName 字符串 索引设置:开启索引后,日志服务默认为appName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入appName: xxx。 组件名称,k8s场景下工作负载的名称。 例如示例中的"appName":"alertmanager-alertmanager"。 serviceID 字符串 索引设置:开启索引后,日志服务默认为serviceID创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入serviceID: xxx。 工作负载ID,k8s场景下工作负载ID。 例如示例中的"serviceID":"cf5b453xxxad61d4c483b50da3fad5ad"。 podName 字符串 索引设置:开启索引后,日志服务默认为podName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入podName: xxx。 POD名称,k8s场景下POD名称。 例如示例中的"podName":"alertmanager-alertmanager-0"。 podIp 字符串 索引设置:开启索引后,日志服务默认为podIp创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入podIp: xxx。 pod的ip,k8s场景下pod的IP地址。 例如示例中的"podIp":"10.0.0.145"。 containerName 字符串 索引设置:开启索引后,日志服务默认为containerName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入containerName: xxx。 容器名称,k8s场景下容器名称。 例如示例中的"containerName":"config-reloader"。 hostName 字符串 索引设置:开启索引后,日志服务默认为hostName创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostName: xxx。 主机名称,ICAgent所在主机的名称。 例如示例中的"hostName":"epstest-xx518"。 hostId 字符串 索引设置:开启索引后,日志服务默认为hostId创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostId: xxx。 主机ID,ICAgent所在主机的id,该id由ICAgent生成。例如示例中的"hostId":"318c02fe-xxxx-4c91-b5bb-6923513b6c34"。 hostIP 字符串 索引设置:开启索引后,日志服务默认为hostIP创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostIP: xxx。 主机IP,日志采集器所在主机的ip(适用于ipv4场景) 例如示例中的"hostIP":"192.168.0.31"。 hostIPv6 字符串 索引设置:开启索引后,日志服务默认为hostIPv6创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入hostIPv6: xxx。 主机IP,日志采集器所在主机的ip(适用于ipv6场景) 例如示例中的"hostIPv6":""。 pathFile 字符串 索引设置:开启索引后,日志服务默认为pathFile创建字段索引,索引数据类型为string类型,分词字符为空。查询时输入pathFile: xxx。 文件路径,采集的日志文件的路径。 例如示例中的"pathFile":"stdout.log"。 content 字符串 索引设置:开启全文索引后,会使用全文索引定义的分词符对content字段的value进行分词;不支持将content字段配置到字段索引中。 日志原文, 例如示例中的"content":"level=error ts=2023-04-19T09:21:21.333895559Z" __receive_time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为__receive_time__创建字段索引,索引数据类型为long类型。 上报日志的服务端时间,相当于LTS采集端接收到日志的时间。 __client_time__ 整型,Unix时间戳(毫秒) 索引设置:开启索引后,日志服务默认为__client_time__创建字段索引,索引数据类型为long类型。 端侧日志的客户端上报时间。 _content_parse_fail_ 字符串 索引设置:开启索引后,日志服务默认为_content_parse_fail_创建字段索引,索引数据类型为string类型,分词字符为默认分词符。查询时输入_content_parse_fail_: xxx。 上报日志解析失败的日志内容。 __time 整型,Unix时间戳(毫秒) 不支持将__time字段配置到字段索引中。 不涉及。 logContent 字符串 不支持将logContent字段配置到字段索引中。 不涉及。 logContentSize 整型 不支持将logContentSize字段配置到字段索引中。 不涉及。 logIndexSize 整型 不支持将logIndexSize字段配置到字段索引中。 不涉及。 groupName 字符串 不支持将groupName字段配置到字段索引中。 不涉及。 logStream 字符串 不支持将logStream字段配置到字段索引中。 不涉及。
-
索引类型 云日志服务LTS支持全文索引和字段索引,详细请参考表1。 表1 索引类型 索引类型 说明 全文索引 开启全文索引后,日志服务根据您设置的分词符将整条日志所有字段值拆分成多个词并构建索引。 说明: 用户上传的自定义标签(label)字段,不包含在全文索引中,如果您需要搜索自定义标签字段,请添加对应的字段索引。 LTS内置保留字段,不包含在全文索引中,您需要通过字段索引Key:Value的方式进行搜索,请参考内置保留字段。 字段索引 配置字段索引后,您可以指定字段名称和字段值(Key:Value)进行查询,缩小查询范围。 说明: 日志服务默认为部分内置保留字段创建字段索引,请参考内置保留字段。 如果您的某个字段单独配置了字段索引,那么该字段值的分词符以字段索引配置为准。 结构化配置中的快速分析列已被移除,如果您要使用快速分析功能,则必须配置字段索引且开启对应字段的快速分析按钮。 关于日志示例有两种情况: 在日志示例中,配置了level和status两个字段索引,其中level是string类型,字段值是error,单独配置了分词符,status是long类型,不需要配置分词符;您可以使用level : error的方式精确搜索level字段值为error的所有日志。 在日志示例中,云日志服务LTS会默认为hostName、hostIP、pathFile这些内置保留字段创建字段索引。
-
配置全文索引 登录云日志服务控制台,进入“日志管理”页面。 单击目标日志组和日志流名称。 在日志流详情页面,单击右上角,在弹出页面中,选择“索引配置”,进入索引配置页面。 在索引配置页面中,默认开启“全文索引”按钮,参考表3 自定义全文索引配置参数配置各参数信息。 在索引配置页面选择自动配置时,默认获取最近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 自定义全文索引配置参数 参数 说明 全文索引 打开全文索引开关,表示创建全文索引。 大小写敏感 查询时是否区分英文字母的大小写。 打开大小写敏感开关,则查询时区分大小写。例如示例日志含有Know,那么您只能使用Know才能查询到该日志。 关闭大小写敏感开关,则查询时不区分大小写。例如示例日志含有Know,那么您使用关键字KNOW和know都能查到该日志。 包含中文 查询时是否区分中英文。 打开包含中文开关后,如果日志中包含中文,默认按照一元分词法拆分中文内容,按照分词符的设置拆分英文内容。 说明: 一元分词是指将中文字符串拆分为单个独立的中文字。 使用一元分词符的优点是对海量日志分词效率高,其他中文分词方法对写入速度影响大。 打开包含中文功能,会对中文使用一元分词(每个汉字单独分词),如果需要更精确的搜索结果,请用短语搜索,语法为:#"待搜索的短语"。 关闭包含中文开关后,按照分词符的设置拆分所有内容。 例如示例日志内容为: error,400,I Know 今天是星期一。 关闭包含中文开关后,按照分词符的设置拆分英文内容,日志会被拆分为error、400、I、Know、今天是星期一,您可以通过error或今天是星期一查找该日志。 打开包含中文开关后,日志服务后台分词器将日志拆分为error、400、I、Know、今、天、是、星、期、一,您通过error或今天等词都可以查找到该日志。 分词符 根据指定分词符,将日志内容拆分成多个词。当默认设置不能满足您的需求时,您可以自定义设置分词符。所有的ASCII码包括中文都可被定义为分词符。 如果设置分词符为空,则字段值将被当成一个整体,您只能通过完整字符串或模糊查询查找对应的日志。 单击“预览”,查看分词预览效果。 例如示例日志内容为: error,400,I Know 今天是星期一。 如果不设置任何分词符,整条日志被作为一个词error,400,I Know 今天是星期一,您只能通过完整字符串error,400,I Know 今天是星期一或模糊查询error,400,I K*查找该日志。 如果设置分词符为逗号(,),则原始日志被拆分为error、400、I Know 今天是星期一3个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如error、400、I Kn*、今天是*。 如果设置分词符为逗号(,)和空格,则原始日志被拆分为error、400、I、Know、今天是星期一5个词,您通过任意一个词或词的模糊查询都可以找到该日志,例如Know、今天是*。 特殊分词符 单击“添加特殊分词符”,参考ASCII码对照表输入ASCII值。 完成后,单击“确定”。
-
注意事项 全文索引属性和字段索引属性必须至少启用一种。 创建索引会产生索引流量和索引存储空间,费用说明请参见价格计算器。 关闭索引后,历史索引的存储空间将在当前日志流的数据保存时间到期后,自动被清除。 云日志服务默认已为部分内置保留字段创建字段索引,请参见内置保留字段。 不同的索引配置,会产生不同的查询和分析结果,请根据您的需求,合理创建索引。全文索引和字段索引互不影响。 索引配置修改后,对新写入的日志数据生效,历史日志数据不会生效。 在字段索引功能上线前,SQL分析支持的字段来自于云端结构化解析;在字段索引功能上线后,只要用户配置了字段索引,SQL分析支持的字段将来自于字段索引,因此修改字段索引可能对现有的可视化图表、仪表盘、SQL告警、定时SQL、Grafana接入中的查询结果产生影响,请谨慎操作! 字段索引配置为JSON数据类型时,在“日志搜索”页面不支持对JSON子字段使用快速分析、跳转图表,不支持可视化;在“搜索分析”页面下支持JSON子字段使用快速分析和SQL可视化功能。 字段索引配置为JSON数据类型时,对JSON父字段查询时支持对命中结果高亮,对JSON子字段查询时不支持对命中结果高亮。
-
分析日志 登录云日志服务控制台,进入“日志管理”页面。 单击目标日志组或日志流名称,进入日志详情页面。 选择“日志分析”页签。 在可视化页面支持交互式分析,通过该模块配置简单的分析语句,查询可视化数据,配置可视化图表。设置过滤条件,通过添加指标、添加分组、添加排序进行数据分析,方便用户操作。 选择时间范围,参考SQL分析语法介绍输入SQL语句,单击“查询”,在下方区域通过不同类型图表展示搜索结果。 时间范围有三种方式,分别是相对时间、整点时间和自定义。您可以根据自己的实际需求,选择时间范围。 相对时间:表示查询距离当前时间1分钟、5分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置相对时间1小时,表示查询18:20:31~19:20:31的日志数据。 整点时间:表示查询最近整点1分钟、15分钟等时间区间的日志数据。例如当前时间为19:20:31,设置整点时间1小时,表示查询18:00:00~19:00:00的日志数据。 自定义:表示查询指定时间范围的日志数据。 SQL查询约束有: 单次查询返回结果最多10W条。 当聚合结果超过10W时,聚合结果可能存有误差。 SQL查询语句中,string类型的where条件的键值有限制: 精确查找value需添加英文单引号, 模糊查找value需添加英文单引号或者双引号,key与SQL内置保留字段名称相同时需添加英文双引号。 建议使用where条件时,使用where "key"='value',或者where "key" like '%value%'。 SQL查询语句中,float和long类型的where条件不受限制,但当与关键词冲突时可能会导致查询异常,建议使用where "key"='value',或者where "key" like '%value%'进行查询。 日志搜索框支持自定义上下拖动调整高度。 输入搜索语法后,单击设置格式化sql和反格式化sql,优化搜索语句,提高搜索效率。 当设置时间范围内日志量超过10亿行时会触发迭代查询,可以通过迭代查询分多次完成全部日志的查询,界面会显示“查询状态:结果精确”。 根据SQL查询返回的数据,依照业务需求选择不同图表类型,呈现查询结果。详细请参考使用统计图表将日志可视化。 对查询结果可执行如下操作: 单击“新建”,在弹出的“创建可视化图表”中,根据业务需求填写“图表名称”,开启“同时添加到仪表盘”,单击“确定”,可视化图表保存成功。 单击“保存”,对在弹出的“保存可视化图表”中,根据业务需求填写“图表名称”,开启“同时添加到仪表盘”,单击“确定”,可视化图表保存成功;当选中某个可视化图表时,单击“保存”,可对该图表进行修改。 单击“另存为”,在弹出的“另存为可视化图表”中,根据业务需求填写“图表名称”,开启“同时添加到仪表盘”,单击“确定”,对已有可视化图表进行复制。 须先保存一个图表后,才可另存为可视化图表。 单击“下载”,可下载当前SQL查询结果的可视化数据,该文件为.csv。 单击按钮添加告警,在弹出的“新建告警规则”中,为选中的可视化图表配置创建SQL告警规则。 须先保存一个图表后,才能新建告警规则。 单击“展开图表”,可对当前日志流下的可视化图表展开;单击“收起图表”,可收起当前日志流下展开的可视化图表。
-
查询日志时报错提示:搜索语法错误,请修改查询语句 可能原因:不符合运算符的语法规则。 解决方法:每种运算符都有其对应的语法规则,请修改搜索语句,例如=运算符,语法规则要求右侧的value参数必须为数字类型。 可能原因:搜索语句中包含语法关键词。 解决方法:当日志中本身包含语法关键词且需要搜索时,搜索语句需要用双引号包裹,使其转变为普通字符。详细请参见搜索语法。例如and为语法关键词,查询语句field:and需要修改为field:"and"。
-
日志搜索与分析概述 日志搜索与分析是运维中不可或缺的一环。日志接入成功后,云日志服务(LTS)支持对采集成功的日志数据进行搜索与分析。通过合理的日志收集、高效的搜索方法和专业的分析工具,可以实现对系统或应用的全面监控和精细化管理。 执行搜索与分析前,需要将上报的日志进行结构化配置和索引配置,因为结构化后数据具有严格的长度和格式,方便进行搜索与分析。详细请参考设置云端结构化解析日志和设置LTS日志索引配置。 结构化完成后,使用云日志服务(LTS)提供的搜索语法用于设置搜索条件,帮助您更有效地搜索日志。详细请参考搜索日志。 云日志服务(LTS)支持使用SQL分析语法,对结构化后的日志字段进行日志分析,通过统计图表的方式对查询和分析的结果进行可视化展示。详细请参考分析LTS日志。 父主题: 日志搜索与分析(默认推荐)
-
WAF攻击结构化模板日志详情 WAF攻击日志示例 表3 结构化模板示例 模板名称 示例日志 WAF攻击日志 {"policy_id":"cd081ba3d6674000acc37d7e2a4b9140","hport":"80","body_bytes_sent":"163","hostid":"1736cc7331b74b198e2ef07555a970ce","rule":"040002","engine_ip":"10.63.36.208","pid":"2152","http_host":"www.testh.com","process_time":"1","reqid":"0000-0000-0000-20820220729193940-f34cf25e","time_iso8601":"2022-07-29T19:39:40+08:00","upstream_status":"504","hit_data":"public/../style/general.css","attack_stream_id":"98de5d5a-9f54-4d01-9882-eca7bec99d09","remote_ip":"10.63.46.110","attack":"lfi","tenantid":"1d26cc8c86a840e28a4f8d0d07852f1d","host":"www.testh.com","action":"log","backend":{"protocol":"HTTP","alive":true,"port":80,"host":"100.93.2.229","weight":1,"type":"ip"},"id":"04-0000-0000-0000-20820220729193940-f34cf25e","sip":"10.63.46.110","projectid":"2a473356cca5487f8373be891bffc1cf","web_tag":"","attack-time":"2022-07-29T11:39:40.000Z","method":"GET","cookie":"{\"HWWAFSESTIME\":\"1659094780939\",\"HWWAFSESID\":\"e2cd0733b4712e4cc4\"}","level":2,"params":"{\"public\/..\/style\/general.css\":\"true\"}","x_real_ip":"","uri":"/","x_forwarded_for":"","cdn_src_ip":"","enterprise_project_id":"0","req_body":"","engine_id":"","group_id":"5d574e6a-87da-42bc-bfd4-ff61a1b336a4","requestid":"f34cf25eb33ed82cd7261a8276a60c39","multipart":"null","header":"{\"host\":\"www.testh.com\",\"user-agent\":\"curl\/7.29.0\",\"accept\":\"*\/*\"}","location":"params","upstream_response_time":"30.000","time":"2022-07-29 19:39:40","category":"attack","sport":28408,"status":"504"} 结构化字段及字段说明 表4 结构化字段 字段 示例 描述 类型 policy_id cd081ba3d6674000acc37d7e2a4b9140 防护策略ID string hport 80 请求的服务器端口 string body_bytes_sent 163 发送给客户端的响应体字节数 string hostid 1736cc7331b74b198e2ef07555a970ce 防护 域名 ID(upstream_id) string rule 040002 触发的规则ID或者自定义的策略类型描述 string engine_ip 10.63.36.208 引擎 IP string pid 2152 进程ID string http_host www.testh.com 请求的服务器域名 string process_time 1 引擎的检测用时 string reqid 0000-0000-0000-20820220729193940-f34cf25e 随机ID标识 string time_iso8601 2022-07-29T19:39:40+08:00 日志的ISO 8601格式时间 string upstream_status 504 后端服务器的响应码 string hit_data public/../style/general.css 触发恶意负载的字符串 string attack_stream_id 98de5d5a-9f54-4d01-9882-eca7bec99d09 日志流ID string remote_ip 10.63.46.110 请求的客户端IP string attack lfi 发生攻击的类型,仅在攻击日志中出现。 default:默认 sqli:SQL注入攻击 xss:跨站脚本攻击 webshell:WebShell攻击 robot:恶意爬虫 cmdi:命令注入攻击 rfi:远程文件包含 lfi: 本地文件包含 illegal:非法请求 vuln:漏洞攻击 cc:命中CC防护规则 custom_custom:命中精准防护规则 custom_whiteip:命中IP黑白名单规则 custom_geoip:命中地理位置控制规则 antitamper: 命中网页防篡改规则 anticrawler:命中JS挑战反爬虫规则 leakage:命中敏感信息泄露规则 followed_action:攻击惩罚,详见配置攻击惩罚标准 。 string tenantid 1d26cc8c86a840e28a4f8d0d07852f1d 防护域名的租户ID string host www.testh.com 请求的服务器域名 string action log WAF防护攻击动作。 block:拦截 log:仅记录 captcha:人机验证 string backend.protocol HTTP 当前后端协议 string backend.alive true 当前后端状态 string backend.port 80 当前后端端口 long backend.host 100.93.2.229 当前后端Host值 string backend.weight 1 当前后端权重 long backend.type ip 当前后端Host类型 string id 04-0000-0000-0000-20820220729193940-f34cf25e 请求ID标识 string sip 10.63.46.110 请求的客户端IP string projectid 2a473356cca5487f8373be891bffc1cf 防护域名的项目ID string web_tag - 网站名称 string attack-time 2022-07-29T11:39:40.000Z 攻击时间 string method GET 请求方法 string cookie {"HWWAFSESTIME":"1659094780939","HWWAFSESID":"e2cd0733b4712e4cc4"} Cookie内容 string level 2 表示Web基础防护策略级别。 1:宽松 2:中等 3:严格 long params {"public\/..\/style\/general.css":"true"} 请求URI后的参数信息 string x_real_ip - 当WAF前部署代理时,真实的客户端IP string uri / 请求URI string x_forwarded_for - 请求头中x_forwarded_for的内容 string cdn_src_ip - 当WAF前部署CDN时CDN识别到的客户端IP string enterprise_project_id 0 请求域名所属企业项目ID string req_body - 请求体 string engine_id - WAF引擎标识 string group_id 5d574e6a-87da-42bc-bfd4-ff61a1b336a4 group_id string requestid f34cf25eb33ed82cd7261a8276a60c39 随机ID标识 string multipart null multipart string header {"host":"www.testh.com","user-agent":"curl\/7.29.0","accept":"*\/*"} 请求header信息 string location params 触发恶意负载的位置 string upstream_response_time 30.000 后端服务器响应时间 string time 2022-07-29 19:39:40 日志时间 string waf_category attack WAF日志类别 string sport 28408 客户端请求端口 long status 504 请求的响应状态码 string
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格