langfuse_V2升级到V3.59.1(与milvus同一台机器)
环境
OS:Centos 7
v2: 2.70.1
v3: 3.59.1
1.准备v3的部署目录
mkdir -p /home/middle/langfuse_v3/langfuse ##docker-compose.yml配置文件存放目录
mkdir -p /home/middle/langfuse_v3/clickhouse/conf ##clickhouse配置文件外挂到该目录
mkdir -p /home/middle/langfuse_v3/clickhouse/data ##clickhouse数据文件外挂到该目录
mkdir -p /home/middle/langfuse_v3/clickhouse/logs ##clickhouse日志文件外挂到该目录
mkdir -p /home/middle/langfuse_v3/clickhouse/conf ##clickhouse配置文件
mkdir -p /home/middle/langfuse_v3/minio_data ##minio数据文件外挂到该目录
mkdir -p /home/middle/langfuse_v3/pgdata ##数据从v2版本拷贝过来
2.准备配置文件
[root@kvm-181 langfuse]# more docker-compose.yml
services:
langfuse-worker:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/langfuse-worker:3.59.1
restart: always
depends_on: &langfuse-depends-on
postgres:
condition: service_healthy
minio:
condition: service_healthy
redis:
condition: service_healthy
clickhouse:
condition: service_healthy
ports:
- 127.0.0.1:3030:3030
environment: &langfuse-worker-env
DATABASE_URL: postgresql://postgres:postgres@postgres:5432/postgres # CHANGEME
SALT: "mysalt" # CHANGEME
ENCRYPTION_KEY: "0000000000000000000000000000000000000000000000000000000000000000" # CHANGEME: generate via `openssl rand -hex
32`
TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-true}
LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES: ${LANGFUSE_ENABLE_EXPERIMENTAL_FEATURES:-true}
CLICKHOUSE_MIGRATION_URL: ${CLICKHOUSE_MIGRATION_URL:-clickhouse://clickhouse:9000}
CLICKHOUSE_URL: ${CLICKHOUSE_URL:-http://clickhouse:8123}
CLICKHOUSE_USER: ${CLICKHOUSE_USER:-clickhouse}
CLICKHOUSE_PASSWORD: ${CLICKHOUSE_PASSWORD:-clickhouse} # CHANGEME
CLICKHOUSE_CLUSTER_ENABLED: ${CLICKHOUSE_CLUSTER_ENABLED:-false}
LANGFUSE_S3_EVENT_UPLOAD_BUCKET: ${LANGFUSE_S3_EVENT_UPLOAD_BUCKET:-langfuse}
LANGFUSE_S3_EVENT_UPLOAD_REGION: ${LANGFUSE_S3_EVENT_UPLOAD_REGION:-auto}
LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID: ${LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID:-minio}
LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY: ${LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY:-miniosecret} # CHANGEME
LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT: ${LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT:-http://minio:9000}
LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE: ${LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE:-true}
LANGFUSE_S3_EVENT_UPLOAD_PREFIX: ${LANGFUSE_S3_EVENT_UPLOAD_PREFIX:-events/}
LANGFUSE_S3_MEDIA_UPLOAD_BUCKET: ${LANGFUSE_S3_MEDIA_UPLOAD_BUCKET:-langfuse}
LANGFUSE_S3_MEDIA_UPLOAD_REGION: ${LANGFUSE_S3_MEDIA_UPLOAD_REGION:-auto}
LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID: ${LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID:-minio}
LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY: ${LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY:-miniosecret} # CHANGEME
LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT: ${LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT:-http://localhost:9090}
LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE: ${LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE:-true}
LANGFUSE_S3_MEDIA_UPLOAD_PREFIX: ${LANGFUSE_S3_MEDIA_UPLOAD_PREFIX:-media/}
LANGFUSE_S3_BATCH_EXPORT_ENABLED: ${LANGFUSE_S3_BATCH_EXPORT_ENABLED:-false}
LANGFUSE_S3_BATCH_EXPORT_BUCKET: ${LANGFUSE_S3_BATCH_EXPORT_BUCKET:-langfuse}
LANGFUSE_S3_BATCH_EXPORT_PREFIX: ${LANGFUSE_S3_BATCH_EXPORT_PREFIX:-exports/}
LANGFUSE_S3_BATCH_EXPORT_REGION: ${LANGFUSE_S3_BATCH_EXPORT_REGION:-auto}
LANGFUSE_S3_BATCH_EXPORT_ENDPOINT: ${LANGFUSE_S3_BATCH_EXPORT_ENDPOINT:-http://minio:9000}
LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT: ${LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT:-http://localhost:9090}
LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID: ${LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID:-minio}
LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY: ${LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY:-miniosecret} # CHANGEME
LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE: ${LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE:-true}
LANGFUSE_INGESTION_QUEUE_DELAY_MS: ${LANGFUSE_INGESTION_QUEUE_DELAY_MS:-}
LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS: ${LANGFUSE_INGESTION_CLICKHOUSE_WRITE_INTERVAL_MS:-}
REDIS_HOST: ${REDIS_HOST:-redis}
REDIS_PORT: ${REDIS_PORT:-6379}
REDIS_AUTH: ${REDIS_AUTH:-myredissecret} # CHANGEME
REDIS_TLS_ENABLED: ${REDIS_TLS_ENABLED:-false}
REDIS_TLS_CA: ${REDIS_TLS_CA:-/certs/ca.crt}
REDIS_TLS_CERT: ${REDIS_TLS_CERT:-/certs/redis.crt}
REDIS_TLS_KEY: ${REDIS_TLS_KEY:-/certs/redis.key}
langfuse-web:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/langfuse:3.59.1
restart: always
depends_on: *langfuse-depends-on
ports:
- 3000:3000
environment:
<<: *langfuse-worker-env
NEXTAUTH_URL: http://localhost:3000
NEXTAUTH_SECRET: mysecret # CHANGEME
LANGFUSE_INIT_ORG_ID: ${LANGFUSE_INIT_ORG_ID:-}
LANGFUSE_INIT_ORG_NAME: ${LANGFUSE_INIT_ORG_NAME:-}
LANGFUSE_INIT_PROJECT_ID: ${LANGFUSE_INIT_PROJECT_ID:-}
LANGFUSE_INIT_PROJECT_NAME: ${LANGFUSE_INIT_PROJECT_NAME:-}
LANGFUSE_INIT_PROJECT_PUBLIC_KEY: ${LANGFUSE_INIT_PROJECT_PUBLIC_KEY:-}
LANGFUSE_INIT_PROJECT_SECRET_KEY: ${LANGFUSE_INIT_PROJECT_SECRET_KEY:-}
LANGFUSE_INIT_USER_EMAIL: ${LANGFUSE_INIT_USER_EMAIL:-}
LANGFUSE_INIT_USER_NAME: ${LANGFUSE_INIT_USER_NAME:-}
LANGFUSE_INIT_USER_PASSWORD: ${LANGFUSE_INIT_USER_PASSWORD:-}
clickhouse:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/clickhouse-server:24.8
restart: always
##user: "101:101"
environment:
CLICKHOUSE_DB: default
CLICKHOUSE_USER: clickhouse
CLICKHOUSE_PASSWORD: clickhouse # CHANGEME
volumes:
- /home/middle/langfuse_v3/clickhouse/data:/var/lib/clickhouse
- /home/middle/langfuse_v3/clickhouse/logs:/var/log/clickhouse-server
##- /home/middle/langfuse_v3/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml ##这里先注释点 等会容器启动后拷贝配置文件到缩主机
##- /home/middle/langfuse_v3/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml ##这里先注释点 等会容器启动后拷贝配置文件到缩主机
ports:
- 127.0.0.1:8123:8123
- 127.0.0.1:19000:9000 ##需要修改缩主机端口为19000
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:8123/ping || exit 1
interval: 5s
timeout: 5s
retries: 10
start_period: 1s
minio:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/minio:RELEASE.2025-04-22T22-12-26Z
restart: always
entrypoint: sh
# create the 'langfuse' bucket before starting the service
command: -c 'mkdir -p /data/langfuse && minio server --address ":9000" --console-address ":9001" /data'
environment:
MINIO_ROOT_USER: minio
MINIO_ROOT_PASSWORD: miniosecret # CHANGEME
ports:
- 19090:9000 ##修改缩主机端口为19090 原来的minio使用
- 9091:9001
volumes:
- /home/middle/langfuse_v3/minio_data:/data
healthcheck:
test: ["CMD", "mc", "ready", "local"]
interval: 1s
timeout: 5s
retries: 5
start_period: 1s
redis:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/redis:7.4
restart: always
# CHANGEME: row below to secure redis password
command: >
--requirepass ${REDIS_AUTH:-myredissecret}
ports:
- 127.0.0.1:6379:6379
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 3s
timeout: 10s
retries: 10
postgres:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/postgresql:16.4.0
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 3s
timeout: 3s
retries: 10
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres # CHANGEME
POSTGRES_DB: postgres
ports:
- 127.0.0.1:5432:5432
volumes:
- /home/middle/langfuse_v3/pgdata:/var/lib/postgresql/data
该配置文件保存在如下目录
[root@localhost langfuse]# pwd
/home/middle/langfuse_v3/langfuse
建议直接文件上次的方式处理,尽量不要复制粘贴
2.停掉v2版本
因为pg langfuse端口没有修改,会与原来的有冲突
[root@localhost langfuse]# cd /home/middle/langfuse/langfuse
[root@localhost langfuse]# docker compose stop
[+] Stopping 2/2
? Container langfuse-langfuse-server-1 Stopped 11.1s
? Container langfuse-db-1 Stopped
或者是
[root@localhost langfuse]# docker compose down
3.尝试v3版本是否可以启动
[root@localhost langfuse]# cd /home/middle/langfuse_v3/langfuse
[root@localhost langfuse]# docker compose up -d
尝试登录各组件
langfuse
http://192.168.1.134:3000
redis
/usr/local/services/redis/bin/redis-cli -h 127.0.0.1 -p 6379 -a myredissecret
clickhoue
clickhouse-client -h 127.0.0.1 -m -u clickhouse --password clickhouse --port=19000
pg
[root@kvm-181 bin]# /usr/pgsql-14/bin/psql -h 127.0.0.1 -U postgres -p5432
minio:
http://192.168.1.134:9091/login
账号密码为:minio/miniosecret
4.停掉v3并删除之前启动生成的数据文件
我们需要使用v2的数据进行恢复
[root@localhost langfuse]# cd /home/middle/langfuse_v3/langfuse
[root@localhost langfuse]# docker compose down
删除相应目录数据
rm -rf /home/middle/langfuse_v3/clickhouse/data/*
rm -rf /home/middle/langfuse_v3/clickhouse/logs/*
rm -rf /home/middle/langfuse_v3/minio_data/*
rm -rf /home/middle/langfuse_v3/pgdata/*
5.拷贝v2的pg数据目录文件到v3相应的目录
因为这个时候v2是停掉的,可以直接拷贝,若在运行的情况下,需要先停掉
[root@localhost pgdata]#cp -r -p /home/middle/langfuse/pgdata/* /home/middle/langfuse_v3/pgdata/
6.启动v3
[root@localhost langfuse]# cd /home/middle/langfuse_v3/langfuse
[root@localhost langfuse]# docker compose up -d
7.登录pg验证数据
[root@localhost langfuse]# /usr/pgsql-14/bin/psql -h 127.0.0.1 -U postgres -p5432
postgres=# select count(1) from users;
count
-------
1
(1 row)
####################修改clickhouse的配置文件并外放clickhouse配置文件到宿主机###################
1.拷贝配置文件到宿宿主机目录
docker ps ##找到clickhouse容器id,拷贝配置文件到宿宿主机目录
docker cp 47e972e3674f:/etc/clickhouse-server/config.xml /home/middle/langfuse_v3/clickhouse/conf/
docker cp 47e972e3674f:/etc/clickhouse-server/users.xml /home/middle/langfuse_v3/clickhouse/conf/
修改clickhouse配置文件
vi /home/middle/langfuse_v3/clickhouse/conf/config.xml
将这两句注释的打开:
<!-- <max_table_size_to_drop>0</max_table_size_to_drop> -->
<!-- <max_partition_size_to_drop>0</max_partition_size_to_drop> -->
修改为:
<max_table_size_to_drop>0</max_table_size_to_drop>
<max_partition_size_to_drop>0</max_partition_size_to_drop>
2.修改docker-compose.yml文件将之前的注释项启用
clickhouse:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/clickhouse-server:24.8
restart: always
##user: "101:101"
environment:
CLICKHOUSE_DB: default
CLICKHOUSE_USER: clickhouse
CLICKHOUSE_PASSWORD: clickhouse # CHANGEME
volumes:
- /home/middle/langfuse_v3/clickhouse/data:/var/lib/clickhouse
- /home/middle/langfuse_v3/clickhouse/logs:/var/log/clickhouse-server
##- /home/middle/langfuse_v3/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml
##- /home/middle/langfuse_v3/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml
修改为
clickhouse:
image: registry.cn-shenzhen.aliyuncs.com/hxlk8s/clickhouse-server:24.8
restart: always
##user: "101:101"
environment:
CLICKHOUSE_DB: default
CLICKHOUSE_USER: clickhouse
CLICKHOUSE_PASSWORD: clickhouse # CHANGEME
volumes:
- /home/middle/langfuse_v3/clickhouse/data:/var/lib/clickhouse
- /home/middle/langfuse_v3/clickhouse/logs:/var/log/clickhouse-server
- /home/middle/langfuse_v3/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml
- /home/middle/langfuse_v3/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml
3.重新部署
[root@localhost langfuse]# cd /home/middle/langfuse_v3/langfuse
[root@localhost langfuse]# docker compose down
[root@localhost langfuse]# docker compose up -d
4.登录clickhouse容器查看是否生效
docker exec -ti langfuse-clickhouse-1 /bin/bash
cat /etc/clickhouse-server/config.xml|grep max_table_size_to_drop
cat /etc/clickhouse-server/config.xml|grep max_partition_size_to_drop
#################修改pg参数(没有修改的情况下需要修改)######################
1.修改pg参数
vi /home/middle/langfuse/pgdata/postgresql.conf
max_connections=1000 #修改最大链接数
##修改时区(已经是如下值的情况下不需要修改)
log_timezone = 'Asia/Shanghai'
timezone = 'Asia/Shanghai'
2.重启
cd /home/middle/langfuse/langfuse/
docker compose stop
docker compose start
3.查看参数的命令:
[root@kvm-181 langfuse]# /opt/pg16/bin/psql -h 127.0.0.1 -U postgres -p5432
Password for user postgres:
psql (16.4)
Type "help" for help.
postgres=# show max_connections;
max_connections
-----------------
1000
(1 row)
postgres=# show log_timezone;
log_timezone
---------------
Asia/Shanghai
(1 row)
postgres=# show timezone;
TimeZone
---------------
Asia/Shanghai
(1 row)
###########################删除掉原来的v2#######################
1.v3启动的时候有如下提示
[root@localhost langfuse]# docker compose up -d
[+] Running 0/1
? Network langfuse_default Creating 0.3s
[+] Running 7/7d orphan containers ([langfuse-langfuse-server-1 langfuse-db-1]) for this project. If you removed or renamed this serv ? Network langfuse_default Created 0.4s
? Container langfuse-postgres-1 Healthy 9.1s
? Container langfuse-minio-1 Healthy 12.5s
? Container langfuse-redis-1 Healthy 8.5s
? Container langfuse-clickhouse-1 Healthy 10.5s
? Container langfuse-langfuse-web-1 Started 14.5s
? Container langfuse-langfuse-worker-1 Started
2.删除掉v2
[root@localhost langfuse]# cd /home/middle/langfuse/langfuse
[root@localhost langfuse]# docker compose down
[+] Running 3/2
? Container langfuse-langfuse-server-1 Removed 0.1s
? Container langfuse-db-1 Removed 0.4s
! Network langfuse_default Resource is still in use
3.v3重新部署
[root@localhost langfuse]# cd /home/middle/langfuse_v3/langfuse
[root@localhost langfuse]# docker compose down
[root@localhost langfuse]# docker compose up -d
[+] Running 7/7
? Network langfuse_default Created 0.6s
? Container langfuse-redis-1 Healthy 10.0s
? Container langfuse-clickhouse-1 Healthy 17.5s
? Container langfuse-minio-1 Healthy 14.5s
? Container langfuse-postgres-1 Healthy 12.0s
? Container langfuse-langfuse-web-1 Started 18.2s
? Container langfuse-langfuse-worker-1 Started
这个时候就没有提示了