入门
5分钟内即可完成 IEDB 安装和运行。
发布包
| 平台 | 架构 | 包名 |
|---|---|---|
| Docker | amd64, arm64 | ghcr.io/mengdal/iedb:xx.xx.xx |
| Debian/Ubuntu | amd64 | iedb-xx.xx.xx_amd64.deb |
| Debian/Ubuntu | arm64 | iedb-xx.xx.xx_arm64.deb |
| RHEL/Fedora | x86_64 | iedb-xx.xx.xx-1.x86_64.rpm |
| RHEL/Fedora | aarch64 | iedb-xx.xx.xx-1.aarch64.rpm |
| Kubernetes | - | iedb-xx.xx.xx.tgz (Helm) |
先决条件
- Docker
- DEB 原生安装
- RPM 原生安装
- 嵌入式手动安装
- Docker 最低 4GB 内存,建议 8GB 以上
- x86_64 / ARM64 架构均可
- Debian / Ubuntu(Debian 10+ / Ubuntu 20.04+)
- amd64 / ARM64 架构
- 建议 4GB 以上内存
- RHEL / CentOS / Fedora(RHEL 8+ / Fedora 36+)
- x86_64 / aarch64 架构
- 建议 4GB 以上内存
- 适用于无包管理器的嵌入式 Linux(Buildroot、Yocto 等)
- ARM64 架构
- 内存 1GB 以上,4核 A55 64位处理器,主频 2.0GHz
- 需要 Mac 或 Windows 电脑辅助提取二进制文件
快速入门
- Docker
- DEB 原生安装
- RPM 原生安装
- 嵌入式手动安装
docker run -d \
--name iedb \
-p 8000:8000 \
-v iedb-data:/app/data \
ghcr.io/mengdal/iedb:latest
确认程序正在运行:
curl http://localhost:8000/health
1. 下载软件包
- amd64
- arm64
wget https://github.com/Mengdal/IotEdgeDB/releases/download/vxx.xx.xx/iedb-xx.xx.xx_amd64.deb
wget https://github.com/Mengdal/IotEdgeDB/releases/download/vxx.xx.xx/iedb-xx.xx.xx_arm64.deb
请将链接替换为实际下载地址。其他版本请访问 GitHub Releases 获取。
2. 安装
sudo dpkg -i iedb-xx.xx.xx_*.deb
如提示依赖缺失,执行:
sudo apt --fix-broken install
3. 启动服务
安装完成后,默认配置文件位于 /etc/iedb/iedb.toml,数据目录位于 /var/lib/iedb/。
sudo systemctl start iedb
sudo systemctl enable iedb
4. 验证运行状态
curl http://localhost:8000/health
预期返回:
{"status":"ok"}
sudo systemctl status iedb
1. 下载软件包
- x86_64
- aarch64
wget https://github.com/Mengdal/IotEdgeDB/releases/download/vxx.xx.xx/iedb-xx.xx.xx-1.x86_64.rpm
wget https://github.com/Mengdal/IotEdgeDB/releases/download/vxx.xx.xx/iedb-xx.xx.xx-1.aarch64.rpm
请将链接替换为实际下载地址。其他版本请访问 GitHub Releases 获取。
2. 安装
sudo rpm -ivh iedb-xx.xx.xx-1.*.rpm
或使用 dnf / yum:
sudo dnf localinstall iedb-xx.xx.xx-1.*.rpm
3. 启动服务
安装完成后,默认配置文件位于 /etc/iedb/iedb.toml,数据目录位于 /var/lib/iedb/。
sudo systemctl start iedb
sudo systemctl enable iedb
4. 验证运行状态
curl http://localhost:8000/health
预期返回:
{"status":"ok"}
sudo systemctl status iedb
适用于无包管理器的嵌入式 Linux 系统,需在电脑上提前提取二进制文件。
第一步:在电脑上"掏出"程序
- Mac 用户
- Windows 用户
准备工具:
brew install zstd
解压安装包:
ar -x iedb-xx.xx.xx_arm64.deb # 得到 data.tar.zst
zstd -d data.tar.zst -o data.tar # 解压 zst 得到 tar
tar -xvf data.tar # 解压出 usr 文件夹
提取文件:进入 usr/bin/ 文件夹,你会看到一个名为 iedb 的文件。
- 下载安装 7-Zip(21.00+ 版本)
- 右键
.deb→ 7-Zip → 提取 - 进入提取出的文件夹,继续右键
data.tar.zst→ 7-Zip → 提取 - 在
usr/bin目录下找到iedb
第二步:把程序传给嵌入式板子
在电脑终端执行,将文件推送到板子的 /usr/bin:
# 假设板子 IP 是 192.168.1.100
scp ./usr/bin/iedb root@192.168.1.100:/usr/bin/
如果弹出提示,输入
yes和板子的 root 密码。
第三步:在板子上赋予权限并运行
连上板子的终端,执行:
chmod +x /usr/bin/iedb
启动程序:
iedb --version
第四步:部署配置文件
将解压出的 etc/ 文件夹中的配置文件也放到板子对应位置:
scp -r ./etc/ root@192.168.1.100:/etc/
⚠️ 常见错误处理
提示"缺少 .so 文件":
把你电脑上解压出的 usr/lib/ 文件夹里的所有文件,也用 scp 拷贝到板子的 /usr/lib/ 目录下:
scp -r ./usr/lib/* root@192.168.1.100:/usr/lib/
提示"GLIBC 版本不对":
说明板子系统太老。最快的方法是去项目的 GitHub Releases 找文件名带 static(静态编译)的版本,下载后重复上述步骤。
获取您的管理员Token
首次启动时会生成一个管理员Token。请立即复制——未来无法再次生成获取!
- Docker
- DEB 原生安装
- RPM 原生安装
- 嵌入式手动安装
docker logs iedb 2>&1 | grep -i "admin"
sudo journalctl -u iedb | grep -i "admin"
或查看完整启动日志:
sudo journalctl -u iedb --no-pager | tail -80
sudo journalctl -u iedb | grep -i "admin"
或查看完整启动日志:
sudo journalctl -u iedb --no-pager | tail -80
直接运行 iedb 后,Token 会打印在终端输出中。首次启动输出示例:
./iedb
你会看到:
======================================================================
FIRST RUN - INITIAL ADMIN TOKEN GENERATED
======================================================================
Initial admin API token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
======================================================================
写入数据
- MessagePack
- 行协议
- 物联网网关
data = {
"m": "cpu",
"columns": {
"time": [int(datetime.now().timestamp() * 1000)],
"host": ["server01"],
"usage_idle": [95.0],
"usage_user": [3.2]
}
}
response = requests.post(
"http://localhost:8000/api/v1/write/msgpack",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/msgpack",
"x-iedb-database": "default"
},
data=msgpack.packb(data)
)
- InfluxDB 兼容
- Authorization Header
# InfluxDB 1.x compatible endpoint
curl -X POST "http://localhost:8000/write?db=default&p=$TOKEN" \
--data-binary "cpu,host=server01 usage_idle=95.0,usage_user=3.2"
curl -X POST "http://localhost:8000/write?db=default" \
-H "Authorization: Bearer $TOKEN" \
--data-binary "cpu,host=server01 usage_idle=95.0,usage_user=3.2"
通过 LMGateway 物联网网关实现设备数据直入 IEDB,无需编写代码。

LMGateway 支持上百种工业协议(Modbus、OPC UA、MQTT、S7 等),PLC/CNC/传感器即插即采,数据直接写入 IEDB,边缘到云端一站式打通。了解更多请访问 www.lmgateway.com
查询数据
- JSON (curl)
- Arrow (Python)
curl -X POST http://localhost:8000/api/v1/query \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"sql": "SELECT * FROM default.cpu LIMIT 10", "format": "json"}'
import requests
import pyarrow as pa
import os
token = os.getenv("IEDB_TOKEN")
response = requests.post(
"http://localhost:8000/api/v1/query/arrow",
headers={"Authorization": f"Bearer {token}"},
json={"sql": "SELECT * FROM default.cpu LIMIT 10000"}
)
reader = pa.ipc.open_stream(response.content)
df = reader.read_all().to_pandas()
print(df.head())
后续步骤
- Telegraf 集成- 收集系统指标
- Grafana - 构建仪表盘
- 配置- 根据您的工作负载调整相应配置
故障排除
- Docker
- DEB 原生安装
- RPM 原生安装
- 嵌入式手动安装
docker logs iedb
sudo journalctl -u iedb -n 50
sudo systemctl status iedb
配置文件检查:
cat /etc/iedb/iedb.toml
重新安装:
sudo dpkg -P iedb
sudo dpkg -i iedb-xx.xx.xx_*.deb
sudo journalctl -u iedb -n 50
sudo systemctl status iedb
配置文件检查:
cat /etc/iedb/iedb.toml
重新安装:
sudo rpm -e iedb
sudo rpm -ivh iedb-xx.xx.xx-1.*.rpm
查看程序是否正在运行:
ps aux | grep iedb
检查 GLIBC 兼容性:
ldd /usr/bin/iedb
查看配置是否正确加载:
cat /etc/iedb/iedb.toml
常见问题
身份验证错误:请确保TOKEN已设置并包含在请求头中。
未返回数据:数据可能尚未刷新。清除缓存后刷新:
curl -X POST http://localhost:8000/api/v1/write/line-protocol/flush \
-H "Authorization: Bearer $TOKEN"
无法访问 Web 管理界面:IEDB 启动后会从当前目录下的 front/ 文件夹加载前端页面。前端源码及构建产物参见 iedb-ui。将前端构建产物放在与 iedb 二进制同级的 front/ 目录中:
# 下载或构建前端资源后,确保目录结构如下:
# .
# ├── iedb ← 二进制文件
# ├── iedb.toml ← 配置文件
# └── front/ ← 前端静态资源
# ├── index.html
# └── assets/
启动后访问 http://localhost:8000 即可打开管理界面。