Este guia descreve o processo de implantação completa de um projeto baseado no framework RuoYi em uma arquitetura de microsserviços, incluindo a configuração de ratsreamento de logs com Apache SkyWalking.
Pré-requisitos e Ferramentas
Prepare os seguintes componentes em seu servidor:
- Serviço de Configuração e Descoberta (Nacos): Para gerenciar configurações e registro de serviços.
- Banco de Dados Elasticsearch (ES): Versão 7.x ou superior, para armazenamento de dados de rastreamento e logs.
- Servidor de Monitoramento APM (SkyWalking): Coleta e visualização de métricas e rastreamento distribuído.
- Servidor Web Nginx: Para servir o frnotend e atuar como proxy reverso.
1. Configuração do Nacos
Após baixar e extrair o pacote do Nacos, edite o arquivo application.properties localizado no diretório conf. Configure as propriedades de conexão com o banco de dados MySQL do projeto RuoYi (endereço, nome do banco, usuário e senha).
Inicie o Nacos em modo standalone:
./startup.sh -m standalone
O painel de administração ficará acessível em http://<IP_DO_SERVIDOR>:8848/nacos.
2. Instalação do Elasticsearch
Siga os procedimentos padrão para instalar o Elasticsearch 7.x no seu sistema Linux. Lembre-se de criar um usuário dedicado para executar o serviço, pois o usuário root não é permitido.
3. Configuração do Apache SkyWalking
Extraia o pacote do SkyWalking (apache-skywalking-apm-es7). Navegue até o diretório conf e modifique o arquivo application.yml. As alterações críticas incluem:
- Configurar o armazenamento para usar o Elasticsearch.
- Definir o
nameSpacepara corresponder exatamente ao valor decluster.nameconfigurado no seu Elasticsearch. - Inserir as credenciais de acesso ao Elasticsearch (nome de usuário e senha).
Ajuste a porta da interface web no arquivo webapp/webapp.yml se necessário (padrão 8080). Inicie o SkyWalking:
cd bin
./startup.sh
Acesse o painel do SkyWalking em http://<IP_DO_SERVIDOR>:<PORTA_SKYWALKING>.
4. Configuração do Nginx
Após instalar o Nginx, configure o bloco de servidor (server) para atender à aplicação frontend e redirecionar chamadas de API. Um exemplo de configuração:
server {
listen 80;
server_name seu.dominio.com;
root /caminho/para/build/frontend;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_pass http://127.0.0.1:7100/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
5. Empacotamento e Implantação da Aplicação
Backend (Java/Spring Boot)
Antes de empacotar, é recomendável ajustar os identificadores de artefato (artifactId) no pom.xml para facilitar a gestão de portas. Atualize os endereços do Nacos em todos os arquivos de configuração .yml para apontar para o IP do seu servidor. Execute o comando mvn package para gerar os JARs. Copie os artefatos resultantes para um diretório de implantação no servidor.
Frontend (Vue.js)
No projeto Vue, altere a URL do backend no arquivo vue.config.js para o seu domínio ou IP público. Em seguida, execute o comando de build:
npm run build
Deploye os arquivos estáticos resultantes (da pasta dist) para o diretório raiz configurado no Nginx.
6. Inicialização dos Microsserviços com Agente SkyWalking
Cada serviço Spring Boot deve ser iniciado com o Java Agent do SkyWalking para habilitar o rastreamento. O parâmetro -javaagent aponta para o JAR do agente. O nome do serviço no SkyWalking (agent.service_name) deve ser único para cada microsserviço.
Exemplo de comando parra iniciar um serviço genérico:
nohup java \
-javaagent:/caminho/para/skywalking-agent/skywalking-agent.jar=agent.service_name=nome-do-servico \
-XX:+UseG1GC -server \
-jar nome-do-servico.jar \
> nome-do-servico.log 2>&1 &
Repita este padrão para cada microsserviço da sua aplicação (gateway, autenticação, módulos de sistema, etc.), atribuindo um nome de serviço distinto e a porta correta a cada um. Após a inicialização, os dados de rastreamento começarão a aparecer na interface do SkyWalking.