blob: b7615fbcc584a119cfbc52849c8938911bc7489b [file] [log] [blame]
..
.. Copyright 2015 Comcast Cable Communications Management, LLC
..
.. Licensed under the Apache License, Version 2.0 (the "License");
.. you may not use this file except in compliance with the License.
.. You may obtain a copy of the License at
..
.. http://www.apache.org/licenses/LICENSE-2.0
..
.. Unless required by applicable law or agreed to in writing, software
.. distributed under the License is distributed on an "AS IS" BASIS,
.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.. See the License for the specific language governing permissions and
.. limitations under the License.
..
******************************
Traffic Monitor Administration
******************************
Installing Traffic Monitor
==========================
The following are requirements to ensure an accurate set up:
* CentOS 6
* 4 vCPUs
* 8GB RAM
* Successful install of Traffic Ops
* Tomcat
* Administrative access to the Traffic Ops
* Physical address of the site
* perl-JSON
* perl-WWW-Curl
1. Enter the Traffic Monitor server into Traffic Ops
2. Make sure the FQDN of the Traffic Monitor is resolvable in DNS.
3. Install Traffic Monitor and perl mods: ``sudo yum -y install traffic_monitor perl-JSON perl-WWW-Curl``
4. Take the config from Traffic Ops - run : ``sudo /opt/traffic_monitor/bin/traffic_monitor_config.pl``
Sample output: ::
traffic_mon # /opt/traffic_monitor/bin/traffic_monitor_config.pl https://traffic-ops.cdn.kabletown.net admin:password prompt
DEBUG: traffic_ops selected: https://traffic-ops.cdn.kabletown.net
DEBUG: traffic_ops login: admin:kl0tevax
DEBUG: Config write mode: prompt
DEBUG: Found profile from traffic_ops: RASCAL_CDN
DEBUG: Found CDN name from traffic_ops: kabletown_cdn
DEBUG: Found location for rascal-config.txt from traffic_ops: /opt/traffic_monitor/conf
WARN: Param not in traffic_ops: allow.config.edit description: Allow the running configuration to be edited through the UI Using default value of: false
WARN: Param not in traffic_ops: default.accessControlAllowOrigin description: The value for the header: Access-Control-Allow-Origin for published jsons... should be narrowed down to TMs Using default value of: *
WARN: Param not in traffic_ops: default.connection.timeout description: Default connection time for all queries (cache, peers, TM) Using default value of: 2000
WARN: Param not in traffic_ops: hack.forceSystemExit description: Call System.exit on shutdown Using default value of: false
WARN: Param not in traffic_ops: hack.peerOptimistic description: The assumption of a caches availability when unknown by peers Using default value of: true
WARN: Param not in traffic_ops: hack.publishDsStates description: If true, the delivery service states will be included in the CrStates.json Using default value of: true
WARN: Param not in traffic_ops: health.ds.interval description: The polling frequency for calculating the deliveryService states Using default value of: 1000
WARN: Param not in traffic_ops: health.ds.leniency description: The amount of time before the deliveryService disregards the last update from a non-responsive cache Using default value of: 30000
WARN: Param not in traffic_ops: health.event-count description: The number of historical events that will be kept Using default value of: 200
WARN: Param not in traffic_ops: health.polling.interval description: The polling frequency for getting the states from caches Using default value of: 5000
WARN: Param not in traffic_ops: health.startupMinCycles description: The number of query cycles that must be completed before this Traffic Monitor will start reporting Using default value of: 2
WARN: Param not in traffic_ops: health.timepad description: A delay between each separate cache query Using default value of: 10
WARN: Param not in traffic_ops: peers.polling.interval description: Polling frequency for getting states from peer monitors Using default value of: 5000
WARN: Param not in traffic_ops: peers.polling.url description: The url for current, unfiltered states from peer monitors Using default value of: http://${hostname}/publish/CrStates?raw
WARN: Param not in traffic_ops: peers.threadPool description: The number of threads given to the pool for querying peers Using default value of: 1
WARN: Param not in traffic_ops: tm.auth.url description: The url for the authentication form Using default value of: https://${tmHostname}/login
WARN: Param not in traffic_ops: tm.crConfig.json.polling.url description: Url for the cr-config (json) Using default value of: https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json
WARN: Param not in traffic_ops: tm.healthParams.polling.url description: The url for the heath params (json) Using default value of: https://${tmHostname}/health/${cdnName}
WARN: Param not in traffic_ops: tm.polling.interval description: The polling frequency for getting updates from TM Using default value of: 10000
DEBUG: allow.config.edit needed in config, but does not exist in config on disk.
DEBUG: cdnName value on disk () does not match value needed in config (kabletown_cdn).
DEBUG: default.accessControlAllowOrigin needed in config, but does not exist in config on disk.
DEBUG: default.connection.timeout needed in config, but does not exist in config on disk.
DEBUG: hack.forceSystemExit needed in config, but does not exist in config on disk.
DEBUG: hack.peerOptimistic needed in config, but does not exist in config on disk.
DEBUG: hack.publishDsStates needed in config, but does not exist in config on disk.
DEBUG: health.ds.interval needed in config, but does not exist in config on disk.
DEBUG: health.ds.leniency needed in config, but does not exist in config on disk.
DEBUG: health.startupMinCycles needed in config, but does not exist in config on disk.
DEBUG: health.timepad value on disk (20) does not match value needed in config (10).
DEBUG: peers.polling.interval needed in config, but does not exist in config on disk.
DEBUG: peers.threadPool needed in config, but does not exist in config on disk.
DEBUG: tm.auth.password value on disk () does not match value needed in config (kl0tevax).
DEBUG: tm.auth.username value on disk () does not match value needed in config (admin).
DEBUG: tm.hostname value on disk () does not match value needed in config (traffic-ops.cdn.kabletown.net).
DEBUG: Proposed traffic_monitor_config:
{
"traffic_monitor_config":{
"default.accessControlAllowOrigin":"*",
"health.startupMinCycles":"2",
"tm.auth.password":"kl0tevax",
"tm.auth.url":"https://${tmHostname}/login",
"tm.healthParams.polling.url":"https://${tmHostname}/health/${cdnName}",
"allow.config.edit":"false",
"tm.crConfig.json.polling.url":"https://${tmHostname}/CRConfig-Snapshots/${cdnName}/CRConfig.json",
"tm.auth.username":"admin",
"peers.polling.url":"http://${hostname}/publish/CrStates?raw",
"health.timepad":"10",
"hack.publishDsStates":"true",
"default.connection.timeout":"2000",
"health.ds.interval":"1000",
"peers.polling.interval":"5000",
"hack.forceSystemExit":"false",
"health.ds.leniency":"30000",
"cdnName":"kabletown_cdn",
"peers.threadPool":"1",
"tm.polling.interval":"10000",
"health.polling.interval":"5000",
"health.event-count":"200",
"hack.peerOptimistic":"true",
"tm.hostname":"traffic-ops.cdn.kabletown.net"
}
}
----------------------------------------------
----OK to write this config to disk? (Y/n) [n]y
----------------------------------------------
----------------------------------------------
----OK to write this config to disk? (Y/n) [n]Y
----------------------------------------------
DEBUG: Writing /opt/traffic_monitor/conf/traffic_monitor_config.js
traffic_mon #
5. Start Tomcat: ``sudo service tomcat start`` ::
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH:/opt/tomcat/bin/bootstrap.jar
Using CATALINA_PID:/var/run/tomcat/tomcat.pid
Starting tomcat [ OK ]
6. Verify Traffic Monitor is running by pointing your browser to port 80 on the Traffic Monitor host.
Configuring Traffic Monitor
===========================
Configuration Overview
----------------------
Traffic Monitor is configured using its JSON configuration file, ``traffic_monitor_config.js``. Specify the URL, username, password, and CDN name for the instance of Traffic Ops for which this Traffic Monitor is a member, and start the software. Once started with the correct configuration, Traffic Monitor downloads its configuration from Traffic Ops and begins polling caches. Once a configurable number of polling cycles completes, health protocol state is available via RESTful JSON endpoints.
Troubleshooting and log files
=============================
Traffic Monitor log files are in ``/opt/traffic_monitor/var/log/``, and tomcat log files are in ``/opt/tomcat/logs/``.