iLogtail 是阿里云自研的轻量级高性能日志采集 Agent现已开源并更名为LoongCollector广泛用于服务器、容器、K8s 等环境日处理数十 PB 数据支撑阿里双 11 等核心场景。该文章分为核心概念、架构、安装配置、核心功能、实战与常见问题。一、iLogtail 核心认知1. 是什么iLogtail现 LoongCollector是阿里云日志服务SLS的可观测数据采集器负责采集日志、指标、链路追踪Trace并支持过滤、解析、聚合后投递到 SLS、Kafka等后端。2. 核心优势轻量高性能C 核心资源占用极低比 Filebeat 等快 5–20 倍。全场景覆盖主机、容器、K8s、嵌入式支持文件、Stdout、Syslog、OpenTelemetry 等输入。稳定可靠本地缓存、断点续传、流量控制网络波动不丢数据。插件化扩展输入 / 处理 / 输出全插件支持自定义开发。远程集中管理控制台一键下发配置支持百万级节点运维。3. 发展简史2013诞生于阿里飞天 5K用于大规模日志统一采集。2015支撑阿里上云增强稳定性与容器支持。2023开源更名 LoongCollector兼容旧版配置。2024发布 2.0支持流水线化配置、更丰富的插件生态。二、架构与工作原理1. 整体架构采用模块化流水线设计输入input→ 处理process→ 输出output。输入插件文件、Docker Stdout、K8s 日志、Syslog、HTTP、OTel 等。处理插件正则解析、JSON 提取、字段过滤、脱敏、聚合、脚本处理。输出插件阿里云 SLS、Kafka、Elasticsearch、Flink、文件、HTTP。2. 采集流程以文件日志为例监听文件通过 inotify 监听日志文件新增 / 滚动实时读取增量数据。数据处理按配置解析如 JSON / 正则、过滤、脱敏、添加元数据主机名、IP、时间。本地缓存网络异常时数据缓存本地磁盘恢复后续传防止丢失。批量投递异步批量发送到后端如 SLS提升吞吐、降低延迟。3. K8s 部署模式DaemonSet推荐每节点部署一个采集全节点容器日志运维简单、资源省。Sidecar每个 Pod 内部署隔离性好、适合多租户资源占用高。Deployment全局部署一个适合 PVC 挂载日志目录场景。三、安装与部署Linux 主流1. 环境要求系统LinuxCentOS/RHEL 7、Ubuntu 16.04架构x86_64、ARM64权限root 或 sudo网络能访问 SLS 内网 / 公网 Endpoint2. 一键安装推荐阿里云 ECS# 替换 region 为你的地域如 cn-hangzhou wget http://logtail-release-region.oss-region-internal.aliyuncs.com/linux64/logtail.sh -O logtail.sh chmod 755 logtail.sh sudo ./logtail.sh install region3. 手动安装通用含非阿里云机器# 下载以 2.0 最新版为例可替换为最新包 wget https://loongcollector-community-edition.oss-cn-shanghai.aliyuncs.com/2.0.0/loongcollector-2.0.0.linux-amd64.tar.gz # 解压 tar -zxvf loongcollector-2.0.0.linux-amd64.tar.gz cd loongcollector-2.0.0 # 配置系统参数指定 SLS 项目/Endpoint/密钥 vi conf/instance_config/local/loongcollector_config.json配置文件核心内容{ data_server_list: [ {endpoint: cn-hangzhou.log.aliyuncs.com, project: your-project} ], access_key_id: your-ak, access_key_secret: your-sk }4. 启停命令# 启动 sudo /etc/init.d/ilogtaild start # 停止 sudo /etc/init.d/ilogtaild stop # 重启 sudo /etc/init.d/ilogtaild restart # 状态 sudo /etc/init.d/ilogtaild status5. 容器部署Docker# 拉取镜像 docker pull sls-registry.cn-beijing.cr.aliyuncs.com/sls/ilogtail:2.0.0 # 运行 docker run -d \ -v /var/log:/var/log \ -v /etc/ilogtail:/etc/ilogtail \ --name ilogtail \ sls-registry.cn-beijing.cr.aliyuncs.com/sls/ilogtail:2.0.0四、核心配置详解1. 配置文件结构2.0 流水线模式路径conf/pipeline_config/local/*.json{ pipeline: { inputs: [ { type: file, path: /var/log/nginx/*.log, read_from_head: false } ], processors: [ { type: regex, pattern: (\\S) (\\S) (\\S) \\[(\\S)\\] \(\\S) (\\S) (\\S)\ (\\d) (\\d), keys: [ip, uid, time, method, url, status, size] } ], outputs: [ { type: sls, project: your-project, logstore: nginx-log, topic: nginx } ] } }2. 常用输入配置文件日志{type: file, path: /var/log/*.log, read_from_head: false}Docker Stdout{type: docker, container_id: all, stdout: true, stderr: true}K8s 日志{type: k8s, namespace: default, pod_name: web-*}3. 常用处理插件JSON 解析{type: json, source: content}正则提取如上面 Nginx 示例字段过滤{type: filter, condition: status 200}脱敏{type: desensitize, field: phone, pattern: (\\d{3})(\\d{4})(\\d{4}), replace: $1****$3}五、实战采集 Nginx 日志到 SLS1. 准备工作阿里云账号创建 SLS Project如log-demo和 Logstore如nginx-log服务器安装 Nginx日志路径/var/log/nginx/access.log服务器安装 iLogtail配置好 AK/SK/Endpoint2. 编写采集配置文件conf/pipeline_config/local/nginx.json{ pipeline: { inputs: [ { type: file, path: /var/log/nginx/access.log, read_from_head: false, max_file_size: 100MB } ], processors: [ { type: regex, pattern: ^(\\S) \\S \\S \\[(\\S)\\] \(\\S) (\\S) \\S\ (\\d) (\\d) \(\\S)\ \(\\S)\$, keys: [client_ip, time, method, url, status, body_size, referer, user_agent] }, { type: filter, condition: status ! 404 } ], outputs: [ { type: sls, project: log-demo, logstore: nginx-log, topic: nginx-access } ] } }3. 重启生效sudo /etc/init.d/ilogtaild restart4. 控制台查看数据登录阿里云 → 日志服务 → 进入log-demo项目进入nginx-logLogstore → 查询分析选择时间范围即可看到结构化的 Nginx 日志六、常见问题与避坑1. 日志采集不到配置错误检查loongcollector_config.json的 Endpoint/AK/SK以及流水线配置路径权限不足iLogtail 运行用户需有日志文件读权限chmod r /var/log/nginx/*.log路径匹配问题通配符*匹配层级有限复杂路径用多配置或递归配置日志轮转确保新日志文件权限正确iLogtail 会自动跟踪新文件2. 数据丢失本地缓存未开启默认开启缓存目录/etc/ilogtail/cache确保磁盘空间充足网络波动检查网络连通性调整批量发送大小batch_size和间隔flush_interval资源耗尽限制 CPU / 内存避免 OOM配置resource_limit3. 性能调优批量发送增大batch_size默认 1024 条、延长flush_interval默认 3s过滤前置在输入后立即过滤无用日志减少处理压力资源限制{ resource_limit: { cpu_limit: 0.5, mem_limit: 512MB } }七、总结iLogtailLoongCollector是企业级日志采集的首选工具轻量、高性能、稳定、易扩展完美适配云原生与大规模场景。掌握它的安装、配置与调优是构建可观测平台的基础。