1. WowzaMediaServer에서 Port설정 및 방화벽 설정


WOWZA는 스트리밍을 위해 아래의 포트를 사용합니다.  시작하기 앞서 필요한 포트를 방화벽설정을 해 두셔야 합니다.  기본적으로 모든 스트리밍은 TCP 포트 1935를 이용합니다.  참고로 다른 미디어서버(FMS, Red5등)들 또한 스트리밍 포트로 1935를 사용합니다. 표준이 있는것은 아닌것 같지만, 암묵적인 우리들만의 약속인듯 합니다. 


 TCP 1935

 RTMP/RTMPE/RTMPT/RTSP-interleaved streaming/WOWZ

 TCP 8084-8085

 JMX/JConsole monitoring and administration

 TCP 8086

 Administration 

 UDP 6970-9999 

 RTP UDP streaming


포트설정은 [install-dir]/conf/VHost.xml 에서 하며 당연한 이야기지만 다른 어플리케이션과 포트과 겹치지 않도록 주의가 필요합니다.  아래 테이블은 스트림에 사용되는 일반화되어 있는 포트들입니다.  따라서 다른 프로그램 설치시 아래 포트의 사용은 안하시는것을 추천드립니다.


 TCP 80

 Apple HTTP Live Streaming (Apple HLS) 

 Adobe HTTP Dynamic Streaming (Adobe HDS)

 Microsoft Smooth Streaming

 MPEG-DASH streaming

 RTMPT

 TCP 443

 RTMPS, HTTPS

 TCP 554

 RTSP




2. 로깅(Loggin)


WMS에서 로그관리는 Java프로그래밍에서 가장 널리 쓰이는 log4j 유틸을 사용합니다. WMS의 로그파일은 [install-dir]/logs 폴더안에 쌓입니다. 기본적으로 로그가 쌓이는 레벨은 대부분의 에러이슈를 모니터링 합니다.  에러에 대한 대처(troubleshoot)을 하실때는 debug로깅을 turn on 해주셔야 합니다. [install-dir]/conf/log4j.properties 파일을 여셔서 아래의 INFODEBUG로 바꾸신 후 작업을 하시면 됩니다.  반면 실서비스시에는 INFO 로그레벨을 사용하셔야 합니다. DEBUG로 했을 경우, 하드웨어 성능이 빵빵해도 쌓이는 로그파일은 감당하기 힘들 듯 합니다.  




3. 서버튜닝(Server tuning)


WMS에서 설정파일은 모두 XML파일로 되어있습니다. 모든 설정파일은 [install-dir]/conf에 위치하며, 서버가 시작할 때 아래의 설정파일들을 읽어옵니다. 따라서 아래의 내용을 수정했을 경우, 서버를 재시작하셔야만 수정사항이 적용됩니다.  설정에 관련된 내용은 도움말 Configuration Reference를 참조하시면 됩니다. 

하드웨어 리소스를 가장 적절하게 이용하기 위해서, 서버를 적절히 설정하는 것이 매우 중요합니다. WMS에서 기본적으로 설정되어 있는 값들은 어플리케이션개발에 있어서 최적의 환경을 제공합니다.  잘못된 설정으로 인해 하드웨어 리소스를 초과해버리면 서버는 애기치 못한 여러가지 문제를 야기시킬 수도 있습니다.

 성능튜닝에 관해 자세한 내용은 Performance Tuning 를 참조하세요.


 Server Configuration Files

 Server.xml

 일반적인 서버 설정 - 서버Address, 포트, JMX설정 등을 설정

 VHosts.xml

 가상호스트(Virtual hosts)에 대한 정의

 log4j.properties

 로그설정 - 로그를 남길 level, 경로등을 설정

 Virtual Host Configuration Files

 Authentication.xml

 RTSP와 HTTP 인증(authentication) 설정

 CEACaptionConversion.xml

 CEA-608 폐쇄캡션(Closed Caption) 설정

 DVR.xml

 nDVR 기본 설정

 HTTPStreamers.xml

 Cupertino(Apple HLS), Smooth(Smooth Streaming), San Jose(Adobe HDS) 스트림 설정

 LiveStreamPacketizers.xml

 HTTP packetization 설정

 LiveStreamTranscoders.xml 

 Transcoder 기본설정 

 MediaCasters.xml 

 MediaCaster restreaming 설정

 MediaReaders.xml 

 파일포멧 reader 설정

 MediaWriters.xml  파일포멧 writer 설정
 MP3Tags.xml 

 MP3 ID3 tag naming

 RTP.xml

 RTP와 MPEG-TS packetization 설정

 StartupStreams.xml 

 Streams started at virtual host startup

 Streams.xml  Stream type 설정
 TimedTextProviders.xml

 Closed-captioning 설정

 VHost.xml  Virtual host 설정
 VHosts.xml 

 Virtual hosts 설정

 Application Configuration Files Application.xml 

 Application 설정 




4. 관리 및 모니터링(Management and monitoring) - JMX and JConsole


WMS는 서버 관리와 모니터링을 위하 JMX(Java Management Extensions)와 JConsole을 사용합니다.


① WMS에서 JMX 사용하기

JMX인터페이스를 사용하려면 먼저 [install-dir]/conf/Server.xml 파일을 수정해 주셔야 합니다. <Enable>항목의 false를 true로 바꿔주시고, 서버가 로컬이 아니라면 <IpAddress>항목과 <RMIServerHostName>을 서버주소로 수정해주셔야합니다. 서버주소에는 IP주소뿐만 아니라, 도메인주소도 올 수가 있습니다.



만약 WMS가 NAT(Network Address Translation)를 거치게 된다면, <IpAddress>항목에는 내부아이피가, <RMIServerHostName>항목에는 외부IP가 와야 합니다. 저 또한 공유기의 NAT기능을 사용하고 있으므로 다음과 같이 설정하였습니다.


 


JMX설정 완료 후 서버를 재시작 하시고 [install-dir]/logs/wowzamediaserver_access.log 파일을 열어 보시면 JMX 바인딩이 시도된 것을 확인 하실 수 있습니다.


service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi

-or-

service:jmx:rmi://[wowza-ip-address]:8084/jndi/rmi://[wowza-ip-address]:8085/jmxrmi



② WMS에서 JConsole 사용하기

JConsole은 Sun JDK에 기본적으로 포함되어 있는 유틸입니다. JDK가 설치된 폴더의 [java-install-dir]/bin/JConsole.exe에 위치해 있습니다.  윈도우 환경이시라면 시작메뉴를 통해서도 실행 하실 수 있습니다. local접속이나 remote접속을 하신 후 첫 화면은 아래 그림과 같이 CPU사용량과 Memory사용량을 실시간으로 나타내 주고 있습니다. 



MBeans탭에 WowzaMediaServerPro노드를 확장하면 JConsole과 JMX인터페이스를 통해 관리할 수 있는 항목들이 나타납니다.



모든 Wowza객체들이 디폴트로 포함되어있는 것은 아닙니다. [install-dir]/conf/Server.xml 파일에 <AdminInterface>태그영역에 보시면 모니터링 될 객체들을 설정하실 수 있습니다.  주석부분에 이용가능한 모든 객체리스트가 나와있습니다.



이 부분에서 특정 클라이언트나 미디어스트림 객체들을 등록해서 모니터링 할 수 있습니다. Server.xml파일을 수정하신 후에는 서버를 재시작 해주셔야합니다.

저작자 표시 비영리 변경 금지
신고
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. wlfans 2015.11.06 16:34 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요.

    위와같이 와우자에선 모두 설정완료가되었고,
    제 PC에 jdk를 설치하여, jconsole의 원격으로 위와같이 입력 ( IP는 해당 remote의 부분의 Ip를 입력)하였는데
    접속을 못하네요..

    원인을 모르겟습니다ㅜ_ㅜ

  2. Lockyou 2015.11.12 13:11 신고  댓글주소  수정/삭제  댓글쓰기

    cof 폴더에 보시면
    jmxremote.access
    jmxremote.password 파일이 있습니다. 여기서 remote 계정관리를 하기때문에 계정이 맞게 들어갔는지 확인 해보세요
    jconsole remote 접속시 wowza 기본 계정은 admin admin 으로 알고 있네요

  3. wlfans 2015.11.19 15:21 신고  댓글주소  수정/삭제  댓글쓰기

    네 해외에 있는 와우자를 jconsole로 접근가능하나 국내의 와우자들은 모두 접근이 불가능하네요~~,, 이건 저희 인프라를 확인해봐야할듯합니다.

    그런데 다름이아니고 제가 와우자 초보라서 그런데요,, 와우자 서버관리에 대한 노하우나 팁이 있을까요??

    예를 들어 일반적인 톰켓처럼, GC 및 힙메모리 튜닝같은거요 ㅎㅎㅎ 궁금하네요..

    그리고 지금 당장 궁금한건 Wowza의 커넥션은 어느정도가 안정적인 범위일까요?
    (물런 서버성능및 인프라 구조에 따라 모두 다르겠지만,,,) 일반적으로 어느스펙정도에 어느정도의 커넥션이 정상 범위일지 궁금합니다.
    (이 커넥션이라는 부분이 무엇을 의미하는지 잘 모르지만, httpd와 같은 접속자 커넥션을 뜻하는것같아서 질문드립니다. )

    답변 꼭 부탁드리겠습니다. ~~

  4. Lockyou 2015.11.26 13:51 신고  댓글주소  수정/삭제  댓글쓰기

    Wowza 튜닝설명은 Wowza 홈페이지에 support에 있습니다.

    커넥션은 일반 TCP서버와 동일하게 서버에 접속을 뜻하며
    실제 영상/음성 데이터는 커넥션 성공이후 Stream을 생성하여(쉽게 흐를수 있는 관을 생성) 영상/음성 보내고 받습니다.

    커넥션 카운트는 서버스펙 / 구축 방법 / 영상,음성 설정 / 등 에따라 다르기 때문에
    구축 후 서비스 해보기 전까지는 통계가 나오기 어렵습니다.
    아래는 와우자로 실제 교육 서비스 중인 통계 입니다 도움 되시기를 바랍니다 ^^

    해상도 320*240 1:1 양방향 기준 피크타임 동접수 100 ~ 300명(Live, 녹취 동시 진행) 에 하루 만건정도 씩 진행되는데 평균 HeapMemory 500M 정도 차지합니다.
    해상도 320*240에 HeapMemory 8G로 할당 되였을 경우 최소 동접 2천명이상은 커버할거라 예상 됩니다.



티스토리 툴바