当前位置: 首页 > news >正文

iLogtail 从核心概念到实战的完整教程

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. 采集流程(以文件日志为例)
  1. 监听文件:通过 inotify 监听日志文件新增 / 滚动,实时读取增量数据。

  2. 数据处理:按配置解析(如 JSON / 正则)、过滤、脱敏、添加元数据(主机名、IP、时间)。

  3. 本地缓存:网络异常时,数据缓存本地磁盘,恢复后续传,防止丢失。

  4. 批量投递:异步批量发送到后端(如 SLS),提升吞吐、降低延迟。

3. K8s 部署模式
  • DaemonSet(推荐):每节点部署一个,采集全节点容器日志;运维简单、资源省。

  • Sidecar:每个 Pod 内部署,隔离性好、适合多租户;资源占用高。

  • Deployment:全局部署一个,适合 PVC 挂载日志目录场景。


三、安装与部署(Linux 主流)

1. 环境要求
  • 系统:Linux(CentOS/RHEL 7+、Ubuntu 16.04+)

  • 架构:x86_64、ARM64

  • 权限:root 或 sudo

  • 网络:能访问 SLS 内网 / 公网 Endpoint

2. 一键安装(推荐,阿里云 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 <region>
3. 手动安装(通用,含非阿里云机器)
# 下载(以 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 status
5. 容器部署(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 日志到 SLS

1. 准备工作
  • 阿里云账号,创建 SLS Project(如log-demo)和 Logstore(如nginx-log

  • 服务器安装 Nginx,日志路径/var/log/nginx/access.log

  • 服务器安装 iLogtail,配置好 AK/SK/Endpoint

2. 编写采集配置

文件: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 restart
4. 控制台查看数据
  1. 登录阿里云 → 日志服务 → 进入log-demo项目

  2. 进入nginx-logLogstore → 查询分析

  3. 选择时间范围,即可看到结构化的 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_limit

3. 性能调优
  • 批量发送:增大batch_size(默认 1024 条)、延长flush_interval(默认 3s)

  • 过滤前置:在输入后立即过滤无用日志,减少处理压力

  • 资源限制

    { "resource_limit": { "cpu_limit": 0.5, "mem_limit": "512MB" } }

七、总结

iLogtail(LoongCollector)是企业级日志采集的首选工具,轻量、高性能、稳定、易扩展,完美适配云原生与大规模场景。掌握它的安装、配置与调优,是构建可观测平台的基础。

http://www.jsqmd.com/news/769436/

相关文章:

  • ArcGIS新手避坑指南:从零开始,10分钟搞定你的第一张地图(附练习数据)
  • Stretchly完全指南:用开源工具构建科学的屏幕时间管理系统
  • 特朗普家族涉足AI!推出WorldRouter平台,还计划多产品布局,是割韭菜还是降价?
  • 基于NapCat的QQ机器人框架openclaw-NapCatQQ部署与开发指南
  • 【Python从入门到精通】第 001 篇:Python开发环境搭建完全指南(Windows / macOS / Linux)
  • 在Claude Code中配置Taotoken作为后端,获得更稳定经济的编程辅助
  • 快手校招怎么准备:别只刷 Go 八股,直播和推荐系统才是主线
  • ComfyUI-Manager完整指南:轻松管理你的AI工作流扩展
  • 抖音下载器:一键解锁批量内容管理的新时代
  • 别再只盯着代码了!从支付宝到王者荣耀,聊聊那些意想不到的移动端物理攻击与防御
  • Java SPI vs Spring SPI
  • 小升初的信息
  • 目录文件管理(mkdir、ls、tree、alias、rm)
  • 抖音下载器终极指南:告别手动操作,实现批量下载自动化
  • 月球基底建造 第三卷第一章 环月空间站奠基,深空全域值守体系与轨道文明中枢成型
  • NVIDIA Profile Inspector终极指南:免费解锁200+隐藏显卡设置,彻底解决游戏卡顿问题
  • 从NGSIM到自动驾驶仿真:如何用sEMA滤波为你的车辆模型提供‘干净’的轨迹真值?
  • PINN调参避坑指南:从N-S方程反演案例看TensorFlow 2.0梯度计算与模型收敛技巧
  • π0.7深度解析:为什么它不是“更大的机器人模型”,而是机器人基础模型的一次方法论转向
  • 23_ble_advertising
  • 免费开源风扇控制软件FanControl终极配置指南:从零到精通
  • Kikusui菊水 149-10A数字高压表 10KV高压测试仪
  • 终极Windows老游戏兼容性修复指南:DDrawCompat完全解析
  • 别再死记硬背了!用‘能量泵’和‘光子跑步机’的比喻,5分钟搞懂激光器三大件
  • RS485电路设计偷懒神器:实测自动方向芯片THVD1426搭建设备级联,5分钟讲清接线要点
  • 解锁数据洞察:如何破解电视价值低估与线上效果误判的困局?
  • 基于MCP协议的企业深度研究工具:3分钟自动化生成全景风险报告
  • RAFT光流估计如何进化成DROID-SLAM?深入拆解其核心更新算子与DBA层
  • 告别卡顿!用STM32F1的DMA驱动ST7735屏幕,让你的UI动画丝滑起来(HAL库实战)
  • CFA备考刷题不踩坑!揽星CFA APP免费题库,适配全阶段、零成本提分 - 速递信息