系统配置
除了启动时的 ClickHouse、Redis 和端口(推荐环境变量 EVS_CLICKHOUSE、EVS_REDIS、EVS_PORT,也可以用启动参数 -clickhouse、-redis、-port),其余设置都在「系统 → 系统配置」里,只有管理员能改。每一项都写明做什么、改大改小或留空会怎样;能测的旁边有「测试」按钮。
evstats


怎么改
- 左侧是分组锚点,右侧每组一张卡片。
- 只提交改过的键;任何一项不合法,整次保存都不生效,并指出是哪一项。
- 保存后通过 Redis 通知所有进程,立即生效。
- 保密的值(
ai.api_key、smtp.password、telemetry.key)只显示遮盖值和末 4 位。 - 引导必填的只有管理员。Redis 在启动环境变量
EVS_REDIS里,其余都可以用到时再填。
每个键的默认值和说明见下面各组,也可以在 配置项 一页看全。
站点
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
site.public_urlurl | 空 | 这套系统对外的访问地址,例如 https://stats.example.com | 重置密码邮件里的链接用它。留空则不能找回密码 |
IP 库
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
geo.ip2region.urlurl可测试 | 空 | 离线 IP 库的下载地址 | 留空则没有国家、省、市。不会把访客 IP 发到这个地址以外的地方 |
- 界面上有「填入推荐地址」。
- 只允许
http和https;地址解析到回环、内网、链路本地或云元数据地址时拒绝。代理常用的 fake-ip 网段198.18.0.0/15(Clash、Surge 等)允许下载,否则推荐地址在本机解析到这个网段时保存会失败。文件最大 80MB,下载超时 60 秒。校验失败时不保存,也不覆盖旧文件。 - 下载一次后载入内存,查询不再读盘,也不会把访客 IP 发到任何地方。每个节点各自下载一份,放在工作目录的
data/geo。 - 库文件不在安装包和镜像里。
- 没配时启动日志有一条警告,采集照常,地域都是「未知」;配了但下载失败时,
/health的geo是down,工作台顶部有一条提示。 - 换库不影响已经写入的数据。
AI
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
ai.base_urlurl可测试 | 空 | Agent 用的兼容 OpenAI 的接口地址,含到 /v1 为止 | 留空则不能问数,图表不受影响 |
ai.modelstring | 空 | Agent 使用的模型名 | 留空则不能问数,图表不受影响 |
ai.api_keysecret保密 | 空 | 调用模型接口的密钥 | 留空则不能问数,图表不受影响 |
ai.user_daily_limitint | 200 | 每人每天最多问多少次 | 控制模型费用。填 0 不限 |
见 Agent 问数。
邮件
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
smtp.hoststring可测试 | 空 | 用来发重置密码邮件的 SMTP 服务器 | 留空则登录正常,找回密码会提示先来这里配置 |
smtp.portint | 空 | SMTP 端口,常见 587(STARTTLS)或 465(SSL) | 留空按加密方式取默认端口 |
smtp.usernamestring | 空 | SMTP 登录用户名 | 留空则不做 SMTP 认证 |
smtp.passwordsecret保密 | 空 | SMTP 登录口令 | 只存在配置里,不进日志 |
smtp.fromstring | 空 | 发件人地址 | 留空则不能发信 |
smtp.tlsenum | starttls | 连接 SMTP 的加密方式 | 与服务器不一致时发信失败 |
只用来发重置密码的邮件。留空时登录照常,找回密码会提示先来这里配置。
采集调优
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
ingest.batch_sizeint | 1000 | 攒够多少条再写入 ClickHouse | 加大减少写入次数,数据出现在报表上更慢 |
ingest.flush_msint | 200 | 没攒够时最多等多少毫秒 | 减小更实时,写入更频繁 |
ingest.max_batch_bytesint | 4194304 | 单批大约超过这个大小就先写 | 防止单批过大撑满内存 |
ingest.stream_maxint | 1000000 | 队列里积压超过这个长度就拒绝新的上报 | 保护 Redis。太小会在高峰时拒收 |
http.trusted_proxiescidrs | 空 | 反代的网段,逗号分隔的 CIDR | 留空则不信任 X-Forwarded-For,避免伪造来源 IP |
http.trusted_proxies 放在这一组里:前面有反向代理时一定要填,见 反向代理与 HTTPS。
存储
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
storage.cold_after_daysint | 30 | 超过这么多天的分区迁到 ClickHouse 的冷盘,查询近期数据更快 | 没有冷盘时改了也不会搬迁。只在建表时生效 |
agg.retain_daysint | 400 | 聚合表与点击表的保留天数 | 只在建表时生效,已有的表不改 |
audit.retain_daysint | 400 | 操作日志的保留天数 | 只在建表时生效,已有的表不改 |
replay.retain_daysint | 15 | 会话回放的保留天数 | 只在建表时生效,已有的表不改 |
- 几个保留天数只在建表时写进表结构,已经建好的表改了也不会变。
- 冷盘搬迁需要 ClickHouse 上有名为
evstats_tiered、带cold卷的存储策略;没有时设置页会说明「当前 ClickHouse 未配置冷盘」,数据全部留在默认盘。
缓存
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
stat.cache_ttl_secint | 60 | 统计结果在 Redis 里放多久 | 加大更省数据库,页面上的数会晚一点才变。填 0 则每次都查 ClickHouse |
stat.cache_ttl_realtime_secint | 5 | 实时页的缓存秒数 | 默认比上面更短 |
Stats、Agent、OpenAPI 共用这一份结果缓存。加大更省数据库,页面上的数会晚一点才跟上新上报;填 0 每次都查 ClickHouse。
OpenAPI
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
openapi.corsorigins | * | 哪些网站可以用浏览器直接调用 /api/v1 | 默认允许所有来源。多个来源用逗号分隔 |
演示
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
demo.hinttext | 空 | 登录页下方显示的一段提示,用来公开演示账号 | 留空不显示。最长 200 字 |
demo.agent_daily_limitint | 20 | 演示用户每人每天能问几次 | 通常比每人每天的上限更小 |
见 演示账号。
自监控
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
telemetry.endpointurl | 空 | 给这套 evstats 自己埋点,数据发到你填的完整采集地址 | 和密钥都留空则不发送。不会发给作者 |
telemetry.keysecret保密 | 空 | 给自己埋点用的写入密钥 | 和地址都留空则不发送 |
给这套 evstats 自己埋点:仪表盘和服务端的少量使用事件,发到你填的采集地址,进你自己建的项目。都留空则不发送,这是默认值。evstats 不会把任何数据发给作者。
事件只有这些:$pageview、login_success、project_create、board_create、export_csv、agent_ask、openapi_key_create。不采集密码、密钥、SQL 正文和提问原文。
日志
| 配置键 | 默认值 | 做什么 | 改大改小、留空会怎样 |
|---|---|---|---|
log.levelenum | info | 日志详细程度 | debug 量很大,排障完改回 info |