热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SonarQube和sonarrunner详细安装及配置

本文选自程序员s博客(https:blog.csdn.netu012448904articledetails81706283),根据其步骤结合自己情况做了一些改动。感谢网络,让我们

本文选自程序员s博客(https://blog.csdn.net/u012448904/article/details/81706283),根据其步骤结合自己情况做了一些改动。感谢网络,让我们总能站在巨人的肩膀上!


 

1、环境

系统环境:centos7.0 -x86_64(精简安装) 
前置条件:jdk1.8 , mysql-5.7
软件下载目录:/usr/local/
软件安装目录:/usr/local/
软件版本:sonarqube-6.7.7,sonar-runner-dist-2.4 
sonarqube下载地址:http://www.sonarqube.org/downloads/
sonar-runner下载地址:https://link.jianshu.com/?t=http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.4/sonar-runner-dist-2.4.zip

2.安装环境

1、需要Mysql数据库支持;虽然SonarQube自带了H2数据库,但是为了方便管理数据推荐使用Mysql数据库。
   安装Mysql数据库,jdk1.8 ,安装完成后进入数据库配置。

1 mysql -u root -p (进入数据库)
2 mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; 
3 mysql> CREATE USER sonar IDENTIFIED BY sonar;
4 mysql> GRANT ALL ON sonar. TO sonar@% IDENTIFIED BY sonar;
5 mysql> GRANT ALL ON sonar. TO sonar@localhost IDENTIFIED BY sonar;
6 mysql> FLUSH PRIVILEGES;

2、安装SonarQube

    第一步:将下载的sonarqube-6.7.5.zip解压后移动到/usr/local目录下

                   unzip  sonarqube-6.7.5.zip  解压包(如果解压不了,可能你没有unzip。通过yum下就可以了)

  第二步:配置环境变量

1 [root@localhost local]# vim /etc/profile
2  
3 export SONAR_HOME=/usr/local/sonarqube-6.7.7
4 export SONAR_SCANNER_HOME=/usr/local/sonar-runner
5 PATH=$PATH:$SONAR_HOME/bin:$SONAR_RUNNER_HOME/bin
6  
7 [root@localhost local]# source /etc/profile

 第三步:配置sonar.properties

1 [root@localhost local]# vim sonarqube-6.7.5/conf/sonar.properties 
 1 #数据库的账号密码,刚才创建的
 2 sonar.jdbc.username=sonar       
 3 sonar.jdbc.password=sonar
 4 #连接数据库
 5 sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useCOnfigs=maxPerformance&useSSL=false
 6 #驱动程序类名,其实可以不写的
 7 sonar.jdbc.driverClassName=org.gjt.mm.mysql.Driver
 8 sonar.sorceEncoding=UTF-8
 9 sonar.login=admin
10 sonar.password=admin
11  
12 #开启端口
13 sonar.web.port=9000

3、启动SonarQube (重点,这块最坑了)

SonarQube 启动不能用root启动,所以新建一个用户。必须先启动elasticsearch,才能在启动sonar。sonar文件目录里面有 elasticsearch这个目录。

1 //创建esuser用户
2 //目录组和用户都是esuser
3 //sonarqube文件设置777
4 //编写配置文件
5 [root@localhost ]# useradd esuser
6 [root@localhost local]# chown -R esuser.esuser sonarqube-6.7.5
7 [root@localhost local]#chmod 777 -R sonarqube-6.7.5 
8 [root@localhost local]# vim sonarqube-6.7.5/elasticsearch/config/elasticsearch.yml 

 

1 //开启端口和指定服务
2 network.host: 192.168.6.178
3 http.port: 9200
1 // 切换用户
2 [root@localhost sonarqube-6.7]# su - esuser          
3 [esuser@localhost elasticsearch]# ./bin/elasticsearch

启动的时候会报错,下面是报错的资料。

几乎每一次装都会遇到的坑,这些坑只有5.x.x版本有,2.x.x版本的几乎没有遇到过:
1、机器内剩余内存较少,会启动失败,并且有类似如下报错:
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000008a660000, 1973026816, 0) failed; error=‘Cannot allocate memory‘ (errno=12)
这是因为es的jvm参数-Xmx和-Xms默认都为2G
修改config下的jvm.option文件
# vim elasticsearch/elasticsearch-5.5.1/config/jvm.opstions
将
-Xms2g
-Xmx2g 
改为
-Xms1g
-Xmx1g
或更小
-Xms512M
-Xmx512M
再次启动即可


2、启动的时候出现:


1、
ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk...
问题原因:因为Centos6不支持SecComp,而ES5.x.x默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。详见 :https://github.com/elastic/elasticsearch/issues/22899


解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面: 
bootstrap.memory_lock: false 
bootstrap.system_call_filter: false 




2、
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] 
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]


解决方法:切换到root用户,编辑limits.conf 添加类似如下内容


#vim /etc/security/limits.conf


添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096


3、
max number of threads [1024] for user [lish] likely too low, increase to at least [2048]


解决方法:切换到root用户,进入limits.d目录下修改配置文件。
#vim /etc/security/limits.d/90-nproc.conf


修改如下内容:

* soft nproc 1024
修改为
* soft nproc 2048

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

解决方法:切换到root用户修改配置sysctl.conf

#vim /etc/sysctl.conf

添加下面配置:
vm.max_map_count=655360
并执行命令:
#sysctl -p
然后,再启动elasticsearch,即可启动成功。
--------------------- 
作者:程序员s 
来源:CSDN 
原文:https://blog.csdn.net/u012448904/article/details/81624037/ 
版权声明:本文为博主原创文章,转载请附上博文链接!

不报错后,再次执行elasticsearch,直到不出现error信息。最后再执行elasticsearch后台运行

1 [esuser@localhost elasticsearch]# ./bin/elasticsearch -d     -d代表后台运行

验证elasticsearch运行成功

1、netstat   -nultp  查看端口,能看到9200和9300证明就成功了。

2、访问:http://192.168.6.178:9200         能给你一个json的文件。

技术图片

启动sonar(用esuser启动)

1 [esuser@localhost sonarqube-6.7.7]# ./bin/linux-x86-64/sonar.sh start

访问:http://192.168.6.178:9000/

4、Sonar汉化

1. 在https://github.com/SonarCommunity/sonar-l10n-zh,下载汉化包源码;
2. 本地打包,cmd里面,在解压包里面运行: mvn install
3. 将打好的jar包,放到:/sonarqube/extensions/plugins目录;
4. 重启sonar,即可

5、安装&配置插件sonar-runner

1 //解压文件
2 //进入文件
3 //编辑文件
4 [root@localhost local]#unzip  sonar-runner-dist-2.4.zip
5 [root@localhost local]#mv sonar-runner-dist-2.4.zip  sonar-runner6 [root@localhost local]# cd sonar-runner7 [root@localhost sonar-scanner]# vim conf/sonar-runner.properties 
 1 #Configure here general information about the environment, such as SonarQube DB details for example
 2 #No information about specific project should appear here
 3  
 4  
 5  
 6 #----- Default source code encoding
 7 sonar.sourceEncoding=UTF-8
 8  
 9 sonar.host.url=http://192.168.6.178:9000
10 sonar.jdbc.username=sonar
11 sonar.jdbc.password=sonar
12 sonar.jdbc.url=jdbc:mysql://192.168.6.178:3306/sonar?useUnicode=true&characterEncoding=utf8
13 sonar.login=admin
14 sonar.password=admin

6、创建待扫描项目

我的项目放在/root/java/sell 目录下来了,项目放在哪都行的。

创建一个sonar-project.properties 

技术图片

 1 [root@localhost sell]# vim sonar-project.properties 
 2  
 3 #项目的key
 4 sonar.projectKey=itil:change   
 5 #项目的名字(可以随便写,这个名字在sonar显示的)
 6 sonar.projectName=sell
 7 #项目的版本
 8 sonar.projectVersion=1.0
 9 #需要分析的源码的目录
10 sonar.sources=src/
11 #这是target(如果没编译可以不写)
12 sonar.java.binaries=target/classes
13 #java语言
14 sonar.language=java
15 #编码格式
16 #sonar.sourceEncoding=UTF-8
1  //开始扫描,
2 [root@localhost sell]# /usr/local/sonar-runner/bin/sonar-runner 

执行结果显示执行成功,如下。

技术图片

SonarQube和sonar-runner详细安装及配置


推荐阅读
  • 本指南详细介绍了如何在CentOS 6.6 64位系统上以root用户身份部署Tomcat 8服务器。系统环境为CentOS 6.6 64位,采用源码安装方式。所需软件为apache-tomcat-8.0.23.tar.gz,建议将软件下载至/root/opt目录。具体下载地址请参见官方资源。本指南涵盖了从环境准备到服务启动的完整步骤,适用于需要在该系统环境下搭建高性能Web应用服务器的技术人员。 ... [详细]
  • 在 Axublog 1.1.0 版本的 `c_login.php` 文件中发现了一个严重的 SQL 注入漏洞。该漏洞允许攻击者通过操纵登录请求中的参数,注入恶意 SQL 代码,从而可能获取敏感信息或对数据库进行未授权操作。建议用户尽快更新到最新版本并采取相应的安全措施以防止潜在的风险。 ... [详细]
  • 该问题可能由守护进程配置不当引起,例如未识别的JVM选项或内存分配不足。建议检查并调整JVM参数,确保为对象堆预留足够的内存空间(至少1572864KB)。此外,还可以优化应用程序的内存使用,减少不必要的内存消耗。 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 题目 E. DeadLee:思维导图与拓扑结构的深度解析问题描述:给定 n 种食物,每种食物的数量由 wi 表示。同时,有 m 位朋友,每位朋友喜欢两种特定的食物 x 和 y。目标是通过合理分配食物,使尽可能多的朋友感到满意。本文将通过思维导图和拓扑排序的方法,对这一问题进行深入分析和求解。 ... [详细]
  • Nginx 反向代理配置与应用指南
    本文详细介绍了 Nginx 反向代理的配置与应用方法。首先,用户可以从官方下载页面(http://nginx.org/en/download.html)获取最新稳定版 Nginx,推荐使用 1.14.2 版本。下载并解压后,通过双击 `nginx.exe` 文件启动 Nginx 服务。文章进一步探讨了反向代理的基本原理及其在实际应用场景中的配置技巧,包括负载均衡、缓存管理和安全设置等,为用户提供了一套全面的实践指南。 ... [详细]
  • 在 Mac 上查看隐藏文件和文件夹的详细指南。通过终端命令,您可以轻松地显示或隐藏这些文件。具体步骤如下:输入 `defaults write com.apple.finder AppleShowAllFiles -bool true` 以显示所有隐藏文件,或使用 `defaults write com.apple.finder AppleShowAllFiles -bool false` 以重新隐藏它们。此方法适用于各种版本的 macOS,帮助用户更好地管理和访问系统文件。 ... [详细]
  • 本文详细解析了逻辑运算符“与”(&&)和“或”(||)在编程中的应用。通过具体示例,如 `[dehua@teacher~]$[$(id -u) -eq 0] && echo "You are root" || echo "You must be root"`,展示了如何利用这些运算符进行条件判断和命令执行。此外,文章还探讨了这些运算符在不同编程语言中的实现和最佳实践,帮助读者更好地理解和运用逻辑运算符。 ... [详细]
  • 二分查找算法详解与应用分析:本文深入探讨了二分查找算法的实现细节及其在实际问题中的应用。通过定义 `binary_search` 函数,详细介绍了算法的逻辑流程,包括初始化上下界、循环条件以及中间值的计算方法。此外,还讨论了该算法的时间复杂度和空间复杂度,并提供了多个应用场景示例,帮助读者更好地理解和掌握这一高效查找技术。 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践
    蚂蚁课堂:性能测试工具深度解析——JMeter应用与实践 ... [详细]
  • 在 iOS 开发中,经常会遇到 `@(YES)`、`@[firstViewController]` 以及 `@{@a:@b}` 这样的语法糖。这些简化的写法分别用于初始化布尔值、数组和字典对象,能够显著提高代码的可读性和编写效率。例如,`@(YES)` 可以快速创建一个布尔值对象,`@[firstViewController]` 则用于创建包含单个元素的数组,而 `@{@a:@b}` 则用于创建键值对字典。理解这些语法糖的使用方法,有助于开发者更加高效地进行编码。 ... [详细]
author-avatar
其穗茹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有