在使用LoongCollector进行数据采集时,可能会遇到采集异常问题。本文将介绍排查采集异常问题的流程,以及一些常见场景下的处理示例。
采集异常问题排查指引
采集异常问题的成因复杂多样,且不同原因可能导致相同表象,甚至有时异常无法及时发现。因此需要如下指引,以实现异常的及时识别、排查与分类诊断。
登录日志服务控制台,在日志应用区域单击CloudLens for SLS。在接入管理的SLS采集规则列表页签中,按照对话框提示开启功能。
CloudLens for SLS 帮助监控与管理日志服务资源,提高问题定位的效率,及时感知与响应多维度指标的异常。
回到Project列表中,单击目标Project。
单击
日志存储,在日志库中,将鼠标悬浮于目标Logstore上,随后单击右侧的
图标,单击基础版诊断查看异常诊断信息。
高级版诊断提供异常诊断仪表盘,并支持更长时间的异常信息查询。详情可参考LoongCollector运行情况诊断与监控。
根据诊断显示的错误类型查阅下表,排查错误原因。或在 /usr/local/ilogtail/目录下的ilogtail.LOG与logtail_plugin.LOG中查看客户端日志详情。
采集常见错误类型
错误码 | 错误说明 | 解决方法 |
LOG_GROUP_WAIT_TOO_LONG_ALARM | 数据包从产生到发送的过程中等待的时间较长。 | 检查发送是否正常,或是否存在数据量超过默认配置、配额不足或网络存在问题。 |
LOGFILE_PERMINSSION_ALARM | 无权限读取指定文件。 | 检查服务器LoongCollector的启动账号,建议以root方式启动。 |
SPLIT_LOG_FAIL_ALARM | 行首正则与日志行首匹配失败,无法对日志做分行。 | 检查行首正则正确性。 若是单行日志可以配置为 |
MULTI_CONFIG_MATCH_ALARM | 默认情况下,一个文件只能匹配一个配置。当多个配置匹配同一个文件时,只会生效一个。 Docker标准输出可以被多个配置采集。 |
详细的解决方案:使用CloudLens排查iLogtail文件重复配置问题。 |
REGEX_MATCH_ALARM | 完整正则模式下,日志内容和正则表达式不匹配。 | 复制错误信息中的日志样例重新匹配,并生成新的正则表达式。 |
PARSE_LOG_FAIL_ALARM | JSON、分隔符等模式下,由于日志格式不符合定义而解析失败。 | 单击错误信息,查看失败的详细报错。 |
CATEGORY_CONFIG_ALARM | 采集配置不合法。 | 常见的错误为正则表达式提取文件路径作为Topic失败。 详细的解决方案:使用CloudLens排查iLogtail采集配置错误问题。 |
LOGTAIL_CRASH_ALARM | 因超过服务器资源使用上限而崩溃。 | |
REGISTER_INOTIFY_FAIL_ALARM | 在Linux系统中注册日志监听失败,可能由于没有文件夹权限或文件夹被删除。 | 检查采集器是否有权限访问该文件夹,或者该文件夹是否被删除。 |
DISCARD_DATA_ALARM | 配置使用的CPU资源不够或网络发送流控导致数据丢失 | |
SEND_DATA_FAIL_ALARM | 发送数据失败,可能原因:
|
|
SEND_QUOTA_EXCEED_ALARM | 日志写入流量超出限制。 | 在控制台上增加Shard数量。 |
READ_LOG_DELAY_ALARM | 日志采集进度落后于日志产生进度,一般是由于配置使用的CPU资源不够或是网络发送流控导致。 | 导入历史数据时,短时间会采集大量数据,若出现该错误可忽略。 |
DROP_LOG_ALARM | 开始丢弃日志:日志采集进度落后于日志产生进度,且未处理的日志轮转超过20个,一般是由于配置使用的CPU资源不够或是网络发送流控导致。 | |
LOGDIR_PERMINSSION_ALARM | 没有日志监控目录读取权限。 | 检查日志监控目录是否存在。如果存在,请检查目录权限设置。 |
ENCODING_CONVERT_ALARM | 编码转换失败。 | 检查日志编码格式配置是否与日志编码格式一致。 |
OUTDATED_LOG_ALARM | 过期的日志:日志时间落后12小时以上。可能原因:
| 查看是否存在READ_LOG_DELAY_ALARM。
|
STAT_LIMIT_ALARM | 日志采集配置目录中的文件数超限。 |
详细的解决方案:使用CloudLens排查文件、目录数超限问题。 |
DROP_DATA_ALARM | 进程退出时日志落盘到本地超时,此时会丢弃未落盘完成的日志。 | 该报错通常为采集严重阻塞导致,请修改CPU使用上限或网络发送并发限制。 |
INPUT_COLLECT_ALARM | 输入源采集异常。 | 根据错误提示处理。 |
HTTP_LOAD_ADDRESS_ALARM | HTTP数据采集配置中,设置的Addresses不合法。 | 检查Addresses合法性。 |
HTTP_COLLECT_ALARM | HTTP数据采集异常。 | 根据错误提示排查,一般超时导致。 |
FILTER_INIT_ALARM | 过滤器初始化异常。 | 一般由于过滤器的正则表达式非法导致,请根据提示修复。 |
INPUT_CANAL_ALARM | MySQL Binlog运行异常。 | 根据错误提示排查。在配置更新时,canal服务可能重启,服务重启的错误可以忽略。 |
CANAL_INVALID_ALARM | MySQL Binlog内部状态异常。 | 此错误一般由于运行时表的schema信息变更导致meta不一致。请确认报错期间是否修改过表的schema。 |
MYSQL_INIT_ALARM | MySQL初始化异常。 | 根据错误提示处理。 |
MYSQL_CHECKPOING_ALARM | MySQL Checkpoint格式异常。 | 确认是否修改Checkpoint相关配置。 |
MYSQL_TIMEOUT_ALARM | MySQL查询超时。 | 确认MySQL服务器和网络是否异常。 |
MYSQL_PARSE_ALARM | MySQL查询结果解析失败。 | 确认MySQL配置的Checkpoint格式是否匹配对应字段的格式。 |
AGGREGATOR_ADD_ALARM | 向聚合队列中添加数据失败。 | 数据发送过快。若真实数据量很大,可忽略。 |
ANCHOR_FIND_ALARM | processor_anchor插件错误、配置错误或存在不符合配置的日志。 | 查看详细报错,根据内容分为如下类型。检查相应的配置是否存在问题。
|
ANCHOR_JSON_ALARM | processor_anchor插件错误:对已配置的Start和Stop所确定的内容执行JSON展开时发生错误。 | 查看详细报错,检查所处理的内容以及相关的配置,确定是否有配置错误或不合法日志。 |
CANAL_RUNTIME_ALARM | MySQL Binlog插件运行时错误。 | 查看详细报错进一步排查。一般与所连接的MySQL master相关。 |
CHECKPOINT_INVALID_ALARM | Checkpoint解析失败。 | 查看详细报错,根据其中检查点内容(前1024个字节)以及具体错误信息进一步排查。 |
DIR_EXCEED_LIMIT_ALARM | 同时监听的目录数超出限制。 | 检查当前Logstore的采集配置是否包含较多的目录数,合理设置监控目录最大深度。 详细的解决方案:使用CloudLens排查文件、目录数超限问题。 |
DOCKER_FILE_MAPPING_ALARM | 执行命令添加Docker文件映射失败。 | 查看详细报错,根据具体错误信息进一步排查。 |
DOCKER_FILE_MATCH_ALARM | 无法在Docker容器中查找到指定文件。 | 查看详细报错,根据其中的容器信息以及查找的文件路径进一步排查。 |
DOCKER_REGEX_COMPILE_ALARM | service_docker_stdout插件错误,根据配置中的BeginLineRegex编译失败。 | 查看详细报错,检查其中的正则表达式是否正确。 |
DOCKER_STDOUT_INIT_ALARM | service_docker_stdout插件初始化失败。 | 查看详细报错,报错根据内容分为如下类型。
|
DOCKER_STDOUT_START_ALARM | service_docker_stdout插件采集时,stdout大小超过限制。 | 一般因为首次采集时stdout已存在,可忽略。 |
DOCKER_STDOUT_STAT_ALARM | service_docker_stdout插件无法检测到stdout。 | 一般因为容器退出时无法访问到stdout,可忽略。 |
FILE_READER_EXCEED_ALARM | 同时打开的文件对象数量超过限制。 | 一般因为当前处于采集状态的文件数过多,请检查采集配置是否合理。 |
GEOIP_ALARM | processor_geoip插件错误。 | 查看详细报错,报错根据内容分为如下类型。
|
HTTP_INIT_ALARM | metric_http插件错误,配置中指定的ResponseStringMatch正则表达式编译错误。 | 查看详细报错,检查其中的正则表达式是否正确。 |
HTTP_PARSE_ALARM | metric_http插件错误,获取HTTP响应失败。 | 查看详细报错,根据其中的具体错误信息对配置内容或所请求的HTTP服务器进行检查。 |
INIT_CHECKPOINT_ALARM | Binlog插件错误,加载检查点失败,插件将忽略检查点并从头开始处理。 | 查看详细报错,根据其中的具体错误信息来确定是否可忽略此错误。 |
LOAD_LOCAL_EVENT_ALARM | 执行了本地事件处理错误 | 此警告一般不会出现,查看详细报错,根据其中的文件名、配置名、project、logstore等信息进行进一步地排查。 |
LOG_REGEX_FIND_ALARM | processor_split_log_regex以及 processor_split_log_string插件错误,无法从日志中获取到配置中指定的SplitKey。 | 查看详细报错,检查是否存在配置错误的情况。 |
LUMBER_CONNECTION_ALARM | service_lumberjack插件错误,停止插件时关闭服务器错误。 | 查看详细报错,根据具体错误信息进一步排查,此错误一般可忽略。 |
LUMBER_LISTEN_ALARM | service_lumberjack插件错误,初始化进行监听时发生错误。 | 查看详细报错,报错根据内容分为如下类型。
|
LZ4_COMPRESS_FAIL_ALARM | 执行LZ4压缩发生错误。 | 查看详细报错,根据其中的log lines、project、category、region等值来进行进一步排查。 |
MYSQL_CHECKPOINT_ALARM | MySQL插件错误,检查点相关错误。 | 查看详细报错,报错根据内容分为如下类型。
|
NGINX_STATUS_COLLECT_ALARM | nginx_status插件错误,获取状态发生错误。 | 查看详细报错,根据其中的URL以及具体的错误信息来进行进一步排查。 |
NGINX_STATUS_INIT_ALARM | nginx_status插件错误,初始化解析配置中指定的URL失败。 | 查看详细报错,根据其中的URL检查地址是否正确配置。 |
OPEN_FILE_LIMIT_ALARM | 已打开文件数量超过限制,无法打开新的文件 | 查看详细报错,根据其中的日志文件路径、Project、Logstore等信息进行进一步排查。 |
OPEN_LOGFILE_FAIL_ALARM | 打开文件出错。 | 查看详细报错,根据其中的日志文件路径、Project、Logstore等信息进行进一步排查。 |
PARSE_DOCKER_LINE_ALARM | service_docker_stdout插件错误,解析日志失败。 | 查看详细报错,报错根据内容分为如下类型。
|
PLUGIN_ALARM | 插件初始化及相关调用发生错误。 | 查看详细报错,报错根据内容分为如下类型,请根据具体的错误信息进行进一步排查。
|
PROCESSOR_INIT_ALARM | processor_regex插件错误,编译配置中指定的Regex正则表达式失败。 | 查看详细报错,检查其中的正则表达式是否正确。 |
PROCESS_TOO_SLOW_ALARM | 日志解析速度过慢。 |
|
REDIS_PARSE_ADDRESS_ALARM | redis插件错误,配置中提供的ServerUrls存在解析失败的情况。 | 查看详细报错,对其中报错的URL进行检查。 |
REGEX_FIND_ALARM | processor_regex插件错误,无法从日志中找到配置中SourceKey指定的字段。 | 查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 |
REGEX_UNMATCHED_ALARM | processor_regex插件错误,匹配失败。 | 查看详细报错,报错根据内容分为如下类型,请根据具体的错误信息进行排查。
|
SAME_CONFIG_ALARM | 同一个Logstore下存在同名的配置,后发现的配置会被抛弃。 | 查看详细报错,根据其中的配置路径等信息排查是否存在配置错误的情况。 |
SPLIT_FIND_ALARM | split_char以及split_string插件错误,无法从日志中找到配置中SourceKey指定的字段。 | 查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 |
SPLIT_LOG_ALARM | processor_split_char以及processor_split_string插件错误,解析得到的字段数量与SplitKeys中指定的不相同。 | 查看详细报错,检查是否存在SourceKey配置错误或日志不合法的情况。 |
STAT_FILE_ALARM | 通过LogFileReader对象进行文件采集时发生错误。 | 查看详细报错,根据其中的文件路径、错误信息进行进一步排查。 |
SERVICE_SYSLOG_INIT_ALARM | service_syslog插件错误,初始化失败。 | 查看详细报错,检查配置中的Address是否正确。 |
SERVICE_SYSLOG_STREAM_ALARM | service_syslog插件错误,通过TCP采集时发生错误。 | 查看详细报错,报错根据内容分为如下类型,请根据详细报错中的具体错误信息进行排查。
|
SERVICE_SYSLOG_PACKET_ALARM | service_syslog插件错误,通过UDP采集时发生错误。 | 查看详细报错,报错根据内容分为如下类型。
|
PARSE_TIME_FAIL_ALARM | 解析日志时间失败。 |
详细的解决方案:使用CloudLens排查日志时间解析错误问题。 |
BINARY_UPDATE_ALARM | 二进制数据更新警告。 | 查看详细报错,根据具体错误信息进一步排查。 |
CAST_SENSITIVE_WORD_ALARM | 敏感词类型转换相关错误。 | 查看详细报错,根据具体错误信息进一步排查。 |
CHECKPOINT_ALARM | checkpoint相关错误。 | 查看详细报错,根据具体错误信息进一步排查。 |
CHECKPOINT_V2_ALARM | (CheckpointManagerV2专用) | 查看详细报错,根据具体错误信息进一步排查。 |
COMPRESS_FAIL_ALARM | 压缩失败,失败后会直接丢弃。 | 查看详细报错,根据具体错误信息进一步排查。 |
CONFIG_UPDATE_ALARM | 配置拉取/重启错误。 | 查看详细报错,根据具体错误信息进一步排查。 |
DISCARD_SECONDARY_ALARM | (DiskBufferWriter专用) | 查看详细报错,根据具体错误信息进一步排查。 |
DOMAIN_SOCKET_BIND_ALARM | (ShennongManager专用) | 查看详细报错,根据具体错误信息进一步排查。 |
ENCRYPT_DECRYPT_FAIL_ALARM | (DiskBufferWriter专用) | 查看详细报错,根据具体错误信息进一步排查。 |
EPOLL_ERROR_ALARM | faild to init inotify fd | 查看详细报错,根据具体错误信息进一步排查。 |
EXACTLY_ONCE_ALARM | drop exactly once log group because of invalid sequence ID | 查看详细报错,根据具体错误信息进一步排查。 |
FUSE_FILE_TRUNCATE_ALARM | 非常规FUSE文件截断行为警告。 | 查看详细报错,根据具体错误信息进一步排查。 |
GLOBAL_CONFIG_ALARM | (EnterpriseConfigProvider专用)remove useless configs | 查看详细报错,根据具体错误信息进一步排查。 |
HOLD_ON_TOO_SLOW_ALARM | 停止模块过慢。 | 查看详细报错,根据具体错误信息进一步排查。 |
INNER_PROFILE_ALARM | file dev inode changed, create new reader | 查看详细报错,根据具体错误信息进一步排查。 |
INOTIFY_DIR_NUM_LIMIT_ALARM | inotify监听超限。 | 查看详细报错,根据具体错误信息进一步排查。 |
INOTIFY_EVENT_OVERFLOW_ALARM | inotify event queue overflow | 查看详细报错,根据具体错误信息进一步排查。 |
INVALID_CONTAINER_PATH_ALARM | failed to set container base dir: container log path not existed | 查看详细报错,根据具体错误信息进一步排查。 |
INVALID_MEMORY_ACCESS_ALARM | PropagateTimeout access invalid key of mPathWdMap | 查看详细报错,根据具体错误信息进一步排查。 |
LOG_GROUP_PARSE_FAIL_ALARM | (DiskBufferWriter专用) | 查看详细报错,根据具体错误信息进一步排查。 |
LOG_TRUNCATE_ALARM | signature is same but size decrease, read from now fileSize | 查看详细报错,根据具体错误信息进一步排查。 |
LOGDIR_PERMISSION_ALARM | 打开目录失败。 | 查看详细报错,根据具体错误信息进一步排查。 |
LOGTAIL_CONFIG_ALARM | ilogtail_config.json不存在或解析失败。 | 查看详细报错,根据具体错误信息进一步排查。 |
LOGTAIL_CRASH_STACK_ALARM | last logtail crash stack | 查看详细报错,根据具体错误信息进一步排查。 |
METRIC_GROUP_PARSE_FAIL_ALARM | (ShennongManager专用) | 查看详细报错,根据具体错误信息进一步排查。 |
MODIFY_FILE_EXCEED_ALARM | modify cache is up limit | 查看详细报错,根据具体错误信息进一步排查。 |
PROCESS_QUEUE_BUSY_ALARM | logprocess queue is full, put modify event to event queue again | 查看详细报错,根据具体错误信息进一步排查。 |
READ_STOPPED_CONTAINER_ALARM | 容器停止。 | 查看详细报错,根据具体错误信息进一步排查。 |
REGISTER_HANDLERS_TOO_SLOW_ALARM | Registering handlers耗时过长。 | 查看详细报错,根据具体错误信息进一步排查。 |
RELABEL_METRIC_FAIL_ALARM | 指标重标记失败。 | 查看详细报错,根据具体错误信息进一步排查。 |
SECONDARY_READ_WRITE_ALARM | (DiskBufferWriter专用) | 查看详细报错,根据具体错误信息进一步排查。 |
SEND_COMPRESS_FAIL_ALARM | (DiskBufferWriter专用) | 查看详细报错,根据具体错误信息进一步排查。 |
SENDING_COSTS_TOO_MUCH_TIME_ALARM | 发送时间过长。 | 查看详细报错,根据具体错误信息进一步排查。 |
SERIALIZE_FAIL_ALARM | 序列化失败。 | 查看详细报错,根据具体错误信息进一步排查。 |
SKIP_READ_LOG_ALARM | 跳过日志读取警告。 | 查看详细报错,根据具体错误信息进一步排查。 |
STREAMLOG_TCP_SOCKET_BIND_ALARM | TCP端口绑定冲突警告。 | 查看详细报错,根据具体错误信息进一步排查。 |
TOO_MANY_CONFIG_ALARM | 本地目录下配置过多 | 查看详细报错,根据具体错误信息进一步排查。 |
UNEXPECTED_FILE_TYPE_MODE_ALARM | found unexpected type mode | 查看详细报错,根据具体错误信息进一步排查。 |
USER_CONFIG_ALARM | (LegacyConfigProvider专用)本地配置非法 | 查看详细报错,根据具体错误信息进一步排查。 |
WINDOWS_WORKER_START_HINTS_ALARM | windows工作节点启动检测告警。 | 查看详细报错,根据具体错误信息进一步排查。 |
常见采集异常场景
机器组心跳FAIL
请参考心跳异常问题汇总排查。
日志未采集
采集日志时若查询页面无数据,可能原因如下:
在控制台日志库的消费预览中查看,是否采集到日志,若采集到日志但查询无数据,一般由于未创建索引。
无新增日志:待采集日志文件无更新,则不会采集。
机器组心跳异常:心跳异常问题汇总排查。
无采集配置:采集配置需创建并应用到机器组,然后才能下发到服务器生效,详情参考机器组与LoongCollector采集配置关联指南。
采集配置路径错误:检查采集配置中待采集日志文件路径是否正确。
容器场景下还可以开启元容器信息预览查看采集匹配的容器情况。
如果是容器采集场景还需注意:
路径是否有挂载和软链接:不支持软链接,挂载优先级:EmptyDir > hostpath > NAS(不推荐)。更多请参考准备日志源。
EmptyDir挂载:性能最优,可登录容器查看看日志;hostpath挂载:可登录主机和容器查看日志,容器奔溃日志仍保留;NAS挂载:不推荐,采集NAS文件性能极低且易采集失败,且查询只能简单grep。
采集配置的label和env与容器是否一致:注意docker label需要进宿主机 docker inspect 容器id 查询。
发生采集错误:若上述检查通过,则在控制台通过诊断信息排查采集错误。
数据重复采集
内存使用率极高,一直在崩溃。崩溃会重新从checkpoint检查点采集导致数据重复,请修改CPU使用上限或网络发送并发限制。
文件用编辑器编辑过(如使用vim编辑保存):查看文件创建时间,确认被采集文件是否发生重写。
#方法一:看birth time stat your_file #方法二:有时候方法一不管用,看crtime stat -c %i your_file df . #查询分区 sudo debugfs -R 'stat <3014895>' /dev/sda3 #替换<>中间的inode(<>要保留),替换sda3为上一行命令分区所在dev
检查是否存在多个采集器实例。
日志量极小的情况下(15分钟以上无新日志):采集进度可能被清理,造成重复采集。
检查是否采集配置重复:stdout由于允许重复采集,尤其需要注意。
控制台通过诊断信息排查采集错误:存在MULTI_CONFIG_MATCH_ALARM错误。
删除多余采集配置:重复采集配置采集同一个目录时,采集路径最精确的优先级最高。
修改相关配置:实现一个文件中的日志被采集多份。
采集日志路径总会在多个路径变化,删除采集配置会立刻重建:
排查目录是否存在软连接导致重复采集。
排查是否由env创建或ack中配置了日志标签,配置了需要删掉。
Pod容器重启,且使用hostpath挂载,导致重复采集。
采集容器日志的原理是通过类似docker ps的方法探测容器,通过类似docker inspect的方法找到采集路径。当匹配采集配置时,采集器会向主程序报送一条采集路径+配置。当容器重启时,采集器会认为是创建新容器,并再次向主程序报送一条采集路径+配置。此时,由于业务pod日志路径挂载的是hostPath,因此前一个容器持久化的日志会被保留下来,采集器默认往回读取1M日志导致日志重复。
容器内日志发生采集重复,并且采集路径含NAS。
如果创建reader的时间点因为(NAS)目录注册慢没有赶上dump checkpoint的时间点,那么进度都会丢失。add a new watcher持续时间过长也是一个特征,解决方法是把check_point_dump_interval修改为600。
采集时间延迟
采集时间延迟有几类情况:
几秒内的延迟是在预期范围内的,若介意可以配置时间插件。
若有大量数据延迟,检查是否有重启现象。重启后会向前采集,产生延时采集的现象。查看最新数据是否实时,若最新数据实时就没问题。
只延时一行,检查日志文件的最后一行是否没有回车。
某台机器出现延时,可能是该机器采集器启动较晚,可以通过/usr/local/ilogtail/app_info.json的时间确认,或/usr/local/ilogtail/ilogtail.LOG中是否存在“network error”网络原因导致延时。
若不符合上述场景,则在控制台通过诊断信息排查采集错误。
采集丢失
是否pod生命周期过短(<20s),建议日志打到hostPath进行采集。
查看配置env 和 label 是否和容器一致。
检查是否是采集延时导致的数据不全。
如果是标准输出日志非常长(>16K)发生截断并且是ACK、ASK、SAE场景,需要通过文件采集。
采集器重启也会导致采集数据不全。查看/usr/local/ilogtail/app_info.json的update_time确认是否重启。
主动重启:因资源达到配置上限而cuicide,特征是采集器守护进程和工作进程的启动时间有差异,请修改CPU使用上限或网络发送并发限制。
被动重启:因资源达到container配置上限而被k8s杀死或者达到cgroup上限而被kernel杀死,特点是pod的重启次数超过一次。请查看是否OOM被杀,并调整修改CPU使用上限或网络发送并发限制。
注意:当需要调整资源参数时,往往意味着日志量很大,需要注意Shard数量与资源配额是否充足。
如果采集数据不一致发生在实例之间,需要注意是否是采集器版本不同导致。可参考LoongCollector管理(Linux)查看版本与升级。
不定时的丢数据,重启后过一段时间会复现:
根据CloudLens for SLS检查当前Logstore配置是否超限。
查看/usr/local/ilogtail/目录下ilogtail.LOG和logtail_plugin.LOG,寻找报错进行具体排查。
若不符合上述场景,则在控制台通过诊断信息排查采集错误。
日志格式错误
采集格式不符合预期,检查采集配置信息,参考主机文本日志采集使用完整正则模式和插件模式提取字段。
json字段无法被解析提取:通过解析工具验证日志内容是否严格符合json object,插件不支持非json objet的解析,可以尝试修改原始字段格式来规避。
一整条日志是一个整体:可能是未设置分词符导致的,建议了解索引内容按需配置。
常见问题
日志正常采集中突发异常
日志可以正常采集说明配置项大概率正确,若没有修改内容或新增相关采集配置时,可优先关注是否需要调整采集性能与提升配额。
尝试调整采集性能:修改CPU、内存使用上限。
借助CloudLens for SLS监控:在数据洞察中查看配额使用情况,如project写入流量是否超过限额。在采集监控-文件采集监控-采集文件分布中查看是否有延迟的文件。可能当前读取速率跟不上日志的产生速率,CPU usage 满了, 读不完日志导致日志文件一直保持打开状态目录空间没法释放。
日志时间问题
__time__是日志采集的时间,使用sdk写入日志时可指定。
tag中的receive_time是日志服务接受到日志的时间。
日志里的 time 字段,仅仅是一个普通字段。
例如使用sdk在1月2号写入一条日志,指定日期为 1月1号(这个时间可以根据time来设置,也可以自行设置),则查询时receive time 是 1月2号,__time__是1月1号。只有receive time是真正写日志的时间,至于 __time__和日志中的 time字段,都是由自己设置的。
日志上报的时间,有时区问题吗(不同时区,同一时刻 ,本地时间不同) :时间与时区无关,是一个Unix时间戳。自UTC 1970年1月1号开始计数经过的秒数(或者毫秒数)。 比如对于UNIX timestamp 1620994708,相当于:GMT 时间:Fri May 14 2021 12:18:28 GMT+0000。
日志乱码问题
日志服务默认UTF8,需要修改原始日志编码格式为UTF8。