前言

  SonarQube 是一款用于代码质量管理的开源工具,它主要用于管理源代码的质量。 通过插件形式,可以支持众多计算机语言,比如 java, C#, go,C/C++, PL/SQL, Cobol, JavaScrip, Groovy 等。sonar可以通过PMD,CheckStyle,Findbugs等等代码规则检测工具来检测你的代码,帮助你发现代码的漏洞,Bug,异味等信息。 Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。

sonarqube7.9的前提条件是jdk11、postgreSQL

链接:https://pan.baidu.com/s/1BcrQhzv3piH7CBRPfB_RTg 提取码:6d1q

安装

jdk11安装

参考:https://www.cnblogs.com/jxd283465/p/11541506.html

 [root@localhost home]# java -version
java version "11.0.4" 2019-07-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)

postgreSQL10.1安装

参考:https://www.cnblogs.com/jxd283465/p/11550745.html

 [root@localhost bin]# ./psql -V
psql (PostgreSQL) 10.10

sonarqube7.9安装

1.解压,重命名

# 解压
unzip sonarqube-7.9.1.zip # 重命名
mv sonarqube-7.9.1 sonarqube

如果报错unzip not command: yum -y install unzip

2.创建sonarqube用户组和用户、赋权

 # 创建sonarqube用户组
[root@localhost home]# groupadd sonarqube # 创建sonarqube用户 -g指定用户组 -p指定密码 -M不创建home目录
[root@localhost home]# useradd sonarqube -g sonarqube -p sonarqube -M # 赋予/home/sonarqube文件夹sonarqube用户权限 -R表示递归
[root@localhost home]# chown -R sonarqube:sonarqube /home/sonarqube

3.修改配置文件

# 修改sonarqube配置文件,增加postgres数据库配置
vi /home/sonarqube/conf/sonar.properties
# postgres数据库用户名
sonar.jdbc.username=postgres
# postgres数据库用户名密码
sonar.jdbc.password=postgres
# postgres数据库地址
sonar.jdbc.url=jdbc:postgresql://127.0.0.1:5432/sonar?currentSchema=public
# sonar的web访问端口
sonar.web.port=9002

4.配置启动参数

# 修改sonar的启动文件
vi /home/sonarqube/bin/linux-x86-64/sonar.sh # 将runuser设置为sonarqube
RUN_AS_USER=sonarqube

5.启动sonarqube

 # 切换sonarqube用户
[root@localhost home]# su sonarqube # 启动sonar
bash-4.2$ /home/sonarqube/bin/linux-x86-64/sonar.sh start
Starting SonarQube...
Started SonarQube.

浏览器访问http://192.168.8.20:9002 访问失败

查看日志查找原因,日志在 /home/sonarqube/logs 下,分别查看es和sonar的启动日志

 bash-4.2$ pwd
/home/sonarqube/logs
bash-4.2$ ls -l
总用量 12
-rw-r--r--. 1 sonarqube sonarqube 3402 9月 19 16:52 es.log
-rw-r--r--. 1 sonarqube sonarqube 88 7月 10 12:21 README.txt
-rw-r--r--. 1 sonarqube sonarqube 1522 9月 19 16:52 sonar.log

查看es.log (elasticsearch)

 bash-4.2$ cat es.log
2019.09.19 16:52:17 INFO es[][o.e.e.NodeEnvironment] using [1] data paths, mounts [[/home (/dev/mapper/centos-home)]], net usable_space [961.2gb], net total_space [962.7gb], types [xfs]
2019.09.19 16:52:17 INFO es[][o.e.e.NodeEnvironment] heap size [494.9mb], compressed ordinary object pointers [true]
2019.09.19 16:52:17 INFO es[][o.e.n.Node] node name [sonarqube], node ID [k784DcanQ1e4py5e75WQYQ]
2019.09.19 16:52:17 INFO es[][o.e.n.Node] version[6.8.0], pid[20791], build[default/tar/65b6179/2019-05-15T20:06:13.172855Z], OS[Linux/3.10.0-957.27.2.el7.x86_64/amd64], JVM[Oracle Corporation/Java HotSpot(TM) 64-Bit Server VM/11.0.4/11.0.4+10-LTS]
2019.09.19 16:52:17 INFO es[][o.e.n.Node] JVM arguments [-XX:+UseConcMarkSweepGC, -XX:CMSInitiatingOccupancyFraction=75, -XX:+UseCMSInitiatingOccupancyOnly, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.headless=true, -Dfile.encoding=UTF-8, -Djna.nosys=true, -XX:-OmitStackTraceInFastThrow, -Dio.netty.noUnsafe=true, -Dio.netty.noKeySetOptimization=true, -Dio.netty.recycler.maxCapacityPerThread=0, -Dlog4j.shutdownHookEnabled=false, -Dlog4j2.disable.jmx=true, -Djava.io.tmpdir=/home/sonarqube/temp, -XX:ErrorFile=../logs/es_hs_err_pid%p.log, -Des.enforce.bootstrap.checks=true, -Xms512m, -Xmx512m, -XX:+HeapDumpOnOutOfMemoryError, -Des.path.home=/home/sonarqube/elasticsearch, -Des.path.conf=/home/sonarqube/temp/conf/es, -Des.distribution.flavor=default, -Des.distribution.type=tar]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [analysis-common]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [lang-painless]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [mapper-extras]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [parent-join]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [percolator]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [reindex]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [repository-url]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] loaded module [transport-netty4]
2019.09.19 16:52:18 INFO es[][o.e.p.PluginsService] no plugins loaded
2019.09.19 16:52:19 WARN es[][o.e.d.c.s.Settings] [http.enabled] setting was deprecated in Elasticsearch and will be removed in a future release! See the breaking changes documentation for the next major version.
2019.09.19 16:52:20 INFO es[][o.e.d.DiscoveryModule] using discovery type [zen] and host providers [settings]
2019.09.19 16:52:21 INFO es[][o.e.n.Node] initialized
2019.09.19 16:52:21 INFO es[][o.e.n.Node] starting ...
2019.09.19 16:52:21 INFO es[][o.e.t.TransportService] publish_address {127.0.0.1:9001}, bound_addresses {127.0.0.1:9001}
2019.09.19 16:52:21 INFO es[][o.e.b.BootstrapChecks] explicitly enforcing bootstrap checks
2019.09.19 16:52:21 ERROR es[][o.e.b.Bootstrap] node validation exception
23 [2] bootstrap checks failed
24 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
25 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2019.09.19 16:52:21 INFO es[][o.e.n.Node] stopping ...
2019.09.19 16:52:21 INFO es[][o.e.n.Node] stopped
2019.09.19 16:52:21 INFO es[][o.e.n.Node] closing ...
2019.09.19 16:52:21 INFO es[][o.e.n.Node] closed

发现有两个错误:

24 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
25 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决第一个:

vi /etc/security/limits.conf
修改配置文件,在文件最后加入下面两个行。用户退出重新登录生效。
* soft nofile 65536
* hard nofile 65536

解决第二个:

临时生效

sudo sysctl -w vm.max_map_count=262144

永久生效

# root用户
vi /etc/sysctl.conf
# 添加以下配置
vm.max_map_count=
# 生效
sysctl -p

重启依旧报错,查看日志发现web.log报错

2019.09.19 17:13:20 WARN  web[][o.a.c.l.WebappClassLoaderBase] The web application [ROOT] appears to have started a thread named [elasticsearch[_client_][transport_worker][T#12]] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
java.base@11.0.4/sun.nio.ch.EPoll.wait(Native Method)
java.base@11.0.4/sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:120)
java.base@11.0.4/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:124)
java.base@11.0.4/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:136)
app//io.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)
app//io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:765)
app//io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:413)
app//io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
java.base@11.0.4/java.lang.Thread.run(Thread.java:834)
2019.09.19 17:13:20 INFO web[][o.s.s.a.EmbeddedTomcat] HTTP connector enabled on port 9002
2019.09.19 17:13:20 INFO web[][o.s.p.ProcessEntryPoint] Hard stopping process

经过排查是postgresql中sonar数据库未建立。

连接postgresql

CREATE DATABASE sonar WITH OWNER=postgres ENCODING='UTF-8';

启动成功。

初始化密码admin/admin

6.安装中文插件

【linux】【sonarqube】安装sonarqube7.9的更多相关文章

  1. 代码审查工具Sonarqube安装

    前言:在项目开发当中,完成需求并上线是一件很开心的事情,但为了能按时上线功能不得不为了完成功能而写代码,写的时候觉得先把功能上了以后再回头优化此处代码,但真正上线之后你就会发现你再也不想去修改之前遗留 ...

  2. Linux下安装 Posgresql 并设置基本参数

    在Linux下安装Postgresql有二进制格式安装和源码安装两种安装方式,这里用的是二进制格式安装.各个版本的Linux都内置了Postgresql,所以可直接通过命令行安装便可.本文用的是Cen ...

  3. Linux下安装Tomcat服务器和部署Web应用

    一.上传Tomcat服务器

  4. Linux下安装使用Solr

    Linux下安装使用Solr 1.首先下载Solr.mmseg4j分词包.tomcat并解压,这用google.百度都可以搜索得到下载地址. 2.因为要使用到中文分词,所以要设置编码,进入tomcat ...

  5. Linux下安装tar.gz类型的jdk,并配置环境变量

    近期因要学习一门技术,必须在Linux下运行,故开始学习如何使用Linux. 在安装jdk时出现了困难,环境变量配置不成功,花了一天时间才搞定,特分享出来,供大家参考. Linux下安装jdk,步骤如 ...

  6. Linux下安装和配置JDK与Tomcat(升级版)

    在这个版本 Linux下安装和配置JDK与Tomcat(入门版) 的基础上优化升级 1.下载相关软件 apache-tomcat-6.0.37.tar.gz jdk-6u25-linux-i586-r ...

  7. Linux下安装cmake

    cmake是一个跨平台的编译工具,特点是语句简单,编译高效,相对于原有的automake更为高效,接下来说明在Linux下安装cmake工具的过程 首先去cmake官网下载cmake安装包,下载界面网 ...

  8. 阿里云服务器Linux CentOS安装配置(零)目录

    阿里云服务器Linux CentOS安装配置(零)目录 阿里云服务器Linux CentOS安装配置(一)购买阿里云服务器 阿里云服务器Linux CentOS安装配置(二)yum安装svn 阿里云服 ...

  9. 阿里云服务器Linux CentOS安装配置(九)shell编译、打包、部署

    阿里云服务器Linux CentOS安装配置(九)shell编译.打包.部署 1.查询当前目录以及子目录下所有的java文件,并显示查询结果 find . -name *.java -type f - ...

  10. 阿里云服务器Linux CentOS安装配置(八)nginx安装、配置、域名绑定

    阿里云服务器Linux CentOS安装配置(八)nginx安装.配置.域名绑定 1.安装nginx yum -y install nginx 2.启动nginx service nginx star ...

随机推荐

  1. CSS3的滤镜filter属性

    css3的滤镜filter属性,可以对网页中的图片进行类似Photoshop图片处理的效果,例如背景的毛玻璃效果.老照片(黑白照片).火焰效果等. 一.blur(px)高斯模糊 二.brightnes ...

  2. Python day02 课堂笔记

    今天是第二天学习Python课程,主要从格式化输出,逻辑运算,编码,数据类型 这几个方面来学习. 1.格式化输出: % : 占位符 %s:字符串 %d:数字 注意: 在格式化的输出中,如果要输出%(因 ...

  3. MongoDB的一些高级语法.md

      MongoDB的一些高级语法 AND 和 OR操作 AND操作 OR操作 嵌入式文档 插入 查询 数组(Array)字段 插入 查询 聚合(Aggregation) 筛选数据 修改字段 注意事项 ...

  4. 实战jmeter入门压测接口性能

    什么是Jmeter? 是Apache组织开发的基于Java的压力测试工具. 准备工作: 一.安装配置好环境及压测工具 Jmeter下载地址:http://mirrors.tuna.tsinghua.e ...

  5. Leetcode之深度优先搜索(DFS)专题-1020. 飞地的数量(Number of Enclaves)

    Leetcode之深度优先搜索(DFS)专题-1020. 飞地的数量(Number of Enclaves) 深度优先搜索的解题详细介绍,点击 给出一个二维数组 A,每个单元格为 0(代表海)或 1( ...

  6. d3.js 教程 模仿echarts柱状图

    由于最近工作不是很忙,隧由把之前的charts项目用d3.js重写的一下,其实d3.js文档很多,但是入门不是很难,可是想真的能做一个完成的,交互良好的图还是要下一番功夫的.今天在echarts找到了 ...

  7. 将excel中某列数据中,含有指定字符串的记录取出,并生成用这个字符串命名的txt文件

    Python 一大重要的功能,就是可处理大量数据,那分不开的即是使用Excel表格了,这里我做下学习之后的总结,望对我,及广大同仁们是一个帮助Python处理Excel数据需要用到2个库:xlwt 和 ...

  8. NLP(二十三)使用LSTM进行语言建模以预测最优词

    N元模型 预测要输入的连续词,比如 如果抽取两个连续的词汇,则称之为二元模型 准备工作 数据集使用 Alice in Wonderland 将初始数据提取N-grams import nltk imp ...

  9. lightoj 1049 - One Way Roads(dfs)

    Time Limit: 0.5 second(s) Memory Limit: 32 MB Nowadays the one-way traffic is introduced all over th ...

  10. poj 3616 Milking Time (基础dp)

    题目链接 http://poj.org/problem?id=3616 题意:在一个农场里,在长度为N个时间可以挤奶,但只能挤M次,且每挤一次就要休息t分钟: 接下来给m组数据表示挤奶的时间与奶量求最 ...