Featured image of post kamailio 添加prometheus监控

kamailio 添加prometheus监控

背景

上一章我们介绍了opensips对接prometheus的方法,这章作为对比, 我们介绍下kamailio对接prometheus的方法。

kamailioprometheus监控使用的是xHTTP_PROM模块, 依赖XHTTP模块, 编译时要把这两个模块加上。

kamailio本次测试使用的版本是:

version: kamailio 5.8.5 (x86_64/linux)

kamailio 配置参数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!define WITH_JSONRPC

listen=udp:172.16.4.111:5060
listen=tcp:172.16.4.111:5461

loadmodule "dialog.so"
modparam("dialog", "enable_stats", 1)
loadmodule "xhttp_prom.so"
# 设置构建http Reponse 的缓冲区最大的大小,默认为0,自动设置成pkg mem的1/3
modparam("xhttp_prom", "xhttp_prom_buf_size", 1024)
# 设置metrics数据过期时间,如果数据未使用,会自动删除,默认是60 min,单位分钟。
modparam("xhttp_prom", "xhttp_prom_timeout", 600) #10 hours
# 设置metrics数据统计,默认是"",有:"all", "group_name", "statistic_name"
modparam("xhttp_prom", "xhttp_prom_stats", "all")

# 设置metrics数据前缀,默认"kamailio_"
#modparam("xhttp_prom", "xhttp_prom_beginning", "");
...

event_route[xhttp:request] {
	if (prom_check_uri())
		prom_dispatch();
	else
		xhttp_reply("200", "OK", "text/html",
        		"<html><body>Wrong URL $hu</body></html>");
}

需要注意的是: 这个模块会把metrics数据缓存在共享内存中,所以在数据量过大时,要适当增加pkg mem。

prometheus 收集数据

prometheus 配置

按照上一章的prometheus配置,修改prometheus.yaml文件为:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
global:
   scrape_interval: 15s
   evaluation_interval: 15s
   external_labels: 
     monitor: 'edc-lab-monitor'

scrape_configs:
  - job_name: 'kamailio'  # 修改名字
    static_configs:
      - targets: ['172.16.4.111:5461']  ##填写kamailio的ip和tcp端口

运行容器:

1
docker run -d -v ${PWD}/prometheus.yaml:/etc/prometheus/prometheus.yml --restart=always --net=host --name=prometheus prom/prometheus

prometheus 查看数据

通过访问:http://172.16.4.111:9090/,查看到的metrics数据如下(如果不知道哪里看收集的数据,可以看上一章的截图): query

有点奇怪的是,这些数据类型都是unknown的, 本来以为这些是有问题的,但是在grafana中可以正常显示,好像没什么影响。 query

grafana 展示数据

grafana docker 运行

docker 运行命令:

1
docker run -d -i -p 3000:3000 -e "GF_SERVER_ROOT_URL=http://grafana.server.name" -e "GF_SECURITY_ADMIN_PASSWORD=admin123" --restart=always --name=grafana grafana/grafana

grafana 添加数据源

通过访问:http://172.16.4.111:3000/, 新建dashboard, 添加metrics,查看到的数据如下: query

总结

  1. opensipskamailio监控数据都有注册数,通话数,内存,负载等信息。
  2. kamailio 功能较丰富一些,可以使用prom_counter,prom_gauge,prom_histogram来自定义监控数据。
本博客已稳定运行
发表了26篇文章 · 总计45.09k字
本站总访问量 次 · 您是本站第 位访问者
粤ICP备2025368587号-1| 使用 Hugo 构建
主题 StackJimmy 设计