blob: 1e0c797348706acca852a583d139cd498e4d2a46 [file] [log] [blame]
..
..
.. 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
******************************
.. _rl-tm-java:
* These instructions are for the Java Traffic Monitor, for the Golang beta, see :ref:`rl-tm-golang`.
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
#. Add the Traffic Monitor server into Traffic Ops using 'Servers' -> 'Add Server'. Set the 'Type' field to 'RASCAL'.
#. Make sure the FQDN of the Traffic Monitor is resolvable in DNS.
#. Get the Traffic Monitor RPM.
Sample command: ::
wget http://traffic-control-cdn.net/downloads/1.7.0/RELEASE-1.7.0/traffic_monitor-1.7.0-3908.5b77f60f.el6.x86_64.rpm
#. Install Traffic Monitor and Perl modules: ::
sudo yum -y install traffic_monitor-*.rpm perl-JSON perl-WWW-Curl
#. Take the config from Traffic Ops: ::
sudo /opt/traffic_monitor/bin/traffic_monitor_config.pl https://<traffic-ops-URL> <traffic-ops-user>:<traffic-ops-password> prompt
Sample session: ::
traffic_mon # /opt/traffic_monitor/bin/traffic_monitor_config.pl https://traffic-ops.cdn.kabletown.net admin:kl0tevax 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 #
#. Update the 'allow_ip' and 'allow_ip6' parameters in the profiles of all caches defined in traffic ops, both edge and mid,
with the address of the traffic monitor being installed, so that the traffic servers will allow this Traffic Monitor
to access the astats plugin.
For details see :ref:`rl-param-prof` in the *Configuring Traffic Ops* section.
#. 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 ]
#. Configure tomcat to start automatically: ``sudo chkconfig tomcat on``
#. Verify Traffic Monitor is running by pointing your browser to port 80 on the Traffic Monitor host:
* The 'Cache States' tab should display all Mid and Edge caches configured in Traffic Ops.
* The 'DeliveryService States' tab should display all delivery services configured in Traffic Ops.
#. In Traffic Ops servers table, click 'Edit' for this server, then click 'Online'.
Configuring Traffic Monitor
===========================
Configuration Overview
----------------------
Traffic Monitor is configured using its JSON configuration file, ``/opt/traffic_monitor/conf/traffic_monitor_config.js``.
This file is created by ``traffic_monitor_config.pl`` script, and among other things, it contains the Traffic Ops URL and the user:password
specified during the invocation of that script.
When started, Traffic Monitor uses this basic configuration to 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/``.