2023.04.17 增加cmc环境配置信息。

This commit is contained in:
limin.zhang 2023-04-17 17:51:52 +08:00
parent 0ac5dff4b5
commit a8cb399323
12 changed files with 1499 additions and 27 deletions

View File

@ -1,6 +1,6 @@
# This is the configuration file for the gpst prod1
include "dev_core.conf"
include "dev_actor.conf"
include "cmc_core.conf"
include "cmc_actor.conf"
slick {
dbs {

View File

@ -1,13 +1,13 @@
contact-points = [
"akka.tcp://ClusterSystem@192.168.2.164:2551",
"akka.tcp://ClusterSystem@192.168.2.164:2552"
"akka.tcp://ClusterSystem@172.16.88.19:2551",
"akka.tcp://ClusterSystem@172.16.88.19:2552"
]
play.akka.actor-system = "mkfleet-4g-actor-system"
akka {
remote.netty.tcp.port=45000
remote.netty.tcp.hostname=192.168.2.164
remote.netty.tcp.hostname=172.16.88.19
remote.netty.tcp.bind-port=45000
remote.netty.tcp.bind-hostname=0.0.0.0

View File

@ -95,7 +95,7 @@ slick {
profile = "slick.jdbc.PostgresProfile$"
db {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://192.168.2.239/fms_api"
url = "jdbc:postgresql://172.16.88.19/fms_core"
user = "postgres"
password = "password"
connectionTimeout = "10000"
@ -109,7 +109,7 @@ slick {
# Redis
jedis {
hosts = ["192.168.2.239:6379"]
hosts = ["172.16.88.19:6379"]
maxIdle = 80
maxTotal = 80
timeout = 3000
@ -124,7 +124,7 @@ jedis {
provider.kafka.producerNum=6
provider.kafka.producerClientID=fleet_api_prod
#kafka.server.address="b-1.mkfleet.k48ako.c2.kafka.ap-southeast-1.amazonaws.com:9092,b-2.mkfleet.k48ako.c2.kafka.ap-southeast-1.amazonaws.com:9092"
kafka.server.address="192.168.2.239:9092"
kafka.server.address="172.16.88.19:9092"
kafka.gps.topic=fleet-api-gps
kafka.notification.topic=fleet-api-notification
@ -132,9 +132,9 @@ kafka.sns.topic=fleet-api-sns
kafka.notification-mail.topic=fleet-api-mail
# fms_gps Server (waylens-fms-gps)
fms_gps.server.address = "http://192.168.2.164:9004"
fms_gps.server.address = "http://172.16.88.19:9004"
# notification push server (waylens-fms-notification)
provider.waylens.notificationPusher.endpoint="http://192.168.2.164:8060/fmsKafka"
provider.waylens.notificationPusher.endpoint="http://172.16.88.19:8060/fmsKafka"
# mptool server
@ -172,17 +172,17 @@ provider.att {
# clip server (waylens-fms-clip)
provider.backend {
endpoint="http://192.168.2.167:36458/v.1.0"
endpoint="http://172.16.88.129:36458/v.1.0"
key="dqy0S3MAdDLOp50R"
endpointForRemuxMp4 ="http://192.168.2.167:16587/v.1.0"
endpointForRemuxMp4 ="http://172.16.88.129:16587/v.1.0"
}
# AWS
provider.aws {
key = "fTbjUPzlfsxlue0O"
secret = "Gf6xyQie5QDH28y41f4mXuDzvez26cWg"
region = "cn-qingdao-1"
host = "http://192.168.2.239:9000"
key = "0YSQr57jQNAj8iX6"
secret = "l3j0x1UpCmcu8tNYp2WkArjYY1sQdU7U"
region = "vn-hanoi-1"
host = "http://172.16.88.129:9000"
s3 {
pathStyleAccessEnabled = true
@ -202,7 +202,7 @@ provider.aws {
# Wowza parameters
provider.wowza {
defaultPublishServer = "rtmp://47.104.8.46"
defaultPublishServer = "rtmp://42.96.42.10"
appName = "live_fleet"
publishUsername = "publishfleet"
publishPassword = "aEvlBNzXvlFnjx4d"
@ -211,18 +211,18 @@ provider.wowza {
playProtocol = "rtmp"
playProtocolCN = "rtmp"
audio{
host="47.104.8.46"
host="42.96.42.10"
port=1935
appName="live_audio",
publishUsername = "fleet_audio"
publishPassword = "waylensfleet2019"
}
privateIPMap {
#"47.104.8.46": "192.168.2.164"
#"42.96.42.10": "172.16.88.19"
}
domainMap {
"192.168.2.164": "47.104.8.46"
"172.16.88.19": "42.96.42.10"
}
}
@ -240,37 +240,37 @@ provider.wowza {
# clip storage & cloudfront
clip.storage.bucket = "/mkfleet/clip/"
clip.storage.address {
default = "https://minio.dev.eveus.com/mkfleet/clip/"
default = "https://minio.cmc.eveus.com/mkfleet/clip/"
}
# streaming storage & cloudfront
streaming.storage.bucket = "/mkfleet/live_video/"
streaming.storage.address {
default = "https://minio.dev.eveus.com/mkfleet/live_video/"
default = "https://minio.cmc.eveus.com/mkfleet/live_video/"
}
# firmware storage & cloudfront
firmware.storage.bucket= "/mkfleet/firmware"
firmware.storage.address {
default = "https://minio.dev.eveus.com/mkfleet/firmware/"
default = "https://minio.cmc.eveus.com/mkfleet/firmware/"
}
# gpsReport.storage cloudfront
gpsReport.storage.address {
default = "https://minio.dev.eveus.com/mkfleet/gps_data_report/"
default = "https://minio.cmc.eveus.com/mkfleet/gps_data_report/"
}
# fleetReport.storage cloudfront
fleetReport.storage.address {
default = "https://minio.dev.eveus.com/mkfleet/fleet_report/"
default = "https://minio.cmc.eveus.com/mkfleet/fleet_report/"
}
# log storage cloudfront
log.storage.address = "https://minio.dev.eveus.com/mkfleet/log/"
log.storage.address = "https://minio.cmc.eveus.com/mkfleet/log/"
# audio storage & cloudfront
audio.storage.bucket="mkfleet"
audio.storage.address="https://minio.dev.eveus.com/mkfleet/audio/"
audio.storage.address="https://minio.cmc.eveus.com/mkfleet/audio/"
clip.request.pendingTimeout = 604800

6
cmc/fms-gps/cmc.conf Normal file
View File

@ -0,0 +1,6 @@
include "cmc_application"
compress.devices {
count = 1
currentValue = 0
}

View File

@ -0,0 +1,72 @@
play.http.secret.key="qrzrCr;PbI5tzSmTZ:BT3OCiSpG=pF7T0<;TDB^wKo8M]I_UdyeEbNm?lPFILJVG"
play.i18n.langs=[ "en" ]
play.modules {
enabled += "modules.AppModule"
enabled += "tasks.TrackTasksModule"
enabled += "tasks.GpsWritingTasksModule"
enabled += "tasks.TableTasksModule"
}
play.evolutions {
enabled = true
autoApply = true
}
slick {
dbs {
default {
profile = "slick.jdbc.PostgresProfile$"
db {
driver = "org.postgresql.Driver"
url = "jdbc:postgresql://172.16.88.19:5432/fms_gps"
user = "postgres"
password = "password"
connectionTimeout = "10000"
numThreads = 10 // evolutions is 20
maxConnections = 10 // evolutions is 5*numThread
}
}
}
}
# Filter
play.filters {
enabled += "play.filters.cors.CORSFilter"
enabled += "play.filters.hosts.AllowedHostsFilter"
cors {
pathPrefixes = ["/"]
allowedHttpMethods = ["POST", "GET", "PUT", "DELETE", "OPTIONS"]
allowedHttpHeaders = ["Origin", "X-Requested-With", "Content-Type", "Accept", "Referer", "User-Agent", "X-Auth-Token"]
supportsCredentials = false
}
hosts {
allowed = ["."]
}
}
play.http {
forwarded.trustedProxies = ["0.0.0.0/0"]
parser.maxDiskBuffer = 209715200 //200M default
parser.maxMemoryBuffer = 2M
}
kafka {
server.address="172.16.88.19:9092"
gps {
topic = "fleet-api-gps"
insert.timeout = 300
batchReceive = 100
consumer.groupID = "fleet-gps-api-consumer-write2db"
}
}
kafka.gps.insert.timeout = 300
compress.devices {
count = 1
currentValue = 0
}

64
cmc/fms-gps/logback.xml Normal file
View File

@ -0,0 +1,64 @@
<configuration>
<!--appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home}/logs/application.log</file>
<encoder>
<pattern>%coloredLevel %logger{128} %d{yyyy-MM-dd HH:mm:ss.SSSXXX, UTC} in %thread %message%n%xException{5}</pattern>
</encoder>
</appender-->
<property name="log.txtfile" value="/opt/cap/fms-gps/logs/access_gps"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--pattern>[%level] - [%d{yyyy-MM-dd HH:mm:ss.SSS, XXX}] - from [%logger] in %thread
%n%message%n%xException%n</pattern-->
<!--pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern-->
<!-- <pattern>%logger{128} %d{yyyy-MM-dd HH:mm:ss.SSSXXX, UTC} in %thread %message%n%xException{5}</pattern> -->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%logger{128}][%thread] %message%n%xException{5}</pattern>
</encoder>
</appender>
<appender name="TXT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${log.txtfile}_%d{yyyy-MM-dd}.log </FileNamePattern>
</rollingPolicy>
<encoder>
<!--<pattern> %logger{128} %d{yyyy-MM-dd HH:mm:ss.SSSXXX, UTC} in %thread %message%n%xException{5}</pattern>-->
<pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}][%-5level][%logger{128}][%thread] %message%n%xException{5}</pattern>
</encoder>
</appender>
<!--logger name="play" level="DEBUG"/-->
<logger name="play" level="INFO"/>
<!--logger name="application" level="DEBUG"/-->
<logger name="application" level="INFO"/>
<logger name="models" level="INFO"/>
<logger name="controllers" level="INFO"/>
<logger name="actors" level="INFO"/>
<logger name="utils" level="INFO"/>
<logger name="test" level="INFO"/>
<logger name="com.waylens.lib" level="INFO"/>
<!-- Off these ones as they are annoying, and anyway we manage configuration ourself -->
<logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF"/>
<logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF"/>
<logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF"/>
<logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF"/>
<logger name="com.mohiva.play.silhouette" level="DEBUG"/>
<logger name="org.apache.hadoop.mapred" level="DEBUG"/>
<!--logger name="io.netty" level="TRACE"/-->
<!--logger name="org.asynchttpclient" level="TRACE"/-->
<logger name="akka" level="INFO"/>
<logger name="slick" level="INFO"/>
<!--logger name="scala.concurrent" level="TRACE"/-->
<!--logger name="com.ning" level="TRACE"/-->
<!--logger name="play.api.mvc.Action" level="TRACE"/-->
<!--logger name="com.zaxxer.hikari" level="TRACE"/-->
<root level="INFO">
<appender-ref ref="TXT_FILE"/>
<appender-ref ref="STDOUT"/>
</root>
</configuration>

View File

@ -0,0 +1,70 @@
kafka:
consumerID: fleet_notification
topic:
gps: fleet-api-gps
general: fleet-api-notification
sns: fleet-api-sns
mail: fleet-api-mail
group:
gps: fms-notificaiton-group
general: fms-notification-group
brokers:
- 172.16.88.19:9092
minBytes: 1e3
maxBytes: 2e6
maxWait: 5000
maxDealRoutineNum: 10
setOffset:
generalType: false
generalValue:
gpsType: false
gpsValue:
commitInterval:
gps: 1000
general: 0
version: 2.6.3
# log metrics information after every sampleInterval record consumed
metrics:
sampleInterval:
gps: 100
general: 100
# aws:
# config:
# region: us-east-1
# credentialsID: AKIAITM3NWTL6U5ZLS4Q
# credentialsSecret: TIOcfryyo585Gl1kfLUmZE4RGsBqz6T3HTI+JGFS
# topicArn: arn:aws:sns:us-east-1:955954582473:fleet_sns_forward
gin:
maxTime: 12
port: :8060
postGre:
maxIdleConns: 5
maxOpenConns: 15
host: 172.16.88.19
port: 5432
user: postgres
dbname: fms_notification
password: password
redis:
index: 9
network: tcp
address: 172.16.88.19:6379
# sendgrid:
# apiKey: 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
# senderName: no-reply
# senderAddress: no-reply@waylens.com
# midEndName: dev
# midEndEmail: yu.shi@waylens.com
# midEndEmail: midend@waylens.com
gps:
biasTime: 5
fmsGpsServerAddress: http://172.16.88.19:9004

View File

@ -0,0 +1,60 @@
kafka:
consumerID: fleet_notification
topic:
sns: fleet-api-sns
mail: fleet-api-mail
group:
sns: fms-sns-group
mail: fms-sns-group
brokers:
- 172.16.88.19:9092
minBytes: 1e3
maxBytes: 2e6
maxWait: 5000
maxDealRoutineNum: 10
setOffset:
snsType: false
snsValue:
mailType: false
mailValue:
commitInterval:
sns: 1000
mail: 0
version: 2.6.3
gin:
maxTime: 12
port: :9006
redis:
index: 9
network: tcp
address: 172.16.88.19:6379
gps:
biasTime: 5
fmsGpsServerAddress: http://172.16.88.19:9004
mail:
protocol: imap
server:
host: smtp.office365.com
port: 587
auth: true
username: cap.cloud@eveus.com
password: kMBeqHkxp3sxU3Rg
skipCertCheck: true
from: cap.cloud@eveus.com
fromName: 好车主管理员
cc: 23553219@qq.com
to:
Default: limin.zhang@eveus.com,orchidflower@qq.com
CameraNotExist: limin.zhang@eveus.com,orchidflower@qq.com
EnvChange:
DifferentAttUsages:
KafkaError:
GetMileageError:
GetGpsSeqError:

227
cmc/wowza/Server.xml Normal file
View File

@ -0,0 +1,227 @@
<?xml version="1.0" encoding="UTF-8"?>
<Root version="3">
<Server>
<Name>Wowza Streaming Engine</Name>
<Description>Wowza Streaming Engine is robust, customizable, and scalable server software that powers reliable streaming of high-quality video and audio to any device, anywhere.</Description>
<RESTInterface>
<Enable>true</Enable>
<IPAddress>*</IPAddress>
<Port>8087</Port>
<!-- none, basic, digest, remotehttp, digestfile-->
<!--AuthenticationMethod>basic</AuthenticationMethod-->
<AuthenticationMethod>none</AuthenticationMethod>
<!-- cleartext, digest, bcrypt -->
<PasswordEncodingScheme>bcrypt</PasswordEncodingScheme>
<DiagnosticURLEnable>true</DiagnosticURLEnable>
<SSLConfig>
<Enable>false</Enable>
<KeyStorePath></KeyStorePath>
<KeyStorePassword></KeyStorePassword>
<KeyStoreType>JKS</KeyStoreType>
<SSLProtocol>TLS</SSLProtocol>
<Algorithm>SunX509</Algorithm>
<CipherSuites></CipherSuites>
<Protocols></Protocols>
</SSLConfig>
<!--IPWhiteList>127.0.0.1</IPWhiteList-->
<IPWhiteList>*</IPWhiteList>
<IPBlackList></IPBlackList>
<EnableXMLFile>false</EnableXMLFile>
<DocumentationServerEnable>false</DocumentationServerEnable>
<DocumentationServerPort>8089</DocumentationServerPort>
<!-- none(only) -->
<DocumentationServerAuthenticationMethod>none</DocumentationServerAuthenticationMethod>
<Properties>
</Properties>
</RESTInterface>
<CommandInterface>
<HostPort>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<IpAddress>*</IpAddress>
<Port>8083</Port>
</HostPort>
</CommandInterface>
<AdminInterface>
<!-- Objects exposed through JMX interface: Server, VHost, VHostItem, Application, ApplicationInstance, MediaCaster, Module, Client, MediaStream, SharedObject, Acceptor, IdleWorker -->
<ObjectList>Server,VHost,VHostItem,Application,ApplicationInstance,MediaCaster,Module,IdleWorker</ObjectList>
</AdminInterface>
<Stats>
<Enable>true</Enable>
</Stats>
<!-- JMXUrl: service:jmx:rmi://localhost:8084/jndi/rmi://localhost:8085/jmxrmi -->
<JMXRemoteConfiguration>
<Enable>false</Enable>
<IpAddress>localhost</IpAddress> <!-- set to localhost or internal ip address if behind NAT -->
<RMIServerHostName>localhost</RMIServerHostName> <!-- set to external ip address or domain name if behind NAT -->
<RMIConnectionPort>8084</RMIConnectionPort>
<RMIRegistryPort>8085</RMIRegistryPort>
<Authenticate>true</Authenticate>
<PasswordFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.password</PasswordFile>
<AccessFile>${com.wowza.wms.ConfigHome}/conf/jmxremote.access</AccessFile>
<SSLSecure>false</SSLSecure>
</JMXRemoteConfiguration>
<UserAgents>Shockwave Flash|CFNetwork|MacNetwork/1.0 (Macintosh)</UserAgents>
<Streams>
<DefaultStreamPrefix>mp4</DefaultStreamPrefix>
</Streams>
<ServerListeners>
<ServerListener>
<BaseClass>com.wowza.wms.mediacache.impl.MediaCacheServerListener</BaseClass>
</ServerListener>
<!--
<ServerListener>
<BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerListener</BaseClass>
</ServerListener>
-->
<!--
<ServerListener>
<BaseClass>com.wowza.wms.plugin.loadbalancer.ServerListenerLoadBalancerSender</BaseClass>
</ServerListener>
-->
<ServerListener>
<BaseClass>com.wowza.wms.plugin.loadbalancer.listeners.ServerListener</BaseClass>
</ServerListener>
</ServerListeners>
<VHostListeners>
<VHostListener>
<BaseClass>com.wowza.wms.plugin.loadbalancer.listeners.VHostListener</BaseClass>
</VHostListener>
</VHostListeners>
<HandlerThreadPool>
<PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
</HandlerThreadPool>
<TransportThreadPool>
<PoolSize>${com.wowza.wms.TuningAuto}</PoolSize>
</TransportThreadPool>
<RTP>
<DatagramStartingPort>6970</DatagramStartingPort>
<DatagramPortSharing>false</DatagramPortSharing>
</RTP>
<Manager>
<!-- Properties defined are used by the Manager -->
<Properties>
</Properties>
</Manager>
<Transcoder>
<PluginPaths>
<QuickSync></QuickSync>
</PluginPaths>
</Transcoder>
<!-- Properties defined here will be added to the IServer.getProperties() collection -->
<Properties>
<Property>
<Name>loadbalanceType</Name>
<Value>Server,Client</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceKey</Name>
<Value>8caf20bfa1ab3024</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebugServerDecision</Name>
<Value>True</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceServerDecisionOrder</Name>
<Value>Connection, Bandwidth</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceServerListenApplicationNames</Name>
<Value></Value>
<Type>String</Type>
</Property>
<!--Property>
<Name>loadbalanceServerIgnoreClients</Name>
<Value>none</Value>
<Type>String</Type>
</Property-->
<Property>
<Name>loadbalanceServerListenPort</Name>
<Value>1936</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebug</Name>
<Value>False</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebugServerExtension</Name>
<Value>False</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebugClientProcess</Name>
<Value>False</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebugClientExtension</Name>
<Value>False</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceDebugClientCommunications</Name>
<Value>False</Value>
<Type>String</Type>
</Property>
<!-- the below is Client Server config -->
<Property>
<Name>loadbalanceServerIP</Name>
<!--Value>172.16.88.19,172.16.88.129</Value>-->
<Value>172.16.88.19</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceServerPort</Name>
<Value>1936</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientName</Name>
<Value>wowza_01</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceApplicationsInclude</Name>
<Value>live_fleet</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientConnectionEnable</Name>
<Value>on</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientConnectionLimit</Name>
<Value>200</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientCountSourceClient</Name>
<Value>True</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientForceIP</Name>
<Value>42.96.42.88</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loadbalanceClientForcePort</Name>
<Value>1935</Value>
<Type>String</Type>
</Property>
</Properties>
</Server>
</Root>

330
cmc/wowza/VHost.xml Normal file
View File

@ -0,0 +1,330 @@
<?xml version="1.0" encoding="UTF-8"?>
<Root version="2">
<VHost>
<Description></Description>
<HostPortList>
<HostPort>
<Name>Default Streaming</Name>
<Type>Streaming</Type>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<IpAddress>*</IpAddress>
<!-- Separate multiple ports with commas -->
<!-- 80: HTTP, RTMPT -->
<!-- 554: RTSP -->
<Port>1935</Port>
<HTTPIdent2Response></HTTPIdent2Response>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<!-- suggested settings for video on demand applications -->
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<!-- suggest settings for low latency chat and video recording applications
<ReceiveBufferSize>32000</ReceiveBufferSize>
<ReadBufferSize>32000</ReadBufferSize>
<SendBufferSize>32000</SendBufferSize>
-->
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming,mpegdashstreaming</HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPCrossdomain</BaseClass>
<RequestFilters>*crossdomain.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPClientAccessPolicy</BaseClass>
<RequestFilters>*clientaccesspolicy.xml</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>*jwplayer.rss|*jwplayer.smil|*medialist.smil|*manifest-rtmp.f4m</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*ServerVersion</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
<HostPort>
<Name>Default Admin</Name>
<Type>Admin</Type>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<IpAddress>*</IpAddress>
<Port>8086</Port>
<HTTPIdent2Response></HTTPIdent2Response>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>16000</ReceiveBufferSize>
<ReadBufferSize>16000</ReadBufferSize>
<SendBufferSize>16000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs></HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
<RequestFilters>serverinfo*</RequestFilters>
<AuthenticationMethod>admin-basic</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionInfo</BaseClass>
<RequestFilters>connectioninfo*</RequestFilters>
<AuthenticationMethod>admin-basic</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionCountsXML</BaseClass>
<RequestFilters>connectioncounts*</RequestFilters>
<AuthenticationMethod>admin-basic</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.transcoder.httpprovider.HTTPTranscoderThumbnail</BaseClass>
<RequestFilters>transcoderthumbnail*</RequestFilters>
<AuthenticationMethod>admin-basic</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>medialist*</RequestFilters>
<AuthenticationMethod>admin-basic</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*ServerVersion</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
<HostPort>
<Name>loadbalancer</Name>
<Port>1936</Port>
<IpAddress>*</IpAddress>
<Type>Admin</Type>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<HTTPIdent2Response></HTTPIdent2Response>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>16000</ReceiveBufferSize>
<ReadBufferSize>16000</ReadBufferSize>
<SendBufferSize>16000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
<HTTPStreamerAdapterIDs></HTTPStreamerAdapterIDs>
<HTTPProviders>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerInfoXML</BaseClass>
<RequestFilters>serverinfo*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionInfo</BaseClass>
<RequestFilters>connectioninfo*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPConnectionCountsXML</BaseClass>
<RequestFilters>connectioncounts*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.transcoder.httpprovider.HTTPTranscoderThumbnail</BaseClass>
<RequestFilters>transcoderthumbnail*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPProviderMediaList</BaseClass>
<RequestFilters>medialist*</RequestFilters>
<AuthenticationMethod>admin-digest</AuthenticationMethod>
</HTTPProvider>
<HTTPProvider>
<BaseClass>com.wowza.wms.http.HTTPServerVersion</BaseClass>
<RequestFilters>*ServerVersion</RequestFilters>
<AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>
</HTTPProviders>
</HostPort>
</HostPortList>
<HTTPStreamerAdapters>
<HTTPStreamerAdapter>
<ID>smoothstreaming</ID>
<Name>smoothstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>cupertinostreaming</ID>
<Name>cupertinostreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>sanjosestreaming</ID>
<Name>sanjosestreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>dvrchunkstreaming</ID>
<Name>dvrchunkstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>mpegdashstreaming</ID>
<Name>mpegdashstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>tsstreaming</ID>
<Name>tsstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
<HTTPStreamerAdapter>
<ID>webmstreaming</ID>
<Name>webmstreaming</Name>
<Properties>
</Properties>
</HTTPStreamerAdapter>
</HTTPStreamerAdapters>
<!-- When set to zero, thread pool configuration is done in Server.xml -->
<HandlerThreadPool>
<PoolSize>0</PoolSize>
</HandlerThreadPool>
<TransportThreadPool>
<PoolSize>0</PoolSize>
</TransportThreadPool>
<IdleWorkers>
<WorkerCount>${com.wowza.wms.TuningAuto}</WorkerCount>
<CheckFrequency>50</CheckFrequency>
<MinimumWaitTime>5</MinimumWaitTime>
</IdleWorkers>
<NetConnections>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<IdleFrequency>250</IdleFrequency>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<AcceptorBackLog>100</AcceptorBackLog>
</SocketConfiguration>
</NetConnections>
<MediaCasters>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
<SocketConfiguration>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<ReadBufferSize>65000</ReadBufferSize>
<SendBufferSize>65000</SendBufferSize>
<KeepAlive>true</KeepAlive>
<!-- <TrafficClass>0</TrafficClass> -->
<!-- <OobInline>false</OobInline> -->
<!-- <SoLingerTime>-1</SoLingerTime> -->
<!-- <TcpNoDelay>false</TcpNoDelay> -->
<ConnectionTimeout>10000</ConnectionTimeout>
</SocketConfiguration>
</MediaCasters>
<LiveStreamTranscoders>
<MaximumConcurrentTranscodes>0</MaximumConcurrentTranscodes>
</LiveStreamTranscoders>
<HTTPTunnel>
<KeepAliveTimeout>2000</KeepAliveTimeout>
</HTTPTunnel>
<Client>
<ClientTimeout>90000</ClientTimeout>
<IdleFrequency>250</IdleFrequency>
</Client>
<!-- RTP/Authentication/Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
<RTP>
<IdleFrequency>75</IdleFrequency>
<DatagramConfiguration>
<Incoming>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>2048000</ReceiveBufferSize>
<SendBufferSize>65000</SendBufferSize>
<!-- <MulticastBindToAddress>true</MulticastBindToAddress> -->
<!-- <MulticastInterfaceAddress>192.168.1.22</MulticastInterfaceAddress> -->
<!-- <TrafficClass>0</TrafficClass> -->
<MulticastTimeout>50</MulticastTimeout>
<DatagramMaximumPacketSize>4096</DatagramMaximumPacketSize>
</Incoming>
<Outgoing>
<ReuseAddress>true</ReuseAddress>
<ReceiveBufferSize>65000</ReceiveBufferSize>
<SendBufferSize>256000</SendBufferSize>
<!-- <MulticastBindToAddress>true</MulticastBindToAddress> -->
<!-- <MulticastInterfaceAddress>192.168.1.22</MulticastInterfaceAddress> -->
<!-- <TrafficClass>0</TrafficClass> -->
<MulticastTimeout>50</MulticastTimeout>
<DatagramMaximumPacketSize>4096</DatagramMaximumPacketSize>
</Outgoing>
</DatagramConfiguration>
<UnicastIncoming>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
</UnicastIncoming>
<UnicastOutgoing>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
</UnicastOutgoing>
<MulticastIncoming>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
</MulticastIncoming>
<MulticastOutgoing>
<ProcessorCount>${com.wowza.wms.TuningAuto}</ProcessorCount>
</MulticastOutgoing>
</RTP>
<HTTPProvider>
<KeepAliveTimeout>2000</KeepAliveTimeout>
<EndConnectionTimeout>10000</EndConnectionTimeout>
<SlowConnectionBitrate>64000</SlowConnectionBitrate>
<IdleFrequency>250</IdleFrequency>
</HTTPProvider>
<WebSocket>
<MaximumMessageSize>512k</MaximumMessageSize>
<PacketFragmentationSize>0</PacketFragmentationSize>
<MaskOutgoingMessages>false</MaskOutgoingMessages>
<IdleFrequency>250</IdleFrequency>
<ValidationFrequency>20000</ValidationFrequency>
<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
<PingTimeout>12000</PingTimeout>
</WebSocket>
<Application>
<ApplicationTimeout>60000</ApplicationTimeout>
<PingTimeout>12000</PingTimeout>
<UnidentifiedSessionTimeout>30000</UnidentifiedSessionTimeout>
<ValidationFrequency>20000</ValidationFrequency>
<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
<MaximumSetBufferTime>60000</MaximumSetBufferTime>
</Application>
<StartStartupStreams>true</StartStartupStreams>
<Manager>
<TestPlayer>
<IpAddress>${com.wowza.wms.HostPort.IpAddress}</IpAddress>
<Port>${com.wowza.wms.HostPort.FirstStreamingPort}</Port>
<SSLEnable>${com.wowza.wms.HostPort.SSLEnable}</SSLEnable>
</TestPlayer>
<!-- Properties defined are used by the Manager -->
<Properties>
</Properties>
</Manager>
<!-- Properties defined here will be added to the IVHost.getProperties() collection -->
<Properties>
</Properties>
</VHost>
</Root>

View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="UTF-8"?>
<Root version="1">
<Application>
<Name>live_fleet</Name>
<AppType>Live</AppType>
<Description></Description>
<!-- Uncomment to set application level timeout values
<ApplicationTimeout>60000</ApplicationTimeout>
<PingTimeout>12000</PingTimeout>
<ValidationFrequency>8000</ValidationFrequency>
<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
<MaximumSetBufferTime>60000</MaximumSetBufferTime>
<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
-->
<Connections>
<AutoAccept>true</AutoAccept>
<AllowDomains></AllowDomains>
</Connections>
<!--
StorageDir path variables
${com.wowza.wms.AppHome} - Application home directory
${com.wowza.wms.ConfigHome} - Configuration home directory
${com.wowza.wms.context.VHost} - Virtual host name
${com.wowza.wms.context.VHostConfigHome} - Virtual host home directory
${com.wowza.wms.context.Application} - Application name
${com.wowza.wms.context.ApplicationInstance} - Application instance name
-->
<Streams>
<StreamType>live-record-lowlatency</StreamType>
<StorageDir>/opt/wowza/live_fleet</StorageDir>
<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, mpegdashstreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater -->
<LiveStreamPacketizers>cupertinostreamingpacketizer</LiveStreamPacketizers>
<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
<Properties>
<Property>
<Name>flushInterval</Name>
<Value>25</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>onFlushNotifyClients</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</Streams>
<Transcoder>
<!-- To turn on transcoder set to: transcoder -->
<LiveStreamTranscoder></LiveStreamTranscoder>
<!-- [templatename].xml or ${SourceStreamName}.xml -->
<Templates>${SourceStreamName}.xml,transrate.xml</Templates>
<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
<Properties>
</Properties>
</Transcoder>
<DVR>
<!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
<!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
<!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
<!-- If this is a dvrstreamingrepeater, define Application/Repeater/OriginURL to point back to the origin -->
<!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer -->
<Recorders></Recorders>
<!-- As a single server or as an origin, set the Store to dvrfilestorage-->
<!-- edges should have this empty -->
<Store></Store>
<!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. -->
<WindowDuration>0</WindowDuration>
<!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr -->
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
<!-- valid ArchiveStrategy values are append, version, delete -->
<ArchiveStrategy>append</ArchiveStrategy>
<!-- Properties for DVR -->
<Properties>
</Properties>
</DVR>
<TimedText>
<!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc -->
<VODTimedTextProviders></VODTimedTextProviders>
<!-- Properties for TimedText -->
<Properties>
</Properties>
</TimedText>
<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming, dvrchunkstreaming -->
<HTTPStreamers>cupertinostreaming</HTTPStreamers>
<MediaCache>
<MediaCacheSourceList></MediaCacheSourceList>
</MediaCache>
<SharedObjects>
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/applications/${com.wowza.wms.context.Application}/sharedobjects/${com.wowza.wms.context.ApplicationInstance}</StorageDir>
</SharedObjects>
<Client>
<IdleFrequency>-1</IdleFrequency>
<Access>
<StreamReadAccess>*</StreamReadAccess>
<StreamWriteAccess>*</StreamWriteAccess>
<StreamAudioSampleAccess></StreamAudioSampleAccess>
<StreamVideoSampleAccess></StreamVideoSampleAccess>
<SharedObjectReadAccess>*</SharedObjectReadAccess>
<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
</Access>
</Client>
<RTP>
<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
<Authentication>
<PublishMethod>digest</PublishMethod>
<PlayMethod>block</PlayMethod>
</Authentication>
<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
<AVSyncMethod>senderreport</AVSyncMethod>
<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
<IdleFrequency>75</IdleFrequency>
<RTSPSessionTimeout>90000</RTSPSessionTimeout>
<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
<RTSPBindIpAddress></RTSPBindIpAddress>
<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
<Properties>
</Properties>
</RTP>
<WebRTC>
<!-- Enable WebRTC publishing to this application -->
<EnablePublish>false</EnablePublish>
<!-- Enable WebRTC playback from this application -->
<EnablePlay>false</EnablePlay>
<!-- Enable query of published stream names for this application -->
<EnableQuery>false</EnableQuery>
<!-- IP address, transport, and port used for WebRTC streaming. -->
<!--TCP format: [wowza-streaming-engine-external-ip-address],tcp,[port] -->
<!--UDP format: [wowza-streaming-engine-external-ip-address],udp -->
<IceCandidateIpAddresses>127.0.0.1,tcp,1935</IceCandidateIpAddresses>
<!-- Local IP address of the network card you want to use for WebRTC UDP traffic -->
<UDPBindAddress></UDPBindAddress>
<!-- Comma-deliniated list of audio codecs, in order of preference, for stream ingestion -->
<PreferredCodecsAudio>opus,pcmu,pcma</PreferredCodecsAudio>
<!-- Comma-deliniated list of video codecs, in order of preference, for stream ingestion -->
<PreferredCodecsVideo>vp8,h264</PreferredCodecsVideo>
<!-- Enable WebRTC debug logging -->
<DebugLog>false</DebugLog>
<!-- Properties for WebRTC -->
<Properties>
</Properties>
</WebRTC>
<MediaCaster>
<RTP>
<RTSP>
<!-- udp, interleave -->
<RTPTransportMode>interleave</RTPTransportMode>
</RTSP>
</RTP>
<StreamValidator>
<Enable>true</Enable>
<ResetNameGroups>true</ResetNameGroups>
<StreamStartTimeout>20000</StreamStartTimeout>
<StreamTimeout>12000</StreamTimeout>
<VideoStartTimeout>0</VideoStartTimeout>
<VideoTimeout>0</VideoTimeout>
<AudioStartTimeout>0</AudioStartTimeout>
<AudioTimeout>0</AudioTimeout>
<VideoTCToleranceEnable>false</VideoTCToleranceEnable>
<VideoTCPosTolerance>3000</VideoTCPosTolerance>
<VideoTCNegTolerance>-500</VideoTCNegTolerance>
<AudioTCToleranceEnable>false</AudioTCToleranceEnable>
<AudioTCPosTolerance>3000</AudioTCPosTolerance>
<AudioTCNegTolerance>-500</AudioTCNegTolerance>
<DataTCToleranceEnable>false</DataTCToleranceEnable>
<DataTCPosTolerance>3000</DataTCPosTolerance>
<DataTCNegTolerance>-500</DataTCNegTolerance>
<AVSyncToleranceEnable>false</AVSyncToleranceEnable>
<AVSyncTolerance>1500</AVSyncTolerance>
<DebugLog>false</DebugLog>
</StreamValidator>
<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
<Properties>
</Properties>
</MediaCaster>
<MediaReader>
<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
<Properties>
</Properties>
</MediaReader>
<MediaWriter>
<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
<Properties>
</Properties>
</MediaWriter>
<LiveStreamPacketizer>
<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
<Properties>
<Property>
<Name>cupertinoChunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
</Properties>
</LiveStreamPacketizer>
<HTTPStreamer>
<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
<Properties>
</Properties>
</HTTPStreamer>
<Manager>
<!-- Properties defined are used by the Manager -->
<Properties>
</Properties>
</Manager>
<Repeater>
<OriginURL></OriginURL>
<QueryString></QueryString>
</Repeater>
<StreamRecorder>
<Properties>
<Property>
<Name>streamRecorderDebugEnable</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamRecorderFileVersionTemplate</Name>
<Value>${SourceStreamName}_${SegmentTime}</Value>
<Type>String</Type>
</Property>
<Property>
<Name>streamRecorderSegmentationType</Name>
<Value>duration</Value>
<Type>String</Type>
</Property>
<Property>
<Name>streamRecorderSegmentDuration</Name>
<Value>900000</Value>
<Type>Integer</Type>
</Property>
</Properties>
</StreamRecorder>
<Modules>
<Module>
<Name>base</Name>
<Description>Base</Description>
<Class>com.wowza.wms.module.ModuleCore</Class>
</Module>
<Module>
<Name>logging</Name>
<Description>Client Logging</Description>
<Class>com.wowza.wms.module.ModuleClientLogging</Class>
</Module>
<Module>
<Name>flvplayback</Name>
<Description>FLVPlayback</Description>
<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
</Module>
<Module>
<Name>ModuleCoreSecurity</Name>
<Description>Core Security Module for Applications</Description>
<Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
</Module>
<Module>
<Name>ModuleSecureURLParams</Name>
<Description>ModuleSecureURLParams</Description>
<Class>com.wowza.wms.security.ModuleSecureURLParams</Class>
</Module>
<Module>
<Name>Security360Module</Name>
<Description>Notify stream status</Description>
<Class>com.waylens.wms.Security360Module</Class>
</Module>
<Module>
<Name>s3uploader</Name>
<Description>upload to s3</Description>
<Class>com.waylens.wms.ModuleS3Upload</Class>
</Module>
</Modules>
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
<Properties>
<Property>
<Name>pushPublishMapPath</Name>
<Value>${com.wowza.wms.context.VHostConfigHome}/conf/${com.wowza.wms.context.Application}/PushPublishMap.txt</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadAccessKeyID</Name>
<Value>fTbjUPzlfsxlue0O</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadAccessKeySecret</Name>
<Value>Gf6xyQie5QDH28y41f4mXuDzvez26cWg</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadBucketName</Name>
<Value>mkfleet</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadRegion</Name>
<Value>cn-qingdao-1</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadHost</Name>
<Value>http://172.16.88.19:9000</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadVersionFile</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>s3UploadDeleteOriginalFiles</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>s3UploadDebugLog</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>s3UploadNotifyUrl</Name>
<Value>http://172.16.88.19:9000/wowza/notify_upload</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadStreamInfoUrl</Name>
<Value>http://172.16.88.19:9000/wowza/streamInfo</Value>
<Type>String</Type>
</Property>
<Property>
<Name>Security360StreamStatusNotifyUrl</Name>
<Value>http://172.16.88.19:9000/wowza/notify_streaming</Value>
<Type>String</Type>
</Property>
<Property>
<Name>securityPublishBlockDuplicateStreamNames</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>s3UploadFilePrefix</Name>
<Value>live_video</Value>
<Type>String</Type>
</Property>
<Property>
<Name>s3UploadUseSSE</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>s3UploadRestartFailedUploads</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>securityDebugLogRejections</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>securityDebugLogDetails</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>securityPublishValidEncoders</Name>
<Value>Wirecast/|FME/|FMLE/|Wowza GoCoder*|Lavf/|UA Teradek/|KulaByte/|HaivisionKB/|VidBlaster/|XSplit/|PESA|makitoX/|Elemental Live/|WaylensHorn</Value>
<Type>String</Type>
</Property>
<Property>
<Name>securitySecureTokenVersion</Name>
<Value>2</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>securitySecureTokenSharedSecret</Name>
<Value>eeYJSVCkttNVGLIY</Value>
<Type>String</Type>
</Property>
<Property>
<Name>securitySecureTokenHashAlgorithm</Name>
<Value>SHA-256</Value>
<Type>String</Type>
</Property>
<Property>
<Name>securitySecureTokenQueryParametersPrefix</Name>
<Value>fleet</Value>
<Type>String</Type>
</Property>
<Property>
<Name>secureurlparams.publish</Name>
<Value>aEvlBNzXvlFnjx4d.publishfleet</Value>
</Property>
</Properties>
</Application>
</Root>

243
cmc/wowza/log4j2-config.xml Normal file
View File

@ -0,0 +1,243 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
<!--
Available ThreadContext map keys:
date, time, tz, x-event, x-category, x-severity, x-status, x-ctx, x-ctx-override, x-comment, x-vhost, x-app, x-appinst, x-duration, s-ip,
s-port, s-uri, c-ip, c-proto, c-referrer, c-user-agent, c-client-id, cs-bytes, sc-bytes, x-stream-id, x-spos, cs-stream-bytes, sc-stream-bytes,
x-sname, x-sname-query, x-file-name, x-file-ext, x-file-size, x-file-length, x-suri, x-suri-stem, x-suri-query, cs-uri-stem, cs-uri-query,
x-forwarded-ip, x-class-fqcn, x-class-name, x-class-packagename, x-vhost-context, x-app-context, x-appinst-context
-->
<Appenders>
<Console name="stdout" target="SYSTEM_OUT">
<PatternLayout>
<Pattern>%replace{%X{x-severity}}{^$}{-} %replace{%X{x-category}}{^$}{-} %replace{%X{x-event}}{^$}{-} %replace{%X{x-ctx}}{^$}{-} %replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
</Console>
<RollingFile name="serverAccess" fileName="/opt/wowza/logs/wowzastreamingengine_access.log" filePattern="/opt/wowza/logs/wowzastreamingengine_access.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: date\ttime\ttz\tx-event\tx-category\tx-severity\tx-status\tx-ctx\tx-comment\tx-vhost\tx-app\tx-appinst\tx-duration\ts-ip\ts-port\ts-uri\tc-ip\tc-proto\tc-referrer\tc-user-agent\tc-client-id\tcs-bytes\tsc-bytes\tx-stream-id\tx-spos\tcs-stream-bytes\tsc-stream-bytes\tx-sname\tx-sname-query\tx-file-name\tx-file-ext\tx-file-size\tx-file-length\tx-suri\tx-suri-stem\tx-suri-query\tcs-uri-stem\tcs-uri-query%n</Header>
<Pattern>%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%d{z}\t%replace{%X{x-event}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-status}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}\t%replace{%X{x-vhost}}{^$}{-}\t%replace{%X{x-app}}{^$}{-}\t%replace{%X{x-appinst}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{s-ip}}{^$}{-}\t%replace{%X{s-port}}{^$}{-}\t%replace{%X{s-uri}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-proto}}{^$}{-}\t%replace{%X{c-referrer}}{^$}{-}\t%replace{%X{c-user-agent}}{^$}{-}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-sname-query}}{^$}{-}\t%replace{%X{x-file-name}}{^$}{-}\t%replace{%X{x-file-ext}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-suri}}{^$}{-}\t%replace{%X{x-suri-stem}}{^$}{-}\t%replace{%X{x-suri-query}}{^$}{-}\t%replace{%X{cs-uri-stem}}{^$}{-}\t%replace{%X{cs-uri-query}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs" maxDepth="1">
<IfLastModified age="14d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="serverError" fileName="/opt/wowza/logs/wowzastreamingengine_error.log" filePattern="/opt/wowza/logs/wowzastreamingengine_error.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: x-severity\tx-category\tx-event\tdate\ttime\tc-client-id\tc-ip\tc-port\tcs-bytes\tsc-bytes\tx-duration\tx-sname\tx-stream-id\tx-spos\tsc-stream-bytes\tcs-stream-bytes\tx-file-size\tx-file-length\tx-ctx\tx-comment%n</Header>
<Pattern>%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-event}}{^$}{-}\t%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-port}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<RollingFile name="serverStats" fileName="/opt/wowza/logs/wowzastreamingengine_stats.log" filePattern="/opt/wowza/logs/wowzastreamingengine_stats.%d{yyyy-MM-dd}.log">
<Filters>
<ContextMapFilter onMatch="DENY" onMismatch="NEUTRAL">
<KeyValuePair key="x-event" value="comment"/>
</ContextMapFilter>
<ContextMapFilter onMatch="ACCEPT" onMismatch="DENY" operator="or">
<KeyValuePair key="x-category" value="session"/>
<KeyValuePair key="x-category" value="stream"/>
</ContextMapFilter>
</Filters>
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: x-severity\tx-category\tx-event\tdate\ttime\tc-client-id\tc-ip\tc-port\tcs-bytes\tsc-bytes\tx-duration\tx-sname\tx-stream-id\tx-spos\tsc-stream-bytes\tcs-stream-bytes\tx-file-size\tx-file-length\tx-ctx\tx-comment%n</Header>
<Pattern>%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-event}}{^$}{-}\t%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-port}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<Routing name="vhostAccess" >
<Routes pattern="$${ctx:x-vhost-context}">
<Route>
<RollingFile name="vhostAccess-${ctx:x-vhost-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/wowzastreamingengine_access.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/wowzastreamingengine_access.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: date\ttime\ttz\tx-event\tx-category\tx-severity\tx-status\tx-ctx\tx-comment\tx-vhost\tx-app\tx-appinst\tx-duration\ts-ip\ts-port\ts-uri\tc-ip\tc-proto\tc-referrer\tc-user-agent\tc-client-id\tcs-bytes\tsc-bytes\tx-stream-id\tx-spos\tcs-stream-bytes\tsc-stream-bytes\tx-sname\tx-sname-query\tx-file-name\tx-file-ext\tx-file-size\tx-file-length\tx-suri\tx-suri-stem\tx-suri-query\tcs-uri-stem\tcs-uri-query%n</Header>
<Pattern>%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%d{z}\t%replace{%X{x-event}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-status}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}\t%replace{%X{x-vhost}}{^$}{-}\t%replace{%X{x-app}}{^$}{-}\t%replace{%X{x-appinst}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{s-ip}}{^$}{-}\t%replace{%X{s-port}}{^$}{-}\t%replace{%X{s-uri}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-proto}}{^$}{-}\t%replace{%X{c-referrer}}{^$}{-}\t%replace{%X{c-user-agent}}{^$}{-}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-sname-query}}{^$}{-}\t%replace{%X{x-file-name}}{^$}{-}\t%replace{%X{x-file-ext}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-suri}}{^$}{-}\t%replace{%X{x-suri-stem}}{^$}{-}\t%replace{%X{x-suri-query}}{^$}{-}\t%replace{%X{cs-uri-stem}}{^$}{-}\t%replace{%X{cs-uri-query}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
<Routing name="vhostError" >
<Routes pattern="$${ctx:x-vhost-context}">
<Route>
<RollingFile name="vhostError-${ctx:x-vhost-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/wowzastreamingengine_error.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/wowzastreamingengine_error.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: x-severity\tx-category\tx-event\tdate\ttime\tc-client-id\tc-ip\tc-port\tcs-bytes\tsc-bytes\tx-duration\tx-sname\tx-stream-id\tx-spos\tsc-stream-bytes\tcs-stream-bytes\tx-file-size\tx-file-length\tx-ctx\tx-comment%n</Header>
<Pattern>%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-event}}{^$}{-}\t%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-port}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
<Routing name="applicationAccess" >
<Routes pattern="$${ctx:x-app-context}">
<Route>
<RollingFile name="applicationAccess-${ctx:x-app-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/wowzastreamingengine_access.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/wowzastreamingengine_access.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: date\ttime\ttz\tx-event\tx-category\tx-severity\tx-status\tx-ctx\tx-comment\tx-vhost\tx-app\tx-appinst\tx-duration\ts-ip\ts-port\ts-uri\tc-ip\tc-proto\tc-referrer\tc-user-agent\tc-client-id\tcs-bytes\tsc-bytes\tx-stream-id\tx-spos\tcs-stream-bytes\tsc-stream-bytes\tx-sname\tx-sname-query\tx-file-name\tx-file-ext\tx-file-size\tx-file-length\tx-suri\tx-suri-stem\tx-suri-query\tcs-uri-stem\tcs-uri-query%n</Header>
<Pattern>%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%d{z}\t%replace{%X{x-event}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-status}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}\t%replace{%X{x-vhost}}{^$}{-}\t%replace{%X{x-app}}{^$}{-}\t%replace{%X{x-appinst}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{s-ip}}{^$}{-}\t%replace{%X{s-port}}{^$}{-}\t%replace{%X{s-uri}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-proto}}{^$}{-}\t%replace{%X{c-referrer}}{^$}{-}\t%replace{%X{c-user-agent}}{^$}{-}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-sname-query}}{^$}{-}\t%replace{%X{x-file-name}}{^$}{-}\t%replace{%X{x-file-ext}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-suri}}{^$}{-}\t%replace{%X{x-suri-stem}}{^$}{-}\t%replace{%X{x-suri-query}}{^$}{-}\t%replace{%X{cs-uri-stem}}{^$}{-}\t%replace{%X{cs-uri-query}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
<Routing name="applicationError" >
<Routes pattern="$${ctx:x-app-context}">
<Route>
<RollingFile name="applicationError-${ctx:x-app-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/wowzastreamingengine_error.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/wowzastreamingengine_error.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: x-severity\tx-category\tx-event\tdate\ttime\tc-client-id\tc-ip\tc-port\tcs-bytes\tsc-bytes\tx-duration\tx-sname\tx-stream-id\tx-spos\tsc-stream-bytes\tcs-stream-bytes\tx-file-size\tx-file-length\tx-ctx\tx-comment%n</Header>
<Pattern>%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-event}}{^$}{-}\t%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-port}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
<Routing name="applicationInstanceAccess" >
<Routes pattern="$${ctx:x-appinst-context}">
<Route>
<RollingFile name="applicationInstanceAccess-${ctx:x-appinst-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}/wowzastreamingengine_access.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}/wowzastreamingengine_access.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: date\ttime\ttz\tx-event\tx-category\tx-severity\tx-status\tx-ctx\tx-comment\tx-vhost\tx-app\tx-appinst\tx-duration\ts-ip\ts-port\ts-uri\tc-ip\tc-proto\tc-referrer\tc-user-agent\tc-client-id\tcs-bytes\tsc-bytes\tx-stream-id\tx-spos\tcs-stream-bytes\tsc-stream-bytes\tx-sname\tx-sname-query\tx-file-name\tx-file-ext\tx-file-size\tx-file-length\tx-suri\tx-suri-stem\tx-suri-query\tcs-uri-stem\tcs-uri-query%n</Header>
<Pattern>%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%d{z}\t%replace{%X{x-event}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-status}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}\t%replace{%X{x-vhost}}{^$}{-}\t%replace{%X{x-app}}{^$}{-}\t%replace{%X{x-appinst}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{s-ip}}{^$}{-}\t%replace{%X{s-port}}{^$}{-}\t%replace{%X{s-uri}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-proto}}{^$}{-}\t%replace{%X{c-referrer}}{^$}{-}\t%replace{%X{c-user-agent}}{^$}{-}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-sname-query}}{^$}{-}\t%replace{%X{x-file-name}}{^$}{-}\t%replace{%X{x-file-ext}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-suri}}{^$}{-}\t%replace{%X{x-suri-stem}}{^$}{-}\t%replace{%X{x-suri-query}}{^$}{-}\t%replace{%X{cs-uri-stem}}{^$}{-}\t%replace{%X{cs-uri-query}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
<Routing name="applicationInstanceError" >
<Routes pattern="$${ctx:x-appinst-context}">
<Route>
<RollingFile name="applicationInstanceError-${ctx:x-appinst-context}" fileName="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}/wowzastreamingengine_error.log" filePattern="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}/wowzastreamingengine_error.%d{yyyy-MM-dd}.log">
<PatternLayout>
<Header>#Version: 1.0\n#Start-Date: %d{YYY-MM-dd HH:mm:ss zzz}\n#Software: ${sys:wse-software-version}\n#Date: %d{YYY-MM-dd}\n#Fields: x-severity\tx-category\tx-event\tdate\ttime\tc-client-id\tc-ip\tc-port\tcs-bytes\tsc-bytes\tx-duration\tx-sname\tx-stream-id\tx-spos\tsc-stream-bytes\tcs-stream-bytes\tx-file-size\tx-file-length\tx-ctx\tx-comment%n</Header>
<Pattern>%replace{%X{x-severity}}{^$}{-}\t%replace{%X{x-category}}{^$}{-}\t%replace{%X{x-event}}{^$}{-}\t%d{yyyy-MM-dd}\t%d{HH:mm:ss}\t%replace{%X{c-client-id}}{^$}{-}\t%replace{%X{c-ip}}{^$}{-}\t%replace{%X{c-port}}{^$}{-}\t%replace{%X{cs-bytes}}{^$}{-}\t%replace{%X{sc-bytes}}{^$}{-}\t%replace{%X{x-duration}}{^$}{-}\t%replace{%X{x-sname}}{^$}{-}\t%replace{%X{x-stream-id}}{^$}{-}\t%replace{%X{x-spos}}{^$}{-}\t%replace{%X{sc-stream-bytes}}{^$}{-}\t%replace{%X{cs-stream-bytes}}{^$}{-}\t%replace{%X{x-file-size}}{^$}{-}\t%replace{%X{x-file-length}}{^$}{-}\t%replace{%X{x-ctx}}{^$}{-}\t%replace{%X{x-comment}}{^$}{-}%n</Pattern>
<AlwaysWriteExceptions>false</AlwaysWriteExceptions>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="/opt/wowza/logs/${ctx:x-vhost}/${ctx:x-app}/${ctx:x-appinst}" maxDepth="1">
<IfLastModified age="5d" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Route>
<Route key="">
<CountingNoOp name="DEV_NULL" />
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="stdout" level="info"/>
<AppenderRef ref="serverAccess" level="info"/>
<AppenderRef ref="serverError" level="warn"/>
<!-- <AppenderRef ref="serverStats" level="info"/> -->
<!-- <AppenderRef ref="vhostAccess" level="info"/> -->
<!-- <AppenderRef ref="vhostError" level="warn"/> -->
<!-- <AppenderRef ref="applicationAccess" level="info"/> -->
<!-- <AppenderRef ref="applicationError" level="warn"/> -->
<!-- <AppenderRef ref="applicationInstanceAccess" level="info"/> -->
<!-- <AppenderRef ref="applicationInstanceError" level="warn"/> -->
</Root>
</Loggers>
</Configuration>