背景
homer
是一个开源的SIP分析工具, 它可以帮助我们分析SIP协议的数据包,从而了解SIP协议的工作原理。
其官方代码地址为: homer, 目前最新版本为homer10
。
安装
官方安装文档为: homer10安装文档, 安装命令如下:
|
|
查看docker-compose.yaml
,可以看到需要的组件有:
组件名称 | 组件介绍 | 必要性 |
---|---|---|
alertmanager | 告警组件 | 非必要 |
clickhouse | 面向列的数据库组件 | 必要 |
grafana | web管理页面 | 必要 |
docker-hepgen | hep数据生成组件 | 非必要 |
heplify-server | hep数据收集组件 | 必要 |
mailhog | 邮件组件 | 非必要 |
node-exporter | 节点监控组件 | 必要 |
qryn | qryn组件 | 必要 |
vector | 数据采集组件 | 必要 |
这些镜像直接从dockerhub
拉取,然后运行docker-compose up -d
即可。
关于grafana
组件, 我做了两点修改:
- 避免容器内下载
qxip-flow-pannel
插件,提前本地下载。
|
|
grafana
文件夹下的文件:
|
|
qxip-flow-panel的下载地址: qxip-flow-pannel-10.2.0
Dockerfile
内容为:
|
|
- 因为
grafana
的10+
版本不再支持Angular
, 为避免web
页面出现this panel requires Angular (deprecated)
, 添加default.ini
配置.
|
|
该default.ini
文件的位置在grafana
容器内/usr/share/grafana/conf/defaults.ini
, 可以从容器内copy出来该文件,修改之后,
在Dockerfile里COPY defaults.ini /usr/share/grafana/conf/
。
之后, docker-compose build grafana
重新编译grafana
镜像包, docker-compose up -d grafana
。
服务正常的状态:
可以看到hepgen-bad
和hepgen
两个容器会多次重启,这个是正常的, 不断重启生成hep数据。
体验
打开http://localhost:3000
, 登录账号admin
, 密码admin
, 即可打开grafana
管理页面。
可以看到的dashboard
页面如下:
选择callflow
查看调用流程:
选择hep flow
中的一个sip
信令, 即可查看该信令的详细信息:
在查看SIP Calls & Registers
的dashboard
页面, 可以看到调用流程:
实战
因为默认的docker-compose.yaml
中使用hepgen
和hepgen-bad
不断生成hep数据, 不想随机生成sip
,
停下这两个服务,然后使用opensips 3.5.5
对接heplify-server
。
停止hepgen
和hepgen-bad
服务
|
|
opensips 对接 heplify-server
可以参考opensips trace 模块
文档, 配置opensips
的trace
模块, 将trace
数据发送到heplify-server
。
|
|
使用软电话注册到opensips
上,然后拨打电话,查看Call Flow
:
这些信息正是opensips
产生的数据。