Instalasi SonarQube di Ubuntu Server 18.04

SonarQube merupakan sebuah tool open source berbasis Java yang akan membantu kalian dalam menganalisis kualitas kodingan dan juga membuat laporan atas hasil analisis tersebut. Aplikasi ini akan memindai kodingan kalian untuk mencari potensi bug dari kodingan tersebut, kerentanan, dan masalah pemeliharaan.

Setelah hasil dari pemindaian tersebut didapat, SonarQube akan memberikan info tersebut dalam bentuk sebuah laporan yang memungkinkan kalian untuk mengidentifikasi masalah yang ada pada kodingan kalian.

Untuk melakukan instalasi SonarQube di Ubuntu Server 18.04, yang perlu kalian lakukan:

Persyaratan

Hardware

  • Server dengan RAM minimal 2GB

Software

  • Java (OpenJDK 11)
  • PostgreSQL 10 atau 9.3-9.6

1 – Lakukan System Update

Sebelum melakukan instalasi paket yang mendukung, lebih baik jika kalian meng-update sistem kalian. Masuk ke dalam server kalian sebagai sudo user dan jalankan perintah:

sudo apt update
sudo apt dist-upgrade

2 – Instalasi OpenJDK 11

Untuk melakukan instalasi OpenJDK 11, jalankan perintah:

sudo apt install default-jdk
Instalasi OpenJDK 11

3 – Instalasi dan konfigurasi PostgreSQL

Instalasi repositori PostgreSQL:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -
repositori PostgreSQL

Instalasi database PostgreSQL dengan menjalankan perintah:

sudo apt-get -y install postgresql postgresql-contrib
Instalasi Database PostgreSQL

Jalankan PostgreSQL server dan buat service-nya berjalan secara otomatis saat booting dengan menjalankan:

sudo systemctl start postgresql
sudo systemctl enable postgresql
Menjalankan service PostgreSQL

Service sudah berjalan, sekarang waktunya untuk mengganti password default dari PostgreSQL. Caranya:

sudo passwd postgres
Mengubah password PostgreSQL

Sekarang masuk sebagai user postgres dengan perintah:

su - postgres

Buat user baru dengan mengetikkan:

create user sonar

Masuk ke shell PostgreSQL dengan perintah:

psql

Buatlah password baru untuk user yang baru saja dibuat. Perintahnya:

alter user sonar with encrypted password '<passwordnya>';
Buat user sonar dan menentukan passwordnya

Buat database baru dan assign user yang baru dibuat ke database tersebut dengan perintah:

create database sonar owner sonar;

Keluar dari shell psql dan kembali ke sudo user dengan perintah

\q
exit
Membuat database, keluar sheel dan kembali ke sudo user

4 – Mengunduh dan Mengonfigurasi SonarQube

Unduh file arsip Sonarqube dengan perintah:

wget -c https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.4.1.35646.zip
Mengunduh file SonarQube

Untuk melihat versi paling terbaru dari SonarQube, kalian bisa melihat DI SINI.

Unzip file tersebut dengan menjalankan perintah:

sudo unzip sonarqube-8.4.1.35646.zip
proses unzipping

Jika sudah selesai, ubah nama direktori hasil unzip tersebut agar lebih mudah. Caranya:

mv sonarqube-8.4.1.35646 sonarqube
mengubah nama direktori

berikan permission kepada user untuk direktori /opt/sonarqube:

sudo chown -R user:user /opt/sonarqube

Buka konfigurasi SonarQube menggunakan editor yang kalian suka:

vi /opt/sonarqube/conf/sonar.properties

dan temukan bagian:

#sonar.jdbc.username=
#sonar.jdbc.password=

hapus tanda ‘pagar’ (#) dan masukkan username dan password yang sudah kalian buat sebelumnya. Tampilannya kini menjadi:

sonar.jdbc.username=sonar
sonar.jdbc.password=<passwordnya>

Berikutnya temukan koneksi PostgreSQL-nya:

#sonar.jdbc.url=jdbc:postgresql://localhost/sonar

dan ubah menjadi:

sonar.jdbc.url=jdbc:postgresql://localhost/sonar
Isi username, password dan koneksi DBnya

Simpan konfigurasi tersebut jika sudah selesai. Dan yang terakhir, jalankan SonarQube dalam mode server:

sonar.web.javaAdditionalOpts=-server
server mode

5 – Mengonfigurasi Service Systemd

SonarQubda dapat dijalankan dengan secara langsung menggunakan startup script yang disediakan dalam paket installer-nya. Namun untuk alasan kenyamanan, kalian harus mengatur sendiri systemd untuk aplikasi ini. Caranya buat sebuah file dengan nama sonar.service:

vi /etc/systemd/system/sonar.service

Isi file tersebut dengan:

[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=administrator 
Group=administrator 
Restart=always 

[Install] 
WantedBy=multi-user.target
isi dari file sonar.service

Nyalakan service-nya dengan perintah:

sudo systemctl start sonar

Enable service-nya secara otomatis saat booting dengan perintah:

sudo systemctl enable sonar
enable it

Untuk memeriksa service-nya, ketik perintah:

sudo systemctl status sonar
Jalankan service dan memeriksa statusnya

6 – Mengatur Nginx

Sekarang server SonarQube sudah berjalan, sekarang waktunya untuk mengonfigurasi Nginx. Lakukan instalasi Nginx dengan mengetikkan perintah:

sudo apt install nginx
instalasi Nginx

Buat file konfigurasi Nginx dengan editor yang kalian suka. Ketikkan:

sudo vi /etc/nginx/sites-enabled/sonarqube

Isi dengan:

server{
    listen      9000;
    server_name sonarqube.developerinsider.co;
    access_log  /var/log/nginx/sonar.access.log;
    error_log   /var/log/nginx/sonar.error.log;
    proxy_buffers 16 64k;
    proxy_buffer_size 128k;

    location / {
        proxy_pass  http://127.0.0.1:9000;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_redirect off;
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto http;
    }
}
konfigurasi nginx

Simpan file tersebut dan kemudian keluar. Pastikan konfigurasinya tidak memiliki syntax yang error dengan menjalankan perintah:

sudo nginx -t
pemeriksaan syntax

Jika kalian melihat ada error, segera perbaikai error tersebut dan kembali jalankan perintah nginx -t. Jika error sudah tidak ada, restart service nginx dengan perintah:

sudo service nginx restart
restart nginx

7 – Pengaturan SonarQube

Untuk mengatur proses finalisasi dari SonarQube, masuk ke browser dan akses nama domain atau IP dari server kalian.

http://<nama_domain atau IP>

Jika sudah melakukan proses finalisasi, kalian akan melihat tampilan seperti ini:

Halaman depan
Halaman Login

Tambahan

Untuk memantau proses dari SonarQube, ada beberapa file log yang bisa kalian periksa:

  • Service Logs
    tail -100f /opt/sonarqube/logs/sonar.log
  • Web Server Logs
    tail -100f /opt/sonarqube/logs/web.log
  • ElasticSearch Logs
    tail -100f /opt/sonarqube/logs/es.log
  • Compute Engine Logs
    tail -100f /opt/sonarqube/logs/ce.log

Beberapa Pesan Error

Seperti yang sudah saya jelaskan tadi. Bila aplikasinya tidak berjalan, silakan kalian melihat log yang ada.

service tidak berjalan dengan baik

Berikut ini beberapa pesan error yang pernah saya dapatkan ketika menjalankan SonarQube:

  1. Dijalankan dengan user root

    Dijalankan dengan user root

    Bila kalian melihat error seperti di atas, kalian harus membuat user untuk menjalankan SonarQube, memasukkan user tersebut ke dalam file sonar.service dan mengubah user:group foldernya dengan user:group yang baru saja kalian buat

  2.  Tidak menggunakan Java 11
    Tidak menggunakan Java 11

    Bila kalian melihat error seperti gambar di atas, yang perlu kalian lakukan adalah melakukan instalasi OpenJDK 11 dan menjadikannya default. Cara untuk melakukan instalasi OpenJDK 11 sudah saya berikan di awal tulisan.

  3. Permission
    wrong permission

    Bila kalian melihat pesan error seperti gambar di atas, itu tandanya ada permission yang salah pada file atau folder yang disebutkan dalam log. Segera ubah permissionnya.

  4. System Settings
    System settings

    Jika kalian melihat pesan error di atas, maka ada beberapa parameter yang harus kalian ubah pada file sysctl.conf. Untuk menjalankan SonarQube, nilai vm.max_map_count >=262144 dan nilai fs.file-max >=65536.

    Ubah nilai tersebut pada file /etc/sysctl.conf menggunakan editor yang kalian suka:

    vi /etc/sysctl.conf

    Tambahkan:

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

    dan kemudian jalankan:

    sysctl -p

    fixing

*****

Itu tadi cara melakukan isntalasi SonarQube pada Ubuntu Server 18.04. Untuk cara penggunaannya, akan saya coba buat dalam postingan terpisah. Sampai jumpa di tutorial selanjutnya. Semoga informasi ini bisa berguna ya 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *