Linux系统中SonarQube安装与配置全攻略

一、环境准备

系统要求

  • 操作系统:CentOS/RHEL 7+ 或 Ubuntu 18.04+(推荐Ubuntu 20.04 LTS)
  • 硬件配置:至少4GB内存(生产环境建议8GB+),20GB以上磁盘空间
  • 软件依赖:
    • Java环境:SonarQube 8.9+需OpenJDK 11(可通过java -version检查,版本需≥11)
    • 数据库:MySQL 5.7+/MariaDB 10.3+(本次以MySQL 8.0为例)
二、安装SonarQube服务端
步骤1:下载与解压
# 切换到安装目录(建议/usr/local)
cd /usr/local
# 下载SonarQube 8.9 LTS版本(可通过官网获取最新URL)
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.0.43852.zip
# 解压文件
sudo unzip sonarqube-8.9.0.43852.zip
# 重命名目录(可选)
sudo mv sonarqube-8.9.0.43852 sonarqube
步骤2:创建专用用户(安全最佳实践)
# 创建sonar用户(避免以root运行)
sudo useradd -m -d /opt/sonar -s /bin/false sonar
# 赋予目录权限
sudo chown -R sonar:sonar /usr/local/sonarqube
sudo chmod -R 755 /usr/local/sonarqube
三、配置MySQL数据库
步骤1:安装MySQL 8.0
# Ubuntu系统示例
sudo apt-get update
sudo apt-get install mysql-server
# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
步骤2:创建SonarQube专用数据库
# 进入MySQL控制台
mysql -u root -p
# 创建数据库(注意字符集配置)
CREATE DATABASE sonarqube CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建专用用户(建议使用强密码)
CREATE USER 'sonar_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
# 授予权限(生产环境建议限制主机访问)
GRANT ALL PRIVILEGES ON sonarqube.* TO 'sonar_user'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
四、配置SonarQube核心参数
# 切换到配置目录
cd /usr/local/sonarqube/conf
# 编辑主配置文件
sudo nano sonar.properties

关键配置修改

# 数据库连接(MySQL 8.0需指定驱动参数)
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonarqube?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8mb4&serverTimezone=UTC
sonar.jdbc.username=sonar_user
sonar.jdbc.password=StrongPassword123!

# 服务端口(默认9000,如需修改)
sonar.web.port=9000

# 内存配置(生产环境建议调整)
# sonar.jvm.options=-Xms2048m -Xmx2048m -XX:MaxPermSize=512m
五、启动与验证服务
步骤1:启动SonarQube
# 切换到sonar用户
sudo su - sonar
# 启动服务(后台运行)
cd /usr/local/sonarqube/bin/linux-x86-64
./sonar.sh start
# 查看启动日志
tail -f ../logs/sonar.log
步骤2:验证服务运行
  • 访问http://服务器IP:9000,默认账号密码:admin/admin
  • 若无法访问,检查防火墙设置:
    # Ubuntu防火墙配置示例
    sudo ufw allow 9000/tcp
    
六、安装SonarScanner(代码分析客户端)
步骤1:下载与配置
cd /usr/local
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
sudo unzip sonar-scanner-cli-4.6.2.2472-linux.zip -d sonar-scanner
# 配置环境变量
sudo nano /etc/profile.d/sonar-scanner.sh

添加内容:

export SONAR_SCANNER_HOME=/usr/local/sonar-scanner
export PATH=$PATH:$SONAR_SCANNER_HOME/bin

使配置生效:

source /etc/profile
步骤2:执行代码分析

在项目根目录创建sonar-project.properties

sonar.projectKey=your-project-key
sonar.projectName=Project Name
sonar.projectVersion=1.0
sonar.sources=.
sonar.java.binaries=target/classes  # Java项目示例
sonar.sourceEncoding=UTF-8

执行分析命令:

sonar-scanner -Dsonar.host.url=http://服务器IP:9000 -Dsonar.login=admin -Dsonar.password=admin
七、安全与优化建议
  1. 生产环境配置

    • 启用HTTPS:通过Nginx代理配置SSL证书
    • 限制数据库访问:仅允许SonarQube服务器IP连接MySQL
    • 定期备份数据库
  2. 性能优化

    • 调整JVM内存参数(根据服务器配置)
    • 启用索引:在sonar.properties中添加sonar.jdbc.batchSize=500
  3. 用户管理

    • 禁用默认admin账号,创建专用管理员
    • 配置LDAP/SSO集成(企业版功能)
八、常见问题排查
  1. 启动失败

    • 检查sonar.log是否有Java版本不兼容错误
    • 确认MySQL驱动存在(SonarQube 8.9需手动下载mysql-connector-java-8.0.23.jarextensions/jdbc-driver/mysql/目录)
  2. 分析结果未显示

    • 检查SonarScanner日志是否有网络连接错误
    • 确认项目Key唯一性,避免覆盖已有分析数据
  3. 内存不足

    • 增加sonar.jvm.options中的Xms/Xmx值
    • 关闭不必要的后台服务释放内存

通过以上步骤,你已完成SonarQube在Linux系统的全流程部署。如需进一步配置插件(如Java、Python代码分析),可在SonarQube后台市场place中搜索安装。生产环境建议参考官方文档进行高可用集群配置。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

awei0916

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值