无法启动Fiware Cygnus作为服务

问题描述:

我在centOS 7上使用RPM安装了fiware cygnus,但无法启动它作为服务。我得到了以下错误:无法启动Fiware Cygnus作为服务

[[email protected] cygnus]# sudo service cygnus start 
Starting cygnus (via systemctl): Job for cygnus.service failed. See 'systemctl status cygnus.service' and 'journalctl -xn' for details. 
                  [ÉCHOUÉ] 
    [[email protected] cygnus]# systemctl status cygnus.service -l 
    cygnus.service - SYSV: cygnus 
     Loaded: loaded (/etc/rc.d/init.d/cygnus) 
     Active: failed (Result: exit-code) since ven. 2015-07-31 19:11:10 CEST; 2s ago 
     Process: 5750 ExecStart=/etc/rc.d/init.d/cygnus start (code=exited, status=1/FAILURE) 

juil. 31 19:11:08 localhost cygnus[5750]: /usr/cygnus/conf/cygnus_instance_1.conf: ligne34: mongo-channel : commande introuvable 
juil. 31 19:11:08 localhost su[5756]: (to root) root on none 
juil. 31 19:11:10 localhost cygnus[5750]: Starting Cygnus 1... [ÉCHOUÉ] 
juil. 31 19:11:10 localhost systemd[1]: cygnus.service: control process exited, code=exited status=1 
juil. 31 19:11:10 localhost systemd[1]: Failed to start SYSV: cygnus. 
juil. 31 19:11:10 localhost systemd[1]: Unit cygnus.service entered failed state. 

不知道该用什么作为配置文件中的代理名称:cygnus_instance_1.conf因为它没有reconize代理名称

# Name of the agent. The name of the agent is not trivial, since it is the base for the Fluleters 
# naming conventions, e.g. it appears in .sources.http-source.channels=... 
AGENT_NAME= mongo-channel 

这里是我的完整配置文件: cygnus_instance_1.conf

##### 
# 
# Configuration file for apache-flume 
# 
##### 
# Copyright 2014 Telefonica Investigación y Desarrollo, S.A.U 
# 
# This file is part of fiware-cygnus (FI-WARE project). 
# 
# fiware-cygnus is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General 
# Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any 
# later version. 
# fiware-cygnus is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 
# details. 
# 
# You should have received a copy of the GNU Affero General Public License along with fiware-cygnus. If not, see 
# http://www.gnu.org/licenses/. 
# 
# For those usages not covered by the GNU Affero General Public License please contact with iot_support at tid dot es 

# Who to run cygnus as. Note that you may need to use root if you want 
# to run cygnus in a privileged port (<1024) 
CYGNUS_USER=root 

# Where is the config folder 
CONFIG_FOLDER=/usr/cygnus/conf 

# Which is the config file 
CONFIG_FILE=/usr/cygnus/conf/agent_1.conf 

# Name of the agent. The name of the agent is not trivial, since it is the base for the Fluleters 
# naming conventions, e.g. it appears in .sources.http-source.channels=... 
AGENT_NAME= /usr/cygnus/bin/cygnus-flume-ng 
#mongo-channel 

# Name of the logfile located at /var/log/cygnus. It is important to put the extension '.log' in order to the log rotation works properly 
LOGFILE_NAME=cygnus.log 

# Administration port. Must be unique per instance 
ADMIN_PORT=8081 

# Polling interval (seconds) for the configuration reloading 
POLLING_INTERVAL=30 

agent_1.conf

# Copyright 2014 Telefónica Investigación y Desarrollo, S.A.U 
# 
# This file is part of fiware-cygnus (FI-WARE project). 
# 
# fiware-cygnus is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General 
# Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any 
# later version. 
# fiware-cygnus is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied 
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 
# details. 
# 
# You should have received a copy of the GNU Affero General Public License along with fiware-cygnus. If not, see 
# http://www.gnu.org/licenses/. 
# 
# For those usages not covered by the GNU Affero General Public License please contact with iot_support at tid dot es 

#============================================= 
# To be put in APACHE_FLUME_HOME/conf/agent.conf 
# 
# General configuration template explaining how to setup a sink of each of the available types (HDFS, CKAN, MySQL). 

#============================================= 
# The next tree fields set the sources, sinks and channels used by Cygnus. You could use different names than the 
# ones suggested below, but in that case make sure you keep coherence in properties names along the configuration file. 
# Regarding sinks, you can use multiple types at the same time; the only requirement is to provide a channel for each 
# one of them (this example shows how to configure 3 sink types at the same time). Even, you can define more than one 
# sink of the same type and sharing the channel in order to improve the performance (this is like having 
# multi-threading). 
cygnusagent.sources = http-source 
cygnusagent.sinks = mongo-sink 
cygnusagent.channels = mongo-channel 

#============================================= 
# source configuration 
# channel name where to write the notification events 
cygnusagent.sources.http-source.channels = mongo-channel 
# source class, must not be changed 
cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource 
# listening port the Flume source will use for receiving incoming notifications 
cygnusagent.sources.http-source.port = 5050 
# Flume handler that will parse the notifications, must not be changed 
cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler 
# URL target 
cygnusagent.sources.http-source.handler.notification_target = /notify 
# Default service (service semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service = def_serv 
# Default service path (service path semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service_path = def_servpath 
# Number of channel re-injection retries before a Flume event is definitely discarded (-1 means infinite retries) 
cygnusagent.sources.http-source.handler.events_ttl = 10 
# Source interceptors, do not change 
cygnusagent.sources.http-source.interceptors = ts gi 
# TimestampInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.ts.type = timestamp 
# GroupinInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder 
# Grouping rules for the GroupingInterceptor, put the right absolute path to the file if necessary 
# See the doc/design/interceptors document for more details 
cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file = /usr/cygnus/conf/grouping_rules.conf 


# ============================================ 
# OrionMongoSink configuration 
# sink class, must not be changed 
cygnusagent.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.OrionMongoSink 
# channel name from where to read notification events 
cygnusagent.sinks.mongo-sink.channel = mongo-channel 
# FQDN/IP:port where the MongoDB server runs (standalone case) or comma-separated list of FQDN/IP:port pairs where the MongoDB replica set members run 
cygnusagent.sinks.mongo-sink.mongo_hosts = 192.168.1.40:27017 
# a valid user in the MongoDB server (or empty if authentication is not enabled in MongoDB) 
#cygnusagent.sinks.mongo-sink.mongo_username = mongo_username 
# password for the user above (or empty if authentication is not enabled in MongoDB) 
#cygnusagent.sinks.mongo-sink.mongo_password = xxxxxxxx 
# prefix for the MongoDB databases 
#cygnusagent.sinks.mongo-sink.db_prefix = sth_ 
# prefix pro the MongoDB collections 
#cygnusagent.sinks.mongo-sink.collection_prefix = sth_ 
# true is collection names are based on a hash, false for human redable collections 
cygnusagent.sinks.mongo-sink.should_hash = false 

#============================================= 
# mongo-channel configuration 
# channel type (must not be changed) 
cygnusagent.channels.mongo-channel.type = memory 
# capacity of the channel 
cygnusagent.channels.mongo-channel.capacity = 1000 
# amount of bytes that can be sent per transaction 
cygnusagent.channels.mongo-channel.transactionCapacity = 100 

最新通报@frb响应后: 我更新了我的cygnus_instance_1.conf @frb响应,但unfortuantly因为我得到了以下错误:

systemctl status cygnus.service -l 
cygnus.service - SYSV: cygnus 
    Loaded: loaded (/etc/rc.d/init.d/cygnus) 
    Active: failed (Result: exit-code) since mer. 2015-08-05 17:22:09 CEST; 3s ago 
    Process: 3338 ExecStart=/etc/rc.d/init.d/cygnus start (code=exited, status=1/FAILURE) 

août 05 17:22:07 localhost cygnus[3338]: /usr/cygnus/conf/cygnus_instance_1.conf: ligne24: cygnus : commande introuvable 
août 05 17:22:07 localhost cygnus[3338]: /usr/cygnus/conf/cygnus_instance_1.conf: ligne34: cygnusagent : commande introuvable 
août 05 17:22:07 localhost su[3345]: (to cygnus) root on none 
août 05 17:22:07 localhost cygnus[3338]: Starting Cygnus 1... bash: /var/run/cygnus/cygnus_1.pid: Permission non accordée 
août 05 17:22:09 localhost cygnus[3338]: cat: /var/run/cygnus/cygnus_1.pid: Aucun fichier ou dossier de ce type 
août 05 17:22:09 localhost cygnus[3338]: [ÉCHOUÉ] 
août 05 17:22:09 localhost cygnus[3338]: rm: impossible de supprimer « /var/run/cygnus/cygnus_1.pid »: Aucun fichier ou dossier de ce type 
août 05 17:22:09 localhost systemd[1]: cygnus.service: control process exited, code=exited status=1 
août 05 17:22:09 localhost systemd[1]: Failed to start SYSV: cygnus. 
août 05 17:22:09 localhost systemd[1]: Unit cygnus.service entered failed state. 

展望上面的错误,我看到它无法找到文件“/var/run/cygnus/cygnus_1.pid”,所以我创建了一个空文件来绕过这个错误,但我得到了一个新问题:cygnus_instance_1.conf必须在

[[email protected] ~]# sudo systemctl start cygnus.service 
Job for cygnus.service failed. See 'systemctl status cygnus.service' and 'journalctl -xn' for details. 
[[email protected] ~]# sudo systemctl status cygnus.service -l 
cygnus.service - SYSV: cygnus 
    Loaded: loaded (/etc/rc.d/init.d/cygnus) 
    Active: failed (Result: exit-code) since mer. 2015-08-05 17:24:08 CEST; 5s ago 
    Process: 3445 ExecStart=/etc/rc.d/init.d/cygnus start (code=exited, status=1/FAILURE) 

août 05 17:24:06 localhost systemd[1]: Starting SYSV: cygnus... 
août 05 17:24:06 localhost cygnus[3445]: /usr/cygnus/conf/cygnus_instance_1.conf: ligne24: cygnus : commande introuvable 
août 05 17:24:06 localhost cygnus[3445]: /usr/cygnus/conf/cygnus_instance_1.conf: ligne34: cygnusagent : commande introuvable 
août 05 17:24:06 localhost su[3452]: (to cygnus) root on none 
août 05 17:24:06 localhost cygnus[3445]: Starting Cygnus 1... bash: /var/run/cygnus/cygnus_1.pid: Permission non accordée 
août 05 17:24:08 localhost cygnus[3445]: [ÉCHOUÉ] 
août 05 17:24:08 localhost systemd[1]: cygnus.service: control process exited, code=exited status=1 
août 05 17:24:08 localhost systemd[1]: Failed to start SYSV: cygnus. 
août 05 17:24:08 localhost systemd[1]: Unit cygnus.service entered failed state. 

根据您的agent_1.conf配置,AGENT_NAMEcygnusagent。即:

AGENT_NAME = cygnusagent 

此外,CYGNUS_USERcygnus,因为这是在安装软件时的RPM创建用户。

+0

感谢您的回复,我更新了我的配置文件,但是出现了新错误,我用日志编辑了我的问题。 – sabrina2020

+0

您是否将'CYGNUS_USER'配置为'cygnus'?你可以检查这个用户是否存在(它应该在安装时由RPM创建)? – frb

+0

是用户存在“cygnus:x:990:988:Cygnus用户帐户:/ home/cygnus:/ bin/bash”,我可以使用“/ usr/cygnus/bin/cygnus-flume- ng agent --conf/usr/cygnus/conf/-f /usr/cygnus/conf/agent_1.conf -n cygnusagent -Dflume.root.logger = INFO,console“但仍然无法启动它作为服务:( – sabrina2020