dmesg排查kurento的问题

一.dmesg使用

dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各类消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题 一般很是有用。在运行dmesg时,它显示大量信息。一般经过less或grep使用管道查看dmesg的输出,这样能够更容易找到待查信息。
linux

开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
web


参 数:  docker

-c 显示信息后,清除ring buffer中的内容。  ubuntu

-s <缓冲区大小>  预设置为8196,恰好等于ring buffer的大小。  vim

-n 设置记录信息的层级。
服务器

-T 以当前时间的方式显示时间信息,而不是图1所示的开机时间
websocket

-d 显示dmesg中两条打印信息的时间间隔
cookie


二.部署kurento

最底下有个帖子,写了几个例子,很是不错.讲下我本身经过dmesg解决kurento一个bug.
app

Kurento的核心是媒体服务器,它被命名为Kurento媒体服务器(**KMS**)。Kurento媒体服务器的媒体处理能力是插件式的,意思是它的功能都是能够被激活和关闭插件模块。并且,开发者能够无缝地建立额外的模块来扩展Kurento媒体服务器并动态插入。 Kurento媒体服务器提供即时可用的组通讯,混合,转码,录制和播放。另外,它还提供一些高级的媒体处理模块,包括有计算机视觉,虚拟现实,透镜等。
less

部署过程以下:

1.必须是ubuntu的环境

2. 安装kurento echo "deb http://ubuntu.kurento.org xenial kms6" | sudo tee /etc/apt/sources.list.d/kurento.list wget -O - http://ubuntu.kurento.org/kurento.gpg.key | sudo apt-key add - sudo apt-get update sudo apt-get install kurento-server

3. 安装完成后修改配置文件 /etc/kurento/modules/kurento/WebRtcEndpoint.conf.ini 若是kurento-media-server部署在公网则不须要配置 添加 turnURL=user:password@address:port; 例如 turnURL=kurento:kurento@60.247.2.214:3478;

4. 启动: sudo /etc/init.d/kurento-media-server-6.0 start


三.BUG

一切都很顺利,没有报错,netstat能够看到正在监听端口:

root@im1:/app/logs/group_call# netstat -tunlp|grep 8888

tcp6   0    0   :::8888    :::*    LISTEN 31224/kurento-media


可是telnet 127.0.0.1 8888 ,却没法连通,访问超时.查看kurento的log:

2019-01-09 10:41:46,346857 31224 [0x00007f619a08c880] info KurentoServerMethods ServerMethods.cpp:89 ServerMethods() Not enough resources exception will be raised when resources reach 0.800000

2019-01-09 10:41:46,347738 31224 [0x00007f618f2d9700] debug KurentoWorkerPool WorkerPool.cpp:39 workerThreadLoop() Working thread starting

2019-01-09 10:41:46,347830 31224 [0x00007f618ead8700] debug KurentoWorkerPool WorkerPool.cpp:39 workerThreadLoop() Working thread starting

2019-01-09 10:41:46,347925 31224 [0x00007f619a08c880] info KurentoWebSocketTransport WebSocketTransport.cpp:209 WebSocketTransport() Secure websocket server not enabled

2019-01-09 10:41:46,349760 31224 [0x00007f619a08c880] info KurentoMediaServer main.cpp:256 main() Mediaserver started 2019-01-09 10:45:46,348005 31224 [0x00007f6187fff700] debug KurentoMediaSet MediaSet.cpp:122 doGarbageCollection() Running garbage collector

日志中没有任何错误,或者异常.


三.解决过程

1.防火墙关闭,仍是不行

2.重装,重启,仍是不行

3.关闭kurento服务,用nc起一个端口,发现是8888可使用的

root@im1:~# nc -lv 8888

4.换同个内网的服务器,仍是不行,试了下本身在腾讯云的服务器,一点问题都没有,怀疑是否是操做系统的关系

5.用docker搭建kurento,使用—net=host,由于kurento必须绑定外网地址,因此必定要用host模式.结果仍是同样,能netstat端口8888,就是telnet不通.

6.打开dmesg -T,发现log:

[三 1月 9 10:32:06 2019] TCP: request_sock_TCP: Possible SYN flooding on port 8888. Dropping request. Check SNMP counters.

7.修改vim /etc/sysctl.conf,加入net.ipv4.tcp_syncookies = 1

8.终于能够telnet 8888,发现kurento服务也正常了.



PS: linux dmesg命令参数及用法详解(linux显示开机信息命令)

https://blog.csdn.net/zhongyhc/article/details/8909905

相关文章
相关标签/搜索