sonar部署问题记录

290 阅读2分钟

sonar部署参考:blog.csdn.net/zdyueguanyu…

blog.csdn.net/u010028869/…

sonar增加PDF导出结果插件:

www.yangxinghui.com/1452.html

启动sonar时需要以非root用户启动,否则启动后服务一会挂掉或者启动不起来,使用sonar.sh console 命令查看后,输出日志如下:

截图.png

问题原因: 用root启动过会创建temp目录,该目录为root用户所有,使用自己创建的sonar用户启动时就会报错(将temp目录下的conf删除后,重新切换为sonaruser用户启动即可)

解决方案:使用root用户修改该文件夹的用户组(temp),让它属于sonarqube的启动用户(自己创建的那个),再次启动就ok了

配置--pdf--username和password需要为admin用户的用户名和密码,保存后再次执行一次扫描即可

32.png

sonar部署步骤:

1、将sonarqube-7.1和sonar-scanner-3.3.0上传至/opt目录下

2、使用unzip 解压(如果提示unzip: command not found ,先执行yum install -y unzip zip;再进行解压)

3、使用navicat连接mysql数据库,新建一个sonarqube数据库。

4、进入解压后的sonarqube-7.1的文件目录下,进入conf文件夹,修改sonar.properties文件

            选择连接的数据库(以mysql为例,如果需要连接其他的数据库,则在该配置文件中修改该数据库连接即可)

             输入:

                      


                      sonar.jdbc.password=密码

                      sonar.jdbc.url=jdbc:[mysql://localhost:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false]()

                       (localhost改为需要连接的数据库地址,sonarqube改为新建的sonarqube数据库名)

                      sonar.web.host=192.168.1.188

                      sonar.web.context=/sonarqube

                      sonar.web.port=9000

5、使用useradd新建一个用户sonaruser,并给该用户设置sonarqube-7.1的文件目录权限

    chown -R sonaruser:sonaruser /xxx/sonarqube -7.1

    chmod 777 -R sonarqube -7.1

6、切换sonaruser用户,su sonaruser

7、进入sonarqube的Linux下的bin目录,./sonar.sh start

8、进入sonarqube下的logs,目录,查看sonar.log   tail -f sonar.log

      如果出现sonarQube is up,则sonarqube成功启动,否则查看报错提示

        如果提示:Process exited with exit value [es]: 143 ,则进入logs目录下,查看es.log

        在es.log中提示 max file descriptors [4096] for elasticsearch process is too low,increase to at least [65536]

                                 max virtual memory areas vm.max_map_count [65536] is too low ,increase to at least [262144]

        解决方法如下:

1、max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这里要增加vm.max_map_count的值

[root@localhost sonarqube-7.1]# vi /etc/sysctl.conf

vm.max_map_count=262144

[root@localhost sonarqube-7.1]# sysctl -p

在/etc/sysctl.conf中添加vm.max_map_count=262144后执行sysctl -p使配置生效。

        2、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

        解决方案同上      

[root@localhost sonarqube-7.1]# vi /etc/security/limits.confsonaruser hard nofile 65536sonaruser soft nofile 65536 

切换sonaruser用户,使用ulimit -Hn指令查看配置是否生效

[sonaruser@localhost sonarqube-7.1]$ ulimit -Hn 65536

如果修改完,仍无法正常启动sonarqube,查看下web.log,sonar.log,es.log三个日志文件,查看提示的错误

9、正常启动sonarqube后,在浏览器中,输入xxx.xxx.x.xxx:9000/sonarqube,

      输入admin,admin进入sonarqube界面,点击配置,应用市场,选择chinese Pack,点击安装(中文包)

10、进入虚拟机中opt目录下的sonar-scanner目录,进入conf目录,编辑sonar-scanner.properties文件

       输入:

       sonar.host.url=[http://xxx.xxx.x.xxx:9000/sonarqube](http://192.168.1.188:9000/sonarqube)

       sonar.login=admin

       sonar.password=admin

11、配置sonar-scanner环境

       vi /etc/profile

        在profile文件最后一行加入一行,输入sonar-scanner文件bin目录

       export PATH="$PATH:/xxx/sonar-scanner-xxxx/bin"

       执行source /etc/profile后,使用sonar-scanner -version查看环境是否配置成功,显示如下

   

12、环境搭建完成后,在sonarqube目录下新建一个sonar目录,将需要扫描的文件放入该目录下,在sonar-project.properties指定文件目录