# Linux系統如何安裝SonarQube
## 一、SonarQube簡介
SonarQube是一個開源的代碼質量管理平臺,用于持續分析和測量代碼質量。它支持多種編程語言,能夠檢測代碼中的錯誤、漏洞、代碼異味以及重復代碼等問題。通過SonarQube,開發團隊可以更好地維護代碼質量,提高軟件的可靠性和可維護性。
### 主要功能
- 代碼質量分析
- 靜態代碼分析
- 技術債務管理
- 多語言支持(Java, C#, JavaScript, Python等)
- 與CI/CD工具集成
## 二、安裝前準備
在開始安裝SonarQube之前,需要確保系統滿足以下要求:
### 1. 系統要求
- **操作系統**:Linux(本文以Ubuntu 20.04為例)
- **Java**:Oracle JRE 11或OpenJDK 11
- **數據庫**:PostgreSQL 9.6+、MySQL 5.6+或Oracle(推薦PostgreSQL)
- **內存**:至少4GB RAM
- **磁盤空間**:至少2GB可用空間
### 2. 安裝依賴
確保系統已安裝必要的依賴工具:
```bash
sudo apt update
sudo apt install -y wget unzip
SonarQube需要Java 11運行環境:
sudo apt install -y openjdk-11-jdk
驗證Java版本:
java -version
SonarQube支持多種數據庫,這里以PostgreSQL為例:
sudo apt install -y postgresql postgresql-contrib
啟動PostgreSQL服務:
sudo systemctl start postgresql
sudo systemctl enable postgresql
切換到postgres用戶:
sudo -i -u postgres
創建SonarQube數據庫和用戶:
createuser sonarqube
psql -c "ALTER USER sonarqube WITH PASSWORD 'sonarqube';"
createdb -O sonarqube sonarqube
exit
編輯PostgreSQL配置文件:
sudo nano /etc/postgresql/12/main/postgresql.conf
修改以下參數:
shared_buffers = 256MB
work_mem = 4MB
編輯pg_hba.conf文件:
sudo nano /etc/postgresql/12/main/pg_hba.conf
添加以下內容:
local sonarqube sonarqube md5
重啟PostgreSQL服務:
sudo systemctl restart postgresql
訪問SonarQube官網獲取最新版本下載鏈接,或直接使用wget下載:
wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
解壓文件:
unzip sonarqube-9.4.0.54424.zip -d /opt
sudo mv /opt/sonarqube-9.4.0.54424 /opt/sonarqube
出于安全考慮,不建議使用root用戶運行SonarQube:
sudo groupadd sonarqube
sudo useradd -d /opt/sonarqube -g sonarqube sonarqube
sudo chown -R sonarqube:sonarqube /opt/sonarqube
編輯SonarQube配置文件:
sudo nano /opt/sonarqube/conf/sonar.properties
修改以下配置:
sonar.jdbc.username=sonarqube
sonar.jdbc.password=sonarqube
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.web.host=0.0.0.0
sonar.web.port=9000
編輯系統限制文件:
sudo nano /etc/security/limits.conf
添加以下內容:
sonarqube - nofile 65536
sonarqube - nproc 4096
編輯sysctl.conf文件:
sudo nano /etc/sysctl.conf
添加以下內容:
vm.max_map_count=262144
fs.file-max=65536
應用更改:
sudo sysctl -p
創建服務文件:
sudo nano /etc/systemd/system/sonarqube.service
添加以下內容:
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=4096
[Install]
WantedBy=multi-user.target
重新加載systemd配置:
sudo systemctl daemon-reload
啟動SonarQube服務:
sudo systemctl start sonarqube
sudo systemctl enable sonarqube
檢查服務狀態:
sudo systemctl status sonarqube
如果系統啟用了防火墻,需要開放9000端口:
sudo ufw allow 9000/tcp
sudo ufw reload
在瀏覽器中訪問:
http://<服務器IP>:9000
默認管理員憑據: - 用戶名:admin - 密碼:admin
首次登錄后會提示修改密碼。
以Java項目為例,安裝SonarScanner:
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip
unzip sonar-scanner-cli-4.7.0.2747-linux.zip -d /opt
sudo mv /opt/sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner
配置環境變量:
sudo nano /etc/profile.d/sonar-scanner.sh
添加:
export PATH=$PATH:/opt/sonar-scanner/bin
執行掃描:
sonar-scanner \
-Dsonar.projectKey=my-project \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=your_token
錯誤現象:SonarQube啟動失敗,日志顯示Elasticsearch相關問題
解決方案:
- 確保系統配置了足夠的虛擬內存
- 檢查/opt/sonarqube/elasticsearch/config/jvm.options
中的內存設置
錯誤現象:無法連接到PostgreSQL
解決方案:
- 檢查PostgreSQL服務是否運行
- 驗證數據庫用戶名和密碼是否正確
- 檢查pg_hba.conf
配置
錯誤現象:啟動時提示權限不足
解決方案:
- 確保/opt/sonarqube
目錄及其子目錄屬于sonarqube用戶
- 檢查系統限制配置是否正確
本文詳細介紹了在Linux系統上安裝和配置SonarQube的完整過程,包括: 1. 安裝前的準備工作 2. PostgreSQL數據庫的安裝與配置 3. SonarQube的安裝與配置 4. 系統服務的設置 5. 基本的Web界面訪問與使用 6. 常見問題的解決方法
通過SonarQube,開發團隊可以實現代碼質量的持續監控和改進,提高軟件開發的整體質量。建議定期更新SonarQube版本以獲取最新功能和安全補丁。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。