📙
iLogtail用户手册
1.8.4
1.8.4
  • 关于
    • 什么是iLogtail
    • 发展历史
    • 产品优势
    • 开源协议
    • 社区版和企业版的对比说明
  • 安装
    • 快速开始
    • Docker使用
    • Kubernetes使用
    • 守护进程
    • 发布记录
    • 支持的操作系统
    • 源代码
      • 下载
      • 编译
      • Docker镜像
      • 编译依赖
    • 镜像站
  • 概念
    • 关键概念
    • 数据流水线
  • 配置
    • 采集配置
    • 系统参数
    • 日志
  • 数据流水线
    • 概览
    • 插件版本管理
    • 输入
      • 文本日志
      • 脚本执行数据
      • 容器标准输出
      • 文本日志(debug)
      • MetricInput示例插件
      • 主机Meta数据
      • Mock数据-Metric
      • eBPF网络调用数据
      • 主机监控数据
      • MySQL Binlog
      • GO Profile
      • GPU数据
      • HTTP数据
      • ServiceInput示例插件
      • Journal数据
      • Kafka
      • Mock数据-Service
      • SqlServer 查询数据
      • OTLP数据
      • PostgreSQL 查询数据
      • Syslog数据
    • 处理
      • 添加字段
      • 添加云资产信息
      • 原始数据
      • 数据脱敏
      • 丢弃字段
      • 字段加密
      • 条件字段处理
      • 日志过滤
      • Go时间格式解析
      • Grok
      • Json
      • 日志转SLS Metric
      • 正则
      • 重命名字段
      • 分隔符
      • 键值对
      • 多行切分
      • 字符串替换
    • 聚合
      • 基础
      • 上下文
      • 按Key分组
      • 按GroupMetadata分组
    • 输出
      • Kafka(Deprecated)
      • kafkaV2
      • ClickHouse
      • ElasticSearch
      • SLS
      • 标准输出/文件
      • OTLP日志
      • Pulsar
      • HTTP
      • Loki
    • 加速
      • 分隔符加速
      • Json加速
      • 正则加速
  • 工作原理
    • 文件发现
    • 插件系统
  • 可观测性
    • 日志
  • 开发者指南
    • 开发环境
    • 日志协议
      • 协议转换
      • 增加新的日志协议
      • 协议
        • sls协议
        • 单条协议
    • 代码风格
    • 数据模型
    • 插件开发
      • 开源插件开发引导
      • Checkpoint接口
      • Logger接口
      • 如何开发Input插件
      • 如何开发Processor插件
      • 如何开发Aggregator插件
      • 如何开发Flusher插件
      • 如何生成插件文档
      • 插件文档规范
      • 纯插件模式启动
    • 测试
      • 单元测试
      • E2E测试
    • 代码检查
      • 检查代码规范
      • 检查文件许可证
      • 检查依赖包许可证
  • 贡献指南
    • 贡献指南
    • 开发者
    • 成就
  • 性能测试
    • 容器场景iLogtail与Filebeat性能对比测试
  • 管控工具
    • 使用介绍
    • 通信协议
    • 开发指南
  • Awesome iLogtail
    • 走近iLogtail社区版
    • iLogtail社区版使用入门
    • iLogtail社区版开发者指南
    • iLogtail社区版使用案例
Powered by GitBook
On this page
  • Linux版本编译
  • 编译前准备
  • 编译目标
  • 使用镜像编译完整iLogtail
  • Go插件本地编译
  • Windows版本编译
  • 编译前准备
  • 修改编译脚本
  • 执行编译脚本
  1. 安装
  2. 源代码

编译

Previous下载NextDocker镜像

Last updated 1 year ago

Linux版本编译

编译前准备

编译目标

Makefile描述了整个项目的所有编译目标,主要的包括:

目标

描述

core

仅编译C++核心

plugin

仅编译Go插件

all

编译完整iLogtail

dist

打包发行

docker

制作iLogtail镜像

plugin_local

本地编译Go插件

使用make <target>命令编译所选目标,如果需要指定生成的版本号则在编译命令前加上VERSION环境变量,如:

VERSION=1.1.1 make dist

如果发生编译错误,如

/src/core/common/CompressTools.cpp:18:23: fatal error: zstd/zstd.h: No such file or directory
 #include <zstd/zstd.h>
                       ^
compilation terminated.

请确保本地编译镜像为最新版本。可使用以下命令更新:

docker pull sls-opensource-registry.cn-shanghai.cr.aliyuncs.com/ilogtail-community-edition/ilogtail-build-linux

使用镜像编译完整iLogtail

编译完整iLogtail的命令是make all,由于all是默认的编译目标,因此也可以直接make。该命令首先清理output目录,然后调用./scripts/gen_build_scripts.sh脚本生成编译用的脚本和镜像描述保存到./gen目录,调用 docker 制作镜像,制作的过程即镜像内的编译过程,最后将镜像内的编译结果复制到output目录。

以下命令可以快速编译出iLogtail的可执行程序和插件。

1. 进入源代码顶层目录。

2. 执行命令make。

3. 查看output目录结果。

./output
├── ilogtail (主程序)
├── libPluginAdapter.so(插件接口)
├── libPluginBase.h
└── libPluginBase.so (插件lib)

Go插件本地编译

go mod tidy       # 若需要更新插件依赖库
make plugin_local # 每次更新插件代码后从这里开始

如果未对只是对插件依赖库进行修改,则只需要执行最后一行命令即可。

Windows版本编译

编译前准备

  • 装备一台windows机器

  • 安装Visual Studio Community Edition,推荐2017版本

  • 安装golang

  • 安装MinGW(根据windows机器位数选择对应版本)

  • 下载相应位数的C++ boost库,安装

  • 下载相应位数的ilogtail-deps编译依赖,解压

修改编译脚本

将ilogtail/scripts/windows64_build.bat(windows32_build.bat)脚本中的的BOOST_ROOT、ILOGTAIL_DEPS_PATH、CMAKE_BIN、DEVENV_BIN、MINGW_PATH五个环境变量值替换成编译机器上实际的路径

set ILOGTAIL_PLUGIN_SRC_PATH=%P1Path%
REM Change to where boost_1_68_0 locates
set BOOST_ROOT=C:\workspace\boost_1_68_0
REM Change to where ilogtail-deps.windows-x64 locates, path seperator must be /
set ILOGTAIL_DEPS_PATH=C:/workspace/ilogtail-deps.windows-x64
REM Change to where cmake locates
set CMAKE_BIN=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake
REM Change to where devenv locates
set DEVENV_BIN=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\devenv.com
REM Change to where mingw locates
set MINGW_PATH=C:\workspace\mingw64\bin

执行编译脚本

cd 到ilogtail/scripts目录下,执行windows64_build.bat(windows32_build.bat)脚本,等待约6分钟,完成编译。 编译产物列表:

  • ilogtail.exe (主程序)

  • PluginAdapter.dll (插件接口)

  • PluginBase.dll (插件lib)

  • PluginBase.h

开发环境增量编译的方法请参考。

Go插件可以在主机上进行直接编译,编译前,需要安装基础的 Go 1.16+ 语言开发环境,如何安装可以参见。 在安装完成后,为了方便后续地开发,请遵照正确地设置你的开发目录以及 GOPATH 等环境变量。。

下载源代码
安装docker
开发环境
官方文档
此文档
boost_1_68_0-msvc-14.1-64.exe
boost_1_68_0-msvc-14.1-32.exe
64位依赖
32位依赖