Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Configurar

Para init.d

Para Systemd

Verificar

Para init.d

Para Systemd

Troubleshooting

Introdução

Este documento descreve como criar arquivos de serviço para init.d ou Systemd para o banco de dados ParStream historical.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento do Linux.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Configurar

O pacote de instalação do EFM (Edge Fog Processing Module) não contém arquivos de serviço para init.d ou Systemd prontos para uso.

Aqui, você pode encontrar um exemplo simples para criar um arquivo de serviço.

Para 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

Certifique-se de ajustar as variáveis de ambiente para corresponder ao seu ambiente: PARSTREAM_HOME, PARSTREAM_SERVERNAME e PARSTREAM_USER.

Depois de criar o arquivo, verifique se ele está marcado como executável.

Para 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

Certifique-se de ajustar as variáveis de configuração para corresponder ao seu ambiente: User= e servername na linha ExecStart.

Após a criação do arquivo de serviço, certifique-se de atualizar os arquivos daemon no systemd:

[root@cen7 ~]# systemctl daemon-reload

Verificar

Use esta seção para confirmar se a sua configuração funciona corretamente.

Para verificar se o arquivo de scripts/serviço funciona como esperado, você pode tentar iniciar e parar o serviço.

Para 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

Para 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

Como você pode ver, os processos ParStream iniciam sob o usuário que você definiu nos arquivos de serviço e tudo é limpo depois que você solicita a interrupção dos serviços.

Troubleshooting

Esta seção disponibiliza informações para a solução de problemas de configuração.

Caso tenha problemas ao iniciar, verifique:

- Parâmetros configuráveis no arquivo de serviço init.d ou Systemd (usuário, caminhos, nome do servidor ParStream)

- Verifique a saída do arquivo de log para ParStream (em /var/log/parstream)

- Para SystemD: a saída de systemctl status parstream

- A saída de journalctl —unit=parstream