ubuntu20.04部署sonarqube 9.9

要求

前提条件

sysctl.conf

# echo "vm.max_map_count=524288" >> /etc/sysctl.conf
# echo "fs.file-max=131072" >> /etc/sysctl.conf
# sysctl -p

limits.conf

# echo "sonarqube   -   nofile   131072" >> /etc/security/limits.conf
# echo "sonarqube   -   nproc    8192" >> /etc/security/limits.conf

硬件要求

  • 8 个核心
  • 16GB RAM 

软件版本

OpenJDK:17

PostgreSQL:15

创建sonarqube用户

# groupadd -g 2023 -o -r sonarqube
# useradd -M -N -g sonarqube -o -r -d /data/apps/sonarqube -s /bin/false -c "sonarqube server" -u 2023  sonarqube

设置数据库

创建数据库sonar

postgres=# create database sonar;     # 创建数据库
CREATE DATABASE
postgres=# create user sonar with encrypted password 'sonar';  # 创建用户并设置密码
CREATE ROLE
postgres=# grant all privileges on database sonar to sonar;  # 授权用户
GRANT
postgres=# alter database sonar owner to sonar;   # 执行变更
ALTER DATABASE

查看数据库sonar

postgres=# \l sonar;
                                            List of databases
 Name  | Owner | Encoding |   Collate   |    Ctype    | ICU Locale | Locale Provider | Access privileges 
-------+-------+----------+-------------+-------------+------------+-----------------+-------------------
 sonar | sonar | UTF8     | en_US.UTF-8 | en_US.UTF-8 |            | libc            | =Tc/sonar        +
       |       |          |             |             |            |                 | sonar=CTc/sonar
(1 row)

连接数据库sonar

su - postgres -c " psql -U sonar -d sonar  -h 192.168.1.23 -p 5432 "
Password for user sonar: 
psql (15.2 (Ubuntu 15.2-1.pgdg20.04+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.

sonar=> 

下载sonarqube

# wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.9.0.65466.zip

设置sonarqube

解压sonarqube

# unzip sonarqube-9.9.0.65466.zip -d /data/apps/sonarqube
# ln -sv /data/apps/sonarqube/sonarqube-9.9.0.65466.zip/ /usr/local/sonarqube

修改sonarqube目录权限

# chown -R sonarqube.sonarqube /data/apps/sonarqube && chown -R sonarqube.sonarqube /usr/local/sonarqube

sonar.properties

egrep -v "^$|^#" /usr/local/sonarqube/conf/sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://192.168.1.23/sonar
sonar.path.data=/data/apps/sonarqube/data
sonar.path.temp=/data/apps/sonarqube/temp
sonar.search.port=9001
sonar.web.port=9000

创建数据目录

mkdir /data/apps/sonarqube/{data,temp}

修改数据目录属组

chown -R sonarqube.sonarqube /data/apps/sonarqube/

开机启动

查看nohup路径

which nohup
/usr/bin/nohup

sonarqube.service

[Unit]
Description=SonarQube service
After=syslog.target network.target

[Service]
Type=simple
User=sonarqube
Group=sonarqube
PermissionsStartOnly=true
ExecStart=/usr/bin/nohup /usr/local/jdk/bin/java -Xms512m -Xmx512m -Djava.net.preferIPv4Stack=true -jar /usr/local/sonarqube/lib/sonar-application-9.9.0.65466.jar
StandardOutput=syslog
LimitNOFILE=131072
LimitNPROC=8192
TimeoutStartSec=5
Restart=always
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

开机启动

systemctl enable sonarqube.service && systemctl start sonarqube.service
Created symlink /etc/systemd/system/multi-user.target.wants/sonarqube.service → /lib/systemd/system/sonarqube.service.

查看服务状态

systemctl status sonarqube.service
● sonarqube.service - SonarQube service
     Loaded: loaded (/lib/systemd/system/sonarqube.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2023-03-01 15:53:07 CST; 3min 12s ago
   Main PID: 2264047 (java)
      Tasks: 216 (limit: 18883)
     Memory: 1.9G
     CGroup: /system.slice/sonarqube.service
             ├─2264047 /usr/local/jdk/bin/java -Xms512m -Xmx512m -Djava.net.preferIPv4Stack=true -jar /usr/local/sonarqube/lib/sonar-application-9.9.0.65466.jar
             ├─2264077 /usr/local/jdk-17.0.6/bin/java -XX:+UseG1GC -Djava.io.tmpdir=/data/apps/sonarqube/temp -XX:ErrorFile=/data/apps/sonarqube/sonarqube-9.9.0.65466/logs/es_hs_err_pid%p.log -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch ->
             ├─2264227 /usr/local/jdk-17.0.6/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/apps/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/jav>
             └─2264555 /usr/local/jdk-17.0.6/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/apps/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java>

查看sonarqube日志

tail -f /usr/local/sonarqube/logs/sonar.log 
2023.03.01 16:03:58 INFO  app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /data/apps/sonarqube/temp
2023.03.01 16:03:58 INFO  app[][o.s.a.es.EsSettings] Elasticsearch listening on [HTTP: 127.0.0.1:9001, TCP: 127.0.0.1:11121]
2023.03.01 16:03:58 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[ELASTICSEARCH] from [/data/apps/sonarqube/sonarqube-9.9.0.65466/elasticsearch]: /data/apps/sonarqube/sonarqube-9.9.0.65466/elasticsearch/bin/elasticsearch
2023.03.01 16:03:58 INFO  app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2023.03.01 16:04:05 INFO  app[][o.s.a.SchedulerImpl] Process[es] is up
2023.03.01 16:04:05 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[WEB_SERVER] from [/data/apps/sonarqube/sonarqube-9.9.0.65466]: /usr/local/jdk-17.0.6/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/apps/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Dcom.redhat.fips=false -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-9.9.0.65466.jar:/data/apps/sonarqube/sonarqube-9.9.0.65466/lib/jdbc/postgresql/postgresql-42.5.1.jar org.sonar.server.app.WebServer /data/apps/sonarqube/temp/sq-process13303001845063311473properties
2023.03.01 16:04:12 INFO  app[][o.s.a.SchedulerImpl] Process[web] is up
2023.03.01 16:04:12 INFO  app[][o.s.a.ProcessLauncherImpl] Launch process[COMPUTE_ENGINE] from [/data/apps/sonarqube/sonarqube-9.9.0.65466]: /usr/local/jdk-17.0.6/bin/java -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djava.io.tmpdir=/data/apps/sonarqube/temp -XX:-OmitStackTraceInFastThrow --add-opens=java.base/java.util=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED -Dcom.redhat.fips=false -Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError -Dhttp.nonProxyHosts=localhost|127.*|[::1] -cp ./lib/sonar-application-9.9.0.65466.jar:/data/apps/sonarqube/sonarqube-9.9.0.65466/lib/jdbc/postgresql/postgresql-42.5.1.jar org.sonar.ce.app.CeServer /data/apps/sonarqube/temp/sq-process17095243054073289148properties
2023.03.01 16:04:15 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
2023.03.01 16:04:15 INFO  app[][o.s.a.SchedulerImpl] SonarQube is operational

访问sonarqube

默认用户名:admin

默认密码:admin

参考文档

https://docs.sonarqube.org/latest/

posted @ 2023-03-01 16:36  小吉猫  阅读(822)  评论(0编辑  收藏  举报