7. Service Management
Document ID: |
|
Revision: |
1.2 |
Last modification: |
November 11, 2025 |
Status: |
Released |
Repository: |
|
File: |
services.rst |
Project: |
ELT CII |
Owner: |
Marcus Schilling |
Revision |
Date |
Changed/ reviewed |
Section(s) |
Modification |
|---|---|---|---|---|
1.0 |
04.10.2021 |
mschilli |
All |
Created. |
1.1 |
29.02.2024 |
mschilli |
All |
CII v4: updated, Public doc |
1.2 |
11.11.2025 |
mschilli |
3 |
Ansible-based post-install |
Confidentiality
This document is classified as Public.
Scope
This document is a user manual for the service management of the ELT Core Integration Infrastructure software.
Audience
This document is aimed at Users and Maintainers of the ELT Core Integration Infrastructure software.
7.1. Overview
This document is a user manual for CII Services management tooling.
7.2. Introduction
This document describes the tools available for the management of CII Services
cii-postinstall - for setting up CII services on a host
cii-services - for starting / stopping / monitoring of the CII Services
7.3. cii-postinstall
CII-Postinstall is a tool for administrators or end-users self-managing a CII installation.
You run CII-Postinstall on a freshly installed DevEnv machine, or after an upgrade of CII. You choose a cii-role for the host, and the utility will reconfigure your host accordingly. For (almost) all of its operations, root privileges are needed.
Usage:
$ cii-postinstall <cii-role>
Run the command without arguments, or with “-h” to see its help.
7.3.1. Roles
The cii-role “ownserver” configures the services for isolated, single-host development/testing:
$ cii-postinstall ownserver
The cii-role “groupserver” is similar to ownserver, but does a bit more. It configures CII with more resources and makes the services/databases accessible from other hosts:
$ cii-postinstall groupserver
The cii-role “groupclient” configures the host to use the services provided by a groupserver. For example, assuming host “otherhost” has been post-installed with the cii-role “groupserver”, then, to let applications on your host use the CII Services on that groupserver via the groupserver’s non-deterministic network interface (or whichever server-side network interface is best for your purpose), you do:
$ cii-postinstall groupclient otherhost-cnd
Switching Roles?
It is possible to run the utility again specifying a different role, but your mileage will vary: some role-switches will work, others won’t. The tool will warn you if you ask for a role-switch.
Redo post-install
It is possible to re-apply/repair/update the already selected cii-role, by doing:
$ cii-postinstall knownrole
Applying known configuration for this host
Ansible detailed output goes to: /tmp/cii-postinstall-ansible-20251111.log
Running ansible (this may take several minutes) ...
Ansible detailed exit code = 0
Ansible exit code indicates a successful execution!
Done.
7.3.2. Customisations
The standard set-ups provided by CII-Postinstall are customisable to some extent.
Under the hood, a cii-role is a collection of ansible-roles that are declared in an ansible playbook stored on your host. The procedure for tweaking your set-up is:
Run postinstall at least once to choose a cii-role (as described above)
Edit the playbook file /etc/cii/postinstall-knownrole.yaml (see example below)
Re-apply the cii-role with: cii-postinstall knownrole
Example:
- role: log
vars:
log_rotate_keep: 10
Useful parameters to change:
ansible role |
var name |
example value |
purpose/meaning |
|---|---|---|---|
log |
log_rotate_by_day |
true |
Rotate /var/log/elt/elt.log at midnight |
log |
log_rotate_by_maxsize |
500M |
Rotate /var/log/elt/elt.log when too big |
log |
log_rotate_keep |
10 |
How many old elt.log files to keep (will still be visible in ciiLogViewer) |
log |
log_rotate_attic |
4.5G |
When keep exceeded, archive the files up to the given capacity, then delete. (archive not visible in ciiLogViewer) |
Examples of expert parameters (outside the scope of this manual):
ansible role |
var name |
example value |
purpose/meaning |
|---|---|---|---|
log |
log_collector _ forward_further |
1.1.1.1 |
Tell groupserver to relay incoming logs (i.e. chaining of log-collectors) |
oldb |
calc_nodes |
… |
(Configuration for config-server) |
oldb |
datapoint_services |
… |
(Configuration for config-server) |
oldb |
pubsub_services |
… |
(Configuration for config-server) |
oldb |
ext_services |
… |
(Configuration for config-server) |
Show customisations
After customisation, to list the differences from the standard set-up, do:
$ cii-postinstall info
7.4. cii-services
The cii-services utility lets you start/stop/monitor the CII services. For some operations, it requires root-privileges -> unless you are running it with root-privileges, it will show a password prompt when needed.
Usage:
$ cii-services
CII Services Tool (20240220)
Available subcommands: info logs start stop restart enable disable
7.4.1. Monitoring/Status Check
info install
A deployment-centric view showing which services are running on the current host:
$ cii-services info install
CII Services Tool (20240220)
# install .................. .................
[oldb] config-client-ini |install:
[oldb] cii-oldb-default-redis |active:no |boot:n |install:
[oldb] cii-oldb-calc-daemon |active:no |boot:n |install:
[oldb] cii-oldb-calc-scheduler |active:no |boot:n |install:
[log] rsyslog |active:yes |boot:y |install:/usr/sbin/rsyslogd
[log] systemd-journald |active:yes |boot:y |install:/usr/lib/systemd/systemd-journald
[log] logrotate |active:yes |boot:y |install:/usr/sbin/logrotate
[trace] jaeger-all |active:no |boot:n |install:/usr/local/bin/jaeger-all-in-one
[telem] srv-telemetry |active:no |boot:n |install:
[alarm] cii_ias |active:no |boot:n |install:
[alarm] kafka |active:no |boot:n |install:
[alarm] kafka-zookeeper |active:no |boot:n |install:
[alarm] cii_alarm_mon |active:no |boot:n |install:
info access
A deployment-centric view showing which CII services are being used:
$ cii-services info access
CII Services Tool (20240220)
# discovering ........
# access ...
[oldb] config-redis |access:no |host:localhost |IP:127.0.0.1 |Port:6379
[oldb] redis-server |host: |IP: |Port:0
[oldb] pubsub-server |host: |IP: |Port:0
[oldb] calc-node
[trace] jaeger |access:no |host:localhost |IP:127.0.0.1 |Port:14269
[telem] telem |host:localhost |IP:127.0.0.1 |Port:9115
[alarm] alarm-ias |host:localhost |IP:127.0.0.1
[alarm] alarm-mon |access:n/a |host:localhost |IP:127.0.0.1 |Port:5602
info stats
Details about the usage of the services:
$ cii-services info stats
CII Services Tool (20240220)
# stats ....
config-redis |total_connections_received:81 |rejected_connections:0
redis-server |total_connections_received:82 |rejected_connections:0
jaeger
telem
info function
A feature-centric view, that tells you which features you have available:
$ cii-services info function
CII Services Tool (20240220)
# function ...
Log |functional:yes
OLDB DP |functional:yes
OLDB CE |functional:yes
IntCfg |functional:yes
logs
Shows journal logs of CII Services. Privileged Operation. Run the command as root:
$ cii-services logs
CII Services Tool (20240220)
Service Logs ........
[cii-oldb-default-redis]
-- No entries --
[rsyslog]
Jan 29 20:20:23 eltmal28 rsyslogd[946]: imjournal: journal files changed, reloading... [v8.2306.0-1.fc38 try https://www.rsyslog.com/e/0 ]
Jan 29 20:20:24 eltmal28 rsyslogd[946]: imjournal: journal files changed, reloading... [v8.2306.0-1.fc38 try https://www.rsyslog.com/e/0 ]
Feb 04 00:00:23 eltmal28 systemd[1]: rsyslog.service: Sent signal SIGHUP to main process 946 (rsyslogd) on client request.
7.4.2. Start / Stop
Privileged Operations. You will be asked for the root password, unless polkit/sudo has been set up.
$ cii-services start
CII Services Tool (20250613)
Possible args: one or more groups:
oldb(cii-oldb-default-redis,cii-oldb-calc-daemon,cii-oldb-calc-scheduler),
log(rsyslog,systemd-journald,logrotate),
trace(jaeger-all),
all(logrotate,rsyslog,systemd-journald,jaeger-all,cii-oldb-default-redis,cii-oldb-calc-daemon,cii-oldb-calc-scheduler),
or any unit names from the all group
$ cii-services start all
CII Services Tool (20250613)
Password:
$ cii-services stop all
CII Services Tool (20250613)
Password:
7.5. Example
How to read the tool’s output:
$ cii-services info
Section 1 reports some info about the tool itself:
CII Services Tool (20250613)
While the tool is collecting information, it prints progress dots. If an error occurs while collecting information, run the command with “-v” or “-vv”.
Section 2 reports info about the cii-role of the host (see postinstall):
# setup .
[postinst] |role:role_ownserver
Section 3 reports which CII services are installed on your host, whether they are running, and whether they are automatically started at machine boot-up:
# install .................. .................
[oldb] config-client-ini |install:
[oldb] cii-oldb-default-redis |active:no |boot:n |install:/usr/bin/redis-server
[oldb] cii-oldb-calc-daemon |active:no |boot:n |install:/usr/bin/srv-oldb-calculation
[oldb] cii-oldb-calc-scheduler |active:no |boot:n |install:/usr/bin/srv-oldb-scheduler
[log] rsyslog |active:yes |boot:y |install:/usr/sbin/rsyslogd
[log] systemd-journald |active:yes |boot:y |install:/usr/lib/systemd/systemd-journald
[log] logrotate |active:yes |boot:y |install:/usr/sbin/logrotate
[trace] jaeger-all |active:no |boot:n |install:/usr/local/bin/jaeger-all-in-one
[telem] srv-telemetry |active:no |boot:n |install:
[alarm] cii_ias |active:no |boot:n |install:
[alarm] kafka |active:no |boot:n |install:
[alarm] kafka-zookeeper |active:no |boot:n |install:
[alarm] cii_alarm_mon |active:no |boot:n |install:
Several services (not: Telemetry and Alarms) are installed on your host. Only the log services are running on your host. Note the log services are recommended to run always. No other CII services are running on your host. If you plan to use CII services running on another host, this is fine. Otherwise, you need to start the services, see above.
Section 4 reports where applications on your host will find the CII services, and whether the cii-services tool was able to access them (= talk to them). The services may be running on your host (previous section) or on another host:
# access ...
[oldb] config-redis |access:yes |host:ciiconfservicehost |ip: |port:6379
[oldb] redis-server |host: |ip: |port:0
[oldb] pubsub-server |host: |ip: |port:0
[oldb] calc-node
[trace] jaeger |access:no |host:localhost |ip:127.0.0.1 |port:14269
[telem] telem |host:localhost |ip:127.0.0.1 |port:9115
[alarm] alarm-ias |host:localhost |ip:127.0.0.1
[alarm] alarm-mon |access:n/a |host:localhost |ip:127.0.0.1 |port:5602
The empty ip fields tell us that hostname resolution is not configured. This means applications running on your host are not able to locate the CII services. You need to configure your host, see cii-postinstall
Section 5 reports some statistics from the services:
# stats ....
config-redis
redis-server
jaeger
telem
An empty output like this again indicates that the the services are not accessible, but you knew that already.
Sections 6 reports whether the services are working:
# function ....
Log |functional:yes
OLDB DP |functional:no
OLDB CE |functional:no
IntCfg |functional:yes
Explanation:
Log : syslog logging (to /var/log/elt/elt.log)
OLDB DP: datapoint storage
OLDB CE: calculation engine
IntCfg : internal config-storage
Preview: After running post-install and cii-services start, the output will change to something like this:
$ cii-services info
CII Services Tool (20250613)
# setup .
[postinst] |role:role_ownserver
# install .................. .................
[oldb] config-client-ini |install:
[oldb] cii-oldb-default-redis |active:yes |boot:y |install:/usr/bin/redis-server
[oldb] cii-oldb-calc-daemon |active:yes |boot:y |install:/usr/bin/srv-oldb-calculation
[oldb] cii-oldb-calc-scheduler |active:yes |boot:y |install:/usr/bin/srv-oldb-scheduler
[log] rsyslog |active:yes |boot:y |install:/usr/sbin/rsyslogd
[log] systemd-journald |active:yes |boot:y |install:/usr/lib/systemd/systemd-journald
[log] logrotate |active:yes |boot:y |install:/usr/sbin/logrotate
[trace] jaeger-all |active:no |boot:y |install:/usr/local/bin/jaeger-all-in-one
[telem] srv-telemetry |active:no |boot:n |install:
[alarm] cii_ias |active:no |boot:n |install:
[alarm] kafka |active:no |boot:n |install:
[alarm] kafka-zookeeper |active:no |boot:n |install:
[alarm] cii_alarm_mon |active:no |boot:n |install:
# discovering ........
# access ...
[oldb] config-redis |access:yes |host:ciiconfservicehost |ip:127.0.0.1 |port:6379
[oldb] redis-server |access:yes |host:localhost |ip:127.0.0.1 |port:6379
[oldb] pubsub-server |access:yes |host:localhost |ip:127.0.0.1 |port:6379
[oldb] calc-node |access:yes |host:localhost |ip:127.0.0.1 |port:9117
[trace] jaeger |access:no |host:localhost |ip:127.0.0.1 |port:14269
[telem] telem |host:localhost |ip:127.0.0.1 |port:9115
[alarm] alarm-ias |host:localhost |ip:127.0.0.1
[alarm] alarm-mon |access:n/a |host:localhost |ip:127.0.0.1 |port:5602
# stats ....
config-redis |total_connections_received:6 |rejected_connections:0
redis-server |total_connections_received:7 |rejected_connections:0
jaeger
telem
# function ...
Log |functional:yes
OLDB DP |functional:yes
OLDB CE |functional:no
IntCfg |functional:no