在安装Apigee Edge私有云版本4.16.09(即最新版本)期间,我在Router / Message-proc(RMP)安装中遇到了令人沮丧的错误。 具体来说,使用apigee-ngnix软件包。在进入详细信息之前,以下是有关正在进行安装的机器的一些基本信息:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.2 (Maipo)
# uname -a
Linux *** 3.10.0-327.18.2.el7.x86_64 *** Fri Apr 8 05:09:53 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
发出RMP安装的命令如下:
/opt/apigee/apigee-setup/bin/setup.sh -p rmp -f /tmp/myConfig.txt
后续输出(包含有问题的错误)如下:
apigee-service: edge-router: edge-router is running
Checking for router on 127.0.0.1 port 8081 ............. OK
Checking for router uuid 649f58ba-bb61-469e-b169-ceb955961242
Checking if router is up .............................................................
router is not up.
Error: setup.sh: /opt/apigee/apigee-service/bin/apigee-service exited with unexpected status 1
当我深入研究日志时,我发现以下错误 -
/opt/apigee/var/log/edge-router/edge-router.log:
java.io.IOException: Cannot run program "/opt/nginx/scripts/apigee-nginx": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
非常奇怪的是apigee-ngnix文件没有被安装过程创建(应该如此)。
/opt/apigee/var/log/edge-router/logs/system.log:
2017-01-05 13:11:09,012 main-EventThread ERROR o.a.c.ConnectionState - ConnectionState.checkState() : Authentication failed
...
2017-01-06 11:18:55,249 qtp371397455-42 ERROR REST - CustomJAXRSInvoker.performInvocation() : CustomJAXRSInvoker.performInvocation : Method com.apigee.registration.ServersAPI.isServerCompletelyUp threw an exception.
...
2017-01-06 11:18:55,253 qtp371397455-42 ERROR REST - ExceptionMapper.toResponse() : Error occurred : Service not up yet.
com.apigee.registration.ServersAPI.isServerCompletelyUp(ServersAPI.java:106)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2017-01-06 11:18:55,255 qtp371397455-42 ERROR REST - ExceptionMapper.toResponse() : Returning error response : ErrorResponse{errorCode = null, errorMessage = Service not up yet.}
...
2017-01-06 11:18:55,576 main ERROR LOAD-BALANCER - LoadBalancingManagementServiceImpl.start() : Could not Initialize adaptor nginx
...
2017-01-06 11:18:55,603 main ERROR Router-Service - RouterServiceImpl.start() : Router not started because, Load Balancing could not be initialized
2017-01-06 11:18:55,614 main ERROR KERNEL.DEPLOYMENT - ServiceDeployer.startService() : ServiceDeployer.deploy() : Got a life cycle exception while starting service [RouterService, Nginx Initialization failed] : {}
com.apigee.errors.http.server.ServiceFailureException: Nginx Initialization failed
at com.apigee.proxy.service.RouterServiceImpl.start(RouterServiceImpl.java:65) ~[message-router-proxy-1.0.0.jar:na]
我很困惑如何发生这种情况。我没有在各种日志文件中看到任何其他错误。什么可能出错的想法?也许在哪里寻找其他线索和/或如何进行安装?我试过打开nginx周围的文件夹结构所需的权限设置(只是为了安全),但无济于事。
请注意,Apigee Edge安装中所有其他组件的安装(例如管理服务器,分析,数据存储等)在没有任何问题的情况下都能正常运行!
提前感谢您提供任何帮助或见解!
最佳, 克里斯
答案 0 :(得分:0)
在安装路由器和消息处理器组件之前,请运行以下命令,这是解决此问题的可行方法:
mkdir /opt/apigee/etc/edge-router.d
echo RUN_USER=root >> /opt/apigee/etc/edge-router.d/RUN_USER.sh
chown -R apigee:apigee /opt/apigee/etc/edge-router.d
最好, 克里斯