检索语句为空时,为什么检索不到任何日志?
检索语句为空时,代表无任何过滤条件、查询所有日志。如果未能查看到日志,可按以下步骤排查:
1. 选择较大的时间范围(例如最近30天),保持检索语句为空,确定是否有日志。
2. 无日志:
可能为当前日志主题未开启索引,请在 索引配置 中为该主题开启索引。
可能为之前日志上报时未开启索引,日志上报结束后才开启的索引,请对历史数据 重建索引,或在开启索引后重新采集日志。
可能为日志上报失败,使用 LogListener 采集日志时,请检查 机器组状态是否出现异常,使用 SDK 等方式上报日志时请检查 SDK 自身输出日志是否存在错误。
可能为日志时间错误,日志上报至未来时间或已超出日志主题存储时长的时间。使用 LogListener 采集日志时,请检查日志所在服务器时间是否正确,如果使用了自定义日志时间,请检查 时间格式 是否配置正确。使用 SDK 等方式上报日志时,请检查日志时间参数传参是否正确。
3. 部分时间段有日志,部分时间段无日志:
可能为日志上报失败,使用 LogListener 采集日志时,请检查 机器组状态是否出现异常,使用 SDK 等方式上报日志时请检查 SDK 自身输出日志是否存在错误。
可能为该时间段确实无日志,请检查自身业务在指定时间段是否产生日志。
检索语句为空时能够检索到日志,为什么输入检索语句后检索不到任何日志?
有以下几种可能会导致该问题:
部分日志上报失败:使用 LogListener 采集日志时,请检查 机器组状态是否出现异常,使用 SDK 等方式上报日志时请检查 SDK 自身输出日志是否存在错误。
索引配置中分词不正确:检索基于日志分词,原始日志需在分词后包含检索条件指定的“词”才能被检索到,例如通过 error 检索不到 errorMessage,因为 errorMessage 本身是一个单独的词,不等于 error,需使用通配符 error*才能检索该日志。关于分词的更多说明及示例参见 分词与索引。
历史日志未采用最新的索引配置:修改索引配置后,仅针对新采集的日志生效。您可以在 索引配置 页面查看上一次索引修改时间,若被检索日志位于该时间前,则有可能按照当前的索引配置无法检索该历史日志,请对历史数据 重建索引。
使用 LogListener 采集日志时,某些日志在采集环节出现解析异常,存储在了 LogParseFailure 字段下,请尝试全文检索或对 LogParseFailure 字段使用键值检索(需为 LogParseFailure 开启键值索引)。
某些日志在创建索引的过程中出现 异常,存储在了__RAWLOG__字段下,请尝试全文检索。
使用日志服务控制台能够检索到日志,为什么使用 API 检索不到日志?
该问题是由于 API 传参错误导致,建议在日志服务控制台页面下使用浏览器开发者工具查看接口的请求参数,与您调用 API 的参数是否一致。最常见的问题是 SearchLog 接口的 From 和 To 参数使用的 Unix 时间戳单位错误,应当使用毫秒格式 Unix 时间戳,不支持秒格式。