LoongCollector

1758
下载
LoongCollector 源自阿里云可观测性团队所开源的 iLogtail 项目,在继承了 iLogtail 强大的日志采集与处理能力的基础上,进行了全面的功能升级与扩展。从原来单一日志场景,逐步扩展为可观测数据采集、本地计算、服务发现的统一体。 LoongCollector 是一款集卓越性能、超强稳定性和灵活可编程性于一身的数据采集器,专为构建下一代可观测 Pipeline 设计。愿景是:打造业界领先的“统一可观测 Agent(Unified Observability Agent)”与“端到端可观

编译


Linux版本编译

编译前准备

下载源代码

安装docker

编译目标

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

目标描述
core仅编译C++核心
plugin仅编译Go插件
all编译完整LoongCollector
dist打包发行
docker制作LoongCollector镜像
plugin_local本地编译Go插件

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

Terminal window
VERSION=1.8.3 make dist

如果发生编译错误,如

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

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

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

使用镜像编译完整LoongCollector

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

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

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

  2. 执行命令make

  3. 查看output目录结果。

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

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

Go插件本地编译

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

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

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

Windows版本编译

编译前准备

修改编译脚本

将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

编译时替换外部模块

LoongCollector通过 Provider 模块暴露出一些拓展点,这些拓展点可以由用户自行实现,并通过编译时CMAKE DPROVIDER_PATH选项替换掉默认的实现。

示例:

Terminal window
cmake -DPROVIDER_PATH=../../../core_extensions/provider ..

observability.cn Authors 2024 | Documentation Distributed under CC-BY-4.0
Copyright © 2017-2024, Alibaba. All rights reserved. Alibaba has registered trademarks and uses trademarks.
浙ICP备2021005855号-32