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파일을 수정하신 후에는 서버를 재시작 해주셔야합니다.

AND