% tc-health-client(1) tc-health-client 6.2.0 | ATC tc-health-client Manual % % 2022-03-09
tc-health-client - Traffic Control Health Client service
tc-health-client [-f config-file] -h [-l logging-directory] -v
The tc-health-client command is used to manage Apache Traffic Server parents on a host running Apache Traffic Server. The command should be started by systemd and run as a service. On startup, the command reads its default configuration file /etc/trafficcontrol/tc-health-client.json. After reading the config file it polls the configured Traffic OPs to obtain a list of Traffic Monitors for the configured CDN and begins polling the available Traffic Monitors for Traffic Server cache statuses.
On each polling cycle, defined in the configuration file, the Traffic Server parent statuses are updated from the Traffic Server parent.config, strategies.yaml files, and the Traffic Server HostStatus subsystem. If Traffic Monitor has determined that a parent utilized by the Traffic Server instance is un-healthy or otherwise unavailable, the tc-health-client will utilize the Traffic Server traffic_ctl tool to mark down the parent host. If a parent host is marked down and Traffic Monitor has determined that the marked down host is now available, the client will then utilize the Traffic Server tool to mark the host back up.
Also on each polling cycle the configuration file, tc-health-client.json is checked and a new config is reloaded if the file has changed since the last polling cycle. The Traffic Monitors list is refreshed from Traffic Ops.
If errors are encountered while polling a Traffic Monitor, the error is logged and the Traffic Monitors list is refreshed from Traffic Ops.
Requires Apache TrafficServer 8.1.0 or later.
-f, --config-file=config-file
Specify the config file to use.
Defaults to /etc/trafficcontro-health-client/tc-health-client.json
-h, --help
Prints command line usage and exits
-l, --logging-dir=logging-directory
Specify the directory where log files are kept. The default location is /var/log/trafficcontrol/
-v, --verbose
Logging verbosity. Errors are logged to the default log file /var/log/trafficcontrol/tc-health-client.log To add Warnings, use -v. To add Warnings and Informational logging, use -vv. Finally you may add Debug logging using -vvv.
The configuration file is a JSON file and is looked for by default at /etc/trafficcontrol/tc-health-client.json
Sample configuarion file:
{ "cdn-name": "over-the-top", "enable-active-markdowns": false, "reason-code": "active", "to-credential-file": "/etc/credentials", "to-url": "https://tp.cdn.com:443", "to-request-timeout-seconds": "5s", "tm-poll-interval-seconds": "60s", "tm-proxy-url", "http://sample-http-proxy.cdn.net:80", "to-login-dispersion-factor": 90, "unavailable-poll-threshold": 2, "markup-poll-threshold": 1, "trafficserver-config-dir": "/opt/trafficserver/etc/trafficserver", "trafficserver-bin-dir": "/opt/trafficserver/bin", "poll-state-json-log": "/var/log/trafficcontrol/poll-state.json", "enable-poll-state-log": false }
The name of the CDN that the Traffic Server host is a member of.
When enabled, the client will actively mark down Traffic Server parents. When disabled, the client will only log that it would have marked down Traffic Server parents. Down Parents are always marked UP if Traffic Monitor reports them available irregardless of this setting.
Use the reason code active or local when marking down Traffic Server hosts in the Traffic Server HostStatus subsystem.
The file where Traffic Ops credentials are read. The file should define the following variables:
The Traffic Ops URL
The time in seconds to wait for a query response from both Traffic Ops and the Traffic Monitors
The polling interval in seconds used to update Traffic Server parent status.
If not nil, all Traffic Monitor requests will be proxied through this proxy endpoint. This is useful when there are large numbers of caches polling a Traffic Monitor and you wish to funnel queries through a caching proxy server to limit direct direct connections to Traffic Monitor.
This is used to calculate TrafficOps login dispersion. It is related to the tm-poll-interval-seconds. The login dispersion is computed by multiplying tm-poll-interval-seconds by the to-login-dispersion-factor. For example if to-login-dispersion-factor is 90 and the tm-poll-interval-seconds is 10s the the dispersion modulo window is 900s.
This controls when an unhealthy parent is marked down. An unhealthy parent will be marked down when the number of consecutive polls reaches this threshold with the parent reported as unhealthy. The default threshold is 2.
This controls when a healthy parent is marked up. An healthy parent will be marked up when the number of consecutive polls reaches this threshold with the parent reported as healthy. The default threshold is 1.
The location on the host where Traffic Server configuration files are located.
The location on the host where Traffic Server traffic_ctl tool may be found.
The full path to the polling state file which contains information about the current status of parents and the health client configuration. Polling state data is written to this file after each polling cycle when enabled, see enable-poll-state-log
Enable writing the Polling state to the poll-state-json-log after eache polling cycle. Default false, disabled