Гид по технологиям

Установка SonarQube на Ubuntu 16.04

• 6 min read • DevOps • Обновлено 27 Nov 2025
Установка SonarQube на Ubuntu 16.04
Установка SonarQube на Ubuntu 16.04

TL;DR

SonarQube — платформа для автоматической инспекции качества кода. В этой инструкции показано, как установить SonarQube на Ubuntu 16.04 с MariaDB и Apache в качестве обратного прокси. Включены шаги установки, настройка базы данных, сервиса systemd, настройка Apache и основные действия по безопасности и отладке.

Кому это полезно

  • Разработчикам и тимлидам, которые хотят развернуть централизованную проверку качества кода.
  • DevOps-инженерам, настраивающим CI/CD и мониторинг качества.

Основные варианты использования

primary intent: установка SonarQube related variants: установка SonarQube на Ubuntu, SonarQube MariaDB, Apache reverse proxy для SonarQube, SonarQube systemd


Требования

  • Свежая установка Ubuntu 16.04 (минимум). Если вы используете более новую версию Ubuntu — см. раздел «Совместимость и миграция».
  • Минимум 4 ГБ оперативной памяти; для больших инстансов рекомендуются 8+ ГБ.
  • Непользователь root с правами sudo.

Важно: Ubuntu 16.04 устарела — для новых развёртываний рассмотрите поддержку LTS 18.04/20.04 и более свежие версии SonarQube.

1. Подготовка системы

Обновите пакеты и установите необходимые утилиты:

sudo apt-get update -y
sudo apt-get upgrade -y

Затем приступайте к установке Java.

2. Установка Java

SonarQube — Java-приложение. В оригинальной инструкции предлагается Oracle Java 8 через PPA webupd8team. На современных системах предпочтительнее использовать OpenJDK 8 или OpenJDK 11.

Установка OpenJDK 8 (рекомендуется для совместимости с SonarQube 6.x):

sudo apt-get install openjdk-8-jdk -y

Проверьте версию Java:

java -version

Ожидаемый вывод похож на:

java version "1.8.0_xx"
Java(TM) SE Runtime Environment
Java HotSpot(TM) 64-Bit Server VM

Важно: если вы устанавливаете более новую версию SonarQube, проверьте требования к JVM в документации SonarQube. OpenJDK 11 поддерживается многими современными релизами.

3. Установка Apache и MariaDB

Мы будем использовать Apache как обратный прокси и MariaDB как СУБД.

sudo apt-get install apache2 mariadb-server -y

Запустите и включите сервисы на старте:

sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl start mysql
sudo systemctl enable mysql

4. Настройка MariaDB

Защитите установку MariaDB:

sudo mysql_secure_installation

Ответьте на вопросы, чтобы задать пароль root, удалить анонимных пользователей, запретить удалённый вход для root и удалить тестовую БД.

Затем создайте базу данных и пользователя для SonarQube:

mysql -u root -p
MariaDB [(none)]> CREATE DATABASE sonardb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON sonardb.* TO 'sonar'@'localhost' IDENTIFIED BY 'yourpassword';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Замените yourpassword на надёжный пароль и храните его в менеджере секретов.

Важно: используйте настоящие права доступа и не давайте привилегии шире необходимого в продакшне.

5. Установка SonarQube

Скачайте архив SonarQube (пример для версии 6.4 указан в исходной инструкции). Лучше проверить на официальном сайте актуальную версию.

wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.4.zip

Распакуйте и переименуйте папку:

sudo unzip sonarqube-6.4.zip -d /opt
sudo mv /opt/sonarqube-6.4 /opt/sonar

Откройте основной конфигурационный файл:

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

Измените параметры подключения к базе данных (пример):

##Database User credentials:
sonar.jdbc.username=sonar
sonar.jdbc.password=yourpassword
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false

Сохраните файл. Проверьте кодировку и корректность параметров.

Создайте systemd unit-файл, чтобы управлять SonarQube как сервисом:

sudo nano /etc/systemd/system/sonar.service

Вставьте содержимое:

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

[Service]
Type=forking

ExecStart=/opt/sonar/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonar/bin/linux-x86-64/sonar.sh stop

User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target

Примечание: запуск от root — быстрое решение для тестовой среды. Для продакшна создайте неперсональный системный аккаунт (sonar) и задайте корректные права на каталоги /opt/sonar.

Запустите сервис и включите автозапуск:

sudo systemctl start sonar
sudo systemctl enable sonar

Проверьте статус:

sudo systemctl status sonar

Логи находятся в /opt/sonar/logs/sonar.log.

6. Настройка Apache как обратного прокси

По умолчанию SonarQube слушает порт 9000. Настроим Apache для проксирования на порт 80.

Включите модули proxy:

sudo a2enmod proxy
sudo a2enmod proxy_http

Создайте виртуальный хост:

sudo nano /etc/apache2/sites-available/sonar.conf

Добавьте конфигурацию (пример):


    ServerName 192.168.15.189
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://localhost:9000/
    ProxyPassReverse / http://localhost:9000/
    TransferLog /var/log/apache2/sonar_access.log
    ErrorLog /var/log/apache2/sonar_error.log

Включите сайт и перезапустите apache:

sudo a2ensite sonar
sudo systemctl restart apache2

Если вы используете имя домена, укажите в ServerName соответствующий FQDN и настройте DNS.

7. Доступ к веб-интерфейсу

Включите UFW и откройте порт 80:

sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw status

Откройте браузер и перейдите по адресу http://192.168.15.189 (или по вашему домену).

Панель SonarQube

Войдите через кнопку «Log in».

Экран входа в SonarQube

Логин по умолчанию: admin / admin. После первого входа смените пароль администратора.

Главная панель SonarQube после входа

В администрировании проверьте системную информацию и центр обновлений:

Сведения о системе SonarQube

Центр обновлений SonarQube

После установки или обновления плагинов перезапустите систему через интерфейс или systemctl.

Полезные проверки и отладка

  • Проверить статус systemd: sudo systemctl status sonar
  • Просмотреть логи: tail -f /opt/sonar/logs/sonar.log
  • Убедиться, что MariaDB принимает подключения: mysql -u sonar -p -e “SHOW DATABASES;”
  • Проверить доступность порта 9000 локально: curl -I http://localhost:9000
  • Проверить работу прокси: curl -I http://127.0.0.1/ через Apache

Роли и чек-листы

Разделено по ролям — кратко.

Разработчик:

  • Войти и сменить пароль.
  • Установить SonarLint в IDE и привязать к серверу.
  • Проверить анализ простого проекта.

DevOps:

  • Настроить systemd unit под неполные права (пользователь sonar).
  • Создать резервную стратегию для базы данных и каталога /opt/sonar.
  • Настроить TLS на Apache (Let’s Encrypt).

Администратор безопасности:

  • Ограничить доступ к панели через брандмауэр и VPN.
  • Включить аудит и логирование доступа.
  • Проверить плагины и удалить ненужные.

Playbook — пошаговая сводка (быстрая)

  1. apt update && apt upgrade
  2. apt install openjdk-8-jdk apache2 mariadb-server unzip wget -y
  3. mysql_secure_installation
  4. Создать БД и пользователя sonardb/sonar
  5. wget + unzip SonarQube → /opt/sonar
  6. Отредактировать /opt/sonar/conf/sonar.properties
  7. Создать systemd unit и запустить сервис
  8. Настроить Apache proxy и открыть порт 80
  9. Войти в UI и сменить пароль

Критерии приёмки

  • Веб-интерфейс доступен по HTTP(S) и отвечает 200.
  • Пользователь admin может войти и сменить пароль.
  • Проект успешно анализируется и результат отображается на дашборде.
  • Сервис SonarQube автоматически запускается при старте ОС.
  • Логи не содержат ошибок инициализации БД.

Когда этот подход не подходит (контрпримеры)

  • Нужны лёгкие ephemeral-инстансы в CI: проще запускать SonarQube в Docker-контейнере или использовать SonarCloud.
  • У вас ограниченные ресурсы: SonarQube потребляет память и CPU; возможно, нужен выделенный сервер.
  • Вы хотите минимально управляемый сервис: используйте облачный продукт SonarCloud.

Альтернативные подходы

  • Docker Compose: удобен для тестирования и CI. Официальные образы SonarQube доступны на Docker Hub.
  • Kubernetes: для масштабируемых установок использовать StatefulSet + PersistentVolume + managed DB.
  • Использовать PostgreSQL вместо MariaDB (часто рекомендуется для продакшна).

Безопасность и приватность

  • Немедленно смените пароль admin.
  • Настройте HTTPS на Apache (Let’s Encrypt + certbot).
  • Ограничьте доступ к интерфейсу по IP или через VPN.
  • Храните пароли и секреты в менеджере секретов, а не в текстовых файлах.
  • Если вы обрабатываете приватный код, проверьте политику хранения логов и личных данных. SonarQube хранит метаданные анализа; при работе с персональными данными соблюдайте требования GDPR.

Совместимость и миграция

  • SonarQube 6.x специфичен по требованиям Java и БД. Для новых версий SonarQube проверьте официальную матрицу совместимости.
  • Ubuntu 16.04 устарела — планируйте миграцию на поддерживаемую LTS. Перед миграцией сделайте бэкап БД и каталога /opt/sonar.

Краткий справочник команд

  • systemctl status sonar — статус сервиса
  • tail -f /opt/sonar/logs/sonar.log — просмотр логов
  • sudo a2ensite sonar && sudo systemctl restart apache2 — включить конфигурацию Apache
  • mysql -u sonar -p -e “USE sonardb; SHOW TABLES;” — проверить БД

Тесты приёмки

  • Перейти на главную страницу → получить HTTP 200.
  • Выполнить быстрый анализ Java/JS проекта с помощью SonarScanner → получить отчёт.
  • Перезагрузить сервер → SonarQube запускается автоматически.

Короткий глоссарий (1 строка на термин)

  • SonarQube — сервер для анализа качества кода и метрик.
  • SonarScanner — клиент для отправки результатов анализа на сервер SonarQube.
  • SonarLint — плагин для IDE, показывающий предупреждения локально.

Заключение

В этой инструкции вы нашли пошаговый процесс установки SonarQube на Ubuntu 16.04, настройку MariaDB, systemd и Apache-прокси. Для продакшн-развёртывания адаптируйте права пользователей, включите HTTPS и следуйте рекомендациям по резервному копированию и мониторингу.

Примечание: если вам нужна помощь с настройкой Docker/Kubernetes или переносом на более новую Ubuntu, оставьте комментарий — приведу шаблоны и конфигурации.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро