Configuración de SonarQube¶
Configuración del Sistema¶
Variables de Entorno¶
SonarQube utiliza las siguientes variables de entorno para su configuración:
Configuración de Memoria¶
Para optimizar el rendimiento, se recomienda configurar la memoria JVM:
SONAR_WEB_JVM_OPTS="-Xmx2g -Xms1g"
SONAR_CE_JVM_OPTS="-Xmx2g -Xms1g"
SONAR_SEARCH_JVM_OPTS="-Xmx1g -Xms512m"
Configuración de Calidad¶
Reglas de Calidad¶
SonarQube incluye reglas predefinidas para múltiples lenguajes:
- Java: 600+ reglas
- JavaScript: 300+ reglas
- Python: 200+ reglas
- C#: 400+ reglas
- PHP: 200+ reglas
Perfiles de Calidad¶
Se recomienda crear perfiles específicos para cada proyecto:
- Perfil Estricto: Para proyectos críticos
- Perfil Estándar: Para proyectos regulares
- Perfil Básico: Para proyectos de desarrollo
Integración con CI/CD¶
GitHub Actions¶
name: SonarQube Analysis
on: [push, pull_request]
jobs:
sonarqube:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: SonarQube Scan
uses: sonarqube-quality-gate-action@master
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: https://sonar.seekdev.com
Jenkins Pipeline¶
pipeline {
agent any
stages {
stage('SonarQube Analysis') {
steps {
withSonarQubeEnv('SonarQube') {
sh 'mvn clean verify sonar:sonar'
}
}
}
stage('Quality Gate') {
steps {
timeout(time: 1, unit: 'HOURS') {
waitForQualityGate abortPipeline: true
}
}
}
}
}
Configuración de Seguridad¶
Autenticación¶
SonarQube soporta múltiples métodos de autenticación:
- LDAP: Integración con directorio activo
- OAuth: Integración con proveedores OAuth
- SAML: Autenticación SAML
- Local: Usuarios locales
Autorización¶
Configurar grupos y permisos:
- Administradores: Acceso completo
- Usuarios: Acceso a proyectos asignados
- Análisis: Solo ejecutar análisis
Monitoreo y Alertas¶
Métricas Clave¶
- Cobertura de código: Porcentaje de código cubierto por tests
- Duplicación: Porcentaje de código duplicado
- Vulnerabilidades: Número de vulnerabilidades de seguridad
- Code smells: Número de problemas de calidad
Alertas¶
Configurar alertas para:
- Quality Gate fallido
- Nuevas vulnerabilidades críticas
- Degradación de cobertura de código
- Aumento de deuda técnica
Backup y Recuperación¶
Backup Automático¶
# Backup de la base de datos
docker exec postgres-sonarqube pg_dump -U sonar sonar > sonarqube_backup.sql
# Backup de datos
docker run --rm -v sonarqube_data:/data -v $(pwd):/backup alpine tar czf /backup/sonarqube_data.tar.gz -C /data .