Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konfigurieren

Für init.d

Für Systemd

Überprüfen

Für init.d

Für Systemd

Fehlerbehebung

Einführung

In diesem Dokument wird beschrieben, wie Dienstdateien für init.d oder System für die ParStream-Historiendatenbank erstellt werden.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie Linux kennen.

Verwendete Komponenten

Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Konfigurieren

Das Installationspaket für das Edge Fog Processing Module (EFM) enthält keine Servicedateien für init.d oder System out of the box.

Hier finden Sie ein einfaches Beispiel, um eine Servicedatei zu erstellen.

Für init.d

[root@cen7 ~]# cat /etc/init.d/parstream

#!/bin/bash

# parstream init script.

export PARSTREAM_HOME=/opt/cisco/kinetic/parstream/

export LD_LIBRARY_PATH=$PARSTREAM_HOME/lib:$LD_LIBRARY_PATH

PARSTREAM_SERVERNAME="parstream1"

PARSTREAM_USER="EFM"

case "$1" in

'start')

echo "Starting ParStream daemon $PARSTREAM_SERVERNAME as $PARSTREAM_USER"

sleep 2

su -c "cd $PARSTREAM_HOME;$PARSTREAM_HOME/bin/start.sh $PARSTREAM_SERVERNAME" $PARSTREAM_USER

;;

'stop')

echo "Stopping ParStream daemons for user $PARSTREAM_USER"

stopstatus=$(pkill -c -U $PARSTREAM_USER -15 parstream-serv)

echo "$stopstatus processes stopped"

;;

*)

# usage

echo "usage: $0 start|stop"

exit 1

;;

esac

Stellen Sie sicher, dass Sie die Umgebungsvariablen so anpassen, dass sie der Umgebung entsprechen: PARSTREAM_HOME, PARSTREAM_SERVERNAME und PARSTREAM_USER.

Nachdem Sie die Datei erstellt haben, stellen Sie sicher, dass sie als ausführbare Datei markiert ist.

Für Systemd

root@cen7 ~]# cat /etc/systemd/system/parstream.service

[Unit]

Description=ParStream

After=network.target

[Service]

Type=simple

User=EFM

Environment=LD_LIBRARY_PATH=/opt/cisco/kinetic/parstream/lib:$LD_LIBRARY_PATH

WorkingDirectory=/opt/cisco/kinetic/parstream/

ExecStart=/opt/cisco/kinetic/parstream/bin/parstream-server parstream1 --confdir=/opt/cisco/kinetic/parstream/conf/

Restart=on-failure

[Install]

WantedBy=multi-user.target

Stellen Sie sicher, dass Sie die Konfigurationsvariablen so anpassen, dass sie der Umgebung entsprechen: User= und Servername in der ExecStart-Zeile.

Stellen Sie nach der Erstellung der Dienstdatei sicher, dass Sie die Daemon-Dateien im System aktualisieren:

[root@cen7 ~]# systemctl daemon-reload

Überprüfen

In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.

Um zu überprüfen, ob die Skripte/Servicedatei wie erwartet funktioniert, können Sie versuchen, den Dienst zu starten und zu beenden.

Für init.d

[root@cen7 ~]# /etc/init.d/parstream start

Starting ParStream daemon parstream1 as EFM

Server Process ID: 5056

Output is written to: /var/log/parstream/server-5054-20180423-1648.log

[root@cen7 ~]# ps aux |grep 5056

EFM        5056  0.8  0.7 1235292 27200 ?       Sl   16:48   0:00 /opt/cisco/kinetic/parstream//bin/parstream-server parstream1

...

[root@cen7 ~]# /etc/init.d/parstream stop

Stopping ParStream daemons for user EFM

1 processes stopped

Für Systemd

[root@cen7 ~]# systemctl start parstream

[root@cen7 ~]# systemctl status parstream

● parstream.service - ParStream

Loaded: loaded (/etc/systemd/system/parstream.service; disabled; vendor preset: disabled)

Active: active (running) since Mon 2018-04-23 16:49:30 CEST; 3s ago

Main PID: 5186 (parstream-serve)

CGroup: /system.slice/parstream.service

└─5186 /opt/cisco/kinetic/parstream/bin/parstream-server parstream1 --confdir=/opt/cisco/kinetic/parstream/conf/

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30]:unknown-000000:PROT-77086: **** PID:         5186 (host: cen7)

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30]:unknown-000000:PROT-71005: **** config file: "/opt/cisco/kinetic/parstream/conf/parstream.ini"

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30]:unknown-000000:WARNING-77082: Number of maximum file descriptors (1024) is lower than recommended value 98304

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30]:unknown-000000:WARNING-77113: Maximum number of mmap'ed areas (65530) is lower than recommended value 1966080.

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30.273380]:parstream1-164930:PROT-77045: Source Revision: 717e27f507aab73fdc0c3f9d4377ff658726c270

Apr 23 16:49:30 cen7 parstream-server[5186]: Local Changes:

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30.278632]:parstream1-164930:PROT-77018: cluster node config: ClusterNodeConfig(clusterId = 'localCluster', claimLeadershipInitT...geInterval = 0

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30.280474]:parstream1-164930:PROT-77018: channel instance created for accept on port: 23460

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30.281084]:parstream1-164930:PROT-77134: Entering state ClaimLeadershipState, got event InitialEvent

Apr 23 16:49:30 cen7 parstream-server[5186]: [2018-04-23T16:49:30.281243]:parstream1-164930:PROT-77065: Running cluster leader detection (limited until 2018-Apr-23 16:51:30)

Hint: Some lines were ellipsized, use -l to show in full.

[root@cen7 ~]# systemctl stop parstream

Wie Sie sehen können, beginnen die ParStream-Prozesse unter dem in den Dienstdateien definierten Benutzer, und alles wird bereinigt, nachdem Sie angefordert haben, die Dienste zu beenden.

Fehlerbehebung

Dieser Abschnitt enthält Informationen, die Sie zur Fehlerbehebung bei Ihrer Konfiguration verwenden können.

Falls Probleme beim Starten auftreten, überprüfen Sie Folgendes:

- Konfigurierbare Parameter in der init.d- oder Systemd-Servicedatei (Benutzer, Pfade, ParStream-Servername)

- Überprüfen Sie die Ausgabe der Protokolldatei für ParStream (in /var/log/parstream).

- Für SystemD: Die Ausgabe von systemctl status parstream

- Die Ausgabe von journalctl —unit=parstream