sonarqube 9.4安装及启动时遇到的问题处理

本文详细介绍了在CentOS 7.6上安装Sonarqube 9.4的过程,包括修改PostgreSQL配置、创建数据库和用户、安装Sonarqube、解决启动时的权限和端口冲突问题,并提供了解决这些问题的步骤和配置文件修改建议。

环境:centos 7.6
备注:由于Sonarqube7.9及以后版本不支持mysql,jdk不支持1.8,且7.8及以前版本只支持mysql5.6~8.0的,mysql8.0以上不支持,sonarqube7.9以后版本用postgresql数据库,jdk需要用jdk11;

sonarqube安装前需要先安装jdk,数据库,服务器本身已装有jdk11,和postgresql14.2数据库,故对此不再叙述。

一、修改postgresql配置
PostgreSQL安装成功后,会在Linux系统中默认创建一个postgres用户,无密码,必须切换到postgres才可以访问PostgreSQL数据库,root用户无权访问

修改postgresql配置:
1、修改ip绑定,坚挺地址修改为*
Vi /var/lib/pgsql/14/data/ postgresql.conf
listen_addresses = ‘*’
2、允许所有ip访问
Vi /var/lib/pgsql/14/data/pg_hba.conf 文件中加入
host all all 0.0.0.0/0 md5

postgresql数据库配置:
查看版本:psql --version
查看进程:sudo systemctl status postgresql-14
进入postgresql命令行:su - postgres
启动sql shell:psql
创建sonarqube数据库:create database sonarqube;
创建用户:sonar
设置sonar用户密码:alter user sonar with password ‘sonar’;
给sonar用户授权: alter role sonar createdb;alter role sonar superuser;alter role sonar createrole;
更改sonarqube数据库拥有者:alter database sonarqube owner to sonar; (这一步是必须的,否则会sonarqube会连接失败)
退出数据库连接:\q
查看所有数据库: \l
切换当前数据库:\c sonarqube
查看当前数据库下所有表:\d

二、安装sonarqube
1、下载安装包,https://www.sonarqube.org/downloads/,下载社区版(9.4版本),存放目录:/data/sonarqube
2、添加系统用户sonar作为sonarqube启动用户(SonarQube 内置了 elasticsearch,elasticsearch 不允许使用 root 用户启动):
useradd sonar
passwd sonar
切换用户: su - sonar (不能直接su sonar切换用户,JDK会没有权限,必须su - sonar)
将sonarqube目录赋权给启动用户sonar:chown -R sonar:sonar /data/sonarqube/
3、解压安装包 unzip sonarqube-9.4.0.54424.zip
4、修改配置文件
Vi sonarqube-9.4.0.54424/conf/ sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://127.0.0.1/sonarqube (可以尝试localhost不起作用再修改127.0.0.1)
默认使用端口9000,如有端口冲突则修改端口,我使用8090
vi wrapper.conf,配置java命令地址
在这里插入图片描述

5、启动
./ bin/linux-x86-64/sonar.sh start(首次启动用sonar.sh console,方便查看错误信息)
6、验证是否搭建成功
(1)、连接PostgreSQL,查看sonar的数据库下面是否自动创建了相关的表。
(2)、检查sonarqube的服务端的地址(http://localhost:8090)是否可以正常访问。
7、登录
访问:localhost:8090
(1)默认账户admin/admin,首次登录,强制修改密码。
(2)安装汉化插件
选择 Administration -> Marketplace -> Plugins 中搜索 Chinese pack ,下载对应的jar包: sonar-l10n-zh-plugin-9.4.jar
将jar包放在sonarqube path/extensions/plugins路径下,重启sonarqube

启动遇到的问题:
1、启动报错java.lang.IllegalArgumentException: Unable to create shared memory
解决:检查temp下用户权限,需要sonar权限
chown -R sonar:sonar /data/sonarqube/sonarqube-9.4.0.54424/temp/

2、启动报错Process exited with exit value [es]: 143,可以用cat log/es.log 进行查看es提示的错误
ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch.
bootstrap check failure [1] of [2]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决:
vi /etc/sysctl.conf
#添加到文末
vm.max_map_count=262144
fs.file-max=65536
保存后执行sysctl -p使配置生效
vi /etc/security/limits.conf
#添加到文末

  • soft nofile 65536
  • hard nofile 65536
    修改后仍然无法启动的话尝试重新进入sonar用户,再启动sonarqube

3、启动报错:
BindHttpException[Failed to bind to 127.0.0.1:9001]; nested: BindException[Address already in use];
Likely root cause: java.net.BindException: Address already in use

解决:端口冲突导致,sonarqube需要使用9000端口,elasticsearch使用的是9001端口,但是其他程序把9001端口占用了,修改sonar.properties文件的sonar.search.port端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值