LFLiveKit架构简介

I.总览                                               Cacti
和Nagios的监控种类能够说是运用大规模而且帮助添加的国内外的运维人士都亟需了解的一套监督系统,那套系统的功利在于运用Cacti的强大画图和自定
义画图能力,以及Nagios的可控报警。可是网上的大部故事情节都以怎样设置,在设置成功怎么利用的方面介绍的很少,而真正开头用过后,为了工作需求就须要不断地去Cacti官网查看使用文档,恐怕论坛去翻旁人的帖子,非凡辛劳。于是我说了算写一篇使用方面的手册,以让大家真正会用那套系统。

LFLiveSession

LFLiveSession
是任何sdk的中央,提供对外表的严重性接口。紧要成效有:管理推流开关、管理音视频录像及渲染、管理摄像渲染后的音视频编码、管理编码后的数量上传、管理音录制的根基配置,回调推流状态和卓殊申报等。

II.Cacti的使用                                   

LFLiveAudioConfiguration

音配配置,配置相关音频音信(音频性能、码率、采样率、声道数)

   
Cacti的常用服务器的图腾一大半都是选拔模板的款型做的,而Cacti安装好之后作者自带了一有些模板,那个模板即使可用,不过支持的花色太少,于是大家要寻求更多的模版以及更优化的始末。
 
  Cacti的官方的模板库:http://docs.cacti.net/templates  ***

LFLiveVideoConfiguration

录像配置,配置相关视频的骨干音讯(摄像性能、码率、帧数、分辨率)和行使配置如最大、最小帧率等。


LFVideoCapture 

录像管理类,管理摄像的输入和出口。同时处理业务须求,如:美颜、亮度、水印等作用,使用了一个第三方GPUImage处理渲染效果。

1:cacti模板的一般加载方法:

    一个Cacti的模板一般有两部分组成。一部分是xml模板文件,另一部分是xml的数据收集文件,虽然这两种文件都是xml格式的,但是你可以很显而易见的就能分出它们的不同。因为它们的文件大小一点都不相似。
    举个简单的例子:

 

这个是一个windows的监控模板,我们可以简单的根据文件的大小来看。
    *  大小大于10KB的,那就是xml模板文件。
    *  大小小于10KB的,那就是xml数据收集文件。

Xml模板文件是要在cacti的Web页面的Console选项卡内Import Templates项进行添加:

 

    而xml数据收集文件,则是要放在Linux上Cacti的安装目录的cacti/resource/snmp_queries中:

 

    只要将两种类型的xml正确的导入/放入到应有的位置,那么模板就添加成功了。 

LFAudioCapture

节奏管理,管理音频的输入开关,这一道尚无多大的定制,应用原声的API即可。

2:如何在Cacti上添加一个新主机并监控相关的内容:(以添加Linux主机为例)

1.创建画图

a. 在Cacti的Web页面Console->Import Templates导入响应的xml模板文件。
b. 在Linux上cacti/resource/snmp_queries中放入模板相关的xml数据收集文件。并确保属主和属组均为cacti。
c. 点击Console->Devices,打开设备管理页面。
d. 点击右上角的add,添加一个新的机器

 

e. 当主机的信息填好之后,点击Create
f. 此时你的页面左上角应该显示:Save Successful,并且已经显示出了主机信息和SNMP信息,如果SNMP信息显示 SNMP error,请查看最后的问题综述。
g. 这时我们就可以添加相应的监控项了,在页面最下方的Associated Graph Templates中添加图形模板,在Associated Data Queries中添加数据模板。

 

h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful.
i. 点击右上角的Create Graphs for this Host,来为刚才通过模板所获得到的数据进行画图。
j. 选中需要画图的项,其中依然分为两部分:
    通过Graph Templates中的内容都需要选中,而Data Query获取的内容比较详细,所以可以按需选择。
k. 选择好需要画图的项目后,点击右下角的Create,左上角会出现被创建出来的画图项。

2.在Graphs界面显示新添加主机。

a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
b. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
c. 在Tree Item Type中选择Host,然后在下面的Host中选择我们刚才创建的主机。点击Create。
d. 此时,再进入Graphs界面,就可以看到在Default Tree下加入了我们新创建的主机。

LFH264VideoEncoder,LFHardwareVideoEncoder

视频编码类,分别对应8.0事先和8.0过后的二种装备的视频编码类。都遵从LFVideoEncoding协商,并安装LFStreamSocketDelegate协议给session管理。

 

LFHardwareAudioEncoder

音频编码类,遵循LFVideoEncoding协议,并设置LFStreamSocketDelegate协议给session管理。

III.Cacti的常用模板                         

LFFrame

数量音讯的基类,作为上传到服务器数据的大旨模型。

1.Windows常用模板
    Windows一般所需要监控的基本内容有:
    1.    CPU Use
    2.    Memory Use
    3.    Disk Size
    4.    Interface Traffic

    为了解决基本的监控项,我们需要以下模板。
    A.    Cacti_SNMP_Informant_Standard_Metrics_v12.zip
    B.    Cacti_host_template_ucdnet_snmp_host.gz

    我们还需要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为我们提供数据采集:informant-std-16.exe

    使用A模板来监控Windows的CPU项目
    使用B模板来监控网络,硬盘,内存。 
    最终,添加完相关模板,在创建Windows主机之后,在Devices->Your Windows host ->页面下方正确添加的各种Templates如下:

 

    由于Windows模板下都是Data Queries。所以请确保添加完相关的Data Queries之后,所有项目的Status下应该都是Success以及是能看到很多Items以及Rows的。这说明数据正确采集,如果没有,请移步最后问题综述的问题4。
    最后添加完并且画图的监控结果:

 

 

LFVideoFrame

摄像音讯,作为上传到服务器录制数据的模型。

2.Linux常用模板
    Linux与Windows监控的内容基本相同:
    1.    CPU Use
    2.    Load Average
    3.    Memory Usage
    4.    Swap Usage
    5.    Disk I/O
    6.    Disk Size
    7.    Interface Traffic
    为了解决Linux监控内容,我们使用以下模板:
    A.    Cacti_host_template_ucdnet_snmp_host.gz
    B.    Cacti_graph_template_ucdnet_-_memory/swap_usage_linux.xml
    C.    Data_query_snmp_-_get_disk_io
    最终,添加完相关模板,在创建Linux主机之后,在Devices->Your Linux host ->页面下方正确添加的各种Templates如下:

 

    在所有的Linux监控添加后的内容如下:

 

LFAudioFrame

节奏音信,作为上传到服务器音频数据的模子。

3.Switch && Router的相关模板
    由于市面上Switch和Router的型号众多,而不同的型号可能就需要不同的模板,不能像Windows和Linux一样进行统一,所以当你需要监控Switch和Router的时候,请Google响应的型号的模板,或者在Cacti官方的模板库中进行查找。查找之后添加的过程都大同小异,这里不再赘述。

LFLiveStreamInfo

推流消息:推流地址(近日首要选用rtmp推流),流状态,音录像配置音信,很是消息

 

LFStreamRTMPSocket 

数码上传管理类:开关数据上传,回调连接情况和尤其,遵循LFStreamSocket协议,并配备LFStreamSocketDelegate给session管理。

IV:自定义脚本的丰裕以及监理                 

LFLiveDebug

调试音信:这么些事开发时候的其中标示,主要用以记录调试效用。

 
  很多时候,大家须要为大家独有的条件去指定监控内容,那么哪些制订呢?就足以因此协调写脚本的法子举行收集数据。那里本人用一个督查QQ在线人数的例子来比喻。

LFStreamingBuffer

地面采样:通过本地采样监控缓冲区,可达成相关怀换帧率码率等方针

其主要的效劳流程如下:

1、其中:LFLiveSession是全体sdk对外重点提供的接口,除了对外提供业务须要接口,而且管理了整整推流进度的差异作用的贯彻,并添加了一星罗棋布的回调接口。

2、通过LFLive奥迪oConfiguration,LFLiveVideoConfiguration那多少个布局音信作为一个参数,给各种类传值基本码率等主导音讯。

3、LFVideoCapture、LF奥迪oCapture作为LFLiveSession的一性格质,可以管理摄像类的输入的输入设备的输出设备,并且经过GPUImage来进展一些图纸的滤镜的操作,然后输出,通过代理方法回调给LFLiveSession。

4、LFH264VideoEncoder,LFHardwareVideoEncoder,LFHardware奥迪oEncoder是管制音视频编码的类。LFLiveSession接收到通过滤镜处理后的回调后,通过音录像编码类对buffer进行编码,并且在编码截至之后通过代办方法回调给LFLiveSession。

5、LFStreamQashqaiTMPSocket是多少上传管理类(近期只用rtmp上传),在LFLiveSession接收到编码为止的回调后,就足以用LFStream奥迪Q7TMPSocket举办多少上传,并提供互连网状态回调和网络特别回调。

6、LFStreamingBuffer绝对就相比灵活了,其出力重借使提供了一套依据当地缓冲区在规定时间内的量来回调缓冲区buffer是充实照旧回落。如若急需在那上边展开自然的优化可以在回调中实现切换帧率等格局。在LFLiveKit里面是尚未现实落成那种政策的接续处理措施,只是回调了充实依旧回落的景况。

症结:各个buffer数据上传后,没有回调上传的结果。若是能够那样的话,可以依据上传的结果来判定推流端的现实互联网情况。本人逻辑可以拉长切换线路依旧下跌码率来促成直播品质的优化。

摄像配置

分辨率:视频镜头的高低,分辨率越高画面越清楚,分辨率控制着镜头的清晰度。

采样帧数:每秒的镜头数,录制是由许多帧画面连贯起来的。帧数越高越流畅。人眼识别16帧(外人计算的数字我也不清楚)以上就很难感觉出来画面的卡顿。帧率控制画面的流畅度。

码率:每秒显示的图样压缩后的数据量。码率控制着镜头的清晰度。

管理,注:

1、体积 = 码率 * 时间

2、压缩前每秒的数据量= 帧率 * 分辨率 = 码率 * 压缩比

1.分辨率是被AVCaptureSession控制的,它有长宽固定比例的值提供拔取,不可以自定义比例。例:AVCaptureSessionPreset640x480
 2.帧率和码率尽管能自定义设置,可是不指出自定义设置,可以通过直接设置LFLiveVideoQuality来配套的配置这几个属性的值。
 3.LFLiveVideoConfiguration还带有了最大最小帧率、最大最小码率和最大关键帧的设置。

声道数:单声道的声道数为1个声道,双声道的声道数为2个声道,立体声道的声道数默许是2个声道,立体声道(4声道)的声道数为4个声道。普通食物是三个声道,左右声道。相当于左耳机和右耳机,多数视频都是反正掺杂到手拉手了,有的配音视频区分左右声道,一边是原声,一边是配音。还有第三种声道方式,就是2.1省道,那一个.1只的是低频段环绕立体声。

采样率:节奏采样率是指录音设备在一分钟内对声音讯号的采样次数,采样频率越高声音的上升就越真是自然。在近来的主流的采集卡上,采样频率一般分为22.05KHz、44.1KHz、48KHz七个等级。22.05KHz只可以落得FM广播的鸣响质量,44.1KHz则是理论上的CD音质界限,48KHz则更是准确一些。LFLiveKit中暗许是44.1KHz。

准备工作:
    1.我们需要一个脚本,脚本的语言随意,只要在Linux的机器上能够使用运行并且有返回内容。比如我们即将使用的脚本:

  1. #!/bin/bash 
  2. echo "QQ_Now:`curl im.qq.com/online.shtml | grep qqdata | cut -d":" -f 3 | cut -d">" -f 2 | cut -d"<" -f 1`" 

    此脚本运行之后输出内容为:

 

    这个里面只有最后一行是有用的,其他的为curl的抓取信息。
    2.我们的脚本要放在一个确保Cacti用户可访问的位置。常用的地方是:cacti/scripts/*中,那么当脚本准备停当之后,就开始我们的监控工作。

 

音频码率(比特率)比特率是指将数字声音由模拟格式转化成数字格式的采样率。比特率表示单位时间(1秒)内传递的比特数bps的快慢。常常大家利用kbps(通俗的讲就是每分钟1000比特)作为单位。128kbps

磁带(手机立体声MP5播放器最佳设定值,低档MP4播放器最佳设定值)。LFLive暗许是96kbps。

缓存区的长度:以此也是SDK本身定义的,用于声音在摄像编码的时候判断,内存过大的时候暂缓编码的出力,保障内存的吉星高照的效果。缓存村长度和声道数相关,那些在SDK里面是一定1024*2*
numberOfChannels

1.创办数量输入形式

    1.    在Console–>点击Data Input Methods
    2.    点击右上角的Add,添加一个新的数量得到方式

管理 1

 

    3.    点击Create,出现新的类型
    4.  
 新的花色包罗Input Fields和Output 菲尔德s,即输入内容和出口内容,输入内容其实就是向脚本传递函数,大家以此本子不要求传递什么参数进去,于是没有,唯有Output Fields。
    5.    在Output Fields上点击Add,添加新的出口内容。
    6.    在Field[Output]中输入大家脚本的输出项:这里自个儿填写“QQ_Now”
    7.    在Friendly Name中输入解释输出项的始末,内容随意。
    8.    勾选Update RRD File后,点击Create
    9.  
 然后翻看大家整个的数额拿到方式新闻,点击Save,左上角应出现“Save Successful”

2.创办数据源

    1.    在Console->点击Data Sources,进入数据源界面
    2.    点击右上角的Add,添加新的数据源
    3.    确保Data Template和Host均为None。直接点击Create
    4.    在新出现的新闻面板中输入相关内容

管理 2

 

    5.    点击Create,此时左上角会出现Save Successful
    6.  
 注意系统活动给生成的奥迪Q5RD文件路径,确保内部不会产出接二连三多个反斜线的路线音信。假使出现,请手动修改为一个反斜线。如:/1194.rrd
    7.    点击Save,看到Save Successful,则数据源创造成功。 

3.创办图像

    1.    接纳Console–> Graph Management,进入图像管理
    2.    点击右上角的Add,添加一个新的图像
    3.    接纳Graph Template以及Host均为None,然后点击Create
    4.    Title中输入图像的名字,其余维持不变。并点击Create
    5.  
 然后您会看到多出的Graph Items,以及中等有一个看不到图的红叉,因为那个图我们还并未概念。
    6.    在Graph Items中点击Add,添加画图规则。

管理 3

 

    7.  
 添加完画图内容之后,点击Create/Save,重返从前的页面,接下去还要加上数据的显得内容。
    8.  
 再一次点击Graph Items中的Add,本次添加的是数额的显得,体现当前值。
管理 4

 

    9.  
 设置好后点击Create成立那几个项目,然后根据那些措施,分别创建最大值,最小值,平均值的来得内容。
管理 5

 

    10.   添加好后内容如图。

4.将自定义好的图纸,参加到Graphs面板

    1.  
 在Cacti Web界面Graph Trees中,接纳相应的列(恐怕系统暗中同意的Default Tree)。
    2.    进去Tree之后,点击右上角的Add,添加一个新的体现项。
    3.  
 在Tree Item Type中选用Graph,然后在底下的Graph中选择大家刚刚创制的图像。点击Create。
    4.  
 此时,再进入Graphs界面,就足以看到在Default Tree下已经出现了大家新创造的图像。

 

V.Cacti问题 Q & A                           

1.填完Drivers音信之后显得土红的SNMP error

管理 6

 

   
这是出于被监控机的SNMP设置难题,没有允许我们监控机进行监察,或许Community不匹配导致的。
   
Linux可以在/etc/snmp/snmpd.conf中修改/扩充发送snmp的机器,以及community。
    Windows可以在Snmp服务中加进允许发送snmp的机械,以及community。 

2.添加完图之后,等待了重重时辰图仍旧不知所措绘制,反馈给我们一个浅黄的X。

   
首先,要是您是用添加的模板创设的图,那么突显不断的话,很有恐怕是由于模板太老,可能模板不科学导致的。能够设想更新作者的新式模板以重新画图。当然,要是图像的确画不出去,那么大家可以打开画图的Debug日志的法子进行排错。

   
进入Graph Management,在Host中精选大家画不出图的分外Host,然后点Go,那样就在上边列出了具备在这几个Host中的图像列表,
点击这几个不可以画图的列表。这就进去了大家选定主机的相关图像的安装界面,大家应当可以看来这一个界面下方依然有一个红X,阐明大家不能画图,所以点击右上角
的“Turn on Graph Debug Mode.”来打开Debug日志,那时候,就足以观望页面下方多出
了”PRADO汉兰达D Tool Command:”的列表,里面详细的描述了奔驰G级牧马人D工具是何等为大家画图的,那都不是十分主要,关键是最终的
宝马7系路虎极光D Tool Says:比如

管理 7

 

   
那之中是瑞鹰瑞虎D Tool 告诉的大家怎么它不可以画图,我们可以看来本人当下例子的从未有过美术的由来是316.rrd以此文件不存在,表达在创立的时候rrd没有科学的创立出那几个文件,那就有或许是所用的沙盘有标题了。
   
在此处,那是一个很好的查阅为啥没有画出图的地方,没有画出的图凯雷德卡宴D Tool会一一的报告大家,我们只需要根据它说的来改良,直到奥德赛PAJEROD Tool Says: OK

3.图什么的都有,不过数量都以N/A,那是要闹哪样?

管理 8

 

   
这么些的化解办法其实跟不大概画图的缓解一样,就是我们去看数据的Debug日志。
   
进入Data Sources,在Host中挑选没有数据的Host,然后在下边的列表中甄选没有数量的万分图。进入数据设置界面,然后点击右上角的“Turn on Data Source Debug mode”,然后去分析它的报错。

4.在给主机添加Data Query的督查项的时候发现里头没有拿到到数码。

管理 9

 

   
那时候,若是它赢得不到多少,大家就无法给它画图。因为在给它创制的图的界面上出示没有内容。
   
那时候可以直接点击上图中的Debugging下的连带内容,间接打开Debug查看状态。

管理 10

 

   
那时就足以看来反映出得音讯,比如上图,发现SNMP不可以获取数据。当然也有任何的,比如MIB文件不设有。只要你精心看它报告出来的标题,知道难题的来源,就决然能一蹴而就。当消除了数据得到之后,能够一向点击左边的丁香紫的小圆圈,就刷新了数量的得到状态。

5.有关cacti下文件的权杖难点。

   
Cacti目录中的内容权限并不统一,而且权限须要的也很少,并不像任何的比如Nagios须求的那么多。咱们可以省略的维持整个Cacti目录的属主和属组都以Cacti即可。可是有八个与众不一致的不等:
   
第四个是cacti/rra目录,整个目录里的内容是Highlander安德拉D的绘画文件自动在里头生成的。而变化之后里面文件的属主和属组到底是何人,取决最终是由哪个用户
来创设的,而这一个就是在Cacti的不得了crontab里决定,假如大家利用的是root用户增进的crontab,那么那么些rra目录中的内容属主和属
组都是root。同理,如若大家的crontab是在cacti中设置的,那么rra目录中的内容属主和属组都是cacti。
   
第四个目录是cacti/scripts目录,那里面存的多数都以大家自定义的本子,一定要力保内部的脚本是cacti用户可举行的。最好的检测方法就是su到cacti用户中,进入这一个目录,手动运行一下剧本,查看脚本是或不是成功实践。

 

摘自:http://www.cnblogs.com/lcword/p/5912622.html 

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注