7. Service Management

Document ID:

Revision:

1.2

Last modification:

November 11, 2025

Status:

Released

Repository:

https://gitlab.eso.org/cii/srv/cii-srv/

File:

services.rst

Project:

ELT CII

Owner:

Marcus Schilling

Document History

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:

  1. Run postinstall at least once to choose a cii-role (as described above)

  2. Edit the playbook file /etc/cii/postinstall-knownrole.yaml (see example below)

  3. 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