news 2026/4/16 23:41:13

SkeyeVSS开发日志: Skeyevss日志采集方案落地实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SkeyeVSS开发日志: Skeyevss日志采集方案落地实践

试用安装包下载 | SMS | 试用安装包下载 | 在线演示

项目源码地址https://github.com/openskeye/go-vss


1. 背景与目标

在生产环境中,日志采集的核心价值不只是把日志存下来,而是:

  • 故障时能快速定位
  • 能按服务、设备、请求链路检索
  • 能做错误告警和趋势分析
  • 满足审计与留存要求

对于 Skeyevss,这一点尤其关键:系统涉及DB RPCVSSBackend APICronWebMediaServer多服务协同,且包含 SIP 信令链路。


2. 本项目日志来源有哪些

2.1 应用日志(各服务)

各服务配置文件都包含统一日志段(示例见etc/.vss.yamletc/.base.yaml):

  • Log.Path: "${SKEYEVSS_SERVER_LOG_PATH}/${ServiceName}"
  • Log.Mode: "${SKEYEVSS_LOG_MODE}"
  • Log.Encoding: "${SKEYEVSS_LOG_ENCODING}"
  • Log.Level: "${SKEYEVSS_LOG_LEVEL}"

结论:应用日志采集根路径通常是
$SKEYEVSS_SERVER_LOG_PATH/

2.2 SIP 专项日志(VSS)

etc/.vss.yaml中明确:

  • UseSipLogToFile: ${SKEYEVSS_PRINT_SAVE_SIP_LOG_FILE}
  • SipLogPath: "${SKEYEVSS_SERVER_LOG_PATH}/${SKEYEVSS_VSS_NAME}/sip"

只有当SKEYEVSS_PRINT_SAVE_SIP_LOG_FILE=true时,SIP 报文才会落盘。
后台“日志 -> SIP日志”文件视图也是读取该目录(backend/internal/logic/logs/siploglogic.go)。

2.3 容器启动日志(Docker 场景)

docker-compose.yml里多个服务以命令重定向方式写入:

  • /app/logs/<ServiceName>.<YYYY.MM.DD>.log

所以 Docker 场景至少需要采集两类目录:

  1. 应用主日志目录(按SKEYEVSS_SERVER_LOG_PATH
  2. /app/logs/*.log启动输出日志

3. 推荐采集架构(通用)

推荐分层:

  1. 采集层:Filebeat 或 Fluent Bit(部署在每台节点)
  2. 传输层:Kafka(可选,流量大建议加)
  3. 存储检索层:Elasticsearch / OpenSearch / Loki
  4. 展示告警层:Kibana / Grafana + Alertmanager

中小规模可先用简化架构:

  • Filebeat/Fluent Bit -> Elasticsearch -> Kibana

这部分没有继承进项目,目前只采用的是写文件的方式,可根据实际场景推展需求。


4. 日志采集范围

4.1 必采目录

  • ${SKEYEVSS_SERVER_LOG_PATH}/**/*.log(服务应用日志)
  • ${SKEYEVSS_SERVER_LOG_PATH}/${SKEYEVSS_VSS_NAME}/sip/*.log(SIP 报文)
  • /app/logs/*.log(容器启动日志,Docker 场景)

4.2 建议打标签字段

采集时建议补充以下 metadata:

  • project: skeyevss
  • env: prod/test
  • service: vss/backendapi/dbrpc/...
  • log_type: app/sip/startup
  • host_ip
  • container_name(容器场景)

有了这些字段,检索效率会明显提升。


5. 配置建议

5.1.env.prod日志开关

SKEYEVSS_LOG_MODE=file SKEYEVSS_LOG_ENCODING=json SKEYEVSS_LOG_LEVEL=info SKEYEVSS_SERVER_LOG_PATH=/app/logs/applications SKEYEVSS_PRINT_SAVE_SIP_LOG_FILE=true

说明:

  • 建议json,便于结构化采集
  • info适合初期观测;稳定后可评估降到error
  • SIP 排障强依赖文件日志,建议保持开启

6. 告警规则建议

  1. 服务级错误突增level=error5 分钟内超过阈值
  2. VSS SIP 异常REGISTER/INVITE失败比例升高
  3. 播放链路异常on_pub_start -> on_sub_start延迟超阈值
  4. DB 连接问题:连接超时、重试次数激增
  5. 日志中断:某服务超过 N 分钟无日志
  6. 磁盘告警:日志盘使用率超过 80%

7. 常见问题与排查

7.1 开了 SIP 页面实时日志,但检索平台里没有 SIP 数据

原因通常是只看了 SSE 实时流,未开启 SIP 文件落盘。
检查SKEYEVSS_PRINT_SAVE_SIP_LOG_FILE=trueSipLogPath

7.2 日志量太大导致成本高

优化建议:

  • 分级采集:app全量,sip关键字段抽取
  • 对 debug 日志做采样或短期保留
  • 热温冷分层存储(7天热 + 30天温 + 归档)

8. 落地步骤

  1. 统一.env.prod日志开关与路径规范
  2. 验证 3 类日志(app/sip/startup)都能检索
    3 增加核心字段(service/env/log_type)

9. 总结

日志采集在 Skeyevss 中本质是可观测性。
只要把下面三件事做好,故障定位效率会明显提升:

  • 路径统一(按服务 + SIP 专项)
  • 字段统一(service/env/log_type)
  • 告警统一(错误率、无日志、链路超时)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 23:39:41

FIJI (ImageJ) 图像处理实战:从基础操作到科研级分析

1. FIJI/ImageJ入门&#xff1a;从安装到基础操作 第一次接触FIJI&#xff08;Fiji Is Just ImageJ&#xff09;时&#xff0c;我被它强大的功能和开源特性所吸引。作为ImageJ的分支版本&#xff0c;FIJI预装了80多个生物图像分析常用插件&#xff0c;省去了手动安装的麻烦。安…

作者头像 李华
网站建设 2026/4/16 23:30:11

ART库装饰功能详解:218种装饰让你的文本脱颖而出

ART库装饰功能详解&#xff1a;218种装饰让你的文本脱颖而出 【免费下载链接】art &#x1f3a8; ASCII art library for Python 项目地址: https://gitcode.com/gh_mirrors/ar/art ART库是一款功能强大的Python ASCII艺术库&#xff0c;提供了丰富的文本装饰功能&#…

作者头像 李华
网站建设 2026/4/16 23:30:10

CubeFS元数据备份工具:实现自动化备份的终极指南

CubeFS元数据备份工具&#xff1a;实现自动化备份的终极指南 【免费下载链接】cubefs cloud-native distributed storage 项目地址: https://gitcode.com/gh_mirrors/cu/cubefs CubeFS作为一款cloud-native distributed storage系统&#xff0c;其元数据管理是确保数据可…

作者头像 李华
网站建设 2026/4/16 23:27:47

从算法工程师视角拆解:CSDN博客质量分V5.0的迭代逻辑与平滑函数优化

从算法工程师视角拆解&#xff1a;CSDN博客质量分V5.0的迭代逻辑与平滑函数优化 在技术社区的内容生态中&#xff0c;质量评估系统如同隐形的裁判&#xff0c;直接影响着优质内容的曝光与传播。CSDN博客质量分V5.0的迭代&#xff0c;展现了算法设计如何通过数学建模解决实际工程…

作者头像 李华