七叶笔记 » golang编程 » CentOS7上Sonarqube的安装与配置,汉化插件超详细,转发收藏备用

CentOS7上Sonarqube的安装与配置,汉化插件超详细,转发收藏备用

一、前置条件

1.1 相关软件

  • sonarqube版本 7.8 (build 26217)
  • JAVA (build 1.8.0_191-b12)
  • Mysql 数据库Server version: 5.7.30

1.2 关闭防火墙

查看selinux墙状态

命令:sestatus

临时关闭:setenforce 0

永久关闭:vi /etc/selinux/config

设置: selinux =disabled

selinux关闭状态

防火墙状态

firewalld关闭状态

上图是关闭状态,如果没有关闭需要用以下步骤关闭

  • systemctl stop firewalld
  • systemctl disable firewalld
  • 重新reboot启动系统.

1.3 mysql数据库安装

具体安装方法在我的头条文章中有详细的介绍,大家可以移步浏览,

安装mysql完毕后,设置 mysql /123456

1.3.1、数据库配置

1.3.1.1进入数据库

1.3.1.2创建数据库,名称为sonarqube_db,

mysql> create database sonarqube_db character set utf8 collate utf8_general_ci;(collate核对的意思,utf-_general_ci一般比较,不区分大小写)

Query OK, 1 row affected (0.01 sec)

1.3.1.3创建用户并设置密码

mysql> create user ‘sonarqube_user’ identified by ‘password’;

Query OK, 0 rows affected (0.01 sec)

1.3.1.4给用户赋权

mysql> grant all privileges on *.* to sonarqube_user@’%’ identified by ‘password’ with grant option;

with grant option意思是新创建的用户可以给其他用户再赋权。

Query OK, 0 rows affected, 1 warning (0.00 sec)

给sonarqube_user赋权限。

mysql> grant all privileges on *.* to sonarqube_user@’localhost’ identified by ‘password’;

Query OK, 0 rows affected, 1 warning (0.00 sec)

赋值生效

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

1.3.1.5相关操作

查看当前登录用户

mysql> select user();

查看当前数据库

mysql> select database();

查询所有用户和host;

mysql> select host,user from mysql.user;

1.3.1.6设置mysql自启动

vim /usr/lib/systemd/system/mysql.service

[Unit]

Description=MySQL Server

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld –defaults-file=/etc/my.cnf

1.3.1.7启动mysql并且把这个服务加入到开机启动项

systemctl start mysql

systemctl enable mysql

1.4安装 JDK (java)

1.4.1下载jdk-8u191-linux-x64.tar.gz

1.4.2解压:tar zxvf jdk -8u191-linux-x64.tar.gz

出现如下目录

1.4.3、在/usr/下建立 java 文件夹,把这个目录移动到java下面

[root@rhel7 ~]# find / -name jre //查找jdk安装路径。

1.4.4、把jdk1.8目录移动到/usr/java下面。

[root@rhel7 software]# mv jdk1.8.0_191/ /usr/java

1.4.5、配置环境变量

vi /etc/profile

#java

export JAVA_HOME=/usr/java/jdk1.8.0_191

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib

1.4.6、配置文件生效

[root@rhel7 jdk1.8.0_191]# source /etc/profile

1.4.7、验证

[root@rhel7 jdk1.8.0_191]# java -version

java version “1.8.0_191”

Java(TM) SE Runtime Environment (build 1.8.0_191-b12)

Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

JDK安装完成。

二、安装sonarqube

2.1相关下载

SonarQube官网:

官方文档:

官方下载:

2.2把下载的文件解压到/usr/local下

[root@rhel7 home]# unzip -o sonarqube-7.8.zip -d /usr/local/

2.3配置文件

位置:/opt/sonarqube/conf/ sonar.properties

[root@rhel7 conf]# vim sonar.properties

[root@rhel7 conf]# pwd

/usr/local/sonarqube-7.8/conf

上图中的第12行里面,sonarqube_db是在mysql中创建的数据库,对应sonarqube_user用户。

下图是配置访问sonarqube的web端口,可以修改为自己想要的端口,系统默认是9000。

2.4添加centos用户sonar

[root@rhel7 etc]# adduser sonar

[root@rhel7 etc]# passwd sonar

密码:sonar1234

2.5为了安全,设置权限

sonarqube-7.8安装目录设置权限为sonar用户和sonar组

[root@rhel7 sonarqube-7.8]# chown -R sonar:sonar /usr/local/sonarqube-7.8

2.6启动

使用sonarqube_user用户切换到/usr/local/sonarqube-7.8/bin/linux-x86-64

[sonar@rhel7 linux-x86-64]$ ./sonar.sh start

三、排错

无法访问,web页面无法打开。

3.1报错如下图

解决办法

设置系统参数

编辑/etc/security/limits.conf

追加以下内容,注意每行前面有个*号,并且*号和字母之间空格分开。

Soft nofile 65535#具体值可以根据错误提示中的[]中的修改

Hard nofile 65535

编辑以下内容

[root@rhel7 temp]# vim /etc/sysctl.conf

保存后执行

[root@rhel7 temp]# sysctl –p

3.2报错如下

WrapperSimpleApp: Encountered an error running main: java.nio.file.AccessDeniedException: /usr/local/sonarqube-7.8/temp/conf/es/elasticsearch.yml

以root用户登录,删除/usr/local/sonarqube-7.8/temp目录下的所有内容

Rm –rf *

3.3报错如下图

查看sonar.log提示

Unable to start JVM : No such file or directory (2)

原因:JVM参数没有配置

解决办法

编辑 vim wrapper.conf文件

/usr/local/sonarqube-7.8/conf/wrapper.conf

增加

wrapper.java.command=/usr/java/jdk1.8.0_191/bin/java

以上的路径是安装java的路径

3.4总体排查思路

可以先跟着sonar.log日志,如果报了es错误,可以查看es.log;如果报了web错误,可以看web.log.(这些日志的位置在/usr/local/sonarqube-7.8/logs/)

安装的时候遇到的错误有”root用户无法启动elasticsearch问题”,”mysql连接问题”,”版本太低问题”,”内存溢出”……都可以在日志中找寻。

3.5端口问题

检测9000端口是否打开。

telnet 9000

如上图,当光标出现闪烁的时候,说明端口是通的。这一方法,通用于任何服务,是linux排错的常用方法之一。

9000端口如果要通,必须关掉防火墙,seliux,同时可以正常启动sonarqube服务,也就是ss –lnt可以看到9000和9001端口。

[root@rhel7 logs]# ss -tnl

3.6 ss命令:

用来显示处于活动状态的套接字信息,可以用来获取socket统计信息,可以显示和 netstat 类似的内容。

-h:显示帮助信息

-v:显示指令版本信息

-n:不解析服务名称,以数字方式显示端口;(常用)

-a:显示所有的 套接字 ;(常用)

-l:显示处于监听状态的套接字;(常用)

-t:只显示tcp套接字;(常用)

四、sonarqube离线安装插件,包括汉化。

下载插件后,放入sonar目录如下

sonarqube-7.8\extensions\plugins

chown –R sonar:sonar sonarqube-7.8文件夹,然后重启sonar就可以了。

五、设置开机自启动

5.1编写开机自启动脚本

进入到开机自启动调用文件目录

vim /etc/systemd/system/sonarqube.service

内容如下:

[Unit]

Description=SonarQube service

After=syslog.target network.target

[Service]

Type=forking

//根据自己安装目录的启动路径填写

ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start

ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop

//填写启动sonarqube的授权用户和用户组

User=sonar

Group=sonar

Restart=always

//linux启动调优

LimitNOFILE=65536

LimitNPROC=10240

[Install]

WantedBy=multi-user.target

5.2启用服务器重启后自动启动 sonarqube 服务

[root@rhel7 ~]# systemctl enable sonarqube.service

5.3查看开机自启动服务列表

[root@rhel7 ~]# systemctl list-unit-files|grep enabled

5.4查看sonarqube的开机自启动服务

[root@rhel7 ~]# systemctl status sonarqube.service -l

启动完成

5.5完全启动的日志输出

[root@rhel7 logs]# tail -f sonar.log

5.6网页访问正常

相关文章