目录
一、环境准备
1.jdk环境准备
使用jdk11及以上版本,本次安装使用的是jdk-17
安装jdk17之后进行配置环境变量
(1)ROOT用户——修改/etc/profile文件
export JAVA_HOME=/opt/idc/apps/jdk-17.0.7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
只需要改动JAVA_HOME为你自己jdk的安装目录即可
(2)非ROOT用户
如:home/gtxtadmin/修改 .bash_profile文件
2.安装PostgreSql数据库
2.1.下载安装包并上传至指定的目录下
PostgreSql 下载地址
将安装包在opt/idc/apps/下进行解压
tar -zxvf postgresql-14.5.tar.gz
2.2.安装
(1)创建postgres用户(本次使用的为现有用户gtxtadmin,展示的的是postgres,自行修改)
(2)创建安装目录以及启动日志文件
mkdir /opt/idc/apps/postgresql-14.5/pgsql
chown postgres /opt/idc/apps/postgresql-14.5/pgsql
mkdir /opt/idc/apps/postgresql-14.5/pgsql/data
chown postgres /opt/idc/apps/postgresql-14.5/pgsql/data
touch /opt/idc/apps/postgresql-14.5/pgsql/pgsql.log
chown postgres /opt/idc/apps/postgresql-14.5/pgsql/pgsql.log
(3)检测安装环境
这里需要注意,在编译前一定要安装C compiler(C语言编译器),如果没有安装,执行yum install -y gcc* 安装即可
cd /opt/idc/apps/postgresql-14.5
./configure --prefix=/opt/idc/apps/postgresql-14.5/pgsql --without-readline --without-zlib
(4)编译源码并安装
这个过程需要一定时间,请耐心等待……
/opt/idc/apps/postgresql-14.5目录下执行:
make && make install
看到如下图所示,表示编译安装成功
(5)初始化数据仓库
这里需要切换到postgres用户下执行下面命令(不支持root下运行)
su - postgres
cd /opt/idc/apps/postgresql-14.5/pgsql/bin
./initdb -D /opt/idc/apps/postgresql-14.5/pgsql/data
(6)启动数据库
/bin目录下
./pg_ctl -D /opt/idc/apps/postgresql-14.5/pgsql/data -l /opt/idc/apps/postgresql-14.5/pgsql/pgsql.log start
为了方便后面的操作postgres命令,我们切换到root用户下配置一下环境变量
su - root
echo 'export PGHOME=/opt/idc/apps/postgresql-14.5/pgsql ' >> /etc/profile
echo 'export PGDATA=$PGHOME/data' >> /etc/profile
echo 'export PATH=$PATH:$PGHOME/bin' >> /etc/profile
source /etc/profile
如下图所示,环境变量配置成功
再次切换到postgres用户下,执行postgres的命令看看
查询postgres服务状态
pg_ctl status
启动postgres服务
pg_ctl start
重启postgres服务
pg_ctl restart
停止postgres服务
pg_ctl stop
登录数据库不指定用户,默认是以postgres登录postgres数据库
psql
创建数据库用户
create user sonarqube password 'sonarqube'; 创建数据库用户sonarqube,密码为sonarqube
创建数据库
create database sonarqube; //没有指定数据库所属者
create database sonarqube owner sonarqube; //指定数据库所属者为sonarqube用户
登录指定用户和数据库登录
psql -U sonarqube -W sonarqube
给数据库授权
grant all privileges on database sonarqube to sonarqube;
查看数据库列表
\l
切换数据库
\c //切换到sonarqube数据库 \c sonarqube;
退出数据库用户
\q 或者 exit 或者quit
查看数据库用户权限列表
\du
2.3.客户端登录PostgreSql
客户端登陆需要修改两个配置文件
(1)postgresql.conf
cd /opt/idc/apps/postgresql-14.5/pgsql/data
vi postgresql.conf
将listen_addresses = ‘localhost’ 改成 listen_addresses = '*'
(2)pg_hba.conf
vi pg_hba.conf
在# IPv4 local connections:下面添加如下内容
host all all 0.0.0.0/0 password
(3)重启服务
pg_ctl restart
(4)客户端连接须知
在用客户端连接之前要关闭防火墙或者是放行5432端口,否则客户端也无法连接。
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
放行5432端口
firewall-cmd --permanent --zone=public --add-port=5432/tcp
执行完上述命令后重启下服务器,然后启动下数据库服务
su - postgres
pg_ctl start
现在可以用navicat客户端连接数据库,这里选择用sonarqube用户登录sonarqube数据库
二、安装SonarQube
sonarqube安装包下载
2.1.安装SonarQube
(1)这里SonarQube是一个java的web项目,依赖elasticsearch和postgresql才能运行,因为elasticsearch不能使用root账户运行,所以现在创建用户(本次使用了现有用户gtxtadmin)
参考
到/opt/idc/apps目录解压sonarqube压缩包
unzip sonarqube-9.9.0.65466.zip
将sonarqube文件下的所有内容的属主设置成gtxtadmin
chown -R gtxtadmin:gtxtadmin /opt/idc/apps/sonarqube-9.9.0.65466
本次安装在: /opt/idc/apps/sonarqube-9.9.0.65466
(2)修改sonar.properties
切换到sonarqube的conf文件下
cd /opt/idc/apps/sonarqube-9.9.0.65466/conf
编辑配置文件sonar.properties,添加如下内容
#sonarqube运行产生的数据文件和临时文件存放目录
sonar.path.data=/opt/idc/apps/sonarqube-9.9.0.65466/data
sonar.path.temp=/opt/idc/apps/sonarqube-9.9.0.65466/temp
#访问sonar的IP地址、端口号以及上下文,host就填你部署SonarQube的这台主机或者虚拟机的IP,端口随便定,不要和已有端口冲突就行
sonar.web.host=10.105.0.16
#默认端口
sonar.web.port=9000
sonar.web.context=/
#sonar运行需要连接的postgres参数
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql:// 10.105.0.16:5432/sonarqube?currentSchema=public
(3)启动服务
gtxtadmin用户下启动(自己使用的非root用户)
来到sonarqube的bin目录下准备启动
cd /opt/idc/apps/sonarqube-9.9.0.65466/bin/linux-x86-64
./sonar.sh start
查看启动日志,显示如下图表示启动成功
tail -f /opt/idc/apps/sonarqube-9.9.0.65466/logs/sonar.log
(或者输入命令 ./sonar.sh console)
2.2.使用SonarQube
先关闭防火墙再来访问
浏览器访问地址:10.106.0.12:9000 账户 :admin 密码: admin
首次登录后会要求你修改密码
三、启动报错问题
Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log
需要修改配置文件:
vi /etc/sysctl.d/99-sysctl.conf
文件末尾加上:
fs.file-max = 2097152
vm.max_map_count = 262144
vm.swappiness = 1
运行命令:
sysctl –p
四、SonarQube插件安装
1.将插件放置到安装目录的extensions/plugins/下面
2.重启服务/bin/linux-x86-64/目录下
执行 ./sonar.sh restart
查看启动面板
执行 ./sonar.sh console