Install the agent and provision Amplify Central access as described in https://github.com/Axway/agents-webmethods/blob/main/README.md.
- Amplify organization id: the organization identifier. Refer to Platform home > Organization
- Amplify Central environment name: the name of the environment the agent will report APIs to.
- Service account client id: the service account client ID used by the agent to communicate with Amplify platform.
- Public/Private key pem files: the public and private key associated to the service account the agent is using to communicate with Amplify platform.
As well as access to Amplify Central it is assumed you have access to the Webmethods APIM. You need:
- Credentials with access to the organization the agents will attach to.
- Details of access for Webmethods API gateway
The agents read their configuration from a YAML files or optionally from an environment variables file. Within the release package, you will find the agent binary as well as the agent yaml configuration file. To set up your agent configuration, replace the values in <valueToBeReplaced>
with the correct name that reflect your environment (organizationID, environment, public/private key file names and clientID).
# starting the agent by providing the path of the configuration file
./webmethods_traceability_agent --pathConfig <path to webmethods_traceability_agent.yaml>
# If binary and yaml files are in the same folder, you can start the agent using:
./webmethods_traceability_agent
- The following are all of the Environment variables that can be set, they will override the defaults
Variable Name | YAML Path | Description | Location / Default |
---|---|---|---|
CENTRAL_AGENTNAME | central.agentname | Agent name to visualize the agent status in Amplify | |
CENTRAL_AUTH_CLIENTID | central.auth.clientId | The DOSA ID of the AMPLIFY Central Service Account created | AMPLIFY Central -> Access -> Service Accounts |
CENTRAL_AUTH_KEYPASSWORD | central.auth.keyPassword | The password for the private key, if applicable | |
CENTRAL_AUTH_PRIVATEKEY | central.auth.privateKey | The private key file path from the commands above | /keys/private_key.pem |
CENTRAL_AUTH_PUBLICKEY | central.auth.publicKey | The public key file path from the commands above | /keys/public_key.pem |
CENTRAL_AUTH_REALM | central.auth.realm | The Realm used to authenticate for AMPLIFY Central | Broker |
CENTRAL_AUTH_URL | central.auth.url | The URL used to authenticate for AMPLIFY Central | https://login.axway.com/auth |
CENTRAL_DEPLOYMENT | central.deployment | The AMPLIFY Central deployment environment (beano, dev, prod, preprod) | prod |
CENTRAL_ENVIRONMENT | central.environment | The Environment Name for the AMPLIFY Central Environment | See Instructions below |
CENTRAL_ORGANIZATIONID | central.platformURL | The Organization ID from AMPLIFY Central | Platform -> Click User -> Organization |
CENTRAL_SSL_CIPHERSUITES | central.ssl.cipherSuites | An array of strings. It is a list of supported cipher suites for TLS versions up to TLS 1.2. If CipherSuites is nil, a default list of secure cipher suites is used, with a preference order based on hardware performance. See below for currently supported cipher suites. | See below for default cipher suite setting |
CENTRAL_SSL_INSECURESKIPVERIFY | central.ssl.insecureSkipVerify | InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name. If InsecureSkipVerify is true, TLS accepts any certificate presented by the server and any host name in that certificate. In this mode, TLS is susceptible to man-in-the-middle attacks. | Internally defaulted to false |
CENTRAL_SSL_MAXVERSION | central.ssl.maxVersion | String value for the maximum SSL/TLS version that is acceptable. If empty, then the maximum version supported by this package is used, which is currently TLS 1.3. Allowed values are: TLS1.0, TLS1.1, TLS1.2, TLS1.3 | Internally, this value defaults to empty |
CENTRAL_SSL_MINVERSION | central.ssl.minVersion | String value for the minimum SSL/TLS version that is acceptable. If zero, empty TLS 1.0 is taken as the minimum. Allowed values are: TLS1.0, TLS1.1, TLS1.2, TLS1.3 | Internally, the value defaults toTLS1.2 |
CENTRAL_SSL_NEXTPROTOS | central.ssl.nextProtos | An array of strings. It is a list of supported application level protocols, in order of preference, based on the ALPN protocol list. Allowed values are: h2, htp/1.0, http/1.1, h2c | Internally empty. Default negotiation. |
CENTRAL_URL | central.URL | The URL to the AMPLIFY Central instance being used for this traceability agent | https://apicentral.axway.com |
LOG_FORMAT | log.format | The format to print log messages (json, line, package) | json |
LOG_LEVEL | log.level | The log level for output messages (debug, info, warn, error) | info |
LOG_OUTPUT | log.output | The output for the log lines (stdout, file, both) | stdout |
LOG_PATH | log.path | The path (relative or absolute) to save logs files, if output type file or both | logs |
STATUS_HEALTHCHECKINTERVAL | sstatus.healthCheckInterval | Time in seconds between running periodic health checker (binary agents only). Allowed values are from 30 to 300 seconds. | 30s |
STATUS_HEALTHCHECKPERIOD | status.healthCheckPeriod | Time in minutes allotted for services to be ready before exiting the agent. Allowed values are from 1 to 5 minutes. | 3m |
STATUS_PORT | status.port | The port that the healthcheck endpoint will listen on | 8989 |
TRACEABILITY_COMPRESSIONLEVEL | output.traceability.compression_level | The gzip compression level for the output event. Setting this to 0 will disable the compression | Defaults to 3 |
TRACEABILITY_HOST | output.traceability.host | Host name and port of the ingestion service to forward the transaction log entries, | ingestion-lumberjack.datasearch.axway.com:453 |
TRACEABILITY_PROTOCOL | output.traceability.protocol | Protocol(https or tcp) to be used for communicating with ingestion service | tcp |
TRACEABILITY_PROXYURL | output.traceability.proxy_url | The url for the proxy for ingestion service (e.g. socks5://hostname:port). If empty, no proxy is defined. | Internally, this value defaults to empty |
TRACEABILITY_PROXYURL | output.traceability.proxy_url | The url for the proxy for ingestion service (e.g. socks5://hostname:port). If empty, no proxy is defined. | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_PATH_SHOW | output.traceability.redaction.path.show | The redaction environment variable to set a Regex expression to show Paths | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_QUERYARGUMENT_SHOW | output.traceability.redaction.queryargument.show | The redaction environment variable to set a Regex expression to show Query Params | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_QUERYARGUMENT_SANITIZE | output.traceability.redaction.queryargument.sanitize | The redaction environment variable to set a Regex expression to sanitize Query Params | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_REQUESTHEADER_SHOW | output.traceability.redaction.requestheader.show | The redaction environment variable to set a Regex expression to show Request headers | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_REQUESTHEADER_SANITIZE | output.traceability.redaction.requestheader.sanitize | The redaction environment variable to set a Regex expression to sanitize Request headers | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_RESPONSEHEADER_SHOW | output.traceability.redaction.response.show | The redaction environment variable to set a Regex expression to show Response headers | Internally, this value defaults to empty |
TRACEABILITY_REDACTION_RESPONSEHEADER_SANITIZE | output.traceability.redaction.responseheader.sanitize | The redaction environment variable to set a Regex expression to sanitize Response headers | Internally, this value defaults to empty |
TODO: Add config details for Webmethods traceability agent
For the redaction based environment variables, please refer to Setting up Redaction
The allowed cipher suites string values are allowed: ECDHE-ECDSA-AES-128-CBC-SHA, ECDHE-ECDSA-AES-128-CBC-SHA256, ECDHE-ECDSA-AES-128-GCM-SHA256, ECDHE-ECDSA-AES-256-CBC-SHA, ECDHE-ECDSA-AES-256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-ECDSA-RC4-128-SHA, ECDHE-RSA-3DES-CBC3-SHA, ECDHE-RSA-AES-128-CBC-SHA, ECDHE-RSA-AES-128-CBC-SHA256, ECDHE-RSA-AES-128-GCM-SHA256, ECDHE-RSA-AES-256-CBC-SHA, ECDHE-RSA-AES-256-GCM-SHA384, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-RSA-RC4-128-SHA, RSA-RC4-128-SHA, RSA-3DES-CBC3-SHA, RSA-AES-128-CBC-SHA, RSA-AES-128-CBC-SHA256, RSA-AES-128-GCM-SHA256, RSA-AES-256-CBC-SHA, RSA-AES-256-GCM-SHA384, TLS-AES-128-GCM-SHA256, TLS-AES-256-GCM-SHA384, TLS-CHACHA20-POLY1305-SHA256
The list of default cipher suites is: ECDHE-ECDSA-AES-256-GCM-SHA384, ECDHE-RSA-AES-256-GCM-SHA384, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES-128-GCM-SHA256, ECDHE-RSA-AES-128-GCM-SHA256, ECDHE-ECDSA-AES-128-CBC-SHA256, ECDHE-RSA-AES-128-CBC-SHA256
docker build -t webmethods-traceability -f Dockerfile.traceability .