Verifying a Replicator Configuration¶
The Replicator verifier is a command line tool for identifying issues with a Replicator configuration and recommending remedial actions. This tool accepts a connector or an executable configuration and runs a number of checks against the clusters referenced. This can be useful for:
- Preparing new deployments - the verifier tool provides confidence in a new Replicator flow configuration without actually deploying the Replicator
- Diagnosing Replicator issues in existing flows - the verifier tool can quickly identify the area of the issue without redeploying the flow
Tip
The Replicator verifier is available as part of a Confluent Platform installation, included in the $CONFLUENT_HOME/bin
directory.
Once you have Confluent Platform installed and up-and-running, type replicator-verifier at the command line to get a read-out on the command and its options.
Running the verifier¶
Run the Replicator verifier using the configuration from three sources:
Note
Replicator verifier should be run from the same host that will run Replicator
From Replicator executable:
replicator-verifier \ --consumer.config ./consumer.properties \ --producer.config ./producer.properties \ --replication.config ./replication.properties
From a connector json:
replicator-verifier \ --replicator-json ./replicator.json
From a deployed connector:
replicator-verifier \ --connect-url localhost:8083 \ --connector-name replicator
On completion the Replicator verifier will produce a summary of checks performed and their results:
[2020-02-28 12:39:02,252] INFO All checks completed. (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,252] INFO Source cluster describe configs check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Connectivity check Destination : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO topic.whitelist/topic.blacklist check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO License manager check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Consumer offset commit check source : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Consumer offset commit check destination : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Destination topic ACL check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Topic regex check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Source topic ACL check : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Connectivity check Source : PASSED (io.confluent.connect.replicator.Verifier)
[2020-02-28 12:39:02,253] INFO Verifier run complete. (io.confluent.connect.replicator.Verifier)
Any failed checks are accompanied by guidance explaining the relevant parameters to resolve the issue:
[2020-02-28 12:41:46,846] INFO License manager check : FAILED
By default, Replicator will assume the license is stored in the _confluent-command topic on the destination cluster.
Please ensure that the properties prefixed "dest.kafka." refer to your license cluster, topic and principal.
Alternatively, these can be overridden using the "confluent.topic." prefix (e.g. confluent.topic.bootstrap.servers).
(io.confluent.connect.replicator.Verifier)
Important
Replicator verifier does not currently support monitoring interceptors. Configurations like *.interceptor.classes should be removed from Replicator configurations before running the verifier.
Command Line Parameters of Replicator Verifier¶
The available command line parameters are:
Command line parameter | Value | Description |
---|---|---|
--connect-url |
<Connect worker url> | URL for the Connect instance running connectors |
--connector-name |
<Replicator Connector name> | Name for the replicator connector |
--replicator-json |
<replicator.json> | JSON file containing configuration for replicator running as a connector |
--producer.config |
<producer.properties> | Producer config file for replicator running in executable mode |
--consumer.config |
<consumer.properties> | Consumer config file for replicator running in executable mode |
--replication.config |
<replication.properties> | Replicator config file for replicator running in executable mode |
--destination-test-topic |
<topic name> | Name of destination topic, which is an override for the randomized topic name used for dry run checks at the destination cluster (this topic must already exist) |
Checks performed¶
Replicator verifier performs the following checks to determine that the configuration provided is valid.
Non-intrusive Checks¶
- Source cluster connectivity check - Confirms Replicator can connect to the source cluster.
- Destination cluster connectivity check - Confirms Replicator can connect to the destination cluster.
- Topic whitelist/blacklist check - Confirms the list of topics to be whitelisted/blacklisted are valid and not conflicting.
- Topic regex check - Confirms any regex topic matching pattern is valid and displays they set of topics matched.
- License check - Confirms that a valid license to use Replicator is present.
- Source topic read checks - Confirms that Replicator can read the configured source topics.
- Source topic describe check - Confirms that Replicator can describe the configured source topics.
- Consumer timestamps test - Confirms Replicator can read/write timestamps to the internal timestamps topic for offset translation.
Intrusive Checks¶
Note
Intrusive checks will temporarily change the state of the cluster they are performed on. These changes take the form of topic creation/manipulation and consumer offset commits. Replicator verifier will prompt for approval before running these checks and as such should be run in interactive mode.
- Destination topic check - Confirms that Replicator can perform the following required actions on a sample destination topic:
- Create
- Describe
- Describe Configs
- Alter
- Produce
- Source cluster offset commit - Confirms that Replicator can commit consumer offsets to the source cluster
- Destination cluster offset commit - Confirms that Replicator can commit consumer offsets to the destination cluster