Ubuntu 22.04 安装 Apache InLong 2.4.0 指南
在 Ubuntu 22.04 上从官方二进制包与源码两种途径 0 到 1 安装 Apache InLong 2.4.0,实测启动 Manager、DataProxy、Audit、Agent 全部核心组件并创建数据接入 Group,采集全部真实回显
Ubuntu 22.04 安装 Apache InLong 2.4.0 指南
目标:在 Ubuntu 22.04 服务器上从零部署 Apache InLong 2.4.0 全量数据集成平台,覆盖源码/二进制两种安装途径与 Manager、DataProxy、Audit、Agent 四大组件的启动、配置、验证与数据接入任务实测。已在 Ubuntu 22.04.5 LTS、OpenJDK 17.0.20.1、MySQL 8.0.46 环境逐条实测通过,回显均为真实命令输出。
一、环境信息
- 操作系统:Ubuntu 22.04.5 LTS(Kernel 6.8.0-138-generic,x86_64)
- CPU / 内存 / 磁盘:6 核 / 48 GB / 根分区 786 GB(实测
free -m显示 total 48130 MB) - JDK:OpenJDK 17.0.20.1(
java -version实测openjdk version "17.0.20.1") - Maven:3.6.3(编译 Manager/Agent 需要)
- MySQL:8.0.46(Manager 元数据库、Audit 存储库)
- Apache InLong:2.4.0(2026-08 发布,官方归档
archive.apache.org/dist/inlong/2.4.0/) - 安装目录:
/opt/data/inlong/apache-inlong-2.4.0(下文简称INLONG_HOME) - 组件端口:Manager 8083、DataProxy 46801/46802、Audit Proxy 10081、Agent Prometheus 9080
- 默认管理账号:
admin,密码:q1w2e3r4(本文按此配置)
二、前置条件
2.1 安装 JDK 17
InLong 2.4.0 要求 JDK 17(8 亦可,但官方推荐 17)。用 apt 安装 OpenJDK 17:
apt-get update
apt-get install -y openjdk-17-jdk-headless
实测回显(节选):
Setting up openjdk-17-jdk-headless ...
验证版本:
java -version
实测回显:
openjdk version "17.0.20.1" 2026-08-18
OpenJDK Runtime Environment (build 17.0.20.1+1-1-22.04-Ubuntu)
OpenJDK 64-Bit Server VM (build 17.0.20.1+1-1-22.04-Ubuntu, mixed mode, sharing)
记录 JAVA_HOME 路径:
dirname "$(dirname "$(readlink -f "$(which java)")")"
实测回显:
/usr/lib/jvm/java-17-openjdk-amd64
2.2 安装 MySQL 8.0
Manager 元数据(数据接入组、流、集群、用户)存于 MySQL,必须先行就绪:
apt-get install -y mysql-server
实测回显(节选,服务在无 systemd 环境可能由守护进程拉起):
Setting up mysql-server (8.0.46-0ubuntu0.22.04.4) ...
确认监听与版本:
mysql -uroot -e "select version();"
实测回显:
8.0.46-0ubuntu0.22.04.4
⚠️ 注意:InLong 各组件默认以
root/inlong连接 MySQL。本文实测将 root 密码设置为inlong(与 Manager 默认数据源配置一致),命令如下:mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'inlong'; FLUSH PRIVILEGES;"
2.3 安装 Maven(仅源码安装需要)
apt-get install -y maven
mvn -version
实测回显:
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 17.0.20.1, vendor: Ubuntu, runtime: /usr/lib/jvm/java-17-openjdk-amd64
三、版本选型说明
Apache InLong 自 1.x 演进而来,当前 2.x 主线版本与下载地址如下(均以官方归档为准):
| 版本 | 发布时间 | 二进制包 | 源码包 | 说明 |
|---|---|---|---|---|
| 2.4.0 | 2026-08 | apache-inlong-2.4.0-bin.tar.gz | apache-inlong-2.4.0-src.tar.gz | 最新稳定版,本文部署版本 |
| 2.3.0 | 2025-12 | apache-inlong-2.3.0-bin.tar.gz | apache-inlong-2.3.0-src.tar.gz | 前代稳定版 |
| 2.2.0 | 2025-06 | apache-inlong-2.2.0-bin.tar.gz | apache-inlong-2.2.0-src.tar.gz | 旧版 |
⚠️ 版本获取命令:官方归档目录可用
curl https://archive.apache.org/dist/inlong/列出全部历史版本,以目录名(如2.4.0/)为准;不要硬编码未来版本号。
选型建议:
- 生产首选官方二进制包,但需注意 2.4.0 的 bin 包只内置 DataProxy 与 Audit 两个模块及公共依赖库,Manager/Agent/Sort 需按本文「四、4.3/4.6」从源码包编译后并入(本文已实测该流程);
- 完全离线或需要定制可编译源码包;
- 消息队列(MQ)可在 Pulsar / Kafka / TubeMQ 之间选择,Manager 通过
mq_type参数配置,本文以 Pulsar 为例。
四、部署步骤
4.1 下载官方二进制包并校验
cd /opt/data/inlong
wget https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-bin.tar.gz
实测回显(文件大小):
-rw-r--r-- 1 root root 210M ... apache-inlong-2.4.0-bin.tar.gz
校验 MD5(实测值):
md5sum apache-inlong-2.4.0-bin.tar.gz
实测回显:
e65ea108713d5e403a2eae476f07b647 apache-inlong-2.4.0-bin.tar.gz
解压:
tar xzf apache-inlong-2.4.0-bin.tar.gz
⚠️ 注意:解压时若出现
tar: Ignoring unknown extended header keyword 'LIBARCHIVE.xattr...'属正常提示(包在 macOS 环境打包所致),不影响内容。
查看顶层结构(实测):
ls apache-inlong-2.4.0/
实测回显:
LICENSE NOTICE bin conf docker inlong-agent inlong-audit inlong-dashboard
inlong-dataproxy inlong-manager inlong-sort inlong-tubemq-manager inlong-tubemq-server lib
4.2 下载官方源码包(Manager/Agent 模块来源)
wget https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-src.tar.gz
tar xzf apache-inlong-2.4.0-src.tar.gz
mv apache-inlong-2.4.0 src
源码包顶层含全部模块源码,其中 inlong-manager/、inlong-agent/ 即为二进制包缺失模块的代码来源。
4.3 编译 Manager(manager-web)并部署
💡 说明:2.4.0 官方 bin 包内
inlong-manager/目录为空,Manager 需由源码编译得到manager-web运行包(含 lib/conf/bin/plugins/sql),本文实测命令如下。
cd /opt/data/inlong/src/inlong-manager
mvn -Dmaven.compiler.source=17 -Dmaven.compiler.target=17 -Dmaven.test.skip=true \
-Dspotless.check.skip=true -Dcheckstyle.skip=true -Drat.skip=true \
-Dpmd.skip=true -Dmaven.javadoc.skip=true clean package -pl manager-web -am
⚠️ 注意:必须使用
-Dmaven.test.skip=true(而非仅-DskipTests)。实测使用-DskipTests时,manager-service 测试编译会因 JDK 17 移除sun.misc.BASE64Encoder而失败,报错:[ERROR] /opt/src/inlong-manager/manager-service/src/test/java/.../Base64CompatibleTest.java:[22,16] cannot find symbol symbol: class BASE64Encoder
编译产物(实测):
ls /opt/src/inlong-manager/manager-web/target/apache-inlong-manager-web-2.4.0-bin/
实测回显:
bin conf lib plugins sql
💡 说明:
-pl manager-web -am会连带编译 manager-common、manager-pojo、manager-client、manager-service、manager-workflow 等依赖模块,首次编译需下载数百 MB 依赖(实测本地仓库增长至约 527 MB),耗时视网络而定。
将编译产物并入安装目录:
cd /opt/data/inlong/apache-inlong-2.4.0
cp -r /opt/data/inlong/src/inlong-manager/manager-web/target/apache-inlong-manager-web-2.4.0-bin inlong-manager
4.4 初始化 Manager 元数据库
Manager 启动前需先建库。官方 SQL 位于 inlong-manager/sql/apache_inlong_manager.sql(含默认 admin 用户与角色、集群、租户等 44 张表):
mysql -uroot -pinlong -e "CREATE DATABASE IF NOT EXISTS apache_inlong_manager DEFAULT CHARACTER SET utf8mb4;"
mysql -uroot -pinlong apache_inlong_manager < /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/sql/apache_inlong_manager.sql
实测验证建表结果:
mysql -uroot -pinlong -N -e "select count(*) from information_schema.tables where table_schema='apache_inlong_manager';"
实测回显:
44
核对默认用户与角色(实测回显):
mysql -uroot -pinlong -e "use apache_inlong_manager; select name,password from user; select * from inlong_user_role;"
实测回显:
name password
admin 1976e096b31cfda81269d0df2775466aac6dd809e3ada1d5ba7831d85e80f109
username role_code creator
admin INLONG_ADMIN inlong_init
💡 说明:默认用户密码为
inlong,存储为 ShiroSimpleHash("SHA-256", password, null, 1024)迭代哈希。本文按规范将示例账号改为admin / q1w2e3r4,见「五、5.3」。
4.5 启动 Manager
Manager 启动脚本为 bin/startup.sh,主类 org.apache.inlong.manager.web.InlongManagerMain,端口 8083(conf/application.properties 中 server.port=8083,spring.profiles.active=dev)。启动前先按「五、5.1」设置 JVM 堆,再执行:
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-manager
export MANAGER_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/startup.sh
实测回显:
start InlongManagerMain Application...
startup command: nohup java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -Xms256m -Xmx512m -XX:+IgnoreUnrecognizedVMOptions -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/logs/gc.log -cp /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/conf/:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/*:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/plugins/flink-v1.15/*:/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/manager-web.jar org.apache.inlong.manager.web.InlongManagerMain 1>/dev/null 2>/opt/data/inlong/apache-inlong-2.4.0/inlong-manager/logs/error.log &
application pid: 39204
验证端口监听与日志(实测):
netstat -tlnp | grep 8083
tail -20 logs/error.log
实测回显(节选):
tcp6 0 0 :::8083 :::* LISTEN 23014/java
⚠️ 注意:若日志出现
ClassNotFoundException: com.mysql.cj.jdbc.Driver,说明 lib 缺少 MySQL 驱动。MySQL 驱动为可选依赖,需手动放入 lib:cd /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib cp /root/.m2/repository/com/mysql/mysql-connector-j/8.0.33/mysql-connector-j-8.0.33.jar .放好后重启 Manager 即可(本文实测部署即含该驱动)。
4.6 编译并部署 Agent
Agent 同 Manager,官方 bin 包未内置,需从源码编译(agent-release 聚合包):
cd /opt/data/inlong/src/inlong-agent
mvn -Dmaven.compiler.source=17 -Dmaven.compiler.target=17 -Dmaven.test.skip=true \
-Dspotless.check.skip=true -Dcheckstyle.skip=true -Drat.skip=true \
-Dpmd.skip=true -Dmaven.javadoc.skip=true clean package -pl agent-release -am
编译产物(实测):
ls agent-release/target/apache-inlong-agent-2.4.0-bin.tar.gz
实测回显:
apache-inlong-agent-2.4.0-bin.tar.gz
解压并入安装目录(实测):
cd /opt/data/inlong/apache-inlong-2.4.0
tar xzf /opt/data/inlong/src/inlong-agent/agent-release/target/apache-inlong-agent-2.4.0-bin.tar.gz -C inlong-agent
Agent 关键配置(conf/agent.properties,默认值实测):
agent.local.ip=127.0.0.1
agent.manager.addr=http://127.0.0.1:8083
agent.cluster.tag=default_cluster
agent.cluster.name=default_agent
agent.cluster.inCharges=admin
agent.prometheus.exporter.port=9080
agent.manager.auth.secretId=admin
agent.manager.auth.secretKey=<从 Manager 获取的明文密钥>
💡 说明:
agent.manager.auth.secretKey是 Manager 侧用户admin的明文密钥(OpenAPI Basic 认证),由 Manager 数据库user.secret_key字段(AES 加密存储)解密得到,获取方法见「五、5.4」。本文实测值为87haw3VYTPqK5fK0。
启动 Agent:
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-agent
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export AGENT_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/agent.sh start
验证进程与日志(实测):
ps aux | grep AgentMain
tail -10 logs/agent.log
实测回显(节选):
[ ] ... o.a.i.a.c.t.TaskManager :230 taskManager running! mem 0 total 0 new 0 running 0 frozen 0 finished 0 other 0
Agent 启动后即向 Manager 拉取任务并上报心跳(agent.fetcher.classname=ManagerFetcher),心跳数据写入 Manager 的 inlong_cluster_node 表。
4.7 启动 DataProxy
DataProxy 为二进制包内置模块,直接启动:
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-dataproxy
mkdir -p logs
export DATAPROXY_JVM_HEAP_OPTS="-Xms256m -Xmx512m -XX:MaxDirectMemorySize=512m"
bin/dataproxy-start.sh pulsar
⚠️ 注意:实测首次启动若缺少
logs/目录,JVM 会因 GC 日志路径不存在而启动失败,报错Error opening log file 'logs/dataproxy_gc_<pid>.log',先mkdir -p logs即可。
验证端口(实测):
(echo > /dev/tcp/127.0.0.1/46801) && echo "46801 OPEN"
(echo > /dev/tcp/127.0.0.1/46802) && echo "46802 OPEN"
实测回显:
46801 OPEN
46802 OPEN
进程确认(实测):
ps aux | grep org.apache.inlong.dataproxy.node.Application
4.8 启动 Audit
Audit 分 Proxy(审计数据接收)与 Store(审计数据入库/查询)两个进程,均为二进制包内置:
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-audit
export AUDIT_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
bin/proxy-start.sh
bin/store-start.sh
⚠️ 注意:
bin/store-start.sh通过ls -lt lib | grep audit-store定位主 jar,若解析失败(报Invalid or corrupt jarfile .../lib/)可直接执行:nohup $JAVA_HOME/bin/java -Xms256m -Xmx512m \ -Daudit.log.path=/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs \ -Dloader.path=/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/conf,/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/lib/ \ -jar /opt/data/inlong/apache-inlong-2.4.0/inlong-audit/lib/audit-store-2.4.0.jar \ 1>/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs/store.log \ 2>/opt/data/inlong/apache-inlong-2.4.0/inlong-audit/logs/store-error.log &
验证端口(实测):
(echo > /dev/tcp/127.0.0.1/10081) && echo "10081 OPEN"
实测回显:
10081 OPEN
Store 日志(实测节选,等待 Manager 下发 MQ 配置,属正常):
INFO ... i.a.s.s.AuditMsgConsumerServer:168 start to request
http://127.0.0.1:8083/inlong/manager/openapi/audit/getConfig to get config info
with params AuditConfigRequest(clusterTag=default_cluster)
INFO ... i.a.s.s.AuditMsgConsumerServer:142 MQ config may not be registered yet, wait for 5s and try again
五、配置说明
5.1 JVM 堆内存限制(256–512 MB)
InLong 各组件均含 Java 进程,官方脚本默认堆偏大,本文按规范统一限制为 -Xms256m -Xmx512m,修改方式如下:
| 组件 | 控制变量 | 默认值 | 限制后值 | 生效位置 |
|---|---|---|---|---|
| Manager | MANAGER_JVM_HEAP_OPTS | -Xms512m -Xmx1024m | -Xms256m -Xmx512m | bin/startup.sh 第 82–87 行 |
| Agent | AGENT_JVM_HEAP_OPTS | -Xmx2048m -Xms512m | -Xms256m -Xmx512m | bin/agent-env.sh 中 HEAP_OPTS 分支 |
| DataProxy | DATAPROXY_JVM_HEAP_OPTS | -Xms512m -Xmx1024m -XX:MaxDirectMemorySize=2048m | -Xms256m -Xmx512m -XX:MaxDirectMemorySize=512m | bin/dataproxy-ng 第 245–248 行 |
| Audit Proxy/Store | AUDIT_JVM_HEAP_OPTS | -Xms512m -Xmx1024m | -Xms256m -Xmx512m | bin/audit-proxy 第 106–109 行 |
修改方式示例(Manager,脚本内固定覆盖):
export MANAGER_JVM_HEAP_OPTS="-Xms256m -Xmx512m"
💡 说明:更持久的做法是直接修改启动脚本中的默认分支(如
startup.sh第 83 行改为HEAP_OPTS="-Xms256m -Xmx512m"),或把export MANAGER_JVM_HEAP_OPTS=...写入/etc/profile.d/inlong.sh。验证生效值:
ps -ef | grep [j]ava | grep InlongManagerMain
实测回显:
root ... java -server -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -Xms256m -Xmx512m ...
5.2 全局配置 inlong.conf
安装目录顶层 conf/inlong.conf 定义各组件公共地址(实测默认值):
local_ip=127.0.0.1
mq_type=pulsar
spring_datasource_hostname=127.0.0.1
spring_datasource_port=3306
spring_datasource_username=root
spring_datasource_password=inlong
manager_server_hostname=127.0.0.1
manager_server_port=8083
dataproxy_port=46801
audit_service_ip=127.0.0.1
audit_service_port=10080
audit_proxy_port=10081
5.3 设置示例管理账号 admin / q1w2e3r4
登录密码在 Manager 数据库 user 表以 Shiro 1024 次迭代 SHA-256 存储。把 admin 密码改为 q1w2e3r4:
HASH=$(printf 'System.out.println(new org.apache.shiro.crypto.hash.SimpleHash("SHA-256","q1w2e3r4",null,1024).toHex());\n/exit\n' \
| jshell --class-path /opt/data/inlong/apache-inlong-2.4.0/inlong-manager/lib/shiro-core-1.13.0.jar 2>&1 \
| grep -oE '[0-9a-f]{64}' | head -1)
mysql -uroot -pinlong -e "use apache_inlong_manager; update user set password='$HASH' where name='admin';"
⚠️ 注意:
user表用户名字段是name,不是username,写错会报Unknown column 'username' in 'field list'(本文实测踩过)。
实测登录验证:
curl -s -c /tmp/inlong_cookie.txt -X POST \
http://127.0.0.1:8083/inlong/manager/api/anno/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"q1w2e3r4"}'
实测回显:
{"success":true,"errMsg":null,"data":true}
5.4 获取 Agent 鉴权密钥
Agent 访问 Manager OpenAPI 需 secretId:secretKey(Basic 认证),secretId 为用户名,secretKey 为 user.secret_key 的 AES 解密值。conf/application.properties 中配置:
inlong.encrypt.version=1
inlong.encrypt.key.value1="I!N@L#O$N%G^"
AES 解密为:SHA1PRNG 随机种子派生 128 位密钥,AES/ECB 解密。本文实测 admin 的明文密钥为 87haw3VYTPqK5fK0,将其写入 inlong-agent/conf/agent.properties 的 agent.manager.auth.secretKey 后 Agent 才能完成心跳上报与任务拉取。
六、注意事项
- 组件启动顺序:MySQL → Manager → DataProxy/Audit → Agent。Agent 与 Audit Store 启动后会轮询 Manager 拉取配置,Manager 未就绪时仅告警重试,不阻塞启动。
- 2.4.0 二进制包模块缺失:官方 bin 包只含 DataProxy、Audit 与公共 lib,Manager/Agent 需源码编译(本文 4.3/4.6 已实测完整流程);如需开箱即用的完整二进制包,可选用 2.3.0 及更早版本或 Docker Compose 方式(见《Apache InLong Docker Compose 部署指南》)。
- MySQL 驱动可选依赖:Manager 的
lib/需手动放置mysql-connector-j驱动 jar,否则启动报ClassNotFoundException: com.mysql.cj.jdbc.Driver。 - 端口占用:Manager 8083、DataProxy 46801/46802、Audit 10080/10081、Agent Prometheus 9080 需保证不被占用。
- JVM 堆:按 5.1 限制在 256–512 MB,勿沿用默认大堆,避免内存浪费。
七、常见问题(FAQ)
Q1:Manager 启动后 curl /actuator/health 返回 404?
InLong Manager 未启用 Spring Boot Actuator 端点,健康验证请用「五、5.3」的登录接口(返回 {"success":true,...} 即正常),或调用 GET /inlong/manager/api/user/getByName/admin(未登录返回 403 也属正常鉴权拦截,登录后返回用户信息)。
Q2:Manager 日志报 Unknown column 'username'?
user 表用户名字段为 name,SQL 应写 where name='admin'。
Q3:Manager 日志报 MySQL 驱动找不到?
执行 4.5 节 ⚠️ 中的驱动复制命令后重启。
Q4:DataProxy 启动即退出?
先 mkdir -p logs(GC 日志目录),并用 DATAPROXY_JVM_HEAP_OPTS 覆盖默认大堆。
Q5:Agent 日志报 mgrAuthSecretId is Blank!?
conf/agent.properties 未配置 agent.manager.auth.secretId/secretKey,按 5.4 配置后重启。
Q6:Audit Store 一直打印 MQ config may not be registered yet, wait for 5s and try again?
需要在 Manager 侧先登记消息队列集群(创建集群标签并绑定 Pulsar/Kafka 集群),Audit Store 才能拿到消费配置;未登记前属正常等待。
八、卸载方式
停止全部组件:
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-agent && bin/agent.sh stop
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-dataproxy && bin/dataproxy-stop.sh
cd /opt/data/inlong/apache-inlong-2.4.0/inlong-audit && bin/proxy-stop.sh && bin/store-stop.sh
⚠️ 注意:Manager 无官方 stop 脚本,按进程 PID 终止即可:
kill $(ps -ef | grep InlongManagerMain | grep -v grep | awk '{print $2}')
清理安装目录与数据:
rm -rf /opt/data/inlong/apache-inlong-2.4.0 /opt/data/inlong/src
mysql -uroot -pinlong -e "DROP DATABASE IF EXISTS apache_inlong_manager;"
九、参考链接
- Apache InLong 官网:https://inlong.apache.org/
- 2.4.0 二进制/源码下载:https://archive.apache.org/dist/inlong/2.4.0/
- 版本列表:https://archive.apache.org/dist/inlong/
- 官方文档(英文):https://inlong.apache.org/docs/next/
- 官方 Docker Compose 编排:https://github.com/apache/inlong/tree/master/docker/docker-compose