Logo
Featured Image

Hướng Dẫn Cài Đặt SonarQube Trên Ubuntu 24.04

Author
Tobi 06/04/2026 7 views

Trong quy trình CI/CD và DevSecOps hiện đại, việc kiểm soát chất lượng mã nguồn (Code Quality) là ưu tiên hàng đầu. SonarQube chính là công cụ phổ biến nhất giúp tự động quét lỗi, phát hiện lỗ hổng bảo mật và "code smells" trước khi ứng dụng được triển khai.

Bài viết này sẽ hướng dẫn bạn cách cài đặt SonarQube (phiên bản Community) thủ công trên máy chủ Ubuntu 24.04 một cách chuẩn xác và tối ưu nhất.

1. Điều Kiện Tiên Quyết (Prerequisites)

Trước khi bắt tay vào cài đặt, hãy đảm bảo máy chủ VPS Ubuntu của bạn đáp ứng các tiêu chuẩn sau:

  • Hệ điều hành: Ubuntu 22.04 LTS hoặc 24.04 LTS.

  • Tài nguyên phần cứng: Tối thiểu 2GB RAM (Khuyến nghị 4GB RAM trở lên). SonarQube tích hợp Elasticsearch nên cực kỳ ngốn bộ nhớ, nếu RAM quá thấp, hệ thống sẽ bị lỗi OutOfMemory ngay khi khởi động.

  • Quyền truy cập: User có quyền sudo (Tuyệt đối không chạy SonarQube bằng quyền root).

2. Bước 1: Tối Ưu Hóa Kernel Cho Elasticsearch

Elasticsearch là "trái tim" tìm kiếm ngầm của SonarQube. Nó yêu cầu hệ điều hành phải tăng giới hạn file mở và bộ nhớ ảo.

Mở file cấu hình hệ thống:

sudo nano /etc/sysctl.conf

Thêm hai dòng sau vào cuối file:

vm.max_map_count=262144
fs.file-max=65536

Lưu file và chạy lệnh sau để áp dụng ngay thay đổi:

sudo sysctl -p

3. Bước 2: Cài Đặt Database PostgreSQL

Kể từ phiên bản 7.9, SonarQube đã ngừng hỗ trợ MySQL. Do đó, chúng ta sẽ sử dụng PostgreSQL.

Cài đặt PostgreSQL:

sudo apt update
sudo apt install postgresql postgresql-contrib -y

Truy cập vào shell của PostgreSQL để tạo cơ sở dữ liệu:

sudo -i -u postgres psql

Chạy các lệnh SQL sau để tạo User và Database (Bạn có thể thay đổi mật khẩu 'sonar' thành mật khẩu bảo mật hơn):

CREATE USER sonar WITH ENCRYPTED PASSWORD 'sonar';
CREATE DATABASE sonarqube OWNER sonar;
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonar;
\q

4. Bước 3: Cài Đặt Java 17

Các phiên bản SonarQube mới nhất yêu cầu môi trường thực thi là Java 17.

sudo apt install openjdk-17-jre -y

Kiểm tra lại phiên bản Java để chắc chắn: java -version.

5. Bước 4: Tải Và Cấu Hình SonarQube

Đầu tiên, tạo một User hệ thống riêng biệt có tên là sonar để chạy ứng dụng:

sudo useradd -b /opt/sonarqube -s /bin/bash sonar

Tải bản phát hành SonarQube mới nhất và giải nén vào thư mục /opt:

sudo apt install unzip -y
cd /opt
sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-10.4.1.88267.zip
sudo unzip sonarqube-10.4.1.88267.zip
sudo mv sonarqube-10.4.1.88267 sonarqube
sudo rm sonarqube-10.4.1.88267.zip

Phân quyền sở hữu thư mục cho user sonar:

sudo chown -R sonar:sonar /opt/sonarqube

Mở file cấu hình của SonarQube để kết nối với PostgreSQL:

sudo nano /opt/sonarqube/conf/sonar.properties

Thêm đoạn sau vào cuối file là được :

sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
sonar.web.javaAdditionalOpts=-server
sonar.web.host=0.0.0.0

6. Bước 5: Chạy SonarQube Dưới Dạng Systemd Service

Để SonarQube tự động chạy mỗi khi máy chủ khởi động lại (reboot), chúng ta cần tạo một Systemd service.

Tạo file service mới:

sudo nano /etc/systemd/system/sonarqube.service

Dán cấu hình sau vào file:

[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
User=sonar
Group=sonar
Restart=always
LimitNOFILE=65536
LimitNPROC=4096

[Install]
WantedBy=multi-user.target

Kích hoạt và khởi động dịch vụ:

sudo systemctl daemon-reload
sudo systemctl enable sonarqube.service
sudo systemctl start sonarqube.service

Kiểm tra trạng thái xem SonarQube đã chạy thành công chưa:

sudo systemctl status sonarqube.service

7. Truy Cập Giao Diện SonarQube

Quá trình khởi động SonarQube (đặc biệt là khởi chạy Elasticsearch) có thể mất từ 1 đến 2 phút. Sau đó, hãy mở trình duyệt web và truy cập:

  • URL: http://<IP-VPS-CỦA-BẠN>:9000

  • Username mặc định: admin

  • Password mặc định: admin

Ngay trong lần đăng nhập đầu tiên, hệ thống sẽ yêu cầu bạn đổi mật khẩu mới để đảm bảo an toàn.

Lời Kết

Việc cài đặt SonarQube trên Ubuntu đôi khi gặp khó khăn do thiếu hụt cấu hình tài nguyên RAM hoặc Kernel. Bằng cách làm theo từng bước cấu hình chuyên sâu ở trên, máy chủ SonarQube của bạn sẽ hoạt động cực kỳ ổn định, sẵn sàng tích hợp với Jenkins hoặc GitHub Actions để thực hiện quét mã nguồn liên tục.

Mẹo nhỏ: Để dự án trông chuyên nghiệp hơn, bạn nên cài đặt thêm Nginx làm Reverse Proxy và trỏ một sub-domain (ví dụ: sonar.com.quyenlt) kèm theo chứng chỉ SSL/HTTPS.

Nếu gặp lỗi ở bất kỳ bước nào, đừng ngần ngại để lại bình luận bên dưới nhé!

Bình luận (0)

+ =
Zalo