Notes

Creating a new user and group

To create a non-interactive user and group:

groupadd kx-refinery
useradd -m -g kx-refinery -s /bin/false kx-refinery

systemd drop-in unit example

An example drop-in unit for the Monitoring daemon with a customized QHOME environment variable, user and group and CPU affinity (equivalent of taskset):

[Service]
Environment="QHOME=/a/different/q/home/path"

User=other-user
Group=other-group

CPUAffinity=0

This file should be written to

/etc/systemd/system/kx-refinery-monitoring-daemon.service.d/10-client-settings.conf

The default service file defines both QHOME and QLIC environment variables. If the kdb+ license is in $QHOME, ensure that $QLIC is updated to match $QHOME.

Running Monitoring daemon in multi-server mode

This method of running the Monitoring daemon is not recommended and not supported by KX.

The Monitoring daemon can be configured to run as a single process and connect to all processes in the Refinery application regardless of which server the processes live on. To enable, update .mon.cfg.monitorLocalhostProcessesOnly to false.

Only monitor some workflows

If there are a number of workflows in the Refinery installation that are never run but cannot be removed, you can modify the Monitoring daemon configuration to only monitor processes within a defined set of workflows:

/ Only monitor 2 workflows
.mon.cfg.onlyMonitorProcessesInWorkflows:
    `DAAS_ENTRYPOINT_0_a`DAAS_STACK_emea_launch_tr_marketData_eq_0_a

Docker configuration for systemd support

Red Hat’s podman is better suited to running containers with systemd support.

If running the Monitoring daemon within systemd, the container must be explicitly configured to support systemd.

Dockerfile:

FROM            centos:7
ENV             container docker
STOPSIGNAL      SIGRTMIN+3

CMD             [ "/sbin/init" ]

Run command (interactive):

docker run -it --tmpfs /tmp --tmpfs /run -v /sys/fs/cgroup:/sys/fs/cgroup:ro *image-name*

Running systemd in a non-privileged container