SonarQube
- Links
Downloads (ältere Versionen) https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/
Admin-Passwort zurücksetzen https://docs.sonarsource.com/sonarqube-server/9.9/instance-administration/security#reinstating-admin-access
Kernel-Parameter https://docs.sonarsource.com/sonarqube-server/9.9/requirements/prerequisites-and-overview#platform-notes
Installation
Es wird eine bestehende Installation von PostgreSQL vorausgesetzt.
sysctl -w vm.max_map_count=524288
sysctl -w fs.file-max=131072
ulimit -n 131072
ulimit -u 8192
dnf install java-17-openjdk freetype fontconfig dejavu-sans-font unzip
useradd --home-dir /opt/sonarqube --shell /sbin/nologin sonarqube
VER=26.1.0.118079
wget "https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-${VER}.zip" --output-document=/tmp/sonarqube.zip
unzip -d /tmp /tmp/sonarqube.zip
cp --archive "/tmp/sonarqube-${VER}/." /opt/sonarqube/
chown -R sonarqube:sonarqube /opt/sonarqube
mkdir --parents /var/log/sonarqube /var/sonarqube/data /var/sonarqube/temp
chmod 700 /var/log/sonarqube /var/sonarqube/data /var/sonarqube/temp
chown -R sonarqube:sonarqube /var/log/sonarqube /var/sonarqube/data /var/sonarqube/temp
Anschliessend die Konfiguration anpassen:
sonar.jdbc.username=sonarqube
sonar.jdbc.password=linuxfabrik
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
sonar.web.javaAdditionalOpts=-server
sonar.web.host=192.0.2.10 # oder 127.0.0.1
sonar.web.port=9000
sonar.path.data=/var/sonarqube/data
sonar.path.logs=/var/log/sonarqube
sonar.path.temp=/var/sonarqube/temp
sonar.telemetry.enable=false
Systemd-Service erstellen. Den Dateinamen von sonar-application-*.jar muss an die jeweilige Version anpassen.
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/bin/java -Xms32m -Xmx32m -Djava.net.preferIPv4Stack=true -jar /opt/sonarqube/lib/sonar-application-26.1.0.118079.jar
StandardOutput=journal
LimitNOFILE=131072
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
Die Web-Plugins (${sonar.path.data}/)
systemctl daemon-reload
systemctl start sonarqube.service
Troubleshooting
- SonarQube-Start bricht ab
Folgende Meldungen im Log?
INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-9.9/temp INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:41582] INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube-9.9/elasticsearch]: /opt/sonarqube-9.9/elasticsearch/bin/elasticsearch INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube-9.9/temp INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:42890] INFO app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/opt/sonarqube-9.9/elasticsearch]: /opt/sonarqube-9.9/elasticsearch/bin/elasticsearch INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [ElasticSearch]: 1 INFO app[][o.s.a.SchedulerImpl] Process[ElasticSearch] is stopped INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped
Lösung: SonarQube darf nicht mit „root“ gestartet werden - dadurch ändern sich die Verzeichnisberechtigungen. Um SonarQube wieder zum laufen zu bringen, folgendes ausführen:
chown -R sonarqube:sonarqube /opt/sonarqube systemctl restart sonarqube.service
Migration
Auf dem bestehenden System:
systemctl stop sonarqube.service
DBNAME=sonarqube
sudo --user=postgres --chdir=/ pg_dump --no-owner $DBNAME > /tmp/$DBNAME.sql
Auf dem neuen System:
psql --username=sonarqube --dbname=sonarqube
\i /tmp/sonar.sql
systemctl start sonarqube.service
Built on 2026-03-09