SonarQube auf Ubuntu 24.04 installieren

SonarQube ist eine Open-Source-Plattform zur kontinuierlichen Analyse und Verwaltung der Code-Qualität. Sie erkennt Fehler, Sicherheitslücken und verfolgt die Code-Qualität durch statische Analysen mit detaillierten Berichten. SonarQube unterstützt mehrere Programmiersprachen und verbessert die Qualität, Wartbarkeit und Sicherheit des Codes durch umsetzbare Erkenntnisse. Die Plattform ist in zwei Editionen erhältlich: Community und Enterprise.

Diese Anleitung zeigt, wie SonarQube auf Ubuntu 24.04 installiert wird. Sie umfasst die Installation sowie die Nutzung von SonarQube zur Analyse der Code-Qualität anhand von Beispielprojekten auf dem eigenen System.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du über Folgendes verfügst:

  • Zugriff auf eine Ubuntu 24.04-Instanz als nicht-root-Sudo-Nutzer.

Einrichten einer PostgreSQL-Datenbank für SonarQube

SonarQube benötigt eine PostgreSQL-Datenbank zur Speicherung der Daten. PostgreSQL ist in den Standardpaketquellen von Ubuntu verfügbar. Die folgenden Schritte zeigen, wie PostgreSQL installiert und eine neue Datenbank für SonarQube erstellt wird.

PostgreSQL installieren

Falls PostgreSQL noch nicht auf deinem Ubuntu 24.04 System installiert ist, installiere es mit:

$ sudo apt install -y postgresql-common postgresql -y

PostgreSQL für den automatischen Start aktivieren

Aktiviere den automatischen Start des PostgreSQL-Dienstes:

$ sudo systemctl enable postgresql

PostgreSQL starten

Starte den PostgreSQL-Dienst:

$ sudo systemctl start postgresql

PostgreSQL-Rolle für SonarQube erstellen

Melde dich als postgres-Benutzer in der PostgreSQL-Datenbank an:

Erstelle eine neue PostgreSQL-Rolle für SonarQube:

postgres=# CREATE ROLE sonaruser WITH LOGIN ENCRYPTED PASSWORD 'your_password';

SonarQube-Datenbank erstellen

Erstelle eine neue Datenbank für SonarQube:

postgres=# CREATE DATABASE sonarqube;

Gewähre der Rolle sonaruser alle Berechtigungen für die Datenbank:

postgres=# GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonaruser;

Wechsle zur neu erstellten Datenbank:

Gewähre alle Berechtigungen für das öffentliche Schema:

postgres=# GRANT ALL PRIVILEGES ON SCHEMA public TO sonaruser;

Verlasse die PostgreSQL-Konsole:


Installierung von SonarQube

Da SonarQube nicht in den Standard-Repositories von Ubuntu 24.04 verfügbar ist, muss es manuell installiert werden. Für die korrekte Funktion wird OpenJDK 17 benötigt.

Systempakete aktualisieren

Führe den folgenden Befehl aus, um die Paketliste zu aktualisieren:

OpenJDK 17 installieren

Installiere OpenJDK 17 mit folgendem Befehl:

$ sudo apt install openjdk-17-jdk -y

Unzip installieren

Um das SonarQube-Archiv zu extrahieren, installiere Unzip:

$ sudo apt install unzip -y

Java-Installation überprüfen

Stelle sicher, dass Java korrekt installiert wurde:

Die Ausgabe sollte ähnlich aussehen:

openjdk version "17.0.14" 2025-01-21
OpenJDK Runtime Environment (build 17.0.14+7-Ubuntu-124.04)
OpenJDK 64-Bit Server VM (build 17.0.14+7-Ubuntu-124.04, mixed mode, sharing)

SonarQube herunterladen und extrahieren

Besuche die SonarQube-Release-Seite, um die neueste Version zu finden, und lade das Archiv herunter:

$ sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-25.2.0.102705.zip

Extrahiere die heruntergeladenen Dateien:

$ unzip sonarqube-25.2.0.102705.zip

Verschiebe die extrahierten Dateien in ein systemweites Verzeichnis:

$ sudo mv sonarqube-25.2.0.102705 /opt/sonarqube

Dedizierten SonarQube-Benutzer erstellen

Erstelle aus Sicherheitsgründen einen dedizierten Systembenutzer ohne Anmeldeberechtigungen:

$ sudo adduser --system --no-create-home --group --disabled-login sonarqube

Gewähre dem neuen Benutzer die Eigentumsrechte am SonarQube-Verzeichnis:


$ sudo chown -R sonarqube:sonarqube /opt/sonarqube


SonarScanner CLI installieren

SonarQube verwendet spezifische Code-Scanner für verschiedene Programmiersprachen. Falls kein spezieller Scanner konfiguriert ist, wird standardmäßig der SonarScanner CLI verwendet. Befolge die folgenden Schritte zur Installation des SonarScanner CLI.

Lade die neueste Version des SonarScanner CLI herunter:

$ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-7.0.1.4817-linux-x64.zip

Extrahiere das heruntergeladene Archiv:

$ unzip sonar-scanner-cli-7.0.1.4817-linux-x64.zip

Verschiebe das extrahierte Verzeichnis nach /opt/sonarscanner:

$ sudo mv sonar-scanner-7.0.1.4817-linux-x64/ /opt/sonarscanner

SonarScanner CLI konfigurieren

Öffne die Datei sonar-scanner.properties zur Konfiguration:

$ sudo nano /opt/sonarscanner/conf/sonar-scanner.properties

Suche die folgende Zeile und ersetze den Standardwert durch 127.0.0.1:

...
sonar.host.url=127.0.0.1
...

Speichere die Änderungen und schließe die Datei.

SonarScanner-Berechtigungen setzen

Erteile die erforderlichen Ausführungsrechte für die SonarScanner-Binärdatei:

$ sudo chmod +x /opt/sonarscanner/bin/sonar-scanner

Erstelle einen symbolischen Link, um SonarScanner systemweit verfügbar zu machen:

$ sudo ln -s /opt/sonarscanner/bin/sonar-scanner /usr/local/bin/sonar-scanner

Installation überprüfen

Führe den folgenden Befehl aus, um die installierte SonarScanner-Version zu überprüfen:

Die Ausgabe sollte ähnlich aussehen:

INFO  SonarScanner CLI 7.0.1.4817
INFO  Java 17.0.13 Eclipse Adoptium (64-bit)
INFO  Linux 6.8.0-51-generic amd64

SonarQube Konfiguration aufsetzen

Damit SonarQube effizient arbeitet, ist eine korrekte Konfiguration erforderlich. Dazu gehören die Datenbankverbindung, Anpassungen an der Java-Laufzeitumgebung, Systemoptimierungen und Benutzerzugriffsrechte. Befolge diese Schritte, um SonarQube auf deinem Server richtig einzurichten.

SonarQube-Konfiguration anpassen

Öffne die Hauptkonfigurationsdatei von SonarQube, um die erforderlichen Einstellungen vorzunehmen:

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

Füge folgende Konfiguration am Ende der Datei hinzu. Ersetze sonaruser und your_password mit den tatsächlichen PostgreSQL-Zugangsdaten:

sonar.jdbc.username=sonaruser
sonar.jdbc.password=your_password
sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube
sonar.web.javaAdditionalOpts=-server
sonar.web.host=0.0.0.0
sonar.web.port=9000

Speichere die Datei und schließe den Editor. Diese Einstellungen ermöglichen die Verbindung zur PostgreSQL-Datenbank und erlauben Verbindungen über Port 9000.

Systemspeichergrenzen anpassen

Passe die Systemressourcen an, um die Leistung von SonarQube zu optimieren. Öffne die Systemkonfigurationsdatei:

$ sudo nano /etc/sysctl.conf

Füge die folgenden Zeilen am Ende der Datei hinzu:

vm.max_map_count=524288
fs.file-max=131072

Diese Einstellungen optimieren die Leistung von SonarQube:

  • vm.max_map_count=524288: Erhöht die Speicherzuweisungen für Elasticsearch.
  • fs.file-max=131072: Erhöht die maximalen offenen Dateien für eine stabilere Verarbeitung.

Benutzerressourcen-Limits setzen

Da SonarQube Elasticsearch verwendet, müssen die Ressourcenlimits erhöht werden. Erstelle eine neue Konfigurationsdatei:

$ sudo nano /etc/security/limits.d/99-sonarqube.conf

Füge folgende Zeilen hinzu:

sonarqube   -   nofile   131072
sonarqube   -   nproc    8192

Diese Einstellungen verbessern die Stabilität von SonarQube:

  • nofile=131072: Erhöht die Anzahl offener Dateien für hohe Arbeitslasten.
  • nproc=8192: Erhöht die maximalen Prozesse zur Vermeidung von Engpässen.

Firewall für SonarQube konfigurieren

Erlaube eingehende Verbindungen auf Port 9000:

Falls UFW (Uncomplicated Firewall) nicht installiert ist, installiere es und erlaube SSH-Verbindungen:

$ sudo apt install ufw -y && sudo ufw allow 22/tcp

Lade die Firewall neu, um die Änderungen zu übernehmen:

Firewall-Regeln überprüfen

Überprüfe den Firewall-Status, um sicherzustellen, dass die Regeln aktiv sind:

Die Ausgabe sollte ähnlich wie folgt aussehen:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
9000/tcp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
9000/tcp (v6)              ALLOW       Anywhere (v6)

SonarQube als Systemdienst einrichten

Um SonarQube effizient auf dem Server zu verwalten, sollte es als Systemdienst eingerichtet werden. Befolge die folgenden Schritte, um SonarQube als systemd-Service zu konfigurieren.

SonarQube-Service-Datei erstellen

Erstelle eine neue systemd-Dienstdatei für SonarQube:

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

Füge die folgende Konfiguration ein, um das Verhalten des Dienstes festzulegen:

[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=sonarqube
Group=sonarqube
PermissionsStartOnly=true
Restart=always

StandardOutput=syslog
LimitNOFILE=131072
LimitNPROC=8192
TimeoutStartSec=5
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei. Diese Konfiguration stellt sicher, dass SonarQube als Systemdienst verwaltet wird und automatisch gestartet wird.

Systemd neu laden, um Änderungen zu übernehmen

Führe den folgenden Befehl aus, um systemd neu zu laden und die neue Dienstdatei zu aktivieren:

$ sudo systemctl daemon-reload

SonarQube für den automatischen Start aktivieren

Stelle sicher, dass SonarQube bei jedem Systemstart automatisch gestartet wird:

$ sudo systemctl enable sonarqube

SonarQube-Dienst starten

Starte SonarQube manuell, um sicherzustellen, dass es korrekt läuft:

$ sudo systemctl start sonarqube

SonarQube-Dienststatus überprüfen

Überprüfe, ob der SonarQube-Dienst erfolgreich gestartet wurde:

$ sudo systemctl status sonarqube

Die erwartete Ausgabe sollte folgendermaßen aussehen:

● sonarqube.service - SonarQube service
     Loaded: loaded (/etc/systemd/system/sonarqube.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-12-26 14:12:47 WAT; 2h 54min ago
    Process: 1085 ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start (code=exited, status=0/SUCCESS)
   Main PID: 1108 (java)

Server neu starten

Um sicherzustellen, dass alle Änderungen übernommen werden und SonarQube korrekt funktioniert, starte den Server neu:


Zugriff auf und Verwaltung von SonarQube

SonarQube bietet eine grafische Weboberfläche zur Verwaltung der Code-Qualität, Projekte, Sicherheitsprobleme und mehr. Befolge die folgenden Schritte, um SonarQube aufzurufen, das Standard-Administratorpasswort zu ändern und einen neuen Benutzer für Code-Scans zu erstellen.

SonarQube-Webinterface öffnen

Öffne deinen Browser und navigiere zur folgenden URL:

Melde dich mit den Standard-Anmeldeinformationen an:

  • Benutzername: admin
  • Passwort: admin

Administratorpasswort ändern

Nach der Anmeldung wirst du aufgefordert, das Standardpasswort zu ändern. Wähle ein sicheres neues Passwort.

Neuen Benutzer für Code-Scans erstellen

Gehe zu AdministrationSecurityUsers und klicke auf Create User. Fülle die erforderlichen Felder aus und erstelle einen neuen Benutzer.

Erstelle einen API-Token für den neuen Benutzer, indem du in der Spalte Tokens auf das Symbol klickst. Speichere den generierten Token sicher, da dieser für Code-Scans benötigt wird.

Code-Analyse mit SonarScanner ausführen

Nachdem SonarQube eingerichtet wurde, kannst du Code-Scans mit dem SonarScanner durchführen.

Ein Beispielprojekt scannen

Wechsle mit folgendem Befehl in dein Home-Verzeichnis:

Erstelle ein Testprojekt-Verzeichnis:

$ mkdir sonar-example-test && cd sonar-example-test

Lade ein Beispielprojekt herunter:

$ wget https://github.com/SonarSource/sonar-scanning-examples/archive/master.zip
$ unzip master.zip
$ cd sonar-scanning-examples-master/sonar-scanner

Führe die Analyse mit SonarScanner durch (ersetze user-sonar_token mit deinem generierten Token):

$ sonar-scanner -D sonar.token=user-sonar_token

Die Ausgabe sollte ähnlich wie folgt aussehen:

INFO  Analysis total time: 22.116 s
INFO  SonarScanner Engine completed successfully
INFO  EXECUTION SUCCESS
INFO  Total time: 26.095s

Eigene Projekte mit SonarQube scannen

Um eigene Projekte zu scannen, erstelle eine Konfigurationsdatei im Hauptverzeichnis deines Projekts:

$ nano sonar-project.properties

Füge die folgende Konfiguration ein:

# Eindeutige Projektkennung
sonar.projectKey=MyProject:Key1   

# Anzeige-Name in der SonarQube UI  
sonar.projectName=First Project  

# Versionsnummer der Analyse
sonar.projectVersion=1.0      

# Kurzbeschreibung des Projekts
sonar.projectDescription=My First Project   

# Zu analysierendes Code-Verzeichnis
sonar.sources=src

Speichere die Datei und starte die Analyse mit:

$ sonar-scanner -D sonar.token=

Die Analyseergebnisse kannst du im SonarQube-Dashboard abrufen.

Fazit

Du hast erfolgreich SonarQube auf einer Ubuntu 24.04-Workstation installiert und konfiguriert. Nun kannst du Code-Scans durchführen und detaillierte Berichte zur Code-Qualität erstellen.

Falls du SonarQube hinter einem Reverse Proxy betreiben möchtest, kannst du Nginx so konfigurieren, dass eingehende Verbindungen sicher auf Port 9000 weitergeleitet werden. Für weiterführende Konfigurationen siehe die SonarQube-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…