CONFLUENT PLATFORM
You can use Confluent Platform systemd service unit files to configure automatic startup and monitoring of services during system boot. These files are analogous to init scripts or startup scripts and they provide a standardized method for automatically starting Confluent Platform server components in the correct order on startup.
Tip
The systemd service unit files are optimized for staging and production deployments on Linux-based systems.
The systemd service unit files are included in the RPM and Debian packages for the following Confluent Platform components:
control-center
kafka
kafka-connect
kafka-rest
ksql
schema-registry
zookeeper
Each component runs under its own user and a common confluent group that are set up during package installation. This configuration ensures proper security separation between components that are running on the same system. The usernames are prefixed with cp- followed by the component name. For example, cp-kafka and cp-schema-registry.
confluent
cp-
cp-kafka
cp-schema-registry
For components with persistent storage, such as Kafka and Confluent Control Center, the default component configuration file points to component-specific data directories /var/lib/<component>. For example, Kafka points to /var/lib/kafka and ZooKeeper points to /var/lib/zookeeper.
/var/lib/<component>
/var/lib/kafka
/var/lib/zookeeper
Note
This is an enhancement from previous Confluent Platform versions (where the default data directories were non-persistent (/tmp) to cater to staging and production deployments.
/tmp
During installation, a component service is not enabled for automatic start on boot by default. To enable startup on boot, but not immediately, run this command.
sudo systemctl enable confluent-<component>
For example, you can enable the Confluent REST Proxy with the command:
sudo systemctl enable confluent-kafka-rest
To start the service now, run this command:
sudo systemctl start confluent-<component>
This command will return immediately, although the service has not been started. The actual starting of the service is performed in the background by the systemd daemon.
To check the status of a service, run this command:
systemctl status confluent-<component>
Look for the Active: line, which should say active.
Active:
active
To stop a service, run this command:
sudo systemctl stop confluent-<component>
To disable a service to prevent it from being automatically started on boot, run this command:
sudo systemctl disable confluent-<component>
Log files are located in component-specific directories /var/log/confluent/. For example, Schema Registry logs are located in /var/log/confluent/schema-registry.
/var/log/confluent/
/var/log/confluent/schema-registry
The standard output of services is written to the log journal of a service. You can read the log journal with this command:
sudo journalctl -u confluent-<component>
To follow the log in real-time, run this command:
sudo journalctl -f -u confluent-<component>
To make changes to the service unit configuration settings, you should append configuration settings that overwrite previous defaults, rather than change existing configuration lines. This assures that the base service unit files can be upgraded cleanly.
The systemd component configuration settings are minimal and only control how the component is started, run, and stopped. The component configuration is managed through its existing /etc/<component>/<component>.properties configuration file, for example /etc/kafka/server.properties for the Kafka broker.
/etc/<component>/<component>.properties
/etc/kafka/server.properties
To modify the configuration settings for a service using the systemd builtin configuration editor, follow these steps:
View the current systemd component configuration:
systemctl cat confluent-<component>
Run the edit command:
sudo systemctl edit confluent-<component>
Optional: Inspect the result.
Reload systemd configuration and restart the component.
sudo systemctl reload sudo systemctl restart confluent-<component>
To reconfigure the Confluent Platform component, refer to the component documentation and its configuration file. The configuration files are located in <path-to-confluent>/etc/<component>/<component>.properties. After reconfiguring the component, restart it with the following command to have the changes take affect:
<path-to-confluent>/etc/<component>/<component>.properties
sudo systemctl restart confluent-<component>