苍穹安装完成后,mc访问报502的异常原创
金蝶云社区-吴辉宇
吴辉宇
11人赞赏了该文章 1,657次浏览 未经作者许可,禁止转载编辑于2022年04月20日 09:54:46
summary-icon摘要由AI智能服务提供

昨晚直播安装Linux单机版Linux环境时遇到错误,经调整配置后服务虽运行正常但浏览器访问mc时报502错误。分析发现nginx端口被占用,修改端口后解决nginx问题,进而解决mc等苍穹服务启动问题。关键在于nginx转发配置未完全修改导致访问失败。总结强调安装前检查资源、逐步查看日志分析解决服务异常的重要性,并建议了解苍穹整体知识。

背景:昨晚直播安装Linux单机版环境,安装完成后提示安装错误,并根据错误调整配置信息,调整配置后,服务能正常运行,且状态是Running,但是在浏览器访问mc时报502的错误。

image.png


首先我们回顾昨晚安装整个过程,然后一步步指导分析并解决问题。

  1. 首次安装完成后,需要根据安装步骤提示的日志路径,在日志中搜索failed=1,查询有没有安装失败的服务。如下:

    image.png

    image.png

    image.png


  2. 从安装日志上,我们可以看到nginx启动异常了,那么随着MC,mservice,mservice-qing这些苍穹服务也会跟着启动异常。所以我们要先分析nginx为什么启动异常了,可以通过service nginx status获取nginx的启动状态

    image.png


  3. 通过日志,我们可以看到日志提示Address already in use,那么表示端口已经被占用了,nginx再监听80端口就会异常,因此需要修改80的监听端口。nginx的配置文件位于/usr/local/nginx/conf/conf.d目录下。


  4. 对于端口冲突的情况,我们有两种解决方案:1. 修改端口,将80换成新的端口。2. 确认是否可以将占用80端口服务停止了,停止了原来的服务,新的服务才能监听这个端口。


  5. 因原服务不能停止,因此把nginx的监听端口80改成801,把监听端口8090改成8091。解决nginx端口问题,nginx能正常运行起来。


  6. 解决nginx的问题后,我们就可以正常启动mc,mservice等苍穹服务了。为什么nginx启动异常会影响苍穹服务的启动呢?让我们来大致了解苍穹的启动和访问过程

    1. 通过appstore_url的地址,从appstore下载jar包到苍穹服务lib目录下。具体下载哪些包参看BIZLIBS,CUSLIBS配置值。若这个步骤出异常,捕获不到异常日志,可通过直接调用/bin/kdservice.sh脚本启动,即可看到日志。

    2. 下载完jar包后,服务会将这些jar包作为服务启动jar,加载到classpath,并运行,这时候因为是启动阶段,如果有异常,日志可查看服务logs目录下的std.out文件。

    3. 苍穹运行起来后,log4j起作用了,服务的运行日志存放在log.log文件中。

    4. 苍穹相关服务的访问都是通过nginx转发,而不是直接访问对应服务。首先访问苍穹服务,通过nginx的80端口,对应配置文件为ierp.conf,访问mc服务,通过nginx的8090端口,对应配置文件为mc.conf文件。

    5. 针对第四点,若nginx做了端口修改,同时需要修改相关服务的配置。例如修改了80端口,需要访问MC管理平台,在集群管理,修改集群的domain_context地址。修改了8090端口,需要修改mc,mservice,mservice-qing服务bin/setappenv.sh脚本的appstore_url,同时还要修改mc服务下的bin/setappenv.sh脚本的domain_context。若mc,mservice做了端口修改,需要修改nginx服务下的upstream.conf转发地址


  7. 我们从第六步了解了大致的过程,那么我们在第五步将8090端口改成8091端口,也就是appstore的地址变了,因此需要修改服务bin/setappenv.sh脚本,再重启服务,检查服务是否能正常运行。


  8. 服务正常运行后,通过浏览器访问mc,进行mc的初始化,首次访问mc地址,会跳转到mc服务的dataBaseSetting.html地址进行初始化,若未能正常跳转,那么mc服务的访问是有问题的,需要检查。


  9. 关键点:昨晚mc服务启动后,访问dataBaseSetting.html报502的错误,这种错误因如何分析呢?

    1. 首先通过service mc status确认服务状态是否为running

    2. 确认mc的监听端口是否正常监听,mc的监听端口可在mc服务bin/setappenv.sh脚本WEB_PORT参数获取。

    3. 若前两者都没问题,那问题出现在nginx的转发或者网络原因,并没有转发到mc的服务上。那么需要检查nginx的配置文件,这种情况,我们也可以粗略了解下nginx的处理过程,mc和mservice的逻辑都一样的,我们以mc为例。当我们在浏览器访问mc地址时,首先被nginx的mc.conf拦截location为/mc的请求,并将请求转发到当前端口的/ierp请求,然后再被mc.conf拦截/location为/ierp的请求,最后将该请求转发到mc服务,具体转发地址在upstream.conf文件内。

      image.png

  10. 因此昨晚的问题是因为mc.conf的端口没修改全,只将listen的端口改成了8091,没有将location /mc的转发地址端口也改成8091。


总结:

1. 安装环境选择,要根据实际,选择适合的苍穹环境。

2. 安装前一定要先检查资源,网络,端口这些是否符合要求。若没有检查就会出现本次安装的问题。

3. 安装后如果有服务异常,逐步查看日志分析,具体的服务异常,找到具体的日志定位问题,并解决。

4. 有兴趣多了解苍穹的整体知识,有助于遇到问题的排查。例如苍穹服务启动过程,苍穹的访问过程,苍穹日志是怎么流传的等等。

赞 11