美文网首页
Linux CentOS 部署 Sonarqube7.8 错误排

Linux CentOS 部署 Sonarqube7.8 错误排

作者: asing1elife | 来源:发表于2019-09-17 19:27 被阅读0次

    解决在 Linux CentOS 中部署 Sonarqube 时碰到的一些异常

    更多精彩

    启动失败,并抛出 Process exited with exit value [es] 异常

    1. 进入 /opt/sonarqube-7.8/bin/linux-x86-64/ 执行 ./sonar.sh console ,得到如下结果
      image
    2. 在上图中可以看到 Process exited with exit value [es]: 1 ,因此前往 /opt/sonarqube-7.8/logs/ 查看 es.log 文件,可以得到如下报错
      image
    3. 从上述报错中可以知道启动失败的原因是因为 elasticsearch 进程无法通过 root 用户启用

    解决方式

    1. 参考自 Linux安装SonarQube - CSDN博客
    2. 由于 elasticsearch 进程无法通过 root 用户启用
    3. 所以需要新建一个用户,来专门执行启动命令,依次输入如下脚本即可
    # 创建用户
    useradd sonar
    # 修改该用户密码
    passwd sonar
    # 赋予权限
    chown -R soanr.soanr /opt/sonarqube-7.8
    
    1. 之后通过 su sonar 切换到该用户,再执行启动命令即可

    启动失败,并抛出 max virtual memory areas vm.max_map_count [65530] is too low

    1. 执行启动命令,得到如下结果


      image
    2. 在上图中可以看到 max virtual memory areas vm.max_map_count [65530] is too low 的异常信息
    3. 意思就是说当前系统配置的虚拟内存为 65530 ,太小了

    解决方式

    1. 参考自 vm.max_map_count - CSDN博客
    2. 既然虚拟内存太小,那么将虚拟内存加大即可解决问题
    3. 使用 root 用户执行 vi /etc/sysctl.conf
    4. 在文件末尾添加 vm.max_map_count=262144
    5. 保存并退出后,执行 sysctl -p 使配置生效即可
    6. 如果想验证是否生效,可以执行 sysctl -a|grep vm.max_map_count ,即可看到如下结果
      image

    启动失败,并抛出 system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk 异常

    1. 执行启动命令,得到如下结果


      image
    2. 在上图中可以看到 system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk 的异常信息
    3. 错误的原因在 启动elasticsearch报错解决 - 简书 中找到
      • 大意就是需要在 elasticsearch 启动时禁止一些系统参数的检测
    4. 但上述文章,以及找到的一大堆文章,都是单独讲解 elasticsearch 如果通过修改配置解决这个问题
    5. Sonarqube 依赖的 elasticsearch 在其根目录,对应的配置文件在 /opt/sonarqube-7.8/elasticsearch/config/elasticsearch.yml
    6. 但按照文中的方式添加 bootstrap.system_call_filter: false 后,启动依旧报错,没有任何效果

    解决方式

    1. 最后在 elasticsearch - SonarQube 6.7 - Stack Overflow 中找到了解决方式
    2. 执行 vi /opt/sonarqube-7.8/conf/sonar.properties
    3. 在该文件中找到以下内容,并如图在最后一行添加 sonar.search.javaAdditionalOpts=-Dbootstrap.system_call_filter=false 即可解决问题
      image

    修改 Sonarqube 访问网址后,sonar-scanner 执行失败

    1. Sonarqube 默认的访问地址是 http://localhost:9000
    2. 如果想要修改这个地址,只需要前往 /opt/sonarqube-7.8/conf/sonar.properties ,并添加如下内容即可
      • 找到 WEB SERVER 的配置区域
      • 分别自定义 sonar.web.host=192.168.8.8 用于指定访问的 IP 地址
      • sonar.web.context=/sonar 用于指定访问的根目录
      • sonar.web.port=7654 用于指定端口号
    3. 保存并退出,之后重启 Sonarqube ,就可以通过 http://192.168.8.8:7654/sonar 进行访问
      image
    4. 但是修改该地址后,发现再次在指定项目中执行 sonar-scanner ,就无法成功扫描项目了,并抛出如下异常
      image
    5. 从上图中可以看到 SonarQube server [http://localhost:9000] can not be reached 的异常信息,以及后续一系列连接失败的报错
    6. 这是因为 SonarScanner 本身也会配置默认的 Sonarqube 访问地址,默认就是 http://localhost:9000

    解决方式

    1. 那么如果我们修改了 Sonarqube 的访问地址,则还应该前往 SonarScanner 的配置文件进行相应修改
    2. 前往 /opt/sonar-scanner-4.0/conf/sonar-scanner.properties ,可以看到以下内容
      image
    3. 重写 sonar.host.url=http://192.168.8.8:7654/sonar ,时该配置文件中的地址与 Sonarqube 中配置的自定义地址一致即可

    相关文章

      网友评论

          本文标题:Linux CentOS 部署 Sonarqube7.8 错误排

          本文链接:https://www.haomeiwen.com/subject/pvmcuctx.html