第三讲:如何掌握媒体服务器的运行情况

不管是自己编译还是下载,通过前两章的讲解,媒体服务器是能跑起来了。但如何用好这个流媒体服务器?其中一个指标就是,怎么掌握服务器的运行情况!

本文的主要内容有:
1.nginx服务配置的简单介绍
2.统计模块的使用方法

一、nginx 服务配置的简单介绍

在第一讲中,对nginx配置文件conf/nginx.conf 只给出了一个最简设置,目的是让RTMP流媒体服务器跑起来,当时的配置内容是:

#将以下内容拷贝到conf/nginx.conf文件中。

#nginx进程数,建议设置为等于CPU总核心数
worker_processes  2;

#工作模式与连接数上限
events {
    worker_connections  8192;
}

rtmp {
    server {
        listen 1935;
        application myapp {
            live on;
        }       
    }
}

接下来,我简单介绍一下nginx.conf配置文件中的内容,目的是引入统计模块时对配置文件能有一个基本的认识。简单来说nginx配置文件有六个区域,它的内容和意义详见下表:


第三讲:如何掌握媒体服务器的运行情况_第1张图片
配置详情的对应关系
第三讲:如何掌握媒体服务器的运行情况_第2张图片
nginx.conf 六区域简介

关于配置文件的介绍就要结束了,如果想要了解更多的内容,可以参考rtmp插件的官方wiki,地址是:
https://github.com/arut/nginx-rtmp-module/wiki/Directives#rtmp_stat_stylesheet

通过wiki中的Directives,你能找到更多的信息,比如要开启"rtmp_auto_push on"的原因。


第三讲:如何掌握媒体服务器的运行情况_第3张图片
nginx-rtmp-module Wiki

二、nginx-rtmp-module的统计模块

在介绍使用方法之前,我想重申一个问题,就是统计模块存在的价值是什么?
它的存在是为了让我们掌握流媒体服务的运行情况:

  • 谁在推流,分辨率是什么?帧率码率又是什么?
  • 谁在播放,IP是什么?时间戳是什么?
  • 整体的上下行带宽是多少?

对于这些信息,我们既可以通过控制台查看直观的数据:


第三讲:如何掌握媒体服务器的运行情况_第4张图片
管理控制台

也可以通过接口查到具体的详情:


第三讲:如何掌握媒体服务器的运行情况_第5张图片
Response

1、rtmp统计模块的使用方法

引入统计模块的方法比较简单,主要是两步:

  • 克隆代码,下载stat.xsl文件;
  • 修改配置文件,打开stat服务;

如果对 nginx-rtmp-module 编译过程不熟悉的,可以参考第二讲。如果是下载 nginx rtmp 版的朋友,此时要做的就是获取stat.xsl文件,它就在nginx-rtmp-module模块的根目录下。

第三讲:如何掌握媒体服务器的运行情况_第6张图片
stat.xsl 位置

文件准备好了,在nginx.conf配置文件中打开stat服务即可。

#nginx进程数,建议设置为等于CPU总核心数
worker_processes  2;

#工作模式与连接数上限
events {
    worker_connections  1024;
}

rtmp_auto_push on;

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application myapp {
            live on;
        }       
    }
}

http {
    server {
        listen       8080;
        server_name  localhost;

        # This URL provides RTMP statistics in XML
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            #注意stat.xsl文件的存放位置,支持相对路径和绝对路径。
            root lib/nginx-rtmp-module/;
        }
   }
}

都做好之后,启动nginx,注意启动时后台有无报错。一切正常,就可以键入:
http://localhost:8080/stat
打开流媒体管理后台,查看服务的运行情况。

2、数据的价值与管理手段

统计模块提供了比较丰富的内容,比如在这种情况下:


第三讲:如何掌握媒体服务器的运行情况_第7张图片
3端拉流

除了流媒体服务以外,控制台还能提供推拉流的双端信息:

  • 一个android推流端;
  • 拉流A(10.59)一个Mac 用ffplay拉流播放;
  • 拉流B(10.47)一个PC用浏览器拉流播放;
  • 拉流C(10.43)一个iPhone拉流播放;

即使推流端已经下线,我们也能知道谁还在连接着媒体服务器:


第三讲:如何掌握媒体服务器的运行情况_第8张图片
推流下线后的情况

丰富的数据,让我们能掌握媒体服务器的实时情况,让多种管理策略成为可能。nginx rtmp统计模块安装简单,使用方便,是控制管理的一种高效手段。

你可能感兴趣的:(第三讲:如何掌握媒体服务器的运行情况)