快速开始#

前置条件#

  • Docker 与 Docker Compose
  • (生产环境)一台 2C4G 以上的服务器

1. 克隆并启动#

bash
git clone https://github.com/aak1247/logtap.git
cd logtap/deploy

# 生成 AUTH_SECRET(base64,解码后 >= 32 字节)
bash ../scripts/gen-auth-secret.sh

# 启动,自带 Postgres/TimescaleDB、Redis、NSQ
docker compose up -d

启动后:

  • 网关与控制台:http://localhost:8080
  • NSQ Admin:http://localhost:4171
  • Postgres:localhost:5432(默认库 logtap)

docker-compose.yml 已包含 TimescaleDB、Redis、NSQ(lookupd/nsqd/admin)与 logtap 网关,约 1 分钟即可就绪。也可以先在在线演示控制台体验。

2. 开启鉴权后的访问方式#

设置了 AUTH_SECRET 后:

  • 控制台需要登录
  • 上报必须携带项目 Key:X-Project-Key: pk_...(项目页可创建),或 Sentry SDK 的 sentry_key

PowerShell 环境可用 powershell -ExecutionPolicy Bypass -File scripts/gen-auth-secret.ps1,或 Taskfile 的 task auth:secret。

3. 发出第一条日志#

先在控制台创建项目,拿到项目 ID 与 pk_ 开头的项目 Key:

bash
curl -X POST http://localhost:8080/api/1/logs/ \
  -H "Content-Type: application/json" \
  -H "X-Project-Key: pk_xxx" \
  -d '{
    "level": "info",
    "message": "hello logtap",
    "user": { "id": "u1" },
    "fields": { "env": "dev" }
  }'

返回 202 Accepted 即入队成功。回到控制台即可看到这条日志,并可以继续尝试:

  • 搜索:日志页关键词检索
  • 埋点:POST /api/1/track/ 上报事件后查看 DAU、漏斗与留存
  • 异常:把任意 Sentry SDK 的 DSN 指到 LogTap,见Sentry 兼容

可选:启用 GeoIP#

需要 MaxMind GeoLite2 下载密钥:在 .env 中设置 MAXMIND_LICENSE_KEY,Compose 会把 mmdb 下载并缓存到 volume /data/geoip/,用于来源国家/城市/ASN 分布分析。

下一步#

  • 部署指南:无 Docker 部署、systemd 与生产建议
  • 上报接口:完整的数据模型与批量上报
  • SDK:在业务代码里用 SDK 上报