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.
- Baca Juga: Instalasi Jenkins di atas CentoS Server 7
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

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 -

Instalasi database PostgreSQL dengan menjalankan perintah:
sudo apt-get -y install postgresql postgresql-contrib

Jalankan PostgreSQL server dan buat service-nya berjalan secara otomatis saat booting dengan menjalankan:
sudo systemctl start postgresql sudo systemctl enable postgresql

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

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 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

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

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

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

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

Simpan konfigurasi tersebut jika sudah selesai. Dan yang terakhir, jalankan SonarQube dalam mode server:
sonar.web.javaAdditionalOpts=-server

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

Nyalakan service-nya dengan perintah:
sudo systemctl start sonar
Enable service-nya secara otomatis saat booting dengan perintah:
sudo systemctl enable sonar

Untuk memeriksa service-nya, ketik perintah:
sudo systemctl status sonar

6 – Mengatur Nginx
Sekarang server SonarQube sudah berjalan, sekarang waktunya untuk mengonfigurasi Nginx. Lakukan instalasi Nginx dengan mengetikkan perintah:
sudo apt install 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; } }

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

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

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:


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.

Berikut ini beberapa pesan error yang pernah saya dapatkan ketika menjalankan SonarQube:
- 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
- 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.
- 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.
- 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 🙂