本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
安装LoongCollector后,您还需要了解如何管理LoongCollector的生命周期,运行配置等内容。
LoongCollector常用命令
启动LoongCollector
对采集性能有要求时,可修改启动参数配置文件(ilogtail_config.json)后再启动LoongCollector。
sudo /etc/init.d/loongcollectord start
停止LoongCollector
sudo /etc/init.d/loongcollectord stop
查看LoongCollector状态
sudo /etc/init.d/loongcollectord status #返回loongcollector is running表示启动成功。
查看LoongCollector版本
cat /usr/local/ilogtail/app_info.json #版本信息存储在loongcollector_version字段中。
重启LoongCollector
sudo /etc/init.d/loongcollectord restart
卸载LoongCollector
示例代码中
${region_id}
可使用cn-hangzhou
替换,若想加快执行速度,请参考地域替换${region_id}
为ECS所属地域。wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;
执行卸载命令。
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
升级LoongCollector
升级包含LoongCollector版本升级与Logtail升级到LoongCollector两种情况,两种情况的升级命令相同。
LoongCollector版本升级/Logtail升级到LoongCollector
LoongCollector在升级时停止运行,升级完成后自动启动。升级仅覆盖必要文件,配置文件和Checkpoint文件将被保留,确保升级期间日志不会丢失。
在服务器上执行下载命令获取最新安装包,示例代码中
${region_id}
可使用cn-hangzhou
替换,若想加快安装包下载速度,请参考地域替换${region_id}
为ECS所属地域。wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh;
执行升级命令:升级请使用
upgrade
命令。若使用install
命令,将执行覆盖安装,丢失原配置。chmod +x loongcollector.sh; sudo ./loongcollector.sh upgrade;
若显示以下信息,则表示升级成功。
Upgrade loongcollector files successfully. Starting loongcollector ... Upgrade loongcollector successfully.
LoongCollector回滚到Logtail
必须要重新下载logtail.sh脚本,不能使用原来的logtail.sh脚本。
在服务器上执行下载命令获取安装包,示例代码中
${region_id}
可使用cn-hangzhou
替换,若想加快安装包下载速度,请参考地域替换${region_id}
为ECS所属地域。wget http://logtail-release-${region_id}.oss-${region_id}.aliyuncs.com/linux64/logtail.sh -O logtail.sh;
执行回滚命令。如需指定版本,如指定 1.8.7 版本,参考注释,根据实际情况替换版本号。
chmod +x logtail.sh; sudo ./logtail.sh upgrade; #chmod +x logtail.sh; sudo ./logtail.sh upgrade -v -v 1.8.7;
启动参数配置文件(ilogtail_config.json)
文件描述:配置LoongCollector的启动参数,启动参数配置不合理会影响采集性能,配置错误可能导致采集异常问题发生。
文件路径:/usr/local/ilogtail/ilogtail_config.json。
使用场景:日志服务限制了LoongCollector的采集性能,以防消耗过多服务器资源,影响其他服务运行。当LoongCollector采集性能不满足要求时,可通过修改启动参数进行尝试。
参数表:下表仅列出需要关注的常用启动参数,请根据需要新增或修改。未列出的参数请保持默认配置。
示例场景:以下列举一些常见的场景下的操作示例供参考:
日志传输网络延迟高、传输不稳定
发生日志丢失或重复发送,LoongCollector 发送日志时频繁重试,网络连接中断或波动频繁等现象。可能的原因是:
网络带宽不足:当采集的日志量较大时,若网络带宽不足以支撑传输需求,会导致日志堆积、延迟增加。
网络环境不稳定:跨区域、跨网络可能导致网络延迟或丢包。
解决方案
利用阿里云CDN边缘节点进行日志采集加速,相对公网采集在网络延迟、稳定性上具有很大优势。开启该功能将根据实际传输的数据量进行额外计费。
需要先打开Project的日志跨域传输加速功能。
停止LoongCollector:登录安装LoongCollector的服务器,执行
sudo /etc/init.d/loongcollectord stop
命令。修改传输域名:替换
/usr/local/ilogtail/ilogtail_config.json
中data_servers
参数下的endpoint_list
参数的值为log-global.aliyuncs.com
。这表明将数据传输所使用的域名变更为传输加速域名。启动LoongCollector:执行
sudo /etc/init.d/loongcollectord start
命令。
单条日志过大被截断
发生单条日志长度过大,采集后日志被截断的现象,原因是每条日志读取的最大值默认为524288(512 KB),若超过该值日志服务将截断日志。多行日志按行首正则表达式划分后,每条日志大小限制仍为512 KB,若超限会被强制拆分为多条进行采集。
解决方案
在
/usr/local/ilogtail/ilogtail_config.json
中修改max_read_buffer_size
参数的值,若该参数不存在则新增。该参数取值最大为8388608(8 MB)。请注意内存占用线性增长,需预留
max_read_buffer_size*文件并发数
内存。重启LoongCollector:执行
sudo /etc/init.d/loongcollectord restart
命令。
传输时发生间隔15分钟以上日志丢失
发生采集日志时可以正常传输,但部分日志丢失,且丢失日志时间戳与当前日志服务服务端时间相差15分钟以上的现象,原因可能是出于数据安全考虑,日志服务会对请求(包括LoongCollector发起的请求)所携带的时间进行校验,拒绝与日志服务端时间相差超过15分钟的请求。当服务器本地时间被修改后(例如某些测试场景下需要调整本地时间为未来时间),则导致请求被拒绝,写入数据失败。
解决方案
在
/usr/local/ilogtail/ilogtail_config.json
中修改enable_log_time_auto_adjust
参数的值为true
,若该参数不存在则新增。设置后日志时间可自适应服务器本地时间。开启该功能后,日志时间将被加上日志服务端的时间与服务器本地时间的偏移量。由于偏移量只在请求被日志服务端拒绝时更新,因此可能出现日志服务端所查询到的日志的时间和日志实际的写入时间不一致的情况。
重启LoongCollector:执行
sudo /etc/init.d/loongcollectord restart
命令。
切换至其他地域Project
由于某些原因,在服务器上采集的日志需要存储到新的Project中。
解决方案
若需要复用采集配置,请先保存采集配置文件中内容,卸载操作会删除该文件。
卸载服务器上的LoongCollector。
根据新Project与服务器的关系,选择对应的LoongCollector安装方案。
如果要将历史数据也一并转移到新Project,此处提供两种方式:
日志传输延时过长优化
发生日志服务的日志时间戳和服务器生产日志的时间相差在三秒以上的现象,原因可能是:
同时采集的文件数超过100个或者监控的目录下的文件数超过5000个,占用大量内存。
日志数据流量大(例如极简模式下超过2 MB/s,正则模式下超过1 MB/s),CPU占用率过高。
开通CloudLens for SLS,在采集监控可以查看当前主机的CPU占用率。
LoongCollector发送数据到日志服务的速率超过10MB/s。
开通CloudLens for SLS,在采集监控可以查看当前主机的采集速率。
解决方案
添加或修改ilogtail_config.json中参数取值,并重启LoongCollector使修改生效。不同采集速率下的建议值参考如下:
按表格中的采集速率大于40 MB/s列配置启动参数时,采集性能已接近极限。
参数 | 描述 | 采集速率大于10 MB/s | 采集速率大于20 MB/s | 采集速率大于40 MB/s |
cpu_usage_limit | CPU使用阈值,以单核计算。
0.4表示日志服务将尽可能限制采集器对CPU单核使用不超过40%,超出后LoongCollector自动重启。 该项为软限制,实际占用的CPU可能超过限制值,超限5分钟后将触发熔断保护自动重启。 | 1 | 2 | 4 |
mem_usage_limit | 内存使用阈值。
采集速率、监控目录和文件数量、发送阻塞程度与该参数有关。更多请参见限制说明 该项为软限制,实际占用的内存可能超过限制值,超限5分钟后将触发熔断保护自动重启。 | 1024 | 2048 | 4096 |
process_thread_count | 采集器处理数据的线程数。
单线程可以处理极简模式下24 MB/s的数据写入或完整正则模式12 MB/s的数据写入。默认情况下无需调整该参数取值。 | 2 | 4 | 8 |
send_request_concurrency | 异步并发的个数。
如果写入TPS很高,可以设置更高的异步并发个数。可以按照一个并发支持0.5 MB/s~1 MB/s网络吞吐来计算,实际根据网络延时而定。 | 20 | 40 | 80 |
其他常用配置文件
LoongCollector运行时一系列配置文件与信息记录文件如下:
LoongCollector采集配置文件(user_log_config.json)
描述:文件记录LoongCollector从日志服务获取的采集配置信息,每次采集配置更新时会同步更新该文件。除手动配置AccessKey信息、数据库密码等敏感信息外,不建议修改该文件。
路径:/usr/local/ilogtail/user_log_config.json。
使用场景:可通过查看该文件确认采集配置是否已经下发到服务器。若该文件存在,且内容与日志服务上的采集配置一致,表示采集配置已下发。
AppInfo记录文件(app_info.json)
描述:app_info.json文件记录LoongCollector的启动时间、获取到的IP地址、主机名等信息。该文件仅作记录,任何修改操作均不会生效。
路径:/usr/local/ilogtail/app_info.json。
使用场景:可查看日志服务采集时识别到的服务器ip信息,判断与日志服务控制台中IP型机器组内IP信息是否一致,一般用于解决IP型机器组心跳失败问题。
如果已在服务器的/etc/hosts文件中设置了主机名与IP地址绑定,则自动获取绑定的IP地址。如果没有设置主机名绑定,会自动获取本机的第一块网卡的IP地址。若设置了ilogtail_config.json中的working_ip参数,则以working_ip值作为服务器的IP地址。
LoongCollector运行日志(loongcollector.LOG)
描述:loongcollector.LOG文件记录了LoongCollector的运行日志,日志级别从低到高分别为INFO、WARN和ERROR。
路径:/usr/local/ilogtail/loongcollector.LOG。
使用场景:如果采集异常,请先使用LoongCollector运行情况诊断与监控排查错误,根据日志采集错误类型排查具体的错误类型和LoongCollector运行日志排查问题。
用户ID文件
描述:包含日志采集到的Project所属的阿里云主账号ID信息,文件名即账号ID,无需后缀,用于标识该账号有权限访问、采集这台服务器的日志。
路径:/etc/ilogtail/users/{阿里云账号ID}。
使用场景:只有在采集非本账号ECS、自建服务器、其他云厂商服务器日志时需要配置用户ID。多个账号对同一台服务器进行日志采集时,支持在同一台服务器上创建多个用户ID文件。
用户自定义标识文件
描述:用于配置用户自定义标识,作为用户自定义标识机器组的内容,协助日志服务发现服务器上的LoongCollector并建立心跳。
路径:/etc/ilogtail/user_defined_id。
使用场景:使用用户自定义机器组时需要配置,了解更多信息请参考机器组与LoongCollector采集配置关联指南。
CheckPoint文件
描述:checkpoint机制用于记录日志服务当前采集位置以确保日志完整性。
路径:默认为
/tmp/logtail_checkpoint
。使用场景:可参考限制说明修改启动参数文件进行管理。
常见问题
服务器无法连接外部网络时如何升级
在需要升级
LoongCollector
的服务器上执行uname -m
查看系统架构后,在可以访问公网的服务器上选择对应命令执行:${region_id}
需替换为Project所属地域的地域。ARM架构:
wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/aarch64/main/loongcollector-linux64.tar.gz;
x86-64架构:
wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh;wget http://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/x86_64/main/loongcollector-linux64.tar.gz;
将安装脚本和安装包拷贝至需要升级
LoongCollector
的服务器上后,执行命令:chmod +x loongcollector.sh;./loongcollector.sh upgrade-local;