SIP信令跟蹤工具HOMER
概述
HOMER是一款100%開源的針對SIP/VOIP/RTC的抓包工具和監控工具。
HOMER是一款強大的、運營商級、可擴充套件的資料包和事件捕獲系統,是基於HEP/EEP協議的VoIP/RTC監控應用程式,並可以使用即時搜尋、處理和儲存大量的信令、RTC事件、日誌和統計資訊。
之前的文章中,我們介紹過一款針對SIP的抓包工具sngrep,相比來說,HOMER有更加成熟完善的架構和體系,包括後臺的資料庫儲存和前臺的web頁面展示資料。
在我們的生產環境中,一直有使用HOMER來作為呼叫信令的收集和跟蹤工具,只是版本比較老了,最近準備更新換代。
HOMER最新版本是HOMER7。
環境
CentOS release 7.0 (Final)或以上版本
HOMER7
部署架構
圖片來自官方介紹
CAPTURE AGENT,抓包終端,freeswitch、opensips這些常見的軟交換都內建了該功能。
CAPTURE SERVER,抓包伺服器,收集sip信令用的,老版本中使用kamailio,新版本更換了?
DATABASE,一般是mysql和postgres,沒有用過時序資料庫。
HOMER APP/API,web頁面,提供給客戶檢視資訊。
USERS,使用者通過瀏覽器檢視呼叫信令、統計資訊等。
安裝方式
在HOMER7的官方wiki中,安裝方式有3種,手動安裝,快速安裝,docker安裝。
根據文件標註的難易程度,我選擇了easiest的docker安裝。。。
安裝docker
首先在centos7上安裝docker工具。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
安裝docker-compose
docker-compose下載網址:https://github.com/docker/compose/releases 。
使用命令下載docker-compose。
curl -L https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 > /usr/local/bin/docker-compose
chmod 777 /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose -v
Docker Compose version v2.4.1
docker常用命令
docker version
docker images
docker ps
docker container ls
檢視一下我們的docker版本。
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 24 01:49:57 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.14
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 87a90dc
Built: Thu Mar 24 01:48:24 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.11
GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
HOMER7安裝
跟隨HOMER7的官方安裝指南。
git clone https://github.com/sipcapture/homer7-docker
cd homer7-docker/heplify-server/hom7-prom-all
docker-compose up -d
一陣電閃雷鳴之後,安裝完成。
[+] Running 11/11
⠿ Network hom7-prom-all_default Created 0.2s
⠿ Volume "hom7-prom-all_prometheus_data" Created 0.0s
⠿ Volume "hom7-prom-all_grafana_data" Created 0.0s
⠿ Container prometheus Started 1.2s
⠿ Container loki Started 1.3s
⠿ Container grafana Healthy 2.8s
⠿ Container db Healthy 4.7s
⠿ Container alertmanager Started 1.2s
⠿ Container nodeexporter Started 1.1s
⠿ Container homer-webapp Started 5.1s
⠿ Container heplify-server Started
測試
使用瀏覽器訪問地址:http://192.168.0.151:9080/,輸入預設的賬號密碼admin/sipcapture。
總結
HOMER的官方網站:http://sipcapture.org/
HOMER與freeswitch配合使用,搭建VOIP的業務平臺,對平臺的穩定和問題查錯有非常大的幫助,極大的縮短髮現問題的時間。
另外,HOMER也可以設定顯示多個node節點的關聯信令,以及通過收集RTCP資訊來統計線路通話質量等等功能。
HOMER比SNGREP更強大,更易用。
下一次,我們介紹如何把freeswitch/opensips的信令上報HOMER平臺,並通過WEB頁面檢視和搜尋信令流。
空空如常
求真得真