# Serverspace.com.br Knowledge Base https://serverspace.com.br/support/help/como-conectar-a-api-gpt-no-painel-de-controle-do-serverspace.md Saiba como integrar a API GPT no painel de controle do Serverspace: criação de uma chave de API, como trabalhar com os modelos GPT, Claude e Gemini, além de exemplos de solicitações via API. Os modelos modernos de IA são capazes de analisar texto, compreender o contexto das solicitações e gerar respostas semelhantes à fala humana. Atualmente, esses modelos são amplamente utilizados no desenvolvimento de aplicações, automação de processos de negócios, análise de dados, suporte técnico, educação e criação de conteúdo. A conexão dos modelos via API permite integrar recursos de inteligência artificial aos seus próprios serviços e aplicações: desde chatbots e geração de texto até processamento de dados e automação de tarefas rotineiras. O painel de controle da Serverspace oferece uma interface conveniente para trabalhar com diversos modelos de IA, incluindo GPT, Claude e Gemini. Neste guia, mostraremos como conectar a API GPT, criar uma chave de API e começar a trabalhar com os modelos pelo painel de controle. Acesse o menu **GPT** e clique em **Experimentar GPT**: Depois disso, você terá acesso a diversos modelos: de GPT até Claude e Gemini: Acesse o menu **Chaves de API**. As chaves de API são utilizadas para interagir com os modelos via API ou pelo chat integrado no painel de controle. Com elas, é possível conectar modelos de IA a aplicações, serviços e ferramentas internas, automatizando o processamento de solicitações e a geração de conteúdo. Por padrão, uma chave de API default já será criada para você: Copie a chave de API — ela será necessária para conectar os modelos em aplicações, scripts ou serviços de terceiros: Após obter a chave de API, você poderá enviar requisições aos modelos via API. Para começar, será necessário o endpoint do serviço e a própria chave de autorização. Exemplo de requisição usando cURL: ```bash curl https://api.serverspace.com.br/gpt/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "gpt-4o-mini", "messages": [ { "role": "user", "content": "Olá! Escreva uma breve descrição da Serverspace." } ] }' ``` Onde: - **YOUR_API_KEY** — sua chave de API do painel de controle; - **model** — o modelo utilizado; - **messages** — um array de mensagens para o modelo. Se a requisição for bem-sucedida, a API retornará a resposta do modelo em formato JSON. Agora você pode usar a API GPT para integrar funcionalidades de IA em suas próprias aplicações, chatbots, sistemas de automação e outros serviços. https://serverspace.com.br/support/help/como-criar-uma-chave-de-api-para-a-api-gpt-no-serverspace.md Saiba como criar uma nova chave de API para o GPT no painel de controle do Serverspace. Guia passo a passo sobre como gerenciar chaves, configurar o acesso e trabalhar com segurança com a API. Chaves de API adicionais permitem separar o acesso entre diferentes projetos, aplicações e colaboradores. Isso é útil ao trabalhar com múltiplos serviços, ambientes de teste ou integrações separadas que exigem gerenciamento independente de acesso. O uso de chaves de API separadas também simplifica o controle de requisições e aumenta a segurança: se necessário, uma chave pode ser desativada ou substituída sem afetar os demais serviços. Neste guia, mostramos como criar uma nova chave de API para trabalhar com modelos GPT no painel de controle da Serverspace. Para criar uma chave de API, certifique-se de que o serviço GPT está ativado: Depois disso, acesse o menu **Chaves de API**. Aqui será exibida a lista de chaves criadas. Por padrão, uma chave chamada **default** é criada automaticamente: Para criar uma nova chave de API, clique no botão **Criar**: Em seguida, informe o nome da nova chave: Após a confirmação, o processo de criação da chave será iniciado. Após a criação bem-sucedida, a nova chave aparecerá no menu **Chaves de API**: https://serverspace.com.br/support/help/como-escolher-um-modelo-e-enviar-a-primeira-solicitacao-pela-api-do-gpt.md Saiba como escolher o modelo adequado e enviar a primeira solicitação via API GPT no Serverspace: visão geral dos modelos disponíveis, configuração dos parâmetros e exemplo de solicitação de API. Na interface de gerenciamento do Serverspace, está disponível um amplo conjunto de modelos modernos de inteligência artificial de diferentes provedores. Antes de enviar a primeira requisição, é importante selecionar o modelo adequado de acordo com a tarefa — velocidade, qualidade da resposta, janela de contexto e custo. ## Modelos disponíveis atualmente ## Configuração de parâmetros e execução da requisição Após selecionar o modelo, será aberto um menu no qual você pode gerenciar as chaves e parâmetros do modelo para obter o melhor resultado. Aqui estão as seguintes configurações disponíveis: - **Seleção da API key** — por padrão é usada a chave **default** - **Seleção do modelo** — por exemplo, Claude Haiku 4.5 ou GPT-5.4 - **Temperature** — nível de criatividade da resposta (por exemplo, 0.6) - **Top P** — parâmetro de amostragem de probabilidades (por exemplo, 0.1) - **Número máximo de tokens** — limite do tamanho da resposta ## Endpoint da API Para enviar requisições, utiliza-se o seguinte endpoint: ``` https://gpt.serverspace.com.br/v1/chat/completions ``` ### Exemplo de primeira requisição Para fazer uma requisição via GPT API, você precisa montar uma requisição HTTP usando a API key e o modelo selecionado. Normalmente, utiliza-se o formato cURL: ```bash curl https://gpt.serverspace.ru/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "gpt-5.4-mini", "messages": [ { "role": "user", "content": "Olá! Explique como funciona a API do GPT." } ], "temperature": 0.6, "top_p": 0.1, "max_tokens": 500 }' ``` Após executar a requisição, você receberá uma resposta do modelo em formato JSON, que pode ser utilizada no seu aplicativo ou serviço. https://serverspace.com.br/support/help/como-controlar-os-gastos-com-a-api-gpt-no-painel-do-serverspace.md Controle os gastos com a API GPT no Serverspace usando limites de tokens. Saiba como funciona a cobrança de solicitações recebidas e enviadas e como reduzir os custos com a geração de respostas. Ao trabalhar com a API do GPT na plataforma da Serverspace, é importante entender que o custo das solicitações depende diretamente da quantidade de tokens processados. Tokens são unidades de texto que compõem a solicitação e a resposta do modelo. Um token é aproximadamente equivalente a: - 1 palavra (em média) em inglês, - ou partes de palavras / caracteres em outros idiomas. Quanto maior a solicitação e a resposta, maior o custo. ## Custo dos tokens A Serverspace utiliza precificação separada — cada modelo possui suas próprias taxas para tokens de entrada e saída, por exemplo para o modelo GPT-5.3 Codex: - Custo das solicitações recebidas: R$ 13/1M fichas - Custo das solicitações de saída: R$ 100/1M fichas O que isso significa na prática: **Tokens de entrada** — são os textos que você envia para o modelo (prompt, instruções, contexto). **Tokens de saída** — são as respostas geradas pelo modelo. ## Por que é importante controlar os tokens O controle do consumo de tokens permite: - evitar custos inesperados, - prever o orçamento da API, - otimizar a qualidade/comprimento das respostas, - gerenciar a carga em aplicações. Sem limites de tokens, o modelo pode gerar respostas muito longas, aumentando o custo de cada solicitação. ## Como funciona o limite de tokens A plataforma da Serverspace oferece a configuração: - Quantidade máxima de tokens - Essa configuração define o limite superior do tamanho da resposta do modelo. **Se um limite for definido**: o modelo não poderá ultrapassar o número de tokens estabelecido na resposta; o texto será automaticamente cortado ao atingir o limite; você obtém um custo previsível por solicitação. ## Vantagens de usar limites de tokens O uso de limites de tokens permite: _Controlar o orçamento_ — evita respostas muito longas e caras **Aumentar a previsibilidade de custos** — facilita o planejamento financeiro **Otimizar a performance** — respostas mais rápidas com menos texto **Gerenciar melhor o comportamento do modelo** — equilíbrio entre concisão e detalhamento ## Recomendações de uso Para chatbots: 300–800 tokens Para respostas curtas / FAQs: 100–300 tokens Para geração de artigos: 1000+ tokens (com atenção ao orçamento) https://serverspace.com.br/support/help/como-integrar-a-api-gpt-do-serverspace-a-um-bot-do-telegram.md Conecte a API GPT do Serverspace ao bot do Telegram em Python. Guia passo a passo para configurar, obter a chave API, escrever o código e executar o bot de IA. Os bots do Telegram são amplamente utilizados para automação de tarefas, suporte ao cliente, geração de conteúdo e desenvolvimento de assistentes de IA. Ao conectar a API GPT da Serverspace, você poderá adicionar recursos de inteligência artificial ao seu bot e receber respostas de modelos de linguagem modernos diretamente no Telegram. A API GPT da Serverspace utiliza um formato de requisições compatível com OpenAI, permitindo que a integração seja concluída em apenas alguns minutos e implementada em praticamente qualquer linguagem de programação. ## Requisitos Antes de Começar Antes de configurar a integração, certifique-se de que você possui: - Uma conta Serverspace; - O serviço GPT API ativado; - Uma chave de API para acessar o serviço; - Um bot do Telegram criado através do BotFather; - Um servidor ou ambiente local com Python instalado; - Conhecimentos básicos de Python. O seguinte endpoint da API será utilizado: ```xml [https://gpt.serverspace.com.br/v1/chat/completions](https://gpt.serverspace.com.br/v1/chat/completions) ``` ## Etapa 1. Criar um Bot do Telegram Abra o Telegram e procure pelo bot BotFather: Você pode criar um bot por meio do miniaplicativo ou diretamente pelo chat. **Usando o Miniaplicativo:** Digite o nome do bot, a descrição (opcional) e escolha um nome de usuário para ele: Após inserir essas informações, seu primeiro bot será criado. No menu, você encontrará o token da API e diversas configurações adicionais: Ao finalizar, você receberá um token de acesso semelhante a: ``` 123456789:AAExampleTokenXXXXXXXXXXXXXXXX ``` Guarde esse token — ele será necessário para conectar-se à API do Telegram. ## Etapa 2. Obter uma Chave da API GPT da Serverspace No painel de controle da Serverspace, acesse a seção GPT API. Abra a guia de gerenciamento de chaves de API e copie a chave de acesso gerada. Essa chave será utilizada para autenticar as requisições à GPT API. ## Etapa 3. Instalar as Bibliotecas Necessárias Instale as dependências: ```bash pip install python-telegram-bot requests ``` Após a instalação, você poderá começar a escrever o código do bot. ## Etapa 4. Criar a Aplicação do Bot do Telegram Crie um arquivo: ``` bot.py ``` Adicione o seguinte código: ```javascript import requests from telegram import Update from telegram.ext import Application, MessageHandler, ContextTypes, filters TELEGRAM_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" GPT_API_KEY = "YOUR_SERVERSPACE_API_KEY" API_URL = "https://gpt.serverspace.com.br/v1/chat/completions" async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): user_message = update.message.text ``` headers = { "Authorization": f"Bearer {GPT_API_KEY}", "Content-Type": "application/json" } payload = { "model": "gpt-5.2", "messages": [ { "role": "user", "content": user_message } ], "temperature": 0.7, "max_tokens": 500 } response = requests.post( API_URL, headers=headers, json=payload ) result = response.json() answer = result["choices"][0]["message"]["content"] await update.message.reply_text(answer) ``` def main(): app = Application.builder().token(TELEGRAM_TOKEN).build() ``` app.add_handler( MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message) ) app.run_polling() ``` if **name** == "**main**": main() ``` Este script recebe mensagens dos usuários do Telegram, envia-as para a GPT API e retorna a resposta gerada de volta ao chat. ## Etapa 5. Configurar suas Credenciais Substitua os seguintes valores: ``` TELEGRAM_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" GPT_API_KEY = "YOUR_SERVERSPACE_API_KEY" ``` pelo token do seu bot do Telegram e pela chave da API da Serverspace. ## Etapa 6. Executar o Bot Execute o seguinte comando: ```bash python bot.py ``` Após a inicialização, o bot começará a receber mensagens e encaminhá-las para a GPT API. Experimente enviar qualquer mensagem ao seu bot no Telegram — ele processará a solicitação usando o modelo de IA e retornará uma resposta. ## Exemplo de uma Requisição Direta para a GPT API Para entender melhor como a API funciona, veja o exemplo abaixo usando cURL: ```bash curl https://gpt.serverspace.com.br/v1/chat/completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{ "model": "gpt-5.2", "messages": [ { "role": "user", "content": "Olá! Fale sobre tecnologias em nuvem." } ], "temperature": 0.7, "max_tokens": 500 }' ``` A API retornará uma resposta JSON contendo o texto gerado. ## Como Preservar o Histórico da Conversa Por padrão, a GPT API não armazena o histórico das conversas entre as requisições. Se você precisar preservar o contexto, envie as mensagens anteriores junto com cada nova solicitação: ```json [ { "role": "user", "content": "Olá" }, { "role": "assistant", "content": "Olá! Como posso ajudar?" }, { "role": "user", "content": "Fale sobre servidores virtuais" } ] ``` Dessa forma, o modelo poderá visualizar as mensagens anteriores e manter uma conversa coerente. ## Recomendações de Segurança Ao utilizar a GPT API em projetos de produção, recomenda-se: - Nunca armazenar chaves de API em locais públicos; - Utilizar variáveis de ambiente em vez de inserir as chaves diretamente no código-fonte; - Restringir o acesso ao servidor; - Monitorar regularmente o consumo de tokens; - Renovar periodicamente as chaves de API. ## FAQ ### Posso utilizar bibliotecas da OpenAI? Sim. A API GPT da Serverspace utiliza um formato de requisições compatível com OpenAI, portanto a maioria das integrações existentes pode ser adaptada com alterações mínimas. ### Qual endpoint devo utilizar? Utilize o seguinte endpoint para enviar requisições: ``` https://gpt.serverspace.com.br/v1/chat/completions ``` ### Como funciona a autenticação? A autenticação é realizada utilizando um Bearer Token: ``` Authorization: Bearer YOUR_API_KEY ``` ### Posso utilizar diferentes modelos? Sim. O painel de controle da Serverspace oferece acesso a diversos modelos de inteligência artificial de diferentes provedores. ### A API armazena automaticamente o histórico da conversa? Não. A GPT API é um serviço stateless e não armazena o histórico de conversas. Caso o contexto da conversa seja necessário, sua aplicação deverá enviar as mensagens anteriores em cada requisição. ### Posso hospedar o bot em um VPS? Sim. Um bot do Telegram pode ser executado em um servidor em nuvem da Serverspace, em uma máquina local, em um VPS, em um contêiner Docker ou em qualquer outro ambiente com suporte a Python. ### Para quais tipos de projetos essa integração é adequada? Com a GPT API, você pode criar: - Chatbots com IA; - Consultores virtuais; - Sistemas de suporte ao cliente; - Geradores de conteúdo; - Ferramentas de tradução; - Serviços educacionais; - Ferramentas internas de automação corporativa. ## Conclusão A integração da API GPT da Serverspace com um bot do Telegram permite criar rapidamente um assistente inteligente para interagir com usuários. Graças à API REST simples, à autenticação por chave de API e ao formato de requisições compatível com OpenAI, o processo de integração leva apenas alguns minutos e é adequado tanto para projetos de teste quanto para ambientes de produção. https://serverspace.com.br/support/help/como-usar-a-api-gpt-do-serverspace-em-um-aplicativo-python.md Como usar a API GPT do Serverspace em um aplicativo Python Modernos modelos de linguagem tornam possível adicionar às aplicações funcionalidades de geração de texto, assistentes inteligentes, processamento automatizado de dados, suporte ao usuário e análise de conteúdo. Graças à compatibilidade da Serverspace GPT API com o formato da OpenAI, a integração em uma aplicação Python leva apenas alguns minutos e requer uma quantidade mínima de código. Neste guia, veremos como conectar a Serverspace GPT API a um projeto Python, enviar a primeira requisição e receber uma resposta do modelo. ## O que você precisa antes de começar Antes de conectar, certifique-se de que você possui: - **uma conta Serverspace no painel de controle;** - **uma chave de API criada;** - **Python 3.9 ou superior instalado;** - **a biblioteca OpenAI para Python.** A Serverspace utiliza um formato de requisição compatível com a OpenAI e um endpoint padrão para trabalhar com modelos de chat. ## Obtendo uma chave de API Para trabalhar com a API GPT, você precisa criar ou copiar uma chave de API existente. Abra a seção **GPT** no painel de controle da Serverspace. Vá até a aba **API Keys**. Copie a chave de acesso gerada. Por padrão, uma chave de API já é criada quando você usa o serviço GPT pela primeira vez. ## Instalando as bibliotecas necessárias Instale o SDK oficial da OpenAI: ```bash pip install openai ``` Graças à total compatibilidade com a OpenAI, você pode usar a biblioteca padrão sem modificações adicionais. ## Criando sua primeira requisição Crie um arquivo **main.py** e adicione o seguinte código: ``` from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://gpt.serverspace.io/v1" ) response = client.chat.completions.create( model="gpt-5.4-mini", messages=[ { "role": "user", "content": "Hello! Briefly tell me about the Serverspace platform." } ], temperature=0.6, max_tokens=300 ) print(response.choices[0].message.content) ``` Onde: - api_key — sua chave de API do painel de controle; - base_url — endereço da API GPT da Serverspace; - model — o modelo de IA selecionado; - messages — histórico da conversa; - temperature — nível de variabilidade da resposta; - max_tokens — tamanho máximo da resposta. O endpoint usado para requisições: ``` https://gpt.serverspace.io/v1/chat/completions ``` ## Executando a aplicação Execute o script com o comando: ```bash python main.py ``` Após executar a requisição, o modelo retornará uma resposta no console: ``` Serverspace é uma plataforma em nuvem para implantação de infraestrutura virtual e uso de modelos modernos de IA via API. ``` ## Trabalhando com instruções de sistema Mensagens de sistema podem ser usadas para controlar o comportamento do modelo. Exemplo: ``` from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://gpt.serverspace.io/v1" ) response = client.chat.completions.create( model="gpt-5.4-mini", messages=[ { "role": "system", "content": "You are a technical consultant for Linux." }, { "role": "user", "content": "How do I check RAM usage in Ubuntu?" } ] ) print(response.choices[0].message.content) ``` Uma mensagem de sistema ajuda a definir o estilo de resposta, restrições e o papel do modelo dentro da aplicação. ## Processamento de respostas em JSON A resposta da API contém metadados adicionais. Exemplo para obter a resposta completa: ``` from openai import OpenAI client = OpenAI( api_key="YOUR_API_KEY", base_url="https://gpt.serverspace.io/v1" ) response = client.chat.completions.create( model="gpt-5.4-mini", messages=[ { "role": "user", "content": "What is Docker?" } ] ) print(response.model_dump()) ``` Como resultado, você receberá um objeto contendo informações sobre o modelo, uso de tokens e a mensagem gerada. ## Casos de uso práticos A Serverspace GPT API pode ser usada para uma ampla variedade de tarefas: - **criação de chatbots e assistentes virtuais;** - **automação de suporte ao cliente;** - **geração de conteúdo textual;** - **processamento de solicitações de usuários;** - **análise e classificação de dados;** - **tradução de textos;** - **criação de ferramentas internas de IA para negócios.** Graças à compatibilidade com a OpenAI, projetos existentes podem ser adaptados à Serverspace GPT API com mudanças mínimas no código. ## FAQ - **Posso usar o SDK oficial da OpenAI com a Serverspace GPT API?** Sim. A Serverspace GPT API é totalmente compatível com a API da OpenAI, portanto a integração requer apenas instalar a biblioteca `openai`, definir sua chave de API e alterar o `base_url` para o endpoint da Serverspace. - **Quais modelos estão disponíveis via GPT API? **Vários modelos de diferentes provedores estão disponíveis no painel da Serverspace. A lista atual de modelos pode ser vista na seção GPT antes de enviar uma requisição. - **Posso usar a GPT API em um projeto Python existente? **Sim. Se seu projeto já usa a API da OpenAI, geralmente basta substituir a chave de API e o endpoint da Serverspace. A lógica principal do aplicativo permanece inalterada. - **Como proteger a chave de API em uma aplicação Python? **Não é recomendado armazenar a chave diretamente no código-fonte. Em vez disso, use variáveis de ambiente ou sistemas de gerenciamento de segredos para evitar exposição acidental. - **Existem limites de requisições? **O número de requisições disponíveis depende do saldo atual e do uso de tokens. Os custos são calculados com base na quantidade de tokens de entrada e saída. - **Para quais tarefas a Serverspace GPT API é adequada? **A API pode ser usada para criação de chatbots, assistentes de IA, geração de conteúdo, automação de suporte ao cliente, tradução de textos, análise de dados e outras tarefas de processamento de linguagem natural. ## Conclusão A Serverspace GPT API permite adicionar rapidamente recursos de inteligência artificial às aplicações Python. Para começar, você só precisa criar uma chave de API, instalar a biblioteca OpenAI e configurar o endpoint da Serverspace. Graças ao formato compatível de requisições, a integração leva apenas alguns minutos e é adequada tanto para pequenos scripts quanto para sistemas comerciais completos. https://serverspace.com.br/support/help/como-criar-um-assistente-de-ia-para-site-com-a-serverspace-gpt-api-guia-completo.md Aprenda como criar um assistente de IA para seu site usando a Serverspace GPT API. Guia passo a passo com configuração, integração via API, exemplos em Python e boas práticas de custo. ## Introdução A integração de um assistente de IA em sites já se tornou um padrão em projetos web modernos. Ele ajuda a automatizar o suporte ao cliente, responder dúvidas em tempo real, gerar conteúdo e aumentar as taxas de conversão. Com a Serverspace GPT API, você pode conectar rapidamente modelos de linguagem ao seu site sem precisar construir uma infraestrutura complexa. A API fornece acesso a LLMs modernos por meio de uma interface unificada e pode ser usada em aplicações web, sistemas de chat e bots. ## Passo 1. Criando uma conta e ativando a GPT API 1. Faça login no painel de controle da Serverspace 2. Vá até a seção GPT 3. Clique em "Testar GPT" Após a ativação, você terá acesso aos modelos GPT e outros LLMs disponíveis no painel de controle. ## Passo 2. Criando uma chave de API A chave de API é usada para autorizar requisições. Como criar uma chave: 1. Abra a seção API Keys 2. Gere uma nova chave ou use a chave criada automaticamente 3. Copie a chave e guarde em segurança ## Passo 3. Testando a API com uma requisição Exemplo de requisição (cURL): ```bash curl https://api.serverspace.com.br/gpt/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "model": "gpt-4o-mini", "messages": [ { "role": "user", "content": "Olá! Como você pode ajudar meu site?" } ] }' ``` ## Passo 4. Integração em um site (Python) ``` import requests API_KEY = "YOUR_API_KEY" URL = "https://api.serverspace.com.br/gpt/v1/chat/completions" headers = { "Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}" } data = { "model": "gpt-4o-mini", "messages": [ {"role": "user", "content": "Gere uma resposta para um visitante do site"} ] } response = requests.post(URL, headers=headers, json=data) print(response.json()) ``` Esse código pode ser integrado em um backend (Flask, Django, FastAPI ou qualquer outro servidor). ## Passo 5. Adicionando um widget de chat ao site Após configurar o backend, você pode adicionar uma interface de chat: - Mensagens do usuário são enviadas ao servidor - As requisições são processadas pela GPT API - As respostas são exibidas na interface do site Isso permite criar um assistente de IA totalmente funcional para suporte ao cliente. ## Passo 6. Controle de custos No painel da Serverspace você pode: - Monitorar o uso de tokens - Ver estatísticas de uso da API - Definir limites de gastos Isso ajuda a controlar o orçamento e evitar custos desnecessários. ## Funcionalidades adicionais A Serverspace GPT API também pode ser usada para: - **bots do Telegram** - **sistemas de CRM** - **automação de suporte** - **geração de conteúdo** - **assistentes internos de IA** **Como o assistente de IA funciona por baixo dos panos** O assistente de IA em um site segue a seguinte arquitetura: - O usuário envia uma mensagem pelo chat do site - O frontend encaminha a requisição para o backend - O backend adiciona a chave de API e envia a requisição para a Serverspace GPT API - O modelo processa a requisição e retorna uma resposta - O backend envia a resposta de volta ao site ## Erros comuns e boas práticas ao usar a GPT API **Erros comuns:** - Armazenar a chave de API no frontend - Enviar prompts muito longos sem limite de tokens - Não tratar erros da API corretamente - Ignorar limites de requisições e custos **Boas práticas:** - Usar um backend proxy para todas as requisições - Cachear requisições repetidas - Limitar o tamanho das mensagens do usuário - Registrar erros para debug e monitoramento - Usar diferentes modelos para diferentes tarefas (mais baratos para consultas simples, mais poderosos para tarefas complexas) ## Conclusão A Serverspace GPT API permite implementar rapidamente um assistente de IA para seu site sem infraestrutura complexa. Basta criar uma chave de API, escolher um modelo e conectar algumas linhas de código. Essa solução funciona tanto para pequenos projetos quanto para serviços em larga escala que exigem automação de interação com usuários. ## FAQ **Preciso de um servidor para usar a GPT API?** Sim, é necessário um backend (Python, Node.js, PHP etc.) para enviar requisições à API. **Posso usar a API diretamente no frontend?** Não, a chave deve ser armazenada no servidor para evitar vazamentos. **Quais modelos estão disponíveis?** Modelos GPT e outros LLMs disponíveis no painel da Serverspace são suportados. **Como posso controlar os custos?** Você pode acompanhar tokens e definir limites de gastos no painel de controle. **Posso usar a API para bots?** Sim, a API funciona com bots do Telegram, sites e qualquer serviço backend. https://serverspace.com.br/about/blog/como-executar-clientes-do-roblox-em-uma-vps.md Aprenda a executar clientes do Roblox em uma VPS Windows — configuração, várias instâncias, dicas de configuração e o que evitar. Executar Roblox em um PC local funciona bem para o uso cotidiano. Mas algumas tarefas exigem mais do que uma máquina doméstica pode oferecer com conforto: testar um jogo multiplayer com várias contas ao mesmo tempo, manter um cliente ativo 24 horas por dia sem deixar um computador ligado durante a noite, ou trabalhar no Roblox Studio de vários lugares sem reinstalar tudo a cada vez. Um servidor virtual privado resolve tudo isso — e, depois de configurado, ele funciona continuamente sem consumir recursos locais. Este guia cobre toda a configuração: escolher a configuração certa de VPS, conectar-se a ela, instalar o Roblox e colocar um ou mais clientes em funcionamento. Ao longo do caminho, veremos o que costuma dar errado, como contornar os erros mais comuns e onde as próprias regras do Roblox traçam uma linha clara. ## Por que usar uma VPS para Roblox À primeira vista, Roblox em um servidor parece incomum. Em um PC gamer, ele simplesmente funciona — então por que adicionar complexidade? A resposta depende do que você está tentando fazer. Uma VPS funciona 24/7. Não há modo de suspensão, reinício automático por atualização nem alguém da família desligando a máquina em um momento inconveniente. Para desenvolvedores que precisam de um servidor de teste disponível em um horário específico, ou para qualquer pessoa acompanhando eventos temporários dentro do jogo, essa persistência faz diferença. Uma VPS também mantém os ambientes separados. Se um teste der errado — um script travar o cliente, uma instalação quebrar — isso não afeta a máquina local nem qualquer outra sessão em execução. Várias instâncias de VPS podem coexistir com configurações completamente diferentes, e cada uma pode ser redefinida ou reconstruída de forma independente. Talvez o maior atrativo para desenvolvedores seja este: o Windows Server suporta várias sessões simultâneas de Área de Trabalho Remota, o que torna prático executar vários clientes do Roblox em paralelo em uma única máquina. Em um PC Windows de consumo, executar mais de uma instância do Roblox ao mesmo tempo exige soluções alternativas que quebram com frequência. Em uma VPS Windows Server, basta criar contas de usuário separadas e abrir conexões RDP adicionais. ## Requisitos do sistema para executar Roblox em uma VPS Roblox é um aplicativo Windows. Não existe cliente nativo para Linux, o que significa que a VPS precisa rodar **Windows Server 2019 ou 2022**. O Windows Server 2022 geralmente é a melhor escolha — ele recebe atualizações mais recentes de driver e compatibilidade e é a opção estável atual oferecida pela maioria dos provedores de VPS. Além do sistema operacional, a configuração que realmente importa se divide assim: - **RAM:** cada cliente do Roblox normalmente usa entre 500 MB e 1,5 GB, dependendo do jogo. Para um único cliente, 4 GB de RAM são um bom ponto de partida. Para vários clientes, calcule cerca de 1,5–2 GB por instância, além de uma base para o próprio sistema operacional. - **CPU:** o Roblox depende mais da CPU do que da GPU quando roda sem aceleração de hardware. Dois vCPUs lidam adequadamente com um cliente; vários clientes se beneficiam de quatro ou mais núcleos. - **Armazenamento:** a instalação do Roblox em si ocupa cerca de 600 MB. Some a isso o espaço do Windows Server e uma margem de segurança — 50–80 GB de SSD cobrem confortavelmente uma configuração com um cliente, com mais espaço necessário à medida que o número de clientes cresce. - **Gráficos:** a maioria das instâncias de VPS não tem GPU dedicada. O Roblox então recorre à renderização por software usando o DirectX WARP (Windows Advanced Rasterization Platform), que roda na CPU. Funciona, mas o desempenho é limitado em comparação com aceleração por hardware. Algumas operadoras oferecem VPS com GPU, mas com custo mais alto. - **Rede:** o Roblox transmite dados de jogo continuamente. Uma conexão estável de upload de pelo menos 10–20 Mbps por cliente ativo mantém tudo fluindo bem. Escolher uma VPS localizada geograficamente perto da infraestrutura do Roblox ajuda a reduzir a latência. A tabela abaixo traz recomendações concretas de configuração com base em quantos clientes você planeja executar simultaneamente. | Cenário | RAM | vCPUs | Armazenamento SSD | Observações | | --- | --- | --- | --- | --- | | Um cliente, uso casual | 4 GB | 2 vCPU | 50 GB | Configuração mínima; atende presença sempre ativa ou testes leves | | Um cliente, jogo com muitos gráficos | 6–8 GB | 4 vCPU | 60 GB | Renderizador por software sob carga; é preciso reduzir as configurações gráficas | | 2–3 clientes simultâneos | 8–12 GB | 4–6 vCPU | 80 GB | Típico para testes de desenvolvimento de jogos multiplayer | | 4–6 clientes simultâneos | 16–24 GB | 8 vCPU | 120 GB | Monitore a CPU; inicie os clientes com intervalos para reduzir o pico de carga na inicialização | | Apenas Roblox Studio | 8 GB | 4 vCPU | 80 GB | O Studio é pesado em recursos; 8 GB é o mínimo confortável para projetos maiores | ## Passo a passo: configurando o Roblox em uma VPS Windows Etapa 1 — Contrate uma VPS Windows Escolha um provedor de VPS que ofereça Windows Server como sistema operacional selecionável. As [VPS da Serverspace](https://serverspace.com.br/services/vps-server.md), por exemplo, suportam Windows Server 2022, vêm com armazenamento SSD e permitem escolher exatamente a quantidade de RAM e vCPU de que você precisa — sem prender você a um plano fixo. O provisionamento leva alguns minutos; quando o servidor estiver pronto, você receberá um endereço IP e credenciais de administrador. Ao fazer o pedido, selecione **Windows Server 2022** como imagem do sistema operacional. Confirme que a licença do Windows está incluída no preço — alguns provedores cobram isso separadamente. Etapa 2 — Conecte-se via Protocolo de Área de Trabalho Remota No Windows, abra o aplicativo nativo **Conexão de Área de Trabalho Remota** (procure no menu Iniciar ou execute mstsc). No macOS, baixe o **Microsoft Remote Desktop** na App Store. Digite o endereço IP do servidor, faça login com o nome de usuário e a senha de administrador, e a conexão será aberta. O que você obtém é uma área de trabalho Windows completa rodando no servidor — com uma tela virtual. Essa tela é importante: o Roblox precisa de uma sessão gráfica para rodar, e a sessão RDP fornece exatamente isso, mesmo em uma máquina sem monitor físico ou GPU dedicada. Antes de se conectar, entre nas configurações do RDP e ajuste a resolução da tela remota para pelo menos 1024×768. Algumas versões do launcher do Roblox se comportam de forma estranha em resoluções muito baixas, e depurar uma instalação quebrada do Roblox em 640×480 não é nada agradável. Etapa 3 — Prepare o navegador O Windows Server vem com o Internet Explorer como navegador padrão, e ele não lida bem com o launcher do Roblox baseado na web. Antes de fazer qualquer outra coisa, abra o **Server Manager**, clique em **Local Server** no painel esquerdo, encontre **IE Enhanced Security Configuration** e defina como **Off** tanto para Administrators quanto para Users. Essa configuração bloqueia a maioria dos sites modernos por padrão. Depois disso, baixe e instale o Google Chrome ou o Firefox. Ambos funcionam; o Chrome costuma ter menos problemas de compatibilidade com a lógica do launcher do Roblox. Etapa 4 — Instale o Roblox Com o Chrome aberto, vá até o Roblox.com, entre na sua conta e clique em Play em qualquer jogo. O navegador vai pedir para instalar o Roblox Player. Siga o instalador — leva menos de um minuto. O Roblox tentará iniciar o jogo imediatamente após a instalação. Se o jogo abrir, mas parecer muito lento ou com travamentos, isso é o renderizador por software trabalhando nas configurações gráficas padrão. Abra o menu do Roblox no jogo, vá para **Settings → Graphics Mode** e mude para **Manual**. Depois, reduza a qualidade gráfica para 1 ou 2. Em uma VPS sem GPU, qualquer coisa acima do nível 3 costuma sobrecarregar a CPU e deixar a taxa de quadros muito baixa. Etapa 5 — Configure a sessão para permanecer ativa Por padrão, o Windows Server pode desconectar sessões RDP ociosas ou bloquear a tela, o que pausa ou encerra os aplicativos em execução. Para evitar isso, faça duas alterações: Primeiro, abra o **Editor de Política de Grupo** pressionando Win+R e executando gpedit.msc. Navegue até Computer Configuration → Administrative Templates → Windows Components → Remote Desktop Services → Remote Desktop Session Host → Session Time Limits. Defina _Set time limit for disconnected sessions_ como **Never**. Segundo, abra Power Options no Painel de Controle, escolha **High Performance** e defina a suspensão como **Never**. Desative também o protetor de tela. Com essas configurações, o Roblox continua rodando mesmo depois que você fecha a janela RDP no seu computador local — desde que você _desconecte_ e não faça logout. Clicar no X da janela RDP desconecta o cliente local sem encerrar a sessão no servidor. Escolher Start → Sign out encerra tudo por completo e interrompe todos os aplicativos em execução. ## Executando vários clientes do Roblox em uma única VPS Normalmente, o Roblox impede que mais de uma instância seja executada sob a mesma conta de usuário na mesma máquina. O método mais limpo — e o que continua funcionando de forma confiável após atualizações do Roblox — é criar contas de usuário separadas no Windows da VPS, cada uma executando seu próprio cliente do Roblox. O Windows Server suporta várias sessões RDP simultâneas por padrão, ao contrário do Windows de consumo. Cada conta de usuário recebe seu próprio ambiente de desktop, sua própria instalação do Roblox e sua própria conta do Roblox logada. O processo básico é este: - Na VPS, abra o Prompt de Comando como Administrador e crie uma nova conta de usuário. Por exemplo: net user testuser2 Password123! /add. Depois adicione esse usuário ao grupo Remote Desktop Users: net localgroup "Remote Desktop Users" testuser2 /add. - Abra uma segunda conexão RDP para o mesmo IP da VPS, mas faça login com a nova conta de usuário. - Dentro dessa nova sessão, instale o Roblox acessando novamente o Roblox.com. O Roblox é instalado por usuário no Windows, então cada conta precisa da própria instalação. - Faça login com uma conta diferente do Roblox no navegador, inicie um jogo e o segundo cliente passará a funcionar de forma independente do primeiro. Repita isso para cada cliente adicional. Iniciar os clientes com intervalos de 60 a 90 segundos ajuda — o Roblox carrega muitos dados do jogo na primeira inicialização, e abrir quatro clientes ao mesmo tempo pode elevar a CPU rapidamente a níveis desconfortáveis. Alguns usuários procuram atalhos: patches de registro, ferramentas de injeção de processo ou lançadores de múltiplas instâncias de terceiros. Eles muitas vezes funcionam no curto prazo, mas quebram com atualizações do Roblox, e vários deles acionam o sistema anti-cheat do Roblox (Hyperion/Byfron). A abordagem com vários usuários leva mais tempo para configurar inicialmente, mas é muito mais estável ao longo do tempo. ## Vantagens e desvantagens O que funciona bem **Operação contínua.** A VPS funciona sem parar. Sem modos de suspensão, sem desligamentos acidentais, sem esperar que uma máquina doméstica acorde antes de se conectar. **Isolamento limpo.** Cada instância de VPS é um ambiente controlado. Uma queda, uma instalação corrompida ou um teste que dê errado fica contido. Isso não afeta sua máquina principal nem outras sessões em execução. **Vários clientes em paralelo.** O RDP com múltiplas sessões nativas do Windows Server torna viável executar vários clientes do Roblox simultaneamente de uma forma que o Windows de consumo simplesmente não permite com facilidade. **Escalável sob demanda.** Precisa de mais RAM conforme o projeto cresce? A maioria dos provedores de VPS permite redimensionar uma instância sem reinstalar o sistema operacional. Você não fica preso a uma configuração fixa de hardware. **Flexibilidade geográfica.** Uma VPS pode ser provisionada em um data center geograficamente próximo de servidores específicos do Roblox, reduzindo a latência em testes regionais ou sessões ao vivo. O que observar **Sem GPU por padrão.** A renderização por software dá conta do recado para desenvolvimento e testes, mas é visivelmente mais lenta do que gráficos com aceleração por hardware. Opções de VPS com GPU existem, mas custam bem mais. **Custo recorrente.** Ao contrário de um PC doméstico já pago, uma VPS é uma despesa mensal. Para uso muito esporádico, a conta pode não compensar em relação a um servidor dedicado. **Mais partes móveis.** Configurar vários clientes, manter sessões ativas e atualizar o Roblox corretamente exige mais gerenciamento ativo do que simplesmente abrir o aplicativo em um PC gamer. ## Limitações e riscos Um tema merece uma observação direta: os Termos de Serviço do Roblox. O Roblox proíbe explicitamente automação, farm de contas e o uso de contas de maneiras inconsistentes com o jogo humano normal. Executar vários clientes para automatizar ações dentro do jogo — farm de moeda, ganho de experiência ou algo semelhante — viola esses termos. As contas detectadas fazendo isso são banidas permanentemente. O sistema anti-cheat do Roblox, Hyperion, ficou cada vez mais capaz de identificar padrões de comportamento não humanos e sinalizar sessões em ambientes virtualizados. Usos legítimos do Roblox em uma VPS se enquadram em outra categoria: testes de desenvolvimento de jogos, trabalho remoto no Roblox Studio, manter uma única conta ativa por motivos válidos. Isso envolve risco menor, mas vale notar que o Roblox não oferece suporte oficial nem endossa o uso de VPS. A plataforma foi projetada para hardware de consumo. No lado técnico, aplicam-se algumas restrições práticas: - O Hyperion examina o ambiente de hardware e pode sinalizar configurações virtualizadas. As impressões de hardware de alguns provedores de VPS são mais reconhecíveis do que as de outros. - O Roblox recebe atualizações frequentes, às vezes diárias. As atualizações podem quebrar configurações existentes, exigir reinstalação ou alterar o comportamento do cliente na renderização por software. Reserve tempo para manutenção. - A licença do Windows Server deve estar incluída no preço da VPS ou ser fornecida separadamente. Verifique isso antes de contratar — instalações não licenciadas do Windows não são uma base estável. ## Casos de uso práticos Testes de desenvolvimento de jogos multiplayer O Roblox Studio — o ambiente de criação de jogos — roda em uma VPS da mesma forma que em um PC comum. Um desenvolvedor trabalhando em um jogo multiplayer precisa verificar como a experiência se comporta com vários jogadores conectados simultaneamente: comportamento de spawn, lógica de colisão, scripts de servidor, persistência de dados. Executar três ou quatro clientes do Roblox hospedados em VPS que entram no mesmo servidor privado fornece dados multiplayer realistas sem precisar de várias máquinas físicas ou coordenar um grupo de testadores para ficar online ao mesmo tempo. Conta sempre ativa para eventos por tempo limitado O Roblox realiza regularmente eventos em que os jogadores precisam fazer login, concluir tarefas ou simplesmente estar presentes dentro de uma janela específica para ganhar recompensas ou colecionáveis. Uma VPS com um único cliente do Roblox em execução mantém uma conta ativa sem ocupar um computador doméstico. A sessão fica rodando em segundo plano; você entra por RDP quando necessário e depois se desconecta novamente. Acesso remoto ao Roblox Studio O Roblox Studio é pesado em recursos e os arquivos de projeto podem crescer bastante. Desenvolvedores que trabalham de vários lugares — casa, escritório, outra cidade — podem manter uma única instalação do Studio em uma VPS e acessá-la de qualquer lugar via RDP. O projeto fica em um só lugar, sem problemas de sincronização, conflitos de versão ou custo de instalação em cada novo dispositivo. Ambientes de teste isolados Testar um script de jogo que interage com economias do jogo, modifica dados de conta ou chama APIs externas traz risco real se isso for feito em uma conta principal. Uma VPS com uma conta de teste dedicada e uma instalação nova do Roblox fornece um espaço contido no qual mudanças experimentais não vazam para contas de produção nem para a máquina local. Na prática, um teste malfeito que apaga um inventário é irritante em uma conta de teste e devastador em uma conta principal. Benchmark de desempenho em hardware mais fraco Desenvolvedores às vezes precisam entender como um jogo se comporta em hardware limitado — especificamente nas máquinas de baixo desempenho usadas por uma parte significativa da base de jogadores do Roblox. Uma VPS configurada com 2 vCPUs, 4 GB de RAM e renderização por software se aproxima da experiência de um dispositivo mais antigo. Executar o jogo nessa configuração e observar as taxas de quadros reais fornece dados de desempenho de baixo nível mais representativos do que testar apenas em uma estação de trabalho potente. ## Erros comuns e como evitá-los Escolher uma VPS Linux Isso aparece com frequência e sempre causa a mesma frustração. O Roblox não tem versão para Linux. Executá-lo por Wine — uma camada de compatibilidade do Windows para Linux — é tecnicamente possível em teoria, mas na prática é bloqueado pelo Hyperion, que identifica ambientes Wine e impede a inicialização do cliente ou gera banimento. Sempre selecione uma imagem de Windows Server ao contratar a VPS. Esquecer de desativar a IE Enhanced Security Configuration O Windows Server bloqueia a maioria dos sites modernos por causa da IE Enhanced Security Configuration, que vem ativada por padrão. Se você pular essa etapa, o Chrome não abrirá o Roblox.com, o instalador não será baixado e você perderá tempo solucionando o que na prática é uma correção de um clique no Server Manager. Desative isso para Administrators e Users antes de tocar no navegador. Fazer logout em vez de desconectar do RDP Quando você faz logout de uma sessão RDP — por Start → Sign out — a sessão termina e todos os aplicativos em execução, incluindo o Roblox, param. Para manter o Roblox rodando depois de fechar a janela RDP, clique no X da própria janela RDP (ou pressione Alt+F4 enquanto estiver no app RDP). Isso desconecta seu cliente local da sessão sem encerrá-la no servidor. Tudo continua rodando; depois você reconecta e encontra tudo exatamente como estava. Rodar os gráficos no padrão ou no alto A renderização por software em uma VPS sem GPU não consegue lidar com as configurações gráficas padrão do Roblox sem impacto significativo no desempenho. O cliente fica visivelmente mais lento ou trava em jogos mais pesados em gráficos. Assim que o Roblox abrir, vá em Settings → Graphics, mude para Manual e defina o nível de qualidade para 1 ou 2. Isso se aplica a todos os clientes rodando na VPS — não apenas ao primeiro. Provisionar uma VPS pequena demais O resultado mais comum de subdimensionar é que tudo parece funcionar no começo, mas depois degrada aos poucos conforme o Roblox carrega ativos do jogo e a memória se enche. A VPS começa a usar swap, a CPU entra em throttling e o cliente congela ou trava — geralmente levando outras sessões em execução junto. A tabela de configuração anterior neste artigo oferece estimativas iniciais; depois da inicialização, abra o Task Manager → Performance e acompanhe o uso de RAM e CPU nos primeiros 30–60 minutos sob carga real. Faça resize cedo se o uso ficar consistentemente acima de 85–90%. Negligenciar as atualizações do Roblox Em máquinas comuns, o Roblox se atualiza automaticamente quando o launcher é executado. Em uma VPS onde o cliente não é aberto com frequência, a instalação pode ficar várias versões atrás. Um cliente desatualizado é rejeitado pelos servidores do Roblox com um erro genérico que é fácil de diagnosticar errado. Ou você abre e fecha o Roblox periodicamente para acionar o auto-updater, ou configura uma tarefa agendada no Windows Task Scheduler para fazer isso automaticamente uma vez por semana. Usar ferramentas de múltiplas instâncias de terceiros Ferramentas que fazem patch no registro e utilitários de injeção de processo que tentam executar várias instâncias do Roblox sob uma única conta do Windows funcionam de forma inconsistente, quebram após atualizações do Roblox, e algumas delas acionam especificamente sinalizações do Hyperion. O método de contas de usuário separadas descrito anteriormente neste guia exige mais trabalho inicial, mas funciona de forma confiável entre atualizações sem expor você a anti-cheat por causa da ferramenta em si. ## Conclusão Executar Roblox em uma VPS se resume a alguns fundamentos: uma instância Windows Server com RAM e CPU adequadas para o número de clientes desejado, uma sessão RDP que forneça uma tela virtual, o Roblox instalado por conta de usuário e algumas alterações de configuração para manter as sessões ativas após a desconexão. A configuração é mais trabalhosa do que abrir o Roblox em um PC local, mas desbloqueia capacidades que uma máquina doméstica não consegue igualar — operação contínua, vários clientes isolados em paralelo e acesso remoto de qualquer lugar. A abordagem com vários usuários para executar vários clientes simultaneamente leva mais tempo para configurar do que ferramentas de atalho, mas se mantém mesmo após atualizações do Roblox e evita os gatilhos de anti-cheat que acompanham métodos de injeção de processo. Para os usos aos quais ela realmente se destina — testes de desenvolvimento de jogos, trabalho remoto no Studio, ambientes isolados — ela lida com a carga de forma confiável. Se esta for a primeira configuração, comece pequeno: um cliente em uma VPS Windows mínima, verifique se todo o fluxo funciona e só então aumente. Adicionar recursos depois é questão de alguns cliques; desfazer uma configuração que já nasceu sobrecarregada dá muito mais trabalho. ### Posso executar Roblox em uma VPS Linux? Na prática, não. O Roblox não tem cliente nativo para Linux, e tentar executá-lo via Wine no Linux aciona o Hyperion, que bloqueia a inicialização do cliente ou resulta em ação sobre a conta. Uma VPS Windows Server é a única opção viável. ### Quanto custa por mês executar Roblox em uma VPS? Uma VPS Windows mínima (2 vCPU, 4 GB de RAM, 50 GB SSD) normalmente custa entre US$ 10 e US$ 25 por mês, dependendo do provedor e da região. Executar de quatro a seis clientes simultâneos exige uma instância muito maior — espere algo entre US$ 60 e US$ 120 por mês nessa escala, incluindo a licença do Windows. ### Minha conta do Roblox será banida só por usar uma VPS? Usar uma VPS por si só não aciona automaticamente um banimento. O risco vem de comportamentos que parecem automação — ações repetitivas idênticas, padrões de tempo não humanos ou impressões de hardware sinalizadas. Para testes de desenvolvimento, trabalho remoto no Studio ou uso legítimo sempre ativo, o risco é consideravelmente menor do que em cenários de automação ou farm, embora o Roblox não ofereça suporte oficial ao uso de VPS. ### O Roblox roda de forma aceitável sem GPU? Sim, com ressalvas. O Roblox usa DirectX WARP — renderização por software baseada em CPU — quando não há GPU disponível. No nível de qualidade gráfica 1 ou 2, o cliente roda de forma aceitável para testes e desenvolvimento. Jogos visualmente exigentes ou configurações mais altas causam degradação significativa de desempenho em uma VPS só com CPU. Instâncias de VPS com GPU resolvem isso, mas custam mais. ### Como faço para manter o Roblox rodando depois de fechar a janela RDP? Feche a janela RDP clicando no botão X, em vez de usar Start → Sign out no servidor. Fechar a janela RDP desconecta seu cliente local da sessão, mas mantém a sessão ativa no servidor. O Roblox continua rodando. Quando você se reconectar depois usando as mesmas credenciais, voltará para a mesma sessão ativa. ### O Roblox Studio também pode rodar em uma VPS? Sim. O Roblox Studio é instalado e roda no Windows Server da mesma forma que em um PC comum. É uma configuração prática para desenvolvedores que querem acesso remoto aos projetos de vários dispositivos sem reinstalar o Studio ou sincronizar arquivos toda vez. O Studio consome muitos recursos — 8 GB de RAM e 4 vCPUs são um mínimo confortável para projetos de tamanho minimamente significativo. https://serverspace.com.br/about/blog/top-distros-linux-para-desenvolvedores-em-2026.md Top distros Linux para desenvolvedores em 2026: Ubuntu, Fedora, Debian, NixOS, Pop!_OS e Arch comparadas, com dicas para escolher e onde testar cada uma. Escolher uma distribuição Linux para programar parece um detalhe, mas é uma das decisões que mais afetam o seu dia a dia. A distro certa some no fundo e deixa você focar no código. A errada cobra atenção toda semana, com dependências quebradas, drivers ausentes e ambientes que não batem com o servidor de produção. Neste guia reunimos as melhores opções de 2026 para quem desenvolve, com os pontos fortes de cada uma e o tipo de trabalho em que cada uma se destaca. A ideia é simples: ajudar você a acertar a escolha logo na primeira vez. ## O que mudou no Linux em 2026 Alguns movimentos deste ano mudaram o cenário, e vale conhecê-los antes de decidir. A linguagem Rust, conhecida pela segurança de memória, chegou ao núcleo do sistema: o Ubuntu 26.04 já traz utilitários básicos reescritos em Rust por padrão, incluindo uma versão do comando sudo. A System76 lançou o COSMIC, um ambiente de desktop novo, escrito do zero em Rust. Por baixo, chegou o kernel Linux 7.0, o GNOME 50 passou a rodar apenas sobre o Wayland com um renderizador baseado em Vulkan, e o esforço por builds reproduzíveis avançou bastante, com o Fedora ultrapassando noventa por cento de reprodutibilidade. Na prática, os lançamentos de 2026 são mais seguros e mais polidos, ainda que parte do hardware antigo fique para trás. ## Como escolher uma distro para desenvolvimento Antes de olhar nomes, responda a quatro perguntas. Primeiro, você quer rolling release ou LTS? O rolling release se atualiza de forma contínua e entrega o software mais novo, ao custo de uma quebra ocasional. O LTS fica estável por anos e recebe sobretudo correções. Segundo, quão recentes precisam ser as suas ferramentas? Quem depende dos últimos compiladores tende a preferir distros mais frescas. Terceiro, qual é o seu hardware? Notebooks e placas de vídeo recentes pedem kernels e drivers atualizados. Quarto, e talvez o ponto mais importante para quem programa, onde o seu código vai rodar? Igualar o ambiente da sua máquina ao do servidor de produção elimina uma classe inteira de bugs antes que eles apareçam. ## As melhores distros para desenvolvedores em 2026 Ubuntu LTS, a escolha padrão O Ubuntu segue como ponto de partida seguro, e há um bom motivo. Pela Pesquisa de Desenvolvedores do Stack Overflow de 2025, cerca de setenta e oito por cento dos programadores usam Linux como sistema principal ou secundário, e o Ubuntu é a opção mais comum, com perto de vinte e oito por cento. Muitas ferramentas assumem um ambiente Ubuntu, e a maioria dos runners de integração contínua, os servidores que compilam e testam o código automaticamente, usa Ubuntu por padrão. A versão 26.04 LTS chega com suporte que pode passar de uma década com o Ubuntu Pro, o que a torna uma base previsível para projetos longos. Fedora, ferramentas sempre frescas O Fedora é onde a Red Hat testa ideias antes de levá-las ao produto corporativo. Por isso ele entrega compiladores recentes, runtimes atuais e pacotes novos, mantendo mais estabilidade do que um rolling release puro. A versão 44 trouxe toolchains atualizadas e o GNOME 50. Para quem quer software moderno sem abrir mão de uma base confiável, é difícil errar com o Fedora. Debian, o cavalo de batalha dos servidores Quando o assunto é estabilidade, o Debian é referência. O Debian 13, lançado em agosto de 2025, traz o kernel 6.12 LTS e cinco anos de suporte. Ele não corre atrás de novidades, e esse é justamente o ponto: serve muito bem a servidores, pipelines e projetos que precisam funcionar do mesmo jeito por muito tempo. Para produção, é uma das bases mais seguras que existem. NixOS, ambientes reproduzíveis O NixOS segue um caminho diferente. Você descreve o sistema que quer em um único arquivo, e obtém exatamente o mesmo ambiente toda vez, em qualquer máquina. Uma pesquisa de 2026 apontou que três quartos das equipes que usam seus shells de desenvolvimento relataram menos conflitos de dependências. A curva de aprendizado é íngreme, mas para quem valoriza builds reproduzíveis e configuração declarativa, o ganho compensa. Pop!_OS, pronto para GPU e machine learning O Pop!_OS, da System76, é o favorito de quem trabalha com aprendizado de máquina, porque os drivers da NVIDIA já vêm configurados. A versão 24.04 LTS estreou o COSMIC, o novo desktop em Rust. Se o seu fluxo envolve CUDA e treino de modelos, ele poupa uma primeira noite inteira de ajustes. Arch e EndeavourOS, controle total Para quem quer decidir cada detalhe do sistema, o Arch Linux entrega controle absoluto e uma das melhores wikis do mundo Linux. O EndeavourOS oferece a mesma base com um instalador gráfico amigável, o que reduz bastante o atrito inicial. Vale ainda citar o openSUSE, que combina uma edição rolling testada automaticamente, a Tumbleweed, com uma edição estável, a Leap. ## Comparativo rápido das distros A tabela abaixo resume as opções para desenvolvimento. Use como referência rápida: olhe primeiro o modelo de lançamento e o tempo de suporte, depois confira para que cada sistema é realmente bom antes de decidir. | Distribuição | Tipo / base | Modelo de lançamento | Versão 2026 | Melhor para | | --- | --- | --- | --- | --- | | Ubuntu 26.04 LTS | Base Debian | LTS (longo prazo) | 26.04 "Resolute Raccoon" | Desenvolvimento geral, CI, nuvem | | Fedora 44 | Comunidade Red Hat | Semi-rolling (6 meses) | 44 | Toolchains recentes, trilha RHEL | | Debian 13 | Independente | Estável (point release) | 13 "Trixie" | Servidores, projetos de longa duração | | NixOS | Independente | Rolling / canais estáveis | canais 2026 | Builds reproduzíveis, config declarativa | | Pop!_OS 24.04 LTS | Base Ubuntu | LTS (longo prazo) | 24.04 (COSMIC) | Machine learning, NVIDIA | | Arch / EndeavourOS | Base Arch | Rolling | snapshots 2026 | Controle total, software novo | | openSUSE | Independente | Tumbleweed (rolling) / Leap (estável) | Leap 16 / Tumbleweed | Devs e sysadmins | ## Onde testar e implantar suas distros A forma mais segura de experimentar uma distro nova é em um servidor, em vez de mexer na sua máquina de trabalho. Um VPS permite subir um ambiente limpo, testar à vontade e apagar tudo em minutos, sem risco nenhum. Ele também serve para espelhar o ambiente de produção e compartilhá-lo com o time. A [Serverspace](https://serverspace.com.br/services/vps-server.md) tem data center no Brasil, cobrança em reais e modelo de pagamento por uso, então você liga uma máquina, instala o Ubuntu, o Debian ou qualquer outra distro deste guia e paga apenas pelos minutos em que ela ficou ativa. Para um teste rápido, o custo é quase simbólico. ## Erros comuns ao escolher uma distro A maioria dos arrependimentos vem de poucos deslizes evitáveis. O primeiro é seguir rankings de popularidade em vez das suas próprias necessidades. O segundo é o descompasso entre a sua máquina e o destino do código: desenvolver em um sistema enquanto a aplicação roda em outro convida bugs que só aparecem em produção. O terceiro é rodar um rolling release em servidor, onde atualizações surpresa são a última coisa que você quer. O quarto é ignorar o suporte a hardware e descobrir depois da instalação que o Wi-Fi ou a GPU não funcionam. O quinto, silencioso, é seguir um tutorial escrito para uma versão antiga, já que comandos e padrões mudam entre as versões, então confira sempre a data do material. ## Conclusão Não existe uma distro vencedora única para desenvolvedores em 2026, porque a resposta certa depende do trabalho. Ubuntu LTS como padrão, Fedora para ferramentas frescas, Debian para servidores, NixOS para reprodutibilidade, Pop!_OS para machine learning, Arch ou EndeavourOS para controle total. O passo mais inteligente é testar antes de adotar. Suba duas ou três candidatas em um [VPS](https://serverspace.com.br/services/vps-server.md), use cada uma por um dia e fique com a que fizer mais sentido para o seu fluxo. ## FAQ **Qual distro Linux é melhor para começar a programar?** Ubuntu LTS, pela enorme comunidade e pela compatibilidade com ferramentas e serviços de integração contínua. Quase todo problema que você encontrar já foi respondido em algum fórum ou tutorial. **Rolling release ou LTS, o que escolher?** Escolha LTS se você valoriza estabilidade e quer configurar uma vez só. Escolha rolling release se quer as novidades primeiro e não se importa com manutenção ocasional. Para servidores, o LTS quase sempre vence. **Preciso pagar por uma distribuição Linux?** Quase todas são gratuitas para baixar e usar, incluindo Ubuntu, Fedora, Debian e NixOS. Algumas empresas vendem suporte pago voltado a negócios, mas o software em si não custa nada. **Como testar uma distro sem mexer no meu computador?** Você pode gravar o instalador em um pen drive e usar o modo live, ou subir a distro em um VPS e acessá-la remotamente, apagando quando terminar. https://serverspace.com.br/about/blog/top-ia-tools-para-e-commerce-atendimento-vendas-e-automacao.md Conheça as melhores ferramentas de IA para e-commerce em 2026: atendimento no WhatsApp, recomendação de produtos, automação de vendas e como escolher cada uma. Montar uma loja virtual ficou fácil. O desafio agora é fazer ela atender bem, vender mais e funcionar sozinha nas horas em que ninguém da equipe está olhando. É aí que entram as ferramentas de IA para e-commerce. Segundo pesquisa da Ebit/Nielsen, cerca de 70% das lojas virtuais brasileiras já usam inteligência artificial em alguma parte da operação. E no levantamento IA Survey 2026, 79% dos executivos afirmam que a tecnologia já influencia o negócio hoje ou vai influenciar muito em breve. Este guia foi escrito para quem toca um e-commerce e não precisa ser da área de tecnologia para entender. Vamos explicar o que são essas ferramentas, como elas funcionam, quais resolvem cada tipo de problema, como escolher a certa e quais erros evitar. Sem jargão, com exemplos do dia a dia de quem vende online. ## O que é uma ferramenta de IA para loja virtual e as três tarefas que ela resolve Quando alguém fala em IA para e-commerce, costuma imaginar um robô único que faz tudo. Na prática, são várias ferramentas diferentes, cada uma treinada para uma função. Para não se perder, vale separar tudo em três grandes blocos. O primeiro é o atendimento. São os assistentes que respondem dúvidas, informam o status do pedido e resolvem problemas simples sem precisar de uma pessoa na linha. Pense no cliente que manda mensagem perguntando onde está a encomenda às onze da noite e recebe a resposta na hora. O segundo é a venda. Aqui a IA ajuda o visitante a encontrar o produto certo, recomenda itens parecidos, organiza a busca do site e identifica quem está mais perto de comprar. É como ter um vendedor que conhece a vitrine inteira e nunca cansa. O terceiro é a automação. São as ferramentas que cuidam da rotina invisível: disparar e-mails na hora certa, recuperar carrinho abandonado, sincronizar dados entre sistemas e emitir nota fiscal. O trabalho que ninguém vê, mas que trava a operação quando falha. Ao longo do texto, vamos detalhar cada bloco com nomes de ferramentas reais usadas no Brasil e no mundo. ## Por que 2026 mudou as regras do jogo para quem vende online A IA deixou de ser assunto de empresa grande. Um dado do Leading Tech Report 2026 mostra que 65% da adoção de agentes de IA vem de pequenas e médias empresas. O motivo é simples: negócio pequeno decide rápido, tem menos burocracia e vê o retorno em poucas semanas. O dinheiro acompanha esse movimento. A consultoria IDC projeta que os investimentos em IA no Brasil devem crescer acima de 30% ao ano em 2026, passando de 3,4 bilhões de dólares em software, serviços e infraestrutura. O comportamento do consumidor também mudou. Segundo pesquisa da Signifyd sobre comércio agêntico, o tráfego gerado por IA cresceu 4.700% entre 2024 e 2025. Cada vez mais gente pesquisa produto conversando com um assistente, em vez de digitar no buscador tradicional. Isso tem efeito direto na descoberta de produtos. Especialistas ouvidos pelo portal E-Commerce Brasil apontam que o SEO clássico vai dividir espaço com os modelos de recomendação baseados em IA e com o social commerce. Aparecer bem nos buscadores continua importante, e agora aparecer bem para a IA também conta. Por isso, escolher as ferramentas com critério virou parte da estratégia. ## Atendimento ao cliente: como a IA responde mais rápido que um operador humano No Brasil, atendimento e WhatsApp viraram quase sinônimos. O aplicativo deixou de ser só canal de suporte e se tornou o principal canal de vendas assistidas do país. Por isso, a maior parte das ferramentas de atendimento com IA gira em torno dele. Na prática, funciona assim. O cliente manda uma mensagem, a IA entende a intenção e responde sozinha quando o caso é simples. As perguntas mais comuns são sempre as mesmas: onde está meu pedido, como faço a troca, esse produto tem em estoque. Estima-se que a automação resolva de 30% a 50% desses contatos repetitivos sem nenhuma intervenção humana, o que libera a equipe para os casos que realmente exigem atenção. Entre as plataformas brasileiras, a Octadesk é uma das mais usadas por lojas de pequeno e médio porte, com a IA própria chamada WOZ e foco em chat-commerce. A Blip, também conhecida como Take Blip, é a opção robusta para grandes operações, com parceria oficial da Meta, embora os planos partam de valores altos voltados a empresas. A Digisac aparece bastante em operações que centralizam vários canais em uma só tela. No mercado global, vale conhecer a Gorgias, que tem integração profunda com Shopify, além de Zendesk, Tidio e a Siena, que chega a automatizar até 80% dos atendimentos em algumas marcas. WhatsApp oficial e as novas regras da Meta em 2026 Existe um ponto que ninguém pode ignorar neste ano. A Meta anunciou que, a partir de janeiro de 2026, vai banir o uso de chatbots de IA genéricos e de integrações não certificadas dentro da API oficial do WhatsApp Business. Quem usa ferramenta pirata ou conexão paralela corre risco real de ter o número bloqueado. A recomendação é clara: trabalhar apenas com plataformas certificadas pela Meta, os chamados provedores oficiais. Mais adiante, veremos que manter o controle sobre a própria infraestrutura também ajuda a reduzir esse tipo de risco. ## Vendas: como a IA transforma o visitante em comprador Atrair visita custa caro. Por isso, a segunda frente da IA é justamente transformar quem chega à loja em quem compra de verdade. A ferramenta mais conhecida desse grupo é o motor de recomendação. Ele observa o que a pessoa vê, compara com o histórico de outros clientes e sugere produtos com chance de agradar. O número impressiona: dados da plataforma Klaviyo indicam que recomendações personalizadas chegam a responder por até 31% do faturamento de uma loja online. Quase um terço da receita pode depender da qualidade dessas sugestões. Entre as opções, a Nosto é referência em recomendação e personalização dentro do site, com foco em aumentar o ticket médio. A Algolia cuida da busca inteligente, que entende a intenção por trás da palavra digitada, indo além do termo exato. A Rebuy trabalha o up-sell e o cross-sell em momentos quentes, como o carrinho e o pós-compra. Outra peça importante é o e-mail e o SMS automáticos. A própria Klaviyo mostra em seus dados que os fluxos automáticos geram 41% de toda a receita de e-mail, mesmo representando apenas 5,3% dos envios. A mensagem certa, na hora certa, vale muito mais que disparo em massa. Para organizar tudo e entender quem está perto de fechar, entram os CRMs com IA. A RD Station é a mais popular no Brasil, com recursos de pontuação de leads e automação de marketing. No cenário internacional, o HubSpot oferece previsão de vendas e sugestão de próximos passos. Para quem vende pelo Instagram ou pelo WhatsApp sem equipe grande, o ManyChat automatiza conversas e ajuda a escalar o atendimento comercial. ## Automação: como a loja trabalha enquanto você dorme Se o atendimento responde e a venda converte, a automação é quem mantém a engrenagem girando nos bastidores. São as tarefas repetitivas que consomem horas e não aparecem para o cliente. A lista é longa: disparo de campanhas de marketing, recuperação de carrinho abandonado, sincronização de dados entre o WhatsApp, o CRM e o sistema de gestão, emissão de nota fiscal, atualização de estoque e até detecção de fraude. Cada uma dessas etapas pode rodar de forma automática. Para marketing e relacionamento, a RD Station e a edrone se destacam no público brasileiro e latino-americano, com CRM e automação alimentados por IA. Para conectar ferramentas que não conversam entre si, entram os orquestradores de fluxo, como n8n, Make e Zapier. Eles funcionam como uma central que dispara ações em cadeia: chegou um pedido, então atualize a planilha, avise o time no WhatsApp e agende o e-mail de pós-venda. Vale um detalhe técnico que pesa na conta do fim do mês. Ferramentas como o n8n podem rodar em modo aberto, instaladas em um servidor próprio. Muitas lojas optam por hospedar essas automações em um VPS, o servidor virtual privado, para escapar dos limites e das cobranças por execução dos planos de nuvem fechada. Assim, dá para criar quantos fluxos quiser pagando apenas pela máquina. ## Onde suas ferramentas de IA realmente moram e por que isso afeta a privacidade dos dados Tem uma camada que quase ninguém comenta, mas que sustenta tudo o que vimos até aqui: a infraestrutura. As ferramentas em nuvem são práticas, porém os dados dos seus clientes passam a viver no servidor de outra empresa, muitas vezes fora do Brasil. E aqui mora uma questão séria: a LGPD, a Lei Geral de Proteção de Dados. Quando o assunto é informação pessoal de cliente, histórico de compra e conversa de atendimento, manter esses dados sob controle deixou de ser preferência e virou obrigação legal. Uma saída cada vez mais comum é rodar parte da operação em servidor próprio. Modelos de IA de código aberto, como Llama, Qwen e DeepSeek, já podem ser instalados em um VPS para alimentar um chatbot ou uma automação sem enviar dados sensíveis para fora. É nesse ponto que entra o aluguel de um VPS no Brasil. Provedores como a Serverspace oferecem servidores virtuais com data center em São Paulo, o que reduz a latência para o público brasileiro e mantém os dados em território nacional, um ponto a favor na conformidade com a LGPD. A cobrança é em reais, com pagamento pelo tempo de uso, e o suporte funciona em português. Para quem quer hospedar a própria loja, rodar automações em n8n ou subir um modelo de IA aberto, vale conhecer as opções de [aluguel de VPS da Serverspace](https://serverspace.com.br/services/vps-server.md). Você não precisa abrir mão das ferramentas em nuvem. A ideia é combinar as duas abordagens: use os serviços prontos onde a praticidade compensa e mantenha no seu servidor aquilo que envolve dados sensíveis ou que precisa rodar sem limite de execução. ## Qual ferramenta para cada tarefa: tabela comparativa Reunimos abaixo um resumo prático de qual tipo de ferramenta resolve cada necessidade, com exemplos e indicação de perfil. Use a tabela como ponto de partida para montar a sua combinação. Não existe ferramenta única que faça tudo bem, então o caminho é escolher uma boa solução por frente e garantir que elas conversem entre si. | Tarefa | Categoria de ferramenta | Exemplos | Para quem | | --- | --- | --- | --- | | Atendimento | Chatbot e atendimento no WhatsApp com IA | Octadesk, Blip (Take Blip), Digisac, Gorgias, Zendesk, Tidio, Siena | Lojas com alto volume de mensagens e dúvidas repetitivas | | Vendas e recomendação | Personalização e motor de recomendação de produtos | Nosto, Rebuy, Klaviyo, Dynamic Yield | Quem quer aumentar ticket médio e taxa de conversão | | Busca inteligente | Busca no site com entendimento de intenção | Algolia | Catálogos grandes, onde o cliente se perde para achar produto | | Automação | Automação de marketing, CRM e orquestração de fluxos | RD Station, edrone, HubSpot, ManyChat, n8n, Make, Zapier | Operações que perdem horas com tarefas manuais e repetitivas | | Infraestrutura e hospedagem | VPS para hospedar loja, automações e modelos de IA abertos | Serverspace (data center no Brasil, cobrança em reais) | Quem precisa de controle de custo e de privacidade sob a LGPD | ## Pontos fortes, limites e riscos que os fornecedores não contam A IA entrega ganhos reais, e seria desonesto pintar só o lado bom. Vamos aos dois lados. Entre as vantagens, estão a velocidade de resposta, o atendimento que funciona vinte e quatro horas por dia, a economia de horas da equipe e o aumento de conversão quando a recomendação é boa. Lojas que automatizam o atendimento costumam ver o custo por contato cair sem perder qualidade. Os limites também existem. A principal barreira não é o dinheiro. Segundo o IA Survey 2026, 46% das empresas apontam a falta de conhecimento interno como o maior obstáculo para avançar, à frente do custo e da dificuldade de integração. Muita gente compra a ferramenta e não sabe operar. Há ainda o risco da fraude automatizada. A mesma onda de IA que ajuda o lojista também serve aos golpistas: pedidos com sinais de robô cresceram 51% em um ano, segundo a Signifyd. Vale investir em detecção de fraude na mesma medida em que se investe em automação. Por fim, cuidado com a automação em excesso. Quando tudo vira resposta de robô, o cliente sente, e o tom humano se perde. O segredo é deixar a IA cuidar do repetitivo e reservar a pessoa para o que importa. E nada disso funciona com dado bagunçado: ferramenta de IA é tão boa quanto a informação que recebe. ## Cinco situações em que a IA se paga mais rápido Para sair da teoria, veja cinco cenários típicos em que o investimento volta rápido. Primeiro, a loja pequena que automatiza a pergunta onde está meu pedido no WhatsApp. Sozinha, essa dúvida costuma representar boa parte dos contatos. Resolvê-la no automático libera horas todo dia. Segundo, a recuperação de carrinho abandonado. Um fluxo automático de e-mail ou mensagem lembra o cliente do item esquecido e oferece um empurrão final. É das automações com retorno mais visível. Terceiro, as recomendações que aumentam o ticket médio. Quem compra um tênis recebe a sugestão da meia certa, e o valor do pedido sobe sem esforço extra de venda. Quarto, o chatbot próprio rodando em servidor da empresa para atender exigências da LGPD. Negócios que lidam com dados sensíveis, como saúde e finanças, ganham tranquilidade ao manter a conversa dentro do próprio ambiente, em um VPS sob seu controle. Quinto, a qualificação de leads em vendas B2B. A IA pontua quem tem mais chance de fechar, e o time comercial foca energia em quem realmente importa, em vez de ligar para todo mundo. ## Sete erros que zeram o efeito da IA A maioria dos resultados ruins vem dos mesmos tropeços. Anote para não cair neles. - Usar bot pirata no WhatsApp. Com as novas regras da Meta em 2026, a conexão não oficial vira risco de bloqueio. Use sempre plataforma certificada. - Implantar sem estratégia e com dado sujo. Ferramenta boa com base bagunçada entrega resposta ruim. Organize os dados antes. - Exagerar nos disparos. Encher o cliente de mensagem queima a lista e derruba a reputação do número. Frequência tem limite. - Achar que a IA substitui gente por completo. Ela cuida do volume repetitivo. O caso difícil ainda pede um humano. - Ignorar a LGPD. Tratar dado pessoal sem cuidado pode gerar multa e perda de confiança. Saiba onde seus dados moram. - Comprar solução cara demais. Operação pequena raramente precisa de plataforma enterprise. Comece simples e cresça conforme a demanda. - Não medir nada. Sem acompanhar taxa de resolução, conversão e custo por contato, não dá para saber se a ferramenta funciona. Defina métricas desde o primeiro dia. ## Por onde começar: um plano curto de ação Resumindo o caminho, dá para começar sem complicação. - Identifique o seu gargalo. A dor está no atendimento, na conversão ou na rotina manual? Comece pela frente que mais dói. - Escolha uma ferramenta só e domine ela antes de empilhar outras. Uma solução bem usada vale mais que cinco pela metade. - Conecte apenas canais oficiais, principalmente no WhatsApp. - Meça o resultado por algumas semanas e ajuste o que for preciso. - Conforme a operação cresce, pense na infraestrutura: o que pode rodar em serviço pronto e o que vale manter no seu próprio servidor, por custo ou por privacidade. Essa decisão, tomada cedo, evita dor de cabeça com dados e com a fatura lá na frente. ### Quanto custa para uma loja pequena? Varia bastante. Há chatbots a partir de algumas dezenas de reais por mês e planos gratuitos limitados. O VPS para hospedar automações também parte de valores baixos, na casa de poucas dezenas de reais mensais. Comece pequeno e aumente conforme o retorno aparece. ### É seguro entregar os dados dos clientes a serviços de IA? Depende de onde os dados ficam. Serviços sérios têm boas proteções, mas a responsabilidade pela LGPD é sua. Para dados sensíveis, manter a operação em um VPS no Brasil sob seu controle dá mais segurança jurídica. ### A IA vai substituir meus atendentes? Não por completo. Ela assume o volume repetitivo e deixa a equipe livre para os casos complexos e para o relacionamento, que ainda pedem o toque humano. ### Dá para rodar essas ferramentas no meu próprio servidor? Sim. Orquestradores como n8n e modelos de IA abertos podem ser instalados em um VPS, o que dá controle total sobre custo e privacidade. É o caminho de quem quer escapar dos limites dos planos fechados. https://serverspace.com.br/about/blog/chatbot-para-loja-virtual-como-o-openclaw-ajuda-a-responder-clientes-24-7.md OpenClaw é um assistente de IA auto-hospedado que responde a clientes 24/7 no WhatsApp, Telegram e Slack. Um cliente envia uma mensagem no WhatsApp às 23h perguntando sobre preços. Um potencial parceiro entra em contato no Telegram às 7h da manhã, antes de sua equipe fazer login. Alguém no seu canal de suporte do Slack publica uma pergunta num domingo. Para donos de pequenos negócios e profissionais independentes, isso não são casos excepcionais — são ocorrências normais que acabam sendo respondidas com atraso ou não são respondidas de todo. Em ambos os casos, há um custo. OpenClaw é um assistente pessoal de IA open source, criado para fechar essa lacuna. Ele não fica no seu site como um balão de chat flutuante; ele vive em um servidor ou máquina que você controla, conecta-se aos aplicativos de mensagens que seus clientes já usam e permanece online o tempo todo. Este artigo explica o que o OpenClaw realmente é, como colocá-lo para funcionar e como empresários estão usando a ferramenta para lidar com comunicações que antes ficavam para a segunda-feira de manhã. ## O que o OpenClaw É — e o que Não É O OpenClaw se descreve como "a IA que realmente faz coisas". Essa formulação importa, porque posiciona o produto de forma diferente tanto dos chatbots tradicionais quanto da nova geração de assistentes de IA embutidos em sistemas operacionais. Não é um widget de chatbot para você incorporar a uma vitrine, e não é um serviço em nuvem por onde suas conversas passam pela infraestrutura de outra empresa. É um software que você instala, configura e executa — nos seus próprios termos. A ideia central é simples: você tem um Gateway (o mecanismo que gerencia tudo) e esse Gateway se conecta aos canais que você já usa — WhatsApp, Telegram, Slack, Discord, Signal, iMessage e outros. Quando alguém lhe envia uma mensagem em qualquer uma dessas plataformas, o OpenClaw recebe a mensagem, processa-a usando o modelo de IA que você configurou e responde. Você pode fazer com que o assistente conduza as conversas de forma totalmente autônoma ou configurá-lo para avisá-lo quando algo exigir sua atenção. Criado por Peter Steinberger e por uma comunidade open source ativa, o OpenClaw cresceu para mais de 376.000 estrelas no GitHub desde seu lançamento. No início de 2026, a TechCrunch observou que o criador ingressou na OpenAI, enquanto o projeto continuou como software open source independente — um detalhe que mostra o quanto o projeto é levado a sério. ## A Arquitetura: Gateway, Canais, Skills Entender três conceitos faz todo o resto sobre o OpenClaw ficar claro. O Gateway O Gateway é o plano de controle local do OpenClaw. Ele roda como um daemon em segundo plano na sua máquina ou servidor, escuta na porta 18789 e orquestra tudo: sessões, canais, ferramentas e chamadas ao modelo. Quando você inicia o OpenClaw, está iniciando o Gateway. Quando ele fica offline, seu assistente fica offline. Por isso é importante hospedá-lo em um servidor que funcione continuamente — falaremos mais sobre isso adiante. O Gateway faz o roteamento multiagente, o que significa que você pode ter assistentes diferentes (workspaces) lidando com canais diferentes. Um workspace do Slack para comunicação interna da equipe pode ser roteado para um agente diferente do seu número do WhatsApp usado para clientes. Canais Canais são as superfícies onde as conversas acontecem. O OpenClaw vem com suporte nativo para Discord, Google Chat, iMessage, IRC, Signal, Slack, Telegram, WebChat e WhatsApp. Canais adicionais — Matrix, Microsoft Teams, Mattermost, Nextcloud Talk, Feishu, Twitch e outros — vêm como plugins incluídos. Cada canal se conecta ao mesmo Gateway, então uma única instância em execução atende a todos simultaneamente. Para uso empresarial, WhatsApp e Telegram são os canais mais rápidos de colocar em funcionamento. O Telegram exige apenas um token de bot do BotFather. O WhatsApp exige um pouco mais de configuração, mas alcança a maior base de clientes. A integração com o Slack é particularmente relevante para equipes que gerenciam um canal de suporte — a seção Showcase da documentação oficial inclui um exemplo real de uma empresa usando o OpenClaw para monitorar um canal do Slack e responder de forma autônoma, encaminhando alertas para o Telegram quando algo precisa de intervenção humana. Skills e Memória Skills são extensões que dão ao OpenClaw capacidades específicas. Algumas vêm do ClawHub (o registro oficial de skills), outras você pode criar por conta própria — ou fazer com que o OpenClaw crie para você, descrevendo o que precisa em um chat. Membros da comunidade criaram skills para Gmail, Todoist, Linear, Home Assistant, Jira, APIs de transporte público e dezenas de outras ferramentas. O assistente pode instalar e começar a usar uma nova skill na mesma conversa em que você a solicitou. A memória persistente é um recurso distinto das skills. O OpenClaw vai construindo conhecimento sobre o seu contexto ao longo do tempo — suas preferências, o contexto de relações contínuas com clientes, perguntas recorrentes que aprendeu a tratar. Essa memória acumulada torna o assistente progressivamente mais útil, em vez de começar do zero a cada sessão. ## O que o OpenClaw Pode Fazer por um Dono de Negócio O produto foi projetado para uso geral, o que significa que seu valor depende de como ele é configurado. Para um empresário focado em comunicação com clientes, algumas categorias se destacam com base no que a comunidade realmente está construindo. No lado das mensagens: receber e responder mensagens de clientes no WhatsApp ou Telegram, responder perguntas recorrentes sobre serviços ou disponibilidade, encaminhar solicitações urgentes para você por meio de uma notificação em outro canal e confirmar o recebimento de mensagens que você responderá pessoalmente mais tarde. O assistente pode receber uma persona e instruções que combinem com o tom de comunicação da sua marca. No lado operacional: gerenciamento da caixa de entrada de e-mail (ler, resumir, redigir respostas), coordenação de agenda, pesquisa na web para obter preços ou informações de concorrentes, criação e acompanhamento de tarefas em ferramentas como Todoist ou Linear e execução de verificações agendadas sobre informações de seu interesse. Usuários da comunidade criaram fluxos que processam anexos de e-mail, marcam compromissos por meio de automação do navegador e geram briefings matinais antes do início do expediente. A automação do navegador merece destaque separado. O OpenClaw pode navegar por sites, preencher formulários e extrair informações sem APIs — o que significa que ele consegue interagir com ferramentas que não oferecem integrações, desde que tenham uma interface web. ## Principais Recursos: O que Está Incluído | Recurso | O que Isso Significa na Prática | Relevância para o Negócio | | --- | --- | --- | | Caixa de entrada multicanal | Um único Gateway gerencia WhatsApp, Telegram, Slack, Discord, Signal e muito mais simultaneamente | Os clientes podem falar com você na plataforma de preferência deles | | Memória persistente | O assistente constrói contexto ao longo do tempo e o mantém entre sessões | Reconhece clientes recorrentes, projetos em andamento e preferências frequentes | | Skills / ClawHub | Extensões criadas pela comunidade para ferramentas como Gmail, Todoist, Jira e calendários | Conecta o assistente aos fluxos de trabalho que você já usa | | Automação de navegador | Navega em sites, preenche formulários, extrai dados — sem necessidade de API | Funciona com ferramentas que não têm integrações | | Jobs cron / heartbeats | Tarefas agendadas e check-ins proativos em um ritmo definido | Briefings matinais, lembretes de acompanhamento, relatórios periódicos | | 35+ provedores de modelo | Anthropic, OpenAI, Google e outros; alterna ou combina modelos livremente | Use o modelo que se encaixa nas suas necessidades de custo e capacidade | | Controles de segurança para DMs | Códigos de pareamento, allowlists e sandboxing para mensagens de remetentes desconhecidos | Controla quem pode interagir com seu assistente e de que forma | | Dados auto-hospedados | Todos os dados das conversas permanecem no seu servidor — não são compartilhados com plataformas de terceiros | Relevante para conformidade com GDPR e confidencialidade dos clientes | ## Configuração: Do Zero ao Assistente em Funcionamento O OpenClaw roda em macOS, Linux e Windows (via WSL2). A documentação recomenda Node.js 24, embora Node 22.19 ou superior também funcione. A configuração completa leva cerca de cinco minutos para a instalação em si; conectar canais e ajustar o assistente leva mais tempo, dependendo do nível de personalização desejado. Instalação Em macOS ou Linux, o caminho mais rápido é o instalador de linha única. Ele cuida automaticamente do Node.js e de todas as dependências: ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` No Windows via PowerShell: ``` iwr -useb https://openclaw.ai/install.ps1 | iex ``` Como alternativa, se você preferir gerenciá-lo diretamente por npm ou pnpm: ```bash npm install -g openclaw@latest ``` Onboarding Após a instalação, execute o assistente de onboarding. A flag --install-daemon configura o Gateway como um serviço em segundo plano, para que ele sobreviva a reinicializações e continue rodando quando você fechar o terminal: ``` openclaw onboard --install-daemon ``` O assistente solicita que você escolha um provedor de modelo e informe uma chave de API. Se você já usa Claude ou ChatGPT, usará a mesma chave de API aqui. Após o onboarding, verifique se o Gateway está em execução: ``` openclaw gateway status ``` Se ele responder que o Gateway está escutando na porta 18789, o mecanismo está ativo. Abra o painel Control UI com openclaw dashboard e envie uma mensagem de teste para confirmar que tudo funciona do início ao fim antes de avançar para a configuração de canais. Conectando um Canal O Telegram é o canal mais rápido de conectar — ele exige apenas um token de bot do BotFather do Telegram. A documentação em [docs.openclaw.ai/channels/telegram](https://docs.openclaw.ai/channels/telegram) mostra os passos exatos. WhatsApp, Slack e Discord têm seus próprios guias de configuração na seção Canais. Assim que um canal é conectado, as mensagens que chegam nessa plataforma passam pelo Gateway e o assistente começa a responder. O acesso por DM é bloqueado por padrão: remetentes desconhecidos recebem um código de pareamento e o assistente não processa a mensagem até que você os aprove explicitamente. Para uso empresarial, você pode liberar isso definindo dmPolicy="open" nos canais em que deseja que o assistente responda a todas as mensagens recebidas sem pareamento prévio. ## Cinco Casos de Uso em que o OpenClaw Faz Diferença Real 1. Mensagens de Clientes 24/7 no WhatsApp ou Telegram Este é o caso de uso mais direto para donos de negócios. Configure o OpenClaw com uma persona que reflita o estilo de comunicação da sua marca — nome, tom, informações que ele deve sempre ter disponíveis — e conecte-o ao seu número do WhatsApp Business ou do Telegram. Quando um cliente envia mensagem fora do horário comercial, o assistente responde imediatamente, em vez de deixar a solicitação parada até a manhã seguinte. O sistema de memória faz com que ele fique contextualmente melhor com o tempo. Depois de várias conversas, ele sabe quais clientes têm projetos em andamento, quais são as perguntas mais comuns e quais respostas você já deu antes. Esse contexto molda as respostas de uma forma que chatbots genéricos não conseguem replicar. 2. Automação de Canal de Suporte no Slack A documentação Showcase inclui um exemplo verificado da comunidade: [uma instância do OpenClaw monitorando um canal de suporte da empresa no Slack](https://docs.openclaw.ai/start/showcase), respondendo de forma útil a perguntas recebidas e encaminhando alertas para o Telegram quando algo exige uma decisão humana. A mesma instância corrigiu autonomamente um bug de produção em um aplicativo implantado, sem ser solicitada — ela percebeu o problema durante o monitoramento do canal e o resolveu. Para um negócio que opera canais internos ou voltados para clientes no Slack, esse padrão funciona bem: o assistente lida com perguntas rotineiras e confirmações, sinaliza qualquer coisa que exija julgamento e mantém o canal responsivo sem atenção manual. 3. Triagem da Caixa de Entrada de E-mail Com uma skill do Gmail (disponível no ClawHub) ou acesso ao e-mail via navegador, o OpenClaw pode ler mensagens recebidas, categorizá-las por urgência ou tema, redigir respostas, cancelar inscrições em listas e destacar os itens que realmente exigem sua atenção. Usuários da comunidade relatam executar isso em horários programados — uma varredura matinal da caixa de entrada que entrega um resumo pelo Telegram antes do início do expediente, para que você comece o dia com contexto em vez de uma fila de mensagens não processadas. 4. Follow-ups Agendados e Prospecção Proativa A funcionalidade de jobs cron do OpenClaw lida com automações baseadas em tempo sem necessidade de ferramentas adicionais. Você pode configurá-lo para enviar uma mensagem de acompanhamento a um cliente três dias após uma conversa inicial, entregar um resumo semanal dos itens em aberto ou verificar o status de um projeto em um intervalo definido. Isso não são mensagens em massa — são follow-ups contextuais moldados pelo que o assistente já sabe sobre o cliente ou projeto específico. O recurso de heartbeat é uma capacidade relacionada: o assistente envia um check-in proativo em intervalos definidos, o que alguns usuários configuram como um briefing diário com atualizações importantes, pendências e qualquer coisa que o assistente sinalize como merecedora de atenção. 5. Pesquisa Web Sob Demanda e Busca de Informações Quando um cliente faz uma pergunta para a qual você não tem resposta imediata — o prazo estimado atual de uma transportadora, o preço público de um concorrente, a disponibilidade de um produto específico de um fornecedor — o OpenClaw pode procurar isso em tempo real usando sua capacidade de controle do navegador. Não é necessária integração por API com o site de destino. Ele navega até a página, extrai as informações relevantes e devolve uma resposta dentro da mesma conversa. Isso transforma o assistente de um respondedor roteirizado em algo mais capaz de lidar com perguntas realmente variadas, que é onde muitos bots roteirizados falham. ## Limitações e Riscos a Considerar O OpenClaw é um assistente de uso geral, não um produto feito especificamente para um único setor ou fluxo de trabalho. Essa flexibilidade é sua força, mas também significa que não existe uma configuração pronta para comunicação empresarial — você mesmo precisa moldá-lo. A qualidade das respostas do assistente reflete a qualidade das instruções e do contexto que você fornece. Um assistente mal treinado e com prompts ruins dará respostas genéricas e, às vezes, incorretas. O modelo de segurança exige atenção antes de abrir o assistente para mensagens recebidas de remetentes desconhecidos. O acesso por DM é bloqueado por padrão, e por um bom motivo — o OpenClaw se conecta a superfícies reais de mensagens, com capacidades reais (acesso a arquivos, controle do navegador, execução de comandos). A documentação inclui um guia completo de segurança e um runbook de exposição que devem ser lidos antes de tornar o assistente publicamente acessível. Execute openclaw doctor após a configuração para detectar políticas de DM mal configuradas ou definições arriscadas. O custo do modelo é uma variável fácil de subestimar. O OpenClaw não cobra por mensagem, mas faz chamadas ao provedor do modelo de IA para cada interação substancial. Com um canal de clientes movimentado, isso significa um fluxo constante de chamadas de API. Monitore o uso, defina limites de taxa razoáveis e escolha um nível de modelo compatível com o volume esperado. Para perguntas de alta frequência e menor complexidade, um modelo mais rápido e mais barato pode ser melhor do que um modelo topo de linha. Por fim, o assistente não tem empatia humana nem consciência institucional do seu negócio além do que você lhe conta. Situações complexas com clientes — disputas, negociações delicadas, qualquer coisa que exija julgamento refinado — precisam de um humano. Crie caminhos claros de escalonamento para que o assistente saiba quando notificar você em vez de responder por conta própria. ## Executando o OpenClaw 24/7: Considerações de Infraestrutura A razão mais comum para uma implantação do OpenClaw falhar na prática não é a configuração — é a disponibilidade. Executar o Gateway em um laptop ou desktop pessoal faz o assistente ficar offline sempre que a máquina suspende, reinicia ou perde energia. Para uma ferramenta de comunicação com clientes 24/7, isso não é aceitável. A solução prática é um VPS Linux sempre ligado. O OpenClaw funciona confortavelmente em uma configuração padrão: uma instância Linux leve com uma versão recente do Node.js é suficiente para a maioria das implantações de um único negócio. O processo do Gateway não é particularmente pesado em recursos em volumes normais de mensagens; o uso de recursos cresce com o número de conversas ativas simultâneas e com quaisquer tarefas de automação de navegador que você executar. [Serverspace VPS](https://serverspace.com.br/services/vps-server.md) fornece servidores virtuais baseados em Linux com preço mensal previsível — uma combinação sensata para o modelo de custo fixo do OpenClaw, em que você paga pelo servidor independentemente de quantas mensagens o assistente processe. Com data centers em diferentes regiões, você pode posicionar o servidor perto da sua base de clientes para minimizar a latência na entrega das respostas. Configurar o Gateway como um serviço systemd (o que a flag --install-daemon faz automaticamente no Linux) garante que o assistente reinicie automaticamente se o processo travar ou o servidor reiniciar. No lado operacional, configure monitoramento para o processo do Gateway. Um health check básico que verifica localhost:18789 e avisa se ele parar de responder leva minutos para configurar e evita a situação em que o assistente fica silenciosamente offline sem qualquer aviso. Execute openclaw gateway status com frequência nas primeiras semanas para entender o quão estável é o seu ambiente específico. ## Erros Comuns de Configuração Ignorar a Persona e as Instruções O OpenClaw, fora da caixa, responderá como um assistente geral — útil, mas genérico. Para uso empresarial, ele precisa de contexto explícito: quem você é, o que faz, o que o assistente pode responder em seu nome, o que deve sempre escalar e qual tom usar. O arquivo SOUL.md na raiz do workspace é onde você define a persona do assistente. Investir uma hora nisso tem mais impacto na qualidade das respostas do que qualquer escolha de configuração de modelo. Abrir o Acesso por DM Antes de Ler o Guia de Segurança A configuração padrão dmPolicy="pairing" existe por um motivo. Antes de mudar para DMs abertas, leia a [documentação de Segurança](https://docs.openclaw.ai/gateway/security) e o runbook de exposição. O assistente tem capacidades reais na máquina hospedeira; uma instância mal protegida representa um risco concreto, não teórico. Usar um Modelo Caro para Tudo Modelos topo de linha da Anthropic ou da OpenAI são capazes, mas caros em escala. Para um canal voltado a clientes que lida com centenas de mensagens por dia, um modelo menor e mais rápido atenderá à maioria das perguntas adequadamente e por uma fração do custo. Configure modelos de fallback e considere direcionar diferentes tipos de tarefa para modelos compatíveis com sua complexidade. Não Criar Lógica de Escalonamento O assistente precisa de um caminho definido para situações que não pode ou não deve tratar. Sem instruções explícitas de escalonamento, ele tentará responder a tudo — às vezes de forma inadequada. Diga exatamente quais cenários devem acionar uma notificação para você em vez de uma resposta autônoma: reclamações de clientes, questões relacionadas a pagamentos, pedidos que envolvam compromissos que você ainda não aprovou. Tratar a Configuração como uma Tarefa Única O OpenClaw melhora com manutenção. Skills precisam de atualizações. O cenário de modelos evolui. O contexto do seu negócio muda. As instruções do assistente devem ser revisadas a cada poucas semanas, especialmente nos primeiros meses. O Changelog no GitHub e o blog do OpenClaw em [openclaw.ai/blog](https://openclaw.ai/blog) acompanham mudanças que vale a pena monitorar. ## Para Quem o OpenClaw Realmente Serve O OpenClaw funciona melhor quando algumas coisas são verdadeiras. Você se sente à vontade instalando software pela linha de comando, ou está disposto a aprender — a configuração não é complicada, mas também não é totalmente visual e "clique-e-pronto". Você quer controle sobre seus dados e prefere não encaminhar conversas com clientes por uma plataforma SaaS de terceiros. E você lida com um volume de comunicação que realmente não pode ser coberto apenas no horário comercial. Ele é menos adequado para equipes que precisam de um produto polido, sem configuração, com uma equipe de suporte por trás. A comunidade open source é ativa e o servidor do Discord responde bem, mas o suporte é baseado em colaboração entre pares, não em contrato. Para um operador solo tecnicamente capaz ou uma pequena equipe, essa troca é simples. Para uma organização maior com exigências rigorosas de compras e procurement, ela exige mais avaliação. Em termos de custo, a economia é direta: você paga pela hospedagem do servidor (fixo) e pelas chamadas de API ao provedor do modelo (variável, mas previsível). Não há licença por assento, nem acréscimo baseado em uso, nem bloqueio de recursos por nível de assinatura. Para negócios que lidam com alto volume de mensagens, esse modelo se torna significativamente mais barato do que alternativas SaaS em escala. ## Conclusão O OpenClaw é um assistente pessoal de IA auto-hospedado que se conecta aos aplicativos de mensagens que seus clientes já usam e permanece online continuamente. Ele lida com mensagens recebidas, gerencia e-mail, executa tarefas agendadas e pode ampliar suas próprias capacidades com skills da comunidade ou com skills que você mesmo criar. Os dados ficam no seu servidor, o modelo de custos é previsível e a configuração é mais acessível do que o rótulo "open source" pode sugerir. Para um empresário que está perdendo oportunidades por causa da lentidão nas respostas fora do horário comercial, ele é uma resposta prática a um problema estrutural — não porque faz uma coisa específica perfeitamente, mas porque pode ser moldado para cobrir as lacunas específicas do seu fluxo de trabalho. Comece com um canal e um caso de uso claro. Faça isso funcionar bem e, então, expanda. ### O OpenClaw é um criador de chatbot para sites? Não. Ele não cria um widget de chat para o seu site. O OpenClaw é um assistente pessoal de IA que roda em um servidor e se comunica por meio das plataformas de mensagens que você já usa — WhatsApp, Telegram, Slack, Discord, Signal e outras. A experiência é mais parecida com ter uma IA que vive nos seus aplicativos de mensagens do que com um chatbot tradicional de website. ### Que modelos de IA o OpenClaw usa? O OpenClaw é compatível com mais de 35 provedores de modelo, incluindo Anthropic (Claude), OpenAI (GPT, Codex), Google (Gemini) e outros. Você escolhe qual provedor e qual modelo usar durante o onboarding e pode alternar ou combinar modelos a qualquer momento. Alguns usuários conectam suas assinaturas existentes do ChatGPT ou Claude via OAuth, em vez de pagar separadamente pelo acesso via API. ### Ele precisa rodar continuamente para funcionar? Sim — o Gateway precisa estar em execução para que o assistente receba e responda mensagens. Em um laptop ou desktop, isso significa que o assistente fica offline quando a máquina suspende. Para disponibilidade confiável 24/7, rodar o OpenClaw em um VPS é a opção prática. A flag --install-daemon configura a reinicialização automática na inicialização, então o processo não precisa de atenção manual após a configuração inicial. ### Como impedir que pessoas aleatórias enviem mensagens para o seu assistente? A política padrão de DM do OpenClaw exige que novos remetentes concluam uma etapa de pareamento antes que o assistente processe suas mensagens. Você recebe um código de pareamento, que aprova com openclaw pairing approve. Para canais nos quais você quer que o assistente responda a todas as mensagens recebidas sem aprovação prévia, você pode definir dmPolicy="open" — mas leia a documentação de segurança primeiro, já que o assistente possui capacidades reais na máquina hospedeira. ### O OpenClaw pode fazer coisas automaticamente sem ser solicitado? Sim, por meio de jobs cron e do sistema de heartbeat. Você pode configurá-lo para enviar um briefing matinal, acompanhar conversas em aberto após um certo período, verificar uma fonte de dados em um cronograma ou executar qualquer outra tarefa baseada em tempo. O assistente também pode agir proativamente quando percebe algo relevante — um exemplo da comunidade na seção Showcase mostra uma instância corrigindo autonomamente um bug de produção que notou enquanto monitorava um canal do Slack. ### O OpenClaw é gratuito? O software é gratuito e open source (licença MIT). Você paga por duas coisas: hospedagem do servidor para rodar o Gateway (um custo modesto de VPS) e chamadas de API ao provedor de modelo que escolher. Não há cobrança por mensagem, nem planos de assinatura, nem restrições de recursos baseadas em pagamento. A comunidade e o registro de skills do ClawHub são gratuitos para uso. https://serverspace.com.br/about/blog/freebsd-ou-ubuntu-server-o-que-escolher-para-uma-vps.md FreeBSD vs Ubuntu Server para VPS — uma comparação prática de arquitetura, ZFS, suporte a Docker, desempenho e casos de uso para ajudar você a escolher o SO certo. Ao configurar uma VPS, uma das primeiras decisões é escolher o sistema operacional. A maioria dos guias aponta diretamente para Linux, mas isso é apenas parte do quadro. FreeBSD é uma alternativa séria — com sua própria arquitetura, sua própria filosofia e uma base de usuários dedicada que vem sustentando infraestrutura de produção por décadas. Então, qual sistema realmente atende melhor às suas necessidades? Este artigo detalha as principais diferenças sem presumir que você já sabe a resposta. Seja para lançar seu primeiro servidor ou repensar uma configuração de longa data, a comparação aqui deve oferecer contexto suficiente para tomar uma decisão sólida — baseada na sua carga de trabalho, nas habilidades da sua equipe e no quanto você realmente está disposto a manter. ## FreeBSD e Ubuntu Server: O que são Ambos são sistemas operacionais para servidores. Mas vêm de linhagens diferentes, trazem prioridades de design diferentes e se comportam de maneira distinta na prática — por isso vale entender de onde cada um vem antes de compará-los recurso por recurso. **Ubuntu Server** é construído sobre Linux — especificamente sobre Debian. A Canonical o desenvolve e mantém em um cronograma previsível de lançamentos: uma versão LTS (Long-Term Support) é lançada a cada dois anos e recebe atualizações de segurança por cinco anos. O Ubuntu Server roda em x86-64, ARM e várias outras arquiteturas, e é amplamente usado como imagem padrão em ambientes de cloud e VPS. A comunidade é enorme, a documentação é abrangente e a maioria dos tutoriais encontrados online é escrita com Ubuntu ou Debian em mente. **FreeBSD** não é Linux. Essa distinção é importante. Ele é um descendente direto do Unix pela linhagem BSD — Berkeley Software Distribution — e possui seu próprio kernel, sua própria cadeia de ferramentas, seu suporte nativo de sistema de arquivos (ZFS, profundamente integrado) e seu próprio sistema de gerenciamento de pacotes. O Projeto FreeBSD é um esforço comunitário de código aberto, e estabilidade e correção são valores centrais na forma como o sistema é desenvolvido e lançado. Vale notar: quando as pessoas dizem "BSD", muitas vezes estão se referindo ao FreeBSD, mas a família BSD também inclui OpenBSD, NetBSD e DragonFly BSD. Cada um tem foco diferente. O FreeBSD prioriza desempenho e recursos avançados. O OpenBSD prioriza segurança acima de tudo. Este artigo foca especificamente no FreeBSD como o BSD mais escolhido para uso geral em servidores. ## Diferenças arquitetônicas centrais As diferenças entre FreeBSD e Ubuntu Server não são cosméticas. Elas vão até o kernel, o sistema de arquivos, o sistema de inicialização e a forma como o sistema operacional é montado como um todo. Entender essas diferenças ajuda a prever como cada sistema vai se comportar ao longo do tempo — e onde os desafios operacionais vão aparecer. Kernel e integração do sistema O Linux — kernel sobre o qual o Ubuntu é construído — é desenvolvido de forma independente das ferramentas de userland. Utilitários GNU, systemd e outros componentes vêm de projetos separados e são reunidos em uma distribuição pela Canonical. O FreeBSD é fornecido como um sistema completo e unificado: kernel e base userland são desenvolvidos juntos, testados juntos e lançados juntos pelo mesmo projeto. Essa coerência significa menos surpresas de compatibilidade entre componentes do sistema ao atualizar. Sistema de inicialização O Ubuntu Server usa systemd como sistema de init e gerenciamento de serviços. O FreeBSD usa seu próprio sistema rc — uma abordagem mais simples e tradicional, enraizada nas convenções BSD. Os serviços são habilitados adicionando entradas em /etc/rc.conf, e os scripts de inicialização ficam em /etc/rc.d/ e /usr/local/etc/rc.d/. Administradores que preferem entender exatamente o que acontece no boot geralmente acham a abordagem do FreeBSD mais fácil de auditar. Sistema de arquivos O Ubuntu Server usa ext4 por padrão, com suporte opcional a ZFS disponível desde o Ubuntu 20.04. O FreeBSD trata ZFS como um cidadão de primeira classe — é a opção padrão durante a instalação, e sua integração é madura e amplamente testada há muitos anos. O ZFS oferece snapshots atômicos, verificação por checksum em cada bloco para integridade dos dados, compressão transparente e replicação por meio de zfs send e zfs receive. No ext4, você precisaria de ferramentas separadas para aproximar essas garantias — e confiar separadamente que todas estejam funcionando corretamente em conjunto. Pilha de rede O FreeBSD tem reputação consolidada de desempenho e correção de rede. Vários appliances comerciais de rede — incluindo partes do Juniper JunOS — foram construídos sobre FreeBSD porque sua pilha de rede se comporta de forma previsível sob carga e em escala. O firewall integrado, pf (originalmente do OpenBSD), é poderoso, bem documentado e amplamente usado em implantações de firewall em produção. Gerenciamento de pacotes O Ubuntu Server usa apt com pacotes binários pré-compilados dos repositórios oficiais e PPAs. O FreeBSD oferece dois sistemas complementares: pkg para pacotes binários (rápido e direto) e a **Ports Collection** para compilar software a partir do código-fonte com opções de compilação personalizadas. A Ports Collection contém mais de 30.000 itens de software e dá aos administradores controle detalhado sobre o que entra na compilação e o que não entra — útil para serviços em que desempenho é crítico. Abordagem de conteinerização Aqui é onde os dois sistemas divergem mais fortemente para fluxos de trabalho modernos. O FreeBSD tem Jails — um mecanismo nativo e leve de isolamento que surgiu quase uma década antes do Docker. Um Jail isola uma árvore de processos do restante do sistema no nível do kernel, sem kernel separado. Jails se integram bem ao ZFS para snapshots e são leves para criar e destruir. O Ubuntu Server, por outro lado, oferece suporte nativo ao Docker — e todo o ecossistema de contêineres (Docker, Kubernetes, registros de contêineres, pipelines de CI/CD) é construído em torno de Linux. O FreeBSD não executa Docker nativamente. ## FreeBSD vs Ubuntu Server: Comparação direta Antes de avançar para os casos de uso, aqui está uma visão estruturada das principais diferenças nas dimensões que mais importam para implantações em VPS: | Parâmetro | FreeBSD | Ubuntu Server | | --- | --- | --- | | Família do SO | BSD Unix | Linux (baseado em Debian) | | Sistema de arquivos padrão | ZFS (UFS também disponível) | ext4 (ZFS opcional desde 20.04) | | Sistema de init | rc do BSD | systemd | | Gerenciamento de pacotes | pkg + Ports Collection (30.000+ itens) | apt + PPAs | | Disponibilidade de software | Ampla, mas algumas ferramentas são apenas para Linux | Muito ampla; a maioria do software mira Linux primeiro | | Docker / contêineres | Sem Docker; Jails para isolamento nativo | Suporte completo a Docker e Kubernetes | | Integração com ZFS | Nativa, profundamente integrada, opção padrão de instalação | Funcional, mas menos madura | | Pilha de rede | Excelente; confiável em appliances comerciais | Boa; padrão em implantações em cloud | | Recursos de segurança | Jails, Capsicum, framework MAC, firewall pf | AppArmor, SELinux opcional, seccomp, ufw | | Curva de aprendizado | Mais íngreme; excelente Handbook oficial | Mais suave; enorme volume de recursos da comunidade | | Modelo de lançamento | Lançamentos principais a cada ~2 anos; branches STABLE/CURRENT | LTS a cada 2 anos (5 anos de suporte); intermediários a cada 6 meses | | Licença | Licença BSD (permissiva, permite uso proprietário) | Mista (inclui GPL) | ## Vantagens e desvantagens FreeBSD: o que joga a favor O design coeso do FreeBSD significa menos peças móveis e menos surpresas durante as atualizações do sistema. Como kernel e userland base são desenvolvidos juntos, o sistema se comporta de forma consistente ao longo do tempo. Para administradores que valorizam saber exatamente o que está rodando e por quê, essa previsibilidade importa — principalmente em ambientes de produção, onde uma interação inesperada entre dois componentes atualizados de forma independente pode consumir horas de depuração. A integração nativa com ZFS é uma vantagem real para cargas de trabalho com muito armazenamento ou foco em confiabilidade. Snapshots são atômicos e eficientes em espaço. A integridade dos dados é garantida por checksums em cada bloco — se um disco começar a corromper dados silenciosamente, o ZFS detecta. A compressão funciona de forma transparente por dataset, com impacto mínimo de desempenho. E o pipeline zfs send/receive oferece um mecanismo de replicação eficiente e integrado entre servidores. No ext4, alcançar garantias parecidas exige camadas de ferramentas separadas, cada uma introduzindo seus próprios modos de falha. Os Jails do FreeBSD merecem atenção própria, independentemente de contêineres em geral. Eles isolam uma árvore de processos do restante do sistema no nível do kernel — sem kernel separado, sem hipervisor. Jails são baratos de criar, rápidos de iniciar e se integram perfeitamente com datasets ZFS para isolamento em nível de sistema de arquivos e snapshots. Para executar vários serviços isolados em uma única VPS, Jails oferecem uma arquitetura limpa e fácil de auditar. Licenciamento também é uma consideração prática para algumas organizações. O FreeBSD usa a licença BSD, que permite incorporar código em produtos proprietários sem exigir que você abra o código das suas alterações. É por isso que o FreeBSD aparece mais frequentemente em appliances comerciais de rede do que alternativas licenciadas sob GPL. FreeBSD: o que levar em conta O ecossistema de software é menor. A maioria dos desenvolvedores cria e testa para Linux primeiro. Algumas ferramentas — especialmente no espaço de DevOps e observabilidade — existem apenas para Linux ou têm versões inferiores no FreeBSD. Docker, a ferramenta de conteinerização dominante, não roda nativamente no FreeBSD. Existe uma camada de compatibilidade com Linux que permite executar alguns binários Linux, mas ela não é completa e não serve para cargas de trabalho críticas em produção. A comunidade também é menor. Encontrar respostas para problemas de canto em fóruns e no Stack Overflow costuma levar mais tempo no FreeBSD do que no Ubuntu. O FreeBSD Handbook oficial é detalhado e bem escrito, mas pressupõe um nível relativamente alto de conhecimento técnico do leitor. Ubuntu Server: o que joga a favor O Ubuntu Server tem o suporte de software mais amplo no ecossistema Linux. O que quer que você queira rodar — um servidor web, um cluster de banco de dados, um pipeline de machine learning, uma ferramenta de CI/CD — existe um pacote Ubuntu mantido e uma configuração testada para isso. A maioria das plataformas de cloud oferece Ubuntu como imagem padrão. A maioria dos softwares de código aberto publica primeiro instruções de instalação para Ubuntu. A Canonical também investiu bastante em ferramentas para ambientes de cloud e VPS: Netplan para configuração de rede, cloud-init para provisionamento automatizado e Snapd para distribuição de pacotes autocontidos. Elas funcionam bem logo de início e reduzem o intervalo entre subir um servidor e ter algo útil em execução. O caminho de upgrade in-place entre versões LTS é confiável e bem testado. Migrar do Ubuntu 22.04 para o 24.04 sem reinstalar funciona — e esse é um detalhe operacional importante para servidores em produção, onde tempo de indisponibilidade custa caro. Ubuntu Server: onde fica atrás A natureza modular do ecossistema Linux cria mais pontos de integração entre componentes — e mais potencial para conflitos após atualizações. systemd é um sistema de init grande e complexo. Ele faz muita coisa, o que o torna poderoso, mas depurar um serviço com falha ou um problema de ordem de inicialização pode exigir entender várias camadas de dependências. Não é um impeditivo, mas vale saber disso antes de começar. O ZFS no Ubuntu funciona, mas a profundidade de integração não se compara ao FreeBSD. Os recursos existem, mas os anos de refinamento acumulados pela implementação do FreeBSD — especialmente em casos extremos e ferramentas de recuperação — não se transferem totalmente para cá. ## Limitações e riscos FreeBSD e Ubuntu Server são ambos prontos para produção e estáveis. Os riscos vêm de escolher o sistema errado para a sua carga de trabalho real — não de qualquer instabilidade inerente a um dos dois. No FreeBSD, o principal risco operacional é a expertise da equipe. Se sua equipe conhece Linux, contratar um administrador especificamente experiente em FreeBSD é mais difícil e mais caro. As comunidades de suporte são mais enxutas. Quando algo dá errado às 3 da manhã, a resposta ao incidente é mais lenta se sua equipe não tiver trabalhado com BSD antes. Isso não é uma preocupação trivial — ela cresce com o tamanho da equipe e a complexidade operacional. Compatibilidade de software é um risco secundário. Antes de adotar FreeBSD em uma VPS, verifique se cada componente da sua stack tem uma versão nativa para FreeBSD que realmente funcione. Algumas ferramentas — especialmente agentes de monitoramento, scanners de segurança e utilitários de gerenciamento em cloud — distribuem binários apenas para Linux. Confira antes de implantar, não depois. No Ubuntu Server, o principal risco é o desvio de dependências ao longo do tempo. Implantações grandes de Ubuntu frequentemente acumulam incompatibilidades de versão, repositórios PPA personalizados e binários compilados manualmente, o que torna o ambiente progressivamente mais difícil de manter limpo. Não é exatamente culpa do Ubuntu — é consequência do ecossistema enorme —, mas é algo que precisa ser planejado e governado de forma proativa. As transições entre versões LTS exigem atenção e recursos. O Ubuntu 20.04 chegou ao fim do suporte padrão em abril de 2025. Rodar uma versão LTS sem suporte em produção significa acumular vulnerabilidades sem correção. Reserve orçamento para upgrades de sistema operacional com a mesma seriedade com que você planeja a aplicação de patches de segurança — porque isso é aplicação de patches de segurança. ## Casos de uso práticos: qual sistema serve para qual trabalho Hospedagem web e servidores de aplicação Para uma stack web típica — Nginx ou Apache, PostgreSQL ou MySQL, PHP ou Node.js — o Ubuntu Server é a escolha mais direta. Cada componente tem pacotes bem mantidos, configurações testadas e documentação extensa de implantação. Se você roda WordPress, uma aplicação Django ou uma API personalizada, vai encontrar mais ferramentas compatíveis e recursos de troubleshooting mais rápidos no Ubuntu. O FreeBSD lida bem com cargas web — a Ports Collection inclui todo o software relevante —, mas muitos painéis de controle para hospedagem (cPanel, Plesk, ISPmanager) dão suporte oficial apenas a Linux. Se você precisa de um painel hospedado para gerenciar sites, o Ubuntu é o caminho prático. Appliances de rede e firewalls O FreeBSD tem vantagem clara aqui. Ele é a base do pfSense e do OPNsense — duas plataformas de firewall open source amplamente confiáveis. O firewall pf é maduro, poderoso e bem documentado para uso em produção. Se você está construindo um gateway de rede, um traffic shaper ou um appliance de roteamento customizado em uma VPS, a pilha de rede e o ecossistema de firewall do FreeBSD são realmente adequados para a tarefa. Servidores de armazenamento e destinos de backup Quando integridade dos dados e gestão de armazenamento são a preocupação principal, FreeBSD com ZFS é difícil de superar. Checksumming ponta a ponta, compressão, snapshots atômicos e replicação por zfs send/receive vêm todos embutidos no mesmo sistema unificado. O TrueNAS CORE roda sobre FreeBSD exatamente por esse motivo. Para uma VPS usada como destino de backup, nó NFS de armazenamento ou endpoint de replicação, o FreeBSD é uma escolha forte e bem fundamentada. Ambientes DevOps e intensivos em contêineres O Ubuntu Server vence com folga aqui. Docker, Kubernetes, GitLab CI, Jenkins, Prometheus, Grafana — toda a cadeia moderna de ferramentas DevOps é construída em torno de Linux. Rodar orquestração de contêineres no FreeBSD significa trabalhar em torno de limitações que simplesmente não existem no Ubuntu. Se sua VPS precisa executar contêineres Docker, entrar em um cluster Kubernetes ou integrar-se a um pipeline de CI/CD, o Ubuntu é a resposta prática. Ambientes multi-tenant sensíveis à segurança Os Jails do FreeBSD oferecem isolamento forte de processos no nível do kernel sem o overhead de um hipervisor ou a complexidade de namespaces e cgroups do Linux. Para um ambiente em que o isolamento entre serviços é um requisito rígido — executando vários aplicativos isolados em uma única VPS, hospedando serviços de diferentes clientes na mesma máquina —, Jails combinados com datasets ZFS oferecem uma arquitetura limpa e fácil de auditar. AppArmor e seccomp no Ubuntu também são mecanismos de segurança eficazes, mas Jails são mais simples de entender e configurar corretamente para esse padrão específico. ## Erros comuns e como evitá-los **Escolher com base apenas na familiaridade.** Muitos administradores escolhem Ubuntu porque é o que sempre usaram. A familiaridade operacional tem valor real — mas vale avaliar se o FreeBSD serviria melhor à sua carga de trabalho específica antes de cair automaticamente na opção conhecida. A decisão deve vir dos seus requisitos, não só do hábito. **Assumir que binários Linux vão funcionar no FreeBSD.** A camada de compatibilidade Linux do FreeBSD permite executar muitos binários Linux, mas ela não é completa e não garante suporte para toda ferramenta. Para sistemas de produção, confie apenas em software compilado nativamente para FreeBSD ou em pacotes confirmados para funcionar. Teste tudo com cuidado em staging antes de confiar um binário Linux à produção no FreeBSD. **Ignorar o ciclo de upgrades do sistema operacional.** No Ubuntu Server, ficar para trás nas transições LTS deixa você em versões sem suporte. No FreeBSD, rodar um branch que chegou ao fim da vida útil cria o mesmo problema. Ambos os sistemas exigem upgrades periódicos de sistema operacional — agende e teste com antecedência em vez de tratar isso como emergência quando o suporte acabar. **Rodar cargas Docker no FreeBSD.** Docker depende de namespaces e cgroups do kernel Linux. Ele não roda nativamente no FreeBSD. Se sua stack depende de Docker, o FreeBSD é o sistema host errado para essa carga de trabalho. Jails são uma alternativa capaz para muitos casos de uso, mas não são um substituto direto para Docker — as ferramentas, o ecossistema e os padrões operacionais são diferentes. **Subestimar a curva de aprendizado ao migrar do Linux.** A filosofia de configuração do FreeBSD — rc.conf para configurações do sistema, /etc/pf.conf para o firewall, Ports para compilações personalizadas — difere bastante das convenções do Ubuntu. Reserve tempo real para aprender. Uma regra de firewall mal configurada ou uma flag de inicialização esquecida pode gerar horas de troubleshooting, especialmente quando você está acostumado a recorrer a systemctl e não encontra nada ali. **Pular o Ports para serviços críticos de desempenho.** Usar pkg por conveniência é ótimo para a maioria dos softwares. Mas, para serviços críticos em desempenho — bancos de dados, servidores web, ferramentas criptográficas —, compilar a partir dos Ports com flags específicas pode fazer diferença mensurável. Se desempenho máximo importa para um serviço específico, verifique se uma build customizada a partir dos Ports vale o tempo adicional de configuração. ## Implantando em uma VPS: o que esperar na configuração FreeBSD e Ubuntu Server estão ambos disponíveis como sistemas operacionais para VPS. Ao lançar uma nova VPS — por exemplo, em [Serverspace](https://serverspace.com.br/services/vps-server.md) —, você pode escolher o SO durante o provisionamento e obter uma instalação limpa pronta para configuração em minutos. Ubuntu Server é uma opção padrão; FreeBSD está disponível para quem precisa dele. No Ubuntu Server, uma sequência típica pós-instalação seria: atualizar os pacotes com apt update && apt upgrade, ativar o firewall ufw, configurar o SSH para autenticação por chave, desabilitar login por senha e configurar fail2ban para proteção contra força bruta. A maioria dos tutoriais de hospedagem parte exatamente dessa base. No FreeBSD, a configuração inicial exige alguns passos a mais. Depois do provisionamento, você atualizaria o sistema base com freebsd-update fetch install, atualizaria pacotes com pkg upgrade, habilitaria e configuraria o pf em /etc/pf.conf, adicionaria seus serviços ao /etc/rc.conf e endureceria o SSH. O FreeBSD Handbook cobre tudo isso em detalhes — ele é realmente bem escrito e preciso, o que ajuda bastante na primeira configuração. Ambos os sistemas suportam acesso SSH padrão e inicialização compatível com cloud-init para implantações automatizadas. Se você usa ferramentas de infraestrutura como código, como Terraform ou Ansible, o Ubuntu tem cobertura mais ampla de playbooks e módulos, mas o FreeBSD também pode ser gerenciado com Ansible. ## Tomando a decisão A escolha, no fim, se resume a três perguntas: O que sua carga de trabalho realmente exige? O que sua equipe já sabe? E qual nível de overhead de manutenção você está preparado para assumir? Se sua stack é centrada em contêineres, depende de Docker ou Kubernetes, ou usa ferramentas que oficialmente suportam apenas Linux — Ubuntu Server é a resposta prática. Você gastará menos tempo em compatibilidade e mais tempo construindo o que realmente precisa construir. Para a maioria das implantações em VPS, esse é o ponto de partida de menor atrito. Se você está executando infraestrutura de rede, precisa de gerenciamento de armazenamento ZFS no nível do sistema operacional, ou quer uma arquitetura de sistema limpa e previsível que mude de forma lenta e deliberada — FreeBSD é um candidato sério. Ele exige mais esforço inicial, mas entrega um ambiente coerente que muitos administradores acham mais satisfatório de manter depois que aprendem. Na prática, muitas organizações usam os dois. Ubuntu para servidores de aplicação e nós de CI/CD; FreeBSD para firewalls, nós de armazenamento e ambientes de serviço isolados. Os dois sistemas não são rivais, mas ferramentas adequadas a papéis diferentes — e escolher um para sua VPS não significa que você não possa escolher o outro para outra coisa depois. ## Conclusão FreeBSD e Ubuntu Server são ambos sistemas operacionais maduros, confiáveis e com histórico real em produção. A questão não é qual é melhor em abstrato — é qual se encaixa no que você está construindo agora. O Ubuntu Server oferece o ecossistema mais amplo, os recursos de comunidade mais numerosos e o caminho mais suave para cargas de trabalho baseadas em contêineres e web convencional. É a opção de menor atrito para a maioria das implantações em VPS, e para a maioria das equipes é o padrão certo. O FreeBSD oferece uma arquitetura de sistema unificada, suporte de primeira classe a ZFS e uma pilha de rede confiável em infraestrutura de nível comercial. Para casos de uso específicos — armazenamento, rede, ambientes de serviço com isolamento de segurança —, é uma escolha forte que recompensa o investimento em aprendizado. Escolha com base no que sua carga de trabalho exige, no que sua equipe consegue sustentar realisticamente e em onde as forças específicas de cada sistema se alinham ao que você precisa. Ambos vão rodar de forma confiável em uma VPS. A diferença está nos detalhes de como você vai conviver com eles no dia a dia — e isso vale a pena considerar antes de provisionar. ### Posso rodar Docker no FreeBSD? Docker depende de namespaces e cgroups do kernel Linux e não roda nativamente no FreeBSD. O FreeBSD tem seu próprio sistema de isolamento — Jails — que surgiu quase uma década antes do Docker e oferece isolamento forte de processos no nível do kernel. Se seu fluxo de trabalho depende especificamente de Docker, o Ubuntu Server é o sistema host certo para essa carga de trabalho. ### O FreeBSD é mais difícil de administrar do que o Ubuntu Server? O FreeBSD tem uma curva de aprendizado inicial mais íngreme, especialmente para administradores vindos de um histórico Linux. As convenções de configuração, o gerenciamento de pacotes, a configuração do firewall e o processo de atualização funcionam de forma diferente. Dito isso, o FreeBSD Handbook é uma das documentações de sistema operacional mais completas que existem — a maioria das tarefas é coberta em detalhe. Depois de familiarizados com o sistema, muitos administradores acham mais fácil raciocinar sobre ele por causa de seu design unificado e autossuficiente. ### Qual sistema é melhor para uma VPS rodando uma aplicação web? Para a maioria das aplicações web — stacks convencionais, ambientes de hospedagem compartilhada ou qualquer coisa que precise de um painel de controle — o Ubuntu Server tem suporte mais amplo. A maioria dos frameworks, painéis de hospedagem e ferramentas de implantação dá suporte oficial ao Ubuntu ou Debian. O FreeBSD pode lidar bem com cargas web, mas você precisará gastar mais tempo em compatibilidade e configuração. A exceção é quando sua aplicação se beneficia especificamente de snapshots ZFS ou isolamento baseado em Jails, caso em que o FreeBSD pode valer o overhead de configuração. ### O ZFS no Ubuntu é tão capaz quanto o ZFS no FreeBSD? O ZFS no Ubuntu é funcional e oficialmente suportado desde o Ubuntu 20.04, usando a mesma base upstream OpenZFS do FreeBSD. No entanto, a implementação de ZFS no FreeBSD vem sendo refinada continuamente por mais tempo, e a integração com as ferramentas do sistema — especialmente em recuperação, gerenciamento de Jails e boot environments — é mais madura. Para cargas de trabalho críticas de armazenamento, a experiência com ZFS no FreeBSD é geralmente considerada mais polida e melhor integrada ao sistema como um todo. ### O FreeBSD pode executar software Linux? O FreeBSD inclui uma camada de compatibilidade com Linux que permite executar muitos binários Linux sem modificação. Ela funciona para uma variedade de softwares, mas não é completa e não é recomendada como estratégia principal para ambientes de produção. Para software disponível nativamente no FreeBSD, a versão nativa é sempre preferível. Para ferramentas apenas para Linux sem equivalente no FreeBSD, a camada de compatibilidade é um recurso útil de fallback — mas teste com cuidado antes de depender dela em produção. ### O que a licença BSD significa na prática para uma implantação em VPS? Para a maioria dos usos de VPS — rodar um site, uma API, um banco de dados, uma stack de monitoramento — a licença não faz diferença prática. A licença BSD passa a ser relevante quando você quer incorporar código em nível de sistema em um produto ou appliance proprietário sem abrir suas modificações. É por isso que o FreeBSD aparece mais em hardware comercial de rede do que software licenciado sob GPL. Para implantações de servidor diretas, você pode escolher com base no encaixe técnico sem se preocupar com licenciamento. https://serverspace.com.br/about/blog/7-melhores-alternativas-a-aws-para-vps-em-2026.md Classificamos as 7 melhores alternativas à AWS para VPS em 2026, comparando preço, tráfego incluído e data center no Brasil para você escolher com segurança. Quem procura alternativas à AWS para hospedagem VPS costuma começar pelo mesmo motivo: a fatura mensal deixou de fazer sentido. A Amazon Web Services move boa parte da internet, e isso tem mérito. A plataforma é poderosa, madura e está disponível em quase todo lugar. Ainda assim, "poderosa" e "ideal para o seu projeto" são perguntas diferentes. Muitas equipes no Brasil querem um servidor virtual que dê para entender na primeira leitura, com um preço previsível antes de a cobrança chegar. Neste guia, classificamos sete alternativas fortes, explicamos por que tanta gente está migrando em 2026, mostramos como escolher a opção certa para sua carga de trabalho e apontamos os erros que custam dinheiro na hora da troca. ## O Que É Uma Alternativa à AWS para Hospedagem VPS? Um VPS, ou servidor virtual privado, é uma fatia de uma máquina física que se comporta como um servidor dedicado seu, com CPU, memória, armazenamento e acesso root próprios. Você instala o que precisa e paga uma tarifa definida pelos recursos. A AWS vende isso de duas formas. O EC2 é o serviço de computação completo, com centenas de tipos de instância e configuração profunda. O Lightsail é o VPS simplificado da Amazon, que esconde boa parte dessa complexidade atrás de planos mensais fixos. Quando alguém procura alternativas ao EC2, em geral quer o mesmo resultado com menos peso e uma conta mais clara. O mercado em 2026 se divide em dois grupos. De um lado estão os hyperscalers: AWS, Microsoft Azure e Google Cloud. Do outro está a nuvem alternativa, liderada por provedores como Vultr, Linode e DigitalOcean, que cresceram de hospedagem para hobby até virarem plataformas completas de infraestrutura. O grupo alternativo troca o enorme catálogo de serviços dos hyperscalers por preços mais simples e uma curva de aprendizado mais suave. É exatamente essa troca que a maioria de quem compra VPS busca. ## Por Que as Equipes Estão Saindo da AWS em 2026? Os motivos se repetem em quase toda comparação recente e quase sempre envolvem dinheiro que você não vê com antecedência. **O tráfego é o primeiro. **A AWS cobra pelos dados que saem, enquanto os dados que entram são gratuitos. Enviar dados para a internet custa cerca de US$ 0,09 por GB nos primeiros 10 TB de cada mês, depois algo perto de US$ 0,085 por GB até 50 TB e em torno de US$ 0,07 por GB acima disso. Só os primeiros 100 GB da conta inteira são gratuitos. O tráfego entre zonas de disponibilidade na mesma região soma cerca de US$ 0,01 por GB em cada sentido, e entre regiões fica perto de US$ 0,02 por GB, então uma arquitetura de microsserviços movimentada paga por conversas internas que nunca saem da Amazon. **A pilha de pequenas taxas de rede é o segundo. **Desde o início de 2024, a AWS cobra por cada endereço IPv4 público a US$ 0,005 por hora, o que dá cerca de US$ 3,65 por endereço a cada mês. Um NAT Gateway acrescenta US$ 0,045 por GB processado mais US$ 0,045 por hora e, somando o egress por cima, o custo real do tráfego de internet por esse gateway chega perto de US$ 0,135 por GB. **O efeito bola de neve é o terceiro. **Uma instância t3.large simples parece amigável a uns US$ 60 por mês. Adicione um disco de 200 GB, 5 TB de tráfego de saída, alguns IPs estáticos ociosos e um balanceador de carga, e o mesmo conjunto pode chegar a uns US$ 612 por mês. Nenhum desses itens fica escondido, mas juntos eles surpreendem a cada ciclo de cobrança. Além das surpresas de custo, duas frustrações estruturais aparecem sempre: o aprisionamento de fornecedor, porque tirar os dados de lá é caro de propósito, e um catálogo de centenas de tipos de instância que a maioria das equipes nunca vai usar. Para um único servidor de aplicação, essa amplitude vira um peso em vez de um benefício. ## Por Que a AWS Sai Mais Cara no Brasil? Há um detalhe que pesa ainda mais para quem atende o público brasileiro: a região da AWS em São Paulo (sa-east-1) é a mais cara de todas. O preço médio de computação em São Paulo fica cerca de 1,6 vez acima da região mais barata, e o tráfego de saída por lá sobe para a faixa de US$ 0,14 a US$ 0,15 por GB, contra os US$ 0,09 das regiões dos Estados Unidos. Na prática, hospedar na AWS dentro do Brasil junta dois prêmios ao mesmo tempo: você paga mais pela máquina e mais pelo tráfego. Quem hospeda fora do país para fugir desse preço acaba pagando em latência, com respostas mais lentas para os usuários locais. É um trade-off desconfortável, e ele explica boa parte da busca por alternativas com data center em território nacional e tráfego incluído. ## Como Avaliamos as Melhores Alternativas à AWS Avaliamos cada provedor em seis pontos que definem o valor real no dia a dia. Preço por recurso pergunta quanto de CPU, memória e armazenamento você recebe pelo valor gasto. Transparência de cobrança cobre se o tráfego está incluído e se a fatura é fácil de prever. Presença no Brasil olha para data centers em território nacional. Simplicidade do painel mede a rapidez com que um iniciante coloca um servidor no ar. Suporte reflete velocidade e qualidade do atendimento, de preferência em português. Conjunto de recursos cobre extras como apps de um clique, Kubernetes gerenciado e APIs. Cada provedor recebe uma nota de até cinco com base em como tudo isso se soma para quem usa VPS. Demos mais peso à clareza de cobrança e à presença local, porque um preço de vitrine baixo significa pouco se a fatura oscila de um mês para o outro. ## As 7 Melhores Alternativas à AWS para VPS em 2026 Estas são as sete opções que recomendamos, da escolha mais completa para todos os casos até a mais situacional. Cada item explica para quem serve e onde deixa a desejar. ### 1. Serverspace: Melhor Custo-Benefício para Hospedagem no Brasil (5/5) O Serverspace fica em primeiro porque responde exatamente às dores que listamos acima. O tráfego é gratuito e ilimitado, então o medidor de egress que infla as faturas da AWS simplesmente sai de cena. A cobrança roda em ciclos de dez minutos, em reais, e você paga só pelos recursos que usa de verdade. Com o servidor desligado, restam apenas as cobranças de componentes ativos, como espaço em disco SSD, backups, snapshots, licenças e IPs públicos; RAM e CPU não entram na conta. Sem letras miúdas e sem surpresas na fatura. O hardware e a localização conversam com o público brasileiro. O data center fica no Equinix SP3, em São Paulo, com hipervisor vStack, acesso root liberado de imediato e proteção contra DDoS. Um servidor novo sobe em cerca de 40 segundos, com SLA de 99,9% e garantia financeira, além de suporte 24/7 em português com resposta média de 15 minutos. Os planos começam em R$ 24 por mês. Para quem quer uma conta clara e um servidor dentro do Brasil, dá para subir um na [plataforma VPS do Serverspace](https://serverspace.com.br/services/vps-server.md). Nota: 5/5 por cobrança transparente, tráfego incluído e presença real em São Paulo. ### 2. Hetzner: Melhor Preço por Recurso (4,5/5) O Hetzner entrega o maior poder de computação por valor gasto de toda a lista. Um plano CX32 oferece 4 vCPUs e 8 GB de RAM por cerca de US$ 7,59 por mês, configuração que custa perto de US$ 48 em vários concorrentes. O hardware é moderno e a franquia de banda é generosa. O ponto fraco para o público brasileiro é a distância: os data centers ficam na Europa e nos Estados Unidos, o que adiciona latência para quem está no Brasil, e não há serviços gerenciados, então você cuida do servidor sozinho. Para cargas Linux focadas em orçamento, o valor é difícil de bater. ### 3. Vultr: Melhor Alcance Global com Orçamento Enxuto (4,5/5) O Vultr mantém um dos pontos de entrada mais baixos do mercado, com planos de Cloud Compute a partir de uns US$ 4 para uma instância pequena compartilhada em armazenamento NVMe. Sua força é a geografia, e ele inclusive opera um data center em São Paulo, o que reduz a latência para usuários no Brasil. O Vultr também oferece camadas com GPU para cargas de IA e planos otimizados em chips recentes da AMD e da Intel. Se o seu público é global e você quer recursos de nuvem sem fatura de nuvem, o Vultr é uma escolha inteligente. ### 4. DigitalOcean: Melhor Experiência para Desenvolvedores (4/5) A DigitalOcean ajudou a definir o VPS moderno para desenvolvedores e segue como o padrão seguro para equipes que valorizam acabamento. O marketplace de apps de um clique, o painel limpo e a documentação profunda tornam o lançamento de um projeto simples. O porém é o preço por recurso, e ela não tem data center no Brasil, o que pesa na latência local. O famoso droplet de US$ 5 hoje vem com apenas 1 GB de RAM e 25 GB de armazenamento, o que mal roda um site de conteúdo moderno sem cache. Você paga um pequeno prêmio pelo ecossistema e pela experiência suave, e para muitas equipes esse prêmio compensa. ### 5. Akamai Cloud (Linode): Melhor para Produção Previsível (4/5) A Linode, agora parte da Akamai, passou duas décadas construindo fama de hospedagem calma e confiável. Os planos começam perto de US$ 5 por mês, e o atrativo é a estabilidade acima do brilho. Desde a aquisição pela Akamai, as instâncias se conectam a uma grande rede edge global, o que ajuda o conteúdo a chegar mais rápido aos usuários. Para cargas de produção de longa duração, com poucas surpresas e desempenho constante, a Akamai Cloud é uma casa confiável. ### 6. OVHcloud: Melhor para Tráfego Ilimitado (3,5/5) A OVHcloud briga forte no preço e é conhecida pelo tráfego generoso, muitas vezes ilimitado, em seus planos de VPS. Isso a torna atraente para projetos que movem muito dado e querem fugir do egress medido. A interface parece menos polida que a dos provedores focados em desenvolvedor e o suporte pode ser mais lento, então ela recompensa quem se sente à vontade trabalhando de forma independente. Em preço por recurso nos tamanhos maiores, a OVHcloud segue no páreo. ### 7. AWS Lightsail: Melhor se Você Já Está Dentro da AWS (3/5) O Lightsail é a resposta da própria Amazon ao VPS simples e merece um lugar aqui por um motivo: se a sua equipe já vive na AWS, ele mantém você em terreno conhecido. Os planos começam em US$ 3,50 por mês para uma instância pequena com 1 TB de transferência, subindo para US$ 5 por mês quando você adiciona um endereço IPv4 público. Os detalhes, porém, importam. Uma instância parada continua sendo cobrada como se estivesse ligada, então economizar significa apagar e recriar a partir de um snapshot. Ao passar da transferência incluída, você paga o mesmo egress de US$ 0,09 por GB do resto da AWS. O Lightsail faz sentido principalmente quando a integração com a AWS pesa mais que o custo. ## Comparativo das Alternativas à AWS A tabela abaixo alinha os sete provedores nos pontos que mais importam: preço de entrada, se o tráfego está incluído, presença de data center no Brasil, a carga de trabalho ideal de cada um e a nossa nota. Mantivemos a mesma ordem do ranking acima para você comparar os trade-offs rápido antes de fazer um teste. | Provedor | Preço inicial | Tráfego | Data center no Brasil | Ideal para | Nota | | --- | --- | --- | --- | --- | --- | | Serverspace | a partir de R$ 24/mês | Incluído e ilimitado | Sim (São Paulo) | Hospedagem no Brasil | 5/5 | | Hetzner | ~US$ 7,59/mês (CX32) | Franquia generosa | Não | Preço por recurso | 4,5/5 | | Vultr | a partir de US$ 4/mês | Franquia medida | Sim (São Paulo) | Alcance global | 4,5/5 | | DigitalOcean | a partir de US$ 5/mês | Franquia medida | Não | Experiência do dev | 4/5 | | Akamai Cloud (Linode) | a partir de US$ 5/mês | Franquia medida | Não | Produção previsível | 4/5 | | OVHcloud | linha econômica | Muitas vezes ilimitado | Não | Tráfego ilimitado | 3,5/5 | | AWS Lightsail | a partir de US$ 3,50/mês | Incluído, depois US$ 0,09/GB | Sim (São Paulo) | Já está na AWS | 3/5 | ## Como Escolher a Alternativa à AWS Certa para Sua Carga de Trabalho? A melhor escolha depende do que você roda. Cinco cenários comuns cobrem a maioria das decisões. Um projeto de conteúdo ou mídia que serve arquivos grandes vive ou morre pelo custo de tráfego. Aqui, banda incluída ou ilimitada é o que mais economiza, e é por isso que um provedor com data center no Brasil e tráfego incluído, como os [servidores em nuvem no Brasil do Serverspace](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), encaixa bem para um público nacional. Uma startup montando um MVP precisa de orçamento previsível mais do que de escala bruta. Cobrança a cada dez minutos ou por hora e um preço fixo de recursos deixam você testar ideias sem medo de uma fatura descontrolada. Uma empresa brasileira com a regra de manter os dados dos clientes no país, sob a LGPD, deve priorizar um provedor com data center nacional verificado e auditorias de segurança regulares, e depois confirmar os termos de conformidade que o caso exige. Um projeto pessoal ou de estudo quer o servidor confiável mais barato e um painel amigável, onde um preço de entrada baixo e apps de um clique encurtam o caminho da ideia ao site no ar. Uma carga de contêineres ou microsserviços ganha com um provedor de rede forte e tráfego interno previsível, para que as taxas de egress e de gateway que mordem na AWS não reapareçam em outro lugar. ## Quais Erros Evitar ao Sair da AWS? Alguns erros transformam uma migração tranquila em uma conta cara. - **Olhar só o preço da instância. **A tarifa de vitrine é a menor parte de uma conta de nuvem. Some sempre tráfego, armazenamento e adicionais antes de comparar provedores. - **Esquecer recursos ociosos. **Endereços IP estáticos que você não usa mais e instâncias que você parou mas deixou no lugar podem seguir cobrando. Audite a conta antes e depois da mudança. - **Copiar a arquitetura ponto a ponto. **Montagens na AWS costumam ter camadas criadas em torno de manias da própria AWS. Reconstruir tudo igual num host mais simples desperdiça dinheiro, então simplifique ao migrar. - **Escolher um plano não gerenciado sem ter a manha. **Um VPS não gerenciado dá mais recursos por valor gasto, mas espera que você cuide de atualizações e segurança. Se o terminal te deixa nervoso, escolha uma opção gerenciada. - **Ignorar a localização do data center. **Um servidor barato longe dos usuários adiciona latência. Combine a região com o seu público e, para um público brasileiro, escolha um data center no Brasil. ## Qual Alternativa à AWS Escolher em 2026? Resumo rápido: combine o provedor com a sua prioridade. Para o máximo de computação por valor gasto, o Hetzner ganha. Para alcance global, o Vultr se espalha mais. Para um ecossistema rico e conforto de desenvolvedor, a DigitalOcean lidera. Para produção calma e previsível, a Akamai Cloud se mantém firme. E para hospedagem no Brasil com tráfego incluído e uma conta clara a cada dez minutos, o Serverspace fica no topo da nossa lista. Seja qual for a escolha, faça três coisas antes: estime o seu tráfego mensal real, calcule o custo total de propriedade em vez do preço de capa e rode um teste curto no plano menor antes de se comprometer. ### Qual é a alternativa à AWS mais indicada para hospedagem VPS no Brasil? Para usuários no Brasil, a melhor alternativa depende do equilíbrio entre preço, desempenho e localização. Provedores com data center no país e tráfego incluído, como o Serverspace, costumam ser a escolha mais eficiente, já que evitam custos de egress e reduzem a latência para usuários locais. ### A AWS é mais barata que um VPS para projetos pequenos? Para a maioria dos projetos pequenos, um VPS de tarifa fixa sai mais barato e bem mais fácil de prever. A AWS pode ganhar quando você usa descontos profundos e capacidade reservada em escala, mas, para um único servidor, o modelo medido costuma custar mais quando se somam tráfego e adicionais. ### Qual é a alternativa à AWS mais barata em 2026? Em preço puro por recurso, o Hetzner lidera, com planos de porte de produção bem abaixo dos concorrentes. Vultr e Lightsail oferecem pontos de entrada mais baixos para instâncias minúsculas, embora com menos recursos. ### As alternativas à AWS cobram pelo tráfego de egress? Depende. Vários provedores, incluindo o Serverspace e a OVHcloud, incluem o tráfego ou não o medem em separado, o que elimina a maior fonte de susto na fatura. Outros embutem uma franquia generosa e cobram só o que passa dela. Verifique sempre a política de tráfego antes de assinar. ### Dá para rodar produção em um VPS no lugar do EC2? Sim. Plataformas de VPS modernas rodam tráfego de produção sério todos os dias. A diferença principal é que você gerencia mais por conta própria num plano não gerenciado, enquanto um plano gerenciado ou um provedor com bom suporte reduz essa distância. ### O AWS Lightsail é um VPS de verdade? Sim. O Lightsail é um VPS real que roda sobre a infraestrutura do EC2 com planos de preço fixo e simplificado. Serve para quem quer a familiaridade da AWS sem a complexidade total do EC2, desde que fique de olho nas regras de cobrança de instâncias paradas e tráfego. https://serverspace.com.br/about/blog/como-criar-um-servidor-privado-de-jogos-em-um-vps.md Guia passo a passo para configurar um servidor privado de jogos em um VPS — escolhendo especificações, sistema operacional, portas, regras de firewall e backups para jogos populares. A maioria dos servidores privados de jogos começa com a mesma conversa: um grupo de amigos se cansa de servidores públicos lotados, administradores aleatórios ou planos de hospedagem cheios de recursos que ninguém realmente usa. Em algum momento, alguém faz a pergunta óbvia — por que não rodar o nosso próprio servidor? Um VPS, sigla de virtual private server, é uma das respostas mais práticas para isso. Ele oferece uma fatia dedicada de recursos de computação que se comporta como uma máquina real, com controle total sobre o que roda nele, quais mods são instalados e quando ele reinicia. Este guia mostra o que é, de fato, um VPS, como configurá-lo para jogos, que tipo de hardware diferentes jogos exigem e quais erros costumam pegar administradores de primeira viagem de surpresa. Seja o objetivo um mundo aconchegante de Valheim para cinco pessoas ou um pequeno servidor de CS2 para uma comunidade, o processo básico é quase o mesmo — só os detalhes mudam. ## O que é um VPS e por que ele funciona bem para servidores de jogos Antes de entrar na configuração, vale a pena acertar a terminologia, especialmente se administração de servidores for novidade. Um VPS é uma máquina virtual executando em um servidor físico, mas se comporta como um computador independente, com seu próprio sistema operacional, endereço IP, alocação de CPU e armazenamento. Diferente da hospedagem compartilhada, onde dezenas de contas competem pelos mesmos recursos limitados, um VPS oferece uma parte garantida (ou pelo menos previsível) de CPU e RAM. Diferente de um servidor dedicado, ele custa uma fração do preço e pode ser redimensionado em minutos, sem exigir troca de hardware. Rodar um servidor em casa também é tecnicamente uma opção, mas traz seus próprios problemas: endereços IP dinâmicos, configuração do roteador, custos de energia e o simples fato de que o servidor fica offline sempre que a internet da casa cai. Um VPS elimina tudo isso — ele fica em um data center com energia estável, IP fixo e uma conexão de rede normalmente mais rápida e confiável do que a de uma linha doméstica. Mais uma distinção importante: o servidor do jogo não é a mesma coisa que o jogo em si. É um software separado — muitas vezes gratuito, às vezes baixado por ferramentas como SteamCMD — que simula o mundo do jogo e permite que os jogadores se conectem a ele. O VPS apenas fornece o ambiente onde esse software executa. ## Como Configurar um Servidor Privado de Jogo: Passo a Passo Passo 1: Escolha um Plano de VPS que Combine com o Seu Jogo Os recursos necessários dependem muito de qual jogo será hospedado e de quantos jogadores vão entrar. Um servidor vanilla de Minecraft para cinco amigos mal precisa de mais do que 2 GB de RAM, enquanto um servidor fortemente modificado de ARK: Survival Evolved pode consumir facilmente 8–12 GB. A velocidade do clock da CPU importa mais do que a quantidade de núcleos na maioria dos servidores de jogos, já que a lógica de simulação de muitos títulos roda em grande parte em uma única thread. O tipo de armazenamento também importa — discos SSD ou NVMe reduzem bastante o tempo de carregamento do mundo e o lag na geração de chunks em comparação com discos mecânicos antigos. A localização é o outro fator que muita gente esquece: escolher uma região de VPS próxima da base da maioria dos jogadores mantém o ping baixo. Provedores como [Serverspace](https://serverspace.com.br/services/vps-server.md) oferecem várias configurações de VPS em diferentes regiões, o que facilita alinhar desempenho e latência sem pagar a mais por recursos que não serão usados. Passo 2: Escolha um Sistema Operacional Para a maioria dos servidores populares — Minecraft, Valheim, Rust, CS2, ARK em builds Linux — Ubuntu LTS ou Debian é a escolha padrão. Eles são leves, bem documentados e gratuitos, o que deixa mais RAM disponível para o processo do jogo. Windows Server às vezes é necessário para jogos ou mods que vêm apenas com binários para Windows, mas ele consome mais recursos só para funcionar em segundo plano, então vale verificar primeiro se existe uma build Linux do software do servidor. Passo 3: Conecte-se ao Servidor No Linux, a conexão acontece via SSH. Em um terminal (ou em uma ferramenta como PuTTY no Windows), a conexão básica fica assim: ```bash ssh root@your_server_ip ``` Depois de inserir a senha (ou usando uma chave SSH, que é a opção mais segura), o terminal cai na linha de comando do VPS. Daqui em diante tudo acontece remotamente — não há necessidade de tocar fisicamente no hardware. Passo 4: Atualize o Sistema e Instale Ferramentas Essenciais Uma imagem nova de VPS normalmente é mínima, então a primeira coisa a fazer é atualizar os pacotes e instalar alguns itens essenciais. No Ubuntu ou Debian, isso significa: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y screen curl wget unzip ``` screen (ou sua alternativa, tmux) merece menção especial — ele permite que um processo continue rodando mesmo depois que a sessão SSH é encerrada, exatamente o que se precisa para um servidor de jogo que tem de ficar online durante a noite. Passo 5: Instale e Configure o Software do Servidor do Jogo Esta é a etapa que mais varia entre os jogos. Títulos baseados em Java, como Minecraft, precisam de um runtime Java e de um arquivo JAR do servidor. Jogos da engine Source, como CS2, normalmente são instalados via SteamCMD, a ferramenta de linha de comando da Valve para baixar arquivos de servidores dedicados. Uma sequência típica do SteamCMD se parece com isto: ```bash mkdir ~/steamcmd && cd ~/steamcmd wget https://media.steampowered.com/client/steamcmd_linux.tar.gz tar -xvzf steamcmd_linux.tar.gz ./steamcmd.sh +login anonymous +app_update [APP_ID] validate +quit ``` O app ID muda conforme o jogo (CS2, Rust, ARK e assim por diante, todos têm o seu). Depois que o download termina, cada jogo tem seu próprio arquivo de configuração — nome do servidor, senha, rotação de mapas, dificuldade, lista de mods — que é editado como um arquivo de texto simples antes da primeira inicialização. Passo 6: Abra as Portas e Configure o Firewall Servidores de jogos se comunicam por portas específicas, e a maioria das imagens de VPS vem com um firewall ativado por padrão que bloqueia tudo, exceto SSH. Se as portas corretas não forem abertas, os jogadores simplesmente não conseguirão se conectar — nenhuma mensagem de erro, apenas uma tela infinita de "conectando". No Ubuntu, abrir uma porta com ufw fica assim: ``` sudo ufw allow 25565/tcp sudo ufw allow 25565/udp sudo ufw enable ``` O número da porta e o protocolo dependem do jogo — o Minecraft usa 25565/TCP por padrão, enquanto muitos jogos de survival e de tiro dependem de UDP tanto para o tráfego do jogo quanto para uma porta de consulta separada usada pelos navegadores de servidores. Passo 7: Mantenha o Servidor Rodando 24 Horas por Dia Fechar a sessão SSH normalmente encerra qualquer processo iniciado dentro dela, o que não é ideal para algo que precisa rodar 24/7. Uma solução simples é iniciar o servidor dentro de uma sessão screen: ``` screen -S gameserver ./start.sh (detach com Ctrl+A depois D) ``` Uma configuração mais robusta usa um serviço systemd, que reinicia o servidor automaticamente se ele travar e o inicia durante o boot: ``` Description=Game Server After=network.target WorkingDirectory=/home/gameserver ExecStart=/home/gameserver/start.sh Restart=on-failure User=gameserver WantedBy=multi-user.target ``` Passo 8: Configure Backups e Atualizações Arquivos de save do mundo e arquivos de configuração valem a pena ser copiados regularmente, idealmente com um cron job agendado que comprime a pasta do mundo e a envia para algum lugar fora do VPS — outro volume de armazenamento, um bucket de object storage ou até mesmo uma máquina local. Atualizações do jogo são outra tarefa recorrente; alguns jogos recebem patches com frequência, e um servidor desatualizado pode de repente parar de aceitar conexões de clientes atualizados sem aviso. ## Vantagens e Desvantagens de Rodar um Servidor de Jogo em um VPS No papel, um VPS fica em um meio-termo confortável entre uma configuração doméstica e um serviço de hospedagem de jogos totalmente gerenciado. Na prática, esse meio-termo vem com suas próprias trocas. - Controle total — todas as configurações, mods, plugins e arquivos de configuração ficam acessíveis, sem restrições impostas por um painel de hospedagem. - Custo-benefício — para grupos pequenos e médios de jogadores, um VPS muitas vezes custa menos por mês do que um servidor de jogo gerenciado com as mesmas especificações. - Flexibilidade — o mesmo VPS pode alternar entre jogos, executar vários servidores lado a lado ou hospedar outras ferramentas por completo. - Privacidade — nenhum terceiro administra os dados do mundo, a lista de jogadores ou os registros de chat. - Manutenção autogerenciada — atualizações, backups e correções de segurança são responsabilidade do administrador, não do provedor. - Curva de aprendizado — é preciso ter algum conforto básico com linha de comando, mesmo que os passos em si não sejam complicados. - Hardware subjacente compartilhado — dependendo do plano, o host físico pode ser compartilhado com outras instâncias de VPS, o que às vezes causa pequenas variações de desempenho. - Sem painel de jogo embutido — ao contrário de alguns hosts gerenciados, não existe um painel de controle pré-instalado, a menos que ele seja configurado manualmente (ferramentas como Pterodactyl podem ajudar aqui). ## Limitações e Riscos a Considerar Um VPS lida bem com comunidades pequenas e médias, mas tem limites. Jogos com muitos jogadores — 50, 100 ou mais — precisam de muito mais RAM e CPU do que um plano VPS econômico fornece, e em algum ponto escalar um VPS custa praticamente o mesmo que alugar um servidor dedicado com desempenho bruto melhor. A exposição de rede é outra consideração. Um servidor de jogo publicamente acessível é, por definição, acessível por qualquer pessoa — inclusive gente fazendo varredura de portas ou usando ferramentas básicas de DDoS. A maioria dos provedores reputados de VPS inclui algum nível de proteção de rede, mas um servidor com senhas administrativas fracas ou uma porta RCON exposta ainda é um alvo fácil. Também vale verificar: alguns publishers de jogos têm regras específicas sobre servidores privados nos termos de serviço. A maioria dos jogos de sandbox e survival não tem problema com isso, mas alguns títulos competitivos restringem ou proíbem servidores dedicados não oficiais. Conferir rapidamente o EULA do jogo antes de investir horas na configuração pode evitar dor de cabeça depois. ## Cenários Práticos para um Servidor Privado de Jogo Um Mundo de Minecraft para Amigos e Família Este é o caso de uso clássico — e por um bom motivo. Um servidor vanilla de Minecraft roda confortavelmente em um VPS modesto, suporta alguns jogadores sem esforço e depois pode ser expandido com plugins (Spigot, Paper) para coisas como proteção de terrenos, sistemas de economia ou ferramentas anti-griefing. O tamanho do mundo cresce com o tempo, então o planejamento de armazenamento importa mais aqui do que a potência de CPU. Um Servidor de Survival para Valheim, Rust ou ARK Jogos de survival tendem a ser mais exigentes, principalmente conforme o mapa se expande e mais estruturas são construídas. ARK, em particular, é conhecido pelo alto uso de RAM, enquanto os mapas procedurais de Rust podem crescer rápido. Esses jogos se beneficiam de um plano VPS com folga extra em vez do mínimo absoluto — um servidor que roda bem no lançamento pode ficar perceptivelmente mais lento algumas semanas depois de um wipe. Um Pequeno Servidor Competitivo para CS2 Servidores Source 2 são relativamente leves em recursos comparados a jogos de survival, mas tick rate e número de jogadores afetam diretamente a carga de CPU. Uma comunidade rodando servidores de treino, scrims ou partidas casuais para 10–12 jogadores consegue se virar com um VPS relativamente modesto, desde que a localização esteja perto de onde a maioria dos jogadores se conecta — a latência importa mais aqui do que em quase qualquer outro cenário. Um Mundo Multijogador Fortemente Modificado Minecraft modificado (Forge, Fabric) ou servidores de ARK modificado funcionam de forma bem diferente de suas versões vanilla. Os mods adicionam carga extra de simulação, overhead de memória e, às vezes, tráfego adicional de rede. Um servidor que roda um jogo vanilla de forma suave com 2 GB de RAM pode precisar de 6–8 GB quando um modpack mais pesado é adicionado. Um Hub da Comunidade Ligado ao Discord Algumas comunidades executam mais do que apenas um servidor de jogo — bots que sincronizam eventos do jogo com o Discord, painéis web para gerenciar whitelist ou pequenas APIs que exibem o status do servidor. Um VPS consegue hospedar tudo isso na mesma máquina do servidor de jogo, desde que os recursos sejam divididos de forma sensata entre o processo do jogo e as ferramentas de suporte. ## Especificações Recomendadas de VPS por Jogo | Jogo | Jogadores típicos | RAM | Núcleos de CPU | Armazenamento | Observações | | --- | --- | --- | --- | --- | --- | | Minecraft (Vanilla) | até 10 | 2–4 GB | 2 | 10–20 GB SSD | Leve; cresce com plugins, não apenas com jogadores | | Minecraft (Modded) | até 10 | 6–8 GB | 4 | 20–40 GB SSD | A quantidade de mods aumenta bastante o uso de RAM e CPU | | Valheim | até 10 | 4 GB | 2 | 10 GB SSD | O arquivo do mundo cresce de forma constante ao longo do tempo | | ARK: Survival Evolved | até 10 | 8–12 GB | 4 | 40–60 GB SSD | Um dos jogos de survival mais pesados em recursos | | Rust | até 50 | 8–16 GB | 4–6 | 25–50 GB SSD | Tamanho do mapa e número de jogadores aumentam rapidamente a necessidade de RAM | | CS2 (Source 2) | até 12 | 2–4 GB | 2 | 15–20 GB SSD | Baixa demanda de recursos; tick rate afeta a carga de CPU | | Factorio | até 10 | 2 GB | 2 | 5 GB SSD | CPU importa mais que RAM para fábricas grandes | | Terraria | até 8 | 1–2 GB | 1–2 | 5 GB SSD | Um dos servidores multijogador mais leves de executar | Esses números são pontos de partida, não regras rígidas — um servidor que permanece confortavelmente dentro dessas faixas deixa espaço para plugins, backups e o crescimento inevitável de um mundo ou base ao longo do tempo. ## Erros Comuns e Como Evitá-los A maioria dos problemas com um servidor de jogo recém-configurado vem de um pequeno conjunto de falhas recorrentes. Conhecê-las com antecedência economiza bastante tempo de troubleshooting depois. - Esquecer de abrir as portas corretas. Um servidor que "não aparece" para os amigos geralmente é, na maior parte dos casos, um problema de firewall e não de configuração. - Confundir TCP e UDP. Muitos jogos precisam de ambos os protocolos abertos na mesma porta, ou de portas diferentes para o tráfego do jogo e para a porta de query/browser. - Subestimar a RAM para servidores com mods. Um modpack que roda bem em um PC local com 16 GB disponíveis pode se comportar de forma bem diferente com 4 GB em um VPS. - Pular backups antes das atualizações. Uma atualização ruim ou um mod quebrado pode corromper o save do mundo — um backup recente transforma isso de um desastre em uma correção de cinco minutos. - Deixar senhas padrão em ferramentas administrativas. RCON, painéis web e credenciais de banco de dados nunca devem permanecer nos padrões, especialmente em um servidor com IP público. ## Conclusão: Colocando o Servidor no Ar Configurar um servidor privado de jogo em um VPS não é difícil tanto quanto é uma sequência de passos pequenos e bem definidos — escolher as especificações certas, selecionar um sistema operacional, conectar, instalar o software do servidor, abrir as portas corretas e mantê-lo rodando. Nenhum desses passos exige expertise técnica profunda por si só, mesmo que o conjunto pareça intimidador à primeira vista. O ponto de partida prático é combinar o plano de VPS com o jogo: títulos leves como Terraria ou Minecraft vanilla funcionam bem em configurações de entrada, enquanto mundos modded e jogos de survival com mais jogadores precisam de mais folga. A partir daí, provedores que oferecem uma variedade de [configurações de servidor VPS](https://serverspace.com.br/services/vps-server.md) tornam simples começar pequeno e escalar conforme a comunidade cresce, sem se comprometer com hardware dedicado desde o primeiro dia. ### Quanto custa rodar um servidor privado de jogo em um VPS? Os custos dependem do jogo e do número de jogadores, mas uma comunidade pequena a média (5–15 jogadores) rodando um jogo moderadamente exigente normalmente cabe em um plano VPS da faixa econômica à intermediária. Jogos mais leves custam ainda menos, enquanto servidores grandes, com muitos mods ou muitos jogadores, exigem um plano mais alto. ### Vários servidores de jogo podem rodar no mesmo VPS? Sim, desde que o uso combinado de recursos permaneça dentro dos limites do VPS. Jogos mais leves (Terraria, Factorio, Minecraft vanilla) muitas vezes coexistem bem no mesmo VPS, enquanto títulos mais pesados em recursos, como ARK ou servidores modded, costumam precisar da própria instância dedicada. ### Preciso ser um especialista em Linux para configurar isso? Não exatamente. Os comandos envolvidos são repetitivos e bem documentados para a maioria dos jogos populares — copiar alguns comandos e editar um arquivo de configuração cobre a maior parte das configurações. Ter alguma familiaridade com terminal ajuda, mas conhecimento profundo de Linux não é obrigatório. ### O que acontece com o servidor durante uma reinicialização do VPS ou uma janela de manutenção? Um serviço systemd configurado corretamente reinicia o servidor do jogo automaticamente assim que o VPS volta a ficar online, então normalmente não é necessária intervenção manual. Os jogadores podem sofrer uma breve desconexão, mas os dados do mundo permanecem intactos. ### O servidor pode ser movido para um VPS maior depois, se a comunidade crescer? Sim — a maioria dos provedores permite redimensionar o plano VPS com pouco tempo de indisponibilidade, e os arquivos do servidor, configurações e saves do mundo podem ser transferidos para a nova instância. Planejar isso desde o início (estrutura de arquivos organizada, backups regulares) torna a migração muito mais tranquila. ### Por que usar um VPS em vez de hospedar o servidor de jogos em casa? Um VPS oferece estabilidade e disponibilidade 24/7, com IP fixo e conexão de data center, evitando problemas comuns de servidores domésticos como quedas de internet, reinicializações do sistema e suspensão do computador. Isso garante que o servidor de jogos permaneça sempre online e acessível para os jogadores, mesmo quando o administrador não está conectado. https://serverspace.com.br/about/blog/como-criar-um-bot-de-atendimento-no-whatsapp-com-deepseek-e-vps.md Aprenda como criar um bot de atendimento no WhatsApp com DeepSeek e VPS para automatizar respostas e melhorar o suporte ao cliente. Automatizar o atendimento no WhatsApp com inteligência artificial já é uma realidade acessível. Com o uso do DeepSeek como modelo de IA e uma VPS para hospedagem, você pode criar um bot escalável, rápido e totalmente personalizável para suporte, vendas ou automação de processos. ## O que é um bot de WhatsApp com DeepSeek? Um bot de WhatsApp com DeepSeek é um sistema automatizado que conecta o mensageiro a um modelo de linguagem avançado (DeepSeek), permitindo responder mensagens de forma inteligente, contextual e natural. Esse tipo de solução normalmente envolve três componentes principais: - API ou biblioteca de WhatsApp (ex: WhatsApp Cloud API ou Baileys) - Modelo de IA (DeepSeek API) - Servidor VPS para manter o bot rodando 24/7 ## O que você precisa antes de começar | Componente | Descrição | Exemplo | | --- | --- | --- | | VPS | Servidor virtual para rodar o bot continuamente | Ubuntu 22.04 | | WhatsApp API | Conexão com WhatsApp | Baileys / Cloud API | | IA | Modelo de linguagem para respostas | DeepSeek API | | Runtime | Ambiente de execução | Node.js ou Python | ## Passo a passo para criar o bot ### 1. Configure sua VPS Acesse sua VPS via SSH e atualize o sistema: ```bash sudo apt update && sudo apt upgrade -y ``` Instale Node.js: ```bash curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - ``` ```bash sudo apt install -y nodejs ``` ### 2. Instale a biblioteca do WhatsApp Você pode usar o Baileys para integração não oficial: ```bash npm install @whiskeysockets/baileys ``` ### 3. Conecte ao DeepSeek API Crie uma função para enviar mensagens do WhatsApp para o modelo: ```javascript async function askDeepSeek(message) { const response = await fetch("https://api.deepseek.com/v1/chat", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY" }, body: JSON.stringify({ prompt: message }) }); return response.json(); } ``` ### 4. Integre WhatsApp + IA Quando uma mensagem chegar: - Capture o texto do usuário - Envie para DeepSeek - Retorne a resposta no WhatsApp ### 5. Mantenha o bot online Use PM2 para rodar em segundo plano: ```bash npm install pm2 -g ``` ``` pm2 start index.js ``` ## Arquitetura do sistema | Camada | Função | | --- | --- | | WhatsApp | Interface com o usuário | | Backend (Node/Python) | Processamento de mensagens | | DeepSeek | Geração de respostas inteligentes | | VPS | Hospedagem e execução contínua | ## Arquitetura avançada do bot (escala e produção) **Para escalar um bot de WhatsApp com DeepSeek em ambiente de produção, é importante entender a arquitetura completa do sistema.** O fluxo básico pode ser descrito assim: - Usuário envia mensagem no WhatsApp - WhatsApp API recebe e encaminha para o backend - Backend processa e envia para DeepSeek API - Resposta retorna ao backend - Backend envia resposta ao WhatsApp ### Componentes recomendados para produção | Camada | Tecnologia recomendada | Função | | --- | --- | --- | | Gateway WhatsApp | WhatsApp Cloud API | Receber e enviar mensagens | | Backend | Node.js + Express | Lógica do bot e orquestração | | IA | DeepSeek API | Processamento de linguagem natural | | Fila | Redis / BullMQ | Controle de mensagens e escala | | Servidor | VPS Linux | Execução contínua 24/7 | ## Otimização de performance e escalabilidade **Quando o volume de mensagens aumenta, a arquitetura simples pode não ser suficiente. Por isso, otimizações são essenciais para manter estabilidade e baixa latência.** ### Principais otimizações recomendadas: - **Cache de respostas:** evitar chamadas repetidas ao DeepSeek para perguntas iguais - **Fila de processamento:** usar Redis + BullMQ para evitar overload no servidor - **Rate limiting:** proteger API contra spam e abuso - **Logs estruturados:** monitorar erros e performance em produção - **Horizontal scaling:** rodar múltiplas instâncias do bot em VPS diferentes ### Melhoria de latência Reduzir o tempo de resposta é crítico para experiência do usuário. Algumas técnicas incluem: - Manter conexões HTTP persistentes com a API do DeepSeek - Minimizar payload enviado ao modelo - Usar prompts otimizados e curtos ## Segurança e boas práticas para bots no WhatsApp **Em produção, segurança é um fator crítico, principalmente quando o bot lida com dados de clientes.** ### Boas práticas essenciais: - **Não expor API keys** no código público - **Usar variáveis de ambiente (.env)** para credenciais - **Validar entradas do usuário** antes de enviar ao modelo de IA - **Implementar autenticação no webhook** do WhatsApp - **Limitar requisições por usuário** para evitar abuso ### Exemplo de proteção básica em Node.js ``` if (!req.headers.authorization || req.headers.authorization !== process.env.SECRET_TOKEN) { return res.status(401).send("Unauthorized"); } ``` **Essas práticas ajudam a evitar vazamento de dados e garantem estabilidade do sistema em produção.** ** ### Preciso de API oficial do WhatsApp? ** Não necessariamente. Você pode usar soluções como Baileys, mas para produção empresarial a WhatsApp Cloud API é recomendada. ** ### O DeepSeek é gratuito? ** Possui planos pagos e gratuitos dependendo da utilização da API. ** ### Posso rodar isso em qualquer VPS? ** Sim, desde que tenha Node.js ou Python instalado e recursos mínimos (1-2 GB RAM). ** ### O bot suporta múltiplos clientes? ** Sim, você pode escalar o sistema com filas e múltiplas instâncias. ** ** ## Conclusão Criar um bot de atendimento no WhatsApp com DeepSeek e VPS é uma das formas mais eficientes de automatizar suporte e vendas em 2026. Com uma arquitetura simples e escalável, você pode começar pequeno e evoluir para um sistema robusto de atendimento inteligente. ## Hospedagem recomendada para seu bot Para garantir estabilidade, baixa latência e escalabilidade, é essencial escolher uma VPS confiável. Uma das opções mais usadas por desenvolvedores é aque oferece servidores sob demanda com implantação rápida e suporte a múltiplos sistemas operacionais. Com a [Serverspace](https://serverspace.com.br/index.md), você pode: - Criar uma VPS em minutos - Escalar recursos conforme o crescimento do bot - Usar Linux otimizado para aplicações Node.js e IA - Pagar apenas pelo que utiliza https://serverspace.com.br/about/blog/counter-strike-2-para-comunidade-como-criar-servidor-bot-do-discord-site-e-estatisticas.md Descubra como montar uma comunidade completa de Counter-Strike 2 com servidor dedicado, bot do Discord, site de estatísticas e backend em VPS. Guia completo para gamers e administradores. ## Introdução Counter-Strike 2 (CS2) continua sendo um dos jogos competitivos mais populares do mundo, e comunidades organizadas têm buscado cada vez mais infraestrutura própria para melhorar a experiência dos jogadores. Isso inclui servidores dedicados, bots no Discord, sites de estatísticas e painéis de controle — tudo hospedado em VPS para garantir desempenho, estabilidade e escalabilidade. ## Arquitetura de uma comunidade CS2 moderna - **Servidor CS2**: ambiente principal do jogo hospedado em VPS - **Bot do Discord**: integração com partidas, ranking e administração - **Site da comunidade**: hub com estatísticas, jogadores e regras - **Banco de dados**: armazenamento de partidas, usuários e ranks - **API backend**: comunicação entre servidor, bot e site ## Comparação de componentes da infraestrutura | Componente | Função | Tecnologias comuns | Requisitos em VPS | | --- | --- | --- | --- | | Servidor CS2 | Hospedar partidas e matchmaking da comunidade | SteamCMD, Linux, Docker | CPU alta frequência, baixa latência, SSD | | Bot do Discord | Gerenciar jogadores, stats e comandos | Node.js, Python, Discord.js | CPU leve, RAM moderada | | Site de estatísticas | Exibir ranking, histórico e dados de partidas | React, Next.js, Laravel | CPU + RAM estáveis | | Banco de dados | Armazenamento de dados da comunidade | PostgreSQL, MySQL, Redis | SSD rápido, backup automático | ## Servidor CS2 em VPS Hospedar um servidor de Counter-Strike 2 em VPS permite controle total sobre mapas, regras e performance. O uso de Linux é altamente recomendado devido à estabilidade e menor consumo de recursos. Principais vantagens: - Controle total do ambiente - Baixa latência para jogadores - Escalabilidade sob demanda - Suporte a mods e plugins ## Bot do Discord para comunidades CS2 Um bot do Discord é essencial para automatizar tarefas dentro da comunidade: - Registro de partidas automaticamente - Rankings e leaderboard em tempo real - Notificações de servidores ativos - Comandos administrativos Ele geralmente se conecta ao backend via API e pode usar WebSockets para atualizações em tempo real. ## Site e sistema de estatísticas O site da comunidade funciona como hub central. Ele pode incluir: - Perfis de jogadores - Histórico de partidas - Ranking ELO ou sistema próprio - Estatísticas detalhadas (K/D, HS%, vitórias) Esse sistema normalmente depende de um backend robusto e banco de dados otimizado para leitura rápida. ## Por que usar VPS para tudo isso? Uma VPS permite consolidar toda a infraestrutura em um ambiente escalável e acessível. Para comunidades de CS2, isso significa menos dependência de serviços externos e maior controle técnico. ## Serverspace para infraestrutura de CS2 Serverspace oferece VPS de alta performance ideais para hospedar servidores de Counter-Strike 2, bots do Discord e sistemas de estatísticas. Com provisionamento rápido e escalabilidade sob demanda, é possível iniciar uma comunidade pequena e crescer sem migrar infraestrutura. A plataforma permite criar servidores em minutos com suporte a Linux e configurações personalizadas para jogos e aplicações backend. ## Arquitetura técnica recomendada para comunidade CS2 Para garantir estabilidade e escalabilidade, a infraestrutura de uma comunidade de Counter-Strike 2 deve ser dividida em serviços independentes. - **Game Server (CS2)** — responsável pelas partidas e matchmaking local - **Backend API** — centraliza lógica de usuários, ranking e estatísticas - **Bot do Discord** — interface social e automação da comunidade - **Frontend (site)** — painel público de estatísticas e perfis - **Banco de dados** — PostgreSQL ou MySQL para persistência de dados - **Cache layer** — Redis para reduzir latência em rankings e consultas Separar esses componentes em diferentes serviços permite escalar apenas o que for necessário, reduzindo custos e aumentando a performance geral. ## Otimização de performance para servidores CS2 em VPS Para garantir baixa latência e melhor experiência dos jogadores, alguns pontos técnicos são essenciais: - Utilizar VPS com CPU de alta frequência (single-thread performance é crítica) - Priorizar SSD NVMe para leitura rápida de mapas e logs - Configurar tickrate adequado para servidores competitivos - Isolar processos (game server separado do bot e do backend) - Monitoramento contínuo de CPU, RAM e rede Essas práticas ajudam a evitar lag, perda de pacotes e instabilidade em momentos de pico. ## Escalabilidade e automação da comunidade Quando a comunidade cresce, a automação se torna essencial. Algumas estratégias incluem: - Deploy automatizado com Docker ou scripts CI/CD - Balanceamento de carga entre múltiplos servidores CS2 - Escalabilidade horizontal do backend e API - Sincronização em tempo real entre bot do Discord e banco de dados - Logs centralizados para análise de comportamento dos jogadores Com essa abordagem, é possível suportar desde pequenas comunidades até redes competitivas com múltiplos servidores ativos simultaneamente. ### Posso rodar servidor CS2 e bot no mesmo VPS? Sim, desde que a VPS tenha recursos suficientes (CPU e RAM). Para comunidades maiores, o ideal é separar serviços. ### Qual sistema operacional é melhor para CS2 server? Linux (Ubuntu ou Debian) é a escolha mais comum pela estabilidade e performance. ### Preciso de banco de dados para servidor CS2? Não para o servidor em si, mas sim para estatísticas, site e integração com bot. ### Qual linguagem usar para o bot do Discord? Node.js e Python são as opções mais populares. ## Conclusão Construir uma comunidade de Counter-Strike 2 moderna vai muito além do servidor de jogo. A integração entre VPS, bot do Discord, site de estatísticas e backend cria um ecossistema completo, escalável e automatizado. Com a infraestrutura certa, é possível transformar uma simples comunidade em um projeto competitivo e profissional. https://serverspace.com.br/about/news/desconto-de-25-em-tokens-llm-e-novos-modelos-llm-na-serverspace.md A Serverspace adicionou novos modelos LLM da OpenAI, Anthropic, Google, xAI, Alibaba, DeepSeek, MiniMax, Zhipu AI, Tencent e Moonshot AI ao painel de controle. A Serverspace ampliou a lista de modelos de linguagem disponíveis. Agora, no painel de controle, estão disponíveis novos modelos da OpenAI, Anthropic, Google, xAI, Alibaba, DeepSeek, MiniMax, Zhipu AI, Tencent e Moonshot AI. A atualização permite escolher o modelo ideal para os requisitos do seu projeto e testar diferentes abordagens: comparar a qualidade das respostas, a velocidade de processamento e o comportamento dos modelos na prática. Para começar a usar os novos modelos com mais vantagens, utilize o cupom **LLM25**. Ele oferece 25% de desconto em tokens LLM por 3 meses. | Modelos | O que há de novo e importante | | --- | --- | | GPT-5.5 | Melhorias em codificação agêntica, uso de ferramentas e análise de dados. | | Claude Opus 4.8 Claude Sonnet 4.6 | Aprimoramentos em codificação, tarefas agênticas, uso de ferramentas e contexto longo. | | Gemini 3.5 Flash Gemini 3.1 Pro Preview | Linhas Flash e Pro atualizadas para tarefas de coding e cenários agênticos. | | Grok 4.3 Grok Build 0.1 | Novos recursos para tool calling, reasoning e agentic coding workflows. | | Qwen 3.7 Max | Aprimoramentos em geração de código, tarefas agênticas autônomas e trabalho com pipelines. | | DeepSeek V4 Pro DeepSeek V4 Flash | Adicionados V4 Pro e V4 Flash com arquitetura MoE e contexto ampliado. | | Minimax M3 | Inclui MiniMax Sparse Attention, multimodalidade e contexto de até 1 milhão de tokens. | | GLM 5.1 | Aprimoramentos em codificação agêntica e tarefas de long-horizon. | | Hy3 | Melhorias na eficiência de inference e em workflows agênticos. | | Kimi K2.6 | Aprimoramentos em cenários de coding, uso de ferramentas e tarefas agênticas. | ### Quais modelos foram adicionados O conjunto expandido de modelos oferece mais flexibilidade ao trabalhar com o serviço LLM: você pode escolher um modelo robusto para lógica e código complexos, ou um mais rápido — para chats, solicitações em massa e processamento de grandes volumes de informações. Use os novos modelos em diferentes cenários de IA: - crie bots de IA e assistentes internos; - conecte modelos a sites, aplicativos e APIs; - processe documentos e dados; - analise solicitações e consultas de usuários; - trabalhe com textos, código e cenários agênticos. ### Como obter o desconto em tokens LLM Ative o cupom **LLM25** no painel de controle da Serverspace e obtenha **25% de desconto** em tokens LLM **por 3 meses**. Para isso: - Acesse a seção "Finanças". - Clique em "Regarga de saldo". - Abra a seção "Cupom". - Insira o código **LLM25** e ative-o. Após a ativação, o desconto será válido por 3 meses. Aproveite-o para testar os novos modelos, executar mais tarefas de IA ou conectar pela primeira vez o serviço LLM ao seu projeto. Os novos modelos já estão disponíveis no [painel de controle](https://my.serverspace.com.br/) da Serverspace. Escolha o modelo ideal, ative o cupom LLM25 e comece a usar o serviço LLM em seus projetos. _A [Serverspace](https://serverspace.com.br/index.md) é um provedor global de nuvem especializado em infraestrutura de alto desempenho para desenvolvimento de IA e cargas de trabalho prontas para produção. Acelere seu deploy com nosso ecossistema focado em desenvolvedores, que inclui API robusta, CLI e provedores Terraform, projetados para integração perfeita e escalabilidade instantânea._ ### Quais novos modelos de IA foram adicionados na Serverspace? A Serverspace agora oferece modelos da OpenAI, Anthropic, Google, xAI, Alibaba, DeepSeek, MiniMax, Zhipu AI, Tencent e Moonshot AI, incluindo versões atualizadas como GPT-5.5, Claude Opus 4.8, Gemini 3.5 Flash, Grok 4.3 e outros. ### Para que servem os novos modelos de linguagem? Eles permitem escolher o modelo mais adequado para cada tarefa, como geração de código, análise de dados, automação de processos, criação de assistentes de IA e processamento de grandes volumes de informação. ### Como funciona o cupom LLM25? O cupom LLM25 oferece 25% de desconto em tokens LLM por 3 meses. Basta ativá-lo na seção "Finanças" do painel da Serverspace, em "Recarga de saldo" → "Cupom". ### Até quando é válida a promoção? A promoção de tokens LLM com o cupom LLM25 é válida até 5 de julho. Após a ativação, o desconto permanece ativo por 3 meses. https://serverspace.com.br/support/help/como-executar-o-n8n-com-postgresql-e-migrar-do-sqlite-com-seguranca.md Learn how to run n8n with PostgreSQL using Docker Compose. Replace SQLite safely without data loss. Improve performance, scaling, and backup reliability. Por padrão, o n8n armazena dados em SQLite, um banco baseado em arquivo que não exige configuração. Ele funciona bem para testes locais, mas apresenta limitações em produção: bloqueia o arquivo durante gravações, não oferece backups seguros em tempo real e não é compatível com o modo fila (queue mode), necessário para escalar horizontalmente com workers. O PostgreSQL resolve esses problemas e é a opção recomendada para qualquer instalação self-hosted do n8n além de uso pessoal. Neste guia, você vai configurar o n8n com PostgreSQL usando Docker Compose e também aprender como migrar uma instância existente em SQLite de forma segura. A configuração leva cerca de 15 minutos e não exige experiência prévia com bancos de dados. ## Por que migrar para PostgreSQL? O SQLite armazena todos os dados em um único arquivo e bloqueia completamente esse arquivo a cada gravação. Quando vários workflows são executados ao mesmo tempo, as operações ficam enfileiradas e podem falhar por timeout. Em casos extremos, o arquivo pode ser corrompido. Além disso, não é possível fazer um backup consistente enquanto o n8n está em execução — copiar o arquivo durante uma gravação pode resultar em dados inconsistentes. O PostgreSQL utiliza bloqueio em nível de linha (row-level), permitindo execuções paralelas sem conflitos. Ele suporta backups em tempo real com pg_dump, sem necessidade de interromper o n8n. Também é obrigatório para o uso do modo fila (com Redis e múltiplos workers) e para configurações com alta disponibilidade. Se o seu n8n é usado por uma equipe ou processa mais do que algumas dezenas de workflows por dia, o PostgreSQL é a escolha mais adequada. ## Pré-requisitos - Um servidor Linux (Ubuntu 22.04 ou 24.04) com pelo menos 2 GB de RAM e 20 GB de disco; - Docker e Docker Compose instalados; - Acesso via SSH ao servidor; - Para migração: acesso ao diretório de dados atual do n8n (/home/node/.n8n ou volume do Docker). Você pode contratar uma [VPS na Serverspace](https://serverspace.com.br/services/vps-server/ubuntu.md) e deixá-la pronta em poucos minutos. Se preferir evitar a instalação manual, a Serverspace também oferece uma [VPS com n8n](https://serverspace.com.br/services/servidor-n8n.md) pré-instalado como aplicação 1-Click. ## Passo 1. Gerar uma chave de criptografia O n8n criptografa todas as credenciais armazenadas usando esta chave. Se você perdê-la, todas as credenciais salvas ficarão permanentemente inacessíveis. Gere uma chave e armazene-a em um gerenciador de senhas: ``` openssl rand -hex 32 ``` ## Passo 2. Criar os arquivos do projeto Crie um diretório e adicione três arquivos dentro dele: ``` mkdir ~/n8n-postgres && cd ~/n8n-postgres ``` .env ```xml POSTGRES_USER=postgres POSTGRES_PASSWORD=your_strong_postgres_password POSTGRES_DB=n8n POSTGRES_NON_ROOT_USER=n8n_user POSTGRES_NON_ROOT_PASSWORD=your_strong_n8n_password N8N_ENCRYPTION_KEY=paste_your_generated_key_here N8N_HOST=0.0.0.0 N8N_PROTOCOL=http N8N_PORT=5678 GENERIC_TIMEZONE=UTC ``` docker-compose.yml ```xml volumes: db_storage: n8n_storage: services: postgres: image: postgres:16-alpine restart: always environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - db_storage:/var/lib/postgresql/data - ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh healthcheck: test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}'] interval: 5s timeout: 5s retries: 10 n8n: image: docker.n8n.io/n8nio/n8n restart: always environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=postgres - DB_POSTGRESDB_PORT=5432 - DB_POSTGRESDB_DATABASE=${POSTGRES_DB} - DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD} - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} - GENERIC_TIMEZONE=${GENERIC_TIMEZONE} ports: - 5678:5678 volumes: - n8n_storage:/home/node/.n8n depends_on: postgres: condition: service_healthy ``` O volume **n8n_storage** em **/home/node/.n8n** continua sendo necessário mesmo com PostgreSQL. O n8n ainda armazena metadados da chave de criptografia nesse diretório. O parâmetro **DB_POSTGRESDB_HOST** deve corresponder ao nome do serviço no Docker Compose **("postgres")**, e não **"localhost"**. init-data.sh Este script cria o usuário não-root do banco de dados na primeira inicialização. Crie o arquivo e execute **chmod +x init-data.sh**: ```bash #!/bin/bash set -e; psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" CREATE USER "$POSTGRES_NON_ROOT_USER" WITH PASSWORD '$POSTGRES_NON_ROOT_PASSWORD'; GRANT ALL PRIVILEGES ON DATABASE "$POSTGRES_DB" TO "$POSTGRES_NON_ROOT_USER"; GRANT ALL ON SCHEMA public TO "$POSTGRES_NON_ROOT_USER"; EOSQL ``` ## Passo 3. Iniciar a stack ```bash docker compose up -d ``` O Docker irá baixar as imagens, iniciar o PostgreSQL, aguardar a verificação de saúde (health check) ser concluída e, em seguida, iniciar o n8n. O n8n se conecta ao PostgreSQL e cria automaticamente todas as tabelas necessárias. Acesse **http://your-server-ip:5678** e crie sua conta de administrador. O primeiro usuário registrado recebe automaticamente permissões de administrador. ## Passo 4. Verificar a configuração Confirme que o n8n está usando o PostgreSQL listando as tabelas: ```bash docker compose exec postgres psql -U n8n_user -d n8n -c "\dt" ``` Você deve ver tabelas como** workflow_entity**, **credentials_entity** e **execution_entity**. Crie um workflow de teste com um Manual Trigger e um nó Set, execute-o e verifique se a execução aparece no histórico. Depois, adicione uma credencial de teste, reinicie o n8n com **docker compose restart n8n** e confirme que a credencial continua acessível. ## Migrando do SQLite para PostgreSQL Se você já tem uma instância do n8n rodando com SQLite, utilize o comando **export:entities da CLI** (disponível a partir do n8n v1.67, novembro de 2025). Ele exporta todos os tipos de entidades e permite importação entre bancos de dados diferentes. - **Pare o n8n:** docker compose stop n8n - **Exporte os dados:** ```bash docker exec -u node -it \ n8n export:entities --outputDir=/home/node/.n8n/backup ``` Adicione **--includeExecutionHistoryDataTables=true** caso queira incluir o histórico de execuções (isso pode gerar um volume de dados muito grande). - **Configure o PostgreSQL** seguindo os passos 1 a 3 acima. Use a mesma **N8N_ENCRYPTION_KEY** da sua instância antiga. Isso é essencial: uma chave diferente tornará todas as credenciais ilegíveis. - **Importação:** ```bash docker exec -u node -it \ n8n import:entities --inputDir=/home/node/.n8n/backup ``` - **Inicie o n8n** e verifique se os workflows, credenciais e usuários foram migrados corretamente e continuam intactos. Para versões do n8n anteriores à 1.67, que não possuem o comando export:entities, utilize: - n8n export: workflow --all; - n8n export: credentials --all --decrypted. Esses comandos exportam apenas workflows e credenciais, mas não incluem usuários, projetos ou pastas. ## Recomendações pós-configuração Backups Execute backups regulares do banco de dados usando **pg_dump**. Diferente do SQLite, esse processo funciona enquanto o n8n está em execução: ```bash docker compose exec postgres pg_dump -U n8n_user -d n8n > backup_$(date +%F).sql ``` Agende esse comando via cron (por exemplo, diariamente às 3h da manhã). Mantenha vários backups recentes e teste periodicamente a restauração para garantir que estão válidos. HTTPS Coloque um reverse proxy (como Nginx ou Caddy) na frente do n8n e configure um certificado TLS via Let's Encrypt. Evite expor diretamente a porta 5678 na internet. Sem HTTPS, credenciais de login e dados de workflows podem trafegar em texto puro. Limpeza de execuções O n8n salva o resultado de cada execução de workflow. Desde 2025, a limpeza automática (pruning) vem ativada por padrão: 14 dias de histórico e até 10.000 registros. Esse comportamento pode ser ajustado com as variáveis de ambiente: - EXECUTIONS_DATA_MAX_AGE (em horas); - EXECUTIONS_DATA_PRUNE_MAX_COUNT. ## Problemas comuns - O n8n inicia, mas usa SQLite em vez de PostgreSQL Verifique se DB_TYPE está definido como postgresdb (não postgres). Confirme também se todas as variáveis DB_POSTGRESDB_* estão presentes no ambiente. Se alguma estiver ausente, o n8n pode voltar automaticamente para SQLite sem avisar. - "Connection refused" na inicialização Certifique-se de que DB_POSTGRESDB_HOST corresponde ao nome do serviço no Docker Compose ("postgres"), e não "localhost". Os containers se comunicam pela rede interna do Docker, não pelo loopback. Também verifique se o healthcheck do container PostgreSQL está passando antes do n8n tentar se conectar. - Credenciais vazias após a migração A N8N_ENCRYPTION_KEY na nova instância não coincide com a antiga. O n8n não consegue descriptografar credenciais criadas com uma chave diferente. Confirme o valor da chave e repita a importação se necessário. - Erro "Column already exists" durante a migração Isso ocorre quando os dados são importados em um banco onde o n8n já executou migrações anteriormente. O banco de destino deve estar vazio antes da importação. Se necessário, apague e recrie o banco de dados e execute a importação novamente. ## Conclusão Três arquivos e um único comando **docker compose up** são suficientes para ter uma instância de n8n pronta para produção com PostgreSQL. Essa configuração permite backups seguros em tempo real, execução simultânea de workflows e um caminho claro para escalar com queue mode quando necessário. Para começar mais rápido, você também pode implantar o [n8n na Serverspace](https://serverspace.com.br/services/servidor-n8n.md) com um ambiente pré-configurado e adicionar o PostgreSQL seguindo os passos deste guia. https://serverspace.com.br/support/help/deploy-rapido-do-openclaw-guia-para-iniciantes.md Aprenda a fazer o deploy do OpenClaw em um VPS Linux passo a passo. Guia para iniciantes com instalação, configuração do Gateway e bot do Telegram em 15 minutos. O OpenClaw é um assistente de IA pessoal que você instala no seu próprio servidor. A grande sacada dele não é mais uma interface de chat no navegador, e sim a capacidade de conversar com você nos aplicativos de mensagem que você já usa todos os dias: WhatsApp, Telegram, Slack, Discord e mais de uma dezena de outros canais. Em vez de abrir uma aba no navegador, você manda mensagem para um contato no Telegram e recebe a resposta de um modelo de IA por trás. Para que isso funcione 24 horas por dia, sem depender do seu notebook ligado, o OpenClaw precisa rodar em algum lugar estável. Por isso o cenário mais comum é colocar ele em um VPS Linux. Neste guia vamos instalar o OpenClaw em um VPS, conectar um bot do Telegram e enviar a primeira mensagem em cerca de 15 minutos. O guia foi escrito para iniciantes que sabem se conectar via SSH e copiar comandos no terminal. ## Conceitos principais do OpenClaw Antes de partir para o terminal, vale entender cinco palavras que vão aparecer o tempo todo. **Gateway** é o processo principal que roda no servidor. Ele escuta na porta 18789, mantém o estado das conversas e direciona mensagens entre os canais e o modelo de IA. **Channels** são os aplicativos de mensagem conectados, como Telegram, WhatsApp, Slack e Discord. Cada channel é uma porta de entrada para o assistente. **Agents** representam a personalidade do bot, com prompt e configurações próprias. A descrição de cada agente fica em um arquivo SOUL.md, e dá para manter vários agentes em paralelo (um para trabalho, outro pessoal, outro focado em código). **Skills** são extensões modulares que ampliam o que o agente sabe fazer: navegar na web, executar comandos, consultar APIs externas. Cada skill mora em ~/.openclaw/workspace/skills//SKILL.md. Por fim, **Models** são os provedores de LLM externos: Anthropic Claude, OpenAI, Google Gemini. O OpenClaw não roda o modelo no seu servidor; ele apenas usa a API desses provedores. Toda a configuração do sistema fica em ~/.openclaw/openclaw.json. ## Como o OpenClaw funciona A arquitetura é mais simples do que parece. O Gateway funciona como uma central de controle. Ele não conversa direto com o usuário; em vez disso, fica entre dois mundos: de um lado, os mensageiros como Telegram; do outro, a API do provedor de LLM. Quando você manda uma mensagem para o bot no Telegram, o caminho é o seguinte. O Telegram entrega a mensagem ao Gateway via long polling. O Gateway identifica em qual sessão essa conversa está, monta o contexto (histórico, instruções do agente, skills disponíveis) e envia tudo para a API do modelo escolhido. O modelo gera a resposta, devolve para o Gateway, e o Gateway entrega para o Telegram, que mostra a mensagem na tela do seu celular. O que fica armazenado no servidor: histórico de diálogos, configurações dos agentes, skills instaladas e o arquivo de configuração. O que sai para fora: apenas o texto enviado para a API do provedor de LLM. Isso significa que dá para trocar de modelo (passar do Claude para o GPT, por exemplo) sem perder o histórico, e que o servidor é a fonte da verdade. Por isso vale fazer backup da pasta ~/.openclaw/ periodicamente. A vantagem em relação a um chatbot web fica clara aqui. O bot está sempre online, lembra o que foi conversado antes, é acessível pelo aplicativo de mensagem que você já usa no celular, e dá para integrar com ferramentas de trabalho. ## Casos de uso Os cenários mais frequentes para um deploy do OpenClaw em VPS são: - **Assistente pessoal no WhatsApp ou Telegram.** O bot responde como um contato comum, com memória entre conversas, disponível direto da palma da mão. - **Bot de equipe no Slack ou Discord.** O assistente atende perguntas dentro do canal, ajuda com documentação interna e automatiza respostas de suporte. - **Automação de rotina.** Lembretes, triagem de e-mails, monitoramento de repositórios no GitHub, acompanhamento de tarefas, tudo via mensagem. - **Ajudante de código no celular.** Você manda uma dúvida sobre um trecho de código pelo Telegram durante o trajeto e recebe a explicação na hora. - **Triagem de mensagens.** Resumo de conversas longas em grupos, classificação de notificações por prioridade, extração de itens de ação. ## Requisitos e preparação do servidor O OpenClaw é leve quando comparado a soluções que rodam o modelo localmente, justamente porque o LLM mora na nuvem do provedor. Ainda assim, vale ter folga de memória para o Gateway e para a build do daemon na primeira execução. | Recurso | Mínimo | Recomendado | | --- | --- | --- | | RAM | 1 GB | 2 GB | | CPU | 1 vCPU | 2 vCPU | | Disco | 10 GB SSD | 20 GB SSD | | Sistema | Ubuntu 22.04 / Debian 12 | Ubuntu 24.04 LTS | | Node.js | 22.14+ | 24 LTS | | Acesso | SSH com chave | SSH com chave | Para esse guia vamos usar um VPS Linux com Ubuntu 24.04. Qualquer provedor que ofereça VPS com pelo menos 2 GB de RAM atende. Se você ainda não tem um servidor pronto, dá para [alugar um VPS na Serverspace](https://serverspace.com.br/services/vps-server.md) em poucos minutos e seguir o guia direto. Antes de instalar qualquer coisa, conecte ao servidor por SSH e mantenha a aba aberta para os próximos passos. ## Instalação passo a passo ### Passo 1. Conectar ao servidor e atualizar o sistema Conecte ao VPS por SSH usando o cliente da sua preferência. No terminal, atualize a lista de pacotes e aplique as atualizações pendentes: ```bash sudo apt update && sudo apt upgrade -y ``` Isso garante que o sistema parta de uma base atualizada e evita surpresas com bibliotecas defasadas durante a instalação. ### Passo 2. Instalar o OpenClaw A forma mais rápida é o script oficial. Ele detecta o sistema, instala o Node.js 24 caso ainda não exista no servidor, baixa o OpenClaw e prepara o ambiente: ```bash curl -fsSL https://openclaw.ai/install.sh | bash ``` Se você já administra o Node.js no servidor por conta própria, dá para usar o npm direto: ```bash npm install -g openclaw@latest ``` A escolha entre os dois caminhos é gosto. Para iniciantes, o script oficial é o atalho mais seguro porque cuida da versão do Node automaticamente. ### Passo 3. Executar o onboarding Com o OpenClaw instalado, rode o assistente de configuração: ``` openclaw onboard --install-daemon ``` A opção --install-daemon configura o Gateway como serviço do systemd em modo usuário, o que faz com que ele suba sozinho depois de reinicializações. O assistente vai perguntar três coisas: - **Provedor de LLM.** Escolha entre Anthropic, OpenAI, Google ou outros. - **Chave de API.** Cole a chave gerada no console do provedor escolhido. Sem essa chave, o bot não responde nada. - **Configurações do Gateway.** Pode aceitar os padrões e seguir. A chave de API é gerada no painel de cada provedor (console.anthropic.com, platform.openai.com, ai.google.dev). Esse passo precisa ser feito antes do onboarding, porque o assistente vai pedir a chave logo de cara. ### Passo 4. Verificar se o Gateway está rodando Confirme que o Gateway subiu corretamente: ``` openclaw gateway status ``` A saída deve indicar que o Gateway está escutando na porta 18789. Para uma checagem mais completa do estado da configuração, use: ``` openclaw doctor ``` Esse comando aponta problemas comuns: chave de API ausente, conflito de versão, permissões erradas. Se algo aparecer aqui, vale resolver antes de seguir. ### Passo 5. Conectar o Telegram O Telegram é o canal mais simples para começar, porque exige apenas um token. Abra o Telegram e converse com @BotFather. Envie o comando /newbot, escolha um nome e um username terminado em bot. O BotFather devolve um token no formato 123456:ABC-DEF.... Copie esse valor. Em seguida, abra o arquivo de configuração do OpenClaw: ``` nano ~/.openclaw/openclaw.json ``` E adicione o bloco do Telegram dentro de channels: ```json { "channels": { "telegram": { "enabled": true, "botToken": "SEU_TOKEN_AQUI", "dmPolicy": "pairing" } } } ``` Salve o arquivo e reinicie o Gateway para aplicar as mudanças: ``` openclaw gateway restart ``` Agora abra a conversa com o bot que você criou e mande qualquer mensagem. O Gateway vai exigir um pareamento na primeira interação. No servidor, liste os pedidos pendentes: ``` openclaw pairing list telegram ``` Aprove o código que aparecer: ``` openclaw pairing approve telegram ``` ### Passo 6. Enviar a primeira mensagem Volte para o Telegram e envie uma pergunta ao bot. A resposta deve chegar em poucos segundos, gerada pelo modelo que você escolheu no passo 3. Pronto: o assistente está rodando 24 horas por dia no seu servidor e responde direto no aplicativo. Se nada acontecer, siga para a seção de erros comuns abaixo. ## Erros comuns e como resolver Mesmo seguindo cada passo, alguns tropeços aparecem com frequência. A tabela abaixo cobre os mais comuns. | Sintoma | Causa | Solução | | --- | --- | --- | | openclaw: command not found após a instalação | O diretório bin global do npm não está no $PATH | Adicionar $(npm prefix -g)/bin ao ~/.bashrc e abrir um novo terminal | | Build interrompida com exit code 137 (OOM) | VPS com menos de 2 GB de RAM | Aumentar o plano para 2 GB ou usar o script oficial em vez do build do Docker | | O bot não responde em grupos do Telegram | Privacy Mode do bot ativo por padrão | No BotFather, executar /setprivacy e marcar Disable, depois remover e adicionar o bot ao grupo de novo | | Conflito getUpdates 409 nos logs | Duas instâncias do Gateway usando o mesmo token | Parar a instância duplicada e reiniciar o Gateway com openclaw gateway restart | | O bot não responde nem para o dono | allowFrom vazio ou ausente | Adicionar o ID numérico do Telegram em channels.telegram.allowFrom e reiniciar o Gateway | Para diagnosticar qualquer problema fora dessa lista, acompanhe os logs em tempo real: ``` openclaw logs --follow ``` Boa parte das falhas aparece com mensagem clara nessa saída. ## Conclusão Em cerca de 15 minutos saímos de um VPS limpo para um assistente de IA acessível pelo Telegram, com memória entre diálogos e disponível 24 horas por dia. O passo natural seguinte é conectar mais canais (WhatsApp, Slack, Discord), adicionar skills para ampliar o que o agente sabe fazer, criar um segundo agente com personalidade diferente e configurar backup automático da pasta ~/.openclaw/. A peça que mantém tudo em pé é o servidor. Como o Gateway guarda histórico, configurações e estado dos canais, vale rodar em um VPS estável com IP fixo. Para quem precisa subir uma máquina rápida, o catálogo de [planos de VPS da Serverspace](https://serverspace.com.br/services/vps-server.md) cobre as configurações citadas neste guia, com sistemas Ubuntu prontos para o apt install. https://serverspace.com.br/support/help/permissao-negada-no-linux-como-corrigir-o-erro-permission-denied.md Aprenda a diagnosticar e corrigir o erro Permission denied no Linux com chmod, chown e sudo. Guia passo a passo com cenários reais, ACLs e SELinux. Quase todo administrador Linux já topou com o "Permission denied". Tentamos rodar um script, abrir um arquivo, entrar em um diretório ou conectar via SSH, e o terminal devolve a mensagem de bloqueio. A reação mais comum costuma ser jogar um chmod 777 em cima e seguir em frente, o que resolve o sintoma e abre buracos de segurança no sistema. Neste guia vamos mostrar como diagnosticar a causa real do erro, identificar em qual camada o acesso está sendo bloqueado e aplicar a correção mínima necessária. Cobrimos o modelo POSIX, o uso correto de chmod e chown, cenários típicos como chaves SSH e diretórios web, além de camadas adicionais como SELinux e atributos estendidos. Para os exercícios práticos, recomendamos um servidor descartável. Um [VPS Linux na Serverspace](https://serverspace.com.br/services/vps-server/linux.md) serve bem para testar os comandos em ambiente isolado. Os exemplos funcionam de forma idêntica em Ubuntu, Debian, AlmaLinux e Rocky. ## O que significa o erro "Permission denied" A mensagem aparece quando o kernel do Linux recusa uma operação porque o usuário atual não tem direitos suficientes sobre o arquivo ou diretório envolvido. O texto é praticamente sempre o mesmo, porém as causas variam bastante. Os contextos mais frequentes incluem a tentativa de executar um script sem o bit de execução, a leitura de um arquivo de outro usuário, a escrita em diretórios do sistema como /etc ou /var/www, o acesso via cd a uma pasta sem o bit x, e a autenticação SSH com chaves cujas permissões estão muito abertas. Antes de aplicar qualquer correção, vale entender que o Linux verifica acesso em três camadas. A primeira são as permissões POSIX clássicas (rwx para dono, grupo e outros). A segunda são as ACLs estendidas, que permitem regras finas para usuários e grupos específicos. A terceira são os módulos de segurança obrigatória: SELinux em sistemas RHEL e derivados, AppArmor em Ubuntu e Debian. ## Terminologia: como o Linux organiza permissões O controle de acesso se baseia em três categorias de sujeitos e três tipos de operação. As categorias são: dono do arquivo (user, u), grupo do arquivo (group, g) e outros usuários do sistema (others, o). Cada arquivo tem um único dono e um único grupo associado, definidos no momento da criação. Os tipos de operação são: leitura (read, r), escrita (write, w) e execução (execute, x). Para arquivos, o significado é direto. Em diretórios há uma sutileza importante: leitura permite listar o conteúdo, escrita permite criar e remover arquivos dentro, e execução permite atravessar o diretório, ou seja, fazer cd e acessar arquivos pelo caminho completo. A saída de ls -l mostra esse modelo em ação: ``` -rwxr-xr-- 1 maria devs 2048 Mar 10 14:20 deploy.sh ``` O primeiro caractere indica o tipo (- arquivo regular, d diretório, l link simbólico). Os próximos nove caracteres formam três triplas, uma para cada categoria: rwx para o dono, r-x para o grupo, r-- para outros. Existem duas formas de definir permissões com chmod. A simbólica usa letras e operadores (chmod u+x script.sh adiciona execução para o dono). A octal soma os valores 4 (r), 2 (w) e 1 (x) por categoria, gerando três dígitos. As combinações mais usadas no dia a dia: | Octal | Símbolo | Aplicação típica | Para que serve | | --- | --- | --- | --- | | 644 | rw-r--r-- | Arquivos de texto, configs | Dono edita, demais leem | | 755 | rwxr-xr-x | Diretórios, scripts públicos | Todos navegam e executam | | 700 | rwx------ | Diretório ~/.ssh, dados privados | Acesso só do dono | | 600 | rw------- | Chaves privadas SSH, .env | Leitura e escrita só do dono | | 775 | rwxrwxr-x | Pasta de uploads colaborativa | Grupo escreve, outros leem | Memorizar essas cinco combinações cobre a maioria das situações práticas. O resto pode ser construído a partir delas com pequenas variações. ## Como o sistema de permissões funciona Quando um processo tenta acessar um arquivo, o kernel executa uma sequência de verificações. Primeiro compara o UID do processo com o UID do dono. Se forem iguais, aplica os bits do dono. Caso contrário, verifica se algum dos grupos do usuário coincide com o grupo do arquivo e aplica os bits do grupo. Se nenhuma das condições anteriores valer, aplica a tripla outros. Esse fluxo tem implicações importantes. Para apagar um arquivo, o que importa é a permissão de escrita no diretório que o contém, não no arquivo em si. Por isso conseguimos remover arquivos somente leitura sem obstáculos, desde que possamos escrever no diretório. Outra implicação envolve o bit de execução em diretórios. Se /home/maria/projetos não tem o bit x para o usuário atual, nenhum arquivo dentro dele pode ser acessado, mesmo com permissões abertas. Todo o caminho até o arquivo precisa ser atravessável. Por fim vale conhecer o umask. Quando criamos um arquivo novo, o sistema parte de 666 (arquivos) ou 777 (diretórios) e subtrai a máscara umask. O padrão 022 resulta em 644 para arquivos e 755 para diretórios. ## Cenários práticos onde o erro aparece Script shell sem permissão de execução Criamos um script, escrevemos algumas linhas e tentamos rodar: ``` $ ./deploy.sh bash: ./deploy.sh: Permission denied ``` A causa é que o arquivo foi criado sem o bit x. A correção é adicionar execução para o dono: ```bash chmod u+x deploy.sh ./deploy.sh ``` Se o script precisa ser executado por todos os usuários, podemos usar chmod 755. Para uso pessoal, chmod 700 mantém o script privado. Chave SSH com permissões abertas demais Ao conectar em um servidor: ``` Permissions 0644 for '~/.ssh/id_rsa' are too open. It is required that your private key files are NOT accessible by others. ``` Esse comportamento vem do parâmetro StrictModes yes, ativado por padrão no sshd_config. O servidor recusa qualquer chave que possa ser lida por outros usuários da máquina cliente. A correção exige permissões fechadas para a chave e para o diretório: ```bash chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub chmod 600 ~/.ssh/authorized_keys ``` Escrita em diretório de sistema Tentar criar um arquivo dentro de /etc ou /var/www como usuário comum gera bloqueio imediato. A correção depende da intenção. Para alterações pontuais em arquivos do sistema, sudo resolve. Para diretórios web onde uma aplicação escreve regularmente, o caminho correto é ajustar a propriedade: ```bash sudo chown -R www-data:www-data /var/www/html sudo find /var/www/html -type d -exec chmod 755 {} \; sudo find /var/www/html -type f -exec chmod 644 {} \; ``` Acesso a arquivos de outro usuário Se maria precisa ler arquivos criados por joao, há duas opções limpas. A primeira é colocar maria no grupo de joao e garantir leitura no grupo: ```bash sudo usermod -aG joao maria chmod g+r /home/joao/relatorio.txt ``` A segunda usa ACLs para uma regra específica sem mexer em grupos: ``` sudo setfacl -m u:maria:r /home/joao/relatorio.txt ``` Sistema de arquivos read-only ou atributo immutable Em alguns casos, o próprio chmod retorna Permission denied, inclusive para o root. As causas mais prováveis são duas: o sistema de arquivos foi montado com a opção ro, ou o arquivo recebeu o atributo i (immutable) através do chattr. Para diagnosticar: ``` mount | grep " on / " lsattr arquivo ``` Se o arquivo tem o atributo i, removemos com sudo chattr -i arquivo. Se a partição está em modo somente leitura, é necessário remontar com escrita ou ajustar o /etc/fstab. ## Instrução passo a passo: diagnóstico e correção Sempre que aparecer um Permission denied, recomendamos seguir esta sequência. Ela leva ao diagnóstico correto sem chutes. Passo 1. Identificar dono, grupo e permissões ``` ls -l arquivo ls -ld diretorio id groups ``` O comando ls -l mostra dono, grupo e os bits rwx. O comando id revela UID, GID primário e grupos suplementares do usuário atual. Comparando os dois, descobrimos em qual tripla o acesso está sendo avaliado. Para informações ainda mais detalhadas, stat fornece tudo, incluindo timestamps e número de inode: ``` stat arquivo ``` Passo 2. Ajustar permissões com chmod Com a causa identificada, ajustamos as permissões. A forma simbólica é prática para mudanças pontuais: ```bash chmod u+x script.sh chmod g-w arquivo.txt chmod o=r arquivo.txt ``` A forma octal é melhor quando definimos um conjunto completo de uma vez: ```bash chmod 644 config.yaml chmod 755 deploy.sh chmod 600 ~/.ssh/id_rsa chmod 700 ~/.ssh ``` Para ajustes recursivos em árvores de diretórios, evite chmod -R com um único valor. Use find para separar arquivos e diretórios: ``` find /caminho -type d -exec chmod 755 {} \; find /caminho -type f -exec chmod 644 {} \; ``` Passo 3. Corrigir propriedade com chown Quando o problema é o dono ou o grupo do arquivo, chown resolve: ```bash sudo chown maria arquivo.txt sudo chown maria:devs arquivo.txt sudo chown :devs arquivo.txt sudo chown -R www-data:www-data /var/www ``` A sintaxe usuario:grupo cobre os dois ajustes em uma operação. A flag -R aplica recursivamente em diretórios e seu conteúdo. Passo 4. Usar sudo quando faz sentido O sudo é a ferramenta certa para operações em arquivos do sistema (/etc, /var/log, /usr) e para iniciar serviços que exigem privilégios. Para arquivos dentro de /home ou de projetos próprios, prefira corrigir a propriedade com chown em vez de rodar tudo como root, evitando criar arquivos pertencentes a root no seu diretório pessoal. Passo 5. Verificar camadas adicionais Se as permissões POSIX estão corretas e o erro persiste, é hora de olhar para as camadas extras. Para verificar ACLs: ``` getfacl arquivo ``` Se houver entradas que negam acesso, ajuste com setfacl ou remova-as com setfacl -b. Para verificar SELinux em sistemas RHEL, AlmaLinux ou Rocky: ``` getenforce sudo ausearch -m avc -ts recent ``` Se getenforce retornar Enforcing e ausearch mostrar bloqueios, a política do SELinux está negando o acesso. A solução depende do contexto, podendo envolver restorecon, chcon ou ajuste de booleanos com setsebool. Para verificar AppArmor em Ubuntu e Debian, use sudo aa-status. Se houver um perfil ativo restringindo o aplicativo, os logs em /var/log/syslog ou /var/log/audit/audit.log mostram a negação. ## Erros comuns ao corrigir permissões Listamos os deslizes que mais causam problemas e como evitá-los. Aplicar chmod 777 em tudo é a solução mais tentadora e a pior ideia. Concede leitura, escrita e execução para qualquer usuário do sistema. Em servidores expostos, é receita pronta para invasão. Identifique o usuário ou grupo que precisa de acesso e libere apenas o necessário. Usar chmod -R 755 em árvores mistas adiciona o bit x desnecessariamente em arquivos comuns. Use find com -type d e -type f para separar arquivos e diretórios. Esquecer o bit x no diretório pai causa falhas mesmo com permissões abertas no arquivo. Verifique todo o caminho com ls -ld em cada nível. Inverter a ordem de chmod e chown em scripts de provisionamento (Dockerfiles, Ansible) pode resultar em permissões incorretas se o chown alterar bits suid e sgid. A ordem segura é primeiro chown, depois chmod. Ignorar o SELinux em CentOS, AlmaLinux e Rocky é fonte de horas perdidas. Sempre rode getenforce e ausearch quando os ajustes POSIX não resolverem. Usar sudo onde a propriedade deveria ser corrigida cria arquivos pertencentes a root em locais errados. Se uma aplicação precisa escrever em /var/www, ajuste o dono para www-data. ## Conclusão O Permission denied é menos um obstáculo, e mais um sinal claro de que o sistema está fazendo o trabalho dele. A abordagem certa passa por entender em qual camada o bloqueio aconteceu e corrigir o ponto exato. Com prática, decifrar uma mensagem de Permission denied vira questão de segundos. A sequência funciona em qualquer cenário: ls -l e id para diagnóstico, chmod para ajustar bits, chown para acertar a propriedade, sudo somente quando faz sentido, e verificação de ACLs e SELinux quando o resto está ok. https://serverspace.com.br/support/help/como-criar-scripts-de-automacao-em-python-com-cursor-ai.md Aprenda a criar scripts de automação em Python usando Cursor AI. Descubra geração de código com IA, automação de APIs, depuração, agendamento de tarefas e otimização de workflows para desenvolvedores. A automação em Python se tornou uma das formas mais eficazes de simplificar tarefas repetitivas, processar dados e integrar serviços. Hoje, os desenvolvedores podem acelerar ainda mais esse processo com ferramentas de programação baseadas em IA. Uma das soluções mais populares é o **Cursor AI** — um editor de código aprimorado com inteligência artificial, criado em torno de geração inteligente de código e assistência contextual. Com o Cursor AI, os desenvolvedores podem criar rapidamente scripts de automação, gerar código boilerplate, depurar erros e até construir workflows completos usando prompts em linguagem natural. Em vez de escrever manualmente cada linha de código, você pode descrever a tarefa e deixar que a IA gere a implementação. Neste guia, vamos explorar como criar um script de automação em Python usando o Cursor AI, quais ferramentas são necessárias e como construir um workflow prático de automação passo a passo. ## **O que é o Cursor AI** O Cursor AI é um editor de código com inteligência artificial projetado para ajudar desenvolvedores a escrever, editar e entender código mais rapidamente. O editor integra assistência de IA diretamente no fluxo de desenvolvimento, permitindo que os usuários gerem funções, refatorem código, expliquem erros e automatizem tarefas repetitivas de programação. Diferente dos editores de código tradicionais, o Cursor AI pode analisar todo o contexto do projeto e gerar código com base em instruções em linguagem natural. ## **Por que usar o Cursor AI para automação em Python** O Cursor AI é especialmente útil para projetos de automação porque reduz significativamente o tempo de desenvolvimento e simplifica tarefas repetitivas de programação. Principais vantagens: | Recurso | Benefício para automação | | --- | --- | | Geração de código com IA | Criação mais rápida de scripts usando prompts em linguagem natural | | Consciência do contexto do projeto | Sugestões de código e integrações mais precisas | | Explicações de erros | Processo de depuração simplificado | | Refatoração de código | Scripts mais limpos e fáceis de manter | | Assistente de chat integrado | Respostas rápidas sem sair do editor | ## **Onde scripts de automação em Python são usados** Scripts de automação em Python são amplamente utilizados tanto em ambientes de desenvolvimento quanto em negócios. Por exemplo, desenvolvedores usam scripts de automação para processar arquivos, monitorar servidores, gerenciar backups e automatizar deploys. Em workflows empresariais, Python pode automatizar geração de relatórios, integrações de API, processamento de emails e operações com planilhas. A automação também é comum em DevOps, web scraping, sistemas de suporte ao cliente e pipelines de análise de dados. ## **O que você precisa antes de começar** Antes de criar um script de automação em Python com Cursor AI, você precisará de: - Cursor AI instalado no sistema; - Python 3.10 ou mais recente; - um ambiente de desenvolvimento configurado; - conhecimento básico da sintaxe Python; - uma tarefa de automação ou ideia de workflow. Para execução ou deploy em nuvem, você pode usar um ambiente VPS como o [Serverspace](https://serverspace.com.br/index.md). ## **Instalando o Cursor AI** O Cursor AI está disponível para Windows, Linux e macOS. O processo de instalação é simples: - Baixe o Cursor AI no site oficial - Instale o aplicativo - Faça login na sua conta - Abra ou crie um projeto Python Após a instalação, o Cursor AI funciona de forma semelhante ao VS Code, mas inclui recursos de IA integrados diretamente no editor. ## **Criando seu primeiro script de automação** Vamos criar um script simples de automação em Python que verifica o status de um site e envia uma notificação caso o servidor esteja indisponível. Primeiro, instale a biblioteca necessária: ```bash pip install requests ``` Crie um arquivo Python chamado monitor.py e adicione o seguinte código: ``` import requests import time URL = "[https://example.com](https://example.com)" while True: try: response = requests.get(URL) if response.status_code == 200: print("Website está online") else: print("O website retornou um erro") except Exception as e: print(f"Falha na conexão: {e}") time.sleep(60) ``` Esse script verifica continuamente se o site está disponível a cada 60 segundos. ## **Usando o Cursor AI para gerar código** Uma das principais vantagens do Cursor AI é a geração de código em linguagem natural. Por exemplo, você pode escrever um prompt como: ``` Crie um script Python que monitore o uso de CPU e envie uma notificação no Telegram caso o uso ultrapasse 90% ``` O Cursor AI irá gerar automaticamente a estrutura do script, importar as bibliotecas necessárias e implementar a lógica. Essa abordagem acelera significativamente o desenvolvimento, especialmente para tarefas repetitivas de automação. ## **Depurando e melhorando scripts** O Cursor AI também pode ajudar a identificar e corrigir problemas no código. Se um erro aparecer, você pode destacar a seção problemática e perguntar ao assistente de IA: ``` Explique por que esta função está falhando e sugira uma correção ``` O editor analisará o código e fornecerá recomendações. O Cursor AI também é útil para: - refatorar funções; - melhorar legibilidade; - otimizar desempenho; - adicionar documentação; - gerar testes unitários. ## **Automatizando requisições de API** Uma das tarefas de automação mais comuns envolve trabalhar com APIs. Por exemplo, um script Python pode coletar automaticamente dados de serviços externos: ``` import requests response = requests.get( "[https://api.example.com/data](https://api.example.com/data)" ) print(response.json()) ``` Usando o Cursor AI, você pode gerar rapidamente clientes de API, lógica de autenticação e manipuladores de requisições com prompts simples. ## **Agendando scripts de automação em Python** Depois de criar um script de automação, normalmente você desejará executá-lo automaticamente. Em servidores Linux, scripts de automação geralmente são agendados com cron. Exemplo de tarefa cron: ``` */5 * * * * /usr/bin/python3 /home/user/script.py ``` Essa configuração executa o script a cada cinco minutos. Para workflows maiores, desenvolvedores frequentemente utilizam: - Celery; - Airflow; - systemd timers; - containers Docker; - pipelines CI/CD. ## **Erros comuns ao usar Cursor AI** Embora o Cursor AI acelere o desenvolvimento, os desenvolvedores ainda enfrentam problemas comuns. | Problema | Causa | Solução | | --- | --- | --- | | O código gerado contém erros | O prompt não possui detalhes suficientes | Forneça requisitos técnicos mais claros | | Baixo desempenho do script | Lógica gerada pela IA ineficiente | Refatore e otimize manualmente | | Vulnerabilidades de segurança | Manipulação insegura de credenciais | Armazene segredos em variáveis de ambiente | | Conflitos de dependências | Versões incompatíveis de bibliotecas | Use ambientes virtuais e requirements.txt | | A automação para inesperadamente | Exceções não tratadas | Adicione tratamento de erros e logs adequados | ## **FAQ** **O Cursor AI é gratuito?** O Cursor AI oferece planos gratuitos e pagos, dependendo dos recursos de IA disponíveis e dos limites de uso. **O Cursor AI pode substituir completamente os desenvolvedores?** Não. O Cursor AI ajuda a acelerar o desenvolvimento, mas os desenvolvedores ainda precisam revisar, testar e manter o código gerado. **O Cursor AI suporta projetos Python?** Sim. Python é uma das linguagens mais utilizadas nos workflows do Cursor AI. **O Cursor AI pode gerar scripts completos de automação?** Sim. O editor pode gerar scripts completos, funções, integrações de API e código boilerplate a partir de prompts. **O Cursor AI é adequado para iniciantes?** Sim. O Cursor AI pode ajudar iniciantes a entender código, explicar erros e acelerar o aprendizado. ## **Conclusão** O Cursor AI simplifica significativamente o processo de criação de scripts de automação em Python. Com geração de código assistida por IA, depuração e refatoração, os desenvolvedores podem criar workflows de automação muito mais rapidamente do que com abordagens tradicionais de programação. Seja automatizando APIs, monitoramento de servidores, processamento de arquivos ou workflows empresariais, o Cursor AI ajuda a reduzir trabalho repetitivo e acelerar o desenvolvimento. Ao mesmo tempo, é importante revisar cuidadosamente o código gerado, otimizar desempenho e seguir boas práticas de segurança. Quando utilizado corretamente, o Cursor AI pode se tornar um poderoso assistente tanto para desenvolvedores iniciantes quanto experientes. https://serverspace.com.br/support/help/configuracao-inicial-do-windows-server-2025.md Guia prático para configurar o Windows Server 2025 após a instalação: senha, hostname, IP estático, DNS, RDP e atualizações. Implantar um novo servidor é o primeiro passo para construir uma infraestrutura de TI confiável. O Microsoft Windows Server 2025 traz recursos aprimorados de segurança, melhor integração com ambientes de nuvem híbrida e desempenho otimizado para cargas de trabalho corporativas modernas. No entanto, uma instalação recém-finalizada ainda não está pronta para tarefas padrão em produção. Para que o sistema opere com segurança e eficiência, os administradores precisam executar algumas configurações obrigatórias após a instalação. Neste artigo, mostramos o processo passo a passo de configuração inicial do Windows Server 2025, incluindo ajustes essenciais de rede, acesso remoto e atualizações do sistema. ## Terminologia Antes de avançar para as etapas de configuração, veja os principais termos técnicos usados neste guia: - **Server Manager:** console centralizado do Windows Server que permite provisionar e gerenciar funções e recursos em servidores locais ou remotos. - **Conta de administrador:** perfil local padrão com privilégios administrativos completos e controle total sobre a configuração do sistema operacional. - **Endereço IP estático:** endereço IP permanente atribuído manualmente a uma interface de rede. Diferente de um IP dinâmico fornecido por DHCP, ele não muda automaticamente. - **Windows Update:** serviço integrado da Microsoft responsável por distribuir atualizações críticas, correções de segurança e melhorias do sistema. - **Remote Desktop Protocol (RDP):** protocolo proprietário da Microsoft que permite acessar uma interface gráfica remota para administrar um servidor pela rede. ## Princípio de funcionamento A configuração inicial transforma o servidor de um estado genérico, logo após a instalação, em um nó identificado, acessível pela rede e mais seguro dentro da infraestrutura. Quando o Windows Server 2025 conclui a instalação básica, ele recebe um nome de computador gerado automaticamente, pode depender de um endereço IP dinâmico se houver DHCP disponível e bloqueia conexões remotas de entrada por padrão para reduzir riscos de segurança. A lógica da configuração inicial segue uma ordem prática: primeiro protegemos o host com credenciais locais adequadas, depois definimos a identidade de rede do servidor e, por fim, liberamos os meios necessários para administração remota e verificação da configuração. Essa base reduz riscos antes que a máquina passe a executar funções específicas em produção. ## Aplicação prática Uma configuração inicial bem feita é importante em vários cenários reais de implantação: - **Implantação em infraestrutura de nuvem:** ao criar máquinas virtuais em um ambiente corporativo, nomes claros e parâmetros de rede corretos facilitam a integração entre múltiplos servidores. - **Expansão do Active Directory:** antes de promover um servidor a Domain Controller, é necessário configurar IP estático e apontamentos DNS corretos para evitar falhas de autenticação no ambiente. - **Laboratórios de teste isolados:** mesmo em ambientes sandbox, manter imagens atualizadas e bem estruturadas ajuda a evitar erros falsos durante testes de pacotes, aplicações e serviços. Para projetos que exigem escalabilidade, essas etapas também podem ser aplicadas a servidores virtuais hospedados em plataformas de nuvem como a [Serverspace](https://serverspace.com.br/index.md). ## Instrução prática A configuração básica pode ser feita pela interface gráfica, usando o **Server Manager**, ou pela linha de comando com o **Windows PowerShell**. A seguir, mostramos as principais etapas. ### Etapa 1: alterar a senha do administrador local Para proteger o ambiente local contra acessos não autorizados, altere a senha padrão da conta administrativa logo após a instalação. Abra o PowerShell com privilégios administrativos e execute o comando: ``` net user Administrator SecureP@ssword123! ``` **Observação:** substitua sempre SecureP@ssword123! por uma senha forte, de acordo com a política de segurança da sua organização. ### Etapa 2: definir um nome de computador identificável Por padrão, o Windows Server gera um nome aleatório para o computador, por exemplo WIN-A1B2C3D4E5F. Esse nome deve ser alterado para seguir o padrão de nomenclatura usado na sua infraestrutura. Método A: usando a interface gráfica - Abra o console **Server Manager**. - Acesse a guia **Local Server** no menu lateral esquerdo. - Clique no valor exibido em **Computer name**. - Na janela **System Properties**, clique em **Change**, informe o novo hostname do servidor, por exemplo SRV-WEB-01, e clique em **OK**. Método B: usando o Windows PowerShell Também é possível alterar o nome do servidor com um único comando: ``` Rename-Computer -NewName "SRV-WEB-01" -Restart ``` _Esse comando altera o hostname do sistema e reinicia automaticamente o servidor para concluir a aplicação da nova configuração._ ### Etapa 3: configurar endereço IP estático e DNS Para que outros componentes da infraestrutura consigam localizar o servidor de forma previsível, configure um endereço IP estático na interface de rede principal. Primeiro, descubra o índice da interface de rede: ``` Get-NetIPInterface ``` Considerando que o índice da interface seja 12, aplique os parâmetros de IP estático com o comando: ``` New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.50 -PrefixLength 24 -DefaultGateway 192.168.1.1 ``` _O parâmetro -PrefixLength 24 equivale à máscara de sub-rede 255.255.255.0._ Em seguida, configure os servidores DNS primário e secundário na interface de rede: ``` Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("192.168.1.10", "8.8.8.8") ``` ### Etapa 4: habilitar o Remote Desktop Protocol (RDP) Para permitir que a equipe técnica administre o sistema remotamente sem depender do console do hipervisor, habilite o acesso administrativo via RDP. - No **Server Manager**, volte ao painel de propriedades em **Local Server**. - Localize a opção **Remote Desktop** e clique no status **Disabled**. - Selecione a opção **Allow remote connections to this computer**. - Verifique se a opção de **Network Level Authentication (NLA)** está ativada e clique em **OK**. Também é possível habilitar o RDP pelo PowerShell, alterando a configuração no registro e ativando as regras correspondentes no Windows Firewall: ``` Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -Value 0 Enable-NetFirewallRule -DisplayGroup "Remote Desktop" ``` ### Etapa 5: baixar e aplicar atualizações do Windows Instalar as atualizações mais recentes ajuda a corrigir vulnerabilidades, melhorar a estabilidade da plataforma e reduzir riscos operacionais. - Abra o menu **Start** e acesse o aplicativo **Settings**. - Vá até a seção **Windows Update**. - Clique em **Check for updates**. - Aguarde o download e a instalação das atualizações disponíveis. Reinicie o servidor quando o sistema solicitar. ## Conclusão A configuração inicial do Windows Server 2025 cria uma base mais segura, organizada e previsível para a infraestrutura. Ao alterar as credenciais locais, definir um nome de servidor claro, configurar parâmetros de rede estáticos, habilitar o acesso remoto e aplicar atualizações do sistema, o servidor fica pronto para receber aplicações, serviços e funções adicionais. Executar essas etapas corretamente reduz riscos operacionais no longo prazo e facilita a manutenção do ambiente de rede. https://serverspace.com.br/about/blog/melhores-prompts-de-ia-para-desenvolvedores-e-equipes-tecnicas.md Seu site WordPress está lento? Entenda as causas reais, do servidor às imagens e plugins. Aprenda a interpretar TTFB, LCP e CLS com ações práticas. Abra seu site em um celular com uma conexão móvel comum e conte os segundos em voz alta. Esse exercício costuma ser desconfortável. O que parece rápido em um laptop de desenvolvedor com conexão de fibra óptica muitas vezes é uma experiência bem diferente para a pessoa que chegou até você por um resultado de busca e está decidindo se fica ou não. Ela não vai pensar "vou dar mais tempo para a página" - simplesmente vai sair. A parte frustrante é que uma situação de site WordPress lento raramente se anuncia com clareza. Não há uma mensagem de erro dizendo "suas imagens estão muito pesadas" ou "seu servidor precisa de mais memória". O site apenas demora mais do que deveria, e a causa pode ser qualquer uma de uma dúzia de coisas - ou, mais provavelmente, várias ao mesmo tempo. Este guia identifica essas causas com clareza, explica o que está acontecendo em cada caso e oferece um caminho concreto para corrigi-las. ## Lendo os sinais: o que as ferramentas de velocidade realmente estão dizendo Executar um teste de velocidade WordPress no Google PageSpeed Insights ou GTmetrix retorna uma pontuação - mas a pontuação em si é menos útil do que as métricas específicas por trás dela. Três números importam mais. TTFB (Time to First Byte) Mede a diferença entre o navegador enviar uma solicitação e o servidor enviar seu primeiro byte de resposta. Pense nisso como o tempo que a cozinha leva para começar a servir a comida depois que o pedido chega. Se o TTFB ultrapassa 600 milissegundos, o problema existe inteiramente no lado do servidor - antes mesmo de qualquer imagem ou folha de estilo ter sido solicitada. Compactar imagens não ajudará em um TTFB alto porque o atraso acontece antes de tudo o mais. LCP (Largest Contentful Paint) Marca o momento em que o principal elemento visível - geralmente uma imagem grande ou um título - aparece completamente na tela. O Google considera um LCP abaixo de 2,5 segundos aceitável e o usa como fator de ranqueamento por meio dos Core Web Vitals. Um LCP acima de 4 segundos é classificado como ruim e se correlaciona com uma taxa significativamente maior de abandono. CLS (Cumulative Layout Shift) Mede a instabilidade visual - o quanto a página se reorganiza enquanto carrega. Uma pontuação acima de 0,1 normalmente significa que os elementos estão aparecendo tarde e empurrando outros conteúdos, o que faz a página parecer pouco confiável e torna toques acidentais comuns no mobile. **Essas três** métricas apontam para diferentes camadas do problema. TTFB alto é um problema de servidor. LCP alto geralmente envolve imagens ou recursos que bloqueiam a renderização. CLS alto é um problema de marcação. Cada um exige uma correção diferente, e é por isso que diagnosticar antes de otimizar produz melhores resultados do que aplicar todas as técnicas de uma vez. ## O que realmente está deixando seu site WordPress lento O servidor tem pouco espaço para trabalhar Toda vez que alguém abre uma página do seu site, o servidor recebe a solicitação, executa o código PHP, recupera o conteúdo do banco de dados, monta o resultado em HTML e o transmite. A velocidade desse processo depende inteiramente dos recursos de computação disponíveis - RAM, CPU e I/O de armazenamento. Na hospedagem compartilhada de entrada, esses recursos são divididos entre um número imprevisível de contas na mesma máquina física. O tempo de resposta do seu site passa a depender do que os outros estão fazendo a qualquer momento. Durante períodos calmos, pode parecer aceitável. Em horários de pico - ou quando outra conta na mesma máquina recebe um pico de tráfego - suas páginas ficam mais lentas por motivos que não têm nada a ver com seu conteúdo ou configuração. Um VPS resolve isso ao atribuir recursos fixos apenas à sua conta. O que está alocado à sua instância não é retirado de um pool comum. Provedores como [Serverspace](https://serverspace.br/services/vps-server/) oferecem configurações de VPS que funcionam bem para WordPress, com armazenamento SSD e data centers em diferentes regiões. Esse último ponto importa porque a geografia é um fator real: um servidor em Frankfurt respondendo a visitantes em São Paulo adiciona latência em cada conexão, independentemente de quão otimizado o site seja. Alinhar a localização do servidor ao seu público principal remove um atraso que nenhum plugin consegue compensar. Arquivos de mídia dimensionados para impressão, servidos na web Os sensores das câmeras continuam ficando maiores. Uma câmera mirrorless moderna produz imagens de 20–40 megabytes por arquivo - adequadas para impressão, outdoors ou edição profissional, não para um elemento de página que será exibido com 600 pixels de largura em uma tela de celular. O tamanho do arquivo não diminui automaticamente quando o WordPress redimensiona as dimensões exibidas; ele apenas altera a forma como a imagem é apresentada, não a quantidade de dados que o navegador precisa baixar. Uma página inicial com seis fotos não processadas pode facilmente exigir 60–80 megabytes de dados de imagem. Em uma conexão Wi-Fi forte, isso leva alguns segundos. Em uma conexão móvel típica, é o suficiente para fazer você perder a maioria dos visitantes antes mesmo de a página parecer concluída. Corrigir isso envolve três ações separadas. A compressão remove dados que o olho humano não percebe, normalmente reduzindo o tamanho do arquivo em 60–80% sem perda visível de qualidade. A conversão de formato para WebP - um formato criado especificamente para entrega na web - reduz ainda mais o tamanho, frequentemente produzindo arquivos 25–35% menores do que um JPEG comprimido com qualidade visual equivalente. A entrega responsiva garante que o navegador receba uma imagem dimensionada para a largura real de exibição, em vez de uma versão de resolução máxima que depois é reduzida no cliente. Extensões acumuladas, custo acumulado Os plugins são a principal vantagem do WordPress. Também são uma de suas responsabilidades de desempenho mais consistentes - não porque os plugins sejam inerentemente problemáticos, mas porque o custo de cada um é invisível até o total ficar grande o suficiente para ser notado. Considere o que acontece quando um visitante acessa qualquer página do seu site. O servidor começa a executar PHP. Ele verifica quais plugins estão ativos. Cada plugin ativo registra seus hooks e executa seu código de inicialização. Alguns plugins também carregam arquivos JavaScript que o navegador precisa baixar e processar antes que a página se torne interativa. Um plugin que carrega uma biblioteca JavaScript de 200 kilobytes na sua página de contato também está carregando isso na sua página inicial, nas páginas de produto e no arquivo do blog - mesmo que essa biblioteca não faça nada útil nessas páginas. O efeito acumulado surge aos poucos. Um plugin adicionado neste trimestre, outro no mês seguinte, um terceiro depois que alguém pediu uma funcionalidade - e, um ano depois, a página está executando três vezes mais código do que no lançamento. O plugin gratuito Query Monitor torna isso visível: ele mostra cada consulta ao banco de dados, qual código a acionou e quanto tempo levou. Uma página com 150 consultas ao banco de dados, das quais 20 são geradas por um único plugin, é um sinal claro. Cada página montada do zero, toda vez O WordPress constrói páginas por meio de um processo que envolve ler configurações, buscar conteúdo, executar a lógica do template e juntar a saída final em HTML. Para um post de blog simples, isso pode exigir 40–60 consultas individuais ao banco de dados. Para uma página de produto em uma loja maior, o número pode ultrapassar 200. Nenhuma dessas saídas muda entre um visitante e outro para a mesma página - e, no entanto, o processo é executado por completo a cada solicitação. O cache de página resolve isso diretamente. Depois que uma página foi montada, o resultado é armazenado como um arquivo HTML pronto. Visitantes subsequentes recebem esse arquivo sem disparar consultas ao banco ou execução de PHP. O trabalho do servidor passa de "montar esta página" para "enviar este arquivo", o que é drasticamente mais rápido e consome muito menos capacidade por solicitação. Um site WordPress rodando lento sob tráfego comum frequentemente volta ao normal quando o cache de página é configurado corretamente - não porque o código do site melhorou, mas porque a maioria das requisições deixou de executá-lo. A ressalva importante: essa abordagem só funciona para páginas em que o conteúdo é idêntico para todos os visitantes. Fluxos de checkout, painéis de conta e páginas de carrinho contêm dados específicos do usuário e não podem ser servidos de um cache genérico. Qualquer configuração de cache para um site de e-commerce precisa de regras explícitas sobre quais páginas são exceções. Temas construídos para tudo, otimizados para nada Temas multipropósito - divulgados com promessas de layouts ilimitados, dezenas de estilos de cabeçalho inclusos e tudo via arrastar e soltar - alcançam essa versatilidade incluindo código para todas as configurações possíveis ao mesmo tempo. O código do layout de portfólio carrega mesmo quando você está usando um site de restaurante. Os estilos de arquivo no estilo revista carregam mesmo quando você só tem um blog. Cada requisição de página carrega toda essa base de código, independentemente de qual parte dela realmente se aplica. Um tema projetado com um propósito mais restrito pode ser significativamente mais leve porque não precisa contemplar cenários para os quais não foi construído. Temas como GeneratePress, Kadence e Blocksy são frequentemente citados em discussões de desempenho porque sua saída padrão é compacta, eles carregam recursos condicionais apenas quando esses recursos estão ativos e não presumem que você precise de todas as capacidades que tecnicamente suportam. Os page builders intensificam a questão do peso do tema. Editores visuais traduzem decisões de design em HTML e CSS por meio de camadas de abstração. A marcação que eles geram tende a ser substancialmente mais verbosa do que o código escrito manualmente para o mesmo resultado visual - e mais JavaScript costuma ser necessário para manter as capacidades de edição do builder em tempo de execução, mesmo para visitantes que não estão editando nada. Um banco de dados que cresceu além da sua finalidade O banco de dados do WordPress cresce em direções que não têm nada a ver com publicar mais conteúdo. Cada atualização de post cria uma versão adicional salva - o WordPress preserva todas por padrão, o que significa que um artigo revisado com frequência pode ter dezenas de registros quase idênticos. Plugins gravam seus próprios registros e frequentemente os deixam para trás depois de serem desinstalados. Dados transitórios - registros temporários que plugins criam para armazenar seus próprios resultados intermediários - se acumulam sem verificação automática de expiração. Spam de comentários se acumula na fila de moderação. Conteúdo excluído fica na tabela de lixeira. Nada disso afeta o site visualmente. O que isso afeta é o desempenho das consultas. À medida que as tabelas crescem, as consultas levam mais tempo para ser concluídas. A interface de administração, que executa seu próprio conjunto de consultas, começa a parecer lenta independentemente do desempenho das páginas front-end. Páginas de arquivo e resultados de busca - que analisam partes maiores dos dados de conteúdo - são as que mais claramente se degradam. Definir um limite de revisões evita a recorrência. Adicionar: ``` define('WP_POST_REVISIONS', 5); ``` Ao wp-config.php limita o armazenamento às cinco versões mais recentes por post. A manutenção periódica - remoção de registros órfãos, transientes expirados e rascunhos acumulados - mantém os tempos de consulta estáveis ao longo do tempo. Recursos viajando mais do que precisam A transmissão de rede tem um componente físico que o software não consegue eliminar: os dados se movem por cabos e infraestrutura sem fio a velocidades mensuráveis, e a distância introduz atraso mensurável. Um visitante em Sydney solicitando uma página hospedada em Amsterdã experimenta esse atraso em cada recurso que o navegador busca - cada folha de estilo, cada arquivo de script, cada imagem. Uma CDN distribui cópias de recursos estáticos em nós posicionados mais perto dos usuários finais. O servidor de hospedagem continua gerando HTML dinamicamente, mas todo o resto - as imagens, folhas de estilo e arquivos JavaScript que compõem a maior parte da transferência de dados de uma página - chega de um ponto geograficamente mais próximo do visitante. Para sites com público espalhado por vários países ou continentes, essa mudança reduz de forma significativa o que os visitantes realmente experimentam. ## A sequência de correção: por onde começar e por que a ordem importa Medição de base antes de qualquer coisa. Abra o Google PageSpeed Insights, insira sua URL e execute testes para mobile e desktop. Salve os resultados completos - não apenas as pontuações, mas também as oportunidades e diagnósticos específicos. Esse documento é seu ponto de referência. Sem ele, você não terá como confirmar quais mudanças realmente melhoraram as coisas e quais não tiveram efeito. Resolva primeiro o tempo de resposta do servidor. Verifique seu TTFB nos resultados do PageSpeed. Se ele aparecer consistentemente acima de 500 ms, as demais otimizações ficarão limitadas por esse teto. Avalie sua hospedagem atual: você está em um plano com alocação dedicada de memória ou em um em que os recursos variam conforme a demanda compartilhada? Para sites que já passaram da fase inicial, um VPS com RAM e CPU fixas - como o que [Serverspace](https://serverspace.br/services/vps-server/) oferece - remove a imprevisibilidade introduzida por ambientes compartilhados. Considere a região do servidor ao mesmo tempo: se o seu público está principalmente em um país, hospedar dentro ou perto dele deveria ser o padrão. Configure o cache de página. O WP Rocket é a opção paga mais completa; ele lida com cache de página, cache de navegador, minificação de arquivos e várias outras otimizações em uma única interface e funciona corretamente logo de início na maioria das configurações. O LiteSpeed Cache é a alternativa gratuita mais forte para hosts que usam servidores LiteSpeed. No mínimo, ative o cache de página e os cabeçalhos de cache no navegador. Só essas duas configurações já costumam ter o maior impacto mensurável nas pontuações de tempo de carregamento. Processe toda a mídia da biblioteca. Plugins como Imagify, ShortPixel ou Squoosh (para trabalho manual) podem reprocessar em massa a biblioteca existente. Configure a ferramenta para rodar automaticamente em novos uploads e gerar versões WebP. Ative o lazy loading para imagens fora da área inicial visível - isso faz com que os downloads de imagens ocorram apenas conforme o visitante rola a página até elas, em vez de tudo acontecer no carregamento inicial. Audite os plugins ativos de forma metódica. Desative temporariamente cada plugin, rode um teste de velocidade e depois reative-o. Isso consome tempo, mas revela quais extensões têm a maior carga. Qualquer plugin que produza uma melhora mensurável quando desativado merece atenção maior: ele pode ser substituído por uma alternativa mais leve? Pode ser desativado nas páginas onde não tem função? O Asset CleanUp oferece controle por página sobre quais scripts e estilos são carregados, permitindo exclusão cirúrgica em vez de escolhas tudo ou nada. Mantenha o banco de dados de forma proativa. Execute uma limpeza inicial com o WP-Optimize ou uma ferramenta equivalente - isso trata os registros acumulados existentes. Adicione o limite de revisões ao wp-config.php. Agende limpezas recorrentes, no mínimo trimestrais, para que o banco não volte ao estado anterior. Conecte uma CDN para entrega estática. O plano gratuito da Cloudflare cobre adequadamente a maioria dos sites WordPress e se integra diretamente aos principais plugins de cache. A Bunny.net oferece configuração mais granular e melhor desempenho em regiões específicas por um custo modesto. O plugin de cache normalmente cuida da configuração da CDN por meio do próprio painel de configurações, o que simplifica bastante a instalação. Execute todos os testes novamente e compare. Verifique as métricas específicas que foram destacadas na linha de base - o TTFB caiu? O LCP melhorou? As pontuações no mobile subiram? Trabalhe nos itens que ainda estiverem marcados e teste de novo. ## Correspondência de sintomas: o que você vê vs. o que está causando | Sintoma observado | Fonte provável | Primeira ação a tomar | | --- | --- | --- | | Todas as páginas lentas, independentemente do tipo de conteúdo | Capacidade computacional do servidor ou TTFB | Meça o TTFB; faça upgrade para VPS se estiver acima de 500 ms; verifique a versão do PHP (deve ser 8.1+) | | Páginas com muitas imagens muito mais lentas do que páginas de texto | Arquivos de mídia não processados, servidos no tamanho original | Comprima em massa a biblioteca; ative saída WebP; ative lazy loading | | Primeira visita lenta; visitantes recorrentes veem carregamento rápido | Cache de página ausente ou parcialmente ativo | Verifique se o plugin de cache está gerando arquivos estáticos; confira os cabeçalhos de cache do navegador | | O painel parece lento independentemente do front-end | Tamanho do banco de dados; plugin gerando consultas administrativas pesadas | Faça limpeza do banco; use o Query Monitor para identificar o plugin mais pesado | | Mais lento para visitantes em países distantes | Distância de rede entre servidor e visitante; ausência de CDN | Ative a CDN; avalie se a região do servidor corresponde à geografia principal do público | | Pontuação no mobile 40+ pontos abaixo da pontuação no desktop | Tempo de execução de JavaScript em dispositivos menos potentes | Adie scripts não críticos; audite embeds de terceiros; teste em um dispositivo intermediário real | | O desempenho caiu após instalar um plugin específico | O plugin adiciona scripts ou consultas para todo o site, mesmo onde não é relevante | Desative o plugin e teste novamente; use o Asset CleanUp para restringir onde ele carrega | | O conteúdo se reorganiza visivelmente durante o carregamento da página (CLS) | Imagens sem dimensões explícitas; fontes ou anúncios carregando tarde | Adicione width/height às tags img; faça preload de fontes críticas; revise a posição dos anúncios | ## Quando a lentidão apareceu depois de trocar de host Um site WordPress lento após migração segue sua própria lógica diagnóstica. O conteúdo não mudou. Os plugins não mudaram. Algo no novo ambiente difere do que o site estava ajustado para usar, e encontrar isso exige verificar um conjunto específico de coisas. A versão do PHP é o ponto de partida. Versões antigas do PHP processam WordPress de forma muito menos eficiente do que as versões atuais. PHP 7.4 - ainda o padrão em alguns painéis de controle - executa a mesma carga de trabalho do WordPress de maneira perceptivelmente mais lenta do que PHP 8.2. Se o host anterior usava uma versão atual de PHP e o novo host caiu para uma versão mais antiga, a diferença será perceptível em cada requisição de página. Alterar isso leva dois minutos no painel da hospedagem e vale a pena verificar antes de investigar qualquer outra coisa. Ferramentas de cache armazenam configurações específicas do ambiente do servidor - caminhos absolutos de arquivos, tipo de software do servidor (Apache versus Nginx versus LiteSpeed), formatos de regras de rewrite. Essa configuração não é transferida de forma útil entre hosts. A abordagem correta após a migração é limpar todos os arquivos em cache e reconfigurar o plugin de cache a partir do padrão no novo servidor, como se fosse uma instalação nova. Tentar importar configurações antigas frequentemente resulta em regras que tecnicamente existem, mas não funcionam corretamente no novo ambiente. A conectividade com o banco de dados merece atenção, especialmente se o novo host separa o servidor de banco de dados do servidor web (algo comum em ambientes de cloud e gerenciados). Um servidor web que precisa atravessar uma fronteira de rede para recuperar conteúdo do banco em cada consulta introduz latência que se acumula ao longo do carregamento da página. Se o novo host oferecer Redis ou Memcached, habilitar cache de objeto por meio de um plugin como W3 Total Cache ou pela integração de cache de objeto do WP Rocket reduz substancialmente a frequência dessas consultas entre servidores. Por fim, confirme que as referências de URL dentro do banco de dados foram totalmente atualizadas durante a mudança. Ferramentas de migração às vezes deixam passar registros em tabelas menos óbvias, deixando referências codificadas ao domínio antigo. Isso produz cadeias de redirecionamento ou alertas de conteúdo misto que o navegador precisa resolver antes que a página termine de carregar. Executar o Better Search Replace com o domínio antigo como termo de busca após a migração captura isso. ## Cinco perfis de site e os problemas de velocidade que normalmente desenvolvem Blog de conteúdo em hospedagem de entrada. O desempenho parece aceitável na maior parte do tempo, mas degrada bruscamente quando um post recebe muito tráfego de entrada - uma menção em newsletter, um compartilhamento popular em rede social. O modelo de hospedagem simplesmente não foi projetado para absorver picos súbitos de requisições. A intervenção prática é um bom cache de página (que reduz drasticamente a carga por requisição do servidor) combinado com uma reavaliação de se o plano atual de hospedagem corresponde aos padrões reais de tráfego. Para um blog que recebe picos ocasionais, o cache sozinho muitas vezes estabiliza o desempenho sem exigir mudança de host. Loja WooCommerce com catálogo de produtos. Páginas de categoria e produto podem ser pré-geradas e armazenadas em cache. O fluxo de checkout não pode - ele envolve dados de sessão, cálculos de impostos e verificações de estoque específicas de cada usuário e transação. O desempenho dessas páginas dinâmicas depende da velocidade bruta do servidor: memória disponível, tempo de execução do PHP e eficiência das consultas ao banco de dados. O cache de objeto do lado do servidor com Redis mantém dados frequentemente necessários na memória entre requisições, reduzindo o trabalho de banco exigido em cada página dinâmica. É aqui que um serviço de correção de site WordPress lento focado em WooCommerce normalmente começa o trabalho - não na camada do tema ou das imagens, mas na camada de configuração do servidor. Site de fotografia ou portfólio visual. O culpado quase sempre é o mesmo: imagens enviadas em resolução total. Uma página de portfólio carregando quinze fotografias em resolução total pode transferir 80–120 megabytes de dados de imagem antes de a página terminar. A sequência de correção aqui é clara: comprimir em massa a biblioteca existente, ativar conversão WebP para todos os envios futuros, implementar tamanhos de imagem responsivos para que dispositivos móveis recebam arquivos com dimensões apropriadas e usar lazy loading para que imagens abaixo da área visível não disputem recursos com as que já estão na tela. Uma CDN é especialmente valiosa para sites de portfólio porque o público deles costuma estar geograficamente disperso. Site corporativo construído com editor visual. A característica de desempenho de sites com page builder é o peso no front-end - bibliotecas JavaScript para o sistema de interação do builder, CSS verboso que cobre seletores para padrões de layout não usados e, às vezes, scripts que bloqueiam a renderização e impedem que o conteúdo visível apareça até que tarefas em segundo plano terminem. O caminho de otimização envolve auditar quais scripts são realmente necessários no carregamento inicial e quais podem ser adiados até depois da renderização, e verificar se as próprias configurações de desempenho do builder permitem desativar recursos que não estão em uso. Alguns sites, nesse ponto, são melhor atendidos por uma reconstrução com um editor mais leve. Site que acumulou recursos ao longo de vários anos. No lançamento: rápido, focado, simples. Três anos depois: uma ferramenta de chat ao vivo adicionada para uma campanha que terminou, um calendário de eventos ativo desde uma conferência única, um plugin de slider vindo de uma decisão de design que depois foi revertida, uma ferramenta de analytics que ninguém lembra de ter configurado. O trabalho de otimização de velocidade WordPress aqui é tanto editorial quanto técnico - estabelecer quais ferramentas têm justificativa comercial ativa e remover tudo o que não tiver. Cada plugin removido é um conjunto a menos de consultas, um conjunto a menos de scripts, uma obrigação a menos de manutenção. ## Onde a ajuda profissional faz sentido Os passos descritos acima estão ao alcance de qualquer dono de site disposto a segui-los de forma metódica. Onde a abordagem autônoma chega ao limite é no nível de código e infraestrutura - situações em que a lacuna restante de desempenho exige ler a saída de um profiler de PHP, ajustar a estrutura de consultas MySQL, modificar arquivos de configuração do servidor ou identificar regressões de desempenho no código de um tema ou plugin. Um serviço de otimização de velocidade WordPress operando nesse nível normalmente começa com uma auditoria estruturada em vez de alterar configurações imediatamente. A auditoria mapeia o que realmente está rodando, identifica onde o tempo está sendo gasto no ciclo da requisição e produz uma lista priorizada de intervenções. Os provedores do melhor serviço de otimização de velocidade WordPress explicarão o que foi alterado e por quê - não apenas entregarão uma pontuação melhor que você não consegue reproduzir ou manter. Entender como acelerar o WordPress no nível da infraestrutura - configuração de cache de objeto, ajustes de opcode do PHP, otimização do MySQL - também depende de ter um ambiente de hospedagem que permita esses ajustes. Um plano compartilhado gerenciado normalmente não permite. Um VPS em que você controla a pilha do servidor permite. É por isso que migrar para um VPS capaz costuma ser o pré-requisito para qualquer trabalho sério de otimização em nível de infraestrutura, e não apenas um upgrade de hospedagem por si só. ## Padrões que tornam os esforços de otimização menos eficazes Instalar várias ferramentas de desempenho ao mesmo tempo é uma maneira confiável de criar problemas difíceis de atribuir. Um plugin de cache, uma ferramenta de minificação, um plugin de configuração de CDN e um serviço de otimização de imagens modificam a forma como os recursos são entregues, armazenados ou transformados. Quando essas ferramentas interagem de maneiras inesperadas - e isso acontece - uma página quebrada ou estilos ausentes podem resultar da combinação das alterações, e não de uma única delas. A abordagem correta é sequencial: uma mudança, um teste, uma comparação. A minificação excessiva de JavaScript quebra scripts com frequência suficiente para merecer cautela. A minificação renomeia variáveis e remove espaços em branco, o que funciona bem para código bem escrito, mas pode quebrar scripts que dependem da preservação de nomes específicos de variáveis ou que verificam certas condições globais. Quando a minificação está ativada e algo para de funcionar, a etapa diagnóstica é excluir scripts, um por um, do processo de minificação em vez de desativar o recurso por completo. Testar apenas em um computador desktop fornece uma visão incompleta. O Google pontua mobile e desktop separadamente, aplica limites de desempenho diferentes para cada um e usa especificamente o desempenho mobile nas decisões de ranqueamento. Um site que passa confortavelmente nos testes de desktop pode, ao mesmo tempo, entregar uma experiência ruim no mobile - especialmente se carregar JavaScript que faz parsing lentamente em processadores menos potentes. Testar em um Android ou iPhone intermediário real, em conexão celular, revela o que a maioria dos visitantes realmente encontra. Por fim, tratar a otimização como um projeto concluído em vez de uma tarefa contínua de manutenção leva à regressão. Plugins são atualizados e às vezes ficam mais pesados. Novos recursos são adicionados sem uma auditoria de velocidade correspondente. O tráfego cresce e as exigências do servidor mudam. Um teste trimestral de velocidade - literalmente uma URL, cinco minutos - detecta problemas cedo o suficiente para corrigi-los antes que os visitantes percebam. ## Conclusão Um site WordPress lento tem uma causa, e normalmente várias. As causas são identificáveis, as correções são documentadas e os resultados são mensuráveis. O que separa os sites que permanecem rápidos daqueles que não permanecem é menos uma técnica específica e mais o hábito de tratar o desempenho como algo que exige atenção periódica, e não uma configuração única. A sequência que produz resultados de forma confiável: medir primeiro, corrigir o tempo de resposta do servidor antes de qualquer outra coisa, configurar cache, processar imagens, auditar plugins, limpar o banco de dados, adicionar uma CDN e medir novamente. Cada uma dessas etapas é independente e testável. A melhora é cumulativa - um site que carregava em sete segundos pode chegar consistentemente a dois por meio desse processo, e, em dois segundos, a diferença que os visitantes sentem é a diferença entre um site que parece funcional e um que parece rápido. ### O que devo verificar primeiro quando meu site WordPress está lento? Execute o site no Google PageSpeed Insights e observe especificamente a leitura de TTFB (Time to First Byte). Se esse número estiver acima de 500 ms, o problema começa no nível do servidor e deve ser tratado antes de qualquer outra coisa. Se o TTFB estiver em uma faixa aceitável, os diagnósticos mostrarão quais elementos front-end - imagens, scripts, fontes - são responsáveis pelo atraso. ### Quantos plugins são demais? Não existe um limite significativo baseado apenas na contagem. O que importa é o custo real de execução de cada plugin em cada requisição de página. Um site com 30 plugins leves pode ter desempenho melhor do que um com 12 plugins que carregam JavaScript pesado. Use o Query Monitor para medir o que realmente está rodando por página, em vez de auditar por quantidade. ### Por que o desempenho no mobile é mais baixo do que no desktop no mesmo site? O Google mede o desempenho mobile com padrões mais rigorosos e simula uma CPU e uma conexão mais lentas ao calcular a pontuação. JavaScript que roda eficientemente em um processador de desktop pode levar três a quatro vezes mais tempo em um dispositivo móvel. A pontuação mobile reflete o que celulares intermediários em conexões móveis típicas realmente experimentam - e, para a maioria das categorias de site, isso representa a maioria dos visitantes. ### Qual é a causa mais comum de desempenho lento especificamente após a migração? A versão do PHP no novo host é o fator mais frequentemente esquecido. Versões mais antigas do PHP processam WordPress de forma consideravelmente mais lenta do que as versões atuais. Depois de confirmar que o PHP está atual (8.1 ou 8.2), a próxima verificação é a configuração do plugin de cache - ela não é transferida entre ambientes de servidor e precisa ser refeita do zero no novo host. ### Existe um ponto em que a otimização gerenciada pelo próprio site deixa de ser eficaz? Depois que as intervenções padrão foram aplicadas - cache, processamento de imagens, auditoria de plugins, manutenção do banco de dados, CDN - e o site ainda tem baixo desempenho, os problemas restantes normalmente estão no código ou na infraestrutura. Profiling de PHP, análise de consultas MySQL e ajustes na configuração do servidor exigem conhecimento técnico ou um serviço especializado. Para sites de e-commerce em que a velocidade afeta diretamente as taxas de conclusão de transações, esse investimento normalmente se paga. ### Limpar o banco de dados realmente melhora a velocidade, ou é mais manutenção? Ambos, dependendo do que se acumulou. Tabelas grandes de revisões e extensos registros transitórios reduzem de forma mensurável o desempenho das consultas ao banco, especialmente em páginas que executam consultas complexas - resultados de busca, páginas de arquivo, listagens de produtos WooCommerce. Para um site em que as tabelas de revisões chegaram a centenas de milhares de registros, a limpeza produz uma melhora perceptível. Para um site mais novo, com volume modesto de conteúdo, o efeito é menor, mas o benefício de manutenção continua. https://serverspace.com.br/about/blog/como-economizar-com-hospedagem-em-2026.md Os preços de hospedagem subiram em 2026. Veja 6 estratégias práticas para reduzir custos de 30 a 50% sem perder desempenho. 2026 começou com uma notícia ruim para quem mantém sites, lojas online e aplicações na nuvem. Os preços de hospedagem subiram. Hetzner aumentou seus planos em 20 a 50%. OVHcloud confirmou alta de 5 a 10% entre abril e setembro. cPanel reajustou as licenças mais uma vez. E desta vez, o motivo é diferente das altas anteriores. A causa principal está no boom da inteligência artificial. Os fabricantes de memória RAM (Samsung, SK Hynix, Micron) priorizaram a produção de chips para aceleradores de IA, deixando o mercado de DRAM convencional em escassez. Segundo a TrendForce, os preços contratuais de memória para servidores subiram 55 a 60% no primeiro trimestre de 2026. Como RAM representa de 30 a 40% do custo total de um servidor, esse aumento se propaga inevitavelmente para os tarifários dos provedores. A boa notícia: existem estratégias concretas que permitem reduzir custos de 30 a 50% sem comprometer o desempenho. Este guia mostra o que está acontecendo no mercado, quais abordagens funcionam de verdade e quais erros evitar. ## O que está acontecendo com os preços de hospedagem em 2026 A primeira coisa a entender é que essa onda de aumentos não é temporária. Analistas do setor projetam que a pressão sobre o mercado de memória deve persistir até 2027 ou 2028, enquanto a infraestrutura de IA continuar absorvendo a capacidade de produção das fábricas. Alguns números concretos para dar contexto. Dell e Lenovo aumentaram os preços de servidores em 15 a 25% no fim de 2025 e início de 2026. A Hetzner aplicou um reajuste amplo a partir de 1 de abril, atingindo planos VPS, dedicados e snapshots: o CPX11 saltou de €3,85 para €5,49. A OVHcloud foi o primeiro grande provedor a anunciar publicamente os reajustes de 5 a 10%. A cPanel aumentou as licenças no início do ano (Pro com 15% de alta, Solo com 11%), pressionando os provedores que usam esse painel. AWS, Microsoft Azure e Google Cloud ainda não anunciaram nada oficialmente, mas compram dos mesmos fabricantes. O cenário base prevê reajustes semelhantes na segunda metade de 2026. Para o mercado brasileiro, há um efeito adicional. Provedores que cobram em reais ficam menos expostos à oscilação cambial, mas o hardware importado segue dolarizado. Quem contrata serviços em dólar junta dois fatores: a alta global de preços e a variação do real frente ao dólar, que pode oscilar de 5 a 15% em poucas semanas. A conclusão é direta. Esperar uma queda de preços é apenas torcida. O que faz sentido é otimizar agora. ## Tipos de hospedagem e quanto custa cada um no Brasil Antes de falar em economia, vale revisar rapidamente os tipos disponíveis. Boa parte do desperdício acontece justamente quando alguém contrata um plano caro demais para o que precisa, ou barato demais e acaba pagando upgrades de emergência. Hospedagem compartilhada. Vários sites dividem o mesmo servidor físico, como moradores de um prédio que dividem água, luz e portaria. É a opção mais barata, com planos a partir de R$10 por mês. Funciona bem para blogs pessoais, sites institucionais simples, portfólios e projetos com tráfego baixo. O ponto fraco é a previsibilidade: se um vizinho consome muitos recursos, seu site sente. VPS (Servidor Virtual Privado). O servidor físico é dividido em vários servidores virtuais, cada um com recursos garantidos. Funciona como um apartamento próprio dentro de um condomínio. Os planos começam em torno de R$24 por mês e oferecem acesso root, controle total da configuração e desempenho previsível. É a escolha ideal para lojas em crescimento, aplicações web personalizadas e projetos que exigem mais do que a hospedagem compartilhada entrega. Cloud hosting. A infraestrutura está distribuída entre vários servidores físicos, com cobrança proporcional ao consumo efetivo. A vantagem é a escalabilidade automática durante picos de tráfego. O custo varia conforme consumo, com tickets que podem ir de algumas dezenas a milhares de reais. Servidor dedicado. Um servidor físico inteiro reservado para uma única empresa. Custos a partir de centenas de reais por mês, podendo passar de R$2.000 nas configurações mais robustas. Indicado para portais de alto tráfego, e-commerces grandes e projetos com requisitos rígidos de desempenho ou conformidade. A tabela abaixo resume as principais diferenças. | Tipo | Preço/mês | Para quem | Vantagens | Desvantagens | | --- | --- | --- | --- | --- | | Compartilhada | R$10 a R$50 | Blogs, sites institucionais, portfólios com tráfego baixo | Preço acessível, fácil gerenciamento, suporte incluído | Recursos divididos, desempenho variável, baixa flexibilidade | | VPS | R$24 a R$300 | Lojas em crescimento, aplicações web, projetos com 10 a 100 mil visitas | Recursos garantidos, acesso root, controle total, escalável | Exige conhecimento técnico para configurações avançadas | | Cloud | Pay-as-you-go | SaaS, aplicações com tráfego variável, picos sazonais | Escalabilidade automática, alta disponibilidade, paga só pelo uso | Custo imprevisível, complexidade maior, risco de surpresas na fatura | | Dedicado | A partir de R$500 | Portais grandes, e-commerces robustos, projetos críticos | Servidor exclusivo, máximo desempenho, controle absoluto | Custo elevado, exige equipe técnica, baixa flexibilidade | ## Estratégia 1: right-sizing, pague apenas pelos recursos que você usa A primeira fonte de desperdício em hospedagem é simples. A maioria dos servidores roda com 30 a 40% de capacidade ociosa. Empresas pagam por RAM, CPU e armazenamento que nunca chegam perto do limite. A solução chama-se right-sizing, e consiste em ajustar os recursos contratados ao consumo efetivo. O processo segue três passos. Primeiro, monitorar. Por pelo menos 30 dias, é preciso acompanhar quatro métricas: uso médio de CPU, consumo de RAM, espaço em disco utilizado e volume de banda. Quase todos os provedores oferecem painéis com essas informações. Quem precisa de mais detalhes pode usar ferramentas como Netdata, Grafana ou htop. Segundo, identificar o padrão. Sinais clássicos de superdimensionamento incluem CPU com média abaixo de 20%, RAM com uso inferior a 30% do disponível e tráfego mensal bem abaixo do limite contratado. Sinais de subdimensionamento são picos que travam o site, alertas frequentes de limite atingido e tempo de resposta que aumenta nos horários de movimento. Terceiro, ajustar. Se o servidor está claramente folgado, reduzir um nível costuma cortar de 30 a 50% do custo sem qualquer impacto perceptível. Se está apertado, vale comparar o custo do upgrade com a perda concreta de visitantes e conversões causada pela lentidão. Provedores com cobrança proporcional ajudam nessa otimização. A [Serverspace](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), por exemplo, oferece VPS no Brasil com servidor em São Paulo a partir de R$24 por mês e faturamento a cada 10 minutos em reais, permitindo escalar para cima ou para baixo sem ficar preso a contratos longos. ## Estratégia 2: escolha o provedor e a localização certos A escolha do provedor afeta o custo de duas formas. A direta é o preço da mensalidade. A indireta, frequentemente esquecida, envolve latência, conformidade legal e exposição cambial. Localização do datacenter. Para um público brasileiro, um servidor em São Paulo entrega Time to First Byte (TTFB) de 2 a 4 vezes menor do que servidores na Europa ou nos Estados Unidos. Isso impacta SEO (Core Web Vitals do Google), taxas de conversão (cada 100ms de atraso reduzem vendas) e experiência do usuário. Pagar um pouco mais por um servidor local muitas vezes sai mais barato no balanço final do negócio. Cobrança em reais. Quem contrata em dólar fica exposto à variação cambial mês a mês. Em períodos de instabilidade, a fatura pode subir 10 ou 15% sem qualquer alteração no plano. Provedores que cobram em reais eliminam essa volatilidade. Conformidade com a LGPD. Empresas que tratam dados pessoais de cidadãos brasileiros precisam considerar onde esses dados são processados e armazenados. Servidores em datacenters nacionais simplificam o cumprimento da legislação, especialmente para setores regulados como saúde, finanças e educação. Cuidado com o preço de renovação. A armadilha mais comum no mercado é olhar apenas o preço promocional do primeiro ano. Existem casos documentados de tarifas que sobem 268% na renovação. A regra prática é simples: antes de assinar, peça os preços de renovação e calcule o custo total para 24 ou 36 meses. Esse é o número que importa. Para projetos que precisam combinar essas três condições (servidor no Brasil, faturamento em reais e conformidade LGPD), a [Serverspace opera no datacenter Equinix SP3 em São Paulo](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), com infraestrutura Tier III, virtualização KVM, suporte 24/7 em português e tráfego ilimitado incluído nos planos. ## Estratégia 3: use CDN e cache para reduzir o consumo no servidor Uma rede de distribuição de conteúdo (CDN) é provavelmente a otimização com melhor relação custo-benefício existente. Funciona assim: arquivos estáticos do site (imagens, CSS, JavaScript, fontes) são copiados para servidores espalhados pelo mundo. Quando alguém acessa o site, esses arquivos vêm do ponto mais próximo do usuário em vez do servidor original. O resultado é menos consumo de banda, menos carga no servidor e tempo de carregamento mais rápido. A Cloudflare oferece um plano gratuito que cobre a maioria dos sites pequenos e médios. Casos documentados mostram economia de 4 a 5 terabytes de tráfego por mês para sites com volume moderado. Além da CDN, vale aplicar cache em três camadas. Cache de navegador. Configurar cabeçalhos HTTP corretamente faz o navegador do visitante guardar arquivos localmente. Em visitas seguintes, esses arquivos não são baixados de novo. Recursos que mudam pouco (logos, fontes, CSS) podem ser cacheados por meses. Cache de servidor. Ferramentas como Varnish, Redis e Memcached armazenam respostas dinâmicas em memória. Para WordPress, plugins como W3 Total Cache, WP Super Cache e LiteSpeed Cache fazem o trabalho com configuração mínima. Otimização de mídia. Imagens representam de 40 a 50% do peso de uma página típica, segundo o HTTP Archive. Converter de JPEG ou PNG para WebP ou AVIF reduz o tamanho de 30 a 80% sem perda visível de qualidade. Compressão Brotli ou Gzip para arquivos de texto também derruba o consumo de banda. O efeito conjunto dessas otimizações costuma ser drástico. Sites que precisariam de um VPS de R$80 conseguem rodar tranquilamente em planos de R$30 quando o cache está bem configurado. ## Estratégia 4: pague anualmente e fique de olho na renovação Provedores oferecem descontos significativos para contratos longos. Planos anuais cortam de 20 a 40% do custo mensal equivalente. Planos de 36 ou 48 meses podem chegar a 70% de desconto na primeira contratação. A questão é o que acontece depois. O preço promocional vale apenas para o primeiro período. Na renovação, a fatura volta ao valor regular, que pode ser várias vezes maior. A conta correta envolve três fatores. Primeiro, o custo total ao longo do contrato inicial. Segundo, o preço de renovação por igual período após o primeiro vencimento. Terceiro, o custo de migração caso seja preciso trocar de provedor. Migrar é menos doloroso do que parece. A maioria dos provedores oferece migração gratuita, mas o processo leva tempo, exige testes e pode causar pequenos períodos de instabilidade. Outra dica prática: antes de assinar contratos longos, vale testar o serviço por 30 dias com um plano mensal. Sentir o suporte, medir o uptime, validar a velocidade. Só depois fechar o compromisso de longo prazo. Promoções sazonais como Black Friday, Cyber Monday e aniversários de provedores são bons momentos para travar tarifas baixas, com a ressalva de sempre verificar o preço de renovação antes de fechar. ## Estratégia 5: reduza custos ocultos como licenças, IPs e add-ons Boa parte do custo total de hospedagem fica em itens que não aparecem no preço da página inicial. Painel de controle. cPanel e Plesk podem custar de R$80 a R$120 por mês quando contratados separadamente. Alternativas gratuitas e robustas existem: Coolify, HestiaCP, CyberPanel e aaPanel cobrem 95% das necessidades sem licença paga. Certificado SSL. Comprar certificado em 2026 é desperdício. Let's Encrypt entrega certificados válidos, automatizados e gratuitos, suportados nativamente por praticamente todos os painéis e ferramentas. Backups. Vendidos como serviço extra por muitos provedores. Para quem tem acesso ao servidor, soluções como restic, borgbackup ou rsync para storage barato (Backblaze B2, Wasabi) custam uma fração do preço dos planos premium. IPv4 adicional. Com a escassez de endereços IPv4, vários provedores agora cobram de R$5 a R$15 por mês por IP extra. Vale verificar quais aplicações de fato precisam de IPv4 dedicado e migrar o resto para IPv6 onde possível. E-mail. Hospedagem de e-mail integrada ao plano de hospedagem geralmente é limitada e pesa no servidor. Vale considerar Zoho Mail (plano gratuito até 5 usuários), Cloudflare Email Routing ou Google Workspace contratado separadamente. A soma desses ajustes costuma economizar de R$50 a R$200 mensais para sites de pequeno e médio porte. ## Estratégia 6: otimize a aplicação antes de fazer upgrade do plano Muitas vezes o problema não está na hospedagem. Está no código, no banco de dados ou na configuração da aplicação. Antes de pagar mais por mais recursos, vale fazer uma rodada de otimização. Atualize a versão do PHP, Node.js ou Python. PHP 8.3 chega a ser 2 a 3 vezes mais rápido que PHP 7.4 nos mesmos recursos. Atualizações de runtime são uma das otimizações com maior retorno por esforço. Crie índices nas consultas mais frequentes. Bancos de dados sem índices fazem varredura completa em cada consulta. Adicionar os índices certos reduz o tempo de resposta de segundos para milissegundos. Remova plugins do WordPress que não estão em uso. Cada plugin ativo consome memória, CPU e amplia a superfície de ataque. Sites carregados costumam funcionar bem com 8 a 12 plugins, dificilmente precisam de 30. Minifique CSS e JavaScript. Remover espaços, comentários e código não usado reduz o peso dos arquivos em 20 a 30%. Use lazy loading para imagens. Adicionar o atributo loading="lazy" às tags img faz o navegador carregar imagens apenas quando elas aparecem na tela. Audite tarefas agendadas (cron). Scripts antigos que rodam sem propósito consomem CPU silenciosamente. Vale revisar a lista de cron jobs e desativar o que não serve mais. Combinadas, essas otimizações conseguem dobrar a capacidade de um servidor sem trocar de plano. ## Cenários práticos: qual abordagem faz sentido para você Para fechar, vale traduzir as estratégias em recomendações concretas conforme o tipo de projeto. Blog pessoal ou site institucional. Tráfego baixo, conteúdo majoritariamente estático. Hospedagem compartilhada com Cloudflare gratuito na frente. Plano anual. Faixa de preço: R$15 a R$40 por mês. Loja virtual em crescimento. WooCommerce, Magento ou plataforma similar, com 10 a 50 mil visitas mensais. VPS com servidor no Brasil, NVMe, cache de servidor (Redis ou LiteSpeed) e CDN para mídia. Faixa de preço: R$80 a R$200 por mês. SaaS ou aplicação com tráfego variável. Picos imprevisíveis, necessidade de escalar rápido. Cloud hosting com cobrança proporcional, instâncias ARM quando aplicável (economizam de 20 a 40% em workloads web). Custo varia muito, mas pay-as-you-go protege contra superdimensionamento. Empresa com dados sensíveis. Saúde, finanças, educação, qualquer setor com obrigações de LGPD. VPS em datacenter brasileiro com Tier III, controle total do stack, backups encriptados off-site, monitoramento de acesso. A infraestrutura VPS da Serverspace no Brasil atende a esses requisitos com a vantagem do faturamento previsível em reais. Desenvolvedor com vários projetos pessoais. VPS unmanaged barato, contêineres Docker para isolar projetos, painel gratuito para gerenciar. Possível rodar 10 a 20 projetos pequenos em um único VPS de R$40 por mês. ## Erros comuns que fazem você gastar mais Para fechar, uma lista das armadilhas que pegam quase todo mundo pelo menos uma vez. - Escolher pelo preço promocional do primeiro ano sem checar a renovação. - Contratar com folga "para o futuro" e pagar por meses ou anos de capacidade ociosa. - Manter o site sem CDN nem cache, sobrecarregando o servidor com requisições repetidas. - Subir imagens em JPEG ou PNG quando WebP ou AVIF cortariam metade do peso. - Acumular plugins WordPress que ninguém usa há meses. - Ignorar a cobrança de IPv4 adicional, que se acumula ao longo do tempo. - Não monitorar o consumo efetivo, descobrindo o desperdício só quando a fatura chega. ## Conclusão Os preços de hospedagem subiram em 2026 e a tendência deve durar pelo menos até 2027. A boa notícia é que dá para neutralizar boa parte desse impacto com uma combinação de boas práticas: medir o consumo, escolher o plano certo, usar CDN e cache, otimizar a aplicação e cortar custos ocultos. A meta de 30 a 50% de economia sem perda de desempenho é alcançável para a maioria dos sites e aplicações. Não exige conhecimento avançado, exige um pouco de tempo, monitoramento e disposição para ajustar. A sugestão prática para começar é simples. Reserve duas horas nesta semana para auditar sua hospedagem atual: tipo de plano, consumo efetivo de recursos, presença de CDN, configuração de cache e custos ocultos. Esse exercício costuma revelar pelo menos uma fonte clara de desperdício, e o ajuste se paga em poucos meses. ### Por que os preços de hospedagem estão subindo em 2026? O principal motivo é a escassez global de memória RAM causada pelo boom da inteligência artificial. Fabricantes como Samsung, SK Hynix e Micron estão priorizando chips para IA, o que reduz a oferta de DRAM convencional. Como a RAM representa uma parte significativa do custo dos servidores, os provedores repassam esse aumento para os clientes. ### Essa alta de preços é temporária? Não. A tendência do mercado indica que a pressão sobre os preços deve continuar pelo menos até 2027–2028, enquanto a demanda por infraestrutura de IA permanecer elevada. Isso significa que esperar uma queda de preços no curto prazo não é uma estratégia realista. ### Como posso reduzir meus custos de hospedagem sem perder desempenho? As principais estratégias incluem otimizar o uso de recursos (right-sizing), usar CDN e cache, reduzir custos ocultos como licenças e IPs adicionais, e melhorar a eficiência da aplicação. Em muitos casos, essas ações permitem economias de 30% a 50% sem necessidade de upgrade. ### Vale mais a pena trocar de provedor ou otimizar o que já tenho? Na maioria dos casos, otimizar primeiro é a melhor escolha. Ajustar consumo, ativar cache, revisar plugins e bancos de dados costuma trazer ganhos imediatos. Trocar de provedor só faz sentido quando há problemas estruturais como localização inadequada, custos em moeda instável ou falta de escalabilidade. https://serverspace.com.br/about/news/openclaw-agora-disponivel-como-aplicativo-de-1-clique-no-serverspace.md OpenClaw agora disponível no Serverspace. Implante IA em um clique. Simples, rápido e pronto para produção. [https://serverspace.com.br/wp-content/uploads/2026/05/how-to-deploy-openclaw-on-a-linux-server_-step-by-step-guide-for-running-autonomous-ai-agents-1.svg](https://serverspace.com.br/wp-content/uploads/2026/05/how-to-deploy-openclaw-on-a-linux-server_-step-by-step-guide-for-running-autonomous-ai-agents-1.svg) Adicionamos o **OpenClaw** à nossa biblioteca de aplicativos de [1 clique](https://serverspace.com.br/about/news/novos-1-click-apps-disponiveis-no-painel-do-serverspace.md) no painel de controle da Serverspace. O OpenClaw é um framework moderno de assistente de IA de código aberto, projetado para simplificar a automação de tarefas e aprimorar o processamento de dados por meio de fluxos de trabalho inteligentes. Ao implantar o OpenClaw em nossa infraestrutura vStack de alto desempenho, os usuários podem aproveitar um ambiente de IA autônomo com maior estabilidade, tempos de resposta de baixa latência e alocação otimizada de recursos. Essa solução elimina a complexidade de configuração normalmente exigida para a implantação de IA, oferecendo uma plataforma plug-and-play para desenvolvedores que desejam integrar LLMs e assistentes automatizados à sua infraestrutura existente. ## Vantagens principais: - **Implantação instantânea** - o OpenClaw vem pré-instalado com o sistema operacional, eliminando a necessidade de configuração manual e preparação do ambiente; - **Padrões modernos de IA** - suporte integrado aos protocolos de automação mais recentes e desempenho estável em servidores virtualizados; - **Amigável para desenvolvedores** - personalize facilmente o comportamento do assistente, integre APIs próprias e ajuste a lógica graças a uma arquitetura aberta e modular. ## Como conectar: - No [painel de controle da Serverspace](https://my.serverspace.com.br/), clique em** "Criar servidor";** - Selecione **vStack** com **Ubuntu** e marque **o OpenClaw** na lista de aplicativos pré-instalados; - Faça o deploy e comece a usar ou testar imediatamente. _A Serverspace é um provedor global de nuvem especializado em infraestrutura de alto desempenho para desenvolvimento de IA e cargas de trabalho prontas para produção. Acelere seu deploy com nosso ecossistema focado em desenvolvedores, que inclui API robusta, CLI e provedores Terraform, projetados para integração perfeita e escalabilidade instantânea._ https://serverspace.com.br/about/blog/ubuntu-26-04-lts-novidades-mudancas-e-principais-casos-de-uso.md Ubuntu 26.04 LTS remover o Xorg, adiciona Linux 7.0, GNOME 50, suporte nativo a CUDA, criptografia de disco apoiada por TPM e utilitários de sistema baseados em Rust Em abril de 2026, a Canonical lançou a mais recente adição à sua linha de suporte de longo prazo: Ubuntu 26.04 LTS, apelidado de "Resolute Raccoon". O nome foi escolhido para homenagear Steve Langasek, um gerente de lançamentos de longa data que faleceu no início de 2025 — e a escolha reflete algo genuíno sobre esta versão. Ela não hesita. O Xorg desapareceu da área de trabalho. O cgroup v1 desapareceu do kernel. CUDA da NVIDIA chega aos repositórios oficiais de pacotes pela primeira vez. Vários componentes foram reescritos em Rust. Esta é uma LTS que se compromete com as direções para as quais o projeto Ubuntu vem caminhando há anos, em vez de manter opções antigas por compatibilidade com versões anteriores. Entender o que isso significa para a sua configuração — servidor, estação de trabalho, frota de contêineres ou VPS — é o objetivo deste artigo. Vamos percorrer cada mudança importante, destacar os riscos reais de migração e dar a você uma visão clara de se agora é o momento certo para fazer a mudança. ## Dois tipos de Ubuntu: por que a LTS é diferente A Canonical distribui o Ubuntu em dois ciclos. A cada seis meses, sai uma versão intermediária — 25.04, 25.10 e assim por diante — repleta do software mais recente do upstream. Nove meses depois, o suporte termina, e você precisa atualizar ou ficar para trás. Essas versões são voltadas para pessoas que querem uma área de trabalho ou ambiente de desenvolvimento continuamente atualizado e não se importam com as mudanças frequentes. As versões LTS seguem um cronograma completamente diferente. Elas aparecem a cada dois anos, e a Canonical se compromete com cinco anos de correções de segurança e correções críticas para cada uma. Organizações que operam infraestrutura de produção — bancos de dados, serviços web, pipelines de build, imagens de nuvem — tendem a padronizar em LTS porque precisam mais de previsibilidade do que de novidades. Uma vez implantado, o sistema permanece com suporte por tempo suficiente para permitir planejamento. O Ubuntu 26.04 LTS cumpre essa promessa até abril de 2031. Para equipes que assinam o Ubuntu Pro, a janela de cobertura de segurança se estende por uma década inteira. Esse horizonte de 10 anos é o que torna o planejamento de LTS significativo — você pode construir em cima dele sem se preocupar com o sistema operacional chegando ao fim da vida útil no meio de um ciclo de projeto. ## Requisitos de hardware antes de começar As instalações para desktop precisam de um processador dual-core de 2 GHz ou mais rápido, 6 GB de RAM e pelo menos 25 GB de espaço em disco. O valor de RAM é um pouco mais alto do que nas versões antigas — o GNOME 50 no Wayland exige mais, especialmente no que diz respeito ao uso de memória da GPU durante a composição. As instalações de servidor são consideravelmente mais leves. Uma configuração mínima do Ubuntu Server 26.04 roda com apenas 1,5 GB de RAM e 4 GB de armazenamento. Isso o torna viável para instâncias em nuvem com recursos limitados, sem necessidade de ajustes especiais. Imagens pré-construídas para ambientes de nuvem e virtualização — incluindo plataformas VPS como [Serverspace](https://serverspace.com.br/services/vps-server.md) — cuidam do próprio provisionamento e não exigem mídia de instalação. ## Mudanças centrais no Ubuntu 26.04 LTS Kernel Linux 7.0 Esta é a primeira LTS do Ubuntu a usar a série 7.x do kernel. O Kernel 7.0 chega com maior compatibilidade de hardware para gerações recentes da Intel e da AMD, melhorias no gerenciamento de energia entre arquiteturas de CPU e ganhos mensuráveis de throughput de escrita no ext4 sob determinados padrões de I/O. A pilha de drivers NVMe também foi atualizada, o que beneficia cargas de trabalho de servidor intensivas em armazenamento — servidores de banco de dados e pipelines de logs, em particular, tendem a ver esse tipo de melhoria refletida em números reais de benchmark. Uma adição que merece destaque específico: o suporte do Livepatch agora cobre servidores baseados em Arm. Até agora, a capacidade de aplicar patches de segurança do kernel sem reiniciar estava limitada à arquitetura x86-64. Para equipes que operam infraestrutura de produção aarch64, isso finalmente fecha essa lacuna. GNOME 50 e Wayland como única opção O Ubuntu 26.04 LTS é um ponto de virada na história do X11. Versões anteriores ofereciam uma escolha na tela de login — era possível selecionar "Ubuntu" (Wayland) ou "Ubuntu on Xorg" (X11). Essa segunda opção não existe mais. O gerenciador de exibição agora inicia em uma sessão Wayland incondicionalmente. Não há fallback para usuários que preferem o antigo servidor de exibição. O XWayland é incluído junto, o que significa que programas construídos com bibliotecas X11 ainda rodam — apenas o fazem dentro de uma camada de compatibilidade, em vez de se comunicar com um servidor X nativo. Para a maioria dos usuários, a transição é invisível. As aplicações que causam problemas são aquelas que interagem diretamente com o servidor X em baixo nível: algumas ferramentas de captura de tela, certas implementações de desktop remoto e alguns programas intensivos em GPU com caminhos de renderização específicos do X11. O GNOME 50 em si amadureceu consideravelmente. O dimensionamento por monitor agora lida melhor com configurações de alta densidade de pixels. A gravação de tela pode usar aceleração por hardware em vez de sobrecarregar a CPU. Sessões remotas que antes eram interrompidas por quedas de rede agora persistem e se reconectam. O suporte para telas pequenas melhorou o suficiente para tornar o Ubuntu utilizável em painéis industriais compactos e telas sensíveis ao toque embarcadas. O leitor de tela Orca foi substancialmente reestruturado, e uma nova opção de interface permite reduzir animações — útil tanto para necessidades de acessibilidade quanto para máquinas com GPUs mais lentas. Aplicativos: saem os antigos Quatro aplicativos padrão foram substituídos neste ciclo, e cada troca é significativa: - **Ptyxis** substitui o GNOME Terminal como ambiente de linha de comando padrão. Ele roda em GTK4, renderiza via GPU e traz gerenciamento de abas com modo de visão geral completo, perfis alternáveis e atalhos configuráveis. No mesmo hardware, ele é visivelmente mais responsivo que o antecessor. - **Showtime** substitui o antigo reprodutor de vídeo Totem. O novo player é escrito em Rust e construído sobre GTK4 e libadwaita — alinhado com a direção arquitetural do ecossistema de aplicativos do GNOME. - **Resources** substitui o GNOME System Monitor. É uma ferramenta desenvolvida pela comunidade dentro do programa GNOME Circle, o que significa que atende ao padrão de qualidade do GNOME sem fazer parte da produção direta da equipe principal. Ele oferece uma visão em tempo real mais clara do que o sistema está realmente fazendo. - **GIMP 3.2** substitui a série 2.10. A transição do 2.x para o 3.x foi um esforço de vários anos para modernizar os componentes internos e a interface do GIMP, e o 3.2 representa uma versão totalmente consolidada desse trabalho. Em outros pontos: o Firefox chega à versão 150, o LibreOffice passa da série 24.2 para 25.8, e o Thunderbird é distribuído como versão 140, codinome "Eclipse". Criptografia total de disco sem frase de senha no boot A criptografia LUKS tradicional protege dados em repouso de forma eficaz, mas interrompe o processo de inicialização — alguém (ou algo) precisa fornecer a frase de senha antes que o sistema continue. Para estações de trabalho físicas, isso é aceitável. Para servidores sem supervisão em um data center ou ambiente de nuvem, isso cria um problema operacional: a máquina não consegue se recuperar de uma reinicialização sem intervenção manual. O Ubuntu 26.04 resolve isso com FDE apoiada por TPM. Quando o chip Trusted Platform Module está presente e configurado corretamente, ele armazena as chaves de criptografia e as libera automaticamente durante a inicialização. O disco continua criptografado contra roubo físico, mas as reinicializações prosseguem sem entrada humana. A combinação é genuinamente útil para infraestrutura automatizada e em conformidade. Há limitações de hardware: essa abordagem não funciona em máquinas com recursos de firmware Absolute ou Computrace ativos, configurações de RAID NVMe podem exigir ajustes no nível da BIOS primeiro, e, entre módulos de kernel fora da árvore, apenas o driver da NVIDIA é atualmente compatível. Configurações padrão sem esses casos extremos funcionam de forma confiável. Utilitários em Rust substituindo componentes em C Ao longo das últimas versões do Ubuntu, a Canonical vem substituindo silenciosamente ferramentas do sistema escritas em C por equivalentes em Rust. A motivação é segurança de memória: o modelo de ownership do Rust elimina classes inteiras de bugs — estouros de buffer, dereferência de ponteiro nulo, erros de use-after-free — que alimentaram vulnerabilidades de escalonamento de privilégio em software de sistema por décadas. O Ubuntu 26.04 continua esse movimento. As mudanças não são visíveis no uso diário, mas reduzem a superfície explorável do sistema operacional em um nível estrutural, e não apenas por meio de patches aplicados depois do fato. systemd 259 e o fim do cgroup v1 O cgroup v1 — a implementação original de grupos de controle do Linux — não é mais suportado. O systemd 259, que acompanha o Ubuntu 26.04, trabalha exclusivamente com cgroup v2, a hierarquia unificada que vem sendo a abordagem preferida desde o Linux 4.5. As duas APIs não são compatíveis em várias áreas críticas. Na prática, isso significa o seguinte: o Docker suporta cgroup v2 desde a versão 20.10, e as configurações padrão de contêiner funcionam sem modificação. Mas arquivos antigos do Docker Compose, configurações do Kubernetes ou agentes de monitoramento que referenciam controladores específicos do v1 (como memory.memsw.limit_in_bytes ou caminhos de cpuset estruturados sob a hierarquia v1) vão falhar. Audite sua pilha de contêineres antes de migrar qualquer nó de produção para a 26.04. Dracut substitui o initramfs-tools O componente responsável por construir o ramdisk inicial — o ambiente mínimo que lida com a fase mais precoce do boot antes de o sistema de arquivos principal ser montado — mudou. O initramfs-tools, que o Ubuntu usa há muitos anos, é substituído pelo Dracut. O Dracut se integra mais estreitamente com o systemd durante o boot inicial e adiciona recursos que o initramfs-tools não conseguia oferecer, incluindo suporte a Bluetooth durante a inicialização e NVMe-oF (NVM Express over Fabrics) para inicializar a partir de alvos NVMe conectados em rede. Para a maioria dos sistemas, a transição é automática e transparente. O risco aparece se você tiver hooks personalizados escritos para o initramfs-tools — scripts que desbloqueiam volumes criptografados, montam compartilhamentos de rede ou inicializam hardware especial antes do aparecimento do sistema de arquivos raiz. Esses hooks precisam ser portados para o sistema de módulos do Dracut antes da atualização. NVIDIA CUDA e AMD ROCm no repositório oficial Antes, obter CUDA em um sistema Ubuntu significava configurar o repositório externo de pacotes da NVIDIA, gerenciar arquivos de keyring e confiar em uma fonte de terceiros para pacotes que ficam profundamente integrados à pilha de computação da GPU. O Ubuntu 26.04 muda esse cenário: os pacotes CUDA agora fazem parte do repositório oficial do Ubuntu, mantidos e testados pela equipe da Canonical junto com todo o resto da distribuição. O AMD ROCm segue o mesmo caminho. Ambos os kits de ferramentas agora podem ser instalados por meio de comandos padrão apt usando a própria infraestrutura de repositório do Ubuntu. Para engenheiros de ML, cientistas de dados e qualquer pessoa executando cargas de trabalho de computação acelerada por GPU, isso simplifica significativamente a configuração do ambiente — e elimina o atrito de gerenciar versões entre pacotes do sistema e bibliotecas CUDA fornecidas pelo fabricante. O driver proprietário padrão da NVIDIA também foi movido para a série 595.x, e o desempenho do Wayland com hardware NVIDIA melhorou substancialmente como resultado. O apt ganha um sistema de histórico Uma das melhorias mais práticas do dia a dia: o gerenciador de pacotes apt agora registra o histórico de transações e expõe comandos para trabalhar com ele. ```bash # Veja o que uma transação anterior fez sudo apt history-info 0 # Desfaça a instalação mais recente sudo apt history-undo 0 # Refaça algo que foi desfeito sudo apt history-redo 0 # Reverter para um estado anterior sudo apt history-rollback 1 ``` Isso corrige uma lacuna de usabilidade que existe desde os primeiros dias do Ubuntu. Recuperar-se de uma remoção acidental ou descobrir exatamente o que uma sessão de apt upgrade alterou antes exigia analisar manualmente /var/log/dpkg.log. Agora isso é um recurso de primeira classe com comportamento previsível. Ferramentas para desenvolvedores O Ubuntu 26.04 traz um ambiente de compilação e runtime totalmente renovado: OpenJDK 25 (certificado contra o TCK em AMD64, ARM64, S390X e PPC64EL), LLVM 21 como toolchain padrão do LLVM, Rust 1.93.1, Zig 0.15.2 com suporte a riscv64, .NET 10 e glibc 2.43 incorporando adições do ISO C23. Esta é uma atualização significativa para qualquer pessoa que desenvolve em linguagens compiladas — especialmente Rust, em que a versão da toolchain afeta diretamente quais recursos da linguagem estão disponíveis. No lado de bancos de dados, DocumentDB 0.108-0 agora está no repositório do Ubuntu. Ele fornece uma interface de consulta compatível com MongoDB construída sobre PostgreSQL — relevante para equipes que precisam dessa camada de compatibilidade sem considerações de licenciamento comercial. MariaDB 11.8.6 LTS foi atualizado e agora é distribuído com um perfil AppArmor e uma unidade systemd reforçada incorporados ao próprio pacote do Ubuntu. O MySQL 8.4 LTS também está disponível, embora MySQL e MariaDB não possam coexistir no mesmo host sob as restrições atuais de empacotamento. Variantes de pacote x86-64-v3 CPUs modernas para desktop e servidor implementam conjuntos de instruções que não estavam disponíveis quando a base x86-64 foi definida. O Ubuntu 26.04 disponibiliza compilações de pacotes x86-64-v3 como alternativas opcionais — elas são compiladas com uma base mais nova de instruções, que inclui AVX2 e várias outras adições presentes em CPUs Intel da classe Haswell e equivalentes AMD posteriores. Nada muda automaticamente. Usuários com hardware mais antigo continuam recebendo os mesmos pacotes padrão de antes. Quem quiser optar pode instalar as variantes v3 e obter melhorias mensuráveis de throughput em cargas de trabalho intensivas em computação. É uma abordagem limpa: opcional, claramente rotulada e compatível com a pilha padrão. O WSL ganha recursos de gerenciamento empresarial A integração do Windows Subsystem for Linux recebe suporte a cloud-init e Ubuntu Pro for WSL nesta versão. Juntos, esses recursos permitem o gerenciamento em grande escala de implantações WSL por meio da plataforma Landscape da Canonical — organizações podem enviar configurações, impor políticas de conformidade e acompanhar o status de segurança em instâncias WSL da mesma forma que gerenciam servidores Ubuntu sem interface. Para empresas que operam ambientes mistos Windows/Linux, a distância entre a área de trabalho do Windows e a infraestrutura de ferramentas Linux fica consideravelmente menor. ## Ubuntu 24.04 LTS vs 26.04 LTS: lado a lado Se você está executando o 24.04 Noble Numbat em produção, aqui está uma visão estruturada do que muda entre as duas gerações LTS: | Área | Ubuntu 24.04 LTS | Ubuntu 26.04 LTS | | --- | --- | --- | | Versão do kernel | 6.8 | 7.0 | | Ambiente de desktop | GNOME 46 | GNOME 50 | | Servidor gráfico | Wayland padrão, Xorg disponível | Apenas Wayland; XWayland para apps X11 | | Emulador de terminal | GNOME Terminal | Ptyxis (GTK4, renderização por GPU) | | Reprodutor de vídeo padrão | Totem | Showtime | | Monitor do sistema | GNOME System Monitor | Resources | | Editor de imagens | GIMP 2.10 | GIMP 3.2 | | Gerador de initramfs | initramfs-tools | Dracut | | Hierarquia cgroup | v1 + v2 | Exclusivamente v2 | | Criptografia de disco | LUKS com frase de senha no boot | LUKS + opção de keystore apoiado por TPM | | CUDA nos repositórios oficiais | Não | Sim | | Java padrão | OpenJDK 21 | OpenJDK 25 | | Toolchain Rust | 1.75 | 1.93.1 | | Comandos de histórico do apt | Não disponível | history-info, undo, redo, rollback | | Suporte de segurança até | Abril de 2029 | Abril de 2031 (2036 com Ubuntu Pro) | ## O que funciona bem As melhorias de segurança no 26.04 são as mais duradouras. As reescritas em Rust eliminam estruturalmente classes inteiras de vulnerabilidades. O FDE apoiado por TPM remove o atrito operacional de servidores criptografados mas sem supervisão. CUDA no repositório oficial significa que a pilha de software de GPU recebe o mesmo ritmo de patches de segurança da Canonical em vez de depender do cronograma do repositório da NVIDIA. Não são ajustes incrementais de endurecimento — eles alteram as propriedades fundamentais do sistema. Os ganhos de desempenho são reais, mas dependem do hardware. Em CPUs Intel e AMD recentes, as melhorias de armazenamento do kernel 7.0 e as variantes de pacote x86-64-v3 disponíveis produzem diferenças mensuráveis de throughput em cargas de trabalho limitadas por I/O e por computação. Em hardware mais antigo, a experiência é comparável à do 24.04, com uma responsividade de desktop ligeiramente melhor graças à renderização acelerada por GPU no GNOME 50 e no Ptyxis. Para desenvolvimento, a ferramenta atualizada é simplesmente mais prática. Ter Rust 1.93.1, OpenJDK 25, LLVM 21 e .NET 10 disponíveis nos próprios repositórios da distribuição — em vez de exigir PPAs ou instalações manuais — reduz o atrito do fluxo de trabalho padrão de desenvolvimento. Em uma LTS de cinco anos, isso faz diferença desde o primeiro dia. ## Onde estão os riscos A mudança para apenas Wayland é a quebra de compatibilidade mais visível. Aplicativos que interagem com o servidor de exibição X em nível de protocolo — e não apenas usando bibliotecas X11 — podem não funcionar corretamente ou nem funcionar por meio do XWayland. Software de captura de tela, algumas implementações de VNC e RDP e um subconjunto de aplicativos acelerados por GPU com caminhos de renderização específicos do X11 entram nessa categoria. Isso é em grande parte irrelevante para servidores sem interface, mas merece atenção em implantações de desktop e estação de trabalho. O hardware NVIDIA tem um problema documentado de suspensão/retomada em algumas configurações: ao retomar do modo de suspensão sob a sessão Wayland, podem ocorrer corrupção visual ou travamentos. Isso está sendo monitorado e provavelmente será resolvido em uma atualização pontual, mas vale testar seu hardware específico antes de implantar desktops em grande escala. O requisito de cgroup v2 é o risco de migração do lado do servidor. Não é um problema técnico difícil — a transição para v2 vem avançando no ecossistema de contêineres há anos — mas qualquer coisa na sua pilha que tenha sido explicitamente configurada para caminhos v1 vai quebrar, silenciosamente ou com erros, dependendo de como as ferramentas lidam com isso. Um teste em um nó 26.04 antes de consolidar um plano de migração não é opcional. No lado dos bancos de dados: MySQL e MariaDB não podem coexistir. Na prática, essa é uma configuração incomum, mas equipes que executam ambos em uma única máquina de desenvolvimento terão de escolher um ou recorrer a contêineres. ## Casos de uso práticos ### 1. Servidores web e de aplicações em infraestrutura de nuvem O Ubuntu LTS tem sido o sistema operacional dominante para provisionamento de servidores em nuvem há anos, e o 26.04 reforça essa posição. A combinação de um compromisso de segurança de cinco anos, um kernel moderno e pacotes de banco de dados reforçados para produção (MariaDB 11.8.6 com AppArmor, MySQL 8.4) cobre a grande maioria dos casos de uso em hospedagem web, serviços de API e backends de aplicações. Equipes que executam stacks LAMP ou LEMP em um [VPS da Serverspace](https://serverspace.com.br/services/vps-server.md) podem implantar imagens 26.04 e obter uma base bem mantida que se sustenta por anos sem intervenção significativa no sistema operacional. ### 2. Computação em GPU e pipelines de IA/ML A disponibilidade nativa do CUDA é voltada especificamente para esse cenário. Equipes de pesquisa, engenheiros de ML e organizações que executam infraestrutura de inferência não precisam mais gerenciar separadamente a infraestrutura de repositório da NVIDIA. Um único apt install no repositório do Ubuntu instala o CUDA com o mesmo rastreamento de dependências e patches de segurança de qualquer outro pacote do sistema. O AMD ROCm segue o mesmo padrão. O Ubuntu 26.04 LTS é uma base prática para ambientes PyTorch, TensorFlow e JAX que precisam de estabilidade ao longo de vários anos de pesquisa ou produção. ### 3. Estações de trabalho de desenvolvedor e sistemas de build Manter os runtimes de linguagem atualizados é um dos incômodos persistentes de implantações LTS de longa duração. O Ubuntu 26.04 resolve isso no nível do sistema operacional com uma toolchain que reflete o ecossistema de 2026, em vez de exigir contornos. OpenJDK 25, Rust 1.93.1, LLVM 21 e .NET 10 são todos pacotes de primeira classe. Pipelines de CI/CD que usam Ubuntu LTS como base de build se beneficiam de comportamento consistente ao longo de uma janela de cinco anos — menos quebras surpresa causadas por atualizações de PPA ou mudanças de repositórios externos. ### 4. Infraestrutura de contêineres e nós Kubernetes Ubuntu é uma escolha comum para nós de trabalho do Kubernetes, e o 26.04 mantém esse encaixe — depois que a migração para cgroup v2 for confirmada. Uma vez verificada a pilha de contêineres, as melhorias de armazenamento do kernel 7.0 e o boot mais integrado baseado em systemd via Dracut formam um sistema operacional de nó bem integrado. O suporte do Livepatch em servidores Arm64 também o torna mais atraente para infraestrutura de cluster baseada em aarch64. ### 5. Ambientes corporativos compatíveis e preocupados com segurança Criptografia de disco com TPM, utilitários em Rust, perfis AppArmor para serviços de banco de dados, cgroup v2 obrigatório (o que permite melhor isolamento de recursos) e cobertura Ubuntu Pro de dez anos atendem a um conjunto de requisitos que surgem em setores regulados e implantações governamentais. A possibilidade de chegar a um nível básico de endurecimento a partir de uma instalação padrão, em vez de aplicar camadas de configuração pós-instalação, reduz tanto o tempo de configuração quanto o risco de lacunas de configuração. ## Erros que valem evitar durante a migração **Migrar servidores 24.04 em produção antes da primeira atualização pontual.** A Canonical mantém o caminho direto de atualização do 24.04 até o lançamento do Ubuntu 26.04.1, em julho de 2026. Isso é intencional: as primeiras semanas de uma versão LTS são quando os relatórios de bugs dos primeiros usuários aparecem e são tratados. Esperar não custa nada e evita depuração em infraestrutura ativa. **Pular a validação do cgroup v2 antes de atualizar nós.** A falha aqui pode ser contêineres que caem, limites de recursos que não se aplicam ou agentes de monitoramento que perdem visibilidade — potencialmente tudo ao mesmo tempo em um host de produção. Suba um nó de teste 26.04, execute suas cargas de contêiner nele e confirme que tudo se comporta corretamente antes de agendar a migração. **Tratar o XWayland como substituto completo do X11.** Ele cobre os casos comuns. Não cobre tudo. Aplicações que controlam programaticamente o posicionamento de janelas, capturam dados brutos de pixels de outras janelas ou dependem de extensões específicas do X podem falhar ou se comportar de forma inesperada. Se você tem ferramentas especializadas de desktop no ambiente, teste-as em uma instância 26.04 antes da implantação. **Ativar FDE apoiado por TPM sem verificar a compatibilidade do hardware.** Ligar a criptografia total de disco com keystore TPM em uma máquina com firmware Absolute ativo, ou em uma configuração de RAID NVMe que não tenha sido validada, pode impedir completamente a inicialização do sistema. Sempre teste isso em hardware não produtivo com um plano de recuperação em vigor. **Ignorar hooks personalizados do initramfs.** Se a sua implantação usa scripts executados durante a fase do initramfs — para desbloqueio de volumes via rede, inicialização especial de armazenamento ou configuração de hardware — esses scripts foram escritos para o initramfs-tools. O Dracut usa uma estrutura de módulos diferente. Eles não funcionarão automaticamente após uma atualização; precisam ser revisados e portados. **Assumir que a atualização do MariaDB é automática.** A mudança para a versão 11.8.6 LTS envolve uma alteração de formato de dados. Executar a atualização do pacote sem realizar a etapa recomendada de migração de esquema pode deixar o banco de dados em um estado inconsistente. Siga a documentação de atualização do MariaDB antes de mexer nos pacotes em um host de banco de dados de produção. ## Quando atualizar Se você está configurando algo novo — um VPS novo, uma nova máquina de desenvolvimento, um runner de CI limpo — instale o Ubuntu 26.04 LTS agora. Não há motivo para começar no 24.04 quando a LTS mais nova já está disponível e devidamente lançada. Se você está executando o Ubuntu 25.10, o caminho de atualização é simples. Você já está em Wayland-only e Ptyxis. A diferença entre 25.10 e 26.04 é administrável, e o aviso de atualização pelo sistema padrão aparecerá nas próximas semanas. Se você está no Ubuntu 24.04 LTS com cargas de produção, aguarde até julho de 2026. A versão 26.04.1 é quando a Canonical habilita o caminho de atualização direta — e quando os problemas iniciais do lançamento têm mais chance de ter sido resolvidos. Não há urgência de segurança em migrar cedo; o 24.04 recebe correções até abril de 2029. Planeje a migração, teste em staging e atualize quando o risco estiver reduzido. ## Conclusão O Ubuntu 26.04 LTS faz algumas escolhas realmente decisivas. O Xorg saiu. O cgroup v1 saiu. O Rust substitui o C na camada de utilitários do sistema. CUDA entra no repositório oficial. Não são direções experimentais — são compromissos com para onde a infraestrutura Linux realmente está indo. A versão é mais segura, mais capaz para cargas de GPU e mais consistente em suas suposições do que a geração LTS anterior. As ressalvas de migração são reais, mas limitadas. Conheça sua configuração de cgroup. Audite suas ferramentas dependentes de X11. Verifique seus scripts initramfs. Teste antes de mover a produção. Com esses passos concluídos, o Ubuntu 26.04 LTS — seja em uma máquina física, uma estação de trabalho ou um [cloud VPS](https://serverspace.com.br/services/vps-server.md) — oferece a você uma sólida pista de cinco anos em uma plataforma que já fez o trabalho arquitetural difícil. ### Quando posso atualizar do Ubuntu 24.04 LTS para o 26.04? O caminho de atualização é oficialmente aberto em julho de 2026, quando o Ubuntu 26.04.1 LTS é lançado. Antes dessa data, fazer a atualização manualmente é tecnicamente possível, mas traz risco adicional. Para sistemas de produção, aguarde a versão pontual. ### Estou no Ubuntu 22.04. Posso ir direto para o 26.04? Não. Usuários do Ubuntu 22.04 precisam primeiro migrar para o 24.04 LTS ou 25.10 e depois atualizar para o 26.04. Pular diretamente entre duas gerações LTS não é um caminho suportado. ### Meu software foi escrito para X11. Ele ainda roda? Na maioria dos casos, sim. O XWayland cuida da camada de compatibilidade para aplicativos X11, e a maioria dos programas que usam bibliotecas X11 funcionará sem alterações. Os aplicativos que podem ter problemas são aqueles que falam com o servidor X em nível de protocolo — ferramentas específicas de captura de tela, algumas implementações de desktop remoto e programas com otimizações de renderização específicas do X11. ### A mudança para cgroup v2 quebra o Docker? Configurações padrão do Docker funcionam bem — o engine suporta cgroup v2 desde a versão 20.10. A área problemática são configurações que referenciam explicitamente caminhos de controladores v1 em limites de recursos, definições de memória ou regras de cpuset. Revise seus arquivos Compose e quaisquer restrições de recursos personalizadas antes de atualizar os hosts de contêiner. ### Por quanto tempo o Ubuntu 26.04 LTS é realmente mantido? A manutenção padrão cobre cinco anos — atualizações de segurança até abril de 2031. O Ubuntu Pro estende isso com Expanded Security Maintenance por mais cinco anos, chegando a 2036. Um complemento separado Legacy pode ampliar a cobertura para até quinze anos no total para organizações que precisem disso. ### O CUDA é instalado automaticamente, ou preciso adicioná-lo? Ele precisa ser instalado deliberadamente — nada acontece automaticamente. A diferença em relação às versões anteriores é de onde vêm os pacotes: em vez de configurar o repositório externo da NVIDIA, você obtém CUDA por meio do próprio repositório do Ubuntu com um comando padrão apt install. A mesma toolchain, uma cadeia de suprimentos diferente e mais simples. https://serverspace.com.br/about/blog/o-que-e-um-forex-vps-guia-pratico-para-traders-que-rodam-eas-em-2026.md Um forex VPS hospeda MetaTrader e Expert Advisors perto dos servidores do broker, entregando latência abaixo de 5 ms e execução 24/5 sem interrupções. Um trader de forex com uma estratégia funcional ainda pode perder dinheiro por motivos que nada têm a ver com sinais. Execuções perdidas durante notícias voláteis, slippage em entradas que pareciam limpas no gráfico, um ping de 150 milissegundos vindo de um provedor residencial, uma atualização do Windows que reinicia a máquina às 3 da manhã durante a sessão de Tóquio. Essas falhas se concentram em um ponto: a infraestrutura que roda a plataforma de trading. Um forex VPS resolve tudo isso na raiz. Em uma frase, o que é um forex VPS: um servidor virtual privado hospedado em um data center profissional próximo à infraestrutura dos brokers, projetado para rodar plataformas como MetaTrader 4, MetaTrader 5 e cTrader continuamente com latência em nível de milissegundos. Este guia cobre o que um forex VPS realmente faz, quem genuinamente precisa de um, quais especificações de hardware fazem sentido para diferentes cargas de trabalho, quais erros destroem o desempenho e como proteger o setup contra quedas. ## Um Forex VPS em Linguagem Simples Antes de entrar em detalhes, o que é um forex VPS no nível básico: uma máquina virtual rodando em um servidor físico dentro de um data center, com núcleos de CPU, RAM e armazenamento SSD garantidos que nenhum outro inquilino pode reivindicar. O trader se conecta a ela através do protocolo Remote Desktop a partir de qualquer dispositivo e a usa como um computador Windows comum. O sistema operacional é quase sempre Windows Server 2019 ou 2022, porque o MetaTrader foi projetado para Windows e a emulação via Wine no Linux introduz problemas de estabilidade que aparecem nos piores momentos possíveis. O Que Diferencia um VPS Voltado para Forex de uma Hospedagem Genérica Um VPS de nuvem genérico oferece uptime e recursos dedicados. Um forex VPS adiciona duas qualidades específicas. Primeiro, posicionamento geográfico: o data center fica dentro ou ao lado dos hubs financeiros onde os brokers de forex rodam seus motores de matching. Os hubs principais são LD4 e LD5 em Slough perto de Londres, NY4 e NY5 Equinix em Secaucus perto de Nova York, FR2 em Frankfurt, AM2 em Amsterdã e TY3 em Tóquio. Segundo, otimização de rede: as rotas são ajustadas para baixa latência até os IPs dos brokers, com acordos de peering que ignoram a internet pública sempre que possível. O efeito prático é a diferença entre um ping de 1 a 5 milissegundos a um broker de Londres a partir de um VPS em Amsterdã, comparado a 80 a 150 milissegundos vindos de uma conexão doméstica em São Paulo ou Sydney. Essa diferença aparece diretamente na qualidade do preenchimento, especialmente durante notícias quando o spread se alarga e cada milissegundo de roteamento se traduz em pips de slippage. ## Como um Forex VPS Funciona por Trás dos Bastidores Aqui está o caminho de uma única ordem de trade. O Expert Advisor rodando no VPS lê dados de tick recebidos do broker, avalia a lógica da estratégia e envia uma ordem de compra ou venda de volta ao motor de matching do broker. O broker confirma o preenchimento, o EA atualiza seu estado interno e o ciclo se repete. Nada disso requer que o computador doméstico do trader esteja online. Esse é o insight central por trás do funcionamento de um VPS em forex trading: os dispositivos do trader são apenas controles remotos, enquanto a execução real acontece de forma autônoma entre o VPS e o broker. A razão pela qual a latência importa se reduz à física. O cabo de fibra óptica transmite sinal a aproximadamente dois terços da velocidade da luz, o que adiciona cerca de 0,5 milissegundo a cada 100 quilômetros de distância em uma direção. Um trader em Buenos Aires conectando-se a um broker de Londres consome um piso de 70 milissegundos de ida e volta antes de considerar saltos de roteador, roteamento de provedor ou congestionamento de rede. Coloque o VPS dentro do mesmo data center que o broker através de uma conexão direta de fibra cross-connect e esse piso cai abaixo de 1 milissegundo. O panorama de latência nos setups comuns é o seguinte: | Setup | Latência típica até o broker | Faz sentido para | | --- | --- | --- | | Internet doméstica, provedor residencial | 50 a 200 ms | Apenas swing trading manual | | VPS de nuvem genérico, região incompatível | 30 a 80 ms | Trading casual, limitado para scalping | | Forex VPS no hub financeiro correto | 1 a 5 ms | EAs, scalping, copy trading | | Cross-connect na mesma instalação Equinix | Abaixo de 1 ms | HFT, trading algorítmico profissional | É exatamente assim que um forex VPS opera na prática, de ponta a ponta. O laptop ou celular do trader é apenas um controle remoto. A execução real acontece entre o VPS e o broker, 24 horas por dia, mesmo enquanto o trader dorme. ## Por Que Traders Usam um Forex VPS: Cinco Motivos Concretos **Execução ininterrupta de EAs 24/5. **O mercado de forex abre na noite de domingo e segue até o fechamento de sexta-feira. Uma estratégia automatizada precisa estar online a cada minuto dessa janela, incluindo sessões noturnas e aberturas de gap nos finais de semana. Um setup doméstico enfrenta quedas de energia, manutenção de provedor, varreduras de antivírus e reinicializações do sistema operacional. Um VPS em um data center Tier III com energia redundante N+1 e múltiplos uplinks trata esses eventos como ruído de fundo. **Latência menor significa menos slippage. **Um scalper mirando 3 pips em EUR/USD vê uma curva de P&L diferente com execução de 5 milissegundos versus 80 milissegundos. O mercado se move durante essa janela de atraso. Estratégias que rentabilizaram em backtest com dados de tick frequentemente falham no trading ao vivo justamente porque a latência de uso doméstico nunca foi modelada. Reduzir a viagem de ida e volta de 100 ms para menos de 5 ms pode inverter o sinal em sistemas de scalping apertados. **Isolamento dos riscos locais. **Quedas de internet, falhas de hardware, familiares reiniciando o roteador de casa, um gato mastigando um cabo de força. Nada disso alcança um VPS. Data centers profissionais operam com geradores diesel de backup, refrigeração redundante e monitoramento 24/7. A diferença de confiabilidade comparada a um PC doméstico é aproximadamente o salto entre um gerador de quintal e a rede elétrica regional. **Acesso remoto de qualquer lugar. **Um trader pode se conectar via Remote Desktop a partir de um celular num aeroporto, um tablet numa cafeteria ou um laptop num hotel. O VPS mantém a plataforma online e o trader mantém controle total das posições mesmo viajando. **Setups multi-conta e multi-broker em uma única máquina. **Copy traders gerenciando 5 contas de clientes, prop traders perseguindo desafios de FTMO e MyForexFunds em paralelo, provedores de sinais atendendo assinantes, gestores de conta administrando alocações PAMM: todos esses cenários se beneficiam de rodar de 3 a 10 instâncias de MetaTrader em um VPS bem dimensionado, com monitoramento compartilhado e configuração unificada. ## Requisitos de Hardware e Sistema Operacional: O Que Você Realmente Precisa Aqui é onde a maioria dos guias para iniciantes fica vaga e a maioria dos pitches de upsell se perde. A resposta honesta depende da carga exata de trabalho do trader, e há uma faixa ampla de configurações válidas. A pergunta sobre quanta RAM e CPU são necessários para um forex VPS aparece o tempo todo, então o detalhamento abaixo cobre o piso prático e o teto para cada cenário comum. **Sistema operacional. **Windows Server 2019 ou 2022 é o padrão. A partir do build 3930 em setembro de 2023, o MetaTrader 5 abandonou totalmente o suporte a 32 bits. Desde janeiro de 2024, somente Windows 64 bits funciona com versões atuais do MT5. O próprio sistema operacional consome de 800 MB a 1,2 GB de RAM antes que qualquer software de trading seja iniciado, o que define o piso para o dimensionamento. **Footprint do MetaTrader 4 versus MetaTrader 5. **O MT4 é significativamente mais leve. Um único terminal MT4 com 2 a 4 gráficos e um EA tipicamente usa de 256 a 512 MB de RAM e CPU mínima. A mesma configuração no MT5 consome de 600 MB a 1 GB. O MT5 armazena dados reais de tick, roda uma arquitetura multi-threaded e lida com dados de mercado mais ricos, e tudo isso custa memória. Traders que rodavam 3 terminais MT4 confortavelmente em 2 GB às vezes pedem o mesmo plano para MT5 e se perguntam por que a plataforma trava na abertura de Londres. **Desempenho single-thread acima da contagem de núcleos. **O modelo de threading do MetaTrader atribui uma thread por EA e uma thread por símbolo negociado. Um EA multi-currency varrendo 28 pares ainda roda em uma única thread. Isso significa que uma CPU com clock single-core de 2,5 a 3,5 GHz supera uma CPU com mais núcleos a 2,0 GHz para cargas típicas do varejo. Processadores modernos Intel Xeon Gold com base de 3,1 GHz e Hyper-Threading se encaixam bem nesse perfil. **Tipo de armazenamento. **SSD NVMe é a base prática. Plataformas de trading escrevem constantemente em journals, arquivos de log, histórico de tick e arquivos de recuperação de crash. Discos giratórios deixam toda a plataforma lenta, e os SSDs SATA ficam atrás dos NVMe por uma margem perceptível durante operação multi-terminal. Armazenamento NVMe com replicação tripla adiciona uma camada de proteção contra corrupção em nível de hardware. **Dimensionamento por carga de trabalho. **O mapeamento abaixo serve como referência inicial: | Perfil de trader | vCPU | RAM | Storage | Observações | | --- | --- | --- | --- | --- | | 1 terminal, 1-2 EAs, varejo iniciante | 1 | 2 GB | NVMe 30 GB | Mínimo para MT4, no limite para MT5 | | 3-5 terminais, trader de portfólio | 2 | 4 GB | NVMe 50 GB | Confortável para a maioria dos ativos | | 6-10 terminais, prop trader | 4 | 8 GB | NVMe 80 GB | FTMO mais diversificação de brokers | | 10+ terminais, provedor de sinais | 8+ | 16 GB+ | NVMe 100 GB+ | CPU dedicada obrigatória | Para configurações como as acima, um VPS Windows Server em Amsterdã (perto dos brokers do LD4) ou em Nova Jersey (adjacente ao NY4 e NY5 Equinix) oferece a combinação certa de clock single-core, recursos dedicados e proximidade ao hub de brokers. A [Serverspace](https://serverspace.com.br/services/vps-server.md) oferece planos VPS Windows em ambas as localizações com cobrança pay-as-you-go, escalando a partir de 1 vCPU para cima sem downtime. ## Quando Você Realmente Não Precisa de um Forex VPS A maioria dos pitches de marketing de VPS apresenta todos como candidatos. Esse retrato é incompleto. Vários tipos de traders genuinamente dispensam essa infraestrutura: - Swing traders mantendo posições por dias ou semanas com execução manual. Os poucos segundos de latência na entrada e saída não afetam o P&L de forma significativa quando alvos e stops são de mais de 100 pips. - Day traders que ficam na mesa durante a janela da sessão e executam manualmente. Se você já está no computador quando os trades acontecem, um setup doméstico é suficiente. - Testes em conta demo sem capital real. Não há motivo para pagar por hospedar uma estratégia que não está arriscando dinheiro de verdade. - Estratégias de frequência muito baixa com um ou dois trades por semana em figuras importantes. O critério decisivo é simples. Se uma estratégia depende de uptime contínuo do software ou execução em nível de microssegundos, um VPS é obrigatório. Se ela depende de julgamento discricionário com alvos largos, um VPS se torna uma despesa mensal desnecessária. ## Erros Comuns Que Matam o Desempenho do Forex VPS - **Escolher a localização do VPS apenas pela localização do trader. **Um VPS em Singapura conectando-se a um broker de Londres adiciona de 150 a 200 ms de latência one-way antes de considerar qualquer outra coisa. Sempre confirme onde o motor de matching do broker fica antes de selecionar uma região. A maioria dos brokers publica essa informação; quando não publicam, o suporte informará. - **Comprar planos VPS compartilhados oversold de provedores baratos. **Provedores baratos comumente fazem oversell de CPU em proporções de 3:1 a 8:1, ou seja, um plano de "2 vCPU" é uma fatia fracionada de núcleos físicos compartilhada com outros inquilinos. O desempenho fica ok em dias tranquilos. Aí o NFP chega, todo EA no host node sobe simultaneamente, o hipervisor restringe cada VPS à sua alocação real, e a latência de execução salta de 5 ms para 300+ ms exatamente quando custa mais caro. Provedores que alocam núcleos de CPU dedicados por VPS, como a [Serverspace](https://serverspace.com.br/services/vps-server.md) na sua plataforma vStack, evitam essa contenção por design. - **Rodar software desnecessário no VPS. **Um forex VPS deve rodar a plataforma de trading e quase nada além disso. Sem navegadores para passeios casuais, sem clientes de torrent, sem suítes de antivírus agressivas que escaneiam diretórios do terminal a cada 30 minutos, sem aplicativos de mensagens. Cada processo adicional compete por CPU e RAM que deveriam servir a execução de ordens. - **Segurança fraca de RDP. **Porta padrão 3389, senha de 6 caracteres, sem whitelist de IP, sem autenticação de dois fatores. Essa combinação é ativamente escaneada por botnets a cada hora de cada dia. Uma sessão RDP comprometida significa que alguém tem acesso a terminais de broker já logados. - **Subdimensionar no primeiro dia. **Escolher o plano mais barato de 1 GB de RAM "para ver se funciona" leva a travamentos do MT5 durante sessões voláteis e upgrades forçados na primeira semana. Se a carga envolve MT5 ou múltiplos terminais, comece com 4 GB no mínimo. - **Não medir o ping real depois do setup. **O marketing do provedor diz "1 ms até o broker" e as medições reais frequentemente diferem. Rode uma checagem de ping do VPS até o servidor do broker e leia o journal do MetaTrader para tempos reais de ida e volta. Se os números não baterem com o esperado, a escolha de localização foi errada ou o broker usa um IP diferente do assumido. - **Sem backup das configurações de EA, templates ou indicadores. **Um mês de parâmetros cuidadosamente ajustados desaparece no dia em que uma migração de VPS acontece ou uma reinstalação do Windows é necessária. Arquivos ZIP regulares das pastas MQL4/MQL5, profiles e templates, idealmente sincronizados com armazenamento em nuvem, levam 15 minutos para configurar e poupam semanas de trabalho de recuperação depois. ## VPS Gratuito de Brokers vs VPS Independente Muitos brokers oferecem serviços de "VPS gratuito" condicionados a depósitos mínimos (frequentemente $5,000) ou limites de volume mensal de trading. O pitch é atraente: sem mensalidade extra, o broker cuida do setup. Os trade-offs nem sempre são óbvios: - **Localização travada. **A maioria dos serviços de VPS de brokers roda em um ou dois data centers escolhidos pelo broker, independentemente de qual servidor de broker você esteja usando. - **Recursos compartilhados. **Tiers gratuitos comumente alocam de 256 a 512 MB de RAM e uma fatia fracionada de CPU, o que fica abaixo do piso prático para MT5. - **Acesso administrativo limitado. **Alguns brokers restringem a instalação de software adicional ou modificações nas configurações do sistema. - **Lock-in com o broker. **Trocar de broker significa perder o VPS instantaneamente. Todas as configurações de EAs precisam migrar. - **Visibilidade de tráfego. **O broker controla a infraestrutura e pode ver toda atividade na máquina. Um VPS independente dá ao trader escolha de localização, recursos dedicados garantidos, acesso administrativo total, portabilidade entre brokers e independência operacional. Para traders rodando EAs testados com capital real, o custo mensal (tipicamente $10 a $30) é pequeno comparado ao ganho em flexibilidade. VPS gratuito de broker faz sentido para traders casuais que já atendem aos requisitos de volume e dispensam setups avançados. ## Como Proteger Seu Forex VPS Contra Quedas Saber como proteger um forex VPS contra quedas faz parte do playbook padrão de qualquer operação séria de trading. Várias camadas trabalham juntas: **Redundância no nível do provedor. **Verifique se o data center possui certificação Tier III, opera com energia N+1 com backup a diesel e tem múltiplos uplinks de provedores. O SLA deve garantir 99,9% de uptime no mínimo, com penalidades financeiras do lado do provedor caso seja descumprido. Qualquer coisa abaixo de 99,9% permite quase 9 horas de downtime anual legítimo, o que é inaceitável para trading ativo. **Plano de backup no nível da conta. **Instale o aplicativo móvel do broker num celular, faça login e verifique se ele funciona antes que uma queda real aconteça. Pratique fechar todas as posições abertas manualmente. O objetivo: se o VPS ficar inacessível, todas as posições podem ser fechadas pelo celular em 60 segundos. **Backups de configuração. **Programe arquivos ZIP semanais das pastas MQL4 e MQL5, incluindo os subdiretórios Experts, Indicators, Profiles e Templates. Use o Agendador de Tarefas do Windows para automatizar isso. Sincronize a pasta de arquivos com OneDrive ou Google Drive para redundância offsite. Se o VPS for perdido ou corrompido, toda a configuração se restaura em menos de uma hora numa máquina nova. **Hardening de RDP. **Mude a porta padrão de RDP de 3389 para uma porta alta aleatória. Use uma conta de administrador dedicada com senha longa (16+ caracteres). Habilite Network Level Authentication. Restrinja conexões de entrada de RDP por IP através do firewall do Windows, permitindo apenas as faixas de IP de casa e do celular do trader. Adicione uma camada de 2FA de terceiros como Duo ou RDP Defender. **Monitoramento e alertas. **Configure uma checagem básica que pinga o VPS a cada 5 minutos. Se o ping falhar, dispare uma notificação via bot de Telegram ou e-mail. Saber que o VPS caiu há 2 minutos é dramaticamente melhor do que descobrir 6 horas depois ao verificar a plataforma manualmente. ## Conclusão Um forex VPS é um upgrade de infraestrutura para traders cujas estratégias dependem de uptime contínuo da plataforma, execução de baixa latência previsível, ou ambos. Os fatores de decisão se resumem a quatro pontos: localização correspondente ao motor de matching do broker, hardware dimensionado para a carga real de MT4 ou MT5, acesso RDP endurecido e um plano de fallback testado para quedas. Comece perguntando ao broker onde fica o servidor dele. Escolha uma região de VPS dentro do mesmo hub financeiro. Selecione uma configuração que combine com o número de terminais e EAs da estratégia. Para traders que querem começar com um VPS Windows Server em Amsterdã, Nova Jersey, Dubai ou São Paulo, a [Serverspace](https://serverspace.com.br/services/vps-server.md) oferece planos pay-as-you-go em data centers Tier III com núcleos de CPU dedicados e armazenamento NVMe, prontos em menos de 40 segundos. ### Quanta RAM e CPU eu preciso para um forex VPS? A configuração mínima sensata é 1 vCPU e 2 GB de RAM para um único terminal MT4 com um ou dois EAs. Para MT5 ou vários terminais MT4, planeje 2 vCPU e 4 GB de RAM. Prop traders rodando 6 ou mais terminais em múltiplos brokers tipicamente precisam de 4 vCPU e 8 GB. Gestores de múltiplas contas e provedores de sinais com 10 ou mais terminais devem dimensionar para 8 vCPU e 16 GB no mínimo, com núcleos dedicados sem overselling. ### Como configurar um VPS para forex trading? A configuração completa leva cerca de 30 minutos. Escolha um provedor de VPS com localizações próximas ao seu broker, peça um plano Windows Server com RAM adequada, receba as credenciais de RDP, conecte-se via Remote Desktop, instale o MT4 ou MT5 a partir do link oficial do seu broker, faça login na sua conta, anexe os EAs aos gráficos apropriados e ative o Auto-Trading. O mesmo fluxo se aplica seja para alguém configurando um forex VPS pela primeira vez ou migrando de outro provedor. ### Como escolher um VPS confiável para rodar robôs de Forex? Aplique este checklist: núcleos de CPU dedicados sem overselling, data center dentro de 10 ms de ping até o motor de matching do seu broker, armazenamento SSD NVMe com replicação tripla, SLA de 99,9% com garantias financeiras, preços transparentes de pay-as-you-go, licenciamento Windows Server incluído e suporte técnico 24/7. Se algum desses pontos estiver faltando ou escondido por trás de marketing vago, continue procurando. ### Um forex VPS pode rodar em Linux no lugar de Windows? Tecnicamente sim, através de Wine ou camadas de compatibilidade, embora a abordagem seja arriscada para capital real. O MetaTrader foi construído para Windows, e a emulação introduz uma taxa significativamente mais alta de travamentos de EAs, falhas de indicadores e quedas inesperadas da plataforma. O padrão da indústria é Windows Server, e qualquer provedor de forex VPS reputável inclui a licença do Windows Server no plano. https://serverspace.com.br/about/blog/top-open-source-ai-agents-for-whatsapp-telegram-and-slack.md Guia prático de agentes de IA para WhatsApp, Telegram e Slack: n8n, Manus, Openclaw, Seismic, Loopio, Notion e outras opções. Os aplicativos de mensagens cruzaram silenciosamente um limiar. WhatsApp, Telegram e Slack já não são apenas ferramentas de comunicação — são superfícies operacionais onde o trabalho real acontece. Suporte ao cliente, qualificação de leads, enablement de vendas, inteligência de negócios, acompanhamento de projetos: cada vez mais disso está acontecendo por meio dessas plataformas a cada trimestre. E, onde a carga de trabalho se concentra, a automação vem junto. O mercado de agentes de IA construídos sobre APIs de mensagens cresceu rápido o suficiente para que escolher entre as opções seja genuinamente difícil. Este guia mapeia as ferramentas mais capazes para cada plataforma — open-source e comerciais — explica como elas funcionam e cobre as decisões práticas que importam quando você realmente está configurando uma. Não é necessário ter conhecimento técnico profundo. ## O que Torna um Agente de IA Diferente de um Bot O termo é usado de forma ampla, então vale ser preciso. Um chatbot segue um roteiro: se o usuário digita "/help", mostra um menu. Um agente de IA interpreta o significado, se adapta ao contexto e pode encadear várias ações antes de responder. Essa diferença tem consequências reais para o que você pode automatizar. Quando um **agente de IA para WhatsApp** recebe uma mensagem dizendo "nunca recebi minha entrega", ele não procura a palavra "entrega" numa lista de palavras-chave. Ele interpreta a intenção, consulta o sistema de gestão de pedidos, verifica a API da transportadora e compõe uma resposta com as informações de rastreamento relevantes — tudo sem intervenção humana. A mesma lógica subjacente funciona no Telegram e no Slack, adaptada à API e ao modelo de permissões de cada plataforma. Todo agente de IA para mensagens, independentemente da plataforma, tem a mesma arquitetura em três camadas: - **Camada de disparo** — uma mensagem recebida, um evento agendado ou um webhook externo aciona o agente - **Camada de processamento** — um modelo de linguagem combinado com lógica de negócios lida com reconhecimento de intenção, consultas de dados e tomada de decisão - **Camada de ação** — o agente envia respostas, atualiza registros, faz escalonamento para humanos ou chama APIs externas A plataforma muda a superfície da API. A arquitetura permanece a mesma. ## Agentes de IA para WhatsApp: Especificidades da Plataforma e Principais Opções O WhatsApp é o aplicativo de mensagens mais usado no mundo, o que torna a **automação com agentes de IA** um dos investimentos de automação de maior prioridade em comunicação com clientes neste momento. O caminho de acesso passa pela WhatsApp Business Platform API — você precisa de uma conta empresarial verificada e de uma conexão direta com a API ou de um Business Solution Provider de terceiros. É mais estruturado do que a API aberta do Telegram, mas o alcance compensa a configuração. ### n8n: A Base Open-Source de Automação Para equipes que querem controle total e querem evitar preços SaaS por mensagem, o n8n é a opção open-source mais flexível disponível. O caminho do **agente de IA n8n** é bem documentado: conecte o n8n à WhatsApp Cloud API via webhook, roteie as mensagens recebidas por um nó de IA (OpenAI, Anthropic ou um modelo hospedado localmente), aplique sua lógica de negócios e envie a resposta de volta pela API. O editor visual de fluxos torna esses processos legíveis e ajustáveis sem grande experiência de desenvolvimento. A história das **integrações de agentes de IA com ferramentas de CRM** é onde o n8n realmente se destaca. Conectores nativos cobrem HubSpot, Salesforce, Pipedrive, Zoho e a maioria dos outros CRMs importantes. Um fluxo prático: uma mensagem recebida no WhatsApp cria um contato, registra a conversa, qualifica o lead conforme seus critérios e atribui uma etapa no pipeline — sem código personalizado. Para equipes avaliando as **melhores plataformas de agentes de IA para automação no WhatsApp**, essa combinação de flexibilidade e cobertura de conectores é difícil de superar. Montar uma implementação de **resposta automática no WhatsApp com agente de IA e configuração gratuita **com n8n se resume a três linhas de custo: WhatsApp Cloud API (gratuita até 1.000 conversas de serviço por mês na precificação atual), n8n Community Edition (gratuita para self-hosting) e uma VPS para executar a pilha. O custo mensal total para uma implantação pequena ou média normalmente fica abaixo de US$ 30 até que o volume de conversas cresça significativamente. ### Openclaw: Operações de Cliente Prontas para Produção A Openclaw aborda o problema do ponto de vista de operações de clientes, e não de automação de fluxos. A **integração do Openclaw com o WhatsApp** lida com qualificação automatizada de leads, roteamento multicanal e sincronização com CRM com menos configuração do que uma implementação n8n personalizada. A plataforma é parcialmente open-source — o runtime do agente e a camada de integração estão disponíveis no GitHub, enquanto o painel de gestão é proprietário. Para equipes que precisam implantar produção mais rápido do que uma construção personalizada permite, ela fica perto do topo da lista de **melhores agentes de IA para WhatsApp**, ao lado do n8n. ### Integração de Voz e IVR Um padrão pouco explorado, mas em crescimento: conectar WhatsApp com sistemas IVR. O caso de uso **agente de IA para WhatsApp e IVR** normalmente funciona assim — um cliente navega por parte de um IVR telefônico e depois recebe um acompanhamento no WhatsApp com um resumo e a opção de continuar por texto. Twilio e Vonage oferecem suporte a handoffs entre canais desse tipo, e o n8n pode orquestrar as transições entre eles. É particularmente valioso em telecom, bancos e logística, onde os clientes alternam entre telefone e mensagens conforme a urgência. ### Construindo do Zero Algumas equipes preferem controle total sobre cada componente. Construir um agente de IA para WhatsApp do zero — o que desenvolvedores de língua alemã procuram como _whatsapp ai agent erstellen_ — significa trabalhar diretamente com a WhatsApp Cloud API, um backend em Python ou Node.js e uma API de modelo de linguagem. Registre um número de telefone na plataforma de desenvolvedores da Meta, configure um webhook, integre seu LLM, adicione a lógica da aplicação. Dá mais trabalho no início do que o n8n, mas oferece controle completo sobre tratamento de dados e comportamento — útil quando os requisitos de conformidade são rígidos ou o fluxo é altamente personalizado. ## Agentes de IA para Telegram: Menos Barreiras, Mais Flexibilidade A Bot API do Telegram é significativamente mais permissiva do que a do WhatsApp. Sem processo de aprovação, sem limites de conversa, gratuita para usar em qualquer escala. Isso faz com que implantar um **agente de IA para Telegram** seja muito mais rápido — um bot funcional em uma tarde é realista. O trade-off é o alcance: o WhatsApp domina os mercados B2C na maior parte do mundo, enquanto o Telegram é mais forte em comunidades de desenvolvedores, fintech, ecossistemas cripto e partes da Europa Oriental e do Oriente Médio. Na prática, muitas equipes executam agentes nas duas plataformas ao mesmo tempo — WhatsApp para comunicação voltada ao cliente, Telegram para notificações internas ou gestão de comunidades. ### Manus AI: Execução Autônoma de Tarefas Manus é uma das entradas mais diferentes no espaço de agentes. A **integração do agente Manus AI com Telegram** aparece com frequência porque o Manus opera de forma diferente da maioria das ferramentas — ele não é um agente de resposta, é um agente de conclusão de tarefas. Você descreve um objetivo no chat ("pesquise estes três concorrentes e resuma suas páginas de preços"), e o Manus executa autonomamente: navega, sintetiza e entrega a saída estruturada quando termina. A interface do Telegram é apenas a superfície de entrada. O trabalho real roda no runtime de agentes do Manus, que pode operar por minutos ou horas em tarefas complexas. Partes do framework são open-source, tornando possível auditar e modificar o comportamento do agente — importante para fluxos que envolvem informações sensíveis. Isso posiciona o Manus menos como uma ferramenta de suporte ao cliente e mais como um assistente autônomo para trabalho intelectual e tarefas intensivas em pesquisa. ### Openclaw: Automação de Comunidade e Suporte A **integração do agente de IA Openclaw com Telegram** foi construída para equipes que gerenciam grandes grupos e canais no Telegram. Comunidades de ferramentas para desenvolvedores, suporte de projetos cripto, grupos de usuários de SaaS — ambientes em que centenas de mensagens por dia seguem padrões previsíveis. O agente trata perguntas rotineiras sobre documentação, preços e configuração, e encaminha questões complexas para moderadores humanos com contexto estruturado anexado. O escalonamento baseado em confiança significa que o agente só responde quando a certeza é alta o suficiente; todo o resto é sinalizado em vez de ser chutado. Para comunidades que, de outra forma, precisariam de moderadores dedicados, esse tipo de triagem muda a economia. ### Construções Personalizadas com python-telegram-bot A biblioteca python-telegram-bot lida com a camada de API de forma limpa e tem documentação completa. Combinada com LangChain ou LlamaIndex para recursos de LLM e uma instância Redis ou PostgreSQL para estado de conversa, forma uma pilha capaz de produção com uma comunidade grande e ativa por trás. Conversas de múltiplas etapas, teclados inline, tratamento de arquivos, webhook versus polling — a maioria dos padrões já está coberta em exemplos existentes. Para desenvolvedores Python, essa continua sendo a rota mais rápida do zero até um agente Telegram self-hosted funcionando. ## Agentes de IA para Slack: Vendas, GTM e Inteligência de Equipe O Slack ocupa uma posição diferente. Ele é principalmente interno, o que significa que a **integração de agentes de IA no Slack** está mais voltada a tornar as equipes mais eficientes — não a lidar com conversas com clientes. A demanda se concentra em funções voltadas para receita: vendas, sucesso do cliente, operações de GTM. O raciocínio é simples: a velocidade da informação nessas equipes afeta diretamente a receita, e qualquer coisa que traga o contexto certo mais rapidamente tem impacto mensurável. Seismic: Conteúdo de Vendas no Fluxo de Trabalho O **agente de IA da Seismic no Slack** aborda um problema específico e caro: representantes de vendas gastando tempo procurando o conteúdo certo em vez de usá-lo. A integração traz a biblioteca de conteúdo da Seismic diretamente para o Slack. Peça um estudo de caso relevante para um setor específico, solicite um battle card competitivo, puxe uma apresentação adaptada a uma etapa do negócio — o agente recupera material com base na compreensão semântica da solicitação, não em correspondência de palavras-chave. Entre os **recursos do agente de IA da Seismic no Slack** mais importantes na prática: busca semântica na biblioteca de conteúdo, sugestões conectadas ao CRM com base no contexto ativo do negócio e análises de uso mostrando qual conteúdo se correlaciona com negócios fechados. Para grandes organizações de vendas que gerenciam centenas de ativos de conteúdo, esse tipo de recuperação contextual reduz o tempo entre "preciso de algo para este prospect" e realmente ter isso em mãos. Tribble: Inteligência de Negócios Sem Troca de Abas O **agente de IA Tribble no Slack** foi construído para movimentos de GTM baseados em contas, em que os representantes gerenciam vários prospects ao mesmo tempo e precisam de contexto rápido antes de cada interação. Pergunte "o que sabemos sobre a Acme Corp?" e receba um briefing sintetizado com notas do CRM, transcrições de chamadas, dados firmográficos e histórico anterior do negócio. Pergunte "quais concorrentes surgiram nas chamadas recentes?" e receba um resumo da sua ferramenta de inteligência de conversas. Para **recomendações de agentes de IA no Slack para equipes de GTM** que operam com alto volume de outbound, o Tribble reduz o ciclo de pesquisa pré-chamada de 10 minutos trocando abas para uma consulta de 30 segundos no Slack. Em escala, essa diferença de tempo se traduz em um aumento significativo da capacidade de vendas por representante. Loopio: Automação de RFP na Origem A resposta a RFP é um dos processos mais intensivos em tempo em vendas B2B, e a maior parte do esforço é redundante — a maioria das perguntas em uma nova RFP já foi respondida em outra anterior. O **agente do Loopio no Slack **ataca isso diretamente. Quando uma nova RFP é atribuída, o Loopio apresenta respostas relevantes da biblioteca existente, sinaliza perguntas que precisam de conteúdo atualizado ou revisão jurídica e acompanha o status de conclusão — tudo a partir do Slack. Para equipes que lidam com mais do que algumas RFPs por trimestre, a redução no tempo de resposta é grande o bastante para que o ROI normalmente seja imediato. Smartsheet: Dados de Projetos no Contexto do Slack O **agente do Smartsheet no Slack** é uma ponte prática para equipes de operações que coordenam trabalho no Smartsheet, mas se comunicam no Slack. Consulte o status de projetos em linguagem natural, atualize a conclusão de tarefas, receba alertas automáticos quando marcos mudam ou dependências são alteradas. Os **recursos do agente Smartsheet** incluem sincronização bidirecional — atualizações feitas no Slack aparecem imediatamente no Smartsheet — e consultas em linguagem natural, o que significa que as pessoas não precisam conhecer a estrutura de dados do Smartsheet para obter respostas úteis. O efeito líquido: a visibilidade dos projetos melhora sem exigir que todos adotem o hábito de usar o Smartsheet. Notion AI: Recuperação de Base de Conhecimento no Slack Os **recursos do agente Notion AI no Slack** são mais valiosos para equipes com espaços de trabalho Notion bem mantidos — empresas que documentam processos, decisões e políticas de forma consistente. A integração permite que qualquer pessoa consulte a documentação interna sem sair do Slack: faça uma pergunta, receba uma resposta retirada de páginas do Notion, com um link para a fonte. Em uma equipe totalmente distribuída, isso elimina a fricção de "quem eu pergunto sobre isso?" para informações rotineiras. Um padrão emergente amplia isso ainda mais: **integração de agente de IA por voz com Notion e Slack**. Transcrições de reuniões capturadas por ferramentas como Fireflies ou Otter fluem automaticamente para o Notion e, no mesmo dia, ficam consultáveis no Slack. O agente de voz captura o que foi dito; o Notion armazena de forma estruturada; o Slack distribui as partes relevantes. É uma pipeline de três componentes, mas cada peça é bem suportada e o resultado é muito menos trabalho manual de documentação. ### Construindo um Agente de IA Customizado para Slack Quando ferramentas prontas não se encaixam, o caminho para **construir um agente de IA para Slack** do zero é bem pavimentado. O framework Bolt do Slack lida com autenticação, assinaturas de eventos, comandos slash e tratamento de mensagens em Python ou JavaScript. Adicione um modelo de linguagem via API da OpenAI ou Anthropic, defina sua lógica de negócios e conecte suas fontes de dados. O principal desafio técnico na **implementação de agente no Slack** é o estado da conversa — os threads do Slack não carregam contexto automaticamente da mesma forma que uma interface de chat dedicada, então você precisa armazenar o histórico da conversa explicitamente e passá-lo ao modelo a cada turno. Para requisitos de **melhor agente de IA no Slack para vendas** que ferramentas prontas não cobrem, um **bot do Slack** personalizado construído sobre o Bolt oferece controle total sobre tratamento de dados e comportamento. A implantação precisa de um backend: uma VPS, uma instância de contêiner ou uma função serverless, dependendo dos padrões de tráfego e dos requisitos de latência. ## Comparação de Ferramentas: Agentes de IA em WhatsApp, Telegram e Slack | Ferramenta | WhatsApp | Telegram | Slack | Caso de Uso Principal | Open Source | | --- | --- | --- | --- | --- | --- | | n8n | | | | Automação de fluxos multicanal com integração a CRM | Sim | | Manus AI | — | | — | Execução autônoma de tarefas em múltiplas etapas e pesquisa | Parcial | | Openclaw | | | — | Suporte ao cliente, moderação de comunidade, roteamento de leads | Parcial | | python-telegram-bot | — | | — | Bots personalizados para Telegram com integração total de LLM | Sim | | Seismic | — | — | | Recuperação de conteúdo de vendas e enablement | Não | | Tribble | — | — | | Inteligência de contas e negócios para equipes GTM | Não | | Loopio | — | — | | Automação de RFP e resposta a propostas | Não | | Smartsheet | — | — | | Operações de projetos e acompanhamento de status | Não | | Notion AI | — | — | | Perguntas e respostas em base interna de conhecimento | Não | ## O que Funciona Bem — e Onde Estão os Limites Reais Agentes de IA em plataformas de mensagens realmente mudam o throughput operacional. Os tempos de resposta caem de horas para segundos em consultas rotineiras. Tarefas repetitivas são tratadas sem atenção humana. Os registros de CRM permanecem atualizados porque o agente os atualiza em cada interação, em vez de esperar alguém registrar manualmente. Para equipes de GTM e suporte, isso se traduz em tempo redirecionado para trabalho que realmente exige julgamento. Dito isso, as limitações merecem atenção honesta. **Risco de alucinação.** Modelos de linguagem produzem respostas erradas com aparência confiante. Para agentes voltados ao cliente, isso significa que toda implantação precisa de barreiras de proteção: geração aumentada por recuperação (RAG) para fundamentar respostas em dados reais, limites de confiança abaixo dos quais o agente escalona para um humano em vez de adivinhar, e auditorias regulares do que o agente está realmente dizendo. **Restrições da API da plataforma.** O WhatsApp tem janelas de sessão — 24 horas desde a última mensagem iniciada pelo cliente — e exige modelos pré-aprovados para mensagens de saída fora dessa janela. Violar essas regras pode levar à suspensão do número. O Telegram é mais permissivo, mas grupos grandes têm algumas restrições de API que valem ser verificadas. Os limites de taxa do Slack variam conforme o plano e o tamanho do workspace. **Privacidade de dados.** Enviar conversas por meio de um LLM em nuvem de terceiros significa que os dados saem da sua infraestrutura. Para casos de uso em saúde, jurídico ou finanças, isso exige avaliação cuidadosa do fornecedor ou migração para modelos hospedados localmente. Self-hosting de um modelo open-source como Mistral ou Qwen em infraestrutura privada elimina a exposição de conformidade, embora adicione complexidade operacional. **Manutenção contínua.** Os agentes se degradam quando os dados subjacentes mudam — informações de produto são atualizadas, campos de CRM evoluem, prompts se desviam das regras de negócio atuais. Isso não é uma configuração única; é um sistema que precisa de monitoramento e ajustes ao longo do tempo. ## Cinco Cenários em que Esses Agentes Agregam Valor Claro **Suporte ao cliente de e-commerce no WhatsApp.** Um varejista online direciona todas as consultas relacionadas a pedidos para um agente de IA no WhatsApp conectado ao sistema de gestão de pedidos. O agente trata 75–85% das solicitações sem intervenção humana — status do pedido, atualizações de rastreamento, elegibilidade para devolução. Casos complexos são escalonados com o contexto completo da conversa anexado. O tempo médio de resposta cai de várias horas para menos de um minuto, e a necessidade de equipe de suporte se estabiliza mesmo com o crescimento do volume de pedidos. **Inteligência de GTM no Slack.** A equipe de vendas de uma empresa SaaS usa o Tribble para pesquisa de contas e a Seismic para recuperação de conteúdo. Antes de cada call de descoberta, o agente apresenta um briefing sobre a conta — tamanho da empresa, notícias recentes, histórico no CRM, contexto de concorrência. Após a chamada, as notas da reunião fluem para o Notion e o CRM é atualizado automaticamente. A equipe faz mais chamadas com melhor preparação, e menos tempo vai para tarefas administrativas entre interações. **Gestão de comunidade no Telegram em escala.** Uma empresa de ferramentas para desenvolvedores gerencia uma comunidade no Telegram com 12.000 membros usando um agente Openclaw para suporte de primeira linha. Perguntas comuns sobre documentação, preços, comportamento da API e configuração de integração são respondidas imediatamente. Solicitações de recursos e bugs reproduzíveis são encaminhados para a equipe de engenharia com contexto estruturado. Moderadores humanos passam a dedicar tempo a construir relacionamentos e identificar feedback de alto sinal, em vez de responder repetidamente às mesmas cinco perguntas. **Automação de RFP para um fornecedor de software B2B.** Uma empresa de software de médio porte lida com mais de 35 RFPs por trimestre usando o Loopio no Slack. Quando uma nova RFP é atribuída, o agente mostra as 10 respostas anteriores mais relevantes, sinaliza perguntas que precisam de revisão jurídica e acompanha a conclusão das seções. O tempo total de resposta a uma RFP cai em aproximadamente 40%, e a qualidade das respostas melhora porque a equipe está refinando conteúdo existente em vez de começar do zero. **Recuperação de conhecimento interno para uma equipe distribuída.** Uma empresa totalmente remota conecta o Notion AI ao Slack para perguntas internas e respostas. Novos contratados usam isso durante o onboarding. Líderes de equipe consultam a documentação de processos antes de sessões de planejamento. O RH responde a perguntas de política sem sobrecarregar a caixa de entrada. O resultado prático: menos DMs para pessoas sêniores sobre informações que já estão documentadas em algum lugar, e uma cultura de autoatendimento que escala conforme a equipe cresce. ## Erros Comuns e Como Evitá-los **Pular o desenho de escalonamento.** O modo de falha mais comum em agentes voltados ao cliente é o excesso de confiança — lidar com consultas para as quais o agente não está preparado e entregar respostas erradas ou enganosas. Desenhe gatilhos de escalonamento explicitamente antes do lançamento: pontuações de baixa confiança, categorias específicas de intenção (reclamações, assuntos jurídicos, disputas de cobrança), palavras-chave associadas a situações sensíveis. Um agente que escala com elegância gera mais confiança do que um que responde com confiança e erra. **Ignorar o estado da conversa.** Agentes que perdem contexto entre mensagens frustram os usuários imediatamente. Se um cliente diz "preciso alterar meu pedido" e depois responde "na verdade, cancele isso", o agente precisa saber qual pedido estava sendo discutido. O gerenciamento de estado — armazenar o histórico da conversa e passá-lo ao modelo em cada turno — precisa ser construído desde o início, e não adicionado como reflexão tardia quando os usuários começarem a reclamar. **Ignorar requisitos de conformidade da plataforma.** O WhatsApp, em particular, tem políticas rígidas sobre mensagens de saída e janelas de sessão. Enviar mensagens promocionais fora de modelos aprovados, ou tentar reengajar após a janela de 24 horas sem opt-in explícito, leva a restrições na conta. Leia a documentação da política da plataforma antes de construir, não depois da primeira violação. **Enviar dados sensíveis por LLMs de terceiros sem revisão.** Conversas envolvendo informações de saúde, assuntos jurídicos ou dados financeiros têm implicações regulatórias. Se o seu agente processa esse tipo de conteúdo, o acordo de tratamento de dados do fornecedor do LLM precisa ser revisado à luz do seu arcabouço de conformidade aplicável. Em muitos casos, um modelo hospedado localmente em infraestrutura privada é a escolha certa — custo inicial maior, zero exposição de dados a terceiros. **Lançar sem logging.** Um agente de IA em produção sem logging estruturado é um risco. Você precisa de um registro do que o agente disse, quando disse e em resposta a qual entrada — para depuração quando algo dá errado, para auditorias de conformidade e para o aprimoramento contínuo de prompts que mantém o agente útil ao longo do tempo. Implemente logging antes do go-live, revise-o ativamente nas primeiras semanas e mantenha-o em operação. ## Infraestrutura: Onde o Seu Agente Realmente É Executado Agentes open-source — n8n, bots personalizados do Slack, agentes Python para Telegram — todos precisam de um servidor. Funções serverless lidam adequadamente com cargas de trabalho leves e de baixa frequência, mas mensagens em tempo real em grande volume precisam de algo mais confiável e previsível. A latência de cold start em ambientes serverless aparece como respostas atrasadas, o que degrada visivelmente a experiência. Sob carga sustentada de mensagens, o preço por invocação também se acumula mais rápido do que o esperado. Uma configuração padrão de produção para infraestrutura de agentes de WhatsApp ou Telegram executa n8n, uma instância do Redis para o estado da conversa e um proxy reverso Nginx em um único VPS — expansível para múltiplas instâncias conforme o volume cresce. [Os servidores VPS da Serverspace](https://serverspace.com.br/services/vps-server.md) são uma opção prática para isso: ambientes Linux limpos, preços mensais previsíveis sem surpresas por requisição e escalabilidade direta quando o volume de conversas aumenta. Para equipas que hospedam por conta própria agentes de Telegram junto com receptores de webhook e instâncias de banco de dados, um VPS dedicado evita a latência e a imprevisibilidade de custos que acompanham o serverless sob carga. O atrito de implantação é ainda reduzido por dois apps 1-Click no marketplace da Serverspace. O [hosting n8n](https://serverspace.com.br/services/servidor-n8n.md) provisiona uma instância do n8n pré-configurada no Ubuntu — sem configuração manual de Docker, sem lidar com dependências — de modo que a camada de automação esteja em funcionamento poucos minutos após a criação do servidor. Para equipas que implantam um agente de IA auto-hospedado junto com a sua stack de automação, o [OpenClaw Server](https://serverspace.com.br/solutions/servidor-vps-com-openclaw/) é fornecido como um ambiente pronto para uso para gestão de agentes, automação de fluxos de trabalho e tratamento de integrações, começando com uma configuração simples de 2 vCPU / 4 GB de RAM, com espaço para escalar. A escolha da infraestrutura afeta mais do que o custo — afeta a residência dos dados, a latência e a sua capacidade de executar modelos hospedados localmente, caso os seus requisitos de privacidade apontem nessa direção. Vale a pena pensar nisso cedo, em vez de migrar uma implementação já funcional mais tarde. ## Resumo As ferramentas já estão maduras o suficiente para serem usadas a sério. Agentes de IA para WhatsApp com integração a CRM, agentes autônomos de tarefas para Telegram, agentes especializados para Slack voltados a GTM — tudo isso roda em produção em empresas de todos os tamanhos, lidando com cargas reais. As opções open-source (n8n, python-telegram-bot, Slack Bolt) oferecem controle e flexibilidade de custo. As ferramentas comerciais (Seismic, Tribble, Loopio, Smartsheet, Openclaw) trocam flexibilidade por implantação mais rápida e funcionalidade especializada. Por onde começar depende do seu canal, do seu caso de uso e da sua capacidade técnica. Escolha uma plataforma, um problema bem definido — status de pedido no WhatsApp, resposta a RFP no Slack, suporte à comunidade no Telegram — e construa um agente estreito e confiável antes de expandir o escopo. Um agente focado que faz uma coisa de forma consistente vale mais do que um sistema amplo que faz tudo mal. Quando o primeiro estiver funcionando, o próximo fica mais rápido. ### Preciso de uma conta empresarial verificada para conectar um agente de IA ao WhatsApp? Sim. A WhatsApp Business Platform API exige uma conta Meta Business verificada e um número de telefone registrado na plataforma. Contas individuais do WhatsApp não podem ser conectadas à API. O processo de verificação normalmente leva alguns dias úteis e exige um site comercial e documentação básica da empresa. Não há atalho — qualquer ferramenta que afirme conectar ao WhatsApp sem esse passo está usando métodos não oficiais que violam os termos de serviço da Meta e colocam a conta em risco de banimento. ### Como o Manus AI é diferente de um bot normal do Telegram? Um bot normal do Telegram é reativo — ele escuta mensagens e responde de acordo com uma lógica definida. O Manus é autônomo — você dá um objetivo, e ele planeja e executa as etapas necessárias para alcançá-lo, incluindo pesquisa na web, síntese de dados e criação de documentos. A interface de chat do Telegram é apenas a forma de atribuir tarefas e receber resultados; o processamento real acontece no runtime de agentes do Manus, que pode rodar por minutos ou mais em tarefas complexas. Pense na diferença entre responder a uma pergunta e concluir um projeto. ### Posso executar um agente de IA sem enviar conversas de clientes para um provedor de LLM em nuvem? Sim. Modelos open-source — Mistral, LLaMA, Qwen e outros — podem rodar em uma VPS ou servidor em nuvem privada e processar conversas inteiramente dentro da sua infraestrutura. A diferença de desempenho entre esses modelos e ofertas comerciais como o GPT-4 diminuiu significativamente, e para casos de uso restritos (consultas de status de pedido, respostas a FAQ, qualificação de leads), modelos open-source lidam com a maioria das cargas de trabalho com competência. O trade-off é custo inicial e manutenção maiores em troca da simplicidade de uma chamada de API para um serviço gerenciado. ### Qual agente de IA para Slack faz mais sentido para uma pequena equipe de GTM? Para equipes com menos de cerca de 15 pessoas, um bot customizado para Slack construído sobre o Bolt com integração à API da OpenAI ou Anthropic muitas vezes supera ferramentas dedicadas em custo-benefício. Você cria exatamente a funcionalidade de que precisa — briefings de contas, recuperação de conteúdo, o que quer que seu fluxo exija — e o custo escala com o uso, não com o número de assentos. O tempo de construção para um agente funcional normalmente fica abaixo de uma semana para um desenvolvedor familiarizado com Python ou JavaScript. Para equipes maiores, em que time-to-value mais rápido importa mais do que otimização de custos, Tribble ou Seismic oferecem implementações polidas e prontas para produção com configuração mínima. ### Quanto realmente custa rodar um agente de IA para WhatsApp por mês? Para uma implantação pequena ou média, a divisão de custos típica é: WhatsApp Cloud API (gratuita para as primeiras 1.000 conversas de serviço por mês, depois precificação regional por conversa), custos de API do LLM (cerca de US$ 1–5 por 1.000 conversas dependendo do modelo e do tamanho médio das mensagens) e infraestrutura para sua stack de automação (US$ 10–30/mês para uma VPS). Os custos mensais totais da maioria das implantações iniciais permanecem bem abaixo de US$ 100. Os custos escalam de forma aproximadamente linear com o volume de conversas, o que torna a economia unitária previsível à medida que você cresce. ### Posso migrar meus testes automatizados de uma ferramenta para outra sem começar do zero? Depende da ferramenta utilizada. Frameworks como Playwright, Selenium e Cypress possuem APIs diferentes, então normalmente é necessário adaptar os scripts de teste. No entanto, casos de teste bem estruturados e organizados facilitam bastante a migração, permitindo reaproveitar a lógica dos cenários e reduzir o tempo necessário para a transição. https://serverspace.com.br/about/blog/melhores-ferramentas-para-solucionar-problemas-de-falhas-em-pipelines-de-ci-cd.md Conheça as melhores ferramentas para identificar, analisar e corrigir falhas em pipelines de CI/CD, melhorando a estabilidade e a entrega de software. Toda equipe de desenvolvimento que entrega software regularmente já passou pela mesma situação: o pipeline fica vermelho no pior momento possível. Um build quebra pouco antes de um release, uma suíte de testes falha em algo que funcionou perfeitamente ontem, ou uma implantação fica travada sem nenhuma mensagem de erro clara. A questão raramente é _se_ algo vai dar errado — é quão rápido você consegue entender o que aconteceu e fazer o processo de entrega voltar a andar. Este guia é para desenvolvedores, engenheiros DevOps e líderes de engenharia que querem uma visão clara das ferramentas disponíveis para diagnosticar e corrigir falhas de pipeline. Também é para qualquer pessoa que já tenha ouvido o termo "CI/CD" e queira entender o que ele significa na prática do dia a dia — não apenas na teoria. Vamos cobrir tudo, desde definições fundamentais e como os pipelines realmente funcionam, até ferramentas específicas organizadas por função, passando pelos erros que as equipes mais cometem e como evitá-los. ## O que é um Pipeline CI/CD — e Por que Isso Importa Antes de entrar nas ferramentas, vale a pena garantir que estamos falando a mesma língua. O que é um pipeline CI/CD? Em sua essência, é uma sequência automatizada de etapas que pega o código escrito por um desenvolvedor e o leva até produção — ou, se algo der errado, interrompe o processo antes que ele cause danos. O termo se divide em duas partes. Integração Contínua (CI) refere-se à prática de mesclar frequentemente alterações de código em um repositório compartilhado, com cada mesclagem acionando automaticamente um build e um conjunto de testes. O objetivo é detectar problemas de integração cedo, enquanto ainda são pequenos e baratos de corrigir. Entrega ou Implantação Contínua (CD) amplia essa ideia: depois que o código passa nos testes, ele segue por uma série de ambientes — geralmente staging, pré-produção e depois produção — de forma automática ou com uma etapa de aprovação manual antes da fase final. O pipeline de desenvolvimento CI/CD, então, é a infraestrutura e a configuração que fazem tudo isso acontecer: os scripts, os contêineres, os runners de teste, a lógica de implantação e as notificações. Não é uma única ferramenta, mas um sistema vivo que abrange todas as partes do seu processo de entrega de software. Quando um pipeline funciona bem, as equipes conseguem publicar atualizações várias vezes por dia com confiança. Quando ele falha — ou quando fica lento, pouco confiável ou opaco — ele se torna uma das maiores fontes de atrito no trabalho diário de qualquer equipe de engenharia. ## Como um Pipeline CI/CD Funciona: Etapa por Etapa Um pipeline típico move o código por várias fases distintas, e falhas podem acontecer em qualquer uma delas. Entender esse fluxo importa porque a ferramenta certa de troubleshooting depende muito de _onde_ no pipeline a falha ocorreu. Etapa de origem. Um desenvolvedor envia um commit ou abre um pull request. Esse evento aciona o pipeline. O sistema verifica se a alteração pode ser mesclada sem conflitos e recupera a versão mais recente da base de código do repositório. Etapa de build. O código é compilado (se a linguagem exigir), as dependências são instaladas e um artefato é produzido — normalmente um binário, uma imagem de contêiner ou um pacote implantável. As falhas aqui geralmente são causadas por dependências ausentes, conflitos de versão ou scripts de build mal configurados. Etapa de testes. Testes unitários, de integração e, às vezes, testes end-to-end são executados sobre o artefato do build. É aqui que aparece a maior parte das falhas de CI. Um teste que falha pode significar um bug real, um teste instável que falha intermitentemente, ou uma inconsistência de ambiente que não reflete nenhum problema real com o código. Análise de segurança e qualidade. Muitos pipelines maduros incluem análise estática de código, varredura de vulnerabilidades e verificações de qualidade de código nesta etapa. É aqui que entram as ferramentas SAST automatizadas para pipelines CI/CD — Static Application Security Testing. Elas analisam o código-fonte em busca de vulnerabilidades conhecidas antes que o software seja implantado em qualquer ambiente, detectando problemas de segurança no momento mais barato possível. Etapa de implantação. O artefato é enviado para um ambiente de destino. Isso pode envolver subir contêineres, configurar infraestrutura como código, executar migrações de banco de dados e atualizar balanceadores de carga ou DNS. As falhas aqui costumam ser as mais disruptivas porque podem afetar sistemas dos quais usuários reais dependem. Verificação pós-implantação. Smoke tests, health checks e lógica de rollback confirmam que a implantação realmente foi bem-sucedida. Se algo estiver errado nesta etapa, a lógica automatizada de rollback pode limitar os danos antes que alguém abra um ticket de suporte. ## Por que os Pipelines CI/CD Falham: As Causas Mais Comuns As falhas de pipeline se concentram em um punhado de categorias recorrentes, e reconhecê-las acelera bastante o diagnóstico. Drift de ambiente é um dos culpados mais frustrantes. O código funciona na máquina do desenvolvedor, mas falha no CI porque as versões de runtime, variáveis de ambiente ou pacotes instalados são ligeiramente diferentes. A correção normalmente é padronizar os ambientes usando contêineres ou ferramentas de infraestrutura como código, para que cada execução do pipeline comece do mesmo estado. Testes instáveis são testes que passam às vezes e falham em outras, sem nenhuma alteração no código. Eles corroem a confiança no pipeline ao longo do tempo e tornam realmente difícil distinguir falhas reais de ruído. As equipes muitas vezes mascaram o problema adicionando uma etapa de retry, o que dificulta ainda mais descobrir a causa raiz e permite que a suíte de testes se afaste ainda mais da confiabilidade. Problemas de dependência — pacotes desatualizados, registros upstream indisponíveis de forma intermitente ou requisitos de versão conflitantes — respondem por uma parcela significativa das falhas de build. Bloquear explicitamente as versões das dependências e usar mirrors privados ou caches pode reduzir drasticamente essa categoria de falha. Restrições de recursos atingem pipelines que rodam em infraestrutura limitada: jobs expiram, testes ficam sem memória ou workers paralelos competem pelas mesmas portas. Isso é especialmente comum em equipes que ampliaram bastante sua suíte de testes sem escalar a infraestrutura de CI na mesma proporção. Má configuração é uma categoria ampla que cobre desde erros de digitação em definições YAML de pipeline até permissões incorretas para credenciais de implantação. Essas falhas muitas vezes são enigmáticas porque a mensagem de erro descreve um sintoma, e não a causa raiz — o sistema diz que não consegue escrever em um arquivo quando o problema real é a ausência de uma atribuição de função IAM. ## Melhores Ferramentas de Pipeline CI/CD para Troubleshooting: Uma Visão Prática O mercado de ferramentas CI/CD pipeline é amplo e diversificado. Ferramentas diferentes servem a partes diferentes do fluxo de troubleshooting — orquestração de pipeline, monitoramento, análise de logs, varredura de segurança, gestão de testes e visibilidade de implantação. Abaixo está uma divisão organizada por função, cobrindo as ferramentas às quais os profissionais recorrem com mais frequência. Plataformas de Orquestração de Pipeline com Observabilidade Integrada A maioria das equipes começa sua jornada de troubleshooting dentro da plataforma que executa seu pipeline. As principais ferramentas de orquestração melhoraram muito suas capacidades de diagnóstico nos últimos anos. [Jenkins](https://www.jenkins.io/)é o servidor de CI open-source mais amplamente implantado. Sua força é a flexibilidade: praticamente qualquer fluxo de trabalho pode ser modelado em um Jenkinsfile, e o ecossistema de plugins cobre quase toda integração imaginável. Para troubleshooting, a interface Blue Ocean fornece uma visão visual do pipeline com logs por etapa e anotações de falha. O plugin Pipeline Stage View facilita ver qual etapa quebrou e quanto tempo cada etapa tem levado ao longo do tempo. O ponto fraco do Jenkins é o custo de manutenção — ele requer cuidado ativo e tende a produzir logs verbosos que precisam ser interpretados. [GitHub](https://github.com/) Actions tornou-se a escolha padrão para equipes que já usam o GitHub como host do repositório. Sua visualização de workflow é limpa, as falhas são destacadas inline, e habilitar logs de debug definindo um segredo no repositório gera rastros de execução passo a passo para problemas difíceis de reproduzir. A capacidade de reexecutar apenas os jobs que falharam — em vez de todo o workflow — economiza tempo significativo ao diagnosticar problemas intermitentes. [GitLab](https://about.gitlab.com/) CI/CD oferece uma das experiências de troubleshooting integradas mais completas: gráficos de pipeline, traces de jobs, visualização de dependências e integração de relatórios de teste vêm prontos de fábrica. A ferramenta CI Lint valida a configuração do pipeline antes da execução, detectando erros de sintaxe antes que eles desperdicem uma execução inteira. A integração do GitLab com seu próprio registry de contêineres e com o agente Kubernetes também torna o debug de implantação notavelmente mais fluido. [CircleCI](https://circleci.com/)e Buildkite são opções fortes para equipes que precisam de alto paralelismo e ciclos rápidos de feedback. O painel Insights do CircleCI acompanha a duração do pipeline e as tendências de confiabilidade ao longo do tempo — algo essencial para identificar degradação antes que ela se torne uma crise que interrompa um release. Ferramentas de Monitoramento de Pipeline CI/CD Plataformas de orquestração dizem _o que_ falhou. As ferramentas dedicadas de monitoramento de pipeline CI/CD dizem _por que_ — e, mais importante, fornecem uma visão histórica para que você possa identificar padrões ao longo de várias execuções do pipeline em vez de investigar cada falha isoladamente. Datadog CI Visibility agrega dados de pipeline de múltiplos provedores de CI em um único painel. Ele acompanha o histórico de execuções de testes, sinaliza testes instáveis automaticamente e correlaciona o desempenho do pipeline com métricas de infraestrutura. Se uma lentidão na execução dos testes coincidir com um pico de CPU nos workers de CI, o Datadog mostra essa conexão de uma forma que a leitura manual de logs não mostraria. [Grafana](https://grafana.com/)combinado com Prometheus é o stack open-source padrão de observabilidade para equipes que querem controle total sobre a configuração de monitoramento sem dependência de fornecedor. Métricas de pipeline — duração do build, taxa de falha, tempo na fila e uso dos workers — podem ser exportadas da maioria das plataformas de CI e visualizadas em dashboards personalizados do Grafana. Quando hospedado em um VPS confiável (provedores como [Serverspace](https://serverspace.com.br/services/vps-server.md) oferecem configurações flexíveis de servidor adequadas para stacks de monitoramento auto-hospedados), essa combinação entrega visibilidade de pipeline de nível empresarial por uma fração do custo de uma solução SaaS gerenciada. BuildPulse foca especificamente na detecção de testes instáveis. Ele se integra à maioria das plataformas de CI, rastreia automaticamente quais testes falham de forma inconsistente entre execuções, atribui uma pontuação de instabilidade a cada teste e ajuda as equipes a priorizar quais devem ser corrigidos primeiro — transformando um problema invisível em uma fila de trabalho gerenciável. Allure Report é um framework de relatórios de teste que transforma a saída bruta do runner de testes em relatórios HTML ricos e navegáveis. Ele acompanha o histórico de testes ao longo do tempo, mostra capturas de tela de falhas para testes de UI e destaca tendências entre várias execuções — tornando muito mais fácil determinar se uma falha é realmente nova ou se vem ocorrendo silenciosamente há semanas. Ferramentas de Segurança para Pipeline CI/CD Falhas de segurança em um pipeline podem ser tão disruptivas quanto qualquer outra — e consideravelmente mais perigosas se chegarem à produção sem serem detectadas. As ferramentas de segurança para pipeline CI/CD se dividem em várias categorias, dependendo do que examinam. Para vulnerabilidades no código-fonte, [SonarQube](https://www.sonarsource.com/products/sonarqube/)é a opção mais estabelecida. Ele realiza análise estática em dezenas de linguagens, acompanhando métricas de qualidade de código junto com problemas de segurança, e seu recurso de quality gate pode bloquear implantações quando limites predefinidos são ultrapassados. Semgrep é uma alternativa mais leve, particularmente rápida de configurar e eficiente como verificação de CI em cada pull request, com uma grande biblioteca de regras mantidas pela comunidade. Para vulnerabilidades em imagens de contêiner, [Trivy](https://trivy.dev/)da Aqua Security tornou-se o padrão prático. Ele analisa imagens de contêiner, sistemas de arquivos e configurações de infraestrutura como código em busca de CVEs conhecidas e más configurações, e se integra facilmente a praticamente qualquer pipeline. Snyk cobre terreno semelhante, mas adiciona recursos voltados ao desenvolvedor, como sugestões acionáveis de correção e integração com IDE, tornando o feedback de segurança parte do fluxo de desenvolvimento em vez de um bloqueio no momento do pipeline. Para detecção de segredos — evitando que chaves de API, senhas e tokens sejam acidentalmente commitados no controle de versão — GitLeaks e [TruffleHog](https://github.com/trufflesecurity/trufflehog) analisam repositórios e histórico de commits em busca de padrões de credenciais. Isso é especialmente importante à medida que a integração de pipeline CI/CD com provedores de nuvem se torna padrão: uma credencial vazada em um repositório pode resultar em comprometimento imediato da infraestrutura, e detectar isso antes do merge é muito melhor do que rotacionar credenciais depois de uma violação. Ferramentas com IA para Automação de Pipeline CI/CD Uma geração mais recente de soluções aplica aprendizado de máquina para tornar o troubleshooting mais rápido e proativo. As melhores ferramentas para otimizar pipelines CI/CD com IA geralmente focam em três áreas: previsão de falhas, análise automatizada de logs e sugestões inteligentes de remediação. LinearB e Faros AI analisam métricas de engenharia — incluindo dados de pipeline — para destacar gargalos no fluxo de trabalho e sugerir melhorias de processo. Elas são voltadas tanto para líderes de engenharia que acompanham a performance de entrega quanto para engenheiros individuais que estão depurando falhas específicas. [Trunk.io](https://trunk.io/) adota uma abordagem shift-left, usando análise estática e aprendizado de máquina para detectar problemas potenciais antes que o código chegue ao CI, reduzindo o número de falhas de pipeline desde o início. Seu recurso Check executa linters e scanners de segurança em paralelo localmente, para que os desenvolvedores recebam feedback em segundos, em vez de esperar que uma execução completa de CI termine e falhe. Entre as principais ferramentas de IA para automação de pipeline CI/CD, assistentes de código como GitHub Copilot estão sendo cada vez mais usados para analisar configurações YAML de pipeline, explicar mensagens de erro enigmáticas e sugerir correções para etapas com falha. Embora não se integrem diretamente aos runners de pipeline, eles reduzem o tempo gasto decifrando erros de configuração de minutos para segundos. Vale notar que ferramentas com IA funcionam melhor como aceleradoras do julgamento humano — uma ferramenta que aponta uma provável causa raiz ainda exige que um engenheiro valide e aja sobre isso. Melhores Ferramentas de Pipeline CI/CD para Implantações na Nuvem Implantações nativas da nuvem introduzem sua própria categoria de modos de falha. Erros de provisionamento de infraestrutura, regras de rede mal configuradas e problemas com limites de permissão são comuns — e muitas vezes produzem mensagens de erro que descrevem o efeito, não a causa. As melhores ferramentas de pipeline CI/CD para a nuvem tratam desses modos de falha de forma específica. [Terraform](https://developer.hashicorp.com/terraform)com seus logs integrados de plan e apply dá às equipes visibilidade exata sobre quais alterações de infraestrutura foram tentadas e por que falharam. Combinado com Atlantis, uma camada de automação para pull requests do Terraform, as equipes podem revisar mudanças de infraestrutura no mesmo fluxo de code review do código de aplicação — o que facilita muito detectar drift de configuração. [ArgoCD](https://argo-cd.readthedocs.io/en/stable/)é uma ferramenta de continuous delivery GitOps para Kubernetes que torna o estado da implantação visível e auditável. Quando uma implantação falha, o ArgoCD mostra exatamente qual recurso Kubernetes teve problema e apresenta um diff claro entre o estado esperado e o estado real — sem necessidade de vasculhar logs. AWS CodePipeline, Google Cloud Build e Azure Pipelines são os serviços nativos de CI/CD dos três principais provedores de nuvem. Eles se integram profundamente aos respectivos ecossistemas e incluem logging, tracing e alertas integrados. Equipes já comprometidas com uma única plataforma de nuvem muitas vezes acham essas ferramentas mais fáceis de depurar do que alternativas de terceiros simplesmente porque o modelo de permissões e a integração com funções IAM são mais transparentes e melhor documentados. ## Comparação das Principais Ferramentas de Troubleshooting CI/CD | Ferramenta | Categoria | Uso Principal no Troubleshooting | Melhor Para | Open Source | | --- | --- | --- | --- | --- | | Jenkins | Orquestração | Visão visual das etapas, logs por etapa, diagnósticos baseados em plugins | Pipelines corporativos complexos | Sim | | GitHub Actions | Orquestração | Destaques inline de falhas, logs de debug, reexecução de jobs com falha | Projetos hospedados no GitHub | Camada gratuita | | GitLab CI/CD | Orquestração | Gráficos de pipeline, CI Lint, relatórios de teste integrados | Ciclo DevOps completo, auto-hospedado | edição CE | | Datadog CI Visibility | Monitoramento | Métricas multiplataforma, detecção de testes instáveis, correlação com infraestrutura | Equipes multi-plataforma | Comercial | | Grafana + Prometheus | Monitoramento | Dashboards personalizados, tendências de longo prazo, sem lock-in de fornecedor | Observabilidade auto-hospedada | Sim | | BuildPulse | Monitoramento | Rastreamento de testes instáveis, priorização, dados históricos de falhas | Equipes com suítes de teste grandes | Comercial | | SonarQube | Segurança / SAST | Análise estática multilíngue, quality gates, rastreamento de vulnerabilidades | Setores regulados, bases de código grandes | edição CE | | Trivy | Segurança (contêineres) | Varredura rápida de CVEs para imagens e configs de IaC | Implantações baseadas em contêineres | Sim | | ArgoCD | Cloud / GitOps CD | Diffs do estado de implantação, visibilidade de rollback, status de recursos K8s | Implantações Kubernetes na nuvem | Sim | | Trunk.io | IA / Shift-left | Prevenção de falhas antes do CI, linting e scanning locais em paralelo | Melhoria da experiência do desenvolvedor | Parcial | | TruffleHog / GitLeaks | Detecção de segredos | Varredura de credenciais em commits e histórico do repositório | Qualquer equipe que use credenciais de nuvem | Sim | ## Ferramentas de Pipeline CI/CD em Prática: Quatro Cenários do Mundo Real Entender como essas ferramentas são aplicadas em situações reais deixa seu valor prático mais claro. Aqui estão quatro cenários representativos que a maioria das equipes de engenharia encontra em algum momento. Cenário 1: Uma suíte de testes que começou a falhar após uma atualização de dependência. Uma equipe atualiza uma biblioteca utilitária compartilhada e, de repente, dezenas de testes falham no CI — testes que não têm nada a ver com o código alterado. Usando a visão de histórico de testes no Allure Report, eles percebem que todas as falhas começaram exatamente no mesmo commit. Comparando os dois builds no Datadog CI Visibility, notam que o consumo de memória durante a execução dos testes aumentou 40%: a nova versão da biblioteca carrega muito mais coisa na inicialização. A correção é travar a dependência na versão anterior enquanto abrem um issue para o mantenedor da biblioteca. Sem dados históricos de testes e correlação de recursos, esse diagnóstico teria levado horas de leitura de logs e tentativa e erro. Cenário 2: Uma implantação que passa no CI, mas falha silenciosamente em produção. O código passa em todos os testes do pipeline, mas após a implantação o serviço de produção não responde como esperado. O ArgoCD mostra que um de três pods Kubernetes não conseguiu iniciar — o health check está falhando porque uma variável de ambiente obrigatória não foi definida no manifesto de implantação de produção. A variável foi adicionada à configuração de staging, mas a configuração de produção não foi atualizada. A visão de diff do ArgoCD torna a discrepância imediatamente visível, e a correção leva dois minutos depois que a causa é identificada. Cenário 3: Um vazamento de credencial detectado antes do merge. Um desenvolvedor inclui acidentalmente uma chave de acesso AWS em um arquivo de configuração ao preparar testes locais. O TruffleHog, executado como verificação pré-merge via GitHub Actions, sinaliza o commit antes que ele seja mesclado na branch principal. O pipeline bloqueia o pull request, o desenvolvedor rotaciona a chave, e o incidente potencial fica totalmente contido. Sem essa verificação, a credencial teria sido commitada em um repositório ao qual dezenas de pessoas têm acesso. Cenário 4: Lentidões inexplicáveis no pipeline que se acumulam com o tempo. Uma equipe percebe que seu pipeline, que costumava terminar em oito minutos, agora leva mais de vinte. O modo de falha é sutil — nada está quebrando, mas cada release leva mais tempo que o anterior. Usando dashboards do Grafana alimentados por métricas do Prometheus a partir da instância Jenkins auto-hospedada em um [Serverspace VPS](https://serverspace.com.br/services/vps-server.md), eles identificam que os nós workers de CI estão consistentemente atingindo limites de CPU durante a fase de compilação — um efeito colateral do crescimento da base de código sem o aumento proporcional da capacidade do servidor. Atualizar a configuração do VPS resolve o gargalo em poucas horas, e o stack de monitoramento continua fornecendo alerta antecipado caso isso aconteça novamente. ## Erros Comuns ao Trabalhar com Ferramentas de Pipeline CI/CD Ter boas ferramentas não produz, automaticamente, pipelines suaves. Estes são os erros que as equipes mais cometem, mesmo depois de investirem no software certo. Tratar testes instáveis como um custo aceitável do trabalho. É tentador adicionar uma etapa de retry e seguir em frente quando um teste falha de forma intermitente. Mas testes instáveis se acumulam e, eventualmente, tornam toda a suíte de testes pouco confiável. Os engenheiros deixam de acreditar que um pipeline verde significa que o código está realmente seguro para implantação. A abordagem correta é colocar testes instáveis em quarentena em uma categoria separada assim que forem identificados, corrigi-los em um cronograma definido e usar uma ferramenta como o BuildPulse para acompanhar a instabilidade de forma sistemática, em vez de depender da memória institucional. Executar todas as etapas do pipeline em série quando o paralelismo está disponível. Muitas equipes configuram seus pipelines para que cada etapa rode somente depois que a anterior termina, mesmo quando as etapas não têm dependência entre si. Isso torna os pipelines muito mais lentos do que precisam ser. A maioria das modernas ferramentas DevOps de pipeline CI/CD suporta execução paralela de jobs nativamente — mapear quais etapas são independentes e reestruturar o fluxo de acordo pode frequentemente reduzir a duração do pipeline em 30% a 50% sem alterar uma única linha do código da aplicação. Não reter logs por tempo suficiente para diagnosticar falhas intermitentes. Quando uma falha rara, mas significativa, acontece, as equipes frequentemente descobrem que os logs relevantes já foram rotacionados antes que alguém investigasse. Uma política de retenção de logs cobrindo pelo menos 30 dias de histórico de pipeline — e arquivando dados mais antigos em object storage para análise de longo prazo — custa muito pouco e pode ser essencial para reproduzir casos extremos. Enviar todos os alertas para todo mundo sem uma política de triagem. Se toda falha de pipeline gera uma notificação para toda a equipe de engenharia, a fadiga de alertas se instala rapidamente. As pessoas começam a ignorar os alertas, o que significa que também perdem os importantes. Definir uma política clara de escalonamento — quais falhas acionam o plantonista, quais vão para o canal da equipe e quais são registradas silenciosamente para revisão semanal — faz os alertas voltarem a ter significado. Pular completamente a verificação pós-implantação. Uma implantação que é bem-sucedida no nível da infraestrutura ainda pode falhar da perspectiva do usuário se um endpoint crítico da API estiver retornando erros ou se um worker em background estiver caindo silenciosamente. Adicionar smoke tests e health checks como última etapa do pipeline transforma a verificação da implantação de um passo manual opcional em um passo automático obrigatório. ## Selecionando as Ferramentas Certas: Considerações Principais Com tantas opções disponíveis, escolher o conjunto certo de ferramentas de pipeline CI/CD para uma equipe específica se resume a algumas perguntas práticas que valem a pena ser feitas antes de avaliar qualquer produto específico. A primeira é quanto de infraestrutura sua equipe está preparada para gerenciar. Soluções totalmente hospedadas — GitHub Actions, CircleCI, Buildkite — minimizam a sobrecarga operacional, mas vêm com custos mais altos por assento ou por minuto em escala. Opções auto-hospedadas — Jenkins, GitLab CE, o stack Grafana — dão mais controle, mas exigem que alguém cuide de upgrades, backups e planejamento de capacidade. Muitas equipes chegam a um meio-termo prático: usam uma plataforma hospedada para orquestração do pipeline enquanto auto-hospedam ferramentas de monitoramento e relatórios em um servidor dedicado. A segunda é como sua stack atual está estruturada. Se você já está no GitHub, o GitHub Actions é o ponto de partida com menor atrito. Se suas implantações rodam em Kubernetes, o ArgoCD e o Helm oferecem a experiência mais nativa para esse ambiente. A seleção de ferramentas deve seguir a arquitetura que você já tem, e não exigir que você reconstrua partes significativas da infraestrutura em torno de um novo produto. A terceira é sua postura de segurança. Equipes em setores regulados — finanças, saúde, qualquer contexto em que uma violação tenha consequências sérias — precisam de varredura de segurança como uma etapa de primeira classe do pipeline, e não como uma revisão manual mensal. Nesses casos, integrar cedo ferramentas CI/CD pipeline para varredura de segurança, e tornar seus resultados bloqueantes em vez de apenas consultivos, vale o atrito inicial de configuração e ajuste de falsos positivos. ### O que é um pipeline CI/CD em termos simples? É um sistema automatizado que pega o código escrito pelos desenvolvedores e o move por uma série de verificações — compilando o software, executando testes, verificando questões de segurança — antes de implantá-lo em produção. O objetivo é detectar problemas automaticamente antes que eles cheguem aos usuários e lançar software de forma confiável sem um processo manual em cada etapa. ### Times pequenos de desenvolvimento realmente precisam de ferramentas CI/CD? Sim — talvez até mais do que equipes grandes. Quanto menor a equipe, menor a capacidade de verificar manualmente cada alteração de código. Testes e implantação automatizados preenchem essa lacuna. Começar com um workflow básico do GitHub Actions não custa nada e imediatamente adiciona confiabilidade. À medida que a equipe cresce, o pipeline cresce junto. ### Como descubro qual etapa do meu pipeline está falhando? Comece pela interface visual da plataforma do seu pipeline — a maioria das ferramentas modernas exibe uma divisão passo a passo com logs para cada etapa. Se os logs não forem suficientes, adicione logging estruturado aos seus scripts de build e deploy. Se a falha for intermitente, uma ferramenta de monitoramento que retenha dados históricos do pipeline torna a detecção de padrões muito mais prática do que ler arquivos de log individuais. ### Ferramentas CI/CD open source são boas o suficiente para uso em produção? Com certeza. Jenkins, GitLab Community Edition, Grafana, Prometheus, Trivy, SonarQube Community e ArgoCD são todos usados em produção por empresas de todos os tamanhos, incluindo grandes corporações com requisitos rígidos de compliance. O trade-off prático é que ferramentas auto-hospedadas exigem alguém para gerenciar instalação, atualizações e backups — por isso muitas equipes as executam em um VPS dedicado em vez de em uma máquina de desenvolvimento compartilhada. ### Qual é a diferença entre CI e CD? CI — Integração Contínua — automatiza o processo de mesclar e testar alterações de código, detectando problemas de integração cedo. CD — Entrega Contínua ou Implantação Contínua — automatiza a movimentação dessas alterações testadas para produção ou para um ambiente de pré-produção. Na prática, a maioria das equipes implementa ambos juntos como um único pipeline ponta a ponta, e é por isso que os dois termos quase sempre aparecem juntos. ### Com que frequência os pipelines devem ser acionados? Idealmente, a cada commit ou pull request. Algumas etapas mais pesadas em recursos — suítes completas de testes de integração, varreduras abrangentes de segurança — podem ser agendadas para rodar à noite, em vez de a cada push, desde que as verificações bloqueantes mais rápidas continuem rodando em cada alteração. O princípio-chave é que nenhum código deve chegar à produção sem passar pelo menos pelas verificações automáticas essenciais. ## Conclusão Falhas de pipeline são inevitáveis — mas falhas lentas, opacas ou repetidamente não resolvidas não são. A combinação certa de ferramentas transforma uma falha de pipeline de uma emergência ambígua em um evento administrável, com um caminho claro de diagnóstico e um processo de resolução repetível. Um ponto de partida prático: garanta visibilidade por meio de uma ferramenta de monitoramento, feedback significativo por meio de relatórios de teste, cobertura básica de segurança por meio de SAST e varredura de segredos, e alertas claros que não gerem ruído. A partir daí, adicione capacidades mais sofisticadas — análise assistida por IA, ferramentas de implantação nativas da nuvem, observabilidade avançada — conforme a escala de entrega da sua equipe e seus pontos de dor específicos tornarem o investimento valioso. Ferramentas para automação de pipeline CI/CD não são as mais complexas nem as mais caras. São as ferramentas que expõem a informação certa no momento certo do processo de entrega e que sua equipe realmente usa de forma consistente. Comece pela camada em que você sente mais atrito, instrumente bem essa camada e amplie a cobertura a partir daí. https://serverspace.com.br/about/blog/por-que-meu-site-wordpress-esta-tao-lento-causas-e-solucoes-explicadas.md Descubra por que seu WordPress está lento e veja correções práticas para melhorar hospedagem, imagens, cache e desempenho do site. Abra seu site em um telefone com uma conexão móvel comum e conte os segundos em voz alta. Esse exercício costuma ser desconfortável. O que parece rápido em um laptop de desenvolvedor com conexão de fibra muitas vezes é uma experiência muito diferente para a pessoa que encontrou você por meio de um resultado de busca e está decidindo se fica ou não. Ela não vai pensar "vou dar mais tempo para a página" — simplesmente vai sair. A parte frustrante é que uma situação de WordPress lento raramente se anuncia com clareza. Não aparece uma mensagem de erro dizendo "suas imagens estão pesadas demais" ou "seu servidor precisa de mais memória". O site simplesmente demora mais do que deveria, e a causa pode ser qualquer uma de uma dúzia de coisas — ou, mais provavelmente, várias ao mesmo tempo. Este guia identifica essas causas com clareza, explica o que está acontecendo em cada caso e oferece um caminho concreto para corrigi-las. ## Lendo os Sinais: O Que as Ferramentas de Velocidade Estão Realmente Dizendo Executar um teste de velocidade do WordPress no Google PageSpeed Insights ou no GTmetrix retorna uma pontuação — mas a pontuação em si é menos útil do que as métricas específicas por trás dela. Três números importam mais. **TTFB (Time to First Byte)** mede o intervalo entre o navegador enviar uma solicitação e o servidor enviar seu primeiro byte de resposta. Pense nisso como o tempo que a cozinha leva para começar a mandar a comida depois que o pedido chega. Se o TTFB excede 600 milissegundos, o problema está inteiramente do lado do servidor — antes mesmo de qualquer imagem ou folha de estilo ser solicitada. Comprimir imagens não ajuda um TTFB alto porque o atraso acontece antes de tudo. **LCP (Largest Contentful Paint)** marca o momento em que o principal elemento visível — normalmente uma imagem grande ou um título — aparece totalmente na tela. O Google considera um LCP abaixo de 2,5 segundos aceitável e o usa como fator de ranqueamento por meio do Core Web Vitals. Um LCP acima de 4 segundos é classificado como ruim e se correlaciona com uma taxa de abandono significativamente maior. **CLS (Cumulative Layout Shift)** mede a instabilidade visual — o quanto a página se rearranja enquanto carrega. Um valor acima de 0,1 geralmente significa que elementos estão aparecendo tarde e empurrando outro conteúdo, o que faz a página parecer pouco confiável e torna toques acidentais no mobile mais comuns. Essas três métricas apontam para camadas diferentes do problema. TTFB alto é um problema de servidor. LCP alto geralmente está ligado a imagens ou recursos que bloqueiam a renderização. CLS alto é um problema de marcação. Cada um exige uma correção diferente, e é por isso que diagnosticar antes de otimizar produz resultados melhores do que aplicar todas as técnicas de uma vez. ## O Que Realmente Está Deixando Seu Site WordPress Lento O Servidor Tem Pouco Espaço para Trabalhar Sempre que alguém abre uma página do seu site, o servidor recebe a solicitação, executa código PHP, busca conteúdo no banco de dados, monta o resultado em HTML e o transmite. A velocidade desse processo depende inteiramente dos recursos computacionais disponíveis — RAM, CPU e I/O de armazenamento. Em hospedagem compartilhada de entrada, esses recursos são divididos entre um número imprevisível de contas na mesma máquina física. O tempo de resposta do seu site passa a depender do que os seus vizinhos estão fazendo em determinado momento. Em períodos tranquilos, tudo pode parecer adequado. Em horários de pico — ou quando outra conta na mesma máquina sofre um aumento de tráfego — suas páginas ficam lentas por motivos que não têm nada a ver com seu conteúdo ou configuração. Um VPS resolve isso ao atribuir recursos fixos apenas à sua conta. O que foi alocado à sua instância não sai de um pool comum. Provedores como [Serverspace](https://serverspace.com.br/services/vps-server.md) oferecem configurações de VPS que funcionam bem para WordPress, com armazenamento SSD e data centers em diferentes regiões. Esse último ponto importa porque a geografia é um fator real: um servidor em Frankfurt respondendo a pedidos de visitantes em São Paulo adiciona latência em cada conexão, independentemente de quão bem otimizado o site esteja. Igualar a localização do servidor ao seu público principal remove um atraso que nenhum plugin consegue compensar. Arquivos de Mídia Feitos para Impressão, Servidos na Web Os sensores de câmera continuam ficando maiores. Uma câmera mirrorless moderna produz imagens de 20–40 megabytes por arquivo — adequadas para impressão, outdoors ou edição profissional, não para um elemento de página que será exibido com 600 pixels de largura na tela de um telefone. O tamanho do arquivo não diminui automaticamente quando o WordPress redimensiona as dimensões de exibição; ele só altera a forma como a imagem é apresentada, não a quantidade de dados que o navegador precisa baixar. Uma página inicial com seis fotos não processadas pode facilmente exigir 60–80 megabytes de dados de imagem. Em uma conexão Wi-Fi forte, isso leva alguns segundos. Em uma conexão móvel típica, basta para perder a maioria dos visitantes antes que a página pareça concluída. Corrigir isso envolve três ações separadas. A compressão remove dados que o olho humano não percebe, normalmente reduzindo o tamanho do arquivo em 60–80% sem perda visível de qualidade. A conversão para WebP — um formato criado especificamente para entrega na web — reduz ainda mais o tamanho, frequentemente produzindo arquivos 25–35% menores do que um JPEG comprimido com qualidade visual equivalente. A entrega responsiva garante que o navegador receba uma imagem dimensionada para a largura real de exibição, em vez de uma versão em resolução máxima que será reduzida no cliente. Extensões Acumuladas, Custo Acumulado Plugins são a grande vantagem do WordPress. Também são uma de suas maiores desvantagens de desempenho — não porque plugins sejam inerentemente problemáticos, mas porque o custo de cada um é invisível até que o total fique grande o suficiente para ser notado. Considere o que acontece quando um visitante acessa qualquer página do seu site. O servidor começa a executar PHP. Ele verifica quais plugins estão ativos. Cada plugin ativo registra seus hooks e executa seu código de inicialização. Alguns plugins também carregam arquivos JavaScript que o navegador precisa baixar e processar antes que a página se torne interativa. Um plugin que carrega uma biblioteca JavaScript de 200 kilobytes na página de contato também a carrega na página inicial, nas páginas de produto e no arquivo do blog — mesmo que essa biblioteca não faça nada útil ali. O efeito acumulado surge aos poucos. Um plugin adicionado neste trimestre, outro no mês seguinte, um terceiro depois que alguém pediu um recurso — e, um ano depois, a página está executando três vezes mais código do que no lançamento. O plugin gratuito Query Monitor torna isso visível: ele mostra cada consulta ao banco de dados, qual código a acionou e quanto tempo levou. Uma página com 150 consultas ao banco, das quais 20 são geradas por um único plugin, é um sinal claro. Toda Página Montada do Zero, Toda Vez O WordPress constrói páginas por meio de um processo que envolve ler configurações, buscar conteúdo, executar lógica de template e montar a saída final em HTML. Para um post de blog simples, isso pode exigir 40–60 consultas individuais ao banco de dados. Para uma página de produto em uma loja maior, o número pode passar de 200. Nada dessa saída muda entre um visitante e outro para a mesma página — ainda assim, o processo roda por completo a cada solicitação. O cache de página resolve isso diretamente. Depois que uma página foi montada, o resultado é armazenado como um arquivo HTML pronto. Os visitantes seguintes recebem esse arquivo sem acionar consultas ao banco ou execução de PHP. O trabalho do servidor deixa de ser "montar esta página" e passa a ser "enviar este arquivo", o que é dramaticamente mais rápido e consome muito menos poder de processamento por solicitação. Um site WordPress lento sob tráfego comum frequentemente se normaliza assim que o cache de página é configurado corretamente — não porque o código do site melhorou, mas porque a maioria das solicitações deixou de executá-lo. A ressalva importante: essa abordagem só funciona para páginas cujo conteúdo é igual para todos os visitantes. Fluxos de checkout, painéis de conta e páginas de carrinho contêm dados específicos do usuário e não podem ser servidos de um cache genérico. Qualquer configuração de cache para um site de e-commerce precisa de regras explícitas sobre quais páginas estão isentas. Temas Feitos para Tudo, Otimizados para Nada Temas multipropósito — divulgados com promessas de layouts ilimitados, dezenas de estilos de cabeçalho incluídos e drag-and-drop para tudo — conseguem essa versatilidade ao incluir código para todas as possíveis configurações ao mesmo tempo. O código do layout de portfólio carrega mesmo quando você está rodando um site de restaurante. Os estilos de arquivo em formato de revista carregam mesmo quando você só tem um blog. Cada solicitação de página carrega toda essa base de código, independentemente de quanto dela realmente se aplica. Um tema projetado para um propósito mais específico pode ser significativamente mais leve porque não precisa contemplar cenários para os quais não foi construído. Temas como GeneratePress, Kadence e Blocksy são frequentemente citados em discussões de desempenho porque sua saída padrão é compacta, eles carregam recursos condicionais apenas quando esses recursos estão ativos e não presumem que você precise de todas as funcionalidades que tecnicamente suportam. Construtores de página intensificam a questão do peso do tema. Editores visuais traduzem decisões de design em HTML e CSS por meio de camadas de abstração. A marcação que eles geram tende a ser substancialmente mais verbosa do que um código escrito manualmente para o mesmo resultado visual — e mais JavaScript costuma ser necessário para manter os recursos de edição do construtor em tempo de execução, mesmo para visitantes que não estão editando nada. Um Banco de Dados que Cresceu Além do Necessário O banco de dados do WordPress cresce em direções que nada têm a ver com publicar mais conteúdo. Cada atualização de post cria uma versão salva adicional — o WordPress preserva todas por padrão, o que significa que um artigo revisado com frequência pode ter dezenas de registros idênticos ou quase idênticos. Plugins gravam seus próprios registros e frequentemente os deixam para trás depois de serem desinstalados. Dados transitórios — registros temporários que plugins criam para armazenar resultados intermediários — se acumulam sem verificações automáticas de expiração. Spam de comentários se acumula na fila de moderação. Conteúdo excluído fica na tabela de lixo. Nada disso afeta o site visualmente. O que ele afeta é o desempenho das consultas. À medida que as tabelas crescem, as consultas demoram mais para terminar. A interface administrativa, que executa seu próprio conjunto de consultas, começa a parecer lenta independentemente de como as páginas do frontend se comportam. Páginas de arquivo e resultados de busca — que percorrem porções maiores dos dados de conteúdo — sofrem a degradação mais visível. Definir um teto para revisões evita recorrência. Adicionar define('WP_POST_REVISIONS', 5); ao wp-config.php limita o armazenamento às cinco versões mais recentes por post. Manutenção periódica — remoção de registros órfãos, transientes expirados e rascunhos acumulados — mantém os tempos de consulta estáveis ao longo do tempo. Ativos Percorrendo Mais Distância do que Precisam A transmissão de rede tem um componente físico que o software não consegue eliminar: os dados se movem por cabos e infraestrutura sem fio em velocidades mensuráveis, e a distância introduz atraso mensurável. Um visitante em Sydney solicitando uma página hospedada em Amsterdã experimenta esse atraso em cada ativo que o navegador busca — cada folha de estilo, cada arquivo de script, cada imagem. Uma CDN distribui cópias de ativos estáticos em nós posicionados mais perto dos usuários finais. O servidor de hospedagem continua gerando HTML dinamicamente, mas todo o resto — as imagens, folhas de estilo e arquivos JavaScript que compõem a maior parte da transferência de dados de uma página — chega de um ponto geograficamente mais próximo do visitante. Para sites com público espalhado por vários países ou continentes, isso reduz de forma significativa o que os visitantes realmente percebem. ## A Sequência de Correção: Por Onde Começar e Por Que a Ordem Importa **Medição de base antes de qualquer coisa.** Abra o Google PageSpeed Insights, insira sua URL e execute os testes para mobile e desktop. Salve os resultados completos — não apenas as pontuações, mas as oportunidades e diagnósticos específicos. Esse documento é sua referência. Sem ele, você não terá como confirmar quais mudanças realmente melhoraram as coisas e quais não tiveram efeito. **Resolva primeiro o tempo de resposta do servidor.** Verifique seu TTFB nos resultados do PageSpeed. Se ele aparecer acima de 500ms de forma consistente, as otimizações restantes serão limitadas por esse teto. Avalie sua hospedagem atual: você está em um plano com alocação dedicada de memória ou em um onde os recursos variam conforme a demanda compartilhada? Para sites que já passaram da fase inicial, um VPS com RAM e CPU fixas — como o que [Serverspace](https://serverspace.com.br/services/vps-server.md) oferece — elimina a imprevisibilidade introduzida por ambientes compartilhados. Considere a região do servidor ao mesmo tempo: se seu público está principalmente em um país, hospedar nele ou perto dele deve ser o padrão. **Configure o cache de página.** WP Rocket é a opção paga mais completa; ele lida com cache de página, cache de navegador, minificação de arquivos e várias outras otimizações a partir de uma única interface e funciona corretamente logo de início na maioria das configurações. LiteSpeed Cache é a alternativa gratuita mais forte para hosts que executam servidores LiteSpeed. No mínimo, habilite cache de página e cabeçalhos de cache de navegador. Essas duas configurações sozinhas normalmente têm o maior impacto mensurável nas métricas de tempo de carregamento. **Processe toda a mídia da biblioteca.** Plugins como Imagify, ShortPixel ou Squoosh (para trabalho manual) podem reprocessar a biblioteca existente em massa. Configure a ferramenta para rodar automaticamente em novos uploads e para gerar versões WebP. Ative o lazy loading para imagens fora da área inicial visível — isso faz com que os downloads de imagem aconteçam apenas quando o visitante rola a página em direção a elas, em vez de tudo no carregamento inicial. **Audite os plugins ativos de forma metódica.** Desative cada plugin temporariamente, execute um teste de velocidade e depois reative-o. Isso consome tempo, mas revela quais extensões trazem a maior carga. Qualquer plugin que produza uma melhoria mensurável quando desativado merece uma análise mais profunda: pode ser substituído por uma alternativa mais leve? Pode ser desativado em páginas onde não tem função? O Asset CleanUp permite controle por página sobre quais scripts e estilos são carregados, possibilitando exclusão cirúrgica em vez de escolhas tudo ou nada. **Mantenha o banco de dados de forma proativa.** Faça uma limpeza inicial com o WP-Optimize ou ferramenta equivalente — isso trata os registros acumulados já existentes. Adicione o limite de revisões ao wp-config.php. Programe limpezas recorrentes, no mínimo trimestrais, para que o banco não volte ao estado anterior. **Conecte uma CDN para entrega estática.** O plano gratuito da Cloudflare atende adequadamente a maioria dos sites WordPress e se integra diretamente aos principais plugins de cache. A Bunny.net oferece configuração mais granular e melhor desempenho para regiões específicas de entrega, a um custo modesto. O plugin de cache normalmente lida com a configuração da CDN por meio do próprio painel de ajustes, o que simplifica bastante a instalação. **Refaça todos os testes e compare.** Verifique as métricas específicas que foram destacadas na base — o TTFB caiu? O LCP melhorou? As pontuações mobile subiram? Trabalhe nos itens restantes apontados e teste novamente. ## Correspondência de Sintomas: O Que Você Vê vs. O Que Está Causando | Sintoma observado | Fonte provável | Primeira ação a tomar | | --- | --- | --- | | Todas as páginas lentas, independentemente do tipo de conteúdo | Capacidade computacional do servidor ou TTFB | Meça o TTFB; faça upgrade para VPS se estiver acima de 500ms; verifique a versão do PHP (deve ser 8.1+) | | Páginas com muitas imagens muito mais lentas do que páginas só com texto | Arquivos de mídia não processados, entregues no tamanho original | Comprimir a biblioteca em massa; ativar saída WebP; habilitar lazy loading | | A primeira visita é lenta; visitantes recorrentes carregam rápido | Cache de página ausente ou parcialmente ativo | Verifique se o plugin de cache está gerando arquivos estáticos; confira os cabeçalhos de cache do navegador | | O painel parece lento independentemente do frontend | Tamanho do banco de dados; plugin gerando consultas administrativas caras | Faça limpeza do banco; use o Query Monitor para identificar o plugin mais pesado | | Mais lento para visitantes em países distantes | Distância de rede entre servidor e visitante; ausência de CDN | Ative a CDN; avalie se a região do servidor corresponde à geografia do público principal | | Pontuação mobile 40+ pontos abaixo da desktop | Tempo de execução de JavaScript em dispositivos de menor potência | Adie scripts não críticos; audite embeds de terceiros; teste em um dispositivo real de faixa intermediária | | O desempenho caiu após instalar um plugin específico | O plugin adiciona scripts ou consultas em todo o site, mesmo onde é irrelevante | Desative o plugin e teste novamente; use o Asset CleanUp para restringir onde ele carrega | | O conteúdo se rearranja visivelmente durante o carregamento (CLS) | Imagens sem dimensões explícitas; fontes ou anúncios carregados tardiamente | Adicione width/height às tags img; pré-carregue fontes críticas; revise a posição dos anúncios | ## Quando a Lentidão Apareceu Depois de Trocar de Hospedagem Um site WordPress lento após a migração segue sua própria lógica de diagnóstico. O conteúdo não mudou. Os plugins não mudaram. Algo no novo ambiente é diferente do que o site foi ajustado para, e encontrar isso exige verificar um conjunto específico de coisas. A versão do PHP é o ponto de partida. Versões mais antigas do PHP processam o WordPress de forma muito menos eficiente do que as versões atuais. O PHP 7.4 — ainda padrão em alguns painéis de controle — executa a mesma carga de trabalho do WordPress de forma perceptivelmente mais lenta que o PHP 8.2. Se o host anterior estava usando uma versão recente do PHP e o novo passou a usar uma mais antiga por padrão, a diferença será perceptível em cada requisição. Alterar isso leva dois minutos no painel da hospedagem e vale a pena verificar antes de qualquer outra coisa. Ferramentas de cache armazenam configurações específicas do ambiente do servidor — caminhos absolutos de arquivos, tipo de software do servidor (Apache versus Nginx versus LiteSpeed), formatos de regras de reescrita. Essa configuração não é transferida de forma significativa entre hosts. A abordagem correta após a migração é limpar todos os arquivos em cache e reconfigurar o plugin de cache a partir de seus padrões no novo servidor, como se fosse uma instalação nova. Tentar importar configurações antigas frequentemente resulta em regras que tecnicamente existem, mas não funcionam corretamente no novo ambiente. A conectividade do banco de dados merece ser verificada, especialmente se o novo host separa o servidor de banco do servidor web (comum em ambientes cloud e gerenciados). Um servidor web que precisa atravessar uma fronteira de rede para buscar conteúdo do banco em cada consulta introduz latência que se acumula ao longo do carregamento da página. Se o novo host oferece Redis ou Memcached, habilitar cache de objetos por meio de um plugin como W3 Total Cache ou pela integração de cache de objetos do WP Rocket reduz substancialmente a frequência dessas consultas entre servidores. Por fim, confirme se as referências de URL dentro do banco de dados foram totalmente atualizadas durante a migração. Ferramentas de migração às vezes deixam passar registros em tabelas menos óbvias do banco, deixando referências fixas ao domínio antigo. Isso gera cadeias de redirecionamento ou alertas de mixed content que o navegador precisa resolver antes de a página terminar de carregar. Rodar o Better Search Replace com o domínio antigo como termo de busca após a migração detecta esses casos. ## Cinco Perfis de Site e os Problemas de Velocidade que Eles Normalmente Desenvolvem **Blog de conteúdo em hospedagem de entrada.** O desempenho parece aceitável na maior parte do tempo, mas piora drasticamente quando um post atrai tráfego significativo — uma menção em newsletter, um compartilhamento popular nas redes sociais. O modelo de hospedagem simplesmente não foi feito para absorver picos súbitos de requisições. A intervenção prática é um bom cache de página (que reduz drasticamente a carga por requisição do servidor) combinado com uma reavaliação de se o plano atual de hospedagem corresponde aos padrões reais de tráfego. Para um blog que recebe picos ocasionais, o cache sozinho muitas vezes estabiliza o desempenho sem exigir mudança de hospedagem. **Loja WooCommerce com catálogo de produtos.** Páginas de categoria e produto podem ser pré-geradas e armazenadas em cache. O fluxo de checkout não pode — ele envolve dados de sessão, cálculos de imposto e verificação de estoque específicos de cada usuário e transação. O desempenho dessas páginas dinâmicas depende da velocidade bruta do servidor: memória disponível, tempo de execução do PHP e eficiência das consultas ao banco. O cache de objetos no servidor com Redis mantém dados frequentemente necessários na memória entre requisições, reduzindo o trabalho do banco em cada página dinâmica. É aqui que um serviço profissional de correção de site WordPress lento focado em WooCommerce normalmente começa — não na camada do tema ou das imagens, mas na configuração do servidor. **Site de fotografia ou portfólio visual.** O culpado quase sempre é o mesmo: imagens enviadas na resolução máxima. Uma página de portfólio carregando quinze fotografias em alta resolução pode transferir 80–120 megabytes de dados de imagem antes de a página terminar. A sequência de correção aqui é clara: comprimir em massa a biblioteca existente, ativar conversão para WebP para todos os futuros uploads, implementar tamanhos de imagem responsivos para que dispositivos móveis recebam arquivos com dimensões adequadas e usar lazy loading para que as imagens abaixo da área visível não compitam com as que já estão na tela. Uma CDN é especialmente vantajosa para sites de portfólio porque seus públicos costumam ser geograficamente dispersos. **Site corporativo construído com editor visual.** A característica de desempenho dos sites com page builder é peso no front-end — bibliotecas JavaScript para o sistema de interação do builder, CSS verboso que cobre seletores para padrões de layout não utilizados e, às vezes, scripts que bloqueiam a renderização e impedem que o conteúdo visível apareça até que tarefas em segundo plano sejam concluídas. O caminho de otimização envolve auditar quais scripts realmente são necessários no carregamento inicial versus quais podem ser adiados até depois da renderização inicial, além de verificar se as próprias configurações de desempenho do builder permitem desativar recursos que não estão em uso. Em alguns casos, esses sites ficam melhor atendidos por uma reconstrução com um editor mais leve. **Site que acumulou recursos ao longo de vários anos.** No lançamento: rápido, focado, simples. Três anos depois: uma ferramenta de chat ao vivo adicionada para uma campanha que acabou, um calendário de eventos ativo desde uma conferência única, um plugin de slider de uma decisão de design que depois foi revertida, uma ferramenta de analytics que ninguém lembra de ter instalado. O trabalho de otimização de velocidade do WordPress aqui é tanto editorial quanto técnico — estabelecer quais ferramentas ainda têm justificativa de negócio e remover tudo o que não tem. Cada plugin removido é um conjunto a menos de consultas, um conjunto a menos de scripts e uma obrigação de manutenção a menos. ## Quando Faz Sentido Buscar Ajuda Profissional Os passos descritos acima estão ao alcance de qualquer proprietário de site disposto a segui-los de forma metódica. Onde a abordagem autônoma atinge seus limites é no nível de código e infraestrutura — situações em que a lacuna de desempenho restante exige ler a saída de um profiler PHP, ajustar a estrutura de consultas MySQL, modificar arquivos de configuração do servidor ou identificar regressões de desempenho no código de um tema ou plugin. Um serviço de otimização de velocidade do WordPress operando nesse nível normalmente começa com uma auditoria estruturada em vez de alterar configurações imediatamente. A auditoria mapeia o que realmente está em execução, identifica onde o tempo está sendo gasto no ciclo da requisição e produz uma lista priorizada de intervenções. Os provedores de melhor serviço de otimização de velocidade do WordPress explicarão o que foi alterado e por quê — e não apenas entregarão uma pontuação melhor que você não consegue replicar ou manter. Entender como acelerar o WordPress no nível de infraestrutura — configuração de cache de objetos, parâmetros de opcode do PHP, otimização do MySQL — também depende de ter um ambiente de hospedagem que permita esses ajustes. Um plano compartilhado gerenciado normalmente não permite. Um VPS no qual você controla a stack do servidor permite. É por isso que migrar para um VPS capaz costuma ser o pré-requisito para qualquer trabalho sério de otimização em nível de infraestrutura, e não apenas um upgrade de hospedagem por si só. ## Padrões que Tornam os Esforços de Otimização Menos Eficazes Instalar várias ferramentas de desempenho ao mesmo tempo é uma forma confiável de criar problemas difíceis de atribuir. Um plugin de cache, uma ferramenta de minificação, um plugin de configuração de CDN e um serviço de otimização de imagem modificam cada um a forma como os ativos são entregues, armazenados em cache ou transformados. Quando essas ferramentas interagem de maneira inesperada — e isso acontece — uma página quebrada ou estilos ausentes podem resultar da combinação de mudanças, e não de uma única alteração. A abordagem correta é sequencial: uma mudança, um teste, uma comparação. A minificação excessiva de JavaScript quebra scripts com frequência suficiente para merecer cautela. Minificação renomeia variáveis e remove espaços, o que funciona bem para código bem escrito, mas pode quebrar scripts que dependem da preservação de nomes específicos de variáveis ou que verificam certas condições globais. Quando a minificação está ativada e algo para de funcionar, o passo de diagnóstico é excluir scripts um por um do processo de minificação em vez de desativar o recurso inteiro. Testar apenas em um computador desktop dá uma visão incompleta. O Google avalia mobile e desktop separadamente, aplica limites de desempenho diferentes para cada um e usa especificamente o desempenho mobile nas decisões de ranqueamento. Um site que passa confortavelmente nos testes de desktop pode, ao mesmo tempo, oferecer uma experiência mobile ruim — especialmente se carrega JavaScript que é processado lentamente em processadores menos potentes. Testar em um Android ou iPhone de faixa intermediária real, em uma conexão celular, revela o que a maioria dos visitantes realmente encontra. Por fim, tratar a otimização como um projeto concluído em vez de uma tarefa de manutenção contínua leva à regressão. Plugins recebem atualizações e às vezes ficam mais pesados. Novos recursos são adicionados sem uma auditoria de velocidade correspondente. O tráfego cresce e os requisitos do servidor mudam. Um teste trimestral de velocidade — literalmente uma URL, cinco minutos — detecta problemas cedo o suficiente para corrigi-los antes que os visitantes percebam. ## Conclusão Um site WordPress lento tem uma causa, e geralmente várias. As causas são identificáveis, as correções são documentadas e os resultados são mensuráveis. O que separa os sites que permanecem rápidos dos que não permanecem é menos uma técnica específica e mais o hábito de tratar desempenho como algo que exige atenção periódica, e não uma configuração única. A sequência que produz resultados de forma confiável: medir primeiro, corrigir o tempo de resposta do servidor antes de qualquer outra coisa, configurar cache, processar imagens, auditar plugins, limpar o banco de dados, adicionar uma CDN, medir novamente. Cada um desses passos é independente e testável. A melhora é cumulativa — um site que carregava em sete segundos pode chegar consistentemente a dois por meio desse processo, e em dois segundos a diferença percebida pelos visitantes é a diferença entre um site que parece funcional e um que parece rápido. ### Qual é a primeira coisa que devo verificar quando meu site WordPress está lento? Execute o site no Google PageSpeed Insights e observe especificamente o valor de TTFB (Time to First Byte). Se esse número estiver acima de 500ms, o problema começa no nível do servidor e deve ser tratado antes de qualquer outra coisa. Se o TTFB estiver dentro de uma faixa aceitável, os diagnósticos mostrarão quais elementos de front-end — imagens, scripts, fontes — são responsáveis pelo atraso. ### Quantos plugins são demais? Não existe um limite significativo baseado apenas na contagem. O que importa é o custo real de execução de cada plugin em cada requisição de página. Um site com 30 plugins leves pode performar melhor do que um com 12 plugins que carregam muito JavaScript. Use o Query Monitor para medir o que realmente está rodando por página em vez de auditar por número. ### Por que o desempenho mobile é mais baixo que o desktop no mesmo site? O Google mede o desempenho mobile com padrões mais rigorosos e simula uma CPU e uma conexão mais lentas ao calcular a pontuação. JavaScript que roda com eficiência em um processador desktop pode levar de três a quatro vezes mais tempo em um dispositivo móvel. A pontuação mobile reflete o que telefones de faixa intermediária em conexões móveis típicas realmente experimentam — e, para a maioria das categorias de site, isso representa a maior parte dos visitantes. ### Qual é a causa mais comum de lentidão especificamente após uma migração? A versão do PHP no novo host é o fator mais frequentemente negligenciado. Versões antigas do PHP processam WordPress consideravelmente mais devagar do que as versões atuais. Depois de confirmar que o PHP está atual (8.1 ou 8.2), a próxima verificação é a configuração do plugin de cache — ela não é transferida entre ambientes de servidor e precisa ser refeita do zero no novo host. ### Existe um ponto em que a otimização autogerida deixa de ser eficaz? Quando as intervenções padrão foram aplicadas — cache, processamento de imagem, auditoria de plugins, manutenção do banco de dados, CDN — e o site ainda apresenta desempenho abaixo do esperado, os problemas restantes normalmente estão no nível de código ou infraestrutura. Profiling de PHP, análise de consultas MySQL e ajuste de configuração do servidor exigem conhecimento técnico ou um serviço especializado. Para sites de e-commerce, em que a velocidade afeta diretamente a taxa de conclusão de transações, esse investimento geralmente se paga. ### Limpar o banco de dados realmente melhora a velocidade ou é só manutenção? Ambos, dependendo do que se acumulou. Tabelas de revisões grandes e registros extensos de transientes tornam as consultas ao banco visivelmente mais lentas, especialmente em páginas que executam consultas complexas — resultados de busca, arquivos, listagens de produtos WooCommerce. Em um site onde as tabelas de revisões cresceram para centenas de milhares de registros, a limpeza produz uma melhora perceptível. Em um site mais novo com volume de conteúdo modesto, o efeito é menor, mas o benefício de manutenção continua. https://serverspace.com.br/about/blog/melhores-ferramentas-gratuitas-para-criar-e-testar-aplicacoes-web.md Compare as melhores ferramentas gratuitas para testar aplicações web em 2026. Opções open source e dicas de setup. Subir uma build com bug às 17h de uma sexta-feira significa que o seu fim de semana já era. Essa observação meio sombria explica por que toda equipe de engenharia razoável trata a verificação de qualidade como parte do processo de entrega, e não como um item extra que alguém pode esquecer. Segundo dados de analistas, a fatia de automação ficou perto de 20 bilhões de dólares em 2025, com projeções de dobrar bem antes de 2031. Cerca de 84 por cento dos desenvolvedores hoje escrevem código junto com assistentes de IA, o que significa que o volume de código novo cresce mais rápido do que a revisão manual consegue acompanhar. A boa notícia: a maioria das ferramentas mais fortes para testar aplicações web tem preço de exatamente zero. Aqui vamos passar pelas melhores escolhas gratuitas em sete frentes: automação, carga, performance, manual, regressão, visual e segurança. Ao fim do texto você deve conseguir apontar quais ferramentas de teste de software para aplicações web pertencem à sua stack e ter uma ideia razoável de como encaixá-las num pipeline de entrega real. ## Por que ferramentas de teste para aplicações web importam mais do que nunca em 2026 A pressão por qualidade vem subindo há anos. Pesquisas recentes indicam que CI/CD já mora dentro de nove em cada dez organizações de QA, e uma filosofia API-first atinge 82 por cento das empresas pesquisadas. Quando cada merge na branch principal pode chegar à produção em menos de uma hora, cada merge também é um incidente em potencial à espera de acontecer. Sem checagens disparadas automaticamente a cada push, a conta simplesmente não fecha. Outro fator merece menção. As chamadas plataformas de vibe coding (Lovable, Bolt.new, v0 e companhia) hoje cospem milhares de linhas de código funcional a partir de uma única frase em inglês. A saída parece limpa, roda na primeira tentativa e passa nos smoke tests básicos. Mas problemas mais silenciosos continuam silenciosos por baixo: hooks de acessibilidade faltando, race conditions sutis, fluxos de autenticação frágeis, endpoints expostos. Nenhuma dessas preocupações faz parte do que o gerador foi treinado para produzir. As melhores ferramentas de teste para aplicações web fecham exatamente essa lacuna. Um portfólio sensato de ferramentas de teste de software para aplicações web percebe a quebra antes que um cliente abra um ticket, impede que o débito técnico vire bola de neve e permite à equipe entregar com frequência sem pagar o preço em alertas das 3 da manhã. A velha narrativa de que testar atrasa o desenvolvimento envelheceu mal. O trabalho investido antecipadamente vence o esforço de recuperação depois de um incidente, e vence por uma margem larga. ## Tipos de teste que sua aplicação web realmente precisa Antes de escolher produtos pelo nome, mapear o território ajuda. O teste de aplicações web se divide de forma limpa em duas grandes categorias. A verificação funcional checa se as features se comportam conforme especificado: testes unitários no nível da função, testes de integração entre módulos, fluxos completos atravessando a UI de ponta a ponta (frequentemente abreviado como E2E), varreduras de regressão depois que alterações chegam, mais suítes de aceitação amarradas a resultados de negócio. A verificação não funcional faz uma pergunta diferente, olhando para como a aplicação se comporta: sob picos de tráfego, em velocidade pura, quando sondada por vulnerabilidades, com tecnologia assistiva e no uso diário. Dentro de cada categoria, práticas diferentes se aplicam. Scripts automatizados repetem cenários fixos a cada commit, então a quebra óbvia é notada em minutos. Sessões exploratórias conduzidas por humanos cobrem os cantos de UX onde nenhum script sabe o que afirmar. Execuções de stress imitam picos de tráfego. Diffs de screenshot sinalizam mudanças acidentais de CSS. Sondagens de segurança caçam encadeamentos que um atacante poderia explorar. Qualquer equipe sensata escolhe três ou quatro práticas e deixa o resto esperar. O perfil de risco é quem dirige essa mistura, não as manchetes. ## Melhores ferramentas de automação para testar aplicações web As ferramentas de automação para teste de aplicações web carregam a maior parte do peso no dia a dia de qualquer setup moderno de verificação. Três ferramentas open source dominam toda comparação recente, e cada uma tem seu próprio caráter bem definido. O Playwright lidera a lista do que projetos novos escolhem hoje. Apoiado pela Microsoft, o framework dirige Chromium, Firefox e WebKit (da Apple) através de uma única API compartilhada. Os specs podem ser escritos em TypeScript, JavaScript, Python, .NET ou Java. Recursos úteis embutidos: auto-waiting que mata o clássico pesadelo dos timeouts instáveis, interceptação de rede para mockar dependências, execução paralela sem nenhuma assinatura na nuvem, mais um trace viewer que reproduz cada falha como uma linha do tempo navegável. Nada na distribuição open atrás de paywall. O Cypress mantém uma base fiel de usuários nas casas de JavaScript e TypeScript. A coisa que ele faz melhor que qualquer rival é ergonomia do desenvolvedor. Os specs leem quase como inglês claro, o runner mostra cada comando enquanto ele acontece, e o debug com viagem no tempo corta horas de qualquer investigação. Suítes com até 500 specs aproximadamente rodam sem dor. Por padrão, o Cypress dirige apenas engines baseadas em Chromium, então cobrir Safari exige trabalho adicional. O Selenium se aguenta desde 2004 e ainda ancora muitos pipelines corporativos. A cobertura de linguagens é incomparável: Java, Python, C#, Ruby, JavaScript, Kotlin e por aí vai. O ecossistema comunitário ao redor dele esmaga qualquer alternativa. O preço é a verbosidade: o setup envolve mais peças móveis e os specs precisam de linhas extras para expressar o que frameworks mais novos resolvem implicitamente. Mais duas menções honrosas. O WebdriverIO agrada equipes já investidas em ferramental Node.js. O TestCafe contorna os drivers de navegador por completo, o que facilita a vida quando os agentes de CI vivem atrás de políticas corporativas rígidas. Como escolha padrão para a maior parte das situações, o Playwright leva a taça; ele cobre a fatia mais ampla de cenários de teste com o menor atrito possível. ## Melhores ferramentas gratuitas para teste de carga em aplicações web O código parece lindo até o tráfego de verdade aparecer. As ferramentas de teste de carga para aplicações web oferecem uma prévia desse encontro, enquanto ainda dá tempo de consertar o que dobra sob pressão. O Apache JMeter segura essa categoria há quase duas décadas. Gratuito, baseado em Java e rico em suporte a protocolos, o JMeter martela HTTP, HTTPS, REST, SOAP, FTP, JMS e vários endpoints de banco de dados. A interface desktop ajuda a desenhar cenários; a invocação headless cuida das execuções de produção e encaixa nos pipelines. O JMeter continua entre as melhores opções gratuitas para teste de carga em aplicações web, principalmente quando protocolos diferentes de HTTP puro entram em cena. O k6 da Grafana Labs parece o JMeter reescrito para como as equipes trabalham hoje. Os cenários são módulos JavaScript simples, a integração com o pipeline se resume a uma invocação de CLI, e as métricas fluem limpas para o Grafana ou qualquer store compatível com Prometheus. O binário open source segue gratuito indefinidamente. O k6 aparece basicamente em todo ranking de ferramentas de teste de carga em 2026 porque combina com a forma como as equipes de engenharia realmente constroem e enviam código hoje. O Locust oferece um lar amigável para a galera do Python: a geração distribuída de carga vem embutida, os cenários são escritos em Python idiomático e um dashboard ao vivo mostra a vazão de requisições durante a execução. O Artillery cobre terreno parecido pelo lado Node.js com arquivos YAML simples. O Vegeta, escrito em Go, foca de forma estreita em martelar um endpoint em RPS fixo. Uma armadilha pega os iniciantes com frequência. Rodar carga pesada de um único laptop produz ficção, não dados. O roteador de casa faz throttling, o NAT bagunça as conexões paralelas em paralelo, e a CPU do laptop satura muito antes do servidor sob teste sentir qualquer pressão. Algumas máquinas na nuvem atuando como geradoras de tráfego entregam números realistas, e dá para apagar tudo no minuto em que o teste terminar. A [hospedagem VPS da Serverspace](https://serverspace.com.br/services/vps-server.md) encaixa nesse padrão descartável: o provisionamento leva minutos, o faturamento é por hora e várias regiões geográficas estão disponíveis caso você queira origens de tráfego espalhadas. ## Ferramentas de teste de performance para aplicações web Onde o teste de carga responde o que quebra em escala, as ferramentas de teste de performance para aplicações web focam em como tudo parece para um único visitante. A escolha padrão em 2026 é o Google Lighthouse, embarcado no Chrome DevTools e disponível de graça para qualquer pessoa com um navegador. Uma rodada do Lighthouse entrega notas em quatro seções: Performance, Acessibilidade, Boas Práticas e SEO. A nota de Performance mistura Core Web Vitals (LCP, INP que ocupou o lugar do FID em 2024, e CLS) com Total Blocking Time mais alguns números de apoio. Três modos de execução: um painel embutido no DevTools, uma CLI baseada em Node para automação por script, ou uma extensão do Chrome. O PageSpeed Insights embrulha esse mesmo motor na infraestrutura do Google e adiciona dados de campo puxados do conjunto Chrome User Experience Report. Combinar medidas de laboratório com métricas de visitantes reais te aproxima do mais perto da verdade que o monitoramento de performance em produção consegue chegar. O WebPageTest preenche um nicho diferente: os testes saem de pontos geográficos específicos e conseguem imitar redes lentas mais celulares fracos, ambos úteis quando a audiência mora fora dos grandes centros. O painel Performance do próprio Chrome DevTools entra em ação quando o Lighthouse sinaliza algo e você precisa rastrear até chamadas específicas. O GTmetrix veste os resultados do Lighthouse num relatório bonito; o plano gratuito serve para compartilhar com stakeholders. ## Ferramentas de teste manual para aplicações web e quando ainda fazem sentido A automação é necessária; não é suficiente. As ferramentas de teste manual para aplicações web sobrevivem porque alguns defeitos só aparecem quando um humano fica futucando. Um rótulo mal posicionado que descarrila cada novo cadastro, uma transição que dá enjoo num celular, uma sequência que ninguém na equipe pensou em codificar num script: a automação não acha nada disso. Os scripts vão fundo em terreno conhecido; as pessoas vagam por território mais amplo e percebem as esquisitices pelo caminho. As próprias DevTools do navegador não custam nada e cuidam da maior parte das tarefas diárias de inspeção: cutucar elementos, observar tráfego XHR, perfilar a renderização. BrowserStack Live e LambdaTest oferecem créditos de trial grátis que permitem carregar sua aplicação em dezenas de combinações reais de dispositivo e navegador. O Selenium IDE, distribuído como extensão do Chrome, grava cliques mais entrada de teclado em scripts reproduzíveis, o que abaixa a barreira para gente de QA que não programa. Para coordenar rodadas de teste manual, Qase e TestRail entregam planos gratuitos utilizáveis por pequenos grupos de QA. O Jam.dev brilha na hora de abrir tickets de bug: uma captura puxa tela, log de rede, console output e passos para reproduzir em um único disparo, removendo a maior parte do vai-e-volta entre QA e engenharia. ## Ferramentas de teste de regressão para aplicações web Entre as muitas formas que software encontra de envergonhar quem o escreveu, o sabor pior é uma feature que funcionava ontem e parou de funcionar hoje. As ferramentas de teste de regressão para aplicações web existem exatamente para esse cenário. Na realidade do dia a dia, o teste de regressão é menos uma categoria à parte e mais um padrão de uso: qualquer framework que rode sua suíte E2E também cobre as obrigações de regressão. Playwright, Cypress e Selenium servem todos como ferramentas automatizadas de regressão para aplicações web assim que vivem dentro de um pipeline de CI disparado por cada pull request que cai. Em 2026, rodar regressão a cada PR deixou de ser opcional para virar premissa básica. GitHub Actions, GitLab CI e CircleCI oferecem tiers gratuitos generosos o bastante para bases de código pequenas e médias. As regressões visuais são pegas por BackstopJS ou Percy, ambos comparando screenshots novos contra uma baseline aprovada. Para regressões de API, coleções de requisição no Bruno ou Hurl vivem ao lado do código no Git e rodam a cada push. ## Melhores ferramentas de teste visual para aplicações web A verificação funcional confirma que clicar num botão envia o formulário. Ela não consegue te dizer que o botão agora pende metade fora da tela num iPhone SE porque alguém empurrou um valor de padding em quatro pixels. As melhores ferramentas de teste visual para aplicações web tapam esse buraco através de comparação pixel a pixel: tira uma foto de um estado bom conhecido, tira foto do estado atual, destaca cada diferença visível. O Percy da BrowserStack continua sendo o entrante mais polido, com um tier gratuito dimensionado para projetos open source mais pequenos usuários comerciais. O Chromatic, mantido pela turma do Storybook, casa naturalmente com fluxos orientados a componentes e oferece seu próprio plano hobby gratuito. O BackstopJS roda inteiramente em hardware local sem nenhum serviço externo envolvido. O Argos CI é o entrante mais novo; a visualização de diff dele está entre as mais limpas. Quem já usa Playwright deve saber que ele embute a própria API de comparação por screenshot, suficiente para cobertura visual básica sem um serviço pago à parte. ## Ferramentas de teste de penetração e segurança para aplicações web Bugs decepcionam os usuários. Brechas de segurança os perdem de vez. As ferramentas de teste de penetração para aplicações web e a família mais ampla de ferramentas de teste de segurança descobrem o que o QA convencional nunca se dá ao trabalho de procurar. A checklist de referência que vale memorizar é o OWASP Top 10, com a edição de 2021 ainda funcionando como versão canônica: controle de acesso quebrado, falhas criptográficas, injection, design inseguro, configuração incorreta, mais várias outras coisas mais abaixo na lista. O OWASP ZAP encabeça o time open source. Ele roda igualmente bem como aplicação desktop com GUI completa ou como daemon headless estacionado dentro de um pipeline de CI. A cobertura de recursos inclui scans ativos automatizados, observação passiva do tráfego de navegação normal, mais ataques direcionados contra endpoints específicos. A comunidade empurra atualizações regularmente e a documentação é incomumente caprichada para algo distribuído de graça. O Nikto, um scanner de CLI, audita um servidor web contra uma base de mais de 7.000 problemas conhecidos. O Burp Suite Community Edition é a fatia sem custo da ferramenta que pentesters profissionais usam diariamente; certos pedaços avançados ficam atrás de paywall, mas a porção gratuita resolve bastante coisa. O SQLMap automatiza a descoberta e exploração de fraquezas de SQL injection. O Nuclei opta por uma abordagem orientada a templates; sua biblioteca de templates cresceu mais rápido nos últimos doze meses do que praticamente qualquer rival. Um lembrete jurídico sério se aplica a essa seção inteira. As ferramentas de teste de penetração para aplicações web só podem ser apontadas para sistemas dos quais você é dono ou tem autorização escrita para sondar. Apontar qualquer uma dessas para um site de terceiros sem permissão é crime na maioria das jurisdições, e a intenção não faz diferença alguma. ## Ferramentas gratuitas para testar aplicações web: comparação lado a lado As categorias acima mencionam vários produtos pelo nome. A tabela abaixo concentra as escolhas gratuitas mais fortes numa visão única e compacta, para você combinar uma ferramenta a uma tarefa sem precisar reler o artigo. Cada linha identifica a categoria coberta, o que a oferta gratuita inclui de fato, o tipo de equipe mais bem servida e se o projeto sai sob licença open source. | Ferramenta | Categoria | Limite gratuito | Indicada para | Open source | | --- | --- | --- | --- | --- | | Playwright | Automação / E2E | Ilimitado, sem nuvem paga | Projetos novos, cobertura cross-browser | Sim (Apache 2.0) | | Cypress | Automação / E2E | Core grátis, Cypress Cloud pago | Times de JavaScript focados em front-end | Sim (MIT, core) | | Selenium | Automação / E2E | Totalmente grátis | Corporativo, várias linguagens | Sim (Apache 2.0) | | k6 | Teste de carga | Core open source gratuito | Cargas modernas via CI | Sim (AGPL-3.0) | | Apache JMeter | Teste de carga | Totalmente grátis | Diversidade de protocolos, stacks legadas | Sim (Apache 2.0) | | Lighthouse | Performance | Totalmente grátis | Core Web Vitals e auditoria de SEO | Sim (Apache 2.0) | | OWASP ZAP | Segurança / Pen test | Totalmente grátis | Varredura automatizada de vulnerabilidades | Sim (Apache 2.0) | | Percy | Regressão visual | 5.000 screenshots/mês grátis | Consistência de UI | Não (proprietário) | | Postman | Teste de API | Free com limites de sincronização | Fluxo clássico de API | Não | | Bruno | Teste de API | Totalmente grátis, local-first | Gestão de testes de API via Git | Sim (MIT) | Leia a comparação como ponto de partida, não como decisão final de compra. Uma primeira suíte automatizada raramente exige mais que três componentes: um para E2E, um para performance e um para segurança. Empilhar extras antes de qualquer um dos três estabilizar costuma atrasar a equipe. ## Como montar seu próprio ambiente de testes do zero Escolher ferramentas é só metade do quebra-cabeça. Um setup de verificação funcional precisa de infraestrutura por baixo: uma duplicata de staging da aplicação de produção, um banco de dados isolado com fixtures críveis, um runner de CI com todas as ferramentas escolhidas pré-instaladas, armazenamento seguro de segredos, mais um caminho de notificação para as falhas chegarem a um humano rapidamente. Um padrão visto com frequência em 2026 se desenrola assim. Suba um VPS para hospedar staging. Coloque a stack inteira da aplicação dentro de contêineres Docker via Docker Compose, mantendo cada peça isolada. Suba um runner de CI separado, escolhendo entre GitHub Actions auto-hospedado, GitLab Runner ou Drone, dependendo de onde o repositório vive. Instale Chromium headless para que Playwright ou Cypress possam dirigir um navegador exatamente como num laptop de desenvolvedor. Pendure um gerenciador de segredos como Doppler ou HashiCorp Vault para chaves de API. Encaminhe os alertas de falha para o Slack. Os tiers gratuitos dos grandes provedores de nuvem aguentam confortavelmente a fase de protótipo, mas um staging que exercita testes de carga noturnos mais varreduras completas de regressão tende a estourar esses limites em alguns meses. Nesse cruzamento, faturamento mensal previsível em hardware dedicado costuma ganhar. Um [servidor VPS da Serverspace](https://serverspace.com.br/services/vps-server.md) entrega exatamente essa forma previsível: uma caixa de 2 vCPU com 4 GB de RAM hospeda confortavelmente uma aplicação de porte médio junto com Playwright, OWASP ZAP e um runner de CI na mesma máquina. ## Erros comuns ao escolher ferramentas para testar aplicações web Observar equipes escolhendo ferramentas para testar aplicações web ao longo de muitos projetos revela o mesmo punhado de erros se repetindo. **Erro um:** travar no framework antes de fechar o processo. Uma stack da moda sem nenhuma estratégia por baixo entrega resultado pior que uma stack careta usada com disciplina. Decida o fluxo primeiro; deixe o fluxo apontar para o produto. **Erro dois:** esticar uma ferramenta só por todas as categorias. O Selenium tecnicamente faz tudo, dados scripts suficientes mais paciência. O resultado é uma suíte inchada que ninguém gosta de manter seis meses depois. Combine cada ferramenta com a camada da pirâmide de testes onde ela genuinamente encaixa. **Erro três:** ignorar o preço da instabilidade. Uma suíte que falha aleatoriamente cinco por cento das vezes destrói a confiança mais rápido do que cobertura ausente jamais conseguiria. Estabilize de forma agressiva logo no começo, mesmo que isso signifique deletar temporariamente specs que se recusam a se comportar. **Erro quatro:** tratar a automação total como objetivo final. Sessões exploratórias ainda descobrem problemas que nenhum script teria antecipado, principalmente em torno de fluxos novos e comportamento incomum de usuário. **Erro cinco:** rodar testes de stress numa máquina de desenvolvedor. Os números desse arranjo são ficção. **Erro seis:** declarar staging como opcional. Direcionar tráfego em formato de produção contra uma cópia de staging é o seguro mais barato contra incidentes que existe, e segue subutilizado em todo lugar. **Erro sete:** cobrir apenas o caminho feliz. As falhas interessantes se escondem em estados de erro, race conditions, conexões lentas e comportamento que ninguém previu. Trave o caminho chato primeiro, depois saia atrás das coisas estranhas. ## Considerações finais e o que fazer a seguir As melhores ferramentas de teste para aplicações web em 2026 estão maduras, gratuitas e ao alcance de qualquer equipe disposta a gastar alguns dias de setup. O que separa um setup de verificação saudável de um quebrado quase sempre se reduz à consistência ao longo do tempo. Fixe um framework de automação e fique com ele durante pelo menos um trimestre. Adicione o Lighthouse ao seu pipeline de CI ainda nesta semana. Agende um teste de carga contra o staging antes do fim do próximo sprint. Aponte o OWASP ZAP contra a aplicação antes do próximo release de porte. Cada passo é pequeno. Empilhados, eles removem a maior parte dos modos de falha responsáveis pelos incidentes de sexta à noite que ninguém aprecia. ### Qual é a melhor ferramenta gratuita para testes automatizados de aplicações web? Para a maioria dos projetos novos, o Playwright é considerado a melhor opção gratuita. Ele oferece suporte aos principais navegadores, múltiplas linguagens de programação, execução paralela e recursos avançados como auto-waiting e trace viewer, sem exigir uma assinatura paga. ### Preciso usar apenas uma ferramenta para testar minha aplicação web? Não. Cada ferramenta é especializada em um tipo de teste. O ideal é combinar soluções para diferentes necessidades, como Playwright para testes E2E, k6 para testes de carga, Lighthouse para performance e OWASP ZAP para segurança. Essa abordagem oferece uma cobertura muito mais completa. ### Ferramentas gratuitas são suficientes para projetos em produção? Na maioria dos casos, sim. Frameworks open source como Playwright, Selenium, Apache JMeter, k6 e OWASP ZAP são amplamente utilizados em ambientes corporativos. Recursos pagos costumam adicionar colaboração em equipe, armazenamento em nuvem ou relatórios avançados, mas não são obrigatórios para criar um pipeline de testes eficiente. ### Com que frequência devo executar os testes da minha aplicação web? Os testes automatizados devem ser executados a cada commit ou pull request por meio do pipeline de CI/CD. Já testes de carga, auditorias de performance e verificações de segurança podem ser agendados regularmente, por exemplo antes de grandes releases ou em intervalos semanais, para identificar problemas antes que eles afetem os usuários. https://serverspace.com.br/about/news/freebsd-15-novos-sistemas-operacionais-no-vmware-e-novos-1-click-apps-agora-disponiveis-na-serverspace.md A Serverspace adicionou FreeBSD 15, FreeBSD 14 e Oracle Linux 8 para VMware. Novos 1-Click Apps também já estão disponíveis no painel. A **Serverspace** expandiu a biblioteca de sistemas operacionais para servidores VMware: - **FreeBSD 15**; - **FreeBSD 14**; - **Oracle Linux 8**. ## FreeBSD 15 O **FreeBSD 15** é a versão atual do FreeBSD, lançada em 2 de dezembro de 2025, desenvolvida para ambientes de servidor estáveis, de alto desempenho e altamente configuráveis. O sistema é frequentemente escolhido por sua operação previsível, recursos avançados de rede e alto nível de controle sobre o ambiente. A nova versão continua fortalecendo essas vantagens e torna o FreeBSD ainda mais conveniente para cenários modernos. ## Principais atualizações: - **Gerenciamento do sistema base via pkg** — o FreeBSD 15 permite instalar e atualizar o sistema base como um conjunto de pacotes. Para imagens VM e nuvens públicas, essa abordagem já é utilizada por padrão; - **Atualizações de virtualização** — o bhyve e o vmm receberam suporte para arm64 e RISC-V, além de novos recursos para cenários de rede e operação de sistemas convidados; - **Componentes do sistema atualizados** — novas versões do LLVM, OpenZFS, OpenSSH e OpenSSL foram incluídas na release; - **Compatibilidade aprimorada com aplicações Linux** — o Linuxulator agora conta com suporte às chamadas de sistema inotify; - **Otimizações para ambientes virtuais** — no Hyper-V, o TLB flush passou a utilizar hypercalls, o que pode gerar até 40% de ganho de desempenho nesse cenário. Além do FreeBSD 15, outras duas distribuições passaram a estar disponíveis no VMware: 1. FreeBSD 14 Versão estável para servidores, serviços de rede e tarefas de infraestrutura. **Destaques desta versão:** - componentes do sistema atualizados: OpenSSH, OpenSSL e OpenZFS; - suporte a TPM e GPU passthrough no hipervisor bhyve; - aumento do limite de núcleos de CPU em amd64 e arm64; - melhorias nos sistemas de arquivos UFS e nas verificações em segundo plano; - componentes de rede e ferramentas de virtualização atualizados. 2. Oracle Linux 8 Sistema operacional corporativo para aplicações enterprise, focado em estabilidade, compatibilidade e suporte de longo prazo. **Principais mudanças:** - suporte ao Unbreakable Enterprise Kernel para cargas corporativas; - compatibilidade com o ecossistema enterprise Linux; - separação dos repositórios BaseOS e AppStream para pacotes do sistema, linguagens, bancos de dados e aplicações; - ferramentas DTrace para diagnóstico e análise do sistema; - maior estabilidade para grandes infraestruturas e ambientes em nuvem. ## Novos 1-Click Apps no vStack ### 1. WireGuard Protocolo VPN moderno para criação de conexões seguras. **Principais recursos:** - acesso remoto ao servidor ou serviços internos; - configuração de rede privada entre dispositivos; - conexão segura entre múltiplos servidores; - VPN para equipes ou uso pessoal. ### 2. FASTPANEL Painel de gerenciamento de hospedagem via interface web. **Principais funções:** - hospedagem e administração de sites; - gerenciamento de domínios e certificados SSL; - configuração de caixas de e-mail; - gerenciamento de bancos de dados e versões PHP; - controle de hospedagem via navegador. ### 3. MongoDB Banco de dados NoSQL para projetos que exigem uma estrutura flexível de armazenamento de dados. **Ideal para:** - desenvolvimento de aplicações web e mobile; - estruturas de dados flexíveis ou frequentemente modificadas; - armazenamento de perfis, catálogos e eventos; - processamento de dados em projetos IoT; - desenvolvimento e testes com banco NoSQL. ### 4. ClickHouse Banco de dados colunar para analytics e consultas rápidas em grandes volumes de dados. **Onde é utilizado:** - analytics e relatórios; - processamento de logs e eventos; - análise de métricas de produtos e infraestrutura; - trabalho com séries temporais; - consultas rápidas em Big Data. ## Como conectar - Acesse o [painel de controle da Serverspace](https://my.serverspace.com.br/); - Selecione **"vStack"** e clique em **"Criar servidor"**; - Escolha o sistema operacional **Ubuntu**; - Na etapa de configuração, selecione a solução desejada na seção **"Aplicações"**; - Finalize a criação do servidor e comece a trabalhar com os novos 1-Click Apps. ## Para quem a atualização será útil A atualização é indicada para usuários que precisam preparar rapidamente um servidor para tarefas específicas: - **desenvolvedores** — ambientes de teste, bancos de dados e serviços de aplicações; - **engenheiros DevOps e administradores de sistemas** — cenários de infraestrutura, redes e virtualização; - **proprietários de sites** — gerenciamento de hospedagem, domínios, certificados SSL e e-mail; - **equipes e empresas** — aplicações corporativas, analytics, VPN e serviços internos. _A Serverspace é um provedor global de nuvem especializado em infraestrutura de alto desempenho para desenvolvimento de IA e cargas de trabalho prontas para produção. Acelere seu deploy com nosso ecossistema focado em desenvolvedores, que inclui API robusta, CLI e provedores Terraform, projetados para integração perfeita e escalabilidade instantânea._ https://serverspace.com.br/support/help/como-instalar-o-wsl-no-windows-10-e-11.md Aprenda a instalar o WSL no Windows 10 e 11 passo a passo. Guia completo sobre WSL 1 vs WSL 2, configuração e uso de distribuições Linux no Windows. Para interação nativa entre Windows e Linux, o WSL foi desenvolvido. O WSL traduz chamadas de sistema Linux em chamadas Windows similares, permitindo que aplicações criadas para Linux funcionem no ambiente Windows. No entanto, existe uma diferença importante entre o WSL 1 e o WSL 2: **WSL 1** é uma emulação de chamadas de sistema. Ele cria um espaço de usuário Linux, onde as chamadas de sistema Linux são traduzidas em chamadas da API do Windows. Exemplo: se um programa Linux chama fork() ou open(), o WSL 1 transforma isso nas chamadas correspondentes do Windows, como CreateProcess ou CreateFile. - Prós: acesso rápido ao sistema de arquivos do Windows. - Contras: nem todas as chamadas de sistema são suportadas (por exemplo, Docker). **WSL 2** é um kernel Linux completo. Ele usa uma máquina virtual baseada em Hyper-V. Internamente, um kernel Linux real da Microsoft é iniciado. As chamadas de sistema não são traduzidas: tudo é feito nativamente, como em uma máquina Linux regular. - Prós: máxima compatibilidade - Docker, systemd, iptables e outras ferramentas funcionam sem problemas. - Contras: acesso um pouco mais lento ao sistema de arquivos do Windows (/mnt/c/...). ## Como instalar o WSL no Windows? **Windows Subsystem for Linux (WSL)** é uma ferramenta que permite executar distribuições Linux diretamente no Windows sem usar máquinas virtuais. O WSL é útil para desenvolvedores e administradores de sistema que desejam trabalhar em um ambiente Linux sem sair do Windows. Neste guia, abordaremos a instalação do WSL no Windows 10 e Windows 11. Passo 1. Verificando sua versão do Windows Antes de iniciar a instalação, certifique-se de que sua versão do Windows suporta o WSL: - Windows 10 versão 2004 e superior (com a atualização de 2020 instalada); - Windows 11 — o suporte ao WSL é integrado por padrão. Verifique a versão do seu sistema: ``` winver ``` Captura de tela nº 1 — Versão Se a versão for inferior a 2004, atualize o Windows através da central de atualizações. Passo 2. Instalando o WSL via PowerShell A Microsoft simplificou a instalação do WSL — agora você precisa apenas de um comando: Execute o PowerShell como administrador. Execute o seguinte comando: ``` wsl --install ``` O comando irá automaticamente: - Habilitar os componentes necessários do Windows; - Instalar a versão mais recente do WSL (WSL 2); - Baixar e instalar o Ubuntu por padrão; - Após a conclusão da instalação, será necessária uma reinicialização do sistema. Passo 3. Instalar outra distribuição Linux (opcional) Se você deseja instalar outra distribuição (por exemplo, Debian, openSUSE, Kali, etc.), execute o comando: ``` wsl --list --online ``` Captura de tela nº 2 — Lista de distribuições Selecione a distribuição desejada da lista e instale-a: ``` wsl --install -d ``` Exemplo: ``` wsl --install -d Debian ``` Captura de tela nº 3 — Instalação Passo 4. Verificando a versão do WSL instalada Para descobrir qual versão do WSL está sendo usada (WSL 1 ou WSL 2): ``` wsl --list --verbose ``` Se você precisar alterar a versão para uma distribuição específica: ``` wsl --set-version 2 ``` Exemplo: ``` wsl --set-version Ubuntu 2 ``` Passo 5. Atualizar o kernel do WSL (se necessário) Se ocorrer um erro relacionado ao kernel durante a instalação, baixe a atualização do [site oficial da Microsoft](https://aka.ms/wsl2kernel): Captura de tela nº 4 — Outras distribuições Instale o arquivo .msi baixado e, em seguida, repita a instalação do WSL. Ele fornece um ambiente conveniente para desenvolvimento e trabalho com ferramentas Linux diretamente no Windows. Com o WSL, você pode executar o Docker, usar gerenciadores de pacotes (apt, yum), trabalhar com git e executar scripts Bash. ## FAQ - **Qual é a diferença entre WSL 1 e WSL 2?** WSL 1 traduz chamadas de sistema Linux em chamadas da API do Windows, tornando-o mais rápido ao acessar arquivos do Windows, mas menos compatível com algumas ferramentas Linux. O WSL 2 executa um kernel Linux real em uma máquina virtual leve, fornecendo compatibilidade total com Docker, systemd e outros utilitários. - **Qual versão do WSL devo escolher?** Para a maioria dos desenvolvedores, o WSL 2 é recomendado — oferece melhor desempenho, compatibilidade total com Linux e suporte para ferramentas de conteinerização. Escolha o WSL 1 apenas se você precisar de acesso mais rápido ao sistema de arquivos ou não tiver suporte de virtualização no seu dispositivo. - **Posso executar aplicações gráficas Linux no WSL?** Sim. No Windows 11, o WSL suporta nativamente aplicações GUI Linux. No Windows 10, você pode usar servidores X de terceiros (como VcXsrv) para exibir GUIs Linux. - **Como atualizo ou alterno entre versões do WSL?** Você pode listar as distribuições instaladas com: ``` wsl --list --verbose ``` Em seguida, altere uma específica para WSL 2 usando: ``` wsl --set-version 2 ``` - **O WSL funciona com Docker e systemd?** Sim. O WSL 2 suporta Docker, systemd, iptables e outras ferramentas Linux de baixo nível. O WSL 1 não suporta totalmente esses recursos. - **É seguro usar o WSL para desenvolvimento?** Absolutamente. O WSL é oficialmente suportado pela Microsoft e isola ambientes Linux do Windows, fornecendo uma maneira segura e eficiente de trabalhar com ferramentas de código aberto em sistemas Windows. https://serverspace.com.br/support/help/como-instalar-e-configurar-o-wine-no-ubuntu.md Aprenda como instalar e configurar o Wine para executar aplicativos Windows sem problemas. Este guia passo a passo fornece instruções claras. Hoje em dia, no mercado de tecnologias de TI, podemos ver diversos sistemas operacionais de não menos fornecedores e cada um tenta construir um sistema eficiente, rápido e estável. Mas pessoas diferentes têm pontos de vista diferentes para construir novos produtos que devem gerar receita e ser competitivos em comparação com outros produtos. A arquitetura de rede moderna pressupõe um conjunto e pilha de tecnologias em uso de vários fornecedores, mas como relacionar e conectar esses recursos e vantagens de diferentes sistemas operacionais? Para isso temos o Wine! Utilitário de código aberto e emulador que pode ajudar a executar diferentes aplicações no conjunto de sistemas operacionais UNIX. Mas, realmente precisamos disso? As principais causas dos problemas: - **Diferenças de arquitetura:** O Windows é executado em arquiteturas x86 (32bit) e x64 (64bit), enquanto o Linux pode ser executado em várias arquiteturas, como x86, x64, ARM e outras. Isso leva ao fato de que alguns aplicativos Windows compilados para uma arquitetura específica não podem ser executados no Linux; - **Diferenças em APIs e bibliotecas:** Windows e Linux usam diferentes conjuntos de APIs (interfaces de programação de aplicativos) e bibliotecas. Isso significa que aplicativos que dependem de APIs ou bibliotecas específicas do Windows não podem ser executados no Linux sem configurações adicionais ou camada de compatibilidade; - **Dependência de arquivos .exe:** Muitos aplicativos Windows possuem arquivos executáveis com a extensão .exe que não são compatíveis com o Linux. Isso requer o uso de emuladores ou ferramentas de compatibilidade, como o Wine, para tentar executar esses arquivos .exe no Linux; - **Aplicativos Proprietários:** Alguns aplicativos Windows são proprietários e não fornecem versões para Linux. Isso torna impossível executá-los no Linux sem usar máquinas virtuais ou outras soluções. Todos esses problemas podem ser superados usando vários métodos, como usar emuladores (por exemplo, Wine) ou máquinas virtuais que permitem executar aplicativos Windows no Linux. No entanto, isso pode exigir configuração adicional e pode não garantir 100% de compatibilidade e estabilidade dos aplicativos. Portanto, é recomendável usar aplicativos alternativos projetados especificamente para Linux sempre que possível para garantir o melhor desempenho e compatibilidade. ## Requisitos - Privilégios de root; - Ubuntu 20 ou versão superior; - Algum conhecimento sobre trabalho com sistema operacional; - Conexão com a Internet. ## Instalação Primeiro de tudo, precisamos atualizar os pacotes do sistema em nossa máquina para seu funcionamento adequado: ```bash apt update && apt upgrade -y ``` Captura de tela nº 1 — Atualizar SO Adicionando uma nova arquitetura para a máquina Linux. O Wine suporta aplicativos em arquitetura de 32bit, mas há uma exceção: nem todos têm suporte em sistemas de 64bit. Portanto, para adicionar suporte para a arquitetura de 32bit, digite este comando: ``` dpkg --add-architecture i386 ``` Captura de tela nº 2 — Adicionando arquitetura Lembrete! Todo o pacote de software exigirá pelo menos 30GB de espaço livre em disco e pelo menos dois núcleos de CPU para executar o processo. No próximo passo, vamos instalar o componente principal desse sistema, o Wine: ```bash apt install wine ``` Durante o processo de instalação, o sistema pode solicitar sua confirmação para instalar pacotes adicionais. Basta pressionar "Y" e "Enter" para continuar a instalação. Vários aplicativos Windows precisam de GUI, vamos instalar: ``` add-apt-repository ppa:shemgp/gnome-40 ``` ```bash apt update && apt install mutter gnome-session gnome-shell ``` Captura de tela nº 3 — Adicionando Gnome shell Após o processo de instalação do Gnome shell e Wine, precisamos verificar antes de ir para a GUI, versão e instalação correta: ``` wine --version ``` Captura de tela nº 4 — Versão do Wine Se você vir essa linha de comando, significa que a instalação foi concluída corretamente! Adicione um novo usuário à máquina por questões de segurança, não queremos comprometer nenhum dado e permitir compartilhar responsabilidades e criar um ambiente seguro. Geralmente é recomendável não usar contas com direitos administrativos em tarefas cotidianas para reduzir a probabilidade de erros ou ações maliciosas. Para isso, digite o comando abaixo: ``` adduser jhon && usermod -aG sudo jhon ``` Captura de tela nº 5 — Adicionar usuário E podemos mudar para a interface GUI, você precisa abrir o painel [Serverspace e escolher o servidor](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) necessário: Captura de tela nº 6 — Canto superior direito No canto superior direito podemos ver o botão Web console, clique nele e seremos redirecionados para a interface GUI de nossa máquina: Captura de tela nº 7 — Interface GUI Ou você pode usar outro utilitário para conectar via GUI: - V**NC (Virtual Network Computing):** VNC significa Virtual Network Computing e serve como um protocolo de acesso remoto que facilita a exibição da área de trabalho de uma máquina remota em um computador local. Ao utilizar o VNC, os usuários ganham a capacidade de controlar remotamente a área de trabalho Linux e realizar uma infinidade de tarefas, como executar aplicativos e gerenciar arquivos; - **RDP (Remote Desktop Protocol):** RDP, um acrônimo para Remote Desktop Protocol, foi desenvolvido pela Microsoft e permite que os usuários estabeleçam conexões remotas com áreas de trabalho de sistemas Windows. Embora principalmente associado ao Windows, existem implementações de RDP para Linux, como xrdp, que permitem conexões a máquinas Linux através do cliente RDP; - **X11:** X11, também conhecido como X Window System, serve como o protocolo padrão para interfaces gráficas de usuário (GUI) em Linux e outros sistemas operacionais semelhantes ao Unix. Através do X11, os usuários podem executar aplicativos em um servidor remoto enquanto exibem suas janelas na máquina local; - **SPICE (Simple Protocol for Independent Computing Environments):** SPICE é um protocolo especializado projetado especificamente para acesso remoto a ambientes gráficos de área de trabalho. Notavelmente utilizado em cenários de virtualização, como dentro do hipervisor KVM, o SPICE fornece desempenho aprimorado e compressão de dados para uma experiência remota otimizada; - **NX:** NX, uma tecnologia desenvolvida pela NoMachine, oferece capacidades de acesso remoto e virtualização para ambientes gráficos de área de trabalho. Ao empregar o NX, os usuários podem desfrutar de desempenho elevado e compressão de dados simplificada, resultando em uma experiência remota superior. No entanto, retornando ao nosso processo de instalação, abra o terminal em aplicativos e digite: ``` winecfg ``` Captura de tela nº 8 — Configuração O Wine capacita os usuários do Linux a transcender as barreiras de incompatibilidade de sistemas operacionais e abraçar uma experiência de computação mais integrada. Embora aplicativos alternativos projetados especificamente para Linux sejam recomendados para desempenho e compatibilidade ideais, o Wine fornece uma ponte valiosa para acessar software Windows no ambiente Linux. https://serverspace.com.br/support/help/introducao-aos-clientes-de-acesso-remoto-rdp-para-linux.md Aprenda a configurar RDP no Linux com Debian 12. Instale o xrdp, libere a porta 3389 e prepare o acesso remoto. Use uma interface gráfica de forma simples e segura. # Introdução A interface gráfica (GUI — interface visual do sistema) é um componente essencial da computação moderna, pois permite que os usuários interajam com programas, aplicativos e sistemas operacionais de forma visual e intuitiva. O uso de uma GUI traz várias vantagens que tornam a experiência mais simples e eficiente: - **Intuitividade:** Interfaces gráficas usam ícones, menus, botões e elementos visuais familiares, facilitando o entendimento mesmo para quem não tem conhecimento técnico avançado. - **Facilidade de uso:** A GUI simplifica tarefas complexas, permitindo que usuários naveguem e executem ações com cliques, sem precisar digitar comandos. - **Curva de aprendizado menor:** Comparada à linha de comando (CLI), a interface gráfica é mais fácil de aprender, permitindo que o usuário comece a usar o sistema rapidamente. - **Feedback visual imediato:** As ações do usuário geram respostas visuais em tempo real, o que ajuda a evitar erros e aumenta a produtividade. - **Multitarefa:** É possível trabalhar com várias janelas e aplicativos ao mesmo tempo, tornando o uso mais eficiente. - **Representação visual de dados:** Informações complexas podem ser exibidas em gráficos, diagramas e imagens, facilitando a análise. - **Interatividade:** Recursos como arrastar e soltar, redimensionar janelas e usar controles deslizantes tornam a interação mais dinâmica. - **Acessibilidade:** Interfaces gráficas geralmente incluem recursos como leitores de tela, zoom e atalhos de teclado, tornando o uso mais inclusivo. - **Padronização:** Muitas interfaces seguem padrões de design semelhantes, o que traz consistência entre diferentes sistemas e aplicativos. - **Aparência visual:** Um bom design melhora a experiência geral, tornando o uso do computador mais agradável. Apesar de todas essas vantagens, a GUI nem sempre é a melhor escolha para todos os cenários. Em alguns casos, a linha de comando pode ser mais eficiente — especialmente para usuários avançados, administradores de sistemas e desenvolvedores que precisam de mais controle e automação. Em resumo, a interface gráfica tem um papel fundamental na computação moderna, oferecendo uma experiência acessível, intuitiva e visualmente agradável. Ao mesmo tempo, a combinação entre GUI e linha de comando cria um ambiente flexível, capaz de atender diferentes necessidades e perfis de usuários. ## Requisitos - Acesso root (administrador) - Debian 12 ou versão mais recente - Conhecimentos básicos de uso do sistema operacional - Conexão com a internet ## Instalação Atualizar o sistema: Primeiro, atualize os pacotes do sistema para garantir que tudo funcione corretamente. ```bash apt update && apt upgrade -y ``` Instalar o servidor RDP no Linux: No nosso exemplo com Debian 12, instale um servidor de acesso remoto compatível com RDP usando o gerenciador de pacotes. ```bash apt list | grep xrdp ``` Verificar dependências necessárias: Se aparecerem mensagens destacadas (por exemplo, em vermelho), isso indica que há pacotes pendentes para instalação. Nesse caso, utilize apenas os nomes dos pacotes (os identificadores antes da barra). ```bash apt install xrdp ``` Confirmar a instalação: Durante o processo, confirme a instalação para que o sistema baixe automaticamente todas as dependências necessárias. ``` nano /etc/apt/sources.list.d/other.list ``` Adicionar repositório (se necessário): Se os pacotes não estiverem disponíveis, será preciso adicionar um repositório. Siga as instruções e, se necessário, remova o símbolo "#" para ativar as linhas desejadas. ``` deb http://archive.ubuntu.com/ubuntu jammy multiverse # deb-src http://archive.ubuntu.com/ubuntu jammy multiverse deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse # deb-src http://archive.ubuntu.com/ubuntu jammy-updates multiverse ``` Atualizar a lista de pacotes: Depois disso, atualize os índices para que o sistema reconheça os novos repositórios. ```bash apt update ``` Configurar o firewall: Certifique-se de que o firewall permite conexões na porta 3389, utilizada pelo RDP. ``` sudo ufw allow 3389 ``` Abrir o cliente RDP no Windows: No Windows, abra o menu iniciar e pesquise por "Conexão de Área de Trabalho Remota". Inserir os dados de acesso: Abra o aplicativo e informe o endereço do servidor (IP ou hostname) e o usuário. Iniciar a conexão: Clique em "Conectar" e aguarde a resposta do servidor. Inserir credenciais: Digite a senha quando solicitado e confirme o acesso. Conexão estabelecida, pronto! Você estará conectado ao sistema Linux via RDP e poderá utilizá-lo remotamente por meio de uma interface gráfica. ### Conclusão A interface gráfica (GUI) é um elemento fundamental da computação moderna, oferecendo uma forma visual e interativa de usar softwares, aplicativos e sistemas operacionais. Suas vantagens são diversas: design intuitivo, facilidade de uso, menor curva de aprendizado, feedback visual em tempo real, suporte a multitarefa, representação gráfica de dados complexos e interação por meio de elementos visuais. Além disso, a GUI melhora a acessibilidade, traz padronização entre sistemas e torna a experiência mais agradável visualmente, sendo essencial tanto para iniciantes quanto para usuários avançados. No entanto, é importante entender que a interface gráfica nem sempre é a opção mais eficiente em todos os casos. Para determinadas tarefas, a linha de comando (CLI) pode ser mais adequada, oferecendo maior controle, possibilidades de automação e flexibilidade. https://serverspace.com.br/support/help/como-fechar-portas-no-linux-iptables-e-ufw.md Aprenda a fechar portas no Linux usando iptables e UFW. Veja como bloquear a porta 80, liberar apenas as necessárias e aumentar a segurança do servidor. Portas abertas são uma das principais vulnerabilidades de um servidor. Se você não as gerencia corretamente, corre o risco de deixar a "porta aberta" para invasores. Neste artigo, vamos ver como fechar portas no Linux usando iptables e UFW, além de como verificar quais portas já estão abertas. Você também aprenderá como fechar a porta 80, bloquear todas as portas exceto as necessárias e entender como isso se relaciona com a segurança de servidores e clientes HTTP. ## Como visualizar as portas abertas no servidor? Antes de fechar portas, é importante identificar quais estão abertas no momento e quais serviços estão utilizando cada uma delas. ``` sudo ss -tuln ``` ou: ``` sudo netstat -tuln ``` Significado das opções (flags): - t — TCP; - u — UDP; - l — mostrar apenas portas em estado de escuta (LISTEN); - n — exibir portas em formato numérico. ## Como fechar/abrir uma porta usando o iptables? Para fechar uma porta (por exemplo, a porta 80), você pode utilizar o iptables, que é uma ferramenta de gerenciamento de firewall no Linux. sudo iptables -A INPUT -p tcp --dport 80 -j DROP Essa regra irá bloquear conexões de entrada na porta 80 usando o protocolo TCP. Para verificar: ``` sudo iptables -L -n --line-numbers ``` Para remover essa regra: ``` sudo iptables -D INPUT ``` Se você fechou a porta anteriormente e quer permitir as conexões novamente: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT ## Como fechar ou abrir uma porta usando o UFW **O UFW (Uncomplicated Firewall)** é uma ferramenta simples para configurar o firewall no Linux, sendo especialmente prática no Ubuntu. Para fechar uma porta, por exemplo a porta 80, use o comando: ``` sudo ufw deny 80 ``` Este comando irá bloquear conexões de entrada na porta TCP especificada por padrão. Você pode verificar as regras atuais com o comando: ``` sudo ufw status numbered ``` Se você quiser remover uma das regras, encontre o número correspondente na lista e use o comando para deletá-la: ``` sudo ufw delete rule number ``` Para reabrir a porta 80 para conexões de entrada: ``` sudo ufw allow 80 ``` Dessa forma, você pode controlar facilmente o acesso a qualquer porta: fechar as desnecessárias e abrir apenas as necessárias, garantindo a segurança do servidor sem precisar lidar com regras complexas do iptables. ## Script para configuração de portas Para o gerenciamento de portas, você pode usar ferramentas de configuração automatizadas e scripts, que permitirão bloquear todas as conexões, exceto aquelas permitidas. ```bash #!/bin/bash # Check for UFW if ! command -v ufw /dev/null; then echo "UFW is not installed. Installing..." sudo apt update && sudo apt install -y ufw fi echo "Disabling ufw if it has already been enabled..." sudo ufw disable echo "Reset all rules..." sudo ufw reset echo "I'm setting the default policy: prohibit incoming, allow outgoing..." sudo ufw default deny incoming sudo ufw default allow outgoing echo "I allow HTTPS (port 443)..." sudo ufw allow 443/tcp echo "Enabling ufw..." sudo ufw enable echo "Current ufw status:" sudo ufw status verbose ``` ## Como desativar o serviço que abre a porta Às vezes, as portas estão abertas porque algum serviço está em execução (por exemplo, Apache ou Nginx). Se você não estiver usando, desative-o. **Desativando o Apache:** ```bash sudo systemctl stop apache2 sudo systemctl disable apache2 ``` **Desativando o Nginx:** ```bash sudo systemctl stop nginx sudo systemctl disable nginx ``` ## Dicas de segurança: - Feche todas as portas não utilizadas; - Permita apenas as portas específicas que você precisa (por exemplo, 22 e 443); - Use o fail2ban para se proteger contra ataques de força bruta em senhas; - Configure o firewall (UFW, firewalld ou iptables) imediatamente após instalar o servidor. O gerenciamento de portas é uma parte essencial da proteção de um servidor Linux. Agora você sabe como fechar portas no Linux, visualizar portas abertas, bloquear a porta 80 e permitir apenas as conexões necessárias. https://serverspace.com.br/support/help/guia-rapido-de-comandos-do-powershell.md PowerShell é uma ferramenta poderosa para Windows. Este guia reúne os principais cmdlets para administração e automação. Gerenciar arquivos, usuários, rede e recursos do sistema de forma eficiente. Embora os sistemas operacionais modernos ofereçam interfaces gráficas, tarefas de administração e automação são muito mais rápidas e eficientes quando executadas via linha de comando. No ecossistema Windows, o PowerShell é a principal interface de linha de comando para gerenciamento do sistema e criação de scripts. Este guia reúne os principais cmdlets do PowerShell para administração do Windows, automação, gerenciamento de arquivos, redes e monitoramento do sistema. ## Para que serve o PowerShell? O **PowerShell** é uma linguagem orientada a objetos e um shell de linha de comando que interpreta comandos do usuário, traduzindo-os para uma linguagem de baixo nível para interagir com o sistema operacional e automatizar tarefas. Sua biblioteca inclui cerca de mil e quinhentos comandos diferentes. A principal diferença em relação aos interpretadores de sistemas **nix*** é o trabalho com objetos - estruturas de dados que contêm propriedades e métodos para interação. Esse interpretador substituiu o conhecido cmd.exe, que era limitado em funcionalidades e não recebia atualizações há muito tempo. A Microsoft tentou substituí-lo pelo Microsoft Script Host, que integrava JavaScript e VBS, mas a solução mostrou baixa integração com o sistema. Por isso, foi decidido desenvolver um novo interpretador do zero. Como qualquer shell, o PowerShell trabalha com dois tipos de comandos: - internos (inbuilt); - externos. O PowerShell (ou PS) acessa esses comandos diretamente ou por meio de variáveis de ambiente. Os comandos internos são operações já prontas que executam ações no sistema operacional, enquanto os externos são criados por usuários na forma de utilitários ou bibliotecas. ## Como abrir o PowerShell no Windows No Windows, existem duas formas de iniciar o interpretador: pela busca ou pela janela "Executar". Na primeira opção, vá até a área de trabalho, use a barra de pesquisa na parte inferior e digite **PowerShell.** O mesmo pode ser feito usando a combinação de teclas **Win + R** - basta digitar **powershell.** Se você utiliza uma distribuição Linux ou macOS, o PowerShell também está disponível - basta fazer o [download e instalar seguindo as instruções.](https://learn.microsoft.com/pt-br/powershell/scripting/install/install-powershell?view=powershell-7.6) ## Como trabalhar com o PowerShell? Como qualquer interpretador, o PowerShell (PS) possui sua própria sintaxe e semântica, que definem a forma e a ordem de execução dos comandos. As operações são realizadas por meio de cmdlets - comandos com uma estrutura específica baseada no padrão verbo-substantivo, com parâmetros e argumentos. Vamos ver um exemplo prático usando uma solução em nuvem da Serverspace. Para isso, vamos criar um servidor VPS em uma das plataformas disponíveis, como Vstack ou VMware Cloud. [Clique em Criar servidor](https://my.serverspace.com.br/), escolha a configuração desejada e, em seguida, clique em Solicitar. Captura de tela nº 3 — Criar servidor Após alguns instantes, o servidor estará disponível por meio dos métodos padrão de conexão. Para este exemplo, escolhemos o sistema operacional Windows com data center em Istambul. Agora, vamos analisar a sintaxe de escrita dos cmdlets: ``` Get-Help -Online ``` Vamos analisar o comando em detalhes e entender como ele funciona: - Get-Help - é um cmdlet usado para consultar informações no sistema; - - argumento de entrada, neste caso o nome de outro cmdlet; - -Online - opção para executar o comando acessando recursos online. O conceito de cmdlet é semelhante ao de comandos em outros interpretadores, mas há uma diferença importante: em sistemas **nix*,** a saída geralmente é texto (string), enquanto no PowerShell são objetos. Além disso, os cmdlets não são sensíveis a maiúsculas/minúsculas (case-insensitive). O primeiro comando essencial para quem está começando no PowerShell é justamente o cmdlet de ajuda, que permite buscar informações e exemplos de uso. Por exemplo, se precisamos adicionar um novo usuário, mas não sabemos qual comando usar, podemos executar: ``` Get-Help user ``` O PowerShell exibiu uma lista de comandos que contêm a palavra user. Nesse caso, podemos usar o New-LocalUser. As informações de uso desse comando podem ser consultadas com: ``` Get-Help New-LocalUser ``` Com a ajuda do Get-Help, podemos encontrar qualquer comando e sua descrição, mas a sintaxe completa pode ser longe e nem sempre prática. Para simplificar, podemos usar Aliases ou comandos abreviados: ``` Get-Alias ``` Eles também podem ser usados como comandos comuns, o que facilita bastante o trabalho. Muitos aliases são semelhantes ou análogos a comandos de shells Linux, então o uso deles não apresenta dificuldades. Aliases são úteis para trabalho interativo, mas devem ser evitados em scripts de produção para garantir legibilidade e portabilidade. ## Guia Rápido (Cheat Sheet) Exemplo de como usar cmdlets para diferentes tarefas: - Get-Location (pwd): mostra o caminho do diretório atual; - Set-Location (cd): altera o diretório atual; - Get-ChildItem (ls): lista o conteúdo do diretório atual; - Copy-Item (cp): copia um arquivo; - Remove-Item (rm): exclui um arquivo; - New-Item (mkdir): cria um diretório; - New-Item (touch): cria um arquivo vazio; - Get-Content (cat): exibe o conteúdo de arquivos; - Get-Content (tail): exibe as últimas 10 linhas de um arquivo; - Where-Object (grep): realiza filtragem de dados; - Create-Volume / Format-Volume (mkfs): formata uma partição; - Test-Connection (ping): envia requisições ICMP; - Get-Help (man): exibe a ajuda dos comandos. ## Conclusão O PowerShell é uma ferramenta poderosa e flexível para administração e automação no Windows. Este guia rápido oferece uma visão prática dos cmdlets mais usados, ajudando a gerenciar arquivos, usuários, rede e recursos do sistema de forma eficiente. https://serverspace.com.br/support/help/como-implantar-e-configurar-um-servidor-proxy-reverso.md Aprenda a configurar um Reverse Proxy com Nginx. Melhore segurança, desempenho e balanceamento de carga. Guia prático para iniciantes. Entre os diversos serviços de infraestrutura que compõem um sistema corporativo unificado, está o proxy. Sua principal função é atuar como um nó intermediário na transmissão de tráfego, além de executar funcionalidades previamente definidas, como modificação e inspeção das conexões. Existem dois tipos dessas soluções: proxy direto (forward proxy) e proxy reverso (reverse proxy). O primeiro redireciona o tráfego para fora através de um único ponto, enquanto o segundo faz o oposto - direciona o tráfego do segmento externo para o interno. Neste artigo, vamos analisar a segunda opção e configurar o serviço para funcionamento. ## O que é um Reverse Proxy? Como mencionamos anteriormente, um Reverse Proxy é um nó intermediário por meio do qual o tráfego externo passa antes de chegar aos servidores, ou seja, vindo dos clientes. Nesses casos, essa solução é utilizada devido à necessidade de balancear a carga entre os nós, já que o processamento dos próprios pacotes pode ser bastante pesado. Assim, diferentes abordagens de balanceamento ajudam a reduzir esse impacto. Além disso, o proxy pode atuar como um ponto de controle do tráfego, por exemplo, como um WAF local ou como um nó de redirecionamento para servidores ICAP. Caso você não tenha recursos suficientes, é possível executar essas tarefas em servidores em nuvem mais potentes. A Serverspace oferece servidores VPS/VDS isolados para uso geral e virtualização. ## Implantação e configuração Antes de tudo, vamos escolher um pacote de software que execute funções de proxy. Normalmente, servidores web simples já possuem essa funcionalidade, então utilizaremos o pacote Nginx: Em seguida, passamos para a configuração do nosso serviço no diretório padrão /etc/nginx. Dentro dele, nos interessam dois arquivos responsáveis pela configuração global do serviço e pelos hosts virtuais. Vamos focar no segundo: ``` cd /etc/nginx/sites-available && nano 000-default.conf ``` Se o arquivo de hosts virtuais tiver um nome diferente, abra-o com o nano (ou outro editor de sua preferência). Vamos analisar a sintaxe básica de um host virtual, que é determinada pelo campo SNI no pacote de rede de entrada: ```css server { listen ip:port; server_name domain_name; root /path/to/site-file; index /index.html; .. location / {} .. } ``` Preencha os campos básicos com os dados do seu servidor web: em qual porta o site estará disponível, qual domínio será atendido, entre outros. Observe que o campo location será responsável por definir como o servidor irá tratar as requisições recebidas no caminho especificado. Até aqui, temos um servidor web comum. Para transformá-lo em um reverse proxy, é necessário adicionar diretivas dentro do bloco location: ```css location /date { proxy_pass http://192.168.1.10:80; 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 $scheme; } ``` Para entender a diferença entre um reverse proxy e um servidor web comum, compare as diretivas dos dois caminhos /hello e /cats. No segundo caso, especificamos o diretório onde os dados estão armazenados, enquanto no primeiro fazemos o proxy da conexão. Observe que a diretiva proxy_pass permite estabelecer uma conexão com um recurso e, como cliente, encaminhar as requisições, modificando-as com a diretiva proxy_set_header. Cada um desses cabeçalhos tem sua função: - Host - define o host de destino da requisição; - X-Real-IP - informa o endereço IP real do cliente antes do proxy; - X-Forwarded-For - indica a cadeia de proxies/cliente original; - X-Forwarded-Proto - especifica o protocolo utilizado (HTTP/HTTPS). Após serem modificadas, as requisições são enviadas para o Upstream ou Backend, onde serão processadas pela aplicação web. Agora, vamos salvar o arquivo e criar um link para que a configuração seja carregada automaticamente: ``` ln -s /etc/nginx/sites-available/000-default.conf /etc/nginx/sites-enabled/000-default.conf ``` Ou substitua pelo nome do seu próprio arquivo e crie também um link para o diretório de configurações habilitadas. Em seguida, reinicie o Nginx ou faça com que ele recarregue a configuração: ```bash sudo systemctl restart nginx && sudo systemctl status nginx ``` Como o servidor Nginx escuta em todas as interfaces por padrão, todo o tráfego que chega ao dispositivo será encaminhado (proxy) para o backend. Caso seja necessário realizar a terminação antecipada de SSL (SSL termination), adicione as diretivas apropriadas para o seu processamento: ``` ssl_certificate www.example.com.crt; ssl_certificate_key www.example.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ``` Após isso, o tráfego será transmitido em texto aberto, permitindo que outras soluções possam processar os pacotes recebidos. Além disso, na nossa base de conhecimento você pode encontrar materiais sobre como configurar um WAF com base em uma solução de Reverse Proxy como esta. ## Conclusão Configurar um servidor Reverse Proxy é um passo essencial para uma infraestrutura web moderna. Ao atuar como intermediário entre clientes externos e servidores internos, o reverse proxy melhora o balanceamento de carga, aumenta a segurança e permite a terminação de SSL. Usando o Nginx como exemplo, configuramos um reverse proxy capaz de encaminhar requisições, preservar os cabeçalhos do cliente e oferecer suporte a tráfego SSL. Com essa configuração, seus servidores internos permanecem protegidos enquanto lidam com requisições externas de forma eficiente. Além disso, os reverse proxies abrem oportunidades para a integração de camadas adicionais de segurança, como WAF, cache e monitoramento de tráfego. ## FAQ - **Q1: Qual é o principal objetivo de um Reverse Proxy?** Um Reverse Proxy atua como intermediário entre os clientes e os servidores internos. Ele distribui o tráfego de entrada, melhora o balanceamento de carga, aumenta a segurança e pode realizar terminação de SSL e cache. - **Q2: Quais softwares podem ser usados como Reverse Proxy?** Soluções comuns incluem Nginx, Apache, HAProxy e Traefik. Cada uma oferece recursos específicos, sendo o Nginx amplamente utilizado pela sua performance e integração com servidores web. - **Q3: Como funciona a terminação de SSL em um Reverse Proxy?** A terminação de SSL permite que o proxy descriptografe o tráfego HTTPS recebido, encaminhando-o como HTTP simples para os servidores internos. Isso reduz a carga de processamento nos backends e centraliza o gerenciamento de certificados. - **Q4: Quais cabeçalhos devem ser preservados ao fazer proxy de requisições?** Os principais cabeçalhos são Host, X-Real-IP, X-Forwarded-For e X-Forwarded-Proto. Eles garantem a preservação das informações originais do cliente e do protocolo utilizado. - **Q5: Um Reverse Proxy pode melhorar a segurança?** Sim. Ao expor apenas o servidor proxy à internet, os servidores internos permanecem ocultos. Além disso, o reverse proxy permite integração com firewalls, WAFs e ferramentas de monitoramento de tráfego. - **Q6: Como testar se meu Reverse Proxy está funcionando corretamente?** Após a configuração, reinicie o serviço do proxy e acesse a URL configurada. Utilize ferramentas como curl, ferramentas de desenvolvedor do navegador ou serviços de monitoramento para verificar se o tráfego está sendo encaminhado corretamente e se os cabeçalhos são preservados. - **Q7: Um Reverse Proxy é adequado para sites com alto tráfego?** Sim. Reverse proxies distribuem as requisições entre múltiplos servidores backend, aumentando o desempenho e a confiabilidade de aplicações com alto volume de tráfego. https://serverspace.com.br/about/blog/vantagens-da-nuvem-para-desenvolvedores.md Descubra as principais vantagens da computação em nuvem para desenvolvedores: escalabilidade ilimitada, redução de custos, cobertura global e integração com DevOps. Guia completo para empresas brasileiras. As ferramentas e tecnologias continuam evoluindo, permitindo que os programadores criem softwares cada vez mais modernos e eficientes. No entanto, isso também altera os padrões de trabalho: é necessário reduzir o tempo de lançamento de produtos no mercado e corrigir erros no código o mais rápido possível. Para enfrentar esses desafios, os serviços em nuvem se tornaram aliados indispensáveis. Vamos analisar mais detalhadamente as vantagens da computação em nuvem em comparação com as ferramentas tradicionais de desenvolvimento. | Aspecto | Infraestrutura Tradicional | Computação em Nuvem | | --- | --- | --- | | Investimento Inicial | Alto – compra de hardware, servidores, switches | Baixo – modelo pay-as-you-go | | Tempo de Implementação | Dias ou semanas | Minutos ou horas | | Escalabilidade | Limitada – requer compra de novos equipamentos | Elástica – recursos ajustáveis em tempo real | | Manutenção | Equipe interna necessária | Gerenciada pelo provedor | | Custo Operacional | Fixo e elevado (energia, refrigeração, espaço) | Variável – paga-se apenas pelo uso | | Recuperação de Desastres | Requer infraestrutura duplicada | Backup e redundância integrados | | Cobertura Geográfica | Limitada ao data center local | Global – múltiplas regiões disponíveis | | Atualização Tecnológica | Manual e custosa | Automática e incluída no serviço | ## 1. Escalabilidade Uma das maiores vantagens da computação em nuvem é a escalabilidade. No modelo tradicional de hospedagem, é necessário escolher, comprar, instalar e configurar todo o hardware para cada componente do sistema – servidores web, servidores de aplicativos, bancos de dados, switches e roteadores para acesso à internet. Aplicações de alta disponibilidade também exigem balanceadores de carga e clusters de servidores, muitas vezes conectados a redes SAN (Storage Area Networks), que têm alto custo. Esse modelo demanda um planejamento detalhado e investimentos elevados, o que pode desacelerar o desenvolvimento de produtos de software. Com a nuvem, tornou-se possível escalar rapidamente qualquer parte da infraestrutura. Para servidores web e de aplicativos, é possível aumentar a capacidade adicionando mais núcleos de processamento ou até novos servidores. Bancos de dados podem ser ampliados com mais memória RAM ou instâncias adicionais. Além disso, com o advento dos microsserviços, é possível projetar aplicações web modulares, onde cada módulo pode ser hospedado em diferentes servidores. Se um módulo específico precisar de mais desempenho, basta ampliar os recursos do servidor onde ele está hospedado. ## 2. Custo Outro grande benefício da computação em nuvem é a economia de custos, além da flexibilidade de começar com uma infraestrutura pequena e expandi-la conforme a demanda cresce. Entre as vantagens financeiras da nuvem, destacam-se: **Sem necessidade de investimentos iniciais elevados.** Data centers próprios exigem grandes investimentos iniciais, além de um planejamento detalhado das necessidades atuais e futuras de hardware. À medida que a base de clientes cresce e a carga sobre os servidores aumenta, são necessários upgrades na infraestrutura, o que demanda novas aquisições de hardware e software. **Pagamento baseado no uso.** A maioria dos provedores de nuvem cobra apenas pelos recursos utilizados. É possível aumentar ou reduzir a quantidade de servidores, memória, núcleos de processador e outros recursos conforme a necessidade, proporcionando um gerenciamento de custos altamente flexível. No Brasil, essa abordagem permite que empresas de todos os tamanhos adotem soluções em nuvem sem comprometer o orçamento, tornando a tecnologia acessível desde startups até grandes corporações. ## 3. Redundância e Recuperação de Desastres A rápida alocação de recursos é um benefício crucial para equipes de desenvolvimento. Programadores frequentemente precisam de diferentes ambientes de infraestrutura – desde ambientes de desenvolvimento e testes até novos servidores de aplicativos e sistemas operacionais para experimentação. Sem a nuvem, essa demanda sobrecarrega a equipe de suporte técnico, podendo levar dias ou até semanas para ser atendida. Com a computação em nuvem, os desenvolvedores podem criar rapidamente novos ambientes, desde sites e servidores virtuais até bancos de dados. Além disso, os serviços de nuvem oferecem um catálogo quase ilimitado de funcionalidades, que continua crescendo. Isso permite que as equipes experimentem e adotem as tecnologias mais avançadas com agilidade. Outro benefício importante é que, quando determinados recursos não são mais necessários, eles podem ser desativados rapidamente, eliminando custos desnecessários. A computação em nuvem está transformando o desenvolvimento de software no Brasil, oferecendo escalabilidade, redução de custos e flexibilidade sem precedentes. Para empresas que desejam inovar e crescer sem limitações, a adoção da nuvem não é mais uma opção – é uma necessidade. ## 4. Diferentes Modelos de Computação em Nuvem A computação em nuvem não se limita aos métodos tradicionais. Essas tecnologias oferecem diversas opções para atender às necessidades específicas de cada cliente. Os dois principais modelos de serviço em nuvem são [Infraestrutura como Serviço](https://serverspace.com.br/services/cloud-servers.md) (IaaS) e Plataforma como Serviço (PaaS). Ambas possuem vantagens distintas, e, dependendo da necessidade, podem ser combinadas para obter o melhor desempenho. **IaaS (Infraestrutura como Serviço).** O modelo IaaS permite alugar infraestrutura de TI, acessível por meio de redes dedicadas ou via internet. Os recursos incluem servidores virtuais, redes, sistemas de armazenamento e segurança. Os clientes da IaaS gerenciam essa infraestrutura de forma independente, incluindo a instalação e administração do software necessário. Já os provedores de IaaS podem fornecer sistemas operacionais pré-configurados para os servidores virtuais, facilitando a implementação. **PaaS (Plataforma como Serviço).** O modelo PaaS vai além da IaaS, adicionando serviços gerenciados, como sistemas operacionais, servidores web, servidores de aplicativos, bancos de dados e ambientes de desenvolvimento. Com essa abordagem, os desenvolvedores podem focar exclusivamente na criação e implantação de aplicações, sem precisar se preocupar com a manutenção da infraestrutura subjacente. Além disso, todos os componentes necessários podem ser facilmente escalados conforme a demanda da aplicação, garantindo maior flexibilidade e eficiência. ## 5. Cobertura Geográfica Outro grande benefício da computação em nuvem é sua presença global. Em vez de depender de um único data center ou investir em novas infraestruturas físicas, a nuvem permite hospedar aplicações em diversas regiões geográficas, garantindo que o serviço esteja mais próximo dos usuários finais. Com o gerenciamento de tráfego e a replicação de dados, as aplicações em nuvem oferecem alta performance para os clientes, independentemente de sua localização. Além disso, redes de entrega de conteúdo (CDN) podem ampliar ainda mais o alcance geográfico. Mesmo que uma aplicação esteja hospedada em um único local, uma CDN utiliza uma rede distribuída de servidores espalhados por diferentes cidades e países. Esses servidores armazenam e distribuem conteúdo web, como páginas, imagens, vídeos e arquivos estáticos, otimizando a velocidade de carregamento e reduzindo a carga direta sobre a aplicação principal. Isso não só melhora a experiência do usuário, mas também torna o sistema mais escalável e resiliente. ## 6. Facilidade de Implantação A nuvem oferece recursos avançados para o gerenciamento do ciclo de vida das aplicações, permitindo automação e controle total sobre as implantações. Com a integração de aplicações a sistemas de controle de versão, é possível configurar pipelines de CI/CD (Integração Contínua/Entrega Contínua), que automatizam processos como deploy de código, configuração de bancos de dados, ajustes automáticos nos servidores e testes automatizados. **Slots de Implantação.** Outro recurso essencial da nuvem são os slots de implantação (ou ambientes intermediários). Com eles, é possível testar aplicações antes da liberação oficial para os usuários finais. Um slot de implantação funciona como uma versão isolada da aplicação, acessível por um endereço específico. Os desenvolvedores podem realizar testes nesse ambiente e, se tudo correr bem, simplesmente alternar entre o slot de testes e o slot de produção, tornando a aplicação imediatamente acessível aos clientes. Além disso, é possível direcionar um pequeno percentual do tráfego de produção para o ambiente de teste, permitindo avaliar novas funcionalidades com dados reais antes do lançamento oficial. Esse método reduz riscos e melhora a experiência do usuário ao introduzir atualizações de forma controlada e segura. A computação em nuvem revoluciona o desenvolvimento de software ao oferecer escalabilidade, redução de custos, cobertura global e um ambiente ágil para inovação. Para empresas no Brasil, adotar soluções em nuvem significa ganhar competitividade, reduzir barreiras tecnológicas e acelerar o crescimento. ## 7. Desenvolvimento, Operação e Monitoramento (DevOps) DevOps (acrônimo de Development e Operations) é uma metodologia que promove a colaboração entre desenvolvedores de software e equipes de operações de TI. No ambiente de desenvolvimento ágil atual, é essencial criar, implantar e manter aplicações rapidamente, garantindo que os usuários não enfrentem problemas. Quando ocorre uma falha, as equipes precisam ser notificadas imediatamente, identificar a causa rapidamente e lançar uma correção o quanto antes. As práticas de DevOps combinam monitoramento de desempenho, logs de erro e métricas de aplicação em um único ambiente. Isso permite que os desenvolvedores tenham uma visão abrangente do funcionamento da aplicação e identifiquem problemas antes que os usuários sejam afetados. Por exemplo, gargalos de desempenho podem ser analisados até o nível de cada consulta SQL individual, facilitando a otimização. ## FAQ - **A migração para a nuvem pode comprometer a segurança dos dados da minha empresa?** Não necessariamente. Na verdade, muitos provedores de nuvem oferecem níveis de segurança superiores aos que a maioria das empresas consegue implementar internamente. Eles investem milhões em segurança física, criptografia, certificações (como ISO 27001, SOC 2) e equipes especializadas em proteção de dados 24/7. No entanto, a segurança é uma responsabilidade compartilhada: o provedor protege a infraestrutura, mas cabe à empresa configurar corretamente permissões de acesso, implementar autenticação multifator e seguir as melhores práticas de segurança. Para dados altamente sensíveis, é possível optar por nuvem privada ou modelos híbridos que combinam segurança local com flexibilidade da nuvem. - **Como calcular se a nuvem realmente será mais econômica para o meu projeto?** O cálculo deve considerar não apenas os custos diretos, mas também os indiretos. Compare: Infraestrutura tradicional – hardware inicial, licenças de software, espaço físico, energia elétrica, refrigeração, equipe de manutenção, substituição de equipamentos a cada 3-5 anos. Nuvem – custos mensais baseados no uso real de recursos. A nuvem tende a ser mais vantajosa para projetos com cargas variáveis, startups que precisam escalar rapidamente, e empresas que querem evitar investimentos iniciais altos. Para cargas estáveis e previsíveis de longo prazo, faça uma análise de TCO (Total Cost of Ownership) considerando um período de 3-5 anos. Muitos provedores oferecem calculadoras de custos online e planos de reserva que reduzem até 70% dos valores para recursos de uso contínuo. - **Posso usar nuvem apenas para parte da minha infraestrutura?** Sim, essa é uma das estratégias mais comuns, chamada de nuvem híbrida. Muitas empresas mantêm sistemas legados ou dados sensíveis em servidores locais, enquanto migram aplicações web, ambientes de desenvolvimento e ferramentas de colaboração para a nuvem. Essa abordagem permite uma transição gradual, reduzindo riscos e permitindo que as equipes se adaptem às novas tecnologias. Por exemplo, você pode manter seu banco de dados principal on-premises por questões regulatórias, mas usar a nuvem para hospedagem de sites, processamento de dados temporários, backup e disaster recovery. A integração entre ambientes locais e em nuvem é cada vez mais simplificada através de VPNs dedicadas e ferramentas de sincronização. - **Quais são os principais erros que empresas brasileiras cometem ao migrar para a nuvem?** Os erros mais comuns incluem: Falta de planejamento – migrar tudo de uma vez sem estratégia, causando interrupções nos serviços. O ideal é começar com projetos-piloto. Não otimizar recursos – deixar instâncias rodando 24/7 quando só são necessárias em horário comercial, ou não ajustar o tamanho dos servidores conforme a demanda real. Ignorar a localização dos dados – para atender à LGPD, empresas brasileiras devem verificar se o provedor oferece data centers no Brasil ou garantias contratuais sobre armazenamento de dados pessoais. Subestimar treinamento – a equipe precisa de capacitação para usar eficientemente as ferramentas em nuvem, caso contrário, os benefícios não serão totalmente aproveitados. Não implementar governança de custos – sem monitoramento adequado, os gastos podem crescer inesperadamente. ### Conclusão A computação em nuvem evoluiu significativamente nos últimos anos, e sua adoção continua crescendo globalmente. Segundo estudos recentes, a maioria das empresas já utiliza soluções em nuvem para melhorar eficiência, escalabilidade e segurança. No Brasil, essa tendência também se fortalece, impulsionada pela necessidade de inovação, redução de custos operacionais e maior flexibilidade no desenvolvimento de software. Com os benefícios da nuvem e metodologias como DevOps, as empresas podem acelerar a entrega de produtos, melhorar a experiência do usuário e garantir um alto nível de disponibilidade para suas aplicações. https://serverspace.com.br/about/news/novo-data-center-no-uzbequistao-lancamento-da-localizacao-em-tashkent.md A Serverspace expandiu sua infraestrutura com um novo data center em Tashkent, Uzbequistão. Agora, os usuários podem implantar VPS no East Telecom YA DC, oferecendo baixa latência e alta confiabilidade para projetos na Ásia Central. A Serverspace, provedora de infraestrutura em nuvem, adicionou uma nova localização ao seu painel de controle. Agora, os usuários podem implantar VPS no [East Telecom YA DC](https://serverspace.com.br/infrastructure/data-center-em-tashkent.md), localizado em Tashkent, Uzbequistão. A expansão da geografia abre novas oportunidades para projetos voltados para a Ásia Central e regiões próximas, proporcionando latências mais baixas e conveniência ao hospedar a infraestrutura mais perto dos usuários finais. O East Telecom YA DC segue os padrões internacionais de confiabilidade e foi projetado conforme as recomendações arquitetônicas do Uptime Institute, nível Tier III. O local foi construído com requisitos de alta disponibilidade para a infraestrutura de engenharia, garantindo a operação estável dos serviços em nuvem. ### Infraestrutura e Plataforma No novo nó, estão instalados recursos de servidores baseados em Intel Xeon Scalable de segunda geração. O local suporta a implementação de ambientes virtualizados com VMware e vStack, permitindo executar tanto cargas de trabalho em nuvem típicas quanto cenários corporativos. Para o armazenamento de dados em ambientes VMware, são utilizadas soluções corporativas ITPOD, que garantem o funcionamento estável e a confiabilidade da infraestrutura. ### Características de Segurança: - Sistemas de alimentação e resfriamento redundantes (UPS + geradores a diesel); - Resfriamento com redundância para operação contínua; - Extinção de incêndio a gás FM-200; - Monitoramento 24/7 e equipe de engenheiros no local. A nova localização já está disponível no painel de controle e é adequada tanto para ambientes de teste quanto para cargas de produção, onde a estabilidade e a operação previsível da infraestrutura são essenciais. ### Como implantar VPS no Uzbequistão? - Abra o [painel de controle](https://my.serverspace.com.br/) e vá para a seção de criação de servidor; - Escolha o sistema operacional e o data center Tashkent, Uzbequistão; - Configure a configuração: CPU, RAM, espaço em SSD e parâmetros de rede; - Clique em "Criar". Com a adição do novo [Data Center East Telecom YA DC](https://serverspace.com.br/infrastructure/data-center-em-tashkent.md), o provedor oferece a possibilidade de implantar infraestrutura em 7 data centers localizados em todo o mundo! Em breve, o provedor planeja abrir outras localizações para seus usuários, expandindo a rede geograficamente distribuída da empresa. https://serverspace.com.br/about/news/adicionamos-n8n-como-solucao-em-nuvem-pronta-para-uso.md Adicionamos n8n, MySQL e Redis ao painel de controle do Serverspace como soluções prontas para uso (1-click apps). Implante ferramentas de automação e bancos de dados em seu servidor com um clique, sem configuração manual. Adicionamos o [n8n](https://serverspace.com.br/services/servidor-n8n.md) à lista de soluções em nuvem prontas para uso (1-click apps) no painel de controle do Serverspace. n8n é uma plataforma de automação open-source que ajuda a conectar serviços, dados e APIs em cenários visuais, para que você não precise transferir informações manualmente nem criar integrações pontuais improvisadas. A ferramenta é útil quando dezenas de sistemas funcionam separadamente: CRM, e-mail, mensageiros, formulários do site, planilhas, serviços de pagamento e aplicações internas. O n8n permite criar uma cadeia "evento → ações → resultado" e obter processamento previsível de dados seguindo regras visíveis tanto para o negócio quanto para a equipe técnica. O n8n possui um grande ecossistema: o [site oficial](https://n8n.io/) indica mais de 500 integrações, e o repositório open-source do projeto no [GitHub](https://github.com/n8n-io/n8n) acumulou mais de 140 mil estrelas. O que isso oferece: - **Início rápido** - o n8n é instalado imediatamente durante a implantação do servidor, sem instalação manual e sem configuração inicial do ambiente. - **Controle** - você obtém um n8n self-hosted em seu próprio servidor e define você mesmo como restringir o acesso e onde os dados são armazenados. - **Flexibilidade** - os cenários podem ser criados a partir de nós prontos, complementados com código e chamadas de API, além de estruturar o roteamento entre sistemas sem necessidade de uma integração customizada separada para cada tarefa. Cenários típicos para começar: - Solicitação/pedido de formulário ou mensageiro → registro no CRM → notificação no WhatsApp/Slack → atualização de planilha/dashboard. - E-mail com anexo → salvamento no armazenamento → análise de dados → criação de tarefa no sistema de rastreamento. - Evento no serviço/sistema interno → início de cadeia de ações agendada ou por gatilho → auditoria do resultado em um único lugar. Como conectar: - Abra o [painel de controle](https://my.serverspace.com.br/) do Serverspace e clique em "Criar servidor". - Na etapa de configuração, selecione aplicações pré-instaladas e marque n8n. - Após a implantação do servidor, comece a criar cenários (workflows) e conecte os serviços necessários. Além do n8n, também adicionamos [MySQL](https://serverspace.com.br/services/1-click-app-marketplace/mysql.md) e [Redis](https://serverspace.com.br/services/1-click-app-marketplace/servidor-redis.md) ao painel de controle no formato 1-click app - ambos já estão disponíveis para implantação rápida. _[Serverspace](https://serverspace.com.br/index.md) – provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows e sistemas operacionais russos de qualquer lugar do mundo em menos de 1 minuto. Para integração de serviços dos clientes, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/http-2-e-http-3-como-acelerar-seu-site-hoje.md Entenda como HTTP/2 e HTTP/3 melhoram a velocidade do site. Veja quando vale a pena usar cada protocolo. Aprenda a otimizar desempenho na web e mobile. A velocidade de carregamento de um site deixou de ser apenas uma questão de conveniência — hoje ela é um fator direto de eficiência do negócio. Páginas lentas levam à perda de usuários, redução da conversão e pior posicionamento nos mecanismos de busca. As pessoas estão acostumadas com acesso imediato à informação: se o site demora, elas simplesmente vão para a concorrência. Isso é especialmente importante para lojas virtuais e serviços online, onde cada segundo pode significar uma venda ou cadastro perdido. A velocidade também impacta diretamente o SEO, já que os mecanismos de busca consideram o desempenho das páginas como parte da experiência do usuário. Além disso, o acesso via dispositivos móveis tem um papel fundamental — em países como o Brasil, grande parte do tráfego vem de smartphones, muitas vezes em redes instáveis. Nessas condições, a eficiência na transmissão de dados se torna essencial. Ao mesmo tempo, os sites modernos ficaram mais complexos: o grande volume de scripts, imagens e serviços externos aumenta a carga e o número de requisições. O usuário espera que tudo funcione como um aplicativo — rápido e sem atrasos. Por isso, hoje não basta apenas otimizar o código: é fundamental usar tecnologias modernas como HTTP/2 e HTTP/3, que influenciam diretamente a velocidade de carregamento. ## Evolução do HTTP: do HTTP/1.1 ao HTTP/3 Durante muito tempo, o padrão da web foi o HTTP/1.1, criado no final dos anos 1990. Ele funcionava bem para os sites daquela época, mas as páginas modernas ficaram muito mais complexas e podem incluir dezenas de recursos, como imagens, estilos, scripts e requisições de API. **Principais limitações do HTTP/1.1:** - necessidade de abrir várias conexões entre navegador e servidor; - aumento do custo de comunicação por causa de múltiplas conexões TCP; - problema de bloqueio de fila (head-of-line blocking), onde uma requisição lenta atrasa as demais; - impacto de pequenas latências no carregamento de toda a página. **Para contornar essas limitações, os desenvolvedores usavam algumas soluções:** - juntar arquivos CSS e JavaScript; - usar sprites de imagens; - distribuir recursos em subdomínios. De forma simples, o HTTP/2 surgiu como evolução do protocolo HTTP, permitindo acelerar o site sem mudar completamente a arquitetura. **Principal melhoria do HTTP/2:** - envio de várias requisições ao mesmo tempo em uma única conexão. Mesmo assim, o HTTP/2 ainda depende do TCP. Para resolver isso, surgiu o HTTP/3, que utiliza o protocolo QUIC. ## Como o HTTP/2 deixa o site mais rápido O HTTP/2 foi criado para melhorar a forma como os dados são transmitidos e reduzir o tempo de carregamento das páginas. Em termos simples, o HTTP/2 permite enviar dados mais rápido sem precisar abrir várias conexões. **Principais recursos do HTTP/2:** - multiplexação — várias requisições ao mesmo tempo em uma única conexão; - compressão de cabeçalhos — reduz o volume de dados enviados; - Server Push — o servidor antecipa recursos necessários; - priorização de carregamento — define o que deve carregar primeiro. **Na prática, isso traz benefícios como:** - carregamento mais rápido de páginas com muitos elementos; - menor uso de recursos de rede e servidor; - melhor aproveitamento da conexão; - simplificação da estrutura do site. Com isso, técnicas antigas de otimização, como juntar arquivos, deixam de ser necessárias. ## O que mudou no HTTP/3 e por que o QUIC é importante Apesar das melhorias do HTTP/2, ele ainda depende do TCP. O HTTP/3 resolve essa limitação ao usar o protocolo QUIC, que funciona sobre UDP. Esse tipo de protocolo foi projetado para melhorar a transmissão de dados e se adaptar melhor às condições das redes modernas, especialmente as móveis. Uma das principais vantagens é a eliminação do bloqueio de fila (head-of-line blocking) no nível de transporte. O QUIC estabelece conexões mais rapidamente, funciona melhor em redes instáveis e consegue manter a conexão mesmo quando há mudança de rede, como ao alternar entre Wi-Fi e dados móveis. Isso é especialmente importante para o uso em dispositivos móveis, tornando o HTTP/3 muito relevante para mercados com alto tráfego mobile, como o Brasil. | Característica | HTTP/1.1 | HTTP/2 | HTTP/3 | | --- | --- | --- | --- | | Transporte | TCP | TCP | QUIC (UDP) | | Multiplexação | não | sim | sim | | Eliminação do bloqueio de fila | não | parcial | completa | | Velocidade de conexão | padrão | mais rápida | a mais rápida | | Desempenho em redes móveis | médio | bom | melhor | | Suporte nos navegadores | completo | completo | alto | Se resumirmos a diferença entre HTTP/2 e HTTP/3, a principal mudança está na troca da camada de transporte: de TCP para QUIC, o que impacta diretamente a velocidade e a estabilidade da conexão. ### Quando realmente vale a pena usar HTTP/2 e HTTP/3 Ao escolher o protocolo, é importante entender não só o que ele é, mas como o HTTP impacta a performance do seu projeto na prática. **Os maiores ganhos aparecem em projetos com muitas requisições:** - Lojas virtuais — carregamento mais rápido de imagens e recursos; - Serviços SaaS — melhor desempenho com grande volume de requisições de API; - Sites com audiência global — menor latência para usuários em diferentes regiões; - Tráfego mobile — mais estabilidade e velocidade com HTTP/3. Para sites pequenos e simples, o ganho pode ser menos perceptível. ### Erros comuns ao implementar HTTP/2 e HTTP/3 Apesar das vantagens, a migração para novos protocolos nem sempre traz o resultado esperado. Um dos principais erros é esperar aceleração imediata sem otimizar o site. O HTTP não resolve problemas como imagens pesadas, código lento ou ausência de cache. Outro erro é usar HTTP/2 com abordagens antigas, como a união de arquivos. Isso reduz a eficiência da multiplexação. Ao implementar HTTP/3, é importante considerar as limitações de rede. Algumas redes podem restringir o tráfego UDP, por isso é essencial garantir fallback para HTTP/2. Também é comum o uso de software de servidor desatualizado, que não suporta todos os recursos dos protocolos. Por fim, muitos não acompanham os resultados após a implementação, embora o monitoramento seja uma etapa essencial da otimização. ### Fatores adicionais que influenciam a performance A eficiência do HTTP/2 e do HTTP/3 depende diretamente da infraestrutura, que desempenha um papel fundamental: - Cache; - Otimização de imagens; - Uso de CDN; - Localização dos servidores. Mesmo o protocolo mais moderno não consegue compensar uma infraestrutura fraca ou um front-end não otimizado. ### Como a infraestrutura e a nuvem influenciam o desempenho Os protocolos modernos atingem seu máximo potencial apenas quando há uma infraestrutura bem configurada por trás. Plataformas em nuvem permitem implementar rapidamente servidores com suporte a HTTP/2 e HTTP/3, usar discos NVMe (armazenamento de alta velocidade) e ajustar os recursos de forma flexível conforme a demanda do projeto. Isso é especialmente importante para projetos em crescimento e com forte presença de usuários mobile, onde a estabilidade e a velocidade fazem toda a diferença na experiência final. ### Conclusão: qual protocolo escolher hoje O HTTP/2 já se tornou um padrão e oferece um ganho de velocidade perceptível para a maioria dos sites. O HTTP/3 é a evolução desse protocolo, sendo especialmente útil em redes móveis e conexões instáveis. Na prática, a melhor abordagem é suportar ambos: o HTTP/2 garante estabilidade e compatibilidade, enquanto o HTTP/3 traz um desempenho extra onde isso realmente faz diferença. FAQ - **É preciso mudar o servidor ou a hospedagem para usar HTTP/3?** Às vezes, sim. O suporte ao HTTP/3 depende do servidor web e da configuração de rede. Versões antigas de software podem não ser compatíveis com o QUIC, então pode ser necessário atualizar ou migrar para uma infraestrutura mais moderna. Em plataformas de nuvem, esse suporte geralmente já vem disponível. - **O HTTP/3 pode piorar o desempenho do site?** Em geral, não. Se a rede não suportar UDP, o navegador muda automaticamente para HTTP/2. Problemas só costumam ocorrer em caso de configuração incorreta do servidor, por isso é importante testar tudo após a implementação. - **Como verificar qual protocolo HTTP um site está usando?** Você pode usar as ferramentas de desenvolvedor do navegador (DevTools), na aba Network (Rede), coluna Protocol. Lá aparecerá algo como h2 ou h3. Também é possível usar ferramentas online para essa verificação. - **O HTTP/3 influencia o SEO no Google?** Diretamente, não. Mas como ele melhora a velocidade do site, acaba impactando fatores de comportamento do usuário e o posicionamento, principalmente em dispositivos móveis. - **O HTTP/3 funciona sem HTTPS?** Não. O HTTP/3 exige HTTPS, pois utiliza o protocolo de segurança TLS 1.3 integrado. https://serverspace.com.br/about/blog/dns-de-forma-simples-quais-registros-sao-necessarios-para-site-e-e-mail-a-cname-txt-mx.md Entenda como funciona o DNS na prática. Veja quais registros são essenciais para site e e-mail. Guia simples com exemplos e dicas úteis. ## Introdução: por que o DNS é essencial e por que sem ele nem site nem e-mail funcionam Quando você digita o endereço de um site no navegador - por exemplo, example.com - parece uma ação simples. Mas, em frações de segundo, acontece um processo importante: o sistema encontra em qual servidor esse site está hospedado e só então exibe a página. A internet não entende nomes de domínio como nós usamos no dia a dia. Ela trabalha com endereços IP - identificadores numéricos como 192.168.1.1. É por isso que existe o DNS (Domain Name System): um sistema que conecta nomes de domínio, fáceis para humanos, com os endereços técnicos dos servidores. Uma forma simples de entender o DNS é como uma "agenda telefônica" da internet. Você conhece o nome (domínio), e o DNS encontra o "número" (endereço IP) para acessar o servidor. Esse mecanismo não é usado apenas para sites, mas também para e-mail. Quando você envia uma mensagem, o DNS determina para qual servidor ela deve ser entregue. Sem um DNS configurado corretamente: - o site simplesmente não abre; - os e-mails não chegam ao destino; - serviços externos (analytics, CRM, provedores de e-mail) não conseguem validar seu domínio. É nesse ponto que entram os registros DNS - configurações específicas que dizem à internet: - para onde direcionar as requisições do site; - onde está o servidor de e-mail; - quais serviços podem operar em nome do seu domínio. Neste artigo, vamos explicar os principais tipos de registros DNS (A, CNAME, MX e TXT) de forma simples e mostrar quais deles são realmente necessários para colocar um site e um sistema de e-mail em funcionamento. ## Como o DNS funciona na prática Agora vamos entender o que realmente acontece quando um usuário acessa um site. **Suponha que** você digite example.com no navegador. A partir daí, começa uma sequência de requisições: - o navegador consulta um servidor DNS (geralmente do seu provedor de internet ou um DNS público); - o servidor DNS busca as informações sobre o domínio - onde ele está hospedado; - se encontrar a configuração, retorna o endereço IP do servidor; - o navegador se conecta a esse servidor e carrega o site. Tudo isso acontece em milissegundos, mas é justamente o DNS que torna possível "encontrar" um site na internet. Elementos-chave do DNS Para entender como tudo funciona, é importante conhecer alguns conceitos básicos: - Domínio - é o nome do site (por exemplo, example.com); - Zona DNS - conjunto de todos os registros DNS de um domínio; - Servidores DNS (NS) - responsáveis por armazenar e fornecer as informações do domínio; - Registrador de domínio - empresa onde você comprou o domínio (muito comum no Brasil: Registro.br); - Hospedagem / servidor - onde o site ou o serviço de e-mail está realmente rodando. Quem é responsável por quê Uma dúvida comum é: onde exatamente o DNS é configurado? Na prática - você compra o domínio com um registrador. O DNS pode ser gerenciado em diferentes lugares: - no próprio registrador; - no provedor de hospedagem; - ou em um serviço dedicado de DNS / nuvem. Ou seja, o DNS funciona como uma "camada intermediária" entre o domínio e a infraestrutura. Por que é importante configurar o DNS corretamente Erros de DNS estão entre as causas mais comuns de problemas com sites e e-mails. Por exemplo: - IP incorreto na A record → o site não abre; - ausência de MX → os e-mails não chegam; - TXT incorreto → falha na verificação de serviços. Além disso, alterações em DNS não são aplicadas instantaneamente. Por causa do cache, a propagação pode levar de alguns minutos até algumas horas. Entender como o DNS funciona ajuda a identificar e resolver esses problemas muito mais rápido - especialmente ao lançar um novo projeto ou migrar um site. ## Principais tipos de registros DNS (A, CNAME, MX, TXT) O DNS funciona por meio de registros - instruções específicas que dizem o que deve acontecer com o seu domínio. Abaixo estão os quatro tipos principais, essenciais para o funcionamento de sites e e-mails. Registro A - ligação do domínio ao servidor **O que faz:** conecta o domínio a um endereço IP. É o registro básico de qualquer site. Quando alguém acessa um domínio, é o registro A que informa para qual servidor a requisição deve ser enviada. **Exemplo:** example.com → 192.168.1.1 **Onde é usado:** - domínio principal do site; - às vezes em subdomínios. CNAME - alias (apelido) de domínio **O que faz:** define que um domínio é um "apelido" de outro. Ou seja, em vez de apontar para um IP, você aponta para outro domínio. **Exemplo:** www.example.com → example.com **Onde é usado:** - subdomínios (www, blog, app); - integração com serviços externos (CDN, SaaS). MX - roteamento de e-mails **O que faz:** define para quais servidores os e-mails do domínio devem ser enviados. Quando alguém envia um e-mail para você, o registro MX determina o destino. **Exemplo:** example.com → mail.example.com (prioridade 10) **Onde é usado:** - configuração de e-mail corporativo; - integração com serviços como Google Workspace, Zoho, entre outros. TXT - registros de verificação e configuração **O que faz:** armazena informações em formato de texto para serviços externos. É o tipo mais "flexível" de registro - usado tanto para validação de domínio quanto para segurança de e-mails. **Exemplos de uso:** - verificação de propriedade do domínio; - SPF (quem pode enviar e-mails pelo domínio); - DKIM (assinatura digital dos e-mails); - DMARC (política de validação de e-mails). **Exemplo de SPF:** v=spf1 include:_spf.google.com ~all **Onde é usado:** - serviços de e-mail; - ferramentas de analytics e SaaS; - segurança do domínio. Resumo De forma simples: - **A** - indica onde o site está hospedado; - **CNAME** - redireciona um domínio para outro; - **MX** - define para onde os e-mails devem ser enviados; - **TXT** - valida e protege o domínio. ## Quais registros DNS são necessários para colocar um site e e-mail no ar Depois de entender os principais tipos de registros, faz sentido reunir tudo em uma "cola" prática. Uma tabela assim ajuda a visualizar rapidamente o que precisa ser configurado dependendo do objetivo - publicar um site, configurar e-mail ou integrar serviços externos. | Tipo de registro | Para que serve | Obrigatório para site | Obrigatório para e-mail | Exemplo | | --- | --- | --- | --- | --- | | A | Aponta o domínio para o endereço IP do servidor | Sim | Não | example.com → 192.168.1.1 | | CNAME | Define um domínio como alias de outro domínio | Frequentemente (para www e subdomínios) | Não | www.example.com → example.com | | MX | Define os servidores de e-mail do domínio | Não | Sim | example.com → mail.example.com (10) | | TXT (SPF) | Define quem pode enviar e-mails em nome do domínio | Não | Sim | v=spf1 include:_spf.google.com ~all | | TXT (DKIM/DMARC) | Garante assinatura e verificação de e-mails | Não | Recomendado | v=DMARC1; p=none; rua=mailto:... | **Como usar a tabela:** - Se você precisa apenas colocar um site no ar - basta um registro A (e, frequentemente, um CNAME para www); - Se vai configurar e-mail - são obrigatórios os registros MX e pelo menos um TXT (SPF); - Para garantir boa entrega de e-mails e evitar spam - adicione DKIM e DMARC (via TXT). **Lógica prática de configuração** - Site = A + (CNAME, se necessário); - E-mail = MX + TXT; - Ambiente moderno (produção) = tudo junto + TXT adicionais para segurança. Essa estrutura ajuda a evitar a maioria dos problemas comuns: site fora do ar, e-mails que não chegam ou mensagens indo para spam. ## Cenários típicos de configuração de DNS A teoria é a base, mas na prática tudo se resume a alguns cenários comuns. Os mais frequentes são: publicar um site, configurar e-mail e integrar serviços externos. Configuração mínima para um site Para que um site comece a funcionar, basta uma configuração básica: - Registro A - aponta para o IP do servidor; - CNAME (opcional) - usado para www ou outros subdomínios. **Exemplo:** example.com → A → 192.168.1.1 www.example.com → CNAME → example.com **Depois disso:** o domínio principal funciona; a versão com www também abre normalmente. Configuração mínima para e-mail Para o e-mail funcionar corretamente, é preciso um pouco mais: - Registros MX - definem para onde os e-mails serão entregues; - TXT (SPF) - define quem pode enviar e-mails em nome do domínio. Exemplo: - example.com → MX → mail.example.com (10) - example.com → TXT → v=spf1 include:mailprovider.com ~all Integração com serviços externos Hoje, praticamente qualquer serviço (e-mail, CDN, analytics, SaaS) exige alguma configuração de DNS. Na maioria dos casos, você vai usar: - CNAME - para conectar um subdomínio; - TXT - para validar a propriedade do domínio. Exemplos: - ativar um CDN → CNAME apontando para o provedor; - validar domínio → TXT com um token único; - configurar e-mail → combinação de MX + TXT (SPF, DKIM). Erros mais comuns na configuração de DNS Mesmo configurações simples podem falhar por detalhes: - Conflito entre A e CNAME - não é possível usar ambos no mesmo nome de domínio; - Ausência de MX - o e-mail não funciona, mesmo com o servidor configurado; - IP incorreto - o site não abre ou aponta para outro destino; - Erros em TXT - um espaço ou caractere errado pode quebrar SPF/DKIM; - Ignorar TTL e cache - mudanças em DNS não são imediatas e podem levar horas para propagar. Conclusão prática Na maioria dos casos, configurar DNS não é algo complexo - é uma questão de atenção aos detalhes. Entender esses cenários permite: - colocar projetos no ar rapidamente; - migrar sites sem dor de cabeça; - evitar problemas com e-mail e integrações. ## Como as plataformas em nuvem simplificam o trabalho com DNS O DNS, por si só, não armazena sites nem e-mails - ele apenas indica onde eles estão. Por isso, a próxima parte essencial da infraestrutura são os servidores e as plataformas em nuvem, onde seus serviços realmente ficam hospedados. Hoje, cada vez mais empresas no Brasil optam por soluções em nuvem em vez de hospedagem tradicional. Elas permitem lançar projetos mais rapidamente, ajustar recursos com facilidade e escalar conforme o crescimento. Como o DNS se conecta com a nuvem A lógica é simples: - você cria um servidor na nuvem; - recebe um endereço IP; - configura esse IP em um registro A; - e o seu domínio passa a apontar para essa infraestrutura. O mesmo vale para e-mail e outros serviços: - o DNS direciona o tráfego; - a nuvem processa as requisições. O que a nuvem oferece na prática Em comparação com a hospedagem tradicional, a nuvem traz vantagens importantes: - Provisionamento rápido - servidores prontos em minutos; - Flexibilidade - ajuste fácil de CPU, RAM e armazenamento; - Escalabilidade - crescimento sem necessidade de migração; - Alta disponibilidade - melhor distribuição de carga e resiliência. Isso é especialmente relevante para startups e projetos em crescimento. Serverspace: aplicação prática A [Serverspace](https://serverspace.com.br/index.md) é uma plataforma de cloud computing que permite criar e gerenciar infraestrutura para sites, APIs e serviços de e-mail de forma simples e rápida. Na prática, para DNS isso significa: - você cria um servidor na nuvem; - recebe o IP automaticamente; - configura um registro A - e o site já fica acessível; - adiciona serviços de e-mail e registros TXT conforme necessário. Principais vantagens da Serverspace: - Início simples - painel intuitivo e fácil de usar; - Deploy rápido de servidores; - Cobrança flexível (pay-as-you-go); - Adequado tanto para projetos pequenos quanto para soluções escaláveis. A combinação "[DNS + nuvem](https://serverspace.com.br/services/dns-hosting.md)" De forma resumida: - o DNS cuida do direcionamento; - a nuvem cuida da execução e do armazenamento. Essa combinação é o que garante: - disponibilidade do site; - funcionamento estável do e-mail; - integração correta com serviços externos. O resultado é uma infraestrutura moderna, escalável e fácil de gerenciar - especialmente quando você utiliza plataformas de nuvem atuais. ## Boas práticas e dicas práticas para trabalhar com DNS Mesmo entendendo os registros básicos de DNS, ainda existem vários detalhes que impactam a estabilidade e a segurança de sites e e-mails. A seguir, um conjunto de boas práticas que ajudam a evitar problemas comuns e facilitam a administração. Separe os ambientes (prod / test / dev) Evite usar o mesmo domínio para tudo. Boa prática: - example.com - produção; - test.example.com - testes; - dev.example.com - desenvolvimento. Isso reduz o risco de "quebrar" o site em produção durante testes. Use subdomínios de forma estratégica Subdomínios não são apenas um detalhe técnico - eles fazem parte da arquitetura: - www - versão pública do site; - api - backend/API; - mail - servidor de e-mail; - cdn - arquivos estáticos. Uma estrutura bem organizada facilita a escalabilidade e a manutenção. Verifique o DNS após alterações Depois de qualquer mudança, é essencial confirmar se tudo está funcionando corretamente. Ferramentas comuns: - dig; - nslookup; - serviços online (como DNS Checker). Isso ajuda a validar rapidamente: - se o IP retornado está correto; - se as mudanças já foram aplicadas; - se há conflitos nas configurações. Considere o TTL e o cache TTL (Time To Live) define por quanto tempo um registro DNS fica em cache. Boas práticas: - antes de mudanças importantes, reduza o TTL (por exemplo, para 300 segundos); - depois, volte ao valor padrão. Isso acelera a propagação e reduz possíveis indisponibilidades. Configure a segurança do e-mail Configuração mínima recomendada: - **SPF** - define quem pode enviar e-mails pelo domínio; - **DKIM** - adiciona assinatura digital às mensagens; - **DMARC** - define políticas de validação. Pense em alta disponibilidade Para projetos mais robustos, considere: - múltiplos registros MX (backup de e-mail); - múltiplos registros A (balanceamento simples); - uso de CDN e provedores DNS externos. Isso aumenta a disponibilidade em caso de falhas. Documente as alterações Uma prática muitas vezes ignorada. Registre: - quais registros foram criados; - por que foram adicionados; - quando foram modificados. Isso é essencial em equipes e projetos em crescimento - facilita manutenção e evita erros. Ideia principal DNS não é algo para "configurar uma vez e esquecer", mas sim parte de uma infraestrutura ativa. Quanto mais organizado e cuidadoso for o gerenciamento, mais: - estável será o site; - confiável será a entrega de e-mails; - fácil será escalar o projeto. ## FAQ - Por que as alterações de DNS não são aplicadas imediatamente? O DNS utiliza cache para reduzir a carga nos servidores e acelerar o acesso. Quando você altera um registro, parte dos usuários ainda pode receber dados antigos do cache (do provedor, navegador ou sistema operacional). O tempo de propagação depende do TTL e pode variar de alguns minutos até 24–48 horas. - Posso usar vários registros A para o mesmo domínio? Sim, é possível. Múltiplos registros A podem ser usados para um balanceamento simples (round-robin). No entanto, é um método básico - ele não verifica se o servidor está ativo. Se um deles cair, o DNS ainda pode direcionar tráfego para ele. - O que acontece se eu remover registros TXT? Depende da função desses registros: - remover SPF/DKIM/DMARC pode prejudicar a entrega de e-mails ou fazer com que caiam em spam; - remover registros de verificação pode desconectar o domínio de serviços externos. De forma geral, só remova registros TXT se tiver certeza da finalidade deles. - Qual a diferença entre DNS no registrador e DNS no provedor de hospedagem ou nuvem? Na prática, a função é a mesma: gerenciar registros DNS. A diferença está na usabilidade, velocidade de propagação e recursos adicionais (como segurança, API e redundância). Por isso, muitas empresas preferem usar serviços dedicados de DNS, independentes da hospedagem. - Preciso mudar o DNS ao migrar um site para outro servidor? Não necessariamente. Na maioria dos casos, basta atualizar o registro A com o novo endereço IP. Essa é a forma mais simples e rápida de migrar um site sem alterar toda a estrutura de DNS. https://serverspace.com.br/about/news/novos-templates-de-sistemas-operacionais-ja-estao-disponiveis-no-painel-de-controle-da-serverspace.md A Serverspace lançou novos templates de sistemas. Inclui versões atualizadas como Windows, Ubuntu e Debian. Crie seu VPS em minutosl Expandimos a variedade de templates de SO disponíveis para implantação na nuvem da Serverspace! Agora você pode criar máquinas virtuais com as versões mais recentes dos sistemas operacionais mais populares - de forma rápida e sem necessidade de configuração manual. ## A lista de novos sistemas operacionais inclui: - Windows 2025; - Ubuntu 25.10; - Debian 13.3; - AlmaLinux 10.1; - Oracle Linux 10.1; - Rocky Linux 10.1. ## O que há de novo nessas versões? Windows 2025 Nova versão do sistema operacional de servidor da Microsoft, com melhorias em desempenho e segurança: - Mecanismos de proteção e controle de acesso mais avançados; - Otimização para uso em infraestruturas de nuvem; - Suporte aprimorado a contêineres e cenários híbridos. Ubuntu 25.10 Versão atual de uma das distribuições mais populares para nuvem: - Pacotes e kernel atualizados; - Melhor desempenho e segurança; - Suporte ampliado para conteinerização e ferramentas de DevOps. Debian 13.3 Distribuição estável e confiável para ambientes de servidor: - Pacotes atualizados e correções de segurança; - Maior estabilidade do sistema; - Melhor compatibilidade com hardware moderno. AlmaLinux 10.1 Alternativa gratuita ao Red Hat Enterprise Linux com estabilidade de nível corporativo: - Componentes do sistema e kernel atualizados; - Melhor suporte para virtualização e contêineres; - Desempenho otimizado para cargas de trabalho em servidores. Oracle Linux 10.1 Distribuição corporativa voltada para aplicações empresariais: - Otimização para ambientes em nuvem; - Recursos avançados de conteinerização; https://serverspace.com.br/about/blog/conteineres-em-producao-docker-compose-configuracao-inteligente.md Como configurar Docker e Docker Compose para produção. Abordamos arquitetura, segurança e erros comuns. Recomendações práticas. Há alguns anos, a frase "na minha máquina funciona" era quase normal. Hoje, é um sinal de alerta. Para o negócio, não basta apenas rodar uma aplicação: é essencial que ela funcione de forma estável, previsível e escalável em qualquer ambiente. É por isso que a conteinerização - especialmente com Docker, se tornou um elemento-chave na evolução de serviços. Os contêineres permitem empacotar a aplicação junto com todas as suas dependências — bibliotecas, configurações e componentes do sistema - em um ambiente isolado. Isso garante que a aplicação se comporte da mesma forma em qualquer servidor: do notebook do desenvolvedor até a infraestrutura de produção na nuvem. Para o negócio, isso impacta diretamente receita e riscos: - menos falhas durante releases; - lançamento mais rápido de novos projetos; - escalabilidade mais simples sob carga; - menor dependência de um servidor específico ou de uma pessoa. Na prática, é comum ver cenários em que os contêineres são adotados apenas formalmente: a aplicação foi "colocada" no Docker, mas arquitetura, segurança e gestão continuam como antes. O resultado são os mesmos problemas, só que em outro formato. **Daí surge a pergunta natural:** como usar Docker e Docker Compose não apenas para "cumprir tabela", mas para gerar resultados reais? ## Docker em produção ≠ Docker em desenvolvimento Na fase de desenvolvimento, o Docker resolve principalmente uma coisa: facilitar a vida da equipe. Subir o ambiente rapidamente, iniciar dependências, sincronizar versões - e começar a trabalhar. Nesse contexto, simplificações são aceitáveis: segurança mínima, mais flexibilidade do que rigor, velocidade acima da confiabilidade. Em produção, porém, as prioridades mudam completamente. Se no ambiente de desenvolvimento um erro custa alguns minutos, em produção ele significa indisponibilidade do serviço, perda de usuários e de receita. Por isso, a abordagem com contêineres precisa ser diferente. Principais diferenças entre dev e prod: - em desenvolvimento, frequentemente se usam imagens com _tag latest_; - em produção, apenas versões fixas; - em dev, variáveis podem ficar em arquivos _.env_; - em produção, isso representa risco de vazamento; - em produção, é essencial controlar recursos, reinicializações e o estado dos serviços. Erros comuns ao ir para produção: - **Um único contêiner para tudo -** aplicação, banco de dados e cache juntos. Parece prático, mas vai contra o conceito de conteinerização: qualquer falha derruba tudo; - **Uso de latest -** atualizações automáticas sem controle podem causar falhas inesperadas após reinicializações; - **Ausência de política de restart -** o contêiner cai e permanece parado. Sem políticas de reinício, isso é comum; - **Segredos dentro da imagem -** senhas, chaves de API e tokens. Uma vez dentro da imagem, tornam-se difíceis de gerenciar e rotacionar; - **Sem logs e monitoramento -** o contêiner "funciona" até o primeiro incidente. Depois, fica difícil entender o que aconteceu; ## Arquitetura de uma aplicação em contêineres Um erro comum ao adotar Docker é tentar colocar todo o servidor dentro de um único contêiner. A arquitetura de contêineres se baseia na isolação: cada componente deve cumprir apenas uma função. Separação em serviços Uma aplicação em produção é composta por vários serviços: - backend; - frontend; - banco de dados; - cache (Redis); - filas (RabbitMQ). Cada componente roda separadamente. Isso garante isolamento, escalabilidade independente e atualizações sem impactar outras partes do sistema. Redes Os contêineres são conectados em uma rede interna do projeto e se comunicam por nomes (como db ou redis), e não por IP. Isso facilita a migração e mudanças de infraestrutura sem alterar a lógica da aplicação. Volumes Os contêineres são efêmeros, então os dados precisam ficar fora deles, usando volumes. Isso vale para bancos de dados, arquivos de usuários e, em alguns casos, logs. Assim, os dados são preservados independentemente do ciclo de vida dos contêineres. Variáveis de ambiente Os contêineres permanecem genéricos, enquanto a configuração é passada de fora: - parâmetros de conexão; - chaves de API; - modo de execução. O mesmo image pode ser usado em diferentes ambientes sem modificações. Pensamento orientado a serviços A principal mudança é sair da lógica de "um servidor" para um sistema de serviços. Isso facilita a escalabilidade, automação e migração para a nuvem. ## Docker Compose: configuração Quando há vários serviços, o Docker Compose se torna a principal ferramenta. Ele descreve todo o sistema em um único arquivo e permite gerenciá-lo como um conjunto integrado. O arquivo _docker-compose.yml_ passa a fazer parte da arquitetura. Estrutura O arquivo inclui blocos principais como: services, volumes, networks, além de configs e secrets. Quando bem organizado, permanece claro e fácil de entender. Boas práticas para produção **Principais parâmetros:** - healthcheck; - restart policy; - depends_on. O **healthcheck** verifica se o serviço está realmente pronto - um contêiner em execução nem sempre significa que está funcionando corretamente. A **restart policy** garante recuperação automática: o contêiner deve reiniciar sem intervenção manual. O **depends_on** controla a ordem de inicialização, mas não garante que o serviço esteja pronto. Por isso, deve ser combinado com verificações de estado e mecanismos de espera. Separação de configurações Um único arquivo _Compose_ não deve ser usado para todos os ambientes. Normalmente, utilizam-se configurações separadas: _base, dev e prod_. Isso evita que ajustes de teste cheguem à produção e facilita a manutenção. Legibilidade A configuração deve ser lógica e não sobrecarregada. Um bom arquivo Compose funciona quase como documentação. Exemplo de lógica O backend depende do banco de dados e do cache, possui healthcheck e limites de recursos. O banco usa volume para persistência e não fica exposto externamente. O cache roda como um serviço leve, sem necessidade de armazenamento persistente. ## Segurança e estabilidade Os contêineres simplificam a gestão, mas não garantem confiabilidade por si só - isso é responsabilidade da arquitetura. Segredos Armazenar segredos em _.env_, imagens ou no _docker-compose.yml (risco)_. Em produção, utilizam-se _secrets_, cofres externos ou variáveis no nível da infraestrutura. Segredos não devem estar no repositório nem embutidos nas imagens. Recursos Sem limites, um contêiner pode consumir todos os recursos do host. Por isso, é essencial definir limites de CPU e RAM para evitar que todo o sistema seja afetado. Atualizações e rollback Contêineres permitem atualizações rápidas, mas uma versão com erro pode causar falhas. Boas práticas incluem usar tags fixas, manter versões anteriores e garantir _rollback_. As atualizações devem ser feitas de forma gradual. Logs e monitoramento Logs mostram o que aconteceu; monitoramento mostra o que está acontecendo. O mínimo é usar _stdout/stderr_; em produção, o ideal são sistemas centralizados. **Monitorar:** - uso de CPU e RAM; - estado dos contêineres; - disponibilidade dos serviços. ## Checklist de configuração Docker/Compose para produção Mesmo entendendo os princípios, é fácil deixar passar detalhes. Por isso, é útil ter um checklist rápido para avaliar a configuração atual e identificar pontos fracos. Abaixo está uma tabela prática que pode ser usada como um mini-auditoria antes de ir para produção ou ao otimizar o sistema. Checklist | Área | Sem boas práticas | Em produção | | --- | --- | --- | | Imagens | Uso de latest | Versões fixas (tags) | | Arquitetura | Um contêiner para tudo | Separação por serviços | | Segredos | Em .env ou no código | Em secrets ou cofres externos | | Restart policy | Não definida | always ou unless-stopped | | Healthcheck | Ausente | Configurado para serviços críticos | | Depends_on | Usado como garantia | Com healthcheck + lógica de retry | | Dados | Dentro do contêiner | Uso de volumes | | Logs | Apenas locais | Log centralizado | | Monitoramento | Ausente | Métricas e alertas | | Recursos | Sem limites | Limites de CPU/RAM | | Atualizações | Rebuild direto | Versionamento + rollback | | Configurações | Um único arquivo | Separação entre dev e prod | **Como usar este checklist:** - Revise cada ponto e avalie o estado atual; - Identifique 2–3 pontos mais críticos; - Corrija de forma gradual - não tente resolver tudo de uma vez. Por que isso importa A maioria dos problemas em produção não vem do Docker em si, mas de pequenos detalhes negligenciados: - _esquecer a restart policy_ → o serviço não sobe; - _usar latest_ → bugs inesperados após reinício; - _ausência de logs_ → impossível diagnosticar falhas. Separadamente parecem detalhes, mas juntos criam um sistema instável. ## Contêineres e nuvem Contêineres raramente são usados de forma isolada. Em produção, quase sempre estão combinados com infraestrutura em nuvem. Um servidor local pode funcionar para testes, mas com o aumento de carga, usuários e exigências de disponibilidade, ele rapidamente se torna limitado. A conteinerização traz flexibilidade, mas seu potencial só se revela totalmente em um ambiente escalável. Na nuvem, isso se traduz em: - provisionamento rápido de serviços; - escalabilidade conforme a demanda; - separação de ambientes (dev / staging / prod); - maior disponibilidade e tolerância a falhas. Em um único servidor, essas capacidades são limitadas, o que leva a problemas comuns: - falta de recursos; - dificuldade com backups e redundância; - gestão manual; - baixa escalabilidade. Como resultado, o Docker até é utilizado, mas não entrega todo o seu potencial. A infraestrutura em nuvem elimina essas limitações. Ela permite criar novas instâncias rapidamente, gerenciar recursos via interface ou API e automatizar o deploy. Na prática, isso é facilmente implementado em plataformas como a Serverspace. Nela, é possível: - criar um VPS em minutos; - usar Docker e Docker Compose sem restrições; - ajustar recursos conforme a necessidade; - automatizar a infraestrutura via API. Isso simplifica o lançamento de projetos com contêineres, a migração entre ambientes e o escalonamento posterior. Nesse modelo, os papéis ficam bem definidos: - contêineres - isolamento e portabilidade; - nuvem - recursos, disponibilidade e escala. É essa combinação que garante estabilidade, flexibilidade e previsibilidade para o sistema. ## Conclusão A conteinerização se tornou um elemento básico para lançar e desenvolver projetos. O Docker não resolve tudo sozinho - ele fornece a base sobre a qual o sistema é construído. O resultado depende da arquitetura e da configuração: separação de serviços, controle de recursos, gestão de configurações e observabilidade. É isso que garante estabilidade, previsibilidade nos releases e capacidade de escalar. Em conjunto com a infraestrutura em nuvem, os contêineres revelam todo o seu potencial como um ambiente gerenciável, flexível e confiável para produção. ### Quando migrar de Docker Compose para Kubernetes? Quando surgir a necessidade de escalonamento automático, balanceamento de carga e gestão de dezenas de serviços. O Docker Compose é ideal para projetos pequenos e médios, mas com o crescimento da infraestrutura, o Kubernetes se torna mais adequado. ### É possível usar Docker em projetos de alta carga? Sim. A maioria dos sistemas de alta carga hoje utiliza contêineres. O ponto-chave não é o Docker em si, mas a arquitetura, o escalonamento e o monitoramento. ### É necessário implementar CI/CD para contêineres? Sim, especialmente em projetos em crescimento. CI/CD permite testar, construir e fazer deploy de imagens automaticamente, reduzindo erros e acelerando releases. ### O que é mais importante: orquestração ou arquitetura? Arquitetura. Mesmo o melhor orquestrador não corrige problemas de separação de serviços ou de configuração. https://serverspace.com.br/about/news/novos-modelos-de-llm-ja-estao-disponiveis-no-painel-de-controle-da-serverspace.md LLMs na Serverspace: Claude 4.6, GPT-5.4, DeepSeek V3.2 e mais. Integre IA para desenvolvimento, análise e automação via API. Expandimos a lista de modelos de linguagem disponíveis na nuvem da Serverspace. Agora você pode escolher entre várias LLMs modernas de desenvolvedores líderes - para desenvolvimento, automação e integração de IA em projetos sem configuração complexa. ## Lista de modelos disponíveis - anthropic/claude-sonnet-4.6; - anthropic/claude-opus-4.6; - openai/gpt-5.4; - openai/gpt-5.4-mini; - openai/gpt-5.4-pro; - openai/gpt-5.3-codex; - minimax/minimax-m2.7; - deepseek/deepseek-v3.2; - moonshotai/kimi-k2.5. ## O que há de novo? Modelos OpenAI Nova linha de modelos para diferentes cenários - de geração de texto a desenvolvimento: - **GPT-5.4** - modelo universal para tarefas complexas, análise e conteúdo; - **GPT-5.4-mini** - respostas rápidas com menor custo; - **GPT-5.4-pro** - máximo desempenho para cargas intensivas; - **GPT-5.3-codex** - focado em programação e automação; Modelos Anthropic Modelos com foco em compreensão de contexto e análise: - **Claude Sonnet 4.6** - equilíbrio entre velocidade e qualidade para tarefas do dia a dia; - **Claude Opus 4.6** - modelo avançado para análises complexas e contextos longos. Outros modelos Soluções adicionais para cenários específicos: - **DeepSeek V3.2** - forte em matemática, código e análise; - **Minimax M2.7** - geração rápida de texto e chatbots; - **Kimi K2.5** - eficiente com documentos longos e grandes volumes de dados; Novos modelos já estão disponíveis no[painel de controle](https://my.serverspace.com.br/) da Serverspace - comece a utilizá-los em seus projetos agora mesmo. _[Serverspace](https://serverspace.com.br/index.md) - provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows e sistemas operacionais russos de qualquer lugar do mundo em menos de 1 minuto. Para integração de serviços dos clientes, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/top-ferramentas-de-ia-gratuitas-para-desenvolvedores-em-2026.md Descubra as melhores ferramentas de IA grátis para desenvolvedores em 2026. Compare limites, recursos e casos de uso. Monte seu stack completo Inteligência artificial deixou de ser uma promessa distante e passou a fazer parte da rotina de quem escreve código. Segundo uma pesquisa recente do GitHub, mais de 90% dos desenvolvedores nos Estados Unidos já utilizam alguma ferramenta de IA no dia a dia. O dado impressiona, mas a realidade por trás dele é simples: as ferramentas de IA para programação se tornaram boas o suficiente para economizar horas de trabalho por semana, e muitas delas são totalmente gratuitas. O problema é que a quantidade de opções cresceu tanto que fica difícil saber por onde começar. Assistentes de código dentro do editor, agentes autônomos no terminal, plataformas de revisão, scanners de segurança. Cada ferramenta resolve uma parte do processo, e a escolha errada pode significar tempo perdido com limites restritivos ou funcionalidades que não se aplicam ao seu cenário. Este guia reúne as melhores ferramentas de IA grátis para desenvolvedores disponíveis em 2026. Explicamos o que cada uma faz, quais são os limites dos planos gratuitos, para quem elas servem e como montar um ambiente de desenvolvimento completo sem gastar nada. Se você quer entender qual a melhor IA para programação e como aplicá-la na prática, este material foi feito para isso. ## O que são ferramentas de IA para desenvolvimento de software e por que usá-las? Ferramentas de IA para desenvolvimento de software são programas que utilizam modelos de linguagem e aprendizado de máquina para auxiliar em tarefas de programação. Elas vão muito além do autocomplete tradicional. Dependendo da categoria, conseguem gerar funções inteiras a partir de uma descrição em texto, refatorar código em vários arquivos ao mesmo tempo, revisar pull requests automaticamente, detectar vulnerabilidades de segurança e até criar aplicações completas a partir de prompts. Em 2026, essas ferramentas de desenvolvimento com IA se dividem em algumas categorias principais. Primeiro, os assistentes de código integrados ao editor, que sugerem trechos enquanto você digita. Depois, os agentes de terminal, que executam tarefas complexas e autônomas dentro de repositórios. Existem também os revisores de código com IA, os scanners de segurança e as plataformas de machine learning para quem constrói aplicações baseadas em modelos. **Um dado interessante:** pesquisas indicam que o desenvolvedor médio utiliza 2,3 ferramentas de IA simultaneamente. A razão é que não existe um único instrumento que cubra tudo. O ideal é combinar soluções por camadas: um assistente no editor para o trabalho diário, um agente para tarefas pesadas e uma ferramenta de revisão ou segurança no pipeline. ## Qual a melhor IA para programação? Critérios para escolher A pergunta "qual a melhor IA para programação" não tem uma resposta única. Depende do que você faz, do editor que usa, da linguagem em que trabalha e do nível de privacidade que precisa. Para avaliar de forma objetiva, vale observar alguns critérios. **O primeiro** é o limite do plano gratuito. Algumas ferramentas oferecem 2 000 completions por mês, outras dão acesso ilimitado. Esse número define se a ferramenta vai servir apenas para testes ou para uso profissional contínuo. **O segundo** critério é a compatibilidade com editores. Se você trabalha no VS Code, praticamente todas as opções funcionam. No [JetBrains](https://www.jetbrains.com/), algumas não têm extensão oficial. Quem prefere o terminal precisa de ferramentas específicas. **O terceiro** ponto é a privacidade. Ferramentas em nuvem enviam seu código para servidores externos. Soluções open-source permitem rodar modelos localmente ou apontar para uma API de sua confiança, mantendo o controle dos dados. O quarto aspecto é a qualidade da geração: nem toda IA produz código igualmente bom em todas as linguagens. Modelos maiores tendem a ser mais precisos, mas também mais lentos e caros. A recomendação geral é não buscar uma única melhor IA para programação grátis, mas sim montar uma combinação que cubra os diferentes estágios do trabalho: escrita, revisão e segurança. ## Assistentes de código IA grátis: o que cada editor oferece em 2026 Os assistentes de código integrados ao editor são a porta de entrada para quem quer começar a usar IA para programação. Eles funcionam como um colega silencioso que sugere a próxima linha, completa funções e responde perguntas sobre o código que está aberto. Veja as principais opções gratuitas. GitHub Copilot Free. É o assistente de código com IA mais usado no mundo. O plano gratuito para pessoas físicas inclui 2 000 completions e 50 mensagens de chat por mês. Funciona dentro do VS Code e de editores JetBrains, suporta mais de 50 linguagens e usa modelos de última geração da OpenAI. Para quem está começando, é a escolha mais segura. Gemini Code Assist. Oferta gratuita do Google para desenvolvedores individuais. Não exige cartão de crédito e permite até 1 000 requisições por dia. Além do editor, o Google oferece o [GeminiCLI](https://geminicli.com/), uma ferramenta de linha de comando para integrar modelos diretamente em scripts e fluxos de trabalho no terminal. Ideal para quem já trabalha com o ecossistema Google Cloud. Cursor Free. Cursor é uma IDE com IA embutida que permite editar e refatorar código usando comandos em linguagem natural. O plano gratuito oferece 2 000 completions e 50 requisições premium por mês. A interface é baseada no VS Code, então a curva de aprendizado é pequena. O diferencial é a capacidade de aplicar alterações estruturadas em múltiplos arquivos de uma vez. Amazon Q Developer. Voltado para o ecossistema AWS, oferece completions ilimitados no plano gratuito e 50 requisições de agente por mês. Funciona no VS Code e JetBrains. É uma boa opção para quem já desenvolve dentro da infraestrutura da Amazon. Continue.dev. Extensão open-source para VS Code e JetBrains que conecta seu editor a qualquer modelo de IA. Pode usar APIs em nuvem, modelos locais via Ollama ou até mesmo APIs próprias. É a melhor opção para quem quer um assistente de programação com IA sem ficar preso a nenhum fornecedor específico. ## Agentes de código no terminal: a nova geração de IA para programação Se os assistentes de editor funcionam como um copiloto que sugere, os agentes de terminal funcionam como um desenvolvedor autônomo que executa. Eles recebem uma instrução, analisam o repositório inteiro, editam múltiplos arquivos, rodam testes e fazem commits. É a categoria que mais cresceu em 2026. OpenCode é o fenômeno open-source do ano. Com mais de 140 mil estrelas no [GitHub](https://github.com/?locale=pt-br) e cerca de 6 milhões de desenvolvedores ativos por mês, ele roda inteiramente no terminal com uma interface TUI polida. O projeto é escrito em Go, o que garante inicialização em menos de 200 milissegundos. O ponto forte é a compatibilidade com mais de 75 provedores de LLM: [OpenAI](https://openai.com/), [Anthropic](https://www.anthropic.com/), Google, [DeepSeek](https://www.deepseek.com/), modelos locais via Ollama e muitos outros. Você não paga assinatura alguma pelo OpenCode; o custo fica apenas nas chamadas ao modelo que escolher. Claude Code é a ferramenta de linha de comando da Anthropic. Seu diferencial é a janela de contexto de 200 mil tokens, a maior da categoria, o que permite analisar bases de código extensas em uma única sessão. É especialmente forte em refatorações arquiteturais e tarefas que envolvem múltiplos arquivos. Aider é um agente open-source com foco em transparência. Cada alteração que a IA faz vira um commit separado no Git, o que facilita revisão e rollback. Funciona com diversos provedores de API e oferece controle total sobre os custos. Ferramentas como OpenCode e Aider funcionam com qualquer API compatível com o padrão OpenAI. Para desenvolvedores no Brasil, a Serverspace oferece uma IA na nuvem com acesso a modelos como GPT-5.4, Claude, DeepSeek e Qwen, tudo com cobrança em reais e sem necessidade de cartão internacional. Basta gerar uma chave de API no painel de controle e apontar o agente para o endpoint. ## Ferramentas de IA para testes, revisão e segurança de código Escrever código é apenas uma parte do ciclo de desenvolvimento. Revisar, testar e proteger são etapas que consomem tempo e que a IA também já consegue automatizar. As ferramentas de IA para código desta categoria atuam antes de o código chegar à produção. **CodeRabbit** é o aplicativo de revisão de código com IA mais instalado no GitHub e GitLab, com mais de 2 milhões de repositórios conectados. Ele analisa pull requests em cerca de 3 minutos, combina raciocínio de IA com mais de 40 linters integrados e gera comentários de baixo ruído. Para projetos open-source, o uso é gratuito. **Qodo** (anteriormente Codium) se especializa em geração de testes. Ele analisa o código, identifica cenários não cobertos e cria testes unitários automaticamente. O plano gratuito inclui revisões limitadas de PR e créditos mensais. **Snyk** é um scanner de segurança estática (SAST) que detecta vulnerabilidades em código, dependências, contêineres e infraestrutura como código. O free tier permite usar o scanner dentro do VS Code, do JetBrains e no pipeline de CI/CD. A filosofia é integrar segurança desde o início do desenvolvimento, não apenas no final. **Playwright** é um framework open-source do time da Microsoft para testes end-to-end de aplicações web. Em 2026, ele incorporou funcionalidades de geração de testes com IA, o que acelera a criação de scripts de teste para interfaces complexas. É completamente gratuito. ## Plataformas de ML e prototipagem com IA gratuita Para desenvolvedores que não apenas consomem IA, mas constroem aplicações inteligentes, existem plataformas gratuitas que oferecem modelos prontos, hospedagem de demos e APIs de inferência. **Hugging Face** é o maior hub de modelos de machine learning do mundo, com mais de 2 milhões de modelos e 500 mil datasets disponíveis. A conta gratuita dá acesso à biblioteca Transformers, permite hospedar demos interativos via Spaces (usando Gradio ou Streamlit) e oferece uma Inference API com limites de taxa. É o ponto de partida para qualquer projeto de ML. **Google AI Studio** permite prototipar com os modelos Gemini gratuitamente, direto no navegador. É ideal para testar prompts, comparar respostas de diferentes modelos e gerar código de integração. Estudantes e pesquisadores podem usar a Gemini Developer API sem custo para experimentação. **NotebookLM** é uma ferramenta gratuita do Google que transforma documentos, PDFs e sites em um assistente personalizado. O plano gratuito permite até 100 notebooks e 50 fontes por notebook. O recurso Audio Overview gera discussões em formato podcast a partir do material carregado, o que é útil para absorver documentação técnica densa de forma mais rápida. **Antigravity** é o novo editor agêntico do Google, um fork do VS Code com agentes que planejam, escrevem, testam e implantam aplicações de forma autônoma. Está em preview público gratuito e inclui acesso a modelos como Gemini 3 Pro. É a melhor IA grátis para programação voltada a iniciantes que querem construir software real sem configurar ambientes. ## Comparação das principais ferramentas de IA para programação grátis A tabela abaixo resume as principais opções gratuitas de 2026. Use-a como referência rápida para comparar limites, compatibilidade e casos de uso ideais. | Ferramenta | Categoria | Limite grátis | IDE / Terminal | Open-source | Ideal para | | --- | --- | --- | --- | --- | --- | | GitHub Copilot Free | Assistente de código | 2 000 completions + 50 chats/mês | VS Code, JetBrains | Não | Uso diário em projetos de qualquer porte | | Gemini Code Assist | Assistente de código | 1 000 requisições/dia | VS Code, JetBrains | Não | Quem já trabalha com Google Cloud | | Cursor Free | IDE com IA | 2 000 completions + 50 premium/mês | IDE própria | Não | Edição e refatoração de código | | Amazon Q Developer | Assistente de código | Completions ilimitados + 50 agentes/mês | VS Code, JetBrains | Não | Projetos no ecossistema AWS | | OpenCode | Agente no terminal | Ilimitado (custo da API do LLM à parte) | Terminal (TUI) | Sim | Tarefas complexas em repositórios grandes | | Continue.dev | Assistente de código | Ilimitado (custo da API à parte) | VS Code, JetBrains | Sim | Flexibilidade total na escolha do modelo | | CodeRabbit | Revisão de código | Grátis para open-source | GitHub, GitLab, Bitbucket | Não | Revisão automática de pull requests | | Snyk | Segurança | Free tier (scans limitados) | IDE, CI/CD, CLI | Não | Detecção de vulnerabilidades antes do merge | | Hugging Face | Plataforma de ML | Modelos + Spaces + Inference API | API, Gradio, Spaces | Sim | Prototipagem e deploy de modelos de ML | | Aider | Agente no terminal | Ilimitado (custo da API à parte) | Terminal | Sim | Transparência total com commits Git | As ferramentas marcadas como open-source não cobram pelo uso do software em si. O custo, quando existe, vem das chamadas de API ao provedor de LLM escolhido. Já as ferramentas proprietárias oferecem planos gratuitos com limites definidos, e costumam ter planos pagos a partir de 10 a 20 dólares por mês. ## Como montar seu ambiente de desenvolvimento com IA sem gastar nada Montar um fluxo de trabalho completo e gratuito é possível combinando ferramentas por camada. Cada camada resolve um problema diferente, e nenhuma delas precisa de assinatura paga. Camada 1: autocomplete no editor. Comece com GitHub Copilot Free ou Gemini Code Assist. Ambos funcionam no VS Code e cobrem o uso diário de sugestões e chat. Se você quer mais liberdade na escolha do modelo, instale o [Continue.dev](https://www.continue.dev/) e aponte para a API de sua preferência. Camada 2: agente para tarefas complexas. Para refatorações, debugging em múltiplos arquivos e geração de projetos, use OpenCode ou Aider no terminal. Ambos são gratuitos e funcionam com qualquer provedor de API. Eles complementam o assistente do editor porque conseguem operar em escala de repositório, não apenas no arquivo aberto. Se a dúvida é encontrar o melhor assistente de código IA grátis para tarefas pesadas, OpenCode é a resposta mais completa em 2026. Camada 3: revisão de código. Adicione CodeRabbit ao seu repositório no GitHub para receber revisões automáticas a cada pull request. Isso funciona como uma segunda opinião antes do merge e captura problemas que passam despercebidos na revisão manual. Camada 4: segurança. Integre o Snyk ao seu pipeline de CI/CD desde o primeiro dia. A versão gratuita já cobre varredura de código e dependências. Corrigir vulnerabilidades depois é sempre mais caro do que detectá-las cedo. Camada 5: prototipagem e ML. Se você constrói aplicações com modelos de linguagem ou visão computacional, use Hugging Face para acessar modelos e Google AI Studio para iterar rapidamente sobre prompts. Para quem precisa de infraestrutura própria, seja para rodar modelos locais com Ollama, hospedar aplicações de ML ou manter runners de CI/CD, um VPS na Serverspace no data center de São Paulo é uma opção prática. O deploy leva cerca de 40 segundos, o tráfego é ilimitado, a cobrança acontece a cada 10 minutos e os planos começam a partir de R$24 por mês. Além disso, a plataforma oferece Terraform Provider, CLI e API pública para automatizar toda a gestão da infraestrutura. ## Erros comuns ao usar IA para programação e como evitá-los Adotar ferramentas de IA para código sem critério pode criar mais problemas do que resolver. Estes são os cinco erros mais frequentes entre desenvolvedores que estão começando. **1. Aceitar código gerado sem revisão.** A IA produz código que compila e parece correto, mas pode conter lógica errada, vulnerabilidades ou práticas obsoletas. Trate toda sugestão como um rascunho que precisa ser validado. O CodeRabbit e o Snyk ajudam a automatizar parte dessa validação. **2. Usar uma única ferramenta para tudo.** Nenhum assistente resolve todos os problemas. Os melhores resultados vem de combinações por camada, como descrito na seção anterior. Um assistente de código IA grátis para autocomplete não substitui um scanner de segurança. **3. Ignorar a segurança do código gerado.** Modelos de linguagem foram treinados em repositórios públicos que incluem código vulnerável. Sem uma camada de verificação, você pode estar introduzindo falhas no seu projeto. Integre o Snyk ou outro SAST desde o início. **4. Enviar código proprietário sem verificar políticas.** Antes de colar trechos confidenciais em um assistente em nuvem, verifique os termos de uso do serviço. Se a privacidade é crítica, prefira soluções open-source como OpenCode ou Continue.dev rodando com modelos locais. **5. Não acompanhar atualizações.** O ecossistema de IA para programação muda rápido. Ferramentas lançam versões novas a cada poucas semanas, modelos melhoram, limites gratuitos mudam. Reserve tempo a cada trimestre para reavaliar seu stack. ## Conclusão Em 2026, não é mais necessário pagar para ter acesso a ferramentas de IA para programação de alta qualidade. Os planos gratuitos de GitHub Copilot, Gemini Code Assist e Amazon Q já atendem à maioria dos cenários de uso diário. Soluções open-source como OpenCode, Aider e Continue.dev eliminam limites de uso e dão ao desenvolvedor controle total sobre modelos e dados. A chave está em combinar ferramentas por camada. Um assistente no editor, um agente no terminal para tarefas pesadas, CodeRabbit para revisão e Snyk para segurança formam um stack completo e gratuito que cobre da escrita ao deploy. Para quem quer ir além e rodar modelos localmente ou hospedar aplicações de IA em infraestrutura própria, a [Serverspace](https://serverspace.com.br/index.md) oferece [VPS no Brasil](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) com deploy rápido, tráfego ilimitado e suporte 24/7 em português. Comece com um servidor simples, instale as ferramentas que testou neste guia e veja o impacto na sua produtividade desde o primeiro dia. ### O que são ferramentas de IA para programação e como elas funcionam? São sistemas baseados em modelos de linguagem que ajudam desenvolvedores a escrever, revisar e otimizar código. Elas vão além do autocomplete tradicional, podendo gerar funções completas, refatorar projetos inteiros, sugerir melhorias e até criar aplicações a partir de descrições em texto. ### Preciso pagar para usar IA na programação em 2026? Não necessariamente. Muitas ferramentas populares, como GitHub Copilot Free, Gemini Code Assist e Amazon Q Developer, oferecem planos gratuitos com limites generosos. Além disso, soluções open-source como OpenCode e Continue.dev permitem uso ilimitado, dependendo apenas da API escolhida. ### Qual é a melhor IA grátis para programação? Não existe uma única melhor opção, pois cada ferramenta atende a um tipo de uso. Copilot é ideal para uso diário no editor, Cursor para refatoração, OpenCode e Aider para tarefas complexas no terminal. O melhor resultado vem da combinação de várias ferramentas em camadas. ### Quais erros devo evitar ao usar IA para programação? Os principais erros são aceitar código gerado sem revisão, usar apenas uma ferramenta para tudo, ignorar segurança, não verificar políticas de privacidade antes de enviar código sensível e não atualizar o stack de ferramentas regularmente, já que esse ecossistema muda muito rápido. https://serverspace.com.br/about/news/novos-1-click-apps-disponiveis-no-painel-do-serverspace.md Conheça os novos 1-Click Apps do Serverspace. Implante painéis web em minutos. Simplifique gestão e configuração de servidores. Ampliamos a lista de 1-Click Apps disponíveis. Agora, ao criar um servidor, você pode instalar em poucos minutos uma plataforma pronta para gerenciar seus projetos web. ## O que foi adicionado: Plesk Obsidian Painel universal para servidores e projetos web. Ideal para agências e desenvolvedores que trabalham com diferentes sistemas operacionais. Indicado para: - gerenciamento de múltiplos sites e domínios em uma única interface; - trabalho com Docker, Git e gerenciamento de bibliotecas PHP; - suporte a Windows e Linux em um mesmo servidor; - controle de acesso com diferentes níveis de permissão para usuários. ISPmanager Lite Solução leve para início rápido. Interface simples e intuitiva, sem funcionalidades complexas, ideal para iniciantes e pequenos negócios. Indicado para: - gerenciamento de 1 a 5 sites em VPS/VDS; - configuração rápida de e-mail, FTP e bancos de dados; - economia de recursos em servidores com menor capacidade. cPanel Painel com um amplo conjunto de ferramentas para usuários avançados. Indicado para: - hospedagem web profissional (empresa própria de hosting ou revenda); - gerenciamento de dezenas ou centenas de projetos de clientes; - automação de tarefas rotineiras por meio da interface. Quais recursos os novos 1-Click Apps oferecem: - lançamento rápido de sites e projetos web; - redução do tempo de configuração inicial do servidor; - gerenciamento de domínios, e-mail, bancos de dados e arquivos por meio de um painel intuitivo; - simplificação das tarefas diárias de administração do servidor. Os novos 1-Click Apps adicionados permitem escolher a ferramenta de gerenciamento de servidor mais adequada e seguir um fluxo de trabalho familiar. Como conectar: - Abra o painel de controle do Serverspace; - Clique em "Criar servidor"; - Na etapa de configuração, selecione a solução desejada na seção 1-Click Apps; - Conclua a criação do servidor e comece a trabalhar pela interface escolhida. Os novos 1-Click Apps já estão disponíveis no painel do Serverspace. Escolha a solução ideal e inicie seu servidor com a ferramenta necessária em apenas 1 minuto. _[Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows e sistemas operacionais russos, a partir de qualquer lugar do mundo, em menos de 1 minuto. Para integração com serviços dos clientes, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/o-que-e-openclaw-um-guia-completo-para-iniciantes.md FAQ completo sobre OpenClaw. Entenda custos, instalação e segurança. Veja riscos, integração e funcionamento do agente de IA. O OpenClaw ultrapassou 100.000 estrelas no [GitHub](https://github.com/?locale=pt-br) em menos de duas semanas e se tornou um dos projetos open source com crescimento mais rápido da história. As manchetes falam sobre religiões de IA, redes sociais para bots e pesadelos de segurança. Mas afinal, o que é o OpenClaw? Em resumo, trata-se de um agente de IA autônomo de código aberto que roda na sua máquina e se comunica por meio de aplicativos de mensagens que você já utiliza. Diferente de um chatbot comum, ele executa ações: envia e-mails, gerencia calendários, executa comandos no shell e lê ou escreve arquivos em seu nome. Este artigo é tanto um guia prático de instalação do OpenClaw para 2026 quanto uma introdução para iniciantes. Vamos abordar como o software funciona, para que ele é utilizado, como instalá-lo passo a passo, quanto custa e quais riscos de segurança você deve considerar antes de conceder acesso de um agente de IA ao seu sistema. ## O que é OpenClaw e por que viralizou? OpenClaw é um framework de agente de IA open source, gratuito e self-hosted, distribuído sob a licença MIT. Foi criado pelo desenvolvedor austríaco Peter Steinberger e publicado pela primeira vez em novembro de 2025 com o nome Clawdbot. A Anthropic levantou preocupações sobre a semelhança com a marca Claude, o que levou à mudança de nome para Moltbot e, três dias depois, para OpenClaw. A mascote de lagosta e o tema de crustáceos permaneceram. Para entender o que é o agente de IA OpenClaw na prática, é preciso ir além do branding. O núcleo do sistema é um serviço Node.js de longa execução chamado Gateway. Ele conecta um modelo de linguagem (Claude, GPT, Gemini, DeepSeek ou um modelo local via Ollama) às ferramentas da sua máquina e expõe essa integração por meio de mais de 20 canais de comunicação: WhatsApp, Telegram, Slack, Discord, iMessage, entre outros. Você interage com o agente como se fosse um colega, e ele responde executando ações reais. Essa é a essência do OpenClaw: não um chatbot, mas um assistente autônomo que age. O momento de viralização ocorreu no final de janeiro de 2026, quando foi lançada a Moltbook, uma rede social restrita a agentes de IA. Mais de 770.000 agentes se registraram em 72 horas. Bots criaram comunidades, discutiram filosofia e até deram origem a uma "religião digital" chamada Crustafarianismo. Forbes, Ars Technica e ACM destacaram o fenômeno crescente do OpenClaw. Em 14 de fevereiro de 2026, Steinberger anunciou sua entrada na OpenAI. O projeto passou a ser gerido por uma fundação open source independente, com apoio financeiro da OpenAI. ## Como o OpenClaw funciona por dentro? Para entender como o OpenClaw funciona, pense em uma arquitetura de quatro camadas: Gateway, Modelo, Canais e Skills. Essa é a base do framework do agente de IA OpenClaw. O **Gateway** é o núcleo do software. Trata-se de um serviço Node.js em execução contínua (daemon), rodando via systemd no Linux ou launchd no macOS, escutando na porta 18789. Ele gerencia sessões, roteia mensagens, executa ferramentas e mantém o agente ativo mesmo após reinicializações. Um mecanismo de "heartbeat" configurável o desperta a cada 30 minutos para verificar tarefas e agir de forma proativa. A camada de **Modelo é o "cérebro"**. O OpenClaw não possui um modelo de linguagem próprio - ele se conecta a provedores como Anthropic Claude, OpenAI GPT, Google Gemini ou a um modelo local via Ollama. A camada de Canais abrange mais de 20 plataformas de mensagens, enquanto a camada de **Skills** consiste em plugins modulares (arquivos SKILL.md) armazenados no ClawHub, que já conta com mais de 13.700 skills criadas pela comunidade no início de 2026. A memória é armazenada como arquivos Markdown simples no disco, persistentes entre sessões e editáveis com ferramentas comuns. Esse design "local-first" faz parte do propósito do OpenClaw: manter os dados sob seu próprio controle. Essa combinação de autonomia, persistência e propriedade local é o que transforma o OpenClaw em um verdadeiro assistente de IA — e não apenas mais um chatbot. ## O que você pode realmente fazer com o OpenClaw? Deixando a teoria de lado, veja como usar o OpenClaw na prática. A maioria das pessoas começa com uma única automação e depois expande. Os **briefings diários** são o ponto de partida mais comum. Você configura o OpenClaw para ativar em um horário específico, consultar seu calendário e e-mail, verificar seu gerenciador de tarefas e enviar um resumo matinal formatado via Telegram ou WhatsApp. A configuração leva cerca de 30 minutos, e o ganho cognitivo de começar o dia organizado torna esse o caso de uso com maior valor e menor risco para iniciantes. A **automação de e-mails** é onde o OpenClaw economiza mais tempo. Usuários relatam limpar milhares de mensagens acumuladas já no primeiro dia. O agente classifica os e-mails recebidos, redige respostas no seu estilo de escrita e sinaliza o que precisa de revisão humana. Nos fluxos de desenvolvimento, ele pode revisar pull requests, rodar testes, refatorar código e publicar pacotes npm. Algumas equipes utilizam agentes dedicados para desenvolvimento, separados de agentes de produtividade, cada um com sua própria "personalidade". Os **pipelines de conteúdo** incluem agendamento de redes sociais, criação de newsletters e pesquisa de SEO. O agente aprende seu tom ao longo do tempo e adapta o conteúdo para diferentes plataformas. Em pesquisa e negociação, surgiu um dos casos mais virais: o agente de um usuário conseguiu negociar um desconto de cerca de R$ 21.000 na compra de um carro por e-mail enquanto o dono dormia. Em níveis mais avançados, alguns empreendedores solo operam vários agentes simultaneamente em um único chat no Telegram, cada um com uma função diferente: estratégia, desenvolvimento, marketing e operações. Arquivos de memória compartilhados mantêm todos alinhados, enquanto diferentes modelos de linguagem são atribuídos conforme a especialidade de cada agente. ## Quanto custa rodar o OpenClaw? Uma dúvida comum é quanto custa utilizar o OpenClaw. O software em si é totalmente gratuito (licença MIT). Os dois principais custos são o uso da [API](https://serverspace.com.br/services/api.md) de modelos de IA e o hardware. Para o modelo, você precisa de uma chave de API de um provedor compatível. O Claude Sonnet é a escolha padrão da comunidade, com custo de alguns dólares por mês para uso pessoal. Para eliminar custos com API, é possível usar um modelo local via Ollama (o que exige GPU). Em relação ao hardware, o agente precisa de uma máquina ligada 24/7. Um Raspberry Pi, Mac Mini ou um VPS em nuvem são opções viáveis. Por exemplo, a [Serverspace oferece VPS Linux](https://serverspace.com.br/services/vps-server/linux.md) com implantação em menos de um minuto e cobrança por minuto, facilitando testes sem compromisso mensal. Uma pergunta relacionada: quanto a OpenAI pagou pelo OpenClaw? A OpenAI não adquiriu o projeto. Steinberger entrou na OpenAI como funcionário, e o projeto foi transferido para uma fundação open source independente. Os termos da contratação não foram divulgados. ## Como instalar o OpenClaw: passo a passo Esta seção é um guia prático de configuração do OpenClaw, cobrindo as principais plataformas. O repositório oficial no GitHub é a fonte mais confiável, mas os passos abaixo refletem o estado do projeto no início de 2026. Pré-requisitos Você precisa de Node.js 22+ (recomendado 24), macOS/Linux/Windows (via WSL2), pelo menos 2 GB de RAM (recomendado 4+), além de uma chave de API do seu provedor de LLM. A comunidade recomenda fortemente instalar o OpenClaw em uma máquina dedicada, e não no seu computador pessoal. Um VPS é a melhor opção: por exemplo, na [Serverspace](https://serverspace.com.br/services/cloud-servers.md) você pode criar um VPS com Ubuntu e Docker pré-instalado em cerca de 40 segundos. Linux e macOS Este método serve tanto como guia de instalação do OpenClaw no Linux quanto como padrão geral. Para instalar o OpenClaw no Ubuntu ou em qualquer sistema baseado em Debian, execute: ```bash npm install -g openclaw@latest openclaw onboard --install-daemon ``` O assistente guia você na escolha do provedor de LLM, na inserção da chave de API e na seleção da plataforma de mensagens. A flag --install-daemon registra o Gateway como um serviço em segundo plano (systemd no Linux, launchd no macOS), garantindo que o OpenClaw continue ativo após reinicializações. É assim que se configura o OpenClaw como um serviço persistente, sempre em execução. Windows Para quem procura um guia de instalação do OpenClaw no Windows: o OpenClaw não roda nativamente no Windows. Primeiro, instale o WSL2 executando wsl --install no PowerShell e, em seguida, siga os passos de instalação do Linux dentro do ambiente Ubuntu do WSL2. macOS Específico Está se perguntando como instalar o OpenClaw no Mac? O processo é idêntico ao Linux. O macOS é a plataforma mais bem suportada, pois Steinberger desenvolveu o OpenClaw em hardware da Apple. Integrações nativas com Apple Notes, Reminders e iMessage funcionam apenas no macOS. Alternativa com Docker O Docker oferece uma alternativa para implantação do OpenClaw com isolamento em contêineres: ```bash docker pull openclaw/openclaw:latest docker run -d --name openclaw -p 3000:3000 -v ~/.openclaw:/root/.openclaw --env-file ~/.openclaw/.env openclaw/openclaw:latest ``` O trade-off é que algumas integrações nativas não funcionam dentro de containers, mas para deploys em servidores o Docker é a opção mais limpa. Conectando uma plataforma de chat Isto também funciona como um breve guia de configuração do OpenClaw no Telegram. Para o Telegram, crie um bot através do @BotFather, cole o token quando solicitado e depois envie uma mensagem ao bot e aprove o código de pareamento. Para o WhatsApp, escaneie o QR code via "Dispositivos conectados". Para o Discord, crie um aplicativo no Developer Portal e convide o bot. Assim que o bot responder a uma mensagem de teste, a configuração do OpenClaw estará concluída. Como gerenciar e solucionar problemas no OpenClaw Saber como reiniciar o OpenClaw e diagnosticar problemas cobre a maioria das operações do dia a dia. O comando openclaw status retorna um resumo de saúde do Gateway. O openclaw daemon restart resolve a maioria dos problemas. O openclaw doctor executa diagnósticos automáticos. O openclaw logs --follow transmite os logs em tempo real para depuração. Correções comuns: se o painel mostrar zero tokens, reinicie o daemon e verifique sua chave de API. O erro "RPC probe failed" significa que a porta 18789 está bloqueada. "Access not configured" indica que o ID do usuário precisa de aprovação de pareamento. Erros "EACCES" no Docker exigem correção da propriedade dos volumes. Segurança do OpenClaw: riscos que todo iniciante deve conhecer O OpenClaw é poderoso, mas seu histórico de segurança exige uma avaliação honesta. Diversas CVEs foram publicadas no início de 2026: CVE-2026-25253 (roubo de token de autenticação), CVE-2026-32056 (execução remota de código), além de vulnerabilidades de path traversal, escape de sandbox e injeção de comandos. As correções foram lançadas rapidamente, mas o ritmo de descobertas mostra o quão jovem a base de código ainda é. O registro de skills do ClawHub tornou-se um vetor direto de ataque. Na campanha ClawHavoc, 341 skills maliciosas comprometeram mais de 9.000 instalações. A Cisco identificou skills realizando exfiltração de dados via prompt injection. A Bitsight encontrou mais de 30.000 instâncias expostas publicamente em apenas 12 dias. A autoridade de proteção de dados da Holanda alertou contra o uso do OpenClaw em sistemas sensíveis, e autoridades chinesas restringiram seu uso em órgãos governamentais em março de 2026. Boas práticas: instale em um VPS dedicado, não na sua máquina pessoal. Restrinja o acesso a localhost (127.0.0.1). Ative o modo exec_approval. Verifique cada skill antes da instalação. Mantenha o software atualizado semanalmente. Na [Serverspace](https://serverspace.com.br/index.md), você pode configurar regras de firewall pelo painel de controle, fechando portas como a 18789 sem precisar editar manualmente o iptables. ## OpenClaw vs. Alternativas: como ele se compara OpenClaw não é a única opção de agente de IA autônomo. A tabela abaixo compara as alternativas mais discutidas no início de 2026 com base em critérios como arquitetura, segurança, facilidade de uso e foco de aplicação. | Recurso | OpenClaw | NanoClaw | Nanobot | Claude Code | n8n | | --- | --- | --- | --- | --- | --- | | Tipo | Agente autônomo | Agente seguro | Agente leve | Agente de programação | Motor de automação de fluxos | | Base de código | 430k+ linhas | ~5 arquivos | 4k linhas | Código fechado | Código aberto | | Segurança | Acesso ao host | Isolamento em container | Superfície mínima | Escopo por repositório | Fluxos estruturados | | Integrações | 50+ canais | Limitadas | 2 plataformas | IDE / CLI | 1000+ nós | | Skills / Plugins | 13.700+ | Limitados | Poucos | N/A | Nós da comunidade | | Ideal para | Usuários avançados | Foco em segurança | Aprendizado | Desenvolvedores | Automação de negócios | Escolha o OpenClaw para máxima flexibilidade e integração profunda com mensageria. Escolha o NanoClaw para segurança, o Nanobot para aprendizado, o Claude Code para desenvolvimento ou o n8n para fluxos de trabalho estruturados de negócios com etapas de aprovação humana. ## Conclusão O OpenClaw é o primeiro agente de IA autônomo a alcançar adoção mainstream. Ele passou de um projeto de hobby para o repositório mais estrelado do GitHub em menos de três meses, atraiu apoio da OpenAI e iniciou uma nova discussão sobre o que assistentes pessoais de IA podem e devem fazer. Na prática, ele já funciona: triagem de e-mails, briefings matinais, agendamento de conteúdo e fluxos de desenvolvimento são usados diariamente por milhares de usuários. No entanto, o histórico de segurança exige cautela. Comece pequeno: um caso de uso, uma plataforma de mensagens, modo de consentimento ativado e servidor isolado. Expanda apenas quando entender o que o agente pode e não pode fazer com segurança. O OpenClaw recompensa muito mais a paciência e a configuração cuidadosa do que a pressa. ### O OpenClaw é gratuito? Sim. O OpenClaw em si é gratuito e open source sob a licença MIT. O custo total de uso depende de dois fatores: taxas de API do modelo de linguagem conectado (geralmente alguns dólares por mês para uso pessoal) e o custo do hardware ou VPS onde o agente é executado. É possível eliminar totalmente os custos de API usando um modelo local via Ollama, embora isso exija hardware mais potente. ### O que aconteceu entre o OpenClaw e a Anthropic? O nome original do projeto, Clawdbot, era muito semelhante ao Claude da Anthropic. A Anthropic levantou preocupações de marca registrada, e Steinberger renomeou o projeto para Moltbot e, quase imediatamente depois, para OpenClaw. A disputa foi apenas sobre nomenclatura, não sobre tecnologia, e foi resolvida rapidamente. ### A OpenAI comprou o OpenClaw? Não. A OpenAI não adquiriu o projeto. Peter Steinberger entrou na OpenAI como funcionário em fevereiro de 2026. O projeto OpenClaw foi transferido para uma fundação open source independente. A OpenAI apoia financeiramente a fundação, mas o software continua sob licença MIT e governança comunitária. O valor pago pela OpenAI na contratação de Steinberger não foi divulgado publicamente. ### O OpenClaw funciona sem internet? Parcialmente. Se conectado a um modelo local via Ollama, a camada de raciocínio da IA pode funcionar offline. No entanto, as plataformas de mensagens (Telegram, WhatsApp, Slack), que são a principal interface do sistema, exigem conexão com a internet. As interfaces WebChat e CLI podem funcionar localmente. https://serverspace.com.br/about/blog/como-integrar-n8n-com-whatsapp-crm-e-loja-virtual-para-vender-mais.md Aprenda a integrar n8n com WhatsApp, CRM e loja virtual. Automatize vendas, leads e pedidos. Reduza tarefas manuais e aumente conversões. O WhatsApp e o canal de comunicacao mais usado no Brasil. Com mais de 160 milhoes de usuarios e presenca em 99% dos smartphones, ele deixou de ser apenas um aplicativo de mensagens e se tornou o principal ponto de contato entre empresas e clientes. Segundo o Chat Commerce Report 2025, a taxa de conversao pelo WhatsApp chega a ser seis vezes maior do que no e-commerce tradicional, e 95% das interacoes digitais entre marcas e consumidores ja acontecem por ali. O problema e que essa demanda cresce mais rapido do que qualquer equipe consegue acompanhar manualmente. Pesquisas mostram que 65% dos consumidores esperam uma resposta em menos de cinco minutos. Sem automacao, essa expectativa se torna impossivel de atender. E exatamente aqui que entra a integracao n8n com WhatsApp, CRM e loja virtual: uma forma de conectar todos esses sistemas em um unico fluxo automatizado, sem depender de codigo e sem pagar fortunas por plataformas fechadas. Neste guia, voce vai entender como funciona a integracao n8n WhatsApp na pratica, quais ferramentas conectar e como comecar do zero. ## O que e o n8n e por que ele substitui tarefas manuais de vendas O n8n e uma plataforma open source de automacao visual. Em vez de escrever codigo, voce monta fluxos de trabalho (chamados de workflows) arrastando blocos e conectando servicos. Cada bloco representa uma acao: receber uma mensagem no WhatsApp, criar um contato no CRM, enviar um e-mail, consultar um banco de dados. O n8n conecta essas acoes em sequencia e executa tudo automaticamente. A plataforma oferece cerca de 1.000 integracoes nativas e permite conectar qualquer servico que tenha API por meio do bloco HTTP Request. Isso significa que, mesmo que um sistema nao tenha um conector pronto, voce consegue integra-lo sem ajuda de um programador. Um dos maiores diferenciais do n8n e o modelo self-hosted. Voce instala a plataforma no seu proprio servidor e mantem controle total sobre os dados, o que e especialmente relevante para empresas que precisam cumprir a LGPD. Na versao self-hosted, o n8n e gratuito. Voce paga apenas pelo servidor (VPS) onde ele roda. Isso torna a integracao n8n uma das opcoes mais economicas do mercado, principalmente em comparacao com ferramentas como Zapier e Make, que cobram por operacao. A tabela abaixo resume as principais diferencas entre as tres plataformas: | Parâmetro | n8n | Zapier | Make | | --- | --- | --- | --- | | Preço | Grátis (self-hosted) / R$23,41/mês cloud | A partir de R$ 100/mês | A partir de R$ 45/mês | | Integrações | ~1.000 + HTTP Request | 7.000+ | 2.000+ | | Self-hosting | Sim (Docker/VPS) | Não | Não | | IA nativa | Sim (LangChain, agentes) | Básico | Básico | | Controle de dados | Total (servidor próprio) | Apenas nuvem | Apenas nuvem | | Curva de aprendizado | Média/alta | Baixa | Média | Para volumes altos de automacoes (acima de 10.000 operacoes por mes), o n8n self-hosted pode custar entre 10 e 15 vezes menos do que o Zapier. Alem disso, o n8n oferece suporte nativo a agentes de IA com LangChain, o que permite criar chatbots inteligentes dentro dos proprios workflows. ## Como funciona a integracao n8n WhatsApp e quais APIs utilizar Para que o n8n se comunique com o WhatsApp, e necessario usar uma API intermediaria. O WhatsApp nao permite conexao direta de sistemas externos ao aplicativo; toda a comunicacao passa por uma camada de API que recebe e envia mensagens. Existem dois caminhos principais para essa integracao. WhatsApp Business Cloud API (oficial, da Meta). Essa e a solucao recomendada para operacoes profissionais. Ela e mantida pela propria Meta, oferece estabilidade, suporte oficial e conformidade com as politicas da plataforma. A configuracao exige a criacao de um aplicativo no portal Meta for Developers, a verificacao do negocio e a obtencao de credenciais (Access Token e Phone Number ID). No n8n, existe um no nativo para a n8n whatsapp cloud api integration, o que facilita bastante o processo. As mensagens proativas precisam seguir templates aprovados pela Meta. Evolution API (nao oficial, popular no Brasil). A Evolution API e uma solucao independente que permite integrar o WhatsApp com mais liberdade: multiplos numeros, envio em massa, personalizacao completa dos fluxos. Ela e instalada no proprio servidor via Docker e se conecta ao n8n por webhooks. O ponto de atencao e que, por nao ser endossada pela Meta, existe risco de bloqueio do numero. Para testes, prototipos e operacoes menores, funciona bem. Para negocios que dependem do WhatsApp como canal critico, a API oficial e mais segura. Existe tambem a Z-API, uma opcao brasileira no formato SaaS, que simplifica a configuracao para quem esta comecando. O fluxo basico da n8n whatsapp business api integration funciona assim: o cliente envia uma mensagem no WhatsApp, a API recebe essa mensagem e dispara um webhook para o n8n, o n8n processa a informacao (consulta CRM, verifica pedido, aciona IA) e devolve a resposta pela mesma API. ## WhatsApp Cloud API ou Evolution API: qual escolher A escolha entre as duas depende do estagio do negocio e do nivel de risco aceitavel. A n8n whatsapp business cloud integration pela API oficial traz estabilidade e compliance, mas exige aprovacao de templates e tem um processo de configuracao mais formal. Ja a Evolution API permite comecar mais rapido, com menos restricoes, mas sem garantias de continuidade. Se voce quiser seguir um n8n whatsapp cloud api integration tutorial passo a passo, a documentacao oficial do n8n e da Meta cobre todo o processo em cinco etapas: criar o aplicativo, obter credenciais, configurar o no no n8n, definir o webhook e testar o envio. Independentemente da escolha, um ponto e obrigatorio: obter o consentimento (opt-in) dos clientes antes de enviar mensagens comerciais. Isso e exigido tanto pela LGPD quanto pelas politicas da Meta, e o descumprimento pode resultar em bloqueio do numero. Integracao n8n com CRM: como conectar o funil de vendas ao WhatsApp Receber mensagens no WhatsApp e apenas o primeiro passo. O valor real da automacao aparece quando essas mensagens alimentam automaticamente o seu CRM, criando contatos, abrindo negocios e registrando o historico sem intervencao manual. A n8n crm integration conecta esses dois mundos. Os tres CRMs mais usados no Brasil (HubSpot, Pipedrive e RD Station) possuem nos nativos no n8n, o que significa que a conexao e feita por configuracao visual, sem codigo. O Zoho CRM e o Salesforce tambem sao suportados: a n8n zoho crm integration e a n8n salesforce integration funcionam por nos dedicados ou pelo bloco HTTP Request. Um exemplo pratico: um cliente envia uma mensagem no WhatsApp perguntando sobre um produto. O n8n recebe a mensagem via webhook, identifica que e um novo lead, cria automaticamente um contato no Pipedrive com os dados extraidos, abre um negocio no funil de vendas e envia uma notificacao no Slack para o vendedor responsavel. Tudo isso acontece em segundos, sem que ninguem precise digitar nada manualmente. Segundo dados compilados pela HubSpot em 2025, equipes que automatizam a entrada de dados no CRM reduzem o tempo de registro em ate 80% e triplicam a velocidade de follow-up. Como integrar o n8n com sua loja virtual para automatizar pedidos Se voce vende online, a automacao entre loja virtual, n8n e WhatsApp transforma a experiencia do cliente e elimina gargalos operacionais. As principais plataformas de e-commerce no Brasil sao compativeis com o n8n: Shopify e WooCommerce possuem nos nativos, enquanto Nuvemshop e Tray se conectam via webhooks ou HTTP Request. No caso do WooCommerce, que roda sobre WordPress, a n8n wordpress integration permite capturar eventos da loja (novo pedido, pagamento aprovado, envio realizado) e acionar acoes automaticas. O fluxo tipico funciona assim: um cliente finaliza uma compra na loja virtual. O webhook dispara para o n8n, que automaticamente confirma o pagamento, registra o pedido no ERP (como Bling ou Tiny), envia uma mensagem de confirmacao no WhatsApp do cliente e atualiza o status no CRM. Quando o produto e despachado, outro fluxo envia o codigo de rastreio pelo WhatsApp. E quando a entrega e concluida, uma mensagem automatica solicita avaliacao. Para o mercado brasileiro, existe ainda a possibilidade de integrar o n8n com sistemas de pagamento via Pix e boleto. Ao receber a notificacao de pagamento Pix, o n8n pode disparar automaticamente a confirmacao ao cliente pelo WhatsApp e registrar a transacao no ERP, eliminando etapas manuais. ## 5 automacoes prontas que aumentam vendas com n8n e WhatsApp Para quem busca um n8n whatsapp integration tutorial com aplicacao pratica, aqui estao cinco fluxos que podem ser implementados em poucas horas e geram resultado imediato. - **Recuperacao de carrinhos abandonados.** A loja virtual detecta um carrinho abandonado e envia um webhook para o n8n. Apos um periodo configuravel (por exemplo, duas horas), o n8n dispara uma mensagem no WhatsApp com um lembrete e, opcionalmente, um cupom de desconto. Estudos indicam que esse tipo de automacao recupera ate 25% das vendas perdidas. - **Status de pedido automatico.** Cada mudanca de status (pagamento aprovado, pedido separado, enviado, entregue) dispara uma mensagem automatica no WhatsApp. O cliente fica informado sem que a equipe precise fazer nada. - **Qualificacao automatica de leads.** Quando um potencial cliente envia uma mensagem no WhatsApp, o n8n analisa o conteudo, identifica a intencao (duvida, orcamento, suporte) e cria automaticamente um contato no CRM com a etiqueta correta, atribuindo o lead ao vendedor adequado. - **Cobranca de boletos vencidos.** O n8n verifica periodicamente (por agendamento) quais boletos estao vencidos e envia lembretes automaticos no WhatsApp com o link para segunda via ou pagamento via Pix. - **Chatbot com IA no WhatsApp.** Conectando o n8n a um modelo de linguagem (como GPT via API), voce cria um assistente virtual que responde perguntas frequentes, consulta a base de conhecimento da empresa e resolve ate 80% das solicitacoes sem intervencao humana. Para conectar a IA ao n8n, e possivel usar APIs externas ou recursos integrados do provedor de hospedagem. No Serverspace, por exemplo, o GPT API esta disponivel diretamente no painel de controle, o que simplifica a criacao de agentes de IA dentro dos workflows do n8n. Alem disso, a plataforma oferece o [n8n como aplicativo pre-instalado](https://serverspace.com.br/services/servidor-n8n.md), pronto para uso em poucos minutos. ## Onde hospedar o n8n: como escolher o servidor certo Como o n8n self-hosted roda no seu proprio servidor, a escolha da hospedagem impacta diretamente o desempenho das automacoes. Os requisitos minimos para rodar o n8n com integracao WhatsApp e CRM sao: 2 vCPUs, 4 GB de RAM e 40 GB de SSD. Para operacoes maiores, com Evolution API e banco de dados no mesmo servidor, recomenda-se 4 vCPUs e 8 GB de RAM. Na hora de escolher o VPS, tres criterios sao essenciais para quem opera no Brasil: data center localizado no pais (para baixa latencia nas mensagens), trafego ilimitado (automacoes de WhatsApp geram volume alto de requisicoes) e escalabilidade de recursos sob demanda. No [Serverspace,](https://serverspace.com.br/services/vps-server.md) o n8n esta disponivel como aplicativo em um clique: ao criar um VPS, basta marcar o n8n na secao de aplicativos e a plataforma e instalada automaticamente sobre Ubuntu. Os servidores estao localizados no data center Equinix SP3 em Sao Paulo, a tarificacao funciona no modelo pay-as-you-go (cobrado a cada 10 minutos, a partir de R$24/mes), o trafego e ilimitado e os recursos podem ser ampliados a qualquer momento sem necessidade de migracao. Essa abordagem elimina a necessidade de instalar Docker, configurar dependencias e lidar com a linha de comando, o que torna a integracao n8n acessivel ate para quem nao tem experiencia tecnica. ## Outras integracoes populares do n8n alem do WhatsApp O WhatsApp e o canal principal, mas o n8n conecta mais de 400 servicos em um unico workflow. Isso permite criar automacoes que envolvem multiplas plataformas ao mesmo tempo. Aqui estao algumas das integracoes mais relevantes para negocios no Brasil. - **Telegram e Telegram Bot.** A n8n telegram integration permite enviar notificacoes internas para a equipe, criar bots de suporte e disparar alertas automaticos. A n8n telegram bot integration tambem e usada para monitoramento de sistemas e comunicacao com equipes tecnicas. - **LinkedIn.** A n8n linkedin integration e a linkedin integration with n8n workflow automation sao uteis para empresas B2B que captam leads via LinkedIn Ads. O n8n pode capturar novos leads automaticamente e inseri-los no CRM sem intervencao manual. - **Instagram.** A n8n instagram integration permite processar interacoes (comentarios, DMs) e acionar fluxos automaticos de resposta ou registro no CRM. - **Microsoft Teams.** A n8n microsoft teams integration e ideal para notificacoes internas: alertas de novos pedidos, falhas em sistemas ou atualizacoes de status. - **Supabase.** A n8n supabase integration e utilizada como backend para armazenar dados de chatbots, historicos de conversas e registros de automacoes. - **Jira.** A n8n jira integration permite criar tarefas automaticamente a partir de solicitacoes de clientes, conectando atendimento e gestao de projetos. ## 5 erros que travam suas automacoes com n8n (e como evita-los) - Usar API nao oficial para processos criticos sem plano B. APIs como a Evolution API oferecem flexibilidade, mas podem ser bloqueadas pela Meta sem aviso. Se o WhatsApp e o principal canal de vendas, tenha sempre um plano de migracao para a API oficial. - Webhooks sem HTTPS. Se o webhook do n8n nao estiver protegido por certificado SSL, os dados (incluindo mensagens de clientes) trafegam em texto aberto. Configure um certificado gratuito via Let's Encrypt antes de colocar qualquer automacao em producao. - Enviar mensagens sem consentimento (opt-in). A LGPD e as politicas da Meta exigem que o cliente autorize o recebimento de mensagens comerciais. Enviar mensagens nao solicitadas pode resultar em bloqueio permanente do numero e sancoes legais. - Nao configurar tratamento de erros nos workflows. Um unico erro em uma etapa pode interromper todo o fluxo. O n8n permite criar rotas alternativas para erros (error workflows). Configure-as desde o inicio para evitar perda de dados e interrupcoes no atendimento. - Servidor subdimensionado. Se o VPS nao tem recursos suficientes, os workflows travam durante picos de uso. Comece com uma configuracao minima (2 vCPUs, 4 GB RAM) e escale conforme a demanda cresce. ## Conclusao O n8n conecta WhatsApp, CRM e loja virtual em uma unica cadeia automatizada, eliminando tarefas manuais e acelerando o ciclo de vendas. Para o mercado brasileiro, onde o WhatsApp e o canal dominante e a velocidade de resposta define a conversao, essa integracao deixou de ser um diferencial e se tornou uma necessidade operacional. O caminho mais pratico e comecar com uma unica automacao (por exemplo, envio automatico de status de pedido), validar o resultado e expandir gradualmente para outros fluxos. Com um VPS com n8n pre-instalado e 15 minutos de configuracao, ja e possivel ter o primeiro workflow funcionando. A combinacao de custo zero na ferramenta (n8n self-hosted), flexibilidade de integracoes e controle total sobre os dados faz do n8n uma escolha solida para empresas de qualquer porte que querem profissionalizar sua operacao de vendas pelo WhatsApp. ### O que é o n8n e por que ele é usado com WhatsApp? O n8n é uma plataforma de automação visual open source que permite conectar ferramentas como WhatsApp, CRM e lojas virtuais sem necessidade de programação. Ele é usado com WhatsApp para automatizar respostas, captar leads e integrar mensagens diretamente ao funil de vendas. ### Preciso de uma API para integrar o WhatsApp ao n8n? Sim. O WhatsApp não permite conexão direta com sistemas externos. É necessário usar uma API intermediária, como a WhatsApp Business Cloud API (oficial da Meta) ou soluções não oficiais como a Evolution API, que conectam o WhatsApp aos fluxos do n8n via webhooks. ### Quais sistemas posso integrar com o n8n além do WhatsApp? O n8n permite integração com mais de 400 serviços, incluindo CRMs (HubSpot, Pipedrive, Salesforce), lojas virtuais (Shopify, WooCommerce), redes sociais (Instagram, LinkedIn), ferramentas internas (Slack, Teams) e bancos de dados como Supabase, permitindo automações completas de negócios. ### Quais erros mais comuns devo evitar ao usar n8n com WhatsApp? Os principais erros incluem usar APIs não oficiais sem plano de contingência, não configurar HTTPS nos webhooks, enviar mensagens sem consentimento (LGPD), não tratar erros nos workflows e usar servidores subdimensionados, o que pode causar falhas nas automações. https://serverspace.com.br/about/blog/melhores-provedores-de-nuvem-para-pequenas-empresas-no-brasil-em-2026.md Ranking dos melhores provedores de nuvem para pequenas empresas no Brasil em 2026, com análise de preços em reais, data centers locais, conformidade com a LGPD e cenários reais de uso. Escolher um provedor de nuvem deixou de ser um problema apenas técnico. Para pequenas empresas no Brasil, essa decisão hoje envolve câmbio, conformidade com a LGPD, previsibilidade de orçamento e um suporte que entenda a realidade local. Este guia apresenta um ranking de sete provedores que atendem bem o perfil de PME brasileira em 2026, com análise de preços, infraestrutura e cenários reais de uso. ## O cenário da nuvem no Brasil em 2026 A nuvem já é realidade para a maior parte das empresas brasileiras, mas a maturidade ainda é baixa no segmento de PMEs. Pesquisas recentes apontam que cerca de 77% das companhias do país adotaram alguma solução em nuvem, porém boa parte permanece em estágios iniciais, sem aproveitamento real das capacidades da infraestrutura contratada. O cenário competitivo mudou. A AbraCloud, associação que reúne provedores nacionais, projetou para 2025 crescimento médio de 39% entre seus associados. Esse movimento é puxado pela digitalização acelerada do varejo e pela crescente preocupação das empresas com a soberania dos dados tratados dentro do país. A LGPD se tornou o grande divisor de águas. Provedores internacionais como AWS, Azure e Google Cloud mantêm data centers em São Paulo, mas continuam sujeitos à jurisdição norte-americana e à CLOUD Act, que permite ao governo dos Estados Unidos exigir acesso a dados hospedados por empresas norte-americanas independentemente da localização física do servidor. Para PMEs que tratam dados sensíveis, esse ponto virou elemento central da análise. ## Como uma pequena empresa deve avaliar um provedor Antes de comparar planos, vale estabelecer o que realmente afeta o dia a dia de uma PME. ### Localização do data center e jurisdição Dados hospedados em território nacional, sob operação de empresa brasileira, ficam inteiramente sob jurisdição da LGPD, sem transferência internacional e sem conflito com legislações estrangeiras. Quando a infraestrutura pertence a operadora norte-americana ou europeia, mesmo com data center em São Paulo, esse ponto merece análise jurídica detalhada. ### Moeda e modelo de cobrança Cobrar em reais é vantagem real para quem precisa prever gastos. Contratos em dólar ou euro forçam a empresa a absorver variação cambial, o que em períodos de instabilidade transforma uma infraestrutura bem dimensionada em surpresa no caixa. ### Suporte em português e tempo de resposta Pequenas empresas raramente mantêm times de operação 24 horas. A diferença entre um chat em português com resposta em quinze minutos e um ticket em inglês com SLA de retorno em quatro horas pode definir se a loja virtual volta a vender antes do próximo dia útil. ### Facilidade da interface e escalabilidade Uma PME precisa sair da hospedagem compartilhada sem contratar DevOps. Painéis intuitivos, templates prontos (WordPress, n8n, Docker) e um caminho natural de crescimento dentro do mesmo fornecedor evitam migrações externas traumáticas. ## Ranking dos 7 melhores provedores para PMEs em 2026 ### 1. Hostinger (4,5 de 5) Fundada em 2004 na Lituânia e com operação consolidada no Brasil, a Hostinger virou referência entre PMEs pela combinação de preço acessível e interface amigável. Mantém data center em São Paulo, cobra em reais e elimina o risco cambial típico de provedores norte-americanos. O VPS de entrada começa em torno de R$ 27,99 mensais em ciclo anual, usa virtualização KVM e armazenamento NVMe em todos os planos. A instalação de WordPress, Docker ou n8n acontece em poucos cliques pelo painel próprio, e o assistente de IA Kodee ajuda com configurações mais técnicas. Para sites institucionais, pequenas lojas e blogs profissionais, a relação entre preço e recursos é difícil de bater. A contrapartida aparece na customização. Quem precisa de redes privadas complexas, balanceadores corporativos ou Kubernetes gerenciado encontra limitações no portfólio. Para PMEs que pretendem escalar para arquiteturas distribuídas, vale considerar opções com catálogo mais amplo. ### 2. Serverspace (5 de 5) A [Serverspace](https://serverspace.com.br/index.md) entrou no mercado brasileiro em 2024 e rapidamente se posicionou como uma das opções mais equilibradas para PMEs que precisam de infraestrutura corporativa sem preço corporativo. O data center fica em São Paulo, opera sob certificação Tier III e a operação é conduzida pela ITGLOBAL.COM BR LTDA, pessoa jurídica brasileira sediada na Avenida Paulista. Jurisdição integralmente nacional, sem fricção legal. O VPS Linux começa em R$ 23,41 mensais e o Windows com licença em R$ 48,61. O modelo de cobrança é um dos mais flexíveis do mercado: tarifação a cada dez minutos com base no consumo real, em reais, sem taxas ocultas. Para PMEs que ligam e desligam ambientes de desenvolvimento, esse formato evita pagar pelo que não foi usado. SLA de 99,9%, canal de até 500 Mbps e tráfego ilimitado vêm de série. O portfólio vai além do VPS. A plataforma oferece VMware, nuvem privada virtual, Kubernetes gerenciado, CDN, WAF, VPN, DNS, balanceadores, banco de dados, solução dedicada para n8n e acesso à API de modelos de IA pelo painel. O marketplace sobe WordPress, Docker ou Node.js em um clique, e desenvolvedores contam com API pública, CLI e provedor Terraform oficial. O suporte funciona 24 horas em português, com resposta média de quinze minutos. O provisionamento leva menos de um minuto. A principal limitação para PMEs é a ausência de servidores dedicados bare metal, útil apenas em casos específicos de licenciamento legado. ### 3. Magalu Cloud (4,5 de 5) Projeto de nuvem pública do Magazine Luiza, anunciado em 2024 como alternativa brasileira aos hyperscalers internacionais. Proposta direta: infraestrutura local, cobrança em reais e preços que, segundo a própria empresa, ficam entre 30% e 70% abaixo de soluções equivalentes ofertadas a partir do Brasil pela AWS, Azure ou Google Cloud. A infraestrutura está dividida em duas regiões geográficas, Sudeste e Nordeste, com dados armazenados em território nacional em conformidade com a LGPD. O catálogo inclui máquinas virtuais, banco de dados gerenciado MySQL e PostgreSQL, block storage, object storage, Kubernetes e IAM. Cobrança por hora de consumo, com calculadora pública para simulação antes do cadastro. Novos clientes recebem R$ 300 em créditos para trinta dias de teste. O ponto de atenção é a maturidade do catálogo. Como o serviço é novo, recursos mais especializados (machine learning avançado, CDN global, serverless no estilo Lambda) ainda estão em construção. Para necessidades convencionais a plataforma entrega o necessário. ### 4. Locaweb (4 de 5) Com quase três décadas de operação desde 1997, a Locaweb é a referência mais tradicional do mercado brasileiro. Opera data centers próprios em São Paulo, hospeda mais de trezentos mil sites e nos últimos anos adquiriu empresas como KingHost e Tray, consolidando um ecossistema digital amplo. O VPS parte de cerca de R$ 25 mensais, com 1 GB de RAM, 2 vCPUs, 20 GB de SSD e 1 TB de transferência. Todos os planos incluem backups diários, banco de dados SQL pré-instalado e suporte telefônico via 0800, diferencial para quem prefere atendimento por voz. Imagens pré-configuradas de WordPress, LAMP e Node.js. A limitação aparece em dois pontos. O gerenciamento é unmanaged, ou seja, a administração fica com o cliente após a contratação, o que pesa em times sem conhecimento técnico. E os preços, comparados a opções internacionais ou à nova geração de provedores nacionais, ficam em média um pouco mais altos para recursos equivalentes. ### 5. Amazon Web Services (4 de 5) Maior provedor de nuvem do mundo em serviços e certificações. A região sa-east-1, em São Paulo, está operacional desde 2011 e cobre boa parte do catálogo global. Para PMEs, a entrada mais acessível é o Amazon Lightsail, camada simplificada do EC2 com planos pré-configurados em dólar. A vantagem da AWS é o ecossistema. Nenhum concorrente oferece a mesma amplitude (computação, machine learning, big data, serverless, marketplace com mais de quatrocentos parceiros). Para startups que planejam escalar internacionalmente, a AWS já estará presente em qualquer destino relevante. A contrapartida é significativa. Cobrança em dólar expõe a empresa ao câmbio. O console tem centenas de opções e curva de aprendizado longa. Segundo comparativos públicos, sa-east-1 é consistentemente uma das regiões mais caras da AWS no mundo. Soma-se o tema da CLOUD Act, que pode ser invocada para exigir acesso a dados mesmo hospedados em São Paulo. ### 6. UOL Host (4 de 5) Parte do grupo UOL, é um dos nomes mais antigos da internet brasileira. Foi pioneira ao disponibilizar OpenStack em formato self-service no Brasil, permitindo configurar máquinas virtuais, redes e balanceadores pela web, com cobrança pré-paga em reais no modelo de créditos. Essa proposta encaixa bem no perfil de PMEs que não querem contratos de longo prazo. O cliente carrega saldo, consome recursos por hora e só paga pelo uso. Cobre Windows, Ubuntu e CentOS, com planos otimizados para WordPress. IP dedicado e hospedagem de até trinta sites no mesmo plano, vantagem para agências digitais. As limitações são duas. Ausência de opções de data center fora dos já existentes, reduzindo flexibilidade para redundância geográfica. E o portfólio, sólido no básico, não cobre Kubernetes gerenciado nem WAF dedicado. ### 7. KingHost (4 de 5) Empresa gaúcha de Porto Alegre, adquirida pelo grupo Locaweb mas mantendo operação independente. O perfil do serviço continua distinto da matriz: foco em desenvolvedores, agências e profissionais liberais, com estrutura preparada para quem revende hospedagem. O VPS parte de cerca de R$ 19,90 mensais, usa SSDs Intel e oferece imagens pré-instaladas de WordPress, LAMP, Node.js e Docker. Todos os planos incluem acesso root, banda ilimitada, proteção DDoS e suporte reconhecido pela velocidade. Um diferencial menos divulgado é o UniPago, sistema próprio de gestão de cobranças recorrentes pensado para revendedores. As limitações acompanham o perfil. Um único data center reduz a redundância geográfica. A personalização é menor quando comparada a provedores maiores. Para PMEs que operam dentro das necessidades tradicionais de web, a KingHost entrega serviço consistente a preço competitivo. ## Tabela comparativa dos 7 provedores O resumo abaixo consolida os critérios de decisão mais importantes para PMEs. Os valores seguem informações públicas no momento da publicação. | Provedor | Preço inicial | DC no Brasil | Moeda | Suporte 24/7 PT | Modelo de cobrança | Avaliação | | --- | --- | --- | --- | --- | --- | --- | | Hostinger | R$ 27,99/mês | Sim (SP) | BRL | Sim | Plano fixo mensal | 4,5 | | Serverspace | R$ 23,41/mês | Sim (SP) | BRL | Sim | Por minuto de uso | 5,0 | | Magalu Cloud | Pay-as-you-go | Sim (SE e NE) | BRL | Sim | Por hora de uso | 4,5 | | Locaweb | R$ 25,00/mês | Sim (SP) | BRL | Sim | Plano fixo mensal | 4,0 | | AWS | USD variável | Sim (SP) | USD | Pago (planos) | Pay-as-you-go | 4,0 | | UOL Host | Pré-pago em R$ | Sim (SP) | BRL | Horário estendido | Créditos pré-pagos | 4,0 | | KingHost | R$ 19,90/mês | Sim (RS) | BRL | Sim | Plano fixo mensal | 4,0 | ## Cenários de uso: qual provedor para cada tipo de PME Lojas virtuais em WordPress ou WooCommerce pedem estabilidade e facilidade. Hostinger e Locaweb entregam bom custo-benefício nessa faixa, com templates prontos, backups diários e suporte em português. Empresas que tratam dados sensíveis (saúde, educação, finanças, serviços jurídicos) têm a LGPD como prioridade absoluta. O primeiro critério é ter infraestrutura integralmente sob jurisdição nacional, o que tira da análise provedores norte-americanos. Nesse cenário, a Serverspace funciona particularmente bem: operação por pessoa jurídica brasileira, data center local Tier III, faturamento em reais e nuvem privada virtual disponível. A página de [nuvem para empresas](https://serverspace.com.br/solutions/nuvem-para-empresas.md) detalha as configurações específicas para esse perfil. Automação com n8n, Make ou fluxos internos virou padrão em 2026, principalmente para integração com WhatsApp, CRM e e-commerce. Esse tipo de carga pede VPS dedicado, IP fixo, Docker habilitado e memória para contêineres simultâneos. Hostinger, Serverspace e KingHost atendem bem. Startups com pretensão internacional precisam pensar no futuro. Se o plano é operar fora do Brasil, AWS ou Serverspace fazem mais sentido, a primeira pela amplitude global, a segunda por ter data centers em Estados Unidos, Holanda, Canadá e outros locais dentro do mesmo painel. Se o foco é só mercado local, Magalu Cloud ou Locaweb entregam o necessário em reais. ## Erros comuns ao escolher nuvem Comprar pelo preço da vitrine é o erro mais clássico. O plano a R$ 19 mensais pode não incluir SSL, backup, proteção DDoS ou tráfego. Ao final do primeiro ano, o custo pode passar do dobro do valor promocional. A comparação correta soma plano e adicionais obrigatórios para a operação real. Ignorar jurisdição é o segundo. Muitas empresas contratam AWS, Azure ou Google com data center em São Paulo imaginando conformidade automática com a LGPD. Na prática, a operação segue sujeita à lei norte-americana, exige cláusulas contratuais padrão e relatório de impacto documentado. Para PMEs com dados sensíveis, às vezes compensa a migração para provedor nacional. Contratar em moeda estrangeira sem plano para câmbio é o terceiro. Um VPS a US$ 10 mensais parece negócio, mas o custo em reais pode variar 30% em doze meses. Quem depende de previsibilidade paga caro pela exposição cambial. Não testar antes é o quarto. Quase todos os provedores oferecem trials, devolução em trinta dias ou créditos iniciais. Pular essa etapa e assinar contrato anual direto é jogar fora a oportunidade de validar suporte, painel e performance real. ## Conclusão Não existe provedor universalmente melhor para PMEs no Brasil. Existe o provedor certo para cada combinação de orçamento, nível técnico da equipe e exigências regulatórias. Para quem prioriza simplicidade, Hostinger é escolha sólida. Para quem busca equilíbrio entre preço acessível, conformidade LGPD nativa e recursos corporativos, Serverspace é a aposta mais consistente. Magalu Cloud surpreende com preços competitivos e proposta brasileira pura. Locaweb e UOL Host atendem quem valoriza marca tradicional. AWS entrega escala global em dólar. KingHost se destaca para agências e revendedores. ### É preciso ter conhecimento técnico para usar nuvem? Depende do serviço. VPS gerenciado e nuvem simplificada (Hostinger, Locaweb, Serverspace com marketplace) funcionam com curva curta. Soluções de IaaS em AWS EC2 ou Azure VM exigem conhecimento de administração de sistemas, redes e segurança. Para a maior parte das PMEs, começar por provedor com painel próprio e templates prontos é suficiente. ### Qual a diferença entre VPS, nuvem pública e hospedagem compartilhada? Hospedagem compartilhada divide um servidor entre clientes, paga pouco e serve para sites simples. VPS entrega recursos reservados dentro de uma máquina virtualizada, com acesso root. Nuvem pública distribui recursos por múltiplos servidores, oferece escalabilidade sob demanda e serviços gerenciados com cobrança por consumo. ### Nuvem internacional pode ser usada em conformidade com a LGPD? Sim, com cuidados adicionais. É preciso cláusulas contratuais padrão para transferência internacional, Relatório de Impacto atualizado e preparação para justificar a escolha em auditoria da ANPD. Provedores norte-americanos também estão sujeitos à CLOUD Act. Para dados sensíveis, o caminho mais simples costuma ser contratar provedor com operação no Brasil. ### Como migrar de hospedagem compartilhada para nuvem sem perder o site? A maioria dos provedores de VPS e nuvem oferece migração gratuita, incluindo Hostinger, Locaweb e Serverspace. O processo envolve copiar arquivos, transferir a base de dados, ajustar DNS e testar o ambiente antes de publicar. Bem planejada, a migração acontece sem downtime visível. https://serverspace.com.br/about/blog/alternativas-gratis-ao-chatgpt-ferramentas-de-ia-para-texto-codigo-e-produtividade.md As melhores alternativas gratuitas ao ChatGPT em 2026 para texto, código e produtividade: 15 ferramentas de IA com limites, pontos fortes e casos de uso. O ChatGPT Plus custa R$ 99,99 por mês no Brasil em 2026. O plano gratuito permite apenas cerca de dez mensagens com o modelo mais avançado a cada cinco horas, e depois a conversa é automaticamente rebaixada para um modelo menor. Para quem usa a ferramenta todos os dias no trabalho, essa limitação aparece rápido. Some a isso uma outra preocupação que vem ganhando força entre empresas brasileiras: a conformidade com a LGPD. Cada vez que um funcionário cola um contrato, planilha de clientes ou código interno no ChatGPT, esses dados saem da jurisdição brasileira e vão parar em servidores da OpenAI nos Estados Unidos. A FGV publicou em 2025 um levantamento mostrando que nenhuma das sete plataformas de IA mais usadas no país está plenamente adequada à legislação local, e o risco de multa pela ANPD pode chegar a 2% do faturamento. A boa notícia é que o ecossistema de alternativas grátis ao ChatGPT amadureceu muito nos últimos dois anos. Hoje existem dezenas de alternativas gratuitas ao ChatGPT que cobrem casos específicos com mais qualidade do que a ferramenta da OpenAI: Claude escreve com mais naturalidade em português, DeepSeek roda sem limites e ainda pode ser hospedado localmente, Codeium oferece autocomplete ilimitado de código, e há opções especializadas em pesquisa, apresentações e reuniões. Neste guia reunimos 15 ferramentas testadas, divididas por três casos de uso: texto e conversação, código e programação, produtividade do dia a dia. No final, mostramos como rodar sua própria IA local em um VPS no Brasil para ficar 100% dentro da LGPD. ## Por que tantos brasileiros procuram alternativas ao ChatGPT em 2026? A primeira razão é financeira. Em outubro de 2025, a OpenAI passou a cobrar os planos diretamente em reais, o que ajudou a reduzir o custo, mas o ChatGPT Plus segue custando R$ 99,99 mensais, e o plano Pro, destinado a usuários intensivos, chega a R$ 1.160 por mês. Para freelancers, estudantes e pequenas empresas, isso significa mais de R$ 1.200 por ano em uma ferramenta que, em muitos casos, pode ser substituída por alternativas gratuitas ao ChatGPT Plus sem perda perceptível de qualidade. A segunda razão são os limites do plano gratuito. Quem usa o ChatGPT Free percebe rápido que as dez mensagens por cinco horas com o modelo avançado acabam antes da metade de um dia de trabalho. Depois disso, as respostas vêm de um modelo mais simples, com menos precisão em tarefas complexas. As alternativas ao ChatGPT com acesso gratuito são, em muitos casos, mais generosas: DeepSeek não tem limites, Claude oferece cotas diárias maiores para conversas longas, e Copilot da Microsoft é totalmente gratuito sem nenhum teto claro. A terceira razão é a LGPD. Desde 2023, decisões judiciais no Brasil já reconheceram que vazar dados sigilosos da empresa para ferramentas de IA configura justa causa. O caso Samsung, em que um funcionário colou código proprietário no ChatGPT e foi demitido, virou referência. Para quem trabalha em fintechs, escritórios de advocacia, áreas de saúde ou qualquer setor com dados sensíveis, usar uma IA pública sem política interna é um risco real. Por fim, há a questão da especialização. O ChatGPT foi pensado como ferramenta genérica, e isso significa que, para tarefas específicas como programar, pesquisar com fontes ou criar apresentações, existem opções que fazem o trabalho melhor. O mercado de IA em 2026 deixou de ser dominado por um produto único e virou um ecossistema de ferramentas especialistas. ## Alternativas grátis ao ChatGPT para texto e conversação Esta é a categoria mais disputada. Quando alguém pensa em alternativas gratuitas de chatbot de IA ao ChatGPT, geralmente busca algo que sirva para escrever e-mails, revisar textos, explicar conceitos e conversar de forma natural. As seis opções abaixo cobrem praticamente todos os cenários, e cada uma tem um diferencial claro. Claude (Anthropic) Claude é reconhecido como a melhor opção para escrita e revisão de textos longos em português. Seu contexto aceita até 200 mil tokens, o que significa que ele consegue processar o equivalente a um livro inteiro em uma única conversa. Isso faz diferença real para quem precisa resumir contratos, analisar relatórios ou manter coerência em projetos grandes. Testes recentes do TechTudo apontaram Claude Sonnet 4.6 como o mais elegante em linguagem entre as três principais IAs gratuitas. O plano grátis tem limite diário de mensagens mais restrito que o dos concorrentes, mas para redatores e analistas costuma ser suficiente. Google Gemini Gemini é a escolha natural para quem vive no ecossistema Google. A integração com Docs, Sheets, Gmail e Drive é nativa, e o plano gratuito inclui 15 GB de armazenamento compartilhado, acesso ao Deep Research, Canvas e Gemini Live. Em termos de qualidade de resposta em português, fica empatado com o ChatGPT e pouco atrás de Claude. O grande diferencial é o contexto: o Gemini consegue consultar informações em tempo real do seu próprio Gmail e Drive, algo que o ChatGPT não oferece sem plugins pagos. DeepSeek A DeepSeek foi o maior choque do mercado em 2025. Trata-se de uma IA chinesa de código aberto que oferece qualidade comparável a GPT-4 em tarefas de raciocínio e programação, mas sem nenhum limite no uso gratuito. Não há plano pago obrigatório, não há teto de mensagens, e os modelos podem ser baixados e rodados localmente, o que é um diferencial importante para quem quer soberania sobre os dados. Entre as alternativas de IA gratuitas ao ChatGPT, é a mais generosa em volume de uso. Perplexity Perplexity não é exatamente um chatbot tradicional. É um mecanismo de busca conversacional que responde com citações de fontes reais, o que resolve o problema clássico das alucinações de IA. Cada resposta vem com links para os artigos consultados, permitindo verificar a informação. Para jornalistas, pesquisadores e estudantes, é a melhor alternativa disponível. O plano gratuito funciona sem login, com algumas limitações no Pro Search. Microsoft Copilot O Copilot combina o modelo GPT com o buscador Bing, o que dá respostas atualizadas e com fontes. É totalmente gratuito na versão web, gera imagens, sugere aprofundamentos sobre temas e funciona bem em português. Para quem usa Windows ou Office 365, já aparece integrado ao sistema. Não é a opção mais sofisticada, mas é uma das alternativas de chatbots de IA gratuitos ao ChatGPT mais acessíveis, sem cadastro complicado. Grok e HuggingChat Fechando a categoria de texto, vale mencionar duas opções de nicho. Grok, da xAI, se destaca pela integração com dados em tempo real da rede X e por ter menos restrições de conteúdo, útil para pesquisa jornalística. HuggingChat, da Hugging Face, é uma plataforma open source que permite escolher entre dezenas de modelos diferentes, com a opção de rodar tudo na própria infraestrutura. Nenhum dos dois rivaliza com Claude ou Gemini em qualidade geral, mas cobrem casos específicos que os grandes não atendem bem. ## Alternativas gratuitas ao ChatGPT para código e programação Para desenvolvedores, o ChatGPT nunca foi a ferramenta ideal. Ele funciona como um assistente de chat, mas não entende o contexto do projeto, não se integra ao editor e tem limites baixos de uso. As opções abaixo foram pensadas especificamente para programação e, em muitos benchmarks, superam o GPT em qualidade de código gerado. GitHub Copilot Free O Copilot virou o padrão da indústria em 2025 e, desde então, a Microsoft passou a oferecer um plano gratuito para atrair iniciantes. São 2.000 autocompletes e 50 mensagens de chat por mês, suficientes para quem está aprendendo ou toca projetos pessoais nos fins de semana. Funciona em VS Code, JetBrains e Neovim, e o plano gratuito alterna entre modelos GPT e Claude. Para um desenvolvedor profissional em ritmo normal, essas 2.000 sugestões acabam na primeira semana. Codeium (Windsurf) Entre todas as opções de programação, Codeium é a mais generosa. O autocomplete é ilimitado no plano individual, o que significa que você pode programar o dia inteiro sem se preocupar com cota. Suporta mais de 70 linguagens e é consistentemente apontado como mais rápido que o Copilot nas sugestões. Recentemente a empresa lançou o Windsurf, uma IDE própria com recursos de agente. Para uso profissional diário sem custo, é a escolha mais lógica. Cursor O Cursor não é um plugin, é um editor completo construído sobre o VS Code. No plano gratuito, você tem 2.000 completions por mês e 50 requisições lentas ao modelo premium. O grande diferencial é que ele indexa todo o projeto e entende dependências entre arquivos, algo que os outros ainda fazem mal. Para trabalhar em bases de código grandes ou legadas, é a melhor opção gratuita. A combinação ouro em 2026, segundo desenvolvedores brasileiros, é usar Cursor como IDE principal com Codeium como autocomplete. Amazon Q Developer A Amazon tem uma oferta agressiva no plano gratuito: autocomplete ilimitado e 50 requisições agênticas por mês, sem exigir cartão de crédito. Para quem trabalha com infraestrutura AWS, Q Developer é especialmente útil porque entende nativamente os serviços da Amazon e gera código Terraform, Lambda e CloudFormation de qualidade. Inclui também um scanner de segurança que aponta vulnerabilidades no código. DeepSeek Coder com Ollama e Continue.dev (setup local) Esta é a configuração que vem ganhando popularidade entre equipes que precisam de privacidade total. DeepSeek Coder é um modelo open source especializado em programação, com qualidade comparável ao GPT-4 em benchmarks específicos. Rodando pelo Ollama na sua máquina ou em um servidor próprio, e conectado ao editor através da extensão Continue.dev, você tem um Copilot gratuito, sem limites e sem enviar uma linha de código para servidores externos. É a única combinação que satisfaz requisitos estritos da LGPD em setores regulados como fintechs e healthtechs. Para rodar esse setup em um ambiente profissional, alugar um [VPS em data center no Brasil](https://serverspace.com.br/services/vps-server.md) costuma ser a escolha mais prática. ## Ferramentas de IA gratuitas alternativas ao ChatGPT para produtividade Esta categoria é a mais diversa, porque produtividade significa coisas diferentes para cada pessoa: organizar conhecimento, transcrever reuniões, criar apresentações ou automatizar tarefas repetitivas. As cinco opções abaixo cobrem os cenários mais comuns no dia a dia corporativo. Notion AI O Notion já era popular como ferramenta de organização. Com a camada de IA adicionada, virou um segundo cérebro funcional. Ele consegue buscar informação dentro da sua própria base de conhecimento, gerar resumos, criar tabelas a partir de descrições e transformar páginas desconexas em documentação estruturada. O plano gratuito tem limite de uso da IA, mas para equipes pequenas costuma cobrir a maior parte das necessidades. Ideal para empresas que já adotaram o Notion como hub central. Gamma Criar apresentações do zero sempre foi um gargalo. O Gamma resolve isso transformando um texto simples em 15 slides profissionais em menos de dois minutos. Você descreve o tema, ele estrutura os slides, escolhe imagens e formata tudo com consistência visual. O plano gratuito dá cerca de 400 créditos iniciais, suficientes para 5 a 10 decks completos. Os slides exportam em PDF e PowerPoint, com marca d'água na versão gratuita. Para pitches, relatórios internos e propostas comerciais, é a solução mais rápida do mercado. NotebookLM O NotebookLM é a aposta do Google para análise de documentos. Você carrega PDFs, artigos, transcrições ou URLs, e a ferramenta cria um conhecimento específico sobre aquele material. Depois, você pode fazer perguntas, pedir resumos ou até gerar um podcast de áudio em que dois apresentadores conversam sobre o conteúdo. Totalmente gratuito com conta Google e com qualidade de resposta comparável aos grandes chatbots. Para pesquisa acadêmica, estudo para concursos ou análise de material técnico, é imbatível. Otter.ai Reuniões geram ata, mas ninguém gosta de escrever. O Otter.ai transcreve em tempo real chamadas do Zoom, Google Meet e Microsoft Teams, gera resumos automáticos, destaca decisões e cria lista de tarefas de follow-up. O plano gratuito oferece cerca de 300 minutos por mês, o que cobre as reuniões de uma semana típica. Concorrentes como Fireflies e Fathom oferecem funcionalidade similar, com cotas levemente diferentes. Canva AI e Napkin AI Para o lado visual da produtividade, duas ferramentas complementares. O Canva AI trouxe para dentro do editor de design funções como geração de imagens, redação com Magic Write e edição automatizada. Funciona bem para redes sociais, apresentações e materiais de marketing. O Napkin AI faz algo diferente: transforma frases soltas em mapas mentais automáticos, conectando conceitos visualmente. Ideal para brainstorms, planejamento de projetos e estruturação de ideias. ## Tabela comparativa das melhores alternativas gratuitas ao ChatGPT 2026 Para facilitar a decisão, reunimos as 15 ferramentas em uma tabela com as informações que mais importam: categoria principal, limites do plano gratuito, pontos fortes e perfil de usuário indicado. | Ferramenta | Categoria principal | Plano gratuito | Pontos fortes | Ideal para | | --- | --- | --- | --- | --- | | Claude | Texto e escrita | Com limites diários | Contexto de 200K tokens, excelente português, escrita natural | Redatores, analistas, revisores | | Google Gemini | Texto com integração Google | 15 GB de armazenamento, Deep Research, Canvas | Integração nativa com Docs, Sheets e Gmail | Usuários do Google Workspace | | DeepSeek | Texto e código | Ilimitado, sem plano pago obrigatório | Open source, raciocínio passo a passo, rodável localmente | Desenvolvedores e uso técnico intenso | | Perplexity | Pesquisa e citações | Sem login necessário, limites em Pro Search | Citação de fontes confiáveis, atualização em tempo real | Pesquisadores, jornalistas, estudantes | | Microsoft Copilot | Texto e pesquisa | Totalmente gratuito na web | GPT mais buscador Bing, cita fontes, geração de imagens | Ecossistema Microsoft 365 | | GitHub Copilot | Código | 2.000 autocompletes + 50 chats por mês | Padrão da indústria, integração profunda com VS Code | Desenvolvedores iniciantes e estudantes | | Codeium (Windsurf) | Código | Autocomplete ilimitado no plano individual | Mais generoso do mercado, suporta 70 linguagens | Uso profissional diário sem custo | | Cursor | Código | 2.000 completions por mês | IDE nativa com IA, entende projetos inteiros | Projetos complexos com muitos arquivos | | Amazon Q Developer | Código | Autocomplete ilimitado + 50 agentic requests | Escaneamento de segurança, foco em AWS | Desenvolvedores em infraestrutura AWS | | Notion AI | Produtividade | Limitado dentro da conta gratuita | Busca semântica na base de conhecimento, resumos | Equipes que já usam Notion | | Gamma | Produtividade | Cerca de 400 créditos iniciais | Apresentações prontas em 2 minutos, templates profissionais | Pitches, relatórios, propostas comerciais | | NotebookLM | Produtividade | Gratuito com conta Google | Pergunta e resposta em documentos carregados, podcast de áudio | Pesquisa acadêmica, análise de PDFs | | Otter.ai | Produtividade | 300 minutos de transcrição por mês | Transcrição em tempo real de Zoom, Meet e Teams | Gestores e equipes com muitas reuniões | | Ollama (local) | Todas as categorias | 100% gratuito, open source | Privacidade total, conformidade com LGPD, sem limites | Empresas reguladas, dados sensíveis | | HuggingChat | Texto e open source | Ilimitado | Customizável, vários modelos open source disponíveis | Desenvolvedores e pesquisadores | ## Como rodar sua própria alternativa ao ChatGPT localmente Entre todas as opções desta lista, rodar um modelo de IA localmente é a única que garante 100% de conformidade com a LGPD. Os dados nunca saem da sua infraestrutura, não há risco de vazamento para empresas americanas, e você tem controle total sobre quem acessa o quê. O stack padrão em 2026 combina três ferramentas open source: Ollama, que gerencia o download e execução dos modelos; Open WebUI, uma interface web muito parecida com a do ChatGPT; e um modelo aberto como Qwen 2.5, Llama 3.3 ou DeepSeek R1. A instalação cabe em três comandos no terminal e leva entre 10 e 15 minutos no total. Os requisitos mínimos são modestos para as tarefas básicas. Um modelo de 7 bilhões de parâmetros em quantização Q4 roda confortavelmente em 16 GB de RAM e 4 núcleos de CPU, sem necessidade de placa de vídeo. Para modelos maiores, a partir de 14 bilhões de parâmetros, vale a pena considerar servidores com GPU NVIDIA. Para quem quer rodar essa configuração com conformidade total à LGPD e latência baixa para usuários brasileiros, alugar um [VPS em data center no Brasil](https://serverspace.com.br/services/vps-server.md) resolve o problema de forma direta. A Serverspace oferece planos a partir de R$ 24 por mês, com cobrança transparente em reais a cada 10 minutos, tráfego ilimitado gratuito, e infraestrutura no Equinix SP3 de São Paulo, certificado Tier III. Depois de criar o servidor, basta instalar o Ollama com uma linha de comando, baixar o modelo desejado e você já tem seu próprio ChatGPT rodando em minutos, sem enviar nenhum byte de dados para o exterior. Essa abordagem faz especial sentido para empresas dos setores financeiro, jurídico, saúde e qualquer outro que lide com dados pessoais sensíveis. O custo mensal de um VPS com modelo local costuma ser menor que uma assinatura do ChatGPT Plus para um time de cinco pessoas, e a tranquilidade legal não tem preço. ## Como escolher a alternativa certa para você Com tantas opções, a paralisia de decisão é real. Algumas perguntas diretas ajudam a chegar rápido na ferramenta certa. Para que você vai usar? Se o foco é escrever textos, revisar documentos ou conversar com a IA sobre ideias, Claude é o mais natural em português. Se o foco é programar, comece com Codeium pela generosidade do plano gratuito, e adicione Cursor quando precisar entender projetos complexos. Para produtividade do dia a dia, Notion AI ou NotebookLM cobrem a maioria dos casos. Você lida com dados sensíveis? Se trabalha com informações de clientes, código proprietário, documentos jurídicos ou dados médicos, esqueça as opções públicas. Use Tabnine com deploy local ou monte o stack Ollama mais modelo aberto em servidor próprio. Qual ecossistema você já usa? Quem vive no Google Workspace deve priorizar Gemini e NotebookLM. Quem usa Microsoft 365 tem vantagem com Copilot. Quem trabalha com AWS se beneficia do Amazon Q Developer. A regra aqui é minimizar atrito: a ferramenta mais produtiva é aquela que está integrada ao fluxo atual. Quantas mensagens você envia por dia? Se o volume é alto, DeepSeek é imbatível por não ter limites. Se é moderado, Claude e Gemini no plano gratuito dão conta. Se é baixo, o próprio ChatGPT Free resolve e você nem precisa migrar. ## Erros comuns ao substituir o ChatGPT por alternativas gratuitas Trocar de ferramenta parece simples, mas tem armadilhas recorrentes que derrubam o ganho de produtividade logo no começo. - Inserir dados sensíveis sem política clara. Esse é o erro mais caro. Colar contrato de cliente, código interno ou planilha financeira em uma IA pública pode caracterizar vazamento de dados corporativos e, dependendo do caso, justa causa trabalhista. O primeiro passo ao adotar qualquer ferramenta de IA é definir o que pode e o que não pode ser enviado. - Escolher pelo hype, não pelo caso de uso. Cada semana surge uma nova ferramenta sendo chamada de revolução. Testar todas é perda de tempo. O correto é começar pela tarefa concreta que você quer resolver e só então buscar a ferramenta específica. - Ignorar os limites do plano gratuito. Começar um projeto importante usando o free tier e descobrir no meio do caminho que a cota acabou é frustrante. Antes de adotar qualquer IA para trabalho real, vale verificar o limite mensal de mensagens e créditos. - Usar cinco ferramentas quando uma resolveria. Dispersar o trabalho entre várias IAs cria perda de contexto, custo maior de aprendizado e complexidade de workflow. Começar com uma ferramenta principal e adicionar outras só quando houver necessidade clara é a estratégia mais saudável. - Esquecer de verificar o opt-out de treinamento. Muitas plataformas gratuitas usam os prompts dos usuários para treinar seus próprios modelos. Isso significa que informação que você digitou ontem pode aparecer na resposta de outra pessoa amanhã. Sempre verifique a opção de opt-out nas configurações. ## Conclusão Em 2026, as alternativas grátis ao ChatGPT já cobrem confortavelmente 80% a 90% das tarefas cotidianas. Para redatores e analistas, Claude entrega resultados equivalentes ao GPT em qualidade de escrita em português. Para desenvolvedores, Codeium oferece autocomplete ilimitado de código sem custo. Para quem vive no Google Workspace, Gemini já é superior ao ChatGPT na integração com o fluxo de trabalho. E para empresas que lidam com dados sensíveis, a combinação Ollama e modelos abertos em VPS brasileiro resolve o problema da LGPD de forma definitiva. A estratégia mais inteligente em 2026 não é escolher uma única ferramenta, mas montar um stack de duas ou três opções especializadas para o seu tipo de trabalho, priorizando sempre aquelas que já se integram ao seu ecossistema atual. E se o seu caso envolve dados sigilosos, considere seriamente rodar sua própria IA em um [servidor VPS no Brasil](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) para manter controle total sobre as informações. As alternativas gratuitas ao ChatGPT 2026 deixaram de ser opções de segunda categoria e hoje competem de igual para igual com a solução original, em muitos casos superando-a. ### Existem alternativas gratuitas ao ChatGPT sem login? Sim, e algumas são bastante boas. Perplexity permite fazer perguntas sem cadastro prévio, com respostas citando fontes. O DuckDuckGo AI Chat também oferece acesso direto a modelos como Claude e GPT-4o mini sem conta, com foco em privacidade. HuggingChat exige cadastro, mas é gratuito e oferece vários modelos. Entre as alternativas gratuitas ao ChatGPT sem login, Perplexity costuma ser o mais usado por profissionais. ### As alternativas gratuitas ao ChatGPT são seguras para dados corporativos? Depende da ferramenta e do tipo de dado. Plataformas públicas como ChatGPT, Claude e Gemini, mesmo nos planos pagos, enviam suas informações para servidores externos e, na maioria dos casos, podem usar esses dados para treinar modelos futuros. Para dados verdadeiramente sensíveis, as únicas opções realmente seguras são soluções locais como Ollama com modelos abertos, ou ferramentas com deploy on-premise como Tabnine Enterprise. Sempre verifique os termos de uso e as opções de opt-out de treinamento nas configurações. ### Qual IA gratuita tem o melhor português? Claude e Gemini são consistentemente apontados como os mais naturais em português brasileiro nos testes recentes. Claude se destaca pela elegância na escrita e revisão de textos longos. Gemini tem vantagem em pesquisa e tarefas com contexto local, por integrar resultados atualizados do Google. Modelos open source como Llama 3.3 70B e Qwen 2.5 também têm bom desempenho, especialmente nas versões maiores. ### Posso usar essas alternativas para trabalhos comerciais? Na maioria dos casos sim, mas sempre vale checar os termos de cada serviço. Claude, Gemini, DeepSeek e Copilot permitem uso comercial na versão gratuita. Ferramentas de geração de mídia como Suno (música) e Luma (vídeo) restringem o uso comercial e exigem plano pago. Modelos open source rodados localmente via Ollama têm licenças permissivas na maioria dos casos, mas é prudente confirmar a licença específica de cada modelo antes de publicar conteúdo derivado. https://serverspace.com.br/support/help/erros-do-sistema-debian-solucoes-e-dicas.md Encontre soluções eficazes para erros e problemas comuns em sistemas Debian. Dicas de troubleshooting para administradores, desde erros de configuração até soluções de desempenho e monitoramento. Problemas, erros, bugs e servidores que "não funcionam" - essa é só uma pequena amostra do que administradores, especialistas de segurança da informação e outras áreas encaram no dia a dia. Todos nós precisamos resolver um incidente o mais rápido possível! Mas por onde começar? Onde encontrar a causa e como lidar com ela? Neste material, vamos considerar as principais áreas onde costumam surgir problemas: sistema de arquivos, serviços, units e outros. Como existe uma enorme variedade de falhas possíveis, cada uma tem seu próprio caminho de resolução. Ainda assim, dá para dividir o processo de troubleshooting em duas etapas: analisar e aplicar a solução. ## Primeira etapa: análise Antes de tudo, precisamos identificar o problema e em que área do sistema operacional ele está acontecendo. Às vezes vemos a mensagem de erro diretamente em um programa, utilitário ou serviço. Por exemplo, um sistema de controle de acesso e gerenciamento de contas pode exibir um erro como este: Captura de tela nº 1 - Mensagem do problema Não temos permissão para acessar um arquivo criado pelo root porque ele está com permissões 700. Isso significa que o root tem permissão rwx, mas outros usuários e grupos não têm. Para resolver esse tipo de problema, ajuste as permissões do arquivo ou diretório necessário. Em outros casos, o sistema pode não "avisar" o que está acontecendo internamente, porque o processo não é interrompido. O sistema operacional funciona como uma caixa-preta com milhões de processos dentro - e precisamos monitorar isso. Para isso existem os logs, que ajudam a entender e resolver incidentes. Vamos dar uma olhada nos logs do sistema para entender onde as ocorrências são registradas: ``` journalctl | grep "login" | tail ``` Esse comando usa um pipeline com três etapas: o journalctl lê os logs do sistema; o grep filtra por um padrão de texto no meio de um grande volume de dados; e o tail mostra as últimas linhas. Como resultado, vemos o final do log relacionado a logins do sistema operacional: Captura de tela nº 2 - Mensagem de log de login É curioso observar que, no servidor usado para testes, não configuramos chave pública - e dá para ver uma causa comum de problemas: vários endereços IP tentando acessar a máquina. A recomendação aqui é configurar uma chave pública confiável. Isso ajuda a identificar a origem do problema. Também podemos usar o journalctl para verificar o status de um serviço específico. Se você encontrar um erro relacionado, por exemplo, ao PostgreSQL, execute: ``` journalctl -xeu postgresql@15-main.service ``` Captura de tela nº 3 - Problema com serviço Pelas recomendações acima, também é possível checar o journal de units (unidades) e ações: Captura de tela nº 4 - Problema com unit Na tela acima, vemos o campo Subject com a mensagem "Unit failed" e uma linha marcada como FATAL. Nesse caso, o problema costuma estar nos arquivos de configuração, e por isso a unit não consegue iniciar. ## Segunda etapa: solução Se você quer verificar os serviços e seus status, use: ```bash systemctl list-units -t service -p important ``` Captura de tela nº 5 - Units ativas Vamos fazer troubleshooting do serviço PostgreSQL: abra o arquivo de configuração e procure a linha com erro: Captura de tela nº 6 - Linha com erro Remova a linha com problema usando o atalho Ctrl + K, salve o arquivo e reinicie o serviço: ```bash systemctl restart postgresql@15-main.service ``` Em seguida, verifique o status: ```bash systemctl status postgresql@15-main.service ``` Captura de tela nº 7 - Serviço funcionando Dependendo do seu caso, talvez você precise de passos mais específicos. Uma forma prática é pesquisar a mesma mensagem de erro em um mecanismo de busca ou em ferramentas de IA generativa, como o GPT. Neste artigo, estamos focando em ferramentas de monitoramento e diagnóstico para ajudar a resolver erros. Se você não conseguir encontrar a causa do problema, mas perceber que a máquina está lenta, pode instalar um "gerenciador de tarefas" para terminal, como o atop: ```bash apt install atop -y ``` Depois, execute o atop e aguarde a janela com os processos em execução: ``` atop ``` Captura de tela nº 8 - atop Na última coluna, é possível ver o campo de CPU com o percentual de uso do processo naquele momento. Se você identificar uma carga alta, pode encerrar ou interromper o processo. Por exemplo: ``` kill -SIGINT 332697 ``` E um segundo comando para finalizar: ``` kill -SIGTERM 332697 ``` Captura de tela nº 9 - Problema com PID Se o terminal não retornar mensagem de erro, significa que o comando foi executado com sucesso. Erros e desafios em sistemas baseados em Debian fazem parte da rotina de administração. Este guia abordou diferentes formas de identificar e resolver problemas com mais eficiência, usando logs, diagnóstico de serviços e ferramentas de monitoramento. https://serverspace.com.br/support/help/exemplos-de-consultas-comuns-em-mysql.md Aprenda exemplos práticos de consultas MySQL: como listar usuários, criar contas, conceder permissões, criar bancos de dados e tabelas usando comandos SQL básicos. Por que precisamos usar SQL? O SQL oferece diversos recursos de segurança e desempenho. Por exemplo, as transações garantem que várias operações sejam executadas como um todo; assim, se alguma operação falhar, toda a transação será desfeita. Além disso, os índices podem acelerar significativamente a execução de consultas, permitindo que o sistema de banco de dados utilize um caminho de acesso diferente de uma busca linear por todos os registros da tabela. Por fim, o SQL permite que usuários com pouco ou nenhum conhecimento de linguagens de programação realizem operações complexas sobre dados. Por exemplo, é muito fácil para alguém que não sabe nada de programação escrever uma instrução SELECT que extraia apenas sobrenomes e nomes de uma tabela com informações de funcionários. No entanto, se essa pessoa tentasse fazer o mesmo em uma linguagem procedural como C ou Java, seria muito mais difícil, pois o programador teria de usar laços e outras construções para obter os dados no formato desejado. Por esse motivo, vamos considerar comandos comuns para melhorar suas habilidades de navegação em um sistema de SGBD! ## Como visualizar usuários? Antes de tudo, precisamos fazer login no sistema via localhost ou por uma conexão remota. No segundo caso, é necessário substituir localhost pelo endereço IP do servidor MySQL desejado e informar o nome de usuário correspondente. Por exemplo, para conectar localmente: ```bash mysql -u root -h localhost -p ``` Screenshot nº 1 — Conexão ```bash mysql -u jhon -h 76.56.32.1 -p ``` Pronto, estamos dentro do sistema. Agora podemos consultar os usuários no nosso banco de dados. As contas do sistema e as configurações também são armazenadas no banco, e o acesso pode ser obtido por meio de uma consulta SQL comum: ```sql SELECT user, host FROM mysql.user; ``` Screenshot nº 2 — Seleção Na imagem, você pode ver a tabela formada a partir das colunas user e host, que buscamos na tabela user. O operador SELECT indica as colunas onde buscaremos as informações, e o FROM indica em qual tabela. ## Como criar um usuário? Se não tivermos o usuário desejado ou quisermos criar um novo, usamos o comando abaixo: ```sql CREATE USER 'kk'@'localhost' IDENTIFIED BY 'password'; ``` Vamos verificar o resultado da criação do usuário: ```sql SELECT user, host FROM mysql.user; ``` Screenshot nº 3 — Criação da conta Todo usuário precisa ter permissões no sistema MySQL; por padrão, um usuário não as possui. Esse é um ponto muito importante, pois, segundo os princípios básicos de segurança, devemos restringir o acesso. Para conceder privilégios: ``` GRANT ALL PRIVILEGES ON mysql.user TO 'kk'@'localhost'; ``` Screenshot nº 4 — Concessão de privilégios Nesse ponto, concedemos privilégios ao usuário kk na tabela user, atribuindo TODOS os privilégios. Esse é um ponto importante, pois define a lista de permissões do usuário. Podemos conceder permissões específicas como REVOKE, DROP ou CREATE, conforme o tipo de conta. Se concedermos privilégios por engano, podemos corrigir com o comando REVOKE: ``` REVOKE ALL PRIVILEGES ON mysql.user FROM 'kk'@'localhost'; ``` Screenshot nº 5 — Revogação de privilégios O REVOKE significa retirar direitos do usuário, e sua forma de uso é muito semelhante ao GRANT, exceto pela sintaxe FROM. ## Como criar um banco de dados? Para isso, usamos o comando conhecido: ```sql CREATE DATABASE store; ``` Em seguida, podemos selecionar o banco de dados como padrão: ``` USE store ``` Screenshot nº 6 — Criação do banco de dados Essa sintaxe significa a criação do banco de dados com o nome store. Você pode ter notado que, após cada comando, usamos um ponto e vírgula. Ele indica o fim da sequência de comandos. No entanto, algumas instruções, como o operador USE, não exigem necessariamente esse formato. Para verificar o resultado, basta usar o comando SHOW abaixo: ``` SHOW DATABASES; ``` E veremos o resultado! ## Como criar uma tabela? Agora podemos criar uma tabela com o comando: ```sql CREATE TABLE clothes ( id INT NOT NULL, name VARCHAR(30) NOT NULL ); ``` Aqui, CREATE TABLE é o operador principal, clothes é o nome da tabela, id é a primeira coluna com tipo de dado inteiro (INT) e opção NOT NULL. Para a coluna name, a lógica é a mesma. Para verificar o resultado: ``` SHOW TABLES; ``` Ou podemos ver a estrutura da tabela criada com o comando: Screenshot nº 7 — Operador DESCRIBE ``` DESCRIBE clothes; ``` Screenshot nº 8 — Descrição da tabela Na imagem, podemos ver o resultado das nossas manipulações! A compreensão e o uso do SQL são fundamentais para melhorar a segurança e o desempenho dos sistemas de gerenciamento de bancos de dados. O suporte do SQL a transações garante a integridade das operações, enquanto recursos como índices contribuem para uma execução eficiente de consultas. Além disso, o SQL capacita pessoas com conhecimento limitado de programação a realizar operações complexas sobre dados com facilidade. https://serverspace.com.br/support/help/operador-do-percona-xtradb-cluster-mysql-de-alta-disponibilidade-no-kubernetes.md Saiba como o Percona XtraDB Cluster Operator automatiza clusters MySQL de alta disponibilidade no Kubernetes. Explicação sobre instalação, casos de uso, backups, dimensionamento e perguntas frequentes. Modernas aplicações exigem bancos de dados que não sejam apenas performáticos, mas também altamente disponíveis, escaláveis e fáceis de operar. Gerenciar clusters MySQL manualmente no Kubernetes pode ser complexo e propenso a erros, especialmente quando se trata de replicação, failover, backups e atualizações. O Percona XtraDB Cluster Operator resolve esses problemas automatizando a implantação e o gerenciamento do ciclo de vida de clusters MySQL baseados no Percona XtraDB Cluster (PXC) dentro do Kubernetes. Este artigo explica o que é o operador, como ele funciona, onde é útil na prática, como instalá-lo e responde às perguntas mais comuns. ## O que é o Percona XtraDB Cluster Operator? O Percona XtraDB Cluster Operator é um operador Kubernetes que automatiza a criação, configuração e o gerenciamento do Percona XtraDB Cluster (PXC) — uma solução de banco de dados compatível com MySQL e altamente disponível, baseada em replicação síncrona (Galera). O operador segue o padrão Kubernetes Operator: - **Você descreve o estado desejado do banco de dados usando Custom Resource Definitions (CRDs)** - **O operador garante continuamente que o estado real do cluster corresponda a essa configuração desejada** Os principais recursos incluem: - Provisionamento automatizado de clusters - Alta disponibilidade com replicação síncrona - Failover automático e autorrecuperação - Escalonamento online (adição/remoção de nós) - Backup e restauração (lógicos e físicos) - Atualizações rolling com tempo de inatividade mínimo - Criptografia TLS e gerenciamento de segredos Repositório no GitHub: [https://github.com/percona/percona-xtradb-cluster-operator](https://github.com/percona/percona-xtradb-cluster-operator) ## Por que usar o Percona XtraDB Cluster Operator? **Executar MySQL no Kubernetes sem um operador geralmente significa:** - Escrever scripts personalizados para replicação e failover - Gerenciar backups e restaurações manualmente - Atualizações arriscadas - Alta complexidade operacional **O operador abstrai toda essa complexidade e oferece:** - Clusters MySQL prontos para produção - Configuração declarativa - Confiabilidade de nível empresarial - Operações cloud-native Ele é especialmente útil para equipes que estão adotando Kubernetes, mas ainda dependem fortemente de bancos de dados relacionais. ## Casos de Uso Práticos ### 1. MySQL altamente disponível para microserviços Uma arquitetura típica de microserviços geralmente depende de vários serviços backend acessando o mesmo banco de dados. Com o Percona XtraDB Cluster, vários nós MySQL são executados simultaneamente, enquanto as operações de escrita são replicadas de forma síncrona entre todos os nós. Se um pod falhar, o tráfego é automaticamente redirecionado para nós saudáveis, garantindo disponibilidade contínua. Essa abordagem reduz significativamente o tempo de inatividade e evita inconsistências de dados em sistemas distribuídos. ### 2. Backups automatizados e recuperação de desastres O operador oferece suporte a backups agendados para storage compatível com S3, bem como backups sob demanda, permitindo que as equipes protejam dados sem intervenção manual. Com a configuração adequada, a recuperação ponto-no-tempo também está disponível, possibilitando restaurar o banco de dados para um momento específico. Esses recursos são especialmente úteis em cenários como recuperação após exclusão acidental de dados, restauração de bancos em novos clusters Kubernetes ou clonagem de ambientes de produção para staging. ### 3. Escalonamento de clusters de banco de dados O escalonamento é realizado de forma declarativa, ajustando o número de nós PXC definidos no Custom Resource. O operador gerencia com segurança o processo de adição ou remoção de nós, garantindo estabilidade do cluster e consistência dos dados. Essa abordagem é particularmente útil durante picos de tráfego, aumentos sazonais de carga ou no planejamento gradual de capacidade conforme as demandas da aplicação crescem. ### 4. Atualizações e manutenção seguras O operador suporta atualizações rolling ao atualizar os nós do cluster um a um, mantendo o banco de dados disponível durante todo o processo. Isso garante que a disponibilidade do cluster seja preservada e elimina a necessidade de intervenção manual. Como resultado, o risco operacional durante atualizações de versão do MySQL ou do Kubernetes é significativamente reduzido. ## Guia de Instalação Abaixo está um fluxo de instalação simplificado. Ambientes de produção completos podem exigir ajustes adicionais. **Pré-requisitos**: - Cluster Kubernetes (v1.22+ recomendado) - kubectl instalado - Helm (opcional, mas recomendado) - Armazenamento persistente configurado **Passo 1: Clonar o repositório (opcional)** ```bash git clone https://github.com/percona/percona-xtradb-cluster-operator.git ``` ``` cd percona-xtradb-cluster-operator ``` **Passo 2: Instalar o operador** Usando manifests: ```bash kubectl apply -f deploy/bundle.yaml ``` Ou usando Helm (recomendado): ``` helm repo add percona [https://percona.github.io/percona-helm-charts/ ``` (https://percona.github.io/percona-helm-charts/[/code)] ``` helm repo update ``` ``` helm install pxc-operator percona/pxc-operator ``` **Passo 3: Implantar um cluster MySQL** Crie um Custom Resource, por exemplo: ```yaml apiVersion: pxc.percona.com/v1 kind: PerconaXtraDBCluster metadata: name: my-cluster spec: pxc: size: 3 image: percona/percona-xtradb-cluster:8.0 haproxy: enabled: true size: 2 ``` Aplique: ```bash kubectl apply -f cluster.yaml ``` O operador irá: - Criar pods - Configurar a replicação - Expor serviços - Garantir a saúde do cluster ## Perguntas Frequentes (FAQ) - **O Percona XtraDB Cluster é compatível com MySQL?** Sim. O PXC é totalmente compatível com MySQL e oferece suporte à maioria dos recursos e ferramentas do MySQL. - **Como funciona a replicação?** O PXC utiliza replicação síncrona Galera, o que significa: 1) As transações são confirmadas em todos os nós ao mesmo tempo 2) Não há atraso de replicação 3) Forte consistência de dados - **Posso usar em produção?** Com certeza. O operador foi projetado para workloads corporativos e de produção e é mantido ativamente pela Percona. - **E quanto ao desempenho?** A replicação síncrona tem algum overhead, mas em troca você obtém: 1) Forte consistência 2) Nenhum atraso de réplica 3) Comportamento de failover previsível 4) Para workloads com muitas leituras, o HAProxy e múltiplos nós ajudam a distribuir a carga de forma eficiente. ## Conclusão O Percona XtraDB Cluster Operator é uma solução poderosa e pronta para produção para executar MySQL altamente disponível no Kubernetes. Ele elimina grande parte da carga operacional tradicionalmente associada a clusters de banco de dados e a substitui por uma abordagem declarativa, automatizada e cloud-native. Se o seu projeto exige forte consistência, alta disponibilidade, operações automatizadas e fluxos de trabalho nativos do Kubernetes, então o Percona XtraDB Cluster Operator é uma escolha sólida e comprovada. Para mais detalhes, exemplos e configurações avançadas, visite o repositório oficial no GitHub: [[https://github.com/percona/percona-xtradb-cluster-operator](https://github.com/percona/percona-xtradb-cluster-operator)](https://github.com/percona/percona-xtradb-cluster-operator) https://serverspace.com.br/support/help/kaniko-compilacao-de-imagens-docker-sem-docker-no-kubernetes-e-ci-cd.md kaniko — ferramenta para compilar imagens de contêineres sem o daemon Docker. Saiba como usar o kaniko no Kubernetes e CI/CD, instalar e configurar o cache. **kaniko** é uma ferramenta que constrói imagens de contêiner a partir de um **Dockerfile** sem se conectar ao **Docker Engine**. Ela é executada dentro de um contêiner ou de um cluster Kubernetes e é especialmente útil em ambientes onde a execução do Docker é insegura, impossível ou indesejada. O projeto é mantido pela comunidade e evolui como um fork oficial após o arquivamento do repositório original do Google. A versão atual é mantida no repositório da Chainguard. ## Para que serve o kaniko A construção tradicional de imagens Docker pressupõe acesso ao daemon Docker (**dockerd**). Isso gera uma série de problemas: - é necessário **acesso privilegiado**; - os riscos de segurança aumentam; - é difícil usar em clusters Kubernetes; - não é adequado para muitas plataformas de CI/CD. **O kaniko resolve esses problemas**, pois: - não utiliza o daemon Docker; - é executado como um contêiner comum; - é seguro para CI e Kubernetes; - suporta **Dockerfiles** padrão. Na prática, o kaniko lê o **Dockerfile**, executa as instruções passo a passo e **envia a imagem final diretamente para o registry**. ## Onde e como o kaniko é utilizado ### 1. Pipelines de CI/CD O kaniko é frequentemente utilizado em: - GitLab CI - GitHub Actions - Jenkins - Argo Workflows Ele é ideal para a construção de imagens em runners compartilhados sem a necessidade de modo privilegiado. ### 2. Clusters Kubernetes O kaniko pode ser executado como: - Job - Pod - parte do CI dentro do cluster Isso é conveniente quando todo o processo de deploy já acontece no Kubernetes. ### 3. Requisitos elevados de segurança Em ambientes com políticas de segurança rigorosas (bancos, projetos enterprise), o kaniko permite construir imagens sem acesso ao sistema host. ## Como o kaniko funciona De forma simplificada, o processo é o seguinte: - o kaniko é iniciado dentro de um contêiner - lê o **Dockerfile** - executa as instruções (**FROM, RUN, COPY**, etc.) - cria as camadas da imagem em um sistema de arquivos temporário - envia o resultado para um container registry O daemon Docker **não é utilizado em nenhum momento**. ## Instalação e execução do kaniko ### Execução básica via Docker ```bash docker run \ -v $(pwd):/workspace \ -v ~/.docker/config.json:/kaniko/.docker/config.json:ro \ gcr.io/kaniko-project/executor:latest \ --dockerfile=Dockerfile \ --context=/workspace \ --destination=registry.example.com/my-image:latest ``` - /workspace — contexto de build - config.json — credenciais de acesso ao registry - --destination — destino para onde a imagem será enviada ### Execução do kaniko no Kubernetes ```yaml apiVersion: batch/v1 kind: Job metadata: name: build-image-kaniko labels: app: kaniko-builder spec: backoffLimit: 1 template: metadata: labels: app: kaniko-builder spec: restartPolicy: Never containers: - name: executor image: gcr.io/kaniko-project/executor:latest args: - "--dockerfile=/workspace/Dockerfile" - "--context=git://github.com/example-org/sample-app.git#refs/heads/main" - "--destination=registry.example.com/sample-app:1.0.0" - "--cache=true" - "--cache-repo=registry.example.com/kaniko-cache" volumeMounts: - name: docker-auth mountPath: /kaniko/.docker volumes: - name: docker-auth secret: secretName: registry-docker-config ``` ## Parâmetros mais utilizados | Parâmetro | Descrição | | --- | --- | | --dockerfile | Caminho para o Dockerfile utilizado na construção da imagem. | | --context | Contexto de build: diretório local ou repositório Git. | | --destination | Endereço do container registry e a tag da imagem final. | | --no-push | Constrói a imagem sem enviá-la (push) para o registry. | | --cache | Ativa o cache de camadas para acelerar builds repetidos. | | --cache-repo | Registry onde as camadas em cache são armazenadas. | | --snapshotMode | Modo de criação das camadas do sistema de arquivos (por exemplo, time ou redo). | | --verbosity | Nível de log do kaniko (debug, info, warn). | | --build-arg | Passagem de argumentos de build para o Dockerfile. | ## Cache de builds O kaniko oferece suporte a cache de camadas, o que acelera builds subsequentes: ``` --cache=true \ --cache-repo=registry.example.com/kaniko-cache ``` Importante: o cache é armazenado **no registry**, e não localmente. ## Limitações do kaniko É importante considerar: - algumas instruções Docker não padrão podem se comportar de forma diferente; - não há shell interativo durante o build; - o build pode ser mais lento do que o Docker com cache local; - é necessário configurar corretamente o acesso ao registry. ## FAQ - **O que é o kaniko e para que ele pode ser usado?** O kaniko é uma ferramenta para construir imagens de contêiner a partir de Dockerfiles sem utilizar o daemon Docker. Ele é usado em pipelines de CI/CD e clusters Kubernetes onde a execução do Docker em modo privilegiado não é possível ou desejável. - **O kaniko funciona em conjunto com Kubernetes?** Sim. O kaniko foi projetado para funcionar no Kubernetes. Ele pode ser executado como Job ou Pod, além de ser usado como parte do CI dentro do cluster. Isso permite construir e publicar imagens diretamente no registry sem acesso ao host. - **É necessário Docker para usar o kaniko?** Não. O daemon Docker (dockerd) não é necessário. O kaniko realiza todo o processo de build em user space, o que o torna mais seguro para ambientes corporativos e em nuvem. - **O kaniko suporta Dockerfiles padrão?** Sim. O kaniko funciona com Dockerfiles padrão, incluindo builds multi-stage. A maioria das instruções (FROM, RUN, COPY, ARG, etc.) é suportada sem alterações. - **Como o kaniko trabalha com cache?** O kaniko oferece cache de camadas, mas armazena esse cache em um container registry, e não localmente. Para isso, utiliza-se o parâmetro --cache=true e um repositório dedicado, acelerando builds repetidos em CI/CD. - **É possível usar o kaniko para builds locais?** Tecnicamente, sim — o kaniko pode ser executado localmente em um contêiner. No entanto, seu principal caso de uso são builds automatizados em CI/CD e Kubernetes, e não o desenvolvimento local. - **Qual a diferença entre kaniko e docker build?** A principal diferença é a ausência do daemon Docker. O docker build exige acesso ao host e modo privilegiado, enquanto o kaniko funciona como um contêiner comum e é mais seguro em ambientes isolados. - **O kaniko é adequado para pipelines de produção?** Sim. O kaniko é amplamente utilizado em pipelines de CI/CD em produção, especialmente em infraestruturas baseadas em Kubernetes com requisitos elevados de segurança. ## Conclusão **kaniko** é uma ferramenta prática e segura para a construção de imagens de contêiner em infraestruturas modernas. Ela é especialmente adequada para clusters Kubernetes e pipelines de CI/CD onde o uso do daemon Docker é proibido ou indesejado. Se você precisa construir imagens de contêiner: - sem acesso privilegiado - dentro do Kubernetes - com integração transparente ao CI o kaniko é uma das opções mais confiáveis disponíveis atualmente. https://serverspace.com.br/support/help/keel-para-kubernetes-atualizacoes-automaticas-para-helm-e-deployment-serverspace.md Instruções detalhadas sobre o Keel - Kubernetes Operator para atualizar automaticamente o Deployment, o StatefulSet, o DaemonSet e o Helm. Exemplos, instalação e prática de inicialização ## Introdução Atualizar aplicações no Kubernetes manualmente quase sempre é um problema: é preciso acompanhar tags de imagens, aplicar manifestos no momento certo, não esquecer as regras de versionamento e evitar "derrubar" o ambiente de produção. O **Keel** resolve essa tarefa como um Kubernetes Operator: ele monitora novas versões de containers (e releases Helm) e atualiza automaticamente seus workloads de acordo com a política definida — Deployments, DaemonSets, StatefulSets e releases Helm. Repositório oficial: [https://github.com/keel-hq/keel](https://github.com/keel-hq/keel) ## O que é o Keel e como ele funciona O **Keel** é um serviço self-hosted leve (um único container, sem banco de dados separado) que roda dentro do cluster e atua como um "auto-updater". A lógica de controle das atualizações é definida diretamente nos manifestos das aplicações (por meio de annotations) ou nos charts Helm: - **o que atualizar** — um Deployment/StatefulSet/DaemonSet específico ou um release Helm; - **quando atualizar** — por verificação periódica do registry (poll) ou por gatilho via webhook; - **como atualizar** — seguindo uma política de versões (por exemplo, patch/minor via SemVer) ou de forma forçada. A ideia é simples: você publica uma nova imagem no registry, o Keel detecta isso e atualiza o recurso, respeitando as regras configuradas. ## Tabela: comandos e ações rápidas | Tarefa | Comando / ação | Observação | | --- | --- | --- | | Criar namespace | kubectl create namespace keel | Isola os componentes do Keel | | Ver pods do Keel | kubectl -n keel get pods | Confirma que o Keel está em execução | | Ver Deployment do Keel | kubectl -n keel get deploy | Diagnóstico rápido | | Aplicar manifesto da aplicação | kubectl apply -f deployment.yaml | Após adicionar as annotations do Keel | | Ver eventos no namespace | kubectl -n default get events --sort-by=.metadata.creationTimestamp | Ajuda a entender o que foi atualizado e quando | | Verificar rollout | kubectl -n default rollout status deploy/webhook-demo | Útil após atualizar a imagem | | Histórico de rollout | kubectl -n default rollout history deploy/webhook-demo | Verifica qual revisão foi aplicada | ## Exemplos práticos de uso ### Exemplo 1. Atualização automática de Deployment via SemVer (minor) Suponha que você queira atualizar automaticamente novas versões da imagem, mas apenas dentro do escopo **minor** (por exemplo, 1.3.x → 1.4.x, mas não 2.0.0). Adicione as annotations do Keel ao manifesto do Deployment: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: webhook-demo namespace: default annotations: keel.sh/policy: minor keel.sh/trigger: poll spec: replicas: 2 selector: matchLabels: app: webhook-demo template: metadata: labels: app: webhook-demo spec: containers: - name: app image: your-registry.example.com/webhook-demo:1.4.2 imagePullPolicy: Always ``` **Resultado:** ao publicar, por exemplo, 1.4.3 ou 1.5.0, o Keel atualiza. Se publicar 2.0.0, o Keel ignora. ### Exemplo 2. Atualização apenas de versões patch (sem "saltos" de minor) Indicado para produção, onde é importante minimizar riscos: ``` metadata: annotations: keel.sh/policy: patch keel.sh/trigger: poll ``` **Lógica:** 1.4.2 → 1.4.3 será atualizado, 1.4.2 → 1.5.0 não. ### Exemplo 3. StatefulSet: atualizações cuidadosas para serviços com estado O Keel suporta StatefulSets. Isso é útil quando você lança novas builds com frequência, mas quer manter uma política de versões controlada: ```yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: api-stateful annotations: keel.sh/policy: patch keel.sh/trigger: poll spec: serviceName: api-stateful replicas: 3 selector: matchLabels: app: api-stateful template: metadata: labels: app: api-stateful spec: containers: - name: api image: your-registry.example.com/api:3.2.9 imagePullPolicy: Always ``` ### Exemplo 4. DaemonSet: atualizações de agentes/loggers em todos os nós Caso clássico — agentes de log, agentes de segurança, node-exporter e quaisquer serviços "um por nó": ```yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: log-agent annotations: keel.sh/policy: minor keel.sh/trigger: poll spec: selector: matchLabels: app: log-agent template: metadata: labels: app: log-agent spec: containers: - name: agent image: your-registry.example.com/log-agent:0.9.1 imagePullPolicy: Always ``` ### Exemplo 5. Helm: atualização automática de releases O Keel também funciona como "provedor" para Helm. A lógica é a mesma: você define as regras de atualização no chart/values e o Keel atualiza o release quando surge uma nova versão (de imagens ou do próprio release, dependendo do seu fluxo). Na prática, isso é útil quando você tem muitos ambientes semelhantes (dev/stage) e quer que eles se atualizem automaticamente seguindo regras claras, sem executar helm upgrade manualmente a cada vez. ## Instalação do Keel no cluster Abaixo está um cenário básico e rápido. Para detalhes e variações de instalação (incluindo Helm chart), consulte a documentação e o repositório do Keel. ### Passo 1. Preparar o namespace ```bash kubectl create namespace keel ``` ### Passo 2. Instalar o Keel **Opção A (Helm chart):** se você prefere instalar via Helm, utilize o chart do Keel. A lógica geral é: ``` helm repo add keel https://charts.keel.sh helm repo update helm install keel keel/keel -n keel ``` _Observação:_ o endereço do repositório/nome do chart pode variar. O mais seguro é verificar os comandos atualizados na documentação oficial ou no ArtifactHub. **Opção B (kubectl apply):** adequada se você quer reduzir dependências do Helm. Nesse caso, aplique os manifestos YAML do Keel disponíveis no repositório/documentação oficial. ### Passo 3. Verificar se o Keel está em execução ```bash kubectl -n keel get pods kubectl -n keel get deploy ``` ### Passo 4. Adicionar annotations aos seus workloads O Keel começa a funcionar quando encontra suas annotations (policy/trigger etc.) nos recursos. Após adicioná-las, aplique as alterações: ```bash kubectl apply -f deployment.yaml ``` ## Recomendações de operação - **Comece com patch** em produção e deixe minor para dev/stage — isso facilita o controle de riscos. - **Use tags únicas e previsíveis**. Com "latest", as atualizações podem se tornar pouco transparentes. - **Escolha bem o trigger**: poll é mais simples para começar; webhooks são mais rápidos e reduzem chamadas ao registry. - **Observabilidade**: garanta visibilidade dos eventos de rollout (events/logs) para entender por que uma atualização ocorreu ou foi ignorada. ## Sobre a prática: onde isso é mais conveniente O Keel se encaixa muito bem em cenários onde você quer algo "quase CI/CD", mas sem pipelines pesados: equipes pequenas, microsserviços de produto, dev/stage rápidos e ambientes padronizados. Nesses casos, é mais importante manter atualizações estáveis e previsíveis do que adicionar complexidade. Se você executa Kubernetes por conta própria (kubeadm/k3s) ou mantém vários ambientes para projetos diferentes, é útil contar com uma infraestrutura onde VPS possam ser criados de forma rápida e previsível — por exemplo, em uma região próxima ao público-alvo. Na Serverspace, é possível implantar servidores virtuais na localização desejada e montar o cluster conforme a sua necessidade (dev/stage/labs), usando o Keel para automatizar atualizações de serviços com políticas SemVer. ## Conclusão O Keel é um Kubernetes Operator prático para automatizar atualizações de Deployments, StatefulSets, DaemonSets e releases Helm. Ele é ideal quando você quer eliminar "kubectl apply só para trocar a tag" e substituí-lo por políticas gerenciadas (patch/minor) e triggers claros. O resultado é economia de tempo da equipe, ciclos de entrega mais rápidos e menor risco de erros humanos em releases frequentes. ## FAQ ### O Keel substitui um CI/CD? Não. CI/CD normalmente cuida da build, testes e publicação de artefatos. O Keel resolve uma tarefa mais específica: **atualizar automaticamente** workloads do Kubernetes quando uma nova imagem/versão já está disponível, seguindo as regras definidas. ### Quais recursos do Kubernetes são suportados? No cenário básico, o Keel funciona com **Deployments**, **StatefulSets** e **DaemonSets**, além de oferecer integração com **Helm**. ### Como o Keel decide quando atualizar? Isso é definido via annotations: você escolhe a política (por exemplo, patch/minor via SemVer) e o tipo de trigger (como poll). Se a nova versão se enquadra na política, o Keel inicia a atualização do recurso. ### O que escolher: poll ou webhooks? **Poll** é mais simples para começar: o Keel verifica periodicamente o registry. **Webhooks** são úteis quando você precisa reagir mais rápido aos releases e reduzir chamadas desnecessárias ao registry. ### É possível usar o Keel em vários ambientes? Sim. Normalmente o Keel é instalado separadamente em cada ambiente (dev/stage/prod), com políticas de atualização diferentes — por exemplo, minor em dev/stage e patch em produção. ### Onde encontrar exemplos e parâmetros atualizados? Comece pelo repositório oficial e pela documentação: [GitHub keel-hq/keel](https://github.com/keel-hq/keel) e [keel.sh](https://keel.sh/). https://serverspace.com.br/support/help/snitch-uma-tui-util-para-analisar-conexoes-de-rede-no-linux-serverspace.md O snitch é uma ferramenta TUI útil para analisar conexões de rede no Linux. Alternativa clara ao ss e ao netstat, exemplos de uso e instalação. ## Introdução O diagnóstico de conexões de rede no Linux geralmente se resume a duas ferramentas clássicas — ss e netstat. Elas são poderosas, mas pouco práticas: linhas longas, saída sobrecarregada e dificuldade para entender rapidamente o que está acontecendo com a rede naquele momento. O **snitch** resolve esse problema ao oferecer uma forma mais visual e conveniente de analisar conexões de rede por meio de uma interface TUI ou tabelas estruturadas. Repositório oficial: [https://github.com/karol-broda/snitch](https://github.com/karol-broda/snitch) ## O que é o snitch e como ele funciona O **snitch** é uma ferramenta CLI para Linux que utiliza dados do ss e de fontes do próprio sistema, mas os apresenta de forma amigável: um TUI (Text User Interface) interativo ou tabelas bem formatadas. A ferramenta é voltada para a análise rápida das conexões de rede ativas, sem a necessidade de interpretar saídas "cruas" de comandos do sistema. - **o que mostra** — conexões TCP/UDP ativas, portas em listening, processos e PID; - **como mostra** — via TUI ou saída em formato de tabela; - **para quem** — administradores, engenheiros DevOps, SREs e desenvolvedores. A ideia é simples: o snitch pega uma saída de rede complexa e a transforma em uma visão clara do estado do sistema. ## Tabela: comparação entre snitch, ss e netstat | Critério | snitch | ss / netstat | | --- | --- | --- | | Formato de saída | TUI ou tabelas | Lista em texto | | Visualização | Alta | Baixa | | Filtragem | Interativa | Via flags | | Identificação de problemas | Rápida e visual | Exige experiência | | Adequado para monitoramento | Sim (manual) | Limitado | ## Exemplos práticos de uso ### Exemplo 1. Visão rápida de todas as conexões de rede Quando é preciso entender o que está acontecendo com a rede do servidor naquele momento — quais portas estão abertas e quais conexões estão ativas: ``` snitch ``` Você obtém uma interface interativa com a lista de conexões, estados, endereços e processos associados. ### Exemplo 2. Análise de portas em listening Útil para auditoria de segurança ou para verificar quais serviços realmente estão expostos: ``` snitch --listening ``` Diferente do ss -lntup, a saída já vem estruturada e fácil de ler. ### Exemplo 3. Busca por conexões suspeitas Se o servidor apresenta comportamento estranho (carga, tráfego, conexões desconhecidas), o snitch permite filtrar rapidamente conexões por IP, porta ou processo diretamente na interface, sem cadeias de grep/awk. ### Exemplo 4. Uso em scripts e relatórios Além do TUI, o snitch pode exibir os dados em formato de tabela, o que é conveniente para logging e análises automatizadas: ``` snitch --table ``` Esse formato é mais fácil de ler e de anexar a relatórios ou tickets. ## Instalação do snitch O snitch é distribuído como um binário standalone e não exige uma instalação complexa. ### Passo 1. Baixe o binário Acesse a seção Releases do repositório e faça o download do binário para a sua arquitetura. Exemplo para Linux x86_64: ```bash wget https://github.com/karol-broda/snitch/releases/latest/download/snitch-linux-amd64 ``` ### Passo 2. Torne o arquivo executável ```bash chmod +x snitch-linux-amd64 ``` ### Passo 3. Mova o binário para o PATH ``` sudo mv snitch-linux-amd64 /usr/local/bin/snitch ``` ### Passo 4. Execute o snitch ``` snitch ``` ## Recomendações de uso - **Execute como root** se precisar da lista completa de processos e PIDs. - **Use o snitch para diagnóstico**, não como monitoramento contínuo — é uma ferramenta de análise rápida. - **Combine com utilitários clássicos**: o snitch oferece uma visão clara, enquanto ss/netstat continuam úteis para automação. - **Ideal para incidentes**: quando o tempo é crítico, a interface visual economiza minutos valiosos. ## Na prática: onde o snitch é mais útil O snitch é especialmente útil em VPS e servidores em nuvem, onde é preciso identificar rapidamente problemas de rede: conexões inesperadas, sessões travadas ou serviços escutando portas desnecessárias. Em ambientes de nuvem, onde servidores são criados e removidos com frequência, ferramentas assim ganham ainda mais valor. Ao implantar um VPS na Serverspace, é possível obter um servidor funcional em poucos minutos e usar o snitch para o diagnóstico inicial da rede, verificação de configurações de serviços e resposta rápida a incidentes — sem "magia" excessiva ou ferramentas pesadas. ## Conclusão O snitch é uma camada prática sobre ss e netstat que torna a análise de conexões de rede mais rápida e visual. Ele não substitui completamente as ferramentas de sistema, mas facilita muito o trabalho do dia a dia: menos tempo interpretando saídas, mais tempo resolvendo problemas reais. ## FAQ ### O snitch substitui o ss e o netstat? Não. O snitch utiliza os mesmos dados, mas foca em conveniência e visualização. Para automação e scripts, ss/netstat continuam sendo relevantes. ### É necessário acesso root? Para visualizar todos os processos e PIDs, sim. Sem root, parte das informações pode não estar disponível. ### O snitch é adequado para servidores de produção? Sim, como ferramenta de diagnóstico. Ele não roda em segundo plano e não impacta a performance do sistema. ### O snitch suporta diferentes protocolos? O snitch exibe conexões TCP e UDP, incluindo estados listening e established. ### Onde encontrar versões atualizadas e documentação? No repositório oficial do projeto: [GitHub karol-broda/snitch](https://github.com/karol-broda/snitch) https://serverspace.com.br/support/help/teste-de-estresse-do-banco-de-dados-ms-e-eficiencia.md Aprenda a realizar testes de estresse em DBMS com sysbench e otimizar o desempenho do banco de dados sob carga pesada. ## Por que precisamos de um teste de estresse? O teste de estresse é uma atividade essencial para garantir operações e desempenho suaves, simulando carga em um sistema ou aplicação para analisar seu comportamento sob alta carga. Ao realizar esses testes antes que o software/aplicativo entre em operação ao vivo, ele ajuda a identificar pontos fracos que podem afetar a satisfação do usuário ou causar falhas devido a demandas excessivas durante períodos de pico. Assim, as ferramentas de teste de estresse desempenham um papel fundamental em cenários de teste que normalmente não seriam possíveis com cargas mais baixas, dando-nos uma vantagem ao garantir otimizações de desempenho bem-sucedidas antes do lançamento no mercado. ## Como verificar o DBMS? Um dos principais componentes de qualquer sistema é o DBMS (Sistema de Gerenciamento de Banco de Dados). Frequentemente, precisamos verificar o desempenho e dar uma avaliação adequada da performance no servidor. Muitas coisas dependem da configuração e das possibilidades de hardware do sistema, claro, sempre tendo que estimar as configurações de software e hardware do servidor. Neste artigo, vamos considerar apenas o teste do DBMS. Primeiramente, precisamos atualizar os índices e os pacotes na máquina: ```bash apt update && apt upgrade ``` Captura de tela nº 1 — Atualização de pacotes Para o teste de estresse, vamos usar o sysbench, que é uma ferramenta multifuncional sem exigências para testes complicados, uma forma rápida de estimar transações e a velocidade do DBMS. Em seguida, fazemos o download e a instalação do pacote a partir do repositório: ```bash apt install sysbench ``` Captura de tela nº 2 — APT Vamos usar o modo OLTP para o teste, que significa Online Transaction Processing (Processamento de Transações Online) e, no processo, representa o processamento simultâneo de dados de múltiplos usuários. Esse sistema é adequado para transações curtas e frequentes, tanto para leitura quanto para escrita! A seguir, precisamos preparar o teste, fazendo login no DBMS com o usuário privilegiado, por exemplo, root, e criando o banco de dados: ``` SHOW DATABASES; ``` Agora, crie o banco de dados: ```sql CREATE DATABASE gg; ``` Captura de tela nº 3 — Preparação Após a criação do banco de dados, precisamos preparar os dados. Com o comando, podemos criar uma tabela e preencher as linhas com os registros necessários: ``` sysbench oltp_read_write --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 prepare ``` Captura de tela nº 4 — Preparação da tabela A opção table size indica o número de registros na tabela, e o user e password são as credenciais. db-driver define o sistema DBMS para o teste. A tabela sbtest1 foi criada. Agora podemos executar o teste com o seguinte comando: ``` sysbench oltp_read_write --threads=2 --report-interval=3 --histogram --time=50 --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 run ``` Captura de tela nº 5 — Teste Espere até que o processo seja concluído. Também, um dos parâmetros significativos nos testes de estresse é o resultado do interpretador. Você precisa comparar os dados de saída com a carga teórica no sistema. Vários parâmetros importantes nesse relatório são: consultas e transações por segundo. Nosso servidor obteve um bom resultado: Captura de tela nº 6 — Resultado Agora, se não quisermos armazenar arquivos indesejados, precisamos limpá-los com o comando: ``` sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 cleanup ``` Captura de tela nº 7 — Limpeza Todos os dados salvos foram descartados e a memória foi limpa! Em resumo, o conteúdo fornecido descreve um processo passo a passo para testar o estresse de um DBMS usando o sysbench, cobrindo preparação, execução, interpretação dos resultados e limpeza. https://serverspace.com.br/support/help/como-criar-atualizar-e-excluir-documentos-no-mongodb.md Aprenda a criar, atualizar e excluir documentos no MongoDB com este guia completo. Descubra como utilizar Mongo Shell para gerenciar dados de maneira eficaz e eficiente em MongoDB. O universo do MongoDB vai muito além do processo inicial de instalação: ele inclui um conjunto de operações essenciais para uma administração eficiente do banco de dados. Neste guia completo, vamos explorar em detalhes três aspectos fundamentais do uso do MongoDB: a criação, a atualização e a exclusão de documentos. A arquitetura NoSQL orientada a documentos do MongoDB oferece flexibilidade e escalabilidade, reforçando a importância de dominar essas operações básicas para manipular dados de forma simples e eficiente. ## Criar documentos no MongoDB Primeiro, precisamos nos conectar ao servidor MongoDB. Para esta tarefa, vamos usar o Mongo Shell (mongosh) em um servidor local (localhost): ``` mongosh ``` Screenshot №1 — MongoSH Pronto, entramos! Agora, altere para um banco de dados existente ou crie um novo com o comando: ``` use hh ``` Screenshot №2 — Criar DB Agora passamos a executar comandos no banco de dados hh. Mas nenhum banco existe "de verdade" sem uma collection (coleção) — que é onde os documentos serão armazenados. Vamos criar uma coleção com o comando abaixo: ``` db.createCollection('FS') ``` Screenshot №3 — Criar Collection Após essa etapa de preparação, crie o documento necessário com o comando: ``` db.FS.insertOne({ id: "value1", name: "value2", surname: "value3" }) ``` Screenshot №4 — Criar um documento Se quisermos criar vários documentos em uma única operação, devemos usar outro método na coleção: ``` db.FS.insertMany([ { id: "22", name: "Jhon" }, { hobby: "dance" } ]) ``` Screenshot №5 — Criar vários documentos no MongoDB Como você pode notar, usamos { } para definir o "corpo" do documento e [ ] para indicar uma lista (conjunto) de documentos. Em seguida, precisamos confirmar que os registros foram criados, usando o método da coleção: ``` db.FS.find() ``` Screenshot №6 — Verificar documentos criados Na imagem, podemos ver a lista de documentos criados anteriormente. ## Atualizar documentos no MongoDB Para atualizar, vamos usar o seguinte algoritmo: primeiro definimos o filtro (qual documento será alvo) e depois aplicamos a alteração (o que será atualizado): ```css db.FS.updateOne( { id: "valuel" }, { $set: { id: "newvalue" } } ); ``` Screenshot №7 — Atualizar valor Ao final da operação, veremos um resumo com informações como matched count, modified count, etc. ## Excluir documentos no MongoDB Para excluir, usaremos o comando abaixo: ``` db.FS.deleteOne({ id: "newvalue" }) ``` Screenshot №8 — Excluir documento Para confirmar que o comando foi executado com sucesso, rode novamente o find: ``` db.FS.find() ``` Na imagem, não veremos mais o documento excluído — isso significa que a remoção foi concluída. Em resumo, este guia funciona como um mapa para o conjunto de operações do MongoDB, ajudando você a lidar com criação, atualização e exclusão de documentos com mais segurança e precisão. Conforme você aprofunda o uso do MongoDB, essas habilidades básicas se tornam indispensáveis para gerenciar dados com agilidade e eficiência. https://serverspace.com.br/support/help/servidor-de-terminal-rdp-e-como-usa-lo.md Aprenda o que é um Servidor de Terminal RDP, como configurá-lo e usar acesso remoto. Guia completo com instruções passo a passo para implementar Remote Desktop Services (RDS) em sua empresa. ## Por que usamos acesso remoto? O acesso remoto se tornou uma necessidade nos últimos anos, porque há um número crescente de razões pelas quais as pessoas podem precisar acessar seu computador de trabalho de qualquer local e em qualquer dispositivo. Isso inclui a necessidade de completar trabalhos fora do horário de expediente ou quando estiver viajando; querer continuar trabalhando caso os servidores caiam em sua localização; querer trabalhar com segurança e sem ser comprometido; ou simplesmente ter preferência por usar diferentes dispositivos como smartphones, tablets e laptops para completar suas tarefas do dia a dia. Usar acesso remoto permite aos funcionários maior liberdade de movimento quando se trata de onde eles podem trabalhar (o que por sua vez aumenta a produtividade geral) e também lhes dá a capacidade não apenas de continuar trabalhando se as conexões do servidor forem interrompidas, mas também ajuda a proteger contra uma série de possíveis problemas de segurança que podem surgir como resultado. ## Servidor de Terminal e configuração Algumas empresas não têm recursos, poder e especialistas qualificados suficientes para fornecer a cada trabalhador seu local de trabalho. PC, monitor, hardware, software e nível necessário de segurança nas várias camadas de rede e sistema operacional. O que podemos fazer neste caso? Existe uma tecnologia que permite aos usuários obter acesso a um servidor poderoso que separa o ambiente entre diferentes usuários. **Esse é o Servidor de Terminal!** O conceito principal inclui a ideia de que cada trabalhador tenha um thin client ou, em outras palavras, um PC de baixa potência, que se conecta ao servidor principal onde todas as operações são executadas. O thin client, por sua vez, é um sistema para receber dados e exibi-los na tela. Usar esse modelo diminui a necessidade de orçamento para o funcionamento seguro e eficaz de todo o sistema. Captura de tela №1 — Thin client Essa tecnologia é bastante similar à Infraestrutura de Desktop Virtual (VDI), mas tem diferenças significativas: no caso do Servidor de Terminal, o acesso separado é executado pelo mecanismo padrão de Controle de Acesso, mas no caso do VDI temos uma máquina virtual isolada em um host. Podemos falar muito sobre as diferenças dessas tecnologias, mas nesta instrução vamos focar na primeira. Vamos considerar como preparar um servidor padrão para trabalhar com clientes, configurar seu próprio Servidor de Terminal! Primeiramente, precisamos tomar uma decisão sobre o tipo de gerenciamento do nosso servidor. Primeira maneira, construímos uma LAN com Servidor de Terminal e cliente local, neste caso configuramos todas as configurações localmente. Na segunda maneira, podemos conectar o Servidor de Terminal a um Controlador de Domínio e criar GPO para eles. Nesta instrução vamos considerar a configuração local! Vá para a máquina com instalação nova com partição de disco preparada na parte do sistema, disco para aplicação e serviços. Também, opcionalmente, já tenha configurado RAID, o que permite melhorar a eficiência e a tolerância a falhas do sistema. Procure na barra **Gerenciador de Servidor**, clique nele. Olhe no canto direito e procure na aba **Gerenciar**, **Adicionar Função**: Captura de tela №2 — Gerenciar Servidor Procure por RDS ou Serviços de Área de Trabalho Remota, clique nele com o botão esquerdo e vá para os Serviços de Função: Captura de tela №3 — Adicionar Função Nos Serviços de Função escolha Licenciamento RD e Sessão RD, à esquerda de cada opção você pode ver uma breve descrição sobre os serviços e suas funcionalidades: Captura de tela №4 — Adicionar Serviços Instale a configuração selecionada e aguarde até o fim do processo de instalação: Captura de tela №5 — Instalação No próximo estágio precisamos ativar o servidor com o assistente, para isso você pode ir à página principal e olhar no menu à esquerda. Procure por Todos os Servidores, onde você precisa clicar com o botão esquerdo no servidor e escolher Serviços de Licença - Gerenciador de Licenciamento RD: Captura de tela №6 — Escolher serviços Aguarde até a janela carregar e escolha o certificado necessário, clique nele e escolha a opção Ativar Servidor: Captura de tela №7 — Escolher servidor para ativar Preencha todos os campos com as credenciais apropriadas: Captura de tela №8 — Inserir credenciais Clique no botão próximo e podemos ver nossa Licença: Captura de tela №9 — Licença No próximo estágio do Assistente, insira sua chave de licença para este tipo de uso do sistema e conecte-se ao servidor através da aplicação cliente RDP! A implementação dos Serviços de Área de Trabalho Remota (RDS) e a utilização da tecnologia de Servidor de Terminal oferecem às organizações uma solução poderosa para atender às necessidades em evolução de acesso remoto e mobilidade da força de trabalho. Como descrito neste guia, a demanda por acesso remoto cresceu significativamente, impulsionada pelo desejo de flexibilidade nos arranjos de trabalho e pela necessidade de garantir produtividade contínua diante de possíveis interrupções. https://serverspace.com.br/support/help/como-redefinir-senha-no-linux.md Aprenda como redefinir senha no Linux usando GRUB bootloader. Guia passo a passo para recuperar acesso ao servidor Linux quando esquecer credenciais. Tutorial completo e seguro. A razão principal para alterar a senha de um usuário é prevenir acesso não autorizado por agentes maliciosos. Cibercriminosos frequentemente tentam quebrar uma chave de login através de ataques de força bruta ou através de vazamentos de dados de outros sistemas, o que poderia lhes dar uma oportunidade de adivinhar sua senha corretamente. Portanto, rotações frequentes de senha podem ajudar a proteger suas informações pessoais ou as de sua organização. Mas e se você esquecer as credenciais do seu servidor Linux? E protocolos alternativos de autenticação como TACACS+ ou RADIUS não foram configurados. Nesta instrução, consideramos uma forma de alterá-las. ### Método para quebrar Esta abordagem é comumente usada devido a recursos ou vulnerabilidades de várias formas de iniciar o kernel via bootloader GRUB, mas antes precisamos explicar como funciona o sistema de autenticação! Na máquina, as credenciais são armazenadas na forma de hash com salt, que são sequências aleatórias de valores que tornam a senha mais complicada e forte contra vários ataques. Quando o usuário tenta se conectar, o Linux compara o hash da senha inserida com as credenciais armazenadas; se elas corresponderem, então o usuário pode obter acesso, caso contrário, a entrada é negada, o que é controlado pelo módulo do kernel. Além disso, nos sistemas modernos existe o PAM, módulo que integra várias formas de autenticação e possui suas próprias características. Vamos nos concentrar no modelo básico de verificação de acesso. Para contornar os requisitos do sistema, precisamos desabilitar ou substituir o módulo do kernel, mas como fazer isso? Vamos voltar ao texto acima sobre o bootloader **GRUB**. No momento da inicialização, podemos escolher o tipo de boot, como na tela abaixo: Captura de tela №1 — Grub Pressione o botão **E** para editar a configuração de inicialização; exatamente nesse local indicamos a forma de iniciar. Role para baixo e adicione esta linha à string que começa com a palavra linux: ``` init=/bin/bash ``` Se o disco estiver criptografado, adicione: ``` plymouth.enable=0 ``` Além disso, se nessa string houver **ro**, mude para **rw**: Captura de tela №2 — Editar Pronto! Pressione **Ctrl + X** ou **F10** para salvar as alterações e aguarde o sistema carregar. Após tudo verificar, você verá uma janela de terminal com bash. Para alterar a senha, use o comando abaixo: ``` passwd root ``` Captura de tela №3 — Primeira forma Reinicie seu sistema e as mudanças que fizemos na configuração serão redefinidas, mas a senha que você definiu permanecerá! ### Conclusão Em conclusão, a necessidade imperativa de alterar a senha de um usuário surge da ameaça constante de acesso não autorizado por agentes maliciosos no cenário digital. Rotações frequentes de senha servem como uma medida proativa para mitigar o risco de cibercriminosos explorarem vulnerabilidades, seja através de ataques de força bruta ou dados comprometidos de violações externas. Esta prática é crucial para salvaguardar informações pessoais e a segurança organizacional. https://serverspace.com.br/about/blog/o-que-e-vpn.md Descubra o que é VPN, compare protocolos (OpenVPN, WireGuard, IKEv2), tipos de serviços e aprenda a configurar sua VPN própria. Guia completo com tabela comparativa. Com o avanço das ameaças digitais, proteger seus dados online tornou-se uma prioridade. Com o aumento dos problemas relacionados à privacidade de dados e aos ataques cibernéticos, o termo VPN tornou-se amplamente conhecido no setor de tecnologia, sendo uma das soluções mais populares para proteger a privacidade na internet. Neste artigo, vamos explorar detalhadamente o que é VPN, como essa tecnologia funciona e por que ela se tornou uma ferramenta indispensável para os usuários da internet. ## VPN: O que é de forma simples? VPN (Virtual Private Network) é uma rede segura e privada que permite aos usuários navegarem pela internet sem preocupações com privacidade, roubo de dados ou censura. Em termos simples, uma VPN é como um escudo de proteção que garante uma conexão segura entre seu dispositivo e a internet. Isso significa que ninguém, exceto você e o servidor VPN, pode acessar ou decifrar as informações que você envia ou recebe online. Com uma VPN, é possível proteger seus dados contra roubo ou vazamento, garantir anonimato na rede e obter acesso seguro a recursos internos de organizações. ## Para que serve uma VPN? Uma pergunta frequente na internet é: para que serve uma VPN? A VPN (Virtual Private Network) pode ser usada para diversas finalidades relacionadas à segurança e à proteção na internet. Veja o que uma VPN pode fazer: - **Protege dados pessoais.** A VPN ajuda a proteger informações pessoais, como senhas, dados bancários e mensagens privadas, contra o acesso de terceiros, incluindo hackers e cibercriminosos. Ela oculta seu endereço IP e criptografa todo o tráfego que você transmite ou recebe, tornando impossível rastrear suas atividades online ou expor suas informações pessoais. - **Defende contra malwares.** A VPN pode proteger você contra softwares maliciosos, como spywares e vírus. - **Garante segurança nas redes públicas.** As redes Wi-Fi públicas são vulneráveis a ataques cibernéticos e podem ser usadas por criminosos para acessar seus dados. Com a VPN, sua atividade online fica protegida, e seus dados permanecem seguros mesmo em redes abertas. - **Facilita o trabalho remoto.** Se você trabalha remotamente, uma VPN pode ajudar a proteger dados confidenciais e garantir uma conexão segura ao servidor da sua empresa. - **Melhora a velocidade da conexão.** A VPN pode melhorar a velocidade da conexão, especialmente ao usar redes Wi-Fi públicas ou ao se conectar a servidores em outros países. - **Garante anonimato.** A VPN permite que você navegue anonimamente, ocultando seu endereço IP e localização. Apesar disso, é importante lembrar que o uso de uma VPN não garante proteção e privacidade completas. É essencial escolher provedores de VPN confiáveis e seguir boas práticas de segurança ao usar a internet. Além disso, o uso de uma VPN pode reduzir a velocidade da conexão e, em alguns casos, certos sites ou serviços podem bloquear o acesso aos seus conteúdos. ## O que é um serviço de VPN? Um serviço de VPN é uma solução que permite ao usuário utilizar a tecnologia de VPN para proteger suas atividades online. Esses serviços oferecem segurança e anonimato na internet, ocultam sua localização e permitem contornar restrições geográficas. No entanto, é importante lembrar que o uso de um serviço de VPN nem sempre é legal em alguns países, e alguns provedores podem armazenar registros de sua atividade. Existem vários tipos de serviços de VPN, cada um com características específicas: - **Serviços de VPN pagos:** São os mais comuns e oferecem acesso a redes criptografadas mediante uma assinatura mensal ou anual. Esses serviços geralmente disponibilizam uma ampla gama de servidores em diferentes países, alta velocidade de conexão e proteção contra vazamentos de DNS. - **Serviços de VPN gratuitos:** Embora sejam gratuitos, podem apresentar limitações em funcionalidade ou velocidade de conexão. Alguns serviços gratuitos podem registrar suas atividades e usar essas informações para fins publicitários, por isso é importante ser cauteloso ao utilizá-los. - **Serviços de VPN corporativos:** Soluções VPN projetadas para empresas protegerem suas redes internas e dados. Geralmente, esses serviços utilizam servidores próprios da empresa e são acessíveis apenas para seus funcionários. - **Servidores VPN próprios:** Você pode configurar e gerenciar seu próprio servidor VPN utilizando softwares específicos. Essa abordagem é ideal para quem busca maior controle e segurança, sem a necessidade de pagar mensalidades. - **Serviços de VPN para navegadores:** São VPNs integrados diretamente em navegadores, destinados a proteger os usuários enquanto navegam na internet. Esses serviços são geralmente gratuitos e úteis para quem não deseja instalar softwares adicionais. ## Como garantir uma conexão segura usando um servidor VPN? O VPN (Rede Privada Virtual) funciona criando uma conexão criptografada e segura entre o seu dispositivo e um servidor VPN localizado em outra parte do mundo. Essa conexão ocorre via internet, protegendo os dados que você transmite e recebe. Ao se conectar a um VPN, todas as informações trafegam pelo servidor VPN, onde são protegidas contra acessos não autorizados. A criptografia é realizada por meio de protocolos como OpenVPN, IKEv2 ou L2TP/IPsec, dependendo da tecnologia empregada. **Protocolos de criptografia VPN: características e aplicação:** | Protocolo | Nível de segurança | Velocidade | Compatibilidade | Recomendado para | | --- | --- | --- | --- | --- | | OpenVPN | Muito alto | Média | Todas as plataformas | Máxima segurança | | WireGuard | Alto | Muito alta | Maioria das plataformas | Equilíbrio entre velocidade e proteção | | IKEv2/IPsec | Alto | Alta | Excelente para mobile | Dispositivos móveis | | L2TP/IPsec | Médio | Média | Todas as plataformas | Proteção básica | | PPTP | Baixo | Muito alta | Sistemas legados | Não recomendado | Para usar um VPN, você precisa instalar um cliente VPN no seu dispositivo, escolher o servidor ao qual deseja se conectar e, se necessário, inserir login e senha. Assim, você garante uma navegação segura e privada. ## VPN com Serverspace: Flexibilidade e Conveniência A Serverspace oferece duas opções práticas para criar sua [VPN](https://serverspace.com.br/services/cloud-vpn.md), atendendo a diversas necessidades: - **VPN Pré-configurado:** Essa solução permite implantar rapidamente um servidor VPN pronto para uso com softwares como StrongSwan ou SoftEther VPN. Todas as configurações são realizadas automaticamente, garantindo acesso imediato a uma conexão segura. Ideal para quem valoriza simplicidade e rapidez. - **VPN com VPS Personalizado:** Se você prefere mais controle, é possível criar seu próprio servidor VPN em um VPS. Instale softwares como WireGuard ou OpenVPN e personalize o servidor conforme suas necessidades, garantindo total liberdade e controle sobre sua rede. Com a Serverspace, você escolhe a solução que mais se adapta ao seu perfil e cria conexões seguras de maneira prática e eficiente. Ambas as soluções foram desenvolvidas pensando em simplicidade, segurança e escalabilidade – ideais tanto para usuários iniciantes quanto para empresas que precisam de conexões protegidas em qualquer lugar do mundo. Nesta análise, exploramos o conceito de VPN, suas vantagens para os usuários e como configurar um servidor VPN. A VPN é uma ferramenta essencial para garantir segurança e privacidade. Com a infraestrutura moderna e os servidores de alta performance da Serverspace, você tem liberdade total para criar sua rede privada com poucos cliques, mantendo seus dados sempre protegidos. ## FAQ - **A VPN deixa minha internet mais lenta?** Sim, normalmente há uma pequena redução na velocidade, pois seus dados precisam percorrer um caminho adicional através do servidor VPN e passar pelo processo de criptografia. A queda de velocidade depende de vários fatores: distância até o servidor VPN, qualidade do provedor e sua velocidade original de internet. Servidores VPN geograficamente próximos e provedores premium geralmente causam perdas mínimas de 10-20%, enquanto serviços gratuitos podem reduzir a velocidade em até 50% ou mais. - **Posso usar VPN no meu smartphone e em todos os dispositivos ao mesmo tempo?** Sim, a maioria dos serviços VPN modernos oferece aplicativos para diferentes plataformas (Windows, macOS, Android, iOS, Linux) e permite conexões simultâneas em múltiplos dispositivos. O número de dispositivos permitidos varia conforme o provedor – geralmente entre 5 a 10 dispositivos simultâneos em um único plano. Se você possui um servidor VPN próprio, não há limitação técnica de dispositivos, apenas as limitações de capacidade do seu servidor. - **A VPN protege contra todos os tipos de ataques cibernéticos?** Não. A VPN é excelente para criptografar seu tráfego e ocultar seu IP, mas não substitui outras medidas de segurança. Ela não protege contra phishing (e-mails ou sites falsos), malware já instalado no seu dispositivo, ou ataques que exploram vulnerabilidades do seu navegador ou sistema operacional. Para proteção completa, combine a VPN com antivírus atualizado, firewall, autenticação de dois fatores e práticas seguras de navegação. - **É legal usar VPN no Brasil e em outros países?** No Brasil, o uso de VPN é completamente legal e é uma ferramenta legítima para proteção de privacidade. No entanto, realizar atividades ilegais através de uma VPN continua sendo crime. Em alguns países como China, Rússia, Irã e Emirados Árabes Unidos, o uso de VPN é restrito ou permitido apenas com serviços aprovados pelo governo. Antes de viajar para outro país, verifique a legislação local sobre o uso de VPN para evitar problemas legais. https://serverspace.com.br/about/blog/ssl-gratuito-lets-encrypt-como-emitir-e-configurar-a-renovacao-automatica.md Aprenda a emitir um certificado SSL gratuito com Let’s Encrypt e configurar a renovação automática. Guia claro com 3 cenários (painel, VPS e opção gerenciada) e soluções rápidas. Um certificado SSL é o que ativa o HTTPS e dá ao navegador o "sinal verde": a conexão é criptografada, e o site passa a ser percebido como normal e seguro. Para empresas, isso não é uma "checagem de segurança" abstrata, e sim higiene básica: as pessoas deixam solicitações e concluem pagamentos com mais confiança, os navegadores exibem menos avisos assustadores e os mecanismos de busca não tratam o site como algo suspeito. O Let's Encrypt é a forma mais popular de obter SSL gratuitamente. É uma autoridade certificadora que emite certificados de maneira automática: você comprova que é o proprietário do domínio e o sistema gera o certificado sem trocas manuais de e-mails ou documentos. A principal vantagem é a renovação automática. O certificado do Let's Encrypt tem validade limitada, mas, se a renovação estiver configurada, tudo funciona "sozinho": o site continua abrindo em HTTPS, sem erros inesperados nem "incêndios" de última hora no pior momento possível. Neste artigo, vamos explicar de forma clara como emitir um certificado Let's Encrypt e configurar a renovação automática. Também vamos mostrar três cenários mais comuns e trazer uma lista curta de problemas típicos - com formas rápidas de resolver cada um. ## Termos e definições Para não tropeçar nos termos, aqui vai uma "cola" rápida - sem excesso de tecnicidade: - **Domínio** - é o endereço do site, por exemplo _example.com_. O certificado é emitido para um domínio específico, não "para a internet inteira". - **www** - é uma variação comum do endereço do mesmo site: _www.example.com_. Tecnicamente, é um nome separado; se o seu site abre com e sem _www_, o ideal é cobrir os dois no certificado. - **Subdomínio** - é um "endereço adicional" dentro do seu domínio, por exemplo _api.example.com_ ou _blog.example.com_. Cada subdomínio pode precisar de um certificado (ou de um único certificado que inclua vários nomes). - **Certificado SSL** - é o(s) arquivo(s) que comprovam que o site é realmente "aquele" e habilitam a criptografia da conexão. O usuário não vê isso diretamente, mas vê o resultado: HTTPS e o ícone de cadeado. - **Let's Encrypt emite certificados do tipo DV (Domain Validation)** - ou seja, valida a posse do domínio, e não documentos da empresa. Para a maioria dos sites, isso é mais do que suficiente. - **Renovação automática** - o certificado não é emitido "para sempre". Ele tem validade limitada e precisa ser renovado. A boa notícia é que o Let's Encrypt é justamente valorizado por permitir configurar a renovação automaticamente, sem rotina manual. - **DNS** - a "lista telefônica" da internet. Simplificando: os registros DNS dizem para qual servidor o seu domínio deve apontar. Se o domínio apontar para o lugar errado, o certificado pode não ser emitido. Com esse básico, fica mais fácil seguir: primeiro vamos ajudar você a escolher o método de configuração e, depois, mostrar um passo a passo em [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), onde a renovação automática funciona de forma confiável e previsível. ## Escolha do método de instalação: 3 cenários populares Com o Let's Encrypt, não existe um único caminho "correto". A escolha depende de onde o seu site está hospedado e do quanto você precisa de controle sobre o servidor. Se o objetivo é ativar o HTTPS rapidamente e não ter que pensar nisso depois, na prática a maioria das pessoas escolhe um dos três cenários abaixo. A lógica mais simples é: - Você tem um painel de hospedagem → ativa o certificado em poucos cliques; - Precisa de controle e flexibilidade → faz via VPS e configura a renovação automática; - Quer o mínimo de rotina, mas o projeto está crescendo → usa automação/ferramentas do provedor ou um painel para VPS. | Cenário | Para quem é indicado | O que você precisa ter | Dificuldade | Renovação automática | Erros mais comuns | | --- | --- | --- | --- | --- | --- | | Painel de hospedagem (shared / cPanel, Plesk, ISPmanager) | Donos de negócios, sites pequenos, landing pages | Acesso ao painel + domínio vinculado à hospedagem | Baixa | Geralmente ativada automaticamente | Domínio não vinculado, DNS apontando para o lugar errado, site não abre em HTTP | | VPS (configuração manual, exemplo abaixo) | Startups, desenvolvedores, projetos que exigem controle | VPS + domínio apontando para o servidor + acesso via SSH | Média | Configurada via timer/cron, bem confiável | Porta 80/443 fechada, domínio/DNS incorreto, conflito com a configuração do servidor web | | Opção gerenciada / automação do provedor | Quem quer "menos rotina", mas mais flexibilidade que shared | VPS/nuvem + ferramentas/painel prontos | Baixa–média | Muitas vezes "de fábrica" | Limitações de customização, regras pouco claras para subdomínios/wildcard | A seguir, vamos detalhar o caminho mais universal - VPS - porque ele funciona tanto para sites simples quanto para projetos em crescimento: você controla as configurações, entende o que está acontecendo e consegue montar uma renovação automática confiável. Depois, também vamos mostrar a opção "em dois cliques" via painel de hospedagem. ## Passo a passo em uma VPS (Ubuntu + Nginx): emissão + renovação automática Essa opção é ótima porque você configura o HTTPS uma vez e, depois, o certificado passa a ser renovado automaticamente. Vamos mostrar o processo usando [Ubuntu](https://serverspace.com.br/services/vps-server/ubuntu.md) e Nginx. Se você usa outra distribuição ou Apache, a lógica costuma ser praticamente a mesma. Antes de começar: checklist rápido - **O domínio deve apontar para o seu servidor.** Em termos simples: quando alguém digita _example.com_, a internet precisa "levar" essa pessoa para o IP da sua VPS. Isso é configurado por meio dos registros DNS no provedor/registrador do domínio. - **O site precisa abrir em HTTP (geralmente na porta 80).** O Let's Encrypt costuma validar o domínio assim: "esse servidor realmente controla o site?". Se o servidor não estiver acessível, o certificado não será emitido. - **As portas 80 e 443 precisam estar acessíveis externamente.** A 80 é usada para a validação inicial e para o redirecionamento. A 443 é usada para o HTTPS. Se houver firewall na VPS, essas portas devem estar liberadas. Instalando o Nginx e o Certbot Conecte-se ao servidor via SSH e atualize os pacotes: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y nginx ``` Agora instale o Certbot e a integração para Nginx (assim o Certbot pode ajustar a configuração automaticamente): ```bash sudo apt install -y certbot python3-certbot-nginx ``` **O que o Certbot faz:** é uma ferramenta que se comunica com o Let's Encrypt pelo protocolo ACME, confirma a posse do domínio e instala o certificado no servidor. Emitindo o certificado Let's Encrypt Execute o comando e informe o domínio. Se você usa _example.com_ e _www.example.com_, é melhor adicionar os dois: ``` sudo certbot --nginx -d example.com -d www.example.com ``` Depois disso, o Certbot fará algumas perguntas: - E-mail (para avisos sobre problemas de renovação); - Aceite dos termos; - Se você quer ativar o redirecionamento para HTTPS. É recomendável ativar o redirecionamento, para que todo o tráfego passe pelo protocolo seguro. Após a emissão bem-sucedida, você verá uma mensagem informando que o certificado foi instalado e que a configuração do Nginx foi atualizada. Renovação automática: como funciona e como testar Os certificados do Let's Encrypt têm validade limitada, então o ideal é não depender de "lembrar uma vez por ano", e sim configurar a renovação automática. No Ubuntu, o Certbot normalmente agenda a renovação via systemd timer (um agendador nativo do Linux). Para conferir: ```bash systemctl list-timers | grep certbot ``` Se o timer aparecer, a renovação automática já está programada. ``` sudo certbot renew --dry-run ``` Se o comando finalizar com sucesso, a renovação automática vai funcionar. Mini best practices - Guarde o e-mail informado no Certbot, para não perder alertas de problemas. - Não feche a porta 80 "para sempre" se estiver usando a validação padrão via HTTP - caso contrário, a renovação pode falhar. - Se você mudar a configuração do Nginx ou migrar o site, depois das alterações rode novamente para garantir que a renovação não foi afetada: ``` certbot renew --dry-run ``` ## Problemas comuns e soluções rápidas Problema 1: o certificado não é emitido (erro de validação do domínio) A causa mais comum é o domínio apontar para o lugar errado ou o servidor estar inacessível. - Verifique se o domínio aponta para o IP do seu servidor/hospedagem (DNS). - Verifique se o site está acessível em _http://seu-dominio_ (sim, em HTTP). - Verifique se as portas 80 e 443 estão abertas (na VPS, isso fica no firewall/segurança). Problema 2: depois de ativar o HTTPS o site "quebrou" ou não abre Na maioria das vezes, isso acontece por causa de redirecionamentos ou da configuração do servidor web. - Se você configurou via Certbot com Nginx, confira a configuração e recarregue o Nginx: ```bash sudo nginx -t sudo systemctl reload nginx ``` - Se o redirecionamento foi configurado manualmente e virou um "loop", desative o redirect temporariamente e depois reative com a configuração correta. Problema 3: a renovação automática não funciona Em VPS, normalmente a causa é o agendamento (timer) ou a validação do domínio. - Rode o teste: ``` sudo certbot renew --dry-run ``` - Se você fechou a porta 80 ou mudou domínio/configuração, restaure a disponibilidade para a validação (ou configure outro método de validação). ## Serverspace: como implantar rapidamente uma VPS com HTTPS Se você escolher o cenário com [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), a ideia é simples: você ganha controle total do servidor e consegue configurar o HTTPS para funcionar de forma estável e automática - sem "renovações manuais" e sem surpresas com certificado expirado. Na Serverspace, é possível criar uma VPS em poucos minutos e, em seguida, configurar o Let's Encrypt seguindo o passo a passo deste artigo: instalar o [Nginx](https://serverspace.com.br/services/1-click-app-marketplace/nginx.md), emitir o certificado com o Certbot e ativar a renovação automática. Esse caminho é prático para startups e empresas porque você pode começar com uma configuração mínima e escalar conforme o projeto cresce. O que a Serverspace oferece como plataforma: - **Cobrança por hora (pay-as-you-go)** - ideal para testar e escalar sem pagar por "um mês a mais". - **Tráfego gratuito e ilimitado** - você paga pelos recursos do servidor, não por cada gigabyte transferido. - **Provisionamento rápido via um painel de controle simples** - sem processos longos e manuais. - **Escalabilidade conforme a demanda** - dá para aumentar recursos quando a carga do projeto crescer. - **Suporte 24/7** - útil se você está configurando infraestrutura pela primeira vez e quer resolver dúvidas sem travar. ## FAQ - **Preciso incluir _www_ no certificado?** Se o site abre tanto em _example.com_ quanto em _www.example.com_, o ideal é incluir os dois nomes ao emitir o certificado, para não ficar uma versão "sem proteção". - **O Let's Encrypt serve para e-commerce e pagamentos?** Sim. O Let's Encrypt é um SSL válido, que habilita HTTPS e criptografia. Para a maioria das lojas, isso é suficiente. Certificados "estendidos" se diferenciam principalmente pelo nível de verificação da empresa, mas o HTTPS funciona do mesmo jeito. - **O que acontece se o certificado expirar?** Os navegadores passam a mostrar alertas de conexão insegura e parte dos usuários simplesmente vai embora. Por isso, renovação automática não é "opcional" - é parte essencial da configuração. - **Tenho vários subdomínios - o que fazer?** Você pode emitir um certificado para vários nomes (por exemplo, _example.com_, _www.example.com_, _api.example.com_). Se houver muitos subdomínios, às vezes faz sentido usar um certificado wildcard, mas esse é um cenário à parte e nem todo mundo precisa. https://serverspace.com.br/about/news/serverspace-2025-retrospectiva-do-ano.md Resumimos 2025 na Serverspace: 15 novos LLM em IA na nuvem, novos templates de SO, CDN com WAF, pagamento via Pix e planos para 2026. 2025 ficou marcado por tendências barulhentas: Labubu, celulares laranja, infinitas variações do "chocolate de Dubai" e, claro, animais feitos por IA em vídeos curtos. No meio de tanto ruído, é fácil perder de vista mudanças que realmente fazem diferença. Então o que, de fato, tornou o seu trabalho com a Serverspace melhor neste ano? Vamos resumir os resultados que importam. ## Não é só GPT: 15 novos LLM disponíveis A revolução da IA continuou acelerando em 2025 - e a Serverspace acompanhou esse ritmo. Evoluímos ativamente o serviço de [IA na nuvem](https://serverspace.com.br/services/api-gpt-do-serverspace.md) e aprimoramos o trabalho com grandes modelos de linguagem. O foco principal foi ampliar o número de LLM disponíveis, para que você pudesse escolher a opção certa para cada tarefa e orçamento. Ao longo do ano, foram adicionados ao IA na nuvem: - Modelos OpenAI: GPT-5.1, GPT-5.1 Codex e GPT-5.2; - Modelos Anthropic: Claude Haiku, Sonnet e Opus nas versões 3.5, 3.7 e 4.5; - Alternativas e open-source: Phi-4, Gemini 3 Pro, Qwen3-Next 80B-A3B Instruct e gpt-oss-20b. Todos os modelos estão disponíveis por meio de uma API única e podem ser usados dentro do mesmo projeto. O que isso permite agora? - Escolher modelos para cenários específicos de uso; - Controlar a relação entre velocidade, qualidade das respostas e custo; - Usar diferentes soluções sem mudar a infraestrutura atual. ## Sistema operacional nunca é demais O que pode ser melhor do que uma versão atualizada de um sistema operacional? Só quando você tem várias opções de uma vez. Em 2025, adicionamos à [plataforma](https://my.serverspace.com.br/) seis novos templates de SO para servidores em nuvem: - AlmaLinux 9.5 - fork estável do CentOS para ambientes de produção, com kernel atualizado e segurança reforçada. - Rocky Linux 9.5 - distribuição compatível com RHEL para uso de longo prazo e projetos corporativos. - Ubuntu 24.04.2 - LTS para desenvolvimento, DevOps e projetos de IA, com suporte atualizado a containers. - Oracle Enterprise Linux 9.5 - sistema corporativo com suporte de longo prazo e otimizações para aplicações de negócio. - FreeBSD 14.2 - para workloads de rede e storage, com melhorias em ZFS e no stack de rede. - Kali Linux 2024.4 - distribuição especializada para testes de segurança e ferramentas de pentest. Isso significa que você pode escolher o SO ideal para cada tarefa e iniciar o servidor já com uma versão atual - sem instalação manual. ## CDN aprimorado: máxima velocidade + proteção Outro avanço importante foi o lançamento do [Web Application Firewall (WAF)](https://serverspace.com.br/services/waf.md) - uma camada de proteção integrada para aplicações web que complementa o CDN. Agora, aceleração de conteúdo e filtragem de tráfego malicioso trabalham juntas e cobrem as principais demandas de performance e segurança. O [WAF](https://serverspace.com.br/services/waf.md) bloqueia ataques comuns a aplicações web ainda na entrada, antes do nível do servidor. Isso reduz a carga na infraestrutura e ajuda a proteger sites e serviços sem configurações complexas ou softwares adicionais. Ativar o WAF leva apenas alguns minutos: basta acessar a seção CDN no painel, habilitar o WAF e pronto - o tráfego passa a ser filtrado. ## Pagamento mais simples no Brasil: Pix e Boleto Seguimos trabalhando para que usar a Serverspace seja mais fácil não só dentro do painel, mas também na hora de pagar. Em 2025, adicionamos suporte a Pix e Boleto - dois dos métodos de pagamento mais usados no Brasil. Agora você pode recarregar o saldo e pagar pelos serviços rapidamente via Pix ou usar Boleto, caso prefira pagar por cobrança. Menos fricção, mais controle e previsibilidade - para você focar nos projetos, e não no processo de pagamento. ## Como tornamos 2025 mais interessante para você No ano passado, ficamos ainda mais próximos: compartilhamos conhecimento, vivemos momentos marcantes e celebramos conquistas. Continuamos ampliando nossa base de conhecimento. Entre os materiais mais úteis, nós: - [Mostramos como instalar e configurar o proxy Squid;](https://serverspace.com.br/support/help/como-instalar-e-configurar-o-proxy-squid/) - [Preparamos um guia para executar comandos no Windows;](https://serverspace.com.br/support/help/guia-de-comandos-executar-no-windows/) - [Explicamos como recuperar senha com Hashcat.](https://serverspace.com.br/support/help/hashcat-como-usar-para-quebrar-hashes/) E também não faltou interatividade. No Dia do SysAdmin, os usuários participaram de um quiz para descobrir que tipo de administrador realmente são. Mais de 2.000 pessoas descobriram em qual grupo "bem-humorado" de sysadmins se encaixam. Spoiler: mais de 35% eram "admins de pesquisa", capazes de encontrar qualquer informação (e a gente não tinha dúvidas). Se você ainda não fez, não se preocupe - o quiz continua disponível no [link](https://serverspace.com.br/feliz-dia-do-sysadmin.md). ## E em 2026? Em 2026, não vamos desacelerar - vem muita novidade por aí: - Novo escritório e nova localização VPS no Uzbequistão - ampliamos a presença e aproximamos a infraestrutura dos usuários da região. - Novos LLM - vamos seguir expandindo o catálogo e desenvolvendo a direção de IA, para que você tenha ainda mais opções para diferentes задачas. - Novos releases de sistemas operacionais - adicionaremos versões atuais de SO para diferentes cenários e cargas. - Novos serviços - estamos preparando novos produtos e capacidades dentro da plataforma. - Mais 1-Click Apps - vamos ampliar a lista de aplicações pré-instaladas, incluindo n8n e outras ferramentas populares. - Mais promoções e interatividade - continuaremos movimentando a comunidade com ações, concursos e novos formatos. Acompanhe as novidades no changelog, na nossa newsletter e no [Instagram](https://www.instagram.com/serverspace.brasil/) e [LinkedIn](https://www.linkedin.com/company/serverspace-brasil/) - vem muita coisa boa por aí! https://serverspace.com.br/about/blog/monitoramento-na-nuvem-o-que-monitorar-para-identificar-problemas-rapidamente.md Aprenda a monitorar sua infraestrutura em nuvem, acompanhando métricas essenciais e reagindo rapidamente a problemas para otimizar o desempenho. O monitoramento na nuvem é um dos elementos mais importantes para garantir o funcionamento estável da sua infraestrutura e evitar falhas. Não importa se você está gerenciando um grande projeto ou começando agora, identificar e resolver problemas de forma oportuna ajuda a evitar grandes perdas em desempenho, tempo e recursos. A complexidade da infraestrutura e da escalabilidade exige que os sistemas de monitoramento sejam altamente planejados e eficientes. Pequenas falhas ou sobrecargas na infraestrutura em nuvem podem afetar os serviços e, eventualmente, os processos de negócios. ## O que é monitoramento na nuvem? O monitoramento na nuvem é o processo de observar o estado da infraestrutura na nuvem em tempo real, com o objetivo de identificar e resolver rapidamente problemas potenciais. Ele envolve a coleta de dados sobre vários parâmetros de operação dos servidores e aplicativos, como a carga do processador, o uso de memória RAM, o estado dos discos, as conexões de rede e outras métricas. ## Por que o monitoramento na nuvem é importante? - **Identificação oportuna de problemas:** O monitoramento permite detectar falhas ou riscos potenciais antes que eles resultem em consequências significativas, como queda no desempenho ou vazamento de dados. - **Planejamento e escalabilidade:** Acompanhar regularmente o estado do sistema ajuda a determinar exatamente quando é necessário aumentar recursos (por exemplo, adicionar memória RAM ou poder de processamento) para manter um desempenho estável, mesmo com o aumento da carga. - **Desempenho e otimização:** O monitoramento ajuda a entender quais recursos estão sendo mais intensivamente utilizados e permite a otimização, melhorando a eficiência geral da infraestrutura. - **Segurança:** O monitoramento também permite rastrear atividades suspeitas, como tentativas de acesso não autorizado ou tráfego incomum, ajudando a prevenir ataques e outras ameaças. ## Principais métricas para monitoramento da infraestrutura na nuvem O monitoramento de infraestrutura na nuvem exige o acompanhamento de várias métricas, cada uma refletindo o estado de diferentes partes do sistema. Configurar corretamente o monitoramento e analisar esses indicadores ajuda a reagir rapidamente a problemas, prevenindo suas consequências. Vamos analisar as métricas principais que devem estar no centro da sua atenção. 1. CPU (Carga do Processador) **Onde monitorar:** Painel de controle do serviço de nuvem, ferramentas especializadas de monitoramento. **O que significa:** O processador é o componente central de qualquer sistema, e sua carga é um dos indicadores mais importantes. Uma alta carga no processador pode desacelerar substancialmente a execução de tarefas, reduzir a velocidade de processamento de dados e causar falhas no funcionamento de aplicativos. **Quando se preocupar:** - A carga do processador ultrapassa 80-90% por um longo período. - A carga de pico não diminui mesmo após o término de processos intensivos. 2. RAM (Memória RAM) **Onde monitorar:** Painel de controle do serviço de nuvem, ferramentas de monitoramento. **O que significa: **A falta de memória RAM leva a um desempenho mais lento dos aplicativos e pode causar falhas, especialmente quando há alta carga no sistema. Quando a memória se esgota, o servidor começa a usar o disco para armazenar dados, o que reduz a velocidade do processo. **Quando se preocupar:** - O uso da memória ultrapassa 80-90%, especialmente quando a memória livre é inferior a 10%. - Problemas de desempenho devido à falta de memória, como atrasos e falhas no funcionamento dos aplicativos. 3. Disco (IOPS e uso do espaço em disco) **Onde monitorar:** Painel de controle do serviço de nuvem, ferramentas de monitoramento. **O que significa:** O sistema de discos pode se tornar um ponto de estrangulamento na nuvem. Uma carga alta nos discos (por exemplo, operações excessivas de leitura/gravação) pode diminuir significativamente o desempenho. Além disso, a falta de espaço em disco pode resultar em perda de dados e falhas no funcionamento. **Quando se preocupar:** - O espaço em disco está quase cheio (acima de 85-90% de ocupação). - A velocidade de leitura/gravação (IOPS) está baixa, o que leva à desaceleração do funcionamento dos servidores. 4. Rede (Tráfego de entrada e saída) **Onde monitorar:** Painel de controle do serviço de nuvem, ferramentas de monitoramento especializadas. **O que significa:** A performance da rede impacta diretamente a velocidade de upload e download de dados e a estabilidade dos aplicativos, especialmente quando se trabalha com grandes volumes de informação. Problemas de rede podem resultar em atrasos, perda de pacotes e até falhas no serviço. **Quando se preocupar:** - Picos abruptos de tráfego que excedem a capacidade da rede. - Atrasos significativos nas respostas do servidor relacionados à rede. ## Como organizar o monitoramento na nuvem corretamente? O monitoramento eficiente não só ajuda a prevenir falhas, mas também otimiza o funcionamento da infraestrutura. Vamos explorar os passos para organizar o processo correto de monitoramento para a sua infraestrutura na nuvem. 1. Escolha de ferramentas de monitoramento Para monitorar serviços em nuvem, existem diversas ferramentas que ajudam a acompanhar o estado dos servidores, aplicativos e da infraestrutura de rede. Algumas delas incluem: - **Ferramentas nativas das plataformas de nuvem:** A maioria dos provedores de nuvem, como o Serverspace, oferece painéis de monitoramento próprios que exibem todas as métricas importantes. Essa solução é conveniente, pois todas as métricas estão integradas à sua infraestrutura na nuvem. - **Prometheus & Grafana:** Essas ferramentas ajudam a coletar, armazenar e visualizar métricas de várias fontes, incluindo servidores, bancos de dados e redes. O Prometheus coleta os dados, enquanto o Grafana fornece gráficos e painéis visuais. - **Zabbix & Nagios:** Essas ferramentas são usadas para monitorar servidores, bancos de dados, redes e aplicativos na nuvem. Elas oferecem flexibilidade nas configurações e alertas. - **Datadog & New Relic:** Essas soluções baseadas na nuvem fornecem monitoramento abrangente tanto para a infraestrutura quanto para os aplicativos. Elas oferecem relatórios detalhados e integrações com serviços de nuvem. 2. Configuração de alertas e valores de limite É essencial configurar alertas para métricas críticas para identificar problemas a tempo. As configurações principais incluem: - Valores de limite para métricas-chave, como CPU, RAM, espaço em disco e tráfego. Por exemplo, configurar alertas quando o CPU exceder 80% de carga ou quando a memória livre for menor que 10%. - Plano de ações automáticas: Por exemplo, se a carga no servidor ultrapassar 90%, o sistema pode iniciar automaticamente um novo servidor ou notificar o administrador para que ele faça o dimensionamento necessário. - Alertas personalizados: Você pode configurar notificações por e-mail, SMS ou via Slack para receber informações em tempo real sobre problemas. 3. Verificação e análise regular de logs Os logs são uma parte crucial do monitoramento. Eles ajudam não só quando um erro ocorre, mas também para analisar as causas de falhas. Recomenda-se: - Verificar regularmente os logs para identificar problemas ocultos, como tentativas de acesso não autorizadas ou eventos anômalos. - Usar ferramentas de análise de logs, como ELK Stack (Elasticsearch, Logstash, Kibana) ou Splunk, para armazenamento centralizado e análise de dados. ## Quando e como reagir a problemas? Reagir rapidamente a um problema é essencial para minimizar os danos e evitar a queda do sistema. Aqui estão os passos que devem ser seguidos quando um problema é identificado: - **Verificar as métricas e logs:** Isso ajudará a entender a raiz do problema, como sobrecarga no processador, falta de memória ou falha no serviço. - **Avaliar o impacto:** Se o problema não afeta os usuários, pode-se adiar a solução. No entanto, se for crítico, a ação precisa ser imediata. - **Escalonamento de recursos:** Se houver uma alta carga no servidor, é possível escalar recursos, como adicionar processadores, aumentar a memória ou distribuir a carga entre múltiplos servidores. - **Reiniciar o servidor ou aplicativo:** Se isso não afetar outros usuários, um simples reinício pode resolver muitos problemas de serviço. ## Tabela de Monitoramento na Nuvem: | Métrica | Onde Monitorar | O que Significa | Quando Preocupar | | --- | --- | --- | --- | | CPU | Painel de Monitoramento | O processador é o elemento central de qualquer sistema, e sua carga é um dos indicadores mais importantes. | Carga acima de 80-90% por um longo período. | | RAM | Painel de Monitoramento | A falta de memória RAM pode causar lentidão nos aplicativos e falhas. | Uso de memória superior a 80-90%, especialmente se a memória livre for inferior a 10%. | | Disco | Painel de Monitoramento | Sobrecarga no disco pode causar perda de dados ou desacelerar o desempenho. | Espaço em disco quase cheio. | | Rede | Painel de Monitoramento | A performance da rede afeta diretamente a velocidade de carregamento de dados e a estabilidade dos aplicativos. | Picos de tráfego que excedem a largura de banda da rede. | ## Monitoramento na Serverspace A Serverspace oferece uma ampla gama de soluções em nuvem, incluindo [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) e outros serviços em nuvem, fornecendo uma infraestrutura de alto desempenho com capacidade de escalabilidade flexível. Vantagens de trabalhar com a Serverspace: - **Flexibilidade e escalabilidade:** É fácil escalar seus recursos conforme a carga de trabalho. Aumente a capacidade de processamento ou a capacidade de armazenamento com mínimo esforço. - **Tráfego ilimitado:** Todos os planos incluem tráfego ilimitado, o que torna o trabalho com a nuvem mais previsível e econômico. - **Alta disponibilidade e resistência a falhas:** Nossos data centers garantem a operação confiável dos serviços com interrupções mínimas. - **Suporte 24/7:** Oferecemos suporte técnico contínuo para resolver qualquer questão relacionada à infraestrutura em nuvem. O Serverspace oferece um painel de monitoramento que cobre todas as métricas críticas para avaliar o estado dos seus servidores e aplicativos: CPU, RAM, Disco, Rede. Isso permite que você acompanhe em tempo real a carga do processador, o uso de memória RAM, o IOPS do disco e o tráfego de rede. O monitoramento na nuvem não se limita apenas ao rastreamento de métricas básicas, mas também é uma ferramenta crucial para garantir a estabilidade e operação contínua da infraestrutura. Uma configuração adequada de monitoramento não só facilita a identificação e resolução de problemas de forma eficaz, mas também impacta diretamente na performance geral do sistema. É essencial monitorar métricas-chave, como a carga do processador, o uso de memória, o espaço em disco e os erros do sistema, para garantir uma resposta rápida a possíveis falhas e prevenir que problemas afetem os serviços. ## FAQ - **Como o monitoramento ajuda no escalonamento automático da infraestrutura em nuvem?** O monitoramento ajuda a monitorar a carga nos recursos, como CPU, RAM e rede. Isso permite configurar o escalonamento automático: quando a carga no servidor excede um limite específico, o sistema adiciona recursos automaticamente, como máquinas virtuais adicionais ou maior capacidade de processamento. Isso reduz o risco de sobrecarga e garante que a infraestrutura atenda às necessidades dos usuários a qualquer momento. - **Com que frequência é necessário verificar as métricas durante o monitoramento?** A frequência de verificação das métricas depende da natureza do seu projeto. Para aplicativos de alta carga ou servidores em tempo real, é recomendado configurar o monitoramento para verificações constantes. Para sistemas menos críticos, as verificações podem ser programadas a cada 10-15 minutos. Em todos os casos, é importante configurar um sistema de notificações para ser informado imediatamente sobre quaisquer problemas. - **O que fazer quando ocorre um erro recorrente em uma mesma métrica, como erros 5xx?** Se os erros 5xx persistirem, isso pode indicar problemas no sistema, como sobrecarga no servidor ou falhas em um aplicativo. É necessário revisar os logs para diagnosticar a causa, otimizar as configurações do servidor ou do aplicativo e garantir que todas as atualizações foram aplicadas. Em alguns casos, pode ser necessário otimizar a configuração do servidor web ou do banco de dados. https://serverspace.com.br/about/blog/seo-na-era-da-ia-como-o-conteudo-chega-as-respostas-das-redes-neurais-e-o-que-fazer-com-isso.md Aprenda como otimizar seu conteúdo para SEO na era da IA e como a Serverspace pode ajudar a melhorar sua estratégia digital com soluções em nuvem. O mundo moderno do SEO passou por mudanças significativas nos últimos anos, e um dos fatores mais influentes que têm transformado esse campo é a inteligência artificial. Em sistemas de busca, como o Google, as redes neurais começaram a desempenhar um papel fundamental no processamento de consultas e na formação de respostas. Isso não só altera as maneiras pelas quais os usuários buscam informações, mas também estabelece novos padrões para quem cria conteúdo. No SEO tradicional, a principal atenção estava voltada para palavras-chave, meta-tags e a qualidade do conteúdo. No entanto, na era da IA, os algoritmos dos motores de busca se tornaram muito mais inteligentes. Eles podem não só indexar páginas, mas também entender o contexto, analisar o significado das consultas e fornecer respostas baseadas em cálculos profundos. Isso cria tanto novas oportunidades quanto desafios para donos de sites, startups e desenvolvedores. Uma das tarefas mais importantes agora é entender como a IA influencia a visibilidade do conteúdo e o que é necessário fazer para que seus materiais apareçam nos resultados dos motores de busca, respondendo às consultas dos usuários. Hoje em dia, os usuários cada vez mais recebem respostas não de listas padrão de links, mas de respostas curtas geradas por redes neurais, o que torna a busca e o SEO ainda mais competitivos. Portanto, é importante entender como criar conteúdo que não seja apenas de qualidade e informativo, mas também facilmente compreensível para as redes neurais, garantindo sua presença nas respostas às consultas. ## Como as redes neurais estão mudando a busca e o processamento de informações As redes neurais permitem que os motores de busca não apenas indexem páginas, mas também compreendam o conteúdo em um nível mais profundo. Elas podem "ler" o texto, identificar as ideias principais e as relações entre diferentes partes da informação. Isso melhora significativamente a qualidade da busca, permitindo fornecer respostas estruturadas e precisas aos usuários, em vez de apenas exibir links. Por exemplo, antigamente, ao pesquisar informações sobre "como fazer backup de dados em um servidor", os usuários recebiam páginas com instruções e listas. Agora, graças à IA, o sistema de busca pode fornecer imediatamente um guia resumido ou até mesmo vídeos tutoriais, referenciando várias fontes ao mesmo tempo. Essas respostas são muito mais úteis para os usuários, pois oferecem informações precisas sem que seja necessário navegar por várias páginas. Além disso, as redes neurais são usadas para gerar respostas diretamente na página de resultados de busca, por exemplo, por meio de featured snippets (trechos destacados) ou answer boxes (caixas de resposta). Esses blocos são gerados com a ajuda da IA, que processa grandes volumes de conteúdo e destaca as respostas mais relevantes e precisas. Exemplos de uso da IA nos motores de busca: - **Geração automática de respostas**: A IA pode gerar respostas curtas e informativas diretamente nos resultados de busca, sem a necessidade de abrir as páginas. - **Processamento de consultas longas:** As redes neurais lidam melhor com consultas longas e complexas, analisando-as com base no contexto, e não apenas procurando por correspondências com palavras-chave. - **Compreensão de sinônimos e contexto:** A IA pode entender sinônimos e o contexto, o que ajuda a selecionar a informação mais precisa. Desafios e questões para os especialistas em SEO: - **Entendimento dos algoritmos da IA:** Agora, os especialistas em SEO precisam considerar não apenas os fatores tradicionais (palavras-chave, links), mas também como as redes neurais processam e apresentam o conteúdo. - **Mudança nas abordagens de otimização:** O conteúdo precisa ser estruturado e compreensível não apenas para os usuários, mas também para as redes neurais. Isso exige uma nova abordagem para a criação de texto, metadados e o uso de novos formatos. - **Competição pelas posições nas respostas da IA:** A cada dia, o número de fontes de informação que a IA pode usar para gerar respostas cresce. As empresas precisam se adaptar para garantir que seu conteúdo continue visível nessas respostas. As mudanças no processamento de informações pelos motores de busca exigem que os proprietários de sites e desenvolvedores adaptem seus conteúdos para que sejam não apenas úteis e de qualidade para os usuários, mas também eficazmente compreendidos pelas redes neurais. ## Como o conteúdo chega às respostas das redes neurais Redes neurais, como o GPT, são treinadas em grandes volumes de dados e têm a capacidade de analisar textos para extrair fatos e ideias importantes. No entanto, para que o conteúdo seja utilizado pelas redes neurais, ele deve ser bem estruturado e facilmente acessível para análise automatizada. 1. Estrutura do conteúdo As redes neurais analisam páginas e buscam informações que possam ser facilmente extraídas e adaptadas em respostas. Por isso, a estrutura do conteúdo desempenha um papel fundamental. Artigos bem estruturados, com títulos claros, subtítulos, listas e destaques de pontos chave, têm muito mais chances de ser utilizados pela IA. _Exemplo:_ Se você está escrevendo um artigo sobre como configurar um servidor para trabalhar com um banco de dados, é importante que seu conteúdo seja logicamente estruturado e dividido em seções como "Instalação do servidor", "Configuração do banco de dados" e "Teste de funcionamento". A rede neural buscará exatamente esses segmentos lógicos de informação para formar sua resposta. 2. Clareza e precisão As redes neurais utilizam algoritmos para determinar o quão preciso e completo é o conteúdo em relação a uma consulta. Quanto mais claro e preciso for o conteúdo, maiores serão as chances de ele ser escolhido pela rede neural para gerar uma resposta. Isso significa que textos excessivamente complexos, sobrecarregados de termos técnicos ou confusos têm menos chance de ser incluídos nas respostas. _Exemplo:_ Um artigo com explicações simples e diretas para iniciantes será mais atraente para as redes neurais do que um texto técnico complexo que exige explicações adicionais. A IA busca fornecer ao usuário as informações mais claras e úteis, com base em como a consulta foi formulada. 3. Relevância do conteúdo As redes neurais avaliam a relevância do conteúdo com base na consulta. É crucial que o texto seja o mais próximo possível da consulta do usuário. Isso significa que é necessário garantir que o conteúdo responda às perguntas mais atuais e pertinentes, utilizando frases e palavras-chave relevantes que reflitam o cerne da consulta. _Exemplo:_ Se um usuário busca informações sobre como integrar o Redis a um projeto, a rede neural buscará conteúdos que expliquem detalhadamente esse processo, e não apenas um overview geral sobre o Redis ou sua instalação. Isso destaca a necessidade de criar materiais específicos e de nicho que cubram temas em profundidade. 4. Formatação e elementos visuais Além do conteúdo textual, as redes neurais também consideram elementos visuais e a formatação do conteúdo. Tabelas, infográficos, esquemas e outros elementos visuais podem melhorar a percepção do conteúdo como relevante para a IA. _Exemplo:_ Se seu artigo incluir uma tabela com uma comparação detalhada de diferentes abordagens para configurar um servidor ou um guia passo a passo, isso aumentará as chances de a rede neural utilizar essa informação para gerar uma resposta. Esses elementos tornam o conteúdo mais acessível e fácil de ser analisado por IA, ajudando a organizar a informação de maneira mais eficaz. Portanto, para garantir que seu conteúdo seja eficazmente utilizado pelas redes neurais, ele deve ser bem estruturado, claro, relevante e, quando possível, complementado com elementos visuais que facilitam a análise e o entendimento por parte da IA. ## A influência do formato de conteúdo na probabilidade de aparecer nas respostas da IA Para entender melhor quais tipos de conteúdo são mais eficazmente percebidos pelas redes neurais e aparecem nas suas respostas, apresentamos uma tabela comparativa: | Tipo de conteúdo | Probabilidade de aparecer nas respostas AI | Razões | Notas | | --- | --- | --- | --- | | Artigos textuais | Alta | Estrutura clara, lógica de apresentação, respostas detalhadas a perguntas. | Quanto mais estruturado o texto, maior a chance de aparecer nas respostas AI. | | Blogs e notícias | Média | Se contiverem informações atualizadas e bem estruturadas. | Blogs com temas atuais podem aparecer nas respostas se contiverem dicas úteis. | | Instruções e guias | Muito alta | Passos, instruções detalhadas e soluções claras são altamente valorizadas pela IA. | Esses materiais são frequentemente usados para gerar respostas diretas e precisas. | | Tabelas e gráficos | Alta | Tabelas que estruturam informações permitem que as redes neurais extraíam fatos mais facilmente. | Elementos visuais, como tabelas, aumentam significativamente a probabilidade de aparecer. | | Vídeo e multimídia | Baixa | As redes neurais ainda não conseguem interpretar eficientemente todos os tipos de conteúdo em vídeo. | O formato de vídeo é difícil de analisar para gerar respostas, mas isso está mudando. | | FAQ | Muito alta | Perguntas e respostas bem estruturadas respondem diretamente às consultas. | O formato FAQ é ideal para gerar respostas rápidas e garantir precisão. | | Avaliações de usuários | Média | Depende do contexto e da qualidade das avaliações. Algumas redes neurais podem usar avaliações para gerar recomendações. | Avaliações podem ser úteis para formar opiniões, desde que sejam relevantes para a consulta. | Esta tabela destaca a importância da estrutura e do formato do conteúdo para a adaptação bem-sucedida às exigências dos motores de busca modernos e das redes neurais. Quanto mais fácil for para o conteúdo ser percebido e analisado, maiores serão as chances de ele ser utilizado nas respostas às consultas. ## Como adaptar o conteúdo às exigências atuais de SEO Para garantir que seu conteúdo esteja entre os selecionados pelas redes neurais para gerar respostas, é necessário considerar as novas exigências e tendências. 1. Estruturação do conteúdo para percepção automática - **Uso de títulos e subtítulos:** Cada artigo deve começar com um título claro e atraente que reflete com precisão o conteúdo do texto. Os subtítulos devem dividir o artigo em blocos lógicos, facilitando a percepção das informações e permitindo que as redes neurais extraiam facilmente os dados necessários. - **Listas e tabelas:** O uso de listas com marcadores e numeradas, assim como tabelas, torna o conteúdo mais acessível para a percepção e ajuda a IA a destacar rapidamente as informações importantes. - **Conclusões claras e respostas breves às perguntas:** Como as redes neurais valorizam informações fáceis de entender, é importante que, ao final de cada bloco, haja uma conclusão clara que responda diretamente à pergunta do usuário. 2. Uso de frases-chave e semântica Para adaptar o conteúdo aos requisitos da IA, não basta usar as palavras-chave corretamente, é necessário entender a semântica delas. - **Uso de sinônimos e expressões semelhantes:** A IA percebe bem o texto que não utiliza apenas as palavras-chave exatas, mas também seus sinônimos e expressões semelhantes. Isso permite que a rede neural seja mais flexível ao analisar o texto. - **Compreensão do contexto:** O conteúdo deve não apenas conter palavras-chave, mas também responder a perguntas que logicamente derivam dessas palavras. Quanto mais precisamente o conteúdo se ajustar às consultas dos usuários, maior a chance de ser incluído na resposta da IA. 3. Otimização técnica do site Os motores de busca modernos e as redes neurais valorizam não apenas o conteúdo, mas também as características técnicas do site. Uma estrutura bem organizada, uma resposta rápida e uma boa experiência de uso são fundamentais para a visibilidade do conteúdo. - **Otimização da velocidade de carregamento:** A velocidade do site é um dos fatores de classificação mais importantes. As redes neurais avaliam a rapidez com que a página carrega, pois sites lentos prejudicam a experiência do usuário. - **Adaptabilidade móvel:** A maioria dos usuários agora busca informações em dispositivos móveis, e a IA também avalia a facilidade com que o conteúdo pode ser visualizado em smartphones e tablets. É fundamental garantir que seu site seja otimizado para dispositivos móveis. - **Uso de dados estruturados (Schema.org):** Incluir dados estruturados ajuda as redes neurais a analisar melhor o conteúdo. Esses dados fornecem informações adicionais sobre as páginas, como tipo de conteúdo, data de publicação, autor, entre outros. 4. Atualização constante do conteúdo Na era da IA, o conteúdo que se mantém relevante e é atualizado com frequência tem mais chances de ser selecionado pelas redes neurais. Isso ocorre porque a IA prefere dados novos e atualizados. - **Atualizações regulares de artigos:** Artigos e blogs que são constantemente atualizados com informações relevantes atraem a atenção das redes neurais. - **Atualização sobre tendências e eventos:** É importante acompanhar as tendências e eventos atuais em sua área e atualizar o conteúdo regularmente para que ele continue relevante para os usuários e para os motores de busca. ## Como as tecnologias de nuvem, como a Serverspace, podem ajudar As tecnologias de nuvem desempenham um papel importante no SEO moderno. Elas ajudam proprietários de sites e desenvolvedores a implantar e escalar rapidamente a infraestrutura, o que é particularmente crucial para o bom desempenho do conteúdo e sua apresentação [através da IA](https://serverspace.com.br/services/api-gpt-do-serverspace.md). A Serverspace oferece [soluções em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) ideais para startups e empresas que buscam otimizar seu conteúdo para os motores de busca modernos e redes neurais. Com a plataforma de nuvem da Serverspace, é possível implantar rapidamente um site, integrar ferramentas necessárias para a otimização SEO e garantir o funcionamento contínuo do site, mesmo com o aumento do tráfego. - **Escalabilidade rápida.** Se o seu negócio está crescendo, a Serverspace permite escalar rapidamente a infraestrutura, garantindo um desempenho estável mesmo com grandes volumes de dados. - **Confiabilidade e disponibilidade.** Os serviços da Serverspace garantem uma operação confiável da plataforma em nuvem, o que é essencial para SEO. Alta disponibilidade e tempo de resposta rápido também afetam diretamente a visibilidade do seu site nas respostas geradas pela IA. - **Automação e gerenciamento.** Com o painel de controle da Serverspace, você pode gerenciar de forma eficiente as configurações do seu site e a infraestrutura de servidores, otimizando-as para os requisitos modernos de SEO. SEO na era da IA exige novos enfoques para a criação e otimização de conteúdo. Redes neurais desempenham um papel chave em mudar a forma como os usuários recebem informações e como estas são processadas pelos motores de busca. Compreender essas mudanças e adaptar sua estratégia de SEO ajudará empresas e startups a se manterem à frente e competir de forma eficaz em um cenário digital em rápida evolução. As tecnologias de nuvem, como a Serverspace, desempenham um papel essencial na solução desses desafios, oferecendo flexibilidade, escalabilidade e desempenho para sites e conteúdo que precisam estar acessíveis para redes neurais. Compreender as novas tendências do SEO e utilizar soluções em nuvem será a chave para o sucesso da promoção do seu conteúdo na era da IA. ## FAQ - **Como determinar se o meu conteúdo está otimizado para IA?** Para que o seu conteúdo seja otimizado para IA, ele precisa ser estruturado, claro e conter palavras-chave e frases relevantes. O conteúdo deve ser facilmente compreensível tanto para os usuários quanto para os algoritmos, respondendo a consultas específicas. Também é importante utilizar esquemas e microdados para melhorar o entendimento do conteúdo pela IA. - **Como aumentar a visibilidade do conteúdo nos motores de busca na era da IA?** Para aumentar a visibilidade do conteúdo na era da IA, é necessário adaptar a estratégia de SEO, levando em consideração as mudanças nos algoritmos de busca. Isso inclui o uso de novos formatos de conteúdo, a atualização de materiais, a implementação de dados estruturados e a otimização da velocidade de carregamento do site. É fundamental também monitorar a qualidade e relevância do conteúdo. - **O uso de redes neurais afeta o futuro dos motores de busca?** Sim, o uso de redes neurais já está mudando significativamente o futuro dos motores de busca. Com o aumento dessas tecnologias, os motores de busca passarão a depender mais do contexto e da semântica das consultas, e menos apenas de palavras-chave. Isso também levará a uma geração de respostas mais baseada em IA, o que exigirá novas abordagens na criação e otimização de conteúdo. https://serverspace.com.br/about/news/lancamos-o-servico-live-streaming-para-transmissoes-com-latencia-minima.md Novo serviço Live Streaming da Serverspace: transmissões ao vivo com latência mínima via CDN global. Suporte a LLHLS e WebRTC. Controle total de monetização e conteúdo. Ative em minutos! Agora no painel de controle da Serverspace está disponível um novo serviço – [Live Streaming](https://serverspace.com.br/services/streaming-cdn.md). Esta é uma solução pronta para realizar transmissões ao vivo: transmissões de eventos, reportagens de notícias, aulas online, live shopping e outros formatos de vídeo. O serviço funciona em conjunto com a rede CDN: basta enviar o fluxo de vídeo uma vez e, graças aos servidores da Serverspace localizados em todo o mundo, os espectadores podem assisti-lo de qualquer lugar com latências mínimas e sem interrupções. Nós cuidamos da entrega instantânea, e você pode controlar completamente todo o resto: player, monetização, interação com a audiência e conteúdo. O [serviço](https://serverspace.com.br/services/streaming-cdn.md) já está disponível no [painel de controle](https://my.serverspace.com.br/). Comece sua transmissão ao vivo agora mesmo! ## Como funciona - Você envia o fluxo: utilize o OBS (Open Broadcaster Software), qualquer câmera ou programa e inicie a transmissão pelos protocolos conhecidos – LLHLS ou WebRTC; - O serviço recebe o fluxo e o prepara para distribuição. O vídeo é automaticamente comprimido nos codecs necessários (H.264, AAC, Opus), para que os usuários possam assisti-lo de diferentes dispositivos; - Os espectadores assistem o conteúdo de qualquer lugar. O fluxo vai para qualquer plataforma: seu site, aplicativo ou até redes sociais. Nossa rede CDN global abrange 6 países, portanto as latências são mínimas. ## Vantagens do Live Streaming Serverspace - **Nenhum player ou monetização imposta.** Você decide como exibir o vídeo, onde colocar anúncios e como ganhar dinheiro. - **Simplicidade e previsibilidade.** Nenhuma configuração complicada – tudo é ativado no painel de controle em alguns minutos. - **Independência.** Você gerencia completamente seu conteúdo. ## Para quem isso é realmente útil - **Mídia e recursos de notícias** – para transmissões ao vivo do local dos eventos, onde não se pode perder a conexão nem por um segundo. - **Clubes esportivos e organizadores de eventos** – para exibir uma partida simultaneamente no site, no aplicativo do clube e nas redes sociais. - **Corporações** – para transmissões internas (reuniões, treinamentos) em um circuito protegido. - **Proprietários de robôs e sistemas de videovigilância** – transmissão de vídeo por canais de comunicação ruins através do protocolo LLHLS. - **E-commerce e marcas** – para realizar transmissões ao vivo com promoções. ## Como conectar o serviço? - Acesse o [painel de controle](https://my.serverspace.com.br/) da Serverspace na seção "Streaming" e clique em "Conectar". - Indique o nome da transmissão, escolha o protocolo e a resolução do vídeo. - Clique em "Criar" — receba um link pronto para a transmissão. _[Serverspace](https://serverspace.com.br/index.md) – provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows e sistemas operacionais russos de qualquer ponto do mundo em menos de 1 minuto. Para integração de serviços de clientes estão disponíveis ferramentas abertas API, CLI e Terraform._ https://serverspace.com.br/about/blog/streaming-de-video-na-nuvem-entrega-sem-plataformas.md Transmissões ao vivo para mídia, eventos, empresas e indústria: entenda o streaming na nuvem, benefícios da entrega CDN e tendências do futuro do live streaming. O vídeo ao vivo já não é apenas "coisa de blogueiro" há algum tempo. Hoje, as transmissões ao vivo abrangem notícias, eventos, esportes, anúncios corporativos, lançamentos de produtos e até casos de uso industriais. E todos esses cenários compartilham um problema central: a transmissão precisa chegar aos espectadores sem surpresas - mesmo que a audiência aumente repentinamente, a conexão local fique instável e você precise exibi-la não em um único lugar, mas em vários canais. Neste artigo, vamos detalhar o streaming em termos práticos: como funciona o transporte de vídeo ao vivo, o que significa "enviar o fluxo uma vez e depois entregá-lo à audiência", por que mais projetos estão migrando para o live streaming em nuvem - e para onde o mercado está se direcionando a seguir, desde o streaming de vídeo na nuvem até o SaaS completo de streaming de vídeo. ## Streaming não é uma plataforma. É entrega Quando as pessoas ouvem "[streaming](https://serverspace.com.br/services/streaming-cdn.md)", muitas vezes imaginam uma landing page, chat, registro, um player, moderação. Mas essa é a camada externa. Em sua essência, o streaming é transporte e entrega de vídeo ao vivo: como receber um sinal, mantê-lo estável e levá-lo aos espectadores. Portanto, ajuda separar duas coisas: - uma plataforma (interfaces e um conjunto de recursos), - uma camada de transporte (ingestão + entrega + escalabilidade + redundância). Essa camada de transporte é o motor por trás de uma plataforma de streaming de vídeo baseada em nuvem e de qualquer solução de streaming de vídeo baseada em nuvem. É também o que decide a parte mais estressante: ou a transmissão está ao vivo, ou nada mais importa. ## O caminho da ingestão à reprodução Em termos simples, o streaming de transporte é uma cadeia clara de três etapas - e é a base da hospedagem de servidor de streaming na nuvem. - Ingestão. Você envia vídeo ao vivo para o servidor de vídeo na nuvem - uma vez, de qualquer lugar onde tenha conexão. Mais comumente isso é feito via RTMP ou SRT: RTMP é popular pela compatibilidade, enquanto SRT é frequentemente escolhido quando a rede está instável e você precisa de melhor resiliência. - Entrega aos espectadores. Em seguida, o serviço prepara a transmissão para visualização e a entrega em formatos como HLS ou LL-HLS. Esses formatos funcionam bem na web e escalam de forma limpa através de uma CDN, para que a transmissão possa lidar com o crescimento da audiência de forma mais confiável. Esta é a diferença prática entre "funciona em um teste" e streaming de vídeo na nuvem real em escala. - Multi-saída. Se necessário, a mesma transmissão pode ser exibida em paralelo no seu site, em um aplicativo ou em outros canais. Isso remove o trabalho manual e oferece uma rota de backup se uma opção de distribuição falhar. ## Como o live streaming começou As transmissões ao vivo não surgiram ontem. Os primeiros experimentos remontam à década de 1990, quando "assistir vídeo online" parecia quase ficção científica. À medida que as velocidades da internet melhoraram e a codificação ficou mais eficiente, o vídeo ao vivo deixou de ser uma demonstração peculiar e se tornou um hábito normal: aperte "Ao Vivo" e as pessoas podem assistir de quase qualquer dispositivo. Grande parte do impulso inicial veio de comunidades onde "estar presente" importa mais do que uma produção polida. Jogos e esportes eletrônicos popularizaram comentários em tempo real e interação com a audiência, enquanto outras indústrias também adotaram formatos ao vivo cedo, incluindo entretenimento adulto, onde a interatividade era mais fácil de monetizar do que a visualização passiva. Um dos pontos de virada mais claros veio em 2007 com a transmissão de vida 24/7 de Justin Kan, que cresceu para se tornar Justin.tv e mais tarde ajudou a abrir caminho para o Twitch. O YouTube então levou o vídeo ao vivo ainda mais para o mainstream, e uma vez que ficou claro que você pode transmitir mais do que jogos, o formato rapidamente se expandiu para educação, fitness, música, eventos empresariais e muito mais. ## Por que o ao vivo migrou para a nuvem O streaming tem uma característica irritante: raramente falha quando é conveniente. Ele falha quando os espectadores já estão assistindo, o palestrante está na câmera e as apostas são altas. É por isso que as equipes migram para o streaming de vídeo na nuvem não porque está na moda, mas porque é prático: - **Picos de audiência.** Hoje é "apenas seu pessoal", amanhã é várias vezes mais. - **Geografia.** Quanto mais longe um espectador está do ponto de entrega, maior o risco de atraso e queda de qualidade. - **Confiabilidade.** Em alguns cenários, "você não pode cair" é literal. - **Escalabilidade sem reconstruir tudo.** Quando a entrega funciona em infraestrutura construída para crescimento, é mais fácil sobreviver ao interesse repentino. Para muitas equipes, essa mudança também reformula o streaming como um serviço de vídeo na nuvem: uma camada de transporte e entrega que você pode conectar ao seu produto, em vez de algo que você reconstrói toda vez que o tráfego cresce. ## Quando a camada de transporte salva o dia O streaming de transporte se encaixa melhor em cenários onde entrega e controle importam mais do que recursos de plataforma. É aqui que a hospedagem de live streaming deixa de ser "bom ter" e se torna a rede de segurança. - **Mídia, emissoras, produção, notícias.** O trabalho é ingerir de forma confiável uma transmissão "do campo" e entregá-la aos espectadores ou parceiros. Além disso, manter seu próprio site/player e ter uma rota de distribuição de backup. - **Esportes, eventos, transmissões comunitárias locais, transmissões culturais e religiosas.** O trabalho é "uma transmissão - muitos pontos de visualização", desempenho estável durante picos e lançamento rápido sem grande infraestrutura de TI. - **Comunicações corporativas e treinamento.** O trabalho é um ambiente controlado: onde a transmissão é exibida, quem pode acessá-la, em qual domínio ela é executada. "Extras" de webinar (chat, enquetes, registro) geralmente são tratados separadamente. - **IoT, drones, robótica, monitoramento de vídeo, casos de uso industriais.** O trabalho é entregar vídeo a um operador ou sala de situação mesmo em redes instáveis - e então distribuir, gravar ou encaminhar a transmissão conforme necessário. - **E-commerce e marcas (live shopping, lançamentos, apresentações).** O trabalho é lidar com picos e evitar dependência de "regras da plataforma". Formatos ao vivo frequentemente aumentam o engajamento, mas os resultados dependem fortemente da categoria e execução - então uma estrutura clara do show importa mais do que promessas ousadas. E não se trata apenas de vídeo. Muitas equipes também procuram hospedagem de streaming de áudio para música, talk shows ou eventos, e até hospedagem de streaming de rádio para programação contínua - a mesma lógica de transporte se aplica: ingestão estável, entrega previsível e escalabilidade. ## O que procurar no streaming na nuvem Se você está escolhendo um serviço especificamente como transporte, aqui está uma checklist sem drama - seja você chamando de hospedagem de streaming de vídeo, serviços de hospedagem de streaming de vídeo ou hospedagem de streaming de vídeo ao vivo: - **Suporte a protocolos:** cobre os formatos de ingestão e entrega que você precisa? - **Multi-saída:** uma transmissão pode alimentar múltiplos canais? - **Comportamento em picos:** o serviço é projetado para crescimento de audiência, não apenas "modo silencioso"? - **Controle de latência:** não o número mais baixo, mas desempenho estável e previsível. - **Segurança e controle de acesso:** restrições de visualização, proteção básica, registro de logs. - **Preços transparentes:** pelo que você está pagando e o que conta como complemento. Também pense sobre sua "área de superfície". Algumas equipes querem entrega pura. Outras querem hospedagem web para streaming de vídeo como parte de uma pilha mais ampla, para que a página do player, API e endpoints de transmissão fiquem sob o mesmo teto. E se seu fluxo de trabalho inclui assets e replays, é cada vez mais comum transmitir vídeo do armazenamento na nuvem (como origem para conteúdo sob demanda ou destaques), enquanto mantém a entrega ao vivo otimizada através da CDN. ## Para onde o live streaming está indo O streaming está amadurecendo, e você pode ver isso no que as audiências esperam. Costumava ser suficiente que "simplesmente funcionasse". Agora as pessoas querem qualidade de nível de transmissão, flexibilidade da internet e controle do criador - tudo ao mesmo tempo. - **Latência mais baixa se tornará o padrão.** Os espectadores estão se acostumando com "quase tempo real". O mercado continuará se movendo em direção a latência menor e mais estável sem sacrificar escala. Isso não é sobre recordes - é sobre previsibilidade, para que o apresentador, equipe e audiência permaneçam sincronizados. - **"Uma transmissão - múltiplos caminhos" será a norma.** Confiar em um único ponto de distribuição parecerá um risco. Multi-saída, rotas de backup e a capacidade de executar em seu próprio domínio ou player passarão de "bom ter" para higiene básica - para que você possa mudar rapidamente se um canal falhar. - **Mais automação, menos ajustes manuais.** Quanto maior a audiência, mais "internets diferentes" você enfrenta: desde Wi-Fi perfeito até redes móveis fracas. A entrega continuará se movendo em direção à adaptação automática de qualidade e controles mais simples e claros. As pessoas querem executar a transmissão, não lutar com configurações. - **Crescimento do streaming privado e corporativo.** Transmissões internas, treinamentos, conferências, atualizações de liderança - trata-se de controle, não de publicidade: domínio, acesso, política de segurança, previsibilidade. Nesses casos, a camada de transporte importa mais do que quaisquer "extras bonitos". - **Redes desafiadoras não vão desaparecer - ingestão resiliente importará ainda mais.** Produção em campo, locais remotos, conexões móveis, links temporários - tudo isso permanecerá. Soluções que mantêm a ingestão estável através de perdas e jitter só se tornarão mais demandadas. Em resumo, o futuro próximo é baixa latência estável, multi-saída por padrão e mais controle para o proprietário da transmissão - não uma única plataforma. ## Streaming na Serverspace Na Serverspace, o [streaming](https://serverspace.com.br/services/streaming-cdn.md) é projetado como transporte de vídeo ao vivo: você envia a transmissão uma vez, escolhe como entregá-la à sua audiência e habilita multi-saída quando necessário. É uma solução prática de streaming de vídeo baseada em nuvem para equipes que querem controle sobre a distribuição sem estar amarradas a um único destino. E se o seu projeto requer [servidor na nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), você pode implantar uma configuração de servidor de vídeo na nuvem sob medida - desde um setup inicial até uma infraestrutura de streaming totalmente escalável. ## FAQ - **O que é streaming de transporte em termos simples?** É um serviço que ingere sua transmissão ao vivo e cuida da entrega aos espectadores (e, se necessário, multi-saída para diferentes canais). - **Por que separar transporte de uma plataforma de vídeo?** Para que você não dependa de um único local e suas regras: você pode exibir a transmissão em seu próprio site, manter um caminho de backup e controlar a distribuição. - **Qual é a diferença entre HLS e LL-HLS?** HLS é a entrega padrão com forte escalabilidade. LL-HLS entrega latência menor mantendo a escalabilidade. - **Quando você precisa de SRT?** Quando a transmissão viaja por uma rede instável (por exemplo, internet móvel no local) e você precisa de entrega confiável para a nuvem. - **Uma transmissão pode alimentar múltiplos canais?** Sim. Essa é uma das configurações mais comuns: uma entrada de ingestão - múltiplas saídas para distribuição. https://serverspace.com.br/about/blog/por-que-o-n8n-e-necessario.md Descubra como o n8n automatiza processos conectando CRM, WhatsApp, APIs e outros serviços sem código. Guia completo sobre arquitetura, casos de uso e implantação rápida no Serverspace com servidor pré-configurado. Recentemente, as empresas acumulam dezenas de serviços mais rápido do que os funcionários conseguem memorizar senhas – CRM, bots de WhatsApp, gateways de pagamento, envios de e-mail, planilhas do Excel e outras ferramentas. E tudo isso funciona separadamente. Como resultado, os gerentes transferem manualmente pedidos do chat para o banco de dados, os profissionais de marketing copiam informações para planilhas, e a equipe de TI escreve mais um script que, possivelmente, vai quebrar. O uso de sistemas fragmentados gera trabalho adicional e custos financeiros. Para resolver o problema, existe uma solução confiável – a automação com n8n, que permite conectar informações entre quaisquer serviços seguindo regras definidas. ## O que é n8n em palavras simples **n8n ("en - eight - en")** é uma plataforma open-source que conecta aplicações, dados e scripts em cenários visuais. A ferramenta funciona como um diagrama de nós – na terminologia do n8n, esses diagramas são chamados de n8n Workflows. A arquitetura do n8n é construída na interação entre triggers e executores. Um nó é o trigger, os demais nós são ações. Os nós são responsáveis por ações específicas: gravação no banco de dados, geração de texto ou parsing. Toda essa lógica pode ser gerenciada programaticamente através das APIs integradas do n8n. E se o cenário exigir ir além de um único servidor, conecta-se um n8n agent – componente para executar tarefas em máquinas remotas. Os n8n Workflows permitem escalar facilmente o sistema. Vários agents podem processar dados paralelamente dentro de um mesmo cenário. ## Arquitetura de funcionamento do n8n O n8n não é um repositório de dados, mas desempenha o papel de transporte, movendo informações entre sistemas. **Exemplos de automação com n8n:** A cada 15 minutos verifica a pasta "Entrada" do Outlook se o e-mail é de um cliente e contém "fatura" cria tarefa no CRM, cópia no Google Drive, notificação no WhatsApp se há anexo reconhecimento com IA dados no CRM. ## Para quem isso é útil **Departamento de TI:** - Onboarding automático de funcionários: ao cadastrar no sistema de RH - criar contas de e-mail, VPN, Jira, Slack. - Monitoramento de logs e alertas de falhas no WhatsApp. - Enriquecimento de tickets com dados de outros sistemas. **DevOps:** - Transformar solicitações em linguagem natural em ações: "Implante um ambiente de teste para o projeto X" - via chat no Slack inicia um playbook Ansible. **Marketing e vendas:** - Sincronização de formulários do site com CRM sem programadores. - Publicação automática de conteúdo nas redes sociais. - Coleta de dados sobre leads de diferentes fontes em uma única planilha. **E-commerce:** - Atualização de estoque ao sincronizar com sistema ERP. - Envio de recibos e notificações sobre status do pedido. - Criação automática de fichas de produtos em marketplaces. **Segurança (SecOps):** - Quando regras de segurança são acionadas - coletar contexto do SIEM, AD, sistema de tickets e enviar relatório pronto para o analista. ## Comparação: n8n versus código customizado A pergunta mais frequente: por que precisamos de mais um construtor se temos programadores que podem escrever tudo? Vamos comparar: | Critério | Desenvolvimento customizado | n8n | | --- | --- | --- | | Velocidade de implementação | Semanas, meses | Horas, dias | | Custo de mudanças | Alto (precisa alterar código, testar) | Baixo (mudança de conexão do nó na interface) | | Transparência para o negócio | Código compreendido apenas por desenvolvedores | Diagrama visível até para não programadores | | Integração com IA | Demorado e manual | Nós prontos para OpenAI, Claude | | Segurança de dados | Controle total, se escrito corretamente | Controle total com self-hosting | | Adequado para altas cargas | Sim | Não | O n8n não substitui programadores. Ele elimina tarefas rotineiras: integração de vários serviços, transferência de dados de CSV para API, desenvolvimento de integrações repetitivas. ## Onde o n8n não funciona É importante entender os limites de aplicação do n8n: - **Não é destinado a sistemas de alta carga.** Se você precisa de respostas em milissegundos e milhares de transações por segundo, o n8n não substitui Apache Kafka ou RabbitMQ. - **Não é adequado para lógica financeira complexa.** Processamento de operações, contabilidade e cálculos são melhor deixados para sistemas especializados como ERPs. - **Não é usado para computação distribuída.** Não é a ferramenta para construir clusters computacionais complexos. O n8n é um orquestrador. Ele conecta sistemas pesados, poderosos, mas "inflexíveis" entre si. A lógica de cálculo permanece nos próprios serviços, e o n8n garante a sequência e o roteamento necessários. ## Segurança e controle A tendência de independência de dados chegou também à automação de processos de negócios, que exigem conformidade com políticas de segurança. O n8n como plataforma de orquestração oferece mecanismos flexíveis de proteção, permitindo construir infraestrutura com perímetro controlado. **Versão SaaS na nuvem n8n** - versão em nuvem dos próprios desenvolvedores, sem necessidade de configuração manual. Adequada para experimentos e tarefas pequenas. **Self-hosting** - instalação do n8n em seu próprio servidor. O n8n suporta implantação em qualquer capacidade computacional: hosts físicos, máquinas virtuais baseadas em hipervisores ou [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) alugados de provedores. Todos os dados permanecem dentro da sua infraestrutura. Como implantar o n8n por conta própria você pode descobrir [aqui](https://serverspace.com.br/support/help/como-voce-implanta-o-n8n-no-seu-servidor/). **Air-gap** - ambiente isolado. É quando o servidor com n8n não tem acesso à internet. Ele se comunica apenas com seus sistemas internos: ERP, bancos de dados, portal corporativo e outras ferramentas. **Aluguel de servidor em nuvem com n8n pré-instalado** - a maneira mais simples de obter um n8n self-hosted seguro é alugar um servidor em nuvem de um provedor com a [plataforma já pré-instalada](https://serverspace.com.br/services/servidor-n8n.md). Você obtém um servidor limpo e isolado com ambiente configurado, sem gastar tempo com instalação e configuração. ## n8n no Serverspace Já explicamos o que é o n8n e para que ele serve. Agora vamos entender por que um [servidor com n8n pré-instalado](https://serverspace.com.br/services/servidor-n8n.md) é a opção mais otimizada e rápida para implementar automação. Por exemplo, o Serverspace oferece servidor com n8n pré-instalado para início rápido: você obtém um servidor limpo e isolado com ambiente configurado, sem gastar tempo com instalação e configuração. A implantação do servidor com n8n leva no máximo 40 segundos em equipamento Intel Xeon Gold com discos SSD de alta performance. A plataforma funciona no modelo de pagamento Pay-As-You-Go - os valores são debitados a cada 10 minutos e apenas pelo uso real de recursos. Os usuários têm à disposição um painel de controle conveniente, suporte 24 horas e ferramentas para garantir segurança. O que o negócio obtém: - **Velocidade.** Cenários que antes levavam semanas para serem programados são implementados em um dia. - **Economia.** Não é necessário comprar licenças caras nem sobrecarregar desenvolvedores com inúmeras tarefas para cada integração. - **Controle.** Você decide quais mecanismos de proteção usar. - **Visibilidade.** O negócio visualiza como os processos funcionam e pode fazer ajustes por conta própria. ## FAQ - **O que é n8n e para que serve?** n8n é uma plataforma de orquestração de integrações com interface visual. Ela permite conectar serviços diversos (CRM, bancos de dados, mensageiros, APIs) em cenários automáticos sem escrever código. - **Quais problemas de negócio o n8n resolve?** A automação através do n8n elimina a transferência manual de dados entre dezenas de serviços fragmentados. Por exemplo, pedidos do WhatsApp entram automaticamente no CRM, pagamentos acionam envios, relatórios são atualizados sem intervenção humana. - **Como funciona o trabalho no n8n?** Na base da plataforma está um construtor visual de nós. O primeiro nó funciona como trigger: inicia o cenário. Os nós subsequentes executam ações. - **Quais são as limitações do n8n?** Alta carga. Por exemplo, não é destinado a sistemas com milhares de transações por segundo (não substitui Apache Kafka ou RabbitMQ). - Contabilidade financeira. Não é adequado para lógica contábil complexa, lançamentos e cálculos (não substitui ERP). - Computação distribuída. Não é usado para construir clusters computacionais. - **O que é n8n agent e para que serve?** É um componente para executar tarefas em máquinas remotas, por exemplo, para acessar arquivos locais ou executar scripts em ambiente isolado. ### Conclusão Se na sua empresa os gerentes ainda transferem dados manualmente do e-mail para o CRM, e os programadores escrevem gambiarras para integrações - você está perdendo dinheiro. O n8n cobre a "camada intermediária" de tarefas: onde escrever código para cada detalhe é inviável, e fazer manualmente é muito demorado. A infraestrutura em nuvem do Serverspace permite esquecer a configuração e instalação complexas do n8n e se concentrar apenas nos cenários. A automação não requer grandes orçamentos, mas requer as ferramentas certas. https://serverspace.com.br/support/help/headlamp-para-kubernetes-instalacao-configuracao-e-uso-da-interface-do-usuario-da-web.md Instruções detalhadas para instalar e configurar o Headlamp, uma interface web prática para o Kubernetes. Saiba como usar o Headlamp para gerenciar clusters, quais recursos ele oferece aos engenheiros de DevOps e quais são suas limitações. **Headlamp** é uma interface web (UI) simples e extensível para Kubernetes, projetada para visualizar, analisar e gerenciar recursos de cluster. O projeto é desenvolvido dentro do Kubernetes SIG UI e é totalmente compatível com qualquer distribuição Kubernetes. A ferramenta é adequada para engenheiros DevOps, administradores de cluster e desenvolvedores que precisam de uma interface visual conveniente para gerenciamento de infraestrutura, acesso a logs, recursos, eventos e ferramentas de depuração. ## O que é o Headlamp **Headlamp** é uma camada de interface sobre a API do Kubernetes que permite: - visualizar recursos de todos os tipos (Pods, Deployments, Services, Nodes etc.); - executar operações como criar, editar e excluir recursos; - analisar logs e métricas de pods; - trabalhar com vários clusters por meio de um painel unificado; - estender a funcionalidade usando plugins. A interface é construída com React e Material-UI, conecta-se diretamente à API do Kubernetes, suporta RBAC e exibe apenas ações disponíveis ao usuário. ## Como o Headlamp é usado na prática Headlamp cobre várias tarefas comuns de DevOps: - **Depuração visual de clusters.** Visualização conveniente de estados de pods, eventos, logs e contêineres. - **Gerenciamento de múltiplos clusters.** Alternância de contextos kubeconfig diretamente na interface. - **Trabalho com CRDs.** Suporte para recursos personalizados e possibilidade de estender a UI para eles. - **Auditoria e monitoramento.** Observação em tempo real das mudanças nos recursos. - **Simplificação do trabalho para DevOps iniciantes e desenvolvedores.** A UI reduz a barreira de entrada e permite um trabalho seguro dentro das restrições de RBAC. ## Como começar a usar o Headlamp Headlamp pode ser iniciado de duas maneiras: - Como um aplicativo desktop local - Como um painel web dentro de um cluster Kubernetes Ambas as opções usam kubeconfig. ## Método 1: Instalando o Headlamp localmente Adequado para trabalhar com clusters remotos ou locais. Primeiro, faça o download do Headlamp. Builds atuais para Linux, Windows e macOS: ``` https://headlamp.dev/download ``` Agora execute o aplicativo. Ele irá sugerir automaticamente escolher um kubeconfig ou carregá-lo de **~/.kube/config**. Após selecionar um contexto, a interface principal será exibida. ## Método 2: Instalando o Headlamp no Kubernetes (in-cluster) Adequado para acesso permanente da equipe via navegador. **Opção A**: instalação via Helm ``` helm repo add headlamp https://headlamp-k8s.github.io/headlamp-chart ``` ``` helm repo update ``` ``` helm install headlamp headlamp/headlamp --namespace headlamp --create-namespace ``` Agora é necessário fazer o port-forward: ```bash kubectl port-forward svc/headlamp 4466:80 -n headlamp ``` Abra no navegador: ``` http://localhost:4466 ``` **Opção B**: instalação via YAML ```bash kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/headlamp/main/deployment/headlamp.yaml ``` Após a instalação, execute novamente o port-forward: ```bash kubectl port-forward svc/headlamp 4466:80 -n headlamp ``` ## Por que o Headlamp é útil Benefícios para engenheiros DevOps: **Diagnóstico rápido de problemas** Logs, eventos e estados de recursos — tudo em um único lugar. **Compatibilidade com RBAC** O usuário vê apenas as ações que está autorizado a executar. **Suporte a múltiplos clusters** Útil para empresas com ambientes dev/stage/prod. **Suporte a CRDs** Essencial para operadores e soluções personalizadas. **Extensibilidade via plugins** Permite adicionar dashboards, métricas e integrações personalizadas (ex.: Karpenter, monitoramento). **Interface limpa e rápida** Uma alternativa leve a dashboards mais pesados. ## Limitações do Headlamp Apesar das vantagens, a ferramenta possui algumas limitações: **Não substitui completamente o kubectl.** Operações em massa e automações continuam sendo do CLI. **Plugins requerem desenvolvimento.** CRDs especializados podem exigir suporte customizado. **Sem monitoramento avançado nativo.** Não substitui Prometheus/Grafana. **RBAC pode exigir ajustes finos.** Usuários sem permissões suficientes verão uma interface limitada. **Sem auditoria nativa de ações na UI.** As ações passam pela API do Kubernetes, mas a UI não gera logs próprios. ## Conclusão **Headlamp** é uma interface moderna, prática e extensível para gerenciar clusters Kubernetes. Simplifica a depuração, ajuda a analisar estados de recursos e atende tanto iniciantes quanto especialistas em DevOps. A ferramenta é especialmente útil para equipes que trabalham com múltiplos clusters, recursos personalizados ou que precisam de uma UI segura com RBAC. ## FAQ - **O Headlamp pode ser usado offline?** Sim. A aplicação funciona localmente, e a instalação in-cluster é totalmente autônoma. - **Ele suporta recursos personalizados (CRDs)?** Sim. CRDs aparecem automaticamente. Se necessário, é possível criar um plugin para suporte expandido. - **O Headlamp pode se conectar a vários clusters?** Sim. A versão local usa kubeconfig, que pode conter vários contextos. - **Há limitações para distribuições Kubernetes?** Não. Funciona com qualquer cluster compatível (kubeadm, K3s, RKE, GKE, EKS, AKS etc.). - **É seguro dar acesso aos desenvolvedores?** Headlamp respeita totalmente o RBAC do Kubernetes — usuários só veem ações permitidas. - **O Headlamp pode ser instalado via Docker?** Sim, existe uma imagem: ```bash docker run -p 4466:4466 ghcr.io/headlamp-k8s/headlamp ``` - **O Headlamp suporta plugins?** Sim, este é um dos principais recursos. Plugins podem ser desenvolvidos em TypeScript/React. https://serverspace.com.br/support/help/auditd-utilitario-de-logs-no-linux.md Guia passo a passo sobre o Auditd no Linux: instalação, configuração de políticas de auditoria, criação de regras para syscalls e análise de logs para segurança e monitoramento. Não existem mãos e olhos humanos suficientes para acompanhar tudo o que acontece em um sistema operacional — e muito menos em toda uma rede corporativa, onde o fluxo de eventos pode facilmente passar de 3000/seg. Muitos sistemas operacionais já contam com utilitários de log padrão pré-instalados que registram o que acontece no sistema: no Linux é o syslog (e suas várias implementações) e, no Windows, o Windows Event Logs. Mas muitas vezes a funcionalidade dessas soluções padrão não é suficiente. Por exemplo, no syslog do Linux não há políticas de auditoria que determinem quais informações devem ser coletadas e quais podem ser ignoradas. Para isso existem soluções alternativas específicas. ## Como o Auditd funciona? Auditd é um subsistema de logging que permite usar políticas de auditoria, módulo de kernel e outros componentes de software para registrar eventos no sistema operacional. A composição desse subsistema é a combinação de: - utilitário cliente auditctl, que passa novas regras para o daemon de configuração; - daemon auditd, que ocupa soquetes de arquivo para escutar chamadas do auditctl e logs vindos do kernel; - utilitário ausearch para buscar registros nos logs por parâmetros; - arquivos de configuração em /etc/audit + plugins + políticas ou regras de auditoria. Como a execução de praticamente qualquer ação no sistema operacional é acompanhada por uma chamada ao kernel via chamadas de sistema (syscalls), o processo de registro das ações dos "sub-objetos" no SO ocorre da seguinte forma. Captura de tela nº 1 — Esquema Por exemplo, um processo com o servidor SSH decide ocupar um soquete de rede e informa isso ao kernel por meio da chamada de sistema socket(). O kernel, por sua vez, processa a solicitação e gera um registro especificando todos os principais parâmetros da chamada, depois salva esse registro no buffer de auditoria. A partir daí, os logs são enviados por meio do mecanismo de IPC (Inter Process Communication) para o soquete de arquivo que está sendo usado pelo daemon auditd. Dentro dele ocorre o processo de filtragem pelas regras configuradas, e é selecionado o que deve ser efetivamente gravado. Se necessário, os pacotes filtrados podem ser enviados para servidores de coleta, que repassam os dados a um SIEM ou outros sistemas de proteção. Mas neste artigo vamos analisar exclusivamente o subsistema em um host local. ## Como instalar e configurar o Auditd? Para instalar, basta usar o repositório base, onde o binário do auditd já está incluído. A instalação varia conforme a distribuição. Para distribuições do tipo deb, use o comando: ```bash apt update && apt install auditd -y ``` Para distribuições do tipo rpm, algo como: ```bash dnf install auditd -y ``` Captura de tela nº 2 — Instalação do software Depois disso, o daemon auditd, responsável por escutar e processar os logs, será automaticamente iniciado: ```bash systemctl status auditd ``` Captura de tela nº 3 — Status do serviço Todo o subsistema é implantado automaticamente e de forma independente do administrador de sistema. Quando tivermos certeza de que o serviço necessário foi iniciado com sucesso, podemos passar à configuração das políticas que vão determinar o que será armazenado dentro do enorme fluxo de eventos existentes. Para isso, abrimos o diretório de regras/políticas; no seu caso, você pode nomear a regra como quiser, desde que o arquivo tenha a extensão .rules: ``` nano /etc/audit/audit.rules ``` Captura de tela nº 4 — basic-policy Vamos analisar cada uma das linhas apresentadas no arquivo de configuração padrão: - opção -D remove regras previamente adicionadas da memória do serviço, para evitar conflitos; - opção -b define o tamanho do buffer de auditoria para eventos antes da gravação em arquivo de log; - opção -backlog_wait_time 60000 define o tempo máximo (em milissegundos) que o daemon de auditoria aguardará o envio de eventos caso o buffer esteja cheio. Neste caso, ele espera até 60 segundos antes de limpar o log à força; - -f 0 – usar nível mínimo de mensagens (silencioso); - -f 1 – registrar apenas eventos críticos (saída compacta); - -f 2 – mensagens mais detalhadas (padrão). E também a própria regra de política de auditoria, que vai filtrar os eventos necessários dentro do conjunto heterogêneo de eventos. ## Como escrever regras para o auditd? Existem dois tipos principais de escrita de regras no auditd. O primeiro tipo é para monitorar chamadas de sistema relacionadas a arquivos e diretórios: ``` -w /etc/passwd -p wa -F uid!=0 -k soc-audit-passwd ``` Essa regra permite registrar solicitações de trabalho com um objeto do sistema de arquivos em modo de escrita e modificação de atributos. A opção -w especifica o caminho para o arquivo monitorado, a opção -p define os atributos de arquivo (rwx) que serão monitorados e a opção -F faz o filtro. Se todas essas condições forem verdadeiras, o evento é gravado no arquivo de log do serviço! Ou um formato mais estendido do segundo tipo, em que a chamada de sistema e o filtro aplicado ao evento são especificados explicitamente: ``` -a always,exit -S execve -F path=/usr/bin/python3 -F auid!=0 ``` Aqui, a opção -a (append) adiciona uma nova regra ao final da lista; a ação always/never determina se o evento será registrado ou não. A opção -S define o tipo de chamada de sistema. Aqui estão as principais: - **open** – acesso a um objeto do sistema de arquivos; - **execve** – carrega o aplicativo na memória do processo. Pode ser usada para rastrear a inicialização de software, pois a primeira chamada de sistema fork() cria um processo e execve carrega os arquivos na memória do novo processo; - **socket** – chamada para criar um soquete para comunicação entre redes ou entre processos; - **listen** – chamada para iniciar a escuta de conexões de entrada em um soquete; - **setreuid/setregid** – chamadas que implementam elevação ou redução de privilégios para um processo. ## Casos de uso reais Para ferramentas como SIEM/EDR/Zabbix etc., que permitem monitorar o desempenho e a segurança da infraestrutura existente, são necessários logs das máquinas. Vamos considerar a tarefa de rastrear quem executou um contêiner Docker infectado elevando privilégios de usuário comum para root. Vamos rastrear as chamadas de sistema para iniciar o contêiner com o comando sudo strace -o ss.txt : ``` sudo strace -f -o ss.txt sudo docker exec ubuntu /bin/bash ``` Captura de tela nº 5 — Rastreamento de syscalls A saída é bastante grande; usando o utilitário grep, você pode filtrar por chamadas de sistema importantes a partir do arquivo ss.txt: ``` grep "execve" ss.txt ``` Captura de tela nº 6 — Busca por execve Como podemos ver, dois processos com dois PIDs 2545 e 2547 foram iniciados, carregando executáveis a partir dos caminhos /usr/bin/sudo e /usr/bin/docker. Vamos escrever uma regra para o evento encontrado: ``` echo "#Monitor exec Docker with sudo -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/sudo -F auid!=0 -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/docker -F auid!=0" | tee -a /etc/audit/rules.d/audit.rules && auditctl -R /etc/audit/rules.d/audit.rules ``` Captura de tela nº 7 — Adição de novas regras Após executar o comando para carregar as regras no módulo de kernel do subsistema de logging, é necessário verificar se a operação foi feita corretamente: ``` auditctl -l ``` Captura de tela nº 8 — Auditctl No final, conseguimos ver nossas regras carregadas, o que significa que a operação foi bem-sucedida! Vamos iniciar o docker com sudo e coletar os logs no arquivo padrão: ```bash sudo docker run debian && cat /var/log/audit/audit.log | grep 'execve' ``` Captura de tela nº 9 — Logs coletados Depois de filtrar a grande quantidade de eventos registrados na pasta de logs, podemos ver chamadas de sistema para execve com um AUID ou UID real diferente de root. Esse evento pode indicar um incidente de segurança da informação que violou a política e, portanto, pode ser um ataque! Os logs são usados para detecção proativa e mitigação de ameaças, bem como para monitorar o estado dos serviços e do sistema como um todo. Generalizando o algoritmo de funcionamento do serviço, podemos dizer que, quando um processo está sendo executado no sistema operacional, ele gera um grande número de solicitações ao kernel, que podem ser rastreadas. A política de auditoria permite selecionar, dentre milhões de eventos, apenas aqueles mais necessários e importantes, que depois podem ser enviados para ferramentas analíticas ou usados para depuração do sistema. https://serverspace.com.br/help/fizzy-como-instalar-e-usar-o-kanban-tracker-da-37signals-guia-completo.md Descubra o que é o Fizzy da 37signals, como instalá-lo no servidor ou localmente, configurar quadros e usar funções Kanban. Instruções detalhadas, exemplos de aplicação, instalação, perguntas frequentes e dicas para trabalho em equipe. **Fizzy** é uma ferramenta moderna de Kanban para acompanhar tarefas, ideias e bugs, desenvolvida pela 37signals (criadores do Basecamp e HEY). Ele se posiciona como uma alternativa leve, rápida e agradável a rastreadores robustos como Jira, Trello e Asana. ## Principais recursos: - Interface Kanban simples e rápida para cartões e colunas. - Fechamento automático de cartões antigos (auto-close) para manter tudo organizado. - Webhooks para integração com Slack, Campfire e outros serviços. - Gerenciamento de notificações, incluindo alertas quando cartões são ignorados. - Possibilidade de tornar quadros públicos para visualização externa. - Stamps que mostram quem criou cada cartão e quando. Nível gratuito para até 1000 cartões. [O código-fonte é aberto no GitHub](https://github.com/basecamp/fizzy) — é um aplicativo Rails completo com lógica Kanban. ## Para quem o Fizzy é indicado O Fizzy é ideal para equipes pequenas e médias que valorizam rapidez na tomada de decisões e práticas de trabalho simples. Se você precisa de um Kanban minimalista e "leve" — sem métricas complexas, quadros avançados ou configurações pesadas — o Fizzy oferece uma forma prática de organizar o fluxo de trabalho, coletar ideias e acompanhar bugs. É especialmente útil para startups, estúdios indie, pequenas equipes de produto e times de projeto que preferem transparência e quadros públicos para feedback, além de quem deseja uma solução self-host baseada em código aberto. ## Comparação do Fizzy com alternativas | Critério | Fizzy | Jira | Trello | Asana | | --- | --- | --- | --- | --- | | Simplicidade de uso | Muito simples: foco em Kanban e cartões | Mais complexo: muitas opções e configurações | Muito simples: quadros e cartões intuitivos | Moderadamente simples: fluxos de trabalho flexíveis | | Plano gratuito | Sim - até 1000 cartões | Recursos limitados no plano gratuito | Plano gratuito generoso (com limites de funções) | Plano gratuito disponível, com restrições | | Integrações | Webhooks; pode ser expandido via código (self-host) | Diversos plugins e API | Grande ecossistema de Power-Ups | API e muitas integrações prontas | | Funções para Agile / métricas avançadas | Kanban básico; sem análises avançadas | Quadros avançados, relatórios, backlog, sprints | Quadros simples; poucas métricas (via Power-Ups) | Boas opções de workflows e relatórios | | Self-host / Open source | Sim - código disponível no GitHub | Possui Data Center (pago); não totalmente open source | SaaS; sem solução oficial de self-host | SaaS; sem self-host | | Customização e extensibilidade | Alta, se self-host (pode modificar o código) | Muito flexível (plugins, scripts, API) | Moderada (Power-Ups + API) | Altamente configurável com modelos e API | | Escalabilidade para grandes equipes | Melhor para pequenas/médias equipes | Indicado para grandes organizações | Bom para pequenas e médias empresas | Adequado para equipes médias e grandes | | Ideal para | Startups, equipes pequenas, projetos indie | Times grandes e enterprise | Equipes que valorizam simplicidade e visual | Equipes com processos diversos | ## Instalação do Fizzy Existem várias maneiras: **Opção A:** Deploy usando Kamal (recomendado) Passos: - Cloque o repositório ou faça um fork. - Edite **config/deploy.yml**, **.kamal/secrets e config/environments/production.rb** com dados do servidor e e-mail. - Preencha os segredos em **.kamal/secrets (SECRET_KEY_BASE, VAPID_, SMTP_ etc.).** Execute: ``` bin/kamal setup ``` Isso instalará Docker e iniciará o app. Para atualizar o deploy: ``` bin/kamal deploy ``` **Opção B:** Ambiente local No diretório raiz: ``` bin/setup ``` Reset da base: ``` bin/setup --reset ``` Rodar servidor: ``` bin/dev ``` Disponível em http://fizzy.localhost:3006 **Opção C:** Docker / Railway / Unraid É possível executar o Fizzy em container Docker. Existem exemplos não oficiais na comunidade. ## Tecnologias utilizadas - **Aplicação Ruby on Rails.** - **Usa SQLite por padrão (MySQL opcional).** - **Web Push via chaves VAPID.** - **Inclui testes (unit e CI).** ## Perguntas Frequentes (FAQ) - **O que há no plano gratuito?** Até 1000 cartões sem limite de tempo ou usuários. - **Há integração com Basecamp, GitHub ou outros? **Ainda não — apenas webhooks que enviam eventos para Slack, Campfire, etc. - **É possível importar dados do Trello ou Jira? **Não há importador nativo no momento. - **Se eu apagar um cartão, ele conta no limite de 1000? **Sim — cada ID criado é contabilizado mesmo após exclusão. - **Licença e restrições **Código aberto sob licença O'Saasy; há algumas limitações para concorrência com a versão SaaS. ## Conclusão O Fizzy é um Kanban rápido, moderno e minimalista, ideal para equipes que preferem simplicidade e agilidade em vez de ferramentas inchadas. Você pode usar a versão hospedada em fizzy.do, fazer self-host gratuitamente, editar o código e expandir funcionalidades. Se você busca um sistema prático de gerenciamento de tarefas sem complicação — o Fizzy é uma ótima escolha. https://serverspace.com.br/support/help/zmx-salvamento-de-sessoes-de-terminal-no-linux-e-macos.md Guia detalhado sobre o zmx: instalação, comandos básicos e cenários de uso para salvar sessões de terminal. **zmx** é uma ferramenta leve para persistência de sessões de processos no terminal. Ela permite executar processos no terminal (shells, editores, builds, etc.), se desconectar deles e se reconectar posteriormente sem perder entrada/saída ou o estado do terminal. Diferente do tmux ou screen, o zmx não oferece janelas, abas, painéis ou um gerenciador de janelas — apenas funcionalidades de attach/detach e restauração do estado do terminal. zmx.sh ## Para que o zmx é usado ### Principais finalidades: - Suporte a sessões de terminal de longa duração que não desaparecem quando o terminal é fechado. - Funcionalidade de detach/attach — desconectar-se de uma sessão (Ctrl+\) e retornar a ela mais tarde. - Múltiplos clientes podem se conectar à mesma sessão simultaneamente. - Preservação do scrollback e do estado do terminal ao se reconectar. - Suporte a fluxos de trabalho como shells, editores, builds, sessões SSH e muito mais. ### Como ele difere do tmux: - O zmx não substitui um gerenciador de janelas de terminal. - Não há gerenciamento de janelas ou painéis — toda a lógica é focada apenas em manter a sessão ativa. - O layout e o gerenciamento de janelas devem ser tratados pelo seu shell ou gerenciador de janelas. ## Instalação ### Binários pré-compilados Baixe o arquivo para a sua plataforma: - Linux (x86_64 / aarch64) - macOS (x86_64 / aarch64) Links do repositório: [https://github.com/neurosnap/zmx](https://github.com/neurosnap/zmx) ### Via Homebrew (macOS / Linux) ``` brew tap neurosnap/tap brew install zmx ``` ### Compilando a partir do código-fonte Requer Zig (v0.15): ```bash git clone https://github.com/neurosnap/zmx ``` ``` cd zmx ``` ``` zig build -Doptimize=ReleaseSafe --prefix ~/.local # certifique-se de que ~/.local/bin esteja no PATH ``` ## Início rápido — comando e saída Após a instalação, o seguinte comando fica disponível: ``` zmx [args] ``` ## Principais comandos | Comando | Descrição | | --- | --- | | zmx attach | Cria uma nova sessão com o nome especificado ou se conecta a uma sessão existente | | zmx attach | Conecta-se a uma sessão e executa o comando especificado dentro dela | | zmx detach Ctrl + \ | Desconecta o terminal atual da sessão sem interromper os processos em execução | | zmx list | Exibe a lista de todas as sessões zmx ativas | | zmx kill | Encerra forçadamente a sessão especificada | | zmx help | Mostra a ajuda com os comandos disponíveis | | zmx version | Exibe a versão instalada do zmx | ## Configuração do shell Para ver que você está dentro de uma sessão zmx, é possível adicionar o nome da sessão ao prompt: **fish:** ``` functions -c fish_prompt _original_fish_prompt function fish_prompt if set -q ZMX_SESSION echo -n "[$ZMX_SESSION] " end _original_fish_prompt end ``` **zsh:** ``` BASE_PROMPT=$PS1 PROMPT="${ZMX_SESSION:+[$ZMX_SESSION]} $BASE_PROMPT" ``` ## Usando zmx com SSH O zmx funciona muito bem sobre SSH: você pode configurar um RemoteCommand para se conectar automaticamente à sessão apropriada ao estabelecer a conexão. Por exemplo: ``` Host dev.* RemoteCommand zmx attach %k RequestTTY yes ``` Isso é útil se você utiliza muitos terminais na mesma máquina remota. ## FAQ - **Q1: Por que usar zmx em vez de tmux?** A: O zmx é uma ferramenta minimalista focada exclusivamente na persistência de sessões, sem janelas ou painéis, o que o torna mais simples e compatível com recursos modernos de terminal. zmx.sh - **Q2: Funciona no Windows?** A: No momento, o zmx oferece suporte oficial apenas para Linux e macOS. O Windows não é suportado. zmx.sh - **Q3: O zmx pode ser usado com programas como vim, neovim ou ferramentas de build?** A: Sim — você pode passar qualquer comando durante o attach, e ele será executado dentro da sessão. erock-git-zmx.pgs.sh - **Q4: O que acontece se uma sessão falhar?** A: Ao se reconectar, o zmx irá restaurar o estado da tela e a saída tanto quanto possível. zmx.sh ## Conclusão **zmx** é uma ferramenta prática para desenvolvedores que desejam preservar sessões de terminal entre reconexões sem introduzir a complexidade de multiplexadores de terminal completos. Ela permite manter processos de longa duração ativos enquanto você continua usando seu emulador de terminal e gerenciador de janelas da forma que preferir, em vez de substituí-los por mais uma camada de gerenciamento de janelas e painéis. Na prática, o zmx funciona especialmente bem para builds longos, suítes de testes e tarefas de processamento de dados, onde o fechamento acidental do terminal ou a perda da conexão SSH interromperiam o trabalho. Quando usado com SSH, ele pode simplificar significativamente fluxos de trabalho remotos ao se reconectar automaticamente à mesma sessão. Executar editores como Vim ou Neovim dentro de uma sessão zmx ajuda a evitar a perda de contexto ou progresso devido a problemas de rede, enquanto organizar sessões por nome de projeto mantém o fluxo de trabalho previsível e fácil de gerenciar. De modo geral, o zmx é uma excelente escolha para fluxos de trabalho que exigem persistência confiável de sessões, mas não se beneficiam da sobrecarga dos multiplexadores de terminal tradicionais, sendo ideal para usuários que valorizam simplicidade, estabilidade e controle. https://serverspace.com.br/support/help/gerenciar-e-desativar-o-uac-no-windows.md Entenda o UAC (User Account Control) no Windows: níveis de notificação, configuração local e via GPO em domínio, como desativar com segurança e como reduzir riscos de bypass. O Windows possui um conjunto de mecanismos para garantir seu estado protegido em diferentes estágios de operação. O WFP é usado para filtragem de pacotes de rede, a identificação e a autenticação ocorrem por meio do lssas.exe ou com base no AD, e o EventLog é responsável pelo subsistema de auditoria. Mas um dos componentes mais importantes dessa cadeia é o UAC, ou Controle de Conta de Usuário (User Account Control). Neste artigo, vamos considerar como configurá-lo e aplicá-lo separadamente em um dispositivo local e em um nó de domínio. Também veremos quais ferramentas e métodos hackers usam para contorná-lo e como mitigar esses riscos. ## O que é UAC? O UAC (User Account Control) é um mecanismo de segurança projetado para controlar a elevação de privilégios no sistema operacional, rastreando os processos em execução. Essa abordagem monitora ações não autorizadas e protege o dispositivo contra a execução de arquivos maliciosos. Classicamente, essa janela se parece com isto: Captura de tela nº 1 — Confirmação Nesse caso, o usuário é notificado de que o aplicativo que está iniciando possui todas as assinaturas necessárias e que o arquivo está no disco. Essa notificação pode ter várias variações, dependendo das políticas definidas no dispositivo: execução em uma janela segura, confirmação por senha / janela de consentimento comum. ## Configuração no dispositivo local Para configurar esse mecanismo de segurança, usaremos as configurações do UAC, que definem a política básica, e a Política de Grupo (Group Policy) especificará os detalhes e ajustes mais finos. Clique e digite Win (botão) → UAC (texto na caixa de pesquisa) → Alterar configurações de Controle de Conta de Usuário (Change User Account Control settings). Você verá uma janela com um controle deslizante com 4 níveis de política propostos: Captura de tela nº 2 — Configurações padrão O quarto e nível mais alto é identificado como Sempre notificar (Always Notify), o que significa que você deve ser notificado de toda ação realizada pelo usuário, incluindo alterações nas configurações do sistema do Windows. A solicitação é verificada em uma janela segura. O terceiro nível, que oferece uma proteção menos rígida, notificará sobre alterações no dispositivo feitas por aplicativos (exceto alterações de configurações do sistema), mas ainda abrirá uma janela em modo seguro. O segundo nível oferece o mesmo que o terceiro, porém, nesse caso, a janela de confirmação será aberta em uma janela normal, que o invasor pode confirmar. O primeiro nível da política desativa qualquer influência do UAC sobre os processos em execução. Em algumas tarefas, esse mecanismo pode entrar em conflito com outros e interferir no funcionamento do dispositivo. Portanto, a resposta para a pergunta "Como desativar o UAC do Windows?" é o comando do PowerShell: ``` Set-ItemProperty -Path REGISTRY::HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorAdmin -Value 0; Set-ItemProperty -Path REGISTRY: :HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System -Name ConsentPromptBehaviorUser -Value 0 ``` Após executar esse comando, os requisitos do UAC cairão para o primeiro nível da política Nunca notificar (Never Notify). Os detalhes mais finos das configurações de verificação e notificação serão discutidos abaixo nas soluções para hosts de domínio, que também funcionarão para máquinas locais. ## Configuração em um dispositivo no domínio Nessa opção de configuração, existem parâmetros mais flexíveis que permitem definir o comportamento para cada grupo de usuários separadamente e qual método de verificação será utilizado. Vamos abrir a janela Executar com as teclas Win+R e digitar o comando: ``` gpmc.msc ``` Vá até a configuração de políticas do seu domínio e uma janela será aberta: Captura de tela nº 3 — GPO Vamos acessar a pasta com as políticas locais do domínio no caminho: Configuração do Computador → Configurações do Windows → Configurações de Segurança → Políticas Locais → Opções de Segurança: Captura de tela nº 4 — GPO com opções de segurança do UAC Na prática, é um conjunto dos mesmos parâmetros que compõem a política na interface (UI), mas neste caso há também possibilidades de configuração personalizada e distribuição para nós. Vamos considerar cada política separadamente: Captura de tela nº 5 — Lista de parâmetros As principais configurações aqui são ConsentPromptBehaviorAdmin/User, que permitem definir o comportamento do UAC quando há elevação de privilégios do usuário e quais dados devem ser solicitados. As configurações variam para cada infraestrutura, mas existem boas práticas comuns em que os valores são importantes: - FilterAdministratorToken - 1 (habilitado); - EnableUIADesktopToggle - 0 (desabilitado); - ConsentPromptBehaviorAdmin - 2 (solicitar consentimento em uma área de trabalho segura); - ConsentPromptBehaviorUser - 3 (solicitar credenciais); - EnableInstallerDetection - 1 (habilitado para uso doméstico) / 0 (desabilitado para ambiente corporativo); - ValidateAdminCodeSignatures - 1 (habilitado); - EnableSecureUIAPaths - 1 (habilitado); - EnableLUA - 1 (habilitado); - PromptOnSecureDesktop - 1 (habilitado); - EnableVirtualisation - 1 (habilitado); - InteractiveLogonFirst - 1 (habilitado para corporativo) / 0 (desabilitado para doméstico). Após a aplicação da política, você deve aguardar até que um nó no domínio receba as novas regras ou forçar a atualização no nó necessário com o comando: ``` gpupdate /force ``` Captura de tela nº 5 — Lista de parâmetros Esse mecanismo nos permitiu configurar uma camada adicional de proteção que controla a elevação de privilégios ao solicitar uma mudança de permissões. As principais ferramentas aqui são a solicitação de dados de conta e a solicitação de consentimento em uma janela segura, o que adiciona uma verificação extra para garantir que o sujeito tenha direitos sobre o objeto! https://serverspace.com.br/support/help/renovate-atualizacoes-automaticas-de-dependencias-github-bot-para-projetos.md Saiba como usar o Renovate para atualizar automaticamente as dependências de seu projeto. Personalização, integração com o GitHub, suporte para npm, Docker, Python e outros ecossistemas. No desenvolvimento de software moderno, gerenciamento de dependências está se tornando um aspecto cada vez mais crítico. Atualizar bibliotecas e pacotes manualmente pode ser demorado e sujeito a erros. É aqui que entra o Renovate — uma ferramenta para atualização automática de dependências. ## O que é o Renovate? O Renovate é um bot **automatizado** que monitora as dependências do seu projeto. Ele analisa o repositório, identifica referências a bibliotecas (tanto públicas quanto privadas) e, se houver versões mais recentes disponíveis, cria automaticamente **pull requests** para atualizá-las. Saiba mais e baixe no [GitHub](https://github.com/renovatebot/renovate) ## Por que o Renovate é útil na prática No desenvolvimento real, um projeto pode ter dezenas ou até centenas de dependências. Atualizá-las manualmente é difícil, e versões desatualizadas podem causar: - problemas de compatibilidade, - vulnerabilidades de segurança, - impossibilidade de usar novos recursos das bibliotecas. O Renovate resolve esses problemas automaticamente, mantendo **seu projeto atualizado e seguro**. ## Principais funcionalidades do Renovate - **Atualização automática de dependências** O Renovate verifica novas versões de bibliotecas e as atualiza sem intervenção humana. - **Suporte a múltiplos gerenciadores de pacotes** A ferramenta funciona com npm, Yarn, Docker, Maven, Python, Go e muitos outros ecossistemas. - **Configuração flexível** Você pode definir regras sobre quando e como criar pull requests, agrupar dependências ou ignorar pacotes específicos. - **Integração com CI/CD** O Renovate se integra com GitHub, GitLab, Bitbucket e outras plataformas, criando pull requests diretamente no seu fluxo de trabalho. ## Como instalar e configurar o Renovate ### GitHub App - Acesse a [página do Renovate GitHub App](https://github.com/marketplace/renovate) - Clique em **Install** e selecione os repositórios que deseja conectar. ### Via CLI ou Docker Instale o Renovate globalmente: ```bash npm install -g renovate ``` Ou use Docker: ```bash docker run --rm -v $(pwd):/mnt renovate/renovate ``` ### Configuração Crie um arquivo `renovate.json` na raiz do seu repositório. Exemplo de configuração básica: ```json { "extends": ["config:base"], "automerge": true } ``` Personalize as regras de atualização, grupos de dependências e frequência de verificação conforme necessário. ### Trabalhando com Pull Requests Após a primeira execução, o Renovate criará pull requests para atualizações. Revise, teste e mescle na sua branch principal. ## Conclusão O **Renovate** é uma ferramenta essencial para desenvolvedores que desejam manter seus projetos atualizados sem esforço extra. Automatizar atualizações de dependências reduz o risco de erros, aumenta a segurança e economiza tempo da equipe. ## FAQ - **P: O Renovate funciona com repositórios privados?** R: Sim, o Renovate suporta dependências privadas e pode trabalhar com tokens de acesso. - **P: É possível configurar a frequência das atualizações?** R: Sim, no arquivo `renovate.json` você pode definir com que frequência as dependências serão verificadas (diariamente, semanalmente, etc.). - **P: O Renovate pode mesclar atualizações automaticamente?** R: Sim, com a opção `automerge: true`, os pull requests serão mesclados após passarem nos testes com sucesso. - **P: Quais linguagens e gerenciadores de pacotes são suportados?** R: npm, Yarn, Docker, Maven, Python, Go, PHP, Rust e muitos outros. https://serverspace.com.br/support/help/walrus-uma-plataforma-de-streaming-de-mensagens-distribuidas-instalacao-e-uso.md Saiba o que é o Walrus - uma plataforma de streaming de mensagens tolerante a falhas e de alto desempenho. Um guia para instalar, criar tops e publicar mensagens com exemplos e um link para o GitHub. **Walrus** é uma plataforma moderna de streaming de mensagens distribuída que oferece alto desempenho, tolerância a falhas e escalabilidade. É ideal para microsserviços, sistemas de logging, análises em tempo real e qualquer aplicação onde a entrega confiável de dados seja crítica. Repositório do projeto: [Walrus no GitHub](https://github.com/nubskr/walrus) ## Por que Walrus é necessário Walrus é perfeito para aplicações que exigem alta confiabilidade e streams de dados escaláveis. Exemplos de uso: - Processamento de grandes fluxos de eventos em tempo real. - Sistemas de logging e monitoramento. - Arquitetura de microsserviços com troca de mensagens. - Construção de processos ETL e análises de dados em tempo real. Principais vantagens: - **Tolerância a falhas** - rotação automática de líderes e replicação de dados. - **Alto desempenho** - a estrutura de armazenamento baseada em logs garante acesso rápido às mensagens. - **Escalabilidade** - segmentação e distribuição de carga entre os nós. ## Cenários reais de uso do Walrus Walrus é adequado para uma ampla variedade de tarefas onde o alto desempenho e a confiabilidade do streaming de mensagens são importantes. Por exemplo, aplicações web podem usá-lo para transmitir logs e eventos de usuários em tempo real, ajudando a detectar erros rapidamente e analisar o comportamento dos clientes. Na arquitetura de microsserviços, o Walrus atua como um intermediário confiável para troca de mensagens entre serviços, garantindo consistência e tolerância a falhas. Além disso, a plataforma é excelente para construção de processos ETL e sistemas de análise, onde dados de diferentes fontes são coletados, processados e transmitidos em tempo real para processamento e visualização adicionais. ## Como o Walrus funciona O Walrus é projetado como um sistema distribuído de streaming de mensagens que combina um motor de logs de alto desempenho com consenso Raft para coordenar metadados: - **Segmentação**: Os tópicos são divididos em segmentos (aproximadamente ~1.000.000 de mensagens cada). Cada segmento possui um nó líder para onde as gravações são enviadas. Quando um segmento é preenchido, a liderança muda automaticamente para outro nó, equilibrando a carga no cluster. - **Consenso Raft**: O protocolo Raft é usado apenas para metadados — por exemplo, para concordar qual nó é responsável por qual segmento. Os dados das mensagens não passam pela camada Raft, tornando o caminho crítico de escrita muito rápido. - **Write Fencing (direitos de escrita)**: Apenas o nó líder de um segmento pode escrever nele. Isso previne situações de "split-brain", onde múltiplos nós poderiam escrever no mesmo segmento simultaneamente. - **Leitura**: Conforme os segmentos são preenchidos, eles são "selados". A leitura pode ser feita de qualquer nó que possua uma cópia do segmento selado, sem mover os dados. - **Protocolo do cliente**: Clientes (produtores e consumidores) podem se conectar a qualquer nó do cluster — o Walrus redireciona automaticamente a solicitação para o líder correto do segmento. A arquitetura do Walrus é assim: ## Instalando o Walrus Para executar o Walrus, você precisará do Go e do Docker (opcional). ### Instalação via Go Clonar o repositório ```bash git clone https://github.com/nubskr/walrus.git ``` ``` cd walrus ``` Compilar o projeto ``` go build -o walrus main.go ``` Executar ``` ./walrus ``` ### Instalação via Docker ```bash docker pull nubskr/walrus ``` ```bash docker run -d --name walrus -p 8080:8080 nubskr/walrus ``` Após iniciar, o Walrus estará disponível na porta 8080 por padrão. ## Como usar o Walrus O Walrus fornece uma API para publicação e assinatura de mensagens. Principais cenários de uso: **1. Publicação de mensagens** ```bash curl -X POST http://localhost:8080/topics/my-topic/messages \ -H "Content-Type: application/json" \ -d '{"key": "user1", "value": "Olá, Walrus!"}' ``` **2. Assinatura de mensagens** ```bash curl http://localhost:8080/topics/my-topic/subscribe ``` **3. Criar tópicos** ```bash curl -X POST http://localhost:8080/topics \ -H "Content-Type: application/json" \ -d '{"name": "my-topic", "partitions": 3}' ``` O Walrus distribui automaticamente os dados entre os segmentos e garante consistência usando o Raft. ## Conclusão **Walrus** é uma plataforma poderosa e tolerante a falhas para trabalhar com streams de dados. Comece executando localmente via Docker ou Go, crie um tópico e experimente publicar suas primeiras mensagens. Graças ao seu desempenho e escalabilidade, o Walrus se tornará uma ferramenta confiável para seu projeto. ## FAQ - **1. O Walrus é adequado para pequenos projetos?** Sim, o Walrus pode ser usado localmente para testes e projetos pequenos, mas seus pontos fortes são totalmente aproveitados em sistemas distribuídos. - **2. Como a tolerância a falhas é garantida?** Através da rotação automática de líderes e replicação de dados entre nós usando Raft. - **3. Pode ser integrado com outros sistemas?** Sim, o Walrus pode funcionar com qualquer serviço que suporte API HTTP para publicação e assinatura de mensagens. - **4. Existe documentação oficial?** A documentação completa está disponível no GitHub Walrus. https://serverspace.com.br/support/help/exemplos-de-consultas-comuns-em-mysql.md Aprenda exemplos práticos de consultas MySQL e comandos SQL: listar e criar usuários, conceder/revogar privilégios, criar bancos de dados e tabelas, além de entender por que SQL melhora segurança e performance. Por que precisamos usar SQL? O SQL oferece diversos recursos de segurança e desempenho. Por exemplo, as transações garantem que várias operações sejam executadas como um todo; se alguma operação falhar, toda a transação será desfeita. Além disso, os índices podem acelerar significativamente a execução das consultas, permitindo que o sistema de banco de dados utilize um caminho de acesso diferente da busca linear em todos os registros da tabela. Por fim, o SQL permite que usuários com pouco ou nenhum conhecimento de linguagens de programação realizem operações complexas sobre dados. Por exemplo, é muito fácil para alguém que não sabe nada sobre programação escrever uma instrução SELECT que extraia apenas sobrenomes e nomes de uma tabela com informações de funcionários. No entanto, se tentasse fazer isso em uma linguagem procedural como C ou Java, seria muito mais difícil, pois o programador teria de usar loops e outras estruturas para obter os dados no formato desejado. Por esse motivo, vamos considerar comandos comuns para melhorar suas habilidades de navegação em sistemas de SGBD! ## Como ver usuários? Primeiro, precisamos fazer login no sistema via localhost ou por meio de uma conexão remota. No segundo caso, você deve substituir localhost pelo endereço IP do servidor MySQL desejado e indicar o nome do usuário correspondente. Por exemplo, vamos nos conectar localmente: ```bash mysql -u root -h localhost -p ``` Captura de tela nº 1 — Conexão ```bash mysql -u jhon -h 76.56.32.1 -p ``` Pronto, agora estamos no sistema. Em seguida, podemos listar os usuários do nosso banco de dados. As contas do sistema e as configurações também são armazenadas no banco de dados, então podemos acessá-las por meio de uma consulta SQL comum: ```sql SELECT user, host FROM mysql.user; ``` Captura de tela nº 2 — Seleção Na imagem, você pode ver a tabela formada a partir das colunas user e host, que selecionamos da tabela user. O operador SELECT indica quais colunas serão consultadas, e FROM indica de qual tabela os dados serão extraídos. ## Como criar um usuário? Se não tivermos o usuário necessário ou quisermos criar um novo, devemos executar o comando abaixo: ```sql CREATE USER 'kk'@'localhost' IDENTIFIED BY 'password'; ``` Vamos verificar o resultado da criação do usuário: ```sql SELECT user, host FROM mysql.user; ``` Captura de tela nº 3 — Criação da conta No entanto, todo usuário precisa ter permissões no sistema MySQL. Por padrão, um novo usuário não possui privilégios. Esse é um ponto muito importante, pois, de acordo com os princípios básicos de segurança, devemos restringir o acesso sempre que possível: ``` GRANT ALL PRIVILEGES ON mysql.user TO 'kk'@'localhost'; ``` Captura de tela nº 4 — Concessão de privilégios Nesse ponto, concedemos privilégios ao usuário kk sobre a tabela user, atribuindo ALL (todos) os privilégios. Esse detalhe é fundamental, pois define a lista de permissões do usuário. Podemos conceder apenas permissões específicas, como REVOKE, DROP ou CREATE, de acordo com o tipo de conta. E se concedermos privilégios por engano? Podemos corrigir isso usando o comando REVOKE: ``` REVOKE ALL PRIVILEGES ON mysql.user FROM 'kk'@'localhost'; ``` Captura de tela nº 5 — Revogação de privilégios O comando REVOKE remove os direitos do usuário, e sua forma de uso é muito semelhante à do GRANT, exceto pela sintaxe com FROM. ## Como criar um banco de dados? Para isso, utilizamos um comando conhecido: ```sql CREATE DATABASE store; ``` Em seguida, podemos selecionar o banco de dados como padrão: ``` USE store ``` Captura de tela nº 6 — Criação do banco de dados Essa sintaxe cria um banco de dados com o nome store. Talvez você tenha notado que, após cada comando, há um ponto e vírgula. Ele é usado para indicar o fim de uma sequência de comandos. No entanto, algumas instruções, como o operador USE, nem sempre exigem esse formato. Como verificar o resultado das nossas ações? Basta usar o comando SHOW: ``` SHOW DATABASES; ``` E veremos o resultado! ## Como criar uma tabela? Agora podemos criar uma tabela com o comando: ```sql CREATE TABLE clothes ( id INT NOT NULL, name VARCHAR(30) NOT NULL ); ``` Aqui, CREATE TABLE é o operador principal, clothes é o nome da tabela, id é a primeira coluna com tipo de dado inteiro (INT) e a opção NOT NULL. O mesmo se aplica à coluna name. Para verificar o resultado, usamos: ``` SHOW TABLES; ``` Ou podemos ver a estrutura da tabela criada com o comando: ``` DESCRIBE clothes; ``` Captura de tela nº 7 — Operador DESCRIBE Captura de tela nº 8 — Descrição da tabela Na imagem, podemos ver o resultado das nossas manipulações. A compreensão e o uso do SQL são fundamentais para melhorar a segurança e o desempenho dos sistemas de gerenciamento de bancos de dados. O suporte do SQL a transações garante a integridade das operações, enquanto recursos como índices contribuem para a execução eficiente de consultas. Além disso, o SQL permite que pessoas com conhecimento limitado em programação realizem operações complexas sobre dados com facilidade. https://serverspace.com.br/support/help/ferramenta-de-teste-de-estresse-para-o-seu-servidor.md Aprenda como usar a ferramenta de teste de estresse sysbench para avaliar o desempenho da CPU do servidor. Descubra como medir a carga, testar múltiplos threads e otimizar a performance antes da implementação. ## O que é uma ferramenta de teste de estresse? As ferramentas de teste de estresse são uma parte vital de qualquer processo de desenvolvimento de software ou otimização de sistemas, pois permitem que os desenvolvedores identifiquem problemas potenciais com seus sistemas antes de implementá-los. Vale destacar que isso não tem nada diretamente relacionado à experiência do usuário — o único objetivo é garantir uma operação suave e sem falhas para todas as partes envolvidas, incluindo clientes/usuários! Aqui estão algumas razões pelas quais esses instrumentos são benéficos: - As ferramentas de teste de estresse fornecem insights sobre como o software responderá sob condições de carga pesada — Isso é crucial, especialmente se você está lançando ou redesenhando um serviço online de alto tráfego, onde não há margem para falhas de desempenho (ou seja, reclamações de suporte ao cliente). Um exame minucioso dos tempos de resposta do sistema ajuda a identificar pontos fracos que precisam de ajustes e permite uma distribuição otimizada dos recursos no lado do servidor sem causar gargalos. - Testar o software sob carga pesada é necessário, pois revela potenciais bugs/falhas — Quanto mais testes de estresse você realizar, maior será a probabilidade de encontrar problemas no sistema (que poderiam ser negligenciados com métodos convencionais). Por exemplo: rodar dois ou três jogos populares de navegador em sequência rápida em hardware idêntico pode revelar uma incompatibilidade entre diferentes versões; ao tentar enviar/transferir um arquivo grande simultaneamente por vários dispositivos, pode-se verificar se há largura de banda suficiente para suportar todos os usuários ao mesmo tempo. - As ferramentas de teste de estresse fornecem estatísticas/medições valiosas — Essas informações podem ser usadas por administradores e desenvolvedores durante verificações de manutenção do sistema (ou ao solucionar problemas). Neste guia, vamos analisar um exemplo de ferramenta de teste de estresse para testar a CPU! ## Uso prático Comumente, para estimar como o sistema funcionará em produção, precisamos fazer um planejamento. Dividimos o sistema em várias partes: software, hardware e rede. Todos esses elementos precisam ser analisados com valores médios de desempenho. Nesta parte do guia, vamos considerar a estimativa da CPU do servidor em uma máquina Linux, que ocupa uma grande parte dos servidores de produtos no mundo. Além disso, o processo do sistema influencia a velocidade dos discos, a RAM etc. Primeiro, antes de qualquer manipulação, é necessário atualizar os pacotes do sistema com o comando abaixo: ```bash apt update && apt upgrade -y ``` Captura de tela nº1 — Atualização de pacotes Usaremos o sysbench para realizar um teste intenso e rápido do nosso servidor sem a necessidade de instalar softwares complexos, o que pode ser útil quando precisamos estimar o servidor em um prazo determinado. O processo de instalação não é complicado: ```bash apt install sysbench ``` Captura de tela nº2 — APT Aguarde até o processo ser concluído e agora podemos usar a ferramenta para o teste. Pare qualquer serviço ou daemon desnecessário que não será utilizado no sistema. A sintaxe do comando fica assim: sysbench [opções] [testname], sendo que a multitool também pode verificar RAM, sistema de I/O etc., mas focaremos na seção de CPU. Para o teste, use o comando: ``` sysbench cpu --cpu-max-prime=30000 run ``` Captura de tela nº3 — Exemplo de uso Na imagem, você pode ver diferentes métricas: velocidade, latência e justiça das threads. Realizamos o teste resolvendo 30.000 números primos, mas você pode escolher qualquer outro teste adequado. Por padrão, a ferramenta utiliza apenas uma das threads, mas programas modernos utilizam no mínimo duas ou mais threads. Portanto, precisamos de opções que simulem a carga de software com tráfego. Para isso, podemos usar: ``` sysbench cpu --cpu-max-prime=30000 --threads=4 run ``` Captura de tela nº4 — Exemplo de uso com threads Esse teste foi realizado em uma máquina com um processador de 1 núcleo e capacidade de processar 4 threads, mas e se aumentarmos a nossa potência? Vamos realizar o mesmo teste em uma máquina com 4 núcleos de CPU e capacidade para processar 16 threads. Para clareza do experimento, executamos o mesmo teste: ``` sysbench cpu --cpu-max-prime=30000 --threads=4 run ``` Captura de tela nº5 — Mais potência O valor médio caiu rapidamente para 6X! Além disso, essa ferramenta pode ser utilizada para comparação ou simplesmente para estimar a potência de componentes do servidor. No guia de instruções, exploramos um exemplo de uma ferramenta de teste de estresse para a CPU, focando no sysbench para máquinas Linux. O guia cobriu o processo de atualização de pacotes, instalação do sysbench e execução de testes de estresse da CPU. Os exemplos práticos mostraram como avaliar o desempenho da CPU do servidor, destacando o impacto de fatores variáveis, como o número de threads e núcleos de CPU. O guia concluiu destacando a utilidade das ferramentas de teste de estresse para comparar componentes do servidor e estimar a potência do sistema. ## FAQ - **Q1: O que é uma ferramenta de teste de estresse e por que ela é importante?** A1: As ferramentas de teste de estresse simulam cargas pesadas no seu sistema para identificar gargalos de desempenho, bugs e problemas de estabilidade antes de colocar o software ou serviço em produção. - **Q2: Por que devo usar o sysbench para testar a CPU?** A2: O sysbench é uma ferramenta leve e versátil que pode avaliar rapidamente o desempenho da CPU, além de RAM e subsistemas de I/O, sem instalações complexas — ideal para benchmark rápido e eficaz do servidor. - **Q3: Como o sysbench mede o desempenho da CPU?** A3: O sysbench executa tarefas computacionais, como o cálculo de números primos, para gerar carga na CPU e medir métricas como tempo de execução, latência e justiça das threads. - **Q4: Como posso simular uma carga de CPU multithread realista com o sysbench?** A4: Usando a opção --threads, você pode especificar o número de threads que o sysbench deve usar, permitindo simular cargas com múltiplos processos simultâneos. - **Q5: O sysbench pode ajudar a comparar CPUs de servidores diferentes?** A5: Sim, o sysbench fornece métricas mensuráveis que permitem comparar o desempenho da CPU entre diferentes máquinas ou configurações para tomar decisões informadas. - **Q6: É necessário parar outros serviços antes de realizar o teste de estresse da CPU?** A6: Recomenda-se parar serviços ou daemons desnecessários para garantir que o teste reflita com precisão o desempenho da CPU sem interferências. https://serverspace.com.br/support/help/nxs-universal-chart-grafico-helm-universal-para-kubernetes-e-openshift.md Simplifique e padronize a implementação de aplicativos no Kubernetes e no OpenShift com o nxs-universal-chart. Um Helm-chart flexível para microsserviços, CI/CD, aplicativos com estado e ambientes multiplataforma. A implantação de aplicativos no Kubernetes frequentemente exige a criação e manutenção de múltiplos Helm charts, mesmo quando os aplicativos usam padrões de deployment semelhantes. Isso leva à duplicação de configurações, aumento do custo de manutenção e práticas de deployment inconsistentes entre equipes. O nxs-universal-chart resolve esse problema, fornecendo um Helm chart único e flexível, que pode ser usado para implantar praticamente qualquer aplicativo no Kubernetes, OpenShift ou em outras plataformas compatíveis com a API nativa do Kubernetes. Neste artigo, explicamos o que é o nxs-universal-chart, como ele funciona, onde é útil na prática, como instalá-lo e respondemos às perguntas mais frequentes. ## O que é o nxs-universal-chart? O **nxs-universal-chart** é um Helm chart universal e altamente configurável, projetado para implantar qualquer aplicativo em ambientes Kubernetes. Em vez de criar um chart separado para cada serviço, as equipes podem reutilizar este chart universal e configurar completamente seu comportamento através de arquivos *values*. O chart suporta a maioria dos recursos comuns do Kubernetes e padrões de deployment "prontos para uso", incluindo: - Deployments, StatefulSets e Jobs - Services e Ingress - ConfigMaps e Secrets - Autoescalonamento (HPA) - Limites e solicitações de recursos - Node affinity, tolerations e security context Repositório no GitHub: [https://github.com/nixys/nxs-universal-chart](https://github.com/nixys/nxs-universal-chart) ## Por que usar o nxs-universal-chart? Em muitas organizações, os deployments seguem um mesmo padrão estrutural, mas diferem em detalhes de configuração, como imagens, portas, variáveis de ambiente e regras de escalonamento. Manter Helm charts separados para cada serviço torna-se ineficiente com o tempo. O nxs-universal-chart oferece: - **Um Helm chart para múltiplos aplicativos** - **Padrões unificados de deployment** - **Redução de custos de manutenção do chart** - **Integração mais rápida de novos serviços** - **Compatibilidade com Kubernetes e OpenShift** Ele é especialmente útil para equipes de plataforma e engenheiros DevOps que gerenciam muitos serviços. ## Cenários práticos de uso ### 1. Deployments padronizados de microsserviços Em uma arquitetura típica de microsserviços, dezenas ou centenas de serviços são implantados seguindo um padrão semelhante. Com o nxs-universal-chart, cada serviço pode ser implantado usando um único chart e configurando o comportamento através dos *Helm values*. Isso permite que as equipes padronizem as práticas de deployment, considerando requisitos específicos de cada serviço, como portas, variáveis de ambiente e limites de recursos. ### 2. Entrega de aplicativos amigável para CI/CD O nxs-universal-chart integra-se facilmente a pipelines CI/CD. Como toda a configuração está nos arquivos *values*, os pipelines podem implantar o mesmo aplicativo em múltiplos ambientes (development, staging, production) usando valores específicos para cada ambiente. Isso reduz o *drift* de configuração e torna os deployments mais previsíveis e repetíveis. ### 3. Compatibilidade com Kubernetes e OpenShift O chart funciona não apenas com Kubernetes vanilla, mas também com OpenShift e outros orquestradores compatíveis com Kubernetes. Isso o torna uma escolha prática para organizações com ambientes híbridos ou multiplataforma. ### 4. Prototipagem rápida e clonagem de ambientes Como não é necessário desenvolver charts personalizados, novos ambientes podem ser implantados rapidamente. As equipes podem clonar facilmente ambientes existentes ou criar ambientes temporários de preview, reutilizando o mesmo chart com valores alterados. ## Guia de instalação A seguir, o processo básico de instalação usando Helm. **Requisitos** - Cluster Kubernetes ou OpenShift - Helm 3 instalado - Acesso ao registry de contêineres com as imagens do aplicativo ### Passo 1: Adicionar o repositório do chart ou clonar o repositório Você pode clonar o repositório diretamente: ```bash git clone https://github.com/nixys/nxs-universal-chart.git ``` ``` cd nxs-universal-chart ``` ### Passo 2: Configurar os values Crie um arquivo *values.yaml* com a descrição do seu aplicativo, por exemplo: ```bash image: repository: nginx tag: latest service: enabled: true ports: port: 80 targetPort: 80 replicaCount: 2 ``` Todo o comportamento do deployment é controlado através desta configuração. ### Passo 3: Instalar o aplicativo Instale o chart usando Helm: ``` helm install my-app ./nxs-universal-chart -f values.yaml ``` O Helm irá gerar e aplicar os recursos do Kubernetes necessários com base nos values fornecidos. ## FAQ – Perguntas frequentes - **O nxs-universal-chart é adequado para produção?** Sim. O chart suporta recursos de produção, como limites de recursos, autoescalonamento, health checks e configurações de segurança. A prontidão para produção depende principalmente da configuração correta dos *values*. - **Ele pode substituir completamente charts personalizados?** Em muitos casos, sim. Para deployments padrão de aplicativos, o nxs-universal-chart pode substituir completamente charts personalizados. No entanto, cargas de trabalho muito complexas ou especializadas ainda podem exigir templates customizados. - **Suporta aplicativos Stateful?** Sim. O chart suporta StatefulSets, tornando-o adequado para workloads stateful, desde que o armazenamento seja configurado corretamente. - **Quão flexível é o chart?** A maioria das opções comuns do Kubernetes está disponível através dos *values*, permitindo ajustar profundamente o comportamento sem alterar o chart em si. ## Conclusão O **nxs-universal-chart** é uma solução prática para equipes que desejam simplificar e padronizar a implantação de aplicativos em Kubernetes e OpenShift. Usando um único Helm chart altamente configurável, as organizações podem reduzir duplicações, aumentar a consistência e acelerar a entrega de aplicativos em diferentes ambientes. Se sua equipe gerencia muitos serviços semelhantes ou quer reduzir os custos operacionais de manter múltiplos Helm charts, o nxs-universal-chart é uma escolha confiável e flexível. Repositório oficial: [https://github.com/nixys/nxs-universal-chart](https://github.com/nixys/nxs-universal-chart) https://serverspace.com.br/support/help/o-databasus-e-uma-solucao-gratuita-de-backup-de-banco-de-dados-auto-hospedado.md O Databasus é uma ferramenta de backup de banco de dados de código aberto. Crie backups programados, armazene-os no S3, Google Drive, FTP e receba notificações no Slack, Discord ou Telegram. Proteção segura de dados para equipes e DevOps. Backups confiáveis são uma parte crítica de qualquer infraestrutura de produção. Bancos de dados frequentemente contêm os dados mais valiosos de um sistema, e a sua perda devido a falhas de hardware, configuração incorreta ou erro humano pode causar longos períodos de inatividade e perdas financeiras significativas. Embora existam muitas soluções de backup, nem todas são flexíveis, transparentes e fáceis de hospedar por conta própria. Databasus é uma ferramenta gratuita, de código aberto e auto-hospedada, projetada especificamente para backup de bancos de dados. Ela permite que equipes e desenvolvedores individuais criem backups agendados, armazenem-nos em diferentes repositórios externos e recebam notificações em tempo real sobre o progresso e os resultados dos backups. O Databasus é focado em simplicidade, extensibilidade e controle total sobre seus dados, tornando-o uma ótima escolha para pequenas equipes, startups e infraestrutura auto-gerenciada. ## Para que serve o Databasus? O objetivo principal do Databasus é automatizar e centralizar o gerenciamento de backups de bancos de dados, garantindo transparência sobre o status e possíveis erros. Principais casos de uso: - **Backup automático de bancos de dados de produção e staging** - **Gerenciamento centralizado de backups de múltiplos bancos de dados** - **Armazenamento de backups em repositórios remotos para recuperação de desastres** - **Notificações em tempo real sobre sucesso ou falha dos backups** - **Alternativa auto-hospedada a serviços de backup gerenciados** Principais funcionalidades: O Databasus oferece um pipeline de backup flexível e extensível, garantindo proteção confiável dos bancos de dados. Ele suporta backups automáticos através de tarefas configuráveis e permite armazenar arquivos de backup em diversos repositórios, incluindo S3 compatíveis, Google Drive, servidores FTP e outros storage plugáveis. A plataforma integra-se com sistemas de notificação populares, como Slack, Discord e Telegram, possibilitando atualizações em tempo real sobre o progresso e resultados dos backups. Com código totalmente aberto e auto-hospedado, o Databasus fornece controle completo sobre configuração, dados e infraestrutura, enquanto seu monitoramento integrado permite acompanhar de forma clara a execução, erros e sucesso das operações. ## Visão geral da arquitetura Em alto nível, o Databasus funciona como um serviço centralizado de backup, onde bancos de dados são definidos como objetos de backup e as tarefas podem ser executadas de forma agendada ou manual. A cada execução, são criados artefatos de backup que são enviados para um ou mais repositórios configurados, enquanto notificações sobre o processo e seus resultados são enviadas para plataformas de mensagens integradas. Todos os componentes do sistema operam totalmente dentro da sua infraestrutura, tornando o Databasus adequado tanto para implantações simples em um único servidor quanto para ambientes distribuídos mais complexos. ## Instalação ### Requisitos - Servidor Linux ou ambiente de contêiner - Docker e Docker Compose (recomendado) - Credenciais de acesso aos bancos de dados - Credenciais para os repositórios escolhidos ### Passo 1: Clonando o repositório ```bash git clone https://github.com/databasus/databasus.git ``` ``` cd databasus ``` ### Passo 2: Configuração das variáveis de ambiente O Databasus utiliza variáveis de ambiente para configuração. Copie o arquivo de exemplo: ``` cp .env.example .env ``` Edite o arquivo .env e configure: - Parâmetros de conexão com o banco de dados - Credenciais para os repositórios (S3, FTP, Google Drive etc.) - Integrações de notificação (Slack, Discord, Telegram) ### Passo 3: Executando o Databasus Usando Docker Compose: ```bash docker compose up -d ``` Isso iniciará o Databasus e os serviços necessários. ### Passo 4: Verificação do serviço Verifique se os containers estão em execução: ```bash docker ps ``` Se necessário, veja os logs: ```bash docker logs databasus ``` Após iniciado, o Databasus começará a executar as tarefas de backup configuradas. ## Configuração de backups Bancos de dados e cronogramas de backup são definidos via arquivos de configuração ou variáveis de ambiente (dependendo do seu ambiente). Cada tarefa pode especificar: - Tipo de banco de dados e parâmetros de conexão - Agendamento do backup - Repositórios de destino - Canais de notificação Isso permite criar estratégias de backup flexíveis, por exemplo, cópias diárias no S3 e semanais no Google Drive. ## FAQ – Perguntas frequentes - **Quais bancos de dados o Databasus suporta?** O Databasus é projetado para trabalhar com bancos de dados comuns. O suporte específico depende dos drivers disponíveis e da configuração, podendo ser expandido conforme necessário. - **É possível usar múltiplos repositórios simultaneamente?** Sim. O Databasus permite enviar backups para múltiplos repositórios ao mesmo tempo para maior confiabilidade. - **O Databasus é adequado para produção?** Sim, especialmente para pequenas e médias infraestruturas. Como qualquer sistema de backup, recomenda-se testar regularmente os procedimentos de restauração. - **O Databasus criptografa os backups?** A criptografia depende da configuração do repositório. Por exemplo, repositórios compatíveis com S3 podem usar criptografia do lado do servidor, e níveis adicionais de criptografia podem ser configurados manualmente. - **É possível restaurar bancos de dados usando o Databasus?** O Databasus foca na criação e armazenamento de backups. A restauração geralmente é feita manualmente usando os arquivos gerados. ## Conclusão O Databasus é uma solução prática e transparente para equipes que desejam controle total sobre seus backups sem depender de serviços proprietários. Com suporte a múltiplos repositórios, notificações em tempo real e código totalmente aberto, ele é ideal para infraestruturas self-hosted e orientadas a DevOps. Para desenvolvedores e equipes de infraestrutura que buscam uma plataforma leve e flexível para backup, o Databasus oferece proteção confiável para bancos de dados. Repositório: Databasus — ferramenta auto-hospedada e de código aberto para backup de bancos de dados e notificações: [https://github.com/databasus/databasus](https://github.com/databasus/databasus) https://serverspace.com.br/support/help/como-reduzir-a-latencia-do-kubernetes-um-guia-para-otimizar-redes-dns-e-desempenho.md Aprenda como reduzir a latência no Kubernetes usando IPVS kube-proxy, eBPF e Cilium, NodeLocal DNSCache, configuração TCP e Multi-NIC. Otimize o desempenho da rede e do cluster para microsserviços e aplicações de alta carga. **Alta latência (latency)** no Kubernetes pode rapidamente se tornar um problema sério para engenheiros DevOps. Ela impacta a responsividade dos aplicativos, aumenta os tempos limite das requisições e frequentemente resulta em uma experiência ruim para o usuário. Felizmente, o Kubernetes oferece várias opções de tuning e melhorias arquiteturais que podem reduzir significativamente a latência de rede e de serviços. Vamos explorar as principais técnicas que ajudam a otimizar a comunicação de rede no Kubernetes e acelerar o seu cluster. ## 1. Configuração do kube-proxy: migrando de iptables para IPVS Por padrão, o kube-proxy frequentemente opera no modo iptables, que pode se tornar ineficiente à medida que o número de serviços e regras cresce. Uma alternativa mais adequada é o IPVS, que fornece balanceamento de carga mais rápido e processamento de pacotes mais eficiente. Para alternar o kube-proxy para o modo IPVS: ```bash kubectl edit configmap -n kube-system kube-proxy ``` Defina o seguinte valor: ``` mode: "ipvs" ``` ### Por que o IPVS ajuda - Balanceamento de carga mais eficiente - Menor latência em tráfego intenso - Melhor escalabilidade para clusters grandes ## 2. Uso de stack de rede baseado em eBPF (Cilium) A comunicação clássica baseada em iptables pode se tornar um gargalo em ambientes de alta largura de banda. O Cilium, que utiliza eBPF, substitui o iptables pelo processamento de pacotes no nível do kernel, aumentando significativamente o desempenho da rede. **Instalando o Cilium via Helm:** ``` helm install cilium cilium/cilium --namespace kube-system ``` **Vantagens do eBPF** - Roteamento e filtragem mais rápidos - Redução da carga na CPU - Melhor observabilidade e segurança - Menor latência de rede para serviços e pods ## 3. Ativando NodeLocal DNSCache A resolução de DNS é uma fonte oculta frequente de latência no Kubernetes. Cada solicitação DNS de um pod geralmente passa pelo CoreDNS, que pode ficar sobrecarregado. O NodeLocal DNSCache executa um cache DNS local em cada nó, reduzindo significativamente o tempo das consultas DNS. Ative-o com o comando: ```bash kubectl apply -f https://k8s.io/examples/admin/dns/nodelocaldns.yaml ``` **Resultados** Com isso, a resolução DNS se torna muito mais rápida, a carga sobre o CoreDNS diminui e o desempenho geral melhora, especialmente em arquiteturas de microsserviços, onde os serviços interagem frequentemente entre si. ## 4. Ajuste de parâmetros TCP via sysctl Os valores TCP padrão no Linux nem sempre são ideais para workloads de alto desempenho no Kubernetes. Ajustar os parâmetros do kernel reduz a latência das conexões e aumenta a largura de banda. Configurações TCP recomendadas: ``` sysctl -w net.core.somaxconn=1024 ``` ``` sysctl -w net.ipv4.tcp_tw_reuse=1 ``` ``` sysctl -w net.ipv4.tcp_max_syn_backlog=8192 ``` **Benefícios** - Processamento mais rápido de conexões - Melhor desempenho em alta concorrência - Redução de perdas na fila SYN ## 5. Uso de Multi-NIC e plugins CNI avançados Em ambientes de alta carga ou sensíveis à latência, um único interface de rede pode se tornar um gargalo. Usar múltiplas interfaces de rede (Multi-NIC) permite distribuir o tráfego de forma mais eficiente. O Multus CNI permite que os pods se conectem a múltiplas interfaces de rede simultaneamente. **Quando usar Multus** - Altas exigências de largura de banda - Workloads de baixa latência (bancos de dados, streaming, telecom) - Separação de tráfego de controle e dados ## Conclusão Reduzir a latência no Kubernetes não é apenas uma configuração isolada, mas uma otimização sistêmica de rede, DNS, parâmetros do kernel e arquitetura do cluster. Migrando kube-proxy para IPVS, adotando eBPF com Cilium, ativando NodeLocal DNSCache, ajustando parâmetros TCP e usando configurações Multi-NIC, você pode aumentar significativamente a responsividade e a estabilidade do cluster. **Essas otimizações são especialmente úteis para:** - Arquiteturas de microsserviços - Clusters de produção com alta carga - Aplicativos sensíveis à latência Comece com mudanças que tragam maior impacto no seu ambiente, meça os resultados e ajuste iterativamente a configuração. ## FAQ - **O que causa alta latência em clusters Kubernetes?** Geralmente, latência elevada é causada por roteamento ineficiente de serviços (kube-proxy com iptables), DNS sobrecarregado (CoreDNS), parâmetros TCP do Linux não otimizados e gargalos de rede em nível de CNI ou nós. Em clusters grandes ou com alta carga, esses problemas se tornam mais evidentes e afetam diretamente o tempo de resposta dos aplicativos. - **É seguro migrar o kube-proxy para IPVS em produção?** Sim. O IPVS é amplamente utilizado em ambientes de produção e oficialmente suportado pelo Kubernetes. Ainda assim, recomenda-se testar primeiro em um cluster staging, especialmente se houver configurações de rede ou firewall personalizadas. - **eBPF e Cilium são obrigatórios para reduzir latência?** Não necessariamente. IPVS e NodeLocal DNSCache já oferecem melhorias significativas de desempenho. Cilium com eBPF é recomendado para clusters de alto desempenho ou grande escala, onde eficiência máxima e observabilidade são críticas. - **O NodeLocal DNSCache funciona com a configuração existente do CoreDNS?** Sim. Ele funciona junto com o CoreDNS, atuando como uma camada de cache local, reduzindo a latência das consultas DNS sem necessidade de mudanças significativas na configuração atual. - **As otimizações TCP via sysctl são universais para todos os workloads?** Não. As configurações TCP dependem do tipo de workload e dos padrões de tráfego. Sempre faça benchmarking e teste em ambiente de staging antes de aplicar em produção. - **Quando considerar Multi-NIC ou Multus CNI?** Configurações Multi-NIC são mais úteis para workloads sensíveis à latência, de alta carga ou intensivos em rede. Em clusters pequenos ou cenários de baixo tráfego, a complexidade adicional pode não ser justificada. https://serverspace.com.br/about/blog/tecnologias-de-nuvem-no-brasil-os-principais-provedores.md Visão geral dos melhores provedores de hospedagem em nuvem do Brasil. Ele se baseia em uma análise detalhada dos prós e contras dos serviços de nuvem. Em um mundo onde a digitalização é constante e a busca pela otimização de processos empresariais não para de crescer, as tecnologias de nuvem têm se mostrado fundamentais para o sucesso operacional de empresas de todos os tamanhos. Estas soluções cloud proporcionam recursos inovadores para a gestão de infraestruturas de TI e grandes quantidades de dados, eliminando a necessidade das empresas manterem uma infraestrutura física. O que é um Servidor em Nuvem? Servidor em nuvem, ou [VPS (Servidor Privado Virtual)](https://serverspace.com.br/services/cloud-servers.md), é um computador virtual que oferece recursos e serviços computacionais pela internet. Os VPS podem ser alugados de um fornecedor de nuvem. Diferente dos servidores convencionais, que estão localizados fisicamente em escritórios ou data centers dedicados, os servidores em nuvem estão alocados em data centers que pertencem ao fornecedor ou em racks alugados. A tecnologia VPS permite que tanto empresas quanto usuários individuais economizem substancialmente nos custos com compra e manutenção de servidores próprios. Os servidores em nuvem são utilizados para uma variedade de funções, desde a criação e gestão de infraestruturas virtuais até hospedagem web, armazenamento e processamento de dados, e desenvolvimento de aplicativos. Os VPSs são altamente flexíveis; os recursos do servidor podem ser ajustados conforme as necessidades do negócio. Além disso, os principais benefícios das tecnologias de nuvem incluem a redução de custos com hardware e manutenção e melhorias significativas em medidas de segurança, como criptografia de dados, backups automáticos e proteção em múltiplos níveis, que garantem a segurança da informação. Qual é o Melhor Provedor de Nuvem? Vamos explorar alguns dos principais fornecedores de nuvem no mercado brasileiro, detalhar suas ofertas e discutir os prós e contras de cada um. [1. Serverspace - Referência em computação em nuvem no Brasil](https://serverspace.com.br/index.md) A Serverspace, que começou a oferecer seus serviços no Brasil em 2024, se destaca como um provedor inovador no mercado. Oferece infraestrutura de nuvem nas plataformas de virtualização vStack e VMware, compatíveis com sistemas como Windows, Ubuntu, Oracle, Debian, Rocky Linux, AlmaLinux, KaliLinux, Oracle e FreeBSD. Sua principal vantagem é a rápida implementação de servidores em nuvem, feita em menos de um minuto. Vantagens do Serverspace: - **Rede Extensa de Data Centers:** Com instalações em 6 data centers globais (Brasil, EUA, Holanda, Canadá, EAU e Cazaquistão), todos seguindo o padrão internacional de qualidade TIER III. - **Interface de Controle Intuitiva: **Seu painel de controle permite um gerenciamento fácil da infraestrutura, ideal para usuários com pouca experiência em administração de sistemas. - **Equipamentos de Alta Qualidade:** Utiliza equipamentos de nível empresarial com sistemas de backup automáticos para proteção contra falhas. - **Personalização Flexível:** Possibilidade de ajustar os servidores para qualquer especificação (CPU, RAM, SSD, banda larga) com opções de planos pré-definidos. Alterações podem ser feitas a qualquer momento para aumentar ou reduzir recursos. - **Modelo de Cobrança Flexível:** Não existem pagamentos fixos; as tarifas são calculadas a cada dez minutos, baseadas no uso real dos recursos. - **Programa de Afiliados:** Oferece ferramentas promocionais como links e banners após o cadastro, com bônus para compras feitas por indicados. - **Tráfego Ilimitado:** Garante escalabilidade e conectividade sem limites devido ao tráfego ilimitado oferecido. Desvantagens: - **Opções Limitadas de Servidores:** O Serverspace não disponibiliza servidores dedicados (máquinas físicas) para locação. - **Restrições de Uso:** Usuários podem ser bloqueados por envolvimento em atividades ilegais como spam e phishing. Além dos serviços de VPS, o Serverspace também oferece uma gama completa de serviços de nuvem para gerenciamento integral da infraestrutura de TI, incluindo redes públicas, privadas e encaminháveis, servidores CDN e DNS, Cloud VPN, Kubernetes e ferramentas para desenvolvedores como API, CLI e Terraform. O suporte técnico disponível 24 horas por dia, com tempo médio de resposta de 15 minutos, também representa um ponto forte na escolha deste fornecedor. [2. Hostinger - Destaque Entre os Provedores de Nuvem no Brasil.](https://www.hostinger.com.br/) Fundada em 2002, a Hostinger evoluiu para se tornar um dos maiores fornecedores de serviços de nuvem no Brasil, atendendo tanto indivíduos quanto empresas. A empresa apresenta uma variedade ampla de planos de hospedagem VPS que atendem diversas necessidades. Vantagens do Hostinger: - **Data Centers Globais:** A Hostinger possibilita a implantação de infraestrutura em diversas localidades, incluindo EUA, Reino Unido, França, Índia, Cingapura, Brasil, Lituânia e Holanda. - **Diversidade de Configurações:** São oferecidos vários planos com configurações distintas de servidores. O plano mais básico inclui 1 CPU, 4 GB de RAM e 50 GB de SSD, enquanto o mais robusto conta com 8 CPUs, 32 GB de RAM e 400 GB de SSD. - **Migração Simplificada:** A Hostinger garante a transferência completa da infraestrutura existente sem custos em até 24 horas. - **Rede de Alta Velocidade:** Utilizando fibra óptica, a infraestrutura garante velocidades de rede de até 300 Mbps, ideal para manter alta disponibilidade e uma excelente experiência em jogos online. - **Período de Avaliação:** A Hostinger oferece uma garantia de devolução do dinheiro por 30 dias para clientes insatisfeitos com os serviços. Desvantagens: - **Customização Limitada de Servidores:** Não existe a possibilidade de personalizar as configurações de servidores de maneira flexível, o que pode resultar em custos adicionais por recursos não utilizados. A Hostinger também disponibiliza uma série de recursos adicionais destinados a aumentar a segurança e a disponibilidade dos dados dos usuários. Esses recursos incluem proteção contra DDoS, backups automáticos, certificados SSL gratuitos e suporte técnico contínuo (24/7). Adicionalmente, a Hostinger emprega a mais moderna tecnologia de armazenamento SSD NVMe e processadores AMD EPYC em servidores HPE e DELL para assegurar performance e confiabilidade superiores. [3. HostGator - Um Provedor de Serviços em Nuvem Renomado no Brasil.](https://www.hostgator.com.br/) HostGator, conhecida globalmente por sua excelência e qualidade de serviço, expandiu suas atividades para o Brasil em 2007. Os servidores VPS da HostGator oferecem alto desempenho e controle completo, sendo perfeitos para o crescimento empresarial, com quatro opções de planos desenhados para diversas necessidades. Vantagens do HostGator: - **Servidor Linux Dedicado: **A HostGator disponibiliza infraestrutura em servidores VPS operando com sistema Linux. - **Variedade de Planos:** Existem diversas opções de planos, desde o básico com 3 CPUs, 4 GB de RAM e 160 GB de SSD, até o mais avançado com 8 CPUs, 10 GB de RAM e 260 GB de SSD. - **Desempenho Superior:** Utilizando equipamentos de última geração, os servidores da HostGator processam dados até dez vezes mais rápido que os de muitos concorrentes. - **Migração Facilitada:** A plataforma possibilita a migração sem custos de até 30 websites para um VPS HostGator, além de uma configuração rápida, completada em apenas duas horas após a confirmação do contrato. - **SSL Gratuito:** Oferece criptografía SSL (RSA 2048-4096) sem custo adicional. Desvantagens: - **Limitação de Data Center:** HostGator possui apenas um data center, restringindo a implementação de VMs em outros países. - **Configuração de Servidor Inflexível:** Não permite ajustes flexíveis nas configurações dos servidores. O suporte ao cliente da HostGator está disponível 24 horas por dia, 7 dias por semana, em português, garantindo resolução eficiente de qualquer problema. A empresa é reconhecida por sua confiabilidade, ampla gama de serviços e excepcional suporte ao cliente, o que significa que optar pela HostGator é escolher soluções prontas para qualquer desafio. [4. Locaweb - Uma Líder em Hospedagem no Brasil.](https://www.locaweb.com.br/) Fundada em 1997 e com sede em São Paulo, a Locaweb é uma das líderes de mercado em hospedagem web no Brasil, famosa por sua infraestrutura de alto desempenho com servidores modernos e tecnologia de ponta, resultando em baixa latência e respostas rápidas. Os planos VPS da Locaweb são ideais para uma ampla gama de aplicações, de pequenos sites a grandes projetos, e estão disponíveis para sistemas Linux e Windows. Vantagens da Locaweb: - **Configuração Flexível:** Permite personalização completa das configurações de servidor, com clientes pagando apenas pelos recursos que efetivamente utilizam. - **Banco de Dados SQL Gratuito:** Todos os planos e configurações incluem um banco de dados SQL já instalado sem custos adicionais. - **Performance Elevada:** Seus servidores com SSD são até dez vezes mais rápidos que os HDDs convencionais, melhorando significativamente o desempenho diário. - **Diversidade de Sistemas Operacionais:** Oferece servidores que suportam múltiplos sistemas operacionais, incluindo Windows, Debian, Ubuntu, e RockyLinux. - **Migração Sem Custos:** A migração de websites e emails é realizada gratuitamente. Desvantagens: - **Pouca Diversidade de Data Centers:** Todos os centros de dados da Locaweb estão situados no Brasil, o que pode ser um limitador para clientes internacionais. - **Custos Elevados:** Os serviços da Locaweb tendem a ser mais caros se comparados aos de outros competidores no mercado. A Locaweb se destaca por seu excepcional suporte ao cliente e por uma variedade de soluções que justificam um investimento maior, sendo frequentemente elogiada pelos usuários devido ao foco na satisfação do cliente. [5. UOLhost - Um dos Líderes em Serviços de Internet no Brasil.](https://uolhost.uol.com.br/) O UOLhost se destaca como um dos principais provedores de serviços de Internet no Brasil, com uma oferta de servidores virtuais escaláveis, soluções de armazenamento, bancos de dados, e outros serviços baseados em nuvem. Diversos planos estão disponíveis, cada um com um conjunto único de ferramentas e recursos. Vantagens do UOLhost: - **Configuração Flexível:** A seleção de uma CPU ajusta automaticamente os outros parâmetros para os níveis mínimos necessários, com a opção de aumentar conforme necessário. - **Alta Performance:** O uso de SSDs modernos e eficientes melhora significativamente as operações do dia a dia em comparação aos HDDs convencionais. - **VPS Dedicado para WordPress:** O UOLhost disponibiliza um servidor VPS especialmente para usuários que querem desenvolver sites em WordPress, facilitando e otimizando o processo. - **Ampla Escolha de Sistemas Operacionais:** Suporta diversos sistemas operacionais, incluindo Windows, Ubuntu, e CentOS. Desvantagens: - **Limitação de Localização dos Data Centers:** Não é possível escolher locais de data centers fora dos já existentes. Os clientes do UOLhost beneficiam-se de contas de e-mail ilimitadas, podem hospedar até 30 sites em todos os planos, e têm acesso a um endereço IP dedicado, infraestrutura gerenciada e recursos de processamento exclusivos. [6. KingHost - Uma Empresa de Hospedagem de Referência no Brasil.](https://king.host/) Fundada em 2020, a KingHost rapidamente se estabeleceu entre os melhores provedores de nuvem no Brasil, graças à confiabilidade de seu serviço. Tornou-se popular principalmente porque todos os seus servidores estão situados no Brasil, o que reduz a latência e aumenta as velocidades de conexão. A KingHost oferece servidores VPS que operam sob os sistemas Windows ou Linux, com configurações iniciais de 1 GB de RAM e 50 GB de SSD. Vantagens do KingHost: - **Performance Superior:** Utiliza SSDs da Intel que são até dez vezes mais rápidos que os discos rígidos tradicionais. - **Painel de Controle Intuitivo:** Facilita o gerenciamento da infraestrutura através de uma interface clara e simples. - **Opções de Sistema Operacional:** Disponibiliza servidores tanto com Windows quanto com Linux. - **Período de Teste:** Oferece uma garantia de devolução do dinheiro de 7 dias após a contratação. Desvantagens: - **Único Data Center:** A infraestrutura está limitada a um único data center, restringindo a flexibilidade para alguns usuários. - **Configuração Inflexível:** Falta flexibilidade para personalizar as configurações de servidor para atender melhor às necessidades dos usuários. A equipe da KingHost monitora constantemente a carga, garante a estabilidade do website e combate proativamente os ataques cibernéticos, solidificando sua reputação como uma empresa confiável e valorizada por sua hospedagem de qualidade, incluindo serviços VPS. [7. GoDaddy - Um Gigante Global em Hospedagem Web.](https://www.godaddy.com/pt-br) Fundada em 1997, a GoDaddy é uma das maiores e mais renomadas empresas de hospedagem web do mundo. Conhecida por sua vasta gama de serviços, campanhas de marketing intensivas e um atendimento orientado para iniciantes, a GoDaddy se destaca pelo desempenho excepcional que oferece, assegurando altas velocidades em SSD e largura de banda ilimitada. Os planos VPS da GoDaddy incluem um endereço IP dedicado sem custo, armazenamento em SSD e um certificado SSL gratuito no primeiro ano. Vantagens da GoDaddy: - **Servidores VDS de Alta Performance**: A GoDaddy disponibiliza servidores com recursos isolados, perfeitos para aplicações críticas. - **Diversidade de Data Centers:** É possível implantar infraestrutura em locais na América do Norte, Europa e Ásia-Pacífico. - **Melhorias em Velocidade e Tráfego:** Com SSDs NVMe e suporte do Virtuozzo, a velocidade é triplicada e o tráfego é ilimitado. - **Sistema de Notificações:** Os servidores têm um sistema de alertas integrado, facilitando o monitoramento eficiente. - **Proteção de Dados:** Inclui defesa avançada contra ataques DDoS e certificados SSL gratuitos por um ano com um IP dedicado. Desvantagens: - **Configuração de Servidor Pouco Flexível:** As opções para customização flexível de servidores são limitadas. Como uma das pioneiras do setor, a GoDaddy é profundamente comprometida com seus clientes e projetos, contribuindo significativamente para o crescimento dos websites e sistemas que hospeda. Um de seus grandes trunfos é o reconhecimento mundial no mercado de serviços em nuvem. Conclusão A variedade de provedores de nuvem disponível hoje oferece inúmeras oportunidades para empresas e usuários individuais aprimorarem suas infraestruturas e aumentarem a eficiência operacional. A escolha de um provedor adequado é essencial para o sucesso de projetos web. Cada um dos provedores mencionados possui vantagens únicas, projetadas para satisfazer as diversas necessidades dos clientes. Em um ambiente onde a tecnologia de nuvem continua evoluindo, as empresas que almejam manter-se competitivas precisam analisar o mercado cuidadosamente e escolher um provedor que se alinhe perfeitamente aos seus objetivos e exigências. https://serverspace.com.br/about/blog/comandos-basicos-do-linux-no-terminal.md Comandos populares para o gerenciamento do sistema no Linux. Trabalho com a linha de comando: arquivos, pastas, instalação de programas, etc. Adicionar aos favoritos! Linux é um sistema operacional flexível que é muito popular entre os usuários em todo o mundo. Familiarizar-se com o Linux pode parecer uma tarefa difícil no início. Neste artigo, veremos como usar o Linux, assim como veremos os comandos do console do Linux e forneceremos uma folha de referência que ajudará você a trabalhar rapidamente com a linha de comando. ## Fundamentos do terminal Linux **O terminal Linux** é uma interface de texto que permite aos usuários interagir com o sistema operacional por meio da linha de comando. Ele oferece a possibilidade de executar comandos, scripts, gerenciar arquivos e pastas, configurar o sistema e muito mais. Como abrir o terminal Linux? Isso pode ser feito de várias maneiras, dependendo do sistema e das preferências: - **Usar a interface gráfica.** A maioria das distribuições Linux tem um botão ou ícone na área de trabalho ou no menu de aplicativos destinado a abrir o terminal Linux. Normalmente, eles são chamados de "Terminal", "Konsole", "XTerm". Clique nele para abrir o terminal. - **Usar atalhos de teclado.** Algumas distribuições Linux oferecem combinações de teclas para abrir rapidamente o terminal. Por exemplo, a combinação de teclas **Ctrl + Alt + T** é frequentemente usada para essa finalidade. Tente pressionar essas teclas simultaneamente para abrir o terminal. - **Usar a pesquisa de aplicativos.** Se você não consegue encontrar o ícone do terminal, pode usar a pesquisa de aplicativos. Geralmente, há um campo de pesquisa na barra de tarefas ou no menu de aplicativos. Digite "terminal" ou "linha de comando" para encontrar o aplicativo correspondente. Depois de abrir o terminal no Linux, você verá uma linha de comando onde poderá digitar comandos do Linux e obter os resultados de sua execução. Por padrão, o terminal funciona no contexto do usuário atual. No entanto, para executar certos comandos, especialmente aqueles que requerem privilégios de administrador, pode ser necessário abrir o terminal como administrador (root). Para executar a linha de comando como administrador no Linux, você pode usar o comando sudo. Por exemplo, para abrir o terminal com privilégios de administrador, você pode digitar sudo nome_do_terminal e pressionar Enter. O sistema pode solicitar que você insira a senha do usuário com privilégios de administrador para confirmar a operação. O terminal Linux é uma ferramenta poderosa para trabalhar com o sistema operacional. Ele permite que os usuários executem várias tarefas, automatizem processos, configurem o sistema e tenham controle total sobre o computador ou servidor. Estudar e usar o terminal Linux abre novas oportunidades e ajuda a entender mais profundamente a funcionalidade do sistema operacional. ## Visão geral dos princípios básicos de trabalho no terminal Linux Existem muitas dezenas de comandos no Linux que oferecem uma ampla gama de funções e recursos. Vamos falar sobre os princípios básicos de trabalho no terminal. - **Linha de comando** O terminal oferece uma linha de comando onde você pode digitar comandos para executar várias tarefas. Os comandos são inseridos em formato de texto e, em seguida, a tecla Enter é pressionada para executá-los. No Linux, os comandos do terminal podem ser usados para trabalhar com arquivos e pastas, gerenciar processos, configurar o sistema e muito mais. - **Comandos principais** Para começar a trabalhar no terminal, você precisa conhecer os comandos principais. Estes incluem comandos para visualizar o conteúdo dos diretórios (ls), alterar o diretório atual (cd), criar diretórios (mkdir), criar arquivos (touch), copiar (cp) e mover (mv) arquivos, excluir arquivos e diretórios (rm), exibir o conteúdo de um arquivo (cat), entre muitos outros. - **Parâmetros e flags dos comandos** Muitos comandos no terminal podem aceitar parâmetros ou flags adicionais que modificam seu comportamento ou fornecem informações extras. Por exemplo, o flag **-l** do comando ls é usado para exibir o conteúdo de um diretório em formato de lista com detalhes adicionais, e o flag **-r** do comando rm indica a exclusão de arquivos e diretórios recursivamente. - **Caminho absoluto e relativo** Um caminho é a indicação da localização de um arquivo ou diretório no sistema de arquivos. No Linux, são usados caminhos absolutos, que começam com /, e caminhos relativos, que indicam a localização em relação ao diretório atual. Por exemplo, /home/user/Documents é um caminho absoluto para a pasta "Documents", enquanto Documents/notes.txt é um caminho relativo para o arquivo "notes.txt" dentro da pasta "Documents". - **Autocompletar e histórico de comandos** O terminal Linux geralmente oferece a função de autocompletar, que permite digitar as primeiras letras de um comando ou caminho e pressionar a tecla Tab para completar automaticamente o restante. Isso simplifica a digitação de caminhos ou comandos longos e complexos. Além disso, o terminal salva o histórico dos comandos inseridos, e você pode usar as setas para cima e para baixo para navegar no histórico e repetir comandos. - **Permissões e privilégios** No Linux, arquivos e diretórios possuem permissões que determinam quem pode lê-los, gravá-los e executá-los. Ao executar comandos no terminal, pode ser necessário usar privilégios de administrador (root) para realizar determinadas operações. Para isso, usa-se o comando sudo, que permite executar comandos como administrador. Agora, vamos falar sobre as categorias de comandos básicos do Linux que você pode encontrar. | Categoria | Para que serve | Descrição | Exemplos de comandos | | --- | --- | --- | --- | | Navegação no sistema | Quando é necessário se orientar no sistema de arquivos | Permite identificar o diretório atual, listar conteúdos e mover-se entre pastas | pwd; ls; cd | | Arquivos e diretórios | Criação e organização de arquivos e pastas | Usado para criar, copiar, mover ou remover arquivos e diretórios no sistema | mkdir; touch; cp; mv; rm | | Visualização de conteúdo | Quando é preciso analisar arquivos de texto | Permite visualizar arquivos completos ou parcialmente direto no terminal | cat; less; more; head; tail | | Processos do sistema | Monitoramento e controle de aplicações em execução | Ajuda a identificar consumo de recursos e encerrar processos quando necessário | ps; top; htop; kill | | Permissões e privilégios | Administração e segurança do sistema | Usado para executar comandos com privilégios elevados e gerenciar permissões | sudo; su; chmod; chown | ## Comandos para gerenciar arquivos e diretórios Com esses comandos, você pode visualizar o conteúdo dos diretórios (pastas), criar, copiar, mover e excluir arquivos, bem como executar outras operações no sistema de arquivos. Abaixo estão alguns desses comandos: - **mkdir** – comando para criar um diretório (pasta) no Linux Exemplo: mkdir ~/directory/ Basta digitar mkdir seguido do nome do novo diretório, por exemplo, mkdir Documents, para criar um diretório com o nome Documents. - **touch** – comando para criar um arquivo no Linux Exemplo: touch ~/directory/file_name Digite touch seguido do nome do novo arquivo, por exemplo, touch file.txt, para criar um arquivo vazio com o nome file.txt. O arquivo será criado no diretório de trabalho atual. - **rename** – comando para renomear um arquivo no Linux Exemplo: rename ~/directory/file_name - **mv** – comando para mover um arquivo no Linux Exemplo: mv ~/directory/file ~/mv_directory/file Para mover um arquivo para outro diretório, use o comando mv nome_do_arquivo caminho_do_diretorio. Por exemplo, mv file.txt Documents/ moverá o arquivo file.txt para a pasta Documents. Você pode especificar o caminho relativo ou absoluto para o diretório. - **cp** – comando para copiar um arquivo no Linux Exemplo: cp ~/directory/file ~/copy_directory/copy_file cp [opções] local_original caminho_para_novo_local. - **ls** – comando para listar o conteúdo do diretório atual ls [opções] diretório Exibe uma lista de arquivos e subdiretórios no diretório de trabalho atual. Por exemplo, ls ou ls -l exibirá uma lista de arquivos com informações adicionais, como permissões de acesso, tamanho e hora de modificação dos arquivos. - **cd** – comando para alterar o diretório de trabalho atual Exemplo: cd ~/Documents Você pode usar este comando para navegar para outro diretório. Por exemplo, cd Documents moverá você para o diretório Documents. - **pwd** – comando que exibe o caminho completo do diretório de trabalho atual Isso é útil quando você deseja saber em qual diretório está no momento. - **rm** – comando para remover um diretório ou arquivo no Linux Atenção: os arquivos e diretórios removidos não podem ser recuperados. Para remover arquivos, use rm file.txt. Para remover um diretório e seu conteúdo recursivamente, use rm -r directory. - **cat** – comando para exibir o conteúdo dos arquivos na tela. Por exemplo, cat file.txt exibirá o conteúdo do arquivo file.txt. - **find** – comando que busca arquivos e diretórios no Linux Realiza buscas em diretórios e suas subpastas com base em vários critérios, como nome de arquivo, tipo, tamanho, etc. ## Comandos para gerenciamento de usuários Comandos que permitem gerenciar usuários e suas contas: - **useradd** – comando usado para criar um novo usuário useradd nome_do_usuario - **passwd** – comando para definir ou alterar a senha de um usuário no Linux. Após a execução deste comando, será solicitado que você insira uma nova senha para o usuário especificado. passwd nome_do_usuario - **userdel** – comando para remover um usuário. Isso também removerá o diretório inicial do usuário, se ele existir. userdel nome_do_usuario - **usermod** – permite modificar as configurações dos usuários, como nome de usuário, diretório inicial, grupo, etc. Exemplo: usermod -d /home/new_directory john – este comando alterará o diretório inicial do usuário john para /home/new_directory. - **su** – permite mudar temporariamente para outro usuário ou se tornar superusuário (root). su nome_do_usuario - **sudo** – permite executar comandos como superusuário (root). sudo comando ## Comandos para instalação, remoção e atualização de programas No Linux, existem vários gerenciadores de pacotes que permitem gerenciar a instalação, remoção e atualização de programas. - **apt** – comando para distribuições baseadas no Debian, como Ubuntu. Instalar um programa sudo apt install nome_do_pacote Exemplo: sudo apt install firefox instalará o navegador Firefox. - Atualizar o sistema e programas sudo apt update ou sudo apt upgrade O comando apt update atualiza as listas de pacotes, enquanto apt upgrade atualiza os pacotes instalados para as versões mais recentes. - Remover um programa sudo apt remove nome_do_pacote Exemplo: sudo apt remove firefox removerá o pacote Firefox instalado. - **dnf** – comando para distribuições Fedora e CentOS. Instalar um programa sudo dnf install nome_do_pacote Exemplo: sudo dnf install firefox instalará o navegador Firefox. - Atualizar o sistema e programas sudo dnf upgrade Esse comando atualiza os pacotes instalados para as versões mais recentes. - Remover um programa sudo dnf remove nome_do_pacote Exemplo: sudo dnf remove firefox removerá o pacote Firefox instalado. ## Comandos populares para gerenciamento do sistema no Linux - **systemctl** – comando para gerenciar serviços do sistema (serviços) no Linux. Permite iniciar, parar, reiniciar e verificar o status dos serviços. sudo systemctl start – iniciará o serviço especificado. - **ps** – comando usado para visualizar a lista de processos ativos no sistema. Ele permite obter informações sobre processos em execução, seus identificadores (PID), uso de recursos, etc. - **top** – fornece monitoramento interativo do sistema e exibe uma lista de processos ativos em tempo real. Permite visualizar o uso da CPU, uso da memória e outras estatísticas do sistema. - **df** – usado para exibir informações sobre o espaço disponível em disco em várias partições do sistema de arquivos. Permite saber quanto espaço está ocupado e quanto resta em cada partição. - **free** – exibe informações sobre o uso de memória no sistema. Ela mostra a quantidade total de memória, o uso da memória RAM e do arquivo de troca (swap). - **ifconfig** ou **ip** – usados para obter informações sobre interfaces de rede e configurar parâmetros de rede, como endereço IP, máscara de sub-rede e gateway. - **shutdown** ou **reboot** – usados para desligar ou reiniciar o sistema, respectivamente. Por exemplo, sudo shutdown -h now desligará o sistema. Exploramos os comandos básicos do Linux. A folha de referência contém os principais comandos usados para gerenciar o sistema Linux. Não se esqueça de que o sistema operacional Linux oferece uma ampla gama de possibilidades de gerenciamento, portanto, existem muitos outros comandos que podem ser úteis em várias situações. ## FAQ - **Como posso acessar um servidor Linux remotamente com segurança?** Um método padrão é usar o protocolo SSH (Secure Shell), que cria uma conexão criptografada entre seu computador e o servidor remoto. Para isso você precisa de um cliente SSH e credenciais corretas (senha ou chave pública). SSH é amplamente usado para administração remota sem comprometer a segurança dos dados. - **O que é a diferença entre su e sudo?** su troca temporariamente o usuário atual por outro (geralmente root), enquanto sudo permite executar apenas um comando com privilégios de administrador mantendo sua sessão original. sudo é considerado mais seguro em ambientes de produção, porque registra ações e limita escopo de privilégios. - **Como posso automatizar tarefas repetitivas no terminal?** Tarefas rotineiras podem ser automatizadas com shell-scripts ou agendadores como cron. Por exemplo, você pode escrever uma série de comandos em um arquivo .sh e configurar cron para executá-lo em horários específicos sem intervenção manual. - **Quais cuidados devo ter ao trabalhar como root?** Como root você tem controle total do sistema, inclusive para apagar arquivos críticos. É essencial revisar cada comando antes de executar, evitar usar root para tarefas triviais e sempre fazer backup de dados importantes antes de operações que modificam muitas partes do sistema. https://serverspace.com.br/about/blog/o-que-e-hospedagem-em-nuvem.md Neste artigo, explicamos em detalhes o que é hospedagem em nuvem, suas vantagens e desvantagens, e as diferenças em relação à hospedagem virtual e VPS. Atualmente, muitas empresas e desenvolvedores enfrentam o desafio de escolher a melhor solução para hospedar seus sites e aplicativos. A hospedagem em nuvem se destaca por sua flexibilidade, escalabilidade e alto desempenho. Neste artigo, explicamos o que é hospedagem em nuvem, como funciona, suas principais aplicações, diferenças em relação à hospedagem tradicional e as vantagens desse modelo. A [hospedagem em nuvem](https://serverspace.com.br/services/vps-server/cloud-hosting.md) é um tipo de hospedagem onde sites e aplicativos são armazenados em múltiplos servidores virtuais interconectados. Em vez de depender de um único servidor físico, os dados e recursos são distribuídos em um cluster de servidores, garantindo maior disponibilidade, escalabilidade e desempenho. Esse modelo resolve muitas limitações da hospedagem compartilhada e dos servidores [VPS](https://serverspace.com.br/services/cloud-servers.md) tradicionais. ## Diferença entre hospedagem em nuvem, VPS e hospedagem compartilhada - **Hospedagem virtual** – Um servidor físico é dividido em vários servidores virtuais independentes. Cada usuário recebe uma parte dos recursos, como CPU, RAM e armazenamento, podendo hospedar seus sites e aplicativos separadamente. - **Hospedagem em nuvem** – Permite distribuir sites e aplicações entre vários servidores interconectados em um cluster. Isso garante maior disponibilidade e desempenho, pois a carga é compartilhada entre múltiplos servidores, reduzindo o risco de falhas. - **VPS (Servidor Virtual Privado)** – Cada cliente recebe um servidor virtual isolado dentro de um único servidor físico. Diferente da hospedagem em nuvem, o VPS não distribui sua carga entre vários servidores, o que pode limitar a escalabilidade e a confiabilidade. A **principal vantagem** da hospedagem em nuvem em relação ao VPS e à hospedagem virtual é a arquitetura distribuída, que melhora a estabilidade e o desempenho ao utilizar diversos servidores conectados em uma única rede. Isso permite escalar os recursos sob demanda, garantindo mais segurança e eficiência. Modelo Quando escolher Vantagens Limitações Exemplos de palavras-chave **Hospedagem de e-mail para domínio** Pequenas empresas ou startups com 3 a 50 caixas de correio, com necessidade mínima de administração Início rápido, planos claros, acordo de nível de serviço do provedor (Service Level Agreement) Limites de envio, menor flexibilidade hospedagem de e-mail para domínio; hospedagem de e-mail **Servidor de e-mail virtual (VPS)** Quando é necessário controle, definição de políticas, integrações e crescimento para mais de 200 caixas de correio Flexibilidade, possibilidade de expansão, criação de um contorno próprio de reputação de envio de e-mails São necessários conhecimentos de administração e monitoramento servidor de e-mail em VPS; servidor de e-mail virtual **Servidor de e-mail em nuvem** Equipes distribuídas geograficamente, com exigência de alta disponibilidade Elasticidade, redundância, expansão rápida O custo em grandes volumes é maior do que na hospedagem compartilhada servidor de e-mail em nuvem; hospedagem de e-mail corporativo **Aluguel de servidor Exchange** Integração profunda com a infraestrutura Windows (Active Directory e Outlook) Ecossistema conhecido, calendário, contatos e políticas unificadas Licenciamento complexo e alto consumo de recursos aluguel de servidor Exchange; servidor de e-mail para empresas ## Vantagens e desvantagens da hospedagem em nuvem **Vantagens da hospedagem em nuvem:** - Escalabilidade: o usuário pode aumentar os recursos do servidor sem interromper o funcionamento do site. - Confiabilidade: garante alta disponibilidade e tempo de inatividade mínimo. - Disponibilidade: utiliza vários servidores, o que oferece maior estabilidade e segurança em comparação com outros tipos de hospedagem. - Facilidade de gerenciamento: o usuário pode administrar seus sites e servidores diretamente pelo painel de controle. - Flexibilidade: permite escolher e configurar apenas os serviços necessários, pagando somente pelo que for utilizado. **Desvantagens da hospedagem em nuvem:** - Custo: pode ser mais caro do que a hospedagem virtual tradicional. - Dependência do provedor: em caso de falhas, não há como intervir diretamente no processo de recuperação do servidor. - Necessidade de conexão com a internet: sem acesso à rede, não é possível utilizar os recursos armazenados na nuvem. ## Aplicações da hospedagem em nuvem A hospedagem em nuvem é utilizada para sites e aplicações que precisam de escalabilidade e alta disponibilidade. Por exemplo, ela é amplamente adotada no setor de e-commerce, permitindo a rápida expansão dos recursos do servidor durante períodos de alta demanda, como promoções e datas comemorativas. Também é essencial no ensino a distância, garantindo acesso confiável a plataformas educacionais, onde a disponibilidade dos recursos é crucial para o aprendizado online. Além disso, a hospedagem em nuvem é utilizada para o desenvolvimento de sites institucionais e aplicativos corporativos usados em empresas e escritórios remotos. Também é aplicada no armazenamento e processamento de dados em setores como saúde, finanças, indústria e muitas outras áreas. No geral, a hospedagem em nuvem tem um amplo espectro de usos, atendendo desde pequenos negócios até grandes corporações. Ela permite reduzir custos com infraestrutura de TI, eliminando a necessidade de investimentos em hardware e manutenção. ## Perspectivas da hospedagem em nuvem Nos próximos anos, espera-se um crescimento contínuo do mercado de hospedagem em nuvem. Cada vez mais empresas estão adotando [tecnologias em nuvem](https://serverspace.com.br/index.md) por oferecerem praticidade, flexibilidade e alta confiabilidade. Essas vantagens continuarão atraindo novos usuários. Além disso, a hospedagem em nuvem ajuda a reduzir custos, pois o usuário paga apenas pelos recursos consumidos, o que é especialmente importante para pequenas e médias empresas. Os provedores continuarão aprimorando seus serviços para se manterem competitivos. Outro fator importante é a integração com tecnologias emergentes, como inteligência artificial e aprendizado de máquina, que exigem alto poder computacional. A hospedagem em nuvem continuará evoluindo, levando ao desenvolvimento de novos serviços e aprimoramentos. A expansão da internet globalmente, incluindo mercados em crescimento como o Brasil, impulsionará ainda mais a demanda por hospedagem em nuvem. Também é esperado um avanço nas funcionalidades dos serviços em nuvem, como automação, monitoramento de desempenho e soluções mais integradas. O desenvolvimento de novas tecnologias, como 5G e Internet das Coisas (IoT), abrirá ainda mais possibilidades para o setor. No geral, a hospedagem em nuvem tem um futuro promissor. Seu crescimento continuará sendo impulsionado pela flexibilidade, escalabilidade e facilidade de uso, além do avanço constante de novas tecnologias e serviços. Na nuvem, o modelo costuma ser de responsabilidade compartilhada. O provedor cuida da infraestrutura física e da camada de virtualização/alta disponibilidade do ambiente. Já você segue responsável por segurança e operação do seu sistema: atualizações e patches, hardening do SO, configuração de firewall e portas, gestão de acessos (MFA, chaves, senhas), criptografia na aplicação e rotina de backups. Se você usa serviços gerenciados, parte desse trabalho diminui - mas não desaparece. ### Como escolher a região da nuvem e quando faz sentido usar multi-região? A região deve ser escolhida pensando em latência (proximidade do seu público), compliance (onde seus dados podem ficar) e risco operacional. Multi-região faz sentido quando a disponibilidade é crítica (você precisa sobreviver a uma falha regional), quando atende públicos em países diferentes com baixa latência, ou quando tem requisitos de continuidade mais exigentes. Um caminho comum é manter uma região principal e uma segunda região para réplica/backup, e usar CDN para conteúdo estático. Escalar bem não é só "aumentar recursos". Comece medindo: CPU, RAM, disco, latência e throughput. Depois defina limites práticos (por exemplo, metas de uso médio e picos aceitáveis) e escolha a estratégia: vertical (mais recursos na mesma VM) para simplicidade, horizontal (mais instâncias) para alta disponibilidade. Se houver autoscaling, defina triggers realistas e inclua cooldown para evitar "efeito ioiô". E o mais importante: faça testes de carga antes de promoções e mudanças grandes - isso evita descobrir gargalos no pior momento. ### Como garantir segurança de acesso no dia a dia (sem depender só de senha) em ambientes em nuvem? Os incidentes mais comuns começam por credenciais expostas. Boas práticas que realmente mudam o jogo: habilitar MFA onde for possível, usar chaves SSH no lugar de senha, aplicar princípio do menor privilégio (cada usuário com o mínimo necessário), separar contas/projetos por ambiente (dev/staging/prod) e registrar auditoria (logs de acesso e ações). Também vale padronizar uma rotina: revisão periódica de usuários, rotação de chaves e desativação imediata de acessos quando alguém sai do time. https://serverspace.com.br/about/blog/visao-geral-do-framework-react-js-vantagens-desvantagens-e-cenarios-de-uso.md Uma descrição detalhada da estrutura React.js: para que é usada, como funciona, casos de uso. Diremos a você como implantar um aplicativo React O que é React? O React é um popular framework JavaScript desenvolvido pela empresa Facebook (atualmente Meta). Ele fornece ferramentas para a criação de interfaces de usuário utilizando a arquitetura baseada em componentes. Uma das principais ideias do React é a descrição declarativa das interfaces de usuário por meio de componentes, tornando o código mais legível e fácil de manter. Neste artigo, faremos uma análise do framework React. O React foi apresentado pela primeira vez em 2013. Ele foi criado para resolver o problema da atualização eficiente da interface do usuário em tempo real, sem a necessidade de recarregar toda a página. Originalmente desenvolvido para aplicações web, o React rapidamente passou a ser utilizado também no desenvolvimento móvel por meio do React Native. ## Vantagens do React Para que serve o React e quais são seus benefícios? Vamos analisar abaixo. DOM Virtual O React utiliza um DOM Virtual (Document Object Model), que é uma representação interna do DOM real. Isso permite ao framework React otimizar o processo de atualização da interface, aplicando mudanças apenas às partes que realmente foram alteradas, o que melhora o desempenho. Em vez de atualizar diretamente o DOM real sempre que há mudanças, o React cria uma representação interna do DOM Virtual. Quando ocorrem alterações, o React compara as diferenças no DOM Virtual com o estado atual e aplica apenas as mudanças necessárias ao DOM real. Isso reduz a quantidade de manipulações do DOM, resultando em maior eficiência e desempenho. Graças ao DOM Virtual, o React pode agrupar várias atualizações e aplicá-las de uma só vez, reduzindo a carga sobre o navegador e melhorando a fluidez de animações e transições. Com esse processo de atualização otimizado, mesmo em aplicações que lidam com grandes volumes de dados e conteúdo dinâmico, os aplicativos React continuam responsivos. Isso é especialmente importante para garantir uma experiência de usuário positiva. Arquitetura baseada em componentes A arquitetura baseada em componentes é uma das principais vantagens do React, permitindo a reutilização de código e a criação de aplicações modulares. Dividir a interface do usuário em pequenos componentes desempenha um papel fundamental na estruturação e legibilidade do código. Esse método simplifica a manutenção do código e a adição de novas funcionalidades, pois cada componente tem uma função bem definida. Uma das maiores vantagens dessa abordagem é a possibilidade de reutilizar componentes em diferentes partes da aplicação. Isso economiza tempo de desenvolvimento e reduz a chance de erros, pois componentes testados e confiáveis podem ser facilmente incorporados a diferentes áreas do projeto. No universo do React, é possível combinar componentes para criar interfaces mais complexas a partir de blocos simples. Essa abordagem permite desenvolver interfaces flexíveis e escaláveis. Os componentes podem ser combinados e organizados para formar estruturas sofisticadas, sem complicar a interação entre eles. Comunidade ativa O React possui uma comunidade global grande e ativa, composta por desenvolvedores de todo o mundo. - Existem diversas bibliotecas e componentes prontos, que podem ser facilmente integrados a projetos para expandir suas funcionalidades. - A comunidade desenvolve constantemente ferramentas de depuração, desenvolvimento, testes e otimização de aplicações React. - Há uma enorme quantidade de cursos online, tutoriais, vídeo-aulas e documentação, tornando o aprendizado do React acessível para desenvolvedores de todos os níveis. Suporte da Meta (Facebook) O React é desenvolvido e mantido por uma equipe de engenheiros da Meta (antiga Facebook), o que garante estabilidade e confiabilidade ao framework. A empresa investe ativamente na evolução do React, promovendo melhorias contínuas e correções de erros. O suporte da Meta assegura que o React seguirá os padrões modernos e as melhores práticas de desenvolvimento, garantindo longevidade e evolução constante do framework. Compatibilidade com outras tecnologias e plataformas O React oferece flexibilidade na integração com diversas tecnologias e plataformas. O React Native é um framework para o desenvolvimento de aplicativos móveis, permitindo a criação de aplicações multiplataforma utilizando JavaScript e React. Desenvolvido pela Meta (antiga Facebook), ele permite que os desenvolvedores criem aplicativos para iOS e Android com um código compartilhado. O React Native possibilita a utilização do mesmo conceito no desenvolvimento de aplicativos móveis para diferentes plataformas, permitindo o compartilhamento de código entre web e mobile. Além disso, o React pode ser usado para renderização no servidor (Server-Side Rendering – SSR), o que melhora a otimização para SEO e o desempenho da aplicação. O framework também pode ser integrado com diversas bibliotecas e frameworks, como o Redux, utilizado para o gerenciamento de estado da aplicação. ## Desvantagens do React JSX e arquitetura Flux/Redux Para muitos iniciantes no desenvolvimento web, o JSX (linguagem de marcação que combina HTML e JavaScript) pode ser um desafio. Seu uso exige compreensão dos fundamentos do JavaScript, o que pode demandar tempo de aprendizado. Embora as arquiteturas Flux e Redux ofereçam ferramentas poderosas para o gerenciamento de estado, seus conceitos podem ser complexos para iniciantes. A implementação e a manutenção dessas estruturas podem exigir um esforço adicional. Grande responsabilidade na estrutura do projeto O React não impõe regras rígidas sobre a organização do projeto. Isso pode levar a estruturas inconsistentes, especialmente em grandes equipes, dificultando a leitura e a manutenção do código. O gerenciamento de estado no React pode ser um desafio, principalmente em aplicações complexas. A falta de padrões rígidos pode resultar em decisões inadequadas sobre a estrutura do estado, impactando o desempenho e a escalabilidade. Atualizações e compatibilidade entre versões Ao atualizar para uma nova versão do React, podem surgir problemas de compatibilidade, exigindo tempo e esforço para adaptação e testes. Alguns projetos podem conter código legado que precisa ser atualizado para garantir a compatibilidade com novas versões do React, tornando a manutenção mais trabalhosa, especialmente em sistemas mais antigos. Além disso, o ecossistema do React contém diversas versões de bibliotecas, que nem sempre são compatíveis entre si. Isso pode resultar em conflitos e erros na integração de diferentes componentes da aplicação. ## Cenários de uso do React Vamos analisar dois principais cenários de uso do React: aplicações de página única (SPA) e aplicações móveis com React Native. Aplicações de Página Única (SPA) As Single Page Applications (SPA) são aplicativos web que carregam uma única página e atualizam seu conteúdo dinamicamente, sem necessidade de recarregar toda a página. Esse modelo é especialmente útil para interfaces interativas. Exemplos comuns de SPA incluem: - Redes sociais; - Gerenciadores de tarefas; - Editores online; - Dashboards interativos; Vantagens do React para SPA: - **Alta responsividade** Graças ao DOM Virtual e ao mecanismo eficiente de atualização de componentes, as SPAs desenvolvidas em React possuem ótima velocidade de resposta e transições fluidas. - **Minimização de recarregamentos** As transições entre seções e a atualização do conteúdo acontecem sem recarregar a página, proporcionando uma experiência mais fluida para o usuário. - **Facilidade de desenvolvimento** A arquitetura baseada em componentes do React facilita a organização e manutenção do código, permitindo que o aplicativo seja dividido em partes menores e reutilizáveis. Aplicações Móveis O React Native é uma tecnologia que permite desenvolver aplicações móveis multiplataforma utilizando React. Isso significa que o mesmo código pode ser usado tanto para iOS quanto para Android. Vantagens do React Native: - **Código unificado** Os desenvolvedores podem escrever um único código para ambas as plataformas, reduzindo custos de desenvolvimento e acelerando a entrega de projetos. - **Interface nativa** Os aplicativos desenvolvidos com React Native têm aparência e comportamento nativo, garantindo uma experiência do usuário fluida e intuitiva. - **Desenvolvimento acelerado** O React Native oferece ferramentas como Hot Reload, permitindo que os desenvolvedores testem e implementem alterações rapidamente, sem necessidade de recompilar todo o aplicativo. ## Como implantar uma aplicação React A implantação de uma aplicação React envolve várias etapas, desde a preparação do código até a configuração da hospedagem. Abaixo está um guia para implantar uma aplicação React na plataforma Netlify, que oferece uma solução simples e gratuita para hospedar aplicações web estáticas. O Netlify é uma plataforma que automatiza processos de compilação, implantação e gerenciamento de sites estáticos. Esse serviço é conhecido por sua velocidade e facilidade de uso, tornando-se uma das opções mais eficientes e convenientes atualmente. - **Compilar a aplicação** Antes de implantar a aplicação, certifique-se de que ela está pronta para o processo de compilação. É necessário criar uma versão otimizada do projeto. Se estiver utilizando Create React App (CRA), execute o seguinte comando: ```bash npm run build ``` Isso criará uma versão otimizada da aplicação dentro da pasta build. - **Criar uma conta no Netlify** Acesse o site Netlify e crie uma conta gratuita. - **Adicionar um novo site ao Netlify** Após o registro, siga os passos abaixo para implantar seu aplicativo: Faça login no Netlify. - No painel principal, clique no botão "New site from Git". - Escolha a plataforma onde o repositório do seu projeto está hospedado (GitHub, GitLab ou Bitbucket). - Selecione o repositório contendo a sua aplicação React. - Autorize o Netlify a acessar seu repositório. - Escolha a branch correta (geralmente master ou main). - Configure os parâmetros de compilação: Build command: npm run build / Publish directory: build. - Clique no botão "Deploy site" para iniciar o processo de implantação. - **Definir um domínio personalizado (opcional)** Após a implantação bem-sucedida, você pode definir um domínio personalizado para o seu site no Netlify. Para isso: Acesse a aba "Domain settings" no painel do Netlify. - Siga as instruções para configurar um domínio próprio. - **Testar a aplicação** Depois que a implantação for concluída, o Netlify fornecerá um URL público para o seu aplicativo. Abra esse link em um navegador e verifique se o aplicativo está funcionando corretamente. https://serverspace.com.br/about/news/novos-modelos-de-llm-no-painel-de-controle.md Adicionamos oito modelos de linguagem - Claude 4.5, GPT-5.1, Gemini 3 Pro, Qwen3-Next e outros. Escolha o LLM ideal para chats, código, análise e automação. No [painel de controle](https://my.serverspace.com.br/gpt) da GPT API da Serverspace foi adicionado um conjunto de oito modelos de linguagem modernos. Cada um deles possui seu próprio conjunto de pontos fortes e é adequado para diferentes tarefas: - **Claude Opus 4.5** - flagship da Anthropic com capacidades máximas de raciocínio profundo e trabalho com contextos muito extensos. Adequado para análises complexas, pesquisas e projetos de múltiplas etapas. - **Claude Sonnet 4.5** - modelo equilibrado, que combina de forma bem-sucedida qualidade de lógica e velocidade de resposta. Excelente escolha para assistentes avançados, tarefas analíticas e casos de uso de negócios. - **Claude Haiku 4.5** - modelo leve e rápido de nova geração. Ideal para chats, suporte online e assistentes integrados, onde são críticos o tempo de resposta e a economia de recursos. - **GPT-5.1** - modelo flagship da OpenAI com capacidades ampliadas de raciocínio lógico e geração de texto. Adequado para assistentes complexos, análise e processos de conteúdo em nível de produção. - **GPT-5.1 Codex** - versão especializada do GPT-5.1 para trabalho com código. Ajuda a escrever, otimizar e analisar programas em linguagens de desenvolvimento populares. - **Gemini 3 Pro** - modelo universal do Google com forte compreensão de contexto e suporte a vários tipos de dados. Boa opção para assistentes, busca inteligente e aplicativos avançados. - **gpt-oss-20b** - modelo universal de porte médio com um equilíbrio bem-sucedido entre qualidade, velocidade e custo. Adequado para chatbots, assistentes internos e aplicações de nicho. - **Qwen3-Next 80B-A3B Instruct** - modelo avançado de grande porte com lógica robusta e compreensão profunda de contexto. Lida muito bem com tarefas complexas de múltiplas etapas, trabalho com código e cenários multilíngues. Agora uma única infraestrutura pode lidar com segurança com tarefas que vão de chatbots inteligentes e automação de suporte ao cliente até geração de conteúdo complexo, auxílio em programação, elaboração de relatórios analíticos e processamento de grandes volumes de dados. As equipes não estão mais presas a um único modelo universal: elas podem escolher o modelo ideal para cada cenário específico — de um diálogo rápido até um trabalho preciso com código. _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem global que oferece implantação instantânea de infraestrutura virtual com Linux, Windows e sistemas operacionais russos — de qualquer lugar do mundo, em menos de 1 minuto. Para integrar seus serviços, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/hospedagem-de-e-mail-ou-servidor-de-e-mail-corporativo.md Descubra quando escolher hospedagem de e-mail, servidor corporativo em VPS, solução em nuvem ou Exchange. Compare modelos, requisitos, segurança e implante seu servidor de e-mail na Serverspace com cobrança por hora. **Hospedagem de e-mail** é um serviço para envio e recebimento de correspondência eletrônica no seu próprio domínio. Existem várias opções: hospedagem de e-mail gerenciada para domínio, servidor de e-mail virtual, servidor de e-mail em nuvem e o clássico servidor de e-mail corporativo dentro da infraestrutura de tecnologia da informação. A seguir, analisamos em que eles diferem, para quem cada modelo é mais adequado e como implantar rapidamente um serviço de e-mail em um [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) na Serverspace. ## O que são serviços de e-mail e quais tipos existem Serviço de e-mail é um conjunto de software e hardware para entrega de mensagens (SMTP), armazenamento e leitura (IMAP/POP3), além de filtragem, arquivamento e proteção. Ele pode ser oferecido como um serviço do provedor (hospedagem de e-mail) ou ser configurado por você em um servidor dedicado. | Modelo | Quando escolher | Vantagens | Limitações | Exemplos de palavras-chave | | --- | --- | --- | --- | --- | | Hospedagem de e-mail para domínio | Pequenas empresas ou startups com 3 a 50 caixas de correio, com necessidade mínima de administração | Início rápido, planos claros, acordo de nível de serviço do provedor (Service Level Agreement) | Limites de envio, menor flexibilidade | hospedagem de e-mail para domínio; hospedagem de e-mail | | Servidor de e-mail virtual (VPS) | Quando é necessário controle, definição de políticas, integrações e crescimento para mais de 200 caixas de correio | Flexibilidade, possibilidade de expansão, criação de um contorno próprio de reputação de envio de e-mails | São necessários conhecimentos de administração e monitoramento | servidor de e-mail em VPS; servidor de e-mail virtual | | Servidor de e-mail em nuvem | Equipes distribuídas geograficamente, com exigência de alta disponibilidade | Elasticidade, redundância, expansão rápida | O custo em grandes volumes é maior do que na hospedagem compartilhada | servidor de e-mail em nuvem; hospedagem de e-mail corporativo | | Aluguel de servidor Exchange | Integração profunda com a infraestrutura Windows (Active Directory e Outlook) | Ecossistema conhecido, calendário, contatos e políticas unificadas | Licenciamento complexo e alto consumo de recursos | aluguel de servidor Exchange; servidor de e-mail para empresas | ## Como entender do que você precisa - Se você tem até cerca de 10–30 caixas de e-mail e precisa manter o custo o mais baixo possível, o mais adequado é usar hospedagem de e-mail para a organização. - Se existem de 30 a 200 ou mais caixas de e-mail e são necessárias regras próprias de envio, arquivamento e autenticação única (Single Sign-On), vale a pena usar um servidor de e-mail corporativo em VPS. - Se a empresa exige alta disponibilidade e possui vários escritórios ou filiais, o melhor é um servidor de e-mail em nuvem com replicação. - Se a infraestrutura é baseada em Windows, com uso de Outlook, Active Directory e políticas centralizadas, a opção indicada é o aluguel de um servidor Exchange em servidor dedicado ou servidor virtual. ## Base técnica: protocolos e DNS - **Simple Mail Transfer Protocol (SMTP)** — envio de mensagens de e-mail (portas 25, 465, 587). - **Internet Message Access Protocol (IMAP)** — acesso às mensagens diretamente no servidor (portas 143, 993), Post Office Protocol versão 3 (POP3) — download das mensagens para o cliente de e-mail (portas 110, 995). - **Registros de Domain Name System (DNS):** registro Mail Exchanger (MX) — para onde entregar o e-mail, Sender Policy Framework (SPF) — quem está autorizado a enviar, DomainKeys Identified Mail (DKIM) — assinatura criptográfica, Domain-based Message Authentication, Reporting and Conformance (DMARC) — política e relatórios. | Registro | Finalidade | Exemplo | Recomendações | | --- | --- | --- | --- | | MX | Indica o servidor responsável pelo recebimento de e-mails | 10 mail.example.com. | Configure vários níveis de prioridade para garantir alta disponibilidade | | SPF (TXT) | Define a lista de remetentes autorizados a enviar e-mails em nome do domínio | v=spf1 a mx ip4:203.0.113.10 ~al | Não utilize várias declarações SPF ao mesmo tempo para o mesmo domínio | | DKIM (TXT) | Assinatura criptográfica das mensagens enviadas | selector._domainkey IN TXT "v=DKIM1; k=rsa; p=" | Realize a rotação das chaves a cada 6 a 12 meses | | DMARC (TXT) | Política de tratamento das mensagens (none, quarantine, reject) | _dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com" | Comece com p=none e analise os relatórios antes de endurecer a política | ## Mini checklist de entregabilidade - Endereço de protocolo de Internet dedicado com reputação de envio limpa. - Registros Pointer (Reverse Domain Name System), Sender Policy Framework, DomainKeys Identified Mail e Domain-based Message Authentication, Reporting and Conformance configurados corretamente. - Uso de Transport Layer Security para Simple Mail Transfer Protocol e Internet Message Access Protocol (por exemplo, com Let's Encrypt) e conjuntos de cifras atualizados. - Limites de velocidade e volume de envio, filas de entrega e novas tentativas configuradas. - Filtro antispam e antivírus (por exemplo, rspamd e Clam AntiVirus), bem como listas cinzas quando necessário. ## Na prática: implantando um serviço de e-mail em um servidor virtual privado na Serverspace Precisa de hospedagem de e-mail com seu próprio domínio, controle total e capacidade de expansão? Implante um servidor de e-mail para empresas em um servidor virtual privado: uma solução flexível, sem pagar a mais por licenças desnecessárias. - **Crie um [servidor virtual](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) privado na Serverspace**. Para começar, são suficientes de duas a quatro unidades de processador virtual, de quatro a oito gigabytes de memória de acesso aleatório (memória RAM) e de quarenta a oitenta gigabytes de unidade de estado sólido. À medida que o número de usuários crescer, você poderá aumentar os recursos. - **Escolha a pilha tecnológica:** **[Linux](https://serverspace.com.br/services/vps-server/linux.md):** Postfix e Dovecot, rspamd, Clam AntiVirus, Maria DataBase ou Postgre Structured Query Language, Roundcube (cliente de webmail). - **[Windows](https://serverspace.com.br/services/vps-server/windows.md):** aluguel de servidor Microsoft Exchange em servidor virtual privado (leve em conta o licenciamento e os volumes de uso). - **Prepare o Domain Name System:** configure registros Mail Exchanger, Sender Policy Framework, DomainKeys Identified Mail e Domain-based Message Authentication, Reporting and Conformance; ajuste o registro Pointer junto ao provedor. - **Ative a segurança de transporte:** utilize Let's Encrypt ou um certificado de servidor próprio e habilite criptografia para Simple Mail Transfer Protocol, Internet Message Access Protocol e Post Office Protocol versão 3. - **Defina as políticas:** limites de envio, filtros antispam, cotas de armazenamento, cópias de segurança e monitoramento. **Por que utilizar um servidor virtual privado na Serverspace:** configuração flexível de acordo com a carga, data centers em diferentes regiões do mundo, modelo de cobrança por hora de uso transparente, rápida emissão de endereços de protocolo de Internet e um painel de controle simples. Isso cria uma base conveniente tanto para aluguel de [servidor](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) de e-mail com domínio próprio quanto para uma solução completa de hospedagem de e-mail corporativo. ## Tabela de perfis e recursos recomendados | Perfil | Recomendações para servidor virtual privado | Armazenamento | Comentário | | --- | --- | --- | --- | | Até 30 caixas de e-mail | 2 núcleos virtuais de processador e 4 gigabytes de memória RAM | 40–80 gigabytes de unidade de estado sólido | Pilha básica Postfix e Dovecot, cópia de segurança do volume uma vez por dia | | De 30 a 150 caixas de e-mail | 4 núcleos virtuais de processador e 8 gigabytes de memória RAM | 100–300 gigabytes de unidade de estado sólido | Adicione rspamd e Clam AntiVirus, mova o banco de dados para um volume separado | | De 150 a 400 caixas de e-mail | 8 núcleos virtuais de processador e 16 gigabytes de memória RAM | 0,5–1 terabyte de unidade de estado sólido | Escalonamento horizontal, armazenamento externo, fila de processamento de mensagens (queue) | ## Segurança e conformidade - Autenticação em duas etapas no painel de administração, segmentação de acesso, rotação periódica de senhas e chaves DomainKeys Identified Mail. - Criptografia em nível de disco (Linux Unified Key Setup ou BitLocker) para caixas de e-mail. - Regras de proteção contra tentativas de fraude (antiphishing), banners educativos e relatórios Domain-based Message Authentication, Reporting and Conformance (parâmetro rua). - Registros de auditoria (fail2ban, systemd-journald, Windows Event Log). - Atualizações regulares e testes periódicos de restauração a partir de cópias de segurança. ### O que é hospedagem de e-mail e para que ela serve? Hospedagem de e-mail é um serviço que permite criar e gerenciar caixas de correio usando seu próprio domínio. Ela garante envio e recebimento de mensagens por meio de protocolos como SMTP, IMAP e POP3, sendo usada tanto por empresas quanto por projetos profissionais. ### Quais são os principais tipos de hospedagem de e-mail? Existem várias opções: hospedagem de e-mail para domínio (simples e rápida), servidor de e-mail em VPS (mais controle e escalabilidade), servidor de e-mail em nuvem (alta disponibilidade) e servidor Exchange (integração com ecossistema Microsoft). ### Quais registros DNS são necessários para configurar e-mail corretamente? Os principais registros são MX (entrega de mensagens), SPF (autorização de envio), DKIM (assinatura criptográfica) e DMARC (política de segurança e relatórios). Eles garantem entregabilidade e proteção contra spam e falsificação. ### Por que usar um VPS da Serverspace para hospedar e-mail? Um VPS na Serverspace oferece flexibilidade, escalabilidade, controle total e implantação rápida. Ele permite configurar pilhas como Postfix ou Exchange, além de ajustar recursos conforme o crescimento da empresa e manter custos previsíveis. https://serverspace.com.br/about/news/comece-2026-com-sorte-gire-a-roleta-da-fortuna-serverspace.md Gire a Roleta da Fortuna Serverspace e concorra a prêmios: cashback, cupons e até 1 ano de VPS gratuito. Promoção válida para novos usuários até 30.12.2025. A época de festas é um ótimo momento para colocar um pouco de sorte boa na rotina. Neste ano, estamos celebrando o Natal e recebendo 2026 com a Roleta da Fortuna Serverspace — um mini-jogo de fim de ano em que cada novo usuário tem chance de ganhar um prêmio: de cashback e cupons até um ano inteiro de VPS gratuito. Gire a roleta e descubra com qual bônus vai começar o seu 2026. ### Como funciona: - Informe seu e-mail no formulário ao lado do botão. - Clique em **"Girar a roda"** e veja qual prêmio você recebeu. - Confira sua caixa de entrada — enviamos um e-mail com todos os detalhes. ### Regras da campanha: - Válida apenas para novos usuários que criarem conta durante o período da promoção. - Promoção ativa de **15.12.25 a 30.12.25.** - Cupons só podem ser usados dentro desse período. - Para prêmios com reais de bônus: o valor é creditado ao recarregar o saldo. - Os bônus são creditados em apenas um projeto, criado automaticamente no cadastro. E para quem já está com a gente há mais tempo, os presentes de fim de ano também já estão garantidos — eles esperam por você no painel de controle. Acesse sua conta para conferir as ofertas disponíveis e as condições de uso. Desejamos uma ótima temporada de festas e um início de 2026 cheio de resultados. _Com os votos mais calorosos, Equipe Serverspace_ https://serverspace.com.br/about/blog/ferramentas-de-ia-no-marketing-como-as-redes-neurais-estao-mudando-seo-conteudo-e-analise-de-dados.md Veja como a IA na nuvem ajuda no SEO, na produção de conteúdo e na análise de dados. Benefícios, riscos e boas práticas para usar redes neurais no marketing. A IA no marketing já passou da fase do efeito "uau" e virou aquilo que toda tecnologia realmente útil acaba virando: um instrumento para acelerar a rotina. Ela ajuda a rascunhar textos mais rápido, organizar ideias em uma estrutura clara, buscar ângulos novos, resumir relatórios e transformar dados soltos em conclusões compreensíveis. Mas, por mais poderosa que seja, vale guardar uma regra simples na cabeça: a IA não substitui marketing — ela só amplifica o que você já tem. Se o seu processo é caótico, a [IA](https://serverspace.com.br/services/api-gpt-do-serverspace.md) vai produzir caos mais rápido. Se o processo é claro, ela acelera o trabalho sem derrubar a qualidade. Este artigo traz uma visão prática de "IA na nuvem": onde ela realmente ajuda em SEO, conteúdo e análise, quais benefícios dá para esperar e quais erros costumam estragar o resultado. ## Como a IA ajuda o marketing no geral Marketing é um ciclo constante: criar uma hipótese, transformar isso em mensagem, levar ao público, medir o efeito e repetir. A IA acelera esse ciclo principalmente em três pontos. - **O primeiro é a criação de rascunhos e variações.** Onde antes você gastava bastante tempo "esquentando" para chegar em boas formulações, a IA permite gerar diversas versões em minutos. Nem tudo sai pronto para usar, mas o ponto de partida fica muito mais alto — e isso muda o ritmo do trabalho. - **O segundo é resumo e análise.** Quando você tem um volume grande de texto (anotações, e-mails, comentários, feedbacks, um relatório "cru"), a IA costuma ir bem na tarefa de "puxar o principal, mostrar padrões e sugerir hipóteses". Ela não substitui um analista, mas ajuda você a chegar mais rápido nas perguntas certas que vale checar. - **O terceiro é organização do processo.** A dor mais comum do marketing não é falta de ideias — é a falta de consistência para transformar ideias em resultado. A IA ajuda muito quando existe um "esqueleto" repetível: estrutura de artigo, template de briefing, padrões de formatação, tom de voz e lista de blocos obrigatórios. Para a IA funcionar como assistente — e não como geradora de texto aleatório — ela precisa de uma base. Em geral, bastam três coisas: um objetivo claro do material, um conjunto de "fontes de verdade" (fatos do produto, termos, condições, definições) e limites de tom (o que pode e o que não pode prometer/dizer). Sem isso, o modelo vai "chutar" — às vezes fica bonito, mas nem sempre fica correto. ## IA e SEO: menos "mágica", mais estrutura A IA não faz SEO "por você", mas ajuda muito a construir um material útil, claro e bem estruturado — e isso hoje é crítico tanto para pessoas quanto para algoritmos. - **O cenário mais prático é o planejamento da página.** Bons artigos e landing pages funcionam porque respondem perguntas reais do público. A IA ajuda a quebrar o tema em blocos lógicos: do conceito e contexto até passos práticos e nuances. Isso é especialmente útil quando você escreve para uma audiência ampla e quer evitar um texto que vire um "dialeto profissional" difícil de acompanhar. - **O segundo cenário é mapear temas próximos da intenção de busca.** Mesmo sem montar uma semântica completa, a IA pode sugerir quais dúvidas "andam junto" com o assunto. No caso desta pauta (IA no marketing), por exemplo, um texto costuma ficar melhor quando não se limita ao "o que dá para fazer", mas também inclui "como manter qualidade", "como medir efeito" e "quais riscos evitar". Isso não é inflar o texto — é aumentar a utilidade. - **O terceiro cenário é melhorar snippets e microtextos.** A IA gera variações de Title e Description e ajuda a "empacotar o sentido" em frases curtas. Isso é útil para SEO, mas também para clareza editorial: quando você vê dez descrições diferentes do mesmo conteúdo, fica mais fácil enxergar o que realmente é central e o que é secundário. Um ponto importante dos últimos anos: o conteúdo é usado não só no "Google clássico", mas também como base para respostas, resumos e recomendações. Por isso, tendem a ganhar espaço textos que trazem definições claras, conclusões curtas e blocos lógicos do tipo "o que / por que / como" — e em que o leitor encontra rápido o trecho que precisa, sem ter que atravessar um paredão de texto. ## IA e conteúdo: velocidade sem perder sentido Conteúdo é a área mais óbvia para aplicar IA — e por isso também é onde mais aparece abuso. Gerar texto é fácil. Produzir um texto com sentido, útil e vivo ainda é trabalho humano. Na prática, a IA funciona melhor como "copiloto" de redação e edição. Ela ajuda a rascunhar estrutura, sugerir títulos, fazer um primeiro draft e depois ajustar linguagem para ficar mais clara. Isso é especialmente valioso quando você precisa publicar com frequência: a IA reduz o esforço inicial, e você concentra energia (e tempo) no que realmente diferencia um bom material — lógica, precisão e uma apresentação que seja agradável de ler. Outra força é a reaproveitação inteligente. Um material pode virar vários formatos sem copiar e colar. A IA ajuda a transformar um artigo em tópicos curtos, preparar um texto de anúncio, montar um bloco para newsletter, criar variações de post para redes sociais. O efeito não é só velocidade: aumenta também a "distância percorrida" por uma única ideia, que passa a trabalhar em vários canais. ## IA e análise de dados: conclusões rápidas e hipóteses cuidadosas Em análise, a IA raramente deve ser tratada como "fonte de verdade". Mas ela é excelente para o primeiro nível do trabalho: explicar uma dinâmica, sugerir onde procurar causas e ajudar a formular perguntas para os dados. Pense numa situação comum: você tem um relatório por canais, números demais, tempo de menos, e precisa entender rápido o que aconteceu e o que fazer. A IA consegue transformar esse volume em texto claro: onde houve crescimento, onde houve queda, onde há anomalias, quais hipóteses parecem plausíveis. Isso não elimina a checagem — mas economiza um tempo enorme no "desembrulhar" do material. Outro cenário útil é analisar texto no lugar de números. Se você tem feedbacks, tickets, comentários, respostas de pesquisa, a IA ajuda a identificar temas recorrentes, agrupar dores e formular os problemas mais comuns. Para marketing, isso é ouro: muitas vezes as melhores ideias de posicionamento e ajustes de funil estão nas palavras que as pessoas usam. E, por fim, a IA ajuda a fazer a ponte entre análise e ação: sugerir próximos passos de verificação, propor perguntas para BI/CRM e organizar conclusões num formato que o time consiga discutir e executar. ## Tabela: ferramentas de IA no marketing — tarefas e benefícios | Tarefa | O que a IA faz | Saída | Benefício | O que checar manualmente | | --- | --- | --- | --- | --- | | Planejar artigo/landing page | Sugere estrutura e a lógica dos blocos | Plano H2/H3 + teses | Começo rápido | Alinhamento com objetivo e público | | Expandir o tema sem "encheção" | Propõe perguntas e subtópicos relevantes | Lista de subtópicos | Conteúdo mais completo | Cortar o que não é relevante | | Melhorar legibilidade | Simplifica frases e ajusta o ritmo do texto | Texto mais claro | Melhor retenção | Precisão de termos e sentido | | Criar meta tags | Gera variações de Title/Description | 5–10 opções | Testes mais rápidos | Unicidade e honestidade do texto | | Reaproveitar conteúdo | Adapta o material para canais diferentes | Posts / anúncio / e-mail | Mais alcance | Tom da marca e restrições | | Gerar hipóteses a partir de dados | Resume, destaca padrões e aponta anomalias | Lista de hipóteses | Decisão mais rápida | Causalidade e validação nos dados | | Resumir documento grande | Extrai o essencial e organiza os pontos principais | Resumo executivo | Economia de tempo | Nuances omitidas | | Analisar comentários e feedbacks | Agrupa temas e identifica padrões recorrentes | Temas / frequência / insights | Melhor entendimento do público | Se a amostra representa o todo | ## Riscos e regras para usar IA de forma saudável O erro mais comum é tratar a IA como fonte factual. Modelos podem soar confiantes mesmo quando erram. Por isso, tudo que envolve números, condições, linguagem jurídica, especificações de produto e qualquer afirmação "exata" precisa de verificação. A segunda armadilha é a uniformidade. Se você gera textos sem base na sua própria expertise e sem edição humana, o resultado fica liso, mas vazio — e parecido com centenas de outros. Para evitar isso, vale adicionar aquilo que a IA não "adivinha": critérios do seu time, limitações, termos da marca, estrutura real do processo, definições claras e conclusões honestas. A terceira zona de risco é confidencialidade. Não é boa ideia enviar senhas, chaves, dados pessoais de clientes ou informações internas sensíveis. Uma prática segura é anonimizar/mascarar dados e definir antes o que pode entrar em prompts e o que não pode. Se você quiser um "mínimo operacional", ele costuma ser este: primeiro defina a tarefa e o formato, depois forneça contexto e restrições, peça a estrutura, depois o rascunho, e só então revise e valide fatos. Esse fluxo preserva qualidade e coloca a IA como parte do processo — não como uma fábrica de texto. ## IA na nuvem na Serverspace A Serverspace é uma plataforma de nuvem com infraestrutura em [data centers em seis países](https://serverspace.com.br/infrastructure/data-centers.md) e modelo de pagamento conforme o uso. Além de [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), o painel de controle oferece [IA na Nuvem](https://serverspace.com.br/services/api-gpt-do-serverspace.md) (IA em nuvem): você escolhe o modelo de linguagem adequado e pode usar a IA em tarefas de marketing e produto, inclusive integrando via API. No painel, estão disponíveis os modelos: Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5, GPT-5.2, Codex Gemini 3 Pro, gpt-oss-20b, Qwen3-Next 80B-A3B Instruct, além do GPT-5.2. Dá para testar modelos diferentes em cenários diferentes — de conteúdo e tarefas de SEO até análise e ferramentas internas — e escolher o que melhor se encaixa no estilo e na previsibilidade do resultado. [Cadastre-se](https://my.serverspace.com.br/) e teste a IA na nuvem agora mesmo. ## FAQ - **Como escolher um modelo se existem vários e todos parecem "inteligentes"?** O melhor é escolher pelo seu cenário real, não pelo nome. Pegue o mesmo prompt (por exemplo, estrutura de artigo ou resumo de relatório), rode em 2–3 modelos e compare: clareza, precisão, obediência a restrições e consistência. Teste prático quase sempre vale mais do que teoria. - **Preciso sinalizar que o conteúdo foi "gerado por IA"?** Não existe uma regra única que sirva para todos os casos. Em geral, a melhor prática é manter transparência onde isso influencia confiança e cumprir políticas de plataformas quando aplicável. No fim, o que pesa é a responsabilidade editorial: utilidade, precisão e alinhamento com o que o usuário espera — independentemente de quem "digitou" o texto. - **Como criar regras internas para o time não transformar IA em fábrica de conteúdo ruim?** Funciona bem ter padrões simples: tom de voz e proibições, exigência de checagem de fatos/condições, checklist pré-publicação e um processo claro de "estrutura → rascunho → edição → validação". Assim, a IA acelera o trabalho sem baixar a barra de qualidade. - **Como medir se a IA está ajudando de verdade sem calcular ROI até o último centavo?** Comece pelo que é mensurável e direto: tempo para preparar materiais, velocidade para comentar relatórios, número de retrabalhos e estabilidade de qualidade. Se o time publica mais rápido com o mesmo (ou melhor) padrão e decide mais rápido com base em dados, o ganho já está acontecendo. https://serverspace.com.br/support/help/como-implantar-e-gerenciar-o-kubernetes.md Aprenda como instalar, configurar e administrar o Kubernetes passo a passo — desde a criação de clusters e nós até segurança, volumes persistentes e automação com CI/CD. O cenário digital moderno é marcado pelo crescimento acelerado de aplicações, serviços e soluções em nuvem, que exigem o uso eficiente de recursos. Com o aumento da capacidade computacional e a necessidade de otimização, surgiu a demanda por ferramentas que permitam: - Implantar várias aplicações no mesmo hardware. - Gerenciar recursos (CPU, RAM, armazenamento) com o mínimo de custos. - Garantir isolamento e segurança das cargas de trabalho. Simplifique o trabalho com contêineres usando [Managed Kubernetes](https://serverspace.com.br/services/managed-kubernetes.md) — escalonamento automático, balanceamento de carga e atualizações de aplicativos sem tempo de inatividade. O primeiro passo para resolver esses desafios foram os hipervisores, que permitiram executar máquinas virtuais isoladas. No entanto, com o avanço da containerização, surgiu a necessidade de soluções mais leves e flexíveis. Foi para isso que o Kubernetes foi criado. ## Definição Kubernetes (K8s) é uma plataforma aberta para orquestração de aplicativos em contêineres. Suas principais funções incluem: - Automação da implantação, escalonamento e gerenciamento de aplicações. - Otimização do uso de recursos do cluster. - Garantia de alta disponibilidade e autorrecuperação. Inicialmente desenvolvido pelo Google com base no sistema interno Borg, o Kubernetes tornou-se, em 2014, um projeto da Cloud Native Computing Foundation (CNCF). Hoje, é o padrão de fato para gerenciar sistemas distribuídos em ambientes híbridos e multicloud. ## Por que Kubernetes e não hipervisores? Diferente dos hipervisores, que trabalham com máquinas virtuais, o Kubernetes opera com contêineres — processos leves e rápidos que compartilham o mesmo sistema operacional. Isso proporciona: - Maior densidade de cargas de trabalho. - Redução de custos operacionais. - Portabilidade entre diferentes ambientes. ## Finalidade A principal finalidade do Kubernetes é automatizar o ciclo de vida de aplicações em contêineres — incluindo implantação, escalonamento, balanceamento de carga, armazenamento persistente, segurança e suporte a ambientes híbridos. Ele oferece resiliência, eficiência e um controle unificado sobre aplicações em nuvem ou infraestrutura local. O K8s resolve simultaneamente vários problemas: - Evita falhas de contêineres com processos de autorrecuperação. - Automatiza o escalonamento sem interromper serviços. - Reduz a complexidade de configuração de rede. - Melhora a utilização de recursos e elimina períodos de inatividade. ## Conceitos principais - **Deployment** — gerencia o ciclo de vida dos Pods: implantação, escalonamento e atualizações. - **Pod** — unidade mínima do Kubernetes que executa um ou mais contêineres com rede e armazenamento compartilhados. - **Service** — abstração que fornece acesso estável aos Pods via balanceamento de carga e DNS. - **ConfigMap** e **Secret** — armazenam configurações e dados sensíveis, respectivamente. - **Volume** — armazenamento persistente para Pods, preservando dados após reinicializações. - **Namespace** — divide logicamente o cluster em ambientes isolados (por exemplo, dev/prod). ## Arquitetura A arquitetura do Kubernetes é composta por duas partes: - **Control Plane (Plano de Controle)** – responsável pelo gerenciamento do cluster. - **Worker Nodes (Nós de Trabalho)** – responsáveis pela execução das cargas de trabalho. ## Requisitos de implantação Para implantar o K8s, são necessários: - Pelo menos um nó mestre (control plane) e um ou mais nós de trabalho. - Um endereço IP para cada nó. - Mínimo de 2 vCPUs e 2 GB de RAM. - Comunicação entre os nós. ## Instalação do Kubernetes 1. Atualização do sistema e instalação de dependências Instale pacotes necessários para trabalhar com os repositórios do Kubernetes e CRI-O: ```bash sudo apt update && sudo apt install -y apt-transport-https gnupg2 ``` 2. Desativar a memória swap — evita conflitos de gerenciamento de memória. ``` swapoff -a sudo rm /swap.img sed -i '/swap/d' /etc/fstab ``` 3. Ativar módulos do kernel para rede e armazenamento: ``` modprobe br_netfilter overlay echo "br_netfilter" >> /etc/modules echo "overlay" >> /etc/modules ``` 4. Habilitar o encaminhamento de IP: ``` echo 1 > /proc/sys/net/ipv4/ip_forward ``` 5. Instalar kubelet, kubeadm e kubectl: ```bash apt-get install -y kubelet kubeadm kubectl apt-mark hold kubelet kubeadm kubectl ``` 6. Instalar o CRI-O (ambiente de execução de contêineres): ```bash apt-get update apt-get install -y cri-o cri-o-runc systemctl enable crio && systemctl start crio ``` 7. Inicializar o cluster com kubeadm: ``` kubeadm init --pod-network-cidr=10.100.0.0/16 ``` 8. Adicionar um nó de trabalho (worker): ``` kubeadm join :6443 --token --discovery-token-ca-cert-hash ``` 9. Configurar acesso local via kubectl: ``` mkdir -p $HOME/.kube sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config ``` ## Gerenciamento do Kubernetes Principais comandos do kubectl Verificar recursos: ```bash kubectl get pods kubectl get nodes kubectl describe pod ``` Implantar ou atualizar: ```bash kubectl apply -f deployment.yaml kubectl create deployment nginx --image=nginx:1.25 ``` Escalonar: ```bash kubectl scale deployment/nginx --replicas=5 ``` Atualizar imagens: ```bash kubectl set image deployment/nginx nginx=nginx:1.26 kubectl rollout undo deployment/nginx ``` Excluir recursos: ```bash kubectl delete -f deployment.yaml ``` Logs e depuração ```bash kubectl logs kubectl exec -it -sh kubectl top nodes kubectl top pods ``` Configurações e segredos ConfigMap: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: app-config data: app.env: | LOG_LEVEL=INFO DB_HOST=postgres ``` Secret: ```yaml apiVersion: v1 kind: Secret metadata: name: db-secret type: Opaque data: password: dGVzdC1wYXNzd29yZA== ``` Uso em Pods: ```yaml env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-secret key: password ``` Armazenamento persistente ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi ``` Segurança RBAC: ```yaml apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: namespace: default name: pod-reader rules: - apiGroups: [""] resources: ["pods"] verbs: ["get", "list", "watch"] ``` Network Policies: ``` apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: deny-all-ingress spec: podSelector: {} policyTypes: - Ingress ``` Monitoramento e logging Ferramentas recomendadas: - Prometheus + Grafana — coleta e visualização de métricas. - EFK Stack (Elasticsearch, Fluentd, Kibana) — agregação e análise de logs. - Kubernetes Dashboard — interface web de gerenciamento. Instalação via Helm: ``` helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install prometheus prometheus-community/prometheus ``` Automação e CI/CD GitOps com Argo CD: ``` argocd app create my-app --repo https://github.com/user/repo --path manifests ``` Integração com GitLab CI: ```yaml deploy: stage: deploy script: - kubectl apply -f k8s/ ``` ## Solução de problemas Verificação de eventos do cluster: ```bash kubectl get events --sort-by=.metadata.creationTimestamp ``` Verificação do estado dos nós: ```bash kubectl describe node ``` Diagnóstico de rede: ```bash kubectl run -it --rm debug --image=nicolaka/netshoot -- sh ``` https://serverspace.com.br/articles/pgschema-gerenciamento-de-esquemas-postgresql-em-estilo-declarativo-como-no-terraform.md Descubra como o pgschema simplifica as migrações e o gerenciamento de esquemas PostgreSQL. Abordagem declarativa, automação por meio de CI/CD e GitOps, vantagens e exemplo de uso. **pgschema** é uma ferramenta de linha de comando (CLI) para trabalhar com esquemas de bancos de dados PostgreSQL em um **estilo declarativo**, semelhante à abordagem do **Terraform**. Ela permite descrever o estado desejado do esquema do banco de dados em forma de código e aplicar automaticamente as alterações para alinhar o banco existente a esse estado. A ferramenta simplifica o gerenciamento de migrações, eliminando a necessidade de escrever scripts SQL manualmente e rastrear versões de alterações. O pgschema analisa automaticamente a diferença entre o esquema atual e o esquema desejado, gera um plano de alterações e o aplica em uma transação segura. ## Para que serve o pgschema pgschema ajuda a: - automatizar o processo de atualização de esquemas PostgreSQL; - implementar a abordagem **"Database as Code"**; - integrar o gerenciamento de esquemas em pipelines de CI/CD; - controlar alterações de esquema via Git (pull request, revisão, rollback); - simplificar o gerenciamento de bancos de dados multi-tenant. ## Instalação - **Baixe o arquivo binário** do [repositório oficial no GitHub](https://github.com/pgschema/pgschema/releases). - Extraia o arquivo e adicione o binário ao PATH. - Verifique a instalação com o comando: ``` pgschema --version ``` ## Comandos principais ### 1. Remoção do dump do esquema ``` PGPASSWORD=pass pgschema dump \ --host localhost \ --db mydb \ --user postgres \ --schema public > schema.sql ``` O comando salva o estado atual do esquema no arquivo schema.sql. Esse arquivo pode ser editado manualmente — adicionar tabelas, campos, índices, etc. ### 2. Planejamento das alterações ``` PGPASSWORD=pass pgschema plan \ --host localhost \ --db mydb \ --user postgres \ --schema public \ --file schema.sql \ --output-human stdout \ --output-json plan.json ``` A ferramenta compara o estado atual do banco de dados com o arquivo de esquema e exibe um plano de alterações: ```yaml Plano: 1 para modificar. Resumo por tipo: tabelas: 1 para modificar Tabelas: ~ usuários + idade (coluna) ``` ### 3. Aplicação das alterações ``` PGPASSWORD=pass pgschema apply \ --host localhost \ --db mydb \ --user postgres \ --schema public \ --plan plan.json \ --auto-approve ``` O pgschema aplicará o plano e executará todas as consultas DDL necessárias (por exemplo, ALTER TABLE). ## Vantagens - **Abordagem declarativa** – não é necessário escrever migrações manualmente, basta editar o estado desejado. - **Sem tabela de versões** – o pgschema analisa automaticamente as diferenças entre o banco e o esquema. - **Suporte a CI/CD e GitOps** – os esquemas podem ser armazenados no repositório e gerar planos de alterações em pull requests. - **Transacionalidade** – todas as alterações são aplicadas em uma única transação, reduzindo o risco de falhas. - **Suporte a esquemas multi-tenant** – permite gerenciar múltiplos esquemas ou clientes. ## Desvantagens - **Sem suporte oficial para Windows** – requer WSL ou container. - **Sem rollback clássico** – o pgschema não mantém histórico de migrações, portanto, o desfazer de alterações deve ser manual. - **Necessita disciplina** – o arquivo de esquema deve estar sempre sincronizado com o estado real do banco. - **Compatibilidade limitada** – suporta PostgreSQL 14–17. ## Conclusão **pgschema** é uma ferramenta moderna voltada para DevOps e engenheiros que implementam infraestrutura de banco de dados como código. Ela simplifica o gerenciamento de esquemas, garante transparência e reprodutibilidade das alterações. Para equipes que trabalham com PostgreSQL em ambientes de nuvem, o pgschema é uma alternativa conveniente a sistemas de migração clássicos como Flyway ou Liquibase. ## FAQ - **O que fazer se o esquema for alterado manualmente?** O pgschema detectará as diferenças na próxima execução e sugerirá atualizar o banco ou o arquivo de esquema. É recomendável evitar alterações manuais. - **É possível usar a ferramenta com vários bancos de dados?** Sim. O pgschema suporta múltiplos esquemas e bancos - basta definir diferentes conexões e arquivos. - **É seguro aplicar alterações em produção? ** Sim, desde que você use **plan** antes de **apply** e revise as operações DDL. Sempre teste previamente em um ambiente de staging. - **O pgschema pode ser usado em CI/CD?** Sim. Ele se integra facilmente ao pipeline: passo 1 – gerar o plano (**pgschema plan**); passo 2 – revisar o plano; passo 3 – aplicar (**pgschema apply --auto-approve**). https://serverspace.com.br/support/help/configuracao-do-split-brain-dns-no-windows-server.md Aprenda a configurar o Split-Brain DNS no Windows Server 2016 e gerenciar zonas internas e externas com políticas de resolução seguras e eficientes. No segmento corporativo, encontram-se os SI (Sistemas de Informação), cuja função é garantir o armazenamento, o processamento e a transmissão de dados para os processos de negócios da empresa. Frequentemente, esses sistemas podem ser divididos para usuários internos e externos. Essa separação pode ocorrer tanto no nível do aplicativo — onde há permissões e papéis definidos — quanto no nível da rede. A segunda opção evita possíveis ataques a usuários internos e é uma solução mais orgânica, permitindo separar os servidores do SI entre a zona DMZ e o segmento interno da rede, mantendo o mesmo nome DNS. Vamos analisar a situação em detalhes! ## O que é o DNS Split? O DNS Split é uma tecnologia que adiciona um nível lógico de abstração sob a forma de políticas e zonas associadas ao servidor. Em vez de simplesmente armazenar registros e resolver consultas, o servidor agora realiza um processamento adicional. Captura nº 1 — Esquema de funcionamento O servidor analisa o scope (ou área) da zona de onde o cliente faz a solicitação e, de acordo com o endereço de origem, retorna o registro correspondente. Para entender o algoritmo de funcionamento, vamos considerar que a zona é um nome de domínio, e que ela possui objetos filhos chamados scopes ou áreas, que dividirão os endereços internos e externos. Vamos ver isso em um exemplo usando o DNS do Windows. ## Como configurar o DNS Split no servidor? Observe que o DNS deve ter interfaces configuradas na rede para receber consultas. Suponhamos que temos um recurso dodo.so, para o qual precisamos configurar resoluções de endereços diferentes nos segmentos WAN e LAN. Essa tecnologia está disponível a partir do Windows Server 2016. A Microsoft oferece duas formas de dividir as consultas: especificar explicitamente as sub-redes de clientes e vinculá-las, por meio de políticas, aos scopes das zonas; ou, de forma alternativa, vincular políticas diretamente às interfaces do servidor DNS. Vamos implementar a segunda opção. Se você ainda não possui uma zona DNS, abra o Server Manager usando a busca do Windows. No menu à esquerda, selecione DNS, clique com o botão direito e depois em DNS Manager. Novamente, clique com o botão direito sobre o servidor e escolha New Zone, onde você informará o novo domínio do servidor DNS do Windows. Em seguida, abra o terminal ou pressione Win + X e selecione PowerShell (administrador): Captura nº 2 — Windows Manager A zona no servidor DNS do Windows já está criada, agora precisamos dos scopes. Para isso, insira os seguintes comandos: ``` Add-DnsServerZoneScope -ZoneName "dodo.so" -Name "int" Add-DnsServerZoneScope -ZoneName "dodo.so" -Name "ext" ``` Captura nº 3 — Criação dos scopes Por padrão, também existe um default scope, que pode ser usado para processar as demais consultas. Vamos adicionar registros do tipo A para os dois scopes diferentes: ``` Add-DnsServerResourceRecord -ZoneName "dodo.so" -A -Name "www" -IPv4Address "192.168.1.2" -ZoneScope "ext" Add-DnsServerResourceRecord -ZoneName "dodo.so" -A -Name "www" -IPv4Address "10.0.0.2" -ZoneScope "int" ``` Captura nº 4 — Adicionando registros de recursos Agora que todos os scopes e registros estão configurados, podemos vinculá-los às interfaces do servidor usando políticas: ``` Add-DnsServerQueryResolutionPolicy -Name "Policy-Int" -Action ALLOW -ServerInterface "eq,10.0.0.3" -ZoneScope "int,1" -ZoneName dodo.so Add-DnsServerQueryResolutionPolicy -Name "Policy-Ext" -Action ALLOW -ServerInterface "eq,192.168.1.3" -ZoneScope "ext,1" -ZoneName dodo.so ``` Perfeito! Depois que todas as interfaces necessárias estiverem vinculadas, podemos verificar os registros com o comando nslookup: ``` nslookup 10.0.0.2 10.0.0.3 nslookup 192.168.1.2 192.168.1.3 ``` Como resultado, configuramos um servidor DNS que agora possui abstrações lógicas, permitindo manter um único nome de recurso para diferentes segmentos de rede. https://serverspace.com.br/articles/kaito-operador-kubernetes-para-automatizar-cargas-de-trabalho-de-ia-e-ml-servicos-de-inferencia-ajuste-fino-e-rag.md O KAITO é um operador Kubernetes de código aberto que automatiza a implantação e o gerenciamento de modelos de IA/ML. Ele oferece suporte a serviços de inferência, ajuste fino e RAG em um cluster de GPU. Saiba como executar modelos… **KAITO (Kubernetes AI Toolchain Operator)** é um operador open source que automatiza a execução e o gerenciamento de tarefas de inferência (inference) e ajuste fino (fine-tuning) de modelos AI/ML em um cluster **Kubernetes**. O projeto foi criado para que os desenvolvedores possam usar o Kubernetes não apenas para microsserviços, mas também para trabalhar com **grandes modelos de linguagem (LLM)**, IA generativa e pipelines de ML — sem a necessidade de configurar manualmente a infraestrutura de GPU, manifestos e dependências. KAITO foi aceito pela **Cloud Native Computing Foundation (CNCF)** como um projeto sandbox, o que confirma seu crescimento e abertura à comunidade. A ideia principal é descrever a carga de trabalho de IA de forma declarativa, usando CRD (Custom Resource Definition), e o operador cria automaticamente os nós, contêineres, serviços e APIs necessários. **Aplicação**: KAITO é adequado para implantar modelos LLM (como Llama 3, Phi-3, Mistral, Gemma), APIs de inferência, sistemas RAG e ajuste fino de modelos em clusters Kubernetes corporativos ou privados, incluindo nós com GPU. ## Links úteis - **GitHub do projeto:** [github.com/kaito-project/kaito](https://github.com/kaito-project/kaito) - **Documentação da Azure (exemplo de uso):** [learn.microsoft.com/en-us/azure/aks/ai-toolchain-operator](https://learn.microsoft.com/en-us/azure/aks/ai-toolchain-operator) - **Projeto CNCF Sandbox:** [cncf.io/projects/kaito](https://www.cncf.io/projects/kaito/) - **Blog sobre KAITO e IA no Kubernetes:** [blog.aks.azure.com](https://blog.aks.azure.com/2024/08/23/fine-tuning-language-models-with-kaito) - **Exemplos de CRD e YAML:** [examples/ no GitHub](https://github.com/kaito-project/kaito/tree/main/examples) ## Arquitetura e componentes principais KAITO é construído com base no **Kubernetes Operator Pattern** e usa controladores que monitoram o estado de recursos personalizados e criam automaticamente a infraestrutura necessária para a carga de IA. Componentes principais: | Componente | Função | | --- | --- | | KAITO Controller | Gerencia os recursos do usuário, cria nós e implanta workloads. | | CRD (Custom Resource Definitions) | Tipos principais de recursos: Workspace, RAGEngine, Preset, InferenceService. | | Presets | Perfis de modelos pré-configurados (por exemplo, Phi-3, Llama-3, Mistral) com parâmetros de GPU, contêineres e API. | | Provisioner Integration | Integração com Karpenter ou outros provisionadores de GPU para alocação automática de nós. | | API compatível com OpenAI | Permite acessar modelos implantados por meio da interface padrão OpenAI /v1/chat/completions. | | RAG Engine (a partir da v0.5) | Suporte para Retrieval-Augmented Generation com FAISS e LlamaIndex. | Arquitetonicamente, o KAITO funciona assim: - Você cria um manifesto YAML (por exemplo, **Workspace**) especificando o modelo, recursos e configuração. - O controlador cria os nós GPU (via NodeClaim ou Provisioner), seleciona o contêiner e implanta o serviço. - O Kubernetes cria um Service com API acessível para inferência. ## Recursos e benefícios - **Gerenciamento declarativo de cargas de IA** Tudo é descrito em manifestos YAML — não há necessidade de escrever arquivos de deployment manualmente ou configurar GPUs. - **Suporte para modelos LLM e serviços de inferência** Presets integrados para modelos populares, suporte à API OpenAI e ajuste automático de parâmetros para o pool de GPU. - **Gerenciamento automático de nós GPU** KAITO integra-se a provisionadores (como o Karpenter) para alocar e liberar GPUs automaticamente. - **Recursos de Fine-tuning e RAG** O operador RAGEngine permite criar serviços RAG com FAISS e serviços de embeddings diretamente no cluster. - **API compatível com OpenAI** Facilita a migração de aplicativos que já usam a API OpenAI para modelos hospedados localmente. - **Extensibilidade** Permite adicionar contêineres personalizados, novos modelos e integrar o KAITO em pipelines CI/CD com GitOps. ## Início rápido Abaixo está um exemplo de manifesto YAML para implantar um serviço de inferência com o modelo **Phi-3.5-Mini-Instruct**. ```yaml apiVersion: kaito.sh/v1beta1 kind: Workspace metadata: name: workspace-phi-3.5-mini spec: resource: instanceType: "Standard_NC24ads_A100_v4" labelSelector: matchLabels: app: phi-3.5 inference: preset: name: phi-3.5-mini-instruct ``` ### Etapas de implantação ```bash # Instalar o operador KAITO kubectl apply -f https://raw.githubusercontent.com/kaito-project/kaito/main/deploy/kaito-operator.yaml # Aplicar o arquivo YAML kubectl apply -f workspace-phi-3.5-mini.yaml # Verificar o status kubectl get workspace workspace-phi-3.5-mini # Obter o Service e fazer uma solicitação kubectl get svc workspace-phi-3.5-mini ``` Exemplo de chamada à API: ```bash curl -X POST http:///v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "phi-3.5-mini-instruct", "messages": [{"role": "user", "content": "O que é Kubernetes?"}], "max_tokens": 50 }' ``` ## Configuração de nodeSelector, taints e imagens personalizadas KAITO permite controlar com flexibilidade onde e como as workloads serão implantadas: [code]spec: resource: labelSelector: matchLabels: gpu-type: nvidia nodeSelector: disktype: ssd tolerations: * key: "nvidia.com/gpu" operator: "Exists" effect: "NoSchedule" inference: preset: name: llama3-8b image: custom.registry.io/llama3:latest - **nodeSelector** — define em quais nós a workload pode ser implantada (por exemplo, nós com GPU). - **taints/tolerations** — garantem que os pods sejam atribuídos apenas aos nós desejados. - **image** — define um contêiner personalizado com o modelo ou build próprio (por exemplo, com bibliotecas adicionais). ## Limitações e melhores práticas **Limitações:** - KAITO está na fase **CNCF Sandbox** — a API ainda pode mudar. - Suporte completo para GPU e auto-scaling está mais maduro no Azure AKS (mas pode ser adaptado para outros ambientes). - Atualização automática de modelos ainda não implementada. - Para RAG é necessário armazenamento adicional e serviços de embeddings. **Recomendações:** - Use nós GPU com A100/V100/T4 em um pool dedicado. - Isole workloads com taints/tolerations. - Monitore recursos (via Prometheus/Grafana ou Kube-metrics-server). - Adote o GitOps: armazene CRDs e YAMLs em um repositório e implante com ArgoCD ou Flux. - Para fine-tuning, use namespaces separados e cotas de recursos limitadas. ## Cenários reais de uso ### 1. **Inferência de modelos** Implantação de modelos LLM em clusters próprios com API compatível com OpenAI para aplicativos internos. ### 2. **Chatbots e NPCs em jogos** Integração de modelos em servidores de jogos: NPCs reagem às ações do jogador por meio de serviços locais de inferência (sem enviar dados a APIs externas). ### 3. **Sistemas RAG** Combinação de KAITO + FAISS para Retrieval-Augmented Generation — por exemplo, gerar respostas baseadas em documentação interna ou dados do jogo. ### 4. **Fine-tuning de modelos** Ajuste fino de modelos pré-treinados (como Mistral ou Phi-3) com datasets próprios para tarefas específicas. ## Conclusão **KAITO** torna o trabalho com cargas AI/ML no Kubernetes simples e declarativo. Ele é ideal tanto para engenheiros que constroem infraestrutura de IA em nuvem ou on-premises quanto para equipes que desejam integrar modelos em projetos de jogos sem depender de APIs externas. O projeto está em rápido desenvolvimento e já pode fazer parte do seu stack de IA no Kubernetes. https://serverspace.com.br/support/help/branches-do-git-como-criar-e-remover.md Aprenda como criar, alternar e excluir branches locais e remotos no Git. Ideal para equipes, projetos colaborativos e desenvolvedores iniciantes. O trabalho em equipe exige ferramentas, e o Git — um sistema de controle de versão de repositório — é um ótimo exemplo para o desenvolvimento colaborativo e a documentação. Ele permite que os membros da equipe mantenham partes locais do projeto e façam alterações em um único servidor com o repositório. Um mecanismo essencial é o sistema de branches do Git, que será abordado neste artigo! ## O que são branches no Git? Um branch, ou ramificação, é um ponteiro para uma série de commits que estão unidos com base em sua ancestralidade. Ele permite o desenvolvimento paralelo e o armazenamento de dados de forma isolada em relação ao restante do projeto. Por exemplo, você tem um projeto principal armazenado na branch main. Os arquivos e dados podem ser baixados a partir dela, assim como a documentação pode ser acessada. No entanto, correções de bugs e novas funcionalidades geralmente são testadas e mantidas em um espaço separado para não afetar o projeto principal — é exatamente para isso que servem os branches! Captura de tela nº1 — Esquema de funcionamento Como um branch no Git é um ponteiro, ele deve referenciar pelo menos um commit. Normalmente, ao criar uma nova ramificação, o primeiro commit será aquele em que o usuário está atualmente trabalhando. Você pode visualizar o commit atual com o comando: ```bash git show ``` Captura de tela nº2 — HEAD Neste caso, o HEAD aponta para o commit em main. Este será o primeiro objeto referenciado pela nova branch, e outras alterações no diretório de trabalho serão registradas como commits filhos. Como isso funciona na prática? ## Como criar uma branch local e remota no Git? Se você não tiver recursos suficientes localmente, é possível realizar as ações em servidores em nuvem de alta performance. A Serverspace oferece [servidores em nuvem (VPS)](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) para uso geral e virtualizado. Captura de tela nº3 — Criar servidor A implantação da capacidade do servidor leva apenas alguns minutos. Depois disso, você pode se conectar da forma mais conveniente para você. Acesse sua pasta de diretório de trabalho ou clone o repositório a partir do GitHub com: ```bash git clone [seu-repositório] ``` Captura de tela nº4 — Git clone Ou atualize um repositório existente com o comando abaixo. Observe que origin aponta para o caminho padrão. Se você quiser usar um repositório diferente, será necessário especificá-lo manualmente: ```bash git pull origin ``` Captura de tela nº5 — Git pull Depois disso, digite novamente o comando já conhecido e verifique se a branch e o commit corretos estão selecionados: ```bash git show ``` Captura de tela nº6 — HEAD no Git Você só pode criar uma branch em um repositório remoto se houver uma correspondente no dispositivo local — isso ocorre porque um branch não pode estar vazio. Para criar uma branch local, utilize: ```bash git branch nova_branch && git branch --list ``` Captura de tela nº7 — Nova branch no Git Para começar a trabalhar na nova branch, você deve mudar para ela e verificar o estado atual do repositório: ```bash git checkout nova_branch && git show ``` Captura de tela nº8 — Trocar de branch Para criar uma branch remota no Git, basta executar o comando push a partir do commit selecionado: ```bash git push origin nova_branch ``` Captura de tela nº9 — Criar branch remota E se uma branch se tornar desnecessária ou tiver sido criada por engano? Como excluí-la? ## Como excluir branches locais e remotos no Git? Existem comandos específicos para isso. Para excluir uma branch local, primeiro altere para outra branch: ```bash git checkout main ``` Depois, execute: ```bash git branch -d nova_branch ``` Captura de tela nº10 — Excluir branch local A última linha indica que a branch com ID b782c51 foi excluída. Você pode verificar as branches ativas com: ```bash git branch --list ``` Para excluir uma branch remota (ou seja, no repositório remoto), use: ```bash git push -d origin nova_branch ``` Captura de tela nº11 — Excluir branch remota Para verificar se as alterações foram aplicadas, acesse o repositório via navegador ou atualize localmente com git pull. Em seguida, visualize a lista de branches com: ```bash git branch ``` Este é um dos mecanismos mais importantes ao trabalhar com projetos em equipe usando Git. As branches permitem trabalhar nos arquivos em paralelo com o desenvolvimento principal, o que acelera a colaboração entre os usuários. https://serverspace.com.br/support/help/recuperacao-de-dados-com-recuva-e-r-studio.md Aprenda a recuperar arquivos apagados usando Recuva e R-Studio, entender como funciona a exclusão de dados e aumentar suas chances de recuperação. Acontece com frequência que um disco falha e você precisa salvar os dados restantes nele. Para entender como isso funciona, podemos olhar o diagrama abaixo! Um disco armazena todos os dados em forma binária, o que significa que suas fotos e documentos são um conjunto de uns e zeros — ou seja, arquivos. Portanto, o algoritmo de trabalho funciona assim: acessamos o arquivo por meio do sistema operacional do nosso PC; em seguida, o pedido é enviado ao sistema de arquivos, que contém a tabela de endereços dos arquivos. No endereço correspondente no disco, encontraremos o segmento necessário de uns e zeros — isso é o nosso arquivo. Screenshot nº1 — Esquema Ao deletar um arquivo, ele não é apagado do disco. Ele permanece lá, mas marcado como espaço livre para gravação. Ou seja, se o sistema ainda não sobrescrever esse bloco, o arquivo continuará existindo e poderá ser lido. Também é importante levar em conta características de funcionamento em baixo nível! Drivers podem não permitir a eliminação completa dos dados na primeira tentativa, então é possível recuperá-los em um nível mais profundo usando software especializado. ## Qual programa usar para recuperar arquivos deletados? Para recuperar arquivos de um disco, vamos definir o tipo do seu problema: - Se você apenas deletou dados acidentalmente e o disco não está fisicamente danificado, use Recuva; - Se o disco não aparece ou funciona com erros, então o método Raw Recovery é adequado — utilizado em PhotoRec, R-Studio, TestDisk (recuperação de partições e área de boot); - Se o disco tem danos físicos, é recomendável primeiro fazer uma cópia bit a bit via dd (Linux) ou Clonezilla. Neste artigo vamos analisar os dois primeiros casos, e para situações críticas nós preparamos um artigo separado! ## Recuva para recuperar arquivos deletados — gratuito Instale o Recuva pressionando Win+X → Terminal/PowerShell (Administrador) e digitando o comando: ``` winget install Piriform.Recuva ``` Screenshot nº2 — Instalação Confirme a instalação nas janelas pop-up e aguarde a conclusão. Depois, procure por Recuva no menu Iniciar ou na sua área de trabalho: Screenshot nº3 — Localizar o software Selecione o tipo de arquivos que você deseja recuperar: Screenshot nº4 — Escolher tipo de arquivo Em seguida, selecione o local ou dispositivo de onde deseja realizar a recuperação — pode ser outro disco: Screenshot nº5 — Local da recuperação Depois, clique em Start, ou, para uma análise mais profunda, marque a opção Enable Deep Scan: Screenshot nº6 — Início do processo de recuperação Aguarde enquanto o Recuva analisa o seu dispositivo e encontra arquivos que ainda não foram sobrescritos. Screenshot nº7 — Lista de arquivos recuperados Depois selecione apenas o que deseja recuperar — ou todos os arquivos. Este método funciona somente quando o sistema de arquivos não está corrompido e os dados podem ser encontrados com facilidade! ## R-Studio — para recuperação de arquivos e sistemas de arquivos Baixe o instalador de um site confiável, de preferência do fabricante. Ao iniciar a instalação, em determinado momento o aplicativo exibirá um aviso sobre possíveis danos ao sistema, se utilizado incorretamente. Screenshot nº8 — R-Studio Como isso já envolve não apenas trabalhar com sistemas de arquivos, mas também modificá-los, é importante identificar o sistema e os discos corretos durante o processo: ``` diskpart ``` Na janela da ferramenta aberta, digite o comando para listar partições: ``` list volume ``` Screenshot nº9 — Reconhecimento de disco O Windows é a partição do sistema — o kernel está lá. Se for necessário recuperar dados dessa partição, conecte o disco a outro PC e inicialize separadamente! Para discos comuns, tudo é mais simples — você pode continuar clicando em Next e aguardar o fim da instalação. Na janela seguinte, é possível ver informações básicas sobre o disco e suas partições: Screenshot nº10 — Scanner de disco Selecione o disco inteiro ou a partição lógica desejada para procurar arquivos perdidos por assinatura: Screenshot nº11 — Recuperação de arquivos Depois, selecione as opções que atendem às suas necessidades e escolha a pasta para salvar os resultados: Screenshot nº12 — Processamento Feito isso, aguarde o término do processo. Como o software possui apenas modo demo disponível, só é possível recuperar arquivos com tamanho de até 256 KB. Entretanto, isso não deve ser um grande problema para encontrar uma solução adequada. A recuperação de arquivos deletados com Recuva permite localizar diversos arquivos ocultos, enquanto R-Studio pode reparar e reconstruir sistemas de arquivos, além de analisá-los detalhadamente — portanto, o processo de recuperação deve ser o mais eficiente possível! Neste artigo analisamos tanto ferramentas gratuitas quanto soluções comerciais! Recuperar arquivos deletados de discos e outros dispositivos de armazenamento é uma habilidade essencial, especialmente quando a perda de dados pode afetar atividades pessoais ou profissionais. Ferramentas como Recuva oferecem uma maneira simples de restaurar arquivos deletados acidentalmente quando o sistema de arquivos está intacto, enquanto o R-Studio fornece uma solução avançada para discos danificados e sistemas corrompidos. Compreender como a exclusão de arquivos funciona em nível binário e no nível do sistema de arquivos aumenta significativamente suas chances de sucesso. Sempre lembre-se: aja rapidamente, evite gravar novos dados no disco afetado e considere criar uma cópia bit a bit para discos fisicamente danificados para evitar perdas adicionais. ## FAQ - **Q1: Posso recuperar arquivos que foram deletados há muito tempo?** A1: Depende de os arquivos terem sido sobrescritos ou não. Se não houve sobrescrita, Recuva ou R-Studio podem recuperá-los. - **Q2: Qual ferramenta devo usar para exclusões acidentais?** A2: Para exclusões simples em um disco saudável, o Recuva geralmente é suficiente — e é gratuito. - **Q3: E se meu disco estiver corrompido ou não for reconhecido?** A3: Use ferramentas avançadas como R-Studio, PhotoRec ou TestDisk para recuperar arquivos e reparar estruturas do sistema de arquivos. - **Q4: É seguro recuperar arquivos da partição do sistema?** A4: Não. O recomendado é conectar o disco a outro PC e realizar a recuperação a partir de um sistema separado para evitar danos ao Windows ou a outros arquivos críticos. - **Q5: O Recuva pode recuperar arquivos de discos externos ou pendrives?** A5: Sim. Recuva funciona com dispositivos externos, USBs e cartões de memória, desde que o sistema operacional consiga acessá-los. - **Q6: Como aumentar minhas chances de recuperar arquivos com sucesso?** A6: Pare de usar o disco imediatamente, evite instalar novos programas nele e utilize opções de deep scan para uma busca mais completa. - **Q7: O R-Studio tem limitações no modo demo?** A7: Sim. O modo demo permite recuperar apenas arquivos de até 256 KB. A recuperação completa exige uma versão licenciada. https://serverspace.com.br/articles/uptime-watchdog-monitoramento-facil-do-tempo-de-atividade-do-servico-instalacao-configuracao-e-uso.md Saiba como configurar e usar o Uptime-Watchdog - uma ferramenta leve para monitorar o tempo de atividade. Verificações de serviço simples, notificações de falha e implementação rápida sem sistemas de monitoramento complexos. **uptime-watchdog** é uma ferramenta de monitoramento minimalista e rápida que verifica a disponibilidade de URLs especificados e envia notificações caso um serviço pare de responder. A ferramenta é escrita em Go, consome quase nenhum recurso e pode funcionar até mesmo em servidores fracos ou em contêineres. É ideal para DevOps, desenvolvedores, donos de pet projects e qualquer pessoa que precise de um monitoramento self-hosted simples, sem sistemas pesados. ## Para que serve o uptime-watchdog A ferramenta resolve várias tarefas: ### 1. Monitoramento de uptime de serviços Você pode adicionar qualquer URL — APIs, sites, endpoints de healthcheck, microsserviços. O Watchdog verificará regularmente e registrará o status. ### 2. Notificações rápidas sobre falhas Se o aplicativo parar de responder ou retornar um erro, você receberá uma notificação (Slack, Telegram ou outro webhook), permitindo reagir rapidamente. ### 3. Alternativa leve ao Prometheus + Alertmanager Se você não precisa de um stack pesado de monitoramento, o uptime-watchdog é a opção ideal. Pode ser executado no Docker ou como binário standalone. ### 4. Verificação de disponibilidade externa A ferramenta verifica o serviço do mesmo modo que um usuário externo faria — tornando o monitoramento mais preciso. ## Instalação ### 1. Via Go ``` go install github.com/seponik/uptime-watchdog@latest ``` ### 2. Via binário Baixe o release no GitHub Releases, torne-o executável e rode: ```bash chmod +x uptime-watchdog ./uptime-watchdog ``` ### 3. Via Docker ```bash docker run -d --name uptime-watchdog \ -v ./config.yaml:/app/config.yaml \ seponik/uptime-watchdog:latest ``` ## Configuração A configuração principal é feita no arquivo **config.yaml**. Exemplo de configuração: ```yaml interval: 30s endpoints: name: "Frontend" url: "https://myapp.com " timeout: 5s name: "API" url: "https://api.myapp.com/health " timeout: 3s notify: telegram: token: "YOUR_TELEGRAM_BOT_TOKEN" chat_id: "123456789" ``` ### Explicação: - **interval** — frequência das verificações. - **endpoints** — lista de serviços a serem monitorados. - **timeout** — tempo máximo de espera pela resposta. - **notify** — para onde enviar notificações de falhas. ## Execução ``` uptime-watchdog -config config.yaml ``` Os logs aparecerão no stdout — você pode enviá-los para o journald ou capturá-los via Docker. ## Como usar na prática - Monitoramento de serviços em produção Adicione healthchecks de microsserviços e receba notificações caso algum caia ou apresente lentidão. - Pet projects e ambientes de teste Se você hospeda serviços pequenos em uma VPS, o watchdog ajuda a detectar indisponibilidades causadas pelo provedor. - Monitoramento de APIs externas Monitore serviços externos dos quais seu app depende — como gateways de pagamento. - Verificação pós-deploy Execute o watchdog durante um deploy para garantir que todos os healthchecks passam após a atualização. ## Boas práticas - Use um intervalo curto — **30–60 segundos** é suficiente na maioria dos casos. - O endpoint de healthcheck deve ser rápido e simples. - Execute o watchdog **em outro data center** para obter uma visão real da disponibilidade. - Armazene o arquivo de configuração no Git e atualize via CI/CD. ## Conclusão **uptime-watchdog é uma ferramenta simples, rápida e prática para monitorar a disponibilidade de serviços.** Ideal para quem precisa de verificações confiáveis de uptime sem configurar sistemas complexos. É fácil de implantar, simples de configurar e quase não gera carga na infraestrutura. ## FAQ - **Posso usar o watchdog sem Docker?** Sim, é um binário Go padrão — funciona em qualquer sistema. - **Onde os dados são armazenados? **A ferramenta não salva histórico. Ela é focada em monitoramento em tempo real e notificações. - **O watchdog permite log em arquivo? **Por padrão, os logs vão para stdout. Você pode redirecioná-los para um arquivo via systemd ou Docker. - **Como configurar múltiplos canais de notificação? **No **config.yaml** você pode definir Telegram, Slack e webhook ao mesmo tempo. - **Posso adicionar autenticação básica? **Sim, você pode usar login:password@host na URL — comportamento padrão do cliente HTTP. https://serverspace.com.br/support/help/atributos-estendidos-de-arquivos-linux-guia-de-acesso-e-seguranca.md Entenda como os atributos estendidos do Linux funcionam, como usar flags como immutable e append-only, e saiba reforçar segurança, integridade e controle de arquivos. Para o funcionamento correto com arquivos, foram desenvolvidos sistemas de arquivos que permitem definir um padrão único de armazenamento de dados. Isso permitiu resolver problemas de grande volume de dados armazenados, indexação demorada, além de deduplicação e controle de integridade. Um sistema de arquivos é um conjunto de regras ou um algoritmo pelo qual os dados são organizados e armazenados em determinada forma para que possam ser acessados pelo sistema operacional. Ele também regula o comportamento dos arquivos através de seus atributos e permite definir certos parâmetros que podem proibir a exclusão de arquivos até mesmo pelo usuário root! Vamos analisar seu funcionamento e gerenciamento neste artigo. ## Como o sistema de arquivos funciona? Um dispositivo de armazenamento guarda informações como uma longa sequência de uns e zeros em um sistema binário, onde eles são organizados em grupos graças a uma abstração lógica — o sistema de arquivos. Cada arquivo possui seus próprios cabeçalhos, metadados, atributos e conteúdo — a informação em si. Screenshot nº 1 — Esquema de funcionamento Ao acessar arquivos, o usuário cria uma chamada de sistema, que é enviada ao kernel do sistema operacional. O kernel interage com o próprio sistema de arquivos, onde lê os atributos necessários. Existem dois tipos de atributos: permissões de acesso e flags de comportamento. Ambos ainda são atributos ou propriedades do arquivo, mas cada um possui sua função. As permissões padrão rwx, que você vê em todos os lugares, definem regras de acesso de sujeitos a objetos e são usadas em modos de operação de nível superior. Já as flags de comportamento definem opções de como os arquivos serão manipulados e funcionam em um nível inferior. Assim, o root, ao trabalhar com um arquivo que possui a flag -i ou immutable, não poderá excluí-lo ou modificá-lo. A lista completa dos atributos está apresentada na tabela abaixo: | Atributo | Descrição | | --- | --- | | a (append only) | O arquivo só pode ter dados acrescentados, mas os dados existentes não podem ser alterados ou excluídos. Útil para logs. | | A (no atime updates) | A última data de acesso ao arquivo não será atualizada. | | c (compressed) | O arquivo é comprimido no disco. Leitura e escrita ocorrem automaticamente com descompressão e compressão. (Não usado no ext4). | | d (no dump) | O arquivo não será incluído em arquivos gerados pelo comando dump. | | D (synchronous directory updates) | As atualizações do conteúdo do diretório ocorrem de forma síncrona, ou seja, são gravadas imediatamente no disco. | | e (extent format) | O arquivo utiliza o formato estendido de alocação de blocos, que é mais eficiente do que o método antigo. (Usado automaticamente pelo ext4). | | i (immutable) | O arquivo se torna imutável. Ele não pode ser excluído, renomeado ou ter seu conteúdo alterado. | | j (data journaling) | Ativa o registro (journaling) de dados para um arquivo específico. Todas as alterações são gravadas primeiro no log e depois no disco. | | s (secure deletion) | Quando um arquivo é excluído, seu conteúdo é sobrescrito com zeros. (Não implementado na maioria dos sistemas). | | u (undelete) | Quando um arquivo é excluído, seu conteúdo é preservado e pode ser restaurado. (Não usado no ext4). | | Z (compressed dirty file) | Indica que um arquivo comprimido foi modificado e precisa ser recompresso. (Não suportado no ext4). | A lista é bastante extensa, então vamos analisar as principais formas de uso dessas flags na prática! ## Gerenciamento de atributos Se você não possui recursos suficientes, pode executar ações em [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) poderosos. A Serverspace fornece servidores VPS/VDS isolados para uso comum e virtualizado. Screenshot nº 2 — Criar servidor Vamos imaginar que estamos coletando logs de uma máquina e é importante que ninguém possa alterá-los para preservar a integridade dos dados. Para esse fim, o sistema de arquivos possui um atributo que podemos atribuir a um arquivo: ``` sudo chattr +a /var/log/auth.log ``` Screenshot nº 3 — Novo atributo Você pode verificar se o atributo foi aplicado com: ``` lsattr /var/log/auth.log ``` Depois disso, não será possível alterar os dados até que um usuário com direitos administrativos remova esse atributo com o comando inverso: ``` sudo chattr -a /var/log/auth.log ``` Screenshot nº 4 — Remover atributo Para proibir a exclusão ou modificação do arquivo, vamos escrever o comando e verificar seu funcionamento: ``` sudo chattr +i /var/log/auth.log && sudo rm /var/log/auth.log ``` Screenshot nº 5 — Atributo negado Imediatamente após o atributo ser aplicado, quando o sistema de arquivos for acessado, ele recusará ações que modifiquem o arquivo. Isso pode ser usado como proteção contra exclusão acidental para administradores ou como uma regra adicional de trabalho para usuários comuns que já têm acesso aos arquivos. Também é possível ativar journaling para arquivos, permitindo registrar a lista de ações em um log separado. Isso ajuda a restaurar a integridade do sistema. No entanto, essa função costuma ser especificada diretamente na instalação do sistema de arquivos. Esses atributos permitem adicionar funcionalidades de baixo nível que apenas o administrador pode alterar. Eles substituem o sistema tradicional de permissões ao aplicar regras globalmente para todos os usuários. Essa solução é útil quando um invasor obtém acesso a uma conta que, pelas permissões, poderia modificar arquivos — mas isso é proibido pelo atributo do sistema de arquivos, exceto para o root. Os atributos estendidos de arquivos no Linux oferecem um mecanismo poderoso para gerenciar o comportamento dos arquivos além das permissões padrão. Com flags como immutable (-i) ou append-only (+a), administradores podem fortalecer significativamente a segurança do sistema, proteger logs contra adulterações e evitar exclusão acidental de arquivos críticos. Esses atributos funcionam em um nível mais baixo do que os direitos tradicionais rwx, garantindo um controle mais granular. O uso adequado de atributos estendidos pode servir como uma camada adicional de segurança, especialmente em casos de comprometimento de contas de usuários. Ao entender e aplicar corretamente esses atributos, administradores podem melhorar a integridade dos dados, reforçar o controle de acesso e reduzir riscos de alterações não autorizadas. ## FAQ **Q1: O que são atributos estendidos no Linux?** Atributos estendidos são propriedades de baixo nível (flags) que definem regras de comportamento além das permissões padrão, como impedir exclusão ou forçar modo somente acréscimo. **Q2: Como os atributos estendidos diferem das permissões rwx?** As permissões rwx controlam níveis de acesso para usuários, grupos e outros. Os atributos estendidos substituem esse modelo aplicando restrições globais que até o root deve respeitar. **Q3: Como posso verificar os atributos de um arquivo?** Use o comando: ``` lsattr filename ``` **Q4: O root pode ignorar os atributos estendidos?** O root não pode alterar ou excluir arquivos com flags +i ou +a definidas. Porém, o root pode remover essas flags com chattr -i ou chattr -a, após o que as operações normais ficam disponíveis. **Q5: Quando devo usar o atributo immutable?** Use +i quando for necessário proteger completamente arquivos importantes contra exclusão ou modificação, como arquivos críticos de configuração ou logs de segurança. **Q6: Todos os sistemas de arquivos Linux suportam atributos estendidos?** Não. O suporte depende do tipo de sistema de arquivos. Ext2, ext3 e ext4 suportam, mas nem todos implementam o mesmo conjunto de atributos. https://serverspace.com.br/support/help/conteineres-docker-privilegiados-vs-nao-privilegiados-diferenca-seguranca-e-exemplos-de-uso.md Conheça as principais diferenças entre contêineres Docker privilegiados e não privilegiados. Saiba quando usar acesso total ao host e quando usar direitos limitados para garantir a segurança das aplicações. Em Docker, os contêineres podem ser executados em dois modos principais: **privileged** e **non-privileged**. Essa escolha determina o nível de acesso que o contêiner terá aos recursos e funções do sistema do host. Compreender as diferenças entre esses modos é extremamente importante: disso depende tanto a segurança do seu sistema quanto o funcionamento dos aplicativos dentro dos contêineres. O modo non-privileged é adequado para a maioria das tarefas diárias, fornecendo isolamento e proteção ao host, enquanto o privileged concede ao contêiner acesso completo aos dispositivos, núcleo e interfaces de rede do host, necessário apenas em casos específicos, como teste de drivers ou gerenciamento de hardware. Uma escolha consciente do modo de execução ajuda a equilibrar funcionalidade e segurança. ## Contêineres Non-privileged (padrão) ### O que é: - Os contêineres são executados em um ambiente restrito. - Não possuem acesso direto ao núcleo do host e à maioria dos recursos do sistema. - Não podem executar operações que exigem privilégios elevados (por exemplo, alterar interfaces de rede do host, gerenciar módulos do núcleo). Características: - **Segurança**: Maior isolamento do host. - **Limitações**: Alguns aplicativos que exigem acesso de baixo nível ao host podem não funcionar. **Exemplos reais de uso**: Serviços web, bancos de dados, aplicativos que não precisam alterar configurações do sistema do host. Exemplo de execução: ```bash docker run -it ubuntu:22.04 bash ``` Este contêiner é executado no modo non-privileged por padrão. ## Contêineres Privileged ### O que é: - O contêiner recebe acesso praticamente completo ao host. - Todas as capabilities do núcleo e acesso aos dispositivos do host são permitidos. O contêiner pode: - Montar dispositivos do host (/dev), - Gerenciar módulos do núcleo, - Configurar interfaces de rede, - Executar outras operações do sistema como root no host. Características: - **Funcionalidade**: O acesso completo ao host permite executar contêineres para software de sistema, emulação ou teste de drivers. - **Risco**: Aumento da ameaça à segurança. Se um invasor obtiver controle sobre esse contêiner, ele efetivamente terá controle sobre o host. Exemplo de execução: ```bash docker run --privileged -it ubuntu:22.04 bash ``` Quando usar: - Para contêineres que precisam acessar dispositivos do host (por exemplo, USB, GPU). - Para contêineres de sistema que emulam serviços do host. - Para testes e depuração. ## Diferenças de permissões | Característica | Non-privileged | Privileged | | --- | --- | --- | | Acesso ao núcleo do host | Não | Sim | | Acesso a dispositivos /dev | Limitado | Completo | | Gerenciamento de módulos do núcleo | Não | Sim | | Alteração de interfaces de rede do host | Não | Sim | | Risco para a segurança | Baixo | Alto | | Aplicação | Aplicativos comuns, serviços | Serviços de sistema, teste, acesso a dispositivos | | Exemplo de execução | docker run -it image bash | docker run --privileged -it image bash | ## Recomendações Na maioria dos casos, é melhor executar os contêineres no modo **non-privileged** — é seguro e ideal para aplicativos e serviços comuns que não precisam de acesso direto ao host. O modo **privileged** deve ser usado apenas quando realmente necessário, como quando seu aplicativo precisa gerenciar dispositivos, módulos do núcleo ou interfaces de rede do host. Mesmo nesses casos, é importante pensar na segurança e não conceder mais permissões do que o necessário. Frequentemente, uma boa alternativa ao `--privileged` completo é fornecer capabilities específicas via** --cap-add** ou acesso aos dispositivos necessários via **--device**, por exemplo: ```bash docker run --cap-add=NET_ADMIN --device=/dev/sda1 -it ubuntu:22.04 bash ``` Dessa forma, você mantém o controle, aumenta a segurança e permite que o contêiner execute as tarefas necessárias sem riscos desnecessários. ## Resumo rápido (Cheat Sheet) | Característica | Non-privileged | Privileged | | --- | --- | --- | | Acesso ao núcleo do host | Não | Sim | | Acesso a dispositivos /dev | Limitado | Completo | | Gerenciamento de módulos do núcleo | Não | Sim | | Alteração de interfaces de rede do host | Não | Sim | | Risco para a segurança | Baixo | Alto | | Aplicação | Aplicativos comuns, serviços | Serviços de sistema, teste, acesso a dispositivos | | Exemplo de execução | docker run -it image bash | docker run --privileged -it image bash | https://serverspace.com.br/support/help/zerobyte-backup-automatizado-com-criptografia-e-interface-web.md Zerobyte is a modern tool for automatic data backup with support for NFS, SMB, WebDAV, and local storage. Scheduling, encryption, and monitoring via a convenient web interface. Zerobyte é uma ferramenta moderna de automação de backups que ajuda a salvar seus dados em diversos tipos de armazenamento. Construído sobre o Restic, ele fornece uma interface web conveniente para agendar, gerenciar e monitorar backups criptografados. ## Principais Recursos - **Backup automático com suporte a criptografia e compressão.** - **Agendamento flexível: possibilidade de definir cronogramas de backup de acordo com suas necessidades.** - **Monitoramento e notificações: acompanhe o status das tarefas de backup pela interface web.** - **Suporte a múltiplos tipos de armazenamento: pastas locais, NFS, SMB, WebDAV e outros.** - **Interface web moderna para fácil gerenciamento e visualização de logs.** ## Aplicações Práticas Zerobyte é adequado para uma ampla gama de cenários: desde backup de dados pessoais em um servidor doméstico até a proteção de arquivos de trabalho em pequenas empresas. Ele permite criar automaticamente cópias criptografadas de documentos, bancos de dados e arquivos de mídia em diferentes tipos de armazenamento, minimizando o risco de perda de dados devido a falhas de hardware, exclusão acidental ou ataques de ransomware. A interface web facilita o monitoramento do processo de backup e a restauração rápida dos dados necessários quando preciso. ## Instalação Zerobyte requer Docker e Docker Compose para funcionar: ```bash git clone https://github.com/nicotsx/zerobyte.git cd zerobyte docker-compose up -d ``` Após a inicialização, a interface web estará disponível no endereço do seu servidor. ## Perguntas Frequentes (FAQ) - **P: Zerobyte pode ser usado em ambientes corporativos?** R: Zerobyte é mais indicado para pequenas empresas e entusiastas. Para grandes sistemas corporativos, podem haver limitações de escalabilidade. - **P: É possível usar Zerobyte sem Docker?** R: Atualmente, é recomendado executar via Docker para garantir que todos os componentes funcionem corretamente. - **P: Quais tipos de armazenamento são suportados?** R: Diretórios locais, NFS, SMB, WebDAV. - **P: Os backups são criptografados?** R: Sim, o Zerobyte utiliza a criptografia do Restic para proteger todos os backups. ## Resumo Rápido | Ação | Comando / Interface | Descrição | | --- | --- | --- | | Iniciar Serviço | docker-compose up -d | Inicia todos os componentes do Zerobyte via Docker Compose | | Verificar Status | Interface Web | Exibe o status de todas as tarefas de backup | | Adicionar Tarefa de Backup | Interface Web → Tasks → Add | Criar uma nova tarefa com seleção de origem, agendamento e política de retenção | | Monitoramento | Dashboard | Visualizar histórico de backups e status atual das tarefas | | Excluir Backups Antigos | Interface Web → Retention | Configurar política de retenção e remover automaticamente backups desatualizados | | Criptografia de Dados | Automaticamente via Restic | Todos os backups são criptografados para proteger contra acesso não autorizado | ## Conclusão **Zerobyte** é uma solução prática para automação de backups, com suporte a criptografia e múltiplas opções de armazenamento. É ideal para usuários que precisam armazenar dados de forma segura, com agendamento flexível e monitoramento, sem perder tempo com configurações complexas ou soluções caras. https://serverspace.com.br/support/help/xpipe-centralized-management-of-remote-servers-and-files-via-the-cli.md XPipe - a new hub for shell and remote file management. Integration with ssh, docker, kubectl, and other CLI tools, support for code editors, and modular expandability without installation on remote servers. **XPipe** é um hub inovador para conexões de shell e gerenciamento remoto de arquivos que oferece acesso direto a toda a sua infraestrutura de servidores a partir de uma única máquina local. Ao contrário das ferramentas tradicionais, o XPipe opera sobre os utilitários de linha de comando que você já utiliza, como ssh, docker e kubectl, eliminando a necessidade de qualquer configuração adicional ou instalação nos servidores remotos. Ao unificar todas as suas conexões e fluxos de trabalho em uma plataforma centralizada, o XPipe simplifica o gerenciamento de múltiplos servidores, agiliza a execução de comandos e permite interagir com arquivos remotos como se estivessem na sua máquina local. Essa abordagem não apenas economiza tempo, mas também reduz erros, aumenta a produtividade e oferece uma maneira mais consistente e controlada de gerenciar ambientes de servidores complexos. ## Principais Recursos - Gerenciamento remoto de servidores e arquivos sem necessidade de instalar softwares adicionais nos sistemas remotos. - Integração com ferramentas familiares: editores de código, terminais, shells, programas CLI e muito mais. - Plataforma extensível: possibilidade de adicionar suporte a novas ferramentas ou implementar funcionalidades personalizadas através de um sistema modular de extensões. - Acesso universal à infraestrutura através de uma interface CLI familiar. ## Uso Prático O XPipe é útil para administradores de sistemas, engenheiros DevOps e desenvolvedores que trabalham com múltiplos servidores e contêineres. Ele simplifica o gerenciamento de infraestrutura ao unificar o acesso a diversos servidores, contêineres e ferramentas em uma única interface. Com o XPipe, você pode editar arquivos remotamente com facilidade, executar comandos em múltiplos hosts simultaneamente e integrar seu fluxo de trabalho com seus editores e terminais favoritos. ## Instalação O XPipe não requer instalação nos servidores remotos. Na máquina local, basta instalar o cliente XPipe seguindo as instruções no GitHub: ``` https://github.com/xpipe-io/xpipe ``` Após a instalação, você pode conectar-se aos seus servidores usando as ferramentas CLI habituais, enquanto o XPipe atua como um hub conveniente para gerenciá-los. ## Conclusão e Dicas Práticas O **XPipe** é uma ferramenta extremamente versátil que centraliza o gerenciamento de servidores e arquivos remotos, tornando-o ideal para administradores de sistemas, engenheiros DevOps e desenvolvedores que trabalham com múltiplos hosts ou ambientes em contêineres. Para aproveitar ao máximo o XPipe, comece integrando-o com suas ferramentas CLI mais utilizadas, como ssh, docker e kubectl, permitindo manter seus fluxos de trabalho existentes enquanto simplifica o gerenciamento de sessões. Use a funcionalidade de integração com editores para editar arquivos remotos diretamente do seu IDE ou editor local — isso acelera o desenvolvimento e reduz o risco de erros ao copiar arquivos constantemente entre sistemas. Ao executar comandos em múltiplos servidores, aproveite a execução simultânea do XPipe para automatizar tarefas de manutenção rotineiras, como atualização de pacotes, reinício de serviços ou coleta de métricas do sistema, sempre verificando cuidadosamente os hosts-alvo para evitar operações indesejadas em servidores de produção. Para evitar problemas comuns, teste suas extensões modulares em um ambiente de staging antes de implantá-las e documente quaisquer comandos ou fluxos de trabalho personalizados para sua equipe. Monitore regularmente as sessões ativas usando a interface web ou o cliente local para detectar rapidamente problemas de conexão ou tentativas de acesso não autorizado. Seguindo essas melhores práticas, o XPipe pode melhorar significativamente a eficiência operacional, reduzir erros humanos e otimizar o gerenciamento de infraestruturas complexas de servidores. ## Perguntas Frequentes (FAQ) - **P: Preciso instalar o XPipe em todos os servidores?** R: Não, o XPipe funciona sobre as ferramentas existentes e não requer instalação em sistemas remotos. - **P: Quais ferramentas são suportadas?** R: Qualquer ferramenta CLI, incluindo ssh, docker, kubectl e muitas outras. A plataforma pode ser facilmente expandida com módulos. - **P: O XPipe pode ser integrado com editores de código?** R: Sim, o XPipe se integra totalmente com seus editores de texto e código favoritos, terminais e shells. - **P: É possível personalizar?** R: Sim, através do sistema modular de extensões você pode adicionar suporte a novas ferramentas e implementar funcionalidades personalizadas. ## Resumo Rápido | Ação | Comando / Interface | Descrição | | --- | --- | --- | | Conectar a um servidor | ssh / docker / kubectl | Use sua CLI familiar, o XPipe gerencia as conexões | | Abrir um arquivo remoto | Através da integração com o editor | Edite arquivos em um servidor remoto como se fossem locais | | Executar comandos | CLI ou terminal | Execute comandos em um ou vários servidores simultaneamente | | Adicionar uma nova ferramenta | Sistema modular | Expanda o XPipe adicionando suporte a novos programas CLI | | Monitorar conexões | Interface web ou cliente local | Acompanhe sessões ativas e o status dos servidores | ## Conclusão O XPipe é uma ferramenta poderosa para gerenciamento centralizado de infraestrutura de servidores e arquivos remotos. Ele economiza tempo e aumenta a eficiência de administradores e desenvolvedores, permitindo usar ferramentas CLI familiares e integrar-se com editores favoritos, sem exigir configurações complexas nos sistemas remotos. ## Base de Conhecimento Serverspace Descubra a Base de Conhecimento Serverspace, seu recurso definitivo para dominar gerenciamento de servidores, ferramentas DevOps e soluções de infraestrutura de ponta. Repleta de guias detalhados, tutoriais e exemplos práticos, cobre tudo, desde gerenciadores de arquivos remotos como o XPipe até orquestração de contêineres, utilitários CLI e boas práticas para servidores em nuvem. Seja você desenvolvedor, sysadmin ou engenheiro DevOps, a Base de Conhecimento oferece insights acionáveis para otimizar fluxos de trabalho, melhorar o desempenho do servidor e se manter à frente no mundo em constante evolução da TI. Explore dicas de especialistas, instruções passo a passo e casos de uso práticos — tudo em um só lugar para aprimorar sua expertise técnica. https://serverspace.com.br/support/help/postgresus-ferramenta-auto-hospedada-para-backup-e-monitoramento-do-postgresql.md O Postgresus permite criar automaticamente backups do PostgreSQL 13–18, monitorar o status do banco de dados e receber notificações no Telegram, Slack e Discord. Armazene cópias localmente, no S3 ou no Google Drive, com verificações de integridade do banco de… **Postgresus** é uma ferramenta moderna self-hosted projetada para gerenciamento conveniente e seguro de backups e monitoramento de bancos de dados PostgreSQL. É adequada para desenvolvedores, administradores de sistemas e engenheiros DevOps que desejam controle centralizado sobre seus bancos de dados e garantir a segurança dos dados sem depender de serviços em nuvem ou plataformas de terceiros. ## Principais Funcionalidades - Backups agendados para PostgreSQL versões 13–18. - Notificações no Telegram, Slack e Discord em caso de falha de backup ou indisponibilidade do banco. - Armazenamento de backups localmente, no S3 ou Google Drive. - Verificação de integridade do banco de dados a cada 60 segundos para detecção rápida de problemas. - Licença totalmente open-source Apache 2.0, permitindo uso e modificação conforme suas necessidades. ## Uso Prático Postgresus é útil em diversos cenários: - Para startups e pequenas equipes: automatiza backups e notificações de status, economizando tempo e reduzindo o risco de perda de dados. - Para engenheiros DevOps e administradores: permite monitorar múltiplos bancos de dados, acompanhar erros e integrar notificações aos canais de comunicação da equipe. - Para projetos educacionais e ambientes laboratoriais: Postgresus pode ser implantado localmente via Docker e usado para testes seguros e experimentos com bancos PostgreSQL. **Exemplo**: Se você estiver gerenciando um projeto com PostgreSQL 15 e deseja garantir que os backups sejam criados a cada 6 horas, recebendo notificações imediatas no Telegram em caso de falha, o Postgresus permite configurar isso em poucos minutos. ## Instalação A maneira mais simples de executar o Postgresus é via Docker. Comando de inicialização: ```bash docker run -d --name postgresus -p 4005:4005 -v ./postgresus-data:/postgresus-data --restart unless-stopped rostislavdugin/postgresus:latest ``` Após isso, a interface web estará disponível em http://localhost:4005, onde você pode configurar fontes de bancos de dados, horários de backup, notificações e locais de armazenamento. ## Possíveis Problemas e Como Resolver **Indisponibilidade do banco de dados**: Postgresus verifica o status do banco a cada 60 segundos e notifica sobre qualquer problema. Em caso de falha, verifique a conexão e as configurações do PostgreSQL. **Problemas de acesso ao armazenamento em nuvem**: Ao usar S3 ou Google Drive, certifique-se de que as chaves de API e permissões de acesso estejam configuradas corretamente. **Falhas no contêiner Docker**: O contêiner reinicia automaticamente em caso de falha (--restart unless-stopped), mas é importante monitorar os recursos do host. ## FAQ - **P: Quais versões do PostgreSQL são suportadas?** R: Versões 13–18. - **P: Posso usar o Postgresus em servidores de produção?** R: Sim, a ferramenta foi projetada para bancos ativos, mas recomenda-se verificar permissões de acesso e segurança do host. - **P: Onde os backups são armazenados?** R: Localmente, no S3 ou Google Drive, dependendo da configuração. - **P: É necessário um servidor separado para o Postgresus?** R: Não, um único host ou contêiner Docker com acesso aos bancos de dados alvo é suficiente. - **P: É possível integrar notificações com outros mensageiros?** R: Atualmente, são suportados Telegram, Slack e Discord, mas é possível expandir a funcionalidade via API do Postgresus. ## Guia Rápido | Ação | Comando / Interface | Descrição | | --- | --- | --- | | Iniciar Postgresus | docker run ... | Executa o contêiner com interface web e recuperação automática em caso de falha | | Verificar status dos bancos | Interface Web → Health Check | Exibe a disponibilidade de todos os bancos conectados e os erros recentes | | Criar tarefa de backup | Interface Web → Backup → Add | Configura fonte, cronograma e local de armazenamento dos backups | | Configurar notificações | Interface Web → Notifications | Envia mensagens para Telegram, Slack ou Discord se houver falha ou indisponibilidade do banco | | Armazenamento de backups | Local / S3 / Google Drive | Seleciona local de armazenamento e configura permissões de acesso | ## Conclusão Postgresus é uma ferramenta self-hosted prática para automação de backups e monitoramento de PostgreSQL. Permite configurar rapidamente backups regulares, receber notificações sobre falhas, armazenar cópias localmente ou na nuvem, e acompanhar a saúde dos bancos em tempo real. Com implantação via Docker e licença open-source Apache 2.0, Postgresus é adequado tanto para projetos pessoais quanto para servidores corporativos, garantindo confiabilidade e segurança no armazenamento de dados. https://serverspace.com.br/support/help/autenticacao-de-senha-no-linux-ferramentas-algoritmos-e-pam-explicado.md Aprenda sobre a autenticação de senha no Linux, incluindo o funcionamento do PAM, ferramentas como passwd, gerenciamento de senhas e como proteger contas de usuário. Veja também como usar o arquivo /etc/shadow e aplicar políticas de senha no Linux. Os sistemas operacionais modernos deixaram de ser janelas de terminal de um único usuário com um shell. Agora, eles são sistemas operacionais multitarefa e multiusuário com interface gráfica e a capacidade de processar dados em paralelo. Em razão disso, há a necessidade de organizar o trabalho entre os usuários: sua autorização e autenticação. Neste artigo, vamos analisar o algoritmo de autenticação no Linux e como você pode gerenciar um deles. ## O que é PAM e o que as senhas do Linux têm a ver com isso? PAM (Pluggable Authentication Module) é um único serviço que integra provedores de autenticação, permitindo que você escolha qualquer cenário e a ordem em que eles são usados. Eles são considerados métodos de sistema através de /etc/passwd, /etc/shadow, onde ele compara o usuário e sua senha inserida na forma de um hash. Pode ser LDAP, Kerberos, NTLM, SSH e outros. Captura de tela nº 1 — Esquema PAM O funcionamento é que o usuário solicita a execução de um arquivo como uma chamada de sistema para o kernel do OS. Após isso, o módulo PAM intercepta e processa a solicitação de acordo com o script prescrito para trabalhar com o serviço, determinando o acesso do usuário. Novos provedores de autenticação podem ser conectados instalando pacotes e bibliotecas adequadas. Classicamente, a verificação de senha do sistema é usada no diretório /etc/shadow utilizando o módulo pam_unix.so. O usuário insere os dados de autenticação, eles são convertidos em hash e comparados com o hash no diretório. Um exemplo de entrada é: ``` user:$6$JdjJd8...$:18355:0:99999:7::: ``` Fica claro que user representa o login do usuário e o valor $6$JdjJd8...$ é o hash da senha, mas o que vem depois disso? Isso são os metadados, onde 18355 é a data da última alteração da senha. Os próximos campos são responsáveis pela expiração mínima/máxima dos dados de autenticação, avisos antes da expiração e bloqueios. O módulo acessa o arquivo e lê todos esses valores, então retorna uma resposta verdadeira ou falsa para o PAM. Vamos dar uma olhada nas ferramentas que permitem definir configurações de senha no arquivo /etc/shadow. ## Ferramentas de Senha no Linux A ferramenta de senha mais popular é passwd. Sua funcionalidade simples inclui a alteração, bloqueio e desbloqueio, validade de senha e exclusão. Vamos criar um novo usuário e testar todos os recursos da ferramenta nele! ``` useradd koldek -p 123321 ``` Captura de tela nº 2 — Nova conta Na utilidade useradd, a opção -p permite definir a senha em um único comando e usá-la para autenticação. Se você não tem recursos suficientes, pode realizar ações em servidores poderosos na nuvem. O Serverspace oferece [servidores VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) isolados para uso comum e virtualizado. Captura de tela nº 3 — Criar servidor Vamos voltar ao terminal e supor que esquecemos a senha. Nesse caso, será necessário redefini-la via usuários no grupo sudo ou root: ``` sudo passwd koldek ``` Captura de tela nº 4 — Nova senha Ótimo, agora não vamos mais esquecer dela! Mas, e se o funcionário sair, o dispositivo não estiver conectado a um controlador de domínio e uma conta separada tenha sido criada para o funcionário? Uma das opções é bloquear o login na conta, vamos fazer isso com o comando: ``` passwd -l koldek ``` Vamos mudar o usuário para o mesmo koldek2 pré-criado e tentar autenticar: Captura de tela nº 5 — Senha bloqueada Ocorre um erro, sem detalhes sobre ele. O comando su acessou o terminal virtual, após o qual o módulo PAM gerou uma solicitação de autenticação sob o novo usuário koldek2. Onde o registro foi verificado e foi indicado em /etc/shadow que a autenticação sob esse registro não é possível. O PAM percorreu todo o script e retornou um erro. Vamos imaginar que precisamos fazer login como esse usuário. Vamos mudar a senha e desbloquear a conta: ``` passwd koldek && passwd -u koldek ``` Em seguida, vamos verificar se a autenticação funciona, faça login no koldek via koldek2 e execute o comando: ``` whoami ``` Captura de tela nº 6 — Desbloqueio Ótimo, a última entrada indica que autenticamos com sucesso no koldek no dispositivo. Você pode impedir o usuário de ser autenticado simplesmente removendo sua senha com o comando: ``` passwd -d koldek ``` Vamos considerar outro caso em que seu usuário está usando a mesma senha há muito tempo e você precisa alterá-la. Para isso, vamos especificar uma alteração forçada durante a autenticação: ``` passwd -e koldek ``` Ou especifique manualmente a data de expiração da senha do usuário: Captura de tela nº 7 — Forçar expiração ``` passwd -X 90 koldek ``` Captura de tela nº 8 — Data de expiração da senha E o comando com a opção -S permite visualizar o status da senha do usuário e verificar se as configurações foram aplicadas. De maneira geral, essas são todas as opções e recursos da autenticação local no dispositivo via o módulo pam_unix.so. Soluções mais complexas, como autenticação TOTP ou LDAP, serão abordadas nos próximos artigos! A autenticação no Linux é um sistema flexível e poderoso, onde o PAM (Pluggable Authentication Modules) desempenha um papel central. Integrando vários provedores de autenticação e trabalhando com o arquivo /etc/shadow, o PAM garante que a gestão de senhas seja segura e adaptável. Com ferramentas simples como passwd, os administradores podem gerenciar credenciais de usuários, impor políticas de senha, bloquear ou desbloquear contas e manter a higiene adequada de segurança. Compreender como a autenticação funciona no nível do sistema é essencial tanto para a proteção da infraestrutura quanto para o gerenciamento eficaz dos usuários. ## FAQ - **O que é PAM no Linux?** PAM (Pluggable Authentication Module) é uma estrutura que permite que sistemas Linux integrem diferentes provedores de autenticação, como senhas locais, LDAP, Kerberos ou SSH. - **Onde as senhas dos usuários do Linux são armazenadas?** Os hashes de senha e os metadados relacionados são armazenados no arquivo /etc/shadow, que só pode ser acessado por usuários privilegiados (root). - **Qual o papel do módulo pam_unix.so?** O módulo pam_unix.so verifica as senhas locais dos usuários comparando o valor inserido (após hashing) com o hash armazenado em /etc/shadow. - **Como posso alterar a senha de um usuário no Linux?** Você pode usar o comando passwd username para alterar a senha de um usuário. Exemplo: ``` sudo passwd koldek ``` **Como bloquear ou desbloquear uma conta de usuário no Linux?** Bloquear: passwd -l username Desbloquear: passwd -u username - **Como forçar um usuário a mudar sua senha no próximo login?** Você pode expirar a senha dele com: ``` passwd -e username ``` Isso exigirá que o usuário defina uma nova senha no próximo login. - **Posso definir políticas de expiração de senha no Linux?** Sim, por exemplo: ``` passwd -X 90 username ``` Isso forçará a senha a expirar após 90 dias. - **O que acontece se eu remover a senha de um usuário?** Executar passwd -d username remove a senha, o que impede o login com autenticação por senha, a menos que outro método (como chave SSH) seja configurado. - **A autenticação local com /etc/shadow é segura?** Sim, desde que o arquivo esteja protegido e algoritmos de hash fortes (como SHA-512) sejam usados. No entanto, para ambientes corporativos, métodos adicionais como LDAP ou autenticação multifatorial são recomendados. https://serverspace.com.br/about/blog/quais-recursos-de-servidor-influenciam-na-velocidade-do-site.md Descubra como CPU, RAM, discos, rede, CDN e WAF impactam a velocidade do site e saiba como otimizar desempenho e estabilidade online. A velocidade do site é um dos fatores-chave para o sucesso na internet. A rapidez com que uma página carrega afeta não apenas a experiência do visitante, mas também o posicionamento nos mecanismos de busca, a taxa de conversão e até a reputação da marca. Quando se fala em otimização, muitos pensam em design leve, código bem estruturado e minimização de imagens. Mas existe outro nível fundamental — os recursos do servidor. São eles que determinam com que rapidez as requisições são processadas, a velocidade das operações e a estabilidade do site em momentos de alta demanda. Neste artigo, vamos analisar quais componentes da infraestrutura de servidor influenciam diretamente na velocidade de um site, quais erros geralmente causam lentidão e como escolher a configuração certa. ## CPU (processador central) O processador é o principal elemento responsável pelo processamento de requisições no servidor. Sua potência e número de núcleos determinam a velocidade com que o site consegue lidar com acessos simultâneos e executar scripts. Se o site for dinâmico — como um e-commerce ou sistema CRM — a carga sobre a CPU é especialmente alta. Cada ação do usuário (busca de produto, aplicação de filtro, adicionar ao carrinho) exige cálculos, e um processador fraco vira gargalo. **Exemplo:** com uma CPU fraca, a página de catálogo com muitos filtros pode levar 3–5 segundos para carregar; já com núcleos suficientes e boa configuração, apenas 1–2 segundos. ## RAM (memória de acesso aleatório) A memória RAM é responsável pela velocidade de processamento dos dados usados "aqui e agora". Quanto maior o volume de RAM, mais informações o servidor pode manter em acesso rápido sem precisar recorrer ao disco. A falta de memória faz com que as requisições sejam "despejadas" no disco, aumentando drasticamente o tempo de resposta. Isso é crítico para sites com muitos usuários simultâneos ou bancos de dados complexos. **Exemplo:** um e-commerce com busca ativa e recomendações pode carregar páginas 2–3 vezes mais devagar quando a RAM é insuficiente. Acrescentar alguns gigabytes elimina o gargalo e acelera a resposta. ## Discos: SSD versus HDD A velocidade de armazenamento e recuperação de dados depende diretamente do tipo de disco. HDDs usam um mecanismo físico, sendo mais lentos e menos eficientes sob alta demanda simultânea. SSDs funcionam com memória flash, oferecendo latência muito menor e altas velocidades de leitura e gravação. Isso é essencial para sites dinâmicos que acessam constantemente bancos de dados ou carregam muitos arquivos. **Exemplo:** em HDD, a página de um portal pode abrir em 3–4 segundos; já em SSD, esse tempo cai para 1–1,5 segundos. ## Recursos de rede: largura de banda e estabilidade Mesmo o servidor mais potente não garante um site rápido se a conexão for limitada ou instável. A velocidade de carregamento depende de fatores como: - **Largura de banda.** Quanto maior, mais rápido os usuários recebem o conteúdo, especialmente arquivos multimídia ou grandes bases de dados. - **Latência.** Se o servidor estiver distante do usuário ou a rede estiver sobrecarregada, o atraso no envio de pacotes aumenta, tornando o site lento. - **Confiabilidade da conexão.** Perda de pacotes ou quedas tornam o site instável, o que é crítico para e-commerces ou serviços em tempo real. **Exemplo:** um site com público no Brasil será lento se hospedado na Europa. Usar servidores em data centers locais e habilitar CDN reduz a latência e acelera a entrega dos dados. ## Cache e tecnologias adicionais de aceleração Mesmo com recursos potentes, o site pode ser lento se cada requisição for processada do zero. Para otimizar o desempenho, usam-se mecanismos de cache e serviços adicionais. - **Cache.** Armazena páginas, imagens ou resultados de consultas já prontos. Isso reduz a carga sobre CPU e disco, acelerando a resposta. Por exemplo, em vez de montar a página de um e-commerce a cada acesso, o servidor entrega a versão armazenada em cache. - **[CDN (Content Delivery Network)](https://serverspace.com.br/services/cdn.md).** Rede de nós distribuídos que entrega conteúdo a partir do servidor mais próximo ao usuário, reduzindo latência e acelerando o carregamento, especialmente em projetos internacionais. - **[WAF (Web Application Firewall)](https://serverspace.com.br/services/waf.md).** Além de proteger, o WAF reduz a carga ao bloquear tráfego malicioso e requisições desnecessárias antes de chegarem ao servidor principal. Isso mantém a estabilidade mesmo em picos de tráfego. **Exemplo:** usar CDN em um portal de notícias global pode reduzir o tempo de carregamento em 2–3 vezes; já o WAF protege contra bots e mantém o site estável durante ataques. ## Comparação dos recursos de servidor e seu impacto na velocidade do site | Recurso | Influência | Quando é crítico | Exemplo | | --- | --- | --- | --- | | CPU | Velocidade de processamento, tarefas paralelas | Em alta carga e cálculos complexos | E-commerce com muitos pedidos simultâneos | | RAM | Velocidade de apps, dados em memória rápida | Em uso de bancos de dados e cache | CRM que mantém sessões ativas em memória | | Discos (SSD vs HDD) | Velocidade de leitura/escrita, entrega de conteúdo | Quando há muitos acessos a arquivos | Portal com catálogo ou notícias | | Rede | Largura de banda e latência | Em projetos globais e multimídia | Streaming de vídeo ou SaaS internacional | | Cache/CDN | Redução da carga, entrega mais rápida | Em alto volume de requisições repetidas | Notícias, e-commerces, plataformas de ensino | | WAF | Proteção e filtragem do tráfego | Em picos ou ataques | E-commerce em liquidações, serviços financeiros | ## Vantagens do Serverspace para acelerar sites A velocidade e a estabilidade do site dependem muito da infraestrutura. A plataforma Serverspace oferece soluções flexíveis para empresas de qualquer porte: - **[Servidores Virtuais](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) (VPS) com SSD.** Implantação em minutos e cobrança por hora permitem ajustar os recursos sem custos extras. - **Tarifação transparente e escalabilidade.** Fácil aumentar recursos conforme a demanda cresce. - **Rede de [data centers globais](https://serverspace.com.br/infrastructure/data-centers.md).** Servidores em diferentes regiões reduzem a latência e aceleram o acesso em projetos internacionais. - **Ferramentas de performance e segurança.** Incluindo CDN para entrega rápida de conteúdo e WAF para proteger contra ataques sem perda de velocidade. Assim, as empresas recebem não apenas um servidor virtual, mas uma infraestrutura pronta para garantir desempenho e confiabilidade máximos. A velocidade do site depende diretamente dos recursos do servidor: CPU, RAM, discos, rede e tecnologias como cache ou CDN. Se um desses elementos falhar ou for limitado, todo o projeto sofre — usuários desistem e o negócio perde receita. Por isso, é essencial equilibrar os recursos e aplicar ferramentas como WAF e CDN, que garantem não só rapidez, mas também segurança e estabilidade. Serviços como o Serverspace permitem reunir tudo isso em um só lugar: implantar VPS em minutos, escalar sob demanda e adicionar recursos de aceleração e proteção. Uma solução ideal tanto para startups quanto para grandes empresas. ## FAQ - **Quais recursos do servidor mais impactam a velocidade do site?** CPU, RAM, discos e rede. Além deles, cache, CDN e WAF são fundamentais para manter a estabilidade. - **Como saber se meu site precisa de mais recursos?** Se os usuários reclamam de lentidão, o tempo de resposta (TTFB) cresce ou CPU/RAM atingem o limite — é hora de escalar. - **SSD ou HDD: qual é melhor para sites?** SSD oferece muito mais velocidade de leitura e escrita, essencial para sites dinâmicos e bancos de dados. - **Por que usar CDN se já tenho um servidor potente?** Um servidor forte não resolve a distância geográfica. A CDN reduz a latência para usuários em diferentes regiões e alivia o servidor principal. - **O WAF afeta a velocidade do site?** Sim, de forma positiva. Ele bloqueia tráfego malicioso antes que chegue ao servidor, mantendo o site rápido e estável mesmo em picos ou ataques. https://serverspace.com.br/about/blog/vpn-na-nuvem-como-funciona-e-por-que-e-importante-para-os-negocios.md Entenda como o VPN em nuvem protege dados, conecta equipes remotas e unifica redes corporativas com segurança, criptografia e conformidade com a LGPD. O ambiente corporativo moderno cada vez mais opera em formato distribuído: colaboradores trabalham de diferentes cidades e países, prestadores atuam remotamente, e serviços e bancos de dados vivem na nuvem. Isso é conveniente — a empresa pode crescer sem estar rigidamente presa a um escritório físico ou infraestrutura local. Mas, junto com isso, surge uma nova questão: como garantir acesso seguro e controlado aos sistemas internos? O VPN na nuvem resolve esse problema. Ele cria um canal de comunicação protegido, através do qual colaboradores e serviços se conectam aos recursos corporativos como se estivessem dentro da mesma rede local — mesmo que fisicamente estejam em qualquer lugar. Ao mesmo tempo, um VPN em nuvem é diferente de um VPN em "hardware": é possível implantá-lo em poucos minutos, sem comprar equipamentos caros, sem lidar com atualizações de firmware ou configuração manual de roteamento. A escalabilidade, as atualizações e a gestão de acesso acontecem por meio de um painel intuitivo — isso reduz custos e diminui a carga sobre a equipe de TI. E se antes o VPN era associado principalmente ao "acesso remoto ao servidor do escritório", hoje ele é uma ferramenta completa para: - Organizar trabalho remoto seguro; - Gerenciar acessos à infraestrutura em nuvem; - Proteger dados e comunicações em sistemas distribuídos; - Unificar filiais e parceiros em uma rede única. ## O que é VPN e como funciona VPN (Virtual Private Network) é uma tecnologia que cria um canal criptografado entre o dispositivo do usuário e o servidor ou rede corporativa. Em outras palavras, é como um "túnel" onde os dados são transmitidos sem risco de interceptação ou alteração. Quando um colaborador se conecta ao VPN: - Todo o tráfego é criptografado; - Ele é encaminhado para o servidor VPN; - Para o mundo externo, parece que esse colaborador está "dentro" da rede da empresa; - Os serviços (CRM, ERP, banco de dados, servidores em nuvem) o reconhecem como um usuário interno. Isso garante vários benefícios simultâneos: - **Segurança:** os dados não podem ser interceptados em redes públicas ou domésticas. - **Controle:** o acesso pode ser revogado em segundos. - **Privacidade:** o endereço IP real do usuário permanece oculto. O VPN em nuvem faz tudo isso sem necessidade de hardware físico, o que é ideal para empresas com equipes distribuídas e infraestrutura hospedada na nuvem. ## Para que o VPN é necessário nos negócios VPN não é apenas "acesso remoto". No contexto corporativo, ele resolve tarefas bem específicas. **1. Trabalho remoto seguro.** Os funcionários se conectam aos serviços da empresa como se estivessem no escritório, independentemente de onde estejam fisicamente. **2. Proteção de dados durante a transmissão.** Sem criptografia, os dados podem ser interceptados em qualquer ponto da rede — especialmente em Wi-Fi públicos. O VPN criptografa todo o tráfego → reduz o risco de vazamento de informações confidenciais. **3. Unificação de filiais, escritórios e prestadores em uma única rede.** O VPN conecta pontos geograficamente distantes em uma única rede virtual local, mesmo se os escritórios estiverem em diferentes cidades ou países. **4. Acesso a servidores privados e APIs corporativos.** Muitos sistemas empresariais não devem estar acessíveis pela internet aberta. O VPN permite: - Manter servidores sem IP público; - Expor serviços apenas para clientes autorizados; - Controlar o acesso em nível de usuário/ **5. Conformidade com a LGPD (Lei Geral de Proteção de Dados).** O VPN ajuda a cumprir dois requisitos essenciais da LGPD: - Controle de acesso aos dados; - Criptografia de tráfego e canais de transmissão. ## Tipos de VPN e suas características 1. IPsec VPN — a base clássica das redes corporativas IPsec (IP Security) é um conjunto de protocolos que protege todo o tráfego entre dispositivos. Esse tipo de VPN opera no nível da rede, criando um "túnel" entre dois pontos — por exemplo, entre um escritório e uma nuvem. Todos os aplicativos funcionam como se estivessem na mesma rede local, mesmo separados por milhares de quilômetros. É o padrão de segurança corporativa: bancos, grupos industriais e órgãos governamentais usam IPsec para conectar filiais. **Quando usar:** para unir redes de escritórios, data centers ou nuvens. **Vantagens:** - Criptografia muito forte e confiável; - Ideal para redes com conexões permanentes (ERP, CRM). **Desvantagens:** - Configuração mais complexa, especialmente com múltiplas sub-redes; - Conflitos de roteamento podem surgir se mal configurado. 2. OpenVPN — flexível e universal, ideal para usuários OpenVPN funciona com base em TLS (o mesmo nível de segurança do HTTPS). Ao contrário do IPsec, pode ser executado facilmente em servidores comuns e não requer roteadores específicos. Sua principal força é a compatibilidade: Ideal para fornecer acesso seguro a colaboradores, prestadores e administradores. **Quando usar:** quando funcionários trabalham remotamente e precisam acessar sistemas internos. **Vantagens:** - Funciona em Windows, Linux, Mac, iOS e Android; - Pode se "disfarçar" como tráfego HTTPS e funcionar mesmo atrás de firewalls rígidos; - Fácil de administrar. **Desvantagens:** - Sob alta carga, pode ser mais lento do que WireGuard; - Gerenciamento de certificados requer atenção. 3. WireGuard — o novo padrão rápido para nuvens e DevOps WireGuard é um protocolo moderno, com criptografia atual e código extremamente compacto (10 vezes menor que o OpenVPN). Por isso, ele é mais rápido, mais simples e potencialmente mais seguro. Ideal para infraestrutura em nuvem, Kubernetes e ambientes dinâmicos. **Quando usar:** quando desempenho e automação são importantes. **Vantagens:** - Velocidade muito alta; - Latência mínima; - Configuração simples. **Desvantagens:** - Exige disciplina no gerenciamento de chaves; - Pode precisar de ajustes adicionais em redes corporativas. 4. SSL-VPN — acesso via navegador para serviços corporativos SSL-VPN atua no nível da aplicação. Em vez de criar uma rede privada completa, ele concede acesso seguro apenas a serviços específicos — como CRM, painel administrativo, webmail. O usuário simplesmente abre um link, faz login e trabalha. **Quando usar:** para dar acesso a parceiros ou equipes externas sem abrir toda a infraestrutura. **Vantagens:** - Não requer instalação de cliente; - Excelente para call centers e equipes de suporte; - Restringe acesso apenas ao necessário. **Desvantagens:** - Funciona apenas com aplicações web; - Não substitui VPN de rede completa. | Tipo de VPN | Como funciona | Onde é utilizado | Vantagens | Limitações | | --- | --- | --- | --- | --- | | IPsec VPN | Cria um túnel seguro entre redes completas | Redes corporativas, ERP/CRM, sistemas bancários | Alta segurança, estável em conexões contínuas, suporte nativo em roteadores | Configuração mais complexa, possível conflito de sub-redes | | OpenVPN | Criptografa a conexão usando TLS; ideal para acesso remoto | Conexões de funcionários, prestadores e administradores | Flexível, multiplataforma, pode se disfarçar como tráfego HTTPS | Pode ser mais lento do que WireGuard sob carga elevada | | WireGuard | Protocolo moderno com criptografia atual e código leve | Nuvem, DevOps, Kubernetes, microsserviços | Alta velocidade, baixa latência, configuração simples | Requer disciplina no gerenciamento de chaves | | SSL-VPN | Fornece acesso seguro via navegador apenas aos serviços necessários | CRM, sistemas de tickets, painéis administrativos, call centers | Não requer instalação, restringe acesso ao essencial | Limitado a aplicações web; não substitui VPN de rede completa | ## VPN na nuvem: como a Serverspace simplifica a proteção da infraestrutura Na Serverspace, o VPN é implantado diretamente no painel de controle — sem necessidade de comprar equipamentos, configurar roteadores complexos ou montar infraestrutura física. Isso é especialmente importante para equipes distribuídas, funcionários remotos, prestadores, filiais e serviços em nuvem. O que a Serverspace oferece: - **[Servidores VPN prontos](https://serverspace.com.br/services/cloud-vpn.md)** — implantação em poucos minutos; - **Suporte StrongSwan (IPsec/IKEv2)** — ideal para conectar escritórios, redes privadas e segmentos corporativos protegidos; - **Suporte SoftEther** — excelente para trabalho remoto, multiplataforma, eficiente mesmo em redes instáveis ou atrás de NAT; - **[Redes privadas](https://serverspace.com.br/services/private-networks.md) flexíveis** — criar redes internas, conectar servidores e gerenciar rotas no painel; - **Criptografia de ponta a ponta** — proteção de dados na transmissão, atendendo às exigências da LGPD. De forma resumida, o VPN na nuvem ajuda a: - Proteger dados; - Controlar acessos; - Unir equipes distribuídas; - Reduzir dependência de infraestrutura física; - Manter conformidade legal e segurança operacional. Escolher um VPN não é apenas escolher um protocolo — é definir a abordagem de segurança da empresa. VPN na nuvem oferece escalabilidade, controle e velocidade de implantação, mantendo altos padrões de proteção e conformidade com a LGPD. Isso permite ao negócio crescer sem comprometer a segurança — e sem depender de hardware ou manutenção complexa. ### O VPN exige um especialista dedicado para manutenção? Usando VPN em nuvem — não necessariamente. Painel, configuração automática e perfis prontos simplificam a operação. Cenários avançados (segmentação, acesso por função, várias redes) podem ser configurados com ajuda de engenheiros do provedor. ### O VPN reduz a velocidade da conexão? Toda criptografia adiciona pequena sobrecarga, mas com protocolos modernos (WireGuard, IKEv2) e servidor próximo, o impacto é mínimo. ### Como escalar o VPN conforme a equipe cresce? No VPN em nuvem, a ampliação é automática: adicionam-se novos perfis e recursos conforme necessário, sem reconfigurar a rede ou comprar hardware. ### Por que VPN em nuvem pode ser melhor que VPN baseado em hardware? VPN físico exige compra, instalação e suporte de equipamentos. VPN em nuvem é implantado em minutos, escala sob demanda e reduz custos de operação. https://serverspace.com.br/about/blog/como-escolher-a-virtualizacao-vstack-kvm-vmware-e-outras.md Tabela comparativa entre vStack, KVM, VMware, Hyper-V e Proxmox VE em critérios como desempenho, segurança e escalabilidade. A virtualização há muito deixou de ser uma tecnologia do futuro - hoje ela é a base da infraestrutura de TI moderna. Com ela, é possível executar dezenas de servidores isolados em um único nó físico, utilizar recursos de forma eficiente, escalar aplicações e aumentar a resiliência dos sistemas. Sem virtualização, não existiriam nuvens, ambientes de CI/CD nem aplicativos distribuídos. Mesmo assim, escolher uma plataforma de virtualização continua sendo um desafio. Cada solução - desde hipervisores de código aberto até sistemas corporativos - possui sua própria arquitetura, modo de gerenciamento e limitações de licenciamento. Algumas priorizam flexibilidade e abertura (como KVM e Proxmox), enquanto outras focam em estabilidade corporativa e integração (como VMware e Hyper-V). Já as soluções em nuvem mais modernas, como o vStack, combinam desempenho com facilidade de escalabilidade e gerenciamento centralizado. ## Breve histórico da virtualização As primeiras ideias de virtualização surgiram na década de 1960, quando a IBM desenvolvia sistemas de compartilhamento de tempo para seus mainframes. Naquela época, os engenheiros buscavam uma forma de executar vários processos independentes em uma única máquina - aumentando o aproveitamento do hardware e isolando falhas de usuários. No início dos anos 2000, com o avanço do poder de processamento e o crescimento do Linux, a tecnologia de máquinas virtuais tornou-se popular. Surgiram os hipervisores - softwares capazes de criar e gerenciar ambientes virtuais. Foi então que apareceram os principais players do setor: VMware com sua plataforma vSphere, Microsoft com o Hyper-V, e KVM, incorporado diretamente ao kernel do Linux. A partir daí, o ritmo só acelerou: a infraestrutura tornou-se programável, e a virtualização passou a ser a base das nuvens. De uma simples forma de "dividir o servidor", ela evoluiu para o alicerce da cultura DevOps e da automação. Plataformas modernas como o vStack expandiram essa ideia, oferecendo gerenciamento flexível de pools de recursos, implantação rápida e alta disponibilidade em nível de cluster. ## vStack: uma plataforma de nuvem de nova geração O vStack é um sistema moderno de virtualização e orquestração que serve de base para a infraestrutura da Serverspace. Sua arquitetura combina a flexibilidade das tecnologias abertas com a confiabilidade das soluções corporativas. A plataforma foi projetada para a criação de nuvens privadas e públicas, nas quais desempenho, isolamento e automação desempenham papéis essenciais. No núcleo do vStack está um hipervisor próprio, desenvolvido a partir do Bhyve - uma tecnologia de virtualização leve e rápida originária do ecossistema FreeBSD. A equipe do vStack reformulou a arquitetura original, aprimorando o desempenho, a segurança e o gerenciamento de memória. Isso permitiu alcançar alta velocidade na inicialização das máquinas virtuais e estabilidade sob carga, mantendo a eficiência e a simplicidade do hipervisor. **Como o vStack funciona** A arquitetura do vStack segue o princípio da modularidade: nós de computação, sistemas de armazenamento e componentes de rede são unificados em um único pool de recursos, gerenciado por um controlador central vStack. Esse controlador é responsável pela orquestração, distribuição de carga, monitoramento e recuperação automática em caso de falhas. Cada máquina virtual é totalmente isolada em nível de hipervisor, garantindo segurança e previsibilidade de desempenho. Os administradores podem escalar os recursos de forma dinâmica - ajustando o número de vCPUs, a quantidade de memória RAM e o espaço em disco sem tempo de inatividade. **Vantagens do vStack na Serverspace** Na [Serverspace](https://serverspace.com.br/services/cloud-servers.md), o vStack é integrado ao ecossistema de serviços em nuvem, tornando o gerenciamento de infraestrutura extremamente conveniente: os usuários podem criar e configurar máquinas virtuais diretamente pelo painel de controle ou via [API](https://serverspace.com.br/services/api.md). **Principais vantagens:** - **Implantação ultrarrápida** - uma máquina virtual é criada em cerca de 40 segundos; - **Pay-as-you-go** - você paga apenas pelos recursos efetivamente utilizados; - **Tráfego ilimitado** - sem custos adicionais; - **SLA de 99,9% **- alta disponibilidade garantida por replicação e clusters redundantes; - **Infraestrutura global da Serverspace** - [data centers](https://serverspace.com.br/infrastructure/data-centers.md) na Europa, Ásia, América do Norte e América do Sul; - **Painel de controle intuitivo e API** para integração com pipelines CI/CD e processos DevOps; - **Suporte a aplicativos 1-Click** e modelos de sistema operacional prontos para uso. O vStack tornou-se o núcleo das nuvens da Serverspace por unir velocidade, confiabilidade e flexibilidade, garantindo alto desempenho com o mínimo de complexidade administrativa. ## VMware: o padrão corporativo de virtualização A VMware é uma das plataformas de virtualização mais antigas e reconhecidas do mercado. A empresa foi pioneira na área ainda no final dos anos 1990, ao criar um hipervisor capaz de executar vários sistemas operacionais independentes em um único servidor físico. Hoje, a VMware continua sendo a escolha de grandes corporações e data centers, onde estabilidade e suporte técnico são fatores críticos. **Arquitetura e recursos** O núcleo das soluções VMware é o hipervisor ESXi, que é instalado diretamente no hardware físico e cria máquinas virtuais sem depender de um sistema operacional intermediário. Esse modelo garante alto desempenho e forte isolamento de recursos. O gerenciamento da infraestrutura virtual é feito por meio do VMware vCenter, um console centralizado que permite aos administradores criar, mover e fazer backup de máquinas virtuais, monitorar o uso de recursos e configurar políticas de rede. O ecossistema também inclui ferramentas complementares, como vRealize (automação), vSphere Replication (backup e recuperação) e suporte a clusters de alta disponibilidade (HA e DRS). **Pontos fortes da VMware** - **Confiabilidade e maturidade** - soluções comprovadas há décadas em ambientes corporativos; - **Ecossistema robusto** - integração com sistemas de backup, monitoramento e segurança; - **Gerenciamento flexível** - console avançado, políticas de migração e balanceamento de carga entre nós; - **Suporte corporativo** - atualizações oficiais, ampla documentação e assistência técnica de alto nível. **Limitações** A estabilidade vem acompanhada de um custo considerável. A VMware é um ecossistema comercial com licenças e assinaturas de valor elevado. Além disso, por ser uma plataforma de código fechado e exigir hardware certificado, a integração com sistemas externos pode ser limitada. Para pequenas empresas e desenvolvedores, isso muitas vezes se torna uma barreira de entrada. Na Serverspace, também é possível implantar [infraestrutura baseada em VMware](https://serverspace.com.br/services/iaas.md). Essa opção é ideal para empresas que já utilizam a plataforma em seus ambientes locais e desejam migrar para a nuvem sem alterar a arquitetura existente. Assim, os usuários podem combinar a confiabilidade da VMware com a flexibilidade e a escalabilidade da infraestrutura em nuvem da Serverspace. ## KVM: virtualização aberta para desenvolvedores e data centers O KVM (Kernel-based Virtual Machine) é um hipervisor incorporado diretamente ao kernel do Linux. Ele transforma o sistema operacional em uma plataforma completa de virtualização, permitindo executar máquinas virtuais (VMs) independentes, cada uma com seu próprio kernel, memória e interfaces de rede. Por estar totalmente integrado ao Linux, o KVM herda toda a sua potência e flexibilidade. Cada máquina virtual é tratada como um processo comum do sistema, gerenciado pelas ferramentas padrão do kernel, o que garante excelente isolamento e desempenho próximo ao de um servidor físico (bare metal). **Como o KVM funciona** O KVM utiliza as tecnologias de virtualização de hardware Intel VT-x e AMD-V, permitindo que as VMs acessem diretamente os recursos do processador sem comprometer a segurança. O gerenciamento das máquinas virtuais é feito com ferramentas como libvirt, QEMU, virt-manager, além de orquestradores populares como OpenStack e Proxmox VE. Essa combinação faz do KVM uma das soluções mais versáteis do mercado - ideal tanto para pequenos laboratórios quanto para grandes data centers em nuvem. Muitos provedores de infraestrutura utilizam o KVM como base para suas próprias plataformas de virtualização. **Vantagens do KVM** - **Código aberto** - sem custos de licença ou restrições ocultas; - **Flexibilidade** - compatível com diversos sistemas operacionais e ferramentas de gerenciamento; - **Alto desempenho** - sobrecarga mínima na virtualização; - **Integração com o ecossistema Linux** - suporte a drivers, sistemas de armazenamento e automação. **Limitações** O KVM exige um conhecimento mais profundo de administração de sistemas. A configuração de clusters, redes e armazenamento geralmente é feita manualmente ou com o auxílio de ferramentas externas. Isso torna a plataforma menos acessível para iniciantes, mas ideal para engenheiros DevOps e empresas que buscam total transparência e controle sobre sua infraestrutura ## Microsoft Hyper-V: virtualização no ecossistema Windows O Microsoft Hyper-V é a solução de virtualização da Microsoft, integrada às versões Server e Desktop do Windows. A plataforma é voltada principalmente para o setor corporativo e organizações cuja infraestrutura já está baseada em produtos da Microsoft - como Active Directory, Windows Server e Azure. **Como o Hyper-V funciona** O hipervisor Hyper-V opera no modelo bare-metal, ou seja, é instalado diretamente no hardware físico, sem depender de um sistema operacional intermediário. Ele cria máquinas virtuais isoladas, cada uma com seus próprios recursos de processador, memória, armazenamento e rede. O gerenciamento pode ser feito por meio do Hyper-V Manager ou do console centralizado Windows Admin Center; em ambientes maiores, é utilizado o System Center Virtual Machine Manager (SCVMM). O Hyper-V oferece suporte à criação de clusters de alta disponibilidade, à migração ao vivo (Live Migration) de máquinas virtuais sem interrupção e à integração com a plataforma em nuvem Azure, permitindo mover cargas de trabalho entre ambientes locais e em nuvem de forma flexível. **Vantagens do Hyper-V** - **Integração com o ecossistema Windows** - configuração simples para servidores e domínios Active Directory já existentes; - **Suporte a infraestrutura híbrida** - combinação de recursos locais com a nuvem Azure; - **Ferramentas de gerenciamento práticas** - interfaces gráficas e compatibilidade com PowerShell; - **Confiabilidade e previsibilidade** - padrão corporativo, bem documentado e amplamente suportado. **Limitações** O Hyper-V é menos flexível em ambientes multiplataforma: ele foi projetado principalmente para o Windows e possui compatibilidade limitada com distribuições Linux e sistemas personalizados. Além disso, muitas funcionalidades - como clusterização e backup avançado - exigem licenças adicionais da Microsoft, o que pode aumentar o custo total de propriedade. ## Proxmox VE: virtualização híbrida de código aberto O Proxmox VE (Virtual Environment) é uma plataforma gratuita de virtualização open source, desenvolvida com base no Linux e no KVM. Ela combina virtualização tradicional com conteinerização, permitindo executar tanto máquinas virtuais completas quanto contêineres leves LXC em uma única infraestrutura. **Como o Proxmox VE funciona** O Proxmox utiliza a combinação KVM + LXC: o primeiro é responsável pela virtualização de hardware, enquanto o segundo executa contêineres isolados que compartilham o mesmo sistema operacional. Essa abordagem torna o sistema extremamente versátil - em um único cluster é possível hospedar aplicações corporativas pesadas e microsserviços leves simultaneamente. O gerenciamento é feito por meio de uma interface web intuitiva, que permite criar e configurar máquinas virtuais, gerenciar armazenamento e redes, realizar migrações, backups e monitoramento. O Proxmox também oferece suporte a clusterização e replicação, o que o torna adequado até mesmo para pequenos data centers. **Vantagens do Proxmox VE** - **Código aberto** - sem restrições ou licenças pagas; - **Painel de controle** unificado para KVM e LXC; - **Suporte a clusters e replicação**; - **Comunidade ativa e atualizações frequentes**; - **Flexibilidade** - ideal para laboratórios domésticos, startups e ambientes de produção. **Limitações** O Proxmox exige conhecimento básico de Linux e redes. Em cenários avançados, como integração com sistemas de armazenamento externos ou balanceadores de carga, pode ser necessário realizar configurações manuais. Além disso, o suporte técnico oficial está disponível apenas por meio de assinatura. ## Comparação das plataformas de virtualização | Critério | vStack | KVM | VMware | Hyper-V | Proxmox VE | | --- | --- | --- | --- | --- | --- | | Tipo | Hipervisor próprio baseado no Bhyve | Hipervisor no nível do kernel do Linux | Hipervisor corporativo ESXi | Hipervisor corporativo da Microsoft | Plataforma open source baseada em KVM + LXC | | Licenciamento | Tecnologia proprietária, integrada à infraestrutura da Serverspace | Open Source (GPL) | Comercial, mediante assinatura | Comercial, incluído nas licenças do Windows | Open Source, assinatura de suporte opcional | | Desempenho | Alto, otimizado para clusters em nuvem | Muito alto, próximo ao desempenho "bare metal" | Alto, estável sob grandes cargas | Bom em ambientes Windows | Médio a alto, depende da configuração | | Escalabilidade | Automática, baseada em clusters | Depende de ferramentas externas | Alta, com clusters e DRS integrados | Alta, especialmente com integração ao Azure | Suporte nativo a clusterização | | Segurança | Isolamento de VMs em nível de hipervisor, com mecanismos de redundância integrados | Depende da configuração do kernel e do host | Avançada, com gerenciamento centralizado | Boa, com integração ao Active Directory | Confiável, com recursos de replicação | | Compatibilidade | Linux, Windows, BSD, modelos em nuvem da Serverspace | Linux, Windows, BSD | Ampla, mas limitada a hardware certificado | Principalmente Windows, suporte parcial ao Linux | Linux, Windows, contêineres LXC | | Facilidade de gerenciamento | Painel de controle e API | Requer CLI e ferramentas externas | Console vCenter intuitivo | Integração com o Windows Admin Center | Interface web acessível até para iniciantes | | Casos de uso | Infraestrutura em nuvem, DevOps, SaaS | Nuvens, data centers, hospedagem | Ambientes corporativos e data centers virtuais | Ambientes empresariais baseados em Windows | Laboratórios, DevOps, PMEs e clusters privados | A virtualização permite que as empresas reduzam custos, aumentem a confiabilidade dos serviços e escalem recursos conforme a demanda cresce. No entanto, não existe uma solução universal - cada plataforma evolui em sua própria direção e atende a necessidades específicas. KVM e Proxmox VE se destacam pela abertura e flexibilidade. VMware e Hyper-V apostam em estabilidade e integração corporativa. Já o vStack combina os dois mundos, oferecendo um equilíbrio entre desempenho, facilidade de gerenciamento e prontidão para cenários em nuvem. No fim, a escolha da tecnologia depende dos objetivos do projeto: alguns precisam de controle e customização aprofundados, outros valorizam simplicidade e infraestrutura pronta para uso. O mais importante é compreender a arquitetura do seu sistema e escolher a virtualização que possa evoluir junto com o seu negócio. ### O que é um hipervisor e para que serve? O hipervisor é uma camada de software que permite executar várias máquinas virtuais em um único servidor físico. Ele gerencia a alocação de recursos e garante isolamento entre os ambientes virtuais. ### É possível usar diferentes tipos de virtualização em uma mesma infraestrutura? Sim. Muitas empresas combinam soluções - por exemplo, usam VMware para serviços críticos e KVM para ambientes de teste. O essencial é garantir compatibilidade e um gerenciamento centralizado. ### Em que o vStack difere do KVM ou do VMware? O vStack utiliza um hipervisor próprio baseado no Bhyve e foi projetado especialmente para data centers em nuvem. Diferente do KVM, não exige configuração manual, e em relação ao VMware, não impõe restrições de licenciamento ou hardware certificado. ### É possível migrar uma infraestrutura VMware existente para a Serverspace? Sim. Na Serverspace, é possível implantar infraestrutura baseada em VMware, o que simplifica a migração e permite manter a arquitetura existente ao mover cargas de trabalho para a nuvem. https://serverspace.com.br/about/blog/o-que-e-terraform-e-por-que-ele-e-importante-na-nuvem.md Entenda o que é Terraform, como funciona o modelo de infraestrutura como código e por que ele é fundamental para automação em ambientes de nuvem. Os projetos digitais modernos vivem na nuvem. Aplicações web, serviços móveis e sistemas corporativos dependem de uma base composta por máquinas virtuais, redes, bancos de dados e balanceadores de carga. E quanto mais um projeto cresce, mais difícil se torna manter essa infraestrutura manualmente. Configurar servidores e redes à mão já foi comum, mas hoje isso se transforma em uma fonte constante de erros, atrasos e inconsistências entre equipes. Um engenheiro pode configurar um cluster de um jeito, outro de forma diferente. No fim, os ambientes se comportam de maneiras distintas, e reproduzir o ambiente de produção vira um jogo de adivinhação. Para eliminar essa rotina e tornar a infraestrutura previsível, surgiu o conceito de Infrastructure as Code — a gestão da infraestrutura por meio de descrições em formato de código. Isso não é apenas uma conveniência, mas uma ferramenta de controle, velocidade e padronização. ## O que é Terraform Terraform é uma ferramenta que permite gerenciar a infraestrutura em nuvem por meio de código. Em vez de criar máquinas virtuais, redes ou storages manualmente, o engenheiro descreve a configuração desejada em um formato declarativo, e o Terraform ajusta a infraestrutura para alcançar esse estado. Esse modelo torna os processos mais previsíveis e reproduzíveis. A infraestrutura se transforma em código: pode ser armazenada em um repositório, passar por revisão, ter versionamento e ser implantada de forma idêntica em qualquer ambiente — do desenvolvimento à produção. O Terraform funciona através de provedores que sabem como interagir com plataformas específicas. A Serverspace e muitos outros serviços oferecem seus próprios provedores, permitindo gerenciar recursos de diferentes sistemas dentro de um único projeto. ## Como o Terraform funciona O Terraform gerencia a infraestrutura seguindo um processo simples, porém extremamente poderoso: você descreve o estado desejado e recebe uma infraestrutura que corresponde exatamente a essa descrição. Para entender como isso acontece, vale conhecer os elementos essenciais do seu funcionamento. **Abordagem declarativa** O Terraform não exige instruções passo a passo. O engenheiro apenas descreve a configuração final usando o código em HCL (HashiCorp Configuration Language). O próprio Terraform determina quais ações executar — criar recursos, modificar os existentes ou remover os que não são mais necessários. Isso torna a infraestrutura previsível e reproduzível. **Provedores** O Terraform não interage diretamente com as nuvens; ele usa provedores — extensões que sabem como gerenciar recursos específicos. Cada provedor de nuvem possui seu próprio módulo: Serverspace, AWS, Azure, Google Cloud, Cloudflare, Kubernetes e muitos outros. O provedor permite que o Terraform: - crie máquinas virtuais, - configure redes, - conecte storages, - gerencie registros DNS, - descreva serviços Kubernetes. **Arquivo de estado (state file)** O coração do Terraform é o state file. Ele armazena informações sobre o estado atual da sua infraestrutura: quais recursos existem, seus parâmetros e as relações entre eles. Ele é necessário para dois objetivos: - Permitir que o Terraform saiba o que já foi criado. - Calcular corretamente a diferença entre o estado atual e o desejado. O state pode ser armazenado localmente, mas em equipes é comum usar armazenamento remoto — como um bucket de objeto na nuvem — garantindo que vários engenheiros trabalhem com o mesmo projeto de forma segura. **Planejamento de mudanças: terraform plan** Antes de aplicar qualquer alteração, o Terraform gera um plano indicando o que será criado, modificado ou removido. Esse plano permite visualizar o impacto antecipadamente, reduzindo riscos e garantindo controle, especialmente em ambientes de produção. **Aplicação: terraform apply** Depois que o plano é aprovado, o Terraform executa as alterações: cria recursos, atualiza configurações ou remove elementos desnecessários. O processo é automatizado e sempre segue o que está descrito no código. **Ciclo de vida dos recursos** O Terraform acompanha os recursos em todas as etapas: - criação (create), - alteração (update), - recriação (recreate), - remoção (destroy). Isso evita mudanças conflitantes e garante clareza sobre tudo o que acontece com a infraestrutura. **Exemplo conceitual (sem código)** Imagine que você precisa implantar um serviço web básico: - definir uma máquina virtual com CPU, RAM e uma imagem do sistema, - configurar a rede e as regras de acesso, - criar um storage, - indicar dependências — como garantir que o storage seja criado antes da máquina. O Terraform compara essa descrição com o estado atual e ajusta todos os recursos de acordo. ## Por que o Terraform é necessário na nuvem **Automação sem trabalho manual** Sem o Terraform, o engenheiro precisa: - criar máquinas virtuais manualmente, - configurar redes, - ajustar regras de segurança, - acompanhar dependências, - repetir as mesmas ações em diferentes ambientes. **Redução de erros** A configuração manual sempre envolve riscos. Mesmo um engenheiro experiente pode errar uma porta ou criar um recurso na região errada. No Terraform, a configuração é escrita uma vez, passa por revisão no repositório e os erros são detectados antes da aplicação — não depois de um incidente. **Escalonamento rápido** Quando a demanda aumenta, a infraestrutura precisa crescer junto: novas máquinas, novos bancos de dados, novas regras de rede. O Terraform permite escalonar tudo isso em minutos. Por exemplo, ao aumentar o tráfego, é possível expandir um conjunto de máquinas apenas alterando a quantidade de instâncias no código. **Padronização, previsibilidade e reprodutibilidade** O Terraform torna a infraestrutura consistente e repetível: todos os ambientes — desenvolvimento, homologação e produção — são criados a partir da mesma descrição. Isso elimina divergências de configuração e garante comportamento estável dos serviços, independentemente de quem administra a infraestrutura. ## Terraform vs Configuração Tradicional de Infraestrutura | Critério | Terraform (IaC) | Configuração Tradicional | | --- | --- | --- | | Velocidade de implantação | Um único apply deixa a infraestrutura pronta. A automação elimina tarefas repetitivas. | Operações manuais levam horas ou dias, especialmente em ambientes grandes. | | Erros e estabilidade | Configurações versionadas e revisadas. Menos intervenção manual = menos erros. | Alto risco de erro humano: porta errada, passo extra, região incorreta. | | Reprodutibilidade | Ambientes idênticos recriados sempre que necessário. | Difícil garantir uniformidade entre ambientes. | | Escalabilidade | Alterar o número de recursos exige apenas uma linha no código. | Requer ações manuais adicionais, aumentando tempo e complexidade. | | Documentação | O código é a documentação: tudo registrado nos arquivos. | Documentação manual, facilmente desatualizada. | | Complexidade de gestão | Controle centralizado, dependências claras e fluxo unificado. | Cada sistema configurado de forma própria; gestão fragmentada. | | Trabalho em equipe | Git, revisão de código, auditoria e colaboração previsível. | Cada engenheiro configura "do seu jeito"; conhecimento não escala. | | Segurança | Menos risco de erros de configuração e mudanças transparentes. | Configurações inseguras aparecem com mais frequência e são difíceis de rastrear. | | Multi-nuvem | Uma linguagem única para qualquer provedor. | Cada provedor possui seus próprios comandos e práticas. | | Recuperação após incidentes | Infraestrutura recriada rapidamente via código. | Restauração manual com alta chance de divergências. | ## Terraform no contexto de CI/CD e GitOps O Terraform se tornou parte fundamental da cultura DevOps moderna. Ele se encaixa perfeitamente nos processos de automação, em que a infraestrutura segue o mesmo fluxo do código da aplicação: é armazenada em um repositório, passa por revisão e é implantada por meio de um pipeline. Isso torna o trabalho mais previsível e transparente. **Infrastructure as Code como base do GitOps** GitOps é uma abordagem em que todas as mudanças são descritas em um repositório Git. É o repositório que define como a infraestrutura deve ser. O Terraform se integra naturalmente a esse modelo: - as configurações ficam no Git, - cada mudança tem autor e histórico, - o acesso é controlado pelas permissões do repositório, - é possível reverter para qualquer versão quando necessário. **Terraform no pipeline de CI/CD** Embora o Terraform possa ser executado manualmente, o maior benefício surge quando ele é integrado a um pipeline automatizado. Um fluxo típico funciona assim: - **O desenvolvedor cria um Pull Request.** Nele, altera as configurações do Terraform — por exemplo, adiciona uma nova máquina virtual ou ajusta uma política de rede. - **O CI gera um plano de mudanças.** O pipeline executa automaticamente o terraform plan, mostrando o que será criado, modificado ou removido. - **A equipe realiza o code review.** Os engenheiros verificam se as alterações são seguras e não afetarão o ambiente. - **Após a aprovação, o pipeline executa o terraform apply.** A mudança é aplicada automaticamente, seguindo todas as regras de acesso. O ambiente de produção é atualizado de forma previsível e controlada. Esse processo reduz riscos de erro e acelera a entrega de mudanças. Toda a equipe vê o que acontece, entende por que as alterações foram feitas e acompanha o histórico completo da infraestrutura. ## Serverspace como provedor de Terraform na nuvem O Terraform se tornou um padrão da indústria, e por isso é essencial que plataformas em nuvem ofereçam suporte nativo a ele. A Serverspace disponibiliza um provedor completo de [Terraform](https://serverspace.com.br/services/serverspace-terraform-provider.md), permitindo gerenciar a infraestrutura com a mesma flexibilidade encontrada nos grandes provedores internacionais. O provedor da Serverspace permite descrever, via Terraform, os principais recursos da plataforma: máquinas virtuais, redes, sub-redes, conectividade à Internet, regras de acesso e storages. Com isso, a infraestrutura é implantada de forma previsível, seguindo os mesmos princípios de qualquer outro projeto Terraform. Ao trabalhar com a Serverspace, algumas características tornam a automação ainda mais eficiente: - **Modelo transparente Pay-As-You-Go.** Todos os recursos são tarifados por minuto, o que permite controlar com precisão os custos em ambientes com recriações frequentes — um cenário comum em pipelines automatizados. - **Criação rápida de recursos.** Servidores, redes e storages são provisionados em segundos, acelerando os pipelines do Terraform e permitindo criar ambientes de teste ou temporários sem atrasos. - **Ampla geografia de [data centers](https://serverspace.com.br/infrastructure/data-centers.md).** Ambientes de desenvolvimento, teste e produção podem ser distribuídos entre diferentes regiões — Europa, EUA, Brasil, Canadá e outras — e ainda assim serem gerenciados a partir de um único projeto Terraform. - **Painel de controle e [API](https://serverspace.com.br/services/api.md) intuitivos.** Mesmo com a automação via código, é importante visualizar os recursos gerenciados. O painel da Serverspace facilita o acompanhamento do que foi criado pelo Terraform, enquanto a API oferece flexibilidade adicional para integrações. O Terraform se consolidou como uma das ferramentas essenciais da infraestrutura moderna. Ele permite descrever sistemas como código, automatizar implantações e reduzir riscos associados a configurações manuais. Com seu modelo declarativo, a infraestrutura torna-se previsível, reproduzível e consistente em todos os ambientes — do desenvolvimento à produção. Integrado ao Git, pipelines de CI/CD e provedores em nuvem, o Terraform oferece um mecanismo unificado para gerenciar ambientes de qualquer escala. Provedores com suporte nativo ao Terraform, como a Serverspace, tornam esse processo ainda mais eficiente e ajudam equipes a aproveitar ao máximo os benefícios do IaC. ## FAQ **1. Qual a diferença entre Terraform e Ansible?** O Ansible é uma ferramenta de gerenciamento de configuração: ele ajusta e configura servidores que já existem. O Terraform gerencia a criação e o ciclo de vida da infraestrutura. Eles são frequentemente utilizados juntos: o Terraform cria os recursos, e o Ansible instala e configura o software dentro deles. **2. Onde é melhor armazenar o arquivo de state?** Em projetos pequenos, ele pode ser armazenado localmente. Mas em ambientes de equipe, o state deve ficar em um backend remoto — como um storage de objetos na nuvem. Isso evita conflitos e garante mais segurança e confiabilidade. **3. O Terraform é adequado para pequenas empresas?** Sim. Mesmo equipes pequenas evitam erros, economizam tempo e conseguem criar ambientes rapidamente. O Terraform reduz o custo de manutenção da infraestrutura e padroniza processos. **4. O que fazer quando as configurações ficam muito grandes e complexas?** Utilizar módulos. O Terraform permite dividir a infraestrutura em componentes lógicos e reutilizáveis, facilitando a organização do projeto e reduzindo a complexidade para novos membros da equipe. https://serverspace.com.br/about/blog/redes-privadas-na-nuvem-o-que-sao-e-para-que-servem.md Entenda como redes privadas (VPC), sub-redes e VPN melhoram segurança, desempenho e organização na nuvem. Guia completo com exemplos e benefícios. Os projetos em nuvem estão evoluindo rapidamente: startups lançam serviços em uma semana, empresas transferem processos essenciais para a nuvem e as arquiteturas se tornam cada vez mais complexas. Nesse contexto, é especialmente importante que os componentes internos possam trocar dados de forma rápida e segura - sem depender do acesso desnecessário à internet e sem configurações manuais complicadas. É por isso que as [redes privadas](https://serverspace.com.br/services/private-networks.md) estão se tornando parte padrão das infraestruturas em nuvem: elas permitem isolar serviços internos, organizar a arquitetura e simplificar a comunicação de rede. ## O que é uma rede privada na nuvem (VPC) e como ela funciona Uma rede privada é um segmento isolado dentro da nuvem, no qual servidores, bancos de dados e serviços internos se comunicam diretamente. Na prática, é um análogo virtual de um contorno de rede separado dentro de um data center, mas criado pelos recursos do provedor. Dentro dessa rede são formadas sub-redes e rotas que definem quais recursos podem interagir entre si. O tráfego permanece dentro da infraestrutura e não sai para a internet pública, o que aumenta a segurança e reduz a latência. Conectar recursos a uma rede privada não exige conhecimentos avançados de redes: você escolhe as máquinas necessárias, as reúne em um único segmento - e elas passam a interagir como se estivessem no mesmo ambiente físico. Isso é conveniente para qualquer tarefa em que os serviços internos precisem funcionar de forma consistente e previsível, enquanto apenas os componentes realmente necessários são expostos ao público. ## Principais vantagens das redes privadas - **Segurança reforçada** Os recursos em uma rede privada são isolados da internet por padrão, portanto, mesmo que alguém conheça o endereço IP, não conseguirá acessar o segmento interno. Isso torna a rede privada um ambiente natural para serviços que exigem um nível elevado de proteção: bancos de dados, APIs internas, microsserviços e sistemas que lidam com informações sensíveis. Somente os pontos que você abrir intencionalmente permanecem públicos. - **Troca de dados rápida e estável** O tráfego interno trafega pelas rotas do próprio provedor e não sai para a internet. Isso reduz a latência e garante um funcionamento previsível dos serviços que precisam trocar dados constantemente - bancos de dados, microsserviços, filas de mensagens e clusters de computação. - **Ordem e flexibilidade na arquitetura** As redes privadas permitem estruturar a infraestrutura com clareza: separar ambientes, agrupar serviços em sub-redes, ajustar limites entre segmentos e criar zonas isoladas para experimentos. Isso ajuda a evitar o caos conforme o projeto cresce e facilita muito o processo de escalar a arquitetura. - **Menos configurações manuais** Conectar uma máquina a uma rede privada geralmente se resume a algumas ações no painel de controle. Não é necessário configurar NAT, criar regras complexas de firewall ou lidar com redirecionamento de portas. Isso acelera o trabalho e reduz parte da carga operacional da equipe. ## Cenários de uso de redes privadas - **Separação de ambientes de produção, staging e teste** Cada ambiente funciona em seu próprio segmento, o tráfego não se cruza e o acesso é configurado exatamente onde necessário. Isso reduz o risco de erros e torna o processo de desenvolvimento mais previsível. - **Arquitetura de microsserviços** Os microsserviços interagem entre si com muito mais frequência do que com o mundo externo. A rede privada garante rotas rápidas dentro da nuvem e não sobrecarrega a rede pública, o que é especialmente importante quando há um grande volume de requisições internas. - **Bancos de dados e APIs internas** Os componentes mais sensíveis são mais seguros e convenientes quando localizados em um contorno privado: eles não são visíveis externamente e o risco de acesso não autorizado é mínimo. Permanecem públicos apenas os serviços que realmente precisam de acesso externo. - **Clusters e serviços de alta carga** Sistemas como Kubernetes, Redis, Elasticsearch, Kafka e pipelines de machine learning exigem um grande volume de tráfego interno. A rede privada permite transmitir dados por rotas curtas e evita gargalos relacionados à internet. - **Fintech e serviços que lidam com dados sensíveis** O isolamento ajuda a cumprir exigências de segurança, proteger transações e controlar o acesso de forma centralizada, o que é essencial para serviços financeiros e juridicamente relevantes. ## Quais tipos de redes em nuvem existem Mesmo projetos pequenos às vezes precisam combinar diferentes abordagens: rede pública para usuários, rede privada para serviços internos e VPN para acesso remoto. Rede pública (Public Network) É o acesso comum à internet por IP público. Essa rede é necessária apenas para serviços que devem ser acessíveis aos usuários - sites, APIs públicas, aplicativos web. Rede privada (VPC / Private Network) Um segmento isolado dentro da nuvem. É onde microsserviços, bancos de dados, APIs internas e clusters se comunicam. Nada é visível de fora - segurança por padrão. Sub-redes (Subnets) "Salas" dentro da rede privada. Permitem separar produção / staging / desenvolvimento ou agrupar serviços de acordo com a lógica do projeto. VPN Um túnel seguro que conecta pessoas ou sistemas externos à rede privada. Não substitui a [VPC](https://serverspace.com.br/services/virtual-private-cloud.md) - é apenas uma forma de entrar nela a partir de fora. VLAN/VXLAN Uma maneira de criar vários segmentos de rede logicamente isolados sobre uma única infraestrutura física ou de nuvem. É usada quando é preciso separar serviços por níveis ou garantir segmentação rígida sem configurações pesadas. É mais comum entre engenheiros e empresas com arquiteturas mais complexas. ## Redes privadas vs VPN Redes privadas e [VPN](https://serverspace.com.br/services/cloud-vpn.md) frequentemente são mencionadas juntas, embora desempenhem funções diferentes. A [rede privada](https://serverspace.com.br/services/private-networks.md) unifica os recursos dentro da nuvem, enquanto a VPN permite que usuários ou sistemas externos se conectem com segurança a esse contorno interno. - **Finalidade** _Rede privada._ Forma um ambiente fechado para servidores, bancos de dados e serviços internos. Ela é responsável pela comunicação entre os componentes do projeto. _VPN._ Fornece acesso seguro à infraestrutura interna para funcionários, administradores e sistemas externos. - **Nível de segurança** _Rede privada:_ é isolada da internet e não exige medidas adicionais de proteção enquanto você mesmo não abrir pontos públicos de acesso. _VPN:_ depende da configuração correta de chaves e políticas. Erros de configuração podem criar riscos, portanto sua segurança depende da disciplina de gerenciamento. - **Complexidade de uso** _Rede privada:_ é configurada pelos recursos do provedor de nuvem e começa a funcionar assim que os recursos são adicionados ao segmento. _VPN:_ exige gerenciamento de usuários, chaves, conexões e atualizações periódicas de configuração. - **Quando usar rede privada** Adequada para serviços internos - microsserviços, APIs, bancos de dados - e também para isolar ambientes e estruturar a arquitetura. - **Quando usar VPN** Necessária quando é preciso acessar a rede privada remotamente: administradores, equipes de desenvolvimento, escritórios ou integrações externas. - **Conclusão** A rede privada garante isolamento interno, enquanto a VPN oferece um ponto de entrada controlado a partir do exterior. Juntas, criam um modelo seguro e flexível de operação, essencial para equipes distribuídas e serviços em que a proteção de dados é fundamental. ## Tabela: tipos de redes em nuvem e suas aplicações | Tipo de rede | O que é | Nível de isolamento | Aplicação principal | Vantagens | Quando não é adequada | | --- | --- | --- | --- | --- | --- | | Rede pública (Public) | Acesso à internet por IP público | Baixo | Sites, APIs públicas, aplicativos web | Simplicidade, disponibilidade | Bancos de dados, serviços internos | | Rede privada (VPC) | Segmento isolado dentro da nuvem | Alto | Microsserviços, bancos de dados, APIs internas, clusters | Segurança, estabilidade, baixa latência | Serviços públicos | | Sub-redes (Subnets) | Divisão da rede privada em zonas lógicas | Médio | Produção/staging/dev, organização de serviços | Ordem, flexibilidade | Projetos muito simples | | VPN | Acesso externo seguro à rede privada | Alto | Administração, funcionários remotos | Acesso remoto seguro | Comunicação interna entre servidores na nuvem | | VLAN / VXLAN | Segmentação lógica da rede dentro da infraestrutura | Alto | Clusters, redes corporativas | Isolamento, flexibilidade | Projetos simples | ## Redes privadas e recursos de rede no Serverspace No Serverspace, é possível construir sua própria arquitetura de [rede isolada](https://serverspace.com.br/services/private-networks.md): segmentos privados [VPC](https://serverspace.com.br/services/virtual-private-cloud.md) para serviços internos, sub-redes para separar ambientes e acesso [VPN](https://serverspace.com.br/services/cloud-vpn.md) para trabalho remoto com a infraestrutura. Todas as ferramentas de rede funcionam por meio de um painel de controle intuitivo, sem configurações complexas, e o tráfego interno e externo não possui limites de volume ou velocidade. Isso permite que startups e equipes de qualquer tamanho criem ambientes seguros e flexíveis, escalem serviços e gerenciem acessos sem custos ou esforços desnecessários. **Vantagens do Serverspace** - Redes privadas ([VPC](https://serverspace.com.br/services/virtual-private-cloud.md)) com isolamento total dos recursos; - Sub-redes separadas para produção/staging/dev; - Acesso VPN protegido à infraestrutura; - Possibilidade de criar redes totalmente isoladas, sem saída para a internet; - Tráfego de entrada e saída ilimitado; - Modelo de pagamento pay-as-you-go - você paga apenas pelos recursos utilizados; - Configuração rápida pelo painel, sem ajustes manuais de rede. Quando os serviços operam dentro de um segmento protegido, a arquitetura do projeto se torna mais organizada, estável e fácil de escalar. Isso é especialmente importante quando a infraestrutura cresce, surgem novos componentes, microsserviços, bancos de dados e integrações - tudo isso exige um ambiente controlado, sem pontos de acesso aleatórios ou riscos desnecessários. Na prática, a rede privada é uma forma de organizar uma ecossistema de recursos em nuvem. Ela ajuda empresas de qualquer porte a construir uma infraestrutura capaz de suportar carga, escalar corretamente e permanecer segura sem esforço extra. É por isso que uma rede privada própria é um elemento essencial de projetos em nuvem mais maduros. ### Em que a rede privada é diferente de uma conexão comum pela internet? A rede privada funciona inteiramente dentro da infraestrutura da nuvem e não utiliza canais públicos. Os servidores se comunicam diretamente, sem sair para a internet, o que torna o ambiente mais rápido, seguro e previsível. ### É possível conectar funcionários à rede privada remotamente? Sim, usando acesso via VPN. A VPN cria um túnel seguro que permite que usuários externos se conectem com segurança ao segmento interno e trabalhem com os serviços hospedados na rede privada. ### Preciso configurar redes privadas manualmente, como na infraestrutura local? Não. Na nuvem, tudo é muito mais simples: criação da rede, adição de servidores e gerenciamento de segmentos são feitos pelo painel ou API. É mais rápido e não exige conhecimento avançado de redes. ### A rede privada aumenta a segurança do projeto? Sim. A rede privada elimina pontos de acesso desnecessários e reduz o risco de ataques externos. Os serviços internos permanecem inacessíveis pela internet, e o acesso é controlado apenas por mecanismos configurados especificamente para isso. https://serverspace.com.br/about/blog/o-que-e-video-on-demand-vod-e-como-funciona-a-entrega-de-conteudo-via-streaming.md Entenda como o Video on Demand (VoD) funciona, suas etapas, a arquitetura por trás de plataformas de VoD e como o Serverspace pode ajudar na entrega de conteúdo de vídeo com baixa latência, escalabilidade e segurança. O vídeo deixou de ser apenas "um vídeo bonito na página inicial" há muito tempo. As pessoas assistem a palestras no caminho para o trabalho, escolhem produtos por meio de vídeos de avaliação, fazem o onboarding de empresas por gravações e praticam atividades físicas por meio de aulas em aplicativos. Em todos esses cenários, o conteúdo não é "ao vivo" - o usuário decide o que assistir e quando. Esta é a lógica do Video on Demand, ou [VoD](https://serverspace.com.br/services/video-on-demand-vod.md). Para o proprietário de um negócio, o VoD é uma ferramenta de interação com a audiência. O formato da entrega de vídeo define se o usuário assistirá o vídeo até o final, quantas vezes ele retornará ao serviço e quanto isso custará para a infraestrutura. Se o reprodutor trava, a imagem fica distorcida, e o vídeo durante o horário de pico nem abre, não importa quais tecnologias sustentam o projeto – o usuário simplesmente irá embora. Além disso, o VoD não está restrito apenas aos cinemas online. O esquema de "vídeo sob demanda" funciona em plataformas educacionais, vitrines de marketing, portais corporativos internos, serviços SaaS com conteúdo educativo, mídia, e-commerce e até mesmo em pequenos projetos de nicho. Qualquer negócio que aposte em conteúdo de vídeo regular, na verdade, está criando sua própria mini-plataforma de streaming, mesmo que não a chame assim. ## O que é Video on Demand (VoD) em palavras simples O Video on Demand (VoD) é um modelo em que o espectador escolhe o que assistir e quando. Você não precisa se ajustar à grade de programação, como na TV, mas o serviço se ajusta ao usuário. Ele abre o catálogo, clica no filme, palestra ou análise desejada, e a plataforma começa a "carregar" o vídeo no momento em que for conveniente para ele. O ponto-chave é que, no VoD, o vídeo não é baixado completamente para o dispositivo. O conteúdo é dividido em pequenos fragmentos, e o reprodutor os carrega conforme a visualização. O usuário clica em "Play" – o primeiro pedaço é carregado. Colocou na pausa – o carregamento é interrompido. Avançou para frente – o reprodutor solicita novos fragmentos de outra parte do arquivo. Por isso, o VoD é chamado de modelo de streaming: o vídeo "flui" para o espectador pela rede, em vez de ser armazenado no seu disco. Outro aspecto importante é a adaptação à qualidade da conexão e do dispositivo. O mesmo filme ou aula pode existir em várias versões: de qualidade baixa para redes móveis até Full HD ou 4K para telas grandes. O reprodutor monitora a velocidade com que os fragmentos chegam ao usuário e, se necessário, alterna automaticamente para outro nível de qualidade. Isso garante que a visualização não seja interrompida durante quedas temporárias na conexão de internet. ## Arquitetura de um serviço VoD: de quais blocos ele é composto Por trás do simples botão "Play" existe uma cadeia bastante estruturada de vários blocos técnicos. - **Armazenamento de conteúdo** O primeiro passo é ter um local onde todos os arquivos originais e versões prontas do vídeo irão ficar. Isso pode ser: Armazenamento de objetos em nuvem; - Discos em servidores em nuvem ([VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md)). A tarefa aqui não é apenas "armazenar arquivos", mas garantir acesso rápido, confiabilidade e backup. - **Transcodificação e preparação de formatos** O vídeo original geralmente é grande e em formato "cru". Ele precisa ser transcodificado para várias opções de qualidade e bitrate, para que o reprodutor se ajuste à conexão de internet do usuário. Aqui aparecem os formatos mais conhecidos: 1080p, 720p, 480p, etc. - **Preparação para entrega via streaming** As versões prontas do vídeo são cortadas em pequenos fragmentos (segmentos) e descritas em um manifesto — um arquivo especial que permite que o reprodutor saiba quais pedaços pedir e em que ordem. Os formatos mais utilizados são HLS ou MPEG-DASH. - **Servidor Origin** Este é o ponto de entrada de onde o conteúdo é retirado pelo [CDN](https://serverspace.com.br/services/cdn.md) e pelo reprodutor. Normalmente, é um servidor web ou aplicativo em [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) (servidor em nuvem) que tem a capacidade de: Enviar segmentos de vídeo; - Verificar permissões de acesso; - Trabalhar com autenticação e tokens. - **CDN - Rede de entrega de conteúdo** O CDN armazena em cache os fragmentos de vídeo mais próximos do usuário, em servidores de borda (edge) em diferentes regiões. Assim, um espectador no Brasil recebe o stream não de um data center remoto, mas de um ponto de presença mais próximo da rede — isso reduz latências e o número de "congelamentos". ## Tabela: Etapas da Cadeia VoD | Etapa da cadeia | O que acontece | Tecnologias e recursos | | --- | --- | --- | | Upload do vídeo original | O produtor de conteúdo ou a equipe faz o upload do arquivo para o sistema. | Interface web, API, armazenamento em nuvem, VPS | | Armazenamento e organização da biblioteca | Os arquivos são armazenados e organizados por pastas, tags e playlists. | Armazenamento de objetos, sistemas de arquivos, banco de dados de metadados | | Transcodificação e preparação dos perfis de qualidade | O vídeo original é transcodificado para várias opções de qualidade e bitrate. | Servidores potentes / VPS, transcodificador, filas de tarefas | | Preparação para entrega via streaming | O vídeo é dividido em segmentos, e um manifesto (HLS/DASH) é gerado. | Servidor de vídeo, software especializado | | Entrega via CDN | Os segmentos são armazenados em cache mais perto do usuário, reduzindo a carga no servidor origin. | Rede CDN, pontos de presença nas regiões | | Reprodução e análise | O reprodutor entrega o vídeo ao usuário e envia as estatísticas para o backend. | Web player, aplicativos móveis, serviços de backend | Compreender como essas etapas estão interconectadas facilita o planejamento da infraestrutura: onde é suficiente usar um VPS básico, onde já é necessário um CDN, qual armazenamento escolher e em quais parâmetros não se deve economizar. ## Onde os negócios utilizam VoD: cenários principais O [VoD](https://serverspace.com.br/services/video-on-demand-vod.md) é frequentemente associado apenas a cinemas online, mas na realidade, o "vídeo sob demanda" já alcançou quase todos os tipos de negócios digitais. O formato é o mesmo - o usuário escolhe o que e quando assistir - mas os cenários são bastante variados. **Cinemas online e plataformas de entretenimento** Clássico: filmes, séries, shows, etc. As cargas de tráfego são irregulares: quando uma nova temporada de uma série é lançada, uma onda de usuários atinge a infraestrutura. Por isso, a arquitetura do VoD é crucial: se a plataforma não suportar o pico, os espectadores migrarão para os concorrentes. **Plataformas educacionais e cursos online** O VoD é perfeito para o ensino: palestras, aulas práticas, estudos de caso, gravações de webinars. Os usuários raramente estudam "estritamente de acordo com o horário" - alguns assistem à noite, outros durante um intervalo no trabalho. **Serviços SaaS e marketing de produtos** O VoD já se tornou uma ferramenta essencial para SaaS e e-commerce. Exemplos incluem: - Vídeos de onboarding de produtos; - Revisões de novos recursos; - Instruções de "como fazer X em 5 minutos"; - Casos de clientes e demonstrações de produtos. Quanto mais complexo o produto, mais importantes são os vídeos de qualidade. O VoD permite armazenar uma biblioteca desses vídeos, atualizá-los constantemente e usá-los como parte do funil de vendas e retenção: o novo cliente não espera uma resposta do suporte, ele simplesmente assiste ao vídeo necessário. **Fitness, coaching, projetos de especialistas** Treinamentos em vídeo, práticas de respiração, sessões psicológicas gravadas, programas de coaching - tudo isso se encaixa no VoD. Aqui, a estabilidade e simplicidade são especialmente importantes: o usuário deve ser capaz de iniciar o treino com dois cliques, sem se preocupar com a parte técnica. Em cada um desses cenários, a ideia principal é a mesma: o VoD transforma o vídeo de uma "transmissão única" em um ativo controlável. Se a infraestrutura for bem projetada, você não precisa se preocupar se o serviço suportará picos de carga, mas pode focar em coisas mais agradáveis - conteúdo, monetização e o desenvolvimento do produto. ## Por que o Serverspace é a escolha ideal para Video on Demand O Serverspace oferece uma infraestrutura em nuvem confiável e escalável para plataformas [VoD](https://serverspace.com.br/services/video-on-demand-vod.md). Nossas soluções garantem latências mínimas, operação estável e alta qualidade na entrega de conteúdo. Oferecemos servidores [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) flexíveis e servidores dedicados, ideais para plataformas de vídeo, permitindo fácil gerenciamento de cargas, escalabilidade de recursos e operação contínua do seu conteúdo. Com nosso [CDN](https://serverspace.com.br/services/cdn.md) e rede global de data centers, você pode entregar vídeos com a máxima velocidade e disponibilidade. **Vantagens do Serverspace:** - **Flexibilidade e escalabilidade:** servidores personalizáveis que podem ser rapidamente dimensionados conforme a necessidade. - **Alta performance:** uso de SSDs e processadores modernos para garantir processamento rápido e transmissão de vídeos. - **Infraestrutura global:** data centers em várias regiões do mundo para garantir baixa latência e alta disponibilidade do conteúdo. - **Confiabilidade e segurança:** servidores protegidos com suporte SSL e mecanismos internos de proteção contra ataques DDoS. - **Painel de controle intuitivo:** gerenciamento de servidores e configurações de VoD por meio de um painel fácil de usar. ## Como escolher a configuração ideal de servidor para VoD - **Recursos importantes para VoD:** Processador (CPU): a performance do processador é crucial para o processamento e transcodificação de vídeos. Para VoD, recomenda-se escolher servidores com configurações multiprocessadas. - Memória RAM (RAM): quanto maior a memória, mais rápido serão processadas as requisições dos usuários. Para VoD, recomenda-se no mínimo 8-16 GB de RAM. - **Escalabilidade e redundância:** Para que uma plataforma VoD se adapte facilmente à variação de tráfego, é importante que o servidor seja escalável. O Serverspace oferece a capacidade de aumentar rapidamente a potência do VPS ou migrar para servidores dedicados sem downtime e perda de dados. - **Proteção e segurança:** É essencial proteger o conteúdo contra acessos não autorizados. Para isso, é importante focar na proteção de dados, como certificados SSL, firewalls e atualizações de segurança automáticas. Video on Demand (VoD) é uma poderosa ferramenta para criar plataformas de vídeo bem-sucedidas, que oferece aos usuários a liberdade de escolher o conteúdo e a conveniência de assisti-lo. Usar soluções em nuvem confiáveis, como o Serverspace, permite criar uma infraestrutura escalável e de alto desempenho para VoD, garantindo baixa latência, estabilidade e segurança dos dados. Com nosso amplo conjunto de serviços, incluindo VPS, CDN e soluções de backup, as empresas podem facilmente configurar e escalar suas plataformas de vídeo. Independentemente de você ser um empreendedor iniciante ou um grande jogador na indústria de VoD, o Serverspace oferece a flexibilidade necessária para o crescimento e sucesso do seu negócio. ## FAQ - **Como garantir a segurança do conteúdo nos serviços VoD?** O aspecto mais importante da segurança em plataformas VoD é a proteção contra acesso não autorizado. Para isso, utilizam-se tecnologias de criptografia, DRM (gestão de direitos de acesso), além de certificados SSL para proteger os dados dos usuários. Também é recomendado o uso de CDN com proteção contra ataques DDoS, para prevenir ameaças no nível de entrega do conteúdo. - **O que afeta a velocidade de entrega do conteúdo no VoD?** A velocidade de entrega do conteúdo depende de vários fatores: a performance dos servidores, a presença de CDN, a localização geográfica dos servidores e dos usuários, bem como a qualidade da conexão de internet. O uso de servidores próximos ao usuário final e o cache eficiente do conteúdo são medidas-chave para reduzir a latência. - **Quais as opções de escalabilidade para VoD que os serviços em nuvem oferecem?** Soluções em nuvem, como o Serverspace, permitem que plataformas VoD escalem conforme as necessidades atuais. Você pode aumentar recursos (memória, processador, armazenamento de dados) de forma dinâmica, o que é ideal para serviços que podem experimentar picos repentinos de carga, como durante o lançamento de novos conteúdos ou em períodos de alta demanda, como nas festas de fim de ano. https://serverspace.com.br/articles/o-que-e-lvm-no-linux-e-como-expandir-um-volume-logico.md Descubra o que é LVM no Linux e como expandir um volume lógico passo a passo. Análise dos comandos pvcreate, vgextend, lvextend e resize2fs com exemplos e recomendações para administradores. **LVM (Logical Volume Manager)** é uma tecnologia de gerenciamento de armazenamento em Linux que permite trabalhar de forma flexível com discos e partições. Ela possibilita combinar vários discos físicos em um único armazenamento lógico, criar volumes dinâmicos com diferentes configurações e ajustar seu tamanho sem necessidade de formatação ou perda de dados. Neste artigo, vamos explicar em detalhes como o LVM funciona, suas vantagens em relação ao particionamento tradicional e mostrar passo a passo como expandir um volume lógico em um sistema real. ## 1. Como o LVM funciona O LVM adiciona uma camada de abstração entre os dispositivos físicos e os sistemas de arquivos. Em vez de trabalhar diretamente com partições, o sistema utiliza três níveis: - **Physical Volume (PV)** — volume físico. É uma partição ou disco inicializado para uso com LVM. - **Volume Group (VG)** — grupo de volumes. Vários PVs são combinados em um VG, formando um espaço de armazenamento comum. - **Logical Volume (LV)** — volume lógico. É o equivalente a uma partição criada dentro de um VG, que pode ser montada no sistema. A estrutura fica assim: [Discos Físicos] → [PV] → [VG] → [LV] → [Sistema de Arquivos] ## 2. Vantagens do LVM O uso do LVM oferece diversas vantagens: - **Flexibilidade:** os volumes podem ser aumentados ou reduzidos sem apagar dados. - **Escalabilidade:** é fácil adicionar um novo disco e expandir volumes existentes. - **Snapshots:** permite criar cópias instantâneas do estado de um volume para backup. - **Gerenciamento de grupos de volumes:** é possível unir ou separar armazenamentos para diferentes finalidades. ## 3. Comandos principais do LVM | Comando | Função | | --- | --- | | pvcreate /dev/sdb | Inicializa um volume físico | | vgcreate vg_data /dev/sdb | Cria um grupo de volumes | | lvcreate -L 10G -n lv_backup vg_data | Cria um volume lógico | | lvextend -L +5G /dev/vg_data/lv_backup | Expande um volume lógico | | resize2fs /dev/vg_data/lv_backup | Expande o sistema de arquivos | ## 4. Como expandir um volume LVM Suponha que temos o volume lógico **/dev/vg_data/lv_backup** e queremos aumentá-lo em 5 GB. ### Etapa 1. Verifique o tamanho atual ``` sudo lvs ``` ### Etapa 2. Verifique o espaço livre no grupo de volumes ``` sudo vgs ``` Se não houver espaço livre, adicione um novo disco e expanda o VG: ``` sudo pvcreate /dev/sdc sudo vgextend vg_data /dev/sdc ``` ### Etapa 3. Expanda o volume lógico ``` sudo lvextend -L +5G /dev/vg_data/lv_backup ``` ### Etapa 4. Expanda o sistema de arquivos Para ext4: ``` sudo resize2fs /dev/vg_data/lv_backup ``` Para xfs: ``` sudo xfs_growfs /mnt/backup ``` Após esses passos, o volume será aumentado sem precisar reiniciar o sistema ou perder dados. ## 5. Verificando as mudanças ``` sudo lvs sudo df -h ``` Você deve ver o novo tamanho do volume e do sistema de arquivos. ## FAQ - **É possível reduzir o tamanho de um volume LVM?** Sim, mas apenas após reduzir o tamanho do sistema de arquivos. Para ext4, usa-se o **resize2fs** e depois o **lvreduce**. Faça sempre um backup antes de executar essa operação. - **O que acontece se eu remover um volume físico?** Se houver dados nele, o volume será corrompido. Use **pvmove** para mover os dados antes de remover o PV. - **O LVM pode ser usado com RAID?** Sim, o LVM pode funcionar sobre arrays RAID ou vice-versa, dependendo da configuração desejada. - **É necessário reiniciar após expandir um volume?** Não, todas as operações são feitas de forma dinâmica, sem reinicialização. ## 6. Conclusão O LVM é uma poderosa ferramenta de gerenciamento de armazenamento no Linux que simplifica o trabalho com partições, aumenta a flexibilidade e melhora a escalabilidade. Diferente do particionamento tradicional, o LVM permite combinar vários discos físicos em um único espaço de armazenamento, criar volumes lógicos e redimensioná-los em tempo real — sem reiniciar o sistema ou perder dados. Com apenas alguns comandos, é possível adicionar novos discos, expandir grupos de volumes e aumentar sistemas de arquivos sem interromper serviços — um recurso essencial para servidores que exigem alta disponibilidade. O LVM oferece aos administradores controle total sobre a estrutura de armazenamento: redistribuição eficiente de espaço livre, criação de snapshots para backup e recuperação rápida em caso de falhas. Assim, o LVM se consolida como um padrão moderno de gerenciamento de armazenamento no Linux, garantindo flexibilidade, confiabilidade e escalabilidade — características indispensáveis em infraestruturas de servidores e ambientes virtuais. ## Base de Conhecimento Serverspace [Base de Conhecimento Serverspace](https://serverspace.com.br/support.md) — é uma plataforma educacional abrangente criada para apoiar desenvolvedores, engenheiros DevOps e administradores de sistemas que trabalham com infraestrutura em nuvem. Ela oferece artigos técnicos detalhados, tutoriais passo a passo e guias de resolução de problemas sobre sistemas Linux e Windows. Se você trabalha com máquinas virtuais, firewalls, containers ou automação de implantações — a base fornece instruções práticas com exemplos reais e comandos úteis. Os especialistas da Serverspace atualizam regularmente os conteúdos para manter as informações sempre atuais e relevantes. Você encontrará artigos sobre redes, virtualização, monitoramento, scripts shell, gerenciamento de armazenamento, Docker, Kubernetes e muito mais. Cada artigo é escrito de forma clara e estruturada, tornando-o útil tanto para iniciantes quanto para profissionais experientes. A base de conhecimento não apenas ajuda a resolver problemas rapidamente, mas também serve como um excelente material de aprendizado para aprimorar habilidades de administração de sistemas e gerenciamento de ambientes em nuvem. Com centenas de tutoriais e guias de alta qualidade, a Serverspace oferece uma base sólida para dominar ferramentas modernas de TI e construir infraestruturas em nuvem eficientes. https://serverspace.com.br/articles/criptografia-de-discos-com-luks-no-linux-guia-completo-para-protecao-de-dados.md Saiba o que é LUKS e como criptografar discos no Linux para proteger seus dados. Guia passo a passo para criar partições criptografadas, gerenciar chaves e montar com segurança. **LUKS (Linux Unified Key Setup)** — é o padrão de criptografia de discos no Linux, desenvolvido para o armazenamento seguro de dados em mídias físicas e virtuais. Ele protege as informações usando algoritmos de criptografia modernos e gerenciamento de chaves. O principal objetivo do LUKS é proteger os dados do disco contra acesso não autorizado, mesmo que o disco seja removido e conectado a outro sistema. O LUKS é amplamente utilizado para criptografar partições do sistema, dispositivos externos, pendrives USB e discos virtuais. ## **Vantagens do uso do LUKS** - **Segurança**: Os dados são criptografados com algoritmos modernos (AES, XTS). - **Compatibilidade**: Compatível com a maioria das distribuições Linux modernas (Ubuntu, Debian, Fedora, Arch Linux). - **Acesso multinível**: Permite o uso de várias senhas para a mesma partição criptografada. - **Proteção em nível de hardware**: Mesmo com acesso físico ao disco, os dados permanecem inacessíveis sem a chave correta. ## **Como o LUKS funciona** - **Criação do contêiner LUKS** O LUKS cria um contêiner criptografado em uma partição ou disco. - **Definição da chave** A descriptografia é feita usando uma senha ou arquivo de chave. - **Montagem da partição** Após inserir a chave correta, o sistema descriptografa os dados "em tempo real" e fornece acesso ao sistema de arquivos. - **Proteção automática** Ao remover o disco ou reiniciar o sistema, os dados permanecem criptografados e inacessíveis sem a chave. ## **Principais comandos do LUKS** Criar uma partição criptografada ``` sudo cryptsetup luksFormat /dev/sdX ``` **Atenção:** Todos os dados na partição serão apagados. Abrir uma partição criptografada ``` sudo cryptsetup luksOpen /dev/sdX encrypted_disk ``` Após isso, a partição estará acessível em **/dev/mapper/encrypted_disk**. Montar a partição criptografada ``` sudo mount /dev/mapper/encrypted_disk /mnt ``` Fechar a partição criptografada ``` sudo umount /mnt sudo cryptsetup luksClose encrypted_disk ``` Gerenciar chaves ``` sudo cryptsetup luksAddKey /dev/sdX sudo cryptsetup luksRemoveKey /dev/sdX ``` ## **Integração com o sistema** - **Inicialização automática**: É possível configurar **crypttab** e **fstab** para montar partições criptografadas automaticamente durante a inicialização. - **Uso com LVM**: O LUKS é frequentemente combinado com o **LVM**, permitindo criar volumes criptografados com gerenciamento flexível de partições. - **Suporte a dispositivos externos**: Pendrives e HDs externos podem ser criptografados com LUKS para proteger dados portáteis. ## **FAQ** - **Posso usar o LUKS na partição do sistema Linux?** Sim, a maioria das distribuições permite criptografar a partição do sistema durante a instalação. - **O que fazer se eu esquecer a senha?** Sem a senha ou um arquivo de chave de backup, os dados serão perdidos. O LUKS não oferece formas de contornar a criptografia. - **É possível usar várias senhas em uma única partição?** Sim, o LUKS permite adicionar várias chaves com o comando **luksAddKey**. - **Quais algoritmos de criptografia são usados?** Por padrão, o LUKS utiliza **AES** no modo **XTS**, mas outros algoritmos podem ser escolhidos durante a criação do contêiner. ## **Conclusão** A criptografia de discos com LUKS é uma forma confiável de proteger dados no Linux. Ela impede o acesso não autorizado, mesmo que o disco seja removido fisicamente, oferece gerenciamento flexível de chaves e é compatível com as principais distribuições. O uso do LUKS é especialmente importante em notebooks, dispositivos externos e servidores, onde o vazamento de dados pode causar sérias consequências. https://serverspace.com.br/support/help/como-monitorar-o-mongodb-com-grafana.md Aprenda passo a passo como monitorar MongoDB com Grafana e Prometheus. Instalação, configuração, alertas e visualização em tempo real para otimizar desempenho, custos e segurança da infraestrutura de TI. Monitorar recursos é um aspecto essencial da administração de qualquer sistema — seja um computador, uma rede ou um servidor. Acompanhar métricas permite entender como os sistemas estão operando, detectar problemas antes que se tornem críticos e otimizar o uso de recursos para melhorar o desempenho e reduzir custos. Aqui estão algumas razões para implementar o monitoramento de recursos: - Otimização de desempenho — O monitoramento ajuda a identificar gargalos e agir preventivamente. Por exemplo, se a utilização da CPU estiver constantemente alta, é possível atualizar o hardware ou redistribuir a carga de trabalho de forma mais eficiente. - Planejamento de capacidade — O monitoramento mostra qual volume de recursos está sendo usado, permitindo planejar quando será necessário ampliar a capacidade para atender à demanda. - Controle de custos — Acompanhar o uso de recursos ajuda organizações a encontrar oportunidades de economia por meio da otimização do consumo. - Segurança — Sistemas de monitoramento ajudam a detectar atividades incomuns que podem indicar tentativas de invasão ou acessos não autorizados. No fim das contas, monitorar recursos significa garantir que a infraestrutura de TI opere com eficiência, escalabilidade e segurança. ### Softwares necessários para instalação Neste guia será utilizada uma combinação de ferramentas para criar um sistema de monitoramento, alertas e visualização: MongoDB, Grafana e Prometheus. Grafana fornece painéis e visualizações dinâmicas. Prometheus coleta e distribui métricas. MongoDB atua como banco de dados, armazenando informações. ### nstalação e operação do sistema de monitoramento Antes de usar a ferramenta, atualize o sistema: ```bash sudo apt update -y && sudo apt dist-upgrade -y ``` Captura de tela nº1 — Atualização Para baixar as imagens de container, você precisa se registrar no Docker Hub. Preencha todos os campos obrigatórios e confirme seu e-mail. Captura de tela nº2 — Site Em seguida, instale as dependências e os softwares necessários: ```bash apt install docker.io ``` Captura de tela nº3 — Instalação do Docker Depois, faça login na sua conta pelo servidor: ```bash docker login ``` Captura de tela nº4 — Login no repositório A senha não aparecerá na tela, mas será lida corretamente. Agora precisamos baixar todas as imagens que contêm as bibliotecas e o aplicativo do sistema já compilado: ```bash docker pull grafana/grafana && docker pull prom/prometheus && docker ``` Captura de tela nº5 — Download dos containers Depois disso, precisamos criar as dependências entre o banco de dados e o sistema de monitoramento. Crie um arquivo de configuração: ``` cd / && mkdir /conf && nano conf/prometheus.yml ``` Captura de tela nº6 — Criação da pasta Digite no arquivo de configuração os seguintes parâmetros: ```yaml global: scrape_interval: 15s # how often to scrape targets by default evaluation_interval: 15s # how often to evaluate rules by default scrape_configs: - job_name: 'mongodb-exporter' scrape_interval: 5s static_configs: - targets: ['mongo-exporter:9216'] ``` Captura de tela nº7 — Configuração Esses parâmetros indicam o endereço e a porta do MongoDB para exportação de dados. Pressione **Ctrl + O** para salvar e **Ctrl + X** para sair do editor de texto. Agora inicie os containers: ```bash sudo docker run -d --name=grafana -p 3000:3000 grafana/grafana ``` ```bash sudo docker run -d --name=prometheus -p 9090:9090 prom/prometheus ``` ```bash sudo docker run -d --name mongodb-exporter -p 9216:9216 ranchercharts/bitnami-mongodb-exporter:0.8.0-debian-9-r4 ``` Captura de tela nº8 — Inicialização dos containers O terminal exibirá um identificador para cada container em execução. Verifique-os: ```bash docker ps -a ``` Captura de tela nº9 — Processos do Docker Se o sistema for instalado corretamente, poderemos continuar e instalar o shell gráfico para o sistema usando o comando: ```bash apt-get install ubuntu-gnome-desktop ``` Captura de tela nº10 — Instalação do Gnome Aguarde até o término da instalação. Em seguida, reinicie: ``` reboot ``` Após a reinicialização, será exibida a tela de login do sistema. Captura de tela nº11 — Painel de login Para continuar, instale o navegador Mozilla Firefox: ```bash sudo apt install firefox ``` Captura de tela nº12 — Instalação do Firefox Abra o navegador na área de trabalho. Captura de tela nº13 — Inicialização do Firefox Acesse no navegador: http://localhost:3000 Essa URL abrirá a interface web do Grafana. Faça login com as credenciais padrão: Login: admin Password: admin Captura de tela nº14 — Interface web Depois de entrar, vá até "Administração" e clique em "Adicionar dados". Em seguida, insira o URL para o Prometheus: http://localhost:9090 Captura de tela nº15 — Tela principal Clique no botão "Add data source". Captura de tela nº16 — Fonte de dados Uma mensagem de confirmação aparecerá no canto superior direito, indicando que o sistema foi configurado com sucesso. Captura de tela nº17 — Confirmação O monitoramento de recursos tem papel decisivo na administração eficiente de qualquer sistema. Acompanhando métricas como uso da CPU, largura de banda e custos, as organizações podem otimizar o desempenho de suas infraestruturas de TI e detectar ameaças em potencial. Neste artigo, configuramos um sistema de monitoramento com Prometheus, MongoDB e Grafana. Seguindo este passo a passo, é possível instalar e utilizar essas ferramentas para criar uma solução completa de monitoramento, alertas e visualização. Com a configuração correta, sua infraestrutura funcionará de forma contínua, confiável e eficiente — uma prática essencial para empresas brasileiras que desejam escalar com segurança e previsibilidade. https://serverspace.com.br/support/help/como-escanear-uma-rede-com-nmap.md Guia prático sobre Nmap: instalação, varreduras básicas e técnicas avançadas — com foco em uso defensivo, detecção e práticas éticas. **Nmap** — uma das ferramentas mais poderosas para escanear portas abertas, analisar serviços e diagnosticar redes. É utilizada tanto por administradores de sistemas para auditoria quanto por agentes mal-intencionados para reconhecimento. Neste guia veremos os comandos básicos, bem como métodos não convencionais e suspeitos de varredura que podem ser detectados por ferramentas de monitoramento. ### Instalação do Nmap **Debian/Ubuntu:** ```bash sudo apt update && sudo apt install nmap ``` **CentOS/RHEL:** ```bash sudo yum install nmap ``` **macOS (Homebrew):** ``` brew install nmap ``` **Windows:** Baixe o instalador em [nmap.org/download.html](https://nmap.org/download.html) ### Varredura TCP básica Escanear as portas TCP (por padrão — 1000 portas mais populares): ``` nmap 192.168.1.1 ``` Para escanear todo o intervalo de portas TCP (0–65535): ``` nmap -p- 192.168.1.1 ``` ### Escaneamento de sub-rede Para escanear toda a sub-rede /24: ``` nmap 192.168.1.0/24 ``` Com opção de aceleração: ``` nmap -T4 192.168.1.0/24 ``` ### Varredura de portas UDP Portas UDP são menos visíveis, mas mais difíceis de escanear: ``` nmap -sU 192.168.1.1 ``` Para acelerar, pode-se limitar o intervalo: ``` nmap -sU -p 53,67,123 192.168.1.1 ``` ### Varredura agressiva e detalhada Para obter informações sobre versões de serviços, SO e executar scripts: ``` nmap -A 192.168.1.1 ``` Essa combinação inclui: - detecção de SO (OS detection); - detecção de versão (Version detection); - varredura por scripts (Script scanning); - traceroute. Para salvar os resultados: ``` nmap -oN result.txt 192.168.1.1 ``` ### Técnicas ativas e "stealth" de varredura Alguns tipos de varredura são usados para tentar contornar sistemas de detecção de intrusão (IDS) ou firewalls. Abaixo estão as técnicas chave: SYN-scan ("half-open") Método rápido e frequentemente utilizado: ``` nmap -sS 192.168.1.1 ``` Geralmente requer acesso root. Muitos sistemas IDS monitoram esse tipo de conexão. TCP Null Scan Envio de pacotes TCP sem flags — pode tentar contornar filtros: ``` nmap -sN 192.168.1.1 ``` Muitos sistemas interpretam isso como anomalia. FIN Scan Fechamento de conexão sem estabelecimento — funciona contra alguns sistemas operacionais: ``` nmap -sF 192.168.1.1 ``` Xmas Scan Usa flags TCP "acesas" (FIN, PSH, URG): ``` nmap -sX 192.168.1.1 ``` Frequentemente empregado por agentes maliciosos. Pacotes desse tipo podem ser rastreados por ferramentas como iptables ou [Snort](https://www.snort.org/). ### Varredura com falsificação de origem Para ocultar a identidade ou contornar filtros: ``` nmap -S -e eth0 192.168.1.1 ``` Em combinação com a opção -D (decoy), é possível mascarar-se como outros endereços: ``` nmap -D 192.168.1.5,192.168.1.10,ME 192.168.1.1 ``` ### ICMP Ping Sweep Para verificar a disponibilidade de hosts: ``` nmap -sn 192.168.1.0/24 ``` Para múltiplos tipos ICMP: ``` nmap -PE -PP -PM 192.168.1.0/24 ``` - -PE: Echo request - -PP: Timestamp - -PM: Netmask Um grande volume desses pedidos pode ser detectado pelo sistema de monitoramento como atividade suspeita. ### Fragmentação de pacotes Para tentar contornar filtros e firewalls: ``` nmap -f 192.168.1.1 ``` Divide os pacotes em pedaços menores — isso pode interferir no funcionamento de alguns IDS. ### Como detectar esse tipo de varredura - Use [Snort](https://www.snort.org/) ou [Suricata](https://suricata.io/) para detectar combinações incomuns de flags TCP. - Logs do iptables ou firewalld permitem rastrear floods de SYN e conexões estranhas. - Para UDP, utilize contadores do sistema, já que respostas podem ser raras. - Um grande número de ICMP/UDP/port probes em curto espaço de tempo deve gerar alerta. Nmap é uma ferramenta poderosa para testar a segurança de redes. Entretanto, suas capacidades podem ser usadas tanto para fins legítimos quanto para fins nocivos. Se você protege uma rede — é importante não só saber como escanear, mas também como detectar potenciais atividades de reconhecimento vindas de fora. https://serverspace.com.br/articles/kor-ferramenta-para-localizar-recursos-nao-utilizados-no-kubernetes.md Descubra o que é o Kor — uma ferramenta open-source prática para analisar o cluster Kubernetes. O Kor ajuda a encontrar e excluir recursos não utilizados, reduzir a carga e otimizar a infraestrutura. **Kor** é uma ferramenta de código aberto projetada para **descobrir recursos não utilizados em um cluster Kubernetes**. Ela ajuda administradores e desenvolvedores a otimizar a infraestrutura, removendo objetos "órfãos" que não são mais usados, mas continuam consumindo recursos e dificultando a gestão. Repositório do projeto: [github.com/yonahd/kor](https://github.com/yonahd/kor) ## Por que usar o Kor Com o tempo, um cluster Kubernetes pode acumular vários objetos não utilizados — por exemplo: - **ConfigMap** ou **Secret** que não estão vinculados a nenhum pod; - **Service** sem endpoints ativos; - **Deployment** que não é executado há muito tempo; - **PersistentVolumeClaim** que não está anexado a nenhum pod. Esses recursos: - criam **carga adicional no servidor da API**, - aumentam o **custo de armazenamento e monitoramento**, - dificultam a manutenção da **clareza e transparência da configuração**. O Kor automatiza a detecção desses objetos, simplificando a manutenção do cluster e aumentando sua eficiência. ## Como o Kor funciona O Kor se conecta ao seu cluster Kubernetes usando o arquivo kubeconfig e analisa os metadados dos recursos. A ferramenta mapeia as relações entre os recursos — por exemplo, verificando quais ConfigMaps são usados pelos pods em execução e quais PersistentVolumeClaims estão montados. O resultado é um **relatório** detalhado que mostra: - quais recursos não estão sendo usados, - em qual namespace estão localizados, - quais tipos de objetos podem ser removidos com segurança. ## Exemplo de uso Você pode instalar o Kor via **go install** ou baixando um binário do repositório do GitHub: ``` go install github.com/yonahd/kor@latest ``` Após a instalação, basta especificar o contexto do cluster: ``` kor --context my-cluster ``` O Kor fará a varredura no contexto especificado e exibirá a lista de recursos não utilizados: ```yaml kor Namespace: default ConfigMap: unused-config Secret: old-credentials ``` Também é possível configurar filtros e parâmetros de saída, por exemplo: ``` kor --namespace production --resource configmaps,secrets ``` ## Vantagens de usar o Kor - **Análise automatizada** das relações entre recursos - **Recomendações claras** para limpeza do cluster - **Compatibilidade** com qualquer distribuição Kubernetes - **Instalação simples e interface de linha de comando** - **Otimização de custos e infraestrutura** ## Conclusão O Kor é uma ferramenta valiosa para engenheiros DevOps e administradores Kubernetes que desejam manter seus clusters limpos e eficientes. Ele ajuda a identificar e remover recursos não utilizados, reduzindo a carga e melhorando a capacidade de gerenciamento do ambiente. ## FAQ - **Posso usar o Kor em produção?** Sim, o Kor é seguro para uso em produção, pois ele apenas lê dados da API do Kubernetes e **não faz alterações** no cluster. No entanto, recomenda-se revisar manualmente o relatório antes de excluir qualquer objeto. - **O Kor suporta todos os tipos de recursos?** Atualmente, o Kor analisa os tipos de recursos Kubernetes mais comuns, como ConfigMap, Secret, Service, Deployment e PersistentVolumeClaim. A lista completa de tipos suportados pode ser encontrada na documentação do projeto. - **Preciso instalar o Kor dentro do cluster?** Não, o Kor funciona **externamente** através do seu **kubeconfig** local. Isso significa que você pode executá-lo de qualquer máquina com acesso ao servidor de API do Kubernetes. - **Posso integrar o Kor em um pipeline CI/CD?** Sim, o Kor pode ser integrado em pipelines automatizados para verificar regularmente o estado do cluster e limpar recursos obsoletos. - **O Kor suporta vários contextos do Kubernetes?** Sim, é possível especificar o contexto desejado usando a flag **--context**, o que é útil ao trabalhar com múltiplos clusters. https://serverspace.com.br/articles/mathesar-interface-intuitiva-para-trabalhar-com-postgresql-sem-sql.md Descubra o que é o Mathesar, uma ferramenta de código aberto que transforma o PostgreSQL em uma tabela fácil de usar. Edite, filtre e analise dados sem SQL diretamente no navegador, mantendo o controle e a segurança. **Mathesar** é uma ferramenta de código aberto que oferece uma **interface intuitiva semelhante a uma planilha** para trabalhar com dados em PostgreSQL. Ela permite que usuários de todos os níveis técnicos visualizem, editem, consultem e colaborem diretamente nos dados - sem a necessidade de escrever consultas SQL. O Mathesar é auto-hospedado e utiliza os mecanismos nativos de controle de acesso do PostgreSQL. Repositório do projeto: [github.com/mathesar-foundation/mathesar](https://github.com/mathesar-foundation/mathesar) ## Por que usar o Mathesar Trabalhar com um banco de dados PostgreSQL geralmente requer conhecimento em SQL e administração de sistemas. No entanto, em muitas organizações, os dados são manipulados não apenas por desenvolvedores, mas também por analistas, gestores e outros profissionais sem experiência em programação. **Mathesar** resolve esse problema ao oferecer uma interface visual fácil de usar, semelhante a uma planilha tradicional, mas com todo o poder do PostgreSQL em segundo plano. Ele ajuda a: - editar dados sem usar consultas SQL, - criar relacionamentos entre tabelas por meio de elementos visuais, - filtrar, ordenar e agrupar dados, - colaborar em tempo real com outros usuários por meio da interface web. Isso torna o Mathesar uma solução ideal para pequenas equipes e empresas que desejam simplificar o trabalho com bancos de dados sem perder controle e segurança. ## Como o Mathesar funciona O Mathesar é instalado localmente ou em um servidor e se conecta a um banco de dados PostgreSQL existente. Depois de conectado, os usuários podem acessar os dados através de uma interface web, onde cada tabela é exibida como uma planilha interativa, semelhante ao Excel ou Google Sheets. Principais características: - Os dados são armazenados diretamente no PostgreSQL - sem camadas intermediárias. - Usa os mecanismos nativos de controle de acesso do PostgreSQL. - Suporta importação e exportação em formatos populares (CSV, JSON e outros). - Permite consultas visuais, sem necessidade de escrever código. ## Exemplo de uso Você pode instalar o Mathesar usando Docker ou manualmente, seguindo as instruções no repositório do projeto: ```bash git clone https://github.com/mathesar-foundation/mathesar.git cd mathesar docker-compose up ``` Após a instalação, o Mathesar ficará disponível no navegador, permitindo conectar-se a um banco de dados PostgreSQL e começar a trabalhar imediatamente: ``` http://localhost:8000 ``` ## Vantagens do uso do Mathesar - **Interface simples** - fácil de usar mesmo sem conhecimento em SQL - **Hospedagem própria** - total controle sobre os dados - **Integração direta** com o PostgreSQL, sem proxies ou intermediários - **Colaboração** através do navegador - **Segurança nativa** graças ao controle de acesso do PostgreSQL ## Conclusão O Mathesar é uma ferramenta poderosa que combina a simplicidade das planilhas com a confiabilidade dos bancos de dados relacionais. Ele torna o PostgreSQL acessível a todos - de desenvolvedores a analistas de negócios e é perfeito para equipes que desejam trabalhar com dados de forma flexível, segura e sem complexidade desnecessária. ## FAQ - **Posso usar o Mathesar em produção?** Sim, o Mathesar é seguro para uso em produção. Ele interage diretamente com o PostgreSQL e não altera a estrutura do banco sem a sua permissão. - **Preciso saber SQL para usar o Mathesar?** Não. A interface do Mathesar foi projetada para realizar todas as operações principais sem SQL. No entanto, usuários experientes podem combinar consultas manuais com os recursos visuais. - **Posso conectar o Mathesar a um banco PostgreSQL existente?** Sim. A ferramenta se conecta a um banco de dados já implantado sem alterar sua estrutura nem suas permissões de acesso. - **O Mathesar permite colaboração?** Sim, vários usuários podem visualizar, editar e comentar dados simultaneamente através da interface web compartilhada. - **Onde posso hospedar o Mathesar?** Você pode instalar o Mathesar localmente, em um VPS, dentro de um contêiner Docker ou na nuvem. Todas as instruções estão disponíveis na documentação oficial do projeto. https://serverspace.com.br/articles/migracao-do-postgresql-usando-replicacao-logica-transferencia-do-banco-de-dados-sem-tempo-de-inatividade.md Saiba como transferir um banco de dados PostgreSQL com o mínimo de tempo de inatividade usando replicação lógica. Guia detalhado para configurar publicações, assinaturas e migração segura de dados entre servidores. Mover um banco de dados PostgreSQL é uma tarefa séria e complexa. Para a maioria dos usuários do PostgreSQL, é um dos maiores projetos, exigindo planejamento cuidadoso e tempo de inatividade mínimo. Uma das maneiras mais modernas e confiáveis de realizar uma migração com alta disponibilidade e quase sem interrupções é usando a Replicação Lógica (Logical Replication). ## O que é Replicação Lógica A replicação lógica é um mecanismo do PostgreSQL que permite transferir alterações de dados (INSERT, UPDATE, DELETE) entre bancos de dados no nível lógico, em vez de copiar arquivos físicos. Diferente da replicação física, que duplica todo o conteúdo do armazenamento, a replicação lógica trabalha com tabelas individuais e permite: - Sincronização seletiva de dados (apenas as tabelas necessárias); - Replicação entre diferentes versões do PostgreSQL; - Transferência de dados entre servidores com diferentes arquiteturas ou configurações. Isso torna a replicação lógica uma excelente ferramenta para migrações graduais, atualizações e testes de novas versões do PostgreSQL. ## Quando usar a Replicação Lógica A replicação lógica é especialmente útil quando você deseja: - Atualizar o banco de dados para uma nova versão do PostgreSQL sem longos períodos de inatividade; - Migrar dados para um novo servidor ou para a nuvem; - Distribuir a carga entre vários bancos de dados; - Criar um ambiente de teste sincronizado com o ambiente de produção. ## Como funciona O esquema de replicação lógica no PostgreSQL é composto por dois componentes principais: - **Publicação (Publication)** – criada no banco de origem e define quais tabelas enviarão as alterações. - **Assinatura (Subscription)** – criada no banco de destino e recebe os dados da publicação. Exemplo de configuração de replicação lógica: ```sql -- No banco de origem CREATE PUBLICATION my_publication FOR ALL TABLES; -- No banco de destino CREATE SUBSCRIPTION my_subscription CONNECTION 'host=source-db port=5432 dbname=mydb user=replicator password=secret' PUBLICATION my_publication; ``` Após isso, todas as alterações nas tabelas do banco de origem começarão a ser aplicadas ao banco de destino quase em tempo real. ## Vantagens da Replicação Lógica na Migração - **Tempo de inatividade mínimo** - a replicação pode ser iniciada antecipadamente, e a troca de tráfego para o novo servidor acontece quase instantaneamente. - **Flexibilidade** - não é necessário migrar o banco inteiro; é possível escolher esquemas ou tabelas específicas. - **Compatibilidade entre versões** - a replicação lógica funciona até entre diferentes versões do PostgreSQL (por exemplo, do PostgreSQL 13 para o 16). - **Segurança** - permite uso de SSL e dos mecanismos padrão de autenticação do PostgreSQL. ## Etapas da Migração Usando Replicação Lógica - **Prepare o servidor de destino** - instale a mesma ou uma versão mais recente do PostgreSQL. - **Configure a publicação no banco de origem** - selecione quais tabelas serão replicadas. - **Crie a assinatura no banco de destino** - informe a conexão e inicie a sincronização. - **Aguarde a sincronização completa** - certifique-se de que todos os dados foram copiados. - **Redirecione o tráfego** - aponte o aplicativo para o novo servidor. - **Remova a assinatura e a publicação** - após confirmar que tudo está funcionando corretamente. ## Limitações da Replicação Lógica Apesar da flexibilidade, a replicação lógica possui algumas limitações: - Operações DDL (criação de tabelas, índices, etc.) não são replicadas. - A replicação de sequências (**SEQUENCE**) não é suportada por padrão. - É necessário manter manualmente a consistência do esquema no banco de destino. Com uma configuração adequada, essas limitações não impedem uma migração segura e suave. ## Conclusão A replicação lógica é uma ferramenta poderosa que permite migrar bancos de dados PostgreSQL com tempo de inatividade e riscos mínimos. Ela é ideal para mover bancos de dados para novos servidores, atualizar versões do PostgreSQL ou distribuir a carga entre diferentes instâncias. Usando esse mecanismo, você pode tornar o processo de migração previsível, controlado e seguro — sem perda de dados e com impacto mínimo para os usuários. ## FAQ - **Posso usar replicação lógica entre diferentes versões do PostgreSQL?** Sim, a replicação lógica é suportada entre versões diferentes a partir do PostgreSQL 10. Isso é especialmente útil ao atualizar o banco de dados. - **Quanto tempo leva a migração? ** Depende do volume de dados e do desempenho da rede. A maioria dos administradores inicia a replicação com antecedência, para que o volume principal de dados seja transferido antes da troca final. - **Posso replicar apenas algumas tabelas? ** Sim, ao criar uma publicação, é possível especificar quais tabelas devem ser sincronizadas. - **Como verificar se a replicação foi concluída? ** Use a visualização **pg_stat_subscription** no banco de destino para garantir que o atraso de dados seja zero. - **Preciso parar o banco durante a migração? ** Não. A replicação lógica permite realizar a migração sem interromper o funcionamento do aplicativo — a transição ocorre de forma suave. - **A replicação lógica afeta o desempenho do banco de origem?** Em alguns casos, sim. A replicação lógica adiciona uma carga extra, pois o PostgreSQL precisa registrar e transmitir alterações em nível de transação. No entanto, em ambientes bem configurados, esse impacto é geralmente pequeno e controlável. - **É possível usar replicação lógica junto com replicação física?** Sim. O PostgreSQL permite combinar replicação lógica e física no mesmo cluster. Isso pode ser útil, por exemplo, para manter réplicas de leitura físicas e, ao mesmo tempo, enviar dados específicos para outro servidor via replicação lógica. - **Posso reverter a replicação lógica depois da migração?** Sim, é possível interromper a assinatura (**DROP SUBSCRIPTION**) e a publicação (**DROP PUBLICATION**) quando a migração estiver concluída. É recomendável manter um backup final antes de desativar a replicação, garantindo que nenhum dado se perca durante o processo. ## Sobre a Base de Conhecimento da Serverspace A **Base de Conhecimento da Serverspace** é um repositório técnico criado para ajudar administradores de sistemas, desenvolvedores e engenheiros DevOps a trabalhar de forma mais eficiente com tecnologias modernas de infraestrutura em nuvem. Aqui você encontra **artigos práticos, guias detalhados e tutoriais** sobre bancos de dados, redes, segurança, automação e ferramentas open source. O objetivo é fornecer informações confiáveis e acessíveis que ajudem você a **implementar soluções, resolver problemas e otimizar seu ambiente de TI** - tudo com base na experiência real dos especialistas da Serverspace. https://serverspace.com.br/articles/ut-ferramenta-cli-universal-para-desenvolvedores-e-administradores.md Simplifique o trabalho no terminal com o utilitário ut, um conjunto universal de ferramentas CLI para profissionais de TI. Geração de UUID, hash, conversões e muito mais. **ut** é um conjunto de utilitários de linha de comando (CLI) rápido e leve, reunido em um único arquivo binário. O projeto foi criado para desenvolvedores e profissionais de TI que utilizam diariamente dezenas de ferramentas diferentes - de geradores de UUID a conversores de formato e analisadores de datas. Com o **ut**, tudo isso está disponível em um único programa, sem precisar instalar vários pacotes separados ou acessar sites aleatórios com "ferramentas online convenientes". **GitHub:** [ksdme/ut](https://github.com/ksdme/ut) ## Recursos A ferramenta reúne dezenas de funções comumente usadas, como: - **Geração de UUIDs**, hashes, números e strings aleatórios - **Trabalho com datas e horários** - conversão, análise, deslocamento - **Codificação e decodificação** (Base64, URL, JSON, JWT e outros) - **Criptografia** - hashing (MD5, SHA-1, SHA-256 e outros) - **Rede** - utilitários de IP, ping, análise CIDR - **Conversão de números** (por exemplo, de decimal para binário) - **Manipulação de arquivos** - leitura, hashing, estatísticas O comando **ut help** exibe a lista completa de subcomandos disponíveis e uma breve descrição de cada um. ## Instalação A maneira mais simples é instalar via **Homebrew** (no macOS ou Linux): ``` brew install ksdme/tap/ut ``` Ou baixar o binário pronto no [GitHub Releases](https://github.com/ksdme/ut/releases): ```bash curl -LO https://github.com/ksdme/ut/releases/latest/download/ut-linux-amd64 chmod +x ut-linux-amd64 sudo mv ut-linux-amd64 /usr/local/bin/ut ``` ## Exemplos de uso ``` # Gerar um UUID ut uuid Converter tempo UNIX para formato legível ut time parse 1697389200 Gerar hash de uma string ut hash sha256 "Serverspace" Codificar uma string em Base64 ut encode base64 "Hello, world!" Obter informações sobre um endereço IP ut net info 8.8.8.8 ``` ## Por que experimentar o ut - **Mais rápido do que várias ferramentas separadas.** Tudo reunido em um único binário. - **Sem dependências.** Instala e funciona imediatamente. - **Interface unificada.** Não é preciso lembrar parâmetros de dezenas de utilitários diferentes. - **Multiplataforma.** Compatível com Linux, macOS e Windows. O **ut** é especialmente útil para quem trabalha constantemente no terminal: engenheiros DevOps, administradores de sistemas, desenvolvedores backend e todos que valorizam minimalismo e velocidade. ## Conclusão O **ut** é um assistente universal de linha de comando que economiza tempo e substitui dezenas de pequenas ferramentas em um único programa compacto. Se você deseja reduzir o número de utilitários auxiliares e simplificar tarefas diárias - o **ut** merece um lugar no seu toolbox. ## Perguntas Frequentes (FAQ) - **Como saber quais ferramentas estão disponíveis no ut?** Execute o comando **ut help** - ele exibirá a lista completa de subcomandos e uma breve descrição de cada um. - **Posso usar o ut sem instalação? **Sim. Você pode baixar o binário pronto da página de lançamentos do GitHub, conceder permissão de execução e usá-lo diretamente, sem instalar no sistema. - **O ut funciona no Windows? **Sim, o projeto é compatível com Windows, Linux e macOS. Para Windows, basta baixar o arquivo **.exe** na seção de releases. - **Como atualizar o ut? **Se você instalou via Homebrew, use o comando **brew upgrade ut**. Se baixou o binário manualmente, substitua o arquivo antigo pela nova versão disponível no GitHub Releases. - **Posso adicionar minhas próprias ferramentas ao ut? **Atualmente, o utilitário não suporta plugins, mas o código-fonte é aberto - você pode fazer um fork do projeto e adicionar suas próprias funções. https://serverspace.com.br/articles/elephantshark-analise-do-trafego-de-rede-postgresql.md O Elephantshark ajuda a analisar e depurar o tráfego de rede do PostgreSQL - clientes, drivers, ORM, proxy e replicação entre servidores. **Elephantshark** é uma ferramenta leve para monitorar, analisar e depurar o tráfego de rede do PostgreSQL. Ela ajuda desenvolvedores e administradores a entender como clientes, drivers e ORMs interagem com servidores PostgreSQL, proxies e pools de conexões. Com ela, também é possível rastrear o tráfego entre servidores de réplica (_standby_) e principais (_primary_), assim como entre assinantes e publicadores em sistemas de replicação. **GitHub:** [neondatabase-labs/elephantshark](https://github.com/neondatabase-labs/elephantshark) ## Recursos **Elephantshark** foi criado como uma ferramenta de "escuta" e análise do tráfego Postgres sem a necessidade de modificar o banco de dados ou os aplicativos. Ele permite: - **Monitorar a atividade dos clientes** - quais consultas são executadas, com que frequência e qual a latência. - **Compreender o comportamento de drivers e ORMs** - como eles abrem conexões, quais parâmetros usam e quais comandos enviam. - **Depurar problemas de conexões e pools** - por exemplo, conexões lentas ou que se desconectam. - **Analisar replicação** - tráfego entre servidores primary/standby e publisher/subscriber. - **Operar sem invasão** - a ferramenta não exige alterações na configuração do PostgreSQL. O Elephantshark pode ser usado como uma ferramenta de diagnóstico ao configurar infraestrutura, realizar migrações ou depurar conexões instáveis. ## Instalação Para instalar o **Elephantshark**, clone o repositório e compile o binário a partir do código-fonte: ```bash git clone https://github.com/neondatabase-labs/elephantshark.git cd elephantshark cargo build --release ``` O binário gerado estará em ``` target/release/elephantshark ``` Você também pode baixar versões pré-compiladas (se disponíveis) em [GitHub Releases](https://github.com/neondatabase-labs/elephantshark/releases). ## Exemplos de uso Iniciar a análise de tráfego em uma interface ou porta específica: ``` sudo elephantshark --interface eth0 --port 5432 ``` Ou ler um arquivo **.pcap** salvo anteriormente: ``` elephantshark --file traffic.pcap ``` - O Elephantshark reconhece automaticamente pacotes PostgreSQL e exibe comandos, consultas e respostas decodificadas. Isso permite analisar em detalhe como o aplicativo interage com o banco de dados. ## Por que experimentar o Elephantshark - **Feito especificamente para PostgreSQL.** Entende o protocolo interno do Postgres, incluindo comandos avançados e processos de handshake. - **Sem interferência.** Atua como um sniffer passivo, sem afetar o desempenho. - **Ideal para análise de problemas.** Permite identificar rapidamente consultas com erro, timeouts ou falhas no pool de conexões. - **Perfeito para DevOps e DBAs.** Essencial na configuração de sistemas PostgreSQL de alta performance e tolerância a falhas. ## Conclusão **Elephantshark** é um "microscópio de rede" para PostgreSQL. Ele ajuda a visualizar como seu aplicativo se comunica com o banco de dados, encontrar pontos fracos e melhorar a estabilidade geral. Se você gerencia infraestrutura, desenvolve drivers ou simplesmente quer entender mais profundamente a comunicação de rede no PostgreSQL - o **Elephantshark** será uma excelente adição ao seu conjunto de ferramentas. ## Perguntas frequentes (FAQ) - **Posso usar o Elephantshark em produção?** Sim, mas é recomendado executá-lo em modo de monitoramento passivo ou com cópias do tráfego, para não impactar as conexões ativas. - **Preciso de acesso ao banco de dados? ** Não. O Elephantshark analisa apenas o tráfego de rede e não requer login nem senha do PostgreSQL. - **Qual o impacto de desempenho?** Mínimo - a ferramenta apenas escuta pacotes, sem interferir na transmissão. - **O Elephantshark suporta conexões SSL?** Não, ele não consegue descriptografar tráfego SSL, mas funciona perfeitamente com conexões não criptografadas (como em redes locais). - **Funciona com pgbouncer ou outros pools?** Sim, o Elephantshark reconhece o tráfego entre clientes, proxies, pools e servidores PostgreSQL. https://serverspace.com.br/articles/como-nomear-corretamente-as-metricas-no-opentelemetry.md Saiba como nomear corretamente as métricas no OpenTelemetry: estrutura de nomes, unidades de medida, atributos e melhores práticas para desenvolvedores e DevOps. **Métricas** são a base quantitativa da observabilidade - os números que mostram como o sistema está funcionando. Este é o terceiro artigo da série sobre convenções de nomenclatura no OpenTelemetry - nas partes anteriores, já vimos como nomear corretamente os **spans** e como enriquecê-los com atributos. Agora é hora de falar sobre **como nomear métricas** de forma clara e útil. Ao contrário dos spans, que contam histórias sobre eventos, as métricas mostram **dados quantitativos**: _quanto_, _com que frequência_, _com que rapidez_. Mas - e isso é importante - **nomes bem pensados para métricas são tão cruciais quanto para spans**. E os mesmos princípios se aplicam: o "quem" pertence aos atributos, não ao nome. ## O que podemos aprender com sistemas tradicionais Antes de falar sobre o OpenTelemetry, vejamos como as métricas eram nomeadas anteriormente. Por exemplo, no Kubernetes, é comum encontrar padrões como: ``` apiserver_request_total scheduler_schedule_attempts_total container_cpu_usage_seconds_total kubelet_volume_stats_used_bytes ``` Há um padrão claro aqui: **componente + recurso + ação + unidade**. Ou seja, o nome da métrica já inclui o nome do serviço. Isso fazia sentido em modelos de dados antigos, com pouco contexto disponível. No entanto, esse método traz vários problemas: - duplicação de métricas entre serviços, poluindo o backend de observabilidade; - impossibilidade de agregar valores entre componentes; - nomes fortemente acoplados a serviços específicos; - cada novo serviço exige novos nomes de métricas. ## Erro principal: nome do serviço dentro do nome da métrica A principal regra do OpenTelemetry: **não inclua o nome do serviço no nome da métrica.** Por exemplo, imagine que você tem um serviço de pagamentos. É tentador criar métricas como: ``` payment.transaction.count payment.latency.p95 payment.error.rate ``` Mas isso está errado. O nome do serviço já está disponível no contexto - no atributo **service.name**. Forma correta: ``` transaction.count (service.name=payment) http.server.request.duration (service.name=payment) error.rate (service.name=payment) ``` **Por que isso é melhor?** Porque agora você pode agregar dados de todos os serviços facilmente: ``` sum(transaction.count) # Todas as transações em todos os serviços sum(transaction.count{service.name="payment"}) # Apenas do serviço payment ``` Se o nome do serviço estivesse "embutido" na métrica, seria necessário criar consultas separadas para cada serviço. ## O modelo de contexto do OpenTelemetry No OpenTelemetry, o contexto não fica escondido no nome - ele é estruturado em múltiplos níveis: **recursos**, **escopo** (instrumentation scope) e **atributos**. **Abordagem tradicional (estilo Prometheus):** ``` payment_service_transaction_total{method="credit_card",status="success"} user_service_auth_latency_milliseconds{endpoint="/login",region="us-east"} inventory_service_db_query_seconds{table="products",operation="select"} ``` **Abordagem OpenTelemetry:** ``` transaction.count - Resource: service.name=payment, deployment.environment.name=prod - Attributes: method=credit_card, status=success auth.duration - Resource: service.name=user - Attributes: endpoint=/login, region=us-east - Unit: ms db.client.operation.duration - Resource: service.name=inventory - Attributes: db.sql.table=products, db.operation=select - Unit: s ``` Esse formato segue a especificação do OpenTelemetry, onde o contexto é distribuído entre camadas em vez de ser "achatado" no nome. ## Unidades de medida não fazem parte do nome Da mesma forma: **unidades de medida não devem aparecer no nome da métrica.** Antes era assim: ``` response_time_milliseconds memory_usage_bytes throughput_requests_per_second ``` No OpenTelemetry, as unidades são especificadas separadamente: ``` http.server.request.duration {unit: ms} system.memory.usage {unit: By} http.server.request.rate {unit: {request}/s} ``` **Vantagens:** - nomes limpos e legíveis, sem sufixos desnecessários; - suporte ao padrão UCUM (Unified Code for Units of Measure); - conversão automática de unidades nas plataformas de observabilidade; - compatibilidade com todas as ferramentas OpenTelemetry. ## Boas práticas de nomenclatura Ao definir um nome de métrica, use o formato **{verbo}.{objeto}** - o mesmo usado para spans. - Foque na ação, não em quem a executa. - Não inclua o nome do serviço. - Não adicione unidades ao nome. - Siga as [convenções semânticas do OpenTelemetry](https://opentelemetry.io/docs/reference/specification/metrics/semantic_conventions/). | Correto | Incorreto | | --- | --- | | http.server.request.duration | payment_http_requests_ms | | db.client.operation.duration | user_service_db_queries_seconds | | transaction.count | payment_transaction_total | | messaging.client.sent.messages | order_service_messages_sent_total | ## Vantagens de nomes limpos - **Agregação entre serviços:** uma única consulta como **sum(transaction.count)** retorna dados de todos os serviços. - **Dashboards universais:** o mesmo painel funciona para todos os microsserviços - basta filtrar por **service.name**. - **Menos ruído no namespace:** em vez de centenas de nomes semelhantes, há apenas um (**request.count**), e o contexto é definido por atributos. - **Conversão automática de unidades:** uma métrica **request.duration** com unit=ms pode ser exibida em segundos ou milissegundos. - **Compatibilidade entre instrumentação manual e automática:** todas as métricas seguem o mesmo padrão semântico. ## Erros comuns - Incluir versão ou ambiente no nome: **user_service_v2_latency** quebra após o deploy da v3. - Vincular nomes a infraestrutura: **node_42_memory_usage** perde sentido com escalabilidade dinâmica. - Usar prefixos de ambiente (**prod_, staging_**) dificulta comparações. - Colocar tecnologia no nome (**nodejs_payment_memory**) torna a métrica incorreta após troca de stack. - Misturar domínios de negócio e técnicos: **ecommerce_cpu_usage** é um mau exemplo. O contexto variável (versão, ambiente, instância) deve estar em **atributos**, não no nome. ## Conclusão Uma métrica bem nomeada é um presente para o seu "eu" do futuro. Ela torna os dados observáveis, os dashboards reutilizáveis e os incidentes mais fáceis de compreender. O princípio é simples: Todo o resto - versão, serviço, ambiente - deve estar nos atributos. ## Perguntas frequentes (FAQ) - **Por que é importante nomear métricas corretamente?** Um bom nome facilita a análise de dados e a criação de dashboards reutilizáveis. Métricas bem nomeadas podem ser facilmente agregadas e filtradas entre serviços. - **Por que não incluir o nome do serviço na métrica?** No OpenTelemetry, o nome do serviço está no atributo **service.name**. Colocá-lo no nome cria duplicação e dificulta a agregação entre serviços. - **Devo incluir unidades no nome?** Não. O OpenTelemetry armazena as unidades como metadados, permitindo conversões automáticas (por exemplo, segundos → milissegundos). - **Qual é o formato correto para nomes de métricas?** Use um formato curto e claro: **{ação}.{objeto}**. Exemplo: **http.server.request.duration** em vez de **payment_http_requests_ms**. - **Posso usar meus próprios nomes?** Sim, mas é recomendado seguir as [convenções semânticas do OpenTelemetry](https://opentelemetry.io/docs/specs/semconv/) para garantir compatibilidade. - **Como evitar problemas ao migrar de sistemas antigos?** Separe nome e contexto: mantenha o nome limpo e coloque detalhes (serviço, ambiente, versão) como atributos. Isso simplifica a migração e unifica dashboards. - **E métricas específicas de tecnologias, como PostgreSQL?** Use atributos ou escopos. Exemplo: **db.client.operation.duration** com **db.system=postgresql**. - **Qual é a regra principal para nomear métricas?** O nome deve descrever _o que_ é medido - não _quem_ mede. O restante vai nos atributos. https://serverspace.com.br/articles/intellishell-gerenciador-inteligente-de-comandos-e-modelos-para-o-terminal.md O IntelliShell transforma o terminal em uma biblioteca de comandos: armazene, pesquise e execute modelos com parâmetros. Acelere o trabalho dos desenvolvedores e DevOps. **IntelliShell** é uma ferramenta poderosa para desenvolvedores, profissionais de DevOps e administradores de sistemas que transforma seu terminal em uma biblioteca de comandos estruturada e inteligente. Diferente do histórico padrão de comandos (history), o IntelliShell não apenas lembra o que você digitou - ele permite organizar, buscar, salvar e reutilizar modelos de comandos com contexto e parâmetros. **GitHub:** [lasantosr/intelli-shell](https://github.com/lasantosr/intelli-shell) ## Por que usar o IntelliShell Nos shells padrão como Bash, Zsh ou Fish, o histórico de comandos rapidamente se torna um caos. Quando você precisa lembrar um comando complexo com várias flags ou argumentos, é preciso procurar com **Ctrl+R** ou revisar scripts antigos. **IntelliShell** resolve esse problema: ele transforma seus comandos em uma base de conhecimento interativa diretamente no terminal. ### Principais recursos: - **Salvar modelos de comandos** - transforme comandos frequentes em snippets reutilizáveis. - **Pesquisa contextual** - encontre comandos por palavras-chave, tags ou argumentos. - **Variáveis interativas** - os modelos suportam parâmetros (como nome de arquivo, caminho, endereço do servidor). - **Categorização** - crie grupos como "git", "docker", "deploy", "network" etc. - **Integração com qualquer shell** - funciona com Bash, Zsh, Fish, PowerShell e outros. ## Exemplos de uso ### 1. Comandos repetitivos com parâmetros Em vez de digitar toda vez: ```bash scp ./build/app.tar.gz user@192.168.0.10:/opt/app/ ``` Você pode criar um modelo: ```bash scp ./build/{{file}} {{user}}@{{host}}:/opt/app/ ``` E executá-lo assim: ``` ishell run scp_deploy ``` O IntelliShell pedirá para inserir **file, user e host** - e executará o comando com substituição automática. ### 2. Modelo para Git ```bash git commit -m "{{message}}" && git push origin {{branch}} ``` Agora você pode criar commits rapidamente com a mensagem e o branch desejados, sem precisar digitar o comando completo. ### 3. Snippets para administração ```bash docker exec -it {{container}} bash ``` ```bash kubectl logs -f {{pod}} -n {{namespace}} ``` ```bash systemctl restart {{service}} ``` Esses modelos são especialmente úteis para engenheiros DevOps e SRE que trabalham com múltiplos ambientes. ## Instalação Você pode instalar o IntelliShell diretamente do código-fonte: ```bash git clone https://github.com/lasantosr/intelli-shell.git cd intelli-shell cargo build --release ``` Após a compilação, o binário estará disponível em: ``` target/release/intelli-shell ``` Para maior conveniência, adicione-o ao $PATH e crie um alias: ``` alias ishell="intelli-shell" ``` ## Como organizar sua biblioteca de comandos Você pode agrupar modelos por tema: - **git/** - modelos para Git - **docker/** - comandos Docker - **deploy/** - deploy e CI/CD - **monitoring/** - verificações e métricas do sistema Os comandos podem ser exportados e compartilhados com colegas por meio de um repositório comum. ## Integração com o fluxo de trabalho O IntelliShell é ideal para: - automatizar operações repetitivas (deploy, CI/CD, migrações); - treinar novos membros da equipe - em vez de "procure no history"; - organizar comandos úteis em uma única biblioteca; - trabalhar com nuvens e infraestrutura (AWS CLI, Terraform, Ansible). ## Por que experimentar o IntelliShell - **Velocidade:** pesquisa e execução instantânea do comando desejado. - **Praticidade:** modelos com parâmetros evitam erros de digitação. - **Organização:** comandos não se perdem mais no histórico. - **Trabalho em equipe:** compartilhe modelos com outros membros da equipe. ## Perguntas Frequentes (FAQ) - **Posso usar o IntelliShell com Bash ou Zsh?** Sim, o IntelliShell funciona com qualquer shell, incluindo Bash, Zsh, Fish e PowerShell. - **O que torna o IntelliShell melhor que o histórico padrão? **O histórico comum mostra apenas linhas de texto, enquanto o IntelliShell armazena modelos estruturados com variáveis, tags e descrições. - **Posso usar o IntelliShell em pipelines CI/CD? **Sim, é possível criar modelos para comandos de deploy, testes e build e executá-los em pipelines de CI/CD. - **Onde os modelos são armazenados? **Por padrão, na pasta de configuração do usuário (por exemplo, ~/.config/intelli-shell/), mas o caminho pode ser alterado. - **O IntelliShell oferece autocompletar? **Sim, há suporte de autocompletar integrado para shells populares. - **Posso compartilhar meus modelos com colegas? **Sim, os modelos podem ser exportados em YAML/JSON e armazenados em um repositório compartilhado. ## Conclusão **IntelliShell** transforma seu terminal em um sistema inteligente de gerenciamento de comandos. Ele economiza tempo, elimina o caos do histórico e torna o trabalho de desenvolvedores e profissionais de DevOps muito mais produtivo. Se você costuma repetir os mesmos comandos, experimente o IntelliShell e transforme-os em modelos reutilizáveis e organizados. https://serverspace.com.br/articles/kubectl-ai-assistente-inteligente-para-kubernetes-como-gerenciar-clusters-com-inteligencia-artificial.md O kubectl-ai do Google Cloud transforma comandos em linguagem natural em operações precisas do Kubernetes. Saiba como instalar, configurar e usar o kubectl-ai para automatizar o DevOps e simplificar o trabalho com clusters. **kubectl-ai** é um plugin para o **kubectl**, criado como parte da iniciativa do Google Cloud, que permite gerenciar clusters Kubernetes usando linguagem natural. Ele atua como uma interface inteligente que **traduz a intenção do usuário em comandos kubectl específicos**, simplificando a administração e reduzindo a barreira de entrada ao Kubernetes. ## Por que usar o kubectl-ai Kubernetes é um sistema poderoso, mas complexo. Para implantar um aplicativo, configurar um deployment ou atualizar um pod, normalmente é preciso lembrar diversos parâmetros, sintaxes e manifestos YAML. O **kubectl-ai** resolve esse problema: você descreve o que deseja fazer em inglês comum, e a ferramenta gera e executa automaticamente o comando correto. Exemplo: ```bash kubectl ai "Create a deployment with 3 replicas of nginx" ``` Resultado: ```bash kubectl create deployment nginx --image=nginx --replicas=3 ``` ## Instalação do kubectl-ai ### Requisitos: - **kubectl** instalado - Conta no Google Cloud (para usar o Vertex AI) ou uma API LLM compatível - Python 3.8+ ### Instalação: ```bash pip install kubectl-ai[code] Após a instalação, adicione o plugin ao kubectl: [code]kubectl ai setup ``` Depois disso, você poderá usar ```bash kubectl ai ``` como um comando CLI normal. ## Exemplos de uso ### 1. Verificar o status do cluster ```bash kubectl ai "Show me all running pods in namespace production" ``` Gera automaticamente: ```bash kubectl get pods -n production ``` ### 2. Criar recursos ```bash kubectl ai "Create a new service exposing port 80 for nginx deployment" ``` ### 3. Diagnóstico ```bash kubectl ai "Why is my nginx pod restarting?" ``` O kubectl-ai pode gerar uma sequência de comandos para analisar logs e status dos containers. ## Como funciona O kubectl-ai utiliza **Large Language Models (LLMs)**, como o Vertex AI do Google ou a API da OpenAI, para interpretar seus comandos em linguagem natural. A ferramenta não apenas substitui comandos, mas também analisa o contexto e a configuração atual do cluster, tornando as respostas mais precisas. Componentes principais: - **Interface de IA** - processa a entrada do usuário. - **Adaptador Kubernetes** - verifica o contexto do **kubectl**, o namespace e as permissões de acesso. - **Executor de comandos** - executa as ações sugeridas de forma segura após a confirmação do usuário. ## Vantagens do kubectl-ai - **Acelera tarefas rotineiras** - reduz a necessidade de lembrar flags e sintaxes complexas. - **Educacional** - ajuda iniciantes a entender quais comandos estão sendo executados. - **Seguro** - mostra o comando antes da execução e requer confirmação. - **Flexível** - funciona com qualquer LLM que ofereça uma interface de API. ## Conclusão **kubectl-ai** é um passo em direção à automação inteligente do Kubernetes. Ele não substitui o engenheiro DevOps, mas atua como um assistente inteligente: ajuda a escrever comandos mais rapidamente, entender erros e trabalhar com clusters com mais confiança. A ferramenta é especialmente útil em equipes que usam Kubernetes diariamente - seja para ambientes de teste, automação de deployments, treinamento de novos profissionais ou simplesmente para agilizar tarefas repetitivas. Se você costuma abrir a documentação para lembrar um flag ou gasta tempo depurando longos comandos kubectl, o kubectl-ai pode realmente facilitar sua vida. Uma boa prática é começar a usá-lo em cenários "seguros": verificar o estado do cluster, gerar manifestos YAML ou criar serviços de teste. Com o tempo, você perceberá quais tarefas podem ser delegadas totalmente à IA e quais exigem controle manual. O kubectl-ai se integra naturalmente ao fluxo de trabalho DevOps e pode se tornar uma ponte valiosa entre engenheiros e ferramentas de IA da nova geração. Se você deseja tornar o gerenciamento da infraestrutura mais simples, intuitivo e inteligente - experimente o kubectl-ai em ação. ## FAQ - **O kubectl-ai executa comandos automaticamente? ** Não. Por padrão, ele apenas sugere o comando e solicita confirmação manual. Isso evita ações acidentais. - **Posso usar o kubectl-ai sem o Google Cloud?** Sim. É possível configurar qualquer outro LLM por meio de uma API (como OpenAI ou Anthropic). - **É seguro enviar dados para um LLM?** O kubectl-ai não envia dados sensíveis do cluster, apenas o texto da solicitação e o contexto dos comandos. No entanto, em ambientes corporativos, recomenda-se usar um modelo hospedado internamente. - **O kubectl-ai suporta outros idiomas além do inglês?** Oficialmente, apenas o inglês é suportado, mas com modelos multilíngues é possível utilizá-lo em outros idiomas (por exemplo, via OpenAI GPT-4). - **Posso integrar o kubectl-ai em pipelines CI/CD?** Sim. Ele pode ser usado em scripts ou pipelines para gerar e validar comandos automaticamente. https://serverspace.com.br/articles/intellishell-gerenciador-inteligente-de-comandos-para-terminal-e-shell-linux.md O IntelliShell transforma seu terminal em uma biblioteca inteligente de comandos. Armazene, pesquise e reutilize modelos CLI com a ajuda da inteligência artificial. Acelere seu trabalho no Linux e automatize tarefas rotineiras. **IntelliShell** é um poderoso gerenciador de modelos e snippets para o terminal, que transforma sua linha de comando em uma biblioteca inteligente de comandos. A ferramenta vai muito além de uma simples busca no histórico: ela estrutura, armazena e sugere comandos com base no contexto, tornando o trabalho no console mais rápido e prático. ## Por que usar o IntelliShell Qualquer pessoa que trabalhe frequentemente no terminal sabe como pode ser difícil lembrar o comando certo ou uma sequência longa de argumentos executados "na quinta passada". O histórico ajuda, mas apenas parcialmente - ele não permite buscas por significado, nem armazenar parâmetros como modelos reutilizáveis ou organizar comandos de forma eficiente. **IntelliShell** resolve esses problemas. Ele transforma o terminal em uma ferramenta inteligente onde você pode: - Armazenar comandos como snippets estruturados; - Encontrá-los rapidamente por contexto, tags ou descrições parciais; - Criar modelos com variáveis (por exemplo, para endereços IP, portas, caminhos); - Automatizar tarefas repetitivas sem precisar escrever scripts complexos. Exemplo de consulta: ``` intelli "find docker commands related to cleanup" ``` O resultado será uma seleção de comandos do seu histórico relacionados à limpeza de containers Docker. ## Instalação do IntelliShell ### Requisitos: - Python 3.8+ - Shell compatível (bash, zsh, fish, etc.) ### Instalação: ```bash pip install intelli-shell ``` Após a instalação, ative o plugin no seu shell: ``` intelli setup ``` Agora você pode usar **intelli** em qualquer sessão de terminal. ## Principais recursos ### 1. Busca inteligente no histórico ``` intelli search "kubernetes logs" ``` O IntelliShell analisa seu histórico e exibe comandos que correspondem ao **significado** da consulta, não apenas a coincidências de texto. ### 2. Criação de modelos ``` intelli new "ssh connect" --template "ssh user@{host}" ``` Depois, você pode chamar o modelo assim: ``` intelli run "ssh connect" host=192.168.1.10 ``` ### 3. Tags e coleções ``` intelli tag add "docker cleanup" --tags "docker,cleanup,system" ``` Isso permite agrupar comandos e encontrá-los por categoria. ### 4. Sugestões e autocompletar O IntelliShell se integra ao autocompletar do shell e sugere snippets e modelos relevantes conforme você digita. ## Como funciona O IntelliShell armazena todos os comandos executados em um banco de dados local e permite acessá-los como uma coleção de conhecimento. Usando elementos de inteligência artificial e busca contextual, a ferramenta é capaz de: - Entender o significado da consulta (por exemplo, "encontre comandos onde usei a porta 8080"); - Sugerir comandos semelhantes; - Salvar e reutilizar parâmetros como variáveis. Tudo isso torna o terminal um ambiente mais "inteligente", especialmente útil para engenheiros DevOps, desenvolvedores e administradores de sistemas. ## Vantagens do IntelliShell - **Mais rápido que buscar manualmente** - pesquisa instantânea no histórico e modelos. - **Armazenamento contextual** - cada comando tem descrição e tags. - **Flexibilidade** - suporte a variáveis, coleções e parâmetros personalizados. - **Integração simples** - funciona com os shells mais populares. - **Aumento de produtividade** - menos tempo gasto com sintaxe e pesquisa. ## Conclusão **IntelliShell** ajuda a transformar seu terminal de um histórico caótico de comandos em uma ferramenta inteligente e organizada. É a solução ideal para quem trabalha diariamente no console — DevOps, administradores, engenheiros de suporte e desenvolvedores. Comece aos poucos: salve alguns comandos usados com frequência, adicione tags e descrições. Em poucos dias, você perceberá que realiza tarefas repetitivas muito mais rápido, e seu histórico se transforma em uma verdadeira base de conhecimento. Se você quer tornar seu terminal realmente "inteligente", o **IntelliShell** é um excelente passo nessa direção. ## FAQ - **O IntelliShell substitui o histórico padrão do shell?** Não, ele o complementa, criando uma camada mais estruturada e fácil de usar sobre o histórico padrão. - **Posso usar o IntelliShell offline?** Sim, todos os dados são armazenados localmente, e a ferramenta funciona totalmente offline. - **Ele é compatível com diferentes shells?** Sim, o IntelliShell funciona com bash, zsh, fish e outros terminais populares. - **É seguro armazenar comandos no IntelliShell?** Sim, os dados são salvos localmente, e você pode excluir comandos confidenciais da indexação. - **Posso sincronizar meus snippets entre dispositivos?** Sim, o IntelliShell permite exportar e importar coleções por arquivos JSON ou repositórios Git. https://serverspace.com.br/articles/o-que-e-o-cluster-patroni-e-como-funciona.md Saiba como o Patroni garante alta disponibilidade do PostgreSQL: failover automático, replicação e gerenciamento de cluster através do Etcd ou Consul. **Patroni** é um sistema de gerenciamento de cluster de alta disponibilidade para PostgreSQL, desenvolvido para automatizar o **failover**, a **replicação** e a **manutenção da consistência** entre os nós do banco de dados. Inicialmente criado pela empresa Zalando, o Patroni é hoje uma das soluções mais populares para a construção de clusters PostgreSQL tolerantes a falhas. O Patroni fornece comutação automática de papéis (primary/replica), monitora a integridade dos nós e mantém o cluster PostgreSQL operacional sem necessidade de intervenção manual do administrador. ## Como é estruturado um cluster Patroni O cluster Patroni é composto por vários componentes que interagem entre si: - **Primary (master)** – o servidor principal do PostgreSQL, responsável pelas gravações. - **Replica (standby)** – réplica(s) que recebem dados via replicação em fluxo. - **DCS (Distributed Configuration Store)** – armazenamento externo de configuração e estado do cluster (por exemplo, **Etcd**, **Consul** ou **ZooKeeper**). - **Agentes Patroni** – processos executados em cada nó que gerenciam o PostgreSQL e coordenam o trabalho por meio do DCS. Cada nó no cluster possui seu próprio **daemon Patroni**, que: - **Monitora o estado do PostgreSQL.** - **Consulta o DCS para saber quem é o líder atual (primary).** - **Pode assumir o papel de primary se o servidor principal ficar indisponível.** ## Princípio de funcionamento do Patroni O funcionamento do Patroni baseia-se no conceito de **eleição de líder (leader election)** via DCS. - Um dos nós recebe a "liderança" – torna-se o **primary**. - Os outros nós sincronizam seus dados com o primary por meio da replicação interna do PostgreSQL. - Se o líder falhar (por exemplo, o servidor ficar inacessível ou o banco não responder), o Patroni executa um **failover automático**: Um novo líder é escolhido entre as réplicas disponíveis. - O cluster atualiza as informações no DCS. - Os aplicativos redirecionam as requisições para o novo primary (via HAProxy, PgBouncer ou outro software intermediário). Assim, o Patroni garante **tempo mínimo de inatividade** e **alta disponibilidade** do banco de dados. ## Recursos e vantagens do Patroni - **Failover automático** A comutação entre nós ocorre automaticamente em caso de falha, sem intervenção do administrador. - **Integração com sistemas externos** O Patroni suporta DCS (Etcd, Consul, ZooKeeper) para coordenar o estado do cluster. - **Configuração flexível de replicação** É possível usar replicação síncrona ou assíncrona do PostgreSQL. - **REST API** Cada nó expõe uma API para gerenciamento, monitoramento e integração com ferramentas externas. - **Suporte a balanceadores externos** O Patroni integra-se facilmente com HAProxy ou PgBouncer para rotear conexões de clientes ao primary atual. ## Exemplo de topologia do Patroni Um esquema simples de cluster Patroni pode ser assim: ``` +------------------+ | HAProxy | | (balancer) | +--------+---------+ | +---------+---------+ | | +------+-----+ +-------+------+ | PostgreSQL | | PostgreSQL | | (Primary) | | (Replica) | +------+-----+ +-------+------+ | | +----+----+ +----+----+ | Patroni | | Patroni | +----+----+ +----+----+ | | +---------+---------+ | +------+------+ | Etcd / | | Consul | +-------------+ ``` ## Instalação e configuração do Patroni O Patroni pode ser instalado via gerenciador de pacotes ou a partir do código-fonte: ```bash pip install patroni[etcd] ``` Exemplo mínimo de configuração (**/etc/patroni.yml**): ```yaml scope: postgres name: node1 restapi: listen: 0.0.0.0:8008 connect_address: 192.168.1.10:8008 etcd: host: 192.168.1.100:2379 postgresql: listen: 0.0.0.0:5432 connect_address: 192.168.1.10:5432 data_dir: /var/lib/postgresql/data authentication: replication: username: repl password: repl_pass superuser: username: postgres password: admin_pass parameters: max_connections: 100 shared_buffers: 256MB ``` Após configurar todos os nós e iniciar o Patroni, o processo de coordenação e replicação ocorrerá automaticamente. ## Conclusão: dicas práticas O Patroni não é apenas uma camada sobre o PostgreSQL — é um sistema completo de gerenciamento do ciclo de vida de um cluster. Ele combina replicação, failover automático e configuração dinâmica, tornando-se essencial em ambientes de produção onde o tempo de inatividade é inaceitável. Tecnicamente, o Patroni atua como um "coordenador" entre os nós do PostgreSQL, sincronizando o estado via armazenamento distribuído (Etcd, Consul ou ZooKeeper). Isso permite: - **Monitorar a integridade dos nós – cada réplica envia periodicamente seu status ao DCS (Distributed Configuration Store);** - **Eleger um líder – em caso de falha do nó principal, o sistema designa automaticamente um novo sem intervenção humana;** - **Atualizar a configuração do cluster sem downtime – as mudanças são aplicadas dinamicamente via REST API do Patroni;** - **Integrar com sistemas de orquestração – por exemplo, o operador Patroni para Kubernetes permite executar PostgreSQL altamente disponível em ambientes conteinerizados;** - **Configurar o nível de sincronização das réplicas – escolhendo entre synchronous_mode e asynchronous_mode conforme o SLA de dados.** Para maior resiliência em produção, recomenda-se: - **Implantar pelo menos três nós PostgreSQL e três nós DCS (por exemplo, Etcd);** - **Configurar HAProxy ou PgBouncer para rotear conexões de clientes;** - **Realizar testes regulares de failover e backups dos arquivos WAL;** - **Monitorar via Prometheus Exporter, incluído no Patroni.** O Patroni funciona muito bem com ferramentas como pgBackRest, Grafana, Ansible e Kubernetes, formando uma base confiável para infraestruturas modernas em nuvem. ## FAQ - **É possível usar o Patroni sem Etcd ou Consul?** Não. O Patroni requer um DCS (como Etcd, ZooKeeper ou Consul) para armazenar metadados e gerenciar a eleição de líder. - **É necessário um servidor separado para o DCS?** Sim, o DCS deve ser implantado independentemente dos nós PostgreSQL para evitar ponto único de falha. - **O Patroni suporta replicação síncrona?** Sim, é possível configurar réplicas síncronas com **synchronous_mode: true**. - **Como monitorar o cluster?** Através da REST API (**/patroni**) ou ferramentas externas como Prometheus + Grafana. - **O Patroni pode ser executado em Docker?** Sim, ambientes conteinerizados são oficialmente suportados — há imagens prontas e Helm Charts para Kubernetes. https://serverspace.com.br/articles/como-usar-o-oxdraw-editor-visual-de-diagramas-mermaid-com-cli-e-suporte-a-rust.md Aprenda a criar e editar diagramas no Mermaid usando o oxdraw — uma ferramenta com interface visual, Rust CLI e salvamento das alterações no código-fonte. Adequado para DevOps, arquitetos e redatores técnicos que desejam automatizar a documentação e visualizar a… **oxdraw** - é uma ferramenta para criar e editar diagramas usando uma **sintaxe declarativa** e com a possibilidade de edição visual através de uma interface web. Ela é baseada em **Mermaid**, mas permite não apenas escrever o código dos diagramas, como também **ajustar a aparência** (posições, cores, linhas, estilos) diretamente na interface, enquanto todas as alterações são automaticamente salvas de volta no arquivo **.mmd** original como comentários. Graças a isso, os diagramas permanecem **determinísticos, versionáveis e compatíveis com outras ferramentas Mermaid**. ## Links - Repositório: **[https://github.com/RohanAdwankar/oxdraw](https://github.com/RohanAdwankar/oxdraw)** - Documentação do Mermaid: [https://mermaid.js.org](https://mermaid.js.org) ## Recursos do oxdraw - Criação e edição de diagramas na **sintaxe Mermaid** - Editor visual com suporte a posicionamento, conexões e esquemas de cores - Salvamento automático das alterações no arquivo **.mmd** original como comentários - CLI em Rust para compilar arquivos **.mmd** → imagens (PNG, SVG, etc.) - Interface web em **React** para edição interativa ## Instalação ### 1. Clonar o repositório ```bash git clone https://github.com/RohanAdwankar/oxdraw.git cd oxdraw ``` ### 2. Instalar dependências Rust (para o CLI) Certifique-se de que o Rust está instalado. Caso não esteja: ```bash curl https://sh.rustup.rs -sSf | sh ``` Compile o CLI: ``` cargo build --release ``` Node.js (para a interface web) Instale as dependências do frontend: ``` cd web npm install ``` ## Uso ### 1. Criar um diagrama Crie um arquivo Mermaid: ``` echo "graph TD; A-->B; B-->C;" > example.mmd ``` ### 2. Executar a interface web ```bash npm run dev ``` Abra no navegador: [http://localhost:5173](http://localhost:5173/) Carregue o arquivo **example.mmd** e comece a editar — você pode mover nós, alterar cores, estilos e conexões. Todas as alterações são automaticamente salvas como comentários no arquivo, por exemplo: ``` graph TD A-->B B-->C %% position: A(100,200), B(200,300) ``` ## Compilação de diagramas Após a edição, é possível gerar imagens: ``` cargo run --release -- example.mmd --output diagram.svg ``` São suportados os formatos: **SVG**, **PNG** e **PDF**. ## Vantagens do oxdraw - Total compatibilidade com o Mermaid - Reprodutibilidade e controle de versão - Possibilidade de ajuste visual preciso - Integração rápida com CI/CD para geração automática de diagramas em documentação ## Exemplo de cenário de uso - Crie um diagrama de arquitetura do sistema em Mermaid - Abra-o no oxdraw e organize visualmente os blocos - Salve o arquivo e adicione-o ao Git - Use o CLI para gerar as imagens finais para documentação ## Conclusão oxdraw é uma ferramenta que combina a conveniência da edição visual com a flexibilidade da abordagem declarativa. É especialmente útil para engenheiros, profissionais de DevOps e redatores técnicos que desejam documentar infraestrutura, arquitetura de sistemas ou pipelines de CI/CD em diagramas visuais e reproduzíveis. Com o oxdraw, você pode usar simultaneamente o poder do Mermaid e a simplicidade da interface drag-and-drop, sem perder o controle sobre o código nem a compatibilidade com outras ferramentas. Se você valoriza determinismo, transparência e controle de versão, o oxdraw será uma excelente adição ao seu conjunto de ferramentas. ## FAQ - **O que torna o oxdraw melhor que o Mermaid comum? ** O Mermaid comum exige posicionamento manual de elementos via código. O oxdraw resolve esse problema, permitindo editar o diagrama visualmente e salvar automaticamente as alterações de posição de volta no arquivo original como comentários — sem perder compatibilidade. - **É possível usar o oxdraw sem a interface web? ** Sim. A ferramenta CLI escrita em Rust permite compilar arquivos .mmd em imagens sem precisar executar a interface. Isso é útil para automação ou CI/CD. - **Onde as alterações são salvas após a edição visual?** Todas as alterações são inseridas no arquivo .mmd original como comentários (por exemplo %% position: ...). Assim, você pode versionar e acompanhar as diferenças no Git. - **Quais formatos de exportação são suportados?** Com o CLI é possível exportar diagramas em SVG, PNG ou PDF, tornando o oxdraw ideal para documentação técnica e apresentações. - **É possível integrar o oxdraw em projetos existentes?** Sim. O oxdraw é totalmente compatível com o Mermaid, então você pode usá-lo em projetos atuais sem alterar o formato dos diagramas. https://serverspace.com.br/about/blog/quais-linguagens-de-programacao-sao-mais-utilizadas.md Descubra quais linguagens de programação dominam o mercado em 2025: Python, JavaScript, Java, C# e Go. Saiba onde são usadas, seus pontos fortes e tendências para o futuro ### Introdução: a linguagem como ferramenta O mundo da programação se parece com a Torre de Babel — há tantas linguagens que, para quem vê de fora, tudo parece um grande caos. Na verdade, não é barulho: é uma sinfonia de ferramentas, cada uma criada para resolver um tipo de problema. Existem centenas de linguagens — desde veteranas consolidadas até experimentos de nicho. No meio dessa cacofonia, há verdadeiras "estrelas do rock" — linguagens que moldam a realidade tecnológica de hoje. Elas estão presentes no desenvolvimento web, em aplicativos móveis, machine learning, games e sistemas corporativos. São também as mais procuradas por empresas e debatidas por desenvolvedores. Para não nos perdermos em detalhes, vamos focar em cinco linguagens populares e amplamente usadas. Elas não são as únicas, mas representam bem o cenário atual do desenvolvimento: Python, JavaScript, Java, C# e Go. A seguir, vamos ver onde elas são usadas, quais são suas diferenças, seus pontos fortes e para onde a indústria caminha. No final, traremos um pequeno guia para iniciantes e mostraremos como a computação em nuvem facilita o trabalho com qualquer linguagem. ## Python: universal e acessível Python é uma linguagem com sintaxe quase conversacional. Sua legibilidade vem do uso de indentação no lugar de chaves, de uma estrutura simples e da definição automática de tipos. O desenvolvedor não precisa perder tempo com formalidades — escreve direto a lógica. Isso acelera o desenvolvimento, especialmente nas fases iniciais do projeto. Como é interpretada, a linguagem executa o código linha a linha, sem compilação prévia, oferecendo flexibilidade, mas com limitações de velocidade. O desempenho do Python é considerado médio: ideal para prototipagem, análise e automação, mas não para cargas extremas "na marra". Em sistemas de produção, isso é compensado com otimizações em trechos críticos do código (por exemplo, usando Cython ou integrando serviços de alto desempenho). Python é escolhido quando a velocidade de iteração e a riqueza de ferramentas são prioridade. Ele é usado para automatizar processos rotineiros, escrever scripts para DevOps, construir sistemas de análise e, no campo de machine learning, tornou-se praticamente o padrão — do protótipo à produção. **Por que é importante:** - Estrutura de código simples e legível; - Flexibilidade e execução interpretada; - Ecossistema rico de bibliotecas. ## JavaScript: a linguagem que vive no navegador JavaScript foi criado para a web — e isso define sua natureza. Ele já vem embutido em todos os navegadores, permitindo executar código diretamente no lado do usuário. Isso garante interatividade instantânea: botões clicam, formulários respondem e interfaces são dinâmicas. Embora rode em uma única thread, JavaScript usa assincronismo e event loop, mantendo boa resposta mesmo sob carga. Também é interpretado, mas graças à compilação JIT (Just-in-Time) em engines modernas como o V8, ele roda mais rápido do que linguagens de script tradicionais. JS não foi feito para cálculos pesados — sua força está na interatividade e no processamento assíncrono de eventos. Com o tempo, ultrapassou os limites do navegador. Com o Node.js, também passou a ser usado no back-end, enquanto frameworks como React e Vue.js o transformaram na base da web moderna. Um único idioma permite criar tanto front-end quanto back-end, simplificando a arquitetura. **Por que é importante:** - Embutido em todos os navegadores; - Modelo assíncrono e baseado em eventos; - Uma linguagem para cliente e servidor. ## Java: a base confiável do mundo corporativo Java é uma das linguagens mais maduras da programação. Foi criada com foco em portabilidade e estabilidade: o código, escrito uma vez, roda em quase qualquer lugar graças à máquina virtual JVM. Isso a tornou favorita do setor corporativo, bancos e telecomunicações — onde falhas custam caro. Seu segredo de desempenho está no uso de bytecode, executado pela JVM com compilação JIT. Essa combinação garante boa velocidade e comportamento estável sob carga. Java não é tão rápida quanto Go ou C++, mas supera com folga as linguagens interpretadas. A tipagem forte e o suporte a multithreading tornam possível construir sistemas escaláveis e confiáveis. Hoje, Java continua sendo uma base sólida para sistemas corporativos complexos, desenvolvimento Android e serviços de alta demanda — de plataformas bancárias a sistemas de billing e CRMs. **Por que é importante:** - Portabilidade via JVM; - Estabilidade e previsibilidade; - Ideal para grandes sistemas e projetos de longo prazo. ## C#: a linguagem do ecossistema Microsoft (e além) C# nasceu para o ecossistema Windows, mas se expandiu muito além disso. Ele é compilado para código intermediário e executado na CLR (Common Language Runtime), garantindo alta performance e gerenciamento automático de memória com coleta de lixo. Combina o rigor da tipagem estática com a praticidade de linguagens de alto nível. Em termos de desempenho, C# é comparável ao Java: a JIT e as otimizações da CLR permitem tempos de resposta estáveis e alta capacidade de carga. O desenvolvedor não precisa lidar manualmente com memória ou threads — o ambiente cuida disso, equilibrando performance e praticidade. C# é amplamente usado em soluções corporativas, desenvolvimento de jogos (via Unity), aplicações web em .NET e, cada vez mais, em projetos em nuvem graças à sua natureza multiplataforma. **Por que é importante:** - Alta performance sem lidar com código de baixo nível; - Forte integração com o ecossistema Microsoft; - Versatilidade: do corporativo aos games. ## Go: velocidade, simplicidade e microsserviços Go (ou Golang) nasceu no Google como ferramenta para desenvolvimento de servidores rápidos e confiáveis. Sua ideia central é entregar máxima performance com mínima complexidade. Go é compilado diretamente em código de máquina, o que garante inicialização e execução muito mais rápidas que linguagens interpretadas. Não depende de máquina virtual, reduzindo sobrecarga e acelerando deploys. Seu grande trunfo é a concorrência embutida: goroutines permitem processar milhares de tarefas em paralelo sem o peso de threads tradicionais. Isso faz do Go uma das linguagens mais eficazes para microsserviços e sistemas em nuvem de alta escala. Ele se aproxima da velocidade de C/C++, mantendo legibilidade e simplicidade. Hoje, Go é usado em APIs, plataformas de tráfego, ferramentas DevOps e infraestrutura de nuvem. É especialmente valorizado por engenheiros que buscam desempenho, previsibilidade e escalabilidade. **Por que é importante:** - Simplicidade com performance elevada; - Concorrência leve e eficiente; - Perfeito para nuvem e microsserviços. ## Como comparar linguagens de programação Cada linguagem tem sua lógica, filosofia e áreas ideais de aplicação. Algumas priorizam velocidade máxima, outras — agilidade e facilidade de desenvolvimento. Aqui, "desempenho" não é um rótulo genérico, mas um conceito técnico. Três fatores principais influenciam a velocidade: - Modo de execução: compilação (Go, C#) traz melhor resposta, interpretação (Python, JavaScript) oferece mais flexibilidade; - Gerenciamento de memória: automático é prático, manual pode ser mais rápido; - Concorrência: lidar bem com múltiplas tarefas ao mesmo tempo é essencial para escalar sistemas. Comparar linguagens "de frente" em velocidade é como comparar uma bicicleta a um carro de Fórmula 1: cada um tem seu terreno ideal. A tabela abaixo não é um ranking, mas um mapa resumido das forças e cenários típicos de uso. | Linguagem | Popularidade | Desempenho | Aplicações principais | Características principais | | --- | --- | --- | --- | --- | | Python | Muito alta (ML, DevOps, análise) | Média — interpretada, flexível, não indicada para cargas pesadas | Machine learning, análise de dados, automação | Sintaxe clara, vasto ecossistema de bibliotecas, iteração rápida | | JavaScript | Muito alta (desenvolvimento web) | Média — interpretada, acelerada por JIT | Front-end, back-end com Node.js, aplicações web | Integrada aos navegadores, modelo assíncrono | | Java | Alta | Acima da média — bytecode + JVM + JIT | Sistemas corporativos, Android, alta escala | Portabilidade, estabilidade, tipagem forte | | C# | Alta | Alta — JIT da CLR, bom desempenho sob carga | Corporativo, desktop, jogos, web | Alta performance, integração com Microsoft, versátil | | Go | Em crescimento | Muito alta — compilação nativa, concorrência leve | Microsserviços, DevOps, infraestrutura em nuvem | Simplicidade, escalabilidade, velocidade | ## Linguagens na nuvem: do código ao serviço ativo Independentemente da linguagem escolhida, todo código precisa de um ambiente para rodar — e, cada vez mais, esse ambiente é a nuvem. Ela elimina a necessidade de lidar com hardware, acelera o deploy e permite escalar sem esforço. Aplicações em Go sobem quase instantaneamente, Python e JavaScript integram-se facilmente a pipelines de automação, e Java e C# se mantêm firmes sob alta carga. Com servidores em nuvem, a infraestrutura não limita mais a linguagem — pelo contrário, potencializa suas vantagens. Os [servidores da Serverspace](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) permitem criar ambientes para qualquer stack — de pequenos scripts em Python a microsserviços complexos em Go. A infraestrutura é iniciada em minutos, escala sob demanda e integra-se facilmente com ferramentas de [DevOps](https://serverspace.com.br/solutions/nuvem-para-desenvolvimento.md) e pipelines CI/CD. Por que isso importa: - Inicialização rápida e escalabilidade flexível; - Suporte a qualquer linguagem e framework; - Tráfego ilimitado e alta velocidade de conexão; - Pronta para automação e desenvolvimento contínuo. ## Conclusão: as ferramentas mudam, os princípios permanecem O universo das linguagens de programação está em constante transformação. Algumas dominam áreas inteiras — como Python em machine learning ou JavaScript no front-end. Outras, como Go, crescem rapidamente com a expansão da nuvem. Já veteranas como Java e C# continuam evoluindo lado a lado. A tendência mais forte não é a competição, mas a coexistência. Projetos modernos costumam combinar stacks: back-end rápido em Go, interface em JS, análise em Python. A nuvem viabiliza essa flexibilidade sem complicações, e o futuro pertence a ecossistemas integrados e ágeis — não a uma única linguagem "correta". ## FAQ - **1. Qual linguagem é mais fácil de aprender para iniciantes?** Se a meta é começar rápido e ver resultados, Python é a melhor escolha. É clara, exige pouca configuração e possui vasta documentação e suporte. - **2. Como a linguagem impacta o desempenho da aplicação?** A velocidade depende da forma de execução: linguagens compiladas como Go são mais rápidas; interpretadas como Python, mais flexíveis. Em projetos reais, combinações são comuns para equilibrar velocidade e agilidade. - **3. Qual linguagem é melhor para soluções em nuvem?** Todas as cinco se adaptam bem. Python e JS são ideais para desenvolvimento ágil, Java e C# para sistemas robustos e Go para microsserviços de alta performance. - **4. É possível mudar a linguagem de um projeto depois?** Sim, mas exige planejamento arquitetural. Muitas vezes a migração é parcial: trechos críticos são reescritos em Go ou C#, enquanto o restante permanece intacto. https://serverspace.com.br/about/blog/quais-portas-abrir-para-diferentes-servicos.md Descubra quais portas abrir para diferentes serviços e como protegê-las: HTTP, SSH, DNS, SMTP, bancos de dados e mais. Dicas práticas, tabela de referência e recomendações de segurança. O mundo da infraestrutura de rede é mais simples do que parece. Se imaginarmos um servidor como um prédio, as portas são como as entradas pelas quais os dados passam. Algumas servem para que usuários acessem aplicativos web, outras — para troca de e-mails ou sincronização de sistemas. Mas quanto mais portas abertas, maior o risco de alguém indesejado espiar lá dentro. Portas abertas por si só não são um problema — a vulnerabilidade surge quando atrás delas há aplicativos desatualizados ou mal protegidos. Se os serviços funcionam em uma rede interna com acesso restrito, portas abertas podem ser aceitáveis. O importante não é simplesmente fechar tudo, mas entender a função de cada porta, separar serviços internos de externos e proteger onde realmente importa. Não existe uma receita universal de "abra apenas o essencial" — cada serviço exige suas próprias regras. Em alguns casos, é aceitável permitir acesso amplo; em outros, é necessário restringir IPs, criptografar o tráfego e monitorar conexões cuidadosamente. Neste artigo reunimos os principais serviços e suas portas padrão, além de recomendações de segurança para cada caso. No final, você encontrará uma tabela prática, comandos básicos para gerenciamento de portas e orientações para facilitar a configuração por meio de um painel de nuvem. ## O que é uma porta e por que isso importa Uma porta é um ponto de entrada para o tráfego de rede, uma espécie de identificador do serviço que roda no servidor. Quando você abre um site, envia um e-mail ou acessa uma máquina remotamente, sua solicitação não chega "ao servidor" de forma genérica — ela entra em uma porta específica, onde é processada pelo aplicativo correto. Cada serviço "ouve" um número de porta definido. A web geralmente usa 80 (HTTP) ou 443 (HTTPS), SSH usa 22, SMTP usa 25. Se uma porta necessária estiver fechada, o serviço simplesmente não existe para o mundo externo. Se portas desnecessárias estiverem abertas, é como deixar uma porta destrancada. Por isso, a segurança dos servidores começa com uma configuração cuidadosa de portas. Quanto menos pontos de entrada, menor a superfície de ataque. E para as portas que precisam permanecer abertas, é essencial aplicar camadas extras de proteção: filtros de acesso, criptografia e monitoramento. A seguir, veremos os serviços mais comuns, as portas a que estão vinculados e recomendações práticas de segurança. Depois, apresentaremos ferramentas e dicas para gerenciar portas de forma segura e eficiente. ## Princípios básicos de configuração segura de portas Antes de falar dos serviços em si, vale revisar os princípios que ajudam a manter a rede protegida. Seja na nuvem ou em servidores dedicados, as regras são universais. - **Minimizar a superfície de ataque** Abra apenas as portas realmente necessárias para o funcionamento dos serviços. Todo o resto deve permanecer fechado por padrão. - **Restringir o acesso** Se o serviço for usado apenas por administradores, restrinja o acesso por IP ou VPN. Por exemplo, SSH não precisa ficar disponível para todos — apenas para endereços confiáveis. - **Usar criptografia** Muitos protocolos possuem versões seguras (HTTP → HTTPS, POP3 → POP3S, IMAP → IMAPS). Tráfego criptografado protege dados contra interceptação. - **Monitorar e registrar** Mesmo com boas regras, não existe segurança absoluta. Logs de conexões e ferramentas de monitoramento ajudam a detectar tentativas suspeitas de acesso, varreduras ou ataques de força bruta. - **Utilizar portas não padrão (quando fizer sentido)** Embora a "segurança por obscuridade" não seja uma proteção completa, mover alguns serviços para portas não padrão pode reduzir o volume de ataques automatizados. ## Serviços e portas mais comuns Alguns serviços estão praticamente sempre presentes em uma infraestrutura — como sites, ferramentas de administração remota ou gateways de e-mail. Sua popularidade os torna essenciais, mas também alvos frequentes de ataque. Abaixo, um resumo dos principais serviços e pontos de atenção para protegê-los. Serviços Web — HTTP e HTTPS (80/443) A web é a principal porta de entrada para usuários. A porta 80 é usada para HTTP sem criptografia e 443 para HTTPS. O ideal é que todo o tráfego real passe por HTTPS, com redirecionamento automático do 80 para o 443. Isso garante a segurança e integridade dos dados. Para reforçar a segurança, use certificados confiáveis (como Let's Encrypt) e habilite HSTS (HTTP Strict Transport Security) para impedir conexões não criptografadas. SSH — Acesso remoto (22) A porta 22 é usada para acesso remoto seguro via SSH. É uma das portas mais atacadas, com bots automatizados tentando adivinhar logins e senhas. Recomendações: - restringir acesso por IP ou VPN; - usar autenticação por chave em vez de senha; - mudar a porta padrão, se necessário; - configurar fail2ban para bloquear tentativas repetidas. DNS — Resolução de nomes (53) A porta 53 serve para consultas DNS. Se o servidor não for um resolvedor público, essa porta não deve estar aberta para a internet. Restringir consultas à rede interna é a prática mais segura. Em servidores públicos, implemente mecanismos de defesa contra DDoS, como rate limiting. Serviços de e-mail — SMTP, IMAP, POP3 (25/465/587/993/995) Portas de e-mail são alvo comum de ataques — de spam a invasões de contas. - 25 (SMTP): envio de e-mails, geralmente com restrições de IP. - 465 e 587: envio seguro (SMTPS e submission). - 993 (IMAPS) e 995 (POP3S): protocolos seguros para recebimento. Todos devem usar protocolos criptografados e exigir autenticação. O acesso externo precisa ser rigidamente controlado. Bancos de dados — MySQL, PostgreSQL (3306/5432) Portas 3306 (MySQL) e 5432 (PostgreSQL) costumam ficar abertas por descuido. Normalmente, o acesso ao banco ocorre apenas internamente. O ideal é bloquear completamente essas portas na internet e usar VPN, TLS ou túnel SSH quando for necessário acesso remoto. ## Tabela de portas e recomendações de segurança | Serviço / Protocolo | Porta(s) | Função | Recomendações de segurança | | --- | --- | --- | --- | | HTTP / HTTPS | 80 / 443 | Acesso web (sites, painéis, API) | Usar HTTPS, redirecionar 80→443, habilitar HSTS, usar certificados SSL confiáveis | | SSH | 22 | Acesso remoto ao servidor | Restringir IP ou VPN, usar chaves, alterar porta padrão se necessário, habilitar fail2ban | | DNS | 53 | Resolução de nomes de domínio | Restringir à rede local, evitar exposição pública, habilitar proteção DDoS e rate limiting | | SMTP / SMTPS | 25 / 465 / 587 | Envio de e-mails | Ativar TLS, restringir IP, autenticação obrigatória | | IMAPS / POP3S | 993 / 995 | Recebimento de e-mails | Usar apenas portas seguras, controlar acesso externo | | MySQL | 3306 | Banco de dados | Acesso somente interno, VPN ou túnel, TLS | | PostgreSQL | 5432 | Banco de dados | Bloquear acesso externo, usar VPN/TLS quando necessário | | RDP | 3389 | Área de trabalho remota (Windows) | Restringir IP ou VPN, MFA obrigatório, monitorar sessões | | FTP / FTPS | 21 / 990 | Transferência de arquivos | Preferir SFTP, usar TLS e filtragem de IP | | NTP | 123 | Sincronização de horário | Restringir fontes de requisição, monitorar ataques DDoS | Essa tabela não cobre todas as portas existentes, mas fornece uma base sólida para os cenários mais comuns. Se o serviço não for usado, feche a porta. Se for necessário, proteja e monitore. ## Como gerenciar portas na prática Saber quais portas abrir é metade do trabalho. A outra metade é configurá-las corretamente e manter o controle. Seja qual for o sistema operacional ou provedor, os princípios são os mesmos: abrir apenas o necessário, fechar o que sobra e monitorar tudo. Firewall local A forma mais comum é usar firewalls integrados para criar regras de permissão ou bloqueio. Linux (UFW): ``` sudo ufw allow 443/tcp # Permitir HTTPS sudo ufw deny 3306/tcp # Bloquear MySQL sudo ufw status verbose ``` CentOS / RHEL (firewalld): ``` sudo firewall-cmd --add-port=22/tcp --permanent sudo firewall-cmd --remove-port=3306/tcp --permanent sudo firewall-cmd --reload ``` Windows (PowerShell): ``` New-NetFirewallRule -DisplayName "Allow HTTPS" -Direction Inbound -LocalPort 443 -Protocol TCP -Action Allow Remove-NetFirewallRule -DisplayName "Block MySQL" ``` ## Portas e nuvem: por que é mais fácil gerenciar na infraestrutura cloud Na infraestrutura tradicional, gerenciar portas costuma ser trabalhoso: configurar firewalls manualmente, acompanhar acessos e garantir que nada fique aberto por engano. Na nuvem, esse processo é muito mais simples. Fornecedores modernos oferecem painéis e APIs que permitem ajustar regras de acesso em poucos cliques. Isso é essencial em ambientes dinâmicos, onde recursos sobem e descem conforme a carga — e as regras de segurança devem acompanhar. Na plataforma [Serverspace](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), por exemplo, você pode: - gerenciar listas de portas permitidas via painel web ou API no nível do roteador; - restringir acesso por IP ou sub-rede; - aplicar templates prontos para configurações típicas (web, banco de dados). Esse modelo aumenta a segurança e reduz a chance de erro humano, além de economizar tempo dos administradores. ## Conclusão: segurança começa pelo básico Ataques raramente começam com explorações sofisticadas — geralmente, começam com uma simples varredura de portas abertas e esquecidas. É por isso que o gerenciamento correto de portas não é detalhe técnico: é base da segurança. Princípios-chave: - abrir apenas o necessário; - proteger com criptografia, filtros de IP e VPN; - evitar expor serviços diretamente; - registrar e monitorar atividade; - usar mecanismos de segurança em nuvem, como [WAF](https://serverspace.com.br/services/waf.md), para reduzir riscos. Uma estratégia clara para portas abertas não exige grandes investimentos — apenas atenção e disciplina. E com soluções em nuvem como Serverspace, proteger sua infraestrutura se torna ainda mais simples. ## FAQ - **1. Quais portas abrir primeiro?** Depende do uso. Para sites: 80 e 443; para acesso remoto: 22; para e-mails: 25/465/587 e portas seguras IMAP/POP3. O resto, apenas se necessário. - **2. Usar portas não padrão melhora a segurança?** Não substitui medidas reais de proteção, mas ajuda a reduzir ataques automatizados. - **3. Como proteger SSH contra invasões?** Restringir IP, usar autenticação por chave, configurar fail2ban e alterar a porta padrão se desejado. - **4. Por que não deixar bancos de dados expostos?** Bancos não são feitos para acesso direto pela internet. Portas abertas são alvos comuns. Use redes internas ou VPN. - **5. Como verificar quais portas estão abertas?** No Linux: sudo netstat -tulnp ou sudo ss -tulnp. No Windows: netstat -an. Também é possível usar scanners como Nmap. https://serverspace.com.br/about/news/halloween-na-serverspace-voce-consegue-escapar-do-labirinto-de-servidores.md Encare o desafio supremo de Halloween da Serverspace!Faça o quiz e descubra se você consegue sobreviver a uma noite no misterioso data center. Quando a escuridão cai e o ar vibra com mistério, preparamos um desafio especial para você. Afaste-se das tarefas do dia a dia e encare nosso quiz arrepiante de Halloween — **"Você sobreviveria em um data center à noite?"**. É meia-noite. Seu turno acabou mas de repente, a porta se fecha com força. O zumbido familiar dos servidores desaparece no silêncio, e um alerta vermelho pisca na tela: **"TESTE DE SOBREVIVÊNCIA INICIADO"**. Você está preso no coração do data center, e até o menor erro pode desencadear um desastre. O que acontece a seguir? Depende de você. Cada escolha determinará se você sobrevive à noite — ou desaparece nas sombras digitais. Enfrente falhas misteriosas no sistema, anomalias estranhas e incidentes imprevisíveis enquanto luta para restaurar a estabilidade antes do amanhecer. As perguntas não serão fáceis — mas os corajosos sempre encontram uma saída. ???? Ouse entrar no labirinto sombrio de servidores e veja se você consegue sobreviver à noite! **[ Faça o quiz](https://serverspace.com.br/voce-sobreviveria-em-um-data-center-a-noite.md)** _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem global que oferece implantação instantânea de infraestrutura virtual com Linux, Windows e sistemas operacionais russos — de qualquer lugar do mundo, em menos de 1 minuto. Para integrar seus serviços, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/tipos-de-ataques-na-nuvem-e-como-se-proteger-deles.md Saiba como funcionam os principais tipos de ataques em nuvem — DDoS, phishing, ransomware, falhas de API e erros de configuração — e veja práticas eficazes de proteção para sua infraestrutura cloud. A infraestrutura da internet migrou rapidamente para a nuvem: startups lançam seus produtos lá, corporações armazenam bancos de dados e até pequenas empresas fazem contabilidade e gerenciam e-mails em [servidores virtuais](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md). A nuvem tornou-se tão comum quanto a eletricidade — simplesmente existe e funciona. Mas, junto com a praticidade, surgiu também uma nova frente de ameaças. Se compararmos: um servidor local é como um cofre no escritório, que você tranca com uma chave e vê todos os dias. Já a nuvem é o aluguel de um cofre em um enorme data center. Ele é protegido, mas você não é o único cliente. E, se alguém esquecer de trancar a porta ou deixar as chaves à vista, todo o andar pode ser comprometido. Ataques a serviços em nuvem hoje não são raridade — são rotina. Criminosos exploram vulnerabilidades em APIs, testam senhas de painéis de controle, realizam ataques DDoS ou tentam injetar código malicioso em contêineres. O objetivo é simples: obter acesso a dados, interromper o funcionamento dos serviços ou usar recursos da infraestrutura de terceiros para seus próprios ataques. O maior paradoxo é que a nuvem foi criada justamente para ser segura e confiável. Mas, como em qualquer sistema, o fator humano, a falta de atenção e uma configuração incorreta podem transformar uma arquitetura poderosa em uma porta aberta para ameaças cibernéticas. ## O que torna a nuvem vulnerável O provedor realmente é responsável pela infraestrutura física, isolamento dos hipervisores, disponibilidade dos servidores e segurança da rede. Mas o que acontece dentro da sua conta — configurações de acesso, armazenamento de dados, senhas e APIs — já é responsabilidade do usuário. As causas mais comuns de invasões em ambientes de nuvem não estão nas falhas das plataformas, mas sim em erros humanos: - Senhas fracas ou reutilização de combinações antigas; - Buckets e bancos de dados abertos, acessíveis pela internet sem criptografia; - Erros nas configurações de API ou políticas de acesso incorretas; - Ausência de autenticação em dois fatores; - Atualizações raras de sistemas e aplicativos, deixando vulnerabilidades conhecidas expostas. Na prática, a maioria dos ataques não começa com hackers mascarados, mas com uma única configuração errada. E quanto mais rápido uma empresa entende que a segurança na nuvem é uma responsabilidade compartilhada, menor a probabilidade de se tornar o próximo alvo. ## Principais tipos de ataques na nuvem Os ataques cibernéticos à infraestrutura em nuvem podem ser comparados aos diferentes métodos de invasão de um edifício: alguns arrombam a porta da frente, outros procuram frestas na ventilação, e há quem simplesmente convença o segurança de que "faz parte da equipe". Abaixo estão os tipos mais comuns de ameaças, encontrados tanto em ecossistemas corporativos quanto em startups. 1. DDoS — sobrecarga da nuvem Distributed Denial of Service (DDoS) é um ataque em que os criminosos enviam milhares ou milhões de requisições para um servidor, com o objetivo de sobrecarregá-lo e torná-lo indisponível. - **Objetivo:** tirar o serviço do ar, violar o SLA e causar prejuízos financeiros. - **Risco:** esses ataques podem vir de milhares de dispositivos infectados (botnets) e durar horas. - **Proteção:** balanceamento de carga, filtros anti-DDoS, cache e uso de CDN. 2. Brute-force e credential stuffing Esses ataques têm como alvo o login e a senha. No brute-force, o invasor tenta todas as combinações possíveis; no credential stuffing, usa credenciais roubadas de outros sites. - **Objetivo:** obter acesso a painéis de controle ou APIs. - **Proteção:** autenticação em dois fatores, restrição de IP, bloqueio após várias tentativas falhas (como fail2ban), e senhas complexas. 3. Injeção de código (SQL Injection, XSS e outros) Acontece quando a entrada de dados do usuário é processada sem filtros adequados. O invasor pode inserir seu próprio código em uma consulta ao banco de dados ou navegador. - **Objetivo:** acessar dados ou executar código malicioso no servidor. - **Proteção:** filtragem e validação de dados de entrada, limitação de privilégios de usuários SQL, atualizações regulares. 4. Ataques a APIs e endpoints As APIs são um dos pontos mais vulneráveis da nuvem moderna. Erros de lógica, falhas em tokens e configurações incorretas de CORS frequentemente abrem caminho para dados internos. - **Objetivo:** assumir o controle de serviços ou contornar a autenticação. - **Proteção:** verificação e limitação de requisições à API, uso de tokens com tempo de vida curto, HTTPS e [WAF](https://serverspace.com.br/services/waf.md) (Web Application Firewall). 5. Engenharia social e phishing Muitas vezes, é mais fácil enganar uma pessoa do que quebrar um sistema. Um e-mail com "atualização de segurança", uma página de login falsa ou um link para "painel do cliente" — e os criminosos já têm acesso à nuvem. - **Objetivo:** roubar credenciais ou chaves de acesso. - **Proteção:** treinamento de funcionários, verificação de domínios, antivírus e políticas de Zero Trust. 6. Ransomware — sequestro digital Malware que criptografa arquivos ou bloqueia máquinas virtuais, exigindo pagamento de resgate. Em ambientes de nuvem, esses ataques podem se espalhar entre contêineres e redes. - **Objetivo:** extorsão e paralisação da infraestrutura. - **Proteção:** backups regulares, isolamento de ambientes, antivírus e controle de permissões de acesso. 7. Erros de configuração (Misconfiguration) A causa mais comum — e mais banal — de vazamentos de dados. Buckets S3 abertos, IPs públicos em bancos de dados, acessos sem criptografia. - **Objetivo:** acesso não autorizado ou roubo de dados. - **Proteção:** auditoria de configurações, criptografia, restrições de rede e princípio do menor privilégio. ## Mapa das ameaças na nuvem: dos objetivos à defesa Todo ataque à nuvem começa com um propósito — obter dados, interromper um serviço ou explorar os recursos de terceiros. Compreender a lógica por trás dessas ameaças ajuda a construir defesas de forma consciente, e não apenas reativa. O importante é entender não só como os ataques acontecem, mas por que acontecem. Essa visão permite escolher as ferramentas certas: em alguns casos, bastam filtros e criptografia; em outros, é preciso uma arquitetura de segurança completa, com auditoria contínua e monitoramento ativo. Tabela de referência: tipos de ataque, objetivo, impacto e defesa recomendada | Tipo de ataque | Objetivo | Consequências | Métodos de proteção | | --- | --- | --- | --- | | DDoS (Distributed Denial of Service) | Sobrecarregar o servidor em nuvem e torná-lo inacessível | Perda de disponibilidade, quebra de SLA, prejuízos financeiros | Balanceamento de carga, uso de CDN, filtros anti-DDoS e cache | | Brute Force / Credential Stuffing | Descobrir senhas e obter acesso ao painel ou API | Comprometimento de contas, vazamento de dados | Autenticação em dois fatores, fail2ban, restrições por IP e senhas fortes | | SQL Injection / XSS | Inserir código malicioso em consultas ou páginas web | Vazamento de dados, alteração de conteúdo, execução remota de código | Validação de entradas, atualização de CMS e bibliotecas, princípio do menor privilégio | | API Exploits | Explorar erros de lógica, tokens ou CORS | Acesso a dados internos, controle indevido sobre serviços | Limitação de requisições, tokens de curta duração, HTTPS, WAF | | Phishing / Engenharia Social | Enganar o usuário para roubar credenciais | Comprometimento de contas, vazamento de chaves e senhas | Treinamento, filtros antiphishing, política de Zero Trust | | Ransomware | Criptografar arquivos ou bloquear sistemas exigindo resgate | Perda de dados, paralisação de operações | Backups frequentes, isolamento de ambientes, antivírus e controle de acessos | | Misconfiguration (erro de configuração) | Manter serviços públicos ou com políticas inseguras | Vazamentos de dados, acessos não autorizados | Auditoria de configurações, criptografia, VPN e políticas de rede restritivas | ## Segurança na nuvem: como a Serverspace ajuda a proteger a infraestrutura Mesmo a arquitetura mais avançada é inútil sem princípios básicos de segurança. Na Serverspace, a proteção está integrada ao próprio núcleo da plataforma — desde a camada de rede até o gerenciamento de acesso dos usuários. Isso reduz os riscos da maioria dos ataques e simplifica o trabalho dos administradores, que não precisam configurar tudo manualmente. **O que mantém a nuvem sob controle:** - **[WAF (Web Application Firewall)](https://serverspace.com.br/services/waf.md)** — filtra solicitações maliciosas e protege contra injeções SQL, XSS e tentativas de exploração de APIs. - **Acesso SSH por chaves** — garante conexões seguras aos servidores, eliminando a dependência de senhas vulneráveis. - **Autenticação em dois fatores (2FA)** — impede logins não autorizados, mesmo se as credenciais forem comprometidas. - **[Isolamento de redes](https://serverspace.com.br/services/private-networks.md) e [VPN](https://serverspace.com.br/services/cloud-vpn.md)** — limita o tráfego interno e protege os dados contra interceptações. - **Criptografia de dados em todos os níveis** — protege informações tanto em trânsito quanto em repouso, em conformidade com a LGPD. - **Monitoramento e alertas** — permitem identificar anomalias e reagir a incidentes antes que causem falhas. Essa abordagem torna a infraestrutura não apenas segura, mas também controlável. Os administradores podem criar, escalar e monitorar servidores diretamente pelo painel ou via API, sem abrir mão da segurança. A nuvem continua flexível — mas não vulnerável. É assim que deve funcionar a proteção moderna. Nenhuma infraestrutura em nuvem está 100% imune a ataques — mas há uma grande diferença entre um projeto vulnerável e um bem protegido. A segurança começa com disciplina: portas fechadas, privilégios mínimos, criptografia, autenticação em dois fatores e auditorias regulares. Essas práticas simples bloqueiam até 90% dos ataques comuns. Tecnologias como WAF e autenticação multifatorial já fazem parte das soluções modernas de nuvem, incluindo a Serverspace. Mas nenhuma plataforma pode ser totalmente segura sem a participação humana.A nuvem é uma ferramenta — e quanto mais atenção você dedica a ela, mais ela protege o seu negócio. ## FAQ - **Como saber se minha nuvem está sendo atacada?** Os primeiros sinais são queda repentina de desempenho, aumento súbito de tráfego sem motivo aparente, múltiplas falhas de login ou alterações inesperadas nas configurações. Soluções de monitoramento e alertas de segurança ajudam a identificar ameaças antes que causem danos. - **É possível se proteger completamente de ataques DDoS?** Completamente, não. Mas é possível minimizar os impactos. Combinações de balanceadores de carga, CDN e filtros anti-DDoS distribuem o tráfego e isolam fluxos maliciosos.Mais importante que reagir é projetar a infraestrutura com resiliência desde o início. - **Qual a importância da autenticação em dois fatores (2FA)?** É crítica. Mesmo que a senha seja comprometida, o invasor não conseguirá acessar o sistema sem o segundo fator. Em painéis de controle e conexões SSH, o 2FA é uma das defesas mais simples e eficazes. - **Como armazenar dados em conformidade com a LGPD?** A legislação exige que os dados pessoais sejam criptografados e acessados apenas por pessoas autorizadas. Usar armazenamento criptografado, VPN e controle de permissões garante conformidade e reduz o risco de vazamentos. - **O que fazer se ocorrer um incidente de segurança?** Primeiro, isole o servidor ou contêiner comprometido, altere todas as senhas e chaves, e revise os logs. Depois, notifique o provedor (como a equipe de suporte da Serverspace) para ativar os protocolos de resposta e investigação. https://serverspace.com.br/support/como-criar-um-servidor-com-software-pre-instalado-no-serverspace-2.md Crie um servidor com software pré-instalado no Serverspace: WordPress, Docker, LAMP e outros. Início rápido sem configuração manual. Criar um servidor com software pré-instalado no painel de controle da Serverspace é uma maneira simples de economizar tempo na configuração e obter um ambiente pronto para uso imediatamente. Você pode escolher os aplicativos desejados ainda na etapa de provisionamento — seja um servidor web, um sistema de gerenciamento de conteúdo ou ferramentas de desenvolvimento. Abaixo está um passo a passo que ajudará você a configurar rapidamente um servidor de acordo com suas necessidades. Escolha o tipo de virtualização — vStack ou VMware — e clique em "**Criar servidor**": Em seguida, defina os parâmetros do servidor de acordo com os seus requisitos: Role a página para baixo e abra a seção "**Aplicativos**" para instalar o software desejado durante a criação do servidor: Atualmente, estão disponíveis os seguintes aplicativos: - **WordPress** - **PostgreSQL** - **PHP** - **Apache** - **Nginx** - **LAMP** - **LEMP** A criação de servidores com software pré-instalado no painel da Serverspace é uma solução prática para começar rapidamente, sem necessidade de configurações manuais demoradas. Basta escolher o tipo de virtualização, definir as especificações do servidor e selecionar os aplicativos desejados em poucos cliques. Essa abordagem economiza tempo e facilita o início de projetos tanto de testes quanto de produção. https://serverspace.com.br/support/help/git-branches-como-criar-e-remover.md Aprenda como criar e remover branches no Git, desde a configuração local até o repositório remoto. Guia completo com comandos práticos, exemplos de uso e dicas para colaboração em equipe. O trabalho em equipe exige ferramentas, e o Git, sistema de controle de versão de repositórios, é um bom exemplo para o desenvolvimento e a documentação colaborativa. Ele permite que os membros da equipe mantenham suas partes locais do projeto e façam alterações em um único servidor com o repositório. Um mecanismo essencial é o sistema de branches do Git, que será abordado neste artigo! ## O que são branches no Git? **Um branch** é **um ponteiro para uma série de commits** que estão relacionados pela sua linha de descendência. Eles permitem o desenvolvimento paralelo e o armazenamento de dados de forma isolada em relação ao restante do projeto. Por exemplo: você tem um projeto principal armazenado no branch main. É dele que os arquivos podem ser baixados e a documentação acessada. Mas correções de bugs ou novas funcionalidades geralmente são testadas em um espaço separado para não afetar o projeto principal — e é para isso que servem os branches! Screenshot nº 1 — Esquema de funcionamento Como um branch no Git é apenas um ponteiro, ele precisa referenciar ao menos um commit. Normalmente, ao criar um novo branch, o commit inicial será o mesmo em que o usuário está trabalhando no momento. Você pode verificar o commit atual com o comando git show: Screenshot nº 2 — HEAD Nesse caso, o HEAD aponta para o commit __ em main. Esse será o primeiro objeto referenciado pelo novo branch; as demais alterações no diretório de trabalho se tornarão commits filhos. ## Como criar um branch local e remoto no Git? Se você não tiver recursos locais suficientes, pode realizar essas ações em [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md). A Serverspace oferece VPS isolados para uso geral e virtualizado. Screenshot nº 3 — Criar servidor A implantação do servidor leva alguns instantes; depois disso, você pode se conectar da maneira que preferir. Entre na pasta do seu diretório de trabalho ou faça o clone a partir do GitHub: ```bash git clone [seu-repo] ``` Screenshot nº 4 — Git clone Ou atualize um existente com o comando abaixo. Note que origin aponta para o caminho padrão; se precisar de outro repositório, especifique manualmente: ```bash git pull origin ``` Screenshot nº 5 — Git pull Depois disso, digite o comando já conhecido e confirme se o branch e o commit corretos estão selecionados: ```bash git show ``` Screenshot nº 6 — HEAD no Git Você só pode criar um branch remoto se já houver um branch local no dispositivo — isso porque o branch não pode estar vazio. Para criar um branch local, use: ```bash git branch novo_branch && git branch --list ``` Screenshot nº 7 — Novo branch Git Para começar a trabalhar nele, é preciso alternar e checar o estado do repositório: ```bash git checkout novo_branch && git show ``` Screenshot nº 8 — Alternar para branch Para criar um branch remoto, execute o comando push contra o commit selecionado: ```bash git push origin novo_branch ``` Screenshot nº 9 — Criar branch remoto ## Como remover branches locais e remotos no Git? Se um branch se tornou desnecessário ou foi criado por engano, é possível removê-lo facilmente. Para deletar um branch local, primeiro mude para outro branch, por exemplo o main: ```bash git checkout main ``` Depois use: ```bash git branch -d novo_branch ``` Screenshot nº 10 — Deletar branch local A última linha confirmará que o branch com id b782c51 foi excluído. Para verificar os branches atuais: ```bash git branch --list ``` Já para remover um branch remoto, utilize o git push: ```bash git push -d origin novo_branch ``` Screenshot nº 11 — Deletar branch remoto Depois, verifique as alterações acessando o repositório pela web ou atualizando com git pull. Assim, poderá visualizar a lista de branches atualizada com git branch. Esse é um mecanismo fundamental no trabalho em equipe com o Git. Os branches permitem trabalhar em arquivos em paralelo com a linha principal de desenvolvimento, acelerando a colaboração entre os membros do projeto. https://serverspace.com.br/support/help/como-instalar-e-usar-o-arpdwatch.md Aprenda a instalar e usar o Arpdwatch para monitorar alterações na tabela ARP, detectar dispositivos desconhecidos e prevenir ataques ARP-spoofing. O arpdwatch é uma pequena, mas útil ferramenta de console para monitorar alterações na tabela ARP. Ele é voltado para administradores que precisam controlar quais dispositivos estão na rede local e se ocorrem mudanças suspeitas. Para entender o valor dessa ferramenta, é importante lembrar o que é **ARP** (Address Resolution Protocol). Esse protocolo associa endereços IP a endereços MAC dentro de uma mesma rede local. Quando um computador deseja enviar dados para um IP específico, ele consulta sua tabela ARP para identificar o MAC correspondente. O problema é que o ARP não possui proteção integrada, tornando possíveis ataques como **ARP-spoofing** — quando um invasor envia respostas ARP falsas, fazendo com que seu computador acredite que, por exemplo, o IP do gateway pertence ao atacante. Isso permite interceptar ou modificar o tráfego. O arpdwatch resolve isso de forma simples — ele monitora alterações na tabela ARP e notifica quando o MAC de um IP muda ou quando um novo dispositivo aparece na rede. ### Instalação No Ubuntu e Debian: ```bash sudo apt update sudo apt install arpdwatch ``` No CentOS ou Rocky Linux: ```bash sudo dnf install arpdwatch ``` Se o pacote não estiver disponível, é possível baixar o código-fonte do repositório oficial e compilar manualmente: ```bash git clone https://github.com/ cd arpdwatch make sudo make install ``` ### Uso básico Para monitorar uma interface específica, por exemplo eth0: ``` sudo arpdwatch -i eth0 ``` Exemplo de saída: ``` [12:03:15] New MAC for 192.168.1.10: 00:11:22:33:44:55 [12:05:47] New device: 192.168.1.25 -> aa\:bb\:cc\:dd\:ee\:ff ``` Assim, você vê imediatamente quando o MAC de um IP muda ou um novo dispositivo entra na rede. Para registrar tudo em um arquivo de log para análise posterior: ``` [sudo arpdwatch -i eth0 >> /var/log/arpdwatch.log ``` ### Modo background e monitoramento contínuo Para manter o arpdwatch rodando constantemente, use screen ou tmux: ``` screen -S arpd sudo arpdwatch -i eth0 Para sair do screen: Ctrl+A, depois D. ``` Também é possível criar um serviço systemd para iniciar o arpdwatch automaticamente junto com o sistema, útil para servidores sempre conectados à rede. ### Aplicações práticas - Detecção de ARP-spoofing: identificar tentativas de interceptação de tráfego, especialmente em redes corporativas. - Inventário da rede: descobrir quais dispositivos estão presentes e quando aparecem. - Monitoramento de alterações: útil para diagnosticar conexões instáveis ou pontos de acesso não autorizados. O arpdwatch não bloqueia ataques; ele apenas notifica mudanças, então a reação precisa ser manual ou em conjunto com outras ferramentas. O arpdwatch é leve e prático para administradores que precisam monitorar a tabela ARP em tempo real. Fácil de instalar, sem configuração complexa, e pode rodar em segundo plano registrando alterações da rede. Para um controle básico, é uma excelente ferramenta, e quando integrado a um sistema de monitoramento mais amplo, permite detectar potenciais ameaças e surpresas na rede local em tempo hábil. https://serverspace.com.br/articles/o-que-e-o-grub-carregador-de-inicializacao-configuracao-e-recuperacao-do-linux-e-do-windows.md O que é o GRUB no Linux: carregador de inicialização do sistema operacional, suas funções, erros e recuperação. Você pode encontrar mais artigos sobre Linux na base de conhecimento da Serverspace. **GRUB (GRand Unified Bootloader)** é um carregador de sistema operacional utilizado na maioria das distribuições Linux, capaz de iniciar múltiplos sistemas operacionais no mesmo computador. Essencialmente, é um programa que fica entre o BIOS/UEFI e o próprio sistema operacional. Quando você liga o computador, o firmware (BIOS ou UEFI) é executado primeiro, inicializando o hardware. Em seguida, o controle é passado para o bootloader — é aí que o GRUB entra em ação. Ele exibe um menu para selecionar o sistema operacional (se houver mais de um), carrega o kernel do Linux ou outro sistema e transfere o controle para ele. ## Por que você precisa do GRUB? - **Escolha do sistema na inicialização** Se você tem vários sistemas instalados (por exemplo, Windows e Linux), o GRUB permite escolher qual inicializar. - **Configuração flexível de boot** Você pode passar parâmetros diretamente para o kernel do Linux na inicialização (por exemplo, ativar nomodeset, desativar verificações de microcódigo ou inicializar no modo de recuperação). - **Suporte a múltiplos sistemas de arquivos** O GRUB consegue ler partições com ext4, btrfs, xfs e muitos outros sistemas de arquivos, permitindo carregar o kernel de praticamente qualquer disco. - **Compatibilidade com hardware moderno** O GRUB funciona tanto em sistemas com BIOS legado quanto em computadores modernos baseados em UEFI. ## Como o GRUB funciona? O GRUB é composto por várias partes: - **Stage 1** - um pequeno carregador no MBR (ou partição ESP em UEFI) que roda primeiro. - **Stage 1.5 / Stage 2** - o código principal que pode trabalhar com sistemas de arquivos e carregar arquivos de configuração. - **Arquivo de configuração (/boot/grub/grub.cfg)** - contém as definições de kernels disponíveis, parâmetros e entradas de sistemas operacionais. ## Principais recursos - Inicialização de Linux, Windows, BSD e outros sistemas. - Menu de seleção de sistema com temporizador. - Possibilidade de editar parâmetros de boot "em tempo real". - Suporte a temas e personalização. - Suporte a inicialização em rede (PXE). ## Onde é usado? **GRUB** é o bootloader padrão em praticamente todas as distribuições Linux populares: Ubuntu, Debian, Fedora, Arch Linux, Linux Mint e muitas outras. Mesmo que você use apenas um sistema operacional, é bem provável que o GRUB esteja trabalhando "nos bastidores" para iniciá-lo. ## FAQ: Perguntas frequentes sobre o GRUB - **Posso remover o GRUB?** Sim, mas apenas se você tiver um único sistema instalado. Se remover o GRUB sem substituí-lo por outro bootloader (como o Windows Boot Manager), seu computador não irá inicializar. - **O que fazer se o GRUB quebrar?** Na maioria das vezes, é possível corrigir inicializando a partir de um Live USB Linux e usando os comandos **grub-install** ou **update-grub** para restaurá-lo. - **Onde ficam as configurações do GRUB?** O arquivo principal é o /boot/grub/grub.cfg. No entanto, ele geralmente não é editado diretamente — em vez disso, as alterações são feitas em /etc/default/grub e aplicadas com update-grub. - **Posso mudar a aparência do menu do GRUB?** Sim. Há temas disponíveis, e você pode personalizar o fundo, fontes e temporizadores. - **Qual a diferença entre GRUB e LILO?** O LILO é um bootloader mais antigo para Linux com menos recursos (por exemplo, ele não conseguia carregar kernels dinamicamente a partir de sistemas de arquivos). Hoje, o LILO é raramente usado, enquanto o GRUB se tornou o padrão. - **O GRUB suporta UEFI?** Sim, as versões modernas do GRUB funcionam tanto em BIOS quanto em computadores baseados em UEFI. - **É possível inicializar sem o GRUB?** Tecnicamente, sim: você poderia usar o bootloader do Windows ou o systemd-boot. No entanto, para Linux, o GRUB é a opção mais prática e versátil. ## Conclusão **GRUB** é um carregador universal sem o qual a maioria dos sistemas Linux simplesmente não iniciaria. Ele desempenha um papel crucial: conectar o hardware do computador ao sistema operacional e dar ao usuário controle sobre o processo de inicialização. Com ele, é possível rodar múltiplos sistemas no mesmo computador, definir parâmetros do kernel, recuperar o sistema em caso de falhas e até personalizar a aparência do menu de boot. Sua flexibilidade e universalidade tornaram o GRUB o padrão de fato na comunidade Linux. Para iniciantes, ele oferece uma maneira simples de escolher um sistema na inicialização; para usuários avançados, oferece ampla personalização e opções de diagnóstico. Por isso, ao aprender Linux, vale a pena entender pelo menos o básico de como o GRUB funciona e como restaurá-lo — esse conhecimento pode um dia salvar seu computador de uma "tela preta". ## Base de Conhecimento da Serverspace A **Base de Conhecimento da Serverspace** é um recurso prático e constantemente atualizado que reúne materiais úteis para desenvolvedores, administradores de sistemas e todos que trabalham com infraestrutura. Aqui você encontra guias detalhados de configuração de servidores, instruções passo a passo para trabalhar com máquinas virtuais, exemplos de configuração de serviços populares e dicas de otimização. Há uma atenção especial ao Linux: os artigos abordam configuração de serviços de rede, gerenciamento de sistemas de arquivos, gerenciadores de pacotes, ajustes de segurança e monitoramento. Você também encontrará conteúdos sobre SSH, Docker, sistemas de virtualização, tecnologias em nuvem e ferramentas de DevOps. Com sua busca estruturada e explicações claras, a base é adequada tanto para iniciantes quanto para especialistas experientes. Se você procura exemplos práticos ou soluções prontas para tarefas comuns em Linux, a Base de Conhecimento da Serverspace será uma fonte confiável de informação e ajudará você a se orientar rapidamente em qualquer situação. https://serverspace.com.br/support/help/o-comando-find-no-linux.md Aprenda a usar o comando find no Linux para buscar arquivos por nome, tipo, tamanho e data de modificação. Guia com exemplos práticos para iniciantes e avançados. Para uma interação rápida e eficiente com o sistema operacional, no Linux geralmente se utiliza o shell CLI, que auxilia na execução de processos e tarefas. Esse sistema operacional possui uma arquitetura modular, composta por uma enorme quantidade de utilitários, daemons e arquivos. Mas como localizar o objeto certo nesse verdadeiro caos? Para isso, podemos usar a ferramenta padrão find. ## Requisitos - Permissões root; - Debian 12 ou versão mais recente; - Conhecimentos básicos sobre o funcionamento do sistema operacional; - Conexão com a Internet. ## Como usar? Vamos imaginar que existe um backup chamado BACKUP.txt em uma das pastas de dados. Primeiro, podemos verificar o comando: ``` find --help ``` Screenshot nº1 — Ajuda Como a ferramenta já está presente no sistema, podemos procurar o arquivo desejado com o seguinte comando: ``` find / -name "BACKUP.txt" ``` Mas se você não se lembra da extensão do arquivo de backup, é possível utilizar um curinga na pesquisa: ``` find / -name "BACKUP.*" ``` Como alternativa, se a busca for apenas pelo formato, use: ``` find / -name "*.txt" ``` Screenshot nº2 — Pesquisa por formato Nesse caso, vemos dois caminhos em todo o sistema de arquivos, e o / indica a raiz da máquina. Mas o que fazer se você não se lembrar do nome nem do tipo do arquivo, apenas que ele foi criado há 24 horas? Nesse caso, ajuste o intervalo com os operadores + e -: ``` find /data -mtime -1 ``` Screenshot nº3 — Ajuste de intervalo Se quisermos buscar apenas arquivos, podemos usar a opção -type combinada com outras: ``` find /data -type f -mtime -1 ``` Screenshot nº4 — Pesquisa por tipo de arquivo O parâmetro mtime significa modification time (tempo de modificação). No exemplo acima, encontramos um arquivo de texto. Porém, se você só lembra o tamanho do arquivo salvo, pode usar: ``` find /data -size -1M ``` Screenshot nº5 — Pesquisa por tamanho de arquivo Agora, se você se recorda apenas de dados específicos — por exemplo, que o acesso ao arquivo foi restrito apenas ao proprietário — utilize: ``` find /data -type f -perm 700 ``` Screenshot nº6 — Pesquisa por permissões ## Conclusão O utilitário find é um poderoso aliado no Linux, permitindo localizar arquivos de forma eficiente com base em critérios como nome, tipo, tamanho e tempo de modificação. Ao dominar essa ferramenta, você poderá navegar com facilidade e precisão pela complexa estrutura do sistema de arquivos do Linux. https://serverspace.com.br/articles/como-restaurar-o-grub-usando-um-live-usb-instrucoes-passo-a-passo-para-linux.md Guia passo a passo para restaurar o GRUB usando um Live USB. Analisamos erros comuns, restauração no BIOS e UEFI, além de dicas para evitar problemas ao trabalhar com Linux e Windows. **GRUB** - é um carregador de inicialização universal, sem o qual o sistema Linux simplesmente não consegue iniciar. Às vezes ele falha: por exemplo, após reinstalar o Windows, erros durante a atualização ou configuração incorreta dos discos. Como resultado, ao inicializar, você pode ver uma "tela preta" com erros como grub rescue ou até mesmo a mensagem "Operating system not found". Nesses casos, o **Live USB** — um pendrive inicializável com Linux — pode ajudar a restaurar o funcionamento do GRUB. ## Quando é necessário o Live USB para reparar o GRUB? O Live USB é usado se: - após instalar o Windows o menu de seleção do Linux desapareceu; - na inicialização aparece apenas o console grub rescue>; - o MBR ou a partição ESP foi danificada; - você alterou as partições do disco e o GRUB parou de iniciar. ## Restauração passo a passo do GRUB com Live USB **1. Inicialize a partir do Live USB** Prepare um pendrive com qualquer distribuição Linux (por exemplo, Ubuntu). No BIOS/UEFI selecione a inicialização pelo USB. Abra o terminal no modo "Try Ubuntu" (ou equivalente). **2. Identifique onde o Linux está instalado** Execute o comando: ``` sudo fdisk -l ``` ou ``` lsblk ``` Encontre a partição onde o seu sistema Linux está instalado (geralmente /dev/sdaX ou /dev/nvme0n1pX). **3. Monte a partição** Monte a partição raiz: ``` sudo mount /dev/sdaX /mnt ``` (substitua sdaX pela sua partição). Se você tiver uma partição EFI separada (em sistemas UEFI), monte-a também: ``` sudo mount /dev/sdaY /mnt/boot/efi ``` **4. Use o chroot** Prepare o ambiente e entre no sistema: ``` sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt ``` Agora você está "dentro" do seu sistema instalado. **5. Reinstale o GRUB** Para sistemas BIOS: ``` grub-install /dev/sda update-grub ``` Para sistemas UEFI: ``` grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB update-grub ``` **6. Reinicie** Saia do chroot: ``` exit ``` Desmonte as partições: ``` sudo umount -R /mnt ``` Reinicie sem o Live USB. Agora o menu do GRUB deve aparecer novamente. ## Possíveis erros e soluções - **grub-install: command not found** - instale o pacote GRUB: ```bash apt install grub2-common ``` - **grub-install failed** - verifique se você indicou o disco corretamente (**/dev/sda**, e não a partição **/dev/sda1**). - Não há menu após a restauração - verifique o arquivo **/etc/default/grub** e execute novamente **update-grub**. ## Conclusão O uso do **Live USB** é a forma mais confiável de reparar o GRUB quando o sistema deixa de inicializar. Com ele, é possível reinstalar o carregador, atualizar a configuração e recuperar o acesso a todos os sistemas operacionais instalados. Dica: se você costuma experimentar com Linux e Windows no mesmo disco, mantenha um Live USB à mão — ele pode salvar você de uma reinstalação completa do sistema. ## FAQ: Perguntas frequentes sobre a restauração do GRUB com Live USB - **É possível restaurar o GRUB sem Live USB?** Tecnicamente, sim, se você tiver outro Linux no disco ou acesso via modo rescue. Mas na maioria dos casos, o Live USB é a maneira mais simples e universal. - **O GRUB não reconhece o Windows após a restauração — o que fazer?** Execute o comando **update-grub**. Ele vai escanear os discos e adicionar o Windows Boot Manager ao menu de inicialização. Se isso não resolver, verifique se o pacote os-prober está instalado. - **Como saber se meu sistema está em modo BIOS ou UEFI?** Se você tiver uma partição EFI (geralmente de 100–500 MB, com a etiqueta EFI System), então é UEFI. Caso contrário, é BIOS. - **É possível restaurar o GRUB se eu excluí a partição Linux?** Não. Se o sistema foi excluído, o carregador não pode ser restaurado. Nesse caso, é necessário reinstalar o Linux. - **O que é mais seguro: instalar o GRUB no MBR ou na partição EFI?** Se você tem um computador moderno com UEFI, use a partição EFI — é o padrão. O MBR é usado apenas em sistemas antigos com BIOS. ## Base de conhecimento Serverspace [Base de conhecimento Serverspace](https://serverspace.com.br/support.md) - é o lugar onde você encontrará dezenas de materiais práticos sobre Linux e administração. Além da restauração do GRUB, há artigos detalhados sobre configuração de serviços de rede, gerenciamento de partições e sistemas de arquivos, trabalho com LVM e RAID, bem como segurança e monitoramento. Para desenvolvedores e engenheiros DevOps, há materiais sobre Docker, virtualização e tecnologias em nuvem. Graças à estrutura clara e exemplos práticos, a base de conhecimento é útil tanto para iniciantes quanto para profissionais. Se você busca soluções prontas ou tutoriais passo a passo sobre Linux, o Serverspace será uma fonte confiável de informação. https://serverspace.com.br/support/help/analise-de-erros-do-sistema-debian-troubleshooting.md Aprenda a diagnosticar e resolver erros no Debian: logs, serviços, kernel e processos. Guia completo de troubleshooting para administradores Linux. Falhas, erros, bugs e servidores fora do ar — essa é apenas uma pequena lista dos possíveis pesadelos para administradores de sistemas, especialistas em segurança da informação e outros profissionais de TI. O objetivo é resolver o problema o mais rápido possível. Mas por onde começar? Onde procurar a causa e como corrigi-la? Neste guia, vamos examinar as principais áreas onde surgem falhas: o sistema de arquivos, o kernel, os dispositivos e os drivers. Como existem muitas causas possíveis, também há diferentes métodos de solução. O processo de troubleshooting pode ser dividido em duas etapas: análise e resolução. ## Primeira etapa: Análise O primeiro passo é identificar o problema e a área do sistema afetada. A mensagem de erro pode vir de um programa, utilitário ou serviço. Por exemplo, o sistema de controle de acesso e gerenciamento de contas pode exibir algo como: Captura de tela nº1 — Mensagem de erro Não temos permissão para acessar um arquivo criado pelo usuário **root**, pois ele possui o atributo 700 — ou seja, apenas o root tem permissões rwx, enquanto outros usuários e grupos não têm nenhuma. Para corrigir o problema, é preciso alterar o atributo do arquivo ou diretório em questão. O sistema pode não exibir mensagens sobre o que ocorre internamente, já que não interrompe o processo. O sistema operacional funciona como uma "caixa-preta" com milhões de processos — e é nossa tarefa monitorá-los. Para isso, existem os arquivos de log, que ajudam a entender o que está acontecendo. Vamos observar o journal do sistema e ver como uma mensagem de evento aparece: ``` journalctl | grep "login" | tail ``` Esse comando combina três ações: - _journalctl_ consulta os logs do sistema; - _grep_ busca um padrão de texto específico; - _tail_ exibe o final do log. O resultado mostra as tentativas de login: Captura de tela nº2 — Log de conexões No servidor de teste, não configuramos uma chave pública, e é possível ver o motivo de falhas de acesso: diversas máquinas com IPs diferentes tentam conectar-se ao servidor. Portanto, configure uma chave pública confiável. Também podemos verificar o status de um serviço específico: ``` journalctl -xeu postgresql@15-main.service ``` Captura de tela nº3 — Problema ao reiniciar o serviço Com base nisso, é possível inspecionar o log detalhado do serviço: Captura de tela nº4 — Falha de unidade No log, há uma linha com o campo Subject indicando "Unit failed" — e um erro FATAL logo abaixo. Nesse caso, o problema está em arquivos de configuração, o que impede a inicialização do serviço. ## Segunda etapa: Resolução Para verificar o status dos serviços, use: ```bash systemctl list-units -t service -p important ``` Captura de tela nº5 — Unidades ativas Vamos corrigir o problema com o serviço PostgreSQL. Abra o arquivo de configuração, encontre a linha com erro: Captura de tela nº6 — Solução do problema Remova-a com **Ctrl + K**, salve e reinicie o serviço: ```bash systemctl restart postgresql@15-main.service ``` Em seguida, verifique novamente o status: ```bash systemctl status postgresql@15-main.service ``` Captura de tela nº7 — Resultado do troubleshooting Em outros casos, pode ser necessário buscar a mensagem de erro na web ou usar serviços de IA generativa, como o GPT, para entender o problema. Se o motivo ainda não for claro, mas o dispositivo estiver lento, instale o atop, um monitor de desempenho: ```bash apt install atop -y ``` Depois, execute: ``` atop ``` Captura de tela nº8 — Gerenciador de tarefas Na última coluna, o campo CPU mostra a porcentagem de uso por processo. Se algum estiver sobrecarregando o sistema, finalize-o: ``` kill -INT 332697 ``` ou encerre completamente: ``` kill -TERM 332697 ``` Captura de tela nº9 — Encerramento do processo Se o terminal não retornar erros, o comando foi executado com sucesso. ## Conclusão Diagnosticar e corrigir erros no sistema é parte essencial da administração de sistemas. Este guia abordou diferentes métodos e ferramentas para identificar e resolver problemas com eficiência no Debian. https://serverspace.com.br/articles/diferenca-entre-wsl-1-e-wsl-2-comparacao-desempenho-e-compatibilidade.md Descubra as diferenças entre o WSL 1 e o WSL 2: arquitetura, desempenho, compatibilidade com o Docker e o Kubernetes. Comparação detalhada das versões do Windows Subsystem for Linux, dicas para escolher e atualizar. **Windows Subsystem for Linux (WSL)** existe em duas versões principais — **WSL 1** e **WSL 2**. Ambas permitem executar distribuições Linux no ambiente Windows, mas diferem em arquitetura, desempenho e nível de compatibilidade. ## 1. Arquitetura - **WSL 1** utiliza um mecanismo que converte chamadas de sistema Linux em chamadas de sistema do Windows. Isso significa que os aplicativos Linux funcionam através de uma camada de compatibilidade, sem um kernel Linux separado. - **WSL 2** é baseado em uma máquina virtual leve que executa um kernel Linux completo. Isso garante um comportamento mais fiel ao sistema e compatibilidade total com as ferramentas nativas do Linux. ## 2. Desempenho - **WSL 1** é mais rápido ao trabalhar com arquivos localizados no sistema de arquivos do Windows (/mnt/c/), pois acessa esses arquivos diretamente. - **WSL 2** oferece maior velocidade ao trabalhar com arquivos dentro do ambiente Linux (por exemplo, em /home/) e lida melhor com operações intensas de entrada e saída. ## 3. Compatibilidade com aplicativos - **WSL 1** possui limitações: não suporta serviços do sistema (daemons) e algumas ferramentas que exigem acesso de baixo nível ao kernel. - **WSL 2** é totalmente compatível com a maioria dos aplicativos Linux, incluindo **Docker**, **Kubernetes** e serviços de rede. ## 4. Uso de recursos - **WSL 1** consome menos recursos, pois não utiliza uma máquina virtual. - **WSL 2** requer um pouco mais de memória RAM, mas, graças à virtualização, oferece estabilidade e isolamento de processos. ## 5. Rede e conectividade - **WSL 1** usa a mesma pilha de rede do Windows, o que simplifica o acesso ao localhost. - **WSL 2** possui seu próprio adaptador de rede virtual, portanto, às vezes, pode exigir configuração adicional para serviços de rede. ## 6. Recomendações de uso | Cenário | Versão recomendada | | --- | --- | | Trabalho rápido com arquivos do Windows | WSL 1 | | Uso de Docker, Kubernetes e serviços de rede | WSL 2 | | Máxima compatibilidade e desempenho | WSL 2 | | Baixo consumo de recursos | WSL 1 | ## Conclusão **WSL 1** é ideal para cenários simples em que você precisa usar rapidamente comandos Linux no Windows. **WSL 2** é mais indicado para desenvolvimento, conteinerização e execução de serviços Linux completos, pois oferece um kernel Linux real e total compatibilidade. ## FAQ - **Como saber qual versão do WSL está instalada?** Execute o comando: ``` wsl -l -v ``` A lista exibirá as distribuições instaladas e a versão do subsistema correspondente. - **É possível atualizar do WSL 1 para o WSL 2?** Sim, use o comando: ``` wsl --set-version 2 ``` Antes disso, verifique se a virtualização está habilitada e o componente **Virtual Machine Platform** está instalado. - **O Hyper-V é necessário para usar o WSL 2?** Não, o WSL 2 utiliza seu próprio mecanismo leve de virtualização, portanto, não é necessário habilitar o **Hyper-V**. - **Posso usar ambas as versões do WSL no mesmo sistema?** Sim, você pode executar diferentes distribuições com versões distintas do WSL simultaneamente — útil para testes e compatibilidade. - **O WSL 2 é compatível com Docker e Kubernetes?** Sim, o WSL 2 é totalmente compatível com o **Docker Desktop** e permite executar contêineres e clusters do **Kubernetes** diretamente no Windows. https://serverspace.com.br/articles/secure-boot-o-que-e-e-como-funciona-a-tecnologia-de-protecao-de-inicializacao-no-windows-e-no-linux.md Saiba o que é o Secure Boot, como ele protege o sistema contra bootloaders maliciosos e rootkits, como funciona no nível da UEFI e como ativá-lo ou desativá-lo no Windows e no Linux. Guia completo sobre inicialização segura da Serverspace. **Secure Boot** é uma tecnologia de segurança desenvolvida pela **Microsoft** em parceria com fabricantes de hardware para proteger o processo de inicialização do sistema operacional contra programas maliciosos. Ela faz parte da especificação **UEFI (Unified Extensible Firmware Interface)** e substitui o BIOS tradicional. O principal objetivo do Secure Boot é garantir que, ao ligar o computador, apenas componentes confiáveis e não adulterados sejam carregados. ## Como o Secure Boot funciona Ao iniciar o computador, o **UEFI** verifica as assinaturas digitais de todos os componentes envolvidos na inicialização do sistema: carregador de boot, drivers e o próprio kernel do sistema operacional. Se algum desses elementos não tiver uma assinatura válida ou tiver sido modificado, a inicialização é interrompida e o usuário é alertado sobre uma possível ameaça. O processo pode ser descrito em várias etapas: - **Verificação da assinatura do carregador** — o UEFI compara a assinatura do arquivo de boot com o banco de certificados confiáveis. - **Inicialização do sistema operacional** — se a verificação for bem-sucedida, o sistema carrega o kernel e os drivers. - **Bloqueio de ameaças** — se for detectado código não assinado (como um rootkit ou bootkit modificado), o Secure Boot impede sua execução. ## Por que o Secure Boot é importante O Secure Boot evita ataques durante o processo de inicialização, considerados entre os mais perigosos. Sem essa tecnologia, invasores poderiam injetar código malicioso antes mesmo do sistema operacional iniciar — por exemplo, na forma de um **bootkit** ou **rootkit** que assume controle total do dispositivo. Principais vantagens: - **Proteção contra carregadores e vírus maliciosos.** - **Garantia de integridade do sistema.** - **Maior confiabilidade em ambientes corporativos.** ## Secure Boot no Linux e no Windows - No **Windows 10/11**, o Secure Boot vem ativado por padrão e verifica o carregador Microsoft Boot Manager. - No **Linux**, diversas distribuições (como Ubuntu, Fedora e Debian) também oferecem suporte ao Secure Boot por meio de carregadores assinados (como o **shim**), permitindo a instalação em dispositivos com essa proteção ativa. ## Quando o Secure Boot pode causar problemas Em alguns casos, a tecnologia pode gerar dificuldades na instalação de **drivers personalizados**, **versões antigas de sistemas operacionais** ou **kernels Linux personalizados**. Nesses casos, é possível: - temporariamente **desativar o Secure Boot** nas configurações do UEFI; - ou **adicionar sua própria chave de assinatura** à lista de certificados confiáveis. ## Como verificar se o Secure Boot está ativado - No **Windows**: Abra o PowerShell e execute: ``` powershell Confirm-SecureBootUEFI ``` Se o resultado for ``` True ``` , a proteção está ativa. - No **Linux**: Execute o comando: ``` mokutil --sb-state ``` Ele exibirá o estado atual da função Secure Boot. ## Conclusão **Secure Boot** é uma parte essencial da segurança moderna, garantindo uma inicialização confiável do sistema operacional. Ele impede a execução de componentes maliciosos e aumenta a resistência geral do sistema contra ataques. Para a maioria dos usuários, é recomendado **manter o Secure Boot ativado**, a menos que seja necessário instalar software não assinado. ## FAQ - **Devo manter o Secure Boot ativado?** Sim, é altamente recomendável mantê-lo ativado, especialmente se você utiliza Windows 10, 11 ou distribuições Linux modernas. Ele ajuda a proteger o sistema contra vírus e rootkits de inicialização. - **Posso instalar Linux com o Secure Boot ativado?** Sim, a maioria das distribuições modernas, como Ubuntu, Fedora e openSUSE, possui assinatura digital e é compatível com o Secure Boot. Em alguns casos, pode ser necessário desativá-lo temporariamente. - **Como verificar se o Secure Boot está ativado?** No Windows, execute o comando `msinfo32` e verifique o campo "Estado da Inicialização Segura". No Linux, use `mokutil --sb-state`. - **É possível desativar o Secure Boot?** Sim, pode ser desativado pelo menu UEFI (BIOS). No entanto, certifique-se de que o sistema e os drivers não dependam do Secure Boot para evitar problemas de inicialização. - **O Secure Boot protege contra todas as ameaças?** Não. Ele impede a execução de carregadores não autorizados, mas não protege contra vírus ou vulnerabilidades dentro do sistema operacional em execução. O ideal é combiná-lo com antivírus e ferramentas de monitoramento de segurança. ## Conclusão O Secure Boot é um componente crucial da segurança moderna, garantindo que apenas software confiável seja executado durante a inicialização. Ele protege o computador contra códigos maliciosos antes mesmo do carregamento do sistema operacional, fornecendo uma camada adicional de proteção em nível de firmware. Em ambientes Windows e Linux, tornou-se um padrão de segurança, especialmente em infraestruturas corporativas e em nuvem. O uso do Secure Boot em conjunto com outras medidas — como criptografia, antivírus e políticas de segurança — ajuda a garantir a integridade dos dados e a estabilidade do sistema. https://serverspace.com.br/articles/formatacao-e-verificacao-de-discos-no-linux-comandos-fdisk-mkfs-e-fsck.md Aprenda a particionar, formatar e verificar um disco no Linux usando fdisk, mkfs e fsck. Comandos passo a passo, exemplos e dicas para trabalhar com sistemas de arquivos. **Formatação e verificação de discos** — são operações básicas na administração de sistemas Linux. Elas permitem preparar um novo disco para uso, criar um sistema de arquivos e garantir sua integridade. Neste artigo, veremos três utilitários essenciais: **fdisk**, **mkfs** e **fsck**. ## 1. fdisk - particionamento de disco **fdisk** é um utilitário de console interativo usado para gerenciar partições em discos (MBR ou GPT). Com ele, é possível: - visualizar a tabela de partições; - criar, excluir e modificar partições; - definir o tipo de partição (por exemplo, Linux LVM ou swap). ### Exemplo de uso Listar os discos disponíveis: ``` sudo fdisk -l ``` Abrir o disco desejado, por exemplo **/dev/sdb**: ``` sudo fdisk /dev/sdb ``` No modo interativo: | Comando | Descrição | | --- | --- | | n | criar uma nova partição | | d | excluir uma partição | | p | mostrar partições existentes | | w | salvar alterações | | q | sair sem salvar | Após criar a partição, por exemplo **/dev/sdb1**, é possível seguir para a formatação. ## 2. mkfs — criação de sistema de arquivos **mkfs (make filesystem)** é usado para formatar uma partição e criar um sistema de arquivos. Suporta vários tipos: ext4, xfs, btrfs, vfat e outros. ### Exemplo Criar um sistema de arquivos **ext4** em uma nova partição: ``` sudo mkfs.ext4 /dev/sdb1 ``` Para formatar em outro tipo, por exemplo **XFS**: ``` sudo mkfs.xfs /dev/sdb1 ``` Depois disso, monte a partição para uso: ``` sudo mount /dev/sdb1 /mnt/data ``` ## 3. fsck — verificação e reparo de sistemas de arquivos **fsck (file system check)** verifica a integridade e corrige erros em sistemas de arquivos. É recomendado utilizá-lo: - após uma queda de energia; - em caso de falhas no disco; - antes de montar dispositivos antigos ou externos. ### Exemplo Verificar e corrigir erros automaticamente: ``` sudo fsck -y /dev/sdb1 ``` A opção **-y** confirma automaticamente as correções. Se o sistema informar que a partição está montada, desmonte-a antes: ``` sudo umount /dev/sdb1 sudo fsck /dev/sdb1 ``` ## 4. Ciclo completo de preparação do disco ``` # Particionar o disco sudo fdisk /dev/sdb # Criar sistema de arquivos sudo mkfs.ext4 /dev/sdb1 # Verificar o sistema de arquivos sudo fsck /dev/sdb1 # Montar a partição sudo mkdir /mnt/data sudo mount /dev/sdb1 /mnt/data ``` ## FAQ **Posso usar fdisk** em um disco em uso? Não. **fdisk** não deve ser usado em partições montadas ou em uso — isso pode causar perda de dados. Para alterar a tabela de partições, o disco deve estar desconectado ou inativo. **Qual a diferença entre mkfs.ext4 e mkfs.xfs?** Ambos criam sistemas de arquivos, mas com características diferentes. **ext4** é versátil e confiável, ideal para a maioria dos cenários. **xfs** tem melhor desempenho com arquivos grandes e é amplamente usado em ambientes corporativos. **Posso executar fsck em uma partição montada?** Não. A verificação deve ser feita apenas em partições desmontadas. A exceção é a partição raiz, que pode ser verificada na próxima inicialização com **fsck -f**. **Com que frequência devo verificar o disco com fsck?** É recomendável verificar sempre que houver indícios de problemas, após falhas de energia ou periodicamente — a cada poucos meses em servidores com alta carga. ## 5. Conclusão Os comandos **fdisk**, **mkfs** e **fsck** são fundamentais para o gerenciamento de discos no Linux. Eles permitem preparar o disco para uso, criar sistemas de arquivos e garantir sua confiabilidade. Dominar essas ferramentas é essencial para administradores de sistemas que buscam estabilidade e controle sobre o armazenamento. ## Base de Conhecimento Serverspace [Base de Conhecimento Serverspace](https://serverspace.com.br/support.md) é uma plataforma educacional criada para apoiar desenvolvedores, engenheiros DevOps e administradores de sistemas que trabalham com infraestrutura em nuvem. Ela contém artigos técnicos detalhados, guias passo a passo e materiais de troubleshooting sobre sistemas Linux e Windows. Seja configurando máquinas virtuais, firewalls, containers ou processos de automação — a base oferece instruções práticas com exemplos reais e comandos prontos. Os especialistas da Serverspace atualizam constantemente o conteúdo para acompanhar as tecnologias mais recentes, garantindo acesso a informações atuais e confiáveis. Você encontrará temas como redes, virtualização, monitoramento, scripts shell, gerenciamento de armazenamento, Docker, Kubernetes e muito mais. Cada artigo é escrito em linguagem clara e estruturada, tornando-o útil tanto para iniciantes quanto para profissionais experientes. A Base de Conhecimento não apenas ajuda a resolver problemas técnicos rapidamente, mas também serve como um excelente recurso de aprendizado para aprimorar habilidades em administração de sistemas e ambientes em nuvem. Com centenas de guias e tutoriais de alta qualidade, a Serverspace oferece uma base sólida para dominar ferramentas modernas de TI e construir infraestruturas em nuvem eficientes. https://serverspace.com.br/articles/kubech-gerenciamento-de-contextos-kubectl-para-cada-terminal.md O Kubech permite atribuir contextos e namespace kubectl separadamente para cada terminal. É conveniente gerenciar vários clusters Kubernetes simultaneamente. **Kubech** é uma ferramenta prática para desenvolvedores, profissionais de DevOps e administradores de Kubernetes que permite gerenciar contextos e namespaces do **kubectl** separadamente para cada terminal ou aba. Ele funciona de forma semelhante ao **kubectx** e **kubens**, mas adiciona uma melhoria essencial - os contextos são isolados entre as sessões do shell, tornando o trabalho com vários clusters mais seguro e organizado. **GitHub:** [DevOpsHiveHQ/kubech](https://github.com/DevOpsHiveHQ/kubech) ## Por que usar o Kubech Quando você trabalha com vários clusters Kubernetes (por exemplo, **prod**, **staging** e **dev**), é fácil confundir onde está executando um comando. O **kubectl** padrão usa um contexto global - então, se você muda em um terminal, ele muda em todos os outros. **Kubech** resolve esse problema ao atribuir um contexto e namespace específicos para cada sessão ou aba do terminal. Isso permite trabalhar com vários clusters ao mesmo tempo, sem o risco de excluir recursos no lugar errado. ## Principais recursos - **Isolamento de contexto por terminal** - cada shell tem seu próprio contexto e namespace. - **Troca rápida de contextos e namespaces** - comandos semelhantes aos do **kubectx** e **kubens**. - **Integração com bash/zsh/fish** - compatível com os shells mais populares. - **Indicadores de cor** - o contexto e namespace atuais aparecem no prompt, evitando erros. - **Segurança** - sessões isoladas permitem trabalhar com diferentes ambientes em paralelo sem afetar a configuração global. ## Exemplos de uso ### 1. Alternar entre clusters Altere para o contexto staging: ``` kubech ctx staging ``` Em outro terminal, trabalhe com produção: ``` kubech ctx prod ``` Agora, a primeira aba interage com o cluster de staging e a segunda com o de produção - de forma independente. ### 2. Trabalhar com namespaces Defina o namespace para a sessão atual: ``` kubech ns monitoring ``` Verifique as configurações atuais: ``` kubech status ``` Você pode executar comandos do kubectl e o Kubech aplicará automaticamente o namespace correto apenas nesta sessão. ### 3. Integração com shell O Kubech adiciona indicadores ao prompt, para que você saiba sempre onde está: ``` [staging:monitoring] $ ``` ## Instalação ### 1. Via Homebrew (macOS/Linux) ``` brew install DevOpsHiveHQ/tap/kubech ``` ### 2. A partir do código-fonte ```bash git clone https://github.com/DevOpsHiveHQ/kubech.git cd kubech make install ``` ### 3. Configuração da integração com shell Adicione ao seu **~/.bashrc** ou **~/.zshrc**: ``` eval "$(kubech init)" ``` Após reiniciar o terminal, o Kubech rastreará automaticamente o contexto e o namespace. ## Quando o Kubech é especialmente útil - Ao trabalhar com vários clusters ao mesmo tempo (por exemplo, staging e produção). - Para engenheiros DevOps, administradores e SREs que trocam de ambiente com frequência. - Para evitar erros acidentais relacionados ao contexto global do kubectl. - Em ambientes com múltiplas janelas, como tmux, iTerm, VS Code Terminal, etc. ## Por que experimentar o Kubech - **Segurança:** reduz o risco de executar operações acidentais no cluster errado. - **Flexibilidade:** permite trabalhar com diferentes ambientes simultaneamente. - **Compatibilidade:** suporta todos os shells e plugins populares. - **Simplicidade:** instalação fácil e comandos familiares. ## Perguntas Frequentes (FAQ) - **Posso usar o Kubech junto com kubectx e kubens?** Sim, o Kubech não entra em conflito com eles. Ele apenas adiciona isolamento de contexto por terminal. - **Onde o Kubech armazena suas configurações?** No diretório **~/.kubech**, onde ficam os dados das sessões e contextos atuais. - **O Kubech funciona com tmux e screen?** Sim, cada painel do tmux ou janela do screen tem seu próprio contexto. - **O Kubech suporta fish ou PowerShell?** Sim, há integração também para esses shells. - **O Kubech altera o kubeconfig global?** Não, o Kubech não modifica seu **~/.kube/config**. Todas as mudanças afetam apenas a sessão atual do terminal. - **Posso usar o Kubech em servidores?** Sim, ele é multiplataforma e funciona em Linux, macOS e WSL. ## Conclusão **Kubech** é uma maneira leve e confiável de gerenciar vários clusters Kubernetes simultaneamente. Ele torna o trabalho mais seguro, evita erros de contexto e aumenta a produtividade em ambientes complexos. Se você alterna frequentemente entre diferentes ambientes, o Kubech será seu aliado indispensável. https://serverspace.com.br/articles/flagr-gerenciamento-de-feature-flags-e-testes-a-b-em-aplicativos.md Flagr - plataforma de código aberto para feature flags e testes A/B. Gerencie funções, configurações e experimentos sem redeploy do código. [Flagr](https://github.com/openflagr/flagr) é um serviço open source em Go que ajuda a entregar a experiência certa para o usuário certo e a monitorar os resultados. Ele combina funcionalidades de **feature flags**, **testes A/B** e **configuração dinâmica**, oferecendo uma API REST prática para gerenciar e avaliar flags. ## Por que usar o Flagr Flagr simplifica o processo de implementação e controle de novas funcionalidades em aplicações. Os desenvolvedores podem ativar ou desativar recursos com segurança, conduzir experimentos e analisar seus impactos - sem a necessidade de reiniciar o serviço. - **Feature flags:** controle flexível de funcionalidades sem redeploy; - **Testes A/B:** execução de experimentos e coleta de análises por grupos de usuários; - **Configuração dinâmica:** ajuste de parâmetros da aplicação em tempo real; - **REST API:** interface simples para integração com qualquer linguagem ou sistema. ## Como o Flagr funciona Flagr armazena todos os flags e experimentos em um banco de dados e fornece uma API para avaliá-los. Clientes (aplicações, serviços, microsserviços) solicitam o valor de um flag para um usuário ou contexto específico, e o Flagr retorna a configuração apropriada. ## Exemplo de uso ```bash # Obter o valor de um flag via API curl -X POST "http://localhost:18000/api/v1/evaluation" \ -H "Content-Type: application/json" \ -d '{ "entityID": "user123", "entityType": "user", "flagKey": "new_ui" }' ``` Se o flag **new_ui** estiver ativo para este usuário, a aplicação pode exibir a nova versão da interface. Dessa forma, o Flagr permite testar funcionalidades com segurança e reagir rapidamente aos resultados. ## Onde usar o Flagr - **Em aplicações web e mobile** - para lançar novas funções gradualmente; - **Em arquiteturas de microsserviços** - para controlar o comportamento de serviços individuais; - **Em grandes equipes** - para realizar experimentos de forma segura sem impactar todos os usuários. ## Vantagens - Open source e gratuito para uso; - Suporte a testes A/B, feature toggles e configurações em uma única solução; - Integração simples via REST API; - Documentação detalhada e interface web para gerenciar flags. ## FAQ - **O que é um feature flag?** Um feature flag é um mecanismo que permite ativar ou desativar funcionalidades sem alterar o código. Ele possibilita testar novos recursos de forma segura. - **O Flagr é adequado para produção?** Sim, o Flagr é usado em produção por diversas empresas e oferece escalabilidade horizontal e alta disponibilidade. - **Posso integrar o Flagr com outras linguagens?** Claro! O Flagr fornece uma REST API que pode ser usada por qualquer aplicação - em Python, Go, Java, JavaScript e outras linguagens. - **O Flagr tem interface?** Sim, o Flagr possui uma interface web para gerenciar flags, criar experimentos e acompanhar métricas. - **Como começar rapidamente?** Inicie o Flagr com Docker: ```bash docker run -p 18000:18000 checkr/flagr ``` Após iniciar, a interface estará disponível em **http://localhost:18000**. https://serverspace.com.br/articles/runtime-radar-instalacao-e-configuracao-do-monitoramento-de-seguranca-de-conteineres-no-kubernetes.md Instruções passo a passo para instalar e configurar o Runtime Radar, uma solução aberta para monitorar eventos de segurança e responder a incidentes em ambientes conteinerizados. Saiba como proteger seus clusters Kubernetes na Serverspace com sensores eBPF e gerenciamento centralizado. [Runtime Radar](https://github.com/Runtime-Radar/runtime-radar) é uma solução de software open source para monitorar eventos de segurança em tempo de execução (runtime) e responder a incidentes em ambientes conteinerizados. Ela foi criada para preencher a lacuna entre a verificação de imagens na fase de CI/CD e o comportamento real dos contêineres durante a execução — afinal, algumas ameaças surgem justamente nesse momento: processos de mineração, elevação de privilégios, tráfego de rede inesperado e outros. O projeto é licenciado sob a licença Apache 2.0. ## Por que usar o Runtime Radar ### Principais vantagens - Monitoramento de eventos **durante a execução** dos contêineres: proteção não apenas na fase de build/deploy, mas também em produção. - Gerenciamento centralizado de ambientes multicluster: possibilidade de conectar vários clusters em uma única interface de administração. - Integração com sistemas de segurança e monitoramento existentes: suporte a syslog, SMTP e webhook. - Capacidade de criar suas próprias regras de detecção (assinaturas) em Go por meio do SDK. - Baseado em tecnologias modernas: eBPF + Tetragon (sensor) para rastrear eventos do kernel e dos contêineres. ### Quando é especialmente útil - Se você já possui uma infraestrutura de contêineres (como Kubernetes) e deseja aprimorar a segurança dos contêineres em execução. - Se sua infraestrutura é distribuída entre vários clusters e você precisa de um ponto único de controle. - Se o código aberto, a flexibilidade e a integração com SOC/logs são importantes para você. - Se há restrições orçamentárias ou se você busca uma alternativa a soluções comerciais caras. ## Arquitetura (visão geral) Os principais componentes do Runtime Radar: - **Runtime Monitor**: sensor configurável para coletar eventos de contêineres e do kernel (baseado em Tetragon/eBPF). - **Event Processor**: mecanismo de análise de anomalias (em alguns casos usa módulo WebAssembly). - **Cluster Manager**: módulo que gerencia a conexão de clusters à interface unificada. - **Notifier**: envia eventos para SOC/sistemas de log via syslog/webhook/SMTP. - **UI (interface web)**: visualização de eventos, tratamento de incidentes, filtragem e investigação. Visualmente: sensores nos clusters → eventos → processamento → notificações/interface. ## Pré-requisitos Antes da instalação, verifique se seu ambiente atende aos seguintes requisitos: - Plataforma de contêiner (como Kubernetes) com privilégios administrativos no cluster. - Os nós onde o Runtime Radar será implantado devem suportar eBPF (kernel Linux compatível). - Acesso ao Helm chart ou às imagens Docker do projeto (no repositório GitHub). - (Recomendado) Sistema de logging/monitoramento (como ELK/Elastic, OpenSearch, Loki) para integração. - Em ambientes multicluster — rede e acesso entre clusters e o console de administração devidamente configurados. - Compreensão básica de segurança em tempo de execução (processos, permissões, conexões de rede) será um diferencial. ## Passos de instalação - **Clonar o repositório** ```bash git clone https://github.com/Runtime-Radar/runtime-radar.git cd runtime-radar ``` - **Preparar o Helm chart**Na pasta **install/helm** está o Helm chart para instalação. Se necessário, edite o arquivo **values.yaml** (endereços de integração, namespace, permissões, etc.). Exemplo: ``` helm install runtime-radar ./install/helm -n radar --create-namespace --set notifier.syslog.enabled=true --set notifier.webhook.url=https:// --set clusterManager.enabled=true ``` - **Implantar o sensor nos nós**O sensor deve ser instalado em cada nó de onde se deseja coletar eventos. Certifique-se de que ele está capturando eventos do kernel/contêiner (como criação de processos, alterações de permissão, conexões de rede). - **Configurar regras (Policy / Rules)**Na interface web ou via SDK, você pode ativar políticas prontas ou escrever suas próprias assinaturas em Go. - **Integrar com sistemas de notificação/log**Configure o envio de alertas via syslog, SMTP ou webhook. Escolha templates de mensagens (baseados em Go templates). - **Verificar funcionamento** Abra a interface web; - Verifique se os sensores estão conectados e recebendo eventos; - Realize um teste (ex.: execute um contêiner com comportamento inesperado) e confirme que o evento é detectado e notificado; - Use os filtros e ferramentas de investigação: visualização de processos, relações pai/filho, tipo de evento, etc. - **Instalação multicluster (opcional)**Conecte clusters adicionais via Cluster Manager, conforme a documentação. Isso permite gerenciar todo o ambiente a partir de uma única interface. ## Configuração e operação ### Políticas e regras - Use políticas prontas para um início rápido. - Configure filtros: elimine eventos "barulhentos" e foque em incidentes críticos. - Crie regras próprias via SDK: defina o que é comportamento anômalo em seu ambiente. ### Interface de investigação - Na interface são exibidos eventos com ícones, tipos e relações de processo. - Permite filtrar por cluster, nó, pod ou tipo de sinal. - Nos incidentes, é possível navegar entre o evento e seu contexto (processo pai, filhos), compreendendo a cadeia de ações. ### Integração com SOC/logs - Envie logs para ELK/Opensearch/Loki ou outros sistemas. - Use webhook/SMTP para alertas críticos. - Nos templates (Go-template), inclua campos como timestamp, cluster, pod, processo, regra e severidade. ### Monitoramento de desempenho - Garanta que os sensores coletem eventos sem gerar carga excessiva. - Verifique periodicamente se há ausência de eventos ("silêncio"), o que pode indicar falhas no sensor ou filtros muito restritivos. - Atualize regras conforme mudanças na infraestrutura: novos serviços, contêineres, padrões de comportamento. ## Limitações e pontos de atenção - **Como qualquer sistema de runtime, consome recursos:** sensores podem usar CPU/memória — teste a carga antes do ambiente de produção. - **A interpretação de "anomalias" requer contexto:** o que é normal em um ambiente pode ser suspeito em outro; adapte as regras ao seu cenário. - **Infraestruturas muito distribuídas** podem exigir configurações extras de rede/segurança para conectar à console centralizada. - **Código aberto** — excelente, mas requer equipe disposta a participar da comunidade ou adaptar o projeto às suas necessidades. - **Projeto relativamente novo (lançamento em outubro de 2025)** — o ecossistema ainda pode ser menos maduro que o de soluções comerciais. ## Conclusão A segurança de contêineres não é apenas um conjunto de ferramentas, mas uma mentalidade. O Runtime Radar ajuda a enfrentar o estágio de runtime — onde mora a incerteza real: novos processos, conexões inesperadas, erros de configuração. Não trate o monitoramento como algo burocrático. Escute sua infraestrutura como um organismo — ela também tem "sintomas" que precisam ser percebidos a tempo. Configure alertas que avisem sobre problemas reais sem gerar ruído. E, acima de tudo, faça da segurança parte do ciclo diário de desenvolvimento, não apenas uma reação a incidentes. O Runtime Radar pode ser seu "estetoscópio" de contêineres: silencioso, discreto, mas salvando tempo e nervos quando algo dá errado. ## FAQ - Perguntas frequentes - **1. É possível usar o Runtime Radar sem Kubernetes?** Sim. Embora a integração principal seja com Kubernetes, você pode instalar o sensor em hosts comuns (Docker, Podman). O requisito essencial é o suporte a eBPF no kernel. - **2. O Runtime Radar entra em conflito com outros sistemas de monitoramento (como Falco ou Prometheus)? **Não. Ele opera em paralelo usando hooks eBPF. Porém, se houver muitos instrumentos eBPF ativos, monitore o uso de recursos do kernel. - **3. Com que frequência devo atualizar as regras de segurança? **Recomenda-se revisar as regras ao menos a cada trimestre ou sempre que houver mudanças significativas na infraestrutura (novos microsserviços, atualizações do Kubernetes, políticas de acesso). - **4. E se o sistema gerar muitos falsos positivos? **Use filtros e níveis de prioridade nas configurações. Desative sinais irrelevantes para focar nos críticos. O Runtime Radar permite criar regras personalizadas adequadas ao seu cluster. - **5. O Runtime Radar é adequado para produção? **Sim. Apesar de jovem, o projeto é estável e em rápido desenvolvimento. Teste em um ambiente de staging para avaliar a carga dos sensores antes de colocar em produção. https://serverspace.com.br/articles/squawk-linter-para-migracoes-postgresql-e-sql-como-evitar-bloqueios-e-erros-no-banco-de-dados.md Saiba como usar o Squawk, um poderoso linter para migrações PostgreSQL e arquivos SQL. Verifique se há operações perigosas nas migrações, automatize a análise em CI/CD e proteja o banco de dados contra bloqueios e tempo de inatividade. **Squawk** — é uma ferramenta de análise estática (linter) para arquivos SQL e migrações do PostgreSQL. Ela foi projetada para verificar, durante o desenvolvimento ou no pipeline de CI, migrações e scripts SQL em busca de operações potencialmente perigosas que possam causar bloqueios, tempo de inatividade ou problemas de compatibilidade. A ideia central é simples: muitas alterações de esquema (como adicionar colunas com DEFAULT, renomear, excluir ou criar índices) podem levar a bloqueios longos ou paralisações inesperadas. O **Squawk** ajuda a automatizar a verificação dessas mudanças. ## Onde encontrar o Squawk O projeto **Squawk** é totalmente open-source e está disponível no [GitHub](http://github.com/sbdchd/squawk). O código-fonte, a documentação e os exemplos de configuração estão disponíveis no repositório. Lá você também encontrará versões para diferentes sistemas, imagens Docker, além de integrações com GitHub Actions e exemplos de configuração. ## Por que isso é importante Em ambientes com alta carga, múltiplas versões de aplicativos ou grande volume de transações, é fundamental minimizar o risco de falhas durante migrações de esquema. Por exemplo: - Adicionar uma coluna com **NOT NULL** ou **DEFAULT** pode causar uma varredura completa da tabela e bloqueios. - Criar um índice sem **CONCURRENTLY** pode bloquear gravações na tabela. - Excluir ou renomear uma tabela/coluna pode quebrar a compatibilidade retroativa do aplicativo. Ferramentas como o Squawk ajudam a incorporar "regras de segurança" no processo de migração, prevenindo esses problemas antes que cheguem ao ambiente de produção. ## Principais recursos - Verificação de migrações **.sql** (ou arquivos SQL arbitrários) com base em regras de "antipadrões" de alterações de esquema. - Regras configuráveis: exclusão por arquivos, por regras e definição da versão do PostgreSQL. - Integração com CI/CD e GitHub — por exemplo, como uma GitHub Action que comenta o Pull Request com os resultados da verificação. - Várias opções de instalação: npm, pip, Docker ou binários prontos. ## Instalação e início rápido ### Instalação Exemplos de comando: ```bash npm install -g squawk-cli ``` ou via pip ```bash pip install squawk-cli ``` ou com Docker ```bash docker run --rm -v $(pwd):/data ghcr.io/sbdchd/squawk:latest *.sql ``` ### Verificação rápida Suponha que você tenha um arquivo **example-migration.sql**: ``` BEGIN; ALTER TABLE table_name ADD CONSTRAINT field_name_constraint UNIQUE (field_name); COMMIT; ``` Execução: ``` squawk example-migration.sql ``` Saída possível: ``` warning[constraint-missing-not-valid]: By default new constraints require a table scan and block writes to the table while that scan occurs. ... Found 2 issues in 1 file (checked 1 source file) ``` ### Opções CLI e configuração Entre as opções estão: - --config, -c — especificar o arquivo de configuração (.squawk.toml) - --exclude-path — excluir arquivos - --exclude — excluir regras específicas - --pg-version — definir a versão do PostgreSQL - --assume-in-transaction / --no-assume-in-transaction — indicar se a migração é executada dentro de uma transação Exemplo de **.squawk.toml**: ``` pg_version = "11.0" excluded_rules = [ "require-concurrent-index-creation", "require-concurrent-index-deletion", ] assume_in_transaction = true excluded_paths = [ "005_user_ids.sql", "*user_ids.sql", ] ``` ## Integração ao fluxo de trabalho ### Pre-commit / Git workflow Adicione o Squawk como hook no arquivo **.pre-commit-config.yaml**: ``` repos: - repo: https://github.com/sbdchd/squawk rev: v0.10.0 hooks: - id: squawk files: path/to/postgres/migrations/**/*.sql ``` ### CI/CD e Pull Request Você pode usar a GitHub Action oficial: ```yaml # .github/workflows/lint-migrations.yml name: Lint Migrations on: pull_request jobs: lint_migrations: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: sbdchd/squawk-action@v2 with: pattern: "migrations/*.sql" version: "latest" ``` ## Regras (Rules) O Squawk inclui várias regras integradas que ajudam a manter migrações seguras, como: - **prefer-bigint-over-int** — use bigint em vez de int. - **prefer-identity** — prefira GENERATED BY DEFAULT AS IDENTITY em vez de serial. - **disallowed-unique-constraint** — impede UNIQUE que causa bloqueios de tabela. - **require-concurrent-index-creation** — exige CREATE INDEX CONCURRENTLY. - **adding-field-with-default** — alerta sobre colunas com DEFAULT ou NOT NULL em tabelas grandes. ## FAQ - **O que o Squawk verifica?** Ele analisa arquivos SQL e migrações, identificando alterações arriscadas que podem causar bloqueios, como criação de índices sem CONCURRENTLY ou remoção de colunas. - **Posso usar com outro banco além do PostgreSQL?** Não, o Squawk é feito exclusivamente para o PostgreSQL. - **Funciona em Windows?** Sim, ele funciona no Windows, macOS e Linux — com instalação via npm, pip ou Docker. ## Conclusão **Squawk** é como um revisor cuidadoso, sempre de olho na integridade do seu banco de dados. Ele ajuda a evitar migrações perigosas e bloqueios inesperados, tornando seus deploys mais seguros e previsíveis. Se você trabalha com PostgreSQL e realiza migrações com frequência — adote o Squawk no seu pipeline. Ele se paga rapidamente, evitando horas de rollback e recuperação. ## Sobre a Base de Conhecimento Serverspace A **Base de Conhecimento Serverspace** é um guia prático para desenvolvedores, administradores de sistemas e engenheiros DevOps. Aqui você encontra tutoriais passo a passo, revisões de ferramentas e guias práticos sobre CI/CD, contêineres, bancos de dados, segurança e automação de infraestrutura. Nosso objetivo é ajudar profissionais a simplificar processos, reduzir o tempo de configuração e tornar o trabalho com servidores mais seguro e eficiente. https://serverspace.com.br/about/blog/sql-e-nosql-qual-escolher-e-quando.md Entenda as diferenças entre bancos de dados SQL e NoSQL. Descubra quando escolher cada modelo, suas vantagens, limitações e exemplos práticos de uso para empresas. Hoje praticamente qualquer negócio trabalha com dados. Podem ser pedidos de um e-commerce, perfis de usuários em um aplicativo, transações financeiras ou dados de sensores IoT. Para armazenar, processar e localizar rapidamente as informações necessárias, as empresas utilizam bancos de dados. Mas os bancos não são todos iguais. Durante décadas, o padrão foram os bancos de dados relacionais (SQL), onde tudo é armazenado em tabelas com linhas e relações entre elas. No entanto, com o crescimento do volume de informações e o surgimento de serviços digitais mais flexíveis, surgiu um novo modelo — o NoSQL, que trabalha com documentos, chaves e grafos, permitindo escalar horizontalmente e se adaptar mais rapidamente às mudanças. A escolha entre SQL e NoSQL não é apenas um detalhe técnico. Ela determina quão conveniente será para a empresa trabalhar com os dados: o que será mais rápido, barato e simples de manter. Neste artigo, vamos entender como SQL e NoSQL se diferenciam, em quais cenários cada um se destaca e como escolher a opção ideal para o seu negócio. ## O que são bancos de dados SQL SQL (Structured Query Language) refere-se a bancos de dados relacionais, que armazenam informações em tabelas. Cada tabela possui linhas (registros) e colunas (campos), e é possível criar relações entre diferentes tabelas. Esse modelo garante ordem e uma estrutura rigorosa. Os bancos SQL surgiram na década de 1970 e se tornaram padrão no mundo corporativo. Eles são ideais para trabalhar com informações organizadas, onde precisão, relações lógicas e confiabilidade são essenciais. **Exemplos de uso do SQL:** - **Sistemas financeiros** — transações bancárias precisam ser registradas com precisão e nunca podem ser perdidas. - **E-commerce** — armazenamento de pedidos, dados de clientes e catálogos de produtos. - **CRM e ERP** — gestão de clientes, documentos e controle de recursos. **Vantagens do SQL:** - Estrutura de dados rígida e suporte a transações (ACID). - Facilidade na análise e na escrita de consultas. - Ecossistema rico de ferramentas e profissionais. - Excelente para relatórios, análises e consultas complexas. **Limitações do SQL:** - Escalabilidade horizontal (vários servidores) é mais difícil. - Menor flexibilidade: adicionar novos tipos de dados exige schema planejado. - Com aumento súbito de carga, a infraestrutura pode ficar cara. ## O que são bancos de dados NoSQL NoSQL (Not Only SQL) é o termo para bancos de dados não relacionais. Diferente do SQL, não exigem esquema rígido de tabelas e permitem armazenar dados em formatos variados: documentos (JSON), pares chave-valor, grafos ou colunas. O NoSQL surgiu como resposta ao crescimento exponencial de dados e às novas demandas de negócios: redes sociais, serviços de streaming, jogos online e análises em tempo real. Quando milhões de usuários geram informações a cada segundo, os modelos relacionais tradicionais podem se tornar lentos. **Exemplos de uso do NoSQL:** - **Redes sociais e mensageiros** — armazenamento de mensagens, curtidas e conexões de forma flexível. - **Streaming e multimídia** — processamento de grandes volumes de dados em tempo real. - **Big Data e análises** — coleta e análise rápida de informações diversas. - **IoT** — sensores e dispositivos enviam milhões de eventos, que são mais fáceis de armazenar sem schema rígido. **Vantagens do NoSQL:** - Flexibilidade: é possível armazenar diferentes tipos de dados sem schema fixo. - Fácil escalabilidade horizontal — ideal para cargas crescentes. - Alta performance em cenários com muitas operações de leitura/escrita. - Excelente para serviços dinâmicos e inovadores. **Limitações do NoSQL:** - Não há suporte pleno a transações no sentido clássico (embora haja mecanismos BASE). - Menos padronização: os bancos podem variar bastante entre si. - Consultas analíticas complexas podem ser mais difíceis que no SQL. ## Comparação SQL vs NoSQL | Critério | SQL | NoSQL | | --- | --- | --- | | Estrutura de dados | Tabelas com linhas e colunas, schema rígido | Documentos, chave-valor, grafos, colunas, estrutura flexível | | Transações e confiabilidade | Suporte completo a ACID (alta confiabilidade) | Modelo BASE (eventual consistency), menor rigidez | | Escalabilidade | Vertical (reforço de um único servidor) | Horizontal (adicionar novos servidores facilmente) | | Flexibilidade | Estrutura rígida, mudanças exigem migração de schema | Alta flexibilidade, novos tipos de dados sem migração | | Performance | Excelente para consultas complexas e relações | Alta velocidade em operações massivas de leitura/escrita | | Administração | Ecossistema maduro, muitos profissionais disponíveis | Exige conhecimentos específicos da solução | | Exemplos de uso | Bancos, e-commerce, CRM, ERP | Redes sociais, Big Data, IoT, streaming | ## Como escolher: SQL ou NoSQL? A escolha entre SQL e NoSQL não deve ser baseada em modismos, mas nas necessidades do negócio. Ambos os modelos são eficientes quando aplicados no cenário adequado. **Quando escolher SQL:** - Os dados são altamente estruturados e relacionados (ex.: transações, pedidos, contabilidade). - A precisão e a confiabilidade são críticas (bancos, finanças, sistemas médicos). - Há necessidade de consultas analíticas complexas e relatórios detalhados. **Quando escolher NoSQL:** - O projeto lida com grandes volumes de dados dinâmicos (redes sociais, plataformas de streaming, IoT). - É fundamental ter alta velocidade de leitura e escrita sob grandes cargas. - A estrutura dos dados é variada ou muda com frequência (JSON, multimídia, grafos). ## Trabalhando com bancos de dados no Serverspace Na nuvem do Serverspace é possível implantar [bancos de dados](https://serverspace.com.br/solutions/banco-de-dados-na-nuvem.md) em poucos cliques. Para projetos clássicos, existem [aplicativos 1-click](https://serverspace.com.br/services/1-click-app-marketplace.md), como [MySQL](https://serverspace.com.br/services/1-click-app-marketplace/mysql.md) e [PostgreSQL](https://serverspace.com.br/services/1-click-app-marketplace/postgresql.md), considerados referências em soluções SQL. Eles são ideais para e-commerce, CRM, serviços financeiros e outros casos que exigem estrutura clara e confiabilidade transacional. Se a necessidade for NoSQL, é possível alugar um servidor virtual no Serverspace e instalar o sistema de sua preferência — seja MongoDB, Redis, Cassandra ou outra opção. Esse modelo garante flexibilidade: você escolhe exatamente a base que melhor atende ao seu projeto. Além disso, os serviços são tarifados por hora, e o escalonamento leva apenas alguns minutos, tornando a plataforma conveniente tanto para testes e pilotos quanto para cargas reais em produção. ## Conclusão SQL e NoSQL não são concorrentes, mas ferramentas para diferentes cenários. SQL garante estabilidade, estrutura rígida e confiabilidade transacional — ideal para sistemas financeiros, aplicativos corporativos e e-commerce. NoSQL oferece flexibilidade e escalabilidade, possibilitando lidar com enormes volumes de dados em tempo real — a escolha para redes sociais, streaming, IoT e Big Data. O essencial é não escolher "por hábito" ou "porque está na moda", mas com base nas necessidades do negócio. Em muitos casos, a solução ideal pode ser combinar os dois: SQL para dados críticos e NoSQL para operações dinâmicas e massivas. ## FAQ - **Qual a diferença entre SQL e NoSQL em palavras simples?** SQL armazena dados em tabelas com estrutura fixa. NoSQL guarda informações em formatos mais livres (documentos, chaves, grafos), sendo mais flexível para diferentes tipos de dados. - **Qual banco é mais rápido?** SQL é mais eficiente para consultas analíticas complexas e relacionamentos. NoSQL se destaca em operações massivas de leitura e escrita. - **Posso usar SQL e NoSQL juntos?** Sim, muitos projetos combinam as duas abordagens: SQL para transações e NoSQL para análise de grandes volumes de dados. - **Qual é mais barato para empresas: SQL ou NoSQL?** Depende da carga. SQL tende a ser mais econômico em cenários estáveis e estruturados. NoSQL se torna vantajoso em fluxos massivos e dinâmicos de informações. https://serverspace.com.br/about/blog/waf-protecao-que-todo-site-precisa.md Ative o WAF da Serverspace e proteja seu site contra SQL injections, XSS e ataques a APIs. Configuração rápida, cobrança transparente e integração com CDN. As aplicações web se tornaram o centro dos negócios modernos. É por meio delas que passam pedidos, pagamentos, cadastros de usuários, armazenamento de dados e até comunicações internas. Quanto mais valioso o serviço, mais ele se torna alvo de ataques. Os ataques DDoS já não são a principal ameaça aos sites. Hoje, métodos como SQL injections, XSS, ataques a APIs e força bruta são muito mais comuns. Essas técnicas permitem obter acesso a dados ou quebrar a lógica da aplicação de forma silenciosa, e sua escala é garantida pela automação — bots escaneiam milhares de sites em minutos e encontram vulnerabilidades. ## O que é WAF O WAF (Web Application Firewall) é um filtro que fica entre o usuário e a aplicação. Ele analisa o tráfego HTTP(S) e decide: permitir ou bloquear a requisição. Diferente de um firewall de rede, que lida apenas com portas e endereços, o WAF "entende" a estrutura das requisições web. Por exemplo: - No campo de busca, em vez de texto, é inserido código SQL. - No formulário de login, chegam centenas de tentativas de senha por segundo. Em ambos os casos, o WAF intercepta e bloqueia antes mesmo que chegue ao banco ou à aplicação. ## Quais ataques o WAF bloqueia O WAF protege contra as ameaças mais comuns exploradas por hackers: - **SQL injections** — tentativas de inserir código malicioso em consultas ao banco de dados. - **XSS (cross-site scripting)** — scripts que roubam dados dos usuários ou alteram o conteúdo exibido. - **Brute force e sequestro de sessão** — tentativas de adivinhar senhas ou capturar tokens de usuário. - **Ataques a APIs** — sobrecarga ou exploração de falhas nos pontos de integração. - **DDoS em nível de aplicação** — milhares de requisições mirando a lógica do site. - **Exploração de CMS/frameworks** — uso de falhas conhecidas em sistemas e bibliotecas populares. Assim, o WAF bloqueia a maioria das tentativas de invasão antes que atinjam o servidor. ## Como funciona o WAF A proteção é formada por camadas: - **Análise por assinatura** — identifica padrões de ataques já conhecidos. - **Análise comportamental** — detecta atividades atípicas, como múltiplas tentativas de login por segundo. - **Machine learning** — aprende o perfil do tráfego e reduz falsos positivos. - **Inspeção em tempo real** — bloqueia requisições maliciosas antes de chegarem ao servidor. ## Com e sem WAF: comparação | Situação | Sem WAF | Com WAF | | --- | --- | --- | | SQL injection | Código malicioso atinge o banco de dados | Requisição bloqueada imediatamente | | XSS | Script rouba cookies do usuário | Código suspeito filtrado | | Força bruta | Senhas testadas sem limite | IP bloqueado na atividade suspeita | | Ataques a API | Serviço sobrecarregado | Requisições anômalas barradas | | DDoS em aplicação | Site cai, perdas financeiras | Tráfego malicioso filtrado | | Vulnerabilidades CMS/API | Exploit funciona antes de patch | Ataques comuns bloqueados antecipadamente | ## Estatísticas no Brasil E o cenário brasileiro? Os números mostram a urgência da proteção: - Segundo a Fortinet Brasil, o país sofreu mais de 100 bilhões de tentativas de ciberataques em 2023, grande parte mirando aplicações web. - Um relatório da Kaspersky aponta que 37% das empresas brasileiras enfrentaram ataques de SQL injection ou XSS no último ano. - O Comitê Gestor da Internet no Brasil (CGI.br) registrou que os ataques a APIs crescem ano a ano, acompanhando o aumento do uso de integrações no e-commerce e fintechs. Esses dados deixam claro: WAF não é luxo, é necessidade diária. ## Por que isso é importante agora Muitas empresas brasileiras ainda dependem de soluções internacionais como Cloudflare, mas custos em dólar, instabilidade de integração local e dependência de infraestrutura externa criam riscos e barreiras. Hoje, o padrão é a combinação: - [CDN](https://serverspace.com.br/services/cdn.md) acelera a entrega de conteúdo e reduz a carga do servidor. - [WAF](https://serverspace.com.br/services/waf.md) filtra ameaças e protege aplicações. O WAF + CDN da Serverspace entrega essa proteção com infraestrutura local, faturamento transparente e suporte em português — acessível e confiável para empresas brasileiras. ## Erros comuns ao adotar WAF - Usar apenas as configurações padrão, sem adaptar ao projeto. - Achar que WAF resolve tudo (ele não substitui updates de CMS nem segurança de banco). - Ignorar os logs — eles mostram quais ataques estão acontecendo. - Não atualizar regras — proteção desatualizada = proteção fraca. - Ativar direto em modo bloqueio — o ideal é começar em modo de monitoramento. ## O que o negócio ganha com WAF - Redução de riscos de vazamentos e indisponibilidade. - Conformidade com normas como PCI DSS. - Economia de tempo da equipe técnica. - Integração fácil com CDN ou uso independente. O WAF é um elemento essencial da segurança de aplicações web. Ele cobre os vetores de ataque mais comuns, ajuda a atender requisitos regulatórios e mantém a confiança do usuário. Em conjunto com a CDN, garante sites rápidos, estáveis e protegidos — o que é crítico para o mercado brasileiro. Na Serverspace, você pode ativar WAF e CDN em poucos minutos pelo painel de controle. https://serverspace.com.br/about/news/lancamos-o-web-application-firewall-waf.md Temos um novo serviço para proteger aplicações web — o Web Application Firewall (WAF). Ele está disponível no painel de controle, na seção CDN, complementa a aceleração de conteúdo e filtra o tráfego malicioso. Temos um novo serviço para proteger aplicações web — o [Web Application Firewall (WAF)](https://serverspace.com.br/services/waf.md). Ele está disponível no painel de controle, na seção CDN, e complementa a aceleração de conteúdo com a capacidade de filtrar tráfego malicioso. De acordo com o relatório [Akamai State of Apps and API Security 2025](https://www.akamai.com/lp/soti/app-api-ai-security-report-2025), o número de ataques a aplicações web e APIs cresceu 33% em 2025 e ultrapassou 311 bilhões de incidentes. O foco dos ataques continua sendo vulnerabilidades clássicas: SQL injections, XSS, CSRF e outras ameaças do OWASP Top-10. Agora, a Serverspace cobre duas necessidades principais das aplicações web: aceleração via CDN e proteção contra ameaças comuns com WAF. A ativação leva apenas alguns minutos e não exige configuração complexa: imediatamente após habilitar, o tráfego passa por regras de filtragem prontas, reduzindo a carga no servidor e bloqueando requisições suspeitas. ## Principais recursos do WAF - Proteção contra ataques do **OWASP Top-10** (SQL injections, XSS, CSRF etc.). - Filtragem de tráfego malicioso antes de atingir o servidor, reduzindo a carga na infraestrutura. - Configuração flexível de regras para cada projeto e seu padrão de tráfego. ## Como funciona - Ative a CDN no [painel de controle](https://my.serverspace.com.br/) da Serverspace. - Habilite o [WAF](https://serverspace.com.br/services/waf.md) na seção CDN — sem necessidade de software adicional ou configurações avançadas. - O tráfego começará a passar pelas regras de filtragem, bloqueando requisições maliciosas. A tarifação é transparente: a cobrança ocorre a cada **10.000 requisições** processadas. _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem global que oferece implantação instantânea de infraestrutura virtual com Linux, Windows e sistemas operacionais russos — de qualquer lugar do mundo, em menos de 1 minuto. Para integrar seus serviços, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/comparacao-de-arquiteturas-de-nuvem-monolito-microsservicos-e-serverless.md Descubra as diferenças entre monolito, microsserviços e serverless, seus prós e contras, e quando escolher cada arquitetura para seu negócio A escolha da arquitetura certa para um aplicativo web ou infraestrutura na nuvem pode desempenhar um papel crucial no sucesso de um projeto. A arquitetura define como o sistema vai se desenvolver, quão fácil será escalá-lo, quais recursos serão necessários para mantê-lo e quanto tempo levará para o desenvolvimento. Neste artigo, vamos explorar os três abordagens arquitetônicas mais populares: monolítica, microsserviços e serverless. Cada uma tem suas vantagens e limitações, e a escolha certa depende das características do negócio e dos objetivos do projeto. A abordagem monolítica é ideal para startups e pequenos projetos, onde a rapidez de implementação e a simplicidade são essenciais. Os microsserviços são a escolha para empresas de médio e grande porte, que precisam de flexibilidade e escalabilidade. O serverless, por sua vez, oferece a maior velocidade de implantação e economia para tarefas com carga variável, mas impõe suas limitações. Vamos analisar quando usar cada uma dessas abordagens, além de oferecer exemplos práticos e dicas para escolher a arquitetura certa de acordo com as necessidades do seu negócio. ## Arquitetura Monolítica A arquitetura monolítica é uma abordagem na qual todos os componentes de um aplicativo (ou site) estão agrupados em um único bloco e todas as partes interagem entre si através de chamadas internas. Nesta arquitetura, o código, o banco de dados e a interface estão todos integrados, e não é necessário dividir a lógica em microsserviços. Vantagens da Arquitetura Monolítica - **Desenvolvimento rápido:** Para startups e MVPs (produtos minimamente viáveis), a arquitetura monolítica é a escolha ideal. Todos os componentes estão em um único aplicativo, permitindo desenvolver e testar funcionalidades mais rapidamente. - **Simplicidade:** O processo de implantação e configuração é mais simples, pois não é necessário sincronizar múltiplos serviços. - **Menos carga de DevOps:** Como o aplicativo funciona como um único bloco, a comunicação de rede e o gerenciamento de dependências são simplificados. Limitações da Arquitetura Monolítica - **Escalabilidade:** Com o aumento da carga no aplicativo, a expansão do monolito pode se tornar difícil e cara. A escalabilidade é feita verticalmente (adicionando poder a um único servidor), o que rapidamente atinge os limites. - **Dificuldades de manutenção:** À medida que o sistema cresce, torna-se mais difícil mantê-lo em um único bloco de código. Isso se torna um problema quando se introduzem novas tecnologias ou quando se amplia a funcionalidade. - **Dependência dos componentes:** No monólito, mudanças em uma parte do sistema podem impactar outras partes do aplicativo, dificultando testes e implementações de novas funcionalidades. Quando Usar a Arquitetura Monolítica? A arquitetura monolítica é adequada para pequenos projetos, startups e MVPs, quando: - É necessário um lançamento rápido com recursos limitados. - O aplicativo não está planejado para ser expandido e escalado imediatamente. - O projeto não exige complexa segregação de funcionalidades e pode funcionar como um aplicativo único. **Exemplo:** Se você está lançando um site simples ou uma plataforma de e-commerce, o monólito pode ser a escolha certa para começar. Ele permite reunir funcionalidades básicas rapidamente, testar a ideia de negócios e construir a primeira base de usuários. ## Arquitetura de Microsserviços A arquitetura de microsserviços é uma abordagem na qual o aplicativo é dividido em serviços independentes, cada um responsável por uma tarefa ou função de negócios específica. Esses serviços podem se comunicar entre si através de APIs e troca de dados, mas funcionam de maneira independente, o que facilita o escalonamento e as atualizações. Vantagens da Arquitetura de Microsserviços - **Flexibilidade e escalabilidade:** Microsserviços permitem escalar o aplicativo por partes. Cada serviço pode ser implantado e escalado de forma independente, o que é particularmente útil para aplicativos de grande porte com tráfego intenso. - **Flexibilidade nas tecnologias:** Cada microsserviço pode ser desenvolvido usando diferentes tecnologias e linguagens de programação, o que oferece maior flexibilidade na escolha de ferramentas para diferentes partes do sistema. - **Melhor manutenção e atualizações:** Microsserviços permitem atualizar partes do aplicativo sem precisar reiniciar o sistema todo. Isso facilita a implementação de novas funcionalidades e a correção de erros sem longos períodos de inatividade. - **Independência das equipes:** A divisão em microsserviços permite que equipes diferentes trabalhem em componentes distintos do aplicativo, acelerando o desenvolvimento e melhorando o processo de testes. Limitações da Arquitetura de Microsserviços - **Complexidade de desenvolvimento e gerenciamento:** Gerenciar múltiplos serviços independentes pode se tornar uma tarefa complexa, especialmente se o número de serviços for grande. Isso exige boas ferramentas de monitoramento e gerenciamento (como o Kubernetes). - **Atrasos de rede:** Microsserviços frequentemente se comunicam via rede, o que adiciona latência na manipulação de solicitações e aumenta a carga na infraestrutura. - **Custos elevados de infraestrutura:** É necessário monitorar e gerenciar cada microsserviço separadamente. Isso exige mais recursos para DevOps e infraestrutura. Quando Usar Microsserviços? A arquitetura de microsserviços é ideal para aplicativos grandes, onde flexibilidade e escalabilidade são essenciais. Isso pode ser útil quando: - O aplicativo cresce e se desenvolve em diferentes direções. - Há necessidade de escalar partes do aplicativo à medida que a carga aumenta. - Requer-se independência e segregação de funcionalidades para diferentes equipes de desenvolvimento. **Exemplo:** Plataformas de e-commerce grandes ou sistemas com atualizações constantes (como redes sociais ou serviços financeiros) podem se beneficiar da arquitetura de microsserviços, pois ela permite dividir componentes complexos em partes independentes e escalá-las conforme necessário. ## Arquitetura Serverless Serverless (ou arquitetura "sem servidor") é uma abordagem onde os desenvolvedores não gerenciam servidores diretamente. Em vez disso, o código é executado como funções independentes, que são disparadas por eventos, e toda a infraestrutura é gerida pelo provedor de nuvem. Isso elimina a necessidade de alocar servidores e escalar manualmente a infraestrutura. Vantagens da Arquitetura Serverless - **Escalabilidade sem esforço:** Na arquitetura serverless, os servidores são automaticamente escalados conforme a carga. Você paga apenas pela execução das funções, o que pode reduzir consideravelmente os custos. - **Implantação rápida e desenvolvimento:** As funções podem ser desenvolvidas e lançadas instantaneamente, sem a necessidade de configurar servidores. Isso é ideal para startups e equipes que desejam colocar um produto no mercado rapidamente. - **Flexibilidade e simplificação da administração:** Como você não precisa gerenciar servidores, pode se concentrar exclusivamente na lógica de negócios e funcionalidades, sem se preocupar com a manutenção da infraestrutura. - **Pagamento por uso:** Você paga apenas pelo tempo de execução das funções, o que torna esse modelo vantajoso para projetos com carga variável, como startups ou aplicativos com tráfego irregular. Limitações da Arquitetura Serverless - **Atrasos de inicialização (cold start):** Quando uma função não é usada por um tempo, ao ser chamada novamente, pode haver um atraso de inicialização (cold start), pois a função precisa ser implantada novamente. - **Menos flexibilidade no gerenciamento:** Como o ambiente do servidor está oculto, pode haver limitações nas configurações e no gerenciamento das funções. - **Dependência do provedor de nuvem:** Toda a infraestrutura depende de um único provedor, o que pode ser um problema caso haja a necessidade de migração ou escalabilidade. - **Limitações de tempo de execução:** Muitos provedores impõem limites no tempo de execução de funções (por exemplo, 5 minutos), o que pode ser um problema para cálculos longos. Quando Usar Serverless? Serverless é ideal para projetos que exigem rápida implantação, escalabilidade e flexibilidade. É uma escolha excelente para: - Projetos pequenos e startups, que não querem perder tempo configurando servidores. - Aplicativos baseados em eventos, como processamento de imagens, chatbots e webhooks. - Aplicativos com carga variável, como sistemas de notificações ou funções acionadas por triggers. **Exemplo:** Funções para processamento de dados de dispositivos IoT, como atualização de dados em tempo real ou processamento de solicitações via API, são frequentemente implementadas com serverless, pois exigem flexibilidade, baixos custos e escalabilidade instantânea. ## Comparação das Arquiteturas Monolítica, Microsserviços e Serverless | Critério | Monolítico | Microsserviços | Serverless | | --- | --- | --- | --- | | Velocidade de Desenvolvimento | Desenvolvimento rápido, um único projeto | Maior tempo para configuração e desenvolvimento | Implantação e execução muito rápidas | | Escalabilidade | Escalabilidade vertical | Escalabilidade horizontal | Escalabilidade automática, conforme necessário | | Flexibilidade | Flexibilidade limitada | Alta flexibilidade, escolha de tecnologias | Alta flexibilidade, mas limitada por tipos de função | | Gerenciamento de Infraestrutura | Gerenciamento simples | Exige mais esforços para gerenciar e monitorar | Nenhuma necessidade de gerenciar infraestrutura | | Dificuldade de Administração | Baixa, mais fácil de controlar | Alta, necessita monitoramento de múltiplos serviços | Muito baixa, gerenciamento 100% do provedor | | Exemplo de Uso | Sites simples, projetos pequenos | Sistemas grandes e complexos, com requisitos dinâmicos | Aplicativos com carga variável, chatbots, notificações | ## Como a Serverspace ajuda na escolha da arquitetura Serverspace oferece soluções em nuvem flexíveis, adequadas para todas as arquiteturas: monolítica, microsserviços e serverless. A plataforma fornece poderosas ferramentas e recursos para o desenvolvimento e escalabilidade de projetos de qualquer porte, com possibilidade de configuração rápida e implantação. Vantagens da Serverspace para diferentes arquiteturas - **Monolítica:** para aplicativos monolíticos, Serverspace oferece [servidores VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) com implantação rápida em SSD e cobrança por hora. Ideal para startups e pequenos projetos que precisam começar rapidamente e minimizar os custos com infraestrutura. - **Microsserviços:** para microsserviços, Serverspace oferece suporte ao Kubernetes para automatização de implantação, escalabilidade e gerenciamento de contêineres. Isso permite dividir componentes do aplicativo de forma fácil e garantir alta disponibilidade, balanceamento de carga e segurança. - **Serverless:** embora a Serverspace não forneça suporte direto ao serverless, é possível usar serviços em nuvem para executar soluções serverless com servidores virtuais. Para esses projetos, é possível integrar serviços externos para funções sob demanda. ## Características principais da Serverspace: - **Flexibilidade e escalabilidade:** fácil escalabilidade de recursos conforme o aumento da carga. Painel de controle intuitivo para monitoramento e configuração dos [servidores](https://serverspace.com.br/services/cloud-servers.md). - **Cobrança transparente:** pague apenas pelos recursos usados, otimizando os custos operacionais. - **Alta disponibilidade:** Serverspace possui datacenters ao redor do mundo, o que reduz a latência e garante o funcionamento contínuo do aplicativo. - **Ferramentas de segurança:** possibilidade de integração com [WAF](https://serverspace.com.br/services/waf.md) e [CDN](https://serverspace.com.br/services/cdn.md) para proteção e aceleração do site. Serverspace oferece tudo isso em uma plataforma, permitindo que você implemente rapidamente qualquer arquitetura e maximize a eficiência e a confiabilidade do seu site. ## Conclusão A escolha da arquitetura certa para o aplicativo é uma tarefa fundamental para qualquer empresa que busca escalabilidade, flexibilidade e estabilidade. Cada arquitetura — monolítica, microsserviços e serverless — tem seus pontos fortes e fracos, e a escolha depende do tamanho do projeto, dos requisitos e dos objetivos. A arquitetura monolítica é ideal para startups e pequenos projetos com recursos limitados. A arquitetura de microsserviços é perfeita para grandes e complexos sistemas, que exigem flexibilidade e escalabilidade. O serverless é a melhor escolha para aplicativos com carga variável, que necessitam de alta velocidade de implantação e economia de custos. Com as ferramentas e tecnologias certas, como o VPS da Serverspace para aplicativos monolíticos ou Kubernetes para microsserviços, é possível aumentar significativamente o desempenho e reduzir os custos com infraestrutura. ### Qual arquitetura é melhor para startups? A arquitetura monolítica é ideal para startups, pois permite um lançamento rápido com recursos limitados. Você pode sempre mudar para microsserviços à medida que o crescimento ocorre. ### É possível usar microsserviços com um aplicativo monolítico? Sim, muitas empresas começam com monólitos e depois adicionam microsserviços conforme o crescimento. Essa abordagem híbrida permite uma transição suave para uma arquitetura mais complexa. ### O que é melhor para um grande e-commerce: monolito ou microsserviços? Para plataformas de e-commerce grandes e com alta carga, a arquitetura de microsserviços é preferível, pois permite escalar partes específicas do sistema de forma flexível. ### O serverless é adequado para aplicativos de alta carga? O serverless pode ser bom para aplicativos com carga variável, mas para cargas contínuas altas, é melhor optar por outras arquiteturas, como microsserviços ou monolito. É importante considerar os problemas com cold start e o tempo de execução limitado das funções. https://serverspace.com.br/about/blog/quais-sao-os-tipos-de-enderecos-ip-estatico-dinamico-publico-privado.md Descubra as diferenças entre IPs estático, dinâmico, público e privado e como escolher o ideal. O endereço IP é um identificador único de um dispositivo na rede, permitindo que computadores, servidores e outros dispositivos troquem dados. Compreender os diferentes tipos de IP é importante tanto para empresas quanto para usuários comuns, pois isso afeta a disponibilidade dos serviços, a segurança e a facilidade de uso da rede. Existem vários tipos principais de IP: estático e dinâmico, bem como interno (privado) e externo (público). Cada um possui suas características, vantagens e limitações. A escolha do tipo correto de IP depende das necessidades específicas: é necessário acesso constante a um servidor, flexibilidade na rede, segurança aprimorada ou apenas conectar-se à internet sem configurações complexas. Neste artigo, analisaremos detalhadamente as diferenças entre os tipos de IP, apresentaremos exemplos práticos e daremos dicas para escolher a solução ideal para negócios e projetos pessoais. ## IP Estático O IP estático é um endereço de rede fixo, atribuído a um dispositivo ou servidor, que não muda com o tempo. Ele é usado para identificar o dispositivo na rede e permite que outros dispositivos ou clientes se conectem a ele pelo mesmo endereço de forma contínua. **Aspectos técnicos:** - O endereço é configurado manualmente nas configurações do dispositivo ou do servidor. - Não depende de um servidor DHCP e não muda após reinicializações ou reconexões. - Pode ser externo (público) para acesso pela internet ou interno (privado) para redes locais. - Garante previsibilidade na roteabilização e simplifica a configuração de DNS, NAT e regras de rede. **Vantagens do IP Estático:** - Acesso constante: ideal para servidores web, servidores de e-mail, VPNs e outros serviços que exigem conexão estável. - Facilidade de acesso remoto: permite conectar-se ao servidor pelo mesmo endereço sem verificar o IP atual. - Integração com rede corporativa: simplifica a configuração de roteamento, firewall e regras de segurança. **Desvantagens do IP Estático:** - Menos flexível: alterar o endereço requer reconfiguração manual. - Custo: alguns provedores cobram IP estático separadamente. - Potencial vulnerabilidade: endereço fixo é mais fácil de rastrear e atacar. ## IP Dinâmico O IP dinâmico é um endereço que é atribuído automaticamente a um dispositivo ao conectar-se à rede e pode mudar ao longo do tempo. Diferente do IP estático, ele não é fixo para o dispositivo e é fornecido por um período limitado. Este método permite o uso eficiente de um pool limitado de endereços IP e facilita a gestão da rede. Para a distribuição de IPs dinâmicos, utiliza-se o servidor DHCP (Dynamic Host Configuration Protocol), que automaticamente fornece IP, máscara de sub-rede, gateway e DNS aos dispositivos. Ao se conectar, o dispositivo solicita um IP, e o servidor DHCP atribui um disponível do pool. Na próxima conexão, o endereço pode mudar. **Aspectos técnicos:** - O IP é atribuído por um período limitado (lease). - Permite configuração automática sem intervenção manual. - Pode ser externo (internet) ou interno (rede local). - Facilita a gestão de endereços em grandes redes. **Vantagens do IP Dinâmico:** - Facilidade de gerenciamento: dispositivos recebem IP automaticamente. - Economia de endereços: um pool de IPs pode atender muitos dispositivos. - Flexibilidade: útil para notebooks, dispositivos móveis e conexões temporárias. **Desvantagens do IP Dinâmico:** - Instabilidade: impossível prever qual IP o dispositivo terá na próxima conexão. - Complicado para acesso remoto: servidores ou VPNs exigem DNS dinâmico. - Incompatibilidade com alguns serviços que necessitam de IP fixo. ## IP Externo (Público) O IP externo ou público é visível na internet, permitindo que outros usuários e sistemas se conectem ao seu dispositivo de qualquer lugar. Diferente do IP interno, é usado para roteamento entre a rede local e a internet. O IP público é atribuído por um provedor de internet ou serviço em nuvem e é essencial para comunicação com redes externas. Dispositivos com IP público podem receber requisições diretamente, sendo necessários para servidores web, [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), aplicações em nuvem e outros serviços acessíveis publicamente. Muitas vezes, IPs públicos são combinados com NAT (Network Address Translation) para permitir que múltiplos dispositivos internos compartilhem um mesmo endereço externo. **Aspectos técnicos:** - Identifica o dispositivo na rede global. - Utilizado para configuração de DNS, SSL, [VPN](https://serverspace.com.br/services/cloud-vpn.md) e acesso remoto. - Pode ser estático ou dinâmico. **Vantagens:** - Acesso da internet: qualquer dispositivo pode se conectar. - Necessário para serviços públicos: sites, aplicativos na nuvem, VPS, e-mail corporativo. - Compatível com plataformas em nuvem, [CDN](https://serverspace.com.br/services/cdn.md) e [WAF](https://serverspace.com.br/services/waf.md). **Desvantagens:** - Maior preocupação com segurança: visível para todos, alvo potencial de ataques. - Dependência do provedor: troca de IP ou roteamento pode causar indisponibilidade. - Custo adicional: especialmente se precisar de IP público estático. ## IP Interno (Privado) O IP interno ou privado é usado dentro da rede local e não é visível diretamente na internet. Permite que dispositivos de uma rede se comuniquem sem acesso global direto. Os endereços privados são atribuídos por roteadores ou servidores DHCP da rede. Dispositivos com IP privado podem compartilhar dados, acessar servidores internos e usar um IP público via NAT. Exemplos de faixas de IP privado: - 10.0.0.0–10.255.255.255 - 192.168.0.0–192.168.255.255 - 172.16.0.0–172.31.255.255 **Aspectos técnicos:** - Roteamento dentro da rede local. - Permite múltiplos dispositivos com um mesmo IP público via NAT. - Compatível com serviços internos, VPN e servidores locais. **Vantagens:** - Segurança: não visível na internet, reduz riscos de ataque. - Economia de IPs públicos: múltiplos dispositivos usam um mesmo endereço externo. - Facilita gerenciamento de rede: VLANs, segmentação e controle de acesso. **Desvantagens:** - Não acessível diretamente da internet; requer NAT ou VPN. - Complicado para acesso remoto externo. - Dependente do roteador: se NAT ou roteador falhar, dispositivos perdem acesso. ## Tabela resumida: tipos de IP | Tipo de IP | Definição | Vantagens | Desvantagens | Exemplos de uso | | --- | --- | --- | --- | --- | | Estático | Endereço fixo, não muda | Acesso constante, VPN, estabilidade | Menos flexível, mais caro, visível para ataques | Servidor web, e-mail corporativo, servidor VPN | | Dinâmico | Endereço muda a cada conexão | Fácil gerenciamento, economia de IPs, segurança | Não serve para servidores com acesso fixo | Usuários domésticos, escritórios, projetos temporários | | Externo (público) | Visível na internet | Acesso global, configuração de servidores, integração VPS | Riscos de segurança, requer proteção | VPS, sites, acesso remoto, serviços corporativos | | Interno (privado) | Usado na rede local | Segurança, economia de IPs, gerenciamento | Não acessível diretamente da internet, depende de NAT/VPN | Redes domésticas e corporativas, servidores locais, IoT | ## Dicas práticas: - IP estático: servidores, sites e e-mail corporativo. - IP dinâmico: usuários domésticos e escritórios pequenos, projetos temporários. - IP público: serviços acessíveis da internet, VPS, sites, aplicações remotas. - IP privado: redes internas, NAT, VPN, economiza IPs e aumenta segurança. - Use [serviços em nuvem](https://serverspace.com.br/index.md) como Serverspace para VPS com o tipo de IP adequado, integrando proteção via WAF e CDN para performance otimizada. Entender os tipos de IP ajuda a escolher a solução correta para negócios ou projetos pessoais. ## FAQ - **Qual a diferença entre IP estático e dinâmico?** IP estático é sempre o mesmo, dinâmico muda a cada conexão. - **O que é um IP externo (público)?** Endereço visível na internet, permite acesso ao dispositivo ou serviço em nuvem. - **Para que serve um IP interno (privado)?** Comunicação dentro da rede local e economia de IPs públicos. - **A escolha do IP afeta a segurança?** Sim. IP público estático exige medidas adicionais, IP interno garante isolamento. https://serverspace.com.br/support/help/python-e-clientes-http.md Aprenda a criar ambientes virtuais, instalar bibliotecas HTTP e fazer requisições cíclicas com Python para integrar e monitorar APIs externas. Python é frequentemente usado para interagir com APIs externas para fins de monitoramento, integração, análise ou automação. Para fazer isso de forma competente e segura, é importante usar ambientes virtuais e configurar corretamente as requisições HTTP cíclicas. Neste artigo, vamos analisar: - criação de um ambiente virtual; - instalação de clientes HTTP populares; - desenvolvimento de requisições típicas de API. ### Criação e ativação do ambiente Para isso, acesse o projeto ou crie um diretório onde instalaremos o ambiente usando o módulo: ``` mkdir myproject && cd myproject && pip3 install venv && python3 -m venv venv ``` Para ativar o ambiente, execute: Linux/macOS: ``` source venv/bin/activate ``` Windows: ``` venv\Scripts\activate ``` ### Instalação de bibliotecas HTTP ```bash pip install requests httpx ``` Fixe as dependências: ```bash pip freeze > requirements.txt ``` ### Exemplos de requisições HTTP 1. requests (cliente síncrono) ``` import requests response = requests.get("https://api.github.com") print(response.status_code) print(response.json()) ``` 2. httpx (síncrono e assíncrono) ``` import httpx response = httpx.get("https://api.github.com") print(response.status_code) ``` Versão assíncrona: ```python import httpx import asyncio async def main(): async with httpx.AsyncClient() as client: resp = await client.get("https://api.github.com") print(resp.status_code) asyncio.run(main()) ``` ### Requisições cíclicas com base em dados de um arquivo Vamos supor que temos uma lista de IDs com os quais precisamos fazer requisições à API. O script fica assim: input.txt ``` 123 456 abc ``` main.py — exemplo completo ```python import requests import time API_URL = "https://api.example.com/data /" # Replace with a real URL HEADERS = { "Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json" } with open("input.txt", "r") as f: values = [line.strip() for line in f if line.strip()] for val in values: try: url = f"{API_URL}{val}" response = requests.get(url, headers=HEADERS, timeout=10) if response.status_code == 200: print(f"[] {val}: Successful") print(response.json()) else: print(f"[!] {val}: Status {response.status_code}") except requests.exceptions.RequestException as e: print(f"[] {val}: Error — {e}") time.sleep(1) # We are not overloading the API ``` O script: - Lê as linhas de um arquivo input.txt (por exemplo, IDs ou códigos); - Substitui cada linha na URL da API; - Envia uma requisição GET; - Processa a resposta; - Faz uma pausa entre as requisições para não sobrecarregar o servidor. Trabalhar com HTTP em Python é simples se você usar ambiente virtual, gerenciar dependências corretamente, monitorar erros e frequência de requisições, e processar dados de entrada a partir de arquivos. https://serverspace.com.br/support/help/como-configurar-o-fail2ban.md Como configurar o Fail2Ban? O Fail2Ban é uma ferramenta poderosa e flexível para proteger servidores Linux contra ataques de força bruta, especialmente em tentativas de adivinhação de senha no SSH, FTP, SMTP, aplicações web ou até mesmo no servidor proxy Squid. Configurar o Fail2Ban permite bloquear automaticamente endereços IP que apresentem atividades suspeitas, reduzindo o risco de invasão. Com ele, é possível implementar proteção contra força bruta de senhas, proteger o SSH e até aplicá-lo a serviços não convencionais — seja no Ubuntu, Debian, CentOS ou outros sistemas. Também há versões do Fail2Ban para Windows, e, se desejado, ele pode ser integrado ao iptables ou outras ferramentas de controle de tráfego. ## Exemplo com Ubuntu 22.04 e Debian: ```bash sudo apt update sudo apt install fail2ban ``` Um dos casos mais comuns é proteger o SSH contra ataques de força bruta. Copie o arquivo de configuração: ``` sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local ``` Abra o arquivo: ``` sudo nano /etc/fail2ban/jail.local ``` Encontre e edite a seção [sshd]: ``` enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 3600 ``` Por padrão, o Fail2Ban não inclui um filtro para o Squid, mas ele pode ser adicionado manualmente. Isso é útil em sistemas onde o Squid é utilizado como proxy de cache ou para gerenciamento de tráfego (por exemplo, mikrotik + fail2ban via proxy). Crie o filtro: ``` sudo nano /etc/fail2ban/filter.d/squid.conf ``` Adicione ao arquivo: ``` failregex = ^.*squid.TCP_DENIED. ignoreregex = ``` Depois, edite o jail.local novamente: ``` sudo nano /etc/fail2ban/jail.local ``` Adicione ao final: ``` enabled = true filter = squid logpath = /var/log/squid/access.log maxretry = 5 bantime = 3600 findtime = 600 ``` Verifique se o caminho do access.log está correto: ``` sudo find /var/log -name access.log ``` Reinicie o serviço: ```bash sudo systemctl restart fail2ban ``` E verifique o status: ``` sudo fail2ban-client status squid ``` Se tudo estiver configurado corretamente, o Fail2Ban começará a monitorar as tentativas de conexão via Squid e bloqueará automaticamente os IPs mal-intencionados. Assim, o Fail2Ban não é apenas uma proteção de SSH contra força bruta, mas sim um mecanismo modular completo. É possível criar seus próprios filtros (fail2ban filter), alterar ações (fail2ban action), integrá-lo ao iptables ou utilizá-lo em sistemas como o fail2ban windows. É uma solução universal para configurações de segurança — do Ubuntu e Debian ao CentOS e outras distribuições Linux. https://serverspace.com.br/support/help/como-usar-o-zip-no-linux.md Aprenda a instalar, compactar, descompactar e proteger arquivos no Linux com o comando zip. Inclui exemplos práticos, opções avançadas e dicas úteis. O utilitário zip é uma forma simples e prática de compactar arquivos ou diretórios no formato .zip diretamente pelo terminal do Linux. É frequentemente usado para fazer backups, enviar dados e agrupar arquivos. Neste artigo, você vai aprender: - Como instalar o zip e o unzip; - Como compactar e descompactar arquivos; - Como criptografar um arquivo compactado; - Erros comuns e dicas úteis. ### Instalação do zip e unzip Se o utilitário não estiver instalado, faça a instalação de acordo com o seu sistema: ```bash # Ubuntu / Debian sudo apt update sudo apt install zip unzip # CentOS / RHEL sudo yum install zip unzip # Arch Linux sudo pacman -S zip unzip ``` ### Criando um arquivo compactado **Compactar um único arquivo:** ``` zip arquivo.zip meu_arquivo.txt ``` **Compactar uma pasta de forma recursiva:** ``` zip -r arquivo.zip minha_pasta/ ``` **Compactar vários arquivos e pastas:** ``` zip -r backup.zip pasta1/ arquivo2.txt notas.doc ``` ### Descompactando um arquivo **Descompactar no diretório atual:** ```bash unzip arquivo.zip ``` **Descompactar para um diretório específico:** ```bash unzip arquivo.zip -d /caminho/para/pasta/ ``` **Descompactar um único arquivo:** ```bash unzip arquivo.zip arquivo.txt ``` ### Opções adicionais | Chave | Finalidade | | --- | --- | | -r | Adicionar diretórios recursivamente | | -e | Criptografar o arquivo com senha | | -9 | Nível máximo de compactação | | -x | Excluir arquivos por máscara | | -q | Modo silencioso | ### Criando um arquivo seguro ``` zip -re seguro.zip pasta-secreta/ ``` Ao executar o comando, será solicitado que você insira e confirme uma senha. ### Trabalhando com arquivos dentro de um .zip **Adicionar um arquivo ao arquivo compactado:** ``` zip arquivo.zip novo_arquivo.txt ``` **Excluir um arquivo do arquivo compactado:** ``` zip -d arquivo.zip arquivo_antigo.txt ``` ### Erros comuns | Erro | Motivo | Solução | | --- | --- | --- | | Command not found: zip | O utilitário não está instalado | Instale o zip pelo gerenciador de pacotes | | Filename not matched | Arquivo não encontrado | Verifique o nome e o caminho | | Bad password | Senha incorreta | Confira a senha ou recrie o arquivo compactado | ### Dicas úteis - Evite espaços nos caminhos ou use aspas: ``` zip "nome do arquivo.zip" "Minha Pasta/" ``` - Adicione a data ao nome do arquivo: ``` zip -r backup_$(date +%Y-%m-%d).zip dados/ ``` Os utilitários zip e unzip são ferramentas confiáveis para compactar arquivos no Linux. São fáceis de usar, não exigem interface gráfica e são ideais para automatizar backups via scripts ou cron. https://serverspace.com.br/support/help/para-que-serve-o-dockerfile-explicacao-simples-e-exemplo-de-uso.md Descubra o que é um Dockerfile e para que serve. Explicação simples, principais vantagens e exemplo de Dockerfile para uma aplicação Python. Docker já se tornou o padrão de fato para empacotar e executar aplicações. Mas, quando você começa a conhecê-lo, surge frequentemente a pergunta: para que serve o **Dockerfile** e qual é o seu papel? ## O que é Dockerfile? **Dockerfile** é um arquivo de texto com instruções para construir uma imagem Docker. Nele são descritos: - qual sistema base utilizar (por exemplo, **ubuntu** ou **alpine**); - quais dependências instalar; - quais arquivos copiar para o contêiner; - quais comandos executar na inicialização. Em outras palavras, o Dockerfile é uma **receita** que o "cozinheiro" Docker usa para preparar um contêiner pronto com a aplicação. ## Para que serve? ### 1. **Automação da construção** Em vez de instalar manualmente as dependências e configurar o ambiente, você descreve o processo uma única vez no Dockerfile. Depois disso, a imagem pode ser recompilada em qualquer lugar — o resultado será sempre o mesmo. ### 2. **Reprodutibilidade** Com o Dockerfile, sua aplicação sempre será executada no mesmo ambiente. Isso resolve o clássico problema "funciona na minha máquina, mas não na sua". ### 3. **Portabilidade** A imagem construída a partir de um Dockerfile pode ser executada em qualquer máquina com Docker instalado: Linux, Windows, macOS ou em um servidor na nuvem. ### 4. **Praticidade para a equipe** A equipe de desenvolvedores obtém uma forma unificada de executar a aplicação. Não importa qual sistema operacional ou versão do Python cada um utiliza - o Dockerfile garante o mesmo ambiente para todos. ### 5. **Infraestrutura como código** O Dockerfile pode ser armazenado no Git junto com o projeto. Isso significa que o histórico de alterações do ambiente será tão transparente quanto o histórico do código. ## Exemplo simples de Dockerfile Vamos supor que temos uma aplicação em Python: ``` # Imagem básica com Python FROM python:3.11-slim # Instalamos as dependências WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt # Copiamos o código COPY . . # Indicamos o comando de execução CMD ["python", "main.py"] ``` O que este Dockerfile faz: - Usa uma imagem mínima com Python 3.11. - Instala as dependências do **requirements.txt**. - Copia o código-fonte para o contêiner. - Inicia a aplicação com o comando **python main.py**. ## Como construir e executar o contêiner Após criar o Dockerfile, basta executar: ```bash docker build -t myapp . docker run myapp ``` - e sua aplicação será executada em um contêiner com o ambiente configurado. ## Conclusão **O Dockerfile é necessário para descrever exatamente como construir a imagem da aplicação.** Ele torna o processo: - automatizado, - reprodutível, - prático para a equipe, - portável. Na prática, sem Dockerfile o Docker perde sua principal força — a possibilidade de descrever o ambiente uma vez e executá-lo em qualquer lugar. ## FAQ: Perguntas frequentes sobre Dockerfile - **O que acontece se eu não usar Dockerfile?** Sem Dockerfile, será necessário configurar manualmente o ambiente ou usar imagens prontas. Isso é inconveniente e pouco reprodutível — as configurações podem variar entre máquinas. - **Qual a diferença entre Dockerfile e Docker Compose?** O Dockerfile descreve como construir uma imagem. O Docker Compose é usado para executar vários contêineres juntos (por exemplo, aplicação + banco de dados), com base em imagens já prontas. - **Posso usar um único Dockerfile para diferentes projetos?** Sim, se os projetos tiverem as mesmas dependências. Mas, na maioria das vezes, cria-se um Dockerfile para cada projeto. - **O que é melhor: escrever um Dockerfile do zero ou usar imagens prontas?** É melhor usar como base uma imagem oficial mínima (por exemplo, python:3.11-slim) e instalar apenas o necessário. Isso deixa os contêineres mais leves e rápidos. - **Onde guardar o Dockerfile?** Normalmente, ele é colocado na raiz do projeto e versionado junto com o código no Git. ## Materiais adicionais na Base de Conhecimento da Serverspace O estudo do Docker não se limita apenas ao Dockerfile. Se você deseja compreender melhor o ecossistema de contêineres, confira a [Base de Conhecimento da Serverspace](https://serverspace.com.br/support.md). Lá você encontra guias passo a passo sobre Docker, Docker Compose, configuração de redes de contêineres, otimização de imagens e integração com CI/CD. Esses artigos ajudam não apenas a consolidar os fundamentos, mas também a dominar cenários mais avançados de uso do Docker em produção. https://serverspace.com.br/support/o-que-e-openssl-criptografia-certificados-e-seguranca-de-dados.md Descubra o que é o OpenSSL, como ele criptografa dados, gerencia certificados e garante a segurança das conexões. Exemplos de comandos e aplicação na Internet e em redes corporativas. **OpenSSL** é um pacote de software popular e amplamente utilizado para garantir a segurança dos dados em sistemas de computador. Ele implementa protocolos e algoritmos criptográficos, permitindo criptografar dados, criar assinaturas digitais e gerenciar certificados. O OpenSSL é um componente essencial para a transmissão segura de informações na internet e em redes corporativas. ## Principais funções do OpenSSL - **Criptografia de dados** O OpenSSL suporta criptografia simétrica (por exemplo, AES, DES) e assimétrica (RSA, ECC). A criptografia simétrica é usada para proteger grandes volumes de dados, enquanto a assimétrica é usada para a troca segura de chaves e assinaturas digitais. - **Criação e gerenciamento de certificados** Com o OpenSSL, é possível criar certificados próprios (X.509), assiná-los e verificar a autenticidade de outros certificados. Isso é especialmente importante para servidores web que utilizam o protocolo HTTPS. - **Hash e verificação da integridade dos dados** O OpenSSL fornece algoritmos de hash (MD5, SHA-1, SHA-256), permitindo verificar se os dados não foram alterados durante a transmissão. - **Assinatura digital** O programa permite criar e verificar assinaturas digitais, garantindo a autenticidade do remetente e a proteção contra falsificação de mensagens. ## Aplicações do OpenSSL O OpenSSL é usado em várias áreas: - **Serviços web:** Servidores HTTPS usam o OpenSSL para criptografar conexões entre cliente e servidor. - **Email:** Protocolos SSL/TLS garantem o envio seguro de mensagens. - **VPN e redes corporativas:** O OpenSSL ajuda a proteger os canais de comunicação dentro das organizações. - **Desenvolvimento de software:** Muitas bibliotecas e aplicativos integram o OpenSSL para trabalhar com dados de forma segura. ## Exemplo de comandos OpenSSL O OpenSSL vem com um conjunto de ferramentas de linha de comando que permitem realizar várias operações: - **Criar uma chave privada RSA:** ``` openssl genrsa -out private.key 2048 ``` - **Criar um pedido de certificado (CSR):** ``` openssl req -new -key private.key -out request.csr ``` - **Verificar um certificado:** ``` openssl x509 -in certificate.crt -text -noout ``` - **Criptografar e descriptografar um arquivo:** ``` openssl enc -aes-256-cbc -in file.txt -out file.enc openssl enc -d -aes-256-cbc -in file.enc -out file_decrypted.txt ``` ## Vantagens do OpenSSL - **Código aberto** - disponível para análise e integração. - **Multiplataforma** - funciona em Linux, Windows e macOS. - **Suporte a protocolos e algoritmos modernos** - TLS 1.3, SHA-3, AES-GCM e outros. - **Comunidade ativa** - atualizações regulares e correção de vulnerabilidades. ## Desvantagens e riscos Embora o OpenSSL seja uma ferramenta poderosa, seu uso incorreto pode levar a problemas: - Complexidade na configuração e gerenciamento de certificados. - Possibilidade de vulnerabilidades (por exemplo, Heartbleed em 2014). - Necessidade de atualizações regulares para manter a segurança. ## Conclusão **OpenSSL** é uma ferramenta fundamental para garantir a segurança dos dados na internet. Ele é utilizado tanto por usuários individuais quanto por grandes organizações para criptografar informações, gerenciar certificados e proteger conexões. Compreender e usar o OpenSSL corretamente permite aumentar significativamente a segurança dos sistemas digitais. https://serverspace.com.br/support/roteamento-em-redes-por-que-e-necessario-e-como-funciona.md Roteamento em redes: descubra por que é necessário, como funciona, quais são os tipos e protocolos, e obtenha respostas para perguntas frequentes sobre roteamento e gerenciamento de tráfego. Roteamento é um dos processos-chave nas tecnologias de rede, garantindo a transferência de dados entre diferentes redes. Ele desempenha um papel fundamental no funcionamento da internet, redes corporativas e redes locais domésticas. ## O que é roteamento? O roteamento é o processo de determinação do melhor caminho para entregar dados do remetente ao destinatário na rede. Essa tarefa é realizada por dispositivos especiais — os roteadores — que analisam o endereço de destino e escolhem a rota mais adequada para o pacote. No roteamento, os endereços IP são fundamentais: cada pacote de dados contém informações sobre seu destino. O roteador lê esse endereço e consulta sua tabela de roteamento para escolher o caminho mais eficiente. ## Por que o roteamento é necessário? - **Garantia de comunicação entre redes** Em uma rede local, todos os dispositivos podem trocar dados diretamente, mas para enviar informações para outra rede (por exemplo, de uma rede doméstica para a internet), é necessário um roteador. Ele atua como um "cruzamento", direcionando o tráfego na direção correta. - **Otimização da transferência de dados** Em redes grandes, pode haver vários caminhos para entregar um pacote. O roteamento permite escolher a rota com menor latência, menor carga ou menor custo de transmissão. - **Segmentação de tráfego e segurança** Os roteadores podem filtrar pacotes, restringir acesso a determinadas redes ou segmentar o tráfego para diferentes departamentos da empresa. Isso aumenta a segurança e facilita o gerenciamento da rede. - **Suporte à escalabilidade** Sem roteamento, não seria possível criar redes globais como a internet. Ele permite unir várias redes em um único sistema, garantindo a entrega correta dos dados mesmo em topologias complexas. - **Flexibilidade e tolerância a falhas** O roteamento permite redirecionar automaticamente o tráfego quando uma rota falha, garantindo a continuidade do funcionamento da rede. ## Tipos de roteamento - **Roteamento estático** — o administrador define manualmente os caminhos. Adequado para redes pequenas e estáveis. - **Roteamento dinâmico** — os roteadores trocam automaticamente informações sobre rotas disponíveis e escolhem a rota ideal. Utilizado em redes grandes e em rápida mudança. ### Exemplos de protocolos de roteamento - **RIP (Routing Information Protocol)** — um dos protocolos mais antigos, usa o número de saltos (hops) para escolher a rota. - **OSPF (Open Shortest Path First)** — protocolo mais moderno, considera o custo da rota e otimiza o tráfego. - **BGP (Border Gateway Protocol)** — protocolo essencial para o funcionamento da internet, responsável pelo roteamento entre sistemas autônomos. ## Conclusão O roteamento é a base da interação moderna em redes. Ele permite transferir dados de forma eficiente, segura e confiável, unindo redes locais em um sistema global — a internet. Sem roteamento, qualquer rede teria capacidades limitadas, e a escalabilidade e flexibilidade seriam praticamente impossíveis. ## FAQ sobre roteamento **1. Qual a diferença entre roteamento e comutação (switching)?** O roteamento opera na camada de rede (IP) e determina o caminho entre redes diferentes. A comutação opera na camada de enlace e transmite dados dentro de uma mesma rede. **2. Um usuário comum da internet precisa entender roteamento?** Para uso diário da internet, geralmente não é necessário, mas compreender roteamento é útil para administradores de redes e desenvolvedores. **3. O que é uma tabela de roteamento?** É uma lista de rotas que o roteador usa para decidir para onde enviar os pacotes. A tabela pode ser estática ou atualizada dinamicamente. **4. É possível contornar um roteador?** Dentro de uma rede local, sim, os dispositivos podem trocar dados diretamente. Mas para acessar outras redes, o roteador é indispensável. **5. Como escolher um roteador para a rede doméstica?** Para uso doméstico, basta um roteador com suporte a NAT, Wi-Fi e funções básicas de segurança. Redes maiores requerem roteadores com suporte a roteamento dinâmico e VPN. ## Base de conhecimento Serverspace A base de conhecimento da Serverspace é um recurso estruturado e acessível para aprender sobre diferentes aspectos do trabalho com servidores em nuvem e infraestrutura de TI. Ela contém uma grande variedade de materiais: instruções passo a passo, guias de configuração de servidores, artigos sobre segurança e otimização, além de exemplos de soluções práticas. Com essa base de conhecimento, os usuários podem encontrar rapidamente respostas para suas dúvidas, aprender novas tecnologias e resolver tarefas relacionadas à gestão e manutenção de servidores de forma eficiente. https://serverspace.com.br/support/por-que-nao-se-deve-armazenar-chaves-api-em-formato-aberto-riscos-e-praticas-seguras.md Descubra por que armazenar chaves API de forma aberta é perigoso, quais são os riscos envolvidos e como gerenciar chaves com segurança usando variáveis de ambiente, armazenamentos secretos e criptografia. No mundo moderno de desenvolvimento de aplicativos e serviços web, as chaves de API se tornaram uma parte essencial do trabalho com serviços externos. Elas permitem identificar o aplicativo, acessar funcionalidades de plataformas de terceiros e gerenciar dados. No entanto, armazenar chaves de API em texto aberto pode gerar problemas sérios. Vamos entender por que isso é perigoso e como lidar com isso. ## O que é uma chave de API **Chave de API** é um identificador único que um aplicativo utiliza para autenticação ao acessar a API (Application Programming Interface) de serviços externos. Funciona como uma senha: o serviço verifica a chave e permite ou nega o acesso aos seus dados e funcionalidades. ## Perigos de armazenar chaves em texto aberto - **Acesso não autorizado aos serviços** Se a chave de API ficar disponível para pessoas mal-intencionadas, elas poderão usar seu serviço, consumir limites de requisições e potencialmente acessar dados confidenciais. - **Perdas financeiras** Muitas APIs oferecem serviços pagos. Uma chave pública pode ser usada para realizar grande número de requisições pagas, resultando em despesas inesperadas. - **Comprometimento da segurança dos usuários** Se a chave estiver vinculada a dados de usuários, seu vazamento pode comprometer a privacidade, gerar perda de confiança e consequências legais. - **Risco de bloqueio** Serviços externos podem bloquear sua chave devido a atividade suspeita, mesmo que realizada por terceiros. Como resultado, seu serviço ficará inacessível. ## Exemplos de problemas reais - Em 2019, um grande serviço de análise sofreu um ataque devido a chaves públicas disponíveis. Mal-intencionados as utilizaram para requisições em massa, resultando em bloqueio temporário do serviço e perdas financeiras. - Em projetos de código aberto, chaves às vezes acabam acidentalmente em repositórios no GitHub, tornando-se alvo imediato de scanners automáticos que coletam chaves. ## Como armazenar chaves de API corretamente - **Variáveis de ambiente** Um dos métodos mais seguros é armazenar chaves em variáveis de ambiente e acessá-las pelo código. Isso evita que a chave seja incluída no repositório. - **Armazenamentos de segredo** Use serviços especializados para gerenciar segredos, como AWS Secrets Manager, HashiCorp Vault ou Google Secret Manager. - **Arquivos de configuração fora do repositório** Se utilizar arquivos de configuração, exclua-os do controle de versão (via **.gitignore**) e armazene-os separadamente. - **Criptografia** Quando as chaves precisam ser armazenadas localmente, elas podem ser mantidas criptografadas e descriptografadas apenas na inicialização do aplicativo. ## Conclusão **Chaves de API** são a chave digital para seus serviços e dados. Armazená-las em texto aberto gera enormes riscos: de perdas financeiras até comprometimento de informações confidenciais. Para evitar problemas, use métodos seguros de armazenamento, controle o acesso e nunca publique chaves em repositórios públicos. ## FAQ: Perguntas frequentes sobre o armazenamento de chaves de API - **1. Posso armazenar chaves de API diretamente no código?** Armazenar chaves no código é altamente desaconselhável. Qualquer pessoa que tiver acesso ao repositório (especialmente público) poderá usar suas chaves. Use variáveis de ambiente ou gerenciadores de segredo. - **2. O que fazer se a chave acidentalmente foi para um repositório público?** Desative ou troque a chave imediatamente no serviço, remova-a do repositório e certifique-se de que versões futuras do código não contenham a chave. - **3. Como transmitir chaves com segurança entre equipes de desenvolvedores?** Use gerenciadores de segredo protegidos, como AWS Secrets Manager, HashiCorp Vault ou Google Secret Manager. Nunca envie chaves por chats ou arquivos de texto simples. - **4. Posso criptografar chaves de API em arquivos de configuração local?** Sim, é uma opção válida. A criptografia permite armazenar chaves com segurança e descriptografá-las apenas na inicialização do aplicativo. - **5. O que fazer se as chaves estiverem ligadas a serviços pagos?** Limite os direitos da chave apenas às ações necessárias e monitore seu uso para evitar que terceiros façam requisições caras. - **6. Quais alternativas existem para proteger chaves em projetos públicos?** 1) Usar uma camada de servidor que armazena a chave e faz requisições à API em nome do cliente. 2) Gerar chaves temporárias com prazo limitado. 3) Restringir acesso por endereço IP. https://serverspace.com.br/support/help/por-que-e-importante-registrar-o-uso-das-chaves-api-seguranca-e-controle-de-acesso.md Descubra por que o registro do uso de chaves API é fundamental para a segurança, o controle de custos e a identificação de atividades suspeitas, além de como organizar os registros corretamente. **Chaves de API** são o principal meio de autenticação e controle de acesso a serviços externos e sistemas internos. No entanto, apenas gerá-las e armazená-las com segurança não é suficiente. Um elemento importante na gestão de chaves é o log de uso. Os logs permitem monitorar quem, quando e como usa suas chaves, aumentando a segurança e ajudando a identificar problemas. ## O que é o log de uso de chaves de API O log de uso de chaves de API é o processo de registrar informações sobre cada requisição feita usando uma chave. Normalmente, os logs incluem: - Data e hora da requisição - Identificador da chave de API - Endereço IP de onde a requisição foi feita - Recurso ou método da API solicitado - Status da resposta (sucesso/erro) - Mensagens de erro, se houver Esses dados permitem entender como a chave está sendo usada e detectar atividades suspeitas em tempo hábil. ## Por que o log é crítico - **Detecção de acesso não autorizado** Se um invasor obtiver acesso à chave, os logs ajudam a identificar rapidamente tentativas de uso não autorizado. - **Análise de desempenho e carga** Os logs ajudam a identificar quais chaves geram mais carga na API e a otimizar o desempenho do serviço. - **Controle financeiro** Para APIs pagas, o log permite monitorar o número de requisições e detectar anomalias, evitando despesas inesperadas. - **Depuração e suporte** Em caso de problemas de integração ou funcionamento da API, os logs ajudam a localizar rapidamente a origem do erro. - **Conformidade com normas de segurança** Para empresas que lidam com dados pessoais ou financeiros, manter logs faz parte de padrões de segurança e auditoria (ex.: ISO, GDPR). ## Melhores práticas de log - **Minimize o armazenamento de dados sensíveis** Nunca registre as chaves em texto claro nos logs. Use identificadores de chave ou hashes. - **Armazene os logs de forma segura** Os logs podem conter informações de usuários e requisições. Garanta proteção e acesso apenas a pessoas autorizadas. - **Use sistemas centralizados de log** Sistemas como ELK Stack (Elasticsearch, Logstash, Kibana) ou Splunk permitem analisar logs em tempo real e identificar anomalias. - **Configure alertas para ações suspeitas** Por exemplo, múltiplas requisições falhas ou aumento repentino de chamadas de API por uma mesma chave devem gerar notificações. - **Auditoria regular** Revise periodicamente os logs e verifique se todas as chaves estão sendo usadas conforme as políticas de segurança da empresa. ## Conclusão O log de uso de chaves de API não é apenas uma recomendação técnica, mas uma medida importante de segurança e controle. Ele permite: - **Detectar acessos não autorizados** - **Controlar despesas e carga** - **Manter conformidade com padrões de segurança** - **Facilitar depuração e análise de problemas** Uma organização adequada do log torna a gestão de chaves transparente, segura e possibilita respostas rápidas a ameaças. ## FAQ: Perguntas frequentes sobre o log de chaves de API - **1. O que é o log de uso de chaves de API?** O log é o processo de registrar informações sobre cada requisição feita com uma chave de API, incluindo data e hora, identificador da chave, endereço IP, recurso solicitado, status da resposta e mensagens de erro. - **2. Por que registrar o uso das chaves API?** O log ajuda a detectar acesso não autorizado, controlar carga e despesas, facilita a depuração e garante conformidade com padrões de segurança. - **3. Posso registrar as chaves nos logs?** Não, as chaves não devem ser armazenadas em texto claro. Use identificadores ou hashes para proteger os dados. - **4. Quais dados devem ser registrados?** Recomenda-se registrar: data e hora da requisição, identificador da chave, endereço IP, método da API, status da resposta e mensagens de erro. - **5. Como armazenar os logs de forma segura?** Os logs podem conter dados sensíveis, portanto devem ser armazenados em sistemas protegidos, com acesso apenas a pessoal autorizado. - **6. Quais ferramentas ajudam a analisar os logs?** Sistemas centralizados de log, como ELK Stack (Elasticsearch, Logstash, Kibana) ou Splunk, permitem análise em tempo real e identificação de atividades suspeitas. - **7. Como reagir rapidamente a atividades suspeitas?** Configure alertas para eventos como múltiplas requisições falhas ou aumento repentino de chamadas de API por uma mesma chave. - **8. Com que frequência realizar auditoria dos logs?** Regularmente, conforme políticas de segurança da empresa. A auditoria garante que as chaves estão sendo usadas corretamente e de forma segura. https://serverspace.com.br/support/por-que-usar-niveis-adicionais-de-autenticacao-e-criptografia-para-api.md Descubra por que níveis adicionais de autenticação e criptografia são essenciais para a segurança da API, a proteção dos dados dos usuários e a prevenção de acessos não autorizados. No mundo moderno do desenvolvimento de aplicativos e serviços web, a **API (Application Programming Interface)** se tornou o principal meio de troca de dados entre sistemas. As APIs permitem integrar serviços, automatizar processos e disponibilizar funcionalidades para usuários externos. Porém, com o crescimento no número de conexões e na complexidade dos serviços, também aumentam os riscos de segurança. Por isso, apenas uma chave de API básica ou autenticação padrão não é suficiente – são necessários níveis adicionais de autenticação e criptografia. ## O que são níveis adicionais de autenticação e criptografia Níveis adicionais de autenticação são métodos que confirmam a identidade de um usuário ou aplicativo além do login e senha básicos ou da chave de API. Exemplos: - **OAuth 2.0 e tokens JWT** - **Autenticação de dois fatores (2FA)** - **Tokens temporários e assinaturas de requisições** **Criptografia de dados** é o processo de codificação da informação de forma que apenas partes autorizadas possam lê-la. Exemplos: - HTTPS / TLS para transmissão de dados - Criptografia do payload e de parâmetros sensíveis em requisições e respostas - Armazenamento de segredos e tokens de forma criptografada ## Por que usar níveis adicionais de proteção - **1. Proteção contra acesso não autorizado** Uma chave de API básica pode ser roubada ou interceptada. Autenticação adicional e assinaturas de requisições ajudam a garantir que apenas aplicativos e usuários confiáveis tenham acesso à API. - **2. Redução do risco de vazamento de informações confidenciais **A criptografia protege os dados transmitidos via API, incluindo informações pessoais de usuários, dados financeiros ou informações internas de negócios. - **3. Proteção contra ataques de "replay" e falsificação de requisições **O uso de tokens temporários e assinaturas de requisições evita ataques do tipo replay, em que o invasor reenvia requisições interceptadas. - **4. Conformidade com requisitos de segurança e legislações **Muitos setores têm exigências rigorosas para a proteção de dados: financeiro, saúde e dados pessoais de usuários. O uso de autenticação e criptografia ajuda a cumprir padrões de segurança e normas (como ISO 27001, GDPR, HIPAA). - **5. Controle e auditoria de ações **Com níveis adicionais de autenticação, é mais fácil auditar ações e rastrear quem realizou determinadas requisições à API. Isso aumenta a transparência e permite identificar rapidamente atividades suspeitas. ## Melhores práticas - Usar HTTPS para todas as requisições de API – requisito mínimo. - Aplicar tokens com tempo de vida limitado – reduz os impactos de uma chave comprometida. - Implementar autenticação em múltiplos níveis – OAuth 2.0, JWT, 2FA. - Criptografar dados sensíveis no payload – especialmente informações pessoais dos usuários. - Atualizar e rotacionar chaves e tokens regularmente – previne o uso de credenciais antigas e vulneráveis. - Manter logs e monitoramento de todas as autenticações e requisições – para rápida detecção de violações de segurança. ## Conclusão Níveis adicionais de autenticação e criptografia para APIs não são apenas redundâncias técnicas, mas sim uma medida essencial de segurança. Eles permitem: - Proteger serviços contra acessos não autorizados - Garantir a confidencialidade dos dados - Prevenir falsificação e reutilização de requisições - Atender padrões de segurança e legislações - Aumentar a transparência e o controle das ações dos usuários A aplicação de proteção em múltiplos níveis torna suas APIs mais seguras, reduz os riscos de comprometimento e aumenta a confiança dos usuários nos seus serviços. ## FAQ: Perguntas frequentes sobre níveis adicionais de autenticação e criptografia para APIs **1. O que são níveis adicionais de autenticação e criptografia para APIs?** São métodos de verificação da identidade de um usuário ou aplicativo além do login, senha ou chave de API básicos (como OAuth 2.0, JWT, 2FA). A criptografia protege os dados contra acessos não autorizados durante a transmissão e o armazenamento. **2. Por que são necessários níveis adicionais de proteção se já existe a chave de API?** Uma chave de API básica pode ser roubada ou interceptada. Autenticação adicional e criptografia garantem a segurança dos dados, evitando acessos não autorizados e falsificação de requisições. **3. Quais tipos de autenticação são melhores?** É recomendado aplicar autenticação em múltiplos níveis: OAuth 2.0, tokens JWT, autenticação de dois fatores (2FA), tokens temporários e assinaturas de requisições. **4. Como a criptografia ajuda a proteger uma API?** A criptografia dos dados transmitidos via API garante a confidencialidade das informações, incluindo dados pessoais e financeiros. O uso de HTTPS/TLS é o padrão mínimo de segurança. **5. O que são ataques de "replay" e como evitá-los?** Ataques de replay acontecem quando um invasor reenvia requisições interceptadas. Tokens temporários e assinaturas de requisições evitam esse tipo de ataque. **6. É necessário criptografar os dados no nível do payload?** Sim, principalmente quando a API transmite dados sensíveis de usuários ou informações internas de negócios. Isso adiciona uma camada extra de proteção. **7. Com que frequência é preciso atualizar chaves e tokens?** Regularmente. A rotação de chaves e tokens reduz o risco de uso de credenciais antigas e vulneráveis por invasores. **8. Como monitorar e auditar as ações de uma API?** Use logs e sistemas centralizados de monitoramento para rastrear quem, quando e como utilizou a API. Isso ajuda a identificar rapidamente atividades suspeitas. - **9. Quais são as vantagens de implementar proteção em múltiplos níveis nas APIs?** 1. Proteção contra acessos não autorizados 2. Confidencialidade dos dados 3. Prevenção de falsificação e reutilização de requisições 4. Conformidade com padrões de segurança e legislações 5. Transparência e controle das ações dos usuários https://serverspace.com.br/support/temporizadores-systemd-no-ubuntu-automacao-de-tarefas-sem-cron.md Saiba como usar os temporizadores do systemd no Ubuntu para automatizar tarefas. Configuração, exemplos, diferenças em relação ao cron e recursos úteis do systemd. No Linux, tradicionalmente o cron é usado para automatizar tarefas. No entanto, com o surgimento do systemd, apareceu uma alternativa mais flexível e moderna — os systemd timers. Eles permitem executar tarefas em horários definidos, acompanhar seu status e integrá-las com os serviços do sistema. Neste artigo, vamos entender como usar o systemd para automação e por que ele pode ser melhor que o cron. ## Por que systemd em vez de cron? - **Sistema unificado para gerenciar serviços e tarefas.** - **Registro de logs via journalctl.** - **Condições de execução flexíveis (por tempo, eventos ou estado do sistema).** - **Possibilidade de monitorar o status e gerenciar tarefas como serviços.** ## 1. Criando um serviço systemd Primeiro é necessário descrever a tarefa como um serviço. Por exemplo, vamos criar uma tarefa que realiza backup em **/opt/backup.sh**: ``` sudo nano /etc/systemd/system/backup.service ``` Conteúdo: ``` Description=Backup de dados Type=oneshot ExecStart=/opt/backup.sh ``` ## 2. Criando um timer Agora criamos um timer que irá executar nosso serviço. ``` sudo nano /etc/systemd/system/backup.timer ``` Conteúdo: ``` Description=Timer de backup OnCalendar=daily Persistent=true WantedBy=timers.target ``` Explicação dos parâmetros: **OnCalendar=daily** – executa todos os dias (também existem hourly, weekly, monthly ou datas específicas). **Persistent=true** – se o servidor estava desligado, a tarefa será executada na próxima inicialização. ## 3. Ativando o timer Ativamos o timer e verificamos seu status: ```bash sudo systemctl daemon-reload sudo systemctl enable --now backup.timer systemctl list-timers ``` A saída mostrará a programação de todos os timers ativos. ## 4. Exemplos de uso Executar a cada 15 minutos: ``` OnCalendar=*:0/15 ``` Executar 5 minutos após a inicialização do sistema: ``` OnBootSec=5min ``` Executar quando o sistema estiver ocioso: ``` OnIdleSec=30min ``` ## 5. Logs e depuração Todos os logs dos serviços iniciados via **systemd** estão disponíveis em: ``` journalctl -u backup.service ``` Isso é mais prático do que os logs padrão do cron. ## Conclusão O uso de timers do systemd oferece muito mais possibilidades ao administrador do que o cron clássico. Em vez de apenas executar scripts em horários fixos, você obtém: - gerenciamento centralizado de todas as tarefas e serviços com os comandos familiares do systemctl; - logs transparentes via journalctl sem configuração extra; - condições de execução flexíveis (por tempo, ao iniciar, em inatividade ou até combinações de condições); - execução confiável mesmo após reinicializações do servidor com Persistent=true; - possibilidade de limitar recursos e controlar o comportamento das tarefas como qualquer outro serviço do systemd. Para administradores de sistemas, isso significa menos trabalho manual, e para projetos — execução mais previsível e segura de tarefas críticas, como backups, rotação de logs, atualizações e monitoramento. Se você ainda usa cron por hábito, experimente mover pelo menos parte das suas tarefas para timers do systemd. É bem provável que o cron logo deixe de ser necessário em sua infraestrutura. ## FAQ - **Pergunta: Por que os timers do systemd são melhores que o cron?** Resposta: 1) Timers do systemd são integrados ao sistema de serviços. 2) Todos os logs podem ser visualizados via journalctl sem configuração adicional. 3) Condições de execução flexíveis (por tempo, na inicialização, em inatividade). 4) Fácil gerenciamento das tarefas (systemctl start/stop/status). 5) Execução persistente após desligamentos com Persistent=true. - **Pergunta: É possível executar timers como usuário comum?**Resposta: Sim. Timers de usuário ficam em ~/.config/systemd/user/. Para ativá-los: ```bash systemctl --user enable --now mytask.timer ``` Eles funcionam sem privilégios de root. - **Pergunta: O que escolher: OnCalendar ou OnBootSec?**Resposta: OnCalendar é usado para agendamento (diário, semanal, baseado em horário). OnBootSec e OnStartupSec são usados para atrasar a execução após a inicialização. Eles podem ser combinados. - **Pergunta: Como testar corretamente um timer?**Resposta: Execute o serviço associado manualmente: ```bash systemctl start mytask.service ``` Verifique se o timer está ativo: ```bash systemctl list-timers ``` Veja os logs: ``` journalctl -u mytask.service ``` - **Pergunta: Posso definir várias condições de execução?**Resposta: Sim. Um mesmo timer pode ter várias linhas OnCalendar ou ser combinado com OnBootSec. Exemplo: ``` OnCalendar=Mon,Fri --* 12:00:00 OnBootSec=10min ``` - **Pergunta: Qual a diferença entre OnActiveSec e OnUnitActiveSec?**Resposta: **OnActiveSec** – tempo desde a ativação do timer. **OnUnitActiveSec** – tempo desde a última execução do serviço associado. Isso é importante em tarefas recorrentes. - **Pergunta: Onde ficam armazenados os timers?**Resposta: Sistema: **/etc/systemd/system/** ou **/usr/lib/systemd/system/**. Usuário: **~/.config/systemd/user/**. - **Pergunta: É possível limitar recursos de uma tarefa?**Resposta: Sim. Como a tarefa é executada como serviço, é possível aplicar controles de recursos do systemd (CPU, memória, I/O). Exemplo: ``` ExecStart=/opt/backup.sh CPUQuota=20% MemoryMax=500M ``` - **Pergunta: O que acontece se o servidor estiver desligado na hora programada?**Resposta: Se Persistent=true estiver definido, a tarefa será executada na próxima inicialização. - **Pergunta: Como remover um timer?**Resposta: Desabilite-o: ```bash sudo systemctl disable --now mytask.timer ``` Exclua os arquivos .service e .timer de /etc/systemd/system/. Recarregue o daemon: ```bash sudo systemctl daemon-reexec ``` https://serverspace.com.br/support/help/zfs-o-que-e-esse-sistema-de-arquivos-e-por-que-os-administradores-o-escolhem-para-armazenar-dados.md ZFS - um sistema de arquivos confiável com proteção contra falhas, instantâneos e escalabilidade. Descubra por que os administradores de sistemas o apreciam. No mundo da administração de sistemas, novas tecnologias para armazenamento e proteção de dados estão sempre surgindo. Mas existem soluções que se tornam verdadeiros "clássicos" graças à sua confiabilidade, funcionalidade e praticidade. Uma dessas soluções é o ZFS (Zettabyte File System). Apesar de já ter mais de 15 anos, muitos administradores ainda o escolhem para servidores e estações de trabalho. Vamos entender o que é esse sistema de arquivos e por que ele é tão popular. ## Um pouco de história O ZFS foi desenvolvido pela **Sun Microsystems** em 2001 e apresentado pela primeira vez no Solaris em 2005. O objetivo principal era criar um sistema de arquivos capaz de trabalhar com enormes volumes de dados (em escala de zettabyte), garantindo alta confiabilidade e simplicidade na administração. Mais tarde, o projeto foi aberto e continuou como **OpenZFS**, disponível para Linux, FreeBSD e outros sistemas operacionais. ## Recursos do ZFS ### 1. Confiabilidade em nível de arquitetura O principal diferencial do ZFS é o **Copy-on-Write.** Em vez de sobrescrever blocos, o sistema sempre grava novos dados em espaço livre e só depois atualiza os ponteiros. Isso elimina a chance de arquivos corrompidos em caso de queda de energia ou falha do sistema durante a gravação. ### 2. Proteção integrada contra corrupção Cada bloco de dados no ZFS é acompanhado de uma soma de verificação. Se for detectada uma inconsistência na leitura, o ZFS restaura os dados automaticamente a partir do espelhamento ou do grupo RAID. Isso é chamado de **self-healing -** autorrecuperação de dados. ### 3. Sistema de arquivos e gerenciador de volumes em um só O ZFS combina sistema de arquivos e gerenciador de volumes (como o LVM). Você cria **pools (zpools)** a partir de discos físicos e depois os distribui em sistemas de arquivos. Isso simplifica a administração e elimina a necessidade de ferramentas separadas. ### 4. Facilidade de snapshots e clones Os snapshots no ZFS são criados instantaneamente e praticamente não ocupam espaço até que os dados sejam modificados. Isso permite criar backups facilmente e fazer rollback para estados anteriores. Os clones são cópias "vivas" dos snapshots, que podem ser usados, por exemplo, em testes. ### 5. Escalabilidade O ZFS foi projetado para lidar com volumes massivos de dados - o limite teórico chega a **zettabytes**. Mesmo que suas necessidades sejam menores, isso garante margem para o futuro. ### 6. Trabalho flexível com RAID O ZFS suporta seus próprios tipos de RAID (RAID-Z, RAID-Z2, RAID-Z3), que utilizam o espaço de forma mais eficiente e equilibram desempenho e confiabilidade. ## Por que os administradores gostam do ZFS - **Máxima confiabilidade dos dados.** As somas de verificação e a recuperação automática garantem a integridade dos dados. - **Administração prática.** Uma única ferramenta resolve tarefas de sistema de arquivos e gerenciamento de discos. - **Backups simplificados.** Snapshots e replicação entre servidores tornam o ZFS excelente para cópias de segurança. - **Escalabilidade.** Serve tanto para NAS domésticos quanto para grandes ambientes corporativos. - **Comunidade ativa.** O OpenZFS continua em desenvolvimento e conta com suporte de entusiastas e empresas no mundo todo. ## Desvantagens do ZFS Não podemos deixar de citar alguns pontos negativos: - Alto consumo de memória - recomenda-se pelo menos **8 GB de RAM**. - Nem sempre incluído por padrão em distribuições Linux devido à licença CDDL. - Pode ser mais complexo de configurar para iniciantes em comparação com sistemas "clássicos" como ext4 ou XFS. ## Conclusão O ZFS não é apenas um sistema de arquivos, mas sim um verdadeiro ecossistema de gerenciamento de dados. Graças à sua confiabilidade, proteção integrada contra corrupção e funcionalidades avançadas, ele se tornou a ferramenta preferida de muitos administradores de sistemas. Se você busca armazenar dados com máxima segurança e ao mesmo tempo gerenciar discos e backups de forma prática, o ZFS é uma excelente escolha. ## FAQ sobre ZFS - **O que é ZFS em termos simples?** ZFS é um sistema de arquivos e gerenciador de volumes "em um só". Ele cuida tanto do armazenamento de dados quanto da administração dos discos, oferecendo confiabilidade e praticidade. - **Qual a diferença entre ZFS e ext4 ou XFS?**Ao contrário dos sistemas clássicos, o ZFS possui suporte nativo a snapshots, somas de verificação, autorrecuperação e gerenciamento de pools sem precisar de ferramentas extras. - **Quanta memória RAM o ZFS precisa?**O recomendado é pelo menos 8 GB de RAM. O ZFS usa intensivamente cache, então quanto mais memória, melhor o desempenho. - **Posso usar ZFS em casa, ou só em data centers?**Sim, muitos utilizam o ZFS em NAS domésticos, servidores e estações de trabalho. Ele é útil tanto para backups pessoais quanto para grandes ambientes corporativos. - **O que é um pool (zpool) no ZFS?**Um zpool é uma junção de discos físicos a partir da qual os sistemas de arquivos são criados. Isso torna a administração e a escalabilidade mais simples. - **O ZFS suporta RAID?**Sim, o ZFS possui implementações próprias de RAID: RAID-Z, RAID-Z2 e RAID-Z3, equilibrando confiabilidade e eficiência no uso do espaço. - **O ZFS tem desvantagens?**As principais são: maior consumo de memória, ausência em algumas distribuições Linux por padrão e uma curva de aprendizado mais íngreme para iniciantes. - **É possível migrar de ext4/XFS para ZFS sem perder dados?**Não, é necessário criar um novo pool e transferir os dados. A conversão direta não é possível. https://serverspace.com.br/support/seguranca-do-docker-como-proteger-conteineres-contra-ataques-e-vulnerabilidades.md Saiba como aumentar a segurança dos contêineres Docker: verificação de imagens, restrição de privilégios, configuração de rede, atualizações e monitoramento. Melhores práticas de proteção contra ataques e vulnerabilidades Docker se tornou o padrão de fato para a conteinerização e escalabilidade de aplicações. Sua flexibilidade e simplicidade aceleram o desenvolvimento, mas junto com a conveniência vêm novos riscos. Más configurações ou vulnerabilidades nas imagens podem comprometer toda a infraestrutura. Neste artigo, vamos revisar práticas-chave que podem ajudar a melhorar a segurança de contêineres Docker. ## Ameaças principais aos contêineres Docker Antes de passar para a proteção, é importante entender quais ataques são mais prováveis: - **Comprometimento da imagem** - um invasor pode injetar código malicioso em um contêiner. - **Privilégios ilimitados** - um contêiner executado com direitos de root se torna um ponto de entrada para o host. - **Vulnerabilidades na configuração de rede** - redes Docker configuradas incorretamente podem expor serviços ao mundo externo. - **Imagens desatualizadas** - usar imagens base antigas aumenta o risco de exploração de vulnerabilidades conhecidas. - **Falta de monitoramento** - um ataque pode permanecer indetectado por muito tempo. ## Melhores práticas para segurança no Docker ### 1. Use apenas imagens confiáveis - Baixe imagens do Docker Hub oficial ou de um registro corporativo. - Verifique as assinaturas das imagens (**Docker Content Trust**). - Minimize o uso de imagens de terceiros. ### 2. Minimize os privilégios dos contêineres - Não execute processos como root. - Use a opção --user para atribuir um usuário. - Habilite **Seccomp**, **AppArmor** ou **SELinux** para restringir chamadas de sistema. ### 3. Reduza a superfície de ataque - Crie **imagens mínimas** (por exemplo, baseadas no Alpine Linux). - Remova pacotes e utilitários desnecessários. - Separe serviços em contêineres individuais (um processo — um contêiner). ### 4. Configure a rede de forma segura - Use **redes isoladas do Docker** (bridge, overlay). - Limite o acesso a portas; não as publique sem necessidade. - Configure um firewall (por exemplo, UFW ou iptables) para filtrar o tráfego. ### 5. Atualize imagens e contêineres regularmente - Reconstrua imagens com versões atualizadas dos pacotes. - Configure atualizações automáticas para dependências vulneráveis. ### 6. Use varredura de vulnerabilidades - Integre **Trivy**, **Clair** ou ferramentas similares no CI/CD. - Verifique regularmente imagens base e suas próprias builds. ### 7. Registro e monitoramento - Habilite a coleta centralizada de logs (por exemplo, via ELK ou Grafana Loki). - Use **Falco** para monitorar atividades suspeitas. - Configure alertas para detectar anomalias. ## Conclusão O Docker simplifica a vida de desenvolvedores e engenheiros DevOps, mas junto com a conveniência surgem novos desafios de segurança. Proteger contêineres exige uma abordagem abrangente: uso de imagens confiáveis, limitação de privilégios, atualizações regulares e monitoramento contínuo. Seguindo essas práticas, você reduzirá o risco de ataques e poderá implantar contêineres com segurança em um ambiente de nuvem. ## FAQ - **1. Os contêineres devem ser executados como usuário root?** Não. Isso aumenta o risco de comprometimento do host. É melhor usar usuários não privilegiados via flag **--user** ou configuração dentro do Dockerfile. - **2. Como posso verificar imagens em busca de vulnerabilidades?** Você pode usar ferramentas como Trivy, Clair, Anchore ou recursos integrados ao CI/CD para varredura automática. - **3. O Docker fornece segurança por si só?** Não. O Docker fornece conteinerização, mas a segurança depende de configuração, políticas de rede e atualizações regulares. - **4. Preciso atualizar contêineres se eles estiverem estáveis?** Sim. Mesmo que o aplicativo não mude, as imagens podem conter bibliotecas e pacotes desatualizados e vulneráveis. - **5. O que devo fazer se um contêiner for comprometido?** Pare o contêiner, salve os logs para análise, reconstrua a imagem com correções, implemente medidas de segurança adicionais e verifique os contêineres vizinhos. - **6. Devo usar antivírus ou IDS dentro dos contêineres?** Normalmente não. É melhor usar scanners de segurança e IDS/IPS no nível do host ou cluster (por exemplo, Falco ou Wazuh). - **7. Como posso proteger os dados dentro de um contêiner?** Use criptografia de volumes e segredos (Docker Secrets, HashiCorp Vault) e evite armazenar senhas ou chaves na imagem ou no código. - **8. Posso limitar a atividade de rede de um contêiner?** Sim. Você pode aplicar Docker Network Policies, iptables e segmentação de rede (por exemplo, bridge ou overlay para diferentes serviços). - **9. Como saber se um contêiner foi comprometido?** Sinais incluem uso incomum de CPU/RAM, processos desconhecidos, tráfego de rede inesperado e logs suspeitos. Monitoramento e alertas podem ajudar a detectar isso. - **10. Existem ferramentas especializadas para segurança abrangente no Docker?** Sim. Soluções como Aqua Security, Sysdig Secure e Twistlock (Palo Alto) oferecem um stack completo para monitoramento e proteção de contêineres. https://serverspace.com.br/support/docker-volumes-armazenamento-e-gerenciamento-de-dados-em-conteineres.md Saiba como usar corretamente os volumes do Docker para armazenar e gerenciar dados em contêineres. Vamos analisar as diferenças em relação aos bind mounts, as melhores práticas e dicas de backup para garantir o funcionamento estável dos aplicativos. Docker simplificou o processo de implantação de aplicações, mas junto com isso surgiu a tarefa de gerenciar os dados dentro dos containers. Como os containers, por sua natureza, são **ephemeral** (temporários), tudo o que é armazenado dentro deles desaparece após a remoção. Para resolver esse problema, utiliza-se o mecanismo de **Docker Volumes**. Neste artigo, vamos entender o que são Docker Volumes, por que eles são necessários e como gerenciá-los corretamente. ## Por que armazenar dados dentro do container é uma má ideia Se você armazena dados dentro de um container, existem alguns problemas: - **Os dados desaparecem** quando o container é removido ou recriado. - **Opções de backup limitadas** - é necessário copiar os arquivos manualmente. - **Problemas com atualizações** - ao implantar uma nova versão da aplicação, os dados podem ser perdidos. Docker Volumes resolvem esses problemas, fornecendo um mecanismo de **armazenamento persistente de dados** fora do container, mas com acesso transparente a eles. ## O que são Docker Volumes **Volume** é uma área de armazenamento especial, gerenciada pelo Docker, que é montada dentro do container. Principais vantagens: - Os dados permanecem mesmo após a remoção do container. - É fácil montar o mesmo volume em vários containers. - É possível transferir dados entre containers. - Independência da estrutura da imagem. ## Tipos de Docker Volume - **Volumes Anônimos (Anonymous Volumes)** Criados automaticamente ao iniciar um container, caso não seja especificado um volume. Difíceis de gerenciar, pois os nomes são aleatórios. ```bash docker run -v /data myapp ``` - **Volumes Nomeados (Named Volumes) **Mais convenientes, pois você define o nome. ```bash docker volume create mydata docker run -v mydata:/data myapp ``` - **Bind Mounts **É a vinculação de um diretório ou arquivo do host ao container. Útil para desenvolvimento, mas menos seguro. ```bash docker run -v /home/user/data:/data myapp ``` ## Comandos principais para trabalhar com Volumes ```bash # Criar volume docker volume create myvolume # Listar volumes docker volume ls # Obter informações detalhadas docker volume inspect myvolume # Remover volume docker volume rm myvolume ``` ## Melhores práticas no uso de Docker Volumes - **Prefira volumes nomeados em vez de anônimos.** Isso facilita a administração e o backup. - **Para desenvolvimento, utilize bind mounts**, para ver rapidamente as alterações no host. - **Separe dados e código. **A aplicação fica na imagem, o banco de dados em um volume. - **Faça backups regulares dos volumes **Exemplo com tar: ```bash docker run --rm -v myvolume:/data -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data ``` - **Não armazene segredos em volumes. **Para isso, use **Docker Secrets** ou gerenciadores externos. - - ## Conclusão **Docker Volumes** não são apenas um mecanismo de armazenamento de dados, mas uma parte fundamental da arquitetura de aplicações containerizadas. Eles permitem separar responsabilidades: os containers permanecem leves e reproduzíveis, enquanto os dados ficam seguros e duradouros. O uso adequado dos Volumes ajuda a minimizar riscos de perda de informação, simplificar o processo de migração e implantação de aplicações, além de aumentar a resiliência da infraestrutura. ## FAQ **1. Qual a diferença entre Volume e Bind Mount?** O Volume é gerenciado pelo próprio Docker e armazenado no diretório dele, enquanto o Bind Mount referencia diretamente um diretório do host. Volumes são mais fáceis de transferir e fazer backup, já os Bind Mounts são úteis no desenvolvimento, quando é necessário alterar arquivos rapidamente. **2. É possível usar um volume em vários containers?** Sim, esse é um cenário comum. Um volume pode ser conectado a vários containers ao mesmo tempo para compartilhar dados ou trabalhar com arquivos comuns. **3. Onde os Docker Volumes são armazenados fisicamente?** Por padrão, em **/var/lib/docker/volumes/**. No entanto, é possível definir outro caminho, caso você queira mais controle. **4. É possível fazer backup dos volumes?** Sim. O volume pode ser exportado, copiado ou sincronizado como arquivos comuns. Também é possível usar ferramentas externas de backup. **5. O que é melhor para produção — Volumes ou Bind Mounts?** Em produção, recomenda-se Volumes, pois são mais confiáveis, fáceis de gerenciar e melhor integrados ao Docker. Bind Mounts são mais úteis no desenvolvimento local. **6. É possível criptografar os dados em um Volume?** Sim. Embora o Docker não ofereça um mecanismo nativo de criptografia, você pode usar sistemas de arquivos com suporte a criptografia ou soluções externas (como eCryptfs ou LUKS). **7. Os Volumes suportam drivers de terceiros?** Sim. O Docker permite conectar drivers externos de volumes (por exemplo, para trabalhar com storages em nuvem ou sistemas de arquivos distribuídos). **8. É possível limitar o tamanho de um volume?** Por padrão, o Docker não limita o tamanho dos Volumes, mas você pode usar drivers de volumes ou sistemas de arquivos com quotas para controlar o espaço ocupado. https://serverspace.com.br/support/help/o-que-e-um-dockerfile-guia-passo-a-passo-para-escrever-um-dockerfile.md Aprenda o que é um Dockerfile, como escrever um passo a passo, principais comandos e como usar junto com Docker Compose para criar e configurar containers de forma rápida e confiável. Para simplificar tarefas de implantação e automação, muitos desenvolvedores recorrem ao Docker, baixando imagens prontas do DockerHub. Essas imagens economizam tempo, são altamente confiáveis, com taxa de sucesso de até 90%, e oferecem configuração simples. Mas e se nenhuma das imagens disponíveis atender às suas necessidades específicas? Ou se você quiser criar uma imagem Docker personalizada que automatize tarefas na sua máquina de forma eficiente? Para isso existe o Dockerfile, que permite definir a ordem das ações e formar uma nova estrutura de sistema de arquivos em camadas. Vamos falar sobre tudo em detalhe ao longo deste artigo! ## O que é um Dockerfile? Dockerfile é um documento de texto que contém instruções para criar uma imagem, também conhecido como script. É o que permite automatizar a implantação de serviços e softwares. Sua função é aplicar mudanças ao sistema de arquivos padrão do SO e, depois disso, executá-lo em um ambiente isolado! Captura de tela nº1 — Container À esquerda você vê as camadas ou ações executadas no SO, e à direita os próprios arquivos do sistema, onde são aplicadas. O algoritmo consiste nos seguintes passos: - Um Dockerfile é compilado, especificando as ações a serem realizadas; - O usuário executa o comando do cliente Docker para construir a imagem: docker build; - O daemon recebe a solicitação do cliente e inicia a construção da imagem com base em um SO mínimo; - Uma vez criada, a imagem ou cópia do sistema de arquivos será enviada ao repositório pelo daemon; - Quando o container for criado, ele será chamado e implantado em um ambiente isolado. Imagine que precisamos criar nossa própria imagem de implantação de serviço de banco de dados, que será usada como servidor fora de um cluster. ## Criando seu Dockerfile Seguindo o algoritmo descrito, vamos detalhar todas as ações necessárias para o funcionamento do serviço. Por exemplo, o arquivo pode se parecer com isto: Captura de tela nº2 - Dockefile Você deve ter notado que a sintaxe usa palavras em maiúsculas para lidar com ações na máquina. Vamos analisar cada uma delas: - FROM: define qual imagem será usada como base. No nosso caso, a versão mais recente do Ubuntu; - COPY: copia arquivos da máquina host para a máquina guest; - CMD: define o comando que será executado quando o container iniciar; - RUN: executa instruções em shell na máquina durante a construção da imagem, como um script normal; - ENV: define variáveis de ambiente para serem usadas em tempo de execução; - USER: troca o usuário em tempo de execução; - WORKDIR: define o diretório de trabalho onde os próximos comandos serão executados. De forma resumida, podemos dividir o script em três blocos: - Ações de pré-instalação como root: instalação de softwares, criação de usuário e grupo, mudança para o novo usuário; - Como usuário mysql, o download da chave pública EDS e configuração de repositórios; - Instalação do software e abertura da porta da máquina para conexão. Criando uma imagem chamada **gg** com o utilitário Docker: ```bash sudo docker build -t gg . ``` A opção **-t** define o nome da futura imagem, e o ponto indica o diretório atual onde está o Dockerfile. Captura de tela nº3 — Nova imagem Após um breve processo, recebemos a resposta de que a imagem Docker foi gerada e está pronta para uso. Agora podemos enviá-la a um repositório ou criar containers a partir dela: ```bash sudo docker run -d -it gg && sudo docker ps ``` Captura de tela nº4 — Novo container Como vemos, o container da imagem foi criado com sucesso, com a porta encaminhada e o comando de inicialização executado. Mas há outra forma de criar o container de imediato: usar o Docker Compose, a ferramenta de orquestração de containers. No arquivo de configuração podemos definir que a imagem deve ser criada primeiro e depois o container executado. Esse método resolve o problema de configuração. Nem todos os serviços podem ser configurados apenas com Docker Compose, então às vezes é necessário configurar manualmente e depois gerar a imagem. Criando o arquivo docker-compose.yml: ``` sudo nano docker-compose.yml ``` Dentro do arquivo: ```yaml version: '3.8' services: app: build: context: . dockerfile: Dockerfile container_name: my_app_container ports: - "3306:3306" environment: - ENV_VAR=value tty: true stdin_open: true restart: always ``` Captura de tela nº5 — Docker-compose O item build permite definir o diretório onde está o Dockerfile e seu nome. Em seguida, configuramos o container: portas, nome, variáveis de ambiente etc. Iniciamos com: ```bash sudo docker-compose up -d ``` Captura de tela nº6 — Iniciar container O resultado é um serviço em funcionamento em ambiente virtualizado, descrito em poucas linhas. Em resumo: Dockerfile serve para criar a imagem, enquanto Docker Compose para configurar e executar o container. Esses dois arquivos reduzem o processo de implantação a apenas dois comandos. Se você não tiver recursos suficientes, pode executar tudo em servidores na nuvem. A Serverspace fornece [servidores VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) isolados para uso dedicado e virtualizado. Captura de tela nº7 — Criar servidor ## Conclusão Dockerfiles são ferramentas essenciais para automatizar a criação de imagens Docker personalizadas, permitindo definir a sequência exata de etapas necessárias para construir um ambiente consistente e reproduzível. Comandos como FROM, RUN, COPY, CMD e ENV ajudam a criar imagens adaptadas às suas necessidades. Já o Docker Compose simplifica a configuração e orquestração de containers, permitindo lançar serviços complexos de forma rápida e confiável. ## FAQ - **Q1: O que é um Dockerfile?** Um Dockerfile é um arquivo de texto com instruções que definem como construir uma imagem Docker. Ele automatiza a criação de ambientes para aplicações. - **Q2: Por que usar um Dockerfile em vez de imagens prontas?** Imagens prontas economizam tempo, mas o Dockerfile permite personalizar a imagem, instalar dependências específicas e garantir consistência em qualquer ambiente. - **Q3: Quais são os principais comandos de um Dockerfile?** **FROM** — especifica a imagem base; - **RUN** — executa comandos no processo de build; - **COPY** — copia arquivos do host para o container; - **CMD** — define o comando padrão ao iniciar o container; - **ENV** — define variáveis de ambiente; - **WORKDIR** — define o diretório de trabalho no container; - **USER** — troca o usuário que executa comandos. - **Q4: Como criar uma imagem a partir de um Dockerfile?** Use: ```bash docker build -t nome_imagem . ``` - **Q5: Qual a relação entre Docker Compose e Dockerfile?** O Dockerfile constrói a imagem, enquanto o Docker Compose configura como os containers vão rodar (portas, variáveis, dependências). - **Q6: Posso usar Dockerfiles em implantações na nuvem?** Sim! Dockerfiles são ideais para cloud. Depois de criada, a imagem pode ser enviada para um registro e executada em servidores na nuvem, VPS ou plataformas de orquestração. - **Q7: Como atualizar uma imagem Docker existente?** Basta modificar o Dockerfile e reconstruir a imagem com docker build -t nome_imagem .. Containers antigos precisam ser recriados a partir da nova imagem. https://serverspace.com.br/support/help/como-corrigir-erros-de-certificado-guia-de-certificados-ssl-e-de-autoridades-certificadoras-confiaveis.md Guia completo para corrigir erros de certificado SSL e problemas de certificados raiz confiáveis no Linux e Windows. Aprenda a atualizar certificados, adicionar certificados autoassinados e configurar Git e Python para conexões seguras. Ao trabalhar com serviços HTTPS no Linux, pode ocorrer um erro de certificado, problema de certificado SSL ou falha ao verificar o primeiro certificado. Isso geralmente significa que o sistema não consegue verificar a autenticidade do certificado SSL do servidor. Neste artigo, vamos analisar as causas do erro e as formas de corrigi-lo para clientes baseados em Windows e Linux! ## Linux Passo 1. Verifique o texto do erro Ao conectar via curl, wget, git ou outros utilitários, podem aparecer erros como: ``` SSL certificate problem: unable to get local issuer certificate SSL certificate problem: self signed certificate certificate verify failed ``` Isso significa que: - Não há certificado raiz no sistema, - O certificado não é confiável, ou - Foi instalado um certificado autoassinado sem cadeias confiáveis. Passo 2. Atualize os certificados raiz A causa mais comum é a falta ou desatualização de certificados raiz confiáveis. Para CentOS / RHEL: ```bash sudo yum install -y ca-certificates sudo update-ca-trust force-enable sudo update-ca-trust extract ``` Para Ubuntu / Debian: ```bash sudo apt update sudo apt install -y ca-certificates sudo update-ca-certificates ``` Captura de tela nº 1 — Autoridade Certificadora Passo 3. Verifique o certificado manualmente Você pode verificar a cadeia de certificados SSL usando o openssl: ``` openssl s_client -connect example.com:443 ``` Captura de tela nº 2 — Conexão de teste SSL Se a saída mostrar **verify error:num=20:unable to get local issuer certificate**, significa que a cadeia está incompleta ou o cliente não possui uma CA confiável. Passo 4. Adicione um certificado autoassinado Se você usar seu próprio certificado (por exemplo, de uma VPN ou proxy próprio), será necessário adicioná-lo ao armazenamento confiável: Copie o certificado para o armazenamento do sistema: ``` sudo cp my-ca.crt /etc/pki/ca-trust/source/anchors/ ``` ``` sudo update-ca-trust extract ``` Para Ubuntu: ``` sudo cp my-ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates ``` Passo 5. Ignorar verificação (não recomendado) Se o certificado estiver temporariamente indisponível ou você estiver em um ambiente isolado, é possível desativar a verificação temporariamente: ```bash curl -k https://example.com ``` Captura de tela nº 3 — Ignorando o erro O parâmetro -k permite estabelecer conexão ignorando erros, porém pode não funcionar se o servidor tiver HSTS ativado! ```bash git config --global http.sslVerify false ``` Não use isso em produção — compromete a segurança da conexão. ## Windows Passo 1. Verifique o texto do erro O erro geralmente aparece assim: "SSL certificate problem: unable to get local issuer certificate certificate verify failed: unable to get local issuer certificate self signed certificate in certificate chain" ou "This site is not secure" Passo 2. Atualize os certificados raiz O Windows atualiza automaticamente os certificados raiz via Windows Update. Se as atualizações automáticas estiverem desativadas: Certifique-se de que o serviço Windows Update (wuauserv) esteja habilitado. Atualize manualmente o sistema: ``` control update ``` Ou via PowerShell: ``` Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force Install-Module -Name PSWindowsUpdate -Force Install-WindowsUpdate -AcceptAll -AutoReboot ``` Passo 3. Instale um certificado personalizado (autoassinado) Se estiver usando proxy, rede corporativa ou servidor de teste com certificado SSL autoassinado: Adicione o certificado manualmente: - Clique duas vezes no arquivo .crt. - Clique em Instalar certificado. - Escolha: Computador local ou Colocar em: Autoridades de certificação raiz confiáveis. Confirme a instalação. Para instalar em nome do computador local, são necessários privilégios de administrador. Passo 4. Para Git: confiança em certificados O Git no Windows usa seu próprio curl e openssl e pode não reconhecer certificados do sistema. Para adicionar seu próprio .crt: Coloque o certificado em uma pasta, por exemplo: ``` C:\Program Files\Git\mingw64\ssl\certs\my-ca.crt ``` Edite o arquivo: ``` C:\Program Files\Git\mingw64\ssl\cert.pem ``` Adicione o conteúdo do .crt ao final do arquivo. Ou especifique manualmente: ```bash git config --global http.sslCAInfo "C:/path/to/my-ca.crt" ``` Passo 5. Para Python / pip Se ao instalar pacotes aparecer: ``` SSL: CERTIFICATE_VERIFY_FAILED ``` Use: ```bash python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package_name ``` Ou adicione o caminho para sua CA: ``` set SSL_CERT_FILE=C:\path\to\my-ca.crt ``` Passo 6. Desativar verificação temporariamente (não recomendado) Para curl: ```bash curl -k https://example.com ``` Para Git: ```bash git config --global http.sslVerify false ``` O erro de certificado geralmente ocorre pela falta de certificados raiz confiáveis ou pelo uso de certificados autoassinados. Neste artigo, vimos como atualizar certificados raiz, adicionar os seus próprios e corrigir o erro com segurança. ## Conclusão Erros de certificado são um obstáculo comum ao trabalhar com serviços HTTPS em Linux e Windows. Normalmente acontecem por falta, desatualização ou não confiabilidade de certificados raiz, ou pelo uso de certificados autoassinados. Atualizando certificados raiz, adicionando certificados personalizados ao armazenamento confiável ou configurando corretamente softwares como Git e Python, é possível resolver esses problemas com segurança. Embora seja possível ignorar a verificação SSL temporariamente, isso só deve ser usado em ambientes isolados ou de teste, já que compromete a segurança da conexão. ## FAQ - **Q1: O que causa erros de certificado no Linux e no Windows?** Na maioria das vezes, por ausência ou desatualização de certificados raiz, certificados autoassinados ou cadeias de certificados incompletas. - **Q2: Como atualizar certificados raiz no Linux?** No CentOS/RedHat: ```bash sudo yum install -y ca-certificates ``` ``` sudo update-ca-trust force-enable[/code [code]sudo update-ca-trust extract ``` No Ubuntu/Debian: ```bash sudo apt update ``` ```bash sudo apt install -y ca-certificates ``` ``` sudo update-ca-certificates ``` - **Q3: Como confiar em um certificado autoassinado?** Copie o certificado para o armazenamento confiável e atualize o banco de certificados. Exemplo no Ubuntu: ``` sudo cp my-ca.crt /usr/local/share/ca-certificates/ ``` ``` sudo update-ca-certificates ``` - **Q4: Posso ignorar a verificação de certificado?** Sim, com comandos como curl -k ou git config --global http.sslVerify false, mas não é recomendado em produção porque compromete a segurança. - **Q5: Como corrigir erros de certificado no Git no Windows?** Coloque seu certificado .crt na pasta de certificados do Git ou configure o Git para usá-lo explicitamente: ```bash git config --global http.sslCAInfo "C:/path/to/my-ca.crt" ``` - **Q6: Como corrigir erros de certificado no Python/pip?** Use a opção --trusted-host ou configure a variável de ambiente SSL_CERT_FILE: ```bash python -m pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package_name ``` ``` set SSL_CERT_FILE=C:\path\to\my-ca.crt ``` - **Q7: Por que não devo desativar a verificação SSL permanentemente?** Porque isso ignora verificações de certificado e deixa sua conexão vulnerável a ataques man-in-the-middle e outros riscos de segurança. https://serverspace.com.br/about/blog/o-que-e-uma-cms-e-para-que-ela-serve.md Descubra o que é uma CMS e compare as mais populares — WordPress, Joomla e Drupal. Veja recursos, consumo de CPU/RAM, escalabilidade e dicas para escolher a melhor para o seu projeto. CMS (Content Management System) é um sistema de gerenciamento de conteúdo que permite criar, editar e publicar materiais em um site sem a necessidade de trabalhar diretamente com código. Ela funciona como uma "camada intermediária" entre o usuário e a parte técnica do site, facilitando o trabalho mesmo para quem não possui conhecimentos de desenvolvimento web. Ao contrário dos sites estáticos, onde as alterações precisam ser feitas manualmente nos arquivos HTML, a CMS oferece um painel administrativo prático, onde é possível adicionar artigos, carregar imagens, alterar menus ou configurar produtos em um catálogo — tudo isso sem precisar acionar um desenvolvedor. Hoje, as CMS são usadas não apenas para blogs pessoais e portais de notícias, mas também para lojas virtuais, sites corporativos, plataformas educacionais e até mesmo recursos governamentais. Sua popularidade se deve à combinação de flexibilidade, escalabilidade e acessibilidade: instalar e colocar em funcionamento a versão básica de uma CMS popular pode levar apenas alguns minutos. ## Como a CMS afeta os recursos da hospedagem O desempenho de um site depende não apenas da qualidade do código, mas também de quantos recursos do servidor a CMS escolhida consome. **Principais recursos:** - **CPU** — responsável por processar as solicitações. Quanto mais complexa a CMS e maior o número de usuários simultâneos, maior a carga. - **RAM** — armazena dados necessários para o funcionamento rápido do site. A falta de memória pode causar lentidão no carregamento das páginas. - **Espaço em disco** — usado para armazenar arquivos do site, imagens, vídeos, backups e banco de dados. - **Banco de dados** — armazena conteúdo textual, configurações e dados estruturados. Quanto mais tabelas e registros, maior a carga no SGBD. **Fatores que influenciam o consumo de recursos:** - **Temas e templates** — layouts complexos exigem mais recursos. - **Plugins e módulos** — aumentam funcionalidades, mas podem reduzir a velocidade. - **Atualizações** — novas versões podem exigir mais poder de processamento. É importante lembrar que duas CMS iguais podem ter desempenho diferente em hospedagens diferentes. SSDs rápidos, configuração otimizada do servidor e capacidade de escalabilidade ajudam a reduzir o impacto do consumo de recursos no funcionamento do site. ## Visão geral das CMS mais populares Entre centenas de sistemas de gerenciamento de conteúdo disponíveis, alguns ocupam posição de destaque no mundo há muitos anos. Vamos analisar três deles — WordPress, Joomla e Drupal — do ponto de vista de funcionalidades, facilidade de uso, consumo de recursos e áreas de aplicação. WordPress O [WordPress](https://serverspace.com.br/solutions/wordpress-hosting.md) é a CMS mais popular do mundo, utilizada em mais de 40% de todos os sites. Criado inicialmente para blogs, hoje ele suporta lojas virtuais, sites corporativos, portfólios e plataformas de ensino online. Seu ponto forte é a facilidade de instalação e um vasto ecossistema de temas e plugins. **Vantagens:** - Fácil de aprender — indicado até para iniciantes. - Grande variedade de temas e plugins — milhares de opções gratuitas e pagas. - Flexibilidade para criar qualquer tipo de site. - Comunidade ativa, com vasta documentação e fóruns de suporte. **Desvantagens** - Muitos plugins e temas pesados podem aumentar consideravelmente a carga no servidor. - Requer atualizações regulares para manter segurança e desempenho. Na configuração básica, o WordPress é relativamente leve e pode funcionar com apenas 1 CPU e 1 GB de RAM. Porém, ao usar temas pesados, muitos plugins e grande volume de conteúdo, a carga sobre CPU e RAM aumenta. Joomla O Joomla é uma CMS poderosa e flexível, voltada para portais, sites de notícias e comunidades online. Ele ocupa uma posição intermediária entre a simplicidade do WordPress e a complexidade técnica do Drupal, oferecendo muitos recursos já na instalação padrão. **Vantagens** - Sistema de gerenciamento de usuários avançado — ideal para portais com diferentes níveis de acesso. - Muitos recursos sem precisar instalar plugins — menus, categorias, módulos e suporte multilíngue. - Escalabilidade para projetos em crescimento. **Desvantagens** - Curva de aprendizado mais íngreme que a do WordPress. - Painel administrativo pode parecer confuso para iniciantes. - Menor variedade de temas prontos em relação ao WordPress. O Joomla consome mais recursos que o WordPress em sua forma básica. A configuração recomendada é de pelo menos 2 CPU e 2 GB de RAM. Com muitos módulos e usuários simultâneos, a carga no servidor pode aumentar rapidamente. Drupal O Drupal é uma CMS voltada para flexibilidade, escalabilidade e segurança. É frequentemente usada em portais corporativos complexos, sites governamentais, plataformas educacionais e grandes lojas virtuais. **Vantagens** - Alto nível de segurança — atualizações regulares e padrões de código rigorosos. - Arquitetura flexível para criar funcionalidades sob medida. - Excelente para projetos de alta complexidade e tráfego intenso. **Desvantagens** - Alto nível técnico exigido para instalação e gerenciamento. - Menor número de temas e módulos prontos em comparação a outras CMS. - Configuração inicial mais trabalhosa O Drupal é o mais exigente em recursos entre os três. Para um funcionamento confortável, recomenda-se pelo menos 2–4 CPU e 4 GB de RAM. Em projetos de grande tráfego, a carga no servidor pode ser muito alta. ## Como escolher uma CMS considerando recursos e hospedagem Mesmo uma CMS simples pode se tornar "pesada" para o servidor se o projeto crescer rapidamente ou usar muitos módulos e plugins. O desempenho é influenciado pela complexidade do tema, volume do banco de dados, número de usuários simultâneos e qualidade do código. - **Pequenos sites** — blogs, páginas institucionais, landing pages — funcionam bem com WordPress. - **Portais médios e sites de notícias** — o Joomla é uma boa escolha, com mais recursos internos, mas exigindo mais poder do servidor. - **Sistemas complexos e de alta carga** — o Drupal é indicado, oferecendo escalabilidade e segurança, mas requerendo infraestrutura robusta. O fator decisivo é a infraestrutura: SSDs rápidos, processador moderno e RAM suficiente aceleram a CMS, e a escalabilidade evita quedas de desempenho em picos de tráfego. ## Serverspace: infraestrutura em nuvem para CMS Os [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) da Serverspace permitem configurar o ambiente para qualquer CMS — de blogs leves a portais corporativos de alto tráfego. O usuário define a quantidade de CPU, RAM e espaço em disco, podendo ampliar os recursos em minutos, sem precisar migrar o site. O [WordPress](https://serverspace.com.br/solutions/wordpress-hosting.md) está disponível no painel de controle como [One Click App](https://serverspace.com.br/services/1-click-app-marketplace.md), sendo instalado automaticamente em poucos minutos. Joomla e Drupal podem ser configurados manualmente, escolhendo o sistema operacional e as especificações do servidor. Entre os diferenciais da Serverspace estão a cobrança por hora (pagando apenas pelos recursos utilizados), data centers em vários países e a possibilidade de configurar uma rede CDN, garantindo carregamento rápido e otimização de tráfego em diferentes regiões. ### Tabela comparativa | CMS | Facilidade de uso | Consumo de recursos (CPU/RAM) | Escalabilidade | Indicado para | | --- | --- | --- | --- | --- | | WordPress | Baixa | Média | Alta | Blogs, sites corporativos, lojas virtuais | | Joomla | Média | Acima da média | Alta | Portais, sites de notícias, comunidades online | | Drupal | Alta | Alta | Muito alta | Portais corporativos, sites governamentais, plataformas educacionais | A escolha de uma CMS é um equilíbrio entre funcionalidades, facilidade de uso e exigências de recursos. Para alguns projetos, a prioridade é a simplicidade; para outros, escalabilidade e segurança; e, em certos casos, a possibilidade de personalização é o fator decisivo. Compreender o consumo de recursos ajuda a prever a infraestrutura necessária e como a CMS se comportará com o aumento do tráfego. Fazer a escolha certa desde o início evita migrações caras e indisponibilidades no futuro. Independentemente da CMS escolhida, é fundamental contar com uma infraestrutura confiável e escalável — a base para desempenho, estabilidade e crescimento sustentável do seu projeto. ## FAQ - **Por que o WordPress pode deixar um site lento?** O principal motivo é o uso excessivo de plugins e temas pesados. Cada plugin adiciona scripts, estilos e consultas ao banco de dados, aumentando o tempo de carregamento. Otimizar plugins, usar cache e uma CDN ajuda a reduzir a carga. - **É possível reduzir o consumo de recursos da CMS sem perder funcionalidades?** Sim. Use cache de páginas e consultas ao banco de dados, otimize imagens, minimize arquivos CSS e JS e substitua plugins pesados por alternativas mais leves. - **O que escolher para uma grande loja virtual — Joomla ou Drupal?** Se a prioridade for segurança e flexibilidade, opte pelo Drupal. O Joomla é mais rápido de aprender e pode ser suficiente para lojas de porte médio, se bem otimizado. - **Qual a importância de atualizar a CMS para desempenho e segurança?** As atualizações corrigem vulnerabilidades e otimizam o código. Mesmo pequenas melhorias podem reduzir a carga no servidor e acelerar o site. Adiar atualizações aumenta o risco de invasões e instabilidade. https://serverspace.com.br/about/blog/o-que-e-ci-cd-comparacao-de-solucoes.md Entenda CI/CD, veja como ele acelera o desenvolvimento e compare Jenkins, GitLab CI/CD e GitHub Actions em facilidade, complexidade e suporte à nuvem. CI/CD é um conjunto de práticas e ferramentas que automatizam a compilação, o teste e a entrega de alterações em um produto. Continuous Integration (CI) integra código de diferentes desenvolvedores em um repositório comum e o valida com testes automatizados a cada commit. Continuous Delivery/Deployment (CD) dá o próximo passo: prepara o release para implantação ou o implanta automaticamente nos ambientes de destino. A ideia de integração contínua veio do Extreme Programming no final da década de 1990 e ganhou ampla adoção nos anos 2000 com o surgimento de servidores de build e orquestração. Hoje, o CI/CD é padrão para equipes de qualquer tamanho, de startups a empresas enterprise. Por que isso é necessário na prática: - o ciclo "código → release" é acelerado; - o risco de regressões é reduzido por meio de testes automatizados; - diminui o número de operações manuais e erros "humanos"; - aumenta a repetibilidade e previsibilidade dos releases; - a equipe recebe feedback rápido (feedback loop) sobre a qualidade das mudanças. A seguir, veremos como o CI difere do CD e como essas práticas mudam o processo de desenvolvimento, e depois compararemos brevemente três soluções populares — Jenkins, GitLab CI/CD e GitHub Actions — em termos de usabilidade, complexidade e suporte a nuvem. ## Como o CI/CD afeta o processo de desenvolvimento CI/CD não é apenas teoria, mas uma cadeia automatizada de ações incorporada ao ciclo de desenvolvimento. Ela consiste em etapas sequenciais (pipeline) que são executadas a cada alteração no código-fonte. Em um pipeline de CI típico, acontecem: - **Build** — compilação ou preparação do projeto (por exemplo, criação de imagem Docker). - **Testes automatizados** — unitários, de integração, e2e. - **Análise estática de código** — linters, verificação de estilo, análise de vulnerabilidades. - **Relatório e notificações** — os desenvolvedores recebem os resultados no chat ou por e-mail. No pipeline de CD, adicionam-se: - Implantação em ambiente de teste — para QA manual ou automático. - Promoção (promote) do build para staging ou produção. - Verificações pós-deploy (por exemplo, smoke tests em produção). Efeito técnico para a equipe: - As mudanças passam pelo mesmo conjunto de verificações independentemente de quem as fez e quando. - Os ambientes (staging/production) sempre são implantados seguindo o mesmo processo, eliminando o "funciona na minha máquina, mas não no servidor". - Ao integrar com plataformas de nuvem, é possível escalar o pipeline — por exemplo, paralelizar testes em dezenas de máquinas agentes. Assim, o CI/CD transforma o processo de releases de um conjunto de etapas manuais para um mecanismo totalmente formalizado e reproduzível, aumentando diretamente a estabilidade e a velocidade do desenvolvimento. ## Soluções para CI/CD Existem dezenas de ferramentas que ajudam a implementar CI/CD no fluxo de trabalho. Vamos analisar três soluções populares, cada uma ocupando seu próprio nicho: Jenkins, GitLab CI/CD e GitHub Actions. **[Jenkins](https://www.jenkins.io/)** Um dos servidores CI/CD mais antigos e flexíveis de código aberto. Não é vinculado a um ecossistema ou linguagem específicos, o que o torna conveniente para cenários complexos e não padronizados. Graças à enorme biblioteca de plugins, o Jenkins pode ser integrado praticamente a qualquer ferramenta de desenvolvimento, sistema de controle de versão, mensageiro ou provedor de nuvem. Frequentemente usado em grandes empresas com arquitetura de microsserviços, onde é necessário coordenar dezenas de pipelines e integrar com Kubernetes, Ansible ou Terraform. Adequado para projetos com alto nível de customização — por exemplo, em implantações complexas de múltiplos estágios ou requisitos específicos de teste. Apesar das vantagens, o Jenkins exige instalação, configuração e administração manuais, o que aumenta a carga sobre a equipe. Não há versões SaaS diretas, mas ele pode ser facilmente implantado na nuvem e escalado conforme a carga. **[GitLab CI/CD](https://docs.gitlab.com/ci/)** Sistema de automação integrado diretamente à plataforma GitLab. Utiliza a mesma interface e repositórios do sistema de controle de versão, permitindo que as equipes configurem pipelines sem instalar serviços adicionais. Todos os cenários são descritos no arquivo YAML .gitlab-ci.yml, armazenado no repositório, garantindo transparência e controle de versão da configuração. A integração com o GitLab oferece uma vantagem óbvia — os desenvolvedores obtêm todo o ciclo DevOps em um só lugar: do gerenciamento de código à build, teste e deploy automáticos. Para começar, basta conectar o GitLab Runner, que pode funcionar em servidores próprios ou na nuvem. Isso torna o sistema conveniente tanto para pequenas equipes quanto para grandes organizações com infraestrutura distribuída. O GitLab CI/CD oferece modo SaaS e instalação self-hosted. No primeiro, o serviço é implantado e mantido pelo GitLab, e os usuários usam a interface web e os recursos fornecidos. No segundo, a empresa controla totalmente o ambiente, algo importante para projetos com altos requisitos de segurança e integração com sistemas internos. Ao trabalhar com nuvem, o GitLab CI/CD se conecta facilmente a plataformas cloud, permitindo escalar a execução de tarefas conforme a carga. **[GitHub Actions](https://github.com/features/actions)** Plataforma de automação integrada ao GitHub, que permite executar processos de CI/CD diretamente no repositório. A configuração é feita por arquivos YAML na pasta .github/workflows, e a execução das tarefas é baseada em gatilhos — eventos no repositório, como commit, abertura de pull request ou release. A principal vantagem do GitHub Actions é a forte integração com o ecossistema GitHub. Os desenvolvedores podem usar passos prontos de um vasto marketplace, combiná-los e criar rapidamente seus próprios cenários. Assim, é possível configurar builds, testes e deploys automáticos na nuvem em poucos minutos. O serviço funciona em formato SaaS, ou seja, os usuários não administram a infraestrutura — todos os recursos são fornecidos pelo GitHub. Porém, para empresas que precisam de controle total, há suporte para self-hosted runners, permitindo executar pipelines em servidores próprios ou nuvens privadas. O GitHub Actions se integra facilmente a provedores de nuvem e é adequado tanto para projetos open source quanto para repositórios privados. ## Como escolher CI/CD: SaaS ou self-hosted Ao implementar CI/CD, as empresas frequentemente escolhem entre usar soluções SaaS e hospedar o sistema em seus próprios servidores. O SaaS (por exemplo, GitLab SaaS ou GitHub Actions) elimina a necessidade de administrar a infraestrutura. Você obtém uma plataforma pronta com atualizações automáticas, integrações e suporte. Essa abordagem acelera o início, mas impõe limitações de personalização e pode ser mais cara em grande escala. A hospedagem própria (por exemplo, Jenkins ou GitLab self-hosted) oferece controle total sobre configuração, segurança e recursos. Porém, requer servidores dedicados, configuração, monitoramento e manutenção. A escolha ideal depende do tamanho dos projetos, requisitos de segurança e recursos da equipe. Projetos pequenos e médios geralmente optam por SaaS pela simplicidade, enquanto grandes empresas com requisitos rígidos de dados preferem hospedagem própria. ## Serverspace: infraestrutura para CI/CD Os [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) da Serverspace permitem implantar sistemas CI/CD em qualquer formato — de ambientes de teste leves para startups a pipelines de produção em larga escala para projetos corporativos. Você define o número de CPUs, RAM e espaço em disco, e, com o aumento da carga, pode ampliar os recursos em minutos, sem migrações ou downtime. Exemplos: - **Jenkins** — execução de testes paralelos em vários builds simultaneamente, com publicação automática da imagem Docker em um registro privado. - **GitLab CI/CD** — implantação automática de um servidor de staging na nuvem Serverspace a cada merge request e remoção após os testes, economizando recursos. - **GitHub Actions** — integração com CDN para entrega rápida de arquivos estáticos a edge nodes no release. A rede distribuída de [data centers](https://serverspace.com.br/infrastructure/data-centers.md) em vários países e a integração com CDN garantem entrega rápida de artefatos e operação estável para equipes em diferentes regiões. A tarifação por hora permite iniciar ambientes de build poderosos apenas quando realmente necessários, economizando orçamento. Ferramentas integradas de monitoramento e escalabilidade automática ajudam a manter a estabilidade mesmo com picos repentinos no número de builds ou testes. ## Comparação de soluções CI/CD em um só lugar Já analisamos as características de cada ferramenta, seus pontos fortes e fracos, bem como as opções de implantação. Para facilitar a comparação com suas necessidades, reunimos os principais parâmetros em uma tabela. Ela ajuda a avaliar rapidamente a usabilidade, complexidade e integração com a nuvem de cada solução. | Solução | Usabilidade | Complexidade | Suporte a nuvem | | --- | --- | --- | --- | | Jenkins | Configuração flexível, muitos plugins | Alta — exige configuração e administração manuais | Suporte à maioria das nuvens via plugins e integrações | | GitLab CI/CD | Integrado ao repositório, conveniente para DevOps | Média — maioria das funções disponíveis "out of the box" | Suporte nativo a nuvem, com opções SaaS e self-hosted | | GitHub Actions | Configuração simples via YAML, integração com GitHub | Baixa — fácil para iniciantes | Integração total com GitHub, suporte a nuvem via marketplace de ações | CI/CD não é apenas um termo da moda, mas uma abordagem fundamental que ajuda as equipes a lançar produtos mais rapidamente e com menos erros. A escolha da ferramenta depende das tarefas, do orçamento e do nível de preparo da equipe. O Jenkins oferece máxima flexibilidade para arquiteturas complexas, o GitLab CI/CD garante integração estreita com gestão de código e tarefas, e o GitHub Actions é ideal para automação rápida dentro do ecossistema GitHub. Pipelines bem configurados só funcionarão a seu favor com configuração adequada, atualização regular e controle de qualidade dos testes. Independentemente da ferramenta escolhida, infraestrutura confiável e escalável é a chave para entrega estável e rápida do produto. ## FAQ - **É possível combinar diferentes soluções de CI/CD?** Sim, mas isso complica a manutenção. Algumas empresas usam Jenkins para pipelines complexos e GitHub Actions para pequenas automações, mas, na maioria dos casos, é melhor focar em uma só solução. - **O que escolher para uma pequena equipe de startup?** Na maioria dos casos, GitHub Actions ou GitLab CI/CD, pois são mais fáceis de aprender e implementar sem infraestrutura separada. - **Vale a pena implantar Jenkins na nuvem?** Sim, se quiser manter a flexibilidade do Jenkins e reduzir a carga nos recursos locais. Por exemplo, na Serverspace é possível levantar rapidamente um servidor em nuvem para Jenkins com os parâmetros necessários e escalá-lo conforme a carga. - **Como ter certeza de que o CI/CD realmente economiza tempo?** Monitore métricas: velocidade de deploy, número de erros em produção, tempo de resposta a bugs. Se melhorarem após a implementação, significa que os pipelines estão funcionando de forma eficiente. https://serverspace.com.br/about/blog/como-escolher-um-servidor-para-desenvolvimento-local-vps-ou-vdi.md Descubra as diferenças entre desenvolvimento local, VPS e VDI. Vantagens, desvantagens, exemplos de uso e recomendações para escolher a melhor opção para o seu projeto. No desenvolvimento de software, o ambiente onde o código é executado não é apenas um "lugar para escrever linhas". O fato de você usar um computador local, um VPS em nuvem ou uma área de trabalho virtual (VDI) influencia na velocidade de trabalho, na facilidade de interação com a equipe e na segurança do projeto. Cada abordagem tem seus pontos fortes e fracos. O desenvolvimento local oferece controle total e independência da rede, o VPS garante acesso de qualquer lugar e escalabilidade flexível, enquanto o VDI oferece gerenciamento centralizado e um ambiente idêntico para todos os membros da equipe. Neste artigo, vamos explicar as diferenças entre essas opções, dar exemplos de uso e apresentar recomendações sobre como escolher o formato mais adequado para o seu projeto. ## Desenvolvimento local O ambiente local é aquele em que tudo — do IDE ao banco de dados — está instalado diretamente no seu computador ou notebook. Essa abordagem é comum para muitos desenvolvedores, especialmente no início de um projeto. **Vantagens:** - Controle total sobre a configuração e as ferramentas instaladas. - Nenhuma dependência da conexão com a internet. - Latência mínima ao trabalhar com código e testes. **Desvantagens:** - Limitação pela capacidade do seu dispositivo. - Dificuldade de sincronizar ambientes entre desenvolvedores. - Risco de perda de dados em caso de falha de hardware ou dano ao disco. O desenvolvimento local é especialmente conveniente para projetos pequenos, experimentos ou trabalho em condições de internet instável. No entanto, com o crescimento da equipe e aumento das exigências de desempenho, a migração para soluções em nuvem muitas vezes se torna inevitável. ## VPS (Virtual Private Server) para desenvolvimento O [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) oferece um servidor remoto com recursos dedicados, no qual é possível configurar um ambiente de desenvolvimento completo. O acesso é feito por SSH ou [painel de controle](https://serverspace.com.br/infrastructure/control-panel.md), e a configuração depende apenas das suas necessidades. **Vantagens:** - Escalabilidade — é possível aumentar CPU, RAM e espaço em disco em minutos. - Acesso de qualquer lugar do mundo, facilitando o trabalho colaborativo. - Isolamento da máquina principal, aumentando a segurança. - Possibilidade de simular a infraestrutura de produção para testes. **Desvantagens:** - Dependência da qualidade da conexão com a internet. - Necessidade de conhecimentos básicos de administração de servidor. - Possíveis custos adicionais em caso de alta demanda. O VPS é indicado para desenvolvimento em equipe, [testes](https://serverspace.com.br/solutions/nuvem-para-desenvolvimento.md) de microsserviços, processos de CI/CD e projetos que exigem um ambiente estável com recursos garantidos. Diferente de uma máquina local, o VPS é facilmente escalável e rapidamente restaurado a partir de backup, reduzindo o risco de indisponibilidade. ## VDI (Virtual Desktop Infrastructure) para desenvolvimento O VDI fornece uma área de trabalho completa na nuvem, à qual é possível se conectar por um aplicativo cliente ou navegador. Basicamente, é o seu "computador virtual" com sistema operacional pré-instalado, acessível de qualquer lugar do mundo. **Vantagens:** - Total padronização do ambiente — todos os desenvolvedores trabalham na mesma configuração. - Alto nível de segurança — os dados permanecem no data center e não são armazenados no computador local. - Conveniente para projetos com requisitos rigorosos de controle de acesso. **Desvantagens:** - Dependência da velocidade e estabilidade da internet. - Custo mais alto em comparação com o VPS. - Flexibilidade de configuração limitada em alguns provedores. O VDI é especialmente útil em grandes organizações com equipes remotas e normas rigorosas de segurança, onde é importante gerenciar o ambiente de forma centralizada. No entanto, para equipes pequenas e startups, muitas vezes o VPS é mais vantajoso, oferecendo mais flexibilidade e menos custos na fase inicial. ## Como escolher o formato para desenvolvimento Resumindo, os principais parâmetros na escolha dependem das suas tarefas, do orçamento e do estilo de trabalho. Vamos comparar o servidor local, o VPS e o VDI pelos principais critérios para facilitar a decisão. | Critério | Servidor local | VPS (Virtual Private Server) | VDI (Virtual Desktop Infrastructure) | | --- | --- | --- | --- | | Desempenho | Vinculado ao local físico | Acessível de qualquer lugar com internet | Acessível de qualquer lugar, preservando o ambiente | | Suporte ao trabalho em equipe | Limitado, exige configuração de rede | Fácil de compartilhar recursos e ambientes com a equipe | Sincronização total e ambiente único para todos | | Custo | Alto gasto inicial na compra | Pagamento por recursos | Geralmente mais caro devido à infraestrutura e licenças | | Flexibilidade de escalabilidade | Baixa | Alta — aumento de CPU/RAM em minutos | Média — depende do provedor | | Necessidade de manutenção | Total responsabilidade do usuário | Administração mínima ou a cargo do provedor | Administração pelo provedor | | Melhor para... | Desenvolvimento individual, projetos offline, experimentos | Desenvolvimento em equipe, CI/CD, ambientes de teste e produção | Grandes empresas com equipes remotas e alta segurança | ## Serverspace: infraestrutura em nuvem para desenvolvimento A Serverspace oferece soluções flexíveis para desenvolvimento, teste e implantação de projetos sem a necessidade de manter um parque de servidores próprio. Em vez de gastar com compra e manutenção de hardware, você obtém recursos computacionais prontos, acessíveis de qualquer lugar do mundo. Para a maioria dos cenários de desenvolvimento, os [servidores VPS](https://serverspace.com.br/solutions/nuvem-para-desenvolvimento.md) são ideais — máquinas virtuais com recursos dedicados (CPU, RAM, espaço em disco), onde é possível configurar o ambiente para tarefas específicas: desenvolvimento web, serviços de backend, bancos de dados ou processos de CI/CD. Por exemplo, desenvolvedores frontend podem usar o VPS para testar diferentes versões do Node.js, enquanto equipes que trabalham com microsserviços podem implantar contêineres Docker isolados em um ambiente de teste. Se for necessário acesso a um ambiente de trabalho completo com interface gráfica, é conveniente usar [acesso RDP](https://serverspace.com.br/services/remote-desktop.md) a um servidor em nuvem. Esse formato é ideal, por exemplo, para desenvolvimento de aplicativos Windows, trabalho com IDEs gráficas ou ferramentas que exigem alto desempenho de hardware — como projetos no AutoCAD ou no Unity. **Vantagens da Serverspace para desenvolvedores:** - Implantação rápida do ambiente (a partir de 20 segundos). - Cobrança por hora — você paga apenas pelo tempo de uso do servidor. - Rede global de data centers — baixa latência para trabalho em diferentes regiões. - Escalonamento de recursos sem migração ou interrupção. - Suporte a sistemas operacionais populares (Linux, Windows) e integração com serviços em nuvem. Graças a essa abordagem, os desenvolvedores podem escolher o formato mais adequado: desde VPS leves para testes até servidores em nuvem de alto desempenho com acesso remoto, ideais para trabalho em equipe e tarefas complexas. A escolha entre servidor local, VPS e VDI depende das tarefas, do orçamento e do formato de trabalho da equipe. O ambiente local oferece controle total e autonomia, mas é limitado pela capacidade do dispositivo. O VPS fornece flexibilidade e escalabilidade, permitindo implantar o ambiente na nuvem e trabalhar de qualquer lugar. O VDI é voltado para gerenciamento centralizado e um ambiente de trabalho completo na nuvem, mas exige internet estável e costuma ter custo mais alto. Para a maioria dos desenvolvedores, a solução ideal é uma abordagem híbrida: desenvolvimento local para iteração e testes rápidos, e servidores em nuvem para CI/CD, colaboração e escalonamento à medida que as demandas crescem. O mais importante é considerar não apenas as características técnicas, mas também a facilidade de integração ao seu fluxo de trabalho, os custos de manutenção e os requisitos de segurança dos dados. ## FAQ - **É possível combinar desenvolvimento local e VPS?** Sim, muitas equipes fazem isso: o trabalho básico é feito localmente, enquanto a compilação, os testes e o deploy são realizados no VPS em nuvem. - **O que escolher para uma equipe com diferentes sistemas operacionais (Windows, Linux)?** Um VPS com acesso RDP ou VNC permite conexão a partir de qualquer sistema operacional, garantindo um ambiente unificado. - **Quando o uso de VDI é justificado?** O VDI deve ser considerado quando o gerenciamento centralizado e a segurança são essenciais, como em ambientes corporativos com políticas de acesso rigorosas. - **Como saber se os recursos de um VPS serão suficientes para desenvolvimento?** Comece com a configuração mínima e use o monitoramento de carga. Na nuvem, os recursos podem ser aumentados sem tempo de inatividade. https://serverspace.com.br/about/blog/servidores-com-gpu-quando-eles-realmente-sao-necessarios-e-como-escolher.md Descubra quando um servidor com GPU realmente é necessário e como escolher a configuração certa. Veja diferenças entre CPU e GPU, casos de uso como IA, renderização e simulações, e quando optar por VPS em nuvem para economizar recursos. Quando ouvimos a palavra "servidor", na maioria das vezes imaginamos um computador potente que trabalha 24 horas em algum data center e processa solicitações de usuários. Normalmente, esses servidores utilizam processadores (CPU) — núcleos de processamento central que lidam com qualquer tarefa cotidiana: sites, bancos de dados, aplicativos de negócios. Mas existem tarefas em que a CPU já não é suficiente. Treinamento de redes neurais, renderização 3D complexa, simulações em ciência e engenharia — todas essas áreas exigem enorme poder de processamento paralelo. É aí que entram os processadores gráficos (GPU). Eles podem ser encontrados não apenas em placas de vídeo para jogos, mas também em soluções de servidor, onde se transformam em verdadeiros aceleradores de computação. É importante entender: um servidor com GPU não é uma "atualização obrigatória" para qualquer projeto. Ele só é necessário quando a carga realmente exige aceleração na placa de vídeo. Em todos os outros casos, o uso de GPU será um desperdício de recursos. ## CPU vs GPU: qual é a diferença Para entender por que uma placa de vídeo é adicionada a um servidor, vale lembrar como funcionam CPU e GPU. **CPU (Central Processing Unit)** — é o "cérebro" universal do computador. Seus núcleos são poderosos, mas poucos em número. A CPU lida perfeitamente com tarefas sequenciais: processar solicitações de usuários, executar a lógica de negócios de um aplicativo, trabalhar com bancos de dados. Quando é necessário processar operações diferentes, uma após a outra, a CPU faz isso impecavelmente. **GPU (Graphics Processing Unit)** funciona de outra forma. Ela contém milhares de pequenos núcleos, que individualmente são mais fracos que um núcleo de CPU, mas juntos lidam muito bem com cálculos paralelos. Isso significa que a GPU pode processar simultaneamente um grande número de operações idênticas — por exemplo, multiplicar matrizes ao treinar uma rede neural ou calcular pixels em um render 3D. Em resumo: - **CPU** — é um faz-tudo, mas trabalha em sequência. - **GPU** — é uma equipe de ajudantes que podem executar o mesmo trabalho ao mesmo tempo. Portanto, quando se trata de tarefas computacionais com grandes volumes de dados, um servidor com GPU pode acelerar os processos dezenas ou até centenas de vezes. Mas se a tarefa não envolve cálculos paralelos em massa, a CPU continua sendo a opção mais prática e econômica. ## Quando um servidor com GPU é realmente necessário O processador gráfico em um servidor é uma ferramenta para tarefas específicas. Se a carga estiver relacionada a grandes volumes de cálculos semelhantes, sem GPU não se vai muito longe. Eis os principais cenários: - **Treinamento de redes neurais e inferência.** Modelos de aprendizado de máquina e redes neurais profundas exigem um número enorme de operações com matrizes. A GPU as executa em paralelo, reduzindo o tempo de treinamento de semanas para dias, ou até horas. - **Renderização de vídeo e gráficos 3D.** Estúdios que trabalham com CGI, VFX e visualização arquitetônica usam GPU para acelerar os cálculos da cena e também para renderização interativa. - **Estações de trabalho virtuais com gráficos (VDI).** Quando empresas migram funcionários para a nuvem, designers, arquitetos e engenheiros precisam de uma área de trabalho remota com gráficos completos. A GPU garante o funcionamento fluido de aplicativos como AutoCAD ou SolidWorks. - **Simulações científicas e modelagem.** Física, química, biologia e cálculos de engenharia — de modelagem molecular a aerodinâmica. A GPU permite processar cálculos complexos mais rapidamente e de forma mais econômica do que clusters de CPU. - **Game streaming e serviços interativos.** Plataformas de streaming e serviços de jogos utilizam servidores com GPU para fornecer aos usuários gráficos de alta qualidade em tempo real. Tabela: tarefas e configuração mínima de GPU | Tarefa | GPU mínima | Memória de vídeo (VRAM) | | --- | --- | --- | | Treinamento de pequenas redes neurais | NVIDIA RTX 3060/3070 | 8–12 GB | | Processamento de imagens, inferência | NVIDIA RTX 3080/3090 | 12–24 GB | | Renderização 3D, VFX | NVIDIA RTX A6000 / 4090 | 24–48 GB | | Simulações científicas, modelagem | NVIDIA A100 | 40–80 GB | | Treinamento de grandes modelos LLM | NVIDIA H100 | 80–120 GB | ## Quando a GPU não é necessária Apesar de todas as vantagens dos processadores gráficos, nem todo projeto precisa de um servidor com GPU. Em muitos casos, um VPS comum ou servidor em nuvem é suficiente. - **Sites e lojas virtuais.** Mesmo um grande e-commerce com milhares de visitantes por hora funciona perfeitamente em servidores com CPU. A carga principal recai sobre o processamento de solicitações, o trabalho do banco de dados e a entrega de conteúdo — a GPU não traz vantagem aqui. - **Portais corporativos e CRM.** Aplicativos internos de negócios, sistemas de gestão documental, CRM e ERP usam recursos computacionais padrão. Para eles, estabilidade, escalabilidade e disponibilidade são mais importantes do que processamento paralelo. - **Bancos de dados e análise.** O trabalho com SQL, relatórios, logs ou sistemas de BI é realizado com eficiência em servidores de CPU. GPU não acelera esses processos, apenas encarece a infraestrutura. - **E-mail e comunicações.** Servidores de e-mail, mensageiros corporativos e chats de suporte são cenários clássicos para VPS e nuvem. ## Onde usar soluções em nuvem comuns Se a sua tarefa estiver relacionada a sites, aplicativos de negócios, bancos de dados ou infraestrutura corporativa, servidores com GPU serão desnecessários. É muito mais vantajoso e prático usar [VPS em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), onde você paga apenas pelos recursos necessários. Por exemplo, no Serverspace é possível implantar rapidamente um servidor virtual com cobrança por hora, escolher a configuração ideal para a carga e não se preocupar com tráfego — ele não é tarifado. A plataforma funciona em [data centers](https://serverspace.com.br/infrastructure/data-centers.md) ao redor do mundo e garante SLA de 99,9%, de modo que os recursos estão sempre disponíveis quando você precisa. ## Como escolher um servidor com GPU Mesmo quando fica claro que a GPU é realmente necessária, escolher a configuração certa pode ser uma tarefa difícil. Diferentes placas têm arquiteturas, quantidades de memória e especializações distintas. Para não pagar a mais nem enfrentar limitações, é importante considerar alguns parâmetros-chave. - **Memória de vídeo (VRAM).** É o principal indicador para tarefas com grandes volumes de dados. Se a VRAM não for suficiente, o processo recorrerá constantemente à memória RAM do servidor, o que diminuirá a velocidade. Para inferência de pequenos modelos, 8–12 GB são suficientes. - Para renderização e redes neurais complexas, o ideal é 24–48 GB. - Para LLM e simulações de grande escala, 80 GB ou mais. - **Arquitetura e suporte a bibliotecas.** A maioria dos frameworks populares de ML (TensorFlow, PyTorch) é otimizada para NVIDIA CUDA. A AMD desenvolve o ROCm, mas o suporte ainda é limitado. Para deep learning, a NVIDIA continua sendo o padrão de fato. - **Número de GPUs no servidor.** Às vezes, uma placa é suficiente, mas para treinamento distribuído de modelos ou renderização em massa, pode ser mais vantajoso ter várias GPUs conectadas via NVLink ou PCIe. - **Equilíbrio CPU e GPU.** A GPU acelera operações paralelas, mas a CPU ainda gerencia a lógica da tarefa. Se o processador for muito fraco, parte do tempo a GPU ficará ociosa. O ideal é escolher configurações onde a CPU corresponda à potência da placa de vídeo. - **Tarifação e escalabilidade.** Comprar "hardware" custa caro e exige manutenção. Por isso, a nuvem costuma ser mais vantajosa: você pode alugar uma GPU potente por alguns dias para treinar o modelo e depois mudar para um VPS comum para inferência ou execução do aplicativo. ### Conclusão Servidores com GPU são uma ferramenta poderosa, mas não universal. Eles se destacam onde há necessidade de cálculos paralelos: treinamento de redes neurais, renderização, simulações. Mas para a maioria das tarefas de negócios — sites, CRM, aplicativos corporativos — servidores com CPU ou VPS são suficientes. Portanto, o ponto de partida não deve ser a escolha do hardware, mas sim a análise das suas tarefas. Se o projeto exige gráficos ou inteligência artificial, vale a pena considerar GPU. Se o objetivo é a operação estável de um site ou negócio, um VPS confiável em nuvem é suficiente. É por isso que muitas empresas optam por plataformas em nuvem como o Serverspace para serviços do dia a dia e recorrem a GPU apenas quando realmente necessário. Essa abordagem permite otimizar custos e usar os recursos exatamente onde eles trazem o máximo retorno. ## FAQ - **Qual a diferença entre um servidor com GPU e um servidor comum?** Um servidor com GPU é equipado com placas gráficas para cálculos paralelos. Ele acelera tarefas como treinamento de redes neurais e renderização, onde a CPU não é suficiente. - **É possível rodar jogos em um servidor com GPU?** Tecnicamente sim, mas GPUs de servidor não são feitas para entretenimento, e sim para cálculos. Elas são usadas para tarefas profissionais, não para gaming. - **Quando um VPS é suficiente em vez de GPU?** Se o projeto envolve sites, bancos de dados, e-mail ou aplicativos de negócios, a GPU não trará ganho de velocidade. Nesses casos, é mais vantajoso usar um VPS em nuvem, com escalabilidade e tarifação transparente. - **Quanto custa alugar um servidor com GPU?** O preço depende do modelo da placa e da quantidade de VRAM. Soluções básicas como a linha RTX são mais baratas, enquanto placas especializadas para data centers (A100, H100) são bem mais caras. Na nuvem, é possível pagar por hora, o que é conveniente para tarefas de curto prazo. https://serverspace.com.br/about/blog/nuvem-publica-privada-ou-hibrida-qual-e-a-diferenca.md Entenda as diferenças entre nuvem pública, privada e híbrida. Saiba quando cada modelo é mais indicado, suas vantagens, limitações e como escolher a melhor opção para o seu negócio. Hoje a nuvem se tornou o padrão para empresas de qualquer porte. Mas sob a palavra "nuvem" existem diferentes modelos, e a escolha influencia não apenas no custo da infraestrutura, mas também na sua confiabilidade, segurança e flexibilidade. Alguns implementam serviços em nuvem pública e obtêm um início rápido com investimentos mínimos. Outras empresas constroem sua própria nuvem privada para manter controle total sobre os dados e atender às exigências dos reguladores. E parte das organizações escolhe uma abordagem híbrida, combinando a velocidade e a escalabilidade da nuvem pública com a segurança da privada. É importante entender: não existe uma resposta universal sobre qual modelo é melhor. Tudo depende das tarefas específicas do negócio, do setor e dos requisitos para os dados. Neste artigo vamos analisar as diferenças entre a nuvem pública, privada e híbrida, quais tarefas cada uma resolve e como escolher a opção adequada. ## Nuvem pública A nuvem pública é uma infraestrutura que o provedor disponibiliza a vários clientes simultaneamente. Todos os usuários alugam recursos virtuais (servidores, armazenamentos, redes), enquanto a gestão do "hardware" e o suporte ficam totalmente a cargo do provedor. **Quando é adequada** - startups e empresas que precisam de um lançamento rápido sem grandes investimentos; - serviços SaaS que trabalham com carga variável; - desenvolvimento e teste de novos produtos; - negócios que precisam de flexibilidade e possibilidade de escalar rapidamente. **Vantagens** - barreira de entrada mínima: não é necessário comprar equipamentos; - escalonamento imediato dos recursos conforme a carga; - tarifação transparente: você paga apenas pelo que usa; - integração simples com serviços modernos. **Limitações** - menos controle sobre a infraestrutura física; - questões de segurança são resolvidas em conjunto com o provedor; - os dados ficam em um ambiente compartilhado (embora isolados em nível tecnológico). Na nuvem pública da Serverspace é possível implantar um [servidor virtual](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) em poucos minutos e pagar por hora. Além disso, para projetos com maiores requisitos de segurança, há a possibilidade de criar segmentos isolados por meio de gateways de rede isolada, permitindo usar a [nuvem pública como base, mas com um nível adicional de proteção](https://serverspace.com.br/services/virtual-private-cloud.md). ## Nuvem privada A nuvem privada é uma infraestrutura totalmente pertencente a uma única organização. Ela pode ser implantada no próprio data center da empresa ou em um provedor especializado, mas os recursos são sempre usados exclusivamente por um cliente. **Quando é adequada** - bancos e instituições financeiras, onde a proteção dos dados e a conformidade regulatória são críticas; - órgãos governamentais com altos requisitos de segurança; - corporações que processam dados confidenciais de clientes; - empresas que precisam de controle total sobre a infraestrutura de TI. **Vantagens** - nível máximo de segurança: os dados não são compartilhados com outros usuários; - controle total sobre configurações, políticas e acessos; - personalização flexível para as tarefas do negócio; - possibilidade de atender a padrões e regulações do setor. **Limitações** - alto custo: é preciso comprar equipamentos, manter o data center e equipe; - complexidade de administração e manutenção; - escalabilidade limitada pelos próprios recursos, expansão exige tempo e investimentos. A nuvem privada é mais escolhida por grandes empresas com orçamentos robustos para infraestrutura e exigências rigorosas de proteção de dados. ## Nuvem híbrida A nuvem híbrida combina recursos públicos e privados. Parte dos sistemas e dados funciona em ambiente privado e parte na nuvem pública. Essa solução permite que a empresa combine segurança e controle com flexibilidade e escalabilidade. **Quando é adequada** - organizações que precisam manter dados sensíveis em segmento privado, mas querem usar a capacidade da nuvem pública para tarefas menos críticas; - empresas com cargas sazonais, que se beneficiam ao expandir recursos por meio da nuvem pública; - negócios que buscam transformação digital, mas não estão prontos para abrir mão totalmente da infraestrutura própria. **Vantagens** - equilíbrio entre segurança e flexibilidade; - possibilidade de manter dados críticos no segmento privado e usar a nuvem pública para desenvolvimento ou escalonamento; - otimização de custos: nuvem privada para infraestrutura básica, nuvem pública para picos de carga. **Limitações** - complexidade de integração e configuração das conexões entre os dois ambientes; - necessidade de competências e ferramentas adicionais de gestão; - riscos potenciais caso a troca de dados entre os ambientes não seja organizada corretamente. A nuvem híbrida costuma ser vista como um compromisso: oferece segurança e flexibilidade às empresas, mas exige uma arquitetura bem planejada. ## Comparação: nuvem pública, privada e híbrida | Critério | Nuvem pública | Nuvem privada | Nuvem híbrida | | --- | --- | --- | --- | | Tarefas | Startups, SaaS, testes, lançamento rápido | Bancos, governo, corporações com dados sensíveis | Empresas com dados críticos + necessidade de escalabilidade | | Segurança | Básica, gerida pelo provedor | Máxima, controle total do cliente | Flexível: dados críticos protegidos, demais em público | | Controle | Limitado, depende do provedor | Controle total | Parcial, dividido entre empresa e provedor | | Escalabilidade | Máxima, recursos disponíveis "a um clique" | Limitada pela própria capacidade | Flexível: escalonamento via segmento público | Essa tabela ajuda a visualizar em quais condições cada modelo de nuvem se mostra mais adequado: público para flexibilidade e velocidade, privado para máxima proteção, e híbrido para quem precisa de equilíbrio. ## Como escolher o modelo de nuvem adequado A escolha entre nuvem pública, privada e híbrida não depende de moda ou tendência, mas das necessidades reais do negócio. Não há uma opção universal — cada modelo tem seu papel. **Quando escolher a nuvem pública** - se você precisa lançar um serviço rapidamente sem investimentos de capital; - se o projeto cresce de forma dinâmica e exige escalabilidade flexível; - se deseja pagar apenas pelos recursos realmente usados. **Quando escolher a nuvem privada** - se a empresa lida com dados confidenciais e precisa atender a padrões do setor; - se é importante ter controle total da infraestrutura e das políticas de segurança; - se o orçamento permite manter infraestrutura própria ou dedicada. **Quando escolher a nuvem híbrida** - se há necessidade de manter dados críticos "em casa", mas processos menos sensíveis podem ser levados para a nuvem pública; - se a empresa enfrenta picos sazonais de carga; - se é preciso conciliar requisitos de segurança e flexibilidade. ## Conclusão Nuvem pública, privada e híbrida não são tecnologias concorrentes, mas diferentes abordagens de organização da infraestrutura. A nuvem pública oferece velocidade, flexibilidade e economia; a privada garante segurança máxima e controle; e a híbrida ajuda a encontrar equilíbrio entre os dois extremos. O principal não é escolher a solução "da moda", mas sim a que atende às necessidades do negócio. Para a maioria dos projetos, os recursos da nuvem pública são suficientes: início rápido, cobrança por hora e escalabilidade conveniente. Ao mesmo tempo, na Serverspace é possível não apenas [implantar um servidor](https://serverspace.com.br/services/cloud-servers.md) em poucos minutos, mas também aumentar a segurança com gateways de rede isolada — criando praticamente uma nuvem privada dentro do ambiente público. Essa abordagem permite que as empresas combinem a praticidade da nuvem pública com a isolação onde isso realmente é necessário. ## FAQ - **Qual a diferença entre nuvem pública e privada?** A nuvem pública fornece recursos a vários usuários ao mesmo tempo, enquanto a privada é usada apenas por uma empresa. - **Quando a nuvem pública é suficiente para um negócio?** Quando é necessário lançar rapidamente, escalar com flexibilidade e reduzir custos. A maioria das startups e serviços online funciona assim. - **Por que as empresas usam nuvem híbrida?** Para manter dados críticos em segmento privado e, ao mesmo tempo, usar a nuvem pública para desenvolvimento, testes e picos de carga. - **É possível unir nuvem pública e privada sem perder segurança?** Sim. Com a arquitetura correta e uso de ferramentas de isolamento (por exemplo, gateways de segurança de rede), a solução híbrida combina confiabilidade e flexibilidade. https://serverspace.com.br/support/help/como-fazer-backup-de-dados-no-linux.md Fazer backup dos seus dados é essencial para recuperação de desastres, migração de sistemas e preservação da integridade dos dados a longo prazo. Veja como criar backups no Linux. Backup (ou cópia de segurança) é um procedimento essencial para garantir a proteção dos dados. No Linux, existem diversas ferramentas que permitem configurar a criação automática ou manual de cópias de arquivos, diretórios ou até mesmo de todo o sistema. Neste artigo, vamos explicar o que é o backup, por que ele é importante e como colocá-lo em prática. No Linux, é possível realizar backups manualmente ou com o uso de programas e scripts específicos. Dependendo da necessidade, os backups podem ser: - completos – todos os arquivos e diretórios são copiados; - incrementais – apenas as alterações desde o último backup são copiadas; - diferenciais – as alterações desde o último backup completo são copiadas. A escolha do método depende do volume de dados, da velocidade de cópia e da estratégia de armazenamento. ## Utilitários populares para backup Rsync O Rsync é uma das ferramentas mais populares e flexíveis. Ele permite sincronizar dados entre máquinas locais e remotas. Exemplo de comando para backup: ```bash apt update && apt install rsync && rsync -av --delete /home/user/ /mnt/backup/user/ ``` Screenshot Nº 1 — Rsync Flags: - -a — modo arquivamento (mantém permissões, links simbólicos, etc.); - -v — saída detalhada; - --delete — apaga os arquivos do destino que não estão presentes na origem. Tar O Tar é uma ferramenta padrão para criação de arquivos compactados. Criando um arquivo: ```bash tar -czvf backup.tar.gz /home/user/ ``` Screenshot Nº 2 — TAR Explicação das flags: - -c — cria o arquivo; - -z — comprime com gzip; - -v — saída detalhada do processo; - -f — define o nome do arquivo. Timeshift O Timeshift é uma ferramenta gráfica ideal para criar snapshots do sistema (especialmente em distribuições desktop). ```bash sudo apt install timeshift ``` A ferramenta permite configurar agendamentos de backup e utilizar sistemas de arquivos como Rsync ou Btrfs. BorgBackup O BorgBackup é uma solução moderna via linha de comando, com suporte a criptografia e deduplicação. Instalação: ```bash sudo apt install borgbackup ``` Exemplo de criação de backup: ``` borg init --encryption=repokey ./ borg create ./::my-backup-2025-05-23 /root ``` Screenshot Nº 3 — Borg Você pode usar o agendador de tarefas cron para automatizar backups. Exemplo de tarefa diária às 2h da manhã: ``` 0 2 * * * rsync -a /home/user/ /mnt/backup/user/ ``` Recomendações: - Armazene os backups em uma mídia física separada ou na nuvem. - Verifique regularmente a integridade e funcionalidade das cópias. - Utilize criptografia para dados confidenciais. - Configure alertas para falhas no processo de backup. Fazer backup no Linux é um processo simples, mas fundamental. Com as ferramentas certas, é possível configurar uma proteção confiável para seus dados, reduzir o risco de perdas e garantir o funcionamento estável do sistema. https://serverspace.com.br/support/help/o-que-e-vod-video-sob-demanda-e-como-economizar-dinheiro-com-armazenamento-s3-da-serverspace.md Aprenda o que é VoD (vídeo sob demanda) e como economizar em armazenamento e entrega de conteúdo com armazenamento compatível com S3 da Serverspace. **VoD (Video on Demand)** é um formato de entrega de conteúdo que permite aos usuários assistirem a filmes, programas de TV, vídeos educacionais e outros tipos de mídia a qualquer momento que desejarem. Ao contrário da televisão tradicional ou transmissões ao vivo, o VoD não depende de horários fixos — o conteúdo está disponível "sob demanda", com apenas um clique. Graças ao VoD, os usuários ganham flexibilidade, enquanto as empresas conquistam novas oportunidades de monetização e engajamento do público. Esse formato é amplamente utilizado em cinemas online, plataformas educacionais, serviços de vídeo e portais corporativos. ## Vantagens do VoD - **Flexibilidade e acessibilidade** — o conteúdo pode ser assistido a qualquer hora e em qualquer dispositivo. - **Controle da experiência do usuário** — recursos como pausar, retroceder e escolher a qualidade do vídeo. - **Alcance ampliado de audiência** — a plataforma funciona 24/7, independentemente do fuso horário. - **Distribuição eficiente de conteúdo** — uma solução ideal para e-learning, mídia e marketing. ## Como reduzir custos com VoD utilizando armazenamento compatível com S3 O armazenamento e a transmissão de arquivos de vídeo representam uma das maiores despesas para plataformas VoD — especialmente com vídeos em alta qualidade (HD/4K) e aumento de tráfego. É nesse ponto que o armazenamento de objetos compatível com S3 da Serverspace se destaca. Por que é vantajoso: - **Custos de armazenamento** — mais baixos do que os dos grandes provedores de nuvem. - **Sem taxas ocultas** para tráfego de saída dentro dos data centers locais. - **Alta disponibilidade e tolerância a falhas** graças à infraestrutura moderna. - **Integração simples** com sistemas VoD via protocolo padrão S3 API. - **A integração do VoD com o armazenamento S3 da Serverspace** permite gerenciar conteúdo de mídia de forma eficiente, escalar sem custos excessivos e garantir acesso estável aos vídeos para os usuários a qualquer momento. Você pode encontrar um guia detalhado sobre como conectar o S3 ao VoD em nossa base de conhecimento. ## Conclusão **VoD** não é apenas sobre comodidade para os usuários finais, mas também uma vantagem estratégica para os negócios. E, aliado a um armazenamento S3 confiável e econômico da Serverspace, torna-se uma ferramenta poderosa de otimização de custos. Conecte-se, configure, economize e escale com a gente. https://serverspace.com.br/support/help/o-que-e-dash-dynamic-adaptive-streaming-over-http-tecnologia-de-streaming-de-video-adaptavel.md Aprenda como funciona o DASH - tecnologia de streaming de vídeo adaptável via HTTP. Princípio de funcionamento, vantagens, comparação com HLS e aplicação em serviços online. **DASH (Dynamic Adaptive Streaming over HTTP)** é uma tecnologia moderna de transmissão de conteúdo multimídia que ajusta automaticamente a qualidade do vídeo conforme a velocidade atual da conexão de internet do usuário. Graças a essa adaptabilidade, os usuários desfrutam da melhor qualidade de reprodução possível, sem interrupções ou buffering constante. ## Como funciona Diferente do streaming tradicional, onde o vídeo é transmitido como um fluxo contínuo, o DASH divide o conteúdo em pequenos segmentos (geralmente de 2 a 10 segundos) e os armazena em múltiplas versões com diferentes qualidades e taxas de bits. Durante a reprodução, o player seleciona a versão mais adequada de cada segmento com base na velocidade da conexão, desempenho do dispositivo e outros fatores. Assim, se a conexão diminuir, o player troca automaticamente para uma versão de menor resolução, sem que o usuário perceba, garantindo uma reprodução contínua. ## Principais características do DASH - **Adaptabilidade**: troca dinâmica de qualidade em tempo real. - **Entrega via HTTP**: funciona com servidores web comuns e CDNs, sem exigir infraestrutura especializada de streaming. - **Formato independente de codec**: compatível com H.264, H.265, VP9, AV1 e outros. - **Padrão aberto**: desenvolvido pelo consórcio MPEG e padronizado como MPEG-DASH (ISO/IEC 23009-1). ## Arquitetura do DASH Os principais componentes de um sistema DASH incluem: - **Arquivo MPD (Media Presentation Description)** — arquivo XML que descreve a estrutura do conteúdo multimídia, listando as versões e segmentos disponíveis. - **Segmentos de vídeo e áudio** — arquivos de mídia divididos por tempo e qualidade. - **Player do lado do cliente** — aplicativo ou player web que interpreta o MPD, solicita os segmentos necessários e os reproduz em sequência. ## Vantagens - **Flexibilidade**: o mesmo sistema suporta dispositivos com diferentes níveis de desempenho e resolução. - **Escalabilidade**: ideal para ambientes com muitos usuários (como serviços de streaming). - **Eficiência de recursos**: utiliza HTTP, podendo aproveitar a infraestrutura CDN existente. ## Aplicações - **Plataformas de streaming**: YouTube, Netflix, Vimeo, entre outras. - **Educação online**: plataformas com cursos em vídeo. - **Videoconferências e transmissões ao vivo**: geralmente combinadas com DRM e outras tecnologias. ## Conclusão O DASH representa um avanço significativo na transmissão de mídia digital. Ele permite criar serviços de vídeo confiáveis, escaláveis e com ótima experiência para o usuário. Graças à sua tecnologia adaptativa, o DASH garante uma alta qualidade de visualização mesmo em conexões instáveis — tornando-se o padrão de fato para a maioria das plataformas modernas de vídeo. https://serverspace.com.br/support/help/o-que-e-hls-http-live-streaming-streaming-de-video-adaptavel-via-http.md Saiba como funciona o HLS, a tecnologia de streaming de vídeo da Apple com qualidade adaptável, suporte para transmissão ao vivo e escalabilidade via HTTP e CDN. **HLS (HTTP Live Streaming)** é uma tecnologia de streaming de mídia desenvolvida pela Apple que permite a transmissão de áudio e vídeo pelo protocolo HTTP padrão. O HLS é amplamente utilizado para entrega de transmissões ao vivo e vídeos sob demanda para diversos dispositivos e plataformas. ## Como funciona O HLS funciona dividindo o vídeo em pequenos segmentos com duração entre 2 e 10 segundos. Esses segmentos são codificados em múltiplas versões com diferentes qualidades e bitrates. O player cliente baixa uma playlist — um arquivo com extensão `.m3u8` — que contém a lista de segmentos disponíveis e seus URLs. Durante a reprodução, o player seleciona a qualidade ideal com base nas condições atuais da rede, alternando dinamicamente entre segmentos com diferentes bitrates. Isso garante uma reprodução suave, sem atrasos ou buffering. ## Principais características do HLS - Streaming adaptativo — seleção automática da qualidade do vídeo conforme a velocidade da conexão. - Uso de HTTP — entrega via servidores web padrão e CDNs, facilitando a escalabilidade. - Compatibilidade — suportado na maioria dos dispositivos modernos, incluindo iOS, macOS, Android e alguns navegadores. - Playlists no formato M3U8 — arquivos de texto que descrevem a estrutura dos fluxos e segmentos. - Suporte para criptografia e DRM — para proteção do conteúdo. ## Arquitetura do HLS Os principais componentes do HLS são: - **Playlist mestre** — arquivo `.m3u8` que contém links para playlists com diferentes versões de qualidade. - **Playlists de segmentos** — cada uma contendo links para segmentos de vídeo (geralmente arquivos `.ts`). - **Segmentos de mídia** — pequenos arquivos de vídeo que o player baixa e reproduz sequencialmente. - **Player cliente** — aplicativo ou navegador que processa as playlists e reproduz o conteúdo. ## Vantagens do HLS - **Amplo suporte a dispositivos e plataformas** — especialmente em dispositivos Apple. - **Escalabilidade** — uso de HTTP e CDNs permite atender um grande número de usuários. - **Flexibilidade** — suporta transmissões ao vivo e vídeos sob demanda. - **Proteção de conteúdo** — suporte integrado para criptografia e sistemas DRM. ## Desvantagens - Latência relativamente alta em comparação com alguns outros protocolos, especialmente em transmissões ao vivo. - Uso do formato de segmento MPEG-TS pode ser menos eficiente em comparação com contêineres modernos (como fragmented MP4). ## Aplicações - Streaming de vídeo em plataformas Apple (iPhone, iPad, Apple TV). - Transmissões ao vivo de eventos esportivos e musicais. - Plataformas de vídeo que necessitam de streaming adaptativo. - Serviços educacionais e corporativos de vídeo. ## Conclusão **HLS** é uma tecnologia de streaming de vídeo comprovada e amplamente adotada que oferece reprodução estável e adaptativa em vários dispositivos. Apesar de algumas limitações, como a latência, o HLS continua sendo o padrão para muitos serviços, especialmente dentro do ecossistema Apple. https://serverspace.com.br/support/help/owncloud-nuvem-pessoal-com-docker-instalacao-configuracao-e-uso.md ownCloud - безопасное и удобное облачное хранилище с открытым исходным кодом. Узнайте, как быстро развернуть ownCloud через Docker и управлять файлами. Подробные инструкции и статьи в базе знаний Serverspace. **ownCloud** é um software gratuito e de código aberto para criar armazenamento em nuvem pessoal ou corporativo. Ele permite que você crie seu próprio "serviço de nuvem" semelhante ao Dropbox, Google Drive ou OneDrive, mas com controle total sobre seus dados e infraestrutura. ## Ideia Principal do ownCloud **O principal objetivo do ownCloud** é oferecer aos usuários a possibilidade de armazenar arquivos, sincronizá-los entre dispositivos e compartilhá-los, mantendo todos os dados nos servidores que você controla. Isso é especialmente importante para empresas e usuários que desejam garantir a privacidade e segurança das informações, evitando serviços de nuvem de terceiros. ## Principais Recursos do ownCloud - **Armazenamento e sincronização de arquivos.** Você pode enviar arquivos para o servidor ownCloud e depois sincronizá-los automaticamente com computadores, smartphones e tablets usando os clientes oficiais. - **Acesso de qualquer lugar.** Os dados ficam acessíveis via interface web ou aplicativos móveis, proporcionando acesso fácil aos arquivos a qualquer hora e de qualquer dispositivo. - **Colaboração.** Usuários podem compartilhar arquivos e pastas com colegas ou amigos, definindo permissões de acesso (somente visualização, edição etc.). - **Suporte a extensões.** ownCloud suporta muitos plugins e aplicativos — por exemplo, integração com calendário, tarefas, documentos (edição de arquivos office diretamente no navegador), players de áudio e vídeo. - **Segurança.** Suporta criptografia de dados, autenticação em dois fatores e configurações detalhadas de controle de acesso. - **Integração com LDAP/Active Directory.** Facilita o uso do ownCloud em ambientes corporativos. ## ownCloud e Docker **ownCloud** é ideal para implantação usando Docker — uma tecnologia de conteinerização que permite executar aplicativos de forma rápida e prática em um ambiente isolado. Com Docker, você pode instalar ownCloud em qualquer servidor sem se preocupar com a complexidade da configuração do ambiente e dependências. Executar ownCloud em um container Docker facilita atualizações, escalabilidade e gerenciamento do serviço. Para quem deseja aprender mais sobre Docker, sua configuração e uso, a Base de Conhecimento Serverspace oferece muitos artigos detalhados e tutoriais que ajudam a dominar essa tecnologia rapidamente. ## Para quem o ownCloud é indicado? Empresas e organizações que precisam de controle sobre dados confidenciais. Instituições educacionais para trabalho colaborativo entre estudantes e professores. Usuários particulares que querem criar sua própria nuvem para armazenar fotos, vídeos e documentos. ## Por que ownCloud? - Diferente dos serviços públicos de nuvem, ownCloud é uma solução de código aberto. Isso significa que você pode: - Instalar ownCloud no seu próprio servidor ou infraestrutura em nuvem. - Ter controle total sobre onde os dados são armazenados. - Expandir funcionalidades e personalizar o sistema conforme suas necessidades. - Evitar riscos relacionados a vazamentos de dados em nuvens públicas. ## Como começar a usar o ownCloud? - Instalação. ownCloud pode ser instalado diretamente no servidor ou usando imagens Docker prontas para uma implantação rápida. - Configuração de usuários e permissões de acesso. - Instalação de clientes nos dispositivos para sincronização. - Início do trabalho com arquivos e compartilhamento. ## Conclusão ownCloud é uma ferramenta poderosa para organizar armazenamento em nuvem pessoal ou corporativo com controle total dos seus dados. Graças ao suporte ao Docker, a instalação e gerenciamento do ownCloud ficam ainda mais simples e convenientes. Se você quer saber mais sobre Docker e outras tecnologias para implantação de aplicativos, recomendamos consultar a Base de Conhecimento Serverspace, que contém muitos materiais úteis e tutoriais passo a passo https://serverspace.com.br/support/help/o-que-sao-portas-no-linux-finalidade-gerenciamento-e-seguranca.md Descubra quais são as funções das portas no Linux, como elas são utilizadas pelos serviços do sistema e do usuário, como visualizar e proteger as portas abertas. Comandos práticos e dicas de segurança. No Linux, assim como em outros sistemas operacionais, as portas desempenham um papel fundamental na organização da comunicação em rede entre aplicativos. Compreender a função das portas ajuda a configurar uma arquitetura de rede segura e eficiente, controlar o acesso aos serviços e solucionar problemas de conexão. ## O que é uma porta Uma porta é um identificador numérico usado para direcionar pacotes de rede ao aplicativo ou serviço correto em um computador. Ela funciona em conjunto com o endereço IP, permitindo que vários serviços utilizem a mesma interface de rede. No Linux, as portas são usadas tanto nos protocolos TCP quanto UDP. Elas são classificadas em: - **Portas bem conhecidas (0–1023)** — reservadas para serviços do sistema e amplamente utilizados (por exemplo, porta 22 — SSH, 80 — HTTP). - **Portas registradas (1024–49151)** — atribuídas a aplicações de usuário ou serviços menos populares. - **Portas dinâmicas/privadas (49152–65535)** — usadas pelo sistema operacional para conexões temporárias (por exemplo, quando um cliente se conecta a um servidor remoto). ## Como funcionam as portas no Linux Cada porta está associada a um processo específico por meio de um socket. Quando você inicia um serviço (como um servidor web Apache ou Nginx), ele "escuta" em uma porta específica. Isso significa que ele está aguardando conexões de entrada naquela porta. Exemplos: - Servidor SSH escuta na porta 22 - Servidor web — 80 (HTTP) ou 443 (HTTPS) - FTP — 21 - PostgreSQL — 5432 - MySQL — 3306 Se outro processo tentar usar a mesma porta, o sistema retornará um erro. ## Visualizando portas abertas No Linux, é possível ver quais portas estão em uso com os seguintes comandos: ``` sudo netstat -tuln ``` ou ``` ss -tuln ``` Significado dos parâmetros: - t — TCP - u — UDP - l — apenas portas em escuta (listening) - n — mostrar números das portas em vez de nomes Também é possível usar: ``` sudo lsof -i -P -n ``` ## Proteção e gerenciamento de portas As portas frequentemente se tornam alvo de ataques, especialmente se os serviços tiverem vulnerabilidades ou estiverem mal configurados. Por isso, administradores: - fecham portas desnecessárias - utilizam firewalls (como iptables, ufw, firewalld) - escondem serviços atrás de VPNs ou túneis - usam o fail2ban para se proteger contra ataques de força bruta (por exemplo, na porta 22) Exemplo de bloqueio da porta 3306: ``` sudo ufw deny 3306 ``` Para que serve cada porta — comandos de referência Para descobrir qual serviço está usando uma porta, use: ``` sudo netstat -tulnp ``` ou ``` sudo ss -tulnp ``` Também é possível consultar o arquivo **/etc/services** — trata-se de um arquivo de referência que lista as associações padrão entre portas e protocolos. ## Conclusão As portas no Linux são um mecanismo essencial para o roteamento do tráfego de rede aos aplicativos certos. Entender sua função e como gerenciá-las permite administrar o sistema de forma segura e eficiente. É recomendável verificar regularmente as portas abertas e restringir o acesso àquelas que não são destinadas ao uso público. https://serverspace.com.br/support/help/por-que-a-hospedagem-vps-da-serverspace-e-a-solucao-perfeita-para-seu-projeto.md Hospedagem VPS rápida e confiável da Serverspace - lançamento em 40 segundos, pagamento flexível, suporte 24 horas por dia, 7 dias por semana e 8 data centers ao redor do mundo. A solução perfeita para empresas e desenvolvedores. Se você está procurando uma hospedagem confiável, rápida e flexível para seu site, aplicação web ou ambiente de testes — considere o VPS da Serverspace. Ele vai além de um simples servidor virtual: é uma plataforma completa com painel de controle intuitivo, preços transparentes e infraestrutura global. Vamos descobrir por que milhares de clientes ao redor do mundo já escolheram a Serverspace. ## Lançamento ultrarrápido - até 40 segundos para implantar Precisa de um servidor **agora mesmo**? Com o VPS da Serverspace, você pode iniciar uma máquina virtual em apenas 40 segundos. Não importa onde você esteja — graças à infraestrutura distribuída em 8 data centers ao redor do mundo, você tem baixa latência e alta disponibilidade. ## Um painel de controle que qualquer pessoa pode usar Você não precisa ser um especialista em DevOps para gerenciar seu servidor. Toda a infraestrutura é implantada e administrada por meio de um painel web intuitivo. Nele, é possível: - Escolher o sistema operacional: Ubuntu, CentOS, Debian, Windows e outros - Instalar Docker, MySQL, WordPress e outros aplicativos populares com um clique - Monitorar a carga e o uso de recursos em tempo real ## Preço justo: pague apenas pelo que usar A Serverspace adota o modelo **Pay-as-you-go**, ideal para startups, freelancers e empresas com cargas variáveis. Você paga apenas pelos recursos que realmente utiliza — sem taxas antecipadas, pacotes ou cobranças ocultas. ## Segurança e estabilidade - SLA de 99,9% Os servidores da Serverspace estão hospedados em data centers certificados Tier III, e nosso SLA garante 99,9% de tempo de atividade. Além disso, você conta com: - Proteção contra ataques DDoS - Backups opcionais - Monitoramento contínuo e suporte técnico 24/7 ## Flexibilidade e escalabilidade sem tempo de inatividade Planejando crescer? Escale seus recursos com apenas alguns cliques — sem necessidade de reiniciar o servidor ou migrar dados. O VPS da Serverspace é um ambiente escalável que evolui junto com o seu projeto. ## Para quem é o VPS da Serverspace? - Desenvolvedores que precisam de ambientes de teste e produção - Pequenas e médias empresas com sites, CRMs ou ERPs - Agências web que hospedam sites de clientes - Startups que precisam de escalabilidade rápida ## Dê o próximo passo - escolha o VPS da Serverspace No mundo atual, velocidade, confiabilidade e flexibilidade são essenciais para o sucesso. A hospedagem VPS da Serverspace oferece tudo isso. Experimente agora e veja como é fácil e prático gerenciar sua infraestrutura. [Crie seu VPS em apenas 40 segundos!](https://serverspace.com.br/services/cloud-servers.md) https://serverspace.com.br/support/help/como-escolher-hospedagem-vps-dicas-e-praticas-recomendadas.md Escolhendo hospedagem VPS? Descubra quais parâmetros são importantes: desempenho, tempo de atividade, escalabilidade, suporte. Por que escolher a Serverspace? **Servidor Virtual Privado (VPS)** é o equilíbrio ideal entre hospedagem compartilhada e servidor dedicado. Ele oferece alta flexibilidade, estabilidade e controle, sendo uma solução ideal para projetos de qualquer escala — desde sites simples até sistemas corporativos complexos. Mas como escolher um provedor de VPS realmente confiável? Vamos explorar os principais critérios a considerar — e por que a Serverspace atende a todos eles. ## 1. Desempenho e Velocidade As métricas mais importantes incluem: - **Recursos dedicados (vCPU, RAM, SSD)** - **Tipo de virtualização (KVM é preferível ao OpenVZ)** - **Velocidade da conexão de rede** A Serverspace utiliza processadores modernos Intel Xeon e discos NVMe ultrarrápidos, garantindo desempenho estável e previsível. A criação do servidor leva apenas 40 segundos. ## 2. Confiabilidade e Uptime O provedor deve garantir alta disponibilidade (SLA). Fique atento a: - **Certificação dos data centers (Tier III ou superior)** - **Uptime garantido (mínimo de 99,9%)** - **Sistemas de backup e proteção contra falhas** A Serverspace hospeda seus servidores em data centers certificados em todo o mundo e oferece SLA de 99,9% com garantias financeiras. ## 3. Geolocalização dos Data Centers A baixa latência e o tempo de resposta dependem da proximidade do servidor com seu público-alvo. A Serverspace possui 8 data centers distribuídos pelo mundo, incluindo EUA, Europa, Ásia e CIS. Isso permite escolher a localização ideal para qualquer audiência. ## 4. Facilidade de Gerenciamento Mesmo sem conhecimentos técnicos avançados, gerenciar um VPS não precisa ser complicado: - **Painel de controle intuitivo** - **Suporte a sistemas operacionais populares** - **Instalação de aplicativos com um clique** O painel da Serverspace é uma interface intuitiva onde você pode instalar Docker, WordPress, MySQL e outras soluções com apenas alguns cliques. ## 5. Escalabilidade e Flexibilidade É essencial que o VPS se adapte facilmente ao crescimento do seu projeto. A capacidade de escalar recursos em tempo real é indispensável. Com o VPS da Serverspace, você pode aumentar os recursos do servidor sem tempo de inatividade — algo crucial para ambientes de produção. ## 6. Modelo de Pagamento Analise os planos oferecidos pelo provedor. O ideal é contar com cobrança por hora, sem taxas ocultas. A Serverspace adota um modelo transparente de pagamento por uso — você paga apenas pelos recursos efetivamente consumidos. ## 7. Suporte 24/7 Mesmo com servidores estáveis, questões técnicas podem surgir a qualquer momento. Por isso, o suporte 24/7 com resposta rápida é essencial. A equipe da Serverspace está disponível 24 horas por dia, 7 dias por semana, por chat ou sistema de tickets — mesmo à noite e nos fins de semana. ## Conclusão Escolher um VPS é um investimento na estabilidade e no crescimento do seu projeto. Ao selecionar um provedor, preste atenção ao desempenho, confiabilidade, facilidade de uso, localização dos data centers, flexibilidade e modelo de cobrança. Se você busca uma combinação de velocidade, confiabilidade e simplicidade — experimente a hospedagem VPS da Serverspace. É a solução ideal para quem valoriza resultados, praticidade e controle. [Crie seu VPS em apenas 40 segundos — e comece a trabalhar sem atrasos!](https://serverspace.com.br/services/cloud-servers.md) https://serverspace.com.br/support/help/por-que-escolher-o-serverspace-vps-visao-geral-dos-principais-beneficios.md Descubra os benefícios da hospedagem VPS da Serverspace: IP dedicado, tráfego ilimitado, suporte 24 horas por dia, 7 dias por semana, processadores Xeon potentes e unidades SSD. Lance um servidor em 40 segundos! **Escolher uma hospedagem VPS** é uma decisão estratégica para o seu negócio ou projeto. Ela precisa ser confiável, flexível e poderosa. A VPS da **Serverspace** oferece uma variedade de vantagens que a tornam uma solução ideal tanto para iniciantes quanto para usuários profissionais. Abaixo estão os principais motivos para escolher a Serverspace. ## Para que serve uma VPS? A VPS é usada para: - Hospedar sites e aplicações de alto tráfego, onde estabilidade e velocidade de resposta são cruciais, graças aos recursos dedicados e à tolerância a falhas. - Executar bancos de dados (MySQL, PostgreSQL, MongoDB) com configurações otimizadas e alta velocidade de operações de entrada/saída (I/O). - Implantar contêineres e máquinas virtuais (Docker, Kubernetes, LXC) para ambientes de desenvolvimento e produção escaláveis e isolados. - Configurar servidores VPN e proxies com IP dedicado, garantindo conexões seguras e anônimas. - Hospedar servidores de jogos e plataformas de streaming que exigem baixa latência e alta largura de banda. - Servir como ambiente de teste (staging) ou infraestrutura CI/CD para automação de builds e deploys de aplicações. Com acesso root total, você pode instalar qualquer sistema operacional, software e configurar as redes da maneira que desejar — recursos indisponíveis em hospedagens compartilhadas. Tecnologias de virtualização como KVM garantem desempenho próximo ao nativo e maior isolamento, o que reforça a segurança e a capacidade de gerenciamento do servidor. **A VPS** é a solução ideal para quem busca equilíbrio entre custo, desempenho e controle de infraestrutura. ## Endereço IP dedicado Ao criar um servidor virtual, você recebe automaticamente um **endereço IPv4 estático exclusivo**, atribuído somente à sua VPS. Isso é essencial para tarefas que exigem um identificador constante — como certificados SSL, hospedagem de sites corporativos, configuração de servidores de e-mail (SMTP, SPF, DKIM, PTR) e conexões VPN seguras. Também reduz o risco de blacklists causadas por ações de outros usuários, comum em hospedagens compartilhadas. ## Tráfego ilimitado Todas as VPS da Serverspace incluem **tráfego ilimitado de entrada e saída**, sem restrições de volume ou velocidade. Isso é especialmente importante para projetos de alto tráfego — como streaming de vídeo, servidores de jogos, sistemas de análise e APIs. As conexões atingem até **1 Gbps** com possibilidade de escalabilidade, garantindo baixa latência e operação estável mesmo em picos de uso. ## Suporte 24/7 O suporte técnico da Serverspace está disponível **24 horas por dia, 7 dias por semana, 365 dias por ano** através de múltiplos canais: chat ao vivo, sistema de tickets, painel de controle e telefone. A equipe é composta por engenheiros qualificados, capazes de resolver desde redefinições de senha root e configuração de firewall até migração de dados e problemas em nível de sistema operacional ou infraestrutura de rede. ## Painel de controle intuitivo O painel da Serverspace oferece uma **interface web simples e funcional**, com recursos como: - Criação, clonagem e exclusão rápida de VPS - Alteração de configurações em tempo real (RAM, CPU, disco) - Gestão de snapshots e backups - Acesso ao console via navegador - Instalação de aplicações com um clique (WordPress, Docker, LAMP etc.) O painel atende tanto iniciantes quanto engenheiros DevOps — com integração completa via API para automação. ## Armazenamento SSD de alta velocidade O armazenamento utiliza **SSDs NVMe de última geração** em arrays RAID com tripla replicação de dados. Isso proporciona: - Tempos de acesso abaixo de 0,2 ms - Altas velocidades de leitura/gravação (até 3.000 MB/s) - Alta tolerância a falhas Ideal para bancos de dados, CMS, sistemas CI/CD e outras cargas com uso intensivo de I/O. ## Processadores poderosos Todos os servidores VPS da Serverspace operam com **processadores Intel Xeon Gold** com frequência base de 3,1 GHz e tecnologia Hyper-Threading. Cada núcleo virtual (vCPU) entrega desempenho de nível corporativo, com suporte a instruções modernas (AVX, AES-NI, Intel VT-x). Isso permite o processamento de grandes volumes de dados, compilação de código, execução de contêineres e VMs com mínima sobrecarga. ## Por que escolher a Serverspace? A VPS da Serverspace combina velocidade, flexibilidade e confiabilidade em uma única plataforma. Seja para desenvolver aplicações web, lançar uma loja virtual, implantar ambientes de teste ou gerenciar sua infraestrutura, você conta com controle total do servidor, escalabilidade e suporte especializado. [Crie sua VPS em 40 segundos e comece agora mesmo!](https://serverspace.com.br/services/cloud-servers.md) https://serverspace.com.br/support/help/instalando-um-navegador-no-linux.md Guia de instalação de navegadores no Linux, de Firefox a w3m, com comandos para diferentes distribuições. Um navegador é uma ferramenta essencial tanto para o usuário comum quanto para o administrador de sistemas. No Linux, é possível utilizar navegadores gráficos modernos, bem como soluções leves ou até mesmo baseadas em texto. Neste artigo, veremos como instalar navegadores populares no Linux: do clássico Firefox e Chrome até alternativas menos conhecidas, porém úteis. Basicamente, os usuários instalam estas soluções: | Nome | Interface | Funcionalidades | | --- | --- | --- | | Firefox | GUI | Gratuito, instalado por padrão em muitas distribuições | | Google Chrome | GUI | Rápido, compatível com todos os serviços do Google | | Chromium | GUI | Versão open source do Chrome | | Brave | GUI | Bloqueio de anúncios, foco em privacidade | | Vivaldi | GUI | Recursos avançados e interface altamente personalizável | | Opera | GUI | VPN integrada, mensageiros e notícias | | Midori | GUI | Leve e rápido | | Falkon (ex-QupZilla) | GUI | Baseado em QtWebEngine, ideal para KDE | | Epiphany (GNOME Web) | GUI | Navegador leve para o ambiente GNOME | | Pale Moon | GUI | Fork do Firefox com foco em desempenho | | Konqueror | GUI | Gerenciador de arquivos + navegador no ambiente KDE | | Lynx | CLI | Navegador baseado em texto | | w3m | CLI | Navegador de texto com suporte a tabelas e imagens | | Links / ELinks | CLI | Navegadores de texto avançados com menus e suporte a mouse | Para quem busca soluções mais seguras, o Brave é uma excelente escolha: armazena senhas de forma segura, oferece funções WEB3 e adota uma política rigorosa quanto à transmissão de dados do usuário. ## Instalando navegadores CLI e GUI via pacotes .deb w3m ```bash sudo apt update sudo apt install w3m -y ``` Screenshot Nº 1 — CLI Google Chrome ```bash wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo apt install ./google-chrome-stable_current_amd64.deb ``` Screenshot Nº 2 — GUI Chromium ```bash sudo apt install chromium-browser ``` Brave ```bash sudo apt install curl sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg \ https://brave.com/static-assets/brave-core.asc echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] \ https://brave-browser-apt-release.s3.brave.com/ stable main" | \ sudo tee /etc/apt/sources.list.d/brave-browser-release.list sudo apt update sudo apt install brave-browser ``` Vivaldi ```bash wget https://downloads.vivaldi.com/stable/vivaldi-stable_amd64.deb sudo apt install ./vivaldi-stable_amd64.deb ``` Opera ```bash wget https://download.opera.com/download/get/?partner=www&opsys=Linux # Renomeie o arquivo baixado, se necessário, e instale: sudo apt install ./opera-stable_*.deb ``` Epiphany (GNOME Web) ```bash sudo apt install epiphany-browser ``` Midori ```bash sudo apt install midori ``` Falkon ```bash sudo apt install falkon ``` ## Instalação no CentOS / RHEL / Fedora / Rocky Linux Basicamente, a instalação não difere muito dos pacotes .deb, assim como o gerenciador de pacotes e os aplicativos. Firefox ```bash sudo dnf install firefox ``` Chromium ```bash sudo dnf install chromium ``` Google Chrome ```bash sudo dnf install fedora-workstation-repositories sudo dnf config-manager --set-enabled google-chrome sudo dnf install google-chrome-stable ``` Brave ```bash sudo dnf install dnf-plugins-core sudo dnf config-manager --add-repo https://brave-browser-rpm-release.s3.brave.com/x86_64/ sudo rpm --import https://brave-browser-rpm-release.s3.brave.com/brave-core.asc sudo dnf install brave-browser ``` O Linux oferece uma ampla gama de navegadores para todos os gostos — desde opções completas com interface moderna até soluções minimalistas para trabalho no terminal. A instalação é geralmente feita por meio de gerenciadores de pacotes (apt, dnf), ou baixando arquivos .deb ou .rpm diretamente dos sites oficiais. https://serverspace.com.br/support/help/como-escolher-o-armazenamento-de-objetos-comparando-solucoes-compativeis-com-s3.md Aprenda a escolher um armazenamento de objetos confiável compatível com S3. Comparação de soluções, dicas de seleção e uma visão geral dos recursos de armazenamento em nuvem da Serverspace. **Armazenamento de objetos** é uma forma moderna de armazenar dados, na qual as informações são salvas como **objetos** em vez de arquivos ou blocos. Essa abordagem é amplamente utilizada em ambientes de nuvem e é ideal para backups, armazenamento de logs, arquivos de mídia, big data e muito mais. Um dos padrões mais populares nessa área é a **API Amazon S3** — um protocolo universal de acesso, atualmente compatível com dezenas de soluções, incluindo alternativas de outros provedores. Neste artigo, exploramos como escolher o armazenamento de objetos compatível com S3 ideal e por que a solução da **Serverspace** merece sua atenção. ## Por que usar armazenamento de objetos? Diferente dos sistemas tradicionais de arquivos ou blocos, o armazenamento de objetos: - Escala facilmente para volumes em nível de petabytes - Fornece acesso aos dados via HTTP/HTTPS - Utiliza chaves únicas e metadados para gerenciar objetos - É ideal para ambientes distribuídos e infraestrutura em nuvem **Casos de uso comuns incluem:** - Backups e arquivamento - Armazenamento de fotos e vídeos (por exemplo, para sites e apps móveis) - Big data e registro de logs - Conteúdo estático para sites e distribuição via CDN ## O que significa "compatível com S3"? Ser compatível com S3 significa que o armazenamento de objetos suporta a mesma API que o Amazon S3. Isso traz várias vantagens: - Compatibilidade com clientes populares: s3cmd, rclone, Cyberduck, Restic, Duplicity - Capacidade de usar ferramentas e código existentes sem alterações - Configurações unificadas em ambientes híbridos ou multicloud ## O que considerar ao escolher um armazenamento de objetos compatível com S3 **1. Localização e velocidade de acesso** Onde o data center está fisicamente localizado? Quanto mais próximo dos seus usuários, mais rápida é a transferência de dados. **2. Preços e transparência na cobrança** Alguns provedores cobram taxas ocultas por operações como PUT, GET e LIST. Certifique-se de que os preços sejam claros e diretos. **3. Confiabilidade e SLA** Verifique as garantias de disponibilidade (por exemplo, 99,9%) e os níveis de resiliência como replicação, backups e proteção contra perda de dados. **4. Nível de compatibilidade com S3** Nem todas as APIs são implementadas por completo. Verifique se os recursos que você precisa são suportados: upload multipart, políticas de bucket, versionamento etc. **5. Segurança e controle de acesso** Recursos essenciais incluem HTTPS, tokens de acesso, políticas IAM e, possivelmente, criptografia no lado do servidor. ## Armazenamento de Objetos da Serverspace O **Serverspace Object Storage** é uma solução altamente confiável e totalmente compatível com S3, que oferece: - Implantação rápida e gerenciamento intuitivo via painel de controle - Compatibilidade com qualquer ferramenta ou cliente baseado em S3 - Preços transparentes — você paga apenas pelo armazenamento utilizado - Tráfego interno gratuito entre o armazenamento de objetos e outros servidores na nuvem Serverspace - Data centers localizados na Europa e na CEI — baixa latência e conformidade com regulamentos locais **Exemplos de uso:** - Backup de servidores - Arquivos enviados por usuários de sites e aplicativos - Recursos estáticos (imagens, JS, CSS) para projetos web ## Como se conectar ao armazenamento S3 da Serverspace - No painel de controle da Serverspace, crie um bucket de armazenamento e gere as chaves de acesso. - Configure um cliente, por exemplo: ``` s3cmd --configure ``` Insira sua chave de acesso e segredo, e defina o endpoint (ex.: https://storage.serverspace.com.br) - Envie os arquivos: ``` s3cmd put ./backup.tar.gz s3://meu-bucket/ ``` Como alternativa, use rclone, Cyberduck ou qualquer API compatível com S3 na sua aplicação. ## Conclusão Escolher uma solução de armazenamento de objetos compatível com S3 é encontrar o equilíbrio certo entre **facilidade de uso, velocidade, segurança e preços transparentes**. A solução da **Serverspace** oferece todas essas vantagens — ela se integra facilmente à infraestrutura existente e é compatível com ferramentas amplamente utilizadas. Se você está procurando um armazenamento de objetos confiável e acessível com compatibilidade S3 — experimente o **Serverspace Object Storage**. ## Perguntas Frequentes - **Qual a capacidade de armazenamento disponível?** Não há limites rígidos — você só paga pelo volume real de dados utilizado. - **Posso usar o armazenamento de objetos como destino de backup do servidor?** Sim, é um dos casos de uso mais comuns. O armazenamento suporta ferramentas como rsync, restic, duplicity e Veeam. - **O armazenamento é criptografado?** Sim, você pode usar criptografia do lado do servidor ou do lado do cliente (por exemplo, via rclone com crypt). - **Ele suporta versionamento de arquivos?** Sim, o versionamento é suportado via API. Você pode habilitá-lo para rastrear alterações de objetos. https://serverspace.com.br/support/help/area-de-trabalho-remota-na-nuvem-casos-configuracao-e-seguranca.md Aprenda a configurar uma área de trabalho remota na nuvem, proteger o acesso RDP e usá-la para 1C, escritório, desenvolvimento e trabalho remoto. **Área de trabalho remota** é uma tecnologia que permite aos usuários se conectarem a um servidor ou estação de trabalho pela internet e controlá-los como se estivessem fisicamente presentes. Graças à computação em nuvem, agora é fácil implantar um servidor RDP em um data center e fornecer acesso seguro a você ou à sua equipe de qualquer lugar do mundo. Neste artigo, vamos explorar os principais **casos de uso do RDP em nuvem**, explicar **como configurar uma área de trabalho remota na Serverspace** e apresentar as **práticas essenciais de segurança**. ## Por que usar uma Área de Trabalho Remota em Nuvem? Uma solução RDP em nuvem oferece um ambiente Windows pronto para uso, sem necessidade de comprar hardware ou manter infraestrutura de TI local. ### Principais benefícios: - **Acesso de qualquer lugar** — Você só precisa de internet e um cliente RDP (ou navegador). - **Alta disponibilidade** — Os data centers da Serverspace operam 24/7 com redundância. - **Escalabilidade de recursos** — Ajuste a configuração do servidor conforme sua demanda. - **Segurança e controle** — Armazenamento centralizado e políticas de acesso definidas. ## Casos de Uso para RDP em Nuvem ### 1. Contabilidade e 1C Empresas que usam 1C hospedam tanto o banco de dados quanto o software cliente em um servidor Windows remoto. Os funcionários acessam o sistema via RDP e trabalham como se estivessem no escritório — mas de qualquer lugar. ### 2. Aplicações de Escritório Em vez de notebooks, é possível fornecer áreas de trabalho em nuvem com MS Office. Ideal para freelancers, equipes remotas ou funcionários temporários. ### 3. Trabalho com Gráficos e CAD Configure o servidor com GPU e use como estação de trabalho virtual para designers e engenheiros. ### 4. Desenvolvimento e Testes de Software Crie sessões RDP para testar aplicações em sistemas operacionais específicos sem precisar instalar nada localmente. ### 5. Acesso Seguro a Sistemas Corporativos Use o servidor RDP como gateway seguro: o colaborador se conecta ao servidor e, a partir dele, acessa os sistemas internos — sem deixar dados confidenciais no próprio dispositivo. ## Como Configurar um Servidor RDP na Serverspace ### 1. Crie um Servidor Windows No painel de controle da Serverspace, escolha: - Imagem do sistema: **Windows Server 2022 ou 2019** - Configuração: a partir de 2 GB de RAM e 2 vCPUs - Rede: IP público (para acesso RDP direto) ### 2. Habilite o Acesso RDP O RDP vem habilitado por padrão no Windows Server. Verifique: - Painel de Controle → Sistema → Permitir conexões remotas - Abra a porta 3389 no firewall ### 3. Configure os Usuários Adicione usuários ao grupo **Usuários da Área de Trabalho Remota**. Crie contas individuais com senhas fortes. ### 4. Configure a Segurança (veja abaixo) ### 5. Conecte-se No PC: Execute o **mstsc.exe**, insira IP, login e senha. No celular: Use o app Microsoft Remote Desktop ou similar. ## Melhores Práticas de Segurança para RDP O acesso remoto deve ser protegido contra ameaças. Veja as principais recomendações: ### Medidas para proteger o RDP: - **Altere a porta padrão 3389** — Use uma porta customizada (ex: 3390 ou 50001). - **Use VPN** e permita acesso RDP apenas através do túnel VPN. - **Restringe o acesso por IP** nas regras de firewall. - **Habilite autenticação em dois fatores** (com ferramentas externas). - **Mantenha o Windows atualizado** com os últimos patches de segurança. - **Registre tentativas de login falhas** e configure políticas de bloqueio. - **Desative o acesso RDP para o usuário "Administrator"** e crie contas separadas com permissões específicas. ## Conclusão Um **servidor RDP em nuvem** é uma ferramenta poderosa para negócios, permitindo acesso remoto seguro, flexível e prático a áreas de trabalho, sistemas 1C, aplicativos de escritório ou ambientes de teste. Ao contrário do investimento em hardware físico, a solução da **Serverspace** permite implantar, escalar e gerenciar ambientes RDP com facilidade. Se você procura uma forma simples e econômica de habilitar o trabalho remoto - experimente os **servidores em nuvem com RDP da Serverspace**. ## Perguntas Frequentes (FAQ) - **Quanto custa um servidor RDP na nuvem?** O preço depende da configuração escolhida. Planos básicos com Windows estão disponíveis com cobrança por hora ou por mês. - **Posso acessar o RDP do celular ou tablet?** Sim, basta instalar o app gratuito Microsoft Remote Desktop (disponível para Android e iOS). - **A Serverspace oferece servidores com GPU?** Sim, há configurações com GPU disponíveis. Consulte o painel de controle ou entre em contato com o suporte. - **Quais versões do Windows estão disponíveis?** O Windows Server 2019 e 2022 estão disponíveis com licenciamento SPLA diretamente no painel. - **O RDP na nuvem é seguro?** Com uma configuração correta — sim. A Serverspace oferece ambientes isolados, firewall, rede flexível e integração com VPN para garantir segurança. https://serverspace.com.br/support/help/rede-privada-virtual-como-construir-uma-infraestrutura-de-nuvem-segura.md Aprenda a construir uma infraestrutura de nuvem segura com uma rede privada virtual (VPC). Um guia para escolher, configurar e proteger uma VPC na plataforma Serverspace para empresas e trabalho remoto. Na era da migração ativa de negócios para a nuvem, a segurança dos dados corporativos torna-se uma prioridade máxima. Uma das principais soluções para proteger as interações de rede entre serviços, escritórios e colaboradores remotos é a **Virtual Private Cloud (VPC)**. Ela permite construir uma **infraestrutura de rede isolada, criptografada e gerenciável** sobre nuvens públicas. Neste artigo, discutiremos por que a nuvem privada virtual é necessária, quais opções existem, como implantar uma VPC na nuvem e como garantir a máxima proteção da sua infraestrutura. ## Por que usar uma nuvem privada virtual? Uma nuvem privada virtual permite a criação de um **canal de comunicação seguro** entre diferentes nós — servidores, estações de trabalho, ambientes de nuvem e dispositivos dos usuários — mesmo que estejam localizados em países ou provedores de nuvem diferentes. ### Principais tarefas resolvidas pela VPC na nuvem: - **Isolamento da infraestrutura** — recursos não estão acessíveis diretamente da rede pública. - **Criptografia do tráfego** — proteção contra interceptação e análise de dados. - **Acesso seguro para funcionários** — trabalho remoto sem risco para dados internos. - **Conexão entre diferentes nuvens** — construção de arquiteturas híbridas ou multi-nuvem. ## Tipos de VPC que você pode usar na nuvem Dependendo dos objetivos e da arquitetura, diferentes tipos de VPC podem ser usados: | Tipo de VPC | Descrição | Uso | | --- | --- | --- | | Site-to-Site VPC | Canal permanente entre duas ou mais redes (ex.: escritório ↔ nuvem) | Conectar escritórios, ligação à VPC | | Client-to-Site VPC | Dispositivos individuais conectam-se à rede da nuvem | Trabalho remoto, acesso de casa | | Cloud-native VPC | Funções de VPC integradas no provedor de nuvem (ex.: Google Cloud VPN) | Integração dentro da plataforma de nuvem | | OpenVPN / WireGuard | Configuração própria em servidor na nuvem | Flexibilidade e controle, criptografia avançada | ## Como implantar uma VPC na nuvem Serverspace A plataforma Serverspace permite implantar uma VPC em minutos. Abaixo um exemplo de configuração do OpenVPN. ### Passo 1: Crie um servidor na nuvem - No painel do Serverspace, selecione o sistema operacional (ex.: Ubuntu 22.04) - Defina a configuração — a partir de 1 CPU, 1 GB RAM - Ative o IP público ### Passo 2: Instale o OpenVPN Conecte-se ao servidor via SSH e execute: ```bash curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh chmod +x openvpn-install.sh ./openvpn-install.sh ``` Siga as instruções do script: ele criará CA, chaves do servidor e cliente, e configurará o sistema. ### Passo 3: Configure o acesso - Permita a porta UDP 1194 no firewall - Baixe o arquivo cliente .ovpn - Conecte-se via PC, smartphone ou roteador ## Recomendações de segurança Para deixar sua VPC o mais segura possível: - Use **protocolos modernos** — OpenVPN com AES ou WireGuard - Restrinja o acesso por endereços IP - Aplique **autenticação em dois fatores** (via scripts ou ferramentas de terceiros) - Ative o **registro de tentativas de conexão** - Remova regularmente as **chaves não usadas** - Mantenha o servidor e o OpenVPN atualizados para as versões mais recentes ## Exemplos de uso da rede privada virtual - **Proteção de aplicações** — acesso às interfaces web de 1C ou CRM somente via VPC - **Rede de TI inter-regional** — filiais da empresa conectadas a uma infraestrutura de nuvem unificada - **Isolamento de ambiente dev/test** — acesso aos servidores de staging apenas dentro da VPC ## Conclusão A **virtual private cloud** é parte integrante da arquitetura moderna de nuvem. Ela permite proteger dados, restringir acesso e conectar componentes dispersos em um sistema seguro e unificado. Graças ao Serverspace, você pode implantar sua própria VPC em minutos, obtendo controle total sobre configuração e segurança. ## FAQ - **Posso conectar pelo celular?** Sim. Clientes OpenVPN e WireGuard são suportados em iOS e Android. - **É seguro usar VPC na nuvem?** Sim, se forem seguidas as medidas básicas de segurança: criptografia, firewall e controle de acesso. - **Quanto tempo leva para configurar uma VPC?** De 10 a 30 minutos dependendo da experiência e número de clientes. - **Quanto custa?** Você paga apenas pelo servidor na nuvem. Sem taxas de licença para VPC. https://serverspace.com.br/about/blog/quais-recursos-sao-necessarios-para-diferentes-tarefas-na-nuvem-de-um-chatbot-a-um-portal-corporativo.md Descubra a configuração ideal de servidor para chatbot, site, SaaS, e-mail ou portal corporativo na nuvem. A infraestrutura em nuvem hoje é uma ferramenta universal para resolver os mais diversos tipos de tarefas: desde o lançamento de um site pessoal até a construção de um sistema de TI corporativo. Graças à virtualização, os usuários obtêm acesso a recursos computacionais — processadores, memória, armazenamento — sem a necessidade de comprar e manter servidores físicos. Isso a torna indispensável para startups, equipes de desenvolvimento, [lojas virtuais](https://serverspace.com.br/solutions/cloud-for-ecommerce.md), sistemas de análise, treinamento de IA, trabalho com big data e muito mais. Mas não existe uma configuração universal na nuvem — cada tipo de tarefa exige sua própria combinação de parâmetros. Assim como na vida real: para assistir a filmes, um tablet simples é suficiente, mas para edição de vídeo é necessário um computador potente. Da mesma forma, um chatbot, uma landing page e um portal corporativo impõem diferentes cargas ao servidor e exigem diferentes níveis de potência, memória e recursos de rede. A escolha incorreta da configuração pode levar ao excesso de custos ou a falhas no funcionamento da aplicação. A seguir, analisamos quais parâmetros são importantes para diferentes tipos de tarefas — e como economizar sem perder qualidade. ## Como escolher a configuração adequada para a tarefa Ao escolher um servidor na nuvem, é importante definir desde o início a carga e os requisitos do projeto. Isso ajudará a calcular com precisão os parâmetros e evitar gastos desnecessários. - **CPU e RAM** — determinam a velocidade com que o servidor processa as requisições e lida com tarefas paralelas. Necessários para aplicações com lógica ativa, APIs, análises. - **Armazenamento**— influencia a quantidade de dados que podem ser armazenados. Para bancos de dados e conteúdo de mídia, recomenda-se SSD de 40 a 100 GB ou mais. - **Tráfego e largura de banda** — importantes para cargas de rede elevadas: sites com muitos visitantes, envio de e-mails em massa, serviços de vídeo. Verifique se o tráfego é tarifado pelo provedor. Cada parâmetro afeta a estabilidade e a eficiência do serviço conforme a carga aumenta. Subestime os recursos — e o aplicativo ficará lento; superestime — e você gastará mais do que o necessário sem benefício real. Por isso, é importante entender com antecedência quais tecnologias serão utilizadas, quantos usuários você pretende atender e como as cargas devem mudar ao longo do tempo. Muitos provedores permitem escalar a configuração após o lançamento. Por exemplo, na Serverspace, os recursos podem ser aumentados com alguns cliques, sem precisar desligar o servidor. ## Chatbots e scripts: o mínimo para iniciar Para tarefas simples — como [bots do WhatsApp ou scripts](https://serverspace.com.br/services/api-gpt-do-serverspace.md) de processamento de dados — não são necessários muitos recursos. O suficiente seria: - 1 vCPU; - 1 GB de RAM; - 10–20 GB SSD; - Distribuição Linux (Ubuntu, Debian). Esse servidor terá um custo baixo, especialmente se o provedor não tarifar o tráfego. Na Serverspace, por exemplo, todo o tráfego de entrada e saída é gratuito, o que é conveniente para projetos que usam APIs externas. ## Ambiente de desenvolvimento e teste Servidores mais robustos são indicados para desenvolvedores e equipes de testes: - 2–4 vCPU; - 4–8 GB RAM; - 50–100 GB SSD; - Capacidade de implantar rapidamente [Docker](https://serverspace.com.br/services/1-click-app-marketplace/docker.md) e ferramentas de CI/CD. É importante que seja possível criar snapshots e reverter em caso de erros. Essas funcionalidades estão presentes na maioria dos painéis modernos de gerenciamento, incluindo o da Serverspace. ## Sites, blogs, lojas virtuais Para CMS como WordPress ou Joomla, a seguinte configuração é adequada: - 1–2 vCPU; - 2–4 GB RAM; - 20–40 GB SSD; - [Banco de dados](https://serverspace.com.br/solutions/banco-de-dados-na-nuvem.md) instalado (MySQL, PostgreSQL). Se o site atender mais de mil visitantes por dia, vale a pena considerar o uso de CDN e proteção contra DDoS. Essas ferramentas estão disponíveis como serviços separados em provedores de nuvem. ## Servidores de e-mail e de envio Se você organiza o envio de e-mails, mesmo em volume pequeno, é importante prever: - 2 vCPU; - 4–8 GB RAM; - 50+ GB SSD; - Configuração de SMTP/IMAP e registros PTR; - Configuração de SPF, DKIM e DMARC. Alguns provedores permitem gerenciar o [DNS](https://serverspace.com.br/services/dns-hosting.md) diretamente no painel — isso facilita a configuração dos envios. Na Serverspace, os registros PTR são fornecidos mediante solicitação ao suporte técnico — o que permite garantir uma boa reputação do servidor de e-mail e evitar problemas de entrega. ## Portais corporativos, CRM e sistemas internos Esses serviços atendem dezenas ou centenas de funcionários, trabalhando com bancos de dados de clientes, documentos e relatórios. Os requisitos aumentam: - 4–8 vCPU; - 8–16+ GB RAM; - 100–200 GB SSD; - Backup e criptografia. É preferível hospedar esses serviços em uma rede privada — [nuvem privada virtual (VPC)](https://serverspace.com.br/services/virtual-private-cloud.md). Ela garante isolamento e permite configurar o acesso via VPN ou IP interno. ## Aplicações web e SaaS Para serviços SaaS ou aplicações web com alta demanda por escalabilidade e disponibilidade, são necessários: - A partir de 8 vCPU; - 16–32+ GB RAM; - Armazenamento SSD a partir de 200 GB — dependendo da complexidade da arquitetura. Essas aplicações frequentemente seguem a arquitetura de microsserviços e usam o Kubernetes para orquestração de contêineres. É importante prever escalabilidade automática: com o aumento do tráfego, o sistema pode aumentar automaticamente a quantidade de pods ou recursos alocados. Isso ajuda a lidar com picos de carga sem interrupções. Se resumirmos, tudo o que foi apresentado acima pode ser representado na seguinte tabela: | Tarefa | CPU | RAM | Disco (SSD) | Características | | --- | --- | --- | --- | --- | | Chatbot / script | 1 vCPU | 512 MB – 1 GB | 10–20 GB | Ubuntu/Debian, carga mínima, economia de recursos | | Ambiente de testes / Dev | 2–4 vCPU | 4–8 GB | 40–100 GB | Docker, CI/CD, snapshots | | Site / blog / landing page | 1–2 vCPU | 2–4 GB | 20–40 GB | Banco de dados, proteção contra DDoS, uso de CDN | | Servidor de e-mail / envios | 2 vCPU | 4–8 GB | 50–100 GB | SPF/DKIM, IP estático, registros PTR | | CRM / portal corporativo | 4–8 vCPU | 8–16 GB | 100–200 GB | VPC, acesso por VPN, proteção de dados | | SaaS / aplicação web | 8+ vCPU | 16–32+ GB | 200+ GB | Kubernetes, escalabilidade horizontal | A escolha da configuração depende da tarefa, do orçamento e dos requisitos de confiabilidade. O principal é não pagar a mais por recursos desnecessários, mas também não economizar onde o desempenho é crítico. Uma boa abordagem é começar com o conjunto mínimo, monitorar a carga por métricas e escalar o servidor conforme o projeto cresce. Plataformas em nuvem como a Serverspace permitem ajustar configurações de forma flexível sem migração ou tempo de inatividade — diretamente no painel de controle. E se você não tiver certeza de quais recursos escolher, sempre é possível lançar algumas instâncias de teste e pagar apenas pelo que realmente for usado. https://serverspace.com.br/about/news/feliz-dia-do-administrador-de-sistemas-os-verdadeiros-herois-da-ti.md Hoje queremos agradecer àqueles que ficam nos bastidores, mas tornam possível o funcionamento de toda a infraestrutura de TI. Toda rede que funciona sem falhas, todo servidor que não caiu, todo e-mail que chega à sua caixa de entrada — por trás de tudo isso, há um sysadmin. Hoje queremos agradecer àqueles que ficam nos bastidores, mas tornam possível o funcionamento de toda a infraestrutura de TI. São eles que mantêm a calma durante quedas de serviço, corrigem falhas de segurança, restauram backups no meio da madrugada e sabem exatamente onde está a versão correta do arquivo de configuração. No Serverspace, sabemos o que é correr atrás de uptime, aplicar patches críticos, resolver alertas e manter os sistemas estáveis. Por isso, nossa plataforma foi construída pensando nos administradores: implantação rápida, acesso root completo, painel de controle intuitivo e infraestrutura transparente. Então, seja você responsável por dezenas de servidores sozinho ou parte de uma equipe 24/7 — estamos com você. Obrigado pelas atualizações, pelo uptime e por aquela mágica que impede tudo de desabar. Hoje, você merece uma pausa. Não precisa salvar o ambiente de produção — apenas relaxe. Deixe os alertas se virarem sozinhos. E se bater o tédio, aproveite para fazer nosso quiz ["Que tipo de sysadmin é você?"](https://serverspace.com.br/feliz-dia-do-sysadmin.md) e descubra se você é um sniper de logs ou um mago dos backups. **Feliz Dia do Sysadmin — de toda a equipe do Serverspace!** _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem global que oferece implantação instantânea de infraestrutura virtual com Linux, Windows e sistemas operacionais russos — de qualquer lugar do mundo, em menos de 1 minuto. Para integrar seus serviços, estão disponíveis ferramentas abertas como API, CLI e Terraform._ https://serverspace.com.br/about/blog/o-que-e-cdn-e-quando-ele-realmente-e-necessario.md Descubra o que é CDN, como funciona e quando seu projeto realmente precisa dessa tecnologia de aceleração web. Quando você acessa um site, espera que ele carregue rapidamente — independentemente de onde você esteja. Mas se o servidor desse site estiver fisicamente localizado, por exemplo, na Alemanha, e você estiver no Brasil, cada imagem, script ou arquivo de vídeo será transmitido do outro lado do mundo. Isso leva tempo e pode desacelerar consideravelmente o site. E se houver milhares de usuários acessando ao mesmo tempo? O servidor pode simplesmente não dar conta da carga. Para resolver esse problema, a internet moderna recorre cada vez mais às redes de entrega de conteúdo — CDN (Content Delivery Network). Trata-se de um grupo de servidores distribuídos que ajudam a entregar informações de forma mais rápida, estável e próxima do usuário. Com a ajuda da CDN, os sites carregam mais rápido, os vídeos não travam e a carga sobre a infraestrutura principal diminui significativamente. Este artigo é útil tanto para quem está começando a entender tecnologias em nuvem quanto para quem já enfrentou sobrecarga em seus sites e busca formas de otimizá-los. Vamos explicar o que é uma CDN, como ela funciona, quando é realmente necessária e quando é possível viver sem ela. ## O que é CDN em termos simples [CDN](https://serverspace.com.br/services/cdn.md) (Content Delivery Network) é uma rede de servidores distribuídos ao redor do mundo que ajuda a entregar conteúdo de forma mais rápida ao usuário. Em outras palavras, é como um ponto de retirada de encomendas, só que na internet: em vez de buscar seu pacote em outro estado, você o retira na unidade mais próxima de casa. Ao acessar um site, seu navegador solicita dados: texto, imagens, vídeos, scripts. Sem uma CDN, todo esse conteúdo é carregado diretamente do servidor principal, que pode estar longe de você. Isso torna o carregamento lento, especialmente se a conexão não for estável ou o servidor estiver sobrecarregado. A CDN muda esse processo. O conteúdo é previamente armazenado (em cache) em vários servidores espalhados pelo mundo. Quando o usuário acessa o site, o navegador obtém os dados do servidor CDN mais próximo, e não do servidor central. Isso reduz a latência e acelera o carregamento. - **Exemplo sem CDN:** Você está no Rio de Janeiro e acessa uma loja virtual cujo servidor está em Paris. A solicitação atravessa o oceano, redes congestionadas e a infraestrutura europeia. Quanto mais solicitações simultâneas, mais lento o site. - **Exemplo com CDN:** A mesma loja virtual usa CDN. Os arquivos — imagens dos produtos, estilos, scripts — já estão armazenados em servidores na América do Sul. Quando você acessa o site, a maior parte do conteúdo vem do servidor mais próximo, e não da Europa. Resultado: carregamento muito mais rápido, mesmo com milhares de visitantes simultâneos. CDNs são usados por todas as grandes plataformas: - **YouTube** armazena os vídeos em servidores próximos ao espectador, evitando travamentos. - **Serviços em nuvem** usam cache para acelerar o carregamento de arquivos e aplicações. - **Lojas virtuais** hospedam imagens e estilos via CDN para evitar perda de clientes por lentidão. CDN é uma ferramenta essencial que torna sites e serviços mais rápidos, estáveis e acessíveis. Mesmo sem saber, você já usou CDN muitas vezes. ## Como a CDN funciona na prática Para entender como uma CDN opera, imagine uma rede de pequenos armazéns espalhados pelo mundo. Neles ficam armazenados, antecipadamente, os arquivos que podem ser solicitados — imagens, vídeos, estilos, scripts. Quando o usuário acessa o site, o pedido não vai para o servidor central, mas sim para o armazém mais próximo, que entrega o conteúdo com o menor atraso possível. 1. Servidores distribuídos geograficamente O núcleo de toda CDN é sua rede de servidores localizados em diversos países e cidades. São chamados de PoPs (Points of Presence). Cada PoP está conectado à internet com alta capacidade de transmissão e atende aos usuários da região. 2. Replicação de conteúdo Assim que você publica uma nova página, imagem ou arquivo, a CDN automaticamente replica esse conteúdo nos servidores relevantes da rede. Alguns sistemas fazem isso de forma imediata, outros replicam sob demanda — ou seja, o conteúdo é armazenado em cache quando é solicitado pela primeira vez. 3. Cache e aceleração O cache armazena temporariamente os arquivos no servidor CDN. Isso evita que os dados precisem ser baixados novamente do servidor central a cada acesso. O cache pode ser atualizado automaticamente caso você altere o arquivo ou de acordo com regras pré-definidas. 4. Balanceamento de carga e resiliência A CDN distribui o tráfego entre seus servidores. Se um PoP estiver sobrecarregado ou indisponível, o pedido é redirecionado para o mais próximo e disponível. Isso aumenta a estabilidade do site, mesmo em períodos de alto tráfego. Em casos de ataques DDoS, a CDN também ajuda, bloqueando parte das requisições maliciosas antes que cheguem ao servidor principal. [https://serverspace.com.br/services/cdn/](https://serverspace.com.br/services/cdn.md) ## Seu projeto precisa de uma CDN? Depende da audiência, volume de tráfego e tipo de conteúdo. Abaixo, uma tabela com exemplos comuns: | Tipo de projeto | Região de acesso | Frequência de acesso | Tipo de conteúdo | Precisa de CDN? | | --- | --- | --- | --- | --- | | Blog pessoal | Apenas local | Baixa | Texto, imagens estáticas | Não | | Site institucional | Região única | Média | PDFs, apresentações | Opcional | | Loja virtual | Nacional ou internacional | Média / Alta | Imagens, JavaScript | Sim | | Plataforma de streaming | Nacional / internacional | Muito alta | Vídeos, mídia pesada | Sim (essencial) | | Serviço SaaS | Internacional | Média / Alta | Interface, APIs, documentação | Sim | | Portal de notícias | Crescimento rápido | Tráfego em picos | Texto, imagens, vídeos | Sim | | MVP ou demo | Apenas para testes | Baixa | Funcionalidade básica | Não | | Plataforma de cursos online | Nacional / internacional | Média / Alta | Vídeos, slides, interface | Sim | | Cliente de jogos | Nacional / internacional | Alta | Patches, atualizações, assets | Sim | Resumindo: - Projetos locais e com pouco tráfego geralmente não precisam de CDN. - Se seu público está distribuído, o conteúdo é pesado ou há picos de acesso — a CDN se torna indispensável. - Em alguns casos, mesmo que não seja obrigatória, ela pode melhorar a experiência e a estabilidade. ## Como escolher uma CDN Um bom serviço de CDN deve ser rápido, estável, flexível e transparente em seus preços. Veja os principais pontos a considerar — e por que a solução da [Serverspace](https://serverspace.com.br/services/cdn.md) se destaca. - **Cobertura global e desempenho.** Quanto mais PoPs e melhor a distribuição geográfica, mais eficiente será a entrega. A CDN da Serverspace conta com infraestrutura em regiões estratégicas, garantindo velocidade e confiabilidade. - **Preço transparente.** Muitos provedores cobram por gigabyte, por região ou por requisição. Na Serverspace, a cobrança é clara: você paga apenas pelo tráfego usado, sem surpresas. Ideal para empresas em crescimento e startups. - **Recursos modernos e SLA.** A CDN deve suportar cache, compressão, TLS, proteção contra DDoS e ter SLA robusto. A Serverspace oferece tudo isso, além de suporte 24/7. - **Integração com a nuvem.** Enquanto muitos serviços exigem configuração separada, a CDN da Serverspace está integrada à mesma plataforma dos servidores e do armazenamento. Basta ativar — sem complicações. CDN não é luxo: é uma tecnologia que torna sites e serviços mais rápidos, resilientes e seguros. É essencial se: - Seu público está espalhado geograficamente; - Você trabalha com mídia, APIs ou tráfego pesado; - A velocidade é crítica para sua operação. Com a Serverspace, você ativa a CDN em poucos minutos, escala conforme o tráfego e administra tudo de um só lugar. ### É possível usar CDN com WordPress? Sim. A maioria das CDNs é compatível com WordPress, via plugins ou configurações simples. Na Serverspace, você ativa com poucos cliques. ### A CDN ajuda na segurança? Sim. Embora não substitua um firewall ou WAF, a CDN atua como primeira linha de defesa, filtrando tráfego malicioso e dispersando ataques DDoS. ### Qual a diferença entre CDN e proxy? Proxy apenas redireciona tráfego. A CDN, além de encaminhar, armazena em cache, distribui a carga e acelera a entrega. É uma solução mais completa. ### Melhor colocar servidores mais perto ou usar CDN? Manter servidores em várias regiões é caro e complexo. CDN faz o mesmo trabalho — de forma mais simples, escalável e econômica. Especialmente se você usar a infraestrutura da Serverspace. https://serverspace.com.br/about/blog/o-que-esta-incluido-no-custo-do-vps-cobrancas-visiveis-e-ocultas.md Descubra quais componentes impactam o custo do VPS e como evitar surpresas com cobranças ocultas. Quando você publica um site, inicia um aplicativo web ou configura a infraestrutura de um projeto, a primeira pergunta que surge é: onde tudo isso vai rodar? Uma das opções mais populares é o [VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md). Na essência, ele é um meio-termo entre a hospedagem compartilhada e um servidor físico completo. Por um lado, você compartilha o servidor físico com outros usuários. Por outro — cada VPS recebe sua própria cota de recursos: memória RAM, processador, armazenamento. Esses recursos são garantidos e isolados dos demais, como se você alugasse um apartamento separado em um prédio, e não apenas uma cama em um dormitório coletivo. Um VPS é adequado para diversas finalidades: - hospedagem de sites com alto tráfego; - execução de aplicativos e serviços web; - implantação de bancos de dados e sistemas de armazenamento; - configuração de servidores de e-mail, FTP e [VPN](https://serverspace.com.br/services/cloud-vpn.md); - ambiente para desenvolvimento, testes e automação. Além disso, o VPS oferece controle total sobre o servidor: você escolhe o sistema operacional, configura o ambiente, instala os pacotes e atualizações necessários. Isso é especialmente importante para desenvolvedores, startups e empresas que precisam não apenas hospedar um projeto, mas gerenciar toda a infraestrutura. ## Por que os preços dos VPS variam tanto À primeira vista, todos os provedores de VPS oferecem mais ou menos o mesmo: CPU, RAM, SSD e uma determinada quantidade de tráfego. Mas, ao comparar os preços, a diferença pode ser grande. Por quê? - **Geografia e infraestrutura.** Um dos principais fatores de precificação é a localização do data center. Quanto mais próximo fisicamente do seu público, maior a velocidade de resposta e a estabilidade. Por outro lado, a hospedagem na Europa, EUA ou Ásia pode ter custos significativamente diferentes. Por exemplo, a Serverspace possui infraestrutura em [6 data centers](https://serverspace.com.br/infrastructure/data-centers.md) — no Brasil, EUA, Canadá, Holanda, Emirados Árabes Unidos e Cazaquistão. Isso permite que o usuário escolha a localização ideal em termos de latência e custo, sem pagar a mais. - **Recursos dedicados.** A mesma configuração com "2 núcleos / 4 GB de RAM", em diferentes provedores, pode ter desempenhos muito distintos. Alguns reservam recursos de forma justa, outros praticam overselling — alocam mais máquinas virtuais do que o servidor físico pode suportar com estabilidade. Isso afeta diretamente o desempenho e o preço. Na Serverspace, os recursos são garantidos, sem overselling, e podem ser monitorados em tempo real pelo painel de controle. - **Tipo de virtualização.** A tecnologia usada no VPS também influencia o preço. Soluções mais simples podem ser mais baratas, mas tendem a ter menos confiabilidade, escalabilidade e controle. A Serverspace utiliza plataformas em nuvem baseadas em [VMware](https://serverspace.com.br/services/iaas.md) e [vStack](https://serverspace.com.br/services/cloud-servers.md), que oferecem alta disponibilidade, flexibilidade e isolamento seguro entre as máquinas virtuais. Isso é essencial para empresas e projetos que não podem sofrer interrupções. ## Principais componentes de custo em um VPS Ao contratar um VPS, você não está pagando apenas pelo "servidor". O valor final envolve vários componentes, e cada um deles impacta o custo total. Abaixo, estão os principais — muitos deles podem estar incluídos no plano, ou serem cobrados separadamente. - **Recursos computacionais.** São a base de qualquer plano: memória RAM, quantidade de núcleos da CPU, espaço em disco. Quanto maior a carga do projeto, mais robusta deve ser a configuração. Discos SSD, especialmente NVMe, garantem desempenho superior — mas também aumentam o custo. - **Sistema operacional.** Se você usa [Linux](https://serverspace.com.br/services/vps-server/linux.md), a maioria das distribuições é gratuita. Mas, se o projeto exige [Windows Server](https://serverspace.com.br/services/vps-server/windows.md), a licença geralmente é cobrada à parte e incluída no valor final. - **Tráfego e largura de banda.** Muitos usuários não percebem que o tráfego pode ser cobrado separadamente — especialmente em provedores internacionais. Normalmente, o plano inclui um limite (por exemplo, 1 TB por mês), e o excedente é tarifado. Na Serverspace, todo o tráfego — de entrada e saída — é gratuito, e a largura de banda é especificada claramente, sem cláusulas ocultas. Isso é fundamental para sites e aplicações com alto volume de acessos. - **Suporte e SLA.** Alguns provedores oferecem suporte técnico apenas em planos premium ou como serviço pago separado — o que pode ser problemático em momentos críticos. Serverspace, o suporte 24/7 está incluso em todos os planos, sem custo adicional, limites de chamados ou pacotes forçados. - **Painel de controle e serviços adicionais.** Painéis como cPanel ou ISPmanager são úteis, principalmente para iniciantes, mas nem sempre são gratuitos. Na Serverspace, você pode gerenciar o VPS por meio de um painel próprio, simples e intuitivo, sem taxas extras. Também é possível instalar aplicativos populares com um clique — como Docker e WordPress. - **Backups e snapshots.** Backups automáticos são fundamentais para a segurança, mas sua inclusão e custo variam muito. Alguns provedores oferecem de forma integrada, outros cobram à parte. - **Recursos adicionais e configuração flexível.** Muitos provedores oferecem apenas o básico, e tudo além disso é cobrado à parte: segundo IP, mais armazenamento, maior velocidade de porta etc. Isso pode ser útil em projetos específicos, mas é importante que tudo seja claramente informado desde o início. A Serverspace permite configurar o VPS de forma flexível: adicionar IPs, aumentar recursos e ver imediatamente o impacto no custo. Sem surpresas na fatura — o modelo pay-as-you-go garante que você pague apenas pelo que realmente usar, com previsão de gastos em tempo real. ## Como funciona o modelo de pagamento transparente da Serverspace A Serverspace utiliza o modelo [pay-as-you-go](https://serverspace.com.br/pricing.md): os valores são debitados automaticamente a cada 10 minutos, de forma proporcional ao uso real dos recursos. Você pode recarregar sua conta com qualquer valor e pagar apenas pelo que utilizar. Todos os parâmetros — de CPU a IPs — são exibidos no configurador, e o custo estimado é mostrado antes da criação do servidor. Essa abordagem oferece flexibilidade e controle: você só paga pelo que está usando, e pode parar ou ajustar o servidor a qualquer momento. ## Do que é composta a estrutura de custos de um VPS Para facilitar a comparação e entender quais itens impactam o valor de um VPS, veja abaixo a tabela com os principais componentes, se estão incluídos ou não, se costumam estar ocultos, e como são tratados na Serverspace. | Componente | Incluído no plano? | Freqüentemente oculto? | Como funciona na Serverspace | | --- | --- | --- | --- | | CPU e RAM | Sim | Não | Informado na criação do servidor, visível no configurador | | Disco (SSD/NVMe) | Sim | Não | Precificação transparente por volume e tipo de disco | | Licença do sistema operacional | Sim (Linux), Não (Windows) | Sim | Informada separadamente ao escolher o sistema | | IPv4 dedicado | Sim | Às vezes | Pago à parte, custo visível ao configurar | | Tráfego | Sim | Freqüentemente | Sempre gratuito — tanto entrada quanto saída | | Largura de banda | Sim | Às vezes | Informada de forma clara, com opção de escolha | | Backup | Não | Freqüentemente | Opcional, ativado manualmente, preço informado | | Snapshots | Não | Às vezes | Inclusos por padrão, acessíveis via painel sem custo adicional | | Painel de controle | Não | Freqüentemente | Incluído, com todas as funções básicas | | Suporte técnico 24/7 | Não | Freqüentemente | Sempre incluído, sem cobrança adicional | | API e CLI | Não | Às vezes | Acesso gratuito para todos os usuários | O custo de um VPS não se resume ao número exibido no plano. Por trás dele, há diferenças reais em infraestrutura, suporte e flexibilidade. É essencial entender o que exatamente está incluído, o que é cobrado separadamente e quais itens podem surgir como surpresas. Na Serverspace, seguimos o princípio da transparência: você configura seu servidor, vê o custo antes de ativá-lo e paga apenas pelo que usa. Isso permite escalar sua infraestrutura com segurança, sem surpresas e com total previsibilidade. ### O que está incluído no preço de um VPS? Normalmente, o valor inclui recursos como CPU, memória RAM e armazenamento. Dependendo do provedor, também podem estar incluídos tráfego, suporte técnico, snapshots e painel de controle, enquanto itens como licenças do Windows, backups e IPs adicionais podem ser cobrados separadamente. ### O que é o modelo de cobrança pay-as-you-go? No modelo pay-as-you-go, você paga apenas pelos recursos realmente utilizados. O custo é calculado de forma proporcional ao tempo de uso, permitindo aumentar, reduzir ou desligar o servidor sem ficar preso a um plano mensal fixo. ### Como escolher um VPS com o melhor custo-benefício? Além do preço, compare fatores como qualidade da infraestrutura, localização dos data centers, tipo de virtualização, recursos garantidos, suporte técnico, SLA e transparência na cobrança. Um plano mais barato pode ter limitações que afetam o desempenho do projeto. ### Para quais projetos um VPS é indicado? Um VPS é ideal para hospedar sites com alto tráfego, lojas virtuais, aplicações web, bancos de dados, servidores VPN, ambientes de desenvolvimento, automação e outros projetos que exigem recursos dedicados e controle total sobre o sistema operacional. https://serverspace.com.br/support/help/como-configurar-e-gerenciar-um-cluster-kubernetes-no-painel-de-controle-do-serverspace.md Saiba como redimensionar grupos de nós e adicionar novos grupos em um cluster do Kubernetes por meio do painel de controle do Serverspace. Configuração fácil de dimensionamento, dicas de otimização de recursos e restrições importantes de alteração de configuração. [Kubernetes](https://serverspace.com.br/services/managed-kubernetes.md)é amplamente reconhecido como o padrão da indústria para gerenciamento de cargas de trabalho em contêineres, mas sua configuração tradicionalmente exige tempo, experiência e conhecimento técnico aprofundado. No painel de controle da Serverspace, esse processo é significativamente simplificado — você pode implantar um cluster Kubernetes totalmente funcional em apenas alguns minutos, sem precisar escrever arquivos de configuração ou gerenciar a infraestrutura manualmente. Neste artigo, vamos guiá-lo passo a passo pelo processo de configuração usando a interface web intuitiva, explicar os principais parâmetros e dar recomendações para a escolha da configuração ideal. ## Configuração do Cluster Comece a configurar seu cluster acessando a seção Kubernetes no painel de controle: Na seção **Informações Principais**, você pode configurar: - **Recursos do cluster** – incluindo CPU, RAM e número de nós - **Kubernetes Dashboard** – se você ativou o Ingress, terá acesso ao Dashboard, uma interface web prática para gerenciar seu cluster Kubernetes. - **Acesso** – permite baixar o arquivo kubeconfig para se conectar ao cluster usando o utilitário **kubectl** Na seção **Grupos de Nós**, você pode gerenciar a lista de grupos de nós: Na seção **Guia de Introdução**, você encontrará informações sobre: - Como instalar as ferramentas de gerenciamento do Kubernetes - Como baixar o arquivo de configuração do Kubernetes - Como se conectar ao seu cluster Kubernetes - Próximos passos – explicando o que fazer após conectar-se ao cluster com sucesso Na seção **Ações**, você pode atualizar seu cluster para a versão mais recente ou excluí-lo: Na seção **Histórico**, você pode visualizar as ações recentes realizadas em seu cluster: Na seção **Faturamento**, você pode ver em detalhes o **custo mensal** do seu cluster, bem como consultar o **histórico de cobranças**: https://serverspace.com.br/articles/como-criar-um-servidor-com-software-pre-instalado-no-serverspace.md Crie um servidor com software pré-instalado no Serverspace: WordPress, Docker, LAMP e outros. Início rápido sem configuração manual. A criação de um servidor com software pré-instalado no painel de controle da Serverspace é uma maneira simples de economizar tempo na configuração e obter imediatamente um ambiente pronto para uso. Você pode selecionar os aplicativos necessários já na fase de implantação — seja um servidor web, um sistema de gerenciamento de conteúdo ou ferramentas de desenvolvimento. Abaixo está um passo a passo que ajudará você a configurar rapidamente o servidor de acordo com suas necessidades. Escolha o tipo de virtualização — vStack ou VMware — e clique em "**Criar servidor**": Em seguida, defina os parâmetros do servidor conforme suas necessidades: Role a página para baixo e abra a seção "**Aplicativos**" para instalar o software desejado durante a criação do servidor: Atualmente, os seguintes aplicativos estão disponíveis: - **WordPress** - **Docker** - **PostgreSQL** - **PHP** - **Apache** - **Nginx** - **LAMP** - **LEMP** Criar um servidor com software pré-instalado no painel da Serverspace é uma solução prática para começar rapidamente, sem a necessidade de configurações manuais demoradas. Você pode escolher o tipo de virtualização adequado, ajustar os parâmetros do servidor e instalar os aplicativos necessários em apenas algumas etapas. Essa abordagem economiza tempo e facilita o lançamento tanto de projetos de teste quanto de produção. https://serverspace.com.br/support/help/como-criar-um-servidor-vstack-no-painel-de-controle-do-serverspace.md Instruções passo a passo para criar um servidor de nuvem vStack no painel Serverspace: escolha de um sistema operacional, configuração, segurança, afinidade e automação. Para criar um servidor em nuvem vStack: - Abra a seção vStack Cloud no menu à esquerda do painel de controle. - Vá para a subseção Servidores. - Clique no botão + **Criar** **servidor**: Em seguida, selecione o sistema operacional desejado, escolha o data center e configure o servidor de acordo com suas necessidades: Você pode escolher uma configuração fixa ou flexível para o servidor. Se necessário, conecte volumes adicionais, expanda volumes existentes, adicione interfaces de rede ou aumente sua largura de banda. Depois, selecione o tipo de autenticação. Você também pode selecionar aplicativos que serão instalados no servidor durante o provisionamento, assim como associar grupos de Afinidade. Informe o nome do servidor e a quantidade de instâncias que deseja criar. Se necessário, o provisionamento pode ser automatizado via API. Após concluir toda a configuração, clique em **Solicitar**. https://serverspace.com.br/support/help/como-recriar-um-servidor-no-painel-de-controle-do-serverspace.md Como recriar um servidor no Serverspace: instruções passo a passo. Excluir e criar um servidor preservando endereços IP e alterando o sistema operacional. Recursos e avisos importantes. Ao trabalhar com servidores em nuvem no painel de controle da Serverspace, pode surgir a necessidade de recriar um servidor — por exemplo, para alterar o sistema operacional ou corrigir erros críticos. A função de recriação permite excluir a máquina virtual atual e criar uma nova no mesmo lugar, mantendo os endereços IP alocados. Essa é uma forma prática de atualizar ou reconfigurar rapidamente o servidor, sem precisar reservar e restaurar manualmente as configurações de rede. Neste artigo, vamos mostrar como realizar esse processo passo a passo. ## Como recriar um servidor? Para isso, vá até a lista de seus servidores e selecione o desejado. Em seguida, abra o menu "**Ações**" → "**Reconstruir**". Depois disso, você poderá iniciar o processo de recriação: Após isso, será necessário escolher uma versão do template e confirmar a recriação do servidor marcando a caixa de seleção: Depois disso, seu servidor será recriado. ## FAQ: Perguntas frequentes - **O que acontece com meus dados ao recriar o servidor?** Todos os dados armazenados no servidor — incluindo arquivos, configurações e backups — serão permanentemente apagados. Antes de prosseguir, é altamente recomendado criar um backup manual dos dados importantes em um armazenamento externo. - **Posso mudar o sistema operacional ao recriar o servidor?** Sim, durante o processo de recriação, você pode escolher outro sistema operacional da lista de templates disponíveis. - **Os endereços IP do meu servidor serão mantidos?** Sim, todos os endereços IP alocados anteriormente serão preservados, evitando alterações na configuração de rede. - **Quanto tempo leva o processo de recriação?** Normalmente, o processo leva apenas alguns minutos, dependendo do sistema operacional escolhido e da carga atual da infraestrutura. - **Posso cancelar a recriação depois de iniciada?** Não, a operação de recriação é irreversível. Tenha certeza antes de confirmar a ação. https://serverspace.com.br/support/help/onde-posso-encontrar-e-baixar-o-kubeconfig-no-painel-de-controle-do-serverspace.md Aprenda como encontrar e baixar um arquivo kubeconfig no painel Serverspace para conectar-se com segurança e gerenciar um cluster Kubernetes via kubectl. Para estabelecer uma conexão com um cluster **Kubernetes** — seja a partir do terminal local ou por meio de uma ferramenta externa como o **kubectl** — você precisa de um arquivo de configuração especial chamado kubeconfig. Esse arquivo contém todos os dados essenciais para autenticação e acesso seguro: o endereço do servidor da API, tokens de usuário ou chaves de acesso, configurações de contexto e credenciais de segurança. Ele atua como uma ponte entre sua máquina e o cluster, garantindo que cada solicitação seja autorizada e corretamente direcionada. Sem esse arquivo, qualquer interação remota com o cluster se torna impossível ou insegura. Neste guia, mostraremos passo a passo como localizar e baixar o arquivo kubeconfig diretamente pelo painel de controle da Serverspace, para que você possa começar a gerenciar seus recursos Kubernetes com confiança e segurança. Acesse a seção Kubernetes no menu lateral esquerdo do painel de controle e selecione o cluster desejado: Essa ação abrirá o painel de configurações do cluster. Na aba **Informações Básicas,** role até o final da página para encontrar a seção **Acesso**, onde você poderá fazer o download do seu arquivo kubeconfig. O arquivo kubeconfig funciona como a principal configuração de acesso a um cluster Kubernetes. Ele inclui informações essenciais de conexão, como o endpoint do servidor da API, dados de autenticação do usuário, certificados de segurança e configurações de contexto. Com esse arquivo, é possível interagir com segurança com o cluster usando ferramentas de linha de comando como o kubectl, além de outros utilitários compatíveis com Kubernetes. Sem o kubeconfig, não é possível realizar tarefas de administração remota ou automação de maneira eficaz. ## FAQ: Perguntas Frequentes - **O que devo fazer se eu perder meu arquivo kubeconfig?** Se você perder o arquivo kubeconfig, não conseguirá mais acessar nem gerenciar seu cluster Kubernetes remotamente. Para resolver isso, basta acessar o painel da Serverspace, ir até a seção Kubernetes, selecionar seu cluster e fazer o download de um novo arquivo na seção Acesso, localizada no final da aba Informações Básicas. - **Posso usar o mesmo arquivo kubeconfig em vários dispositivos?** Sim. O arquivo kubeconfig pode ser transferido com segurança e utilizado em diferentes dispositivos, como outras máquinas locais ou ambientes de CI/CD — desde que o acesso ao arquivo seja devidamente protegido. - **É seguro compartilhar meu arquivo kubeconfig?** Não. O arquivo kubeconfig contém credenciais sensíveis e tokens de acesso. Compartilhá-lo pode comprometer a segurança do seu cluster. Somente pessoas autorizadas devem ter acesso a esse arquivo. - **Com que frequência devo atualizar o kubeconfig?** Você deve atualizar o kubeconfig sempre que as credenciais do cluster forem rotacionadas, as permissões de acesso forem modificadas ou surgirem erros de autenticação. Utilize sempre a versão mais recente disponível no painel de controle. https://serverspace.com.br/support/help/hashcat-como-usar-para-quebrar-hashes.md Aprenda a usar o Hashcat para quebrar hashes: instalação, ataques por dicionário e por máscara, exemplos práticos. O Hashcat é uma ferramenta poderosa para recuperação de senhas a partir de hashes. Ele oferece suporte a uma ampla variedade de algoritmos e pode utilizar tanto CPU quanto GPU, sendo um dos mais rápidos da categoria. Neste tutorial, vamos mostrar como começar a usar o Hashcat com o exemplo de quebra de uma hash SHA256. ## Instalando o Hashcat Na maioria dos sistemas Linux, o Hashcat pode ser instalado diretamente pelo gerenciador de pacotes: ```bash sudo apt update sudo apt install hashcat -y ``` Screenshot Nº 1 — Instalação Para Windows, existe uma versão oficial que pode ser instalada a partir do [site oficial](https://hashcat.net/hashcat/). Verifique a instalação com: ``` hashcat --version ``` Como exemplo, vamos usar a string "password" com hash SHA256: ``` echo -n "password" | sha256sum ``` Resultado: 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 Crie um arquivo com essa hash: ``` echo "5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8" > hash.txt ``` Crie um dicionário simples: ``` echo -e "123456\npassword\nqwerty" > dict.txt ``` Screenshot Nº 2 — Preparação O Hashcat usa códigos numéricos para representar algoritmos. Para SHA256, o código é 1400. Execute o processo: ``` hashcat -m 1400 -a 0 -o found.txt hash.txt dict.txt ``` Parâmetros explicados: - -m 1400 — modo SHA256; - -a 0 — ataque por dicionário; - -o found.txt — salva as senhas encontradas. Após a conclusão, verifique o resultado: ``` cat found.txt ``` Exemplo de saída: ``` 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8:password ``` Screenshot Nº 3 — Resultado Parâmetros úteis para ajustar a performance: - --force — força execução mesmo com hardware não compatível; - --status — exibe o status em tempo real; - -w 3 — define o nível de performance (de 1 a 4). Se não for mais usar os arquivos: ``` rm hash.txt dict.txt found.txt ``` ## Opções para personalizar a busca Além do ataque por dicionário, o Hashcat permite o uso de máscaras e combinações com dicionários: | Código | Tipo de Ataque | Descrição | | --- | --- | --- | | 0 | Dicionário | Ataque com base em lista de senhas | | 1 | Combinação | Combina duas listas | | 3 | Força Bruta (Mask) | Ataque com padrão/máscara | | 6 | Híbrido Dicionário+Mask | Ex: password123 | | 7 | Híbrido Mask+Dicionário | Ex: 123password | Máscaras disponíveis para criar padrões: | Máscara | Valor | | --- | --- | | ?l | letra minúscula | | ?u | letra maiúscula | | ?d | número | | ?s | caractere especial | | ?a | qualquer caractere | Exemplo de força bruta para senha de 8 dígitos: ``` hashcat -a 3 -m 0 hash.txt ?d?d?d?d?d?d?d?d ``` Ou com opções combinadas: ``` hashcat -a 6 -m 0 hash.txt dict.txt ?d?d ``` O **Hashcat** é uma ferramenta indispensável para testar a força de senhas. Use-o apenas para fins legais: auditoria de segurança, aprendizado ou recuperação de dados próprios. O uso indevido da ferramenta constitui crime. https://serverspace.com.br/support/help/como-assinar-o-gerenciamento-no-painel-de-controle-do-serverspace.md Aprenda a assinar o painel de controle de administração do Serverspace de forma rápida e fácil. Delegue a manutenção do servidor a profissionais e garanta a estabilidade, a segurança e as atualizações da sua infraestrutura. Se você deseja focar no crescimento do seu negócio em vez de lidar com tarefas técnicas, assinar os serviços de administração pelo painel de controle da Serverspace é uma excelente solução. Delegue a manutenção e o suporte dos seus servidores na nuvem a especialistas técnicos experientes, que fornecerão monitoramento, backups, atualizações pontuais e resposta rápida a incidentes. Além disso, nossos especialistas irão ajudá-lo a desenvolver e implementar um plano de modernização da infraestrutura e realizar auditorias de segurança proativas para garantir que seu sistema funcione de forma estável e confiável. Para assinar o serviço de administração, acesse a seção "**Gerenciamento**" e clique no botão "**Assine**": Em seguida, escolha um plano — **Básico**, **Avançado** ou **Profissional**. Depois, selecione um ou mais servidores aos quais a assinatura será aplicada e dê um nome para facilitar o gerenciamento, especialmente se você tiver várias assinaturas. Ao finalizar, clique em "**Criar Assinatura**": Assinar os serviços de administração no painel da Serverspace é uma forma simples e conveniente de garantir suporte profissional para seus servidores na nuvem. Ao escolher o plano adequado e especificar os servidores necessários, você terá acesso a um suporte técnico completo que ajuda a melhorar a estabilidade, segurança e eficiência da sua infraestrutura. Delegue tarefas rotineiras a especialistas e concentre-se no crescimento do seu negócio. https://serverspace.com.br/support/help/o-que-e-kubeconfig-no-kubernetes-e-por-que-ele-e-necessario.md Aprenda o que é kubeconfig no Kubernetes, por que ele é necessário e como usar esse arquivo corretamente para se conectar aos seus clusters de forma segura e fácil. Explicação simples e dicas de configuração. No mundo do Kubernetes, um dos elementos-chave para a interação com o cluster é o arquivo kubeconfig. Esse arquivo desempenha um papel importante na configuração e no gerenciamento do acesso ao cluster Kubernetes, mas o que ele é exatamente e para que serve? Vamos entender. ## O que é o kubeconfig? O kubeconfig é um arquivo de configuração que contém todas as informações necessárias para se conectar a um cluster Kubernetes. Ele é usado pela linha de comando kubectl e outros clientes para autenticação, autorização e seleção do cluster correto. Na prática, o kubeconfig funciona como uma espécie de "passaporte" ou "chave de acesso" que permite às ferramentas clientes saberem: - A quais clusters podem se conectar - Como estabelecer a conexão com cada cluster - Quais credenciais usar para autenticação - Qual contexto (cluster e usuário) utilizar por padrão ## Do que o kubeconfig é composto? O arquivo kubeconfig geralmente está no formato YAML e inclui algumas seções principais: - **clusters** — lista de clusters Kubernetes disponíveis com os endereços dos servidores API e certificados - **users** — contas de usuários com seus certificados, tokens ou outros métodos de autenticação - **contexts** — combinações específicas de usuário e cluster. O contexto define qual cluster e usuário serão usados por padrão - **current-context** — o contexto atual selecionado que o kubectl usa por padrão Exemplo simplificado de kubeconfig: ```yaml apiVersion: v1 kind: Config clusters: - name: my-cluster cluster: server: https://192.168.99.100:6443 certificate-authority: /path/to/ca.crt users: - name: admin user: client-certificate: /path/to/admin.crt client-key: /path/to/admin.key contexts: - name: my-context context: cluster: my-cluster user: admin current-context: my-context ``` ## Para que serve o kubeconfig? A principal função do kubeconfig é simplificar e garantir o acesso seguro ao cluster Kubernetes. Aqui estão os principais usos: - Gerenciar múltiplos clusters. Se você trabalha com vários clusters (por exemplo, dev, staging, prod), o kubeconfig permite armazenar as configurações de todos eles em um único arquivo e alternar entre eles facilmente. - Autenticação e autorização. O arquivo contém os dados necessários para confirmar sua identidade junto ao cluster, seja por certificados, tokens ou outros métodos. - Gerenciar usuários e permissões. Você pode configurar diferentes usuários com diferentes níveis de acesso e alternar entre eles usando contextos. - Integração com ferramentas. Todas as ferramentas oficiais e muitas de terceiros que trabalham com Kubernetes (como kubectl, Helm, k9s) utilizam o kubeconfig para conexão e gerenciamento. ## Onde o kubeconfig fica armazenado? Por padrão, o kubectl procura o kubeconfig no arquivo: ``` $HOME/.kube/config ``` Se quiser usar outro arquivo, pode especificá-lo através da variável de ambiente: ``` export KUBECONFIG=/caminho/para/seu/kubeconfig ``` Ou usando o parâmetro da linha de comando: ```bash kubectl --kubeconfig=/caminho/para/seu/kubeconfig get pods ``` ## Segurança do kubeconfig Como o arquivo contém chaves de acesso aos seus clusters, é importante: - Guardá-lo em um local seguro - Não publicar em repositórios públicos - Usar o menor nível de permissão possível para os usuários - Quando necessário, criptografar ou usar gerenciadores de segredos ## Resumo O **kubeconfig** é um arquivo de configuração fundamental que permite às ferramentas clientes, como o kubectl, conectar-se de forma segura e prática a um ou vários clusters Kubernetes. Ele gerencia as configurações de clusters, usuários e contextos, oferecendo uma forma flexível e confiável de trabalhar com Kubernetes. Entender o kubeconfig é o primeiro passo para um gerenciamento eficaz e seguro do Kubernetes. https://serverspace.com.br/support/como-abrir-o-chat-com-gpt-no-painel-de-controle-do-serverspace.md Aprenda a abrir e configurar rapidamente um bate-papo com o GPT no painel de controle do Serverspace - selecione modelos, defina parâmetros e automatize o trabalho com serviços de nuvem. Modelos modernos de inteligência artificial, como o GPT, conseguem compreender e gerar linguagem humana, abrindo novas possibilidades para automação e aumentando a eficiência dos fluxos de trabalho. No painel de controle do Serverspace, a integração com o GPT permite obter respostas rápidas para suas perguntas, automatizar tarefas rotineiras e melhorar a interação com o serviço. Neste artigo, explicaremos em detalhes como abrir e usar o chat com GPT diretamente no painel do Serverspace para tornar seu trabalho mais fácil e produtivo. Para acessar a variedade de modelos, vá até a aba "**GPT**" e selecione aquele que melhor se adequa às suas necessidades: Após isso, uma janela de chat e o menu de configurações serão abertos, onde você poderá inserir sua chave, escolher o modelo, definir a temperatura, ajustar o parâmetro Top P e especificar o número máximo de tokens: Usar o chat com GPT no painel de controle do Serverspace simplifica muito o trabalho com serviços em nuvem, permitindo obter rapidamente as respostas necessárias e configurar de forma flexível as opções de interação. Dominando os passos simples para abrir e configurar o chat, você pode aumentar sua produtividade e tornar o gerenciamento do servidor mais conveniente e eficiente. Comece a usar as capacidades do GPT hoje mesmo e descubra novos horizontes em automação e suporte. ## FAQ - **P: O que é o chat GPT no painel de controle do Serverspace?** R: É um recurso integrado que permite interagir com modelos de linguagem de IA diretamente na interface do Serverspace para obter assistência rápida e automatizar tarefas. - **P: Como faço para acessar diferentes modelos GPT?** R: Basta navegar até a aba "GPT" no painel de controle e selecionar o modelo que melhor atende às suas necessidades. - **P: Quais configurações posso personalizar no chat GPT?** R: Você pode configurar sua chave API, escolher o modelo, ajustar a temperatura, definir o valor Top P e especificar o número máximo de tokens para as respostas. - **P: O uso do chat GPT é gratuito ou requer assinatura?** R: O uso pode depender do seu plano no Serverspace e dos limites da chave API. Verifique os preços e condições atuais nas configurações da sua conta. - **P: O GPT pode ajudar a automatizar tarefas rotineiras de gerenciamento de servidor?** R: Sim, o GPT pode ajudar a gerar comandos, fornecer explicações e otimizar fluxos de trabalho diretamente pela interface do chat. https://serverspace.com.br/support/help/onde-posso-encontrar-a-api-gpt-no-painel-de-controle-do-serverspace.md Aprenda a abrir e configurar rapidamente um bate-papo com o GPT no painel de controle do Serverspace - selecione modelos, defina parâmetros e automatize o trabalho com serviços de nuvem. As chaves de** API** desempenham um papel crucial na interação com os modelos GPT, tanto através da API quanto pelo chat integrado ao painel de controle do Serverspace. Ao usar essas chaves, você obtém a capacidade de integrar facilmente e rapidamente ferramentas poderosas de inteligência artificial em suas aplicações, serviços web e processos internos da empresa. Isso abre vastas oportunidades para automatizar tarefas rotineiras, melhorar a precisão no processamento de dados e aprimorar a experiência do usuário. Graças às chaves de API, você pode configurar o uso flexível e escalável dos modelos GPT, adaptando-os a objetivos de negócios específicos e requisitos técnicos. Neste artigo, examinaremos detalhadamente onde encontrar as chaves de API GPT dentro do painel do Serverspace, como criá-las e gerenciá-las corretamente, e como aplicá-las de forma eficaz para otimizar seus fluxos de trabalho. Para acessá-las, abra o menu "**GPT**" e vá até a aba "**API**": Neste menu, você pode criar uma nova chave de API e gerenciar as já existentes: As APIs GPT são uma ferramenta poderosa para integrar capacidades de inteligência artificial em uma ampla variedade de aplicações e serviços. Elas permitem a geração automática de textos, o processamento de linguagem natural, a criação de chatbots, a análise de dados e o auxílio na resolução de tarefas complexas — desde programação até a elaboração de materiais de marketing. Com as APIs GPT, os desenvolvedores obtêm uma forma flexível e escalável de automatizar processos rotineiros, melhorar a interação com usuários e elevar a qualidade dos serviços prestados. Ao usar a API, é importante seguir as melhores práticas de segurança: manter as chaves armazenadas de forma segura, evitar compartilhá-las publicamente e restringir direitos de acesso conforme necessário. Além disso, recomenda-se monitorar cuidadosamente o consumo de tokens e ajustar os parâmetros do modelo (temperatura, número máximo de tokens etc.) de acordo com suas tarefas, para otimizar custos e obter os resultados mais relevantes. O uso adequado das APIs GPT abre enormes oportunidades para empresas e desenvolvedores criarem soluções inteligentes, adaptativas e eficientes. ## Perguntas Frequentes (FAQ) - **P: Para que servem as chaves de API GPT?** R: As chaves de API permitem a interação com os modelos GPT via API ou chat dentro do painel de controle, possibilitando a integração de IA em aplicações e serviços para automatizar processos. - **P: Onde posso encontrar as chaves de API no painel do Serverspace?** R: Abra o menu "GPT" e navegue até a aba "API", onde verá uma chave padrão criada automaticamente e poderá criar novas. - **P: Posso criar várias chaves de API?** R: Sim, o menu de gerenciamento de chaves permite criar novas chaves de API e gerenciar as existentes. - **P: Quais medidas de segurança devo seguir ao trabalhar com chaves de API?** R: Recomenda-se manter as chaves armazenadas de forma segura, não divulgá-las publicamente e restringir os direitos de acesso conforme necessário. - **P: Como posso otimizar o uso das APIs GPT?** R: Monitore cuidadosamente o uso de tokens e ajuste os parâmetros do modelo (temperatura, número máximo de tokens etc.) com base nas suas tarefas para reduzir custos e melhorar a qualidade das respostas. https://serverspace.com.br/support/help/que-precaucoes-de-seguranca-devo-tomar-ao-trabalhar-com-chaves-de-api.md Aprenda as medidas de segurança necessárias ao trabalhar com chaves de API, desde o armazenamento e a restrição de acesso até a substituição e o registro regulares. Dicas sobre proteção de dados e gerenciamento de chaves com exemplos. Além disso,… **Chaves de API** são identificadores únicos que permitem que um aplicativo ou serviço se autentique e acesse uma API. Elas são amplamente usadas para integração de serviços, automação de processos e para viabilizar a interação entre sistemas. No entanto, o manuseio incorreto das chaves de API pode levar a consequências graves, como vazamento de dados, acesso não autorizado e perdas financeiras. Por isso, é importante seguir algumas medidas de segurança ao trabalhar com chaves de API. ## 1. Nunca armazene chaves de API em texto aberto Nunca coloque as chaves em repositórios públicos de código (por exemplo, GitHub), arquivos de configuração abertos ou no código de aplicativos cliente. Em vez disso, utilize armazenamentos seguros, como: - Variáveis de ambiente - Gerenciadores de segredos (AWS Secrets Manager, HashiCorp Vault, etc.) - Arquivos de configuração que não estejam acessíveis publicamente e que sejam criptografados ## 2. Limite as permissões e o acesso das chaves de API Sempre emita as chaves com os privilégios mínimos necessários (princípio do menor privilégio). Por exemplo, se a chave for usada apenas para leitura de dados, não conceda permissão de escrita ou exclusão. Também é recomendado restringir os endereços IP que podem usar a chave, para reduzir o risco de acesso não autorizado. ## 3. Troque e revogue as chaves regularmente As chaves de API não devem ser "para sempre". Planeje a troca regular das chaves para minimizar o impacto em caso de vazamento. Se suspeitar que uma chave foi comprometida, revogue-a imediatamente e gere uma nova. ## 4. Registre o uso das chaves Manter logs permite acompanhar quando e como as chaves são usadas, detectar atividades suspeitas e responder rapidamente a possíveis incidentes. ### 5. Use camadas adicionais de autenticação e criptografia Se suportado pela API e pela plataforma, habilite a autenticação em dois fatores e criptografe os canais de comunicação (por exemplo, HTTPS) para proteger as chaves durante a transmissão. ### 6. Treine funcionários e desenvolvedores É muito importante que todos que trabalham com chaves de API compreendam os riscos e sigam as políticas de segurança. Treinamentos regulares e políticas internas ajudam a evitar erros e vazamentos. ## Conclusão A segurança das chaves de API é um aspecto crucial para o funcionamento confiável de serviços e aplicativos modernos. Seguir regras simples, mas importantes, ajuda a evitar vazamentos e acessos não autorizados, minimizar riscos e manter a confiança dos usuários. A integração das chaves de API deve ser planejada e seu gerenciamento — controlado e transparente. ## Checklist rápido para segurança de chaves de API - **Não armazene chaves em locais públicos ou no código** - **Use armazenamentos seguros para as chaves** - **Conceda permissões mínimas necessárias** - **Restrinja o uso das chaves por IP e tempo** - **Troque e revogue as chaves regularmente conforme necessário** - **Registre o uso das chaves** - **Use criptografia e autenticação em dois fatores** - **Treine os funcionários nas melhores práticas de segurança** ## FAQ **P: O que devo fazer se minha chave de API vazar publicamente?** R: Revogue a chave atual imediatamente e crie uma nova. Verifique os logs para identificar atividades suspeitas e, se necessário, altere senhas e configurações de segurança relacionadas. **P: Posso usar uma única chave de API para múltiplos aplicativos?** R: Recomenda-se criar chaves separadas para cada aplicativo ou serviço para facilitar o gerenciamento de acesso e permitir revogações sem impactar outros projetos. **P: Com que frequência devo trocar minhas chaves de API?** R: O ideal é trocar as chaves regularmente — por exemplo, a cada poucos meses — ou imediatamente se suspeitar de vazamento. ## Por que usar chaves de API com a Serverspace? A **Serverspace** oferece soluções confiáveis e práticas para trabalhar com serviços em nuvem, com foco especial na segurança das chaves de API. Entre nossas funcionalidades está a **GPT API**, que permite integrar facilmente poderosas ferramentas de inteligência artificial aos seus aplicativos e serviços. Além disso, nossa extensa base de conhecimento contém documentações e guias detalhados sobre o uso de APIs, facilitando muito a configuração e o gerenciamento. Oferecemos gerenciamento flexível das chaves com permissões e restrições personalizáveis, armazenamento seguro e revogação rápida via interface intuitiva, suporte a canais criptografados para transmissão de dados e monitoramento 24/7 com suporte técnico ágil. Com a **Serverspace**, você pode confiar na segurança das suas chaves de API e dados, focando no crescimento do seu negócio e inovação. https://serverspace.com.br/support/help/o-que-e-armazenamento-em-nuvem-e-como-usa-lo.md Armazenamento em nuvem: o que é, como funciona e por que as empresas precisam dele? Saiba mais sobre os benefícios, a escalabilidade e o uso do armazenamento de objetos em nuvem no Serverspace para armazenamento confiável e colaboração com dados. ## **O que é armazenamento em nuvem?** Armazenamento em nuvem é um serviço para guardar dados em servidores remotos acessados pela internet. Em vez de salvar arquivos em computadores locais ou servidores internos da organização, as informações são hospedadas na infraestrutura de um provedor de nuvem e podem ser acessadas de qualquer lugar do mundo com conexão à internet. A ideia principal do armazenamento em nuvem é permitir que usuários e organizações armazenem, gerenciem e acessem seus dados de forma conveniente e segura, sem a necessidade de administrar infraestrutura física. ## **Como o armazenamento em nuvem funciona?** Quando você envia um arquivo para a nuvem, ele é transmitido pela rede e armazenado em um servidor, ou distribuído entre vários servidores para aumentar a confiabilidade e a tolerância a falhas. O usuário recebe acesso exclusivo (por exemplo, via interface web ou aplicativos específicos) e pode baixar, modificar ou compartilhar seus dados a qualquer momento. Os serviços de nuvem geralmente oferecem: - Backup confiável; - Criptografia dos dados para segurança; - Escalabilidade — você paga pelo espaço realmente utilizado; - Acesso compartilhado e sincronização de arquivos entre dispositivos. ## **Para que serve o armazenamento em nuvem?** O armazenamento em nuvem pode ser usado para diversas finalidades — desde o simples armazenamento de fotos até soluções corporativas complexas para trabalhar com grandes volumes de dados. ## **Principais usos:** - **Backup e proteção de dados** Salvamento automático de cópias importantes para evitar perda de dados em falhas, quebras de hardware ou ataques cibernéticos. - **Acesso compartilhado e colaboração** Possibilidade de compartilhar arquivos com colegas, clientes ou parceiros e trabalhar em documentos simultaneamente, sem enviar várias versões por e-mail. - **Armazenamento de grandes volumes de dados** Empresas podem guardar enormes quantidades de informação sem investir em seus próprios data centers, reduzindo custos e facilitando a escalabilidade. - **Acesso de qualquer dispositivo e local** Funcionários podem acessar rapidamente documentos e dados necessários de PCs, notebooks, smartphones ou tablets. - **Integração com aplicações empresariais** Muitos armazenamentos em nuvem integram-se com CRM, ERP, sistemas de gestão de projetos, automatizando processos de negócios. ## **Como o armazenamento em nuvem é usado nos negócios?** Empresas modernas usam ativamente o armazenamento em nuvem para aumentar eficiência, flexibilidade e segurança. ## **Exemplos:** - **Startups e pequenas empresas:** implantação rápida de ambientes de trabalho sem custos de infraestrutura de TI; colaboração em suítes de escritório na nuvem (Google Workspace, Microsoft 365). - **Médias e grandes empresas:** armazenamento e análise de big data, continuidade do negócio via backups, prevenção de perda de dados. - **Departamentos de vendas e marketing:** armazenamento de conteúdo de mídia, criação colaborativa de materiais publicitários, acesso a bases de marketing. - **Desenvolvimento de software:** armazenamento colaborativo de código-fonte, documentação, backups automáticos. - **Empresas financeiras e jurídicas:** armazenamento seguro de dados confidenciais com criptografia e controle de acesso. ## **Principais benefícios para os negócios:** - Redução de custos com infraestrutura e manutenção de TI - Flexibilidade e escalabilidade conforme necessidades atuais - Maior segurança dos dados e controle de acesso - Conveniência e mobilidade para os funcionários - Aceleração dos processos empresariais e melhoria da colaboração ## **Conclusão** O armazenamento em nuvem é uma ferramenta moderna que simplifica muito a gestão de dados e aumenta a mobilidade dos negócios. Ele ajuda as empresas a economizar recursos, além de tornar o negócio mais flexível, seguro e ágil em um mercado dinâmico. Se você ainda não utiliza tecnologias em nuvem para armazenamento de dados, este é o momento ideal para considerar essa solução eficiente. ## FAQ — Perguntas frequentes sobre armazenamento em nuvem **E se faltar internet — vou perder acesso aos meus dados?** O armazenamento em nuvem requer conexão à internet para acessar os dados, portanto, não é possível obter os arquivos sem rede. Porém, a maioria dos serviços permite sincronizar arquivos importantes localmente com antecedência. **Quão seguro é armazenar dados na nuvem?** Os provedores usam métodos modernos de criptografia e proteção, além de backups, para garantir a segurança e integridade dos dados. Ainda assim, é importante escolher serviços confiáveis e usar senhas fortes e autenticação de dois fatores. **Posso escalar o volume do armazenamento conforme a necessidade?** Sim, uma das principais vantagens da nuvem é a capacidade de aumentar ou diminuir o espaço de armazenamento de forma flexível e sem complicações técnicas. https://serverspace.com.br/support/help/comandos-qemu-folha-de-dicas-com-comandos-basicos-e-dicas.md Guia de Comandos Básicos do QEMU - Um guia rápido para iniciantes e usuários avançados. Aprenda a iniciar máquinas virtuais, configurar redes, trabalhar com imagens e usar a aceleração de hardware para trabalhar com eficiência com o QEMU. **QEMU** é um emulador universal e ferramenta de virtualização que permite executar diferentes sistemas operacionais e arquiteturas diretamente no seu computador. ## 1. Iniciando uma máquina virtual ``` qemu-system-x86_64 -hda imagem.img -m 2048 ``` - **qemu-system-x86_64** — emulador para arquitetura x86_64 (para ARM, SPARC e outras arquiteturas, são usados binários diferentes). - **-hda imagem.img** — especifica a imagem do disco rígido (pode usar -hdb, -hdc, -hdd para discos adicionais). - **-m 2048** — aloca 2048 MB de memória RAM para a máquina virtual. **Dica:** Para executar uma versão mais recente do sistema operacional, você pode adicionar a flag -enable-kvm para aceleração por hardware (se suportada pelo processador e com KVM habilitado): qemu-system-x86_64 -enable-kvm -hda imagem.img -m 2048 ## 2. Iniciando a partir de uma imagem ISO ``` qemu-system-x86_64 -boot d -cdrom imagem.iso -m 2048 ``` - **-boot d** — inicializa a partir do CD-ROM (drive óptico). - **-cdrom imagem.iso** — imagem ISO, por exemplo, de uma distribuição Linux. Isto é útil para instalar o sistema operacional. ## 3. Adicionando conexão de rede ### NAT (padrão) ``` qemu-system-x86_64 -hda imagem.img -net nic -net user ``` - **-net nic** — adiciona uma placa de rede virtual para a máquina. - **-net user** — usa uma rede NAT para permitir que a máquina virtual acesse a internet através do host. ### Ponte de rede (bridge) Para cenários mais avançados (por exemplo, para que a VM esteja na mesma rede que o host): ``` qemu-system-x86_64 -hda imagem.img -net nic -net bridge,br=br0 ``` onde br0 é o nome da interface bridge configurada previamente no host. ## 4. Conectando dispositivos USB Para passar um dispositivo USB do host para a máquina virtual: Use o comando lsusb para identificar hostbus e hostaddr. ## 5. Encerramento rápido da máquina virtual Por padrão, a combinação de teclas **Ctrl + Alt + 2** abre o monitor do QEMU (console de controle). Nele, você pode usar os comandos: - **quit** — para desligar a máquina virtual. - **info** — exibe o estado atual. - **help** — lista os comandos disponíveis. Para voltar da console para a máquina virtual, pressione **Ctrl + Alt + 1**. ## 6. Uso de parâmetros para melhorar desempenho - **-enable-kvm** — aceleração por hardware, se suportada. - **-smp 4** — aloca 4 CPUs virtuais. - **-cpu host** — usa as configurações do processador do host para melhorar o desempenho. Exemplo: ``` qemu-system-x86_64 -enable-kvm -m 4096 -smp 4 -cpu host -hda imagem.img ``` ## 7. Trabalhando com imagens de disco - Criando uma imagem QCOW2: ``` qemu-img create -f qcow2 disco.qcow2 20G ``` - Convertendo RAW para QCOW2: ``` qemu-img convert -f raw -O qcow2 origem.img destino.qcow2 ``` - Visualizando informações da imagem: ``` qemu-img info disco.qcow2 ``` **Dica:** O formato QCOW2 suporta snapshots e alocação dinâmica de espaço, o que é conveniente para testes. ## 8. Conectando via VNC para acesso remoto Para abrir acesso à tela da máquina virtual via VNC: ``` qemu-system-x86_64 -hda imagem.img -vnc :1 ``` Isto abrirá o servidor VNC na porta 5901 (5900 + 1). Para conectar, use qualquer cliente VNC: ``` vncviewer localhost:5901 ``` ## 9. Salvando e restaurando estados (snapshots) - Salvando estado: ``` qemu-system-x86_64 -hda disco.qcow2 -loadvm nome_snapshot ``` - Criando snapshot: ``` qemu-img snapshot -c nome_snapshot disco.qcow2 ``` - Listando snapshots: ``` qemu-img snapshot -l disco.qcow2 ``` ## 10. Dicas gerais - **Logs:** para depuração, é útil rodar com **-d** ou redirecionar erros, por exemplo: ``` qemu-system-x86_64 ... 2> qemu.log ``` - **Documentação:** o comando **man qemu-system-x86_64** contém a lista completa de parâmetros. - **Imagem do SO:** use QCOW2 para facilitar o gerenciamento de espaço e snapshots. - **Aceleração por hardware:** sempre ative **-enable-kvm**, se possível — o desempenho será muito melhor. ## Conclusão QEMU é uma ferramenta universal e poderosa para emulação e virtualização, adequada tanto para iniciantes quanto para usuários experientes. Conhecer os comandos básicos e suas combinações corretas permite criar, configurar e gerenciar máquinas virtuais rapidamente para diferentes propósitos. Use aceleração por hardware, crie snapshots e configure redes para obter o máximo desempenho e comodidade. Este guia rápido ajudará você a entender as funcionalidades básicas do QEMU e acelerar seu aprendizado. ## FAQ - **1. Preciso instalar o QEMU separadamente?** Sim, o QEMU geralmente é instalado via gerenciador de pacotes do seu sistema operacional (por exemplo, apt install qemu no Debian/Ubuntu). - **2. Como saber se meu processador suporta KVM?** Execute o comando egrep -c '(vmx|svm)' /proc/cpuinfo. Se o resultado for maior que zero, seu processador suporta KVM. - **3. Posso usar o QEMU no Windows?** Sim, o QEMU está disponível para Windows, porém funcionalidades e desempenho podem variar. - **4. Como criar uma imagem de disco para a máquina virtual?** Use o comando qemu-img create -f qcow2 nome_imagem.qcow2 tamanho. - **5. Onde encontrar documentação detalhada sobre o QEMU?** O site oficial do projeto e o comando man qemu-system-x86_64 contêm a lista completa de parâmetros. ## Base de Conhecimento Serverspace [A Base de Conhecimento Serverspace](https://serverspace.com.br/support.md) contém uma vasta coleção de materiais que abrangem Linux, Unix, Windows, APIs e Kubernetes. Aqui você encontra guias detalhados, dicas práticas e soluções para problemas comuns, ajudando a trabalhar eficientemente com diferentes sistemas operacionais e tecnologias modernas de gestão de infraestrutura em nuvem. A base é atualizada regularmente e é uma fonte confiável de informação tanto para iniciantes quanto para profissionais experientes. https://serverspace.com.br/support/help/como-configurar-um-proxy-no-cliente-linux.md Aprenda a configurar um proxy em um cliente Linux: definição de variáveis de ambiente, configuração do APT e teste da conexão usando o curl. Um servidor proxy é usado para redirecionar o tráfego de rede de um cliente para um recurso de destino. Ele pode realizar cache, controle de acesso, anonimização ou contornar restrições. Neste guia, vamos mostrar como configurar um proxy em uma máquina cliente (Linux) e como implantar um servidor proxy simples com base no Squid. ## Configurando um proxy no cliente Para configurar um servidor proxy no lado do cliente, é necessário especificar o endereço e a porta do proxy nas variáveis de ambiente do sistema ou do usuário. Etapa 1. Definir variáveis de ambiente Adicione as seguintes linhas ao seu ~/.bashrc ou ~/.bash_profile: ``` export http_proxy="http://:" export https_proxy="http://:" export ftp_proxy="http://:" export no_proxy="localhost,127.0.0.1,::1" ``` Exemplo: ``` export http_proxy="http://192.168.1.100:3128" export https_proxy="http://192.168.1.100:3128" ``` Aplicar alterações: ``` source ~/.bashrc ``` Screenshot Nº 1 — Export Etapa 2. Configurar proxy no apt (para Debian/Ubuntu) Crie ou edite o arquivo /etc/apt/apt.conf.d/95proxies: ``` Acquire::http::Proxy "http://192.168.1.100:3128/"; Acquire::https::Proxy "http://192.168.1.100:3128/"; ``` ## Configurando um servidor proxy (Squid) O Squid é um servidor proxy com cache bastante popular e com configuração flexível. Etapa 1. Instalar o Squid Para Debian / Ubuntu: ```bash sudo apt update sudo apt install squid -y ``` Screenshot Nº 2 — Squid Para CentOS / RHEL: ```bash sudo yum install squid ``` Etapa 2. Configurar o Squid Abra o arquivo de configuração: ``` sudo nano /etc/squid/squid.conf ``` Encontre e edite os seguintes parâmetros: ``` ## Permitir acesso da sua sub-rede: acl localnet src 192.168.1.0/24 http_access allow localnet ## Especificar a porta (padrão é 3128): http_port 3128 ``` Salve as alterações e reinicie o serviço: ```bash sudo systemctl restart squid sudo systemctl enable squid ``` Screenshot Nº 3 — Server deploy Etapa 3. Verificar funcionamento A partir do cliente, execute o comando: ```bash curl -x http://192.168.1.100:3128 http://example.com ``` Se o proxy estiver funcionando, você receberá uma resposta HTML do site. Para autenticação, adicione auth_param à configuração do Squid. Os logs de funcionamento estão localizados em /var/log/squid/access.log. A configuração de proxy é uma ferramenta útil para administrar o tráfego de rede. Você pode definir os parâmetros do proxy no cliente e também executar seu próprio servidor com base no Squid. Isso garante controle, aceleração e filtragem das conexões. https://serverspace.com.br/support/help/como-configurar-o-acesso-a-api-do-docker.md Aprenda a configurar o acesso à API do Docker: abra portas, ative o TLS para garantir a segurança e gerencie contêineres remotamente via REST API. Às vezes, é necessário gerenciar o Docker não apenas com o comando local docker, mas também remotamente — usando a API. Neste artigo, vamos entender como habilitar o acesso à API do Docker, quais métodos de conexão existem e como garantir a segurança da conexão. Por padrão, a API do Docker está disponível apenas por meio de um socket. Após a instalação do Docker, os contêineres são gerenciados por meio de um socket Unix: /var/run/docker.sock. Esse é um método local e não permite conexão pela rede. Se você tentar enviar uma requisição HTTP para localhost:2375, ocorrerá um erro de conexão: ```bash curl http://localhost:2375/version # curl: (7) Failed to connect to localhost port 2375: Connection refused ``` Para usar a API remotamente, é necessário alterar a configuração do Docker. ## Métodos de acesso à API do Docker O Docker pode aceitar conexões via: - Socket Unix (/var/run/docker.sock) — padrão. - Socket TCP sem TLS (ex: tcp://0.0.0.0:2375) — acesso aberto, NÃO recomendado. - Socket TCP com TLS (ex: tcp://0.0.0.0:2376) — método seguro. Configurando a API do Docker via arquivos de configuração. Primeiramente, é necessário alterar os parâmetros de inicialização do serviço Docker. Crie ou edite o arquivo: ``` nano /etc/docker/daemon.json ``` Adicione ou edite o conteúdo: ```json { "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] } ``` Como o Docker não impede conflitos de configuração, também removeremos os argumentos de inicialização do systemd, deixando conforme mostrado na captura de tela: ``` nano /lib/systemd/system/docker.service ``` Captura de tela nº 1 — Systemd Atenção: a porta 2375 é usada sem criptografia. Use apenas em ambiente de testes ou com um firewall, pois a API do Docker não oferece, por padrão, mecanismos de autenticação que validem os usuários. Por conta dessa má configuração, mais de 16 mil máquinas podem estar vulneráveis atualmente: Captura de tela nº 2 — Shodan Aplique as alterações e reinicie o Docker: ```bash sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl restart docker ``` Verifique a disponibilidade da API: ```bash curl http://localhost:2375/version ``` Captura de tela nº 3 — Conexão do cliente ## Como conectar à API a partir de outro computador Na máquina cliente, você pode usar: ```bash export DOCKER_HOST=tcp://IP_DO_SERVIDOR:2375 docker ps ``` Se a conexão não for estabelecida, verifique se: - O servidor está escutando na porta 2375 (ss -tuln | grep 2375); - A porta está liberada no firewall (ufw allow 2375/tcp); - O Docker está realmente em execução com o parâmetro -H necessário; - A opção segura é usar TLS; - Gerando certificados SSL. Para acesso seguro via rede, utilize TLS. Especifique os caminhos dos certificados ao iniciar o Docker: ``` dockerd \ -H=unix:///var/run/docker.sock \ -H=0.0.0.0:2376 \ --tlsverify \ --tlscacert=/etc/docker/ssl/ca.pem \ --tlscert=/etc/docker/ssl/server-cert.pem \ --tlskey=/etc/docker/ssl/server-key.pem ``` ## O que fazer se a API não funcionar? - O Docker não está escutando na porta TCP. Verifique os argumentos de inicialização: ``` ps aux | grep dockerd ``` Certifique-se de que existe o parâmetro -H tcp://0.0.0.0:2375. - A porta está bloqueada. Verifique o firewall: ``` sudo ufw allow 2375/tcp ``` - O SELinux ou o AppArmor está bloqueando a conexão. Em sistemas com SELinux ou AppArmor, permissões adicionais podem ser necessárias. A API do Docker é uma ferramenta poderosa para gerenciar contêineres, mas exige uma configuração cuidadosa. Jamais exponha a porta 2375 para redes públicas sem proteção. O ideal é utilizar TLS ou configurar um proxy seguro com HTTPS, como o Nginx. https://serverspace.com.br/support/help/o-que-e-ftp-e-como-configurar-um-servidor-no-linux.md Descubra o que é FTP (File Transfer Protocol) e como configurar um servidor FTP no Linux. Guia detalhado de instalação e configuração. FTP (File Transfer Protocol) é um **protocolo de rede** criado para transferir arquivos entre um cliente e um servidor. Apesar do surgimento de soluções mais modernas como SFTP e SCP, o FTP ainda é amplamente utilizado para organizar trocas simples de arquivos dentro de uma rede ou com usuários externos. Neste artigo, vamos mostrar como instalar e configurar um servidor FTP em um sistema Linux usando o popular servidor vsftpd. ## Instalando o vsftpd O FTP pode ser útil em casos onde é necessário organizar um armazenamento centralizado com acesso para diferentes usuários. É fácil de configurar e manter, sendo compatível com a maioria dos sistemas operacionais e clientes FTP. Em ambientes corporativos, o FTP é frequentemente utilizado para troca de relatórios, logs e outros arquivos que não contenham informações sensíveis. O servidor FTP mais comum e seguro para Linux é o vsftpd (Very Secure FTP Daemon). Ele é estável, eficiente e consome poucos recursos. O pacote pode ser instalado via o gerenciador de pacotes padrão: apt para Debian/Ubuntu ou yum/dnf para CentOS/RHEL. ```bash apt update && apt upgrade -y &&\ apt install vsftpd -y ``` Screenshot nº 1 — Instalação Para sistemas com gerenciadores baseados em RPM: ```bash dnf update && dnf install vsftpd -y ``` Após a instalação, o serviço é iniciado automaticamente e pode ser configurado no arquivo /etc/vsftpd.conf. Por exemplo, vamos configurar a autenticação via PAM e definir os direitos dos usuários. Importante: o uso de FTP com usuários anônimos pode representar riscos de atividades não autorizadas. ``` nano /etc/vsftpd.conf ``` Configuração do servidor: ``` listen=YES listen_ipv6=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO ``` Explicação das opções: - listen=YES: o servidor será executado como daemon independente (não via xinetd). - listen_ipv6=NO: desativa escuta em endereços IPv6. - local_enable=YES: permite login de usuários locais (contas do sistema). - write_enable=YES: permite escrita (envio, exclusão, renomeio) para usuários autenticados. - dirmessage_enable=YES: exibe mensagem do arquivo .message ao entrar em um diretório. - use_localtime=YES: utiliza o horário local do servidor nos arquivos listados. - xferlog_enable=YES: habilita o registro de transferências (normalmente em /var/log/vsftpd.log). - connect_from_port_20=YES: usa a porta 20 para conexões de dados (modo ativo). - secure_chroot_dir=/var/run/vsftpd/empty: define um diretório isolado para sessões FTP. - pam_service_name=vsftpd: define o nome do serviço PAM para autenticação. - rsa_cert_file e rsa_private_key_file: caminhos para o certificado e chave SSL (usados se SSL/TLS estiver ativado). - ssl_enable=NO: desativa criptografia SSL/TLS. Em seguida, vamos configurar a autenticação via PAM: ``` nano /etc/pam.d/vsftpd ``` Screenshot nº 2 — Configuração PAM A listagem mostra que, se o login estiver na lista de usuários proibidos, a conexão será negada inicialmente, antes da autenticação padrão do UNIX. Screenshot nº 3 — Conexão negada Você também pode adicionar sua própria lista de usuários proibidos ou modificar os métodos de autenticação no arquivo /etc/pam.d/vsftpd. Após aplicar as alterações, reinicie o serviço: ```bash systemctl restart vsftpd ``` Por padrão, o FTP não criptografa os dados, incluindo logins e senhas. Para aumentar o nível de segurança, recomenda-se ativar o FTPS (FTP Secure) — FTP sobre TLS. Para isso, é necessário gerar um certificado SSL ou utilizar um existente. Depois, basta ativar o SSL no arquivo de configuração e informar os caminhos do certificado e da chave. ## Trabalhando com clientes FTP A conexão com o servidor FTP pode ser feita via linha de comando (ftp, lftp) ou com clientes gráficos como o FileZilla. O usuário só precisa saber o IP do servidor, o nome de usuário e a senha. ```bash apt install ftp -y ``` Para conectar, utilize o seguinte formato: ``` ftp ftp://usuario:senha@endereco_ip:21/ ``` Screenshot nº 4 — Conexão Ao usar FTPS, o cliente também deve ativar a criptografia, se os certificados estiverem disponíveis. O FTP continua sendo uma ferramenta popular para transferência de arquivos, especialmente em redes locais ou em automações de troca de dados. Configurar um servidor FTP no Linux com o vsftpd é um processo simples, que oferece uma maneira flexível e confiável de organizar o acesso a arquivos. No entanto, é fundamental ficar atento à segurança e ativar criptografia ao operar em redes abertas. https://serverspace.com.br/about/blog/o-que-voce-precisa-saber-sobre-virtualizacao-tecnologias-abordagens-e-solucoes-para-empresas.md O que é virtualização, quais são seus tipos, quais as particularidades do VMware e do vStack — e por que a locação de servidores em nuvem no Brasil está se tornando uma solução essencial para as empresas. Nos últimos anos, a virtualização tornou-se a base para o desenvolvimento da infraestrutura digital. Essa tecnologia permite criar ambientes virtuais isolados com base em hardware físico, proporcionando flexibilidade, escalabilidade e eficiência na gestão de recursos de TI. Em um cenário de crescente digitalização no Brasil e de migração das empresas para soluções em nuvem, entender os fundamentos da virtualização torna-se algo criticamente importante. Neste material, vamos analisar os principais tipos de virtualização, as tecnologias-chave (incluindo VMware e vStack), suas aplicações práticas e o papel que desempenham no desenvolvimento de soluções em nuvem. Também veremos como os provedores de nuvem no Brasil integram essas tecnologias em seus serviços e por que a locação de servidores em nuvem se tornou uma escolha lógica para empresas de todos os portes. ## Por que a virtualização é necessária? O principal objetivo da virtualização é otimizar o uso de recursos físicos. Em vez de executar apenas um aplicativo por servidor, é possível criar várias máquinas virtuais (VMs), cada uma funcionando como um dispositivo independente com seu próprio sistema operacional, disco, memória e acesso à rede. Isso permite: - Reduzir os custos com hardware; - Diminuir o tempo de implantação de ambientes de TI; - Escalar rapidamente conforme as demandas; - Aumentar a resiliência e a flexibilidade. A virtualização também facilita o backup, a migração de sistemas, o gerenciamento de segurança e a automação da infraestrutura — tudo isso especialmente valioso em arquiteturas em nuvem. ## Principais tipos de virtualização **1. Virtualização de servidores** É a forma mais comum. Permite executar várias máquinas virtuais em um único servidor físico por meio de um hipervisor. Cada VM é isolada, possui seu próprio sistema operacional e opera de forma independente das demais. Soluções populares: - **VMware ESXi** — padrão da indústria, amplamente utilizado no setor corporativo. - **vStack** — plataforma moderna baseada no hipervisor KVM, com painel de controle intuitivo, alto desempenho e escalabilidade simplificada. **2. Virtualização de redes** Criação de redes lógicas independentes da infraestrutura física. Isso permite gerenciar roteamento, isolamento, firewalls e políticas de segurança por meio de software. A virtualização de redes é a base da construção de nuvens modernas, especialmente quando se utiliza SDN (Software Defined Networking). **3. Virtualização de armazenamento (Storage Virtualization)** Unificação de unidades de armazenamento físicas em um único pool de recursos. Garante escalabilidade flexível, alta disponibilidade dos dados e balanceamento de carga entre discos. É aplicada em sistemas de backup, armazenamentos em nuvem, bancos de dados distribuídos e aplicativos com alta demanda. **4. Virtualização de desktops e aplicações** Permite executar sessões de usuários e programas na nuvem, com acesso via cliente terminal ou navegador. É útil em ambientes corporativos que exigem gerenciamento centralizado de acessos e configurações. ## O papel da virtualização nas tecnologias em nuvem É impossível imaginar os serviços em nuvem modernos sem virtualização. É ela que permite executar milhares de VMs em servidores físicos dos data centers, garantindo: - Isolamento entre clientes; - Uso eficiente de recursos; - Escalabilidade e cobrança flexíveis; - Gerenciamento automatizado. No Brasil, há uma crescente demanda por [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), especialmente entre empresas que estão migrando do modelo de hospedagem tradicional para soluções flexíveis e resilientes. O provedor de nuvem Serverspace está ativamente implementando a virtualização, oferecendo serviços tanto com VMware quanto com soluções abertas como o vStack. ## VMware: plataforma corporativa consolidada A VMware é, provavelmente, a marca mais reconhecida na área de virtualização. Sua plataforma oferece uma arquitetura estável e altamente confiável, adaptada às necessidades de grandes organizações. **Vantagens da VMware:** - Suporte a aplicações de alta carga; - Integração com sistemas de backup e monitoramento; - Mecanismos avançados de gerenciamento de recursos e acessos. A utilização do VMware é relevante para: - Bancos e instituições financeiras; - Sistemas públicos de TI; - Corporações com alta demanda e exigência de SLA. Na Serverspace, os clientes podem alugar [servidores em nuvem baseados em VMware](https://serverspace.com.br/services/iaas.md) e contar com um ecossistema familiar, configuração flexível e cobrança por hora. ## vStack: solução ideal para infraestrutura flexível O vStack é uma plataforma moderna de virtualização com núcleo aberto (KVM) e interface intuitiva. É ideal para cenários DevOps, startups, desenvolvedores e pequenas empresas. **Vantagens do vStack:** - Implantação rápida; - Migração e clonagem de VMs facilitadas; - Baixo overhead e alto desempenho. Na Serverspace, é possível iniciar [servidores em nuvem com vStac](https://serverspace.com.br/services/cloud-servers.md)k em poucos cliques, com [acesso a API](https://serverspace.com.br/services/api.md), modelos de imagens e ferramentas para pipelines de CI/CD. ## Como escolher a plataforma de virtualização certa Ao escolher entre VMware e vStack, é importante considerar: - **Carga de trabalho:** o VMware lida melhor com sistemas críticos; o vStack é ideal para escalabilidade rápida e ambientes de desenvolvimento/testes. - **Requisitos de gerenciamento:** o VMware tem recursos corporativos mais avançados, enquanto o vStack se destaca pela leveza e abertura. - **Custo:** o vStack costuma ser mais econômico para tarefas do dia a dia. Os clientes da Serverspace podem escolher a pilha desejada diretamente no painel de controle, sem perder tempo com configurações do zero. ## A virtualização é o alicerce da transformação digital. Ela está na base de todos os serviços em nuvem modernos, proporcionando eficiência, segurança e flexibilidade na gestão de recursos de TI. Seja você responsável por uma plataforma corporativa com VMware ou por um ambiente de desenvolvimento com vStack, a virtualização lhe dá controle sobre a infraestrutura e liberdade para crescer. No mercado brasileiro, o aluguel de infraestrutura em nuvem está se tornando cada vez mais popular, e os provedores estão implementando soluções modernas ativamente. Quanto mais você entender como a virtualização funciona, mais fácil será construir um ecossistema de TI resiliente e escalável. ## Pronto para começar? Estude com atenção suas necessidades, escolha a abordagem certa — e construa sua nuvem sob medida. https://serverspace.com.br/about/blog/o-que-e-um-banco-de-dados.md Descubra o que é um banco de dados, como funciona, onde é usado e por que migrar sua base para a nuvem com a infraestrutura flexível da Serverspace. Sempre que você acessa uma loja virtual, procura um produto, faz um pedido ou abre um aplicativo — um banco de dados está funcionando nos bastidores. É uma parte invisível, mas fundamental de qualquer sistema digital. Sem ele, nenhum site, sistema contábil ou aplicativo móvel seria capaz de armazenar e processar dados. Vamos entender o que é um banco de dados, ou seja, o que é base de dados, por que ele é necessário para empresas e desenvolvedores, como funciona e por que hoje em dia ele é cada vez mais implantado na nuvem — por exemplo, na infraestrutura da Serverspace. ## Banco de dados como base do negócio digital Um banco de dados é um armazenamento digital estruturado, projetado para armazenar, gerenciar e acessar rapidamente informações. Ao contrário de um simples arquivo Excel ou documento de texto, um banco de dados é capaz de processar grandes volumes de dados, garantindo integridade, segurança e operação simultânea por um grande número de usuários. Simplificando, é como uma tabela inteligente com lógica: você não apenas armazena registros, mas pode encontrá-los rapidamente, combiná-los, filtrá-los, ordená-los, atualizá-los ou analisá-los — essa é a essência da aplicação de base de dados no mundo real. Por exemplo, em uma loja virtual, o banco de dados pode conter: - Informações sobre os produtos (nome, preço, disponibilidade); - Contas de usuários; - Histórico de pedidos; - Estatísticas de visualizações; - Status de entrega e pagamento. Os bancos de dados modernos permitem: - Trabalhar com milhões de linhas sem perda de desempenho; - Atender milhares de solicitações simultaneamente de diferentes usuários; - Garantir a precisão das informações mesmo em caso de falhas ou operações paralelas. Para isso, são utilizados sistemas de gerenciamento de banco de dados (SGBDs), que processam as solicitações, gerenciam a estrutura e monitoram a correção de todas as operações. Para os negócios, a base de dados é o alicerce de todo o sistema de TI. Sem ela, não é possível implementar nenhum processo digital completo: de CRM e ERP a lojas virtuais ou aplicativos móveis. E quanto melhor o banco for projetado, mais rápido os aplicativos funcionam e mais fácil é escalar o negócio. ## Quais tipos de banco de dados existem? Existem muitos tipos de bancos de dados, mas os mais comuns são os relacionais e os orientados a documentos. Eles resolvem diferentes problemas, e entender suas diferenças ajuda a escolher a ferramenta certa para cada projeto. - **Bancos de dados relacionais** Os bancos relacionais armazenam dados em forma de tabelas com estrutura claramente definida: linhas são registros, colunas são campos. Esses bancos permitem estabelecer relações entre tabelas, por exemplo: um cliente pode ter vários pedidos, e cada pedido — seu próprio carrinho de produtos. Exemplos: [MySQL](https://serverspace.com.br/services/1-click-app-marketplace/mysql.md), [PostgreSQL](https://serverspace.com.br/services/1-click-app-marketplace/postgresql.md), MariaDB — cada um é um excelente exemplo base de dados relacional amplamente utilizado. - **Bancos de dados orientados a documentos** Nesses bancos, as informações são armazenadas não em tabelas, mas como documentos independentes, geralmente no formato JSON. Cada documento pode ter uma estrutura única, e as relações entre os dados são implementadas de forma diferente — por meio de aninhamento ou chaves. Exemplo: MongoDB. Também existem bancos gráficos, em colunas e in-memory, mas no uso cotidiano de pequenas e médias empresas os mais comuns são os relacionais. ## Como um banco de dados funciona internamente? Para não nos aprofundarmos demais na teoria acadêmica, imagine um depósito. Nele há prateleiras (tabelas), em cada prateleira — compartimentos com produtos (registros), e cada compartimento tem etiquetas (campos). Assim, você pode encontrar rapidamente o item necessário pelas etiquetas — por exemplo, pelo código ou categoria. Nos bancos reais, essa velocidade é garantida por: - Indexação — acelera a busca por informações; - Relações entre tabelas — por exemplo, um cliente está vinculado aos pedidos; - Consultas (SQL) — linguagem com a qual você "conversa" com o banco. Aqui está um exemplo simples de consulta SQL: ```sql SELECT * FROM clients WHERE city = 'São Paulo'; ``` Essa consulta retornará todos os clientes da cidade de São Paulo. ## Onde os bancos de dados são usados? Os bancos de dados são a base da maioria dos processos digitais, desde interfaces de usuário até operações internas de negócios. Abaixo — cenários específicos onde eles são indispensáveis. - **Lojas virtuais e marketplaces** Lojas virtuais e marketplaces normalmente usam um servidor banco de dados para armazenar informações sobre produtos, categorias, preços, estoque, bem como contas de usuários, carrinhos, pedidos, pagamentos e entregas. Por exemplo, ao usar filtros de busca — você está interagindo com o banco. - **Sistemas de CRM e equipes de vendas** Contatos, negociações, histórico de interações com clientes, tarefas, status no funil de vendas — tudo isso são dados estruturados, que precisam ser acessados de forma rápida, confiável e segura. Os bancos garantem integridade e controle de versões. - **Aplicativos móveis e web** De redes sociais a apps bancários — em todos eles o banco de dados gerencia perfis de usuários, configurações, atividades, notificações e arquivos de mídia. Por exemplo, o Instagram armazena tudo no banco — do login aos seguidores e curtidas. - **Análise de dados e sistemas de BI** Fluxos brutos de dados de diferentes fontes são primeiramente carregados no banco, onde são agregados, filtrados e preparados para visualização em relatórios. São usados tanto bancos SQL clássicos quanto armazenamentos em colunas. - **Serviços financeiros** Todas as transações, saldos, limites, taxas de câmbio, lógica de cálculo e histórico de operações — são dados que precisam ser processados instantaneamente e sem erros. Os sistemas bancários dependem de bancos com alta tolerância a falhas e garantias ACID. - **Portais corporativos e gestão de documentos** Solicitações eletrônicas, regulamentos internos, arquivos e históricos — os bancos permitem gerenciar centralizadamente o acesso, versões e rastrear alterações. Quanto maior o volume de dados e o número de usuários — maiores as exigências de desempenho, segurança e escalabilidade. É por isso que cada vez mais essas soluções são implantadas na nuvem — com configuração flexível e tolerância a falhas. ## Por que as empresas estão migrando seus bancos de dados para a nuvem? Antigamente, os bancos de dados eram implantados em servidores físicos no escritório ou em data centers com gerenciamento manual. Isso exigia compra de equipamentos, configuração de sistemas, contratação de especialistas e manutenção constante. Hoje, cada vez mais a escolha recai sobre [soluções em nuvem](https://serverspace.com.br/solutions/banco-de-dados-na-nuvem.md) — e eis o porquê: - **Flexibilidade e escalabilidade** Você pode começar com uma configuração mínima, por exemplo, para um MVP ou ambiente de testes, e depois aumentar os recursos conforme a carga cresce: memória RAM, núcleos de CPU, espaço em disco. Tudo isso — sem paradas ou intervenção física. - **Confiabilidade e tolerância a falhas** Os provedores de nuvem oferecem mecanismos integrados de backup, replicação de dados e recuperação automática em caso de falha. Isso é especialmente importante para sistemas de negócios críticos, onde qualquer parada pode ser custosa. - **Facilidade de gerenciamento e automação** Por meio do painel de controle, API ou CLI você pode criar servidores, configurar acessos, iniciar backups, monitorar a carga — tudo isso sem a necessidade de uma equipe de DevOps. Ações repetitivas podem ser automatizadas com scripts ou via CI/CD. - **Implantação rápida** Escolher um modelo pronto com SGBD pré-instalado (por exemplo, MySQL ou PostgreSQL) permite iniciar um servidor funcional em 2–3 minutos. Isso é crucial para startups, que valorizam a velocidade de reação e testes rápidos de hipóteses. Ao optar por um servidor de banco de dados em nuvem, empresas eliminam o custo inicial de hardware e obtêm flexibilidade imediata para escalar. - **Otimização de custos** Em vez de comprar servidores e montar toda a infraestrutura do zero, você paga apenas pelos recursos realmente utilizados. Isso é especialmente vantajoso para pequenas e médias empresas: os orçamentos se tornam previsíveis, e a infraestrutura de TI — flexível. ## Como usar o Serverspace para hospedar um banco de dados A Serverspace é um provedor de nuvem com data centers modernos e suporte a aplicativos pré-instalados, incluindo PostgreSQL e MySQL. O que isso oferece? - **Início rápido** — você escolhe o servidor, especifica o SGBD desejado e tudo é implantado automaticamente. Isso é especialmente conveniente para startups e desenvolvedores. - **Desempenho** — baseado em servidores potentes com SSD e processadores de nível corporativo. - **Escalabilidade** — é possível aumentar memória, núcleos de CPU e limites de rede em minutos. - **Rede flexível** — tráfego ilimitado gratuito, redes privadas, IPs externos. - **Integrações e automação** — via API, CLI ou painel de controle. Se você é desenvolvedor, vai apreciar a configuração conveniente, controle flexível e a possibilidade de clonar ambientes rapidamente. Se você é empresário, o importante é que o banco de dados funcione com confiabilidade e possa crescer junto com a sua empresa. Um banco de dados não é apenas sobre tabelas e SQL. É sobre como as empresas armazenam, processam e utilizam seus ativos mais valiosos — os dados. A migração para a nuvem torna a gestão dos bancos mais simples, segura e econômica. E a infraestrutura da Serverspace permite implantar um banco de dados moderno, flexível e seguro em poucos minutos — pronto para uso imediato em produção. ### O que é um banco de dados e por que ele é importante? Um banco de dados é um sistema estruturado para armazenar e gerenciar informações de forma eficiente. Ele é essencial porque permite que sites, aplicativos e sistemas empresariais processem grandes volumes de dados com rapidez, segurança e confiabilidade. ### Quais são os principais tipos de banco de dados? Os mais comuns são os bancos relacionais (como MySQL, PostgreSQL e MariaDB), que usam tabelas estruturadas, e os bancos orientados a documentos (como MongoDB), que armazenam dados em formato JSON. Também existem bancos gráficos, em colunas e in-memory. ### Onde os bancos de dados são utilizados na prática? Eles são usados em lojas virtuais, sistemas de CRM, aplicativos móveis, plataformas financeiras, ferramentas de BI e portais corporativos. Basicamente, qualquer sistema que precise armazenar e processar dados depende de um banco de dados. ### Por que as empresas estão migrando bancos de dados para a nuvem? Porque a nuvem oferece escalabilidade, alta disponibilidade, segurança, automação e redução de custos. Além disso, permite implantação rápida e fácil gerenciamento, o que facilita o crescimento e a manutenção de sistemas modernos. https://serverspace.com.br/support/help/como-medir-o-desempenho-do-servidor-em-nuvem.md Como medir o desempenho do servidor em nuvemSaiba como testar o desempenho do servidor em nuvem no Windows e no Linux. Guia completo com exemplos de comandos, métricas e ferramentas. Adequado para a plataforma Serverspace. Um servidor na nuvem pode ser flexível e escalável — mas quão eficiente ele é na prática? Para descobrir, é importante saber como medir seu desempenho. Neste artigo, mostraremos quais métricas são importantes, quais ferramentas usar e como testar tudo usando a plataforma **Serverspace** como exemplo. ## Por que isso importa - **Escolher a configuração certa para suas tarefas** - **Comparar o desempenho dos servidores** - **Diagnosticar gargalos** - **Avaliar estabilidade e degradação de desempenho** ## Métricas principais ### 1. Desempenho da CPU (vCPU) **Linux / Ubuntu** ```bash sudo apt update sudo apt install sysbench -y sysbench cpu --cpu-max-prime=20000 run ``` **Windows (via WSL ou nativo)** - Instale o Windows Subsystem for Linux (WSL) - Execute o Ubuntu no WSL e use os mesmos comandos acima Ou: - Use o **Performance Monitor** embutido: Win + R → perfmon ### 2. Desempenho da Memória RAM **Linux / Ubuntu** ``` sysbench memory run ``` **Windows** Use as seguintes ferramentas: - Gerenciador de Tarefas → aba "Performance" - Resource Monitor (resmon) - Performance Monitor (perfmon) → Counters → Memory → Pages/sec, Available MBytes, etc. ### 3. Desempenho do Disco (I/O) **Linux / Ubuntu** ```bash sudo apt install fio -y fio --name=randwrite --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --runtime=60 --group_reporting ``` **Windows** ``` winsat disk ``` Como alternativa, use o **CrystalDiskMark** — uma ferramenta GUI simples e popular. ### 4. Desempenho de Rede **Linux / Ubuntu** ```bash sudo apt install iperf3 -y iperf3 -s # em um servidor iperf3 -c [IP do outro servidor] # no outro servidor ``` **Windows** - Baixe e instale o iperf3 para Windows - No primeiro servidor, execute: ``` iperf3.exe -s ``` No segundo servidor: ``` iperf3.exe -c [IP do servidor] ``` ### 5. Carga geral e monitoramento **Linux / Ubuntu** ``` htop ``` Se não estiver instalado: ```bash sudo apt install htop -y ``` **Windows** ``` perfmon Gerenciador de Tarefas Process Explorer (do Sysinternals) ``` ## Com o Serverspace Na plataforma **Serverspace**, você pode: - Implantar um servidor de teste em menos de 1 minuto - Alternar rapidamente entre sistemas operacionais (Windows, Ubuntu, Debian) - Usar IPs públicos para testes de rede - Conectar via RDP (Windows) ou SSH (Linux) - Escalar configurações "on the fly" ## Tabela comparativa de ferramentas | Objetivo | Linux / Ubuntu | Windows | | --- | --- | --- | | Teste de CPU | sysbench | perfmon, WSL + sysbench | | RAM | sysbench memory, free -m | Gerenciador de Tarefas, resmon | | Disco (I/O) | fio, dd | winsat disk, CrystalDiskMark | | Rede | iperf3, ping | iperf3, PowerShell | | Carga geral | htop, vmstat | Process Explorer, perfmon | ## Erros comuns - Usar apenas um teste em vez de uma bateria completa de testes - Ignorar processos em segundo plano durante a medição - Não repetir os testes em horários diferentes - Testar em ambiente diferente do ambiente de produção ## Conclusão Medir o desempenho do servidor na nuvem é um passo fundamental para construir uma infraestrutura estável e eficiente. A plataforma **Serverspace** facilita testar, configurar e escalar seus servidores em diferentes sistemas operacionais, regiões e cargas de trabalho. https://serverspace.com.br/support/help/como-melhorar-o-desempenho-do-banco-de-dados-em-um-servidor-em-nuvem.md Saiba como melhorar o desempenho do MySQL e do PostgreSQL em servidores em nuvem. Conselhos práticos sobre ajuste, índices, armazenamento em cache e dimensionamento usando a plataforma Serverspace. **O desempenho do banco de dados** é um fator essencial para o funcionamento estável de aplicações web, sistemas analíticos e softwares corporativos. Em um servidor em nuvem, é ainda mais importante otimizar os recursos, já que isso impacta diretamente tanto a velocidade quanto o custo de manutenção. Neste artigo, vamos apresentar passos práticos para melhorar o desempenho do banco de dados usando os recursos da plataforma Serverspace. ## 1. Escolha a configuração correta do servidor Comece avaliando as necessidades da sua aplicação: - **Bancos de dados pequenos** (ex: blogs ou CMS): 2–4 vCPU, 4–8 GB de RAM. - **Cargas médias** (CRM, ERP): 4–8 vCPU, 8–16 GB de RAM. - **Análise de dados, Big Data**: a partir de 8 vCPU e 32+ GB de RAM. Com o **Serverspace**, você pode configurar de forma flexível a quantidade de vCPUs e memória, além de alterar a configuração do servidor em tempo real, sem interrupções. ## 2. Utilize armazenamento rápido A velocidade de leitura/gravação é crítica para bancos de dados: - Escolha **discos SSD ou NVMe**. - Use um **disco separado** para armazenar os dados do banco (ex: **/var/lib/mysql**) e reduzir a concorrência de I/O. A plataforma Serverspace oferece armazenamento SSD de alta performance e suporte para discos adicionais. ## 3. Otimize as configurações do SGBD A maioria dos bancos de dados não vem otimizada por padrão. Exemplos: **MySQL / MariaDB:** - **innodb_buffer_pool_size**: até 70–80% da RAM disponível. - **query_cache_size**: pode ser desativado em versões modernas. - **slow_query_log**: ajuda a identificar consultas lentas. **PostgreSQL:** - **shared_buffers**: 25–40% da RAM. - **work_mem**: de 4 a 64 MB, conforme a carga. - **effective_cache_size**: até 75% da RAM. ## 4. Indexação e estrutura das consultas - Use índices nas colunas usadas em WHERE, JOIN e ORDER BY. - Analise os planos de execução (EXPLAIN no MySQL/PostgreSQL). - Divida consultas complexas em partes menores. - Arquive ou exclua dados desatualizados. ## 5. Monitoramento e análise Monitorar o comportamento do banco de dados ajuda a identificar gargalos. **Ferramentas:** - **htop, iostat, vmstat** — para carga geral do sistema (Linux). - **pg_stat_statements (PostgreSQL)** — para analisar a frequência e peso das consultas. - **MySQLTuner **— utilitário para avaliar rapidamente a configuração do MySQL. No Serverspace, você pode implantar ferramentas como **Zabbix** ou **Grafana** com facilidade, ou utilizar soluções externas SaaS. ## 6. Configure o cache - Use **cache de consultas** (quando apropriado) ou soluções como **Memcached** e **Redis** para armazenar dados frequentemente acessados. - Implemente cache no nível da aplicação: resultados de consultas, respostas de APIs e sessões. ## 7. Distribua a carga Se o banco de dados estiver sobrecarregado: - Direcione **leituras para réplicas**. - Use **sharding** para dividir grandes tabelas. - Mova parte da lógica para processos em segundo plano (ex: com filas de mensagens). ## 8. Backups sem interrupções Backups podem impactar o desempenho durante picos de carga: - Use **backups incrementais ou lógicos**. - Configure **snapshots pelo painel da Serverspace** — uma forma rápida de preservar o estado do servidor. ## Conclusão Melhorar o desempenho de um banco de dados envolve a combinação de uma infraestrutura adequada, configurações otimizadas do SGBD e análise contínua. Com o **Serverspace**, você pode escalar recursos com flexibilidade, otimizar o ambiente e garantir alta estabilidade mesmo com o aumento da demanda. https://serverspace.com.br/support/help/como-instalar-o-snap-no-ubuntu-22-04.md Saiba como instalar e configurar o Snap no Ubuntu 22.04 com instruções passo a passo, comandos de terminal e dicas sobre como usar o Snap Store e gerenciar aplicativos. Snap é um sistema de gerenciamento de pacotes criado pela Canonical. Esse sistema permite instalar aplicativos em contêineres isolados, que contêm todas as dependências e bibliotecas necessárias para seu funcionamento correto, o que simplifica bastante o processo de instalação e aumenta a estabilidade dos programas. Na distribuição Ubuntu 22.04, o Snap já vem pré-instalado por padrão, porém, se ele foi removido ou se você está usando uma versão mínima do sistema, aqui está um guia detalhado para instalá-lo e configurá-lo manualmente. ## O que é Snap e para que serve? Pacotes Snap: - **funcionam da mesma forma em todas as distribuições (Ubuntu, Fedora, Arch, etc.);** - **incluem dependências — menos problemas de compatibilidade;** - **atualizam automaticamente;** - **são isolados do sistema (sandboxing) — isso aumenta a segurança.** Exemplos de aplicativos disponíveis via Snap: - **Spotify** - **Postman** - **VS Code** - **Docker** - **Slack** ## Como instalar o Snap no Ubuntu 22.04 ### Passo 1: Atualize o sistema ```bash sudo apt update && sudo apt upgrade -y ``` ### Passo 2: Instale o snapd ```bash sudo apt install snapd -y ``` ### Passo 3: Verifique o status do serviço ```bash sudo systemctl status snapd ``` Se o serviço estiver ativo, você verá: ``` ● snapd.service - Snap Daemon Loaded: loaded (/lib/systemd/system/snapd.service; enabled) Active: active (running) ``` Se estiver inativo, inicie manualmente: ```bash sudo systemctl start snapd sudo systemctl enable snapd ``` ### Passo 4: (Opcional) Instale a Snap Store Se desejar instalar aplicativos via interface gráfica: ``` sudo snap install snap-store ``` ## Exemplos de instalação de aplicativos Instalar **Spotify**: ``` sudo snap install spotify ``` Instalar **Visual Studio Code**: ``` sudo snap install code --classic ``` Instalar **Postman**: ``` sudo snap install postman ``` ## Como gerenciar pacotes Snap - Ver lista de aplicativos instalados: ``` snap list ``` - Atualizar todos os aplicativos Snap: ``` sudo snap refresh ``` - Remover um aplicativo: ``` sudo snap remove nome_do_aplicativo ``` ## Conclusão **Snap** é um sistema poderoso e prático para distribuição de software no Ubuntu e outras distribuições Linux. Graças à sua arquitetura isolada, os pacotes Snap garantem alta segurança, facilidade de instalação e atualizações automáticas sem intervenção do usuário. A instalação do Snap no Ubuntu 22.04 leva apenas alguns minutos e não requer conhecimentos técnicos avançados, tornando-o acessível tanto para iniciantes quanto para profissionais experientes. Após a instalação, você terá acesso a milhares de aplicativos atualizados — desde ferramentas populares para desenvolvedores (Visual Studio Code, Docker, Postman) até multimídia e utilitários. Isso é especialmente útil para desenvolvedores, administradores de sistemas e engenheiros DevOps que precisam configurar ambientes de forma rápida, segura e reproduzível. https://serverspace.com.br/support/help/como-instalar-o-ncdu-no-ubuntu-22-04.md Aprenda a instalar e usar o ncdu, uma ferramenta eficiente e prática para analisar o espaço em disco no terminal do Ubuntu 22.04. Encontre rapidamente arquivos e pastas “pesados”, libere espaço e gerencie os recursos do disco sem esforço. Ideal… **ncdu (NCurses Disk Usage)** é uma ferramenta eficiente e intuitiva para analisar o uso do espaço em disco pelo terminal. Diferente do comando tradicional du, o ncdu oferece uma interface de texto prática que facilita a navegação pelos diretórios, permite ordenar rapidamente as pastas pelo tamanho ocupado e identifica visualmente os arquivos e diretórios mais "pesados". Com isso, você poderá identificar rápida e facilmente onde estão concentrados os maiores consumos de espaço no seu servidor ou computador. Isso é especialmente útil quando é necessário liberar espaço em disco, encontrar diretórios "pesados" ou realizar auditorias de armazenamento de dados. Devido à sua leveza e rapidez, o ncdu é ideal para administradores de sistemas, desenvolvedores e usuários que precisam gerenciar os recursos do disco de forma eficiente, sem esforço extra e sem o uso de programas gráficos pesados. Neste artigo, veremos como instalar e usar o ncdu no Ubuntu 22.04. ## Passo 1: Atualize a lista de pacotes Antes da instalação, recomenda-se atualizar as informações dos pacotes do sistema. Para isso, execute o comando: ```bash sudo apt update ``` ## Passo 2: Instale o ncdu A instalação do ncdu é feita a partir dos repositórios padrão do Ubuntu. Basta executar: ```bash sudo apt install ncdu -y ``` A flag **-y** confirma automaticamente a instalação. ## Passo 3: Execute o ncdu para analisar o disco Para analisar o uso do espaço em disco no diretório atual, basta executar: ``` ncdu ``` Se quiser verificar, por exemplo, o diretório raiz **/**, use: ``` sudo ncdu / ``` O uso do **sudo** permite obter permissões para visualizar todos os arquivos e pastas. ## Principais funcionalidades e controles - **Navegação:** setas para cima/baixo — mover-se pela lista de diretórios e arquivos. - **Entrar em diretório:** tecla Enter. - **Sair do diretório:** tecla Backspace. - **Excluir arquivo ou pasta:** tecla **d** (use com cuidado!). - **Sair do programa:** tecla **q**. ## Conclusão **ncdu** é uma excelente ferramenta para análise rápida e limpeza do espaço em disco em servidores ou máquinas locais com Ubuntu 22.04. Sua simplicidade e visualização clara fazem dela uma aliada indispensável para administradores de sistemas e usuários comuns. Experimente instalar e usar o ncdu para entender melhor o que ocupa espaço no seu disco e gerenciar seu armazenamento de dados de forma mais eficiente. https://serverspace.com.br/support/help/instrucoes-detalhadas-para-instalar-o-spotify-no-ubuntu-22-04.md Instruções detalhadas sobre como instalar o Spotify no Ubuntu 22.04: duas maneiras confiáveis - por meio do repositório oficial e do Snap. Comandos passo a passo, dicas e possíveis soluções de problemas para colocar seu serviço de música favorito em… O **Spotify** está entre as plataformas de streaming de música mais utilizadas globalmente. Se você é usuário do Ubuntu 22.04 e deseja ouvir suas faixas favoritas usando o cliente oficial do Spotify, este guia traz um passo a passo completo com duas formas confiáveis de instalação: por meio do repositório oficial do Spotify ou utilizando o Snap. ## Por que instalar o cliente oficial do Spotify? Embora o Spotify possua uma versão web, a instalação do cliente oficial oferece diversas vantagens: - **Reprodução de músicas mais estável e rápida.** - **Suporte ao modo offline (com plano Premium).** - **Interface intuitiva com configurações avançadas.** - **Melhor integração com o sistema.** ## Método 1: Como instalar o Spotify utilizando o repositório oficial Esse método permite obter a versão mais recente do Spotify, com atualizações automáticas integradas ao sistema. ### Passo 1: Atualize o sistema Antes de começar, é recomendável atualizar a lista de pacotes e o sistema: ```bash sudo apt update && sudo apt upgrade -y ``` ### Passo 2: Instale as ferramentas necessárias Para adicionar repositórios externos, precisamos de utilitários que lidam com HTTPS e gerenciamento de chaves: ```bash sudo apt install curl gnupg2 apt-transport-https -y ``` - **curl** — ferramenta para baixar dados da internet. - **gnupg2** — gerenciador de chaves de criptografia. - **apt-transport-https** — suporte a downloads via HTTPS. ### Passo 3: Importe a chave GPG do Spotify Para garantir que o sistema reconheça os pacotes do Spotify como seguros e confiáveis, é essencial adicionar a chave de assinatura GPG oficial fornecida pelo próprio serviço. Essa chave atua como uma verificação de integridade e autenticidade, assegurando que os pacotes não foram alterados ou corrompidos durante o download. Sem essa etapa, o gerenciador de pacotes pode recusar a instalação por motivos de segurança. Para isso, utilize o seguinte comando no terminal, que irá baixar e armazenar a chave no local apropriado: ```bash curl -sS https://download.spotify.com/debian/pubkey.gpg | sudo tee /usr/share/keyrings/spotify-archive-keyring.gpg > /dev/null ``` Essa chave garante a segurança dos pacotes baixados. ### Passo 4: Adicione o repositório do Spotify Crie um novo arquivo de fonte de pacotes para o Spotify: ``` echo "deb [signed-by=/usr/share/keyrings/spotify-archive-keyring.gpg] http://repository.spotify.com stable non-free" | sudo tee /etc/apt/sources.list.d/spotify.list ``` Esse comando informa ao sistema onde encontrar os pacotes do Spotify. ### Passo 5: Atualize os pacotes e instale o Spotify Atualize os índices e instale o cliente: ```bash sudo apt update sudo apt install spotify-client -y ``` ### Passo 6: Execute o Spotify Após a instalação, abra o programa pelo menu ou digite: ``` spotify ``` ## Método 2: Instalando o Spotify via Snap Snap é um formato de empacotamento universal, compatível com diversas distribuições Linux, incluindo o Ubuntu. Os pacotes Snap vêm com todas as dependências necessárias. ### Passo 1: Verifique se o Snap está instalado O Ubuntu 22.04 geralmente já inclui o Snap. Para confirmar: ``` snap version ``` Se necessário, instale-o com: ```bash sudo apt install snapd -y ``` ### Passo 2: Instale o Spotify via Snap A instalação é simples. Execute: ``` sudo snap install spotify ``` O Snap fará o download e a instalação da versão mais recente. ### Passo 3: Inicie o Spotify Você pode abrir o Spotify pelo menu de aplicativos ou via terminal: ``` spotify ``` ## Qual método escolher? - **Repositório do Spotify** — ideal para quem busca integração com o sistema via pacotes APT tradicionais e prefere gerenciar atualizações de forma centralizada. - **Snap** — indicado para quem deseja uma instalação rápida, simples e com isolamento de dependências. ## Possíveis problemas e soluções - **Spotify não abre ou trava** — tente atualizar o sistema, reiniciar o computador e verificar se as bibliotecas estão atualizadas. - **Problemas de áudio** — verifique o funcionamento do sistema de som e reinicie o PulseAudio ou o PipeWire, se necessário. - **Erro ao adicionar repositório ou chave** — confira sua conexão com a internet e se os comandos foram digitados corretamente. ## Conclusão Agora você conhece duas formas seguras e eficazes de instalar o Spotify no Ubuntu 22.04, cada uma com suas próprias vantagens e características. Se você valoriza uma integração mais profunda com o sistema operacional e deseja que o Spotify seja gerenciado junto com os demais pacotes do sistema — com atualizações automáticas por meio do APT —, a instalação via repositório oficial é a mais recomendada. Essa abordagem garante estabilidade, controle detalhado das atualizações e melhor compatibilidade com o ambiente de desktop. Por outro lado, se sua prioridade é a simplicidade e rapidez, sem a necessidade de adicionar repositórios externos ou lidar com chaves GPG, a versão Snap oferece uma alternativa extremamente prática. Ela inclui todas as dependências necessárias, funciona de forma isolada do restante do sistema e é mantida diretamente pela equipe do Snapcraft, o que garante atualizações frequentes e fáceis de aplicar. Independentemente do método escolhido, ambas as opções proporcionam acesso completo ao cliente oficial do Spotify, com todos os recursos que você precisa para curtir suas músicas favoritas no Linux. https://serverspace.com.br/support/help/como-faco-para-instalar-o-utilitario-ncdu-no-debian.md Como faço para instalar o utilitário ncdu no Debian? Quando o espaço acaba em um sistema Linux, a primeira coisa que vem à mente é descobrir quem está ocupando os gigabytes. Claro, você pode usar o comando **du**, mas é muito mais prático utilizar uma ferramenta com interface. Apresentamos o **ncdu**, uma ferramenta de linha de comando para análise interativa do uso de disco. Neste artigo, vamos mostrar como instalar o `ncdu` no Debian e usá-lo para encontrar os arquivos que mais ocupam espaço. ## O que é o ncdu? **ncdu (NCurses Disk Usage)** é uma ferramenta de terminal prática que permite: - **ver rapidamente quanto espaço cada diretório está ocupando;** - **navegar pelo sistema de arquivos como uma árvore interativa;** - **excluir arquivos desnecessários diretamente pela interface.** Funciona mais rápido que o comando padrão `du`, especialmente em diretórios grandes. ## Como instalar o ncdu no Debian A instalação é simples e leva apenas alguns segundos. ### 1. Atualize a lista de pacotes: ```bash sudo apt update ``` ### 2. Instale o ncdu: ```bash sudo apt install ncdu ``` Pronto! A ferramenta já está pronta para uso. ## Como usar o ncdu Para iniciar a análise do diretório atual: ``` ncdu ``` Para analisar um caminho específico: \ ``` ncdu /var/log\ ``` Navegação: - Setas para cima/baixo — navegação pela lista. - Enter — entrar no diretório selecionado. - **d** — deletar arquivo ou diretório. - **q** — sair. ## Exemplo: encontrar o que está ocupando espaço ``` sudo ncdu / ``` Se você executar o `ncdu` como root, poderá analisar todo o sistema de arquivos. Muito útil quando `/var` ou `/home` crescem inesperadamente. ## Conclusão **ncdu** é uma ferramenta excelente que deveria estar no kit de qualquer administrador ou usuário avançado do Debian. É leve, rápida e extremamente útil. Se você está procurando uma maneira de liberar espaço em disco — comece com o `ncdu`. https://serverspace.com.br/support/help/como-resolver-o-erro-de-init-e-suas-causas.md Entenda o que é erro de init, suas causas mais comuns e como resolver problemas de inicialização em Linux, Docker, aplicações e scripts com exemplos práticos. **Erros de inicialização** (frequentemente chamados de erros de init) estão entre os desafios mais comuns e frustrantes enfrentados por desenvolvedores, administradores de sistemas e até usuários comuns. Resumindo — é um problema extremamente frequente para quem trabalha com software. Esses erros podem ocorrer em diversos contextos, como durante a inicialização de um sistema operacional, ao abrir aplicativos, ao carregar bibliotecas, rodar scripts ou iniciar containers. As causas podem variar bastante, dependendo do ambiente e do software envolvido. Por exemplo, um erro de init pode ocorrer se componentes essenciais do sistema falharem ao carregar, se um arquivo de configuração estiver ausente ou corrompido, ou ainda por problemas de compatibilidade entre dependências do sistema. Na prática, o termo "erro de init" é usado como um rótulo genérico para falhas que impedem um serviço, aplicação ou sistema de iniciar corretamente. Identificar o contexto exato do erro é o primeiro passo para uma solução eficiente. Neste artigo, vamos entender em detalhes o que causa os erros de inicialização, quais são os cenários mais comuns e como solucioná-los de forma estruturada. Saber onde procurar e como diagnosticar esse tipo de erro é essencial para quem lida com gestão de sistemas, servidores ou aplicações. Seja para entender por que um serviço no Linux não sobe, descobrir por que um container falhou ou resolver uma queda inesperada de aplicação, um método organizado de análise economiza tempo e reduz frustração. Vamos abordar desde a análise de logs até a revisão de arquivos de configuração, passando por checagem de dependências, com passos práticos para você colocar seu sistema novamente em funcionamento rapidamente. ## O que é "init" e por que ele é importante no processo de inicialização? O termo init vem de initialization (inicialização). Dependendo do contexto, pode se referir a: - O processo de inicialização de sistemas operacionais (em Linux, controlado por init, systemd, upstart, etc.). - Inicialização de bibliotecas ou módulos em códigos. - Inicialização de sistemas gráficos, redes ou subsistemas em jogos e aplicativos. - A função **__init__()** em Python, que muitas vezes é confundida com erros de inicialização. - Scripts de inicialização (init script) usados para configuração de ambientes ou sistemas. Por isso, um erro de init não é um problema específico de uma única tecnologia, mas sim um sintoma de falha no processo de inicialização de algum componente essencial. ## Causas comuns de erros de init. - **Arquivo de configuração/init ausente ou corrompido** Exemplo de erro: init error: missing config.json **Solução: **Independentemente do ambiente, alguns passos de troubleshooting são universais e ajudam a resolver a maioria dos erros de init. Verifique se o arquivo existe, está no local correto, possui as permissões adequadas e está no formato certo. Às vezes, excluir e gerar um novo arquivo de configuração resolve. - **Erro de sintaxe ou parâmetros incorretos na inicialização.** Exemplo (Python): TypeError: __init__() missing 1 required positional argument **Solução:** Verifique como o construtor está sendo chamado. Garanta que todos os parâmetros obrigatórios estejam sendo passados corretamente. - **Falhas na inicialização de sistemas gráficos/áudio (especialmente em games).** Exemplo (Unity, Unreal Engine): Init error: failed to initialize graphics device Possíveis causas: Placa de vídeo ou hardware não suporta a versão necessária de OpenGL, DirectX ou Vulkan. - Drivers gráficos desatualizados ou corrompidos. - O jogo está rodando em uma plataforma não suportada (ex.: servidor sem interface gráfica). **Soluções:** - Atualize os drivers da placa de vídeo. - Execute o aplicativo no modo de compatibilidade. - No Unity, tente usar comandos como **-force-opengl** ou **-force-d3d11**. - Verifique os requisitos mínimos de sistema do aplicativo. - **Erros ao iniciar containers (Docker, LXC).** Exemplo: container failed to start: init error: exec format error Possíveis causas: Comando ou formato de execução incorreto. - A imagem foi construída para uma arquitetura diferente (ex.: x86 vs ARM). - Imagem corrompida ou não carregada completamente. **Soluções:** - Confirme se a arquitetura do host e da imagem coincidem. - Verifique as instruções **ENTRYPOINT** e **CMD** no Dockerfile. - Recrie a imagem com **docker build --no-cache**. - **Problemas com systemd/init.d no Linux.** Exemplo: Failed to start MyService.service: Unit myservice.service not found. **Soluções:** Verifique se o arquivo de unidade existe: **/etc/systemd/system/myservice.service**. - Recarregue as configurações do systemd com **systemctl daemon-reexec**. - Confira se o serviço está corretamente configurado (descrição, caminho do executável, dependências). ## Dicas universais para resolver erros de init - **Verifique os logs:** Utilize ferramentas como journalctl, dmesg, systemctl status, docker logs, debug.log e outras. - **Cheque dependências:** Muitos erros estão relacionados a bibliotecas ou módulos ausentes. - **Reproduza o erro no menor cenário possível: **Simplifique o ambiente até isolar o problema. - **Confirme compatibilidade de versões:** Seja de bibliotecas, linguagens de programação ou componentes do sistema. - **Consulte a documentação:** Muitos erros já estão documentados ou discutidos no GitHub Issues, Stack Overflow ou fóruns especializados. ## Conclusão Embora erros de inicialização sejam frustrantes, na grande maioria dos casos eles podem ser resolvidos com um processo estruturado e metódico. O mais importante é entender o contexto em que o erro ocorre: durante o boot do sistema, ao iniciar um container, ao rodar uma aplicação ou carregar uma biblioteca. Saber interpretar logs e mensagens de erro é uma das habilidades mais valiosas no processo de troubleshooting. É quase sempre o primeiro e melhor caminho para identificar rapidamente a causa raiz de qualquer problema, seja ele causado por arquivos ausentes, configurações incorretas, arquivos corrompidos ou incompatibilidade de versões. Uma abordagem sistemática envolve: - **Coletar informações:** Leia logs, mensagens de erro e alertas. - **Quebrar o problema em partes menores:** Isolar serviços, arquivos de configuração ou dependências. - **Testar soluções uma por uma:** Isso torna o processo mais organizado e eficiente. ## Conclusão Quanto mais você se acostumar a ler e entender logs, mais ágil se tornará na resolução não só de erros de init, mas de praticamente qualquer problema em ambientes de software ou infraestrutura. Além disso, entender os padrões nos logs também permite que você antecipe problemas futuros, economizando tempo e evitando paradas indesejadas. Com prática e método, erros de init deixam de ser um obstáculo e passam a ser apenas mais um passo natural no processo de manutenção e evolução de sistemas. ## A Base de Conhecimento da Serverspace pode te ajudar! Está enfrentando um erro? Algo não está funcionando como deveria? Quer entender melhor algum recurso? A Base de Conhecimento da Serverspace está aqui para te ajudar! Nossa base de conhecimento é constantemente atualizada com exemplos reais e soluções práticas para ambientes Linux, containers, aplicações e infraestrutura em nuvem. https://serverspace.com.br/support/como-faco-para-instalar-o-utilitario-e-usar-glances-no-debian-12.md Saiba como instalar e usar o Glances, um prático utilitário de monitoramento do sistema para o Debian. Oferece suporte a CPU, memória, discos, rede e processos em tempo real, local e remotamente. Quando se trabalha com sistemas Linux, é importante ter uma ferramenta prática para monitorar os recursos do sistema: CPU, memória, disco, rede e processos. A ferramenta **Glances** é uma poderosa solução de monitoramento escrita em Python, que exibe informações em tempo real de forma conveniente diretamente no terminal. Neste artigo, veremos como instalar o Glances no Debian e utilizá-lo na prática. ## Instalando o Glances Há várias maneiras de instalar o Glances, mas as mais confiáveis no Debian são via **apt** ou **pip**. ### Opção 1: Instalando via APT ```bash sudo apt update ``` ```bash sudo apt install glances ``` ### Opção 2: Instalando a versão mais recente via pip ```bash sudo apt install python3-pip pip3 install glances ``` Se quiser fazer uma instalação em todo o sistema, adicione **--break-system-packages** para versões mais recentes do Debian: ``` pip3 install glances --break-system-packages ``` ## Iniciando e Usando Basta digitar: ``` glances ``` Você verá um painel com estatísticas: - **CPU**: uso da CPU por núcleo - **Mem**: uso da memória RAM - **Swap**: uso do swap - **Disk I/O**: atividade do disco - **Network**: tráfego de rede - **Processes**: lista de processos que consomem recursos ## Atalhos Úteis | Tecla | Ação | | --- | --- | | q ou Ctrl+C | Sair | | c | Ordenar processos por CPU | | m | Ordenar processos por memória | | d | Ordenar processos por I/O | | f | Buscar um processo | | l | Mostrar/ocultar log | | b | Ativar/desativar realce de cores | | h | Exibir ajuda | ## Monitoramento Remoto O Glances pode ser usado no modo cliente-servidor. ### 1. Inicie o servidor em uma máquina remota: ``` glances -s ``` (a porta padrão é 61209) ### 2. Conecte-se a partir de outra máquina: ``` glances -c ``` ## Extensões e Plugins O Glances pode ser integrado com: - **Web UI**: executar `glances -w` inicia uma interface web (disponível em http://localhost:61208) - **SNMP**, **Prometheus**, **InfluxDB** e outros para exportar métricas Exemplo: ``` glances -w # disponível via navegador na porta 61208 ``` ## Conclusão O Glances é uma alternativa prática a ferramentas como htop, top, nmon e até mesmo o Grafana (quando usado com Prometheus). Ele é indicado tanto para iniciantes quanto para administradores de sistemas que precisam entender rapidamente o que está acontecendo no sistema. https://serverspace.com.br/support/help/como-instalar-o-rocky-linux-9-5-e-o-que-ha-de-novo-na-versao.md Aprenda a instalar o Rocky Linux 9.5 passo a passo e descubra todas as novidades da versão mais recente, incluindo atualizações de segurança, suporte a hardware e melhorias de desempenho. Em 19 de novembro de 2024, foi lançada a distribuição Rocky Linux na versão 9.5, considerada uma nova alternativa ao CentOS. Ela foi desenvolvida após a retirada antecipada do suporte ao CentOS pela Red Hat. No momento, a distribuição pode ser instalada e utilizada por meio de mídias externas, imagens de disco em máquinas virtuais, contêineres e também via soluções em nuvem da Serverspace! ## Implantação da imagem do Rocky Linux 9.5 A forma mais simples de implantar é utilizando servidores VPS na plataforma de nuvem da Serverspace. Para isso, selecione a plataforma no painel, acesse a aba de servidores, onde estarão disponíveis diversas distribuições, incluindo o Rocky Linux 9.5. Screenshot nº 1 — Painel de criação do servidor Após isso, a criação do servidor levará menos de um minuto, e você poderá se conectar via SSH ou pela interface Cockpit. ## Implantação via imagem Docker O Rocky Linux está disponível no Docker Hub com um repositório oficial que contém imagens completas e minimalistas. No momento, o último lançamento disponível é o Rocky Linux 9, que pode ser baixado com o seguinte comando: ```bash docker pull rockylinux ``` Para executar um contêiner com a imagem minimalista, utilize: ```bash docker run -d -p 80:8080 --volume gg:/etc rockylinux:9-minimal bash -c 'while true;do sleep 1000;done' ``` Screenshot nº 2 — Docker As opções ao iniciar o contêiner permitem redirecionar portas do host para o contêiner, bem como criar um disco virtual chamado gg, onde os dados da pasta /etc serão armazenados. Outros diretórios são montados em um sistema de arquivos temporário e serão apagados após reinicialização. ## Instalação via Linux Para instalar a imagem do Rocky Linux através de uma unidade externa, é necessário preparar a imagem e depois gravá-la no dispositivo. Acesse o site oficial e escolha uma imagem compatível com a arquitetura do seu processador: Screenshot nº 3 — Site oficial Encontre o nome da unidade externa conectada com o comando: ``` lsblk ``` Screenshot nº 4 — Lista de discos Não é necessário particionar nem montar o disco, pois o acesso será feito diretamente no nível do driver. Utilize o comando: ``` dd if=~/sua-imagem.iso of=/dev/sdb bs=8M conv=sync,noerror ``` Após isso, basta inicializar pelo dispositivo via BIOS e seguir com a personalização da instalação. **Principais novidades do Rocky Linux 9.5 GA:** - Suporte aprimorado a hardware e drivers, incluindo placas gráficas NVIDIA, Intel e AMD, além de adaptadores de rede e placas de som; - Atualização de ferramentas e bibliotecas como GCC, Python, OpenSSL e outras usadas no desenvolvimento de software; - Segurança reforçada com atualizações no kernel e pacotes de segurança, incluindo correções de vulnerabilidades e melhorias contra malwares e ataques hackers; - Maior estabilidade do sistema, garantindo funcionamento confiável e menos falhas ou travamentos; - Suporte a novas versões de software como LibreOffice 7.3, GIMP 2.10.28, VLC 3.0.10 e outros programas populares; - Suporte aprimorado a máquinas virtuais e contêineres, facilitando a gestão de ambientes com VirtualBox, VMware e Docker; - Versões atualizadas de aplicativos e pacotes como Firefox, Thunderbird, LibreOffice e GIMP; - Melhorias na conectividade e serviços de rede, com conexões mais seguras e estáveis via LAN e internet, suporte a IPv6 e criptografia de dados aprimorada. ## Conclusão O Rocky Linux 9.5 se consolida como uma alternativa confiável ao CentOS, oferecendo estabilidade, segurança aprimorada e compatibilidade com hardware moderno. Seja através de servidores VPS, contêineres Docker ou instalação direta via unidade externa, a distribuição proporciona flexibilidade para diferentes cenários de uso, desde desenvolvimento de software até ambientes de produção. A atualização de pacotes, suporte a virtualização e melhorias em conectividade tornam o Rocky Linux 9.5 uma escolha robusta para administradores de sistemas, desenvolvedores e entusiastas de Linux. Explorar suas funcionalidades permite otimizar processos, manter sistemas seguros e garantir desempenho estável. ## FAQ (Perguntas Frequentes) - **O que é o Rocky Linux 9.5?** É uma distribuição Linux gratuita e de código aberto, sucessora do CentOS, voltada para servidores e ambientes corporativos. - **Quais formas de instalação estão disponíveis?** Você pode instalar via VPS na nuvem, contêiner Docker ou usando uma unidade externa com a imagem ISO oficial. - **Quais são as principais novidades desta versão?** Suporte melhorado a hardware, atualizações de ferramentas de desenvolvimento, reforço de segurança, estabilidade do sistema, suporte a novas aplicações e melhorias em conectividade. - **É compatível com contêineres e máquinas virtuais?** Sim, o Rocky Linux 9.5 oferece suporte aprimorado para Docker, VirtualBox, VMware e outros ambientes virtualizados. - **Como posso começar a usar no meu servidor?** Basta selecionar a distribuição no painel de sua plataforma de nuvem, ou baixar a imagem Docker/ISO do site oficial e seguir os passos de implantação detalhados na documentação. https://serverspace.com.br/support/help/o-arquivo-kubeconfig-no-kubernetes-o-que-e-e-como-trabalhar-com-ele.md Saiba o que é o arquivo kubeconfig no Kubernetes, onde ele é armazenado, como configurá-lo e usá-lo para se conectar com segurança aos clusters. Um guia completo para iniciantes com exemplos e dicas de segurança. Adequado para a plataforma SuperversourceO… Na ecossistema do **Kubernetes**, o arquivo **kubeconfig** funciona como a principal ferramenta para configurar e gerenciar a conexão com os clusters. Ele garante uma interação segura com a infraestrutura, ajuda a organizar o acesso dos usuários e facilita a troca entre diferentes clusters e ambientes. Sem ele, trabalhar com Kubernetes via linha de comando seria muito mais difícil e menos seguro. Neste artigo, vamos detalhar: - **o que é kubeconfig,** - **onde ele é armazenado,** - **como ele é estruturado,** - **e como trabalhar com ele.** ## O que é kubeconfig? **kubeconfig** é um arquivo de configuração que contém informações sobre: - clusters Kubernetes (endereços dos servidores API), - usuários (credenciais), - contextos (conjuntos de configurações que vinculam cluster e usuário), - namespaces padrão. Ele é usado pela ferramenta CLI **kubectl** (e por outros clientes) para conectar aos clusters Kubernetes e executar comandos. ## Onde encontrá-lo? Por padrão, o Kubernetes espera o arquivo de configuração **kubeconfig** no local padrão dentro do diretório home do usuário: **~/.kube/config** No entanto, você pode usar um arquivo alternativo, indicando o caminho por meio de: - a variável de ambiente **KUBECONFIG**, - a flag **--kubeconfig** ao executar o **kubectl**. **Exemplo:** ```bash kubectl get pods --kubeconfig=/caminho/para/config-customizado ``` ## Como é estruturado o kubeconfig? O arquivo é escrito no formato **YAML**. Abaixo está um exemplo da sua estrutura básica: ```yaml apiVersion: v1 kind: Config clusters: - name: meu-cluster cluster: server: https://192.168.1.100:6443 certificate-authority: /caminho/para/ca.crt users: name: meu-usuario user: client-certificate: /caminho/para/client.crt client-key: /caminho/para/client.key contexts: name: meu-contexto context: cluster: meu-cluster user: meu-usuario namespace: default current-context: meu-contexto ``` ### Seções principais: - **clusters** — contém informações de um ou mais clusters, incluindo endereço e certificado CA. - **users** — descreve os usuários e suas credenciais de autenticação. - **contexts** — vincula um cluster específico a um usuário. - **current-context** — define qual contexto está sendo usado por padrão. ## Gerenciando contextos Você pode gerenciar contextos usando os comandos do **kubectl config**: ```bash kubectl config use-context meu-contexto # Alternar para o contexto especificado kubectl config get-contexts # Listar todos os contextos disponíveis kubectl config current-context # Mostrar o contexto ativo atual ``` ## Para que serve o kubeconfig? O arquivo kubeconfig permite: - Conectar-se a múltiplos clusters a partir do mesmo dispositivo. - Armazenar de forma segura chaves de acesso e certificados TLS. - Simplificar os processos de autenticação e autorização. - Oferecer flexibilidade ao trabalhar com diferentes ambientes (por exemplo, dev, staging, produção). ## Dicas de segurança - **Não compartilhe o kubeconfig por canais inseguros.** - **Armazene o arquivo em um diretório protegido com permissões restritas.** - **Remova contextos e contas antigas ou não utilizadas.** ## Conclusão O arquivo **kubeconfig** é o elo entre o usuário e o cluster Kubernetes. Ele reúne os dados principais sobre clusters, usuários e contextos, garantindo a execução segura e eficiente de comandos via kubectl. A plataforma **[Serverspace](https://serverspace,com.br/)** oferece uma maneira prática de implantar e gerenciar clusters Kubernetes. Após criar um cluster, você pode baixar imediatamente o arquivo kubeconfig pronto no painel de controle e começar a trabalhar com o cluster no terminal ou automatizar processos em CI/CD. Seja trabalhando localmente, na nuvem ou em uma infraestrutura híbrida — um **kubeconfig** bem configurado é a base para uma interação estável e segura com o Kubernetes. https://serverspace.com.br/support/help/como-faco-para-criar-um-cluster-do-kubernetes-no-painel-de-controle-do-serverspace.md Implante um cluster Kubernetes em alguns minutos no painel do Serverspace - sem código e sem configurações complexas. Ideal para aplicativos de teste, DevOps e escalonáveis. ## Início rápido: cluster Kubernetes em poucos minutos Criar um cluster **Kubernetes** não exige mais configurações manuais complexas nem profundo conhecimento em DevOps — no painel de controle da Serverspace, esse processo foi simplificado para apenas alguns cliques. A interface intuitiva permite implantar um cluster completo em poucos minutos, escolhendo os parâmetros e nós necessários sem precisar escrever código ou lidar com arquivos de configuração. É uma excelente solução tanto para desenvolvedores quanto para equipes que desejam testar ou escalar rapidamente seus aplicativos na nuvem. ## Por que você precisa de um cluster Kubernetes? Um cluster Kubernetes permite gerenciar aplicativos em contêiner com alto nível de automação, tolerância a falhas e escalabilidade. Em vez de implantar e monitorar manualmente cada contêiner, o Kubernetes cuida dessas tarefas — desde balanceamento de carga até recuperação automática em caso de falhas. Essa abordagem é especialmente útil para arquiteturas de microsserviços, processos de CI/CD e aplicativos web escaláveis. Usando um cluster Kubernetes na Serverspace, você obtém uma ferramenta poderosa de gerenciamento de infraestrutura, sem a necessidade de mantê-la ou configurá-la manualmente. ## Como implantar o Kubernetes no painel da Serverspace Abra a **seção Kubernetes** no menu lateral e clique em "**Criar cluster Kubernetes**". Em seguida, configure o cluster: selecione o **data center** e defina os **parâmetros do grupo de nós**. Explicações das configurações: - **Nome do grupo** – Nome que será atribuído ao grupo. - **Checkbox Ingress** – se ativado, este grupo processará o tráfego de entrada por meio do controlador Ingress. - **CPU** – número de CPUs virtuais por nó. Quanto mais CPUs, mais tarefas e contêineres o nó poderá processar com eficiência. - **RAM** – quantidade de memória RAM por nó. Também afeta o desempenho: mais memória permite executar mais pods. - **Nós** – número de instâncias neste grupo. Afeta a capacidade de computação total e a tolerância a falhas do cluster. Mais nós = mais confiabilidade e escalabilidade. Depois, marque o checkbox **Dashboard**, se houver pelo menos um grupo de nós com **Ingress** ativado. Escolha a **versão do Kubernetes**, adicione **tags** para facilitar a navegação, defina o **nome do cluster** e, se necessário, ative o modo de **alta disponibilidade**. Após concluir a configuração, clique em "**Criar cluster**". O processo de criação do cluster será iniciado Depois disso, será exibida a **Lista de clusters**: A partir daí, você poderá gerenciar seu cluster: Saber gerenciar um cluster Kubernetes (K8s) é importante por vários motivos fundamentais, especialmente se você atua nas áreas de DevOps, desenvolvimento, operações ou escalabilidade de aplicações. https://serverspace.com.br/support/help/guia-rapido-de-ci-cd-para-engenheiros-devops.md O que é CI/CD, como funcionam os processos automatizados de build, teste e deploy. Exemplos de pipeline, melhores ferramentas, equipes e práticas para engenheiros DevOps. Aprenda a acelerar lançamentos e simplificar a infraestrutura. CI/CD é uma prática que revolucionou o desenvolvimento de software, automatizando os processos de integração, testes e entrega de aplicações. Não tem nada a ver com CDs físicos. Neste artigo, vamos explorar o que CI/CD significa, como funcionam esses processos e por que eles já são parte essencial das metodologias modernas de desenvolvimento, acelerando a entrega de software de alta qualidade e reduzindo os riscos de erros em produção. ## Conceitos principais - **CI (Continuous Integration)** — integração frequente de alterações de código no branch principal com testes automatizados. - **CD (Continuous Delivery)** — preparação automática de uma aplicação para release (o deploy é acionado manualmente). - **CD (Continuous Deployment)** — deploy automático para produção assim que os testes são aprovados. ## Estrutura típica de um pipeline CI/CD - **Build** – compilação do projeto; - **Test** – execução de testes unitários e de integração; - **Lint** – verificação de estilo de código e sintaxe; - **Package** – criação de artefato (.jar, imagem Docker, etc.); - **Deploy** – implantação no servidor ou cluster. ## Ferramentas populares de CI/CD | Ferramenta | Descrição | | --- | --- | | Jenkins | Servidor clássico de automação | | GitLab CI | CI/CD integrado no GitLab | | GitHub Actions | Automação por workflows no GitHub | | ArgoCD | Ferramenta GitOps para Kubernetes | | Drone CI | CI leve para ambientes Docker | ## Exemplo de .gitlab-ci.yml ```yaml stages: - build - test - deploy build: stage: build script: - echo "Building the project..." - make build test: stage: test script: - echo "Running tests..." - make test deploy: stage: deploy script: - echo "Deploying application..." - make deploy only: - main ``` ## Comandos comuns no CI/CD | Comando | Finalidade | | --- | --- | | docker build | criar um container Docker | | docker push | enviar imagem para o registry | | kubectl apply -f | aplicar manifesto Kubernetes | | helm upgrade | atualizar aplicação em Kubernetes | | ansible-playbook | executar playbooks Ansible | ## Boas práticas de pipeline CI/CD - Divida o pipeline em etapas pequenas e independentes; - Minimize o tempo de execução com cache e paralelismo; - Faça deploy apenas após testes bem-sucedidos; - Armazene segredos com segurança (Vault, AWS Secrets Manager); - Implemente rollback para deploys frustrados. ## Exemplos rápidos de etapas **Build (Python):** ```bash pip install -r requirements.txt python setup.py sdist ``` **Test (Node.js):** ```bash npm install npm test ``` **Deploy (Docker + Kubernetes):** ```bash docker build -t myapp:latest . docker push myregistry/myapp:latest kubectl rollout restart deployment myapp-deployment ``` ## Checklist de um engenheiro DevOps - Verifica a sintaxe dos arquivos CI; - Garante que todos os testes passam; - Configura corretamente os segredos; - Separa ambientes (dev, stage, prod); - Testa a funcionalidade de rollback. ## CI/CD com Serverspace Quer simplificar seu setup CI/CD e contar com infraestrutura confiável sempre disponível? No Serverspace, você: - Implanta máquinas virtuais em minutos; - Automação via API poderosa; - Escala sua infra sem complicações; - Paga apenas pelo tempo de uso, em reais; - Lança ambientes pré-configurados (Docker, Kubernetes, GitLab e outras ferramentas DevOps) com um clique no Cloud Marketplace. Seja iniciando um projeto do zero ou migrando um existente, o Serverspace oferece flexibilidade e suporte para tornar seu processo suave e seguro. No ambiente ideal para DevOps e times de TI: foco na entrega, não na infraestrutura. Teste o Serverspace e acelere seu CI/CD agora mesmo! https://serverspace.com.br/support/help/certificados-do-windows-como-visualizar-e-como-funcionam.md Aprenda como funcionam os certificados do Windows e como visualizá-los usando as ferramentas integradas. Entenda os repositórios de certificados e seu uso! As interações modernas em rede exigem segurança, especialmente na transferência de dados confidenciais. Em redes abertas como a Internet, as informações podem ser facilmente interceptadas. Métodos de criptografia baseados em chaves simétricas exigem a troca segura dessas chaves — o que é impossível em canais abertos. A solução foi a **criptografia assimétrica**: ela utiliza um par de chaves — pública e privada. A chave privada é mantida apenas pelo proprietário, e a chave pública pode ser distribuída livremente. No entanto, se qualquer pessoa pode gerar uma "chave pública", como garantir que ela realmente pertence ao proprietário correto? É aqui que entram os certificados: eles associam uma chave pública a informações verificadas sobre o seu proprietário, seja ele um site, uma organização ou um usuário. ## O que são certificados e como funcionam? Um certificado é um arquivo que contém informações sobre o proprietário e sua chave pública. Para evitar substituições maliciosas, esse arquivo é assinado por uma **autoridade certificadora (CA)**. O destinatário confia previamente nas chaves dessa CA e pode confirmar a autenticidade do certificado utilizado pelo remetente. O formato de certificado mais comum é o **X.509.** Ele inclui: Screenshot nº 1 — Atributos do certificado - certificado de chave pública; - nome do proprietário (Common Name, CN); - período de validade; - assinatura digital da autoridade certificadora; - extensões (ex: nomes alternativos, política de uso, etc.). No Windows, os certificados também aparecem como arquivos com as seguintes extensões: Screenshot nº 2 — Formatos de arquivo - .cer, .crt — contêm apenas a chave pública; - .pfx (ou .p12) — contêm a chave pública e a chave privada; - .pem — formato de texto amplamente usado em sistemas Linux/UNIX; - .p7b — contém o caminho da cadeia de certificados; - .sst — contém todos os certificados raiz e intermediários. ## Como visualizar e instalar certificados no Windows? O Windows possui vários repositórios de certificados: - Pessoal — contém os certificados do usuário ou da máquina; - Autoridades de certificação raiz confiáveis — lista das CAs confiáveis; - CAs intermediárias — emitiram certificados em nome da raiz; - Outros usuários, serviços, dispositivos, etc. Você pode visualizá-los usando o snap-in do Windows. Pressione **Win + R**, digite mmc e pressione Enter. No menu, selecione: **Arquivo → Adicionar/remover snap-in**. Adicione **Certificados**, e escolha se deseja visualizar os do **usuário atual** ou do **computador local**. Screenshot nº 3 — Lista de certificados Agora é possível visualizar e gerenciar certificados em diversos repositórios. Também é possível usar comandos. Abra o PowerShell: **Win+X → Terminal/PowerShell** ``` Get-ChildItem Cert:\CurrentUser\My Get-ChildItem Cert:\LocalMachine\Root ``` Para instalar certificados, basta **clicar duas vezes** no arquivo .crt ou .pfx. Siga o assistente de instalação e especifique em qual repositório armazenar o certificado. Screenshot nº 4 — Novo certificado Você também pode instalar certificados via PowerShell: Se for um .crt, use: ``` Import-Certificate -FilePath "C:\caminho\para\cert.crt" -CertStoreLocation "Cert:\LocalMachine\Root" ``` Para arquivos .pfx, use: ``` $password = ConvertTo-SecureString -String "senha" -Force -AsPlainText Import-PfxCertificate -FilePath "C:\caminho\cert.pfx" -Password $password -CertStoreLocation "Cert:\LocalMachine\My" ``` ## Como criar um certificado autofirmado (self-signed)? Certificados autofirmados são usados em ambientes de teste ou internos. Eles são criados sem participação de uma autoridade certificadora: ``` New-SelfSignedCertificate ` -DnsName "teste.local" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -FriendlyName "Meu Certificado Autofirmado" ` -NotAfter (Get-Date).AddYears(1) ``` O uso de certificados é a base das comunicações seguras na Internet e em redes corporativas. Saber criar e gerenciar certificados é essencial tanto para **administradores de sistemas** quanto para **desenvolvedores**. https://serverspace.com.br/support/help/disco-virtual-como-criar-e-montar.md Aprenda como criar, montar e utilizar discos virtuais no formato VMDK em ambientes de virtualização. Guia completo com tipos de discos, configuração via SSH e dicas de segurança. Com o advento da virtualização em soluções de produto, os dispositivos físicos passaram a dividir um único espaço lógico-software em várias partes. Por exemplo, uma interface de rede pode ser dividida em várias independentes entre si, mas utilizando o mesmo canal de comunicação. O mesmo aconteceu com os dispositivos de armazenamento — surgiram os discos virtuais, que são arquivos. Neste artigo, vamos considerar um desses formatos utilizados em virtualização! ## O que é VMDK e como ele funciona? VMDK (VMware Disk) é um formato de arquivo que contém uma cópia de disco semelhante às imagens ISO, sendo um padrão da VMware. O algoritmo de funcionamento envolve as seguintes etapas: - O programa de virtualização cria um arquivo .vmdk, no qual é especificado o tamanho máximo e o tipo (fixo ou dinâmico). - A máquina virtual (ou o próprio host) monta esse arquivo como um disco rígido — o sistema operacional "acredita" que está trabalhando com um disco real. Como mencionado anteriormente, o próprio disco é uma cópia bit a bit, que consiste em: - Setor de inicialização (boot); - Tabela de partições (MBR ou GPT); - Sistema de arquivos (NTFS, ext4 etc.); - Dados do usuário. Tipos de discos virtuais: - Fixo — o arquivo VHD ocupa imediatamente todo o tamanho especificado (por exemplo, 50 GB). - Dinâmico — o tamanho do arquivo VHD cresce à medida que os dados são gravados. - Diferencial — um disco "filho" que contém apenas as alterações em relação ao "pai" (usado para snapshots). ## Como criar e conectar um disco virtual? De tempos em tempos, surge a necessidade de utilizar discos de máquinas virtuais no sistema host para fins de recuperação de dados, limpeza, entre outros. Vamos ver como eles são criados e conectados para uso no sistema operacional do host. O processo é clássico: selecionamos um novo disco de uma máquina existente ou criamos um novo: Screenshot nº 1 — Controlador Selecionamos o controlador lógico recomendado, que nos permitirá gerenciar os discos, e em seguida avançamos para a escolha do tipo de disco: Screenshot nº 2 — Tipo de disco Selecionamos o tipo de armazenamento de disco na máquina. É possível usar um ou mais arquivos que ocuparão o espaço reservado imediatamente ou à medida da necessidade: Screenshot nº 3 — Formas de armazenar dados Usar todo o espaço declarado do disco de uma vez aumentará a velocidade de leitura e gravação no próprio disco. Portanto, se o desempenho for importante para você, leve isso em conta na configuração. Depois disso, selecionamos o local de armazenamento do disco e já podemos começar a utilizá-lo. Vamos imaginar que precisamos recuperar informações dos discos ou fazer uma cópia deles. Para isso, usaremos o utilitário FTK Imager, que permite montar uma imagem. Screenshot nº 4 — Tipo de montagem Ao conectar um disco, é importante entender o algoritmo de funcionamento do sistema operacional com ele. Ao conectar um disco, o driver começa a trabalhar com ele apenas lendo os dados bit a bit. Mas para o funcionamento correto, é necessário gerenciar os arquivos do disco: suas permissões de acesso, rótulos, fluxos alternativos de dados. Isso já é feito pelo sistema de arquivos e pelos manipuladores que conseguem interpretar o formato dos dados armazenados e fornecer uma interface para trabalhar com eles. Portanto, se quisermos trabalhar com os arquivos no disco, usamos uma conexão lógica. Se, por outro lado, uma conexão bit a bit for suficiente, usamos uma conexão física. A partir daí, o disco se torna acessível! Screenshot nº 5 — Resultado Se a conexão de um disco físico com o sistema operacional já está clara, então como isso funciona: de um arquivo para um disco virtual? Na verdade, é a mesma coisa — só que, em vez de um disco com espaço de kernel, entra em ação o software e o VMDK. Os dados são lidos bit a bit, transferidos para o driver, onde o módulo do sistema de arquivos também atua e fornece acesso aos arquivos. https://serverspace.com.br/support/help/como-faco-para-alterar-a-configuracao-do-cluster-do-kubernetes-no-painel-de-controle-do-serverspace.md Saiba como redimensionar grupos de nós e adicionar novos grupos em um cluster do Kubernetes por meio do painel de controle do Serverspace. Configuração fácil de dimensionamento, dicas de otimização de recursos e restrições importantes de alteração de configuração. Ao trabalhar com o [Kubernetes no painel de controle da Serverspace](https://serverspace.com.br/services/managed-kubernetes.md), os usuários podem ajustar os parâmetros do cluster de forma flexível mesmo após sua criação. Em particular, é possível redimensionar grupos de nós já existentes, bem como adicionar novos grupos para escalonamento e otimização da carga. Esses recursos permitem adaptar a infraestrutura às demandas atuais sem a necessidade de recriar todo o cluster. ## Como configurar um grupo existente? Para alterar o tamanho de um grupo de nós no seu cluster, acesse a seção **Kubernetes** no painel de controle, selecione o cluster desejado e vá até a aba **Grupos de nós**. Ali será exibida uma lista com todos os grupos existentes. Encontre o grupo desejado, clique no ícone de três pontos ao lado dele e selecione **Editar** — assim você poderá definir uma nova quantidade de nós: Na janela que se abrirá, será possível aumentar ou reduzir a quantidade de nós no grupo, além de visualizar imediatamente o custo atualizado da locação: ## Como adicionar um novo grupo de nós? Para adicionar um novo grupo de nós, abra o cluster desejado na seção **Kubernetes**, vá até a aba Grupos de nós e clique no botão **Adicionar** — será exibida uma janela para configuração do novo grupo: Nessa janela, você poderá definir o nome do novo grupo, escolher se deseja habilitar o controlador Ingress e informar a quantidade necessária de vCPUs, memória RAM e número de nós. Esses parâmetros ajudam a adaptar o grupo exatamente às necessidades do seu projeto: ## Conclusão Saber gerenciar os recursos do Kubernetes é uma habilidade essencial para operar um cluster de forma eficiente e econômica. Uma configuração adequada e o escalonamento correto dos nós garantem a estabilidade das aplicações, permitem responder rapidamente ao aumento da carga e evitam gastos desnecessários com infraestrutura. Isso é especialmente importante em ambientes em nuvem, onde os recursos são cobrados de acordo com o uso real. Quanto mais precisamente o administrador gerencia os recursos, maior o desempenho do sistema e menores os custos operacionais. https://serverspace.com.br/about/blog/o-que-e-uma-nuvem-privada-vpc.md Descubra o que é uma Nuvem Privada (VPC), como ela funciona e por que sua empresa precisa desse modelo seguro, escalável e de alta performance para proteger dados e otimizar processos. Na era da transformação digital, garantir segurança, escalabilidade e controle sobre os dados se tornou uma necessidade para empresas de todos os portes. Nesse contexto, a [Nuvem Privada Virtual](https://serverspace.com.br/services/virtual-private-cloud.md) (VPC) surge como uma solução estratégica. Trata-se de um ambiente isolado dentro da nuvem, onde uma organização pode hospedar seus servidores, bancos de dados e recursos de rede de forma exclusiva, segura e altamente personalizável. Ao contrário da nuvem pública — onde os recursos são compartilhados entre diferentes usuários —, na VPC toda a infraestrutura fica reservada exclusivamente para uma única empresa. Isso permite controlar melhor os processos, atender requisitos de conformidade e garantir alto desempenho para aplicações críticas. Mas afinal, por que tantas empresas estão migrando para esse modelo? E como saber se a VPC é realmente a escolha certa para seu negócio? Vamos entender. ## Por que empresas estão adotando a nuvem privada? A principal razão está na combinação entre segurança, controle e flexibilidade. Utilizar uma VPC significa deixar de depender de servidores físicos internos, que exigem manutenção constante, espaço físico, consumo de energia e uma equipe dedicada para garantir sua operação. Ao migrar dados e operações para um ambiente virtual privado, a empresa obtém ganhos claros. Não há mais risco de perder informações críticas em caso de falha de hardware. Backups, replicações e medidas de redundância ficam garantidos na infraestrutura da nuvem. Além disso, o modelo oferece escalabilidade real. Se hoje sua empresa precisa de 5 servidores, mas amanhã demanda 10 ou 20, a expansão acontece em minutos — sem compra de equipamentos ou instalações físicas. Isso otimiza não apenas a gestão da infraestrutura, mas também os custos operacionais, que passam a ser proporcionais ao uso real. Outro fator decisivo é a resiliência. Mesmo que um equipamento físico apresente falhas, sua operação na nuvem segue ativa e estável, garantindo continuidade nos negócios e proteção contra perdas. ## Tipos de nuvem: como escolher o modelo certo? Ao pesquisar sobre serviços de nuvem, você inevitavelmente encontrará três modelos principais: pública, privada e híbrida. Cada um atende a perfis específicos de negócio e oferece vantagens distintas. - A **nuvem pública** é ideal para empresas que buscam custo baixo e simplicidade na contratação. Aqui, os recursos são compartilhados entre vários clientes, embora o isolamento dos dados seja garantido. Trata-se de uma solução acessível, escalável e de rápida implementação, porém com menor controle sobre a infraestrutura. - A **nuvem híbrida** combina ambientes privados e públicos, permitindo que a empresa distribua suas cargas conforme a criticidade. Por exemplo, dados sensíveis ficam na VPC, enquanto aplicações menos críticas podem ser hospedadas na nuvem pública. É uma escolha flexível, porém mais complexa de administrar. - Já a **nuvem privada** VPC se destaca por oferecer um ambiente totalmente dedicado à sua empresa, com controle absoluto sobre rede, servidores e armazenamento. Ela proporciona maior segurança, desempenho consistente e personalização total, sendo a escolha natural para negócios que trabalham com dados sensíveis, precisam cumprir normas regulatórias ou simplesmente não querem depender da infraestrutura compartilhada. ## Onde a nuvem privada faz mais sentido? Empresas de todos os tamanhos podem se beneficiar da VPC, mas ela é especialmente indicada quando há demandas críticas de segurança, compliance ou processamento de dados. Por isso, setores como finanças, saúde, telecomunicações, tecnologia e indústria lideram a adoção desse modelo. Imagine uma fintech que precisa garantir aderência total à LGPD. Ou então um hospital, onde informações de pacientes não podem, em hipótese alguma, vazar ou ficar expostas a riscos. Para esses casos, a nuvem pública não oferece o grau de segurança necessário. A VPC permite criar um ambiente sob medida, com regras rígidas de acesso, criptografia de dados e controle total sobre o tráfego. Empresas industriais também recorrem à nuvem privada quando precisam executar sistemas de automação, ERPs, bancos de dados volumosos e softwares que exigem alta disponibilidade. O mesmo se aplica a centros de pesquisa, órgãos governamentais e qualquer organização que lida com informações estratégicas e de alto valor. ## Vantagens reais da Nuvem Privada VPC Ao optar pela VPC, sua empresa não está simplesmente alugando espaço na nuvem. Está adquirindo um ambiente robusto, seguro e 100% adaptado às suas necessidades. As principais vantagens incluem: - **Isolamento total dos dados**, garantindo máxima segurança e privacidade; - **Controle absoluto da infraestrutura**, com possibilidade de configurar redes, firewalls, roteamento e regras de acesso; - **Alto desempenho**, já que os recursos não são compartilhados com outros clientes; - **Escalabilidade sob demanda**, permitindo ajustar rapidamente os recursos de acordo com as necessidades do negócio; - **Conformidade com normas e legislações**, como a LGPD, sem dificuldades; - **Redução de custos operacionais**, eliminando a necessidade de manutenção de data centers próprios. ## Nuvem privada na prática: como funciona? Na prática, contratar uma [VPC](https://serverspace.com.br/services/virtual-private-cloud.md) é como montar sua própria infraestrutura de TI, só que hospedada na nuvem. Através do painel de controle do provedor, é possível criar servidores virtuais, configurar redes privadas, definir políticas de segurança, alocar armazenamento e gerenciar toda a operação de forma centralizada. Tudo isso sem depender de hardware físico, sem processos demorados e com a garantia de que seus dados estão protegidos em data centers certificados, com alta disponibilidade, redundância e proteção contra falhas. Inclusive, é possível integrar a VPC com sistemas de inteligência artificial, automações e ambientes híbridos, criando um ecossistema de TI altamente eficiente. Se sua empresa precisa de segurança, controle, desempenho e flexibilidade, a resposta é simples: sim, a Nuvem Privada VPC é a solução ideal. Ela permite que você tenha uma infraestrutura escalável, resiliente e totalmente personalizada, eliminando os gargalos e as limitações da TI tradicional. Ao escolher um parceiro de confiança como a [Serverspace](https://serverspace.com.br/index.md), sua empresa passa a contar com data centers modernos, atendimento especializado e uma plataforma simples de usar, onde você mesmo gerencia seus servidores, redes e aplicações com poucos cliques. https://serverspace.com.br/about/blog/n8n-o-que-e-automacao-de-workflows-e-por-que-sua-empresa-precisa-disso.md Automatize tarefas com n8n, aumente a eficiência e reduza custos. Implante na nuvem com a Serverspace. No mundo digital acelerado de hoje, eficiência é tudo. Empresas de todos os tamanhos estão recorrendo a tecnologias inteligentes para eliminar tarefas repetitivas, reduzir erros manuais e liberar tempo para atividades estratégicas. Uma das soluções mais poderosas que impulsiona essa mudança é a automação de workflows. Então, o que é automação de workflows? É o processo de usar software para executar tarefas, enviar dados entre sistemas e gerenciar aprovações — sem a necessidade de intervenção humana. Seja para encaminhar automaticamente leads de um formulário de contato para seu CRM ou enviar faturas a partir do seu sistema ERP, a automação de workflows garante que cada etapa seja consistente, rápida e rastreável. ## Por que a automação de workflows é importante Os benefícios da automação de workflows vão muito além da conveniência. Com a configuração certa, as empresas podem melhorar a produtividade das equipes, aprimorar a experiência do cliente e reduzir custos. Alguns exemplos comuns de automação de workflows incluem: - Automação de workflows de email para nutrição de leads, onboarding de clientes e envio de atualizações; - Automação de workflows de fatura que simplifica cobranças e acompanhamentos de pagamento; - Automação de workflows de recrutamento para acelerar contratações e eliminar papelada; - Automação de workflows de LMS que automatiza matrículas e rastreamento de certificações; - Automação de workflows de mídia para gerenciar ativos digitais entre equipes; - Integrações de automação de workflows com CRM que mantêm equipes de vendas e suporte alinhadas. E isso é só o começo. Não importa o setor — imobiliário, marketing, saúde ou educação — sempre há um caso de uso para automação. ## A ascensão do n8n: uma poderosa ferramenta de automação de workflows Entre as melhores opções de software de automação de workflows do mercado hoje está o n8n, uma plataforma flexível e open-source que permite criar workflows automatizados entre centenas de apps e serviços. O que é n8n? Significa "nodemation" e foi projetado para ser tanto poderoso quanto fácil de usar. Diferente de outras plataformas no-code ou low-code que limitam a flexibilidade, o [n8n](https://serverspace.com.br/services/servidor-n8n.md) oferece controle total sobre lógica, condições e manipulação de dados — sem escrever código complexo. Com seu design modular e vasta biblioteca de integrações, a automação de workflows com n8n pode se conectar a ferramentas como Slack, Gmail, Trello, Stripe, Notion e muitas outras. É possível automatizar desde simples fluxos de email até processos de negócios complexos e com múltiplas etapas, envolvendo sistemas de CRM, bancos de dados e APIs. Aqui estão alguns exemplos de workflows do n8n que destacam sua versatilidade: - Exemplos de automação de marketing: criar uma campanha multicanal que envia emails de acompanhamento e notificações no Slack com base em envios de formulários; - Automação de workflows para saúde: enviar lembretes de consultas, atualizar registros de pacientes e encaminhar follow-ups para o setor correto; - Automação de workflows para o setor imobiliário: qualificar leads automaticamente, enviar alertas de imóveis e atualizar estágios no CRM; - Automação de workflows no Slack: receber atualizações instantâneas quando ações importantes ocorrem — como novos cadastros, pagamentos com falha ou chamados escalados. Com a ajuda de templates de workflows do n8n, até mesmo usuários não técnicos conseguem implantar automações em minutos. ## Principais recursos da automação de workflows do n8n - Editor visual de workflows com simplicidade drag-and-drop; - Controles de lógica embutidos como IF/ELSE, loops e expressões; - Disparadores via webhook para automação em tempo real; - Controle de versões e histórico de execuções; - Suporte para código personalizado e integrações avançadas via API. Esteja você criando automações para a equipe de marketing, helpdesk de TI ou backoffice, o n8n escala junto com sua empresa. ## Automação de workflows para todos os setores da empresa De automação de marketing a automação de workflows no ServiceNow, todos os departamentos podem se beneficiar. Mesmo setores como educação podem aproveitar, com automação de workflows em LMSs que reduzem carga administrativa e melhoram a jornada de aprendizado. Automação de workflows por email, em especial, continua sendo um dos casos de uso com maior ROI. Ela permite comunicação oportuna com o cliente, reduz churn e fortalece a confiança na marca. ## Execute o n8n na nuvem com a Serverspace Se você está pronto para explorar automação de workflows com o [n8n](https://serverspace.com.br/services/servidor-n8n.md), não precisa se preocupar com infraestrutura. Na Serverspace, oferecemos a ferramenta n8n totalmente configurada na nuvem — pronta para implantação instantânea. Inicie um servidor em apenas [alguns cliques](https://serverspace.com.br/support/help/como-voce-implanta-o-n8n-no-seu-servidor/) e comece a criar automações inteligentes sem dor de cabeça com configuração ou manutenção. É uma forma simples e econômica de aproveitar ferramentas de automação de workflows sem depender de uma equipe DevOps interna. A Serverspace oferece infraestrutura de nível empresarial, suporte 24/7 e preços escaláveis, para que você possa focar em construir workflows que geram resultados reais. Em um cenário onde tempo, eficiência e precisão impactam diretamente o sucesso, adotar automação de workflows não é mais um luxo — é uma necessidade. Ao reduzir tarefas manuais, minimizar erros humanos e acelerar processos internos, a automação ajuda as empresas a se manterem competitivas e resilientes. Plataformas como o n8n dão poder às equipes para assumirem o controle de suas operações com fluxos flexíveis, escaláveis e transparentes, adaptados às necessidades do mundo real. Seja uma startup buscando agilizar onboarding, ou uma empresa estabelecida otimizando o envio de faturas ou a sincronização com CRMs, o impacto pode ser enorme. Combinado à infraestrutura robusta e confiável da Serverspace, você obtém não apenas um mecanismo de automação poderoso, mas também a tranquilidade de contar com alta disponibilidade e suporte especializado. Com implantação instantânea, preço justo e escalabilidade sem esforço, a Serverspace facilita a experimentação, evolução e crescimento. Não deixe processos manuais atrasarem sua equipe — comece a criar sua primeira automação hoje mesmo e descubra o que é possível quando a tecnologia trabalha a seu favor. ### O que é automação de workflows? É o processo de usar software para executar tarefas, enviar dados entre sistemas e gerenciar aprovações — sem a necessidade de intervenção humana. Seja para encaminhar automaticamente leads de um formulário de contato para seu CRM ou enviar faturas a partir do seu sistema ERP, a automação de workflows garante que cada etapa seja consistente, rápida e rastreável. ### O que significa n8n e como a plataforma foi projetada? Significa "nodemation" e foi projetado para ser tanto poderoso quanto fácil de usar. Diferente de outras plataformas no-code ou low-code que limitam a flexibilidade, o n8n oferece controle total sobre lógica, condições e manipulação de dados — sem escrever código complexo. ### Como a Serverspace ajuda quem deseja começar a usar o n8n? Na Serverspace, oferecemos a ferramenta n8n totalmente configurada na nuvem — pronta para implantação instantânea. Inicie um servidor em apenas alguns cliques e comece a criar automações inteligentes sem dor de cabeça com configuração ou manutenção. ### Quais benefícios as empresas podem obter com a configuração certa da automação de workflows? Com a configuração certa, as empresas podem melhorar a produtividade das equipes, aprimorar a experiência do cliente e reduzir custos. https://serverspace.com.br/about/blog/como-configurar-seu-vps-para-producao-sem-cometer-erros.md Este guia mostra passo a passo como configurar um VPS para produção — desde a geração de chaves SSH até a proteção do servidor e a publicação da sua aplicação. Perfeito para desenvolvedores que querem controle total sem deixar passar… Ao preparar seu projeto para entrar em um ambiente de produção, escolher e configurar a infraestrutura certa se torna uma etapa crítica. Servidores Privados Virtuais (VPS) oferecem um meio-termo poderoso entre hospedagem compartilhada e servidores dedicados. Eles fornecem flexibilidade, controle e escalabilidade sem o alto custo do bare metal. Mas nem toda hospedagem VPS é igual. Então, por onde começar? ## VPS gerenciado vs não gerenciado: qual atende melhor às suas necessidades? A primeira decisão a tomar é se você precisa de um VPS gerenciado ou não gerenciado. A hospedagem VPS gerenciada é ideal se você quer que o provedor cuide de atualizações do servidor, manutenção, segurança e backups. É ideal para startups ou empresas que não têm uma equipe de sysadmins dedicada. Já o VPS não gerenciado oferece controle total do servidor — ótimo para desenvolvedores experientes que precisam de um ambiente limpo e total liberdade para configurar tudo desde o sistema operacional. Na Serverspace, você pode escolher entre as duas opções de acordo com seu nível técnico e os objetivos do seu negócio. Para ambientes de produção onde estabilidade e confiabilidade são essenciais, um VPS gerenciado pode eliminar muita sobrecarga operacional. ## Geração de chave SSH e acesso seguro A segurança começa já na primeira conexão. Antes de acessar um VPS, é necessário gerar chaves SSH. Essa é uma alternativa mais segura do que usar senhas. Em macOS e Linux, as chaves SSH podem ser geradas com o seguinte comando: ```bash ssh-keygen ``` No Windows, você pode usar ferramentas como o PuTTYgen ou o Subsistema Linux do Windows. Se você está se perguntando como gerar chaves SSH no Linux, basta executar: ```bash ssh-keygen -t rsa -b 4096 ``` Usuários de Mac podem seguir os mesmos passos no Terminal, e no Windows, basta abrir o PuTTYgen, clicar em "Generate" e salvar seu par de chaves pública/privada. Depois que as chaves forem criadas, é hora de se conectar. Para isso, use o protocolo SSH com o comando: ```bash ssh user@seu-ip-do-servidor ``` Esse processo está no centro de como usar um VPS de forma segura e eficiente. ## Configurando seu VPS do zero Com o acesso SSH ativo, é hora de configurar o VPS. Comece atualizando os pacotes do sistema e instalando o software necessário. Se você está se perguntando como configurar um VPS, é aqui que o trabalho real começa: configurar o firewall, criar contas de usuário com permissões limitadas e instalar ferramentas de monitoramento. Para quem está começando, um tutorial de VPS pode sugerir o uso de scripts ou painéis de controle para acelerar o processo. Ainda assim, entender cada passo facilita a escalabilidade no futuro. Seja configurando um VPS ou aprendendo como preparar um servidor virtual, os princípios são os mesmos: segurança, estabilidade e desempenho. ## De servidor limpo à hospedagem do seu projeto Agora que você tem uma máquina limpa, qual é o próximo passo? Se quiser hospedar um site em um VPS, precisa escolher entre stacks como LAMP, LEMP ou ambientes conteinerizados com Docker. Hospedar um site ou aplicação envolve configurar servidores web (Apache, NGINX), bancos de dados (MySQL, PostgreSQL) e fazer o deploy do seu código. Se você já se perguntou como deixar um VPS pronto para produção, é aqui que você gastará a maior parte do tempo. Lembre-se: hospedar sua aplicação em um VPS não apenas dá controle sobre o ambiente, mas também melhora o desempenho em comparação com a hospedagem compartilhada. Esse é um dos principais benefícios da hospedagem VPS. ## Segurança em primeiro lugar: como proteger um VPS Nenhuma configuração está completa sem reforço de segurança. Para proteger um VPS, desative o login root, exija autenticação por chave SSH, configure firewalls como o UFW e instale ferramentas de detecção de intrusos. Além disso, configure o fail2ban, crie backups regulares e mantenha todo o software atualizado. ## Erros comuns ao configurar um VPS Mesmo desenvolvedores experientes cometem erros ao configurar um VPS pela primeira vez. Alguns dos mais comuns incluem: - Esquecer de proteger a conta root ou deixar a autenticação por senha habilitada no SSH. - Não configurar um firewall básico como o UFW. - Ignorar atualizações do sistema e gerenciamento de patches. - Usar portas e serviços padrão sem restrição. - Fazer deploy em produção sem backups ou monitoramento configurados. Saber como proteger um VPS e seguir um bom guia de configuração pode ajudar a evitar esses erros críticos. ## Por que escolher a Serverspace para sua hospedagem VPS? A Serverspace oferece uma infraestrutura robusta pensada para ajudar você a lançar seu projeto rapidamente. Você pode implantar um VPS em menos de um minuto, escolher entre vários templates de sistema operacional (Linux, Windows, FreeBSD) e escalar verticalmente a qualquer momento. Nossos planos incluem tráfego gratuito, hardware moderno e suporte técnico 24/7. Se você está pronto para começar, pode contratar um [VPS agora](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) e colocá-lo no ar em instantes. De implantação imediata a data centers globais, configurar um VPS nunca foi tão simples. ## Perguntas frequentes (FAQ) - **Posso mudar de VPS não gerenciado para gerenciado depois?** Sim. Muitos provedores, incluindo a Serverspace, oferecem flexibilidade para fazer upgrade para serviços gerenciados conforme suas necessidades evoluem. - **Qual é a diferença entre um VPS e um servidor dedicado?** Um VPS compartilha o hardware físico com outros usuários, mas oferece recursos isolados. Um servidor dedicado, por outro lado, é uma máquina exclusiva só para você. - **O VPS é adequado para hospedar um site WordPress?** Com certeza. Entre os benefícios do VPS estão melhor desempenho, mais controle e segurança superior para sites baseados em CMS como o WordPress. - **Como gerar chaves SSH no macOS ou Linux?** Use o comando no Terminal: ```bash ssh-keygen ``` e siga as instruções para criar e salvar suas chaves. - **Como me conectar ao VPS depois de gerar as chaves?** Basta executar: ```bash ssh user@seu-ip-do-servidor ``` no terminal, usando a chave privada salva na sua máquina. Este guia de configuração de VPS é mais do que um checklist — é um caminho para colocar seu projeto no ar com segurança e eficiência. Seja você iniciante ou experiente, a Serverspace facilita cada etapa. [Comece agora](https://serverspace.com.br/services/cloud-servers.md) e descubra como simplificar a nuvem com infraestrutura poderosa. https://serverspace.com.br/support/help/folha-de-dicas-de-comandos-do-linux-trabalhando-com-texto.md Uma folha de dicas sobre comandos do Linux para manipulação de texto: filtragem, comparação, classificação, substituição e extração de dados de arquivos. Comandos úteis cat, awk, grep, sed, comm, sort, tr com explicações e exemplos. No Linux, praticamente tudo é baseado em texto: arquivos de configuração, logs, scripts e até mesmo a saída de comandos do sistema. Por isso, dominar a manipulação eficiente de dados textuais via linha de comando é uma habilidade que acelera significativamente o trabalho e aumenta sua confiança na administração de sistemas e automação de tarefas. Neste artigo, reunimos comandos amplamente utilizados para analisar, filtrar, comparar e transformar arquivos de texto no Linux. Cada comando vem com explicações e exemplos — salve como um guia de referência rápida! ## Visualização de conteúdo de arquivos ``` cat -n file1 ``` Exibe o conteúdo de um arquivo com a numeração das linhas — útil para depuração e referência. ``` cat example.txt | awk 'NR%2==1' ``` Filtra e exibe apenas as linhas ímpares do arquivo — útil para análise de logs ou estruturas alternadas. ## Extração de colunas específicas ``` echo a b c | awk '{print $1,$3}' ``` Exibe a primeira e a terceira parte da linha (separadas por espaços) — ideal para extrair campos relevantes. ``` echo a b c | awk '{print $1}' ``` Mostra apenas o primeiro campo — uma amostra mínima para inspeção. ## Comparação de arquivos ``` comm -3 file1 file2 ``` Mostra as linhas diferentes entre dois arquivos, ignorando as comuns — ótimo para sincronizar configurações. ``` comm -1 file1 file2 ``` Exibe apenas as linhas exclusivas do **file1 **— usado para verificar conteúdo removido. ``` comm -2 file1 file2 ``` Exibe apenas as linhas exclusivas do **file2 **— útil para identificar adições. ``` sdiff file1 file2 ``` Compara arquivos linha a linha, lado a lado — fácil para encontrar diferenças pontuais. ## Pesquisa em arquivos de texto ``` grep [0-9] /var/log/messages ``` Filtra linhas que contêm números — ajuda a localizar IDs, códigos, etc. ``` grep ^Aug /var/log/messages ``` Seleciona linhas que começam com "Aug" — ideal para filtrar por data em logs. ``` grep Aug /var/log/messages ``` Exibe todas as linhas que contêm "Aug" — busca rápida por palavra-chave. ``` grep Aug -R /var/log/* ``` Busca recursivamente por "Aug" em todos os arquivos dentro do diretório — poderosa ferramenta para varredura de logs. ## Junção de arquivos por linha ``` paste -d '+' file1 file2 ``` Combina linhas de dois arquivos usando "+" como separador — cria uma visão consolidada. ``` paste file1 file2 ``` Combina arquivos lado a lado, linha a linha — útil para comparação de colunas. ## Edição de texto com **sed** ``` sed 's/string1/string2/g' example.txt ``` Substitui todas as ocorrências de **string1 **por **string2 **— substituição global. ``` sed '/ *#/d; /^$/d' example.txt ``` Remove linhas vazias e linhas de comentário (iniciadas por **#**) — ideal para limpar arquivos de configuração. ``` sed '/^$/d' example.txt ``` Remove apenas as linhas vazias — compacta o texto. ``` sed -e '1d' example.txt ``` Remove a primeira linha do arquivo — pode ser usado para ignorar cabeçalhos. ``` sed -n '/string1/p' ``` Exibe apenas as linhas que contêm **string1** — filtro direto por palavra. ``` sed -e 's/string//g' example.txt ``` Remove todas as ocorrências de **string **— limpa palavras-chave ou ruído. ``` sed -e 's/ *$//' example.txt ``` Remove espaços em branco ao final das linhas — útil para normalização. ``` sed -n '5p;5q' example.txt ``` Exibe apenas a quinta linha do arquivo — extração pontual. ``` sed -n '2,5p' example.txt ``` Exibe as linhas da 2ª à 5ª — útil para analisar blocos de texto. ``` sed -e 's/00*/0/g' example.txt ``` Substitui sequências de zeros por um único zero — normalização de números. ## Ordenação e filtragem de linhas ``` sort file1 file2 ``` Ordena alfabeticamente ou numericamente o conteúdo combinado de dois arquivos — operação básica de análise. ``` sort file1 file2 | uniq ``` Remove duplicatas após ordenar — limpeza de dados repetidos. ``` sort file1 file2 | uniq -u ``` Exibe apenas as linhas únicas — detecta entradas que ocorrem uma única vez. ``` sort file1 file2 | uniq -d ``` Mostra apenas as linhas repetidas — bom para identificar duplicações. ## Conversão de letras para maiúsculas ``` echo 'word' | tr '[:lower:]' '[:upper:]' ``` Converte todos os caracteres para maiúsculo — útil para padronização. Esses comandos podem ser usados individualmente ou combinados para formar pipelines poderosos de processamento de texto. Por exemplo, você pode ler um arquivo, filtrar por palavras-chave, ordenar e remover duplicatas — tudo isso em um único comando no terminal! https://serverspace.com.br/support/help/configuracao-do-hpa-horizontal-pod-autoscaler-no-kubernetes.md Saiba como configurar o Horizontal Pod Autoscaler (HPA) no Kubernetes para dimensionar automaticamente os pods com base na utilização da CPU e em outras métricas. Orientação passo a passo, exemplos de YAML e dicas para melhorar a resiliência e a… Uma das características fundamentais da infraestrutura moderna em nuvem é sua capacidade de se adaptar dinamicamente a mudanças em tempo real. O escalonamento automático horizontal de cargas de trabalho garante resiliência, alta disponibilidade e uso eficiente dos recursos. No ecossistema do Kubernetes, esse papel é desempenhado pelo **Horizontal Pod Autoscaler (HPA)** — um controlador nativo que ajusta automaticamente o número de pods com base em métricas como uso de CPU, consumo de memória ou até métricas personalizadas de desempenho. Isso permite que os aplicativos respondam a picos de carga sem intervenção manual, garantindo o equilíbrio entre desempenho e custo. O **Horizontal Pod Autoscaler (HPA)** é um controlador do Kubernetes que altera automaticamente a quantidade de pods em um Deployment, ReplicaSet ou StatefulSet com base em métricas (como uso de CPU, memória ou métricas personalizadas). ## Pré-requisitos Antes de configurar o HPA, você precisa: - Ter o Kubernetes 1.6 ou superior instalado - Ativar a coleta de métricas: Instalar o metrics-server: ```bash kubectl apply -f [https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml](https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml) ``` - Verificar se as métricas estão sendo coletadas corretamente: ```bash kubectl top pods ``` ## Exemplo de configuração do HPA Suponha que você já tenha um deployment chamado my-app, com uma imagem de contêiner escalável. ### 1. Criar o Deployment: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: web-service labels: environment: production spec: replicas: 1 selector: matchLabels: app: web-service template: metadata: labels: app: web-service spec: containers: - name: web-container image: your-image:latest ports: - name: http containerPort: 80 resources: requests: cpu: "100m" limits: cpu: "500m" ``` ### Aplicar a configuração: ```bash kubectl apply -f deployment.yaml ``` ### Explicação: - **apiVersion: apps/v1** — versão da API do Kubernetes para Deployment. - **kind: Deployment** — tipo de recurso criado. - **metadata.name** — nome do Deployment. - **labels** — rótulos usados para organização e filtragem. - **spec.replicas** — número de réplicas desejadas. - **selector.matchLabels** — seletor para identificar quais pods este deployment gerencia. - **template** — modelo para os pods criados. - **containers**— especificações do contêiner (nome, imagem, portas expostas, limites e requisições de CPU). Um diagrama que ilustra a relação entre Deployment, ReplicaSet e Pod no Kubernetes: ### 2. Criar o HPA: ```bash kubectl autoscale deployment my-app --cpu-percent=50 --min=1 --max=5 ``` Esse comando cria um HPA que visa manter o uso da CPU em torno de 50%, ajustando a quantidade de pods entre 1 e 5. ## Verificando o status do HPA ```bash kubectl get hpa ``` Exemplo de saída: ``` NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE my-app Deployment/my-app 30%/50% 1 5 1 3m ``` ## Testando o escalonamento Você pode gerar carga nos pods para testar o escalonamento. Por exemplo, usando o stress dentro do contêiner: ```bash kubectl exec -it -- apt update && apt install -y stress kubectl exec -it -- stress --cpu 1 ``` Após alguns minutos, o HPA deverá aumentar a quantidade de réplicas automaticamente. ## Uso de métricas personalizadas (opcional) Para cenários avançados, é possível configurar o HPA com métricas personalizadas utilizando o **Prometheus Adapter** ou a **External Metrics API**. ## Recomendações - Sempre defina requests e limits de recursos nos contêineres — o HPA depende dessas configurações. - Verifique os logs do **metrics-server** se o HPA não estiver funcionando corretamente. - Use ferramentas como **Grafana** para monitorar o comportamento do escalonamento. - Combine o HPA com o **Cluster Autoscaler** para escalonar também os nós do cluster, além dos pods. ## Conclusão O Horizontal Pod Autoscaler é uma ferramenta poderosa e flexível que permite ao Kubernetes adaptar automaticamente o número de réplicas dos pods com base na carga real do sistema. Sua adoção é essencial para construir aplicações resilientes, escaláveis e economicamente eficientes em ambientes de nuvem. O HPA reduz a necessidade de ajustes manuais durante picos de carga, otimizando o uso dos recursos computacionais e garantindo desempenho estável. Para quem deseja começar rapidamente com Kubernetes e HPA, plataformas em nuvem com infraestrutura pronta são ideais. Por exemplo, na **Serverspace**, você pode alugar um cluster Kubernetes com pré-instalação, permitindo que você se concentre em suas aplicações imediatamente. ### Vantagens do Kubernetes na Serverspace: - **Risco mínimo:** atualizações automáticas de todos os componentes reduzem falhas humanas. - **Arquitetura flexível:** suporte para desde testes locais até soluções corporativas em grande escala. - **Alta disponibilidade:** os pods são distribuídos entre vários nós, garantindo continuidade mesmo em falhas. - **Escalabilidade real:** execute milhares de contêineres por segundo sem aumentar a equipe. https://serverspace.com.br/support/help/quando-devo-mudar-de-vps-para-vpc.md Quando e por que mudar de VPS para VPC: comparação, vantagens e recomendações sobre a seleção da infraestrutura. Saiba quando é hora de escalar e como começar com o Serverspace. Muitos projetos começam sua trajetória em um servidor virtual privado (VPS). É uma forma acessível e prática de hospedar um site, aplicativo ou serviço. No entanto, à medida que aumentam as exigências de desempenho, segurança e escalabilidade, pode surgir a necessidade de uma solução mais avançada — a infraestrutura de nuvem privada virtual (VPC). Neste artigo, vamos explicar o que é uma VPC, como ela se diferencia de uma VPS e em quais situações vale a pena fazer a migração. ## O que são VPS e VPC - **VPS (Servidor Virtual Privado)** — é um servidor virtual que roda em um host físico juntamente com outros VPS. O usuário tem acesso a recursos dedicados (CPU, RAM, disco), mas há limitações em escalabilidade e controle da infraestrutura. - **VPC (Nuvem Privada Virtual)** — é uma parte isolada da nuvem do provedor onde você pode criar máquinas virtuais, bancos de dados, balanceadores de carga e outros recursos. A VPC oferece controle total sobre rede, roteamento, segurança e arquitetura. ## Principais diferenças | Característica | VPS | VPC | | --- | --- | --- | | Escalabilidade | Limitada | Alta, tanto horizontal quanto vertical | | Segurança | Básica | ACLs configuráveis, firewall, redes privadas | | Rede | Estática, limitada | Isolada, com sub-redes e gateways próprios | | Custo | Fixo e previsível | Flexível, você paga pelo que usar | | Gerenciamento | No nível do servidor | No nível da arquitetura e dos componentes | ## Quando vale a pena migrar para uma VPC ### 1. **Aumento de carga e necessidade de escalabilidade** Se seu projeto está sofrendo com sobrecarga que a VPS não consegue suportar, ou se você deseja separar funções (aplicação, banco de dados, cache) em instâncias distintas, a VPC é uma escolha natural. Ela permite escalar recursos com flexibilidade e sem interrupções. ### 2. **Requisitos elevados de segurança** A VPC permite construir uma rede segmentada com níveis de acesso, firewalls, VPNs e outros mecanismos de segurança. Essencial para setores como fintech, saúde e soluções corporativas. ### 3. **Arquitetura baseada em microsserviços** Se você está migrando para Kubernetes, Docker Swarm ou outra plataforma de orquestração de contêineres, a VPC oferece a infraestrutura ideal para comunicação de rede, escalabilidade e isolamento de serviços. ### 4. **Automação e infraestrutura como código** Trabalhar com VPC está fortemente ligado ao uso de ferramentas como Terraform, Ansible, Pulumi e pipelines CI/CD. É ideal para equipes que adotam metodologias DevOps e automação de infraestrutura. ### 5. **Alta disponibilidade e tolerância a falhas** Em um VPS, tudo roda em um único servidor. Já a VPC permite criar arquiteturas tolerantes a falhas com distribuição entre zonas de disponibilidade e recuperação automática. ## Quando o VPS ainda é uma boa escolha - **Projetos pequenos e MVPs** - **Protótipos e ambientes de teste** - **Sites com baixo tráfego** - **Início sem experiência com DevOps** ## Conclusão O VPS é uma excelente porta de entrada para pequenos negócios, startups e projetos pessoais. É fácil de gerenciar, econômico e permite uma rápida implantação da infraestrutura necessária. No entanto, conforme o projeto cresce, surgem demandas que o VPS não consegue mais atender: escalabilidade, alta disponibilidade, configuração avançada de rede e segurança reforçada. Nesses casos, vale a pena considerar a migração para uma VPC — uma infraestrutura de nuvem privada virtual. Com a VPC, você tem controle total da arquitetura: pode projetar sua rede, criar ambientes isolados, configurar firewalls, balanceadores e muito mais. É a escolha ideal para quem deseja construir sistemas confiáveis, escaláveis e seguros com tecnologias modernas como DevOps, microsserviços e automação. E se você quer alugar rapidamente uma [VPS](https://serverspace.com.br/services/cloud-servers.md)ou [VPC](https://serverspace.com.br/services/virtual-private-cloud.md)com confiança, vale a pena conhecer a [Serverspace](https://serverspace.com.br/index.md)— um provedor de nuvem com painel intuitivo, suporte a ferramentas populares (Terraform, API, CLI), data centers em todo o mundo e sistema de pagamento flexível. O Serverspace é ideal tanto para projetos iniciais quanto para infraestruturas maduras e exigentes. **Comece pequeno — cresça na nuvem.** https://serverspace.com.br/support/help/o-que-e-multi-stage-build.md Descubra como usar Multi-stage build no Docker para criar imagens leves, seguras e eficientes. Veja exemplos práticos, vantagens e dicas para otimizar seus containers Docker. Ao desenvolver aplicações modernas, especialmente aquelas que serão distribuídas em ambientes baseados em contêineres, como o Docker, é fundamental garantir que a imagem gerada seja **leve, segura, eficiente e fácil de manter**. Imagens grandes e cheias de dependências desnecessárias não apenas consomem mais espaço e largura de banda, mas também aumentam o tempo de build, dificultam o deploy e podem expor vulnerabilidades. Para lidar com esse desafio, uma técnica poderosa e elegante é o **Multi-stage build** — um recurso nativo do Docker que permite organizar o processo de construção da imagem em várias etapas, isolando fases como compilação, testes e empacotamento. Neste artigo, vamos entender em detalhes o que é o Multi-stage build, por que ele é tão útil, e como utilizá-lo de forma eficaz no seu fluxo de desenvolvimento. ## Por que usar Multi-stage build? Durante o processo de criação de uma imagem Docker, é comum precisar instalar várias dependências, ferramentas de compilação e bibliotecas. No entanto, essas ferramentas **não são necessárias na imagem final**, e sua presença pode: - Aumentar o tamanho da imagem, - Introduzir vulnerabilidades de segurança, - Complicar a manutenção do ambiente. Com o **Multi-stage build**, é possível dividir o processo de construção da aplicação em várias etapas, mantendo **na imagem final apenas o que é essencial para execução**. ## Como funciona? Um **Dockerfile **com Multi-stage build utiliza **múltiplas instruções FROM**, cada uma iniciando um novo estágio de construção. É possível copiar arquivos entre os estágios — por exemplo, copiar um binário compilado da primeira etapa para a última. ## Exemplo prático Vamos ver um exemplo com uma aplicação em Go: ``` # Etapa 1: build da aplicação FROM golang:1.21 as builder WORKDIR /app COPY . . RUN go build -o myapp # Etapa 2: imagem final FROM debian:bullseye-slim WORKDIR /app COPY --from=builder /app/myapp . CMD ["./myapp"] ``` Neste exemplo: - A **primeira etapa** utiliza uma imagem com o compilador Go para gerar o binário. - A **segunda etapa** usa uma imagem mínima **(debian:slim**) e inclui apenas o binário final. ## Vantagens: - **Imagem menor** — sem compilador ou código-fonte. - **Mais segura** — menos componentes, menor superfície de ataque. - **Mais rápida para transferir e executar**. ## Recursos avançados - É possível criar **várias etapas intermediárias** (por exemplo, para testes ou documentação). - Cada etapa pode ter um nome (as builder) para facilitar a referência. - Com o comando **--target**, é possível construir apenas até uma etapa específica — útil para depuração. ## Conclusão O **Multi-stage build** é uma técnica essencial para qualquer desenvolvedor ou DevOps que utiliza Docker. Ele permite criar imagens **mais limpas, leves e seguras**. Se você ainda não adotou essa abordagem nos seus projetos, vale muito a pena começar agora. https://serverspace.com.br/support/help/o-que-e-estresse-no-docker-e-por-que-preciso-dele.md Saiba como usar a ferramenta de estresse no Docker para simular a carga da CPU, da memória e de E/S. Realize testes de resiliência, valide sistemas de monitoramento e otimize aplicativos em contêineres para obter desempenho no mundo real. Ao desenvolver, testar e operar aplicações containerizadas, é crucial não apenas garantir que o código funcione corretamente, mas também entender como ele se comporta sob pressão. Uma das ferramentas que permite criar carga artificial diretamente dentro de um contêiner Docker é o utilitário stress. Neste artigo, explicamos o que é o **stress**, como utilizá-lo em contêineres e por que ele pode ser valioso para desenvolvedores e engenheiros DevOps. ## **O que é o stress?** **stress **é uma ferramenta de linha de comando simples, projetada para gerar carga em recursos do sistema, como CPU, memória (RAM) e operações de I/O. Ela simula condições extremas e permite observar como sua aplicação, contêiner ou até mesmo o sistema inteiro reage à escassez de recursos. ## **Por que usar stress no Docker?** Veja alguns cenários típicos em que o stress dentro de um contêiner Docker pode ser útil: - **Teste de resiliência** — como sua aplicação se comporta sob alta carga de CPU ou com pouca memória? - **Validação de monitoramento** — os alertas do Prometheus, Grafana ou outras ferramentas estão funcionando como esperado? - **Simulação de carga real** — útil para testar autoescalonamento (HPA, clusters Kubernetes). - **Análise de comportamento de recursos** — por exemplo, como o sistema operacional ou o scheduler do Docker isola a carga entre contêineres? ## **Como usar stress no Docker** Há várias maneiras de usar o stress dentro de contêineres. Uma das mais simples é executá-lo em um contêiner separado. ## Exemplo com imagem oficial: ```bash docker run --rm progrium/stress --cpu 2 --io 1 --vm 1 --vm-bytes 128M --timeout 30s ``` **Explicação dos parâmetros:** - **--cpu 2** — executa 2 processos que sobrecarregam a CPU - **--io 1** — 1 processo que gera carga de I/O - **--vm 1** — 1 processo que aloca memória - **--vm-bytes 128M **— cada processo de memória aloca 128 MB - **--timeout 30s** — interrompe a carga após 30 segundos ## Adicionando o stress no seu Dockerfile Se quiser testar como sua aplicação se comporta sob carga: ``` FROM debian:bullseye RUN apt-get update && apt-get install -y stress COPY . /app WORKDIR /app CMD ["sh", "-c", "stress --cpu 1 & ./your_app"] ``` ## **Alternativa: stress-ng** Para cargas mais avançadas e configuráveis, use o **stress-ng** — uma versão moderna com suporte a mais parâmetros e testes. Exemplo: ``` ocker run --rm ubuntu bash -c "apt update && apt install -y stress-ng && stress-ng --cpu 4 --timeout 30s" ``` ## **Dicas úteis** - Limite os recursos do contêiner com flags do Docker (--memory, --cpus) ou no Kubernetes (com resources.limits) para testar sob restrições. - Não execute testes de estresse em ambientes de produção, a menos que tenha certeza das consequências. - Use o stress< em conjunto com ferramentas de monitoramento e logs para obter uma visão completa do comportamento do sistema. ## **Conclusão** O utilitário **stress **é uma ferramenta **simples, mas poderosa e flexível**, que pode melhorar significativamente sua capacidade de testar a confiabilidade e resiliência de aplicações em contêineres Docker. Ele permite simular **cenários reais de sobrecarga de recursos**, como uso intenso de CPU, pressão de memória ou operações intensivas de I/O. Isso ajuda a identificar gargalos, validar sistemas de alerta e garantir que sua aplicação suporte ambientes restritos. Além disso, o stress pode desempenhar um papel importante em **testes automatizados, pipelines CI/CD** e simulações de falha em condições próximas às de produção. Ele é especialmente valioso em **infraestruturas nativas da nuvem e distribuídas**, onde o desempenho e a previsibilidade sob carga são essenciais para a experiência do usuário e os resultados do negócio. Ao adicionar o stress ao seu conjunto de ferramentas, você dá mais um passo em direção à construção de uma **infraestrutura robusta, tolerante a falhas e bem testada**, capaz de lidar com demandas reais e se recuperar rapidamente de falhas. https://serverspace.com.br/support/help/o-que-e-o-docker-slim-e-por-que-eu-preciso-dele.md Saiba o que é o Docker Slim e como ele ajuda a otimizar as imagens do Docker, reduzindo o tamanho, melhorando a segurança e acelerando as implantações. Ideal para ambientes de produção, CI/CD e nuvem. Ao usar o Docker, um dos principais objetivos é criar imagens de contêiner que sejam o mais compactas, seguras e eficientes possível. Isso é especialmente importante em ambientes de produção, pipelines de CI/CD, nuvem e arquiteturas serverless, onde cada megabyte faz diferença. Uma ferramenta que ajuda a alcançar esse objetivo é o **docker-slim**. Neste artigo, vamos explicar o que é o docker-slim, como ele funciona e por que você deve incluí-lo no seu conjunto de ferramentas DevOps. ## Por que minimizar imagens Docker? A abordagem padrão com Dockerfile geralmente resulta em imagens grandes e inchadas, contendo: - **Dependências não utilizadas em tempo de execução (compiladores, ferramentas de teste)** - **Ferramentas de depuração** - **Arquivos temporários** - **Pacotes instalados "por precaução"** Isso leva a: - **Tempos mais lentos de build e entrega** - **Maior superfície de ataque (mais ferramentas = mais vulnerabilidades)** - **Maior consumo de armazenamento e rede** ## O que o docker-slim faz? O **docker-slim** é uma ferramenta de linha de comando que analisa o comportamento do seu contêiner em tempo de execução e gera uma imagem Docker mínima, removendo tudo o que é desnecessário. Ele funciona da seguinte forma: - **Executa seu contêiner em modo de inspeção** - **Monitora quais arquivos e bibliotecas são realmente usados pelo aplicativo** - **Cria uma nova imagem otimizada, contendo apenas esses arquivos** ## Benefícios - **Segurança** — Menos vulnerabilidades potenciais - **Tamanho** — As imagens podem ser reduzidas em 10 a 30 vezes - **Simplicidade** — Não é necessário ajustar manualmente a imagem base - **Compatibilidade** — Funciona com a maioria das linguagens (Python, Node.js, Go, Java etc.) ## Como usar o docker-slim Exemplo com uma aplicação em Python: ```bash docker build -t myapp . docker-slim build myapp ``` Resultado: - Imagem original: myapp - Imagem otimizada: myapp.slim Exemplo de saída: ```bash docker images REPOSITORY TAG IMAGE ID SIZE myapp latest abc123 350MB myapp.slim latest def456 18MB ``` ## Recursos avançados - **http-probe** — Gera automaticamente requisições HTTP para ativar todas as rotas do app - **user-probes** — Permite definir probes personalizados (scripts, curl etc.) - **Integração com CI/CD** — Fácil integração com GitHub Actions, GitLab CI e outros - **Análise de segurança** — Identifica riscos e problemas com dependências ## Limitações - O app precisa de fato rodar no modo de inspeção - Dependências dinâmicas podem ser ignoradas se não forem ativadas durante a análise (resolvível com probes personalizados) - Não é ideal para apps com inicialização pesada ou interfaces gráficas/headless ## Conclusão O **docker-slim** é uma ferramenta poderosa e prática para otimizar automaticamente imagens Docker. Ele reduz significativamente o tamanho das imagens, aumenta a segurança e acelera o deploy — tudo isso sem exigir reescritas manuais do Dockerfile. É especialmente útil em produção, microsserviços, ambientes em nuvem e pipelines de CI/CD. Se você ainda não está usando o docker-slim, agora é um ótimo momento para começar. É um pequeno passo que pode fazer uma enorme diferença na qualidade e eficiência da sua infraestrutura. https://serverspace.com.br/support/help/como-reduzir-uma-imagem-do-docker-8-maneiras-de-tornar-o-conteiner-mais-leve-e-seguro.md Saiba como reduzir o tamanho das imagens do Docker usando as práticas recomendadas: compilação em vários estágios, imagens de base mínimas, docker-slim e outras ferramentas. Aumente a segurança e acelere a implantação Criar imagens Docker leves e seguras é uma tarefa essencial para desenvolvedores, engenheiros DevOps e todos que trabalham com contêineres. Quanto menor a imagem, mais rápido é seu processo de build, entrega e inicialização. Isso é especialmente crítico em ambientes de nuvem, pipelines CI/CD e arquiteturas de microsserviços escaláveis. Neste artigo, vamos explorar por que reduzir imagens é importante, como fazer isso da maneira certa e quais ferramentas você deve considerar. ## Por que é importante reduzir imagens Docker? Uma imagem grande: - **Demora mais para ser baixada e iniciada** - **Ocupa mais espaço de armazenamento** - **Apresenta maior risco de vulnerabilidades (mais camadas e dependências)** - **Dificulta o cache e os pipelines de CI/CD** ## 1. Use imagens base mínimas Sempre comece com a imagem base mais enxuta possível para sua stack: | Linguagem | Imagem mínima | | --- | --- | | Node.js | node:alpine | | Python | python:alpine | | Go | golang:alpine ou scratch | | Java | eclipse-temurin:-alpine | | Ubuntu | ubuntu:minimal ou debian:slim | O Alpine Linux é uma distribuição ultraleve (~5MB) e funciona muito bem para a maioria dos aplicativos. ## 2. Remova tudo que for desnecessário após a instalação Depois de instalar pacotes via apt, apk, pip, npm etc.: - Remova arquivos temporários - Limpe o cache dos gerenciadores de pacotes Exemplo para sistemas baseados em Debian: ```bash RUN apt-get update && apt-get install -y \ curl \ && rm -rf /var/lib/apt/lists/* ``` ## 3. Use multi-stage builds Uma das formas mais poderosas de otimizar imagens é separar o estágio de build do de runtime. Exemplo com Go: ``` # Etapa de build FROM golang:1.21 AS builder WORKDIR /app COPY . . RUN go build -o myapp # Etapa de execução FROM alpine COPY --from=builder /app/myapp /myapp ENTRYPOINT ["/myapp"] ``` Resultado: uma imagem limpa e mínima, sem dependências de compilação. ## 4. Use .dockerignore O arquivo **.dockerignore** funciona como um **.gitignore**, excluindo arquivos desnecessários do contexto de build: ``` .git node_modules __pycache__ *.log *.md tests/ ``` Isso acelera o build e reduz o tamanho da imagem. ## 5. Use o docker-slim A ferramenta **docker-slim** analisa automaticamente quais arquivos são realmente usados pelo seu app e cria uma imagem mínima. Exemplo de uso: ```bash docker build -t myapp . docker-slim build myapp ``` Resultado: redução de 10 a 30 vezes no tamanho da imagem. ## 6. Combine comandos RUN Cada comando RUN cria uma nova camada. Combine comandos com && para reduzir o número de camadas: ``` RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* ``` ## 7. Minimize o uso de COPY e ADD Evite múltiplos comandos **COPY**. Prefira um único: ``` COPY . /app ``` E use **ADD **apenas se for necessário extrair arquivos de um .tar ou baixar conteúdo remoto — COPY é mais seguro e previsível. ## 8. Remova dependências não utilizadas Se você usa Python, Node.js ou outra linguagem com gerenciadores de pacotes, adote práticas como: - **pip install** --no-cache-dir - **npm prune** --production - **poetry install** --only main ## Conclusão Reduzir o tamanho das imagens Docker não é apenas uma questão de economizar megabytes, mas também de: - **Acelerar pipelines CI/CD** - **Aumentar a segurança** - **Reduzir custos de infraestrutura** Seguindo essas boas práticas e usando ferramentas como o **docker-slim**, você poderá criar imagens enxutas, rápidas e seguras — ideais para ambientes de produção. https://serverspace.com.br/support/help/o-que-sao-compilacoes-em-varios-estagios-no-docker-e-por-que-elas-sao-necessarias.md Saiba o que são compilações em vários estágios no Docker, como elas funcionam e quando você deve usá-las para criar contêineres compactos, seguros e prontos para produção. Útil para desenvolvedores e profissionais de DevOps que otimizam os processos de CI/CD. **Otimização de imagens Docker** é um passo essencial para um deployment rápido e seguro. Uma das ferramentas mais poderosas para isso é o **multi-stage builds**. Essa técnica permite criar imagens enxutas e limpas, sem dependências desnecessárias, facilitando a manutenção e acelerando o processo de build. Neste artigo, vamos explorar em detalhes o que são os multi-stage builds no contexto do Docker, quais problemas eles resolvem e como funcionam na prática. Você aprenderá como essa técnica pode reduzir significativamente o tamanho das imagens, melhorar a segurança, aumentar a performance em pipelines de CI/CD e simplificar o gerenciamento de dependências. Também vamos mostrar exemplos reais de uso com diferentes linguagens e tecnologias — de Go e Node.js a Python e Java. Além disso, você receberá recomendações sobre quando aplicar essa abordagem e quais erros evitar. ## O que é Multi-Stage Builds? Multi-stage build é uma abordagem onde um único Dockerfile contém múltiplos estágios de construção (stages), cada um podendo usar uma imagem base diferente. Apenas os artefatos necessários são copiados para a imagem final, descartando todas as dependências intermediárias (como compiladores, ferramentas de teste, etc.). Isso permite: - **Reduzir o tamanho da imagem final;** - **Evitar a inclusão de dados sensíveis ou ferramentas de desenvolvimento em produção;** - **Usar um único Dockerfile para build e runtime.** ## Exemplo: Build de um app em Go **Abordagem comum:** ``` FROM golang:1.21 WORKDIR /app COPY . . RUN go build -o myapp CMD ["./myapp"] ``` Essa imagem contém o toolchain completo do Go, desnecessário em produção. **Solução com multi-stage:** ``` # Stage de build FROM golang:1.21 AS builder WORKDIR /app COPY . . RUN go build -o myapp # Stage de runtime FROM alpine COPY --from=builder /app/myapp /myapp ENTRYPOINT ["/myapp"] ``` **Resultado:** a imagem final tem apenas alguns megabytes e inclui somente o binário executável. ## Por que isso é importante? **Vantagens do multi-stage builds:** - **Imagens limpas:** somente binários e arquivos necessários são incluídos; - **Velocidade:** imagens menores são mais rápidas para baixar e iniciar; - **Segurança:** menos ferramentas = menos vulnerabilidades potenciais; - **Versatilidade:** aplicável à maioria das linguagens e frameworks. ## Exemplos de uso **Node.js** ``` # Build FROM node:20 AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Produção FROM node:20-alpine WORKDIR /app COPY --from=builder /app/dist ./dist COPY --from=builder /app/node_modules ./node_modules CMD ["node", "dist/index.js"] ``` **Python (com dependências C compiladas)** ``` # Build FROM python:3.12 AS builder WORKDIR /app COPY . . RUN pip install --user -r requirements.txt # Final FROM python:3.12-slim WORKDIR /app COPY --from=builder /root/.local /root/.local COPY . . ENV PATH=/root/.local/bin:$PATH CMD ["python", "main.py"] ``` ## Quando usar multi-stage builds? Use quando: - Seu app exige build ou compilação (Go, Rust, Java, C++); - Você quer reduzir o tamanho da imagem de produção; - É necessário isolar ferramentas de build do ambiente de execução; - A segurança é uma prioridade — menos dependências, menos riscos. ## Em suma **Multi-stage builds** são uma forma simples, mas poderosa de otimizar imagens Docker. Eles permitem separar o processo de build do de execução, criando imagens leves, seguras e limpas. Se você quer acelerar seus builds, reduzir custos de infraestrutura e melhorar a segurança, multi-stage builds devem fazer parte do seu kit de ferramentas DevOps. ## Docker e Serverspace Se você está começando com Docker ou deseja aprofundar seus conhecimentos, confira a [Base de Conhecimento da Serverspace](https://serverspace.com.br/support.md). Na nossa base de conhecimento, você encontrará uma vasta coleção de tutoriais detalhados, guias práticos e artigos especializados sobre Docker, abordando desde os conceitos mais simples até tópicos avançados. Desde a instalação do Docker e compreensão dos principais componentes, como contêineres, imagens e volumes, até práticas mais complexas, como o uso do Docker Compose para orquestração de múltiplos contêineres, e estratégias de otimização de imagens para garantir maior desempenho e eficiência. Além disso, você poderá aprender como integrar o Docker com pipelines de CI/CD, implementando automações para desenvolvimento e testes contínuos. O material disponível na Base de Conhecimento da Serverspace é constantemente atualizado, oferecendo soluções relevantes e práticas para todos os níveis de habilidade — desde iniciantes que estão dando os primeiros passos até engenheiros DevOps que buscam otimizar seus fluxos de trabalho. Com isso, você terá acesso a recursos que não só ajudarão a resolver dúvidas do dia a dia, mas também a aprimorar suas habilidades em uma das tecnologias mais inovadoras e em alta no mundo da infraestrutura e https://serverspace.com.br/support/help/como-trabalhar-com-recursos-de-conteiner-do-docker.md Saiba como limitar os recursos do contêiner do Docker - CPU, memória, disco e E/S. Exemplos práticos de como configurar os recursos do Docker. Os contêineres Docker permitem executar aplicações em um ambiente isolado, mas sem um gerenciamento adequado de recursos, um único contêiner pode consumir CPU, memória ou outros recursos do host em excesso. Neste artigo, vamos abordar como limitar e controlar o uso de recursos pelos contêineres para garantir um funcionamento estável e previsível dos seus serviços. ## Por que é importante limitar os recursos? Por padrão, um contêiner pode utilizar todos os recursos disponíveis do host. Isso pode causar: - **Lentidão em outros processos;** - **Funcionamento incorreto de múltiplos contêineres;** - **Comportamento imprevisível do sistema.** O Docker permite definir limites para CPU, memória, disco e I/O, evitando esses problemas. ## 1. Limite de memória **Exemplo de comando:** ```bash docker run -m 512m --memory-swap 1g nginx ``` **Explicação:** - -m 512m: limita a memória disponível ao contêiner para 512 megabytes. - --memory-swap 1g: define o limite total de RAM + swap como 1 gigabyte. Se o contêiner usar mais de 512MB de RAM, ele poderá usar até 512MB adicionais de swap. **Importante:** Um contêiner que exceder o limite de memória será encerrado com erro de "Out of Memory". ## 2. Limite de CPU **Exemplo de comando:** ```bash docker run --cpus="1.5" nginx ``` **Explicação:** - **--cpus="1.5"**: o contêiner pode usar até 1,5 núcleos de CPU, útil em sistemas com múltiplos núcleos. **Método alternativo:** ```bash docker run --cpu-shares=512 nginx ``` - **--cpu-shares**: define a prioridade relativa da CPU. O valor padrão é 1024. Valores menores indicam menor prioridade. ## 3. Limite de I/O (operações de disco) **Exemplo de comando:** ```bash docker run --device-read-bps /dev/sda:1mb nginx ``` **Explicação:** - --device-read-bps: limita a taxa de leitura do dispositivo /dev/sda para 1 megabyte por segundo. Outras opções disponíveis: **** - **--device-write-bps** - **>--device-read-iops** - **--device-write-iops** ## 4. Limite de processos (PIDs) Essa opção ajuda a prevenir fork bombs e sobrecarga de processos: ```bash docker run --pids-limit=100 nginx ``` O contêiner não poderá criar mais de 100 processos. ## 5. Usando limites no docker-compose.yml É possível definir limites de recursos no docker-compose usando a diretiva **deploy.resources.limits**, por exemplo: ```yaml version: "3.9" services: web: image: nginx deploy: resources: limits: cpus: '0.50' memory: 256M ``` ## 6. Monitoramento de recursos Ferramentas úteis para monitorar o uso de recursos dos contêineres incluem: - **docker stats** - **Prometheus** - **Grafana** - **cAdvisor** ## Conclusão Limitar os recursos de contêineres é essencial para construir uma infraestrutura confiável e escalável. Utilize esses mecanismos para garantir que os contêineres não interfiram entre si e não sobrecarreguem o host. Isso é especialmente importante em ambientes de produção, onde previsibilidade e isolamento são fundamentais para a operação estável dos serviços. https://serverspace.com.br/support/help/o-que-e-docker-stats-e-como-usa-lo.md Saiba como usar o comando docker stats para monitorar os recursos do contêiner em tempo real. Monitore com eficiência a CPU, a memória, a rede e a E/S no Docker para obter um desempenho estável dos aplicativos. A conteinerização com Docker é uma maneira poderosa e flexível de implantar e escalar aplicações em ambientes isolados. No entanto, para que a infraestrutura permaneça estável e previsível, não basta apenas executar contêineres — é essencial monitorar constantemente como eles consomem os recursos do host, como CPU, memória RAM, disco e rede. Sem um controle adequado, contêineres individuais podem sobrecarregar o sistema, reduzindo o desempenho de todo o ambiente. Felizmente, o Docker oferece uma ferramenta embutida — o comando docker stats — que fornece uma visualização clara e em tempo real do uso de recursos por cada contêiner ativo. Isso permite que administradores e desenvolvedores identifiquem rapidamente sobrecargas, detectem processos pesados e tomem medidas para otimizar ou redistribuir a carga. ## O que é o docker stats? docker stats é um comando integrado do Docker CLI que exibe no terminal informações em tempo real sobre o consumo de recursos por cada contêiner em execução. Ele mostra: - **Uso de CPU (%)** - **Memória (utilizada / total)** - **Tráfego de rede (entrada e saída)** - **Operações de I/O em disco (leitura/gravação)** Este comando é extremamente útil para: - **depuração de desempenho dos contêineres;** - **monitoramento durante testes de carga;** - **identificação de contêineres que consomem muitos recursos;** - **análise de comportamento em ambientes de produção.** ## Como usar o docker stats? ### Comando básico: ```bash docker stats ``` Sem parâmetros, ele mostra estatísticas de todos os contêineres em execução. ### Exemplo de saída: ``` CONTAINER ID NAME CPU % MEM USAGE / LIMIT NET I/O BLOCK I/O PIDS d9b100f2f636 nginx 0.35% 24.35MiB / 512MiB 1.2kB / 800B 5.2MB / 0B 5 ``` ### Monitorar um contêiner específico: ```bash docker stats ``` Exemplo: ```bash docker stats nginx ``` ## Parâmetros úteis Embora o **docker stats** não tenha muitas opções, ele pode ser usado com ferramentas CLI adicionais — por exemplo, com a opção --no-stream para obter uma estatística única (em vez de contínua): ```bash docker stats --no-stream ``` Muito útil em scripts ou em situações onde não é necessário monitoramento contínuo. ## Como funciona o docker stats internamente? O Docker coleta dados a partir de **cgroups** e do **runtime de contêiner** (como o runc) para fornecer informações precisas sobre o uso de recursos. Esses dados são agregados e exibidos no terminal em um formato legível. ## Alternativas e ferramentas complementares Embora o docker stats seja uma ótima ferramenta para diagnóstico rápido, para monitoramento mais detalhado e de longo prazo, considere utilizar: - **cAdvisor** — desenvolvido pelo Google, fornece visualizações gráficas das métricas dos contêineres. - **Prometheus + Grafana** — ideal para coleta e exibição de métricas em tempo real. - **Dockly** — interface de terminal interativa para Docker com estatísticas e navegação. ## Conclusão O comando docker stats é uma ferramenta indispensável para a análise rápida e eficiente da carga de trabalho dos contêineres em tempo real. Ele fornece informações detalhadas sobre o uso de CPU, memória, disco e rede, permitindo que administradores e desenvolvedores identifiquem gargalos de desempenho antes que eles afetem negativamente o ambiente. Ao utilizar docker stats, você pode agir de forma proativa, redistribuindo recursos, ajustando limites ou até mesmo reestruturando serviços para garantir maior estabilidade. Embora o docker stats não substitua plataformas avançadas de monitoramento como Prometheus ou Grafana, ele serve como um excelente ponto de partida para diagnósticos imediatos, especialmente em ambientes de desenvolvimento, testes ou em situações de emergência. Sua simplicidade e acessibilidade tornam a ferramenta essencial para o dia a dia de quem trabalha com Docker, ajudando a manter a infraestrutura leve, eficiente e sob controle. https://serverspace.com.br/support/help/otimizacao-de-imagens-do-docker-um-guia-passo-a-passo.md Saiba como otimizar as imagens do Docker para acelerar a CI/CD, reduzir o tamanho do contêiner e melhorar a segurança. Dicas práticas: compilações em vários estágios, imagens de base mínimas e limpeza de arquivos temporários. **Imagens Docker são a base da conteinerização.** No entanto, imagens não otimizadas podem ser grandes demais, inseguras e lentas para construir. Isso afeta a velocidade de deployment, o consumo de recursos e a segurança da infraestrutura. Neste artigo, vamos explorar as melhores práticas para otimizar imagens Docker — para que seus aplicativos iniciem mais rapidamente, ocupem menos espaço e sejam mais fáceis de manter. ## Por que otimizar imagens Docker? - Acelerar a construção e o deployment - Reduzir o tamanho da imagem - Aumentar a segurança (menos pacotes = menos vulnerabilidades) - Economizar espaço em disco e tráfego de rede - Garantir repetibilidade e cache eficiente dos layers ## 1. Use imagens base mínimas Quanto menor a imagem base, menor o tamanho final. Ruim: ``` FROM ubuntu:22.04 ``` Melhor: ``` FROM debian:bullseye-slim ``` Melhor ainda: ``` FROM alpine:3.19 ``` Alpine tem apenas ~5 MB, mas pode ter problemas de compatibilidade com algumas bibliotecas. ## 2. Limpe arquivos temporários após instalação Exemplo: ```bash RUN apt-get update && apt-get install -y \ curl \ && rm -rf /var/lib/apt/lists/* ``` Isso reduz o tamanho do layer ao remover caches e arquivos temporários. ## 3. Use multi-stage builds A construção em múltiplas etapas permite compilar em uma fase e copiar apenas o necessário para a imagem final. Exemplo: ``` # Etapa de build FROM golang:1.21 AS builder WORKDIR /app COPY . . RUN go build -o main . # Imagem final FROM alpine:3.19 COPY --from=builder /app/main /app/ ENTRYPOINT ["/app/main"] ``` **Resultado: uma imagem leve, enxuta e segura.** ## 4. Use .dockerignore O arquivo .dockerignore funciona como .gitignore, excluindo arquivos desnecessários do contexto de build. Exemplo: ``` .git node_modules tests Dockerfile README.md ``` Isso acelera a construção e reduz o tamanho da imagem. ## 5. Combine comandos RUN Cada comando RUN cria um novo layer. Prefira encadeá-los com &&. Ruim: ``` RUN apt update RUN apt install -y curl ``` Melhor: ``` RUN apt update && apt install -y curl ``` ## 6. Instale apenas o que for necessário Evite pacotes "por precaução". Menos software = mais segurança + menor imagem. ## 7. Minimize o número de layers Cada RUN, COPY, ADD gera um novo layer. Combine ações quando possível. ## 8. Analise suas imagens Verifique o tamanho e estrutura: ```bash docker image inspect ``` Ou use a ferramenta Dive: ``` dive ``` ## 9. Use versões fixas Evite usar latest — isso dificulta o cache e gera builds instáveis: ``` FROM node:18.17.0 ``` ## FAQ **O tamanho da imagem afeta a performance?** Sim, especialmente em pipelines CI/CD ou ao transferir entre servidores. Imagens menores resultam em deploys mais rápidos. **Devo sempre usar Alpine?** Não necessariamente. Alpine pode ter problemas de compatibilidade com glibc. Teste bem antes de usar em produção. **Como saber quais arquivos ocupam mais espaço?** Use o dive,docker image inspect ou docker history>. ## Conclusão A otimização de imagens Docker não é apenas um "bônus", mas uma prática essencial para times que buscam estabilidade, escalabilidade e segurança. Cada megabyte importa: quanto mais leve e limpa a imagem, mais rápido o deploy, menos vulnerabilidades e mais fácil o suporte. Reveja seus Dockerfiles regularmente, reduza o número de layers, elimine dependências desnecessárias e use .dockerignore para excluir arquivos inúteis do build. Não se esqueça do multi-stage build — uma das formas mais eficazes de criar imagens enxutas e produtivas. **Aplicando essas práticas você alcança:** - **Pipelines CI/CD mais rápidos e confiáveis** - **Melhor uso de recursos (menos I/O e espaço em disco)** - **Mais segurança (menos superfície de ataque)** - **Escalabilidade eficiente (inicializações mais rápidas no Kubernetes)** - **Manutenção simplificada (builds previsíveis e transparentes)** Lembre-se: **uma imagem Docker bem otimizada é o cartão de visitas do seu app em produção.** Mantenha-a limpa, rápida e segura — e colha os frutos de uma operação estável. https://serverspace.com.br/support/help/como-instalar-o-dockly-uma-interface-facil-de-usar-para-gerenciar-conteineres-do-docker-a-partir-do-terminal.md Como instalar o Dockly - uma interface fácil de usar para gerenciar contêineres do Docker a partir do terminalSaiba como instalar e usar o Dockly, uma interface de terminal fácil de usar para gerenciar contêineres do Docker. Instalação fácil, comandos… **Dockly** é uma interface TUI (terminal user interface) interativa para gerenciar contêineres Docker, imagens e outras entidades. É conveniente, minimalista e permite visualizar logs, gerenciar contêineres e monitorar o status do Docker diretamente pelo terminal. Neste artigo, vamos mostrar como instalar o Dockly no Linux, macOS e Windows (via WSL) e como começar a usá-lo. ## O que é o Dockly? Dockly é uma ferramenta de código aberto escrita em Node.js que usa a API do Docker para obter dados. Com ele, você pode: - Visualizar a lista de contêineres, seus status, imagens e volumes - Iniciar, parar e remover contêineres - Visualizar logs em tempo real - Acessar o terminal de um contêiner usando exec ## Requisitos Antes de instalar o Dockly, certifique-se de ter o seguinte instalado: - **Docker**: Versão 1.13 ou superior - **Node.js e npm**: De preferência a versão LTS mais recente Para verificar, execute: ```bash docker --version node -v npm -v ``` ## Instalação ### 1. Via npm (método recomendado) ```bash npm install -g dockly ``` Para verificar a instalação: ``` dockly --version ``` Para iniciar o Dockly: ``` dockly ``` O Dockly se conectará automaticamente ao socket padrão do Docker em /var/run/docker.sock. ### 2. Executar sem instalar (via npx) Se você não quiser instalar o Dockly globalmente: ``` npx dockly ``` Essa é uma boa opção para uso pontual. ## Instalação no Windows (via WSL) Para usuários do Windows, a melhor forma de usar o Dockly é por meio do **WSL** (Subsistema do Windows para Linux): - Instale o WSL e escolha uma distribuição (ex: Ubuntu) - Instale Node.js e Docker dentro do WSL - Certifique-se de que o docker.sock esteja acessível no WSL - Instale o Dockly: ```bash npm install -g dockly ``` ## Guia rápido de uso A navegação no Dockly é bem simples: - ↑/↓ — mover entre os contêineres - Enter — ver detalhes do contêiner - l— visualizar logs - e— executar terminal (exec) - s— iniciar contêiner - S— parar contêiner - d — deletar contêiner Pressione **? **na interface para ver todos os atalhos disponíveis. ## Parâmetros úteis de inicialização Você pode executar o Dockly com um DOCKER_HOST específico: ``` DOCKER_HOST=tcp://192.168.1.100:2375 dockly ``` Ou definir um caminho personalizado para o socket: ``` dockly --socketPath /path/to/docker.sock ``` ## Aviso de segurança Se você estiver usando o Docker por conexão TCP, certifique-se de protegê-la com TLS. O Dockly **não oferece suporte a autenticação**, portanto **não se conecte a APIs Docker desprotegidas**. ## Desinstalando o Dockly Para remover o Dockly: ```bash npm uninstall -g dockly ``` ## Conclusão O Dockly é uma ótima ferramenta para quem prefere o terminal e deseja acesso rápido e visual ao gerenciamento de contêineres Docker. Sua instalação simples, interface intuitiva e recursos poderosos o tornam uma adição valiosa ao seu fluxo de trabalho com Docker https://serverspace.com.br/support/help/o-que-e-uma-vpc-e-por-que-voce-precisa-de-uma.md Saiba o que é uma VPC (Nuvem Privada Virtual) e por que você precisa dela na nuvem. Explicação simples, casos de uso, segurança, isolamento e controle de tráfego — tudo o que você precisa saber sobre VPC, para iniciantes e… Ao lançar seu projeto na nuvem — seja um servidor web, um banco de dados ou um verdadeiro zoológico de microsserviços — é fundamental saber onde tudo isso vai "morar". É aí que entra a VPC — Virtual Private Cloud (Nuvem Privada Virtual). Não é apenas um termo bonito — **a VPC é a base da segurança, da escalabilidade e da gestão em qualquer ambiente de nuvem**. Vamos entender o que ela é, por que ela importa e quais problemas ela resolve. ## O que é uma VPC? Uma VPC é uma rede lógica isolada dentro de uma nuvem pública. Pense nela como o seu próprio pedaço da internet dentro da infraestrutura da Amazon, do Google ou da Microsoft, onde você controla quem se comunica com quem, quais sub-redes existem e como o roteamento é feito. Uma analogia simples: Uma VPC é como um datacenter virtual na nuvem. Você tem sua própria rede interna, seus "cômodos" (sub-redes), sua "porta de saída para a internet" (gateways) e fechaduras nas portas (firewalls e grupos de segurança). ## Por que você precisa de uma VPC? **1. Segurança** O principal: isolamento. Todos os seus recursos (instâncias EC2, bancos de dados, containers) ficam isolados de outros clientes da nuvem. Do lado de fora, você é invisível — a menos que escolha abrir as portas. Você pode configurar: - **Security Groups** (filtros no nível do recurso), - **Network ACLs** (filtros no nível da sub-rede), - **VPC Flow Logs** (monitoramento de tráfego), - **VPC Endpoints** (acesso a serviços da AWS sem passar pela internet pública). **2. Controle de rede** Você pode definir: - Faixas de IP (CIDR), - Quantidade e tipo de sub-redes (públicas ou privadas), - Regras de roteamento, - Conexões VPN e peering entre VPCs. **3. Integração** A VPC é a base sobre a qual muitos serviços se apoiam, como: - Kubernetes (EKS, GKE), - Funções serverless (Lambda, Cloud Functions), - Bancos de dados (RDS, Cloud SQL), - Machine learning, análise de dados e muito mais. ## Quais são os componentes de uma VPC? A seguir, os componentes básicos de uma VPC: | Componente | Descrição | | --- | --- | | Subnet | Uma sub-rede dentro da VPC, podendo ser pública (com acesso à internet) ou privada. | | Internet Gateway | Permite acesso à internet para recursos em sub-redes públicas. | | NAT Gateway | Permite que recursos em sub-redes privadas acessem a internet (somente saída). | | Route Tables | Definem regras de roteamento (ex: todo tráfego 0.0.0.0/0 vai para a internet). | | Security Groups / NACLs | Definem que tráfego é permitido entrar e sair. | | VPC Endpoints | Permitem acesso a serviços da nuvem sem sair da rede interna da VPC. | ## Exemplo Suponha que você está implantando um aplicativo web: - O frontend roda em uma sub-rede pública, acessível via navegador. - O backend e o banco de dados estão em uma sub-rede privada, acessível apenas internamente. - Você conecta um NAT Gateway para que o backend possa baixar atualizações da internet. - Você configura um Security Group para garantir que o banco de dados aceite conexões apenas do backend. Todas essas camadas fazem parte de uma única VPC. É a VPC que fornece controle, segurança e estabilidade. ## Onde posso alugar uma VPC? Você pode alugar uma [nuvem privada virtual (VPC)](https://serverspace.com.br/services/virtual-private-cloud.md) na plataforma Serverspace. Implante seu próprio ambiente isolado e seguro com total controle de rede, sem abrir mão das vantagens da nuvem pública — escalabilidade, disponibilidade e alta performance. ## Conclusão Uma VPC não é apenas mais uma sigla. Ela é um componente essencial de qualquer infraestrutura em nuvem. Ela te ajuda a: - **Garantir segurança,** - **Controlar o tráfego e o roteamento,** - **Escalar de forma eficiente,** - **Conectar sistemas internos e externos.** Se você está realmente levando a sério o lançamento de algo na nuvem, comece configurando uma VPC. Esse é o seu espaço digital — e você é o arquiteto chefe. https://serverspace.com.br/support/help/novidades-do-kali-linux-2024-4-e-como-instala-lo.md Aprenda a instalar o Kali Linux 2024.4 e confira as novidades desta versão. Guia completo disponível em Serverspace.com.br! Recentemente, os desenvolvedores da distribuição Kali Linux lançaram a nova versão 2024.4, repleta de novidades. A distribuição já está disponível no site oficial em vários formatos, tanto nas versões online quanto offline. ## Implantação e atualização do Kali 2024.4 Escolha a arquitetura de processador apropriada para o seu dispositivo. Em sistemas semelhantes ao Linux, isso pode ser verificado com o comando: ``` uname -a ``` No Windows, a informação semelhante pode ser obtida com o comando abaixo, prestando atenção à linha CsSystemType: ``` Get-ComputerInfo ``` Captura de tela nº 1 — Obter informações sobre a máquina Depois disso, baixe a distribuição escolhida e grave-a no meio de instalação usando dd ou Rufus. Em seguida, inicialize o sistema a partir dela via BIOS. Nos nossos materiais, você também pode encontrar [detalhes sobre como instalar o Kali Linux](https://serverspace.com.br/support/help/kali-linux-instalacao-e-configuracao-do-sistema-operacional/) a partir da mídia de instalação! Mas existe um caminho mais fácil: para ambientes de teste ou redes isoladas, você pode implantar o Kali Linux como VPS na nuvem da Serverspace. Para isso, acesse o painel de controle. No menu lateral, selecione a plataforma vStack ou VMware → Criar Servidor → Selecionar Distribuição → Preencher as demais configurações do VPS. Captura de tela nº 2 — Painel de criação de servidor Após isso, em menos de um minuto, o servidor estará implantado e pronto para uso! Se você já utiliza o Kali e deseja atualizá-lo, siga os comandos abaixo para baixar os pacotes disponíveis e fazer o upgrade completo do sistema: ```bash echo "deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware" sudo tee /etc/apt/sources.list sudo apt update && sudo apt -y full-upgrade cp -vrbi /etc/skel/. ~/ [ -f /var/run/reboot-required ] && sudo reboot -f ``` ## Vamos revisar agora as principais mudanças no SO. Histórico de alterações na nova versão: - Sistemas antigos de 32 bits estão se tornando obsoletos. Assim como Debian e Ubuntu, o Kali deixou de oferecer suporte à arquitetura i386, embora os pacotes ainda estejam disponíveis nos repositórios; - O kernel do Linux foi atualizado para a versão 6.11; - Foi corrigido um problema conhecido de vulnerabilidade nos algoritmos criptográficos DSA usados na geração de chaves. Agora, o OpenSSH 9.8p1 é instalado por padrão. O OpenSSH 7.5, com o nome de comando ssh1, foi mantido para compatibilidade com sistemas legados. Leve isso em consideração em soluções automatizadas; - A versão padrão do Python agora é a 3.12. Isso significa que não é mais possível instalar pacotes diretamente com pip, mesmo em ambientes virtuais criados previamente. O uso de pipx se torna obrigatório, pois ele automatiza a criação do virtualenv; - Foram adicionadas novas ferramentas para auditoria de segurança de servidores e endpoints. Ferramentas novas e atualizadas detectadas e publicadas nos repositórios oficiais: - Mssqlpwner – interagir com servidores MSSQL e assumir controle; - Sara – inspetor de segurança para RouterOS (by casterbyte); - Hexwalk – analisador e visualizador de dados hexadecimais; - Web-cache-vulnerability-scanner – ferramenta em Go para testar envenenamento de cache web (by Arszilla); - Chainsaw – busca forense rápida e análise de artefatos do Windows (by Arszilla); - Openssh-ssh1 – cliente SSH para o protocolo legado SSH1; - Xsrfprobe – kit avançado para auditoria e exploração de CSRF/XSRF; - Bloodyad – ferramenta de escalonamento de privilégios no Active Directory (by Arszilla); - Python-pipx – executa binários de pacotes Python em ambientes isolados; - Certi – ferramenta para solicitar certificados do ADCS e identificar padrões (by Arszilla); - Findomain – solução rápida para reconhecimento de domínios (by Arszilla); - Proximoth – detecção de vulnerabilidades relacionadas a ataques com quadros de controle (by TechnicalUserX); - Linkedin2username – cria listas de nomes de usuários com base em perfis do LinkedIn; - Zenmap – interface gráfica para o Nmap (agora não é mais necessário!). Este resumo cobre as principais mudanças da nova versão e pode impactar significativamente sua experiência com a distribuição. https://serverspace.com.br/support/help/kali-linux-instalacao-e-configuracao-do-sistema-operacional.md Aprenda a instalar e configurar o Kali Linux, o principal sistema operacional para testes de segurança. Siga nosso guia passo a passo para começar! Especialistas em segurança da informação utilizam diversas estratégias e táticas que descrevem os princípios e algoritmos de proteção de ativos. Um elo fundamental nessa cadeia são também as ferramentas que permitem automatizar e acelerar o trabalho desses profissionais. Uma delas é a distribuição Kali Linux — um sistema operacional que reúne conjuntos de utilitários voltados à aplicação de técnicas da MITRE ATT&CK. ## O que é o Kali Linux? Kali Linux é um sistema operacional da família *nix, baseado no kernel Linux de mesmo nome, que contém kits de ferramentas para testes de invasão em infraestrutura (pentest). Apesar de ter a fama de "sistema de hackers", seus utilitários são usados por profissionais de SOC, Threat Intelligence e Resposta a Incidentes para investigar infraestruturas de ataque normalmente utilizadas em cadeias de intrusão — e muito mais. Vamos começar do básico: acesse o [site oficial do Kali Linux](https://www.kali.org/get-kali/#kali-platforms) e escolha a forma mais adequada para instalar a imagem. Entre os diversos métodos de instalação, optaremos pelo clássico via ISO — que pode ser gravada em um pendrive e inicializada via BIOS, ou utilizada em uma máquina virtual. Captura de tela nº 1 — Imagem do Kali Após todas as etapas preparatórias, vamos iniciar! ## Instalando o Kali Linux Se você não possui recursos de hardware suficientes, é possível realizar essas ações em servidores poderosos na nuvem. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) para uso comum ou virtualizado. Captura de tela nº 2 — Criar servidor Na inicialização, seremos recebidos pela tela do bootloader, onde é possível escolher entre instalação gráfica e via terminal (CLI). A primeira é intuitiva e de fácil navegação, enquanto a segunda pode ser mais interessante de explorar, mesmo apresentando praticamente a mesma interface em modo texto. Vamos seguir pelas configurações padrão e escolher o país e o idioma do teclado. Todo o processo de instalação será dividido em blocos básicos de menu, aos quais é possível retornar a qualquer momento: Captura de tela nº 3 — Bootloader A primeira configuração da nova instalação será a criação do usuário. Vamos definir nome, login e senha para autenticação. Captura de tela nº 4 — Criar usuário Em seguida, selecione o fuso horário, o shell em que o usuário irá trabalhar e o conjunto de pacotes a instalar. Há três opções disponíveis: as 10 ferramentas principais, pacote padrão e pacote avançado. A velocidade da instalação dependerá da qualidade da sua conexão com a internet. Captura de tela nº 5 — Pacotes de software Caso a rede ainda não esteja configurada, pressione a tecla Esc algumas vezes para retornar ao menu e acessar a configuração de rede. Existem duas opções: automática via serviço DHCP ou manual. No modo automático, tudo será configurado sem necessidade de intervenção. Já no modo manual, será necessário informar endereço IP, máscara e gateway. Captura de tela nº 6 — Configurações de rede Depois disso, configure o armazenamento em disco e escolha o modo de particionamento. Por padrão, há vários esquemas disponíveis: volumes lógicos simples, volumes com LVM e volumes com LVM criptografado. Captura de tela nº 7 — Armazenamento em disco É recomendável optar pela segunda opção com LVM, pois ela permite gerenciar o espaço em disco de forma mais flexível. O carregador de inicialização (bootloader) é parte crítica do processo, pois é ele quem inicia o sistema operacional após a BIOS. Você pode escolher o bootloader que preferir, mas o Grub é o mais estável e recomendado. Captura de tela nº 8 — Instalação do bootloader Aguarde até que todas as dependências e pacotes necessários sejam completamente instalados. Captura de tela nº 9 — Instalação de software Após a conclusão, a máquina será reiniciada e o shell será carregado. Use os dados da conta criados anteriormente para acessar — e pronto, o Kali Linux estará pronto para uso! Captura de tela nº 10 — Terminal (Shell) https://serverspace.com.br/support/help/como-gerenciar-dispositivos-e-discos-no-linux.md Aprenda a gerenciar dispositivos e discos no Linux com este guia completo. Descubra comandos e ferramentas para particionar, formatar, montar e manter dispositivos de armazenamento de forma eficiente no seu sistema Linux. Por que, quando conecto um disco, ele não funciona no sistema operacional, um pendrive não é lido pelo sistema? E a interface de rede se recusa a aparecer na lista de dispositivos? Como conectar discos e configurar seu funcionamento ou permitir o uso de uma determinada lista de dispositivos? Todas essas e outras perguntas vamos considerar a resposta, analisando a arquitetura e o princípio de funcionamento com dispositivos no Linux. Após este tutorial, você será capaz de configurar, gerenciar o estado e a permissão dos dispositivos no seu sistema por conta própria. ## Como funciona o mapeamento de discos no Linux? Vamos dividir o ciclo completo de montagem de um disco no Linux, a fim de entender como ele funciona no sistema. E o que pode ser feito para resolver os problemas que surgem? Captura de tela nº 1 — Esquema Conectamos fisicamente ou virtualmente o disco ao nosso sistema, e então as informações sobre o novo dispositivo chegam ao kernel. O kernel seleciona um driver para seu funcionamento e coleta informações sobre o dispositivo. No Linux, qualquer dispositivo é um "arquivo", e isso significa que o kernel, após coletar as informações, grava os dados em um arquivo na pasta **/dev**. Mas este não é um arquivo comum de descrição do dispositivo conectado, e sim um ponto de acesso ao disco! Os programas podem abrir, ler, gravar e manipular esses arquivos de dispositivo usando chamadas de sistema padrão como **open()**, **read()**, **write()** e **ioctl()**. Essas chamadas são passadas através do arquivo de dispositivo para o driver do dispositivo, que então se comunica com o hardware através do kernel. O driver do dispositivo converte as chamadas do sistema em comandos de hardware, que o kernel passa para o dispositivo. O retorno do dispositivo também passa pelo driver de volta ao software. Depois disso, o kernel cria o evento uevents e o controle passa para o Udev, que é um gerenciador de dispositivos com um conjunto de regras preparado. Estes são usados para alterar o nome do dispositivo, direitos de acesso do usuário, bloqueio e scripts ao conectar ou desconectar dispositivos. Se houver critérios que exigem alterações, o Udev irá até o diretório **/dev** e executará as ações necessárias. ## Como conectar um drive ao Linux? Todas as etapas deste tutorial podem ser realizadas em [servidores em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) poderosos. A Serverspace oferece servidores VPS isolados para uso comum e virtualizado. Captura de tela nº 2 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes! Agora vamos olhar a situação na prática, precisamos montar um disco e dar a ele um nome especial, proibir a conexão de dispositivos com um determinado UUID e executar um script para automatizar nossas tarefas. Isso pode ser qualquer coisa: particionar um novo disco, rotacionar arquivos antigos ou notificar o administrador. Vamos conectar o disco e fazer alguma configuração básica: particionar e definir o sistema de arquivos. Use o comando lsblk para examinar os discos montados: ``` lsblk ``` Captura de tela nº 3 — Novo dispositivo O novo disco aparece como vdb sem volumes lógicos ou particionamento. Para começar a usá-lo, é necessário criar uma tabela e volumes, e então selecionar um sistema de arquivos para a partição lógica que será suportada pelo sistema operacional. Depois disso, monte o disco no sistema operacional. Para fazer isso, vá até o utilitário fdisk e digite o comando: ``` fdisk /dev/vdb ``` Captura de tela nº 4 — Particionamento de disco Por padrão, uma tabela MBR é criada para o disco, que pode ser sobrescrita e é preferível usar particionamento GPT em seu lugar. Para isso, especifique a letra g, após isso a tabela será recriada e o disco será reparticionado. Para criar um novo volume na tabela atual, pressione n para definir seus parâmetros: Captura de tela nº 5 — Criar partição lógica Selecione o tipo da partição e especifique o primeiro e o último setor para criar um volume. Depois disso veremos o resultado de que um volume de 10 GB foi criado, resta escrever as alterações e salvá-las com o comando w. Para que o disco seja processado pelo sistema operacional, é necessário inicializar o sistema de arquivos para o volume. Para isso, use o utilitário mkfs.ext4: ``` mkfs.ext4 /dev/vdb1 ``` Captura de tela nº 6 — Criar sistema de arquivos Para montar um disco temporariamente, podemos usar o comando mount, onde devemos primeiro especificar o próprio disco e o ponto de montagem. Mas esta solução será válida até a reinicialização, para montar um novo disco automaticamente cada vez — vá para a pasta /etc/fstab e faça alterações: ``` nano /etc/fstab ``` ``` /dev/vdb1 /home ext4 defaults,noexec 0 2 ``` Captura de tela nº 7 — Criar registro de montagem Para inicializar um drive, você precisa especificar seu UUID ou caminho direto, no nosso caso /dev/vdb1. Para ver os discos atuais, digite lsblk. Captura de tela nº 8 — Resultado da montagem Ótimo, o drive está montado e pronto para uso! Agora, ele passará pela etapa de montagem em cada reinicialização, no entanto, e se for necessário renomeá-lo? Ou permitir que apenas um número limitado de pessoas o utilize? ## Como gerenciar o drive e usar o udev? Para gerenciar dispositivos de bloco e simbólicos, use o utilitário udev, que se comunica com o kernel através de eventos uevent. Todas as configurações para os dispositivos são feitas em arquivos de configuração para cada dispositivo separadamente. Para criar um link simbólico ou restringir o acesso, você precisa conhecer os parâmetros únicos do disco a ser pesquisado: ``` udevadm info -a -p /sys/block/vdb ``` Captura de tela nº 9 — Atributos Para escrever uma regra é necessário encontrar um valor único para um disco, neste caso é ATTR{serial} com um certo número. Para escrever uma regra, vamos até a pasta rules.d, onde todos os algoritmos previamente escritos para o funcionamento com cada dispositivo são armazenados. Vamos criar uma regra chamada: ``` nano 98-local.rules ``` Vamos escrever a seguinte sintaxe, que primeiro encontrará o dispositivo correto e depois aplicará as configurações das regras udev: ``` SUBSYSTEM=="block", ID_SERIAL="BHYVE-2C94-9746-08F9", SYMLINK+="NewDisk" ``` Depois salve o arquivo e reinicie o serviço udev: ```bash systemctl daemon-restart && systemctl restart systemd-udevd ``` E verifique os parâmetros relevantes através do comando: ``` udevadm test /dev/vdb1 ``` Captura de tela nº 10 — Testar regras No arquivo de regras do udev, você pode usar diferentes condições de validação, como: - SUBSYSTEM: Verifica o subsistema do dispositivo. Exemplo: SUBSYSTEM=="block" (o dispositivo pertence ao subsistema de blocos). - KERNEL: Verifica o nome do dispositivo especificado pelo kernel. Exemplo: KERNEL=="sd*" (o nome do dispositivo começa com "sd"). - ATTR{attribute}: Verifica o atributo do dispositivo. Exemplo: ATTR{size}=="1024" (o atributo de tamanho do dispositivo é 1024). - ENV{environment_variable}: Verifica uma variável de ambiente. Exemplo: ENV{ID_SERIAL}=="1234567890" (o número de série do dispositivo é 1234567890). - DRIVER: Verifica o driver do dispositivo. Exemplo: DRIVER=="usb-storage" (o dispositivo usa o driver usb-storage). - ACTION: Verifica a ação realizada no dispositivo. Exemplo: ACTION=="add" (o dispositivo foi adicionado) ou ACTION=="remove" (o dispositivo foi removido). - PROGRAM: Executa um comando e verifica o resultado. Exemplo: PROGRAM="/path/to/script" (executa um script no caminho especificado). - RESULT: Verifica o resultado da execução do programa. Exemplo: RESULT=="1" (o resultado da execução do programa é 1). - TEST: Verifica a existência de um arquivo ou diretório. Exemplo: TEST=="/path/to/file" (verifica a existência de um arquivo no caminho especificado). Todos os atributos acima podem ser usados para filtrar o dispositivo. Também para cada um deles são usados elementos lógicos, por exemplo == ou != na condição. Os parâmetros de ação são então especificados: - SYMLINK+=: Cria uma referência simbólica ao dispositivo. Exemplo: SYMLINK+="mydevice" (cria um link simbólico /dev/mydevice). - NAME=: Atribui um nome ao dispositivo. Exemplo: NAME="mydisk" (atribui o nome do dispositivo como mydisk). - OWNER=: Define o proprietário do dispositivo. Exemplo: OWNER="username" (define o proprietário do dispositivo como username). - GROUP=: Define o grupo do dispositivo. Exemplo: GROUP="disk" (define o grupo do dispositivo como disk). - MODE=: Define os direitos de acesso do dispositivo. Exemplo: MODE="0660" (define os direitos de acesso como 0660). - RUN+=: Executa o programa ou script especificado. Exemplo: RUN+="/path/to/script" (executa o script no caminho especificado). - IMPORT=: Importa variáveis de ambiente do programa ou arquivo especificado. Exemplo: IMPORT{program}="/path/to/program" (importa variáveis de um programa). - OPTIONS=: Define opções adicionais para o dispositivo. Exemplo: OPTIONS+="last_rule" (especifica que esta é a última regra para este dispositivo). - ATTR{attribute}=: Define o valor do atributo do dispositivo. Exemplo: ATTR{power/control}="auto" (define o valor do atributo power/control como "auto"). - ENV{environment_variable}=: Define o valor de uma variável de ambiente. Exemplo: ENV{UDISKS_IGNORE}="1" (define a variável de ambiente UDISKS_IGNORE como 1). - TEST=: Verifica a existência de um arquivo ou diretório. Exemplo: TEST=="/path/to/file" (verifica a existência de um arquivo no caminho especificado). https://serverspace.com.br/support/help/como-escolher-uma-configuracao-de-servidor-em-nuvem-para-suas-necessidades.md Saiba como escolher a melhor configuração de servidor em nuvem para suas necessidades. Guia passo a passo com exemplo do Serverspace: vCPU, RAM, armazenamento, dimensionamento e muito mais. Os servidores em nuvem permitem escalar sua infraestrutura rapidamente, sem a necessidade de investir em hardware físico. No entanto, o desempenho depende diretamente da escolha correta da configuração para a tarefa específica. Neste artigo, explicaremos como fazer isso usando a plataforma **Serverspace** como exemplo. ## Passo 1: Defina o propósito do seu servidor Antes de escolher o processador, a memória RAM e o armazenamento, é importante entender **o que exatamente você pretende executar**: | Finalidade | Recursos aproximados | | --- | --- | | Ambientes de teste, hospedagem de sites | 1–2 vCPU, 1–2 GB de RAM | | Aplicações web com carga moderada | 2–4 vCPU, 4–8 GB de RAM | | Bancos de dados, sistemas corporativos | 4–8 vCPU, 8–32 GB de RAM | | Machine learning, análise de dados | 8+ vCPU, 32+ GB de RAM, SSD NVMe | ## Passo 2: Escolha o processador (vCPU) As CPUs virtuais (vCPUs) são responsáveis por todo o processamento. Quanto mais complexas forem suas tarefas, mais vCPUs serão necessárias. Na plataforma **Serverspace**, você pode escolher exatamente a quantidade de vCPUs desejada — de 1 a 64 núcleos — com uma tarifação flexível. Isso é especialmente útil para escalar gradualmente. **Recomendações**: - Para CMS (WordPress, Joomla) e APIs simples: 1–2 vCPU são suficientes. - Para frameworks como Node.js, Laravel ou Django: pelo menos 2 vCPU. - Para bancos de dados como PostgreSQL ou MySQL: 4 vCPU ou mais. ## Passo 3: Escolha a quantidade de memória RAM A RAM afeta diretamente o desempenho: quanto mais usuários e processos ativos, mais memória será necessária. **Exemplos**: - **2 GB de RAM**: adequado para um site pequeno. - **4–8 GB**: ideal para aplicações com dezenas de usuários. - **16+ GB**: necessário para grandes bancos de dados ou aplicações que usam cache em memória. No **Serverspace**, você pode configurar a RAM em incrementos a partir de 512 MB — evitando pagar por recursos desnecessários. ## Passo 4: Escolha o tamanho do armazenamento **Dicas**: - Pelo menos 20 GB de SSD para o sistema operacional e software básico. - 50 GB ou mais para armazenar arquivos, logs e bancos de dados. ### Passo 5: Considere as características da rede e a localização do data center O **Serverspace** oferece diversas localizações de data centers: Europa, América do Norte e Ásia. Escolha a localização mais próxima dos seus usuários para reduzir a latência. Com largura de banda de até 1 Gbps e tarifação flexível de tráfego, você pode adaptar o servidor às suas necessidades com facilidade. ## Passo 6: Não se esqueça de escalabilidade e backups Um dos principais motivos para migrar para a nuvem é a capacidade de escalar rapidamente. Com o painel de controle da **Serverspace**, é possível: - Alterar a configuração do servidor em tempo real; - Criar snapshots e backups; - Automatizar o provisionamento de novas instâncias usando API ou Terraform. ## Conclusão Escolher a configuração ideal de servidor em nuvem não é apenas uma questão de desempenho — também envolve custo-benefício. Comece com uma configuração mínima e funcional, e escale conforme seu projeto cresce. Com o **Serverspace**, esse processo é flexível, rápido e fácil de gerenciar. https://serverspace.com.br/about/blog/historia-detalhada-do-desenvolvimento-da-tecnologia-em-nuvem.md Mergulhe em uma exploração detalhada da história e evolução da tecnologia em nuvem. Descubra como essa tecnologia transformadora, que antes era exclusividade dos militares e do meio acadêmico, hoje sustenta todo o nosso ecossistema digital global. Muitas pessoas nascidas no século XXI acreditam que as tecnologias de nuvem surgiram durante a sua geração. Na verdade, a história das "nuvens" já se estende por pelo menos seis décadas, com períodos de estagnação e fases de rápido desenvolvimento. A base para elas foi estabelecida, como aconteceu com várias outras inovações tecnológicas, pelos militares. Mas, afinal, em que circunstâncias surgiram as tecnologias de nuvem e como elas se desenvolveram? É sobre isso que trataremos no nosso artigo de hoje. ## Da inovação militar à tecnologia moderna: o nascimento da computação em nuvem Exatamente sessenta anos atrás, em 1963, a Agência de Projetos de Pesquisa Avançada (DARPA), atuando, como se sabe, nos interesses do Departamento de Defesa dos EUA, concedeu uma bolsa de dois milhões de dólares ao Instituto de Tecnologia de Massachusetts para um desenvolvimento bastante interessante. Ele recebeu o nome de Project on Mathematics and Computing, abreviado como Project MAC, embora, é claro, nada tivesse a ver com "Macs" (no sentido moderno). O objetivo dos pesquisadores, cujo grupo era liderado pelos cientistas da cibernética Robert M. Fano e Fernando Jose Corbató, era desenvolver um sistema de compartilhamento de tempo fundamentalmente novo, projetado para organizar o acesso compartilhado aos recursos de computadores eletrônicos por vários usuários remotos. A razão para o interesse por tais tecnologias por parte do departamento militar é, em geral, óbvia: os computadores na época eram caros, e havia relativamente poucos deles, enquanto a necessidade por capacidade computacional crescia rapidamente. Foto do Museu do MIT, Laboratório de Ciência da Computação, início dos anos 60 O Project MAC foi baseado no sistema experimental Corbató Compatible Time-Sharing System (CTSS), criado por Fernando Jose Corbató alguns anos antes, que permitia que usuários de vários terminais conectados a um computador acessassem o mesmo programa executado nessa máquina. O código do CTSS foi reformulado e aprimorado, como resultado do qual, em seis meses, 200 usuários em dez laboratórios diferentes do MIT conseguiram se conectar a um único computador e executar programas centralmente. Esse evento pode ser considerado um ponto de partida na história do desenvolvimento das tecnologias em nuvem, já que, no âmbito desse experimento, foi implementado o principal princípio subjacente — um modo multiusuário de acesso sob demanda a recursos computacionais compartilhados. ## UNIX, Multics e Plan 9: marcos cruciais na tecnologia em nuvem Em 1969, com base no projeto MAC, os Laboratórios Bell e a General Electric criaram um sistema operacional de compartilhamento de tempo multiusuário chamado Multics (Multiplexed Information and Computing Service), que foi baseado nos princípios estabelecidos pelos cientistas do MIT. Além da organização de acesso a aplicativos, o Multics oferecia compartilhamento de arquivos, bem como implementava algumas funções de segurança e proteção de dados contra danos acidentais. Foi com base nesse sistema que Ken Thompson criou a primeira versão do UNIX em novembro de 1971, que por muitos anos se tornou o sistema operacional multiusuário mais popular do mundo. Ken Thompson (atrás do teclado PDP-11) e Dan Ritchie — desenvolvedores do UNIX Pode-se dizer que, desde o surgimento do UNIX, houve um período de calmaria na história do desenvolvimento da tecnologia em nuvem, já que esse sistema atendia plenamente aos requisitos tanto de inúmeras empresas comerciais quanto de instituições educacionais onde era utilizado no processo de ensino. A calmaria durou exatamente até que os próprios Laboratórios Bell decidiram substituir o UNIX por um sistema operacional mais moderno, focado principalmente no compartilhamento de recursos de hardware e software. Essa decisão foi mais um passo rumo ao desenvolvimento das tecnologias modernas de nuvem. O novo sistema Plan 9, desenvolvido por uma equipe de criadores do UNIX liderada por Ken Thompson, possibilitou o trabalho completo com arquivos, sistemas de arquivos e dispositivos, independentemente de em qual computador conectado à rede eles estivessem fisicamente localizados. De fato, esse sistema operacional transformou toda a rede de computadores em um único sistema computacional multiusuário global com recursos compartilhados, aos quais se tinha acesso sob demanda e de acordo com os direitos dos usuários — ou seja, na prática, em uma espécie de "nuvem" moderna. Equipe de desenvolvimento do Plan 9, Bell Labs ## Virtualização e a evolução dos sistemas em nuvem O próximo passo importante na evolução dos sistemas em nuvem foi o surgimento das máquinas virtuais. A ideia da virtualização surgiu logo após o aparecimento dos sistemas de compartilhamento de tempo multiusuário. Em meados dos anos 60, foram realizados experimentos com tecnologias que podem ser classificadas como os primeiros hipervisores no Centro de Pesquisa Thomas J. Watson da IBM em Yorktown Heights, onde foi desenvolvido o sistema experimental IBM M44/44X. Com base no computador IBM 7040, os pesquisadores criaram vários emuladores de computador independentes nos quais instâncias próprias de programas podiam ser iniciadas e executadas em paralelo em seus próprios ambientes isolados. IBM M44/44X Na mesma época, outros departamentos da IBM estavam experimentando com a máquina IBM CP-40: um computador IBM System/360 Model 40 especialmente modificado. Para esse computador, foram desenvolvidos contêineres de hardware e software isolados, nos quais podia operar um sistema operacional com compartilhamento de tempo e memória virtual chamado CMS (Cambridge Monitor System). Esse sistema operacional foi criado por funcionários do Centro de Pesquisa da IBM em Cambridge (CSC) em estreita colaboração com pesquisadores do Instituto de Tecnologia de Massachusetts que trabalhavam no projeto MAC. Essas máquinas virtuais eram chamadas de "pseudo-computadores" em Cambridge, e o principal objetivo do projeto era implementar a colaboração de vários usuários com memória virtual. IBM System/360 Model 40 Máquinas virtuais de aplicação, ou os chamados ambientes de execução gerenciados (MREs), foram desenvolvidos paralelamente, oferecendo uma abstração de alto nível para várias linguagens de programação. Sua principal tarefa era fornecer um ambiente de programação independente de plataforma que abstraísse o hardware ou o sistema operacional subjacente e permitisse que o aplicativo fosse executado da mesma forma em uma máquina com qualquer configuração de hardware. Tal "máquina virtual" serve apenas a um processo, é executada como um aplicativo normal dentro do sistema operacional principal e termina quando esse processo é encerrado. O surgimento do primeiro MRE remonta a 1966 — essa tecnologia foi utilizada pelo compilador de código objeto BCPL. Posteriormente, o uso de código objeto, que mais tarde pode ser traduzido em código executável para várias arquiteturas de hardware, foi adotado por compiladores de outras linguagens de alto nível. Ambientes de execução gerenciados se desenvolveram rapidamente, e o auge de sua evolução é considerado o surgimento da Máquina Virtual Java. Isso, por sua vez, levou os Bell Labs a suspender o desenvolvimento do projeto Plan 9 e começar a desenvolver o sistema operacional Inferno, no núcleo do qual era usada a máquina virtual Dis. O sistema operacional Inferno podia fazer tudo o que o Plan 9 fazia, mas o uso da virtualização elevou o compartilhamento de recursos de hardware e software a um novo patamar. Os desenvolvedores presumiram que o Inferno seria capaz de operar plenamente em diversos dispositivos e plataformas de hardware sem adaptação adicional, executando os mesmos aplicativos e oferecendo aos usuários a mesma funcionalidade. Na prática, essa plataforma, criada em 1996, tornou-se o primeiro sistema operacional verdadeiramente baseado em nuvem da história, ao menos em sua arquitetura. Embora não tenha encontrado ampla aplicação, o Inferno estabeleceu uma base sólida para o desenvolvimento futuro das tecnologias em nuvem distribuídas. A origem do termo "computação em nuvem" e os experimentos da Apple Acredita-se que o termo "cloud computing" tenha aparecido pela primeira vez em 1996 na documentação interna da Compaq. Ele era usado para se referir ao processamento de dados distribuído em redes locais, embora alguns pesquisadores acreditem que ele tenha surgido muito antes, em diversos artigos acadêmicos. Em particular, a revista Computerworld mencionou em uma de suas publicações que a expressão "cloud computing" já era usada nos anos 60 por J. C. R. Licklider, o primeiro diretor do departamento de Tecnologia de Processamento da Informação da ARPA. Joseph Carl Robnett Licklider Uma certa contribuição para o desenvolvimento das tecnologias em nuvem foi feita pela Apple, que lançou o projeto Paradigm em 1989. Como parte desse projeto, planejava-se desenvolver um sistema operacional fundamentalmente novo, capaz de distribuir uma carga computacional típica entre vários dispositivos operando simultaneamente na rede. A principal plataforma para esse sistema operacional seriam os computadores pessoais de bolso, que naquela época ainda não tinham grande poder computacional, mas eram considerados o vetor mais promissor para o desenvolvimento da tecnologia computacional. Dentro da Apple, o projeto não recebeu o devido apoio do CEO John Sculley, então logo foi criada uma empresa separada — a General Magic — para seu desenvolvimento, e o sistema operacional recebeu o nome de trabalho Magic Cap. A interface desse sistema utilizava a metáfora de um prédio: por exemplo, um calendário e um cliente de e-mail podiam ser encontrados em um "escritório", enquanto jogos e outros entretenimentos ficavam em uma "sala de estar". Para o desenvolvimento de aplicativos de usuário, era usada a linguagem Magic Script, especialmente criada pela General Magic: um dialeto orientado a objetos de C. Infelizmente, o sistema operacional distribuído Magic Cap não teve continuidade, mas várias de suas ideias e conceitos foram utilizados na arquitetura do Apple Newton, e muito mais tarde foram refletidos no iOS. Interface do Magic Cap Hoje em dia, é praticamente impossível imaginar o cenário global de TI sem as "nuvens": os [serviços em nuvem](https://serverspace.com.br/services/cloud-servers.md) permitem aos clientes não apenas gerenciar infraestrutura com flexibilidade, economizar em equipamentos, backup e suporte técnico, mas também acessar uma enorme quantidade de serviços, aplicativos e dados de qualquer lugar do mundo. Ao mesmo tempo, todas as capacidades modernas das tecnologias em nuvem se baseiam em três pilares fundamentais: o compartilhamento de recursos, a virtualização e a possibilidade de acesso remoto a esses recursos via Internet. É notável que todos esses três componentes tenham se originado no início dos anos 60 nos laboratórios de pesquisa do MIT, da IBM, dos Bell Labs e de outras empresas de tecnologia, muitas das quais foram financiadas pela ARPA. O nível tecnológico atual, que em 1963 pareceria uma fantasia completa para os cientistas, é, em essência, apenas o desenvolvimento lógico da base científica e técnica estabelecida há 60 anos. https://serverspace.com.br/about/blog/vps-e-vds-qual-e-a-diferenca-e-por-que-isso-nao-e-tao-importante-assim.md O que são VPS e VDS, seus prós e contras, existe diferença entre eles, qual é a melhor escolha? O que são VPS e VDS? São soluções versáteis para hospedar sites, aplicativos e serviços corporativos na nuvem. No entanto, muitos iniciantes ficam confusos ao escolher um provedor: qual é a diferença entre VPS e VDS, e essa diferença realmente importa? Se você está nesse grupo, não se preocupe — você não está sozinho. Até mesmo profissionais experientes em virtualização confundem esses termos. Vamos entender o que são VPS e VDS, quais são as diferenças e por que optar por um servidor virtual. ## O que são VPS e VDS? Vamos ao essencial: os termos [VPS (Servidor Virtual Privado – Virtual Private Server)](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) e VDS (Servidor Virtual Dedicado – Virtual Dedicated Server) se referem a um servidor virtual criado a partir de um servidor físico, com recursos dedicados e acesso root. Como os serviços têm fundamentos muito parecidos, surge a confusão. E isso se agrava com o fato de que diferentes provedores definem os termos de formas diferentes: alguns dizem que são sinônimos e que a diferença está apenas na tradução, outros entram em detalhes técnicos sobre os métodos de virtualização, e há ainda quem associe VDS à compra de um servidor físico (embora o "V" signifique Virtual!). ## Qual é a diferença entre VPS e VDS? VPS é quando um servidor físico potente é dividido em várias máquinas virtuais. Cada cliente recebe uma parte isolada dos recursos — CPU, memória, armazenamento. No mesmo hardware, podem funcionar dezenas ou até centenas de servidores virtuais, cada um com seu sistema operacional e configurações próprias. Já o VDS também é uma máquina virtual, mas com virtualização total dos recursos do servidor físico, dedicados exclusivamente a um único cliente. Ou seja, tudo o que o VPS oferece, mas sem "vizinhos" dividindo os recursos. O uso de VDS é comum em setores como governo, bancos, seguradoras e instituições de saúde, onde normas internas ou exigências de segurança proíbem o uso de recursos compartilhados. A diferença entre VPS e VDS existe, mas no cenário atual de serviços em nuvem ela se tornou irrelevante. Hoje, os provedores oferecem, na prática, um serviço de VPS — um servidor virtual com recursos isolados, liberdade total de configuração e escalabilidade rápida para qualquer necessidade. Para a grande maioria dos usuários, é exatamente disso que precisam: um servidor isolado, onde possam escolher o sistema operacional, instalar qualquer software, configurar a segurança e escalar conforme a demanda. ### Por que todos migraram para VPS? Desde que a virtualização se consolidou nas práticas de TI corporativas, cada vez mais empresas abandonaram o modelo on-premise em favor de servidores virtuais. E isso é totalmente lógico: o aluguel de VPS oferece os mesmos recursos que servidores físicos, com mais flexibilidade, escalabilidade simplificada e redução de custos com infraestrutura. Escalabilidade flexível Diferente de um servidor físico, com recursos fixos, o VPS oferece liberdade — você pode aumentar ou diminuir CPU, memória ou disco a qualquer momento. Não é preciso pagar por excesso nem temer falta de capacidade. Tudo se ajusta às demandas do projeto — de um site simples até um serviço robusto. Controle total e acesso root Ao contrário da hospedagem compartilhada, que impõe limites pela interface padrão, o VPS oferece acesso root completo. Isso significa que você escolhe e configura o sistema operacional, instala os aplicativos que quiser, define o ambiente e gerencia o servidor como preferir. Endereço IP exclusivo Cada VPS recebe um endereço IP próprio. Isso é fundamental para a segurança e a estabilidade dos serviços. Por exemplo, ao lançar um site, ele terá seu IP exclusivo — sem compartilhamento com dezenas de projetos alheios, como acontece no hosting compartilhado. Isso é vantajoso tanto para SEO quanto para serviços de e-mail. Isolamento e segurança Seu servidor é completamente isolado de outras máquinas virtuais. Nenhum vizinho pode interferir no seu desempenho ou acessar seus dados. Tudo o que acontece dentro do VPS está sob o seu controle. Sem limitações Quer hospedar vários sites, bancos de dados, servidor de e-mail ou VPN? Sem problemas. Tudo depende da configuração que você escolher. Você define como os recursos serão usados, sem se adaptar a limites rígidos. ## O VPS é especialmente útil para: - Projetos com alto tráfego; - [Lojas virtuais](https://serverspace.com.br/solutions/cloud-for-ecommerce.md) que superaram o hosting compartilhado; - Hospedagem de múltiplos sites e bancos de dados; - Implantação de serviços corporativos com recursos garantidos; - Criação de ambientes de teste ou produção; - Lançamento de servidores de e-mail ou VPN. Não importa se você está lançando um site do zero ou migrando serviços corporativos para a nuvem — o VPS oferece o equilíbrio ideal entre custo, desempenho e controle. Por isso é utilizado tanto por startups quanto por grandes corporações. Quer aproveitar todos os benefícios de um servidor virtual sem complicações e limitações? No Serverspace você pode alugar um VPS com configuração flexível, software pré-instalado e ativação em menos de um minuto. Experimente e veja como é prático. https://serverspace.com.br/support/help/o-que-e-infraestrutura-como-codigo-iac-e-por-que-ela-e-necessaria.md Deseja gerenciar sua infraestrutura de forma rápida, segura e sem erros? Saiba como a Infraestrutura como Código (IaC) ajuda a automatizar processos, acelera o dimensionamento e leva seus negócios para o próximo nível. No mundo atual, infraestrutura não se resume apenas a servidores e redes — é também o código que a define e gerencia. É aqui que surge o conceito de **Infrastructure as Code (IaC)** — um método de gerenciamento de infraestrutura usando ferramentas de software. Em vez de configurar servidores manualmente, os engenheiros agora escrevem códigos que automatizam a criação, a configuração e a manutenção da infraestrutura. ## O que é Infrastructure as Code? **Infrastructure as Code** é a prática de definir a infraestrutura através de scripts ou arquivos de configuração declarativos. Com o IaC, é possível: - **Implantar máquinas virtuais,** - **Configurar componentes de rede,** - **Instalar e configurar aplicações,** - **Gerenciar bancos de dados e outros recursos.** Tudo isso sem a necessidade de acessar servidores manualmente ou interagir com painéis de provedores de nuvem. Resumidamente, o IaC permite gerenciar a infraestrutura da mesma forma que o código de aplicações: armazenando em repositórios, rastreando mudanças e aplicando atualizações automaticamente. ## Por que usar IaC? ### 1. **Automação rápida** Com o IaC, a implantação de servidores e serviços acontece em minutos — em vez de horas ou dias. Um único script pode levantar toda uma arquitetura. ### 2. **Repetibilidade garantida** Executar o mesmo código gera sempre a mesma infraestrutura. Essa consistência é essencial para testar, implantar e escalar sistemas. ### 3. **Controle de versões e transparência** Armazenar o código da infraestrutura em sistemas como o Git permite: - Rastrear todo o histórico de alterações, - Saber quem modificou o quê e quando, - Reverter facilmente para versões anteriores em caso de problemas. ### 4. **Redução de erros humanos** A automação minimiza falhas que costumam acontecer em configurações manuais de servidores. ### 5. **Facilidade de escalabilidade** Com a infraestrutura descrita em código, adicionar novos recursos é simples — basta ajustar ou duplicar partes do código. ### 6. **Integração com práticas DevOps** O IaC se encaixa perfeitamente nos fluxos de trabalho DevOps, permitindo pipelines completos de CI/CD tanto para aplicações quanto para infraestrutura. ## Principais ferramentas de IaC - **Terraform** — uma das ferramentas mais populares para gerenciar infraestrutura em vários provedores de nuvem. - **Ansible** — solução focada em configuração e gerenciamento automático de servidores. - **Pulumi** — permite escrever infraestrutura como código usando linguagens como Python ou TypeScript. ## Conclusão Infrastructure as Code transforma profundamente a maneira como gerenciamos sistemas, tornando os processos mais rápidos, seguros e transparentes. O IaC ajuda empresas a economizar tempo, reduzir riscos e acelerar a entrega de produtos. Se você busca uma infraestrutura confiável e flexível — é hora de conhecer e adotar o IaC. ## FAQ sobre Infrastructure as Code - **Quais problemas o IaC resolve?** O IaC elimina erros de configuração manual, acelera implantações e garante consistência entre ambientes. - **Preciso ser desenvolvedor para usar IaC?** Não necessariamente. Embora ter familiaridade com código ajude, muitas ferramentas de IaC usam linguagens declarativas (como YAML ou HCL) acessíveis até para não programadores. - **IaC é apenas para nuvem?** Não. O IaC pode gerenciar tanto infraestrutura em nuvem quanto ambientes locais ou híbridos. - **Como o IaC melhora a segurança?** Ao transformar infraestrutura em código, é possível rastrear mudanças via controle de versão, realizar auditorias automáticas de segurança e garantir políticas consistentes. https://serverspace.com.br/support/help/o-que-e-vpc-e-por-que-preciso-dela.md Saiba o que é VPC (Virtual Private Cloud) e por que você precisa dela na nuvem. Explicação simples, casos de uso, segurança, isolamento e controle de tráfego - tudo o que você precisa saber sobre VPC para iniciantes e profissionais. Quando você lança seu projeto na nuvem — seja um servidor web, um banco de dados ou um zoológico inteiro de microsserviços — você precisa saber onde tudo isso vai viver. É aí que entra o VPC — Virtual Private Cloud (Nuvem Privada Virtual). Não é apenas um termo sofisticado — é a base da segurança, escalabilidade e gerenciamento em qualquer ambiente de nuvem. Vamos entender o que é, por que é importante e quais problemas ele resolve. ## O que é um VPC? O VPC é uma rede lógica isolada dentro de uma nuvem pública. Pense nele como seu pedaço da internet dentro da infraestrutura da Amazon, Google ou Microsoft, onde você controla quem pode se comunicar com quem, quais sub-redes existem e como o roteamento é feito. Uma analogia simples: O VPC é como um data center virtual na nuvem. Você tem sua própria rede interna, suas "salas" (sub-redes), sua "saída para a internet" (gateways) e fechaduras nas portas (firewalls e grupos de segurança). ## Por que você precisa de um VPC? **1. Segurança** O mais importante: isolamento. Todos os seus recursos (instâncias EC2, bancos de dados, contêineres) são isolados de outros clientes da nuvem. Do lado de fora, você está invisível — a menos que escolha abrir as portas. Você pode configurar: - **Grupos de Segurança** (filtragem no nível do recurso), - **ACLs de Rede** (filtragem no nível da sub-rede), - **Logs de Fluxo do VPC** (monitoramento de tráfego), - **Endpoints do VPC** (acesso aos serviços da AWS sem passar pela internet pública). **2. Controle sobre a rede** Você pode definir: - Intervalos de endereços IP (CIDR), - O número e o tipo de sub-redes (públicas ou privadas), - Regras de roteamento, - Conexões VPN e emparelhamento de VPCs. **3. Integração** O VPC é a base sobre a qual outros serviços são construídos, incluindo: - Kubernetes (EKS, GKE), - Funções sem servidor (Lambda, Cloud Functions), - Bancos de dados (RDS, Cloud SQL), - Aprendizado de máquina, análise e muito mais. ## Quais são os componentes de um VPC? Aqui estão os componentes básicos de um VPC: | Componente | Descrição | | --- | --- | | Sub-rede | Uma sub-rede dentro do VPC, pode ser pública (acessível pela internet) ou privada. | | Gateway da Internet | Fornece acesso à internet para recursos em sub-redes públicas. | | Gateway NAT | Permite que recursos em sub-redes privadas acessem a internet (somente tráfego de saída). | | Tabelas de Roteamento | Definem regras de roteamento (por exemplo, todo o tráfego 0.0.0.0/0 vai para a internet). | | Grupos de Segurança / NACLs | Definem qual tráfego é permitido entrar e sair. | | Endpoints do VPC | Permite acesso a serviços de nuvem sem sair da rede interna da nuvem. | ## Exemplo Suponha que você está implantando um aplicativo web: - O frontend roda em uma **sub-rede pública**, acessível pelos navegadores. - O backend e o banco de dados vivem em uma **sub-rede privada**, acessível apenas internamente. - Você conecta um **Gateway NAT** para que o backend possa obter atualizações de pacotes da internet. - Você configura um **Grupo de Segurança** para garantir que o banco de dados aceite conexões apenas do aplicativo backend. Todas essas camadas fazem parte de um único VPC. O VPC é o que fornece controle, segurança e estabilidade. ## Onde posso alugar um VPC? Você pode alugar um [VPC na plataforma Serverspace](https://serverspace.com.br/services/virtual-private-cloud.md). Implante seu próprio ambiente isolado e seguro com controle total sobre a rede, mantendo todos os benefícios da nuvem pública — escalabilidade, disponibilidade e alto desempenho. ## Conclusão Um VPC não é apenas mais um acrônimo. É um componente essencial de qualquer infraestrutura em nuvem. Ele ajuda você a: - **Garantir segurança,** - **Controlar o roteamento de tráfego,** - **Escalar de forma eficaz,** - **Conectar-se a sistemas internos e externos.** Se você está sério sobre lançar algo na nuvem, comece configurando um VPC. É o seu espaço digital, e você é o arquiteto-chefe. https://serverspace.com.br/support/help/o-que-e-o-grub-o-gerenciador-de-inicializacao-sem-o-qual-o-linux-nao-inicia.md Saiba o que é o GRUB, como ele funciona e por que você precisa dele. Um guia detalhado para configurar, restaurar e usar o gerenciador de inicialização em sistemas Linux com exemplos e explicações. ## Quando você liga o seu computador, o que acontece antes de ver o logotipo do sistema operacional? Antes mesmo do sistema iniciar o carregamento, um software essencial chamado bootloader assume o controle. No ecossistema Linux, o bootloader mais utilizado é conhecido como GRUB. ## O que é o GRUB? GRUB (GNU GRUB, abreviação de "GRand Unified Bootloader") é uma ferramenta essencial que gerencia o processo de inicialização, permitindo que seu computador inicie um ou vários sistemas operacionais. Ele é instalado automaticamente durante a configuração do Linux e é o primeiro software a assumir o controle após o BIOS ou o UEFI finalizar a inicialização do hardware. Dependendo da sua configuração, o GRUB pode exibir um menu de seleção de sistema operacional ou iniciar diretamente o kernel do Linux sem necessidade de interação do usuário. ## O que o GRUB pode fazer? O GRUB é muito mais do que apenas "iniciar o Linux". Ele pode: - Exibir um menu de seleção de sistema em ambientes de multi-boot (Linux + Windows, múltiplas distribuições Linux, etc.); - Permitir especificar manualmente o kernel e os parâmetros de inicialização; - Carregar sistemas a partir de diversos sistemas de arquivos, como ext4, Btrfs, FAT, NTFS, entre outros; - Suportar tanto o modo de boot tradicional BIOS quanto o moderno UEFI; - Auxiliar na recuperação do sistema quando o processo normal de inicialização falha (através da interface de linha de comando). ## Como o GRUB funciona? O processo de boot do computador acontece em várias etapas: - **BIOS ou UEFI** — Inicializa o hardware e procura um bootloader. - **GRUB Stage 1** — Carregado a partir do MBR (em sistemas antigos) ou da partição EFI (em sistemas novos). - **GRUB Stage 2** — Parte principal do GRUB, que carrega a configuração e o kernel. - **Kernel do Sistema Operacional** — O kernel do Linux (ou de outro sistema) é carregado e assume o controle. ## Configurando e Recuperando o GRUB **Onde fica armazenada a configuração do GRUB?** O arquivo principal de configuração do GRUB está localizado em: ``` /boot/grub/grub.cfg ``` No entanto, não é recomendado editar esse arquivo diretamente, pois ele é gerado automaticamente pelo sistema. Em vez disso, você deve modificar: ``` /etc/default/grub ``` Após realizar alterações, atualize a configuração do bootloader usando: ``` sudo update-grub ``` ## Exemplo de configuração do /etc/default/grub: ``` GRUB_TIMEOUT=10 GRUB_DISTRIBUTOR=`lsb_release -d -s 2>/dev/null || echo Ubuntu` GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true GRUB_CMDLINE_LINUX_DEFAULT="quiet" GRUB_CMDLINE_LINUX="acpi=force" ``` ## Como recuperar o GRUB se ele parar de funcionar? Se após instalar o Windows ou substituir um disco o Linux não inicializar mais, é possível que o GRUB tenha sido sobrescrito. Você pode recuperá-lo utilizando um Live USB. Execute os seguintes comandos: ``` sudo mount /dev/sdXn /mnt sudo grub-install --boot-directory=/mnt/boot /dev/sdX ``` Depois, entre no ambiente do sistema instalado e atualize a configuração: ```sql sudo chroot /mnt update-grub ``` ## GRUB e Seleção de Múltiplos Sistemas Operacionais Se você tiver vários sistemas operacionais instalados, o GRUB criará automaticamente um menu de inicialização permitindo escolher qual sistema carregar, como por exemplo: - **Ubuntu** - **Windows 10** - **Opções avançadas para Ubuntu** Você pode personalizar a ordem e a aparência deste menu através do arquivo **/etc/default/grub** e atualizá-lo com o comando **update-grub**. Também é possível definir o sistema padrão e ajustar o tempo de espera antes da inicialização automática. ## GRUB 1 vs GRUB 2 Hoje em dia, a maioria dos sistemas usa o GRUB 2 — uma versão mais flexível e modular que suporta formatos de boot modernos. O GRUB antigo (Legacy) está obsoleto e é raramente utilizado. ## Conclusão O GRUB é muito mais do que apenas um carregador de sistemas: ele é um componente fundamental do ecossistema Linux, oferecendo controle flexível sobre o processo de inicialização. Com sua ampla gama de recursos, atende tanto usuários domésticos quanto ambientes complexos com múltiplos sistemas operacionais e requisitos de boot personalizados. Uma configuração correta do GRUB pode acelerar o tempo de inicialização e ajudar a evitar problemas relacionados ao multi-boot, atualizações de sistema ou falhas inesperadas. Embora a configuração do GRUB possa parecer complicada à primeira vista, compreender os princípios básicos — como editar o **/etc/default/grub** em vez de modificar diretamente o **grub.cfg** — torna o trabalho com essa poderosa ferramenta muito mais simples. Ao dominar o GRUB, você ganha não apenas controle total sobre o boot do seu sistema, mas também maior resiliência contra mudanças inesperadas e falhas. ## Procurando soluções de nuvem confiáveis e flexíveis? Com a [Serverspace](https://serverspace.com.br/index.md), você pode alugar rapidamente servidores virtuais personalizados para suas necessidades — desde instâncias leves para projetos simples até configurações poderosas para aplicações exigentes. Crie facilmente ambientes [VPC](https://serverspace.com.br/services/virtual-private-cloud.md) isolados para máxima segurança e controle de rede. Além disso, explore nossa ampla biblioteca de tutoriais detalhados, guias passo a passo e artigos técnicos que ajudarão você a configurar, otimizar e expandir sua infraestrutura em todas as etapas. Seja para lançar seu primeiro servidor Linux, gerenciar ambientes de boot multi-OS ou construir arquiteturas de nuvem complexas, a Serverspace oferece desempenho, escalabilidade e suporte especializado para impulsionar seu sucesso. Comece hoje mesmo com ferramentas intuitivas, cobrança flexível e suporte técnico 24/7! https://serverspace.com.br/support/help/uma-folha-de-dicas-rapidas-sobre-os-comandos-do-git.md Procurando uma maneira de trabalhar de forma eficiente com o Git? Esta folha de dicas o ajudará a aprender rapidamente os comandos básicos e a simplificar o gerenciamento de versões. Desde a inicialização do repositório até o trabalho com ramificações,… O Git é um sistema de controle de versão altamente eficiente e versátil que se tornou parte integrante do fluxo de trabalho da maioria dos desenvolvedores em todo o mundo, independentemente de sua linguagem de programação ou área de especialização. Nunca é demais enfatizar a importância do uso do Git, pois ele não apenas permite rastrear as alterações no código, mas também oferece a capacidade de reverter para versões anteriores do projeto, facilita o desenvolvimento paralelo e a colaboração em equipe. O Git facilita a integração de diferentes alterações em uma única base de código, eliminando conflitos e minimizando o risco de perda de dados. Uma das principais vantagens do Git é sua arquitetura distribuída, que permite trabalhar com repositórios localmente, sem conexão constante com um servidor central. Isso torna o sistema mais flexível e permite que você trabalhe em qualquer ambiente, quer esteja trabalhando remotamente ou tenha uma conexão instável com a Internet. Apesar dessas vantagens, muitos usuários, especialmente os recém-chegados ou aqueles que usam o Git com pouca frequência, podem achar difícil lembrar os muitos comandos e opções. Isso é especialmente verdadeiro para operações mais raras ou mais complexas que exigem sintaxe precisa. Para facilitar o trabalho com o Git e ajudá-lo a lembrar os comandos básicos e os princípios de trabalho com o sistema, preparamos esta pequena folha de dicas. ## Inicializar e clonar repositórios A inicialização e a clonagem são operações importantes no Git porque permitem que você comece a usar o sistema de controle de versão: a inicialização cria um novo repositório local para acompanhar as alterações, enquanto a clonagem copia um repositório existente com todo o histórico, permitindo que você se conecte ao desenvolvimento da equipe. ```bash git init ``` Inicializa um novo repositório Git no diretório atual. ```bash git clone ``` Clona um repositório remoto, criando uma cópia local. ## Acompanhar status e visualizar histórico O rastreamento do status e a visualização do histórico de confirmações são importantes porque permitem monitorar as alterações em andamento no projeto, ver o que foi feito, por quem e quando, analisar e reverter para versões anteriores do código, se necessário. ```bash git status ``` Exibe o estado atual do diretório de trabalho e da área de staging (arquivos modificados, adicionados, não rastreados, etc.). ```bash git log ``` Mostra o histórico completo de commits em ordem cronológica reversa. ```bash git log --oneline ``` Exibe o histórico de forma resumida: um commit por linha, ideal para uma visão rápida. ## Adicionar mudanças e trabalhar com commits O gerenciamento de commits e commits é a base do gerenciamento eficaz de projetos no Git, pois essas operações mantêm um histórico completo das alterações. Isso permite que você não apenas acompanhe cada etapa do desenvolvimento do seu projeto, mas também reverta rapidamente para versões estáveis ou funcionais, o que é importante para a confiabilidade do código. Os commits permitem registrar claramente as alterações importantes, adicionando explicações a cada etapa, o que simplifica muito o trabalho em equipe, evita conflitos e ajuda a entender melhor o que foi alterado e por quê. Graças aos commits, a equipe pode sincronizar suas ações e ter uma visão clara do estado atual do projeto e dos possíveis pontos de melhorias ou correções. ```bash git add ``` Seleciona um arquivo específico para o próximo commit (adiciona ao índice/stage). ```bash git add . ``` Adiciona todas as alterações e novos arquivos no diretório atual e em suas subpastas. ```bash git commit -m "Descrição das mudanças" ``` Cria um novo commit com uma mensagem descritiva resumindo as alterações feitas. ```bash git commit -am "Descrição" ``` Adiciona e commita de uma vez alterações em arquivos já rastreados. (Novos arquivos ainda precisam ser adicionados com **git add**.) ## Trabalhar com branches e mudar entre elas Trabalhar com brunches e fazer a transição entre eles é importante porque permite isolar novos recursos ou correções sem afetar a versão principal do projeto, tornando o desenvolvimento mais seguro e ágil. ```bash git branch ``` Lista todas as branches locais do projeto. ```bash git branch ``` Cria uma nova branch, mas não muda para ela. ```bash git checkout ``` Troca para a branch especificada. ```bash git checkout -b ``` Crie uma nova ramificação e faça a mudança para ela imediatamente ```bash git merge ``` Mescla a branch selecionada na branch atual. ## Sincronizar com repositórios remotos ```bash git pull ``` Baixa alterações do repositório remoto e faz o merge automático com a branch local. ```bash git push ``` Envia commits locais para o repositório remoto. ```bash git push -u origin ``` Envia uma nova branch e define o tracking com o repositório remoto origin. ## Reverter e desfazer alterações ```bash git checkout -- ``` Descarta alterações no arquivo, retornando à última versão commitada. ```bash git reset HEAD ``` Remove o arquivo da área de staging sem modificar o conteúdo local. ``` >git reset --hard ``` Descarta todas as alterações locais, restaurando o estado do último commit. ```bash git revert ``` Cria um novo commit que desfaz as alterações de um commit específico, sem apagar o histórico. ## Salvamento temporário e outros comandos úteis ```bash git stash ``` Armazena temporariamente mudanças não commitadas para limpar o diretório de trabalho. ```bash git stash pop ``` Restaura as mudanças salvas pelo último stash. ```bash git remote -v ``` Lista os repositórios remotos configurados e seus respectivos URLs. ```bash git diff ``` Mostra as diferenças entre o diretório de trabalho e o índice (ou entre commits). ## Perguntas Frequentes (FAQ) **Apaguei um arquivo sem querer. E agora?** - Se você ainda não realizou o commit, basta usar o comando git checkout -- para reverter a alteração localmente. - Se o commit já foi feito, acesse o histórico com git log, identifique o commit onde o arquivo ainda existia e recupere-o usando git checkout -- . **Posso mudar o nome de uma branch?** - Sim! Para renomear uma branch localmente, utilize: git branch -m nome-antigo nome-novo. - Caso queira atualizar também no repositório remoto, envie a nova branch com git push -u origin nome-novo e, em seguida, exclua a antiga usando git push origin --delete nome-antigo. **Como desfazer o último commit, mas manter as mudanças?** - Use **git reset --soft HEAD~1**. Assim, o commit será desfeito, mas as alterações continuarão no índice. **Como juntar vários commits em um só?** - Use o rebase interativo: **git rebase -i HEAD~N**, onde N é o número de commits que você deseja combinar. ## Dicas Importantes - Escreva mensagens de commit claras e descritivas. Prefira algo como **"fix: corrigir alinhamento do botão"** em vez de apenas **"correção"**. - Utilize ramificações para o desenvolvimento de novas funcionalidades, correções e testes. Isso ajuda a manter a branch principal bem estruturada e livre de alterações desnecessárias. - **Sempre faça pull antes do push** para evitar conflitos, principalmente quando trabalhando em equipe. - **Configure bem seu .gitignore** para não versionar arquivos temporários, caches ou dados sensíveis. - Aprenda a usar o **rebase** com cuidado. Ele é poderoso, mas pode causar problemas se usado incorretamente em branches públicas. - Evite usar git reset --hardsem certeza absoluta. Essa ação apaga todas as alterações locais de forma irreversível. ## Conclusão O uso do Git no desenvolvimento é um elemento-chave do gerenciamento de projetos bem-sucedido, permitindo que você controle efetivamente as alterações no seu código. O Git oferece ferramentas poderosas para rastreamento de versões, trabalho em paralelo com diferentes recursos e sincronização rápida entre os membros da equipe. Com esses recursos, os desenvolvedores podem fazer alterações no código com segurança, rastrear bugs e reverter projetos para versões estáveis. Os comandos para inicialização e clonagem de um repositório permitem que você comece a trabalhar com uma nova base de código ou se conecte a um projeto existente. Trabalhar com ramificações e commits oferece a flexibilidade de desenvolver em paralelo, isolar novos recursos e permitir a colaboração sem o risco de interferir na base de código subjacente. A sincronização com um repositório remoto por meio de comandos pull e push ajuda a sincronizar as alterações entre as versões locais e remotas de um projeto, garantindo a relevância e a consistência do código em toda a equipe. Os recursos de reversão e desfazer ajudam em caso de erros ou alterações indesejadas, garantindo a confiabilidade do desenvolvimento. O Git também oferece a capacidade de salvar temporariamente as alterações usando o comando stash, tornando o trabalho mais flexível. Assim, o uso do Git melhora significativamente o processo de desenvolvimento, aumenta a produtividade e minimiza o risco de perda de dados, tornando-o uma ferramenta indispensável no trabalho diário dos desenvolvedores. ## Base de conhecimento da Serverspace Na [base de conhecimento da Serverspace](https://serverspace.com.br/support.md), você encontrará uma ampla variedade de conteúdos para facilitar seu trabalho: guias detalhados, cheatsheets práticas, tutoriais passo a passo e instruções completas sobre Git e muitos outros temas relacionados ao desenvolvimento, administração de sistemas e cloud computing. Seja você iniciante ou profissional experiente, nossos materiais vão ajudar a aprimorar suas habilidades e resolver dúvidas do dia a dia. https://serverspace.com.br/support/help/como-visualizar-os-registros-do-windows-instrucoes-simples.md Aprenda a abrir e visualizar rapidamente os logs do Windows usando as ferramentas internas. Instruções simples para encontrar erros, analisar seu sistema e exportar registros de eventos. **Logs (ou registros de eventos)** são uma ferramenta importante para diagnosticar e analisar o funcionamento do sistema Windows. Com a ajuda deles, é possível identificar as causas de erros, falhas, comportamento instável de aplicativos ou problemas no próprio sistema operacional. Neste artigo, vamos mostrar como visualizar os logs do Windows de forma rápida e simples. ### 1. O que são os registros de eventos do Windows? O Windows registra automaticamente informações sobre eventos que ocorrem no sistema: inicialização de aplicativos, funcionamento de drivers, alterações no sistema, erros e avisos. Esses registros são salvos em arquivos especiais, que podem ser acessados através de ferramentas integradas. Os registros de eventos permitem: - Monitorar erros e avisos - Identificar a causa de falhas - Ver quem acessou o sistema e quando - Analisar o desempenho do sistema ### 2. Como abrir o Visualizador de Eventos no Windows A maneira mais prática de trabalhar com logs é usando o aplicativo padrão **Visualizador de Eventos**. **Método 1: pelo menu Iniciar** - Pressione **Win + S** (ou abra o menu Iniciar) e digite **Visualizador de Eventos**. - Abra o aplicativo encontrado. **Método 2: pela janela "Executar"** - Pressione **Win + R**. - Digite o comando **eventvwr.msc** e pressione **Enter**. A janela do Visualizador de Eventos será aberta, reunindo todos os registros do sistema. ### 3. Principais registros que você deve conhecer No Visualizador de Eventos, existem algumas categorias principais: - **Logs do Windows → Sistema**: erros de drivers, mensagens de serviço do sistema operacional. - **Logs do Windows → Aplicativo**: erros e eventos de aplicativos. - **Logs do Windows → Segurança**: tentativas de login, alterações em contas de usuário. - **Logs do Windows → Instalação**: eventos relacionados à instalação de atualizações e componentes do sistema. Há também registros adicionais em **Logs de Aplicativos e Serviços**, onde é possível encontrar dados mais especializados. ### 4. Como buscar erros nos logs Em uma seção como **Sistema** ou **Aplicativo**: - Clique em **Filtrar Log Atual...** no painel direito. - Na janela que aparecer, escolha o nível de eventos: **Crítico** — falhas graves do sistema - **Erro** — problemas que exigem atenção - **Aviso** — possíveis problemas - Clique em **OK** para aplicar o filtro. Assim, apenas os eventos mais importantes serão exibidos, ajudando a localizar rapidamente a origem dos problemas. ### 5. Como salvar ou exportar um log Se for necessário enviar os logs para um especialista ou salvá-los para análise futura: - Na seção desejada, clique em **Salvar Todos os Eventos Como...** no painel direito. - Escolha o local e o nome do arquivo. - O formato recomendado é **.evtx** (para ser aberto novamente no Visualizador de Eventos). ### 6. Verificação rápida via PowerShell ou Prompt de Comando Se você quiser obter informações rapidamente sem abrir o Visualizador de Eventos, pode usar o console. Exemplos de comandos: - Mostrar os últimos erros no log do sistema: ``` Get-EventLog -LogName System -EntryType Error -Newest 10 ``` - Encontrar eventos das últimas 24 horas: ``` Get-EventLog -LogName Application -After (Get-Date).AddDays(-1) ``` Esses comandos devem ser executados no PowerShell (como administrador). ### 7. Conclusão Os logs do Windows são uma ferramenta poderosa para identificar e resolver problemas. Utilize o **Visualizador de Eventos** para análise rápida, e aproveite a filtragem e exportação para lidar melhor com grandes volumes de dados. Compreender a estrutura dos registros ajuda a encontrar erros com mais eficiência e a manter o sistema em boas condições. https://serverspace.com.br/support/help/como-implantar-o-n8n-com-ia-via-npm.md Instruções passo a passo para instalar e configurar o n8n e começar a usar os recursos de inteligência artificial nos seus processos de trabalho. A inteligência artificial simplificou muitas tarefas repetitivas que antes exigiam habilidades humanas, como resumir, interpretar e generalizar. No entanto, a integração com IA ainda é um processo caro e pouco acessível para muitas empresas. O n8n oferece uma solução acessível para automatização de fluxos de trabalho, agora com integração direta com modelos de IA — de forma aberta e flexível. n8n é uma plataforma de automação de processos com licença gratuita (Community License). Com abordagem low-code, ele permite criar fluxos complexos mesmo com conhecimentos técnicos mínimos — é sobre isso que falaremos neste tutorial. ## O que é o n8n e como instalar? O n8n é um servidor de automação que funciona por meio de "nós" (nodes) — blocos que interagem com serviços externos ou processam dados localmente. Cada nó executa uma função específica, formando uma cadeia de ações estruturada. Visualmente, eles se organizam em um fluxo visual simples: Captura de tela 1 — Introdução à interface A instalação é rápida: você pode baixar a imagem via Docker ou instalar o projeto usando o gerenciador de pacotes npm. Como já abordamos o método via container anteriormente, aqui vamos focar na instalação via npm. Caso você não tenha infraestrutura própria ou um IP fixo, pode utilizar um servidor VPS da Serverspace para hospedar o n8n com estabilidade. ### Etapa 1 — Instale as dependências Primeiro, vamos instalar o gerenciador de versões do Node.js: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash ``` Depois, carregue o ambiente e instale a versão mais recente do Node.js: ``` . "$HOME/.nvm/nvm.sh" nvm install 20 ``` Captura de tela 2 — Instalação ### Etapa 2 — Instale o n8n e configure o ambiente Agora instale o n8n globalmente: ```bash npm install n8n -g ``` Em seguida, adicione as variáveis de ambiente ao seu .bashrc: ``` echo "export N8N_HOST=0.0.0.0 export N8N_PORT=3333 export N8N_PROTOCOL=http export N8N_PATH=http://0.0.0.0:3333/ export N8N_BASIC_AUTH_ACTIVE=true export N8N_BASIC_AUTH_USER=admin export N8N_BASIC_AUTH_PASSWORD=senhasegura123 export TZ=America/Sao_Paulo export N8N_LOG_LEVEL=info export N8N_LOG_OUTPUT=console export N8N_SECURE_COOKIE=false" | tee -a ~/.bashrc ``` Captura de tela 3 — Configuração Substitua o usuário e a senha conforme desejar, assim como o endereço de rede se estiver usando um domínio. ### Etapa 3 — Inicie o serviço Após configurar, inicie o n8n com o comando: ``` n8n ``` Captura de tela 4 — Inicialização Depois disso, acesse o endereço: http://seu-endereco:3333. Se quiser configurar HTTPS mais tarde, basta remover a linha N8N_SECURE_COOKIE=false e aplicar as configurações de SSL adequadas. ## Como funciona o fluxo no n8n? Todo fluxo começa com um gatilho (trigger), como uma nova mensagem no Telegram ou um novo documento no Google Drive. No final do fluxo, há um destino, como um armazenamento ou uma notificação. Entre esses dois pontos, você pode criar qualquer lógica de automação. ### Exemplo com IA (Microsoft Phi-4 via API da Serverspace) Vamos montar um fluxo simples onde o n8n se conecta a um modelo de IA via API da Serverspace, similar ao GPT-4. O fluxo permite analisar dados ou gerar textos automatizados. Captura de tela 5 — Modelo Phi-4 - O gatilho é um chat no qual o usuário interage. - Após a mensagem, o nó do Microsoft Phi-4 envia a consulta à IA. - A resposta é transformada em variáveis que podem ser utilizadas em qualquer destino (ex: Google Docs, e-mail, banco de dados). Você pode [baixar este fluxo de trabalho](https://drive.google.com/file/d/1_eLieOj89_qy76_jbjd_WR3og4X8larw/view) com o Microsoft Phi-4 na infraestrutura da Serverspace e importá-lo no painel clicando nos três pontos no canto superior direito. Não se esqueça de adicionar a chave! Acesse o painel da Serverspace, gere uma [chave de API](https://serverspace.com.br/services/api-gpt-do-serverspace.md) e copie: Captura de tela 6 — Chave de API No nó da Phi-4, cole a chave no campo "Authorization" (header). Depois disso, basta digitar uma pergunta no chat e a IA responderá como um chatbot clássico. Captura de tela 7 — Execução do fluxo Você pode adaptar esse fluxo para qualquer uso: atendimento ao cliente, análise de leads, criação de relatórios e muito mais. O importante é entender como conectar variáveis como chatInput para montar a requisição e usar a resposta JSON de forma útil. https://serverspace.com.br/support/help/framework-poderoso-para-analise-forense-autopsy.md Autopsy é um framework poderoso de análise forense digital que simplifica a análise de dados provenientes de discos, dispositivos móveis e artefatos de rede. Quase todos os processos físicos de negócios migraram para sistemas de informação que operam em instalações alugadas ou próprias dentro de redes corporativas consolidadas. Essa abordagem permitiu acelerar o processamento de informações, tornando as empresas mais competitivas. No entanto, esses sistemas apresentam vulnerabilidades devido a erros de projeto e de codificação, que são explorados por invasores para realizar diversos tipos de ataques. Por exemplo, após vazamentos em grandes bancos, especialistas em forense digital passaram a ser envolvidos nas investigações. Em seu arsenal, eles contam não apenas com utilitários básicos do sistema, mas também com frameworks poderosos que possibilitam análise automatizada e facilitam o trabalho com grandes volumes de dados! Neste tutorial, vamos analisar um caso de investigação de incidente usando esse framework. ## Etapas preparatórias Primeiro, instale o Autopsy pelo site oficial do desenvolvedor ou via o gerenciador de pacotes do Windows: ``` winget install SleuthKit.Autopsy ``` Captura de tela nº1 — Instalação Depois disso, podemos acessar a janela principal, onde somos recebidos com um menu de projetos. Vamos criar um novo projeto e especificar a fonte de onde os dados serão conectados: Captura de tela nº2 — Janela principal Criamos um novo projeto sobre o incidente, definindo o diretório onde os dados estão armazenados e seu nome: Captura de tela nº3 — Criação de caso Uma base de dados vazia será criada para armazenar artefatos e entidades do incidente. Em seguida, selecione a fonte de dados: Captura de tela nº4 — Fonte de dados E também os módulos principais que farão a análise do disco: Captura de tela nº5 — Módulo de análise O Autopsy começará a analisar os dados fornecidos e a classificá-los, o que pode levar bastante tempo! ## Investigação Para realizar a investigação, é necessário seguir o conceito de que, entre o volume de dados analisados de um dispositivo de armazenamento não volátil, devemos localizar entidades IOC (Indicadores de Comprometimento), artefatos relacionados aos procedimentos e ferramentas: hash de vírus, IPs/Domínios/URLs maliciosos, entradas de registro, logs e tráfego de rede. Vamos ao disco verificar seus metadados: Captura de tela nº6 — Análise resumida Aqui podemos ver um resumo das informações do disco, que oferece uma visão parcial da composição por arquivos. À esquerda está o menu completo com os itens analisados. Diretórios sensíveis e elementos-chave foram identificados por meio de padrões com expressões regulares. Captura de tela nº7 — Classificação É importante entender que, embora essa ferramenta tenha vários módulos, sua principal função é a de classificação e triagem, e não de análise automatizada! Ou seja, a análise precisa ser feita manualmente. Primeiro, devemos encontrar um artefato ou atributo relacionado ao ataque. Por exemplo, vamos verificar os logs do interpretador PowerShell para identificar ações que possam ter sido realizadas. Podemos olhar arquivos no caminho **C:\Users\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline**, prestar atenção também à pasta **C:\Windows\System32\WDI** (logs de rastreamento de processos) ou ao clássico EventLog em **C:\Windows\System32\winevt\Logs**. No nosso estudo de caso, foi encontrada atividade suspeita na forma de comandos executados no interpretador: Captura de tela nº8 — Log do console Aqui já vemos diversas entidades e artefatos-chave, a partir dos quais podemos rastrear conexões com outros malwares, agentes de ameaça, revelando toda a cadeia do ataque. Por exemplo, registros DNS foram alterados, redirecionando o usuário de um site legítimo para uma máquina na rede local. Vamos buscar artefatos em forma de requisições de rede e outras ações com esse recurso. Para isso, buscamos o domínio no Autopsy: Captura de tela nº9 — Palavra-chave de busca Vemos um conjunto de arquivos onde esse domínio aparece, incluindo logs de rastreamento (ETL), metadados de arquivos binários e histórico de navegação. Segundo os dados extraídos, o binário Sysinternals.exe foi baixado de um site falso, conforme identificamos anteriormente. Para reunir mais informações, vamos às categorias que permitem enriquecer as entidades e artefatos já descobertos. Sabemos, pela seção "Source" da captura anterior, que o invasor teve acesso à pasta do usuário IEUser. Vamos à lista de usuários: Captura de tela nº10 — Histórico da web Agora sabemos que a conta faz parte de um domínio e não é uma conta de serviço. Podemos coletar dados adicionais sobre seu UID, por exemplo, os softwares instalados: Captura de tela nº11 — UID Lembrando que o sistema detectou a instalação da ferramenta SDelete, que possivelmente foi usada para esconder rastros da atividade. Um potencial malware foi baixado de um recurso malicioso — vamos verificar. Captura de tela nº12 — Novo aplicativo Vamos acessar a seção de arquivos excluídos, localizar o Sysinternals e restaurá-lo clicando em "Restaurar" no menu de contexto: Captura de tela nº13 — Restaurar arquivos O arquivo foi marcado como suspeito, então é necessário investigar seu comportamento e buscar os artefatos gerados. Essa cadeia de entidades interligadas pode continuar por muito tempo. Ao reunir atributos e conexões entre eles — os artefatos —, conseguimos reconstruir a cadeia do ataque. Entre as funções adicionais, é possível buscar domínios cujos registros ficaram salvos na máquina: Captura de tela nº14 — Atividade suspeita Você pode gerar uma análise com linha do tempo para rastrear atividades no sistema. Para isso, vá até o menu superior e clique em TimeLine: Captura de tela nº15 — Linha do tempo Você pode definir filtros por tipo de arquivo, intervalo de tempo e exportar os resultados em CSV. Esse framework é uma excelente ferramenta para buscar atributos e artefatos a partir de dados conhecidos — embora não seja voltado à análise automatizada. No entanto, é um ótimo parser e ferramenta para recuperar arquivos excluídos ou danificados! Se você não tiver recursos locais suficientes, é possível executar essas tarefas em servidores cloud potentes. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso geral e virtualizado. Captura de tela nº16 — Criar servidor https://serverspace.com.br/support/help/o-que-e-telnet-e-como-usa-lo.md Saiba o que é Telnet, como funciona e por que continua sendo relevante para o gerenciamento de sistemas legados e diagnósticos de rede. Explore suas vantagens, riscos e práticas recomendadas para uso seguro nos ambientes atuais orientados à segurança. No vasto campo das redes de computadores, o Telnet se destaca como um dos protocolos pioneiros criados para permitir o acesso remoto a computadores através de uma rede. Desenvolvido no final da década de 1960, ele desempenhou um papel crucial no crescimento inicial da computação distribuída, permitindo que os usuários se conectassem e controlassem sistemas remotos como se estivessem fisicamente diante deles. Embora os avanços tecnológicos tenham trazido alternativas mais seguras, como o SSH, que hoje dominam as infraestruturas modernas, a importância histórica do Telnet é inegável. Ele lançou as bases para a administração remota de sistemas e comunicações em rede em tempo real. Ainda hoje, o Telnet é utilizado em casos específicos, como a gestão de sistemas legados, realização de diagnósticos de rede e fins educacionais. Compreender os princípios e o funcionamento do Telnet não só oferece uma visão da evolução das tecnologias de comunicação remota, como também ajuda profissionais a solucionar problemas e trabalhar com hardwares ou serviços mais antigos. Neste artigo, exploraremos o que é o Telnet, como ele funciona e como utilizá-lo de forma responsável no ambiente atual, focado em segurança. ## Como Funciona Telnet, uma abreviação de "Telecommunication Network", foi criado em 1969 para apoiar a comunicação remota entre computadores. Esse protocolo permite que os usuários estabeleçam uma conexão com uma máquina remota através de uma rede TCP/IP e a operem usando uma interface de linha de comando (CLI). Ao iniciar uma sessão Telnet, você passa a controlar o sistema remoto como se estivesse fisicamente presente. Isso inclui executar comandos, configurar definições e monitorar operações. Diferentemente dos protocolos modernos de acesso remoto, o Telnet não criptografa os dados transmitidos. Tudo — desde credenciais de login até comandos — é enviado em texto simples, tornando o Telnet vulnerável à interceptação em redes não seguras. ## Como o Telnet Funciona? O Telnet opera em um modelo básico cliente-servidor: - **Software Cliente**: O usuário deve instalar um aplicativo cliente de Telnet. A maioria dos sistemas operacionais, como Windows, macOS e Linux, oferecem clientes Telnet embutidos ou facilmente acessíveis. - **Conexão ao Servidor**: O cliente Telnet inicia uma conexão com um servidor remoto, geralmente usando a porta TCP 23. - **Início da Sessão**: Após estabelecer a conexão, o usuário pode inserir comandos que serão processados pelo servidor como se fossem inseridos localmente. - **Término da Sessão**: Depois de concluir as tarefas necessárias, o usuário pode sair e encerrar a sessão Telnet. Devido à simplicidade de sua estrutura de comunicação, as sessões Telnet são rápidas e leves — mas, novamente, sem qualquer forma de criptografia ou mecanismos seguros de autenticação. ## Como Usar o Telnet Começar a usar o Telnet é simples. Aqui está um guia básico: **Ativando o Telnet no seu Sistema** - **Windows**: Abra o "Painel de Controle" → "Programas" → "Ativar ou desativar recursos do Windows". Marque "Cliente Telnet" e clique em OK. - **macOS/Linux**: A maioria dos sistemas baseados em Unix já vem com o Telnet instalado. Se necessário, pode ser adicionado por gerenciadores de pacotes como Homebrew (**brew install telnet**) ou APT (**sudo apt install telnet**). **Conectando via Telnet** Abra o terminal ou prompt de comando e digite: ``` telnet [hostname ou endereço IP] [porta] ``` Exemplo: ``` telnet exemplo.com 23 ``` Se a conexão for bem-sucedida, você terá acesso a um ambiente de linha de comando remoto para interagir diretamente com o sistema. ## Aplicações Comuns do Telnet - **Teste de Serviços de Rede**: Frequentemente utilizado para diagnosticar ou confirmar a funcionalidade de serviços como SMTP, POP3, HTTP e FTP. - **Conexão a Sistemas Legados**: Alguns servidores e dispositivos de rede antigos ainda dependem exclusivamente do Telnet. - **Uso Educacional**: Serve como uma ferramenta valiosa para ensinar conceitos básicos de redes e comunicação remota. ## Vantagens e Desvantagens do Telnet **Vantagens**: - Fácil de usar: configuração mínima e interface simples de texto. - Leve: consome poucos recursos de sistema e largura de banda. - Disponível em várias plataformas: funciona na maioria dos sistemas operacionais sem processos de instalação complexos. **Desvantagens**: - Sem Criptografia: Dados transmitidos em texto simples são vulneráveis a interceptação. - Riscos de Segurança: Suscetível a ataques man-in-the-middle e vazamentos de dados. - Obsoleto para a maioria das aplicações: O SSH (Secure Shell) oferece uma alternativa muito mais segura e versátil. ## Boas Práticas para Uso do Telnet - Utilize Telnet apenas em redes seguras e privadas. - Evite transmitir dados sensíveis como senhas ou informações pessoais através do Telnet. - Prefira alternativas modernas como SSH sempre que possível. - Use Telnet principalmente para testes, diagnósticos ou acesso a sistemas legados. ## Conclusão O Telnet abriu o caminho para a computação remota e as comunicações em rede. Embora sua utilização tenha diminuído devido às sérias limitações de segurança, compreender o Telnet continua sendo importante para profissionais de redes e entusiastas. Se você precisa trabalhar com sistemas legados ou testar serviços de rede básicos, o Telnet ainda pode ser uma ferramenta útil — desde que usado com cautela. Para necessidades modernas, no entanto, alternativas seguras como o SSH são altamente recomendadas. ## Base de Conhecimento Serverspace A Base de Conhecimento Serverspace é um recurso completo criado para ajudar os usuários em todas as etapas do trabalho com soluções em nuvem e infraestruturas de servidores. Oferece instruções detalhadas, guias, FAQs e dicas profissionais para configurar máquinas virtuais, redes, painéis de controle e sistemas operacionais. O conteúdo é constantemente atualizado e expandido para acompanhar as evoluções tecnológicas e as demandas dos usuários. Pensada para ser prática, a base de conhecimento apresenta artigos bem estruturados, ilustrados com exemplos e organizados por tópicos para facilitar a navegação. Seja você um iniciante ou um administrador experiente, a Base de Conhecimento Serverspace oferece suporte essencial e educação, ajudando a enfrentar desde configurações básicas até estratégias avançadas de automação. É uma ferramenta confiável e fácil de usar para todos os clientes que desejam aproveitar ao máximo a experiência com a Serverspace. https://serverspace.com.br/support/help/telnet-vs-ssh-pros-e-contras.md Descubra as principais diferenças entre Telnet e SSH para acesso remoto ao servidor. Saiba mais sobre suas vantagens, desvantagens e casos de uso para escolher o melhor protocolo para suas necessidades. Explore os insights de especialistas e as perguntas frequentes… **O Telnet é um dos protocolos pioneiros criados para permitir o acesso remoto e a comunicação entre computadores através de redes**. Mesmo tendo sido desenvolvido há muitas décadas, ele ainda encontra aplicação em contextos específicos, embora tenha perdido espaço para soluções mais seguras, como o SSH. Neste texto, vamos explorar o que é o Telnet, entender seu funcionamento e analisar os motivos pelos quais seu uso deve ser feito com bastante atenção nos dias de hoje. ### O que é o Telnet? O Telnet é um protocolo de rede projetado para acesso remoto e interação com outros computadores através de uma interface de texto. Desenvolvido em 1969, ele foi uma das primeiras ferramentas para conexão com sistemas remotos. A principal função do Telnet é fornecer uma interface de linha de comando simples para a operação de servidores remotos. Quando você se conecta a um sistema remoto usando Telnet, inicia uma sessão na qual interage com o terminal da máquina remota como se estivesse fisicamente presente. O Telnet pode ser usado para executar comandos, configurar servidores, administrar sistemas e realizar outras operações. ### Como o Telnet funciona? O funcionamento do Telnet é baseado no princípio cliente-servidor. Quando você inicia uma conexão usando um cliente Telnet, sua solicitação é enviada para o servidor, que por sua vez responde. Veja como ocorre o processo: - **Parte cliente**: Para usar o Telnet no seu computador, é necessário ter um programa cliente instalado, que opere em modo texto. Isso pode ser o próprio terminal do sistema operacional ou um aplicativo especializado, como o PuTTY no Windows. - **Parte servidor**: No lado remoto, deve haver um servidor Telnet configurado para escutar em uma porta específica (geralmente a porta 23). O servidor recebe as solicitações e disponibiliza uma sessão de acesso à linha de comando do sistema operacional. - **Transmissão de dados**: Todos os dados trocados entre o cliente e o servidor são enviados como texto simples. Isso permite que os usuários digitem comandos e recebam respostas como se estivessem trabalhando diretamente no servidor. - **Encerramento da sessão**: Quando o usuário termina o trabalho no servidor remoto, a sessão Telnet é encerrada e a conexão é finalizada. ### Aplicações do Telnet Embora o Telnet tenha sido amplamente usado para administração remota de servidores nas décadas de 1970 a 1990, ele também encontrou outras aplicações: - **Administração remota**: No passado, o Telnet era uma das maneiras mais comuns de gerenciar servidores e roteadores. Administradores usavam o protocolo para configurar dispositivos, monitorar o status e executar comandos. - **Jogos MUD (Multi-User Dungeon)**: O Telnet também foi usado para conectar a jogos de texto multiplayer, nos quais os usuários interagiam em mundos virtuais por meio de comandos de texto. - **Testes de serviços**: O Telnet pode ser utilizado para diagnosticar o funcionamento de serviços de rede, como SMTP (servidores de e-mail), POP3, IMAP ou HTTP. Ele permite enviar comandos diretamente ao servidor e verificar se o serviço está funcionando corretamente. ### Vantagens e Desvantagens do Telnet **Vantagens**: - **Simplicidade**: O Telnet tem uma interface simples e fácil de aprender, não exigindo configurações complexas. Pode ser usado em diversas plataformas. - **Compatibilidade**: Disponível em praticamente todos os sistemas operacionais, incluindo Windows, Linux e macOS. Existem muitos aplicativos gratuitos de cliente Telnet. - **Ferramenta de diagnóstico**: Devido à sua simplicidade e ampla disponibilidade, é útil para testar e diagnosticar serviços de rede. **Desvantagens**: - **Falta de segurança**: O principal problema do Telnet é que ele transmite todos os dados, incluindo senhas, em texto aberto, tornando-o vulnerável a interceptações. Isso limita seu uso em redes que exigem segurança. - **Obsolescência**: Com o surgimento de protocolos mais seguros como o SSH, o Telnet perdeu popularidade como ferramenta principal de administração remota. - **Funcionalidade limitada**: O Telnet não suporta interfaces gráficas nem criptografia moderna, o que limita seu uso em aplicações atuais. ### Por que evitar o Telnet? Apesar de o Telnet ainda ser popular em alguns usos retrô e para testes de serviços de rede, não é recomendado utilizá-lo em cenários reais, especialmente para acesso remoto. Protocolos como o SSH oferecem muito mais segurança e funcionalidades. Em tempos de ciberataques, vazamento de dados e altos padrões de segurança, usar Telnet para acessar informações sensíveis pode ser extremamente arriscado. ### Conclusão O Telnet foi um marco importante no desenvolvimento da internet e das tecnologias de rede. No entanto, hoje ele foi amplamente substituído por protocolos mais modernos e seguros. Ainda assim, entender como o Telnet funciona e conhecer sua história é importante para quem se interessa pela evolução das tecnologias de comunicação. Para acesso remoto seguro, protocolos como o SSH são a escolha recomendada, oferecendo criptografia e proteção contra interceptação de dados. https://serverspace.com.br/support/help/como-implantar-o-n8n-em-meu-servidor.md Aprenda como configurar rapidamente sua própria plataforma de automação auto-hospedada usando o n8n, uma ferramenta open-source e low-code ideal para automatizar tarefas sem precisar de programação avançada. Confira o passo a passo completo! No mundo atual, que se caracteriza por um ritmo acelerado e constante evolução, as pessoas frequentemente se veem sobrecarregadas por tarefas repetitivas e mecânicas. Atividades cotidianas, como copiar e colar informações, gerenciar dados manualmente ou executar processos simples de forma recorrente, podem consumir um tempo precioso que poderia ser melhor utilizado em tarefas mais estratégicas e criativas. Essas rotinas não só diminuem a produtividade como também aumentam a probabilidade de erros, comprometendo a eficiência geral dos processos empresariais. Para mitigar esses desafios, diversas ferramentas e tecnologias têm surgido ao longo dos anos, sendo os sistemas de **CRM (Customer Relationship Management)** algumas das mais conhecidas e amplamente adotadas. Essas plataformas foram desenvolvidas para aprimorar e automatizar o gerenciamento das interações com os clientes, reunindo dados essenciais e simplificando a comunicação e o controle das informações. Com funcionalidades como automação de marketing, rastreamento de interações com clientes e relatórios analíticos, os CRMs se tornaram indispensáveis para muitas empresas, melhorando sua capacidade de atender às necessidades dos clientes e de tomar decisões mais informadas. No entanto, apesar de sua eficácia comprovada, muitos sistemas de CRM enfrentam desafios significativos em relação ao custo e à complexidade de implementação. O alto preço dessas soluções pode ser uma barreira para pequenas empresas, startups e profissionais autônomos, que muitas vezes não dispõem de orçamento ou de uma equipe técnica capacitada para lidar com a instalação e manutenção desses sistemas. Essa realidade torna o acesso à automação e à otimização de processos mais difícil para aqueles que mais precisam dessas ferramentas para crescer e expandir. ## O que é o n8n e como configurá-lo? O n8n é uma plataforma poderosa e flexível de automação de processos que permite integrar uma variedade de aplicativos e serviços por meio de uma rede de nós. Cada nó no fluxo de trabalho realiza funções específicas, permitindo a comunicação eficiente entre APIs externas e sistemas de diferentes origens. Isso significa que você pode criar fluxos de trabalho personalizados que conectam ferramentas e serviços sem precisar de codificação complexa, tornando o processo de integração de dados muito mais acessível. No n8n, o processo de automação começa com um evento de gatilho, que inicia o fluxo de trabalho, acionando as ações e transformações necessárias em outros nós. Isso permite que você crie soluções automatizadas e orquestre tarefas complexas com facilidade, aumentando a eficiência e diminuindo a possibilidade de erros manuais. A flexibilidade do n8n o torna ideal tanto para iniciantes quanto para profissionais experientes, oferecendo a capacidade de lidar com fluxos de trabalho simples ou altamente sofisticados. Para esta instalação, utilizaremos o Docker, uma ferramenta popular e robusta de contêinerização, para implantar a edição comunitária do n8n. O Docker facilita a configuração e o gerenciamento do ambiente, garantindo que o n8n seja executado de maneira consistente, independente do sistema operacional ou configuração do servidor. Siga os passos abaixo para começar a usar o n8n e explorar suas funcionalidades de automação em seus projetos. ## Passo 1: Instalar dependências Primeiro, certifique-se de que o Docker e o Docker Compose estejam instalados em seu dispositivo. Use o seguinte comando (pode variar dependendo do seu gerenciador de pacotes): ```bash apt install docker.io docker-compose -y ``` ## Passo 2: Configurar o serviço n8n Em seguida, crie um diretório temporário e configure o serviço n8n usando um arquivo Docker Compose. Aqui está a configuração básica: ```yaml version: '3' services: n8n: image: n8nio/n8n restart: unless-stopped ports: - "2002:2002" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER= - N8N_BASIC_AUTH_PASSWORD= - N8N_HOST= - N8N_PORT= - N8N_PROTOCOL=http - N8N_WEBHOOK_URL=http:// - N8N_SECURE_COOKIE=false volumes: - n8n_data:/home/node/.n8n networks: - n8n_network volumes: n8n_data: networks: n8n_network: driver: bridge ``` ## Passo 3: Executar a imagem Docker Para implantar a imagem do n8n, execute o seguinte comando: ```bash docker-compose run -d ``` Depois que a imagem for carregada no seu dispositivo, você poderá acessá-la através da URL fornecida. Para concluir a configuração, crie uma conta preenchendo o formulário de registro. Você receberá uma chave de ativação por e-mail. Insira essa chave nas configurações para finalizar a instalação. ## Como automatizar tarefas com o n8n O n8n é um servidor de aplicativos versátil que automatiza solicitações de API para serviços externos. Ele processa os dados recebidos, armazena-os em variáveis e os transfere para nós subsequentes para processamento adicional. Por exemplo, podemos integrar o modelo Microsoft Phi-4 GPT, que é capaz de analisar fluxos de dados recebidos. O fluxo de trabalho mais simples seria assim: Aqui, um gatilho de chat envia uma solicitação para o modelo GPT, que processa o input e envia o resultado para um nó de filtragem de saída. Você pode importar o esquema do fluxo de trabalho clicando nos três pontos no canto superior direito e selecionando "Importar via Arquivo". Para se conectar a uma API, gere uma chave de API no painel e copie-a: Depois, abra o nó Phi-4 e cole a chave de API no campo de valor do cabeçalho Authorization: Agora você pode se comunicar com o modelo digitando na interface de chat, como se estivesse interagindo com qualquer outro bot GPT. Além disso, você pode conectar gatilhos como mensagens de bots do Telegram ou avaliações de produtos em marketplaces online. Só lembre-se de gerenciar corretamente o modelo de dados de Entrada e Saída! Nos próximos tutoriais, exploraremos a criação de fluxos de trabalho de automação mais complexos usando mais nós, permitindo que você construa cadeias de automação personalizadas conforme suas necessidades. ## Perguntas Frequentes (FAQ) **O n8n pode ser usado por indivíduos ou apenas empresas?** O n8n é projetado tanto para indivíduos quanto para empresas. Sua natureza open-source permite que qualquer pessoa o instale e utilize para fins pessoais ou comerciais. Empresas podem aproveitar o n8n para automação em larga escala, enquanto indivíduos podem usá-lo para simplificar tarefas diárias. **Preciso de conhecimentos avançados de programação para usar o n8n?** Não, o n8n é uma plataforma low-code, o que significa que não é necessário ter habilidades avançadas de programação para começar. No entanto, algum conhecimento básico de APIs e fluxos de trabalho pode ajudar. Para quem deseja expandir suas automações, também há a possibilidade de escrever código em JavaScript dentro da plataforma. **Como instalar o n8n?** Você pode instalar o n8n usando o Docker, o que simplifica bastante o processo de implantação da plataforma em seu próprio servidor ou máquina. Basta seguir os passos descritos neste guia para uma instalação tranquila. O processo é rápido e permite que o n8n seja facilmente configurado para atender às suas necessidades. **O n8n é gratuito para usar?** Sim, o n8n é gratuito, com licença open-source. Você pode hospedar por conta própria sem custos, embora possa haver despesas relacionadas à hospedagem do servidor ou integrações específicas. Também há uma versão paga para empresas que oferece suporte adicional e recursos avançados, como a execução em nuvem. **O n8n funciona com aplicativos de terceiros?** Com certeza! O n8n suporta uma ampla gama de integrações com APIs externas, incluindo serviços populares como Google Sheets, Slack, Trello, Dropbox, GitHub, entre outros. Ele oferece uma maneira eficiente de conectar sistemas e automatizar tarefas entre várias plataformas. **Posso usar o n8n sem experiência em programação?** Sim, a interface low-code do n8n facilita para usuários sem experiência em programação automatizar tarefas. Seu editor visual de fluxos permite configurar automações apenas arrastando e soltando nós. Embora não seja necessário saber programar, ter uma noção básica de como as APIs funcionam pode ser útil. **O n8n é seguro para uso em ambientes corporativos?** Sim, o n8n pode ser configurado para funcionar de maneira segura em ambientes corporativos. Ele oferece autenticação, criptografia de dados e permissões configuráveis para garantir que as automações sejam executadas de maneira controlada e segura. É recomendado seguir boas práticas de segurança, como manter a plataforma atualizada e usar redes privadas para acessos críticos. **Quais tipos de fluxos de trabalho o n8n pode automatizar?** O n8n pode automatizar uma grande variedade de fluxos de trabalho, desde a coleta de dados e análise até a integração de sistemas e notificações. Isso inclui tarefas como integração de CRM com e-mail marketing, sincronização de dados entre planilhas e banco de dados, automação de processos financeiros, e muito mais. **Posso personalizar o comportamento dos nós no n8n?** Sim, o n8n permite a personalização dos nós para atender necessidades específicas. Você pode configurar as entradas e saídas de cada nó, além de usar scripts em JavaScript para personalizar ainda mais o comportamento das automações. **O que são "nós" no n8n?** No n8n, um "nó" é uma unidade de automação que representa uma ação ou serviço específico dentro de um fluxo de trabalho. Cada nó pode ser configurado para executar uma tarefa, como enviar um e-mail, fazer uma chamada de API, ou manipular dados. Esses nós são conectados para formar fluxos de trabalho automatizados. ## Serverspace oferece uma Base de Conhecimento A **Serverspace** oferece uma [Base de Conhecimento](https://serverspace.com.br/support.md) abrangente e intuitiva, projetada para auxiliar usuários de todos os níveis na gestão e configuração de seus servidores na nuvem de maneira eficaz e sem complicação. Esta plataforma é uma verdadeira fonte de aprendizado, reunindo uma vasta gama de tutoriais, artigos e guias detalhados que abordam uma variedade de tópicos. Desde os conceitos fundamentais da computação em nuvem até procedimentos avançados de administração de servidores, a Base de Conhecimento cobre tudo o que é necessário para garantir que os usuários possam gerenciar seus ambientes de maneira eficiente. Além disso, a Base de Conhecimento da Serverspace está em constante atualização, acompanhando de perto o desenvolvimento das novas tecnologias e soluções oferecidas pela plataforma. Isso significa que os usuários sempre terão acesso às informações mais recentes, ajudando-os a aproveitar ao máximo as ferramentas e serviços disponíveis. Seja em relação a novos recursos de software, mudanças em procedimentos operacionais ou atualizações de segurança, os artigos são rapidamente adaptados para refletir as últimas inovações e práticas recomendadas no campo da computação em nuvem. Com uma estrutura de fácil navegação, as instruções são claras e acompanham capturas de tela ilustrativas e exemplos práticos. Isso torna a plataforma acessível até para aqueles que não têm experiência técnica avançada. Mesmo quem está começando a explorar o mundo da nuvem pode encontrar soluções rápidas e eficazes para suas dúvidas, sem a necessidade de recorrer a suporte técnico em muitas situações. Seja para configurar um [VPS (Servidor Virtual Privado)](https://serverspace.com.br/services/cloud-servers.md), integrar soluções de backup, criar redes privadas virtuais ou entender melhor o funcionamento de soluções como VMware e vStack, a Base de Conhecimento é um recurso essencial para a jornada dos clientes da Serverspace. Ela facilita o aprendizado contínuo e contribui para a autonomia, permitindo que os usuários se sintam mais confiantes e preparados para tomar decisões informadas sobre seus servidores na nuvem. Assim, a plataforma se torna uma ferramenta poderosa para quem deseja tirar o máximo proveito dos serviços oferecidos pela Serverspace. https://serverspace.com.br/support/help/o-que-e-kubectl-painel-de-controle-do-kubernetes.md Vamos descobrir o que é o kubectl, como ele ajuda a gerenciar os clusters do Kubernetes e por que nenhum engenheiro de DevOps pode passar sem ele. Se você já está familiarizado com o Kubernetes ou apenas começou a estudá-lo, provavelmente já ouviu falar do **kubectl**. Ele não é apenas mais uma ferramenta de linha de comando — é o principal instrumento para gerenciar clusters Kubernetes. Neste artigo, vamos entender o que é o kubectl, para que ele serve, como funciona e quais comandos você deve conhecer primeiro. ## O que é o kubectl? **kubectl** (pronuncia-se "kube-control" ou "k-u-b-control") é uma ferramenta de linha de comando (CLI) que permite interagir com um cluster Kubernetes. Com ele, você pode: - Implantar aplicações - Verificar o estado dos componentes - Alterar configurações - Depurar pods e serviços - Escalar aplicações e gerenciar recursos Na prática, o kubectl é a ponte entre você e o servidor de API do Kubernetes, por meio do qual todo o gerenciamento do cluster é feito. ## Como funciona o kubectl? Quando você executa um comando com o kubectl, ele é transformado em uma solicitação HTTP para o servidor de API do Kubernetes. Suas ações — como criar um pod, buscar logs ou excluir um serviço — são traduzidas em chamadas REST para o cluster. Nos bastidores, o kubectl usa um arquivo de configuração chamado **kubeconfig**, que contém informações sobre: - O cluster - As credenciais (token, certificados, etc.) - O contexto atual (ou seja, a qual cluster e namespace você está conectado) Por padrão, o kubeconfig está localizado em **~/.kube/config**. ## Como instalar o kubectl? Você pode instalar o kubectl pelo site oficial do Kubernetes: ```bash curl -LO "https://dl.k8s.io/release/$(curl -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" chmod +x kubectl sudo mv kubectl /usr/local/bin/ ``` Para Windows e macOS, existem instaladores e pacotes disponíveis via Chocolatey, Brew e outros gerenciadores. ## Comandos básicos do kubectl Aqui estão alguns comandos essenciais para começar: | Comando | Finalidade | | --- | --- | | kubectl get pods | Lista todos os pods no namespace atual | | kubectl get services | Lista os serviços | | kubectl apply -f arquivo.yaml | Aplica um manifesto (criação/atualização) | | kubectl delete pod nome-do-pod | Exclui um pod | | kubectl describe pod nome | Mostra informações detalhadas sobre o pod | | kubectl logs nome-do-pod | Exibe os logs | | kubectl exec -it nome -- bash | Acessa um pod (se houver bash disponível) | | kubectl scale deployment nome --replicas=3 | Escala o deployment para 3 pods | ## Modos de operação e facilidades **Namespaces:** Por padrão, o kubectl atua no namespace **default**. Você pode especificar outro: ```bash kubectl get pods -n kube-system ``` **Autocompletar:** Para bash/zsh, existe suporte a autocompletar, acelerando o uso: ``` source https://serverspace.com.br/support/help/servidor-em-nuvem-vs-servidor-dedicado-o-que-escolher-para-sua-startup.md O que escolher para iniciar um projeto - um servidor em nuvem (VPS/VPC) ou um servidor dedicado? Conheça as vantagens e os recursos das soluções do Serverspace: Aluguel de VPS, criação de VPC, suporte 24 horas por dia, 7 dias… # Servidor em Nuvem vs Servidor Dedicado: O Que Escolher para uma Startup? Quando um negócio vai para o ambiente online ou uma startup lança seu primeiro produto, surge uma pergunta importante: **qual infraestrutura escolher para hospedar seus serviços — um servidor em nuvem ou um servidor dedicado?** Ambas as opções têm seus prós e contras, e fazer a escolha certa pode ajudar a economizar dinheiro, recursos e muito esforço. Vamos entender melhor. ## O que é um Servidor em Nuvem? Um **servidor em nuvem** é uma máquina virtual que opera em uma infraestrutura física, compartilhada com outras instâncias virtuais. Ele oferece gestão flexível por meio de painéis de controle intuitivos e APIs, permitindo escalar recursos facilmente conforme as necessidades do seu projeto. Dentro dessa categoria, existem duas soluções comuns: - **VPS (Servidor Virtual Privado):** um servidor virtual dedicado onde seus recursos são isolados, embora o hardware físico ainda seja compartilhado com outros usuários. - **VPC (Nuvem Privada Virtual):** um ambiente de nuvem privada que oferece maior flexibilidade, segurança aprimorada e mais controle sobre a infraestrutura. ### Vantagens de um Servidor em Nuvem: - **Configuração rápida:** é possível implantar em minutos. - **Escalabilidade:** ajuste facilmente os recursos de acordo com suas demandas. - **Modelo de pagamento conforme o uso:** você paga apenas pela capacidade que realmente utiliza. - **Alta disponibilidade:** backups automáticos garantem continuidade dos serviços e proteção dos dados. ### Desvantagens: - Pequena queda de desempenho pode ocorrer sob cargas pesadas (especialmente se outros usuários também estiverem ativos). - Pode não ser suficiente para personalizações muito específicas a nível de hardware. ## O que é um Servidor Dedicado? Um **servidor dedicado** é uma máquina física alugada exclusivamente para um único cliente. Todos os recursos do servidor pertencem totalmente a você. ### Vantagens de um Servidor Dedicado: - **Máxima performance:** todos os recursos são dedicados exclusivamente ao seu projeto. - **Total personalização:** controle completo sobre as configurações de hardware e software. - **Ideal para tarefas específicas:** como cálculos de alta carga ou servidores de jogos online. ### Desvantagens: - **Custo mais elevado:** aluguel e manutenção são mais caros. - **Implantação mais lenta:** a configuração pode levar várias horas ou até dias. - **Complexidade de gestão:** exige administradores de sistemas experientes. ## O Que Escolher Para Começar? Se você é uma startup, uma pequena empresa ou está testando um novo projeto, o ideal é começar com um **servidor em nuvem**: - Baixo investimento inicial - Fácil reconfiguração conforme o crescimento do projeto - Sem custos extras de manutenção de hardware Dependendo das necessidades, você pode optar por um **VPS** — uma solução simples e acessível, ou um **VPC** — se precisar de mais escalabilidade e segurança. Se você já possui requisitos rigorosos de desempenho ou padrões elevados de segurança e confidencialidade, então um **servidor dedicado** seria a melhor escolha. ## Resumo | Critério | Servidor em Nuvem (VPS / VPC) | Servidor Dedicado | | --- | --- | --- | | Custo | Baixo custo inicial | Alto | | Escalabilidade | Altamente flexível | Limitada | | Velocidade de Implantação | Instantânea | Até várias horas/dias | | Controle do Servidor | Parcial / Total (para VPC) | Total | | Performance | Alta (pode variar levemente) | Máxima e estável | ## Soluções VPS e VPC da Serverspace Na [Serverspace](https://serverspace.com.br/index.md), você pode alugar [servidores virtuais privados (VPS)](https://serverspace.com.br/services/cloud-servers.md) ou construir sua própria [nuvem privada virtual (VPC)](https://serverspace.com.br/services/virtual-private-cloud.md) — totalmente adaptada às necessidades do seu negócio. Cada plano VPS inclui tudo o que é necessário para um lançamento rápido e estável: - **Cloud Serverspace** para hospedagem fácil e escalável de projetos - **Endereço IP dedicado individual**, fornecido exclusivamente no momento da criação do servidor - **Largura de banda ilimitada**, ideal para projetos em expansão - **Suporte 24/7** via telefone, painel de controle ou chat no site - **Painel de controle amigável** para gerenciar RAM, vCPU, largura de banda e volumes de disco - **Armazenamento SSD de alta velocidade** com proteção tripla de dados para tempos de resposta ultrarrápidos - **Processadores Intel Xeon Gold** com clock de 3,1 GHz para desempenho excepcional Escolher uma **VPC** da Serverspace oferece ainda mais flexibilidade e vantagens: - **Modelo de cobrança pay-as-you-go** — cobrança a cada 10 minutos apenas pelos recursos realmente consumidos - **Suporte 24/7** por todos os canais de comunicação disponíveis - **Endereços IPv4 públicos** para integração fácil com serviços de internet - **Largura de banda de 1 Gbps**, permitindo executar grandes projetos com alto tráfego - **Garantia de SLA de 99,9% de disponibilidade** com compensação em caso de interrupções Graças a essas características, a [Serverspace](https://serverspace.com.br/index.md)ajuda empresas a construir rapidamente sua infraestrutura em nuvem com confiança, seja para um projeto de teste inicial ou uma rede corporativa completa. https://serverspace.com.br/support/help/qual-e-o-custo-real-da-manutencao-da-infraestrutura-de-nuvem.md Descubra quanto realmente custa manter a infraestrutura de nuvem. Explore as taxas do Serverspace, os prós da nuvem e os custos ocultos - de forma objetiva e com exemplos. # Quanto Custa Realmente Manter uma Infraestrutura em Nuvem? Hoje, as tecnologias em nuvem se tornaram parte essencial do crescimento dos negócios. Elas oferecem flexibilidade, escalabilidade e permitem que as empresas se concentrem na expansão de seus projetos sem a necessidade de investir em hardware caro. Em vez de comprar servidores, montar data centers e gerenciar sistemas complexos de TI, você pode implantar os recursos necessários em minutos e pagar apenas pelo que realmente usar. Esse modelo é especialmente importante para startups, pequenas e médias empresas que precisam ser ágeis e eficientes em um mercado competitivo. Mas surge uma dúvida importante: **quanto custa, de fato, manter uma infraestrutura em nuvem própria?** Existem cobranças ocultas? Vamos entender melhor os custos reais usando os preços da [Serverspace](https://serverspace.com.br/index.md)— um provedor global que oferece soluções de nuvem rápidas, confiáveis e acessíveis. ## Entendendo os Custos da Infraestrutura em Nuvem Ao calcular o custo real de uma infraestrutura em nuvem, é importante considerar vários componentes: - **Servidores Virtuais** ([Cloud Servers](https://serverspace.com.br/services/cloud-servers.md) ou [VPC](https://serverspace.com.br/services/virtual-private-cloud.md)) - **Armazenamento** - **Tráfego/Banda Larga** - **Suporte Técnico** - **Serviços de Backup e Segurança** Veja como esses elementos são precificados na Serverspace. ### Preços dos Servidores em Nuvem na Serverspace [A Serverspace oferece cobrança pay-as-you-go (pague pelo uso)](https://serverspace.com.br/pricing.md), com faturamento a cada 10 minutos, garantindo que você pague apenas pelos recursos consumidos. Aqui está uma visão geral dos preços: - **vCPU**: A partir de **R$ 13,90/mês** por núcleo (baseado nas configurações Standard Cloud). - **RAM**: A partir de **R$ 13,90/mês** para 1 GB. - **Armazenamento**: **SSD padrão**: A partir de **R$ 0,25/GB/mês**. - **SSD NVMe de alta performance**: A partir de **R$ 0,50/GB/mês**. - **Tráfego**: **Tráfego interno ilimitado** entre servidores Serverspace. - **Tráfego de saída para internet**: 1 TB/mês incluso gratuitamente. - Tráfego adicional: **R$ 0,05 por GB**. Com a Serverspace, você pode configurar desde servidores básicos para projetos simples até ambientes robustos para aplicações de alta demanda — de forma rápida e intuitiva. ### Preços do Virtual Private Cloud (VPC) Se você precisa de ainda mais segurança e controle, pode criar sua própria [Nuvem Privada Virtual (VPC)](https://serverspace.com.br/services/virtual-private-cloud.md): - Rede isolada privada - Firewalls e configurações VPN personalizadas - Controle total sobre endereçamento IP O VPC também é baseado no modelo de cobrança pay-as-you-go, perfeito para empresas que buscam mais privacidade e escalabilidade. ### Benefícios Incluídos Sem Custo Adicional Com qualquer serviço de nuvem da Serverspace, você ainda conta com: - **Endereço IP público dedicado** por servidor - **Infraestrutura de alta disponibilidade** - **Suporte técnico 24/7** via chat ao vivo, telefone ou e-mail - **Painel de controle intuitivo** para ajustes rápidos de recursos - **Armazenamento SSD com tripla replicação** para máxima confiabilidade - **Processadores Intel Xeon Gold** garantindo alta performance para suas VMs Além disso, todos os data centers da Serverspace seguem os mais altos padrões de segurança e estabilidade, com garantia de disponibilidade SLA de **99,9%**. ## Existem Custos Ocultos? Na Serverspace, a transparência é levada a sério. Você pode simular suas despesas diretamente no site usando o **simulador de preços**. Graças ao sistema pay-as-you-go, você não paga a mais por capacidade não utilizada — o faturamento é feito com base no uso real a cada 10 minutos. Serviços adicionais, como backups gerenciados ou suporte premium, podem ser contratados conforme necessário, mas sempre de forma opcional e clara. ## Exemplo Real: Quanto Você Vai Pagar? Imagine que você esteja lançando um pequeno aplicativo web. Uma configuração inicial poderia ser: - **2 núcleos vCPU**: ~R$ 27,80/mês - **4 GB de RAM**: ~R$ 55,60/mês - **40 GB de armazenamento SSD**: ~R$ 10,00/mês - **1 TB de tráfego de saída**: Incluso **Total estimado:** ~**R$ 93,40/mês** ## Conclusão Manter sua infraestrutura em nuvem com a **[Serverspace](https://serverspace.com.br/index.md) **é uma escolha inteligente e econômica. Com cobrança transparente, hardware de nível corporativo e suporte técnico 24/7, empresas de qualquer porte conseguem construir ambientes confiáveis que crescem junto com seus projetos — sem estourar o orçamento. Seja para iniciar com um servidor básico ou para montar uma arquitetura de nuvem corporativa completa, a Serverspace oferece a plataforma ideal para lançar, expandir e manter seu sucesso na nuvem. https://serverspace.com.br/support/help/o-que-e-mais-importante-ao-escolher-uma-nuvem-velocidade-custo-ou-sla.md O que é mais importante ao escolher um provedor de nuvem - velocidade, custo ou SLA? Saiba como priorizar seus negócios e por que o Serverspace é a escolha ideal para uma infraestrutura estável e escalável. Quando as empresas migram para a nuvem ou lançam novos projetos, uma das principais questões que surgem é: em que critérios focar ao escolher um provedor de nuvem? À primeira vista, parece que a opção ideal deveria ser rápida, acessível e confiável ao mesmo tempo. No entanto, na prática, muitas vezes é necessário definir prioridades de acordo com os objetivos do negócio. Vamos entender o que realmente importa — velocidade, custo ou SLA — e como encontrar o equilíbrio certo entre esses três fatores. ## Velocidade: Implantação Rápida e Alto Desempenho Para muitos projetos, a velocidade é um fator crítico. A implantação rápida de servidores permite que você comece a trabalhar quase imediatamente, o que é especialmente importante para startups e equipes dinâmicas. Mas velocidade na nuvem não é apenas a criação rápida de uma máquina virtual. Também inclui: - **Alta largura de banda de rede** - **Tempos de resposta rápidos para aplicações** - **Velocidade de leitura e gravação de dados em discos de armazenamento** Se o seu projeto exige alto desempenho (como operações de banco de dados, jogos online ou streaming de vídeo), é essencial verificar as especificações técnicas ao escolher um provedor de nuvem — tipos de processadores, disponibilidade de armazenamento SSD e capacidade de banda de rede. ## Custo: Controle de Despesas e Otimização do Orçamento Para pequenas e médias empresas, bem como para startups, o preço muitas vezes se torna um fator determinante. Transparência nas tarifas e flexibilidade na gestão de recursos são fundamentais. O ideal é que o provedor ofereça: - **Modelo Pay-as-you-Go (pague apenas pelo uso real)** - **Facilidade para aumentar ou reduzir recursos** - **Ausência de taxas ocultas** É importante lembrar que um preço muito baixo pode significar concessões em outros aspectos — como desempenho inferior ou suporte limitado. ## SLA: Confiabilidade e Garantias de Disponibilidade O SLA (Acordo de Nível de Serviço) define a qualidade mínima garantida do serviço. Normalmente, é expresso em percentual de uptime — por exemplo, 99,9%, como no Serverspace! Um SLA elevado é crítico para: - **Lojas online** - **Serviços financeiros** - **Aplicações corporativas** - **Projetos onde o tempo de inatividade gera prejuízos diretos** Ao avaliar um provedor de nuvem, não olhe apenas para o número do SLA. Verifique também se há compensação em caso de violação do SLA e a rapidez da resposta do suporte técnico. ## Como Escolher a Solução Ideal? A melhor opção é encontrar um provedor que ofereça um equilíbrio entre velocidade, custo e confiabilidade. Antes de contratar, responda a si mesmo: - Quão crítica é a velocidade de lançamento do meu projeto? - Qual orçamento mensal estou disposto a investir? - Posso arcar com uma possível indisponibilidade do serviço? Sua escolha deve sempre estar alinhada às necessidades específicas do seu projeto. Você pode começar com um plano mais acessível e ir escalando conforme seu negócio cresce. ## Por que Escolher o Serverspace? No Serverspace, você encontra o equilíbrio perfeito que o seu projeto precisa: Implantação de servidor ultrarrápida — seu servidor funcionando em apenas 2 minutos, com processadores Intel Xeon Gold e armazenamento SSD de alta velocidade. Faturamento transparente e flexível — modelo Pay-as-you-Go: pague apenas pelos recursos utilizados, com cobrança a cada 10 minutos. Confiabilidade garantida com SLA de 99,9% — disponibilidade assegurada com compensação em caso de violação. Tráfego ilimitado e IPs dedicados incluídos em todos os planos VPS e VPC. Suporte 24/7 — engenheiros reais disponíveis por telefone, painel de controle e chat no site. Com o Serverspace, você pode focar no crescimento do seu projeto sem se preocupar com obstáculos técnicos. ???? Saiba mais sobre os [planos do Serverspace](https://serverspace.com.br/pricing.md) ou descubra como migrar para o [Serverspace](https://serverspace.com.br/index.md) [aqui](https://serverspace.com.br/index.md). https://serverspace.com.br/support/help/infraestrutura-como-codigo-iac-uma-abordagem-moderna-para-o-gerenciamento-de-infraestrutura.md Saiba o que é Infraestrutura como Código (IaC) e como a automação do gerenciamento da infraestrutura por meio de código melhora a velocidade, a estabilidade e a escalabilidade dos projetos. Ferramentas populares, benefícios da IaC e práticas recomendadas neste artigo… Hoje, a infraestrutura não se limita mais a servidores físicos, cabos de rede ou hardware localizado em data centers remotos. Ela evoluiu para algo muito mais dinâmico — uma combinação de recursos físicos com o código que os define, gerencia e orquestra. Essa mudança fundamental deu origem ao conceito de **Infrastructure as Code (IaC)** — uma abordagem em que a infraestrutura não é configurada manualmente por painéis de controle ou comandos no terminal, mas sim provisionada, configurada e gerenciada totalmente por meio de código. Com o IaC, engenheiros podem definir ambientes completos — incluindo servidores, bancos de dados, redes e políticas de segurança — em arquivos legíveis, que podem ser versionados, revisados e testados como qualquer outro código. Em vez de gastar horas ou dias configurando servidores manualmente, as equipes automatizam todo o ciclo de vida da infraestrutura com apenas algumas linhas de código. Essa automação não só economiza tempo, mas também traz **consistência**, reduz erros e permite **implantações escaláveis e repetíveis** em diferentes ambientes. A infraestrutura se tornou programável — e isso mudou tudo. ## O que isso significa? Infrastructure as Code é uma prática na qual servidores, redes e outros recursos são gerenciados por meio de **scripts** ou arquivos de configuração declarativos. Com o IaC, você pode: - **Lançar máquinas virtuais** - **Configurar redes** - **Instalar e gerenciar softwares** - **Provisionar bancos de dados e outros serviços** Tudo isso **sem a necessidade de acessar painéis de controle** dos provedores de nuvem ou de fazer login manualmente nos servidores via SSH. Em termos simples, o IaC trata sua infraestrutura como código de aplicação, o que significa que ela pode ser: - **Armazenada em sistemas de controle de versão, como o Git** - **Testada automaticamente** - **Implantada por meio de pipelines CI/CD** - **Restaurada facilmente em caso de falha** ## Por que o IaC é importante? **1. Automação e Velocidade** Implantar novos ambientes, configurar redes ou instalar softwares passa a levar **minutos, não horas ou dias**. Um único script pode levantar toda a stack de produção com facilidade. **2. Consistência e Repetibilidade** Acabou o tempo dos erros de configuração manuais ou dos "passos especiais" não documentados. O mesmo código sempre gerará o mesmo ambiente — em desenvolvimento, staging e produção. **3. Controle de Versão e Rastreabilidade** Ao armazenar a infraestrutura em repositórios Git, você ganha: - Capacidade de fazer rollback para versões estáveis - Visibilidade clara sobre quem fez cada alteração - Histórico completo das mudanças antes de qualquer release **4. Redução de Erros Humanos** Configurações manuais estão sujeitas a falhas — muitas vezes só detectadas em produção. O IaC reduz drasticamente esse risco por meio da automação confiável. **5. Escalabilidade Facilitada** Com infraestrutura definida em código, escalar horizontalmente é simples — seja para 10, 100 ou 1.000 servidores, basta replicar a configuração. **6. Integração Total com DevOps** O IaC é um pilar fundamental das práticas modernas de **DevOps**. Ele permite **integração e entrega contínua (CI/CD)** não apenas do código da aplicação, mas também da própria infraestrutura. ## Ferramentas populares de IaC - **Terraform** — uma das soluções líderes para gerenciar infraestrutura em nuvem como código, compatível com vários provedores. - **Ansible** — ferramenta poderosa de gerenciamento de configuração, ideal para manter sistemas em execução. - **Pulumi** — permite definir infraestrutura com linguagens de programação familiares como Python, TypeScript, entre outras. ## Em resumo **Infrastructure as Code (IaC)** representa uma mudança profunda na forma como equipes modernas de TI projetam, implantam e gerenciam a infraestrutura. Ao tratar configurações como código, as organizações ganham velocidade, consistência e escalabilidade como nunca antes. O IaC capacita equipes a: - **Automatizar implantações complexas** - **Minimizar erros humanos** - **Garantir ambientes reproduzíveis entre dev, staging e produção** Ele também melhora a colaboração por meio de controle de versão, revisões de código e reversões — assim como fazemos com código de software. Esse nível de controle e transparência reduz riscos operacionais e acelera a inovação. À medida que os ambientes em nuvem se tornam mais complexos e as demandas por agilidade aumentam, o IaC deixa de ser um diferencial para se tornar uma **necessidade**. Adotar Infrastructure as Code é construir uma base mais confiável, escalável e preparada para o futuro. Se você ainda não usa IaC, agora é o momento ideal para adotá-lo e desbloquear todo o potencial da gestão moderna de infraestrutura. ## Base de Conhecimento da Serverspace A [Base de Conhecimento da Serverspace](https://serverspace.com.br/support.md) é um recurso essencial para ajudar usuários a navegar com eficiência no universo da infraestrutura em nuvem. Seja você um iniciante criando sua primeira máquina virtual ou um profissional configurando uma rede complexa, a Base de Conhecimento oferece **guias claros, detalhados e práticos** para cada etapa. Ela cobre uma ampla variedade de tópicos, incluindo: - **Configuração de servidores** - **Ajustes de rede** - **Instalação de sistemas operacionais** - **Assuntos avançados como segurança, conteinerização e integração com Infrastructure as Code (IaC)** Cada artigo é: - Acessível para iniciantes, mas com profundidade para usuários experientes - Repleto de **passo a passo, capturas de tela e dicas de solução de problemas** Atualizada regularmente com as últimas tecnologias e recursos da plataforma, a Base de Conhecimento da Serverspace garante que você tenha sempre **informação confiável e atualizada** ao seu alcance. Ela é **mais do que documentação** — é uma base para aprendizado, resolução de problemas e aproveitamento máximo da sua infraestrutura em nuvem com a **[Serverspace](https://serverspace.com.br/index.md)**. https://serverspace.com.br/support/help/infraestrutura-de-nuvem-para-desenvolvedores-praticas-recomendadas-no-serverspace.md Infraestrutura de nuvem para desenvolvedores: práticas recomendadas para implantação, automação e dimensionamento no Serverspace. Acelere o desenvolvimento e garanta a confiabilidade de seus projetos com soluções modernas de nuvem! Hoje, mais do que nunca, os desenvolvedores precisam de uma infraestrutura confiável, flexível e ágil para executar aplicações, testar soluções e escalar projetos. As tecnologias em nuvem oferecem tudo isso sem desperdício de tempo ou dinheiro. Mas, para tirar o máximo proveito, é essencial seguir as melhores práticas. Vamos ver como construir uma infraestrutura em nuvem eficiente com a [Serverspace](https://serverspace.com.br/index.md). **Por que os desenvolvedores escolhem a nuvem?** As soluções em nuvem oferecem aos desenvolvedores uma série de vantagens inegáveis: - **Rápida implantação de servidores e ambientes de desenvolvimento** - **Escalabilidade conforme o crescimento do projeto** - **Redução de custos com hardware e manutenção** - **Acesso a partir de qualquer lugar do mundo** - **Maior confiabilidade e segurança de dados** Esses benefícios são especialmente valiosos em um cenário de requisitos de negócios em constante mudança e prazos curtos para lançamento de produtos no mercado. ## Melhores práticas para desenvolvedores trabalhando com nuvem **1. Use a abordagem "Infraestrutura como Código" ([IaC](https://serverspace.com.br/articles/infraestrutura-como-codigo-iac-uma-abordagem-moderna-para-o-gerenciamento-de-infraestrutura.md))** Implemente servidores, configurações de rede e ambientes automaticamente com ferramentas como Terraform ou Ansible. Isso evita erros humanos, permite escalar rapidamente e facilita a migração entre ambientes. Na Serverspace: há um provedor oficial [do Terraform disponível](https://serverspace.com.br/services/serverspace-terraform-provider.md), permitindo criar e gerenciar recursos com apenas algumas linhas de código. **2. Crie ambientes isolados** Implemente servidores em nuvem separados ou redes privadas virtuais (VPCs) para desenvolvimento, testes e produção. Isso reduz o risco de erros acidentais e permite testar com segurança. Na Serverspace: você pode criar uma [VPC](https://serverspace.com.br/services/virtual-private-cloud.md) completa com rede personalizada, roteamento e regras de segurança. **3. Automatize o escalonamento de recursos** Monitore a carga e aumente ou reduza automaticamente os recursos dos servidores conforme a atividade do projeto. Isso ajuda a otimizar os custos e manter alto desempenho. Na Serverspace: é possível ajustar rapidamente os parâmetros da [VPS pelo painel de controle](https://serverspace.com.br/services/cloud-servers.md) — em apenas alguns cliques. **4. Não se esqueça da segurança** - **Configure firewalls e ACLs de rede.** - **Use VPN para acesso seguro à infraestrutura.** - **Atualize regularmente os sistemas operacionais e softwares.** Na Serverspace: em cada [VPC](https://serverspace.com.br/services/cloud-servers.md) você pode gerenciar regras de segurança com flexibilidade e conectar serviços de [VPN personalizados](https://serverspace.com.br/services/cloud-vpn.md). **5. Faça backups regulares** Erros acontecem, mesmo com desenvolvedores experientes. Para evitar perda de dados, configure backups automáticos regulares dos seus servidores. Na Serverspace: há suporte para criação de snapshots e restauração de servidores a partir de backups com apenas alguns cliques. ## Por que a Serverspace é a melhor escolha para desenvolvedores? - ** Implantação de servidores em tempo recorde — do zero ao funcionamento em até 2 minutos** - ** Servidores potentes com processadores Intel Xeon Gold e armazenamento SSD** - ** Cobrança flexível no modelo Pay-as-you-Go — pague apenas pelos recursos usados, a cada 10 minutos** - ** APIs e utilitários de CLI práticos para automação da infraestrutura** - ** Confiabilidade com SLA de 99,9% e suporte técnico 24/7** Com a Serverspace, os desenvolvedores podem lançar ambientes de teste rapidamente, escalar suas soluções e focar totalmente no código — sem se preocupar com a complexidade da infraestrutura. ???? Pronto para acelerar o desenvolvimento? Comece agora com a [Serverspace](https://serverspace.com.br/index.md)! https://serverspace.com.br/support/help/folha-de-dicas-de-ci-cd-para-o-engenheiro-de-devops.md O que é CI/CD, como funcionam os processos automatizados de criação, teste e implantação. Exemplos de pipeline, melhores ferramentas, equipes e práticas para engenheiros de DevOps. Saiba como acelerar as versões e simplificar a infraestrutura. **CI/CD (Integração Contínua / Entrega/Implantação Contínua)** é uma prática de automação dos processos de build, testes e deploy de aplicações. ## Conceitos principais: - **CI (Integração Contínua)** – integração frequente de mudanças na branch principal + testes automáticos. - **CD (Entrega Contínua)** – preparação automática para lançamento (deploy manual). - **CD (Implantação Contínua)** – deploy automático em produção após testes bem-sucedidos. ## Estrutura típica de um pipeline: - **Build** (compilação do projeto) - **Test** (testes unitários e de integração) - **Lint** (verificação do estilo de código) - **Package** (empacotamento do artefato: **.jar**, imagem Docker, etc.) - **Deploy** (implantação no servidor ou cluster) ## Ferramentas básicas de CI/CD: | Ferramenta | Descrição | | --- | --- | | Jenkins | Clássico da automação | | GitLab CI | CI/CD integrado ao GitLab | | GitHub Actions | Automação via GitHub | | ArgoCD | Abordagem GitOps para Kubernetes | | Drone CI | CI leve e simples para Docker | ## Exemplo de .gitlab-ci.yml: ```yaml stages: - build - test - deploy build: stage: build script: - echo "Building the project..." - make build test: stage: test script: - echo "Running tests..." - make test deploy: stage: deploy script: - echo "Deploying application..." - make deploy only: - main ``` ## Comandos frequentes em CI/CD: | Comando | Finalidade | | --- | --- | | docker build | Construir imagem Docker | | docker push | Enviar imagem para o registro | | kubectl apply -f | Aplicar manifesto do Kubernetes | | helm upgrade | Implantar ou atualizar app no Kubernetes | | ansible-playbook | Executar playbook de deploy | ## Boas práticas para pipelines: - Divida o pipeline em etapas pequenas e independentes. - Minimize o tempo de execução (paralelização, cache). - Só faça deploy após testes bem-sucedidos. - Armazene segredos com segurança (Vault, Secrets Manager). - Implemente rollback para falhas no deploy. ## Exemplos rápidos de estágios: **Build Stage (Python):** ```bash pip install -r requirements.txt python setup.py sdist ``` **Test Stage (Node.js):** ```bash npm install npm test ``` **Deploy Stage (Docker + k8s):** ```bash docker build -t myapp:latest . docker push myregistry/myapp:latest kubectl rollout restart deployment myapp-deployment ``` ## Mini checklist para engenheiro(a) CI/CD: - **Verificar a sintaxe do arquivo CI** - **Garantir que todos os testes passem** - **Configurar corretamente os segredos** - **Separar os ambientes (dev/stage/prod)** - ** Verificar o rollback em caso de falha** ## Serverspace e CI/CD Quer simplificar a configuração de CI/CD e ter sempre uma infraestrutura confiável ao seu alcance? Com o [Serverspace](https://serverspace.com.br/index.md), você pode criar máquinas virtuais em minutos, automatizar o deploy via API e escalar rapidamente seus projetos conforme a demanda. Experimente o Serverspace e acelere o seu DevOps! https://serverspace.com.br/support/help/como-acelerar-as-imagens-do-docker-para-producao-otimizacao-seguranca-e-tamanho.md Saiba como reduzir o tamanho das imagens do Docker, acelerar a implantação e melhorar a segurança. Dicas práticas sobre compilações em vários estágios, compactação, seleção de imagens de base e automação. **Containerização** simplificou radicalmente o processo de entrega, escalonamento e manutenção de aplicações, tornando-se o padrão de fato nas práticas de DevOps. No entanto, junto com essa conveniência, surgiram novos desafios. Um deles são as **imagens Docker ineficientes**. Containers mal construídos geralmente se tornam excessivamente "pesados", resultando em processos de CI/CD mais lentos, uso excessivo de disco e memória — e, em alguns casos, vulnerabilidades críticas. **Otimizar imagens Docker** é uma etapa essencial para ambientes de produção. Abaixo, você confere recomendações práticas que ajudarão a criar containers leves, rápidos e seguros — sem dor de cabeça. ## 1. Use builds multi-stage (Multi-stage build) Uma das ferramentas mais poderosas para otimização. Ela permite separar o processo de build da imagem final, eliminando arquivos desnecessários da versão de produção. **Exemplo com Go:** ``` # Etapa de build FROM golang:1.22 AS builder WORKDIR /app COPY . . RUN go build -o app # Imagem mínima para produção FROM alpine:latest WORKDIR /app COPY --from=builder /app/app . CMD ["./app"] ``` **Vantagens:** - A imagem final contém apenas o binário e o necessário para executar. - Sem compiladores, bibliotecas extras ou arquivos temporários. ## 2. Escolha imagens base minimalistas Quanto menor a imagem base, mais leve e segura será a imagem final. **Recomendações:** - Use **alpine **em vez de **ubuntu **ou **debian**>, se seu app não depender de **glibc**. - Experimente as imagens **Distroless** do Google — elas contêm apenas o necessário para executar o app, sem shell ou pacotes extras. **Exemplo:** ``` FROM gcr.io/distroless/static COPY app / CMD ["/app"] ``` ## 3. Organize as instruções do Dockerfile para aproveitar o cache O Docker utiliza cache em camadas. Se seu código muda com frequência, você pode economizar tempo de build com a ordem certa dos comandos. **Boa estrutura:** ``` COPY go.mod . RUN go mod download COPY . . RUN go build -o app ``` Assim, o download das dependências será reutilizado enquanto **go.mod **não mudar. ## 4. Remova dependências temporárias e lixo Muitos pacotes só são necessários na fase de build. Remova-os para não carregá-los na imagem final. **Exemplo:** ```bash RUN apt-get update && \ apt-get install -y build-essential && \ make build && \ apt-get purge -y build-essential && \ apt-get autoremove -y && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ``` Isso pode reduzir dezenas de megabytes desnecessários. ## 5. Use compressão automática com docker-slim ```bash docker-slim analisa sua imagem e remove tudo que não for essencial. ``` **Exemplo:** ```bash docker-slim build --http-probe your-app:latest ``` O resultado é uma imagem **muito mais leve**, sem perda de funcionalidade. ## Recomendações e antipadrões - Mantenha as imagens compactas — idealmente abaixo de 100 MB. - Não adicione pacotes "por precaução" — cada MB conta na performance de deploy. - Verifique a segurança das imagens com o **trivy**: ``` trivy image your-app:tag ``` - **Nunca hardcode** segredos nas imagens — use variáveis de ambiente e gerenciadores de segredos. ## Dicas gerais - Use **.dockerignore** para evitar copiar arquivos desnecessários (**.git**, **node_modules**, logs etc.). - Minimize o número de comandos **RUN **combinando-os, reduzindo o número de camadas. - Automatize build e validação de imagens via CI/CD (GitHub Actions, GitLab CI, etc.). Ao seguir essas práticas, você não só acelerará o processo de build e entrega de containers, como também reduzirá significativamente o tamanho das imagens — essencial para ambientes em nuvem e clusters. Imagens menores significam downloads mais rápidos, menor consumo de banda e uso mais eficiente dos recursos do host. Além disso, evitar dependências supérfluas e usar imagens base mínimas reduz a superfície de ataque e facilita auditorias de segurança. ## Docker e Serverspace Deseja simplificar sua configuração de CI/CD e ter sempre uma infraestrutura confiável na ponta dos dedos? Com o [Serverspace](https://serverspace.com.br/index.md), você pode implantar máquinas virtuais em apenas alguns minutos, automatizar o fornecimento de aplicativos usando uma API avançada e dimensionar sua infraestrutura sem esforço para atender à crescente demanda. Não importa se você está criando do zero ou migrando um projeto existente, o **Serverspace** oferece ferramentas flexíveis e suporte para tornar a transição tranquila e segura. Além disso, graças a um rico C[loud Marketplace](https://serverspace.com.br/services/1-click-app-marketplace.md), você pode iniciar ambientes pré-configurados - incluindo Docker, Kubernetes, GitLab e outras ferramentas populares de DevOps - com um único clique. É uma solução ideal para desenvolvedores e equipes que desejam se concentrar na entrega, não na infraestrutura. Experimente o Serverspace e turbine seus fluxos de trabalho de CI/CD e DevOps hoje mesmo! https://serverspace.com.br/support/glossary/dpc.md Data Center (DC ou DPC) – um espaço especializado ou conjunto de estruturas projetado para hospedar e operar equipamentos de computação. Data Center (DC ou DPC) é um espaço especializado ou complexo de estruturas projetado para hospedar e operar equipamentos de servidores, redes e outros componentes de TI. Os data centers oferecem armazenamento, processamento e transmissão de dados para empresas e serviços de diferentes setores. ## Componentes Essenciais de um Data Center - **Servidores:** Responsáveis pelo processamento de dados e pela execução de aplicações. - **Dispositivos de Armazenamento:** Incluem HDs, SSDs e outros equipamentos dedicados ao armazenamento de informações. - **Infraestrutura de Rede:** Composta por switches, roteadores e outros dispositivos que garantem conectividade à internet e à rede local. - **Soluções de Resfriamento:** Mantêm a temperatura ideal para o funcionamento contínuo dos equipamentos. - **Sistemas de Energia:** Incluem no-breaks (UPS), geradores a diesel e outras fontes que asseguram fornecimento elétrico ininterrupto. - **Sistemas de Segurança:** Englobam vigilância por vídeo, controle de acesso físico, firewalls e softwares antivírus para garantir proteção completa. ## Funções Fundamentais dos Data Centers **Armazenamento de Dados:** Armazenamento seguro e confiável de grandes volumes de informação. **Processamento de Dados:** Execução de tarefas computacionais e de análise de dados. **Infraestrutura de Rede:** Conectividade entre dispositivos, usuários e sistemas. **Segurança:** Proteção física e lógica dos dados e dos equipamentos contra acessos não autorizados e ameaças externas. ## Data Centers da Serverspace Características dos [Data Centers da Serverspace](https://serverspace.com.br/infrastructure/data-centers.md): - **Geodistribuição:** A ausência de dependência de um único ponto físico torna a gestão em nuvem mais eficiente. Por isso, nossos equipamentos estão distribuídos em diversos data centers. - **Tolerância a Falhas:** Por meio de mecanismos automáticos de failover e redundância em todos os componentes críticos da infraestrutura física, nossa arquitetura não possui ponto único de falha. - **Segurança e Confiabilidade:** Cada data center é equipado com sistemas avançados de segurança que protegem contra interferências internas e externas. Seus projetos em nuvem estão totalmente protegidos. - **Localizações:** Nossos servidores em nuvem estão disponíveis em 6 países: Brasil, Estados Unidos, Países Baixos, Canadá, Cazaquistão e Emirados Árabes Unidos. https://serverspace.com.br/support/help/como-configurar-um-redirecionamento-https-a-partir-do-site.md Descubra como configurar o redirecionamento de HTTP para HTTPS no seu site usando o Nginx ou outros métodos. Muitas vezes, bots de mecanismos de busca armazenam informações em cache sobre páginas do site, o que pode levar o usuário a uma página vazia ou forçá-lo a acessar via protocolo HTTP inseguro, em vez de HTTPS criptografado. Para esses casos, existe o redirecionamento — que direciona o usuário de uma página para outro domínio ou endereço — e pode ser implementado em diferentes camadas. Neste material, mostramos as principais formas e situações! ## Redirecionamento de HTTP para HTTPS A conexão via protocolo HTTP já não é considerada segura há tempos, por isso muitos serviços adotaram o upgrade para HTTPS, com conexão criptografada. Nos servidores Apache e Nginx, há regras que permitem gerenciar hosts virtuais e o servidor em geral. Para configurar o upgrade automático da URL de HTTP para HTTPS, acesse os arquivos de configuração do host virtual e adicione regras de redirecionamento: ``` sudo nano /etc/nginx/sites-available/default ``` Por padrão, o arquivo de configuração se chama default. Se no seu caso for diferente, substitua o nome. Adicione a seguinte configuração: ```css server { listen 80; server_name example.com; return 301 https://$host; } server { listen 443 ssl; ssl_certificate /etc/nginx/keys/subkeys/certificate.crt; ssl_certificate_key /etc/nginx/keys/subkeys/private.key; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; server_name example.com; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; } ``` Captura 1 — Configuração com HSTS Os hosts virtuais são divididos em blocos server, com regras de tratamento de tráfego. Se o primeiro bloco receber um pacote na porta 80 (HTTP), ele retorna um return 301, instruindo o navegador a acessar o site via HTTPS. Além das configurações padrão, foi adicionado o cabeçalho Strict-Transport-Security, que informa ao navegador que ele deve forçar a conexão HTTPS. Essa medida mitiga ataques de downgrade HTTP, nos quais um atacante tenta forçar uma conexão insegura, sem autenticação e verificação de integridade — algo que o return 301 ajuda a prevenir. Captura 2 — Testando o redirecionamento Agora, vamos verificar se o redirecionamento está funcionando corretamente. ## Redirecionamento interno Se não quisermos enviar códigos de redirecionamento ao navegador, podemos utilizar o redirecionamento interno. O Nginx possui diversas diretivas que permitem tratar o tráfego internamente, sem que o usuário perceba. Exemplo: ``` server { listen 80; server_name example.com; location / { internal_redirect @check_antivirus; } location @check_antivirus { internal; root /var/www/html } location /url { internal_redirect /newurl; } location /newurl { internal; root /var/www/html } } ``` Captura 3 — Redirecionamento interno Neste exemplo, requisições feitas para / ou /url serão internamente redirecionadas para outro caminho, preservando o restante da URL. Por exemplo: uma chamada para /url/new/id?customer=675 será processada como /newurl/new/id?customer=675. Após ajustar o arquivo, valide a configuração com: ``` sudo nginx -t ``` Captura 4 — Testando o config ## Redirecionamento via HTML/JS Também é possível redirecionar no lado do cliente, usando HTML ou JavaScript. ```xml ``` O navegador processa a instrução e recarrega a página para a URL especificada. Captura 5 — Redirect HTML ``` window.location = 'https://www.example.com';\ ``` Esse código executa um redirecionamento direto. Ou com condição: ```css if (CONDITION) { window.location.href = 'https://www.example.com'; } ``` As possibilidades de tratar tráfego na web são amplas, desde HTML/JS no navegador até configurações em nível de servidor. Para testar essas configurações com segurança, recomendamos usar um ambiente isolado — por exemplo, um servidor VPS em uma das plataformas da Serverspace, como v[Stack cloud](https://serverspace.com.br/services/cloud-servers.md) ou [VMware cloud](https://serverspace.com.br/services/iaas.md). Clique em Criar servidor, selecione a configuração ideal e inicie a instância. Captura 6 — Criação do servidor Após o provisionamento, você pode acessar o servidor da forma que preferir. https://serverspace.com.br/support/help/o-que-e-paas.md PaaS (Platform as a Service) é uma plataforma baseada em nuvem para desenvolver e implementar aplicativos sem precisar gerenciar a infraestrutura. Conheça as vantagens, as desvantagens e os exemplos de serviços populares de PaaS, como Heroku, Google App Engine e… **PaaS (Platform as a Service)** é um modelo baseado em nuvem que oferece aos usuários uma plataforma completa para desenvolver, testar, implantar e gerenciar aplicativos, sem a necessidade de gerenciar a infraestrutura. Ele é um dos principais modelos de serviço em nuvem, ao lado do IaaS (Infrastructure as a Service) e SaaS (Software as a Service). O modelo PaaS torna o desenvolvimento de software muito mais ágil e prático, ao eliminar a necessidade de lidar com a configuração e manutenção da infraestrutura subjacente. Com essa abordagem, os desenvolvedores podem direcionar seus esforços exclusivamente para a criação, o teste e a melhoria de seus aplicativos, sem se preocupar com servidores, sistemas operacionais ou serviços de backend. Isso não apenas acelera o processo de desenvolvimento, mas também reduz erros operacionais e custos com manutenção técnica, proporcionando um ambiente mais eficiente e focado na inovação. ## Como Funciona o PaaS No modelo de computação em nuvem PaaS (Platform as a Service), os usuários têm acesso a um ambiente completo de desenvolvimento fornecido pelo provedor, que inclui sistemas operacionais, servidores virtuais, redes, bancos de dados e um conjunto robusto de ferramentas para desenvolvimento e automação. Tudo isso é gerenciado inteiramente pelo provedor da nuvem, o que elimina a necessidade de manutenção da infraestrutura por parte do usuário. Esse modelo permite que desenvolvedores e equipes de TI se concentrem exclusivamente na escrita, teste e implantação de seus aplicativos, sem se preocupar com atualizações de sistema, segurança da infraestrutura ou escalonamento manual. Essa abordagem acelera de forma significativa o processo de desenvolvimento e implantação, especialmente em projetos que exigem agilidade e flexibilidade. Entre os exemplos mais conhecidos de plataformas PaaS estão o Heroku, o Google App Engine e o Microsoft Azure App Service, que oferecem recursos integrados como gerenciamento de banco de dados, autenticação de usuários, escalabilidade automática e monitoramento em tempo real. Esses serviços tornam possível transformar uma ideia em uma aplicação funcional em questão de minutos, promovendo produtividade e inovação sem a sobrecarga técnica tradicional. ## Vantagens do PaaS ### Redução de Custos Operacionais Uma das principais vantagens do PaaS é a eliminação da necessidade de gerenciar a infraestrutura. A plataforma cuida de todos os aspectos relacionados ao hardware dos servidores, atualizações e outras tarefas técnicas, permitindo que as empresas se concentrem no desenvolvimento de aplicativos, em vez de manter os sistemas de backend. ### Escalabilidade As plataformas PaaS permitem escalar facilmente os aplicativos conforme a demanda. À medida que a base de usuários cresce, o PaaS ajusta automaticamente a alocação de recursos, permitindo que você pague apenas pelos recursos que realmente utiliza, evitando custos desnecessários. ### Desenvolvimento Mais Rápido Com ferramentas e bibliotecas pré-configuradas, o desenvolvimento e a testagem de aplicativos tornam-se significativamente mais rápidos. Muitas plataformas PaaS também oferecem recursos integrados para monitoramento, registro e implantação, o que acelera ainda mais o processo de lançamento. ### Integração com Outros Serviços de Nuvem Muitas soluções PaaS integram-se facilmente com outros serviços de nuvem, como armazenamento e análise de dados. Essa integração simplifica a construção de aplicativos complexos que exigem uma variedade de tecnologias baseadas em nuvem. ### Atualizações e Segurança Automáticas As plataformas PaaS geralmente oferecem atualizações automáticas e patches de segurança, garantindo que os aplicativos permaneçam atualizados e protegidos contra vulnerabilidades. ## Desvantagens do PaaS ### Flexibilidade Limitada Uma vez que o PaaS disponibiliza um ambiente completo e integrado, ele proporciona aos desenvolvedores uma base sólida para criar, testar e implantar aplicações com mais agilidade e menos preocupações com a infraestrutura subjacente. Nesses casos, o PaaS pode não fornecer a flexibilidade necessária para projetos mais especializados. ### Dependência do Provedor O uso de PaaS normalmente envolve a dependência de um provedor específico de nuvem. Se o provedor mudar seu modelo de preços, termos de serviço ou descontinuar o suporte a determinadas tecnologias, isso pode representar dificuldades para os usuários que dependem dessa plataforma. ### Compartilhamento de Recursos e Desempenho Os recursos do PaaS geralmente são compartilhados entre vários usuários, o que pode levar a problemas de desempenho, especialmente em períodos de alta demanda. ## Quando você deve usar a PaaS? A PaaS é a solução ideal para startups, pequenas equipes e empresas que precisam desenvolver e implantar aplicativos rapidamente, sem querer perder tempo gerenciando a infraestrutura. Essa metodologia disponibiliza um ambiente pré-configurado que libera os desenvolvedores da necessidade de gerenciar aspectos técnicos da infraestrutura, permitindo que dediquem seu tempo e energia exclusivamente ao desenvolvimento e à evolução de suas aplicações. A PaaS é especialmente útil quando novas ideias ou conceitos precisam ser testados rapidamente, os aplicativos precisam ser dimensionados sem um grande investimento de capital ou quando a equipe não tem experiência em administração de servidores e configuração de infraestrutura. Além disso, a PaaS reduz significativamente os custos de manutenção porque oferece um ambiente totalmente gerenciado que inclui todas as ferramentas necessárias para desenvolvimento, teste e monitoramento. Com esses recursos, as equipes podem chegar ao mercado mais rapidamente e as empresas podem se concentrar na inovação sem se distrair com os detalhes técnicos e as tarefas associadas à manutenção do servidor. A PaaS também facilita a adaptação às mudanças, dimensionando a infraestrutura à medida que o aplicativo cresce, o que é especialmente importante para as startups que buscam crescer rapidamente e atrair usuários. ## Conclusão O modelo PaaS proporciona um ambiente eficiente e prático para o desenvolvimento e a implantação de aplicações, eliminando a complexidade da administração de infraestrutura. Com isso, os desenvolvedores podem direcionar seus esforços exclusivamente para a criação de soluções e funcionalidades, sem se preocupar com servidores, sistemas operacionais ou configurações técnicas. Embora o PaaS seja uma ótima solução para muitos desenvolvedores, ele tem limitações e pode não ser adequado para todos os tipos de projetos. https://serverspace.com.br/support/help/como-resolver-o-erro-de-inicializacao-e-suas-causas.md Os erros de inicialização são problemas comuns de desenvolvimento que podem ocorrer durante a execução de aplicativos, sistemas operacionais, contêineres e scripts. Saiba como diagnosticar e resolver efetivamente os erros de inicialização, incluindo erros de configuração, erros de sintaxe e… **Erros de inicialização (init errors)** estão entre os problemas mais frustrantes e comuns enfrentados por desenvolvedores, administradores de servidores e até mesmo usuários comuns. Esses erros podem ocorrer em diversos contextos: durante a inicialização do sistema operacional, de aplicativos, scripts, bibliotecas ou até contêineres. Neste artigo, vamos explorar de onde vêm esses erros e como diagnosticá-los e corrigi-los de forma eficaz. ## O que é init e por que é importante? O termo **init** é uma abreviação de _inicialização_. Dependendo do contexto, isso pode se referir a: - Processo de inicialização do sistema (no Linux: init, systemd, upstart, etc.); - Inicialização de uma biblioteca ou módulo no código; - Inicialização de subsistemas gráficos, de rede ou outros em jogos ou aplicativos; - A função **__init__()** no Python, frequentemente confundida com erros de inicialização; - Script de inicialização (init script) para configurar o sistema ou ambiente. ## Causas Comuns de Erros de Inicialização **1. Arquivo de configuração/init ausente ou corrompido** **Exemplo de erro:** ``` init error: missing config.json ``` **Solução:** Verifique se o arquivo necessário existe, tem as permissões corretas e está no formato apropriado. Às vezes, deletar e gerar novamente o arquivo de configuração resolve. **2. Erro de sintaxe ou nos parâmetros de inicialização** **Exemplo de erro (Python):** ``` TypeError: __init__() missing 1 required positional argument ``` **Solução:** Verifique como o construtor está sendo chamado. Certifique-se de que todos os argumentos obrigatórios foram passados ao criar o objeto. **3. Problemas ao inicializar sistemas gráficos/áudio (ex: em jogos)** **Exemplo de erro (Unity, Unreal Engine):** ``` Init error: failed to initialize graphics device ``` **Possíveis causas:** - Falta de suporte à versão exigida do OpenGL/DirectX/Vulkan; - Drivers de vídeo desatualizados ou corrompidos; - O jogo está sendo executado em uma plataforma não suportada (ex: servidor sem interface gráfica). **Soluções:** - Atualize os drivers da placa de vídeo; - Execute o aplicativo em modo de compatibilidade; - Tente usar o modo de renderização **-force-opengl** ou **-force-d3d11** (no Unity); - Verifique os requisitos de sistema do aplicativo. **4. Erros ao iniciar contêineres (Docker, LXC)** **Exemplo de erro:** ``` container failed to start: init error: exec format error ``` **Possíveis causas:** - Comando ou formato de execução incorretos; - Contêiner construído para uma arquitetura diferente (ex: x86 vs ARM); - A imagem está corrompida ou não foi totalmente carregada. **Soluções:** - Verifique se a arquitetura do host e da imagem são compatíveis; - Revise os campos ENTRYPOINT e CMD no Dockerfile; - Tente reconstruir a imagem (**docker build --no-cache**). **5. Problemas com systemd/init.d no Linux** **Exemplo de erro:** ``` Failed to start MyService.service: Unit myservice.service not found. ``` **Soluções:** - Verifique se a unidade existe (**/etc/systemd/system/myservice.service**); - Recarregue a configuração do systemd: **systemctl daemon-reexec**; - Confirme se a unidade está corretamente configurada (descrição, caminho do executável, dependências). ## Dicas Universais para Resolver Init Errors - **Leia os logs:** Use **journalctl**, **dmesg**, **systemctl status**, **docker logs**,** debug.log **e outras ferramentas. - **Verifique dependências:** Muitas vezes o erro está ligado à ausência de bibliotecas ou módulos. - **Reproduza um exemplo mínimo:** Reduza o cenário ao essencial para isolar o problema. - **Verifique compatibilidade de versões:** Importante para bibliotecas, linguagens e componentes de sistema. - **Consulte a documentação:** Erros de inicialização muitas vezes já foram documentados ou discutidos no GitHub ou Stack Overflow. ## Conclusão Erros de inicialização podem ser irritantes, mas com um método sistemático, geralmente são resolvidos rapidamente. O segredo está em entender o contexto da inicialização e estar pronto para analisar cuidadosamente os logs. Quanto mais cedo você aprender a interpretar mensagens de erro, mais rápido será capaz de corrigi-las — ou até mesmo evitá-las completamente. https://serverspace.com.br/support/help/como-configurar-a-rede-no-docker.md Aprenda a configurar redes no Docker para uma comunicação eficiente entre contêineres. Explore as redes bridge, host, overlay e macvlan. Uma das tecnologias mais revolucionárias foi a virtualização/containerização, que rompeu com o conceito tradicional de "uma máquina - um serviço". Se antes as empresas alugavam servidores inteiros para rodar suas aplicações, hoje é possível gerenciar espaços virtuais isolados, onde cada serviço possui seu próprio sistema de arquivos, processos e rede. Muitos projetos modernos já são baseados nesse conceito, em que sistemas inteiros funcionam em um único servidor. Para isso, é essencial entender como funciona o sistema de rede nas plataformas de virtualização. Neste material, vamos abordar a implementação prática de uma infraestrutura de rede para contêineres. ## Algoritmo da rede no sistema operacional Para entender como os contêineres se comunicam, é preciso conhecer o subsistema de rede do sistema operacional, composto por interfaces, arquivos de configuração, netfilter e tabelas de roteamento. Captura de tela nº 1 — Pilha de rede - O pacote de dados chega à interface após ser processado pelo driver; - Em seguida, passa pelo mecanismo de roteamento, que decide se o pacote deve ser redirecionado ou entregue ao aplicativo; - Durante esse processo, é aplicado o filtro de pacotes, que pode modificar e bloquear o tráfego; - Por fim, o tráfego sai da interface de rede da máquina. Com esses componentes, é possível montar uma infraestrutura virtual de rede, mas ainda falta um "switch" virtual para organizar o ambiente. Para isso, utilizamos dispositivos de rede virtuais. Agora, o esquema da pilha de rede com redes de contêineres é assim: Captura de tela nº 2 — Pilha de rede com contêineres No contexto dos contêineres, cada um possui seu próprio namespace, com interfaces, regras de netfilter e tabelas de roteamento. No entanto, esses ambientes não conseguem se comunicar entre si diretamente. Para habilitar a comunicação, usamos pares de interfaces virtuais veth, que permitem copiar o tráfego entre diferentes namespaces. Para concluir, conectamos essas interfaces a uma ponte (bridge), que atua como um switch virtual de camada 3, capaz de rotear pacotes entre ambientes. ## Tipos de conexão de contêineres O Docker oferece diferentes drivers para configuração de redes: - bridge: cria uma rede interna com roteamento e comutador próprios; - host: usa diretamente o namespace de rede do host, sem isolação; - none: desativa a rede do contêiner; - overlay: conecta vários daemons do Docker em uma rede unificada; - macvlan: cria subinterfaces vinculadas ao host para comunicação direta com a rede externa; - ipvlan: semelhante ao macvlan, mas com base em endereços IP. Neste artigo, vamos considerar a configuração dos métodos principais e prioritários! ```bash docker network ``` Captura de tela nº 3 — Docker info O comando de ajuda fornece informações básicas sobre opções de conexão de redes e contêineres. ## Bridge ou MacVlan Vamos considerar uma tarefa operacional, onde temos um conjunto de contêineres representando um sistema de informação. Nesses casos, é recomendável manter a gestão simples e a performance alta. Captura de tela nº 4 — Configuração da rede MacVlan Vamos configurar MacVlan ou bridge, permitindo que o contêiner se comunique pela interface de rede do host com configurações próprias. Captura de tela nº 5 — Criação da rede MacVlan ```bash sudo docker network create -d macvlan \ --subnet=192.168.58.0/24 \ --gateway=192.168.58.1 \ -o parent=eth0 macvlan_network ``` Inicie um contêiner nessa rede: ```bash sudo docker run --network macvlan_network --ip 192.168.58.200 python /bin/bash -c 'while true; do sleep 1000; done' ``` Verifique a conectividade: ```bash sudo docker exec -it boring_galois /bin/bash -c "ping -c 4 192.168.58.1 && ping -c 4 8.8.8.8" ``` Captura de tela nº 6 — Teste da rede MacVlan Após o teste, você pode segmentar a rede para a nova infraestrutura. ## Conexão via NAT/LAN com bridge Também é possível usar conexões alternativas com segmentação mais restrita. ```bash sudo docker network create -d bridge --subnet=192.168.2.0/24 --gateway=192.168.2.1 gg ``` Captura de tela nº 7 — Criação da rede bridge Conecte o contêiner: ```bash sudo docker run -d --network gg debian bash -c 'while true; do sleep 1000; done' ``` Verifique conectividade: ``` ping 192.168.2.2 ``` Captura de tela nº 8 — Teste da rede bridge Redirecionamento de portas: ```bash sudo docker run -d -p 80:80 --network gg debian bash -c 'while true; do sleep 1000; done' ``` Use este comando para inspecionar: ```bash sudo docker network inspect ``` ## Conexões none e host none Cria contêiner com rede desativada: ```bash sudo docker network create -d none ``` Captura de tela nº 9 — Rede isolada host: usa rede do sistema hospedeiro: ```bash sudo docker run -it --network host alpine sh ``` Captura de tela nº 10 — Rede host Isso garante acesso direto às interfaces e portas do host. Infraestrutura com Serverspace Caso você precise de recursos adicionais, use os servidores em nuvem da Serverspace. Eles oferecem [VPS](https://serverspace.com.br/services/vps-server.md) isolados para ambientes virtualizados e testes de rede. Captura de tela nº 11 — Criação do servidor A implantação leva apenas alguns minutos. Em seguida, conecte-se e comece a configurar sua infraestrutura de rede segura, com autenticação, filtragem e controle de tráfego. https://serverspace.com.br/support/help/como-voce-implanta-o-n8n-no-seu-servidor.md Saiba como implantar o n8n em casa: instalação local, Docker, servidores em nuvem. Instruções passo a passo para configurar a automação. Todos estão simplesmente consumidos por tarefas repetitivas e semelhantes, especialmente quando frequentemente se resumem a "copiar" e "colar". Os sistemas de CRM se tornaram uma das soluções para processos operacionais nos negócios que podem ser totalmente otimizados, no entanto, logo se tornaram escassos. Grandes empresas desenvolveram suas próprias soluções de automação, mas para isso tinham as pessoas e os recursos, o que claramente é inacessível para pessoas comuns resolverem suas tarefas. Por isso, a equipe de desenvolvimento implementou o projeto open-source n8n, que em formato low-code permite automatizar cadeias operacionais. Neste artigo, veremos como implantar rapidamente uma solução de automação de tarefas auto-hospedada! ## O que é o n8n e como eu instalo? **n8n** é um servidor de aplicações que contém muitos conectores ou nós que sabem como se comunicar com soluções externas via API e transferir informações entre si para construir uma cadeia de processamento. Existe um gatilho ou evento que inicia todo o processo e o restante dos nós de processamento, incluindo agentes de IA, cada um dos quais executa suas próprias funções. Para a instalação, usaremos uma imagem Docker com uma licença de servidor da Community Edition. Instalaremos todas as dependências antes de começar o trabalho. Para isso, insira a linha — dependendo do seu gerenciador de pacotes, os comandos podem variar: ```bash apt install docker.io docker-compose -y ``` Captura de tela №1 — Preparação Depois disso, criaremos um diretório temporário e configuraremos o serviço n8n via arquivo Docker Compose: ```yaml version: '3' services: n8n: image: n8nio/n8n restart: unless-stopped ports: - "2002:2002" environment: - N8N_BASIC_AUTH_ACTIVE=true - N8N_BASIC_AUTH_USER= - N8N_BASIC_AUTH_PASSWORD= - N8N_HOST= - N8N_PORT= - N8N_PROTOCOL=http - N8N_WEBHOOK_URL=http:// - N8N_SECURE_COOKIE=false volumes: - n8n_data:/home/node/.n8n networks: - n8n_network volumes: n8n_data: networks: n8n_network: driver: bridge ``` Captura de tela №2 — Configuração As variáveis de ambiente que são passadas para o contêiner são responsáveis pela configuração da imagem. A imagem acima mostra o conjunto básico de configuração. Você precisará inserir seu nome de usuário, senha e o endereço IP do dispositivo onde estará disponível. Assim como a porta e a URL — é necessário especificar o IP ou um nome de domínio com o esquema da URL. Se planeja usar sem SSL, deixe como http. Depois, execute a imagem com o comando: ```bash docker-compose run -d ``` Captura de tela №3 — Inicialização A imagem será carregada no dispositivo e aceitará todas as variáveis de ambiente, após o que você poderá se conectar a ela usando a URL. Registre uma conta usando o formulário: Captura de tela №4 — Criação da Conta Depois disso, você poderá receber a chave de ativação por e-mail e inseri-la nas configurações. Pronto, a plataforma está instalada e pronta para uso. ## Como trabalhar com o n8n? É importante entender que este é um servidor de aplicações que gera/processa requisições de API para soluções externas e, em seguida, insere cada campo do pacote recebido em uma variável, que pode ser usada pelos módulos seguintes. Por exemplo, temos um modelo Microsoft Phi-4 GPT que pode analisar qualquer um dos seus fluxos de dados. O esquema mais simples se parece com isto: Captura de tela №5 — Phi-4 Onde o gatilho é um chat no qual podemos nos comunicar com o modelo. Depois disso, o próprio modelo é um módulo que gera uma requisição API, transmitindo o resultado para o nó de filtragem de saída. Você pode importar o esquema a partir do [nosso arquivo](https://drive.google.com/file/d/1_eLieOj89_qy76_jbjd_WR3og4X8larw/view) — basta selecionar os três pontos no canto superior direito e clicar em "importar via arquivo". Você só precisa acessar nosso painel e [criar uma chave de API](https://my.serverspace.com.br/gpt), depois copiá-la: Captura de tela №5 — Chave API Abra o nó Phi-4 e insira toda a sua chave no campo Value do cabeçalho Authorization: Captura de tela №6 — Cabeçalho Depois, entre no chat e escreva qualquer solicitação, como em um bot GPT clássico: Captura de tela №7 — Bot de Chat Agora você pode conectar qualquer gatilho ou outro bloco a ele, como mensagens do Telegram do seu bot ou avaliações de produtos de um marketplace — o mais importante é lembrar do modelo de dados de entrada e saída! Veja o screenshot acima e observe que usamos a variável chatInput para gerar a requisição API e, depois, o JSON é passado para a saída! Nos próximos materiais, veremos como construir cadeias analíticas mais complexas com uma visão geral de um grande número de nós, para que cada um possa montar suas próprias automações! https://serverspace.com.br/support/help/autenticacao-basica-com-senha-http.md Saiba como implementar a autenticação básica com senhas HTTP para proteger suas aplicações web. Guia passo a passo de configuração! Uma das fronteiras da proteção da informação é considerada ser o subsistema de identificação e autenticação, que fornece acesso seguro aos recursos. Como o segmento da Internet é constantemente escaneado por bots em busca de serviços vulneráveis, soluções públicas estão sob constantes ataques de força bruta. Captura de tela nº 1 — Ataques ao servidor Onde mecanismos fracos, e em alguns casos a ausência deles, levam a consequências críticas e danos! Neste artigo, vamos considerar um dos métodos básicos de autenticação — o HTTP Basic Auth, sua implementação e configuração pelo usuário. ## O que é HTTP Basic Auth? A autenticação pode ser bastante variada em termos de tipos de autenticação, ao usar: logins/senhas, tokens assinados, certificados, códigos TOTP, chaves de criptografia, etc. E também pela forma de implementação arquitetônica: módulos, serviços, serviços externos. No nosso caso, o HTTP Basic Auth fornece verificação básica por login e senha, sendo implementado como um módulo em soluções web/proxy. Onde as credenciais de autenticação são passadas no cabeçalho e codificadas em Base64. ``` Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= ``` Captura de tela nº 2 — Esquema Observe que a transmissão desse tipo de dados sensíveis deve ocorrer por meio de protocolos seguros! Neste caso, classicamente o SSL irá autenticar o servidor e formar uma conexão criptografada. Uma das desvantagens desse tipo de autenticação são as senhas fracas, que podem ser quebradas por ferramentas como o Medusa. ## Como configurar a autenticação? Vamos considerar um exemplo prático de como configurar essa autenticação no nginx. Primeiramente, vamos ao terminal e instalamos todas as dependências necessárias: ```bash sudo apt update sudo apt install nginx ``` Captura de tela nº 3 — Instalação Em seguida, precisamos criar um banco de dados com usuários, onde as senhas serão armazenadas em formato hash. Para isso, vamos instalar o utilitário e executar os comandos: ```bash sudo apt install apache2-utils ``` Onde cada um dos elementos tem um valor diferente: o caminho para o futuro banco de dados de usuários /etc/nginx/.htpasswd e o nome do usuário a ser criado — mike. ``` sudo htpasswd -c /etc/nginx/.htpasswd mike ``` Captura de tela nº 4 — Criar usuário Para criar o segundo e os usuários subsequentes, você deve remover a opção -c que cria um novo arquivo. Após o usuário estar no banco de dados, precisamos alterar as configurações. Vamos localizar nosso host virtual: ``` nano /etc/nginx/sites-available/default ``` Por padrão, o arquivo se chama default, mas no seu caso pode ser diferente! Vamos adicionar uma diretiva que permitirá a autenticação antes da conexão: ```css server { listen 80; server_name example.com; location / { auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; proxy_pass http://localhost:8080; } } ``` Captura de tela nº 5 — Configuração A autenticação pode ser especificada em um caminho web específico ou em todo o host virtual. Para isso, posicione as diretivas auth_basic_user_file e auth_basic nos blocos server ou location. Verifique a configuração antes de executar. Se estiver correta, o serviço será reiniciado: ``` sudo nginx -t && sudo systemctl reload nginx ``` Captura de tela nº 6 — Teste Depois disso, você pode acessar o endereço example.com e verificar o funcionamento do serviço ativado: Captura de tela nº 7 — Verificar resultado Ótimo, ao acessar o caminho /, a diretiva é acionada, o que nos permite verificar o arquivo com usuários e processar pacotes adicionais ao conectar. É recomendada a instalação do fail2ban, que pode limitar o número de solicitações falhas e impedir invasões. Na nossa base de conhecimento você pode encontrar a configuração de outros métodos de autenticação — Digest, NTLM, Kerberos e outros! Se você não tiver recursos suficientes, pode realizar as ações em servidores de nuvem potentes. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) isolados para uso comum e virtualizado. Captura de tela nº 8 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Após isso, você pode se conectar de qualquer uma das formas convenientes. Este serviço de infraestrutura é uma parte integrante da rede corporativa e do subsistema de segurança, permitindo implementar autenticação, filtragem de conteúdo, além de atuar como um gateway para que os usuários controlem os recursos acessados. https://serverspace.com.br/support/glossary/terraform.md Saiba o que é Terraform, como funciona e por que ele é essencial para automatizar e padronizar a infraestrutura em nuvem com eficiência. Terraform é uma ferramenta de gerenciamento de infraestrutura como código (Infrastructure as Code, IaC), desenvolvida pela HashiCorp. Com ela, é possível definir o estado desejado da infraestrutura por meio de código declarativo escrito em HCL (HashiCorp Configuration Language) ou JSON. ## Principais conceitos e funcionalidades do Terraform - **Definição de estado desejado:** Em vez de instruções passo a passo, o Terraform permite descrever a infraestrutura ideal em arquivos de configuração. - **Suporte a múltiplos provedores:** Compatível com AWS, Azure, Google Cloud Platform, Kubernetes e outros — possibilita o gerenciamento de ambientes híbridos ou multicloud. - **Gerenciamento completo de recursos:** Criação, alteração e exclusão de recursos como máquinas virtuais, redes, bancos de dados e containers, com controle de todo o ciclo de vida. - **Arquivos de estado:** Usados para rastrear o estado atual da infraestrutura e aplicar apenas as mudanças necessárias com precisão. - **Extensibilidade via plugins:** É possível criar provedores personalizados e estender a funcionalidade da ferramenta. - **Plano de execução:** Antes de aplicar as mudanças, o Terraform gera um plano mostrando o impacto das alterações. - **Suporte a módulos:** Permite organizar e reutilizar blocos de configuração com conjuntos de recursos e parâmetros. ## Para que serve o Terraform - **Padronização da infraestrutura:** Com IaC, é fácil replicar ambientes em diferentes regiões. Qualquer aspecto pode ser ajustado apenas editando os arquivos de configuração. - **Controle de versões:** Cada alteração na infraestrutura pode ser rastreada. Se algo não sair como o esperado, é possível reverter para uma versão anterior. - **Economia de tempo:** A automação acelera o provisionamento, a escalabilidade e a recuperação de ambientes, evitando tarefas manuais repetitivas. - **Resultados consistentes:** A infraestrutura é criada da mesma forma toda vez, reduzindo erros humanos. ## Instalação do Terraform Para instalar o Terraform, utilize o seguinte [link](https://registry.terraform.io/providers/itglobalcom/serverspace/latest/docs). O uso do Terraform facilita a automação da gestão de infraestrutura, inclusive em [servidores na nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md), tornando o processo mais confiável, escalável e reproduzível. A ferramenta ajuda a reduzir falhas e acelera o deployment de ambientes e aplicações. https://serverspace.com.br/support/glossary/unix.md Descubra o que é Unix, suas principais características, usos e por que ele ainda é essencial na tecnologia moderna. Unix é um sistema operacional desenvolvido nos anos 1960 pelos laboratórios Bell Labs. Tornou-se a base para muitos sistemas operacionais modernos devido à sua confiabilidade, multitarefa e flexibilidade. ## Principais características do Unix - Arquitetura em camadas: O Unix organiza seus componentes em vários níveis, o que garante estabilidade e escalabilidade. - Modularidade: Utiliza diversas pequenas ferramentas, cada uma com uma função específica. Elas podem ser combinadas para realizar tarefas complexas. - Modo multiusuário: Permite que vários usuários operem simultaneamente, cada um com seus próprios níveis de acesso. - Sistema de permissões: Garante segurança ao permitir a configuração detalhada de acesso a arquivos e processos. ## Uso do Unix Graças à sua robustez e flexibilidade, o Unix é usado em diversos contextos, como: - Servidores: Unix e seus derivados (como o Linux) são amplamente usados em servidores web, bancos de dados e outros serviços de rede. - Desenvolvimento de software: Muitos desenvolvedores preferem sistemas Unix por suas poderosas ferramentas de linha de comando e compatibilidade com várias linguagens. - Computação científica: Utilizado em pesquisas e instituições científicas para processamento de dados e cálculos avançados. - Sistemas embarcados: Sistemas operacionais baseados em Unix são comuns em roteadores e dispositivos IoT. ## Exemplos de sistemas baseados em Unix - Linux: Um dos sistemas operacionais de código aberto mais populares, amplamente usado em servidores e desktops. - BSD (Berkeley Software Distribution): Variante do Unix conhecida por sua estabilidade e segurança (como FreeBSD e OpenBSD). - AIX: Versão comercial do Unix desenvolvida pela IBM, utilizada em ambientes corporativos. - HP-UX: Sistema Unix da Hewlett-Packard, também voltado para o uso empresarial. Unix e seus derivados continuam desempenhando um papel fundamental no mundo da tecnologia moderna, oferecendo confiabilidade, segurança e desempenho. https://serverspace.com.br/support/glossary/gpu.md Entenda o que é GPU, como funciona e por que é essencial em jogos, IA e computação de alto desempenho. A **GPU (Graphics Processing Unit – Unidade de Processamento Gráfico)** é um dispositivo eletrônico especializado em realizar cálculos relacionados ao processamento gráfico e tarefas computacionais paralelas. Inicialmente desenvolvida para renderização de imagens, jogos e operações gráficas, a GPU evoluiu para atender uma ampla gama de aplicações de alto desempenho. ## Principais características e funções da GPU **Processamento paralelo:** A GPU possui centenas ou até milhares de núcleos capazes de executar tarefas simultaneamente. Isso a torna extremamente eficiente em tarefas que podem ser divididas em múltiplas operações independentes, como renderização gráfica ou análise de grandes volumes de dados. **Processamento gráfico:** Projetada para acelerar a renderização de gráficos 2D e 3D, a GPU realiza operações como rasterização, texturização e sombreamento (shading), garantindo maior fluidez visual. **Uso em deep learning e computação científica:** Graças à sua arquitetura paralela, as GPUs se tornaram essenciais em áreas como aprendizado profundo (deep learning) e pesquisa científica. Plataformas como CUDA (da NVIDIA) e OpenCL permitem a execução de tarefas computacionais intensas diretamente na GPU. **Processamento de vídeo e multimídia:** As GPUs também decodificam e codificam vídeos, otimizando a reprodução de conteúdo em alta definição e oferecendo suporte a recursos multimídia complexos. ## Aplicações da GPU **Jogos de computador:** A GPU é fundamental para oferecer gráficos realistas e de alta performance, suportando tecnologias como ray tracing (traçado de raios) e resoluções 4K ou superiores. **Design gráfico e profissional:** Áreas como modelagem 3D, animação e CAD (projeto assistido por computador) se beneficiam da aceleração gráfica oferecida pela GPU, reduzindo o tempo de renderização e possibilitando efeitos visuais complexos. **Cálculos científicos e de engenharia:** GPUs são utilizadas em simulações, modelagens e análises de grandes conjuntos de dados em setores como engenharia, física e meteorologia. **Aprendizado de máquina e inteligência artificial:** O treinamento de redes neurais com grandes volumes de dados é acelerado com o uso de GPUs, tornando-as indispensáveis em projetos modernos de IA. ## Principais fabricantes - **NVIDIA:** Reconhecida por suas GPUs da linha GeForce (para jogos) e Quadro (para uso profissional). Também desenvolve a plataforma CUDA, voltada para computação paralela. - **AMD:** Oferece as placas da série Radeon para gamers e Radeon Pro para profissionais. Suporta a plataforma OpenCL para desenvolvimento em GPU. - **Intel:** Recentemente, entrou no mercado de GPUs com soluções como a Intel Iris Xe (integrada) e planos para lançar placas gráficas dedicadas para desktops e servidores. A GPU é um componente essencial na computação moderna, indo além dos gráficos para atuar em tarefas de alto desempenho, como inteligência artificial, simulações científicas e automação industrial. https://serverspace.com.br/support/glossary/openssl.md Conheça o OpenSSL, a biblioteca usada para criptografia, certificados digitais e conexões seguras com TLS/SSL. O **OpenSSL** é uma biblioteca poderosa e amplamente utilizada para criptografia e conexões seguras. Ela oferece ferramentas para criptografar dados, gerar chaves, criar certificados digitais e trabalhar com os protocolos TLS/SSL. ## Principais funcionalidades do OpenSSL: - Criptografia e descriptografia de dados usando algoritmos simétricos e assimétricos (como AES, RSA, ECC e outros). - Geração e gerenciamento de chaves, incluindo criação de chaves privadas e públicas, e manipulação de pares de chaves. - Gerenciamento de certificados digitais, como criação de certificados autoassinados, geração de CSRs (Certificate Signing Requests) e verificação de cadeias de confiança. - Suporte a TLS/SSL para conexões seguras entre clientes e servidores. - Hash e assinaturas digitais com algoritmos como MD5, SHA-256, HMAC, além de assinaturas com RSA e DSA. ## Onde o OpenSSL é utilizado? - Em servidores web (como Nginx e Apache) para conexões HTTPS. - Em sistemas de VPN, como OpenVPN. - Em sistemas de assinatura digital e autenticação. - No desenvolvimento de software que requer segurança criptográfica. ## Exemplos de comandos OpenSSL: Gerar uma chave privada RSA de 2048 bits: ``` openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 ``` Criar um certificado autoassinado válido por 1 ano: ``` openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365 ``` OpenSSL é um projeto de código aberto, mas deve ser atualizado regularmente devido a vulnerabilidades conhecidas no passado (como o Heartbleed, em 2014). ## FAQ sobre OpenSSL - **OpenSSL é gratuito?** Sim. É distribuído sob a licença Apache 2.0, podendo ser usado em projetos comerciais e não comerciais. - **Como verificar a versão instalada do OpenSSL?** Execute o comando: ``` openssl version ``` - **Qual a diferença entre OpenSSL e LibreSSL?** O LibreSSL é um fork do OpenSSL criado pela equipe do OpenBSD, com foco em segurança e simplificação do código. - **Como gerar um certificado sem inserir os dados manualmente?** Use a opção **-subj** ou um arquivo de configuração. Exemplo: ``` openssl req -new -x509 -key private_key.pem -out certificate.pem -days 365 -subj "/CN=example.com" ``` - **Como verificar se um servidor suporta TLS 1.3?** Use o comando: ``` openssl s_client -connect example.com:443 -tls1_3 ``` O OpenSSL é essencial para a segurança digital moderna, sendo amplamente utilizado em servidores, sistemas de autenticação e softwares que exigem proteção criptográfica. https://serverspace.com.br/about/cases/como-a-port-louis-reduziu-custos-ao-migrar-websites-para-a-serverspace.md Descubra como a Port Louis otimizou sua infraestrutura digital e reduziu custos ao migrar seus websites para a cloud da Serverspace. Uma história real de eficiência e escalabilidade. ### Sobre a Port Louis A [Port Louis](https://www.portlouis.inf.br/) desenvolve e aplica tecnologias avançadas, com ênfase em automação e inteligência artificial, para que os esforços e recursos de nossos clientes e parceiros — sejam humanos, operacionais ou financeiros — sejam alocados de forma estratégica, gerando maior valor. Nossas soluções otimizam processos, reduzem custos, melhoram a governança e liberam as equipes para tarefas de maior valor cognitivo, com ganho expressivo de produtividade e motivação. ### Desafios e busca por alternativas Com a diversificação do seu portfólio de produtos, a Port Louis decidiu atualizar e publicar vários websites para melhorar a comunicação com os diversos públicos, o que gerou um aumento de custos. _"O principal problema eram os custos"_, destaca Adroado Frantz, sócio e CTO da Port Louis, ressaltando que este foi um dos fatores determinantes para a revisão de onde hospedar os sites da empresa. Além disso, surgiu a necessidade de descentralizar a infraestrutura: a equipe percebeu que seria interessante transferir a hospedagem dos websites e landing pages para um novo provedor a fim de facilitar o acesso por outros colaboradores, inclusive agências parceiras. _"Queríamos simplificar o acesso de terceiros que trabalham com a nossa equipe"_, afirma Adroaldo. Essa mudança aumentou a flexibilidade e reduziu a dependência de um único provedor. ### Por que escolher a Serverspace A alternativa foi encontrada rapidamente — após uma análise inicial das opções disponíveis no mercado, a escolha recaiu sobre a Serverspace. O fator decisivo foi o custo-benefício: _"A Serverspace oferecia um preço significativamente mais baixo para atender às nossas necessidades"_, explica Renata Soares, sócia-fundadora e CSO da Port Louis. Isso se mostrou ainda mais relevante no contexto do desejo de otimizar custos sem abrir mão de recursos primários chave. Outro ponto importante foi a facilidade de configuração e a interface intuitiva do painel da Serverspace. Para uma equipe que buscava reduzir o tempo gasto com tarefas administrativas, essa característica foi um diferencial. O painel da Serverspace permitiu uma navegação mais rápida e simplificou operações do dia a dia — desde a criação de servidores até a sua manutenção. Essa agilidade é importante para tarefas rotineiras e menos complexas, como no caso da hospedagem de websites e landing pages. ### Migração e uso da Serverspace A migração ocorreu de forma bastante tranquila: _"Criamos um novo servidor na Serverspace e o configuramos para o nosso projeto em WordPress"_, relata Adroaldo. Atualmente, a empresa utiliza um servidor na plataforma vStack Cloud, onde hospeda seus websites e landing pages. A equipe da Port Louis também contou com o suporte técnico da Serverspace para obter orientações sobre a melhor configuração de máquina para rodar aplicações em contêineres Docker, garantindo equilíbrio entre desempenho e custo. O processo de migração levou menos de um dia, e os resultados foram percebidos rapidamente: _"Redução de custos em mais de 65%" comenta Adroaldo, além de maior agilidade no desempenho do servidor e simplificação das tarefas diárias. "Criar um snapshot e restaurar uma versão foi fácil e rápido"_, completa. A equipe também destaca que poder pagar em Reais facilitou o controle financeiro por não depender mais da variação do dólar. Isso torna os custos mais previsíveis e facilita o planejamento financeiro. ### Pontos de melhoria na Serverspace Apesar do resultado positivo da migração e da estabilidade dos serviços, a equipe da Port Louis identificou alguns pontos que podem ser aprimorados na plataforma. O mais relevante foi a falta de documentação técnica, especialmente em português. Isso dificultou a configuração de componentes específicos de forma autônoma e tornou mais lento o processo de resolução de problemas menos comuns. A ampliação e a organização da base de conhecimento tornariam a plataforma ainda mais acessível para equipes com diferentes níveis de conhecimento técnico. Além disso, durante períodos de atualização do painel de controle, houve momentos pontuais de dificuldade no acesso à interface. No entanto, isso não impactou os projetos hospedados, que continuaram operando normalmente, sem interrupções. Melhorar a estabilidade do painel em momentos de atualização seria um benefício adicional para equipes que precisam de agilidade na gestão da infraestrutura. ### Conclusão A Port Louis migrou seus websites para a Serverspace e pretende seguir com o provedor para o serviço de hospedagem. _"A Serverspace trouxe mais praticidade e permitiu economia"_, resume Renata. Este caso mostra como uma revisão de gastos com infraestrutura e a avaliação de outros fornecedores no mercado pode resultar em redução de custos e mais controle operacional, sem comprometer a qualidade nem a performance. https://serverspace.com.br/support/glossary/banco-de-dados.md Descubra o que é um banco de dados, para que serve e veja exemplos de bancos de dados. Um banco de dados (BD) é uma coleção organizada de dados armazenados eletronicamente, projetada para guardar, consultar e recuperar informações. O banco de dados é composto pelos seguintes elementos: - Dados – as informações propriamente ditas que estão armazenadas. - Esquema – a estrutura do banco de dados, incluindo os tipos de dados, relações entre eles e restrições. - Linguagem de consulta – utilizada para criar, modificar e recuperar dados do banco. - Sistema de Gerenciamento de Banco de Dados (SGBD) – o software que gerencia o banco de dados, fornece acesso e executa consultas. Os bancos de dados são usados em qualquer lugar onde haja necessidade de processar e armazenar grandes volumes de dados, como: - Lojas virtuais – para armazenar informações sobre produtos, pedidos e clientes. - Redes sociais – para armazenar dados de usuários, amigos e publicações. - Bancos – para guardar informações sobre contas, transações e clientes. - Serviços online – para armazenar dados dos usuários, suas preferências e histórico. - Pesquisas científicas – para armazenar e analisar grandes volumes de dados. Exemplos de bancos de dados: - MySQL – um dos SGBDs mais populares, muito usado no desenvolvimento web. - PostgreSQL – um SGBD poderoso, usado em setores que vão da área financeira à pesquisa científica. - MongoDB – banco de dados orientado a documentos, usado em aplicações web e big data. - Microsoft SQL Server – SGBD desenvolvido pela Microsoft, utilizado em diversos setores. - Oracle Database – banco de dados robusto, muito usado por grandes empresas e órgãos públicos. Principais finalidades dos bancos de dados: - Armazenamento e gerenciamento de dados – para garantir o acesso eficiente e organizado às informações. - Análise e geração de relatórios – para extrair insights e gerar relatórios gerenciais. - Automatização de processos – para facilitar tarefas e fluxos de trabalho. - Segurança da informação – para proteger dados contra acessos não autorizados. - Melhoria da experiência do usuário – para personalizar e otimizar a interação com sistemas e plataformas. Em resumo, os bancos de dados são fundamentais para a tecnologia moderna, permitindo o armazenamento, o controle e o uso eficiente dos dados em praticamente todas as áreas. https://serverspace.com.br/support/glossary/configuracao.md Descubra o que é configuração no contexto da tecnologia da informação. No contexto da tecnologia da informação, configuração refere-se à forma como softwares, dispositivos de hardware ou componentes de rede são ajustados para oferecer uma determinada funcionalidade ou executar uma tarefa específica. A configuração pode incluir diversos parâmetros: ajustes técnicos, definições de segurança, permissões de acesso a recursos e outros elementos que determinam o funcionamento de um sistema ou componente. A gestão adequada da configuração é essencial na área de TI, pois garante o funcionamento correto dos sistemas e seus elementos. A configuração também é uma parte fundamental dos processos de implantação e administração de sistemas de informação. Isso envolve a criação, modificação e controle de dados de configuração, como parâmetros de software, definições de rede, componentes físicos e outros elementos da infraestrutura. A gestão de configuração inclui processos e ferramentas que ajudam a controlar e rastrear alterações, além de garantir a integridade e a segurança das informações de configuração. Isso evita conflitos entre componentes, facilita a recuperação em caso de falhas e aumenta a confiabilidade geral da infraestrutura. Portanto, a configuração desempenha um papel crucial no funcionamento correto dos sistemas de informação e representa um aspecto fundamental da gestão de infraestrutura de TI. https://serverspace.com.br/support/glossary/dominio.md Descubra o que é um domínio, como ele é usado e quais são os tipos existentes. Um domínio é um nome exclusivo que identifica um site, servidor, organização ou pessoa na internet. É o principal componente de um endereço online e permite que os usuários encontrem e acessem recursos na rede. ## Estrutura de um domínio Um domínio é formado por duas partes: o nome do domínio e o domínio de nível superior (Top-Level Domain, ou TLD). O nome do domínio é escolhido pelo proprietário e deve ser único. Já o TLD indica a zona principal à qual o domínio pertence. Exemplo: no domínio example.com, "example" é o nome do domínio e ".com" é o TLD (domínio de nível superior). ## Tipos de domínios - **ccTLD (Country-Code Top-Level Domain):** domínios vinculados a países, como .br (Brasil) ou .us (Estados Unidos). - **gTLD (Generic Top-Level Domain):** domínios genéricos, sem relação com países específicos, como .com, .org, .net. - **sTLD (Sponsored Top-Level Domain):** domínios patrocinados por organizações ou setores específicos, como .edu (instituições educacionais). - **ccSLD (Country-Code Second-Level Domain):** subdomínios de ccTLDs, como .co.uk (Reino Unido). ## Como os domínios são usados Os domínios são utilizados em diversos contextos: - **Sites:** fazem parte da URL de um site, por exemplo: https://example.com. - **E-mails:** formam a base de endereços de e-mail, como contato@example.com. - **Servidores:** identificam servidores específicos, como ftp.example.com. - **Identidade de marca:** ajudam a criar presença online e fortalecer a identidade de empresas e projetos. Um domínio bem escolhido é essencial para garantir visibilidade, credibilidade e facilidade de acesso na internet. https://serverspace.com.br/about/blog/quais-sao-as-diferencas-entre-freebsd-e-linux-comparacao-completa.md Comparação detalhada entre os sistemas operacionais Linux e FreeBSD: origem, diferenças práticas e dicas para escolher a melhor opção para seu servidor web. Quando se trata de escolher entre FreeBSD e Linux, a decisão nem sempre é óbvia. Ambos os sistemas operacionais possuem vantagens e limitações únicas. A escolha depende das suas necessidades e preferências. Neste artigo, vamos analisar os principais aspectos do comparativo FreeBSD vs Linux para ajudar você a tomar uma decisão informada. Antes de explorarmos as diferenças fundamentais entre FreeBSD e Linux, é importante entender brevemente a natureza desses sistemas operacionais e a relação entre eles. Neste panorama, também vamos abordar o Linux, amplamente conhecido, para cobrir todos os aspectos de ambas as plataformas. ## O que é o FreeBSD? **FreeBSD** é um sistema operacional semelhante ao UNIX, de código aberto, baseado no código BSD (Berkeley Software Distribution). É desenvolvido por uma comunidade de colaboradores e mantido pela Fundação FreeBSD, o que garante uma plataforma estável e completa. É adequado para diversos fins, como servidores, dispositivos de rede, desktops e sistemas embarcados. Embora o FreeBSD tenha sido, no passado, um dos sistemas mais conhecidos, hoje seu uso é menos comum em comparação a outras opções. Curiosamente, o primeiro sistema operacional UNIX da Berkeley com código aberto foi o 386BSD, criado por William Jolitz. Ele foi a base que influenciou o surgimento do Linux, iOS e Android, além de abrir caminho para o desenvolvimento do FreeBSD, NetBSD e OpenBSD. A história do FreeBSD começou com um grupo de usuários que começou a lançar kits de correções não oficiais, reunindo melhorias e ajustes. Esses desenvolvedores focaram em facilitar o uso do sistema por pessoas com pouca experiência técnica e voltaram seus esforços ao suporte para hardware com arquitetura Intel x86. A primeira versão oficial do FreeBSD foi lançada em 1º de novembro de 1993. ## O que é o Linux? **Linux** é um sistema operacional gratuito e de código aberto, baseado no kernel Linux. Foi criado por Linus Torvalds em 1991 e conquistou grande popularidade, com suporte contínuo de uma comunidade global de desenvolvedores. O Linux é distribuído por meio de diversas versões (distribuições), como Debian, Ubuntu, Oracle Linux e AlmaLinux. O sistema é utilizado em diferentes áreas, como computação em nuvem, sistemas embarcados, dispositivos móveis, computadores pessoais, servidores, mainframes e supercomputadores. O kernel Linux é o núcleo do sistema operacional, escrito principalmente em C e Assembly. Trata-se de um núcleo monolítico, que fornece as funções essenciais e a interface com o hardware. ## FreeBSD ou Linux: principais diferenças Vamos analisar os aspectos fundamentais que distinguem o FreeBSD do Linux. Kernel O FreeBSD utiliza seu próprio kernel, desenvolvido como parte do projeto. Ele possui uma arquitetura monolítica, o que significa que suas funções principais e drivers estão integrados ao núcleo. Esse kernel é conhecido por oferecer alto desempenho e estabilidade, especialmente em ambientes de servidor. O Linux, por sua vez, utiliza o kernel Linux, mantido por uma comunidade ativa. Ele também tem uma arquitetura monolítica, mas com suporte a modularidade, permitindo adicionar e remover drivers e funcionalidades sem reiniciar o sistema. Licenciamento O FreeBSD utiliza a licença **BSD** (Berkeley Software Distribution), que permite uso, modificação e distribuição do código-fonte com ampla liberdade e poucas restrições. O Linux adota a licença pública geral **GNU ou GPL** (General Public License). A GPL exige que qualquer modificação ou distribuição do código também esteja sob a mesma licença. Gerenciamento de pacotes O FreeBSD possui sua própria ferramenta de gerenciamento de pacotes, chamada pkg, que permite instalar, atualizar e remover pacotes pela linha de comando de forma eficiente. No Linux, existem diversas ferramentas para isso, como APT (Advanced Package Tool), DNF/Yum (Dandified Yum) e Pacman, cada uma com suas próprias sintaxes e funcionalidades. Suporte a hardware O FreeBSD oferece bom suporte para placas de rede e drivers de hardware voltado a servidores. O Linux, por outro lado, tende a ter maior compatibilidade com placas de vídeo recentes e dispositivos menos comuns. Caso haja requisitos específicos de hardware, é importante verificar a compatibilidade com o sistema escolhido. O Linux é mais amplamente utilizado que o FreeBSD, em parte porque o uso do FreeBSD exige conhecimentos técnicos mais avançados. Muitos usuários preferem o Linux justamente pela ampla compatibilidade com dispositivos. A comunidade Linux, junto com fabricantes de hardware, trabalha constantemente para garantir suporte a diversos componentes como placas de vídeo, som, adaptadores sem fio e muito mais — o que facilita sua instalação e uso em diferentes configurações de PC. Comunidade O FreeBSD tem uma comunidade própria de usuários e desenvolvedores que mantém o sistema ativo e em evolução. Essa comunidade é menor e mais especializada, mas altamente dedicada e receptiva. A comunidade do Linux é muito mais ampla e diversa, o que se reflete na enorme quantidade de distribuições, softwares e ferramentas disponíveis, além de ampla documentação e suporte. Desempenho e otimização O FreeBSD é reconhecido por sua estabilidade e confiabilidade, especialmente em tarefas de servidor. Ele oferece bom desempenho e uso eficiente dos recursos. O Linux também possui bom desempenho e escalabilidade, permitindo que seja usado em diversos cenários — de desktops a servidores e sistemas embarcados. Auditoria de segurança O FreeBSD vem com um sistema de auditoria de segurança embutido (Security Event Auditing), que permite registrar e analisar eventos de segurança, auxiliando na detecção e resposta a incidentes. O Linux não oferece esse recurso nativamente, mas sistemas de auditoria podem ser instalados e configurados separadamente. ## FreeBSD vs Linux — qual é melhor para servidores? O Linux continua sendo mais popular do que o FreeBSD. Por exemplo, ele costuma receber suporte a novos hardwares antes do FreeBSD. No entanto, o FreeBSD oferece um pacote de compatibilidade que permite executar binários do Linux, e a maioria dos softwares funciona de maneira semelhante. Se você já utiliza [servidores Linux](https://serverspace.com.br/services/vps-server/linux.md), migrar para o FreeBSD não deve ser complicado. Caso queira usar o FreeBSD como sistema de desktop, é possível configurar ambientes gráficos como GNOME, KDE ou Xfce e utilizar a maior parte dos softwares já conhecidos. Porém, como o FreeBSD não traz uma interface gráfica pré-instalada, será necessário configurar manualmente o ambiente, o que exige mais esforço do que em distribuições Linux modernas. Graças à sua estabilidade, o [FreeBSD](https://serverspace.com.br/services/vps-server/freebsd.md) pode ser uma excelente escolha para casos em que a confiabilidade é crucial. Fabricantes de dispositivos também podem optar por sistemas BSD para evitar adaptações obrigatórias de código impostas por outras licenças. Se você é um usuário comum, provavelmente o FreeBSD não será necessário para suas tarefas. O Linux tende a ser uma escolha mais prática, com suporte a uma maior variedade de hardware e instalação mais simples. ### Qual é a principal diferença entre FreeBSD e Linux? A principal diferença é que o FreeBSD é um sistema operacional completo desenvolvido como um único projeto, enquanto o Linux é apenas o kernel utilizado por diversas distribuições, como Ubuntu, Debian e AlmaLinux, cada uma com suas próprias ferramentas e recursos. ### O FreeBSD é melhor que o Linux para servidores? Depende da aplicação. O FreeBSD é conhecido por sua estabilidade, confiabilidade e desempenho em servidores, enquanto o Linux oferece maior compatibilidade com hardware, uma comunidade mais ampla e um ecossistema maior de softwares e ferramentas. ### O FreeBSD pode executar programas feitos para Linux? Sim. O FreeBSD possui uma camada de compatibilidade que permite executar muitos aplicativos compilados para Linux, facilitando a migração e o uso de diversos softwares disponíveis para esse sistema. ### Qual sistema operacional é mais indicado para iniciantes? Para a maioria dos usuários e administradores iniciantes, o Linux costuma ser a melhor escolha devido à instalação mais simples, ampla documentação, grande suporte da comunidade e compatibilidade com uma variedade maior de dispositivos. https://serverspace.com.br/support/glossary/swift.md Descubra o que é o SWIFT, suas vantagens e desvantagens, principais características e aplicações. O SWIFT, também conhecido como OpenStack Swift, é um sistema de armazenamento de objetos distribuído e um dos principais componentes da plataforma OpenStack. Esse sistema foi projetado para fornecer armazenamento escalável e confiável para grandes volumes de dados não estruturados. A seguir, exploramos os principais aspectos do SWIFT: ## Características Principais - **Escalabilidade:** O SWIFT foi desenvolvido com capacidade de escalonamento horizontal fácil. Isso significa que, à medida que o volume de dados cresce, é possível adicionar novos servidores sem interrupções no sistema. - **Resiliência da Arquitetura:** Os dados são armazenados em várias cópias em diferentes nós dentro do cluster, garantindo alta resiliência do sistema contra falhas. Se um nó ficar indisponível, os dados permanecem acessíveis em outros nós. - **Tolerância a Falhas:** O sistema lida automaticamente com a replicação e recuperação de dados após falhas, o que o torna especialmente confiável. - **Gerenciamento de Acesso:** O SWIFT suporta diversos mecanismos de controle de acesso, incluindo autenticação por chave e integração com sistemas de autenticação externos. ## Principais Componentes do SWIFT - **Proxy Server:** Processa as requisições dos clientes e as direciona para os servidores de armazenamento apropriados. Também executa funções de balanceamento de carga e autenticação de usuários. - **Account Server, Container Server e Object Server:** Esses servidores gerenciam os metadados de contas, containers e objetos, respectivamente, e são os componentes onde os dados são efetivamente armazenados. - **Ring:** Uma estrutura de dados que gerencia a distribuição dos objetos dentro do cluster. Ela garante balanceamento de carga e replicação, assegurando que cada objeto seja armazenado em vários nós físicos. - **Replicator:** Garante a consistência dos dados, verificando a relevância e atualizando todas as cópias de um objeto. ## Aplicações O SWIFT pode ser utilizado para diversas finalidades, como: - Arquivamento e backup de dados. - Armazenamento de grandes volumes de arquivos multimídia (vídeos, áudios, imagens). - Registro e monitoramento de dados. - Armazenamento de longo prazo para dados acessados com pouca frequência. ## Vantagens e Desvantagens **Vantagens:** - Alta escalabilidade. - Resiliência a falhas e recuperação automática dos dados. - Alocação de recursos independente da arquitetura da aplicação (API RESTful). - Flexibilidade e capacidade de integração com outros componentes do OpenStack. **Desvantagens:** - Complexidade na configuração e gerenciamento, especialmente para usuários inexperientes. - Requisitos significativos de hardware em ambientes de armazenamento em grande escala. OpenStack Swift é oferecido como uma solução poderosa e confiável para armazenamento de dados em nuvem, sendo particularmente indicado para organizações que exigem alta escalabilidade e resiliência do sistema. ## SWIFT e a Serverspace Nossa base de conhecimento conta com diversas instruções sobre como utilizar o SWIFT. https://serverspace.com.br/support/glossary/uid.md Descubra o que é um UID (identificador único), onde ele é utilizado e como é gerado. Conheça os principais métodos de criação de UID e seu uso em bancos de dados, sistemas operacionais, tecnologias de rede e desenvolvimento de jogos. **UID (Identificador Único)** é um identificador exclusivo usado para distinguir objetos, usuários ou entidades dentro de um sistema. Um UID pode ser numérico, textual ou uma combinação de ambos, sendo garantidamente único dentro de um determinado contexto (por exemplo: em um banco de dados, sistema operacional ou rede). ## Onde o UID é utilizado? UIDs são amplamente utilizados em diversas áreas da tecnologia da informação: - **Bancos de dados** – para identificar registros (por exemplo, user_id em MySQL ou PostgreSQL). - **Sistemas operacionais** – para identificação de usuários (como o UID no UNIX/Linux). - **Programação** – na geração de chaves únicas para objetos. - **Tecnologias de rede** – em endereços MAC, IP e outros identificadores exclusivos. - **Desenvolvimento de jogos** – para rastrear objetos do jogo e usuários. ## Exemplos de UID - **UUID (Identificador Unicamente Universal)** – um identificador de 128 bits usado em sistemas distribuídos (ex.: 6e8f4e02-c91c-465f-b22d-7f102fca381b). - **UID no UNIX/Linux** – identificador numérico de usuário (ex.: o usuário root normalmente possui UID 0). - **Endereço MAC** – identificador exclusivo de hardware atribuído a uma placa de rede (ex.: 00:1A:2B:3C:4D:5E). ## Como um UID é gerado? Dependendo do caso de uso, um UID pode ser gerado de várias formas: - **Geração de números aleatórios** – comum em criptografia e segurança. - **Algoritmos de hash (SHA, MD5)** – aplicados para criar identificadores robustos. - **Combinação de tempo e parâmetros únicos** – por exemplo, UUID versão 1 utiliza carimbo de data/hora e endereço MAC. ## Conclusão O UID é um elemento fundamental nos sistemas digitais, garantindo a unicidade e a identificação de dados, objetos ou usuários. Sistemas modernos de TI — de bancos de dados a sistemas operacionais e redes — dependem fortemente de UIDs para funcionar de forma eficiente. https://serverspace.com.br/support/glossary/subdominio.md Descubra o que é um subdomínio, como ele funciona e para que é utilizado. Um subdomínio é uma seção de um domínio que aparece antes do nome principal, separada por um ponto. Subdomínios permitem criar diferentes serviços ou recursos dentro de um mesmo domínio, cada um com um nome distinto e função específica. Por exemplo, com o domínio minhaempresa.com.br, os subdomínios podem ser estruturados assim: - blog.minhaempresa.com.br – para o blog corporativo; - loja.minhaempresa.com.br – para a loja virtual; - suporte.minhaempresa.com.br – para a central de atendimento. Em todos os casos, minhaempresa.com.br é o domínio principal, enquanto blog, loja e suporte são os subdomínios. ## Usos Comuns de Subdomínios - **Divisão de seções em um site:** Subdomínios permitem criar áreas separadas para blog, e-commerce, fóruns ou outras funcionalidades, tornando o site mais organizado e fácil de navegar. - **Segmentação de serviços:** Empresas usam subdomínios para oferecer diferentes soluções sob a mesma marca. Exemplo: email.suaempresa.com.br para webmail, e ajuda.suaempresa.com.br para suporte. - **Ambientes de teste e homologação:** Subdomínios como dev.suaempresa.com.br ou staging.suaempresa.com.br são usados por equipes técnicas para testar atualizações com segurança. - **Versões regionais ou multilíngues:** Empresas com presença internacional podem usar subdomínios como br.seusite.com para o Brasil e es.seusite.com para a Espanha, além de versões por idioma como pt.seusite.com ou en.seusite.com. ## Benefícios Adicionais dos Subdomínios - **Melhor SEO:** Subdomínios podem ser otimizados para palavras-chave específicas, ganhando visibilidade própria nos buscadores. Exemplo: blog.seusite.com com conteúdo voltado para marketing digital. - **DNS e segurança customizáveis:** Cada subdomínio pode ter configurações de DNS e certificado SSL próprios, permitindo mais controle e segurança para áreas sensíveis. - **Expansão da marca:** Subdomínios ajudam grandes empresas a organizar serviços de forma clara. Por exemplo, o Google usa mail.google.com para o Gmail e maps.google.com para o Google Maps — diferentes produtos sob o mesmo domínio confiável. ## Aplicações Reais - **Educação:** Universidades e escolas usam subdomínios para departamentos e serviços — como matematica.universidade.edu.br ou biblioteca.universidade.edu.br. - **SaaS e plataformas online:** Empresas de software criam subdomínios exclusivos para cada cliente, como cliente123.plataformasaas.com, mantendo a experiência personalizada e integrada. ## Resumo Subdomínios são uma solução eficiente para organizar conteúdos e serviços dentro de um único domínio. Eles facilitam a gestão, permitem personalização por área ou público e tornam a navegação mais clara. Para empresas, desenvolvedores e instituições, subdomínios oferecem escalabilidade, estrutura e flexibilidade. https://serverspace.com.br/support/glossary/uac.md UAC (Controle de Conta de Usuário) é um sistema de segurança do Windows que gerencia permissões e protege contra alterações não autorizadas. Saiba como o UAC funciona, por que ele é importante e como personalizar o nível de notificação. O **UAC (Controle de Conta de Usuário)** é um sistema de segurança dos sistemas operacionais Windows, projetado para gerenciar os direitos dos usuários e proteger o sistema contra alterações não autorizadas. Quando um aplicativo tenta realizar ações que exigem permissões de administrador, o UAC notifica o usuário e solicita sua confirmação ou senha, a fim de evitar possíveis ameaças. O UAC foi introduzido no Windows Vista para reforçar a segurança do sistema e impedir modificações não autorizadas. Ele ajuda a proteger o sistema contra vírus e outros softwares maliciosos que tentam obter permissões administrativas sem o conhecimento do usuário. ## Principais funções do UAC - **Proteção contra alterações não autorizadas:** o UAC impede que aplicativos sejam executados automaticamente com privilégios de administrador sem seu consentimento. - **Solicitação de permissões elevadas:** para executar operações que exigem permissões de administrador, o sistema exige confirmação do usuário. - **Configurações de segurança:** o usuário pode definir a frequência com que deseja ser notificado pelo UAC, ajustando o nível de alerta. ## Perguntas Frequentes - **Para que serve o UAC?** O UAC ajuda a proteger o sistema contra softwares maliciosos que tentam alterar configurações ou instalar programas indesejados sem o conhecimento do usuário. - **É possível desativar o UAC?** Sim, o UAC pode ser desativado nas configurações de segurança do Windows. No entanto, essa prática não é recomendada, pois reduz o nível de proteção do sistema. - **Por que o UAC pede confirmação com tanta frequência?** Isso ocorre quando aplicativos solicitam privilégios de administrador para executar ações como modificar arquivos ou configurações do sistema. A frequência dos alertas depende das configurações do próprio UAC. - **Como configurar o UAC?** O UAC pode ser configurado pelo Painel de Controle, na seção Contas de Usuário, onde é possível escolher o nível de notificação desejado — desde alertas frequentes até nenhuma solicitação. https://serverspace.com.br/support/help/folha-de-consulta-rapida-do-linux-trabalhando-com-arquivos-e-diretorios.md Um guia rápido sobre os comandos básicos do Linux para trabalhar com arquivos e diretórios. Comandos úteis para engenheiros de DevOps: copiar, mover, excluir, arquivar, definir permissões e monitoramento de disco. Este guia contém comandos essenciais para gerenciar arquivos e diretórios no Linux, úteis para qualquer especialista em DevOps. ### Trabalhando com Arquivos e Diretórios - **ls -lah** — Exibir uma lista de arquivos com informações detalhadas - **cd /path** — Navegar para o diretório especificado - **pwd** — Mostrar o caminho completo do diretório atual - **mkdir new_dir** — Criar uma nova pasta - **rm -rf file/dir** — Excluir completamente um arquivo ou diretório - **cp file1 file2** — Copiar um arquivo ou pasta - **mv file1 file2** — Mover ou renomear um arquivo - **touch file.txt** — Criar um novo arquivo vazio - **cat file** — Exibir o conteúdo de um arquivo no terminal - **tail -f file** — Mostrar novas linhas de um arquivo em tempo real ### Visualização e Edição de Arquivos - **less file** — Visualizar um arquivo página por página - **head -n 10 file** — Exibir as primeiras 10 linhas de um arquivo - **tail -n 10 file** — Exibir as últimas 10 linhas de um arquivo - **nano file** — Abrir um arquivo no editor Nano - **vim file** — Abrir um arquivo no editor Vim - **grep "error" file** — Encontrar uma linha contendo "error" em um arquivo ### Gerenciamento de Permissões e Proprietários - **chmod 755 file** — Definir permissões do arquivo (rwxr-xr-x) - **chown user:group file** — Alterar o proprietário do arquivo - **umask 022** — Definir a máscara de criação de arquivos ### Arquivamento e Compressão - **tar -cvf archive.tar folder/** — Criar um arquivo tar - **tar -xvf archive.tar** — Extrair um arquivo tar - **tar -czvf archive.tar.gz folder/** — Criar um arquivo compactado tar.gz - **tar -xzvf archive.tar.gz** — Extrair um arquivo tar.gz - **zip -r archive.zip folder/** — Criar um arquivo zip - **unzip archive.zip** — Extrair um arquivo zip ### Trabalhando com Links Simbólicos - **ln -s /path/to/target link_name** — Criar um link simbólico - **ls -l link_name** — Verificar o link - **readlink -f link_name** — Descobrir para onde o link aponta ### Monitoramento do Uso do Disco - **df -h** — Verificar o espaço disponível no disco - **du -sh file/** — Obter o tamanho de um arquivo ou pasta - **du -h --max-depth=1 /path** — Obter o tamanho das pastas em um diretório especificado ### Truques Úteis - **history | grep command** — Encontrar um comando no histórico - **!!** — Repetir o último comando - **!n** — Executar o enésimo comando do histórico - **df -h | grep "/dev/sd"** — Mostrar apenas os discos físicos - **find /path -name "*.log"** — Encontrar arquivos com a extensão .log ### Perguntas Frequentes (FAQ) **É possível recuperar arquivos excluídos após rm -rf?** Normalmente, não. O comando** rm -rf** exclui arquivos permanentemente. No entanto, se o sistema de arquivos oferecer suporte a uma "lixeira" (como com a ferramenta** trash-cli**), é possível configurar uma exclusão segura. **Como copiar uma pasta junto com todo o seu conteúdo?** Use **cp -r source_dir destination_dir**, onde a opção **-r** permite a cópia recursiva. **Como encontrar rapidamente um arquivo no sistema?** Use **find / -name "filename" **para pesquisar em todo o sistema ou **locate filename**, caso a ferramenta **locate **esteja instalada. ### Conclusão Este guia rápido contém os principais comandos para gerenciar arquivos e diretórios no Linux. Conhecer esses comandos ajudará a otimizar a administração do sistema e a facilitar as tarefas diárias de um engenheiro DevOps. https://serverspace.com.br/support/help/uma-rapida-folha-de-dicas-sobre-o-linux-pesquisa.md Uma breve folha de dicas sobre como pesquisar arquivos e dados no Linux. Aprenda os comandos find, grep, locate e seus recursos úteis. Dicas e exemplos para DevOps e administradores. **Encontrar arquivos e strings no Linux – um guia essencial para administradores e DevOps** A capacidade de localizar arquivos e conteúdos específicos no Linux é uma habilidade fundamental para administradores de sistemas e engenheiros DevOps. Este guia apresenta os principais comandos para encontrar arquivos, buscar padrões dentro deles e analisar seus conteúdos de maneira eficiente. ## **Busca de arquivos por nome** - **find /diretorio -name "*.log"** — pesquisa arquivos que tenham um nome ou padrão específico (exemplo: todos os arquivos com a extensão **.log**). - **find /diretorio -iname "arquivo.txt"** — busca um arquivo sem considerar letras maiúsculas ou minúsculas. - **find /diretorio -type d -name "config"** — localiza diretórios com um nome específico. - **find /diretorio -type f -name "arquivo"** — encontra todos os arquivos cujo nome começa com "arquivo". ## **Busca de arquivos por tamanho e data** - **find /diretorio -size +100M** — encontra arquivos que sejam maiores que 100 MB. - **find /diretorio -size -10k** — pesquisa arquivos menores que 10 KB. - **find /diretorio -mtime -7** — localiza arquivos que foram modificados nos últimos 7 dias. - **find /diretorio -atime +30** — identifica arquivos que não foram acessados há mais de 30 dias. ## **Busca de strings dentro de arquivos** - **grep "padrão" arquivo** — pesquisa um padrão específico dentro de um arquivo. - **grep -i "padrão" arquivo** — busca sem diferenciação entre maiúsculas e minúsculas. - **grep -r "padrão" /caminho** — pesquisa recursiva dentro de um diretório e seus subdiretórios. - **grep -rnw . -e "padrão"** — encontra linhas que contêm um padrão dentro de arquivos na pasta atual e subpastas. - **grep -v "erro" arquivo** — exibe linhas que não contenham a palavra "erro". ## **Localização e remoção de arquivos** - **find /path -name "*.tmp" -delete** — encontra e remove arquivos temporários **.tmp**. - **find /path -type f -empty -delete** — remove todos os arquivos vazios. - **find /path -type d -empty -delete** — exclui todos os diretórios vazios. ## **Uso de locate e whereis** - **locate file.txt** — busca rápida de um arquivo chamado **file.txt** (requer um banco de dados atualizado). - **updatedb** — atualiza o banco de dados do **locate **(precisa ser executado periodicamente). - **whereis ls** — localiza o binário, código-fonte e documentação de um comando como **ls**. ## **Combinando comandos para buscas avançadas** - **find /path -name "*.log" | xargs grep "error"** — encontra arquivos **.log**e busca linhas contendo **"error"** dentro deles. - **grep -r "function" /path | cut -d: -f1 | sort | uniq** — pesquisa arquivos que contenham **"function"** e exibe seus caminhos sem duplicação. ## **Perguntas Frequentes (FAQ)** **Como acelerar a busca por arquivos?** Use **locate **em vez de **find**, pois ele consulta um banco de dados pré-atualizado, tornando a pesquisa mais rápida. **Como pesquisar apenas em arquivos específicos?** Utilize **grep **especificando a extensão desejada: ``` grep -r --include=\*.txt "padrão" /caminho ``` **Como localizar arquivos com permissões específicas?** Use **find **com o parâmetro **-perm**, por exemplo: ``` find /path -type f -perm 644 ``` Isso exibirá arquivos com permissões 644. ## **Conclusão** Dominar os comandos de busca no Linux facilita significativamente a administração do sistema. O uso de **find**, **grep **e **locate** permite encontrar rapidamente arquivos e trechos de texto dentro deles. Ao combinar essas ferramentas, é possível criar pesquisas avançadas e automatizar tarefas, economizando tempo para profissionais de DevOps e administradores de sistemas. ## **Base de conhecimento Serverspace** Na base de conhecimento da **Serverspace**, você encontra ainda mais tutoriais, guias e referências sobre **Linux, administração de servidores, computação em nuvem e DevOps**. Os artigos disponíveis são úteis tanto para iniciantes quanto para profissionais experientes que desejam aprimorar seu fluxo de trabalho e automatizar processos. https://serverspace.com.br/support/help/folha-de-dicas-do-linux-informacoes-sobre-o-sistema.md Saiba como otimizar seu trabalho com os dados do sistema com comandos simples e aliases úteis. Uma folha de dicas rápidas sobre os comandos do Linux para obter informações sobre o sistema. O Linux oferece uma variedade de comandos para obter informações sobre o sistema. Este guia rápido ajuda a verificar rapidamente parâmetros essenciais, como uso da CPU, memória disponível, estado dos discos e outras informações úteis. ## **1. Monitoramento de processos** - **top** – exibe processos ativos, carga da CPU, uso de memória e outros parâmetros em tempo real. - **htop** – versão mais amigável do **top **com interface gráfica (precisa ser instalado separadamente: **sudo apt install htop** para Debian/Ubuntu ou **sudo yum install htop** para CentOS/RHEL). ## **2. Uso da memória RAM** - **free -m** – mostra a memória RAM disponível, usada e livre em megabytes. - **vmstat 1** – atualiza estatísticas de uso da CPU, memória e I/O a cada segundo. ## **3. Informações sobre discos** - **df -h** – exibe o uso do espaço em disco para todos os sistemas de arquivos em um formato legível (com sufixos de tamanho: KB, MB, GB). - **du -sh *** – mostra o tamanho de todos os arquivos e pastas no diretório atual (**-s** limita a saída a valores totais, **-h** torna o formato legível). - **lsblk** – lista discos conectados e suas partições. ## **4. Informações do sistema** - **uname -a** – exibe informações gerais sobre o kernel e o sistema. - **cat /etc/os-release** – mostra a versão do sistema operacional instalado. - **hostnamectl** – informações detalhadas do sistema, incluindo o nome do host e a versão da distribuição. ## **5. Tempo de atividade do sistema** - **uptime** – mostra há quanto tempo o sistema está ativo, número de usuários e carga média da CPU. - **who -b** – exibe a data e hora do último reinício do sistema. ## **6. Informações do usuário** - **whoami** – exibe o nome do usuário atual. - **id** – mostra o UID (identificador do usuário) e GID (identificador do grupo) do usuário atual. - **w** – lista usuários ativos e suas sessões. ## **7. Informações de rede** - **ip a** – lista interfaces de rede e seus endereços IP. - **netstat -tulnp** – mostra portas em escuta e conexões ativas (se **netstat **não estiver disponível, instale **net-tools**). - **ss -tulnp** – alternativa moderna ao **netstat **para visualizar conexões de rede. ## **Conclusão** Esses comandos permitem obter rapidamente informações do sistema no Linux. Para mais praticidade, você pode criar **aliases** no arquivo **.bashrc**, como: ``` alias meminfo='free -m' alias diskinfo='df -h' alias sysinfo='uname -a' ``` Agora, basta digitar **meminfo**, **diskinfo** ou **sysinfo **para obter os dados desejados de forma mais rápida! https://serverspace.com.br/support/help/um-breve-resumo-sobre-o-docker.md Esta folha de dicas o ajudará a lembrar rapidamente os principais comandos do Docker e a entender os recursos básicos de conteinerização. O Docker é uma poderosa plataforma de conteinerização que permite aos desenvolvedores empacotar, distribuir e executar aplicações em ambientes isolados. Ele simplifica a implantação de software, eliminando problemas de dependências relacionados à configuração do sistema operacional do host. ## Comandos Essenciais do Docker ## Gerenciamento de Imagens - **Criar uma imagem a partir de um Dockerfile:** ```bash docker build -t myapp . ``` - **Listar todas as imagens disponíveis:** ```bash docker images ``` - **Remover uma imagem não utilizada:** ```bash docker rmi image_id ``` ## Gerenciamento de Contêineres - **Iniciar um contêiner em modo desanexado com mapeamento de portas:** ``` >docker run -d -p 8080:80 myapp ``` - **Exibir todos os contêineres, incluindo os parados:** ```bash docker ps -a ``` - **Parar um contêiner em execução:** ```bash docker stop container_id ``` - **Reiniciar um contêiner que foi parado:** ```bash docker start container_id ``` - **Remover um contêiner:** ```bash docker rm container_id ``` - **Acessar o terminal de um contêiner em execução:** ```bash docker exec -it container_id bash ``` ## Comandos do Docker Compose - Iniciar os serviços definidos no arquivo **docker-compose.yml**: ```bash docker-compose up -d ``` - Encerrar todos os serviços do **docker-compose.yml**: ```bash docker-compose down ``` ## Recursos Avançados do Docker ### **Armazenamento Persistente com Docker Volumes** Os Volumes do Docker permitem a retenção de dados mesmo após a reinicialização dos contêineres. Exemplo de criação de volume: ```bash docker volume create mydata ``` ### **Conexão entre Contêineres** O Docker oferece redes virtuais para facilitar a comunicação entre contêineres. Exemplo de criação de uma rede personalizada: ```bash docker network create mynetwork ``` ### **Otimização na Construção de Imagens** O Docker utiliza imagens em camadas, garantindo que apenas as partes modificadas sejam reconstruídas, tornando o processo mais eficiente. ### **Suporte a Múltiplas Arquiteturas** O Docker permite a criação de imagens compatíveis com diferentes arquiteturas de processadores, como x86 e ARM, aumentando a flexibilidade das aplicações. ## Perguntas Frequentes (FAQ) ### **Qual a diferença entre contêineres e máquinas virtuais?** Os contêineres operam diretamente no kernel do sistema operacional do host, enquanto as máquinas virtuais exigem a emulação completa de um SO, tornando-as mais pesadas e menos eficientes. ### **Posso usar o Docker sem privilégios de root?** Sim, mas é necessário adicionar o usuário ao grupo do Docker para evitar o uso do **sudo**: ``` sudo usermod -aG docker $USER ``` ### **Como manter os dados após reiniciar um contêiner?** Para evitar a perda de dados, utilize volumes do Docker (**docker volume create mydata**) ou monte diretórios locais (**-v /local/path:/container/path**). ### **Como reduzir o tamanho das imagens Docker?** Para manter as imagens mais leves, utilize **multi-stage builds**, imagens base mínimas como **alpine** ou **scratch**, e remova arquivos desnecessários do processo de construção. ## Base de Conhecimento Server**space** O **Serverspace** oferece uma base de conhecimento bem estruturada com tutoriais passo a passo sobre a configuração do Docker, Kubernetes e outras ferramentas de conteinerização. A plataforma cobre tópicos como estratégias de implantação, segurança de contêineres, configuração de redes e otimização de imagens. Para acessar os guias detalhados, visite o site oficial do Serverspace Este guia rápido fornece um resumo das principais funcionalidades do Docker, ajudando você a otimizar seu fluxo de trabalho na conteinerização. https://serverspace.com.br/support/help/em-que-consiste-o-directx.md Saiba do que o DirectX é composto: os principais componentes, como Direct3D, DirectSound, DirectInput e outros. Saiba como funciona esse conjunto de APIs e por que elas são necessárias no desenvolvimento de jogos e aplicativos multimídia **DirectX** é um conjunto de APIs (Interfaces de Programação de Aplicações) desenvolvido pela Microsoft para trabalhar com aplicativos multimídia, principalmente gráficos e áudio de computador. Ele é amplamente utilizado na indústria de jogos e permite que os desenvolvedores criem jogos de alto desempenho e visualmente impressionantes para Windows. Vamos explorar seus principais componentes. ### **Direct3D** O Direct3D (D3D) é um dos principais componentes do DirectX, projetado para lidar com gráficos 3D. Ele fornece aos desenvolvedores uma interface para trabalhar diretamente com a GPU (Unidade de Processamento Gráfico), permitindo a implementação de efeitos visuais avançados. O Direct3D inclui suporte para: - **Renderização acelerada por hardware para imagens 3D.** - **Shaders para controle flexível do processamento gráfico.** - **Ray tracing (no DirectX 12 Ultimate) para iluminação e sombras realistas.** - **Diferentes níveis de API de hardware, permitindo que os jogos se adaptem às capacidades da placa de vídeo.** ### **Direct2D** O Direct2D é uma API para renderização de gráficos 2D, otimizada para aproveitar aceleração por hardware. Ele é utilizado para: - **Renderizar interfaces gráficas e elementos de aplicativos.** - **Desenhar gráficos vetoriais e texto com alta qualidade.** - **Criar efeitos visuais, como desfoque, sombras e gradientes.** ### **DirectCompute** O DirectCompute oferece recursos de GPGPU (Computação Geral em GPUs), permitindo o uso do processador gráfico para cálculos gerais. Ele é útil para tarefas como: - **Simulações físicas em jogos.** - **Processamento e pós-produção de imagens e vídeos.** - **Aprendizado de máquina e simulações computacionais.** ### **DXGI (DirectX Graphics Infrastructure)** O DXGI é o componente responsável pela interação entre o Direct3D e os adaptadores gráficos e displays. Ele gerencia: - **A alocação e o gerenciamento de memória de vídeo.** - **O processamento da saída de imagem para a tela (swap chain).** - **Suporte a múltiplos monitores e diferentes configurações de exibição.** ### **DirectSound e XAudio2** O DirectSound e o XAudio2 são utilizados para processamento de áudio: - **DirectSound** fornece acesso de baixo nível ao hardware de som, permitindo controle avançado sobre efeitos sonoros e reprodução de áudio. - **XAudio2** é uma API mais moderna que suporta áudio multicanal, posicionamento espacial de som em 3D e processamento de efeitos em tempo real. ### **DirectInput** O DirectInput é uma API antiga, mas ainda utilizada para lidar com entrada de dispositivos como teclados, mouses, gamepads e joysticks. No entanto, muitas aplicações modernas passaram a utilizar XInput ou os mecanismos padrões do Windows. ### **XInput** O **XInput** é uma API otimizada para controladores de Xbox, fornecendo suporte avançado para gamepads, incluindo resposta vibratória. Ao contrário do DirectInput, o XInput é mais simplificado e focado nos controles modernos. ### **DirectML (Direct Machine Learning)** O DirectML é uma API integrada ao DirectX 12 que fornece acesso a recursos de aprendizado de máquina acelerados por GPU. Ele é usado em jogos e aplicações gráficas para tarefas como: - **Aprimoramento da qualidade de imagem por IA.** - **Aceleração de redes neurais.** - **Implementação de efeitos gráficos avançados em tempo real.** ### **DirectX Raytracing (DXR)** O DirectX Raytracing (DXR) expande os recursos do Direct3D ao adicionar suporte para ray tracing em tempo real. Isso permite que os desenvolvedores criem iluminação, reflexos e sombras altamente realistas em jogos modernos. ## **Perguntas Frequentes (FAQ)** ### **Qual é a diferença entre DirectX, OpenGL e Vulkan?** O DirectX é um conjunto de APIs exclusivo para Windows, otimizado para jogos e aplicações multimídia no sistema da Microsoft. O OpenGL e o Vulkan são alternativas multiplataforma que oferecem suporte ao Windows, Linux e outros sistemas operacionais. O Vulkan, assim como o DirectX 12, é uma API de baixo nível que melhora a eficiência e o desempenho. ### **O DirectX pode ser usado no Linux ou macOS?** O DirectX foi desenvolvido para o Windows. No entanto, algumas camadas de compatibilidade, como o Wine e o Proton, permitem que jogos baseados em DirectX sejam executados no Linux. O macOS não oferece suporte nativo para DirectX. ### **Preciso instalar o DirectX manualmente?** As versões mais recentes do Windows já vêm com o DirectX pré-instalado. No entanto, alguns jogos podem exigir atualizações ou componentes adicionais do DirectX. ### **Quais são as principais diferenças entre DirectX 11 e DirectX 12?** O DirectX 12 oferece acesso de baixo nível ao hardware, melhorando o desempenho e a eficiência em comparação com o DirectX 11. Ele também suporta múltiplas GPUs de forma mais eficiente e introduz ray tracing em tempo real. ## **Serverspace: Seu Portal de Conhecimento sobre DirectX e Mais** Se você deseja se aprofundar no DirectX e outras tecnologias, o **Serverspace** oferece uma base de conhecimento abrangente, repleta de guias e tutoriais. Seja para configurar o DirectX, otimizar o desempenho ou integrá-lo em seus projetos, o ServerSpace disponibiliza conteúdos detalhados sobre desenvolvimento de jogos, infraestrutura em nuvem e muito mais. Acesse o site oficial e descubra artigos especializados sobre DirectX, Vulkan e outras ferramentas essenciais para desenvolvedores. O DirectX continua sendo uma ferramenta fundamental para criar experiências de jogo imersivas, proporcionando aos desenvolvedores um conjunto robusto de APIs para gráficos, áudio e entrada de dados no ecossistema Windows. https://serverspace.com.br/support/help/buffers-de-vertices-e-indices-em-graficos-3d.md Saiba o que são vértices e índices em gráficos 3D, como os vértices e os buffers de índice (VBO e IBO) funcionam no OpenGL e no DirectX. Consideramos suas vantagens, exemplos de código e otimização de renderização. No render 3D moderno, os dados sobre a geometria dos objetos são armazenados na forma de vértices e índices. Esses dados são colocados em buffers especiais — o buffer de vértices e o buffer de índices. O uso de buffers permite transferir informações de forma eficiente para a GPU (Unidade de Processamento Gráfico) e minimizar os custos de processamento. ## **Buffer de Vértices (Vertex Buffer)** O Buffer de Vértices (Vertex Buffer, VBO) é uma área de memória onde são armazenados os dados dos vértices da geometria. Um vértice pode conter: - **Coordenadas (posição)** — (x, y, z) no espaço 3D. - **Cor** — (r, g, b, a) para definir a cor do vértice. - **Normais** — um vetor indicando a direção da superfície. - **Coordenadas de textura** — (u, v) para aplicação de texturas. - **Atributos adicionais** — por exemplo, pesos para animação. Exemplo de estrutura de vértice em C++: ``` struct Vertex { float position[3]; float color[4]; float texCoords[2]; }; ``` ## **Buffer de Índices (Index Buffer)** O Buffer de Índices (Index Buffer, IBO) é usado para otimizar a renderização. Em vez de enviar o mesmo vértice várias vezes, o buffer de índices contém referências (índices) para os vértices já existentes no buffer de vértices. **Exemplo de uso de índices:** Suponha que temos 4 vértices (v0, v1, v2, v3) que definem dois triângulos. Em vez de enviar 6 vértices separados, podemos enviar apenas 4 vértices e um array de índices: **[0, 1, 2, 2, 1, 3]** Isso reduz a quantidade de dados transferidos e acelera a renderização. Exemplo de declaração de um array de índices: ``` uint32_t indices[] = { 0, 1, 2, 2, 1, 3 }; ``` ## **Como isso funciona nas APIs modernas?** ### **OpenGL** No OpenGL, os vértices e índices são carregados na GPU por meio de VBO (Vertex Buffer Object) e EBO (Element Buffer Object). Exemplo de código para carregar buffers: ``` GLuint VBO, VAO, EBO; glGenVertexArrays(1, &VAO); glGenBuffers(1, &VBO); glGenBuffers(1, &EBO); ``` ### **DirectX 12** No DirectX 12, a estrutura ID3D12Resource é usada para armazenar vértices e índices, e a vinculação é feita por meio de D3D12_VERTEX_BUFFER_VIEW e D3D12_INDEX_BUFFER_VIEW. Exemplo de criação de um buffer: ``` D3D12_VERTEX_BUFFER_VIEW vertexBufferView = {}; vertexBufferView.BufferLocation = vertexBuffer->GetGPUVirtualAddress(); vertexBufferView.SizeInBytes = sizeof(vertices); vertexBufferView.StrideInBytes = sizeof(Vertex); ``` ## **Vantagens do uso de buffers de índices** - **Economia de memória** — Redução do número de vértices armazenados. **** - **Aumento de desempenho** — Menos dados são transferidos para a GPU. **** - **Otimização de cache** — A GPU utiliza os dados de forma mais eficiente. ## **Conclusão** Os buffers de vértices e índices são componentes essenciais da programação gráfica, permitindo carregar e renderizar modelos 3D de forma eficiente. O uso correto desses buffers melhora o desempenho da renderização e otimiza o funcionamento de aplicações gráficas. https://serverspace.com.br/support/help/transicao-de-recursos-gerenciamento-de-recursos-em-apis-graficas-modernas.md Explicamos por que precisamos de transições entre os estados dos recursos, como elas funcionam e quais erros podem ocorrer. Otimização e exemplos de código para o gerenciamento eficiente de recursos gráficos As APIs gráficas modernas, como DirectX 12 e Vulkan, fornecem aos desenvolvedores controle de baixo nível sobre os recursos gráficos, permitindo o uso mais eficiente da memória de vídeo e do poder de processamento da GPU. Um dos principais mecanismos de gerenciamento de recursos é o **Resource Transition** – um processo de alteração do estado do recurso para garantir seu uso correto em diferentes estágios da renderização. ## O que é Resource Transition? **Resource Transition** é a mudança de estado de um recurso gráfico (como uma textura ou buffer) antes de seu uso em outro contexto. Como a GPU executa muitas operações em paralelo, é essencial especificar de forma explícita quando e como um recurso pode alterar seu estado para evitar erros e comportamentos indefinidos. ## Por que Resource Transitions são necessárias? Os recursos gráficos podem ser usados para diferentes propósitos: - Como fonte de dados (**Shader Resource**) - Como destino de renderização (**Render Target**) - Como textura de profundidade (**Depth Stencil**) - Para cópia de dados (**Copy Source/Destination**) A transição entre esses estados exige uma indicação explícita do desenvolvedor. Por exemplo, uma textura utilizada como **Render Target** pela GPU não pode ser usada imediatamente como **Shader Resource** sem a mudança de estado apropriada. ## Como funcionam os Resource Transitions? Nas APIs modernas, o estado dos recursos é gerenciado manualmente por meio de **barreiras de recurso** (**Resource Barriers**), que indicam a necessidade de transição entre estados. Exemplos: - No **DirectX 12**, usa-se **D3D12_RESOURCE_BARRIER** - No **Vulkan**, utilizam-se **VkImageMemoryBarrier **e **VkBufferMemoryBarrier** ### Exemplo no DirectX 12: ``` D3D12_RESOURCE_BARRIER barrier = {}; barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; barrier.Transition.pResource = myTexture; barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_RENDER_TARGET; barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE; barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES; commandList->ResourceBarrier(1, &barrier); ``` Esse código instrui a GPU a alterar o estado da textura **myTexture**, que estava sendo usada como **Render Target**, para que agora possa ser acessada nos **Shaders** como **Shader Resource**. ### Exemplo no Vulkan: ``` VkImageMemoryBarrier imgBarrier = {}; imgBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; imgBarrier.oldLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; imgBarrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; imgBarrier.image = textureHandle; imgBarrier.srcAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; imgBarrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT; imgBarrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; imgBarrier.subresourceRange.baseMipLevel = 0; imgBarrier.subresourceRange.levelCount = 1; imgBarrier.subresourceRange.baseArrayLayer = 0; imgBarrier.subresourceRange.layerCount = 1; vkCmdPipelineBarrier( cmdBuffer, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, 0, 0, nullptr, 0, nullptr, 1, &imgBarrier ); ``` Aqui, a textura **myTexture **é convertida do estado **Color Attachment** para **Shader Read-Only**, permitindo sua leitura nos shaders. ## Problemas ao gerenciar transições incorretamente Se o gerenciamento de **Resource Transition** for feito de forma inadequada, podem ocorrer problemas como: - **Artefatos visuais**, quando a GPU tenta ler dados que ainda não foram gravados corretamente. - **Queda de desempenho**, devido a transições excessivas ou mal planejadas. - **Falhas gráficas**, se o recurso for usado simultaneamente em diferentes estágios sem sincronização adequada. ## Como otimizar Resource Transition? Para minimizar o impacto no desempenho, é recomendável: - **Agrupar transições** – usar múltiplas **ResourceBarrier **em um único comando para reduzir a sobrecarga. - **Reduzir mudanças desnecessárias de estado** – organizar a renderização para minimizar transições frequentes. - **Usar recursos com aliasing** – em alguns casos, é possível reutilizar a mesma área de memória para diferentes recursos, evitando trocas excessivas de estado. ## Conclusão **Resource Transition** é um aspecto fundamental ao trabalhar com APIs gráficas de baixo nível. Ele permite controlar os estados dos recursos e garantir que a renderização ocorra corretamente. O uso eficiente dessas transições melhora a performance e evita problemas visuais ou falhas na execução dos gráficos. ## Base de conhecimento Serverspace A [Base de Conhecimento Serverspace](https://serverspace.com.br/support.md) é um recurso abrangente que contém guias, artigos e documentação sobre infraestrutura em nuvem, ferramentas DevOps e tecnologias relacionadas à **gráficos 3D**. Além de tutoriais sobre configuração de servidores virtuais, gerenciamento de redes e armazenamento de dados, a base também apresenta conteúdos sobre renderização na nuvem, acesso remoto a GPUs e trabalho com **DirectX, Vulkan e OpenGL**. Isso torna o recurso útil não apenas para especialistas em DevOps, mas também para desenvolvedores de jogos, artistas 3D e engenheiros que trabalham com computação gráfica em ambientes na nuvem. https://serverspace.com.br/support/help/objeto-de-buffer-de-vertices-vbo-no-opengl.md O que é VBO (Vertex Buffer Object) em OpenGL? Saiba como essa ferramenta ajuda a otimizar a renderização, armazenar dados de vértices na memória de vídeo e acelerar a GPU. O **Vertex Buffer Object (VBO)** é uma ferramenta do OpenGL projetada para armazenar dados de vértices (coordenadas, normais, cores, coordenadas de textura e outros atributos) diretamente na memória de vídeo da GPU. O uso do VBO permite acelerar significativamente a renderização, reduzindo a quantidade de dados transferidos entre a CPU e a GPU. ## **Como Funciona?** O VBO é criado e gerenciado através da API do OpenGL. Os dados são carregados na memória de vídeo uma única vez, e a GPU os utiliza para renderização, minimizando o acesso à memória RAM e reduzindo a sobrecarga no processador. ## **Principais Etapas de Uso do VBO** - Criar um VBO usando **glGenBuffers()**. - Vincular o buffer com **glBindBuffer(GL_ARRAY_BUFFER, bufferID)**. - Preencher o buffer com dados através de **glBufferData()**. - Configurar os atributos dos vértices (por exemplo, **glVertexAttribPointer()**). - Utilizar o VBO no processo de renderização com **glDrawArrays()** ou **glDrawElements()**. - Liberar os recursos com glDeleteBuffers(). ## **Vantagens do VBO** **Redução da carga da CPU** ao transferir dados diretamente para a memória de vídeo. **Uso mais eficiente da memória da GPU**. **Melhor desempenho de renderização** devido à diminuição das chamadas de API. **Maior flexibilidade na manipulação de dados**, permitindo o uso combinado com **VAO (Vertex Array Object)** para facilitar a configuração dos atributos dos vértices. ## **Exemplo de Código** ``` GLuint vertexBuffer; glGenBuffers(1, &vertexBuffer); glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer); GLfloat vertexData[] = { 0.0f, 0.5f, 0.0f, -0.5f, -0.5f, 0.0f, 0.5f, -0.5f, 0.0f }; glBufferData(GL_ARRAY_BUFFER, sizeof(vertexData), vertexData, GL_STATIC_DRAW); ``` ## **Conclusão** O **VBO** é uma ferramenta essencial de otimização no OpenGL, permitindo armazenar e utilizar dados de vértices de maneira mais eficiente. Seu uso é **crítico para o alto desempenho na renderização de aplicações 3D modernas**. https://serverspace.com.br/support/help/buffer-de-profundidade-como-funciona-e-por-que-e-importante-na-renderizacao.md O Depth Buffer é uma das principais ferramentas de renderização que ajuda a renderizar corretamente as cenas 3D, ocultando objetos distantes. Aqui discutiremos seus princípios de funcionamento, problemas de ajuste de Z e otimizações como Early-Z e Reversed Z-buffer. Quando falamos de renderização em gráficos computacionais, uma das tarefas mais cruciais é determinar quais objetos estão mais próximos da câmera e quais devem ser ocultados. O **Depth Buffer** (também conhecido como **Z-buffer**) é um mecanismo projetado especificamente para lidar com essa tarefa, garantindo que as cenas 3D sejam renderizadas corretamente com a percepção adequada de profundidade. Neste artigo, exploraremos como o depth buffer funciona, por que ele é essencial e quais técnicas de otimização podem ser usadas para melhorar seu desempenho. ## **O que é um Depth Buffer?** O **Depth Buffer** é uma textura oculta (ou um buffer na memória da GPU) que armazena o valor de profundidade (distância) de cada pixel em relação à câmera. Quando o motor de renderização desenha um pixel, ele primeiro verifica sua profundidade (**coordenada Z**) e a compara com o valor existente no buffer: - **Se o novo pixel estiver mais próximo da câmera**, ele substitui o antigo. - **Se estiver mais distante**, ele é descartado. Esse processo é conhecido como **Z-test**, permitindo a criação de cenas 3D realistas sem custos computacionais excessivos para o processamento de superfícies ocultas. ## **Como o Depth Buffer Funciona?** - **Inicialização** – Antes do início da renderização, o depth buffer é preenchido com valores máximos (geralmente **1.0**, representando o **plano de recorte distante**). - **Teste e Escrita de Profundidade** – À medida que cada pixel é renderizado, a engine compara sua profundidade com o valor armazenado no buffer: **Se o novo pixel estiver mais próximo**, sua profundidade é escrita no buffer, e a cor é atualizada. - **Se estiver mais distante**, ele é descartado. - **Limpeza** – Antes de renderizar o próximo quadro, o depth buffer é redefinido para evitar interferências com a nova cena. ## **Resolvendo Problemas de Z-Fighting** Às vezes, objetos com profundidades muito próximas começam a **"competir" visualmente**, causando piscadas nos pixels ou artefatos em forma de listras. Esse problema é chamado de **Z-fighting**. **Como reduzir o Z-fighting?** **Aumente a precisão do depth buffer** – Utilize um depth buffer de **24 bits ou 32 bits** em vez de um de **16 bits**. **Ajuste corretamente os planos de recorte (near/far planes)** – Quanto mais próximo o **near clipping plane**, maior será a precisão da profundidade. **Use Polygon Offset** – Essa técnica desloca ligeiramente a profundidade da geometria para evitar problemas de sobreposição. ## **Otimizações do Depth Buffer** ### **Early-Z (Early Depth Testing)** GPUs modernas podem descartar pixels que serão ocultos **antes** de executar os fragment shaders. Isso economiza desempenho ao evitar cálculos desnecessários de sombreamento para pixels que não serão visíveis. ### **Reversed Z-Buffer** Normalmente, um depth buffer padrão tem maior precisão perto do plano **near** e menor precisão à medida que a profundidade aumenta. Para compensar isso, algumas engines **invertem** o depth buffer, armazenando o **inverso da profundidade (1/Z)**. Isso redistribui a precisão de forma mais equilibrada na cena. ### **Tile-Based Rendering (TBR)** Em dispositivos móveis, é utilizado um método especial chamado **tile-based rendering**. Em vez de processar toda a cena de uma vez, a GPU **divide** a tela em pequenos blocos (**tiles**) e os processa separadamente. Essa abordagem otimiza o uso da memória e da largura de banda, melhorando o desempenho em hardware móvel. ## **Aplicações do Depth Buffer em Gráficos** O depth buffer não é usado apenas para renderização básica em 3D, mas também desempenha um papel crítico em várias técnicas gráficas avançadas: **Shadow Mapping** – Renderizando um mapa de profundidade a partir da perspectiva da luz, podemos determinar quais pixels estão iluminados e quais estão na sombra. **Depth of Field (DOF)** – O desfoque de objetos distantes nos jogos depende dos cálculos de profundidade da cena. **Screen Space Ambient Occlusion (SSAO)** – A profundidade é usada para calcular a oclusão ambiental, melhorando o realismo da iluminação e sombreamento. ## **Conclusão** O **Depth Buffer** é um dos mecanismos mais fundamentais da renderização, permitindo a representação correta de cenas 3D. Embora seja conceitualmente simples, seu uso adequado exige uma configuração cuidadosa; caso contrário, artefatos como **Z-fighting** podem ocorrer. Os motores de jogos modernos continuamente otimizam o processamento de profundidade usando técnicas como **Early-Z, Reversed Z-Buffer e Tile-Based Rendering**. Se você está desenvolvendo jogos no **Unreal Engine, Unity ou em um motor personalizado**, compreender o depth buffer ajudará você a alcançar **melhor qualidade e desempenho na renderização**. https://serverspace.com.br/support/help/como-instalar-e-configurar-o-proxy-squid.md Aprenda como instalar e configurar o servidor proxy Squid: passo a passo de instalação, cache, filtragem de tráfego e otimização de desempenho. Este serviço de infraestrutura é uma parte integrante da rede corporativa e do subsistema de segurança, permitindo implementar autorização, filtragem de conteúdo, além de atuar como um gateway para que os usuários controlem os recursos acessados. Para o funcionamento completo e seguro da rede de informação, existem muitos serviços de infraestrutura que garantem seu desempenho. Um deles é o proxy, que é um nó intermediário. Sua tarefa é intermediar a conexão e realizar seu processamento: armazenar em cache as requisições e respostas, realizar SSL Bumping, autenticar o usuário na rede e filtrar pacotes de rede. Neste artigo, vamos analisar um dos exemplos desse tipo de serviço e configurá-lo! ## O que é um Proxy? Proxy é um nó intermediário, cujo principal objetivo é processar o tráfego que passa por ele e repassá-lo. Em segmentos de rede corporativa, é utilizado como um ponto único de saída para os usuários, o que permite a autorização e o controle das ações. Como descrito acima, sua funcionalidade para controlar o tráfego é praticamente ilimitada: - **SSL Bumping;** - **Armazenamento em cache de requisições;** - **Autenticação de clientes;** - **Análise de tráfego (sniffing);** - **Controle de recursos acessados.** E isso é lógico, pois o tráfego do usuário literalmente se espalha pela infraestrutura de rede e, nesses momentos, é muito difícil rastreá-lo, então o ponto único registra tudo. Esquematicamente, o algoritmo de funcionamento se parece com isto: Screenshot № 1 — Esquema No entanto, além do segmento corporativo, o proxy permite anonimizar o tráfego de rede ao substituir o endereço do remetente dentro do pacote. Essa funcionalidade, em relação à tecnologia existente, é usada por hackers ou por pessoas que desejam ocultar seus rastros digitais. Clássicamente, ao construir uma cadeia de proxies — também chamada de proxy-chain — é possível se esconder atrás de vários cordões de rede. Mas como o redirecionamento do tráfego para um único ponto é tecnicamente realizado? É simples: no caso de um reverse-proxy, o DNAT é responsável por isso, redirecionando para o endereço e a porta desejados conforme as regras. Já neste contexto, o forward-proxy estabelecerá uma conexão com o servidor na porta previamente determinada e, dentro dessa conexão, o cliente transmitirá os pacotes necessários no segmento de carga útil (payload). ## Configuração simplificada (sem autenticação) Para trabalhar com o serviço, vamos instalar todos os pacotes e dependências necessários: ```bash apt update && apt install squid -y ``` Screenshot № 2 — Instalação Classicamente, o arquivo de configuração do servidor está localizado no caminho /etc/squid/squid.conf: ``` nano /etc/squid/squid/squid.conf ``` Vamos configurar várias funções do servidor, começando pela mais simples e básica. Remova todo o conteúdo da configuração antiga e escreva as seguintes diretivas: ``` acl mynet src 192.168.1.0.0/24 http_access allow mynet http_access deny all http_port 3128 cache_mem 256 MB ``` Onde cada uma dessas diretivas tem funcionalidades diferentes: - **acl src** — uma lista nomeada de ACLs que especifica o segmento de rede; - **http_access allow** — permissão para conectar a rede local ao proxy, pois por padrão a conexão é proibida. Essa permissão também permite trabalhar via http; - **http_port** — porta na qual o proxy ficará escutando; - **cache_mem** — aloca memória para o cache de requisições. Após isso, salve o arquivo, reinicie o serviço e verifique sua funcionalidade: ```bash systemctl restart squid && systemctl status squid && curl -x 'http://ip-proxy:port-proxy' 'target' ``` Screenshot № 3 — Conexão Mas se você expor essa máquina para fora, ela provavelmente se tornará parte da infraestrutura usada para mascarar ataques DDoS ou outros, portanto a autenticação é necessária! ## Configuração clássica com autenticação Para proteger o servidor proxy, usaremos a forma clássica de autenticação HTTP, com a ajuda de um módulo pré-instalado. Primeiro, vamos criar uma conta com a qual o usuário será autenticado: ```bash sudo apt update && sudo apt install apache2-utils sudo htpasswd -c /etc/squid/passwd ``` Screenshot № 4 — Criação de usuário Na verdade, nesse contexto, um proxy é um serviço web que aceita conexões de entrada e, portanto, é possível usar módulos de autenticação com diferentes mecanismos e protocolos. Inclusive o PAM, que amplia o nível de possibilidades com sua base de bibliotecas: Screenshot № 5 — Forma de autenticação Para que a autenticação comece a funcionar, vamos à configuração e definimos os parâmetros e políticas: ``` acl mynet src 192.168.1.0/24 http_access allow mynet http_port 3128 cache_mem 256 MB auth_param basic programme /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd auth_param basic realm 'Proxy Authentication Required' acl authenticated proxy_auth REQUIRED http_access allow authenticated ``` Screenshot № 6 — Configuração da autenticação Vamos deixar o bloco superior inalterado, pois ele define a política do segmento de rede. Vamos analisar o bloco escrito abaixo. A diretiva auth_param define o parâmetro de autenticação, uma biblioteca para verificar o usuário com nossas credenciais na primeira linha e, na segunda, antes da verificação propriamente dita. Na terceira linha, o parâmetro acl proxy_auth significa que haverá validação antes de conectar, e http_access aplica essa regra previamente escrita. Vamos verificar a configuração após reiniciar o serviço: ```bash sudo systemctl restart squid ``` Vamos tentar conectar sem uma conta e, em seguida, com uma: ```bash curl -x 'http://ip-adders:port' 'target-url' && curl -x 'http://username:passwd@ip-adders:port' 'target-url' ``` Screenshot № 7 — Conexão com credenciais Como você pode ver, a autenticação foi bem-sucedida e o servidor web retornou uma resposta correta. Mas e se, além da autorização e controle de usuários, for necessário inspecionar o tráfego e ver o que os funcionários estão fazendo e pesquisando via SSL? ## Configuração avançada com SSL-Bumping Essa configuração permitirá implementar a substituição do certificado original por um certificado assinado próprio, que deve ser adicionado como confiável em todos os dispositivos por meio de políticas de grupo. O processo de comunicação será o seguinte: - O cliente se conecta a um site HTTPS via Squid. - O Squid intercepta a conexão e estabelece sua própria conexão criptografada com o cliente. - O Squid estabelece uma conexão criptografada separada com o servidor de destino. - O Squid descriptografa o tráfego entre cliente e servidor, podendo filtrá-lo ou registrá-lo. - O Squid transmite os dados ao cliente assinados com seu próprio certificado. Para começar, verifique se seu servidor proxy possui essa funcionalidade, pois as compilações podem variar e o ssl-bumping pode estar ausente em algumas: ``` sudo squid -v | grep '*-ssl*' ``` Screenshot № 8 — Verificação das opções Se você não tiver esse recurso, conclua a instalação do software: ```bash sudo apt install squid-openssl ``` E prossiga para a criação do certificado usando a utilidade: ```bash /usr/lib/squid/security_file_certgen -c -s /var/lib/squid/ssl_db -M 4MB chown -R squid:squid /var/lib/squid/ssl_db ``` Não se esqueça de configurar o arquivo de configuração para o bumping de conexão: ``` http_port 3128 ssl-bump cert=/var/lib/squid/ssl_db/myCA.pem key=/var/lib/squid/ssl_db/myCA.key ssl_bump peek all sslcrtd_program /usr/lib/squid/security_file_certgen -s /var/lib/squid/ssl_db -M 4MB ``` Screenshot № 9 — Configuração do SSL bumping Após isso, salve a configuração e reinicie o serviço — o proxy deve começar a trocar os certificados. Observe que alguns sites são protegidos contra ataques MitM (Man-in-the-Middle) com uma verificação adicional no nível do certificado http na memória. Se ele não corresponder ao original, a conexão será bloqueada, o que pode causar problemas para os clientes na sua rede. Nesses casos, é possível escrever uma exceção para eles. Se você não tiver recursos suficientes, pode executar essas ações em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) mais potentes. A Serverspace oferece servidores VPS isolados para uso comum e virtualizado. Screenshot № 10 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Após isso, você poderá se conectar de qualquer forma conveniente. Este serviço de infraestrutura é uma parte integrante da rede corporativa e do subsistema de segurança, permitindo implementar autorização, filtragem de conteúdo, além de atuar como um gateway para que os usuários controlem os recursos acessados. https://serverspace.com.br/support/help/salvando-a-saida-do-comando-top-em-um-arquivo-no-linux.md Saiba como salvar a saída do comando top em um arquivo para analisar a carga do sistema, bem como automatizar esse processo com o Cron. O artigo fornece exemplos práticos, dicas sobre como filtrar dados e usar grep e awk… O comando top é uma ferramenta poderosa para monitoramento de processos no Linux, permitindo acompanhar em tempo real a carga da CPU, o uso de memória e outros parâmetros do sistema. No entanto, em alguns casos, é necessário salvar os dados para análise posterior, especialmente ao identificar picos de carga de curta duração ou rastrear a atividade de processos específicos. Este artigo explora vários métodos para salvar a saída do top em um arquivo, além de automatizar o processo usando o Cron. ## 1. Salvando a saída do comando top uma única vez Se você precisa capturar o estado atual do sistema apenas uma vez, pode usar o seguinte comando: ``` top -b -n 1 > /home/user/logs/top_output.txt ``` Onde: - **-b** — modo batch, necessário para redirecionar a saída para um arquivo. - **-n 1** — executa uma única iteração de atualização e finaliza. - **> /home/user/logs/top_output.txt** — grava os dados no arquivo especificado. ## 2. Salvando múltiplas iterações da saída do top Para analisar mudanças no sistema ao longo do tempo, é possível executar o top em várias iterações com um intervalo de atraso: ``` top -n 5 -d 4 -b > /home/user/logs/top_output_5_iter.txt ``` Onde: - **-n 5** — executa 5 iterações de atualização. - **-d 4** — define um atraso de 4 segundos entre as atualizações. ## 3. Automatizando a coleta de dados com o Cron Se você precisa salvar regularmente informações sobre a carga do sistema, o uso do agendador de tarefas Cron é a melhor opção. Abaixo estão alguns cenários de automação. ## 3.1. Salvando a saída do top a cada 5 minutos por uma hora Por exemplo, para coletar dados dos processos a cada 5 minutos durante uma hora (das 5:00 às 6:00 da manhã), adicione o seguinte cron job: ``` 0-59/5 5 * * * top -n 10 -d 4 -b > /home/user/logs/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt ``` Este cron job: - É executado a cada 5 minutos, das 5:00 às 6:00. - Executa o top por 10 iterações, com um atraso de 4 segundos entre as atualizações. - Cria um arquivo separado com um timestamp para facilitar a análise dos dados. ### 3.2. Acrescentando dados do top a um único arquivo Se for necessário gravar os dados em um único arquivo, em vez de criar novos, use **>>** em vez de **>** , o que adicionará os resultados ao arquivo existente: ``` 0-59/5 9 * * * top -b -n5 -d 5 >> /home/user/logs/aggregated_top_output.txt ``` ### 3.3. Salvando a saída do top a cada 5 minutos por 30 minutos Para coletar informações apenas dentro de um intervalo de tempo específico, por exemplo, das 13:30 às 14:00, use o seguinte cron job: ``` 30-59/5 13 * * * top -n 10 -d 4 -b > /home/user/logs/top_out-`date +\%Y\%m\%d\%H\%M\%S`.txt ``` ## 4. Dicas adicionais ### 4.1. Filtrando a saída do top Se você precisa apenas dos dados de processos específicos, pode usar o grep. Por exemplo, para salvar somente informações sobre o processo nginx: ``` top -b -n 1 | grep nginx > /home/user/logs/nginx_top_output.txt ``` ### 4.2. Usando awk para extrair dados-chave Se você estiver interessado apenas no uso da CPU e da memória, pode filtrar a saída com awk: ``` top -b -n 1 | awk '/Cpu/ || /Mem/' > /home/user/logs/cpu_mem_usage.txt ``` ## Conclusão Salvar a saída do comando top em um arquivo permite analisar a carga do sistema em diferentes momentos e identificar gargalos. O uso do Cron ajuda a automatizar o processo, enquanto a filtragem possibilita focar nos dados mais relevantes. Essa abordagem é excelente para monitoramento do sistema, especialmente para diagnosticar picos temporários de carga ou realizar análises de desempenho a longo prazo. Ao aplicar esses métodos, você pode facilmente adaptá-los às suas necessidades e criar um sistema eficiente de coleta e análise de dados. https://serverspace.com.br/support/help/o-que-e-o-ray-marching-e-como-ele-funciona.md Saiba como funciona o Ray Marching, suas vantagens e desvantagens e por que ele é popular em gráficos procedurais. Ray Marching é um método de visualização de cenas 3D usado na renderização sem representar explicitamente a geometria como polígonos. Essa abordagem é particularmente popular em gráficos procedurais e shaders, como no ShaderToy, onde as cenas são criadas usando funções matemáticas. ## Princípio Básico Ao contrário do Ray Tracing clássico, que busca a interseção exata de um raio com a geometria, o Ray Marching funciona de forma iterativa. O raio se move pelo espaço em pequenos passos até atingir um objeto ou exceder o número máximo de iterações. O processo pode ser descrito com o seguinte algoritmo: - **Geração do Raio**: Um raio é criado a partir do ponto de vista (câmera), com sua direção calculada com base nas coordenadas do pixel na tela. - **Progressão Iterativa**: O raio se move ao longo de sua direção com um tamanho de passo determinado pela Signed Distance Function (SDF). Essa função retorna a distância mínima até a superfície mais próxima. - **Detecção de Colisão**: Se o valor da SDF ficar abaixo de um determinado limite (por exemplo, 0.001), considera-se que o raio atingiu a superfície de um objeto. - **Limite de Iterações**: Se o número de passos exceder um limite definido, o processo para e o pixel é tratado como fundo. - **Iluminação e Sombras**: Se o raio atingir uma superfície, cálculos de iluminação são aplicados (por exemplo, normais podem ser calculadas por diferenciação numérica da SDF), seguidos de efeitos como sombras e reflexos. ## Signed Distance Function (SDF) O conceito-chave do Ray Marching é a **Signed Distance Function**. Ela determina a distância de um ponto no espaço até a superfície mais próxima de um objeto. Exemplos incluem: - **Esfera**: **distance = length(p) - r** - **Cubo**: **distance = max(abs(p.x) - s, abs(p.y) - s, abs(p.z) - s)** - **União de Formas**: **min(distance1, distance2)** A SDF permite descrever objetos complexos sem armazenar explicitamente sua geometria, tornando esse método uma ferramenta poderosa em gráficos procedurais. ## Vantagens e Desvantagens **Vantagens:** - **Flexibilidade** – Permite a criação de cenas complexas sem malhas. **** - **Compacidade** – As cenas são codificadas com fórmulas matemáticas. **** - **Realismo** – Iluminação global, sombras suaves e reflexos podem ser facilmente integrados. **Desvantagens:** - **Alta Complexidade Computacional** – Requer muitas iterações. **** - **Artefatos** – Precisão insuficiente pode levar a "buracos" ou interseções incorretas. ## Conclusão Ray Marching é uma técnica poderosa usada em gráficos procedurais e na demoscene. Embora exija consideráveis recursos computacionais, sua flexibilidade permite a criação de efeitos visuais impressionantes e cenas completamente descritas por matemática. Esse método é especialmente interessante para pesquisadores de renderização e para aqueles que desejam entender mais profundamente as técnicas modernas de shaders. https://serverspace.com.br/support/help/o-que-e-o-sphere-tracing-e-como-ele-funciona.md Aprenda a diferença entre Ray Marching e Sphere Tracing, suas vantagens e desvantagens, e qual método é melhor para renderizar cenas procedurais. **Sphere Tracing** é um método de renderização usado para visualizar cenas 3D sem armazenar explicitamente a geometria como polígonos. Ele é baseado em **Signed Distance Functions (SDF)** e é uma variação do **Ray Marching**, mas com uma abordagem otimizada de passos, permitindo uma detecção de interseção mais precisa e eficiente com os objetos. ## Princípio Básico Em vez de avançar o raio de forma uniforme, como no **Ray Marching** clássico, o **Sphere Tracing** usa informações de distância até a superfície mais próxima para determinar o tamanho ideal do passo. Isso reduz significativamente o número de iterações e minimiza a ocorrência de artefatos na renderização. O algoritmo funciona da seguinte maneira: - **Geração do Raio**: Um raio é lançado da câmera, com sua direção calculada com base nas coordenadas do pixel. - **Passos de Rastreamento**: O raio avança, não com passos fixos, mas com passos iguais ao valor da **SDF**. Isso garante que o raio nunca ultrapasse um objeto. - **Detecção de Interseção**: Se o valor da **SDF** for menor que um determinado limite (por exemplo, 0.001), o raio é considerado como tendo atingido a superfície. - **Limite de Iteração**: Se o número de passos ultrapassar um limite predefinido, o pixel é tratado como fundo. - **Cálculo de Iluminação e Sombras**: Após detectar uma interseção, normais, sombras e outros efeitos são calculados. ## Vantagens do Sphere Tracing - **Renderização mais eficiente** – Comparado ao **Ray Marching** tradicional, requer menos iterações, pois adapta os passos com base na informação de distância. - **Sem ultrapassagem de superfícies** – O raio nunca atravessa um objeto, eliminando erros de renderização. - **Ótima compatibilidade com gráficos procedurais** – Permite visualizar formas complexas sem armazenar malhas poligonais. ## Limitações - **Não é adequado para cenas muito detalhadas** – Em áreas onde os gradientes da **SDF** mudam abruptamente, podem ocorrer problemas de precisão. - **Requer descrições pré-definidas da SDF** – Diferente do **Ray Tracing** clássico, que pode funcionar com qualquer superfície, o **Sphere Tracing** depende de **Signed Distance Functions** definidas previamente. ## Conclusão O **Sphere Tracing** é um método poderoso para renderizar cenas baseadas em **SDF**, melhorando significativamente a eficiência do **Ray Marching**. Ele é amplamente utilizado em gráficos procedurais, na **demoscene** e na arte generativa, proporcionando uma visualização rápida e precisa de formas complexas. https://serverspace.com.br/support/help/ray-marching-vs-sphere-tracing-qual-e-a-diferenca.md Aprenda a diferença entre Ray Marching e Sphere Tracing, suas vantagens e desvantagens, e qual método é melhor para renderizar cenas procedurais. Ray Marching e Sphere Tracing são dois métodos de renderização semelhantes baseados em **Signed Distance Functions (SDF)**. Eles são usados para visualizar cenas sem geometria poligonal tradicional, mas diferem significativamente na abordagem para o avanço dos passos. Neste artigo, compararemos esses métodos, destacando suas vantagens e desvantagens. ## Princípios Fundamentais - **Ray Marching** é um método de rastreamento de raios baseado em passos, onde o raio avança com passos fixos ou adaptativos até atingir a superfície de um objeto ou exceder o limite de iterações. - **Sphere Tracing** é uma versão aprimorada do Ray Marching, onde os tamanhos dos passos são determinados pelo valor da **Signed Distance Function**. O raio avança uma distância igual ao valor da SDF no ponto atual, evitando ultrapassagens de superfícies. ### Comparação dos Métodos | Característica | Ray Marching | Sphere Tracing | | --- | --- | --- | | Progresso do raio | Passos fixos ou adaptativos | Passos otimizados com base na SDF | | Eficiência | Pode exigir muitos passos | Mais rápido devido ao tamanho dinâmico dos passos | | Risco de ultrapassagem | Alto com passos grandes | Eliminado pelo controle da SDF | | Precisão | Pode sofrer com artefatos | Método mais preciso | | Uso em gráficos | Método geral, versátil | Especializado para gráficos procedurais | ## Prós e Contras ### **Ray Marching** **Flexibilidade** – Pode ser usado tanto com **SDF** quanto com outras técnicas de visualização. **Simplicidade** – Mais fácil de implementar. **Alto número de iterações** – Pode ser computacionalmente caro. **Artefatos** – Baixa precisão nos passos pode levar a erros na renderização. ### **Sphere Tracing** **Maior desempenho** – Requer menos iterações. **Sem ultrapassagem de superfícies** – Garante interseções corretas. **Limitado a cenas baseadas em SDF** – Não é adequado para superfícies arbitrárias. **Problemas de precisão em cenas complexas** – Mudanças bruscas na **SDF** podem causar imprecisões. ## Quando Usar Cada Método - **Ray Marching** é mais indicado quando se deseja renderizar objetos sem **SDF**, como cenas baseadas em voxels ou renderização volumétrica. - **Sphere Tracing** é ideal para cenas procedurais onde os objetos são definidos por **Signed Distance Functions**, como no **ShaderToy** e na **demoscene**. ## Conclusão Ambos os métodos são amplamente utilizados em computação gráfica, e sua eficácia depende das necessidades do projeto. **Sphere Tracing** é mais eficiente para cenas baseadas em **SDF**, enquanto **Ray Marching** oferece maior flexibilidade. A escolha entre eles depende dos compromissos entre **desempenho** e **adaptabilidade** em uma determinada aplicação. https://serverspace.com.br/support/help/como-e-o-processo-de-inicializacao-do-linux-com-todas-as-etapas.md O que acontece “sob o capô” do Linux na inicialização? Vamos conduzi-lo passo a passo pelo BIOS/UEFI, gerenciador de inicialização, kernel, init e serviços. Entenda como tudo funciona e aprenda a resolver problemas de inicialização! O processo de inicialização do Linux envolve várias etapas importantes, cada uma desempenhando um papel fundamental na configuração e preparação do sistema para operação. Vamos analisar cada uma delas em detalhes. ## **1. Ligando o Computador e Execução do BIOS/UEFI** Quando o computador é ligado, o primeiro componente a entrar em ação é o BIOS (Basic Input/Output System) ou o UEFI (Unified Extensible Firmware Interface). As principais funções dessa etapa incluem: - **Inicialização e verificação dos componentes de hardware, como processador, memória e dispositivos de entrada e saída.** - **Execução do Power-On Self Test (POST) para detectar possíveis falhas no hardware.** - **Identificação do dispositivo de inicialização (HD, SSD, USB, etc.).** - **Transferência do controle para o bootloader do sistema operacional.** ## **2. Bootloader (GRUB, LILO, Syslinux e outros)** Após a inicialização do BIOS/UEFI, o controle é passado para o bootloader. No Linux, o bootloader mais comum é o GRUB (Grand Unified Bootloader). Ele é responsável por: - **Carregar o kernel do Linux na memória.** - **Passar parâmetros da linha de comando para o kernel.** - **(Opcionalmente) Permitir a escolha entre diferentes versões do kernel ou modos de inicialização, como o modo de recuperação.** Se o sistema estiver usando UEFI, o bootloader opera dentro do ambiente EFI, geralmente utilizando GRUB2 ou systemd-boot. ## **3. Inicialização do Kernel** O kernel é o núcleo do sistema operacional Linux e, assim que o bootloader o carrega na memória, ele executa uma série de tarefas essenciais, incluindo: - **Configuração do processador e da memória.** - **Detecção e inicialização dos dispositivos de hardware disponíveis.** - **Montagem de um sistema de arquivos temporário (initramfs ou initrd).** - **Localização e montagem do sistema de arquivos raiz.** - **Inicialização do primeiro processo de usuário, chamado init.** ## **4. O Processo Init e a Inicialização do Espaço do Usuário** Após o carregamento do kernel, o primeiro processo do espaço do usuário a ser executado é o init (ou alternativas modernas, como systemd). Esse processo realiza: - **Leitura das configurações de inicialização (por exemplo, /etc/inittab ou /etc/systemd/system/default.target).** - **Inicialização dos serviços essenciais do sistema, como redes e gerenciamento de dispositivos udevd).** - **Definição dos níveis de execução (runlevels) ou targets (no caso do systemd).** - **Ativação do modo multiusuário e inicialização dos serviços fundamentais para o funcionamento do sistema.** ## **5. Inicialização do Ambiente Gráfico (Opcional)** Se o sistema estiver configurado para operar com uma interface gráfica, este estágio envolve a execução do servidor gráfico (Xorg ou Wayland), do ambiente de desktop (GNOME, KDE, XFCE, etc.) e do gerenciador de login (GDM, SDDM, LightDM). ## **6. Sessão do Usuário** Após o carregamento de todos os componentes do sistema, o usuário pode efetuar login, iniciando: - **Aplicação das configurações pessoais do usuário.** - **Execução de processos em segundo plano (como serviços de rede, aplicativos da bandeja do sistema e gerenciadores de janelas).** - **Disponibilização de um ambiente de trabalho totalmente funcional, incluindo terminais, navegadores, editores de texto e outros programas.** ## **Perguntas Frequentes (FAQ) sobre a Inicialização do Linux** **1. O que fazer se o Linux não inicializar?** Verifique as configurações do BIOS/UEFI, certifique-se de que o dispositivo de inicialização está correto e tente recuperar o bootloader usando um Live USB. **2. Como o GRUB se diferencia de outros bootloaders?** O GRUB é mais flexível e suporta múltiplos sistemas operacionais, além de oferecer compatibilidade com vários sistemas de arquivos. **3. É possível inicializar o sistema sem initramfs**? Sim, mas isso exige que o kernel seja compilado estaticamente com todos os módulos necessários, tornando a manutenção do sistema mais complexa. **4. O que fazer se a inicialização travar no init**? Inicialize no modo de recuperação, analise os logs do sistema (**journalctl -xb**) e corrija possíveis falhas na configuração do **systemd**. **5. Como acelerar a inicialização do Linux?** Desative serviços desnecessários (**systemctl disable**), ative o carregamento paralelo de processos e utilize um sistema de arquivos otimizado para inicialização rápida. ## **Conclusão** O processo de inicialização do Linux segue uma sequência estruturada, garantindo que o sistema seja configurado corretamente e esteja pronto para uso. Tudo começa com o BIOS ou UEFI inicializando o hardware e passando o controle para o bootloader. Em seguida, o kernel é carregado e configura os recursos essenciais do sistema. O **init **então assume a responsabilidade de iniciar os serviços fundamentais e preparar o ambiente para o usuário. Finalmente, o sistema pode fornecer uma interface gráfica ou um terminal de comando, permitindo que o usuário interaja com o Linux de forma eficiente. https://serverspace.com.br/support/glossary/icmp.md Saiba o que é ICMP, suas vantagens e desvantagens, suas funções e recursos. ## O que é ICMP? O **ICMP (Internet Control Message Protocol)** é um protocolo de rede projetado para a troca de mensagens de diagnóstico e erro em redes IP. Ele é um componente essencial do protocolo IP e é utilizado para o controle de dispositivos de rede e a resolução de problemas de conectividade. ## Funções e características do ICMP - **Transmissão de mensagens de erro:** O ICMP é usado para enviar mensagens de erro que podem ocorrer ao transmitir pacotes IP. Por exemplo, se um roteador não puder entregar um pacote ao endereço especificado, ele enviará uma mensagem de erro ao remetente por meio do ICMP. - **Transmissão de mensagens de diagnóstico:** O ICMP é amplamente utilizado para diagnosticar conexões de rede. Um dos usos mais conhecidos é o comando ping, que verifica a disponibilidade de um host remoto e mede o tempo de resposta. - **Estrutura do pacote ICMP:** Os pacotes ICMP consistem em um cabeçalho e no corpo da mensagem. O cabeçalho inclui o tipo de mensagem, código da mensagem e checksum. O conteúdo da mensagem pode variar dependendo do tipo específico de mensagem. - **Tipos de mensagens ICMP:** Existem diversos tipos de mensagens ICMP, entre eles: **Echo Request e Echo Reply:** Usados para verificar a disponibilidade de um host (por exemplo, via comando ping). - **Destination Unreachable:** Informa ao remetente que o pacote não pode ser entregue ao destino especificado. - **Time Exceeded:** Indica que o tempo de vida (TTL) do pacote expirou antes de chegar ao destino. - **Redirect:** Sugere uma rota mais eficiente para o envio de pacotes. ## Aplicações e ferramentas ICMP - **Ping:** Uma das ferramentas mais populares baseadas em ICMP, utilizada para verificar a conectividade e medir a latência na transmissão de dados. - **Traceroute:** Utiliza mensagens ICMP Time Exceeded para determinar o caminho que os pacotes percorrem até o destino. ## Vantagens do ICMP - **Diagnóstico de rede:** Ajuda administradores a identificar e solucionar problemas de conectividade e desempenho. - **Gerenciamento de rede:** Pode ser usado para otimizar roteamento e detectar falhas. - **Simplicidade:** Protocolo leve e fácil de implementar. ## Desvantagens do ICMP - **Segurança:** Pode ser explorado por invasores para ataques DoS (Denial of Service) e DDoS (Distributed Denial of Service), por isso, muitas redes restringem ou filtram solicitações ICMP. - **Funcionalidade limitada:** O ICMP é voltado para diagnóstico e relatórios de erro, não sendo adequado para a transmissão de dados. O ICMP continua sendo uma ferramenta essencial para administradores de rede, permitindo um monitoramento eficaz e ajudando na solução de problemas de conectividade. https://serverspace.com.br/support/glossary/shell.md Saiba o que é o Shell, seus principais aspectos e tipos. Saiba por que o Shell é uma das ferramentas básicas para trabalhar em sistemas Unix. O **Shell**, ou interpretador de comandos, é um programa que fornece uma interface para interação entre o usuário e o sistema operacional. Ele permite a execução de comandos, abertura de aplicativos, manipulação de arquivos e diversas outras tarefas, funcionando como um intermediário entre o usuário e o núcleo do sistema. O Shell é amplamente utilizado em sistemas Unix-like, como Linux e macOS, sendo uma ferramenta essencial para administração e automação. ## Principais aspectos do Shell - **Linha de comando**: O usuário insere comandos no terminal, que são interpretados pelo Shell e executados pelo sistema operacional. Exemplos de comandos comuns incluem ls, cd, mkdir, rm, cp, entre outros. - **Scripts**: O Shell permite a criação e execução de scripts – arquivos contendo sequências de comandos executados automaticamente, tornando-se uma ferramenta poderosa para automação de tarefas. ## Tipos de Shell Existem diversas implementações do Shell, cada uma com características próprias: - **Bash (Bourne Again Shell)** – uma das versões mais populares, especialmente em distribuições Linux. - **Zsh (Z Shell)** – possui recursos avançados, como autocompletar inteligente e destaque de sintaxe. - **Fish (Friendly Interactive Shell)** – foca na simplicidade e usabilidade, oferecendo uma interface mais intuitiva. - **C Shell (csh) e Korn Shell (ksh)** – opções alternativas amplamente usadas em diferentes sistemas Unix. ## Recursos do Shell - **Variáveis de ambiente:** O Shell utiliza variáveis como PATH, HOME e USER, que armazenam informações sobre a configuração do sistema e os diretórios de arquivos executáveis. - **Pipelines e redirecionamento:** Permite enviar a saída de um comando como entrada para outro usando | ou direcionar a saída para arquivos com > e >>, criando fluxos de processamento eficientes. - **Gerenciamento de processos:** O Shell possibilita iniciar comandos em segundo plano, monitorar processos, finalizá-los e enviar sinais para interação direta. O Shell é uma ferramenta essencial para administradores de sistemas, desenvolvedores e engenheiros, pois permite um controle avançado e flexível do sistema operacional. Seu uso é fundamental em ambientes de servidores e computação em nuvem, onde a administração eficiente dos recursos é essencial. https://serverspace.com.br/support/glossary/ipv6.md Saiba o que é o protocolo IP v6, seus recursos, formato de endereço e por que você precisa atualizar para a versão v6 mais recente. O **IPv6 (Internet Protocol version 6)** é a versão mais recente do protocolo de Internet, desenvolvida para solucionar a escassez de endereços IP no padrão anterior, IPv4. Enquanto o IPv4 utiliza endereços de 32 bits, fornecendo cerca de 4,3 bilhões de combinações únicas, o IPv6 opera com endereços de 128 bits, expandindo o espaço de endereçamento para aproximadamente 3,14 × 10³⁸ combinações possíveis. ## Principais características do IPv6 - **Maior espaço de endereçamento** – Suporta um número imenso de dispositivos conectados, essencial para o crescimento da Internet das Coisas (IoT). - **Roteamento otimizado** – A estrutura do IPv6 melhora a eficiência do roteamento e reduz a complexidade das tabelas de roteamento. - **Autoconfiguração de endereços** – Permite que dispositivos obtenham endereços IP automaticamente sem necessidade de servidores DHCP. - **Segurança aprimorada** – O IPv6 integra nativamente o IPsec, garantindo criptografia e autenticação no tráfego de dados. - **Eliminação do NAT** – O vasto espaço de endereçamento torna desnecessário o uso do NAT (Network Address Translation), simplificando a comunicação direta entre dispositivos na rede. ## Formato de endereço IPv6 Os endereços IPv6 são representados por oito grupos de quatro dígitos hexadecimais, separados por dois pontos (:). Exemplo: ``` 2001:0db8:85a3:0000:0000:8a2e:0370:7334 ``` Para simplificar, blocos contínuos de zeros podem ser substituídos por ::, como neste exemplo: ``` 2001:db8::8a2e:370:7334 ``` (Aqui, os grupos de zeros consecutivos foram abreviados com ::). ## Por que migrar para o IPv6? A principal razão para a adoção do IPv6 é a escassez de endereços IPv4. Com a crescente demanda por dispositivos conectados, o IPv4 já não consegue atender às necessidades atuais. A transição para o IPv6 está sendo realizada de forma gradual, e muitas redes operam com suporte duplo (dual stack), permitindo a coexistência de IPv4 e IPv6 até que a migração seja concluída. https://serverspace.com.br/support/glossary/msaa-multisample-anti-aliasing-um-algoritmo-comum-de-antisserrilhamento.md Saiba como o MSAA (Multisample Anti-Aliasing) ajuda a melhorar a qualidade dos gráficos nos jogos, reduzindo o passo a passo sem sobrecarregar a placa de vídeo. Saiba como funciona, os prós, os contras e a comparação com outros métodos de… **MSAA (Multisample Anti-Aliasing)** é uma das técnicas de antisserrilhamento mais utilizadas em gráficos de computador, projetada para minimizar artefatos visuais que aparecem nas bordas dos objetos. Esse método ajuda a criar uma imagem mais suave e natural, reduzindo o efeito de serrilhado (aliasing) sem impactar significativamente o desempenho. ### Como Funciona Diferente do superamostragem tradicional (SSAA), que renderiza toda a cena em uma resolução maior e depois a reduz, o MSAA aumenta seletivamente os detalhes apenas em áreas com bordas nítidas. Isso melhora significativamente a qualidade visual sem exigir muitos recursos. O MSAA funciona da seguinte forma: - **Seleção de Amostras (Samples)** — Cada pixel é renderizado com múltiplos pontos de amostragem (geralmente 2x, 4x ou 8x), mas o shader é executado apenas uma vez por pixel. - **Processamento de Profundidade e Cor** — Os valores de profundidade (Z-buffer) e cobertura são calculados para cada subamostra, ajudando a mesclar corretamente as cores nas bordas dos objetos. - **Renderização Final** — Após o processamento, os pixels são suavizados, criando bordas mais naturais. ### Vantagens do MSAA - **Equilíbrio ideal entre qualidade e desempenho** — Proporciona um antisserrilhamento eficaz sem sobrecarregar excessivamente a GPU, ao contrário do SSAA, que é muito mais exigente. - **Boa compatibilidade** com diversas APIs gráficas, como DirectX e OpenGL. - **Alta qualidade de suavização das bordas** com um custo computacional moderado. ### Desvantagens do MSAA - **Não afeta texturas internas e efeitos de shader** — Alguns elementos, como texturas transparentes e efeitos de pós-processamento, não são suavizados. - **Maior uso de memória de vídeo (VRAM) para os buffers de quadro** — Quanto mais amostras, maior o consumo de memória. - **Ineficiente para detalhes finos** (como grama, cabelos ou texturas complexas). ### Comparação com Outros Métodos de Antisserrilhamento - **FXAA (Fast Approximate Anti-Aliasing)** — Um dos algoritmos mais rápidos, usa pós-processamento, mas pode reduzir a nitidez das texturas e causar um leve efeito de desfoque. - **TAA (Temporal Anti-Aliasing)** — Analisa os quadros ao longo do tempo para reduzir o aliasing, mas pode causar rastros (ghosting) e suavizar excessivamente pequenos detalhes. - **SSAA (Super-Sample Anti-Aliasing)** — Método com a melhor qualidade de suavização, pois renderiza a imagem em uma resolução extremamente alta, mas é extremamente exigente para o hardware. ### FAQ (Perguntas Frequentes) **O MSAA pode ser combinado com outros métodos de antisserrilhamento?** Sim, alguns motores gráficos permitem técnicas híbridas, como a combinação de MSAA com FXAA ou TAA, ajudando a compensar as desvantagens de cada método. **Qual modo de MSAA escolher: 2x, 4x ou 8x?** Quanto maior o número de amostras, melhor a suavização, mas também maior a carga sobre a GPU. A escolha ideal depende da capacidade da placa de vídeo e da qualidade de imagem desejada. **O MSAA funciona com texturas transparentes?** O MSAA padrão não suaviza texturas com canal alfa, mas algumas implementações, como Alpha-To-Coverage, podem ajudar a resolver parcialmente esse problema. ### Conclusão O MSAA é uma solução equilibrada para melhorar a qualidade da imagem em jogos 3D. Ele proporciona uma suavização eficaz das bordas sem comprometer demasiadamente o desempenho. No entanto, jogos modernos estão cada vez mais adotando métodos híbridos de antisserrilhamento, como TAA e DLSS, que levam em conta a dinâmica da cena e aplicam algoritmos inteligentes para melhorar tanto a performance quanto a qualidade visual. https://serverspace.com.br/support/glossary/kernel.md Descubra o que é o kernel e por que ele é essencial para o funcionamento, segurança e desempenho dos sistemas operacionais como Linux e Windows. O kernel (núcleo) é a parte central do sistema operacional, responsável por possibilitar a comunicação entre o hardware e os programas. Ele gerencia os recursos do computador — como o processador, a memória e os dispositivos de entrada/saída — e coordena sua operação, garantindo a execução de tarefas, comandos e requisições. Em sistemas do tipo Unix, como o Linux, o kernel desempenha um papel essencial — sem ele, o sistema operacional não funciona. ## Principais funções e características do kernel - **Gerenciamento de processos:** O kernel controla o início, a suspensão, a retomada e o encerramento de processos. Ele também distribui o tempo de uso do processador entre eles e gerencia a multitarefa. - **Gerenciamento de memória:** O kernel é responsável pela alocação e liberação da memória RAM, pela memória virtual e pela proteção entre espaços de memória. Ele garante que cada programa receba a memória necessária e que um processo não acesse áreas destinadas a outros. - **Gerenciamento de dispositivos:** Por meio dos drivers, o kernel controla dispositivos conectados, como discos, impressoras, placas de vídeo e redes. Ele abstrai o hardware físico, oferecendo uma interface padronizada para os programas interagirem com esses dispositivos. - **Sistema de arquivos:** O kernel gerencia a leitura, escrita e acesso aos arquivos. Ele oferece suporte a diferentes sistemas de arquivos, como ext4, NTFS, FAT, entre outros. - **Segurança e controle de acesso:** O kernel define quais usuários e processos têm permissão para acessar determinados recursos ou arquivos. Ele protege os dados e o sistema contra acessos não autorizados. - **Comunicação em rede:** O kernel também é responsável por gerenciar conexões de rede, protocolos e a transferência de dados entre dispositivos. Ele oferece suporte a protocolos como TCP/IP e outros. ## Tipos de kernel - **Kernel monolítico:** Inclui todas as funções principais em um único módulo. Um exemplo é o kernel do Linux, onde componentes como gerenciamento de memória e dispositivos funcionam dentro de um mesmo espaço. - **Microkernel:** Oferece apenas funcionalidades básicas — como gerenciamento de memória e processos — e executa o restante como módulos independentes. Exemplos incluem o Minix e o Mach. - **Kernel híbrido:** Combina características de kernels monolíticos e microkernels. O Windows NT, por exemplo, utiliza um kernel híbrido com partes operando em diferentes modos. O kernel é a base do sistema operacional. É ele quem garante a estabilidade, a segurança e o desempenho da máquina. https://serverspace.com.br/support/help/o-que-e-pre-processamento-em-glsl.md Saiba como o pré-processamento funciona em GLSL e como usar macros, construções condicionais e extensões para otimizar e ajustar os shaders de forma flexível. Preprocessamento no GLSL (OpenGL Shading Language) é um mecanismo para processar o código do shader antes da compilação. Ele permite gerenciar o código do shader usando macros, estruturas condicionais e inclusão de extensões. Isso é particularmente útil para otimização, compatibilidade entre plataformas e configuração flexível dos shaders. Neste artigo, exploraremos como o preprocessamento funciona no GLSL, quais diretivas estão disponíveis e onde ele pode ser aplicado. ## Principais Diretivas do Pré-processador O pré-processador do GLSL funciona com base no princípio de substituição de texto: ele substitui ou remove partes do código antes que o shader seja compilado. Vamos analisar as principais diretivas disponíveis no GLSL. ### 1. #version – Especificando a Versão do GLSL Cada shader deve começar com uma declaração de versão: ``` #version 450 ``` Essa linha informa ao compilador qual versão do GLSL usar. Se a versão não for especificada, o compilador pode utilizar um padrão desatualizado que não possui recursos modernos. ### 2. #define – Macros Permite definir constantes ou substituir expressões antes da compilação. ``` #define PI 3.14159265359 float getCircleArea(float radius) { return PI * radius * radius; } ``` Também é possível usar #define para criar "pseudo-funções": ``` #define SQR(x) ((x) * (x)) float lengthSquared(vec3 v) { return SQR(v.x) + SQR(v.y) + SQR(v.z); } ``` ### 3. #undef – Removendo uma Macro Se for necessário cancelar um #define previamente declarado, pode-se usar #undef: ``` #define USE_TEXTURE #undef USE_TEXTURE ``` Após #undef USE_TEXTURE, o código não reconhecerá mais USE_TEXTURE como definido. ### 4. #ifdef,#ifndef, #endif – Compilação Condicional Permite incluir ou excluir partes do código dependendo da definição de uma macro. ``` #define USE_LIGHTING #ifdef USE_LIGHTING uniform vec3 lightColor; #endif ``` Se USE_LIGHTING estiver definido, a variável lightColor será declarada. Caso contrário, esse código será ignorado. Da mesma forma, #ifndef funciona de maneira oposta – o bloco de código será compilado apenas se a macro **NÃO** estiver definida: ``` #ifndef DEBUG_MODE // Código que será executado apenas se DEBUG_MODE não estiver ativado #endif ``` ### 5. #if, #elif, #else, #endif – Condições Baseadas em Valores Permite verificar valores de macros e modificar o código com base neles. ``` #define QUALITY 2 #if QUALITY == 1 vec3 color = vec3(0.5); #elif QUALITY == 2 vec3 color = vec3(1.0); #else vec3 color = vec3(0.0); #endif ``` Se QUALITY == 1, um determinado código será usado; se QUALITY == 2, outro código será ativado; caso contrário, será usada a terceira opção. ### 6.#error – Geração de Erro na Compilação Se for necessário interromper a compilação com uma mensagem de erro, usa-se #error: ``` #ifndef MAX_LIGHTS #error "A macro MAX_LIGHTS não foi definida!" #endif ``` O compilador exibirá "A macro MAX_LIGHTS não foi definida!" caso ela não tenha sido declarada. ### 7. #pragma – Diretivas do Compilador Essa diretiva é usada para controlar o comportamento do compilador, mas raramente aparece no GLSL padrão. Exemplo do OpenGL ES: ``` #pragma optimize(on) ``` ### 8. #extension– Habilitando Extensões Alguns recursos do OpenGL exigem a ativação de extensões. Isso pode ser feito com #extension: ``` #extension GL_ARB_shader_image_load_store : enable ``` **Sintaxe:** ``` #extension : ``` **Modos disponíveis:** - enable – Habilita a extensão. - require – Requer a extensão (falha na compilação se indisponível). - disable – Desativa a extensão. - warn – Exibe um aviso ao usar a extensão. ## Onde o Pré-processamento é Utilizado? O preprocessamento no GLSL é aplicado em diversos cenários: ### **Otimização de Desempenho** Efeitos desnecessários podem ser desativados dependendo das capacidades do hardware ou das configurações do jogador. ### **Configuração Diferenciada de Shaders** Por exemplo, é possível alterar a quantidade de fontes de luz ou a qualidade da renderização sem modificar o código principal. ### **Desenvolvimento Multiplataforma** Diferentes GPUs e versões do OpenGL podem suportar diferentes recursos. Com #ifdef, é possível escrever shaders universais. ### **Facilidade na Depuração** Podem ser adicionadas macros de depuração para ativar e desativar verificações adicionais. ``` #define DEBUG_MODE #ifdef DEBUG_MODE vec3 debugColor = vec3(1.0, 0.0, 0.0); // Cor vermelha para depuração #endif ``` ## **Conclusão** O preprocessamento no GLSL é uma ferramenta poderosa que permite gerenciar o código dos shaders de forma flexível. Com ele, é possível: - **Otimizar shaders** - **Criar efeitos adaptáveis** - **Tornar o código mais legível e organizado** https://serverspace.com.br/support/help/objeto-de-estado-de-pipeline-pso-em-apis-graficas-modernas.md O Pipeline State Object (PSO) é um mecanismo importante de otimização de renderização no DirectX 12 e no Vulkan. Este artigo explica como o PSO integra os parâmetros do pipeline gráfico, reduzindo a sobrecarga e melhorando o desempenho. **Pipeline State Object (PSO) é um conceito fundamental nas APIs gráficas modernas, como DirectX 12 e Vulkan.** Ele representa um objeto que armazena o estado do pipeline gráfico e ajuda a acelerar a renderização ao minimizar os custos das mudanças de estado. Neste artigo, exploraremos o que é o PSO, como ele funciona, seus benefícios e como utilizá-lo corretamente. ## O que é um Pipeline State Object? Em APIs gráficas tradicionais, como DirectX 11 e OpenGL, os estados de renderização eram definidos por meio de várias chamadas individuais — para shaders, blending, rasterização e outros parâmetros. Essa abordagem introduzia uma sobrecarga significativa na alteração de estados. O PSO consolida todos esses parâmetros em um único objeto que pode ser pré-criado e rapidamente alternado durante a renderização. Isso reduz a sobrecarga e melhora o desempenho. ## Componentes do PSO Dependendo da API, um Pipeline State Object inclui: - Programas de shader (vertex, pixel, geometry, compute etc.). - Formatos de dados dos vértices (Vertex Input Layout). - Configurações de rasterização (profundidade, modo de preenchimento, culling etc.). - Configurações de blending (modos de mistura de cores). - Configurações de profundidade e stencil. - Tipo de topologia primitiva (como pontos, linhas ou triângulos). - Formatos de render targets e buffers de profundidade. ## Benefícios do uso de PSO ### 1. **Melhor desempenho** Como os PSOs são criados previamente, eles minimizam mudanças de estado e reduzem a sobrecarga da CPU. ### 2. **Otimização para hardware moderno** Diferente das APIs mais antigas, onde mudanças frequentes de estado podiam desacelerar a GPU, os PSOs permitem que o processador gráfico trabalhe de maneira mais eficiente ao ter todos os estados predefinidos. ### 3. **Gerenciamento de estado simplificado** Em vez de múltiplas chamadas para definir estados, basta alternar entre PSOs pré-definidos, tornando o código mais limpo e legível. ## Uso de PSO no DirectX 12 ### 1. Criando um Pipeline State Object Exemplo de criação de um PSO gráfico no DirectX 12: ``` D3D12_GRAPHICS_PIPELINE_STATE_DESC psoDesc = {}; psoDesc.VS = { compiledVertexShader->GetBufferPointer(), compiledVertexShader->GetBufferSize() }; psoDesc.PS = { compiledPixelShader->GetBufferPointer(), compiledPixelShader->GetBufferSize() }; psoDesc.RasterizerState = CD3DX12_RASTERIZER_DESC(D3D12_DEFAULT); psoDesc.BlendState = CD3DX12_BLEND_DESC(D3D12_DEFAULT); psoDesc.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT); psoDesc.InputLayout = { inputLayout, _countof(inputLayout) }; psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; psoDesc.RTVFormats[0] = DXGI_FORMAT_R8G8B8A8_UNORM; psoDesc.SampleDesc.Count = 1; psoDesc.SampleMask = UINT_MAX; psoDesc.pRootSignature = rootSignature.Get(); ComPtr pipelineState; device->CreateGraphicsPipelineState(&psoDesc, IID_PPV_ARGS(&pipelineState)); ``` ### 2. Aplicando o PSO Após criar um PSO, ele pode ser rapidamente alternado durante a renderização: ``` commandList->SetPipelineState(pipelineState.Get()); ``` ## Uso de PSO no Vulkan No Vulkan, o conceito de PSO também é essencial. Criar um VkPipeline exige a definição prévia de todos os parâmetros de renderização, o que ajuda a reduzir a sobrecarga. Exemplo de criação de um PSO no Vulkan: ```css VkGraphicsPipelineCreateInfo gfxPipelineInfo{}; gfxPipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; gfxPipelineInfo.stageCount = static_cast(shaderStageCount); gfxPipelineInfo.pStages = shaderStages; gfxPipelineInfo.pVertexInputState = &vertexInputConfig; gfxPipelineInfo.pInputAssemblyState = &inputAssemblyState; gfxPipelineInfo.pRasterizationState = &rasterizationConfig; gfxPipelineInfo.pMultisampleState = &multisampleConfig; gfxPipelineInfo.pDepthStencilState = &depthStencilConfig; gfxPipelineInfo.pColorBlendState = &colorBlendConfig; gfxPipelineInfo.pDynamicState = &dynamicConfig; gfxPipelineInfo.layout = pipelineLayout; gfxPipelineInfo.renderPass = renderPass; gfxPipelineInfo.subpass = 0; VkPipeline pipelineHandle; if (vkCreateGraphicsPipelines(device, VK_NULL_HANDLE, 1, &gfxPipelineInfo, nullptr, &pipelineHandle) != VK_SUCCESS) { throw std::runtime_error("Falha ao criar o pipeline gráfico"); } ``` ## Conclusão O PSO é uma ferramenta fundamental de otimização nas APIs gráficas modernas, como DirectX 12 e Vulkan. Ao pré-definir configurações do pipeline, ele minimiza a sobrecarga computacional e melhora a eficiência da renderização. O uso de PSOs exige planejamento e configuração, mas, a longo prazo, proporciona um aumento significativo de desempenho, especialmente em aplicações gráficas de alto desempenho. Se você está desenvolvendo um jogo ou um motor gráfico, um gerenciamento eficiente de PSOs ajudará a obter o máximo de desempenho e flexibilidade na renderização. ## **Base de Conhecimento da Serverspace** Para um entendimento mais profundo sobre APIs gráficas e otimizações de renderização, você pode explorar a Base de Conhecimento da Serverspace. Ela oferece uma ampla gama de informações sobre PSO, configurações de pipeline e outros conceitos técnicos essenciais. Você também encontrará explicações detalhadas sobre técnicas de renderização, ajuste de desempenho e boas práticas da indústria. https://serverspace.com.br/support/help/como-iniciar-um-conteiner-e-usar-o-docker-com-python.md Aprenda a iniciar um contêiner e usar o Docker com Python: configuração, gerenciamento de contêineres e execução de aplicações. O conceito de particionamento de recursos agora domina muitas infraestruturas de redes corporativas. Hoje, um único servidor pode conter dezenas de ambientes virtuais que operam de forma independente, alguns trabalhando juntos ou integrando-se em plataformas comuns. Neste artigo, vamos explorar a tecnologia de virtualização e a plataforma para criação de ambientes virtuais Docker, instalando e implantando uma imagem de contêiner com Python. ## Implantação de um contêiner Docker O primeiro passo é garantir que a plataforma esteja instalada. Para isso, precisamos atualizar os pacotes e instalar o Docker. Se já estiver pré-instalado, esse passo pode ser ignorado. Para sistemas baseados em Debian, utilizamos um script automatizado para instalação: ```bash sudo apt purge -y docker.io docker-compose docker-doc podman-docker \ curl -fsSL https://get.docker.com -o get-docker.sh \ sudo bash get-docker.sh ``` Screenshot № 1 — Installation Após seguir as boas práticas de segurança, devemos criar um usuário específico para executar o contêiner com privilégios reduzidos. Isso minimiza os riscos no caso de uma falha de segurança que permita a execução de comandos maliciosos. Para isso, usamos os seguintes comandos: ``` sudo adduser python && sudo usermod -aG docker python ``` Screenshot № 2 — Novo Usuário Somente usuários root ou membros do grupo Docker podem acessar o socket do Docker. Portanto, adicionamos o usuário recém-criado ao grupo. Agora podemos iniciar um contêiner base com o ambiente Python. Lembre-se de que ao rodar um contêiner, haverá um comando inicial que inicia o processo. Se esse comando for finalizado, o contêiner será encerrado. Para evitar isso, criamos um loop infinito no interpretador Bash: ``` sudo -u python docker run --name my_container -v data-storage:/home -d python /bin/bash -c 'while true;do sleep 1000;done' && sudo docker ps ``` Screenshot № 3 — Execução de um contêiner simples Onde cada argumento desempenha uma função específica: - sudo -u python docker run – inicia o contêiner com permissões do usuário normal. - -name my_container – define o nome do contêiner como my_container. - -v data-storage:/home – monta o volume data-storage no diretório /home dentro do contêiner. - -d – executa o contêiner em segundo plano (detached mode). - python – usa uma imagem do Python para criar o contêiner. - /bin/bash -c 'while true; do sleep 1000; done' – cria um loop infinito dentro do contêiner para mantê-lo ativo. - sudo docker ps – lista os contêineres em execução. Para acessar o contêiner, usamos o seguinte comando: ```bash docker exec /bin/bash ``` Screenshot № 4 — Shell do Docker Agora podemos atualizar os pacotes e instalar um gerenciador de processos para visualizar a estrutura do ambiente PID dentro do contêiner. Screenshot № 5 — Processos em execução ## Criando um servidor para os testes Em geral, para rodar contêineres que não possuem serviços pré-instalados, é necessário preparar os recursos adequados. Ao criar um [servidor em nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) com Serverspace, os repositórios padrão incluem os pacotes essenciais para um ambiente de desenvolvimento seguro e eficiente. Caso precise de um ambiente isolado, você pode utilizar um servidor VPS, seja na plataforma vStack Cloud ou VMware Cloud. Basta clicar no botão "Criar Servidor", selecionar a configuração desejada e iniciar a implantação. Se os recursos locais não forem suficientes, uma alternativa eficiente é realizar a configuração em servidores em nuvem de alto desempenho, como os disponibilizados pela Serverspace. Screenshot №6 — Criar Servidor O provisionamento do servidor pode levar alguns minutos. Assim que estiver pronto, podemos nos conectar usando qualquer método disponível. ## Implantação de um serviço em um contêiner Docker Agora, vejamos um caso prático onde precisamos implantar um serviço de aplicação web dentro de um contêiner. Para isso, usaremos uma imagem base do Python e adicionaremos as dependências necessárias. Como essa imagem é mínima, algumas bibliotecas precisam ser baixadas durante o processo. Existem duas formas de resolver isso: - Executando comandos de inicialização no próprio contêiner. - Recriando a imagem com as dependências já embutidas (opção mais recomendada). Para este exemplo, usaremos o primeiro método, salvando um script Python diretamente dentro do contêiner: ``` nano /home/app.py ``` Screenshot № 7 — Criando a aplicação Após salvar o arquivo, paramos e removemos o contêiner: ```bash sudo docker stop $(sudo docker container ls -q -a) && sudo docker rm $(sudo docker container ls -q -a) ``` Agora criamos um novo contêiner com um script de inicialização que: - Atualiza os pacotes. - Instala o gerenciador de pacotes pip. - Instala o framework web Flask. - Executa a aplicação. ``` sudo -u python docker run --name my_container -d -v data-storage:/home -it python /usr/bin/bash -c 'apt update && apt install python3-pip -y && python3 -m pip install flask && python3 /home/app.py' ``` Screenshot № 8 — Iniciando o contêiner com a aplicação Depois de um tempo, verificamos os logs do contêiner para garantir que o serviço foi iniciado corretamente: ```bash sudo docker logs ``` Screenshot № 9 — Serviço iniciado Ótimo! O serviço foi iniciado em um ambiente virtualizado dentro de uma máquina, permitindo que vários outros sejam executados simultaneamente em ambientes isolados. Isso melhora a eficiência, evita conflitos de dependências e aumenta a segurança dessa abordagem. https://serverspace.com.br/support/glossary/glsl.md Saiba o que é GLSL (OpenGL Shading Language), como a linguagem de sombreamento funciona e onde ela é usada. Veremos os principais tipos de shaders, exemplos de código e os principais recursos de sintaxe. **GLSL (OpenGL Shading Language)** é uma linguagem de programação especializada para shaders, usada no OpenGL para controlar a renderização na unidade de processamento gráfico (GPU). Ela permite o desenvolvimento de efeitos visuais complexos, configurações de iluminação, gerenciamento de texturas e a criação de materiais realistas em jogos e aplicações gráficas. ### **Principais Características do GLSL** GLSL é uma linguagem de programação de alto nível projetada para escrever shaders no OpenGL. Diferente de linguagens como C++ ou Python, o código GLSL é executado na GPU, garantindo um processamento gráfico de alta velocidade. GLSL suporta: - **Computação paralela** (utiliza múltiplos threads na GPU) - **Operações com vetores e matrizes** (simplifica o processamento de gráficos 3D) - **Alta performance** (trabalha diretamente com o hardware gráfico) ### **Onde o GLSL é Utilizado?** O GLSL é amplamente utilizado em diversas áreas: - **Jogos** – para iluminação realista, sombras, reflexos e pós-processamento. - **Aplicações móveis** – gráficos acelerados no OpenGL ES. - **Modelagem 3D** – em programas como Blender e Unity. - **Efeitos visuais** – geração de partículas, efeitos de desfoque, glitch e animações. ### **Tipos de Shaders no GLSL** O GLSL é usado para escrever shaders—pequenos programas responsáveis pelo processamento gráfico. No OpenGL, existem vários tipos de shaders: **Vertex Shader (Shader de Vértice)** Processa cada vértice de um objeto, determinando sua posição, cor e normais. Exemplo de um shader de vértice simples: ``` #version 450 layout(location = 0) in vec3 position; // Posição de entrada do vértice void main() { gl_Position = vec4(position, 1.0); // Calcula as coordenadas de tela } ``` **Fragment Shader (Shader de Fragmento)** Define a cor de cada pixel que será desenhado. Exemplo de um shader de fragmento simples: ``` #version 450 out vec4 FragColor; void main() { FragColor = vec4(1.0, 0.0, 0.0, 1.0); // Cor vermelha } ``` **Geometry Shader (Shader Geométrico)** Cria ou modifica primitivas (pontos, linhas, triângulos) antes de renderizá-las. **Tessellation Shaders (Control & Evaluation Shaders)** Usados para subdividir dinamicamente superfícies em partes menores, útil para criar geometrias detalhadas. **Compute Shader (Shader de Cálculo)** Diferente dos outros shaders, ele não participa diretamente da renderização. Ele executa cálculos na GPU, como simulações físicas, processamento de dados e geração de texturas. ### **Como o GLSL Funciona?** O processo de renderização no GLSL segue várias etapas: - **O vertex shader** processa a geometria. - **Os geometry e tessellation shaders** (se presentes) modificam a forma do objeto. - **O fragment shader** calcula as cores dos pixels. - **O OpenGL renderiza a imagem final** na tela. O GLSL permite controle total sobre o pipeline de renderização, possibilitando a criação de cenas visuais impressionantes e otimizadas. ### **Características da Sintaxe do GLSL** O GLSL é semelhante ao C, mas possui características únicas: - **Tipos de dados especiais para vetores e matrizes:** vec2, vec3, vec4– vetores - mat2, mat3, mat4 – matrizes - **Funções embutidas para processamento gráfico:** mix(a, b, t) – interpolação linear - clamp(x, min, max) – limita um valor dentro de um intervalo - dot(a, b) e cross(a, b) – produto escalar e produto vetorial - **Suporte a pré-processamento (#define, #ifdef)** – para maior flexibilidade do código. Exemplo utilizando vetores: ``` vec3 color = vec3(1.0, 0.5, 0.2); vec3 brightColor = color * 2.0; // Aumenta o brilho ``` ### **Conclusão** GLSL é uma ferramenta poderosa para programação gráfica no OpenGL. - **Aproveita ao máximo o potencial da GPU** - **Usado em jogos, animações e aplicações 3D** - **Permite a criação de efeitos gráficos avançados** https://serverspace.com.br/support/glossary/lod.md Descubra como o Level of Detail (LOD) otimiza os gráficos 3D ajustando dinamicamente a complexidade do objeto com base na distância. Saiba mais sobre diferentes técnicas de LOD, suas aplicações em jogos, RV e simulações, e como elas melhoram o… **LOD (Level of Detail)** é um método utilizado em gráficos computacionais com o objetivo de otimizar o desempenho, ajustando dinamicamente a complexidade dos objetos 3D com base na distância em relação à câmera. Quanto mais distante o objeto, menor será o seu nível de detalhe, ajudando a reduzir a carga computacional sem impactar significativamente a qualidade visual. ## Como funciona? O método envolve a criação de várias versões do mesmo objeto com diferentes níveis de detalhe. O motor gráfico alterna automaticamente entre essas versões com base na distância e em outros critérios: - **Modelo de alta qualidade** – Essa versão contém o maior número de polígonos e detalhes de textura, garantindo máxima fidelidade visual. É utilizada quando o objeto está próximo à câmera ou ocupa uma parte significativa da tela, onde um alto nível de detalhes é essencial para uma experiência imersiva. Isso é crucial em jogos em primeira pessoa e em perspectivas de terceira pessoa com zoom, onde detalhes finos, como texturas de superfície e efeitos de iluminação, são claramente visíveis. - **Modelo de qualidade média** – À medida que o objeto se afasta da câmera, uma versão simplificada com menos polígonos e resolução de textura reduzida é utilizada. Isso ajuda a diminuir a carga da GPU enquanto mantém uma cena visualmente consistente. Modelos de qualidade média são frequentemente aplicados em jogos de mundo aberto ou em ambientes extensos, equilibrando desempenho e qualidade. - **Modelo de baixa qualidade** – Para objetos que estão muito distantes da câmera, uma versão altamente simplificada é renderizada. Esse modelo tem um número mínimo de polígonos e, muitas vezes, utiliza texturas pré-renderizadas ou de baixa resolução para otimizar o desempenho. Isso é essencial em ambientes de grande escala, como jogos de mundo aberto, simuladores de voo ou jogos de estratégia, onde renderizar todos os objetos com alta qualidade seria inviável computacionalmente. - **Billboards (sprites 2D)** – Em distâncias extremas, alguns objetos podem ser substituídos por texturas 2D planas (billboards) em vez de modelos 3D. Essas imagens pré-renderizadas aproximam a forma e a aparência do objeto, reduzindo drasticamente os custos computacionais. Essa técnica é frequentemente usada para árvores distantes, estruturas no fundo ou multidões em grande escala, garantindo um bom desempenho sem uma queda perceptível na qualidade visual. ## Tipos de LOD Diferentes abordagens podem ser aplicadas na implementação do LOD: - **LOD geométrico** – Reduz o número de polígonos de um objeto à medida que ele se afasta da câmera. - **LOD de textura** – Aplica texturas de menor resolução a superfícies distantes para diminuir o uso de memória. - **LOD baseado em pixels** – Ajusta dinamicamente os níveis de detalhe durante a renderização, como no MIP-mapping. - **Impostores** – Usa imagens ou texturas pré-renderizadas como versões simplificadas de modelos complexos. ## Uso do LOD no desenvolvimento de jogos O LOD desempenha um papel essencial nos motores gráficos modernos, como Unreal Engine e Unity, além de ser amplamente utilizado em outras aplicações gráficas: - **Jogos de mundo aberto (ex: The Witcher 3, GTA V)** – Esses jogos apresentam ambientes vastos e contínuos, permitindo que os jogadores explorem grandes paisagens sem telas de carregamento. O LOD garante que objetos distantes, como montanhas, edifícios e veículos, sejam renderizados com menos detalhes para economizar processamento, enquanto os elementos próximos mantêm alta fidelidade visual. Isso possibilita uma experiência mais imersiva sem comprometer o desempenho, evitando quedas na taxa de quadros e garantindo uma jogabilidade fluida. - **Jogos de VR e mobile** – A realidade virtual (VR) e os dispositivos móveis possuem hardware com poder de processamento limitado em comparação com PCs e consoles de alto desempenho. Para manter a fluidez da experiência e evitar enjoo por latência em VR, o LOD modifica dinamicamente a complexidade dos objetos conforme a perspectiva e a distância do jogador. Em jogos mobile, o LOD é essencial para gerenciar o uso da GPU e da memória de forma eficiente, permitindo gráficos de qualidade sem causar superaquecimento ou drenagem excessiva da bateria. - **Simulações e softwares CAD** – Em aplicações profissionais, como visualização arquitetônica, simulações de engenharia e softwares de design assistido por computador (CAD), o LOD é usado para otimizar a exibição de modelos 3D complexos. Ao dar zoom, os detalhes mais finos são totalmente renderizados, enquanto ao afastar a visão, os modelos são simplificados para melhorar a fluidez do sistema. Isso garante que os profissionais possam trabalhar de forma eficiente em projetos de grande escala sem sofrer com travamentos, aumentando a produtividade em setores como aeroespacial, design automotivo e planejamento urbano. ## Conclusão O LOD é uma técnica fundamental de otimização que equilibra a qualidade gráfica e o desempenho do sistema. Sua implementação adequada permite que desenvolvedores criem mundos expansivos e visualmente ricos sem sobrecarregar os recursos de hardware. ### Base de conhecimento da Serverspace Na base de conhecimento da Serverspace, você pode encontrar ainda mais termos e instruções passo a passo sobre diversos tópicos relacionados à computação em nuvem, gerenciamento de infraestrutura e soluções de TI. https://serverspace.com.br/support/glossary/directx.md Saiba o que é o DirectX, como ele evoluiu, quais APIs ele inclui e por que ele é uma tecnologia essencial para a criação de jogos no Windows. **DirectX** é um conjunto de API (Interface de Programação de Aplicações) desenvolvido pela Microsoft para trabalhar com aplicativos multimídia, especialmente jogos, na plataforma Windows. O DirectX permite a interação entre software e hardware do computador, como placas de vídeo, dispositivos de áudio e periféricos de entrada. ## História e evolução A primeira versão do DirectX foi lançada em 1995 para facilitar o desenvolvimento de jogos no Windows. Com o tempo, a API evoluiu, oferecendo aos desenvolvedores ferramentas cada vez mais avançadas. Alguns marcos importantes incluem: - **DirectX 9 (2002)** — amplamente utilizado em jogos do início dos anos 2000. - **DirectX 10 (2006)** — trouxe melhorias gráficas significativas, mas era compatível apenas com o Windows Vista e versões posteriores. - **DirectX 11 (2009)** — introduziu tesselação e outras tecnologias, aprimorando o desempenho e a qualidade gráfica. - **DirectX 12 (2015)** — proporcionou acesso de baixo nível aos recursos de hardware, semelhante ao Vulkan, aumentando a eficiência do uso da CPU e da GPU. ## Principais componentes do DirectX O DirectX inclui várias APIs, entre elas: - **Direct3D** — principal componente para renderização de gráficos 3D. - **Direct2D** — API para manipulação de gráficos 2D. - **DirectCompute** — utilizado para cálculos computacionais na GPU. - **DirectSound** e **DirectMusic** (obsoletos) — anteriormente usados para processamento de áudio. - **DirectInput** — permite a interação com teclados, mouses e controles de jogos. - **DirectPlay** (obsoleto) — utilizado para jogos em rede. ## DirectX e desenvolvimento de jogos O DirectX tornou-se o padrão para desenvolvedores de jogos no Windows. Ele é compatível com todas as placas de vídeo modernas e é a base da maioria dos jogos para PC. O DirectX 12 melhorou significativamente o desempenho graças à sua API de baixo nível, permitindo que os desenvolvedores utilizem os recursos do sistema de forma mais eficiente. ## DirectX vs. OpenGL/Vulkan Embora OpenGL e Vulkan sejam alternativas ao DirectX, este continua sendo a escolha preferida para jogos no Windows devido à sua integração nativa com o sistema operacional e ao desenvolvimento simplificado no Direct3D. ## Conclusão O DirectX é uma tecnologia essencial para desenvolvedores de jogos e aplicativos multimídia no Windows. Sua evolução contínua o torna uma ferramenta indispensável para a criação de gráficos de alta qualidade e experiências de jogo otimizadas. https://serverspace.com.br/support/glossary/opengl.md Saiba o que é o OpenGL, como ele é usado para renderizar gráficos 2D e 3D, como ele difere do DirectX e do Vulkan e onde ele é usado em jogos, visualização e engenharia. **OpenGL: Uma API Versátil para Gráficos 2D e 3D** OpenGL (Open Graphics Library) é uma API universal projetada para renderizar gráficos 2D e 3D em várias plataformas. Desenvolvida pela Silicon Graphics em 1992, ela evoluiu gradualmente para se tornar uma das principais ferramentas para processamento gráfico em videogames, sistemas de visualização de dados, ambientes CAD e outras aplicações multimídia. OpenGL fornece uma interface de software que permite aos desenvolvedores trabalhar com hardware gráfico independentemente do sistema operacional ou do modelo de GPU específico. ## Principais Recursos do OpenGL - **Aceleração de Hardware** – Uso eficiente da GPU para renderização de gráficos. - **Suporte para Gráficos 2D e 3D** – Manipulação de primitivas gráficas complexas, texturização e shaders. - **Flexibilidade e Extensibilidade** – Possibilidade de usar várias extensões para adicionar novas funcionalidades. - **Compatibilidade Multiplataforma** – Suporte para Windows, Linux, macOS e dispositivos móveis via OpenGL ES. ## Versões do OpenGL O OpenGL evoluiu continuamente, introduzindo novos recursos a cada atualização. Versões principais incluem: - **OpenGL 1.0 (1992)** – Funcionalidade básica para renderização de primitivas simples. - **OpenGL 2.0 (2004)** – Introdução do GLSL (OpenGL Shading Language), permitindo shaders personalizados. - **OpenGL 3.0 (2008)** – Remoção do pipeline de funções fixas obsoletas, adotando um pipeline programável. - **OpenGL 4.0 (2010)** – Suporte para tesselação, shaders computacionais e gerenciamento aprimorado de memória da GPU. ## OpenGL vs. DirectX vs. Vulkan - **OpenGL** – Flexível e multiplataforma, mas menos otimizado em comparação com APIs de baixo nível. - **DirectX** – Mais utilizado em jogos para Windows, profundamente integrado ao ecossistema da Microsoft. - **Vulkan** – Sucessor do OpenGL, oferecendo controle de GPU em nível mais baixo, resultando em melhor desempenho. ## Aplicações do OpenGL - **Desenvolvimento de Jogos** – Muitos motores gráficos suportam o OpenGL como API gráfica. - **Visualização de Dados** – Aplicações científicas e de engenharia utilizam OpenGL para renderizar gráficos complexos. - **Editores Gráficos** – Usado em modelagem 3D, renderização de cenas e outras ferramentas criativas. ## FAQ (Perguntas Frequentes) **1. O OpenGL pode ser usado em jogos modernos?** Sim, mas a maioria dos desenvolvedores prefere DirectX ou Vulkan devido ao melhor desempenho. **2. O OpenGL é suportado em dispositivos móveis?** Sim, existe o OpenGL ES, otimizado para plataformas móveis. **3. Vale a pena aprender OpenGL se o Vulkan existe?** O OpenGL é mais fácil de aprender e ainda é relevante para o desenvolvimento de aplicativos gráficos, mas o Vulkan é preferível para programação de baixo nível. ## Conclusão O OpenGL continua sendo uma ferramenta poderosa para o desenvolvimento gráfico, oferecendo aos desenvolvedores uma interface conveniente para trabalhar com GPUs. Apesar do surgimento do Vulkan, a API ainda é amplamente utilizada em diversas áreas, incluindo jogos, visualização e pesquisa científica. https://serverspace.com.br/support/glossary/vulkan.md Saiba o que é a Vulkan - uma API gráfica moderna de baixo nível que oferece alto desempenho e controle detalhado sobre a GPU. Como ela se compara à OpenGL e à DirectX, onde é usada e quais recursos oferece… Vulkan é uma API gráfica moderna de baixo nível desenvolvida pelo consórcio Khronos Group. Ela fornece aos desenvolvedores acesso direto às capacidades do hardware da GPU, garantindo alto desempenho e flexibilidade na gestão do processamento gráfico. Vulkan é considerado o sucessor do OpenGL e uma alternativa ao DirectX 12, especialmente para desenvolvimento multiplataforma. ## Vantagens do Vulkan Vulkan oferece diversas vantagens em relação às APIs tradicionais, como OpenGL e DirectX: - **Alto Desempenho.** Vulkan reduz a sobrecarga da CPU no processamento de comandos, permitindo um uso mais eficiente de processadores multicore. - **Acesso de Baixo Nível.** Os desenvolvedores têm controle total sobre a memória da GPU, o processamento de quadros e a sincronização de threads. - **Compatibilidade Multiplataforma.** Vulkan é suportado no Windows, Linux, macOS (via MoltenVK), Android e outras plataformas. - **Suporte a Multi-Threading.** Diferente do OpenGL, que usa uma única thread para comandos da GPU, o Vulkan permite distribuir o processamento gráfico entre várias threads. - **Melhor Gerenciamento de Recursos.** Os desenvolvedores gerenciam manualmente a alocação de memória, evitando gargalos imprevisíveis no desempenho. ## Vulkan vs. OpenGL vs. DirectX 12 | Característica | Vulkan | OpenGL | DirectX 12 | | --- | --- | --- | --- | | Desempenho | Alto | Médio | Alto | | Multi-Threading | Sim | Limitado | Sim | | Multiplataforma | Sim | Sim | Não (apenas Windows & Xbox) | | Gerenciamento de Memória | Total | Automático | Total | | Curva de Aprendizado | Alta | Baixa | Alta | ## Onde o Vulkan é Usado? Vulkan é amplamente utilizado em diversos setores, incluindo: - **Desenvolvimento de Jogos.** Motores gráficos como Unreal Engine e Unity oferecem suporte ao Vulkan para renderização de alto desempenho. - **Aplicações Móveis.** Vulkan proporciona gráficos fluidos em dispositivos Android com menor carga na CPU. - **VR e AR.** Seu alto desempenho o torna uma escolha ideal para renderização de realidade virtual. - **Visualização Industrial.** Usado em sistemas CAD, simulações e pesquisas científicas. ## Desvantagens do Vulkan Apesar de suas vantagens, o Vulkan apresenta algumas desvantagens: - **Curva de Aprendizado Íngreme.** Diferente do OpenGL, Vulkan exige mais código para executar até mesmo tarefas básicas. - **Suporte Limitado no macOS.** A Apple não oferece suporte nativo ao Vulkan, mas ele pode ser usado via MoltenVK no Metal. - **Gerenciamento Manual de Recursos.** Os desenvolvedores precisam lidar com a alocação de memória, aumentando a complexidade do código. ## Conclusão Vulkan é uma ferramenta poderosa que permite aos desenvolvedores alcançar alto desempenho e flexibilidade na programação gráfica. No entanto, requer um profundo entendimento do funcionamento da GPU e do gerenciamento de recursos. Se seu objetivo é criar aplicativos multiplataforma de alto desempenho, aprender Vulkan é um excelente investimento. https://serverspace.com.br/about/blog/como-escolher-um-sistema-operacional-para-um-servidor-virtual.md No artigo, analisamos qual sistema operacional é mais estável, seguro e prático para um servidor virtual. Comparação entre Windows e Linux. Os sistemas operacionais para servidores diferem dos sistemas operacionais de desktop em funcionalidade e requisitos. As opções mais comuns são Windows Server e várias distribuições Linux. Vamos analisar os principais aspectos que influenciam a escolha do sistema operacional. ## Linguagens de programação O suporte a linguagens de programação depende do sistema operacional escolhido: - **ASP.NET e VBScript:** essas tecnologias funcionam exclusivamente no Windows Server. Se seu projeto as utiliza, a escolha do Windows Server é obrigatória. - **PHP e MySQL:** embora sejam suportados por ambos os sistemas operacionais, no Linux eles apresentam melhor desempenho, pois o PHP foi originalmente desenvolvido para esse ambiente. O Windows permite a execução de scripts PHP, mas a performance pode ser inferior. ## Serviços e protocolos Alguns serviços e protocolos são suportados de forma diferente entre os sistemas operacionais: - **SSH:** é suportado nativamente no Linux, enquanto no Windows Server precisa ser instalado separadamente, o que pode exigir custos e esforços adicionais. - **FTP e Telnet:** estão disponíveis em ambos os sistemas sem grandes diferenças. ## Gerenciamento de bancos de dados A escolha do sistema operacional afeta o funcionamento de diferentes SGBDs (Sistemas de Gerenciamento de Banco de Dados): - **MySQL:** funciona bem em ambos os sistemas, mas apresenta desempenho superior no Linux. - **Microsoft SQL Server e Access:** exigem Windows Server para funcionamento adequado. ## Administração O Windows Server fornece uma interface gráfica, tornando-o mais acessível para administradores sem experiência com a linha de comando. Linux, por outro lado, exige conhecimento de comandos, mas é amplamente reconhecido por sua estabilidade e eficiência. ## Custo As distribuições Linux, como Debian e Ubuntu, são gratuitas, reduzindo o custo total de propriedade. O Windows Server exige uma licença paga, o que aumenta as despesas operacionais. ## No que a escolha do sistema operacional não influencia Os serviços executados no servidor virtual serão igualmente acessíveis aos seus clientes, independentemente do sistema operacional utilizado. Os clientes não saberão qual sistema operacional está em execução, pois lidam apenas com os dados. A diferença está na infraestrutura de back-end, visível apenas para os administradores de TI responsáveis pelo gerenciamento do servidor. Qual escolher? As principais diferenças entre Linux e Windows Server estão na estabilidade e no desempenho. Sistemas Linux são conhecidos por sua confiabilidade e raramente precisam de reinicialização para aplicar alterações. No entanto, a estabilidade do sistema operacional também depende da administração e da experiência da equipe de TI. O hospedagem baseada em Linux costuma ser mais barata do que em Windows. Se você não depende de tecnologias específicas da Microsoft, o Linux é a escolha mais vantajosa. Ele é recomendado para sites desenvolvidos em WordPress, Joomla e Drupal. Por outro lado, se você precisa rodar um projeto baseado em ASP ou ASP.NET, o Windows Server é a melhor opção. Ele também é adequado para aplicações empresariais que exigem Windows, como plataformas de trading, sistemas financeiros e servidores de jogos. ## Conclusão **Vantagens do [Linux](https://serverspace.com.br/services/vps-server/linux.md):** - Alto desempenho e estabilidade. - Ambiente mais seguro (menos ataques direcionados do que no Windows). - Distribuições gratuitas (com algumas exceções). - Versatilidade – adequado para a maioria dos projetos web. **Por que escolher o [Windows Server](https://serverspace.com.br/services/vps-server/windows.md):** - Suporte para ASP.NET e outras tecnologias Microsoft. - Interface gráfica amigável e fácil atualização. - Necessário para projetos que exigem integração com o ecossistema Windows. A escolha do sistema operacional para o servidor virtual deve ser baseada nas necessidades específicas do seu projeto, no orçamento disponível e no nível de conhecimento da sua equipe de TI. https://serverspace.com.br/support/glossary/sistema-cad.md A tecnologia atual possibilita a criação de projetos complexos com alta precisão e custo mínimo. Descubra quais ferramentas engenheiros, arquitetos e designers usam para trabalhar com modelos e desenhos em 3D. O design moderno é inimaginável sem a tecnologia computacional. Uma das principais ferramentas para engenheiros, arquitetos e designers é o software **CAD (Computer-Aided Design)** — uma solução essencial para o design automatizado. O software CAD permite que os usuários criem desenhos técnicos, desenvolvam modelos 3D, avaliem a integridade estrutural e gerem arquivos para produção. Neste artigo, exploraremos o que são os sistemas CAD, seus benefícios, aplicações e as soluções mais populares disponíveis no mercado. ## O que é um sistema CAD? O software CAD (Computer-Aided Design) é usado para projetar e modelar diversos objetos. Dependendo do campo de aplicação, os sistemas CAD podem ser utilizados para: - **Projeto de engenharia** de peças e mecanismos - **Modelagem arquitetônica** de edifícios e interiores - **Desenvolvimento de PCB** (Placa de Circuito Impresso) - **Criação de animação e gráficos** Diferente do desenho tradicional em papel, os sistemas CAD permitem a edição rápida de projetos, a realização de cálculos e análises, além da utilização de modelagem 3D. ## Benefícios do uso de sistemas CAD O software CAD oferece diversas vantagens: - **Alta precisão** – Garante projetos detalhados e sem erros - **Eficiência de tempo** – Automatiza processos, acelerando o design e reduzindo erros - **Modelagem 3D** – Permite visualizar o projeto antes da implementação - **Análise e simulação** – Realiza cálculos de resistência, carga, transferência de calor e outros parâmetros - **Flexibilidade** – Facilita a modificação e adaptação de projetos sem necessidade de refazê-los do zero - **Integração com CAM e CAE** – Conecta-se a sistemas de manufatura e ferramentas de análise de engenharia ## Aplicações dos sistemas CAD O software CAD é amplamente utilizado em diversas indústrias: - **Engenharia Mecânica** – Desenvolvimento de peças, mecanismos e produtos industriais - **Construção e Arquitetura** – Planejamento de edifícios, infraestrutura e interiores - **Aeroespacial e Automotivo** – Desenvolvimento de estruturas complexas e testes aerodinâmicos - **Eletrônica** – Criação de PCBs e microeletrônicos - **Design de Joias** – Modelagem 3D e cálculo preciso de parâmetros de joias - **Desenvolvimento de Jogos e CGI** – Uso de modelos CAD em animação e na indústria de jogos ## O futuro dos sistemas CAD Os sistemas CAD modernos continuam a evoluir, incorporando novas tecnologias: - **Inteligência Artificial (IA)** – Simplifica o design e automatiza tarefas repetitivas - **Computação em Nuvem** – Permite acesso aos projetos de qualquer lugar - **Design Generativo** – Sugere automaticamente opções otimizadas de construção - **Realidade Aumentada e Virtual (AR/VR)** – Melhora a visualização e a interação com os modelos ## Conclusão Os sistemas CAD são ferramentas poderosas que se tornaram indispensáveis no design moderno. Eles permitem modelagem precisa, cálculos avançados e uma preparação eficiente de projetos para produção. Dependendo das suas necessidades, você pode escolher desde uma solução gratuita simples até um pacote profissional com recursos avançados. Se você trabalha com engenharia, arquitetura ou design, dominar o software CAD abrirá novas oportunidades e aumentará significativamente sua produtividade. https://serverspace.com.br/support/glossary/root-signature.md Saiba o que é a assinatura de raiz no Direct3D 12, como ela controla a interação dos shaders com os recursos da GPU e por que ela desempenha um papel fundamental na otimização da renderização. **Root Signature** é um conceito fundamental na API gráfica **Direct3D 12**, que define como os shaders interagem com os recursos durante a renderização. Ele atua como uma interface entre o código do aplicativo e o processador gráfico (GPU), especificando quais recursos (como buffers constantes, tabelas de descritores, UAVs e outros) podem ser usados nos shaders. ## Principais Componentes do Root Signature Um **Root Signature** consiste em um conjunto de entradas (**parâmetros root**), cada uma definindo um dos três tipos possíveis de recursos: - **Root Constants** – Pequenos blocos de dados passados diretamente para o shader sem o uso de um buffer. - **Root Descriptors** – Ponteiros para buffers (**CBV, SRV, UAV**) localizados na memória da GPU. - **Descriptor Tables** – Arrays de descritores que permitem gerenciar grupos de recursos (por exemplo, texturas ou buffers) usando um único parâmetro. ## Por que o Root Signature é importante? Diferente do **Direct3D 11**, que utilizava um sistema de estados complexo, o **Direct3D 12** exige gerenciamento explícito de recursos. O **Root Signature** permite uma interação mais eficiente entre a CPU e a GPU, reduzindo a sobrecarga na troca de estados e melhorando o desempenho. ## Exemplo de Root Signature Um **Root Signature** simples, contendo um buffer constante e uma tabela de descritores, pode ser definido assim: ``` CD3DX12_ROOT_PARAMETER rootParameters[2]; rootParameters[0].InitAsConstantBufferView(0); rootParameters[1].InitAsDescriptorTable(1, &descriptorRange); CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc; rootSignatureDesc.Init(2, rootParameters, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT); ``` ## Conclusão O **Root Signature** no **Direct3D 12** permite que os desenvolvedores gerenciem recursos de forma flexível e alcancem alto desempenho em aplicações gráficas. Ele desempenha um papel crítico na otimização da interação entre os shaders e a memória da GPU, tornando a renderização mais previsível e eficiente. https://serverspace.com.br/support/glossary/uav.md Saiba como os UAVs (Unordered Access View) no Direct3D permitem que os shaders gravem dados sem limites, acelerando a computação, a renderização e os efeitos gráficos complexos. **UAV (Unordered Access View)** é um mecanismo nas APIs Direct3D e Vulkan que permite aos shaders escreverem dados em recursos de memória da GPU sem uma sequência de acesso rígida. Diferente dos buffers e texturas tradicionais, que são apenas para leitura nos shaders de pixel e vértice, os UAVs suportam leitura e escrita simultânea a partir de múltiplas threads de shader. ## Principais Características do UAV - **Acesso Arbitrário** – Os dados podem ser lidos e escritos em qualquer ordem, tornando os UAVs ideais para cálculos paralelos. - **Suporte a Múltiplos Tipos de Recursos** – UAVs podem ser aplicados a texturas, buffers e outros recursos de memória da GPU. - **Uso em Compute Shaders** – UAVs são amplamente utilizados em Compute Shaders, onde grandes volumes de dados precisam ser escritos sem uma estrutura rígida de acesso. - **Compatibilidade com Diferentes Estágios do Pipeline** – No Direct3D 12 e Vulkan, os UAVs podem ser usados não apenas em Compute Shaders, mas também em Pixel e até Geometry Shaders. ## Onde os UAVs são Utilizados? - **Iluminação Baseada em Física** – Permite que os shaders armazenem cálculos intermediários de iluminação global. - **Pós-Processamento** – Efeitos como desfoque gaussiano ou profundidade de campo podem utilizar UAVs para acelerar os cálculos. - **Geração e Mapeamento de Texturas** – Usado em técnicas como Screen Space Reflections (SSR) ou voxelização. - **Simulações Físicas** – Aplicado no processamento de sistemas dinâmicos, como partículas ou fluidos. ## Exemplo de Código Um exemplo de criação de um UAV para um buffer no Direct3D 12: ``` D3D12_UNORDERED_ACCESS_VIEW_DESC uavDesc = {}; uavDesc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER; uavDesc.Format = DXGI_FORMAT_UNKNOWN; uavDesc.Buffer.FirstElement = 0; uavDesc.Buffer.NumElements = elementCount; uavDesc.Buffer.StructureByteStride = sizeof(MyStruct); uavDesc.Buffer.CounterOffsetInBytes = 0; device->CreateUnorderedAccessView(buffer, nullptr, &uavDesc, uavHandle); ``` ## Conclusão O UAV (Unordered Access View) é uma ferramenta essencial para operações de memória na GPU, proporcionando flexibilidade na escrita e no processamento de dados. Devido ao seu poder e versatilidade, os UAVs são amplamente utilizados em renderização, simulações e outras tarefas computacionalmente intensivas. https://serverspace.com.br/support/glossary/cbv.md Saiba como o CBV (Constant Buffer View) no Direct3D 12 ajuda a passar dados constantes para os shaders, acelerando a renderização e permitindo uma interação eficiente dos recursos da GPU. **CBV (Constant Buffer View)** é um mecanismo em APIs gráficas como Direct3D 12 que permite a passagem de dados constantes para os shaders. CBV representa uma visão especial de um Constant Buffer, que é usado para armazenar pequenas quantidades de dados que são frequentemente atualizados entre chamadas de renderização. ## Características Principais do CBV - **Pequeno Volume de Dados** – Projetado para armazenar matrizes de transformação, parâmetros de iluminação e outras pequenas estruturas de dados. - **Alta Velocidade de Acesso** – Os dados armazenados no CBV são armazenados em cache e acessíveis aos shaders com latência mínima. - **Uso Separado com Outros Recursos** – CBV pode ser usado de forma independente ou em combinação com SRV (Shader Resource View) e UAV (Unordered Access View). ## Uso do CBV no Direct3D 12 No Direct3D 12, os buffers constantes são passados para os shaders através do Root Signature. Exemplo de criação de um CBV: ``` D3D12_CONSTANT_BUFFER_VIEW_DESC cbvDesc = {}; cbvDesc.BufferLocation = constantBuffer->GetGPUVirtualAddress(); cbvDesc.SizeInBytes = (sizeof(ConstantData) + 255) & ~255; // Alinhamento de 256 bytes device->CreateConstantBufferView(&cbvDesc, cbvHandle); ``` ## Onde o CBV é Usado? - **Passagem de Matrizes de Transformação** – Usado para armazenar matrizes de modelo, visão e projeção em gráficos 3D. - **Configurações de Iluminação** – Armazena parâmetros para fontes de luz, cor e intensidade. - **Variáveis Globais de Shader** – Permite a passagem de parâmetros comuns de renderização sem o uso de texturas ou buffers. ## Conclusão **CBV (Constant Buffer View)** é um componente essencial para a passagem de dados constantes em APIs gráficas como Direct3D 12. Devido à sua alta velocidade de acesso e facilidade de uso, é amplamente aplicado na renderização para transferir parâmetros importantes aos shaders de forma eficiente, garantindo o melhor desempenho da GPU. https://serverspace.com.br/support/glossary/srv.md Saiba como o SRV (Shader Resource View) permite que os shaders acessem texturas e buffers no Direct3D 12, acelerando a renderização e os cálculos gráficos complexos! **SRV (Shader Resource View)** é um mecanismo em APIs gráficas, como o Direct3D 12, que permite que os shaders acessem recursos da GPU, como texturas e buffers. Ele fornece uma interface unificada para a leitura de dados de diversas fontes, incluindo texturas 2D e 3D, buffers estruturados e não estruturados. ## Principais Características do SRV - **Acesso Flexível aos Dados** – Permite que os shaders leiam informações de texturas e buffers com diferentes formatos. - **Suporte para Diversos Tipos de Recursos** – Funciona com texturas, buffers estruturados e até algumas formas de memória da GPU. - **Gerenciamento Otimizado de Memória** – Garante o uso eficiente dos recursos gráficos. ## Uso do SRV no Direct3D 12 No Direct3D 12, o SRV é criado e vinculado a um descritor, que é então utilizado nos shaders. Exemplo de criação de um SRV para uma textura: ``` D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc = {}; srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; srvDesc.Format = textureFormat; srvDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; srvDesc.Texture2D.MipLevels = 1; device->CreateShaderResourceView(texture, &srvDesc, srvHandle); ``` ## Onde o SRV é Utilizado? - **Texturização** – Utilizado para passar texturas para os shaders, permitindo efeitos avançados de iluminação e materiais. - **Pós-processamento** – Aplicado em filtragem de imagem, efeitos de desfoque, processamento de profundidade e outras tarefas. - **Simulações Físicas** – Auxilia no processamento de mapas de altura, densidade de partículas e outros parâmetros de simulação. - **Renderização Baseada em Dados** – Utilizado em técnicas como voxelização e efeitos em screen-space. ## Conclusão **SRV (Shader Resource View)** é um componente essencial em APIs gráficas modernas, permitindo que os shaders leiam eficientemente dados de diversos recursos da GPU. Devido à sua flexibilidade e alto desempenho, o SRV é amplamente utilizado na texturização, pós-processamento e cálculos computacionais, desempenhando um papel fundamental na visualização de gráficos computacionais. https://serverspace.com.br/support/glossary/descriptor-tables.md Saiba como as tabelas de descritores no Direct3D 12 ajudam a otimizar os recursos da GPU! Esse mecanismo avançado permite que você gerencie buffers e texturas com eficiência, minimize a latência e acelere a renderização. Leia o artigo para entender… **Tabelas de Descritores** – um mecanismo de gerenciamento de recursos no Direct3D 12 que permite agrupar e passar descritores de recursos para shaders por meio da Root Signature. Elas simplificam o manuseio de grandes quantidades de recursos, como texturas, buffers e UAVs (Unordered Access Views), proporcionando uma maneira mais eficiente de organizar o acesso aos dados na GPU. ## Principais Características das Tabelas de Descritores - **Flexibilidade e Escalabilidade** – Permitem a passagem de vários recursos ao mesmo tempo, reduzindo a sobrecarga na configuração de estados. - **Eficiência** – Facilitam o trabalho com grandes volumes de recursos, minimizando os custos das chamadas de API. - **Acesso Organizado aos Dados** – Agrupam múltiplos descritores em uma única estrutura, acelerando o acesso a recursos dentro dos shaders. ## Implementação das Tabelas de Descritores no Direct3D 12 No Direct3D 12, o gerenciamento de descritores é baseado em **Descriptor Heaps**, enquanto as **Descriptor Tables** permitem agrupar eficientemente esses descritores para um acesso contínuo pelos shaders. O processo envolve várias etapas: ### Inicializando um Descriptor Heap ``` D3D12_DESCRIPTOR_HEAP_DESC descriptorHeapConfig = {}; descriptorHeapConfig.NumDescriptors = 10; descriptorHeapConfig.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV; descriptorHeapConfig.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE; ComPtr gpuDescriptorHeap; device->CreateDescriptorHeap(&descriptorHeapConfig, IID_PPV_ARGS(&gpuDescriptorHeap)); ``` ### Criando uma Tabela de Descritores na Root Signature ``` D3D12_ROOT_PARAMETER descriptorTableParam = {}; descriptorTableParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; descriptorTableParam.DescriptorTable.NumDescriptorRanges = 1; D3D12_DESCRIPTOR_RANGE srvRange = {}; srvRange.RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; srvRange.NumDescriptors = 1; srvRange.BaseShaderRegister = 0; descriptorTableParam.DescriptorTable.pDescriptorRanges = &srvRange; ``` ### Vinculando os Descritores à Command List ``` commandList->SetDescriptorHeaps(1, &descriptorHeap); commandList->SetGraphicsRootDescriptorTable(0, descriptorHeap->GetGPUDescriptorHandleForHeapStart()); ``` ## Aplicações Práticas das Tabelas de Descritores - **Texturização** – Permitem passar várias texturas para os shaders sem necessidade de múltiplas ligações individuais. - **Pós-processamento** – Facilitam o acesso a múltiplos buffers intermediários para filtragem de imagem e processamento de efeitos. - **Compute Shaders** – Fornecem acesso simplificado a grandes conjuntos de dados para cálculos complexos na GPU. - **Renderização de Materiais** – Gerenciam recursos de forma eficiente para materiais complexos com múltiplas texturas e parâmetros. ## FAQ: Perguntas Frequentes **Por que as Tabelas de Descritores são importantes no Direct3D 12?** Elas otimizam o gerenciamento de recursos ao reduzir chamadas de API e melhorar o desempenho ao lidar com múltiplos recursos, como texturas, buffers e UAVs. Além disso, oferecem uma maneira estruturada de acessar recursos da GPU de forma eficiente. **Como as Tabelas de Descritores melhoram o desempenho da renderização?** Agrupando múltiplos descritores em uma única estrutura, elas minimizam a sobrecarga associada à vinculação individual de recursos, resultando em transições de estado mais rápidas e melhor utilização da GPU. **As Tabelas de Descritores substituem a vinculação tradicional de descritores?** Não completamente. Embora ofereçam uma maneira mais eficiente de gerenciar múltiplos recursos, a vinculação direta de descritores ainda é útil em casos onde apenas alguns recursos precisam ser atualizados dinamicamente. ## Conclusão As **Tabelas de Descritores** são um mecanismo poderoso de gerenciamento de recursos no **Direct3D 12**, otimizando significativamente a transferência de dados para shaders. Elas reduzem chamadas de API, melhoram o desempenho e simplificam o gerenciamento de cenas gráficas complexas, garantindo uma utilização mais eficiente do hardware da GPU. https://serverspace.com.br/support/glossary/descriptor-heaps.md Saiba o que são Descriptor Heaps no Direct3D 12, quais tipos de heaps existem e como eles ajudam a gerenciar os recursos da GPU. Saiba como criar e usar heaps de descritores para uma renderização eficiente. **Descriptor Heaps** são um dos principais mecanismos de gerenciamento de recursos na API gráfica Direct3D 12. Eles representam arrays de descritores de recursos, simplificando e acelerando o acesso aos dados durante a renderização. ## Conceitos Principais No Direct3D 12, os descritores são usados para representar recursos como texturas, buffers e samplers. Um **Descriptor Heap** é uma área especial de memória que contém esses descritores, permitindo que a GPU acesse rapidamente os dados necessários. ## Tipos de Descriptor Heaps O Direct3D 12 fornece quatro tipos de Descriptor Heaps: - **CBV/SRV/UAV Heap** – Armazena os seguintes descritores: **CBV (Constant Buffer View)** – Representa buffers constantes. - **SRV (Shader Resource View)** – Representa recursos usados em shaders (como texturas e buffers estruturados). - **UAV (Unordered Access View)** – Representa recursos que podem ser acessados em qualquer ordem (por exemplo, para cálculos em Compute Shader). - **Sampler Heap** – Contém descritores de samplers, que controlam a filtragem e o endereçamento de texturas. - **RTV Heap (Render Target View)** – Armazena descritores de render targets (RTVs), usados como buffers de saída de renderização. - **DSV Heap (Depth Stencil View)** – Contém descritores para buffers de profundidade e stencil (DSVs), responsáveis por testes de profundidade e operações de stencil. ## Criação e Uso de Descriptor Heaps Para criar um Descriptor Heap, usa-se a estrutura **D3D12_DESCRIPTOR_HEAP_DESC**, onde são definidos os seguintes parâmetros: - **Tipo do Heap** (Type – CBV_SRV_UAV, SAMPLER, RTV, DSV). - **Número de descritores** (NumDescriptors). - **Flags** (Flags – por exemplo, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE, caso o heap deva estar acessível nos shaders). - **Máscara de nó** (NodeMask) para sistemas com múltiplos adaptadores. Exemplo de criação de um descriptor heap para RTV: ``` D3D12_DESCRIPTOR_HEAP_DESC renderTargetHeapDesc = {}; renderTargetHeapDesc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV; renderTargetHeapDesc.NumDescriptors = 1; renderTargetHeapDesc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE; device->CreateDescriptorHeap(&renderTargetHeapDesc, IID_PPV_ARGS(&rtvHeap)); ``` ## Gerenciamento de Descritores Após criar um Descriptor Heap, é necessário alocar descritores para os recursos. Isso pode ser feito com device->Create...View, por exemplo: ``` device->CreateRenderTargetView(renderTarget, nullptr, rtvHeap->GetCPUDescriptorHandleForHeapStart()); ``` Aqui, **GetCPUDescriptorHandleForHeapStart()** retorna um **D3D12_CPU_DESCRIPTOR_HANDLE** que aponta para o início do heap. Se o heap for utilizado em shaders, ele deve ser configurado com **SetDescriptorHeaps **e vinculado às tabelas de descritores usando **SetGraphicsRootDescriptorTable** ou **SetComputeRootDescriptorTable**. ## Conclusão Os Descriptor Heaps desempenham um papel fundamental no gerenciamento de recursos no Direct3D 12, oferecendo um mecanismo flexível e eficiente para acessar dados. O uso adequado dos Descriptor Heaps pode melhorar significativamente o desempenho da GPU e otimizar a eficiência da renderização. https://serverspace.com.br/support/glossary/repositorio.md Saiba o que é um repositório, seus pontos principais e quais tipos de repositório git existem. No Git, um repositório é um espaço de armazenamento centralizado que mantém todos os arquivos do projeto e seu histórico de versões. Ele funciona como um banco de dados que registra cada modificação nos arquivos, capturando detalhes sobre as mudanças, autores, horários e motivos de cada atualização. ## Componentes principais - Diretório de trabalho: Contém os arquivos e pastas do seu projeto. É onde você faz alterações no código. - Índice (ou área de staging): Um local de armazenamento temporário onde você prepara as alterações antes de confirmá-las (commit). Pense nele como uma "sala de espera" para suas mudanças antes de serem registradas no repositório. - Repositório local (ou pasta .git): Armazena todos os metadados do projeto, incluindo histórico de commits, branches e tags. Geralmente, é uma pasta oculta dentro do diretório de trabalho. Ao executar o comando git init, uma pasta oculta .git é criada, armazenando todas as informações sobre o seu projeto. Com isso, você obtém acesso a todos os comandos do Git, permitindo gerenciar e modificar seu código com controle total. ## Tipos de repositórios Git - **Local**: Armazenado no seu próprio computador, utilizado para projetos pessoais ou testes. - **Remoto**: Armazenado em um servidor, como GitHub, GitLab ou Bitbucket, permitindo colaboração em projetos compartilhados. - **Central**: Um único repositório principal que serve como referência para todo o projeto, comum em ambientes corporativos. No geral, um repositório Git é um sistema centralizado para gerenciar alterações no código, permitindo rastrear o histórico, colaborar com outros desenvolvedores e manter diferentes versões do projeto. https://serverspace.com.br/support/glossary/ide.md Um IDE - Integrated Development Environment (IDE) ou Unified Development Environment (UDA), é um conjunto de ferramentas de software usadas por programadores para desenvolvimento. A **IDE (Integrated Development Environment)** é um conjunto de ferramentas de software utilizadas por programadores para o desenvolvimento de aplicações. Em outras palavras, trata-se de um ambiente de desenvolvimento integrado. ## A importância da IDE para o desenvolvedor Muitos iniciantes confundem um ambiente de desenvolvimento com um editor de código. No entanto, uma IDE oferece um conjunto muito mais amplo de funcionalidades: desde a compatibilidade com várias linguagens e a verificação do código até a compilação e a assistência na construção do projeto. A IDE cria um ambiente confortável para o programador, reunindo diversas ferramentas essenciais para facilitar o trabalho. Isso permite que o desenvolvedor foque no código em vez de perder tempo com tarefas secundárias, aumentando significativamente a produtividade. ## Componentes de uma IDE - **Editor de código:** auxilia na escrita do código, destacando a sintaxe, oferecendo autocompletar, identação e sugestões contextuais. - **Compilador e/ou interpretador:** converte o código escrito pelo programador em código de máquina que o computador pode processar. - **Ferramentas de construção de projetos:** ajudam na organização e na automação de tarefas repetitivas. - **Depurador (debugger):** identifica e corrige erros no código. Além disso, a maioria das IDEs modernas oferece suporte a múltiplas linguagens, facilitando a escolha da melhor ferramenta para cada projeto. ## Como escolher uma IDE? Na hora de selecionar uma IDE, leve em consideração: - Se ela suporta a linguagem de programação que você pretende usar. - Qual sistema operacional você usará para desenvolver. - Para qual tipo de dispositivo o projeto será desenvolvido (Android, Web, Desktop, iOS). - O nível de funcionalidade e extensibilidade oferecido pela ferramenta. Com a IDE certa, o desenvolvimento se torna mais eficiente, permitindo que o programador maximize sua produtividade e crie aplicações com mais rapidez e qualidade. https://serverspace.com.br/support/help/como-executar-um-conteiner-docker-com-postgresql.md Aprenda a implantar o PostgreSQL no Docker com configuração de usuário, criação de banco de dados, persistência de dados e mapeamento de portas. Quando se trabalha com vários serviços, surge frequentemente a questão de que a execução de aplicações pode afetar o funcionamento umas das outras, o que é especialmente crítico para serviços. Isso ocorre porque eles fornecem processamento de consultas para clientes, como servidores de banco de dados, servidores de monitoramento de desempenho e outros, que podem ser interrompidos por processos vizinhos com os mesmos privilégios. Para garantir integridade, disponibilidade e isolamento dos serviços, a tecnologia de containerização começou a ser amplamente utilizada. Neste artigo, veremos como implantar um banco de dados PostgreSQL usando contêineres Docker. ## Resumo breve O Docker é uma plataforma que automatiza a implantação de snapshots do sistema de arquivos predefinidos (imagens) e permite utilizá-los em ambientes isolados – os contêineres. A virtualização ocorre por meio do kernel do sistema operacional, onde um ambiente totalmente separado de arquivos, rede e processador é criado e atribuído a um novo processo. Isso significa que um processo limitado no Docker, com ambientes anexados, executará todas as tarefas necessárias do serviço de forma isolada. ## Instalação e configuração Vamos começar com as dependências e softwares necessários para o serviço. Caso o Docker ainda não esteja instalado no seu sistema, execute o seguinte comando: ```bash sudo apt install docker ``` Screenshot 1 — Instalação do Docker Após a instalação, podemos iniciar o daemon do Docker e verificar seu funcionamento com os comandos abaixo. Em seguida, encontraremos a imagem necessária no repositório: ```bash systemctl start docker && systemctl status docker ``` ```bash sudo docker search postgres ``` Screenshot 2 — Pesquisa de imagem É importante instalar a imagem oficial do contêiner, identificável por um selo de verificação no lado direito da listagem. Para baixar a imagem oficial do servidor de banco de dados PostgreSQL, utilize o seguinte comando: ```bash docker pull postgres ``` Screenshot 3 — Download da imagem com Docker Pull Isso fará o download da imagem do repositório remoto para o repositório local, com o qual o motor do Docker trabalhará posteriormente. Para verificar se a imagem foi baixada corretamente, usamos o seguinte comando: ```bash docker image ls ``` Screenshot 4 — Docker Image ## Atenção às permissões do sistema Como o contêiner compartilha o kernel do sistema operacional do host, algumas funções não serão completamente isoladas. Por exemplo, a criação de processos exige permissões associadas a UID e GID, que podem coincidir com os usuários da máquina host. Isso significa que, ao montar pastas do host no contêiner e criar usuários, é necessário tomar cuidado para evitar conflitos de permissões. Agora, podemos iniciar o contêiner PostgreSQL com o seguinte comando: ```bash docker run -d \ --name nome-do-container \ --restart unless-stopped \ -e POSTGRES_USER=dbuser \ -e POSTGRES_PASSWORD=sua-senha \ -e POSTGRES_DB=sua-DB \ -p 5432:5432 \ -v nome-do-volume:/var/lib/postgresql/data \ postgres && docker ps ``` Screenshot 5 — Docker Run Explicação dos parâmetros usados no comando: - POSTGRES_USER – nome de usuário do banco de dados (conta usada no serviço no SO); - POSTGRES_PASSWORD – senha da conta do banco de dados; - POSTGRES_DB – nome do banco de dados; - -p – redirecionamento de portas do host para o contêiner (host:container); - -v – criação de um volume virtual para armazenar os dados do serviço. A imagem do contêiner criará automaticamente um usuário e executará o banco de dados PostgreSQL com as configurações fornecidas. Agora, o contêiner (ou o processo restrito) se torna um espaço isolado que aceita chamadas de rede na porta 5432. Isso significa que o servidor pode ser acessado via conexão de rede a partir de um dispositivo remoto, usando o endereço IP da máquina host e a porta encaminhada. Para verificar se o serviço está disponível, utilize o seguinte comando: ``` netstat -tulnp ``` Screenshot 6 — Socket ## Conectando-se ao PostgreSQL no contêiner Também podemos testar a conexão executando o cliente psql dentro do próprio contêiner: ```bash docker exec -it nome-do-container psql -U dbuser -d sua-DB ``` Screenshot 7 — Connection Ótimo, a conexão foi estabelecida! Agora podemos gerenciar o servidor de banco de dados, que está isolado do ambiente principal do sistema operacional. ## Removendo o contêiner Se for necessário parar e remover o contêiner e seus dados, execute o seguinte comando: ```bash docker stop name-of-container && docker remove name-of-container && docker image remove postgres && docker volume remove name-of-volume ``` Screenshot 8 — Remove container Após essa operação, o contêiner, a imagem e os dados armazenados serão completamente removidos. Caso seja necessário reinstalar a imagem, o comando docker volume rm nome-do-volume pode ser omitido para preservar os bancos de dados já criados. Neste artigo, demonstramos um método passo a passo para implantar um ambiente de contêiner utilizando uma imagem de banco de dados PostgreSQL. Esse método delimita o espaço entre diferentes serviços, garantindo mais segurança, integridade dos dados e evitando conflitos entre dependências no sistema. https://serverspace.com.br/support/help/quais-sao-alguns-registros-dns.md Os registros DNS são componentes essenciais do Sistema de Nomes de Domínio, mapeando nomes de domínio para endereços IP e definindo diversas configurações do domínio. É difícil imaginar a infraestrutura moderna e as redes em geral sem DNS. Essa tecnologia permite que usuários e serviços encontrem os recursos certos para suas tarefas ao associar nomes de domínio a registros de diferentes formatos. Seja para enviar um e-mail para a caixa de entrada de um colega ou acessar um site com gatinhos, os serviços web e de e-mail primeiro localizam o registro example.com → 192.168.1.2 e direcionam o pacote de rede para a máquina correta. No entanto, com o desenvolvimento de novas tecnologias, surgiram muitos outros tipos de registros além da tradicional associação domínio → endereço IP. Neste material, vamos considerar cada um deles de forma expressa. ## O que é DNS? DNS, ou Domain Name System, é um serviço que fornece aos clientes a resolução ou correspondência entre o domínio e o valor armazenado pelo servidor no formato de registros. Para um único domínio, podem ser atribuídos vários registros de diferentes tipos ao mesmo tempo. Por exemplo, nosso domínio vdushuu.space tem três registros no painel de controle do domínio. Screenshot № 1 — Painel de registros de domínio Cada registro existente tem seu próprio tipo e função, além de campos a serem preenchidos. Você pode encontrar o registro necessário para um domínio usando as utilitárias padrão dig + nslookup: ``` nslookup vdushuu.space ``` Screenshot № 2 — nslookup Vamos analisar cada um dos tipos de registros e descrever sua funcionalidade. ## Quais são os tipos de registros DNS? Tipo A Para encontrar o endereço IPv4 do host que hospeda um site, armazenamento em rede ou outro recurso por nome de domínio, usa-se um registro do tipo A. O processo de registro é o seguinte: Screenshot № 3 — Registro DNS A É necessário especificar o próprio domínio com o sinal @ ou seus subdomínios, escrevendo seus valores no campo correspondente e, em seguida, atribuir o endereço correspondente ao nome do domínio. Neste caso, um endereço pode corresponder a um ou mais domínios, mas não o contrário. No entanto, se você usar seu próprio servidor DNS, a tecnologia DualBrain ou GeoIP pode permitir isso. Tipo AAAA Para encontrar o endereço IPv6 de um host, utiliza-se um registro do tipo AAAA. O processo de registro é semelhante ao anterior. O número de dispositivos na rede cresce exponencialmente, e a necessidade de identificar cada um deles continua a mesma, por isso esse tipo de registro já está disponível. Se você não tiver recursos suficientes, pode realizar ações em servidores em nuvem poderosos. A Serverspace fornece [servidores VPS](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) isolados para uso comum e virtualizado. Screenshot № 4 — Criar servidor Registro tipo MX Para encontrar o servidor de e-mails para onde devem ser enviadas mensagens, pode-se usar o registro MX. Ele é quase idêntico ao registro A, mas existe separadamente para permitir flexibilidade no design da infraestrutura. Para seu domínio, você deve especificar o domínio do gateway de e-mail para lidar com as solicitações do tipo MX. Screenshot № 5 — Registro DNS MX Observe que também é necessário especificar o registro do tipo A correspondente para o MX. Registro tipo PTR Frequentemente, alguns serviços utilizam o registro PTR para verificar qual domínio corresponde a um determinado endereço IP. Para sua criação, o provedor faz as alterações independentemente e pode não disponibilizá-las. Registro tipo CNAME O redirecionamento na web existe não apenas no nível do servidor web, manipulador HTML e JavaScript, mas também nos domínios. Um registro do tipo CNAME permite que, quando um usuário acessa um domínio, sua solicitação seja redirecionada para outro domínio. Screenshot № 6 — Registro DNS CNAME Neste caso, o nome mnemônico é o referenciado, e o nome canônico é o alias ou sinônimo do referenciado. Registro tipo NS Para entender o funcionamento deste tipo de registro, lembre-se de que o serviço DNS normalmente realiza uma busca recursiva por servidores de domínio de diferentes níveis, procurando o servidor responsável pela zona. O registro do tipo NS permite especificar quem será o responsável pelo DNS do nosso domínio ou para onde direcionar as consultas dos registros do domínio. Screenshot № 7 — NS Registro tipo TXT Esse tipo de registro é um campo de recurso onde se pode escrever dados para verificação de domínio, como para registro de SSL ou autenticação de assinatura digital DKIM de e-mails. Além disso, alguns serviços exigem a inserção de strings de autenticação para confirmar os direitos sobre o domínio. Portanto, ele pode assumir valores do seguinte formato: ``` v=DKIM1; k=rsa; p=(chave pública gerada) ``` Registro tipo SRV Esse registro representa um domínio que não está apenas vinculado a uma máquina como um registro A, mas refere-se a um serviço específico dentro do domínio. É necessário selecionar o protocolo, a porta e a qual domínio esse serviço será vinculado. Screenshot № 8 — SRV Para adicionar registros com facilidade pelo painel, delegue seu domínio à Serverspace. Esse serviço é gratuito. Comece a gerenciar seu domínio pelo painel agora mesmo. https://serverspace.com.br/support/glossary/conexao-direta.md Saiba o que é o Conexão direta/Direct Connect, seus principais recursos e como acessar o Serverspace Conexão direta. ## O que é Conexão direta (Direct Connect)? O Conexão direta é uma conexão direta entre a sua rede privada corporativa e a nuvem da Serverspace. Com essa conexão, é possível maximizar a largura de banda entre locais e garantir uma rede mais estável do que uma conexão pública. Por exemplo, a Serverspace oferece o serviço [Serverspace Conexão direta](https://serverspace.com.br/services/direct-connect.md). ## Quanto custa a conexão com o Conexão direta? A conexão com a infraestrutura da Serverspace é totalmente gratuita. Você só precisa selecionar um ponto de conexão no seu ambiente. ## Qual a velocidade suportada pelo Conexão direta? A largura de banda máxima depende do seu equipamento de rede. Não há limite de velocidade no lado da Serverspace. ## Principais características e funções do Conexão direta - **Conexão direta:** Cria uma conexão física direta entre a infraestrutura do usuário e os servidores em nuvem, evitando redes públicas como a Internet. - **Alta taxa de transferência:** Oferece alta capacidade de transmissão e baixa latência, essencial para aplicações que exigem grande volume de tráfego e transferência rápida de dados. - **Confiabilidade:** A conexão direta é mais estável do que conexões via Internet, pois sofre menos interferências externas e congestionamento de rede. - **Segurança:** Como os dados não passam por redes públicas, há menor risco de interceptação e acesso não autorizado. - **Largura de banda ajustável:** Os usuários podem escolher a largura de banda conforme suas necessidades, variando de dezenas de megabits por segundo a vários gigabits por segundo. ## Vantagens do Conexão direta - **Melhor desempenho:** A conexão direta garante maior velocidade e estabilidade na transmissão de dados. - **Redução de custos:** Em alguns casos, o Direct Connect pode reduzir os custos de transferência de dados, especialmente em ambientes com alto volume de tráfego. - **Gerenciamento simplificado:** Facilita o gerenciamento e monitoramento do tráfego de rede entre a infraestrutura local e a nuvem. ## Serverspace Conexão direta Você pode obter uma conexão física direta entre sua infraestrutura local e a nuvem da Serverspace. A Serverspace garante: - **Alta velocidade:** Máxima largura de banda e baixa latência. - **Facilidade:** Nós cuidamos de toda a configuração da rede — você só precisa escolher um ponto de conexão. - **Segurança:** Conexão via canais dedicados, sem acesso à Internet. https://serverspace.com.br/support/glossary/iaas.md Descubra o que é IaaS (Infrastructure as a Service) e como essa solução em nuvem permite escalabilidade, economia e mobilidade para empresas. Saiba como o IaaS pode otimizar a infraestrutura de TI e facilitar a gestão de recursos. **IaaS**, ou **Infrastructure-as-a-Service**, significa, literalmente, infraestrutura fornecida como serviço. Essa infraestrutura pode incluir diferentes componentes, como armazenamento de dados, servidores virtuais ou sistemas operacionais. Cada um desses componentes é disponibilizado por um provedor de nuvem como um serviço. A gestão dos recursos pode ser feita tanto pelo provedor quanto pelo cliente, dependendo do modelo de consumo escolhido. A divisão de responsabilidades na administração da infraestrutura depende da carga de trabalho do departamento de TI do cliente e das tarefas que precisam ser resolvidas com a ajuda do IaaS. Geralmente, o cliente gerencia o armazenamento de dados, a instalação e a execução de softwares, enquanto o provedor de nuvem é responsável pelo controle da sua infraestrutura física, incluindo redes, servidores e softwares próprios e intermediários. ## Principais vantagens do IaaS - **Escalabilidade** – O cliente pode pagar apenas pelos recursos que realmente utiliza. Isso permite manter os serviços operacionais mesmo durante picos de demanda e economizar em períodos de menor necessidade. - **Economia em infraestrutura** – Alugar recursos no modelo IaaS geralmente é mais barato do que adquirir uma infraestrutura própria. Além disso, os custos com equipe especializada são reduzidos, uma vez que a manutenção da infraestrutura não é de responsabilidade do cliente. - **Mobilidade e acessibilidade** – O IaaS possibilita o acesso aos dados independentemente do equipamento ou da localização do usuário. Basta ter uma conexão estável com a internet. ## Aplicações do IaaS - Criação de ambientes de teste para novos produtos e experimentação de diferentes soluções; - Armazenamento e backups de dados; - Disponibilização de recursos para clientes finais; - Processamento e análise de grandes volumes de dados; - Garantia da disponibilidade dos serviços durante picos de tráfego; - Infraestrutura de backup para complementar a infraestrutura principal. https://serverspace.com.br/support/glossary/udp.md Descubra o que é UDP, suas funções e características, vantagens e desvantagens, além das diferenças em relação ao TCP – explicado de forma simples. ## O que é UDP em termos simples O UDP (User Datagram Protocol) é um dos principais protocolos para a transmissão de dados em redes. Diferente do TCP (Transmission Control Protocol), o UDP não exige o estabelecimento de conexão antes do envio dos dados e não garante sua entrega. Graças à sua simplicidade e alta velocidade, o UDP é geralmente utilizado em cenários onde reduzir a latência é mais importante do que garantir a entrega confiável dos dados. ## Principais aspectos do User Datagram Protocol - **Sem estabelecimento de conexão** – O UDP não requer a criação de uma conexão entre remetente e destinatário antes do envio dos dados. Os pacotes são transmitidos na forma de datagramas independentes, sem necessidade de confirmação de recebimento. - **Transmissão rápida de dados** – Como não há troca de informações adicionais para controle, o UDP proporciona um envio de dados mais rápido em comparação ao TCP. - **Sem garantia de entrega** – O protocolo não verifica a integridade dos dados nem retransmite pacotes perdidos ou corrompidos. Os pacotes podem chegar fora de ordem ou nem mesmo serem entregues. - **Cabeçalho pequeno** – O cabeçalho do UDP é compacto, com apenas 8 bytes, enquanto o do TCP ocupa no mínimo 20 bytes. Isso reduz a sobrecarga e facilita o processamento dos dados. - **Casos de uso** – O UDP é amplamente utilizado em situações onde a velocidade de transmissão é essencial, como serviços de streaming, jogos online, chamadas de voz via VoIP e o sistema de nomes de domínio (DNS). ## Onde o UDP se destaca - **Alta velocidade** – A ausência de conexão e a baixa sobrecarga permitem operações rápidas com latência reduzida. - **Simplicidade** – O cabeçalho menor e a ausência de mecanismos de controle de fluxo e congestionamento facilitam a implementação do UDP. ## Onde o UDP é fraco - **Falta de confiabilidade** – Não há mecanismos para confirmação de entrega, controle da ordem dos pacotes ou recuperação de dados corrompidos. - **Sem controle de fluxo** – O UDP não gerencia o fluxo de dados, o que pode levar à sobrecarga da rede quando há um alto volume de tráfego. ## Comparação entre os protocolos TCP e UDP - **Confiabilidade** – O TCP garante a entrega dos dados por meio de confirmações de recebimento e retransmissão de pacotes perdidos. Já o UDP não assegura a entrega nem verifica a integridade dos dados. - **Estabelecimento de conexão** – O TCP exige a criação de uma conexão antes da transmissão, permitindo controle sobre a ordem e a confiabilidade da entrega. O UDP, por outro lado, envia os dados sem conexão prévia, o que torna o processo mais rápido, mas menos seguro. ## Aplicações - **TCP** – Melhor para aplicações onde a confiabilidade e a precisão na entrega dos dados são essenciais, como navegação na web e transferência de arquivos. - **UDP** – Preferível quando a velocidade é prioridade e a perda de alguns pacotes não compromete o funcionamento, como em vídeos em tempo real e jogos online. Assim, o UDP é a melhor escolha para cenários onde a latência baixa é mais importante do que a confiabilidade, enquanto o TCP é ideal para transmissões que exigem segurança e entrega garantida. https://serverspace.com.br/support/glossary/sftp.md Descubra o que é SFTP, suas aplicações, características e desvantagens. O **SFTP** (SSH File Transfer Protocol) é um protocolo projetado para a transferência segura de arquivos entre um cliente e um servidor. Ele utiliza criptografia SSH (Secure Shell) para garantir a segurança dos dados durante a transmissão. O SFTP combina as funcionalidades da transferência tradicional de arquivos, como no FTP, com uma proteção avançada da informação. ## Aplicações do SFTP Este protocolo é amplamente utilizado em diversas áreas, como: - **Redes corporativas** – Permite a troca segura de arquivos entre escritórios e filiais de uma empresa. - **Hospedagem de sites** – Utilizado para o envio seguro de páginas web e outros recursos para servidores. - **Backup e arquivamento** – Garante o armazenamento seguro de dados críticos. - **Comércio eletrônico** – Indicado para a transmissão segura de informações financeiras e dados de clientes. - **Desenvolvimento de software** – Facilita a transferência de grandes arquivos de código-fonte e binários entre equipes de desenvolvimento. ## Características do SFTP - **Segurança** – Utiliza criptografia para garantir a confidencialidade e a integridade dos dados. - **Autenticação** – Suporta múltiplos métodos de autenticação, incluindo chaves públicas e senhas. - **Verificação de integridade** – Utiliza hashes e somas de verificação para validar a integridade dos arquivos transferidos. - **Gerenciamento de permissões** – Permite configurar permissões de acesso no nível do servidor. - **Sessões e canais** – Suporta múltiplas sessões de SFTP dentro de um único canal SSH. - **Compatibilidade** – Funciona em diferentes sistemas operacionais e é suportado por diversos clientes de transferência de arquivos, como WinSCP e FileZilla. ## Vantagens do SFTP - **Alta segurança** – Graças à criptografia e autenticação, o SFTP é muito mais seguro do que o FTP tradicional. - **Canal único de comunicação** – Opera através de um único canal (geralmente a porta 22), facilitando a configuração de firewalls e NAT. - **Flexibilidade na autenticação** – Oferece suporte a diferentes métodos de autenticação. - **Integração com SSH** – Utiliza a mesma infraestrutura de segurança do SSH, simplificando a administração. - **Portabilidade** – Compatível com diversos sistemas operacionais e clientes. ## Desvantagens do SFTP - **Desempenho** – O processo de criptografia e descriptografia pode reduzir o desempenho em comparação com protocolos sem criptografia, como o FTP. - **Configuração complexa** – A configuração segura do servidor e do cliente exige mais conhecimento técnico. - **Menor suporte em navegadores** – Ao contrário de protocolos HTTP/S, o SFTP geralmente requer software especializado para a transferência de arquivos. ## Conclusão O SFTP é um protocolo poderoso e seguro para a transferência de arquivos, ideal para diversas aplicações. Ele oferece um alto nível de segurança e confidencialidade, mas exige mais recursos e conhecimento técnico para configuração e uso corretos. Esse protocolo é especialmente útil para organizações que priorizam a proteção dos dados. https://serverspace.com.br/support/glossary/lamp.md Descubra o que é LAMP, suas características e as diferenças em relação ao LEMP. O **LAMP** (Linux, Apache, MySQL, PHP) é um acrônimo que representa um conjunto de softwares usados para desenvolver e hospedar aplicativos web. Ele é composto pelos seguintes componentes: - Linux – Sistema operacional baseado no kernel Linux, amplamente utilizado devido à sua estabilidade, segurança e código aberto. - Apache – Servidor web responsável por processar solicitações de navegadores e enviar os dados solicitados. É conhecido por sua confiabilidade e flexibilidade. - MySQL – Sistema de gerenciamento de banco de dados relacional (SGBD), utilizado para armazenar os dados dos aplicativos web e que suporta SQL (Linguagem de Consulta Estruturada). Integra-se bem com os outros componentes do LAMP. - PHP – Linguagem de programação usada para criar páginas web dinâmicas. O PHP é interpretado no servidor e pode interagir com bancos de dados para gerar conteúdo em tempo real. O LAMP é um dos stacks mais populares para desenvolvimento web devido à sua natureza de código aberto, flexibilidade e suporte da comunidade. Existem variações do stack, como WAMP (para Windows), MAMP (para macOS) e LEMP, onde o servidor web Nginx substitui o Apache. Vantagens do LAMP - **Código aberto** – Todos os componentes são gratuitos e possuem código-fonte aberto. - **Amplo suporte** – Grande quantidade de documentação, fóruns e comunidades ativas. - **Escalabilidade** – Capacidade de crescer conforme a demanda de usuários aumenta. - **Flexibilidade** – Possibilidade de personalizar e ajustar cada componente conforme as necessidades do projeto. Desvantagens do LAMP - **Configuração e administração** – Requer conhecimento em Linux e configurações de rede. - **Desempenho** – Pode precisar de otimizações para suportar cargas elevadas. Variações do LAMP O stack LAMP pode ser adaptado para atender diferentes necessidades. Por exemplo, o MySQL pode ser substituído pelo MariaDB, um banco de dados relacional compatível e otimizado. Além disso, o PHP pode ser complementado ou substituído por outras linguagens de servidor, como Perl ou Python. Otimização e desempenho Embora o LAMP seja eficiente, administradores frequentemente aplicam técnicas de otimização para melhorar o desempenho, como: - **Cache** – Uso de sistemas como Memcached ou Redis para reduzir a carga no banco de dados. - **Otimização do banco de dados** – Indexação de tabelas e análise de consultas para melhorar a eficiência. - **Proxy reverso** – Ferramentas como Varnish podem ser usadas para cache de solicitações HTTP, reduzindo a carga no servidor web. Segurança no LAMP Sendo um conjunto de softwares de código aberto, o LAMP recebe atualizações frequentes para corrigir vulnerabilidades. No entanto, administradores devem seguir boas práticas de segurança, como: - Atualizar regularmente todos os componentes. - Restringir permissões de acesso. - Configurar firewalls para proteção contra ataques externos. - Implementar SSL/TLS para criptografia de tráfego. Alternativas modernas Embora o LAMP continue sendo amplamente utilizado, outros stacks modernos surgiram, como MEAN (MongoDB, Express.js, Angular, Node.js) e MERN (MongoDB, Express.js, React, Node.js), que utilizam JavaScript como base para aplicações web mais dinâmicas. ## Diferenças entre LAMP e LEMP O LAMP e o LEMP são dois stacks populares para desenvolvimento web, mas a principal diferença entre eles está na escolha do servidor web. Comparação entre LAMP e LEMP **Desempenho:** - O LEMP é frequentemente escolhido para aplicações de alto tráfego devido ao seu melhor desempenho e menor consumo de recursos em comparação com o Apache. **Configuração e facilidade de uso:** - O Apache é mais flexível e possui uma ampla variedade de módulos, além de ser mais fácil de configurar. - O Nginx, por sua vez, pode ser mais complicado para iniciantes, mas suas configurações básicas costumam ser mais eficientes e diretas. **Uso de recursos:** - O Nginx consome menos memória RAM e CPU, tornando-o ideal para servidores com recursos limitados. **Casos de uso:** - O LAMP é mais adequado para aplicações diversas, especialmente para softwares legados que dependem do Apache. - O LEMP é ideal para aplicações modernas que exigem alto desempenho e eficiência no uso de recursos. ## Conclusão Tanto o LAMP quanto o LEMP são soluções robustas para desenvolvimento web. A escolha entre eles dependerá dos requisitos do seu projeto, do volume de tráfego esperado e das preferências na administração do servidor. https://serverspace.com.br/support/glossary/lemp.md Descubra o que é LEMP, suas características e as diferenças em relação ao LAMP. O **LEMP** é um acrônimo que representa um conjunto de softwares frequentemente utilizados para desenvolver e hospedar aplicativos web e sites. Esse stack tecnológico é composto por: - Linux – Sistema operacional base sobre o qual os outros componentes são executados. - Nginx – Servidor web, também pronunciado como "Engine-X". O Nginx é utilizado para processar solicitações HTTP e distribuir a carga de trabalho, sendo conhecido por sua alta performance e baixo consumo de recursos. - MySQL/MariaDB – Sistema de gerenciamento de banco de dados. MySQL e sua versão alternativa MariaDB são amplamente utilizados para armazenar dados, como informações de usuários e conteúdos de sites. - PHP – Linguagem de programação do lado do servidor usada para criar conteúdo dinâmico e interagir com bancos de dados. No stack LEMP, as aplicações web são executadas em um servidor com Linux, utilizam Nginx para processar solicitações dos usuários, armazenam dados em MySQL/MariaDB e geram conteúdo dinâmico com PHP. Esse stack é amplamente adotado por sua eficiência e alta performance em aplicativos web. Histórico - Linux foi lançado por Linus Torvalds em 1991. - Nginx foi criado por Igor Sysoev em 2004 e se tornou popular por sua capacidade de lidar com um grande número de conexões simultâneas. - MySQL surgiu em 1995, desenvolvido pela empresa sueca MySQL AB. MariaDB, um fork do MySQL, foi lançado em 2009 pela comunidade de desenvolvedores. - PHP foi criado por Rasmus Lerdorf em 1994 como um conjunto de ferramentas para manipular formulários HTML, tornando-se uma das linguagens de programação mais utilizadas em servidores web. Aplicações do LEMP O stack LEMP é amplamente usado para o desenvolvimento e hospedagem de diversos tipos de aplicações web, como: - **Sistemas de gerenciamento de conteúdo (CMS)** – WordPress, Joomla, Drupal. - **Plataformas de e-commerce** – Para criação e gerenciamento de lojas virtuais e sistemas de pagamento. - **Redes sociais e blogs** – Sites de compartilhamento de conteúdo gerado por usuários. - **Fóruns e classificados** – Plataformas para interação entre usuários. - **APIs e aplicativos web** – Serviços online que interagem com outras plataformas. Exemplos de aplicações baseadas em LEMP - **WordPress** – Um dos CMS mais populares, pode ser hospedado em um ambiente LEMP para melhorar o desempenho. - **Magento** – Plataforma de e-commerce que se beneficia da eficiência do Nginx para lidar com grandes volumes de tráfego. - **MediaWiki** – Software de gerenciamento de wikis, como a Wikipédia, também pode rodar em servidores LEMP. ## Diferenças entre LAMP e LEMP O LAMP e o LEMP são dois dos stacks mais populares para desenvolvimento web. A principal diferença entre eles está na escolha do servidor web. Comparação entre LAMP e LEMP **Desempenho:** - O LEMP é mais eficiente para aplicações de alto tráfego, consumindo menos recursos do que o Apache. **Configuração e facilidade de uso:** - O Apache oferece maior flexibilidade, suportando uma ampla variedade de módulos. - O Nginx pode ser mais desafiador para configurar, mas suas configurações padrão são mais eficientes e fáceis de gerenciar. **Uso de recursos:** - O Nginx utiliza menos memória RAM e CPU, tornando-o ideal para servidores com recursos limitados. **Casos de uso:** - O LAMP é mais versátil e pode ser utilizado para aplicativos diversos, especialmente aqueles que exigem compatibilidade com softwares legados. - O LEMP é mais indicado para aplicações modernas que exigem máxima performance e eficiência no uso de recursos. ## Conclusão Tanto o LAMP quanto o LEMP são soluções poderosas para desenvolvimento web. A escolha entre eles depende das necessidades do seu projeto, do volume de tráfego esperado e da preferência por configurações e gerenciamento do servidor. https://serverspace.com.br/about/news/novos-modelos-de-linguagem-da-api-serverspace-gpt.md Adicionamos novos modelos de linguagem aos já disponíveis. Experimente agora o GPT-4o, Claude 3.5 Haiku e Claude 3.7 Sonnet em nosso painel de controle. A API Serverspace GPT agora conta com [cinco modelos](https://serverspace.com.br/services/api-gpt-do-serverspace.md) de linguagem avançados, com três novas adições que ampliam as possibilidades dos usuários. Os novos modelos disponíveis são: - **GPT-4o** – O modelo mais avançado da OpenAI, com alto desempenho, melhor compreensão contextual e processamento em tempo real de texto, imagens e áudio. Ideal para tarefas intelectualmente complexas, análise de dados e geração de conteúdo de alta qualidade. - **Claude 3.5 Haiku** – O modelo mais rápido da Anthropic, otimizado para conversas em tempo real com baixa latência. Perfeito para chatbots, suporte ao cliente e criação dinâmica de conteúdo. - **Claude 3.7 Sonnet** – Um modelo avançado com raciocínio aprimorado e compreensão profunda. Reconhecido por sua alta precisão em análises e cálculos, sendo especialmente útil para resolução de problemas complexos, interpretação de dados e análise avançada. Agora, desenvolvedores, analistas e equipes empresariais podem escolher o LLM ideal para suas necessidades – seja para processamento de linguagem natural, automação de suporte ao cliente, geração de conteúdo, cálculos avançados ou análise de dados em grande escala. _A [Serverspace](https://serverspace.com.br/index.md) é uma provedora de nuvem que oferece implantação de infraestrutura virtual em plataformas Linux e Windows em menos de 1 minuto, de qualquer lugar do mundo. Além disso, disponibiliza ferramentas como API, CLI e Terraform para integração eficiente com serviços dos clientes._ https://serverspace.com.br/support/glossary/squid.md Squid é um proxy e cache que otimiza acesso à web, reduz consumo de banda e controla conteúdo. Squid é um software poderoso de proxy e cache amplamente utilizado para otimizar o acesso à web e melhorar a eficiência do uso dos recursos da rede. ele suporta diversos protocolos, como http, https, ftp e outros. abaixo estão as principais funções e aplicações do squid. ## Principais funções do squid - **Cache de conteúdo web:** armazena cópias de páginas visitadas, reduzindo significativamente o tempo de carregamento para acessos subsequentes. - **Filtragem de conteúdo:** bloqueia o acesso a sites ou tipos específicos de conteúdo. - **Gerenciamento de largura de banda:** controla a quantidade de tráfego que passa pelo servidor, otimizando o uso dos canais de comunicação. - **Autenticação de usuários:** integra-se a diferentes sistemas de autenticação para gerenciar direitos de acesso. - **Balanceamento de carga:** distribui o tráfego entre vários servidores para melhorar o desempenho e a tolerância a falhas. ## Aplicações do squid - **Organizações e redes corporativas:** acelera o carregamento de páginas e reduz o consumo de banda. - **Provedores de internet (isps):** diminui a carga sobre os canais de comunicação externos e melhora a velocidade de acesso a recursos frequentemente visitados. - **Instituições educacionais:** controla o acesso a recursos da internet e otimiza o consumo de tráfego. ## Exemplos de uso - **Cache:** páginas carregadas através do squid são armazenadas no servidor. se outro usuário solicitar a mesma página, ela será carregada do cache, acelerando significativamente o processo. - **Filtragem de conteúdo:** em escolas ou escritórios, pode ser configurado para bloquear sites não autorizados. - **Controle de acesso:** permite que administradores de rede exijam autenticação de usuários, ajudando a monitorar e restringir o acesso a recursos da internet. O squid é escrito em C e C++ e distribuído sob a licença gnu general public license, tornando-se uma solução acessível e flexível para diversas aplicações em infraestrutura de rede. https://serverspace.com.br/support/glossary/netcat.md Netcat é uma ferramenta para transferência de dados e diagnóstico de rede via TCP/UDP. Netcat, também conhecido como nc, é uma poderosa ferramenta de linha de comando que permite a leitura e escrita de dados através de conexões de rede utilizando os protocolos TCP ou UDP. Ele é amplamente utilizado para diagnosticar problemas de rede e transferir dados entre dispositivos. Graças à sua flexibilidade, o Netcat possibilita a criação de servidores e clientes simples, tornando-se uma ferramenta essencial para administradores de rede, testadores de segurança e desenvolvedores. ## Uso do Netcat O Netcat é frequentemente chamado de "canivete suíço" das ferramentas de rede devido à sua ampla gama de funcionalidades. Alguns exemplos de aplicação incluem: - **Transferência de arquivos** – Permite enviar arquivos entre computadores. Por exemplo, para enviar o arquivo "arquivo.txt", o comando nc -l 12345 arquivo.txt deve ser executado no computador remetente. - **Escuta em portas** – Pode ser usado para monitorar uma porta específica e receber dados enviados para essa porta. - **Verificação de portas abertas** – Permite verificar se uma porta específica está acessível em um host remoto. - **Criação de um chat simples** – Pode ser utilizado para estabelecer uma comunicação em tempo real entre dois computadores. ## Vantagens do Netcat - **Facilidade de uso** - Sua sintaxe de linha de comando é simples e intuitiva. - **Funcionalidades avançadas** – Oferece uma ampla variedade de recursos para gerenciamento de conexões de rede. - **Portabilidade** – Está disponível para diversas plataformas, incluindo Linux, Windows e macOS. ## Desvantagens do Netcat - **Falhas de segurança** - Não possui autenticação ou criptografia embutidas, o que pode representar riscos em redes abertas. - **Suporte oficial limitado** – A versão oficial do Netcat (GNU Netcat) não recebe atualizações desde 2004, embora existam versões alternativas mais modernas. Apesar de suas limitações, o Netcat continua sendo uma ferramenta poderosa para o gerenciamento de conexões de rede. No entanto, é fundamental considerar suas vulnerabilidades de segurança ao utilizá-lo. https://serverspace.com.br/support/glossary/apt.md APT gerencia pacotes no Debian e Ubuntu, facilitando instalação e atualização de softwares com segurança. apt (**Advanced Package Tool**) é um gerenciador de pacotes desenvolvido para os sistemas operacionais Debian e Ubuntu. Ele oferece uma maneira simples e eficiente de instalar, remover e atualizar softwares. Além disso, o APT gerencia automaticamente as dependências entre pacotes, facilitando a instalação de aplicativos e bibliotecas. Utilizando arquivos de configuração e repositórios de pacotes, o APT garante que o software instalado esteja sempre atualizado e seguro. Lançado em 1998, o **APT** tornou-se a principal ferramenta de gerenciamento de pacotes para diversas distribuições Linux baseadas no Debian. Seus comandos, como apt-get, apt-cache e apt-key, oferecem diversas opções para o gerenciamento eficiente de softwares. Com as versões mais recentes do Debian e Ubuntu, surgiram utilitários adicionais baseados no APT, como aptitude e synaptic, que disponibilizam uma interface gráfica para facilitar a administração de pacotes. ## Principais recursos do APT - **Fixação de pacotes (Package Pinning)** – Permite que os usuários priorizem versões específicas de pacotes ou repositórios. Isso é útil para garantir compatibilidade ou atender a requisitos específicos de software, evitando atualizações não desejadas. - **Prevenção de conflitos e arquivos de bloqueio** – O APT usa mecanismos de bloqueio para impedir que múltiplos processos de gerenciamento de pacotes sejam executados ao mesmo tempo, garantindo estabilidade e evitando erros inesperados no sistema. - **Gerenciamento avançado de pacotes** – Permite reverter pacotes para versões anteriores e analisar dependências, o que é essencial ao solucionar problemas de compatibilidade ou falhas após atualizações. - **Arquitetura modular e documentação abrangente** – A estrutura modular do APT permite flexibilidade e personalização, enquanto sua documentação detalhada auxilia usuários de diferentes níveis, tornando-o uma escolha confiável para administradores de sistemas e desenvolvedores. - **Suporte multi-arquitetura** – O APT possibilita a instalação e gerenciamento de software para diferentes arquiteturas de processadores dentro do mesmo sistema. - **Segurança de pacotes** – Inclui recursos para autenticação e validação de pacotes baixados por meio de assinaturas digitais e verificação de checksums. - **Gerenciamento de repositórios** – Permite adicionar, remover e administrar repositórios de pacotes, oferecendo flexibilidade no acesso a diversas fontes de software. - **Integração com repositórios de terceiros** – O APT facilita a inclusão de fontes externas, ampliando o acesso a uma vasta gama de aplicativos e bibliotecas. O APT torna a atualização da lista de pacotes disponíveis e a instalação, remoção e atualização de softwares um processo simples e eficiente. Com recursos de autenticação e instalação segura, ele é um gerenciador de pacotes confiável para sistemas Linux. https://serverspace.com.br/support/glossary/dpi.md DPI monitora, otimiza e controla o tráfego da rede para mais segurança e eficiência. DPI (Deep Packet Inspection) é uma tecnologia de análise profunda de pacotes de rede que permite a inspeção detalhada e o gerenciamento do tráfego da Internet no nível de pacotes individuais. Com o uso do DPI, é possível extrair metadados dos pacotes, identificar o tipo de dados transmitidos, os endereços de origem e destino, além de regular a transmissão de informações na rede. DPI é utilizado para os seguintes fins: - **Monitoramento e segurança da rede **– Detecta e bloqueia dados maliciosos, como vírus, trojans e outras ameaças cibernéticas, protegendo a integridade da rede. - **Otimização de tráfego** – Permite que administradores de rede controlem o fluxo de dados, evitando sobrecarga e otimizando o uso dos recursos. - **Controle de conteúdo** – Possibilita o bloqueio de acesso a conteúdos indesejados, como sites maliciosos ou inadequados, garantindo maior segurança na navegação. - **Processamento e análise de dados** – Coleta estatísticas de tráfego para otimizar a rede e melhorar o desempenho. Funcionamento do DPI: - **Coleta de pacotes** – O sistema DPI captura os pacotes de dados que trafegam na rede. - **Análise dos pacotes** – Examina cada pacote para extrair informações como tipo de tráfego e endereços de origem e destino. - **Identificação do tráfego** – Utiliza algoritmos e bancos de dados para classificar os tipos de tráfego, como HTTP, FTP, SSH, entre outros. - **Aplicação de políticas** – Implementa regras de segurança e filtragem para determinar quais pacotes serão bloqueados ou liberados. - **Controle do tráfego** – Gerencia o fluxo de dados conforme as políticas definidas, bloqueando ou filtrando tráfego indesejado. No geral, o DPI é uma ferramenta poderosa para controle e monitoramento do tráfego de rede, garantindo maior segurança e eficiência no gerenciamento da infraestrutura digital. https://serverspace.com.br/support/glossary/http.md HTTP permite a comunicação entre navegadores e servidores para troca de dados online. HTTP, ou HyperText Transfer Protocol, é um protocolo fundamental para a troca de dados na Internet. Ele serve como base para a comunicação entre navegadores e servidores, permitindo a transmissão de páginas da web. O desenvolvimento do HTTP começou no final dos anos 1980, com a primeira versão do protocolo lançada no início dos anos 1990. ## Conceito principal O HTTP opera no modelo de requisição e resposta: um cliente (geralmente um navegador) envia uma requisição, e o servidor responde com as informações correspondentes. Essas mensagens são compostas por linhas de texto, incluindo cabeçalhos e, quando necessário, um corpo de mensagem. Os métodos de requisição são um dos principais elementos do HTTP, definindo a ação desejada: - GET – Usado para recuperar dados, como páginas da web e arquivos armazenados no servidor. - POST – Envia dados para o servidor, como formulários preenchidos por usuários. - PUT – Atualiza ou carrega novos recursos no servidor. - DELETE – Remove recursos armazenados. ## Funcionamento do HTTP O HTTP utiliza um formato de mensagem baseado em texto, tornando sua interpretação e análise simples. Versões mais modernas, como o HTTP/2, introduziram melhorias em desempenho e segurança, resultando em uma troca de dados mais rápida e confiável. Além de mensagens em texto, o HTTP suporta diversos formatos e codificações, como JSON e XML, o que o torna flexível para diferentes tipos de aplicações. O protocolo também pode operar sobre uma conexão criptografada (SSL/TLS), conhecida como HTTPS, que protege os dados contra interceptação e manipulação. Ao longo dos anos, o HTTP passou por diversas atualizações e aprimoramentos, mas seus princípios básicos permaneceram os mesmos, garantindo uma transmissão de dados eficiente e confiável em toda a Internet. https://serverspace.com.br/support/help/o-que-e-o-comando-service-e-como-ele-se-compara-ao-systemctl.md Aprenda as diferenças entre service e systemctl no Linux, como eles funcionam e qual deles usar para gerenciar os serviços do sistema de forma eficaz. Anteriormente, o comando **service** era tradicionalmente usado para gerenciar serviços do sistema. Por exemplo, para reiniciar o servidor web Apache, você poderia executar: ```bash service apache restart ``` No entanto, com a introdução do **systemd**, que se tornou o padrão em muitas distribuições modernas do Linux, agora é recomendado usar systemctl para gerenciar serviços. ### Qual a diferença entre service e systemctl? Ambos os comandos são usados para administrar serviços, mas em sistemas modernos, o service é essencialmente um invólucro (wrapper) para o systemctl. O comando service era amplamente utilizado em sistemas que rodavam o SysVinit e o Upstart, como versões mais antigas do Debian, CentOS 6 e Ubuntu 14.04. Ele interagia diretamente com os scripts localizados em /etc/init.d/. Por outro lado, o systemctl trabalha diretamente com o systemd, um gerenciador de sistema e serviços moderno que oferece mais controle sobre processos e suas dependências. ### Prova de que service chama systemctl Se você executar o seguinte comando: ``` strace -f service nginx restart 2>&1 | grep execve ``` O resultado será algo assim: ``` execve("/usr/bin/systemctl", ["systemctl", "restart", "nginx.service"]) ``` Isso confirma que, na verdade, o comando service está apenas chamando o systemctl para executar a operação. Você também pode inspecionar o conteúdo do comando service com: ``` cat /usr/sbin/service ``` Na maioria das distribuições modernas do Linux, ele é simplesmente um script Bash que chama internamente os comandos correspondentes do systemctl. ### Como gerenciar serviços corretamente? De acordo com as melhores práticas atuais, recomenda-se o uso do systemctl, pois ele interage diretamente com o systemd e oferece mais funcionalidades. No entanto, o comando service ainda está disponível e, na maioria dos casos, o resultado final será o mesmo. ### Métodos alternativos para gerenciar serviços Dependendo do sistema de inicialização, diferentes comandos podem ser usados: ``` /etc/init.d/nginx restart # Para SysVinit rc-service nginx restart # Para OpenRC sv restart nginx # Para runit s6-rc -d change nginx # Para s6 supervisorctl restart nginx # Para Supervisor ``` ### Como verificar qual sistema de inicialização está em uso? Para determinar qual sistema de inicialização seu sistema utiliza, execute: ``` ps -p 1 -o comm= ``` Isso exibirá o nome do processo em execução com o PID 1, ajudando a identificar se o sistema usa systemd, SysVinit ou outro gerenciador de serviços. ### Conclusão Se o seu sistema usa systemd, é melhor utilizar systemctl, pois ele oferece mais recursos e é a ferramenta nativa. No entanto, o comando service continua sendo uma alternativa conveniente, especialmente em sistemas onde o systemd não está disponível. ### FAQ **Posso continuar usando service em vez de systemctl?** Sim, em muitas distribuições modernas do Linux, o comando service funciona como um invólucro (wrapper) do systemctl. No entanto, é recomendado utilizar systemctl diretamente para melhor compatibilidade com o systemd. **Como posso verificar qual sistema de inicialização meu Linux está usando?** Você pode executar o seguinte comando para descobrir o sistema de inicialização: ``` ps -p 1 -o comm= ``` Se a saída for systemd, seu sistema está usando systemd. Caso contrário, pode estar rodando um sistema de inicialização mais antigo, como SysVinit ou Upstart. **O que acontece se eu usar service em um sistema com systemd?** Em sistemas baseados no systemd, o comando service geralmente atua como uma camada de compatibilidade e traduz os comandos para chamadas systemctl, garantindo que os serviços sejam gerenciados corretamente. **Existem alternativas ao systemctl para gerenciar serviços?** Sim, dependendo do sistema de inicialização em uso, você pode encontrar alternativas como **/etc/init.d/**, **rc-service**, **sv**, **s6-rc** e **supervisorctl**. https://serverspace.com.br/support/help/montando-um-diretorio-temporario-dedicado.md Saiba como gerenciar com eficiência o armazenamento de arquivos temporários no Linux, realocando o diretório /tmp para um disco ou partição dedicada. Este guia aborda as práticas recomendadas, a configuração do systemd e as medidas de segurança essenciais para melhorar… Nos sistemas Linux, o diretório padrão para arquivos temporários está localizado em /tmp. Esse diretório serve como um local de armazenamento para dados de curta duração gerados por aplicativos e pelo sistema operacional. No entanto, em algumas distribuições, o /tmp é montado na memória (tmpfs), o que pode causar problemas se a RAM disponível for insuficiente, especialmente quando os aplicativos gravam muitos dados temporários de forma agressiva. Além disso, se o /tmp estiver localizado na partição raiz e ficar sem espaço, isso pode levar à instabilidade do sistema. Para mitigar esses problemas, é recomendável realocar o diretório /tmp para um disco ou partição dedicada. Este artigo explora uma abordagem eficiente para alcançar isso, mantendo a compatibilidade do sistema e a funcionalidade dos aplicativos. ## Abordagem Comum e Eficiente O método mais simples e amplamente utilizado envolve os seguintes passos: - Montar um novo disco em um diretório temporário - Criar um link simbólico de /tmp para o novo local No entanto, alguns aplicativos podem não funcionar corretamente com links simbólicos e exigir um caminho direto para /tmp. Isso pode ser particularmente problemático em cenários que envolvem aplicativos multithread que geram grandes quantidades de arquivos temporários e não fazem a limpeza após a execução. Em vez de modificar o aplicativo (o que muitas vezes é inviável em ambientes empresariais), os engenheiros geralmente implementam soluções alternativas para contornar essas restrições. ## Solução Alternativa: Montando um Diretório Temporário Dedicado Para fornecer uma solução mais robusta, podemos montar um disco ou partição dedicada para armazenamento temporário em /mnt/tmp e configurar o sistema para usá-lo como o novo local de /tmp. ### Passo 1: Preparar o Diretório ```bash sudo mkdir -p /mnt/tmp sudo chmod 1777 /mnt/tmp ``` A configuração de permissão 1777 garante que todos os usuários possam criar arquivos em /mnt/tmp, mas apenas os proprietários dos arquivos possam excluí-los. O número 1 no início representa o sticky bit, que impõe essa restrição. ### Passo 2: Configurar a Unidade de Montagem do Systemd Crie um arquivo de unidade de montagem do systemd em /etc/systemd/system/mnt-tmp.mount com o seguinte conteúdo: ``` Description=Montagem de Armazenamento Temporário Dedicado What=tmpfs Where=/mnt/tmp Type=tmpfs Options=mode=1777,size=10G WantedBy=multi-user.target ``` - O nome do arquivo deve corresponder ao caminho do ponto de montagem. Por exemplo, se estiver montando /mnt/tmp, o arquivo deve ser chamado mnt-tmp.mount. Se estiver montando /mnt/tmp/app_data, o arquivo deve ser mnt-tmp-app_data.mount. - O parâmetro size=10G define um limite de 10GB para esse armazenamento temporário. ### Passo 3: Aplicar as Alterações Execute os seguintes comandos para ativar a montagem: ```bash sudo systemctl daemon-reload sudo systemctl enable mnt-tmp.mount sudo systemctl start mnt-tmp.mount ``` ### Passo 4: Atualizar Variáveis de Ambiente do Sistema Para garantir que os processos usem o novo diretório temporário, atualize a configuração global do ambiente: ``` echo "TMPDIR=/mnt/tmp" | sudo tee -a /etc/environment ``` Aplique as alterações: ``` source /etc/environment ``` ### Passo 5: Verificar e Limpar Verifique se a nova configuração está ativa: ``` echo $TMPDIR df -h /mnt/tmp ``` Opcionalmente, limpe o antigo diretório /tmp: ``` sudo rm -rf /tmp/* ``` ## FAQ (Perguntas Frequentes) **Q: Por que o sticky bit (1777) é importante para diretórios temporários?** A: O sticky bit impede que usuários excluam arquivos pertencentes a outros em diretórios compartilhados como /tmp, garantindo isolamento de dados e segurança. **Q: O que acontece se o /tmp ficar sem espaço?** A: Se o /tmp estiver cheio, os aplicativos que dependem do armazenamento temporário podem falhar, potencialmente causando problemas em todo o sistema. Mover o /tmp para um disco ou partição dedicada evita esse cenário. **Q: Posso especificar um tamanho diferente para o diretório temporário montado?** A: Sim, a opção size= no campo Options= da unidade de montagem do systemd determina o limite de armazenamento. Ajuste-o conforme necessário. **Q: Essa abordagem também funciona para diretórios de logs?** A: Sim, mas diretórios de logs podem exigir considerações adicionais, como rotação de logs e configurações de permissão. ## Conclusão Realocar o **/tmp** para um disco ou partição dedicada melhora a estabilidade do sistema e evita falhas relacionadas ao armazenamento. Ao utilizar o systemd para montagem automatizada, essa abordagem garante uma solução escalável e confiável para gerenciar dados temporários em ambientes Linux. https://serverspace.com.br/support/glossary/cname.md Descubra o que são os registros CNAME, seus principais aspectos e características. CNAME (Canonical Name) é um tipo de registro no sistema DNS (Domain Name System) utilizado para redirecionar um nome de domínio para outro. Esse registro permite definir que um domínio é um alias de outro domínio principal. ## Principais aspectos e aplicações dos registros CNAME **Redirecionamento de requisições:** Com os registros CNAME, é possível direcionar requisições de um domínio para outro. Por exemplo, se um site possui vários subdomínios (www.example.com, blog.example.com), um registro CNAME pode ser usado para redirecioná-los para um domínio principal (example.com). **Facilidade na administração:** Os registros CNAME tornam a gestão de domínios mais prática. Em vez de configurar registros A (Address) individuais para cada subdomínio, é possível criar um único CNAME apontando para um nome canônico. **Migração de serviços:** Caso um site precise ser transferido para outro servidor ou provedor de hospedagem, os registros CNAME simplificam esse processo. Basta alterar o domínio de destino no registro CNAME para que todas as requisições sejam automaticamente redirecionadas para o novo servidor. **Configuração de subdomínios:** Os registros CNAME são amplamente utilizados para a criação de subdomínios. Por exemplo, para criar um subdomínio shop.example.com apontando para outro domínio, como store.example.com, pode-se utilizar um registro CNAME. ## Exemplo de registro CNAME ``` www.example.com. IN CNAME example.com. ``` Neste exemplo, todas as requisições para www.example.com serão redirecionadas para example.com. ## Restrições e recomendações **Domínios raiz:** Registros CNAME não podem ser usados para domínios raiz (como example.com); eles são aplicáveis apenas a subdomínios (como www.example.com ou mail.example.com). **Substituição de registros A:** Normalmente, um registro CNAME substitui registros do tipo A (Address), pois aponta para outro nome de domínio que, por sua vez, é resolvido para um endereço IP. **Incompatibilidade com outros registros:** Não é recomendado combinar registros CNAME com outros tipos de registros para o mesmo nome de domínio. Por exemplo, não deve haver um registro CNAME e um registro A simultaneamente para o mesmo nome. ## Conclusão Os registros CNAME são ferramentas essenciais para a administração de DNS e o redirecionamento de domínios. Eles são especialmente úteis para a criação de aliases e gerenciamento de subdomínios, proporcionando flexibilidade e facilidade na administração de recursos de rede. https://serverspace.com.br/support/glossary/bash.md Descubra o que é Bash (Bourne Again Shell), suas principais características e por que é uma ferramenta poderosa e flexível. **Bash (Bourne Again Shell)** é uma das shells de comando mais populares em sistemas Unix-like, especialmente no Linux. Foi desenvolvido como uma versão aprimorada da antiga Bourne Shell (sh), adicionando novos recursos e maior usabilidade. Bash é usado para gerenciar o sistema via linha de comando, executar comandos, automatizar tarefas e escrever scripts. Principais características do Bash: - **Interface de linha de comando:** permite que os usuários executem comandos para manipular arquivos, gerenciar processos e configurar o sistema. - **Scripts:** suporta a criação e execução de scripts, tornando-se uma ferramenta poderosa para automação de tarefas diárias. Scripts em Bash são amplamente utilizados para backup, configuração de ambiente, processamento de dados e muito mais. - **Gerenciamento de processos:** possibilita a execução de comandos em segundo plano, além de pausar, retomar e encerrar processos. - **Variáveis de ambiente:** utiliza variáveis que configuram o comportamento do shell e armazenam informações do sistema. Por exemplo, a variável **PATH** contém os diretórios onde os arquivos executáveis estão localizados, enquanto **HOME** aponta para o diretório pessoal do usuário. - **Pipes e redirecionamento:** permite passar a saída de um comando para outro (usando **|**) e redirecionar a saída para arquivos (**>, >>**), facilitando o processamento avançado de dados com comandos simples. - **Operadores condicionais e loops:** suporta estruturas condicionais (**if, case**) e loops (**for, while**), permitindo a criação de scripts mais complexos. - **Autocompletar e histórico de comandos:** oferece suporte a autocompletar comandos, nomes de arquivos e variáveis, além de manter um histórico de comandos, facilitando a reutilização de instruções digitadas anteriormente. Bash é uma ferramenta poderosa e flexível, amplamente utilizada por administradores, desenvolvedores e usuários para gerenciar sistemas de forma rápida e eficiente. https://serverspace.com.br/support/glossary/cli.md O que é a Interface de Linha de Comando (CLI)? Como ela pode ajudar no gerenciamento da infraestrutura em nuvem? Quais são os recursos da CLI da Serverspace? ## O que é CLI? CLI, também conhecida como linha de comando, é uma interface baseada em texto que permite ao usuário interagir com um sistema computacional. Ela serve como alternativa à interface gráfica do usuário (GUI), que utiliza elementos visuais para representar funções e ações do computador. No modo padrão, a CLI aparece como uma janela de texto onde o usuário digita comandos e recebe respostas em formato de texto. Esses comandos podem incluir a execução de programas, navegação pelo sistema de arquivos, gerenciamento de processos e muitas outras funcionalidades. A CLI é amplamente utilizada por programadores e administradores de sistemas devido à sua eficiência e capacidade avançada. Embora possa parecer complexa para iniciantes, ela oferece grande flexibilidade e controle sobre o sistema. ## O que a CLI pode fazer? - Compatibilidade com sistemas operacionais – disponível para Linux e Windows. - Suporte a API – todas as funções da API Serverspace são compatíveis. - Documentação disponível – a descrição de todos os comandos pode ser encontrada na documentação no GitHub. ## Funcionalidades da CLI Com a CLI, é possível gerenciar [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md), redes, chaves SSH e projetos utilizando um conjunto simples de comandos. Tudo o que você precisa é de um terminal. https://serverspace.com.br/support/glossary/ssh.md SSH - Secure Shell Protocol/Protocolo de Shell Seguro. Um protocolo de acesso seguro a sistemas remotos. SSH (Secure Shell Protocol/Protocolo de Shell Seguro) é um protocolo de acesso seguro a sistemas remotos. Ele pertence à camada de aplicação, assim como HTTP, SMTP, SNMP, FTP e Telnet. O protocolo opera na porta 22 por padrão, mas essa configuração pode ser alterada conforme necessário. Comparado ao protocolo Telnet, o SSH transmite tráfego criptografado, garantindo a proteção dos dados por meio de chaves de criptografia. ## Como funciona o SSH O protocolo utiliza chaves de criptografia para garantir a transmissão segura dos dados. Graças a essa criptografia, mesmo que um invasor intercepte o fluxo de dados, levaria anos para descriptografá-los, tornando as informações obsoletas antes que possam ser decifradas. Por isso, o SSH emprega criptografia assimétrica. Criptografia assimétrica – método que utiliza duas chaves distintas para criptografar e descriptografar os dados. Chave SSH – uma sequência de caracteres aleatórios utilizada para criptografar dados, que são então enviados para o destino. Chave pública – usada para criptografar os dados e pode ser compartilhada com outras partes que precisam enviar informações criptografadas. Chave privada – usada para descriptografar os dados e deve ser armazenada em um local seguro. Existe a opção de protegê-la com uma senha ao criar a chave. ## Exemplo de funcionamento do protocolo SSH usando chaves SSH A conexão entre servidor e cliente ocorre quando o arquivo de configuração do SSH está corretamente configurado no servidor e as portas necessárias estão abertas. O cliente deve enviar sua chave pública ao servidor para que ele possa criptografar os dados em resposta e estabelecer a comunicação segura. Quando um cliente solicita uma conexão com o servidor, os dados são criptografados com a chave privada do cliente e transmitidos pela rede até o servidor. O servidor responde com dados criptografados e continua a comunicação usando a chave pública do cliente para garantir a segurança. Qualquer dispositivo com acesso à internet e um cliente SSH instalado pode atuar como cliente SSH. Exemplos de clientes SSH: - Notebook com Linux, macOS ou Windows; - Dispositivos Android; - Dispositivos iOS (com um cliente SSH instalado). https://serverspace.com.br/support/glossary/busca-textual-completa.md Saiba o que é a pesquisa de texto completo, como ela funciona, onde é usada e quais tecnologias oferecem processamento rápido e preciso de dados de texto. **Full-Text Search (Busca Textual Completa)** é uma tecnologia de busca que permite encontrar documentos relevantes com base na análise de seu conteúdo textual. Diferente das buscas tradicionais por metadados ou palavras-chave indexadas, a busca textual completa processa todo o texto do documento, levando em consideração as características morfológicas da língua, sinônimos e até a proximidade entre as palavras. ## **Principais Características do Full-Text Search** - **Tokenização e Normalização** — separação do texto em palavras e conversão para sua forma base (por exemplo, "busca", "buscando" → "busca"). - **Indexação** — criação de uma estrutura de dados que acelera a busca e permite lidar com grandes volumes de informações textuais. - **Ranqueamento** — determinação da relevância dos documentos encontrados com base na frequência das palavras, proximidade entre termos e outros fatores. - **Suporte a Consultas Complexas** — incluindo busca booleana, busca por frases e análise semântica. ## **Onde o Full-Text Search é Utilizado?** - Em motores de busca (Google, Elasticsearch, Sphinx). - Em bancos de dados (PostgreSQL, MySQL, MongoDB) para busca rápida em campos textuais. - Em documentos corporativos, chats, fóruns e sistemas CRM. - Em e-commerce e marketplaces para busca de produtos por descrições. ## **Exemplos de Busca Textual Completa Embutida** - **PostgreSQL** oferece os mecanismos **tsvector **e **tsquery **para trabalhar com texto, incluindo suporte a sinônimos e configurações de idioma. - **Elasticsearch** utiliza analisadores e índice invertido para buscas rápidas em textos não estruturados. - **MySQL** suporta busca textual completa com o operador **MATCH() AGAINST()**. ## **Full-Text Search na Base de Conhecimento da Serverspace** A [Base de Conhecimento da Serverspace](https://serverspace.com.br/support.md) utiliza a Busca Textual Completa para fornecer aos usuários acesso rápido a artigos relevantes, guias e materiais de suporte. Com o uso de mecanismos avançados de indexação e ranqueamento, garante que os usuários encontrem com eficiência o conteúdo mais relevante para suas consultas. ## **FAQ** **Q: Como a Busca Textual Completa difere da busca por palavras-chave?** A: Diferente da busca por palavras-chave, que localiza termos exatos, a Busca Textual Completa analisa todo o texto, considera sinônimos, variações de palavras e fatores de ranqueamento para fornecer resultados mais precisos. **Q: A Busca Textual Completa pode lidar com grandes volumes de dados?** A: Sim, implementações modernas utilizam técnicas de indexação otimizadas para processar grandes quantidades de texto de maneira eficiente. **Q: Quais bancos de dados suportam a Busca Textual Completa?** A: Muitos bancos de dados relacionais e NoSQL suportam essa funcionalidade, incluindo PostgreSQL, MySQL, MongoDB e Elasticsearch. A Busca Textual Completa é uma ferramenta poderosa para lidar com informações textuais, melhorando significativamente a qualidade da busca e a experiência do usuário. https://serverspace.com.br/support/glossary/explain-analyze.md Saiba como usar o comando EXPLAIN ANALYZE no SQL para analisar e otimizar as consultas. Explore a estrutura de saída, os tipos de execução, o custo das operações e as formas de acelerar o desempenho do banco de dados. **EXPLAIN ANALYZE** é uma ferramenta poderosa no SQL que permite aos desenvolvedores e administradores de bancos de dados analisar como exatamente uma consulta é executada. Ele exibe um plano de execução detalhado, incluindo os índices utilizados, o número de linhas processadas e o tempo gasto. ## **Como funciona o EXPLAIN ANALYZE?** O comando EXPLAIN ANALYZE executa a consulta e fornece um relatório detalhado sobre sua execução. Diferente do EXPLAIN comum, que apenas gera um plano estimado, o EXPLAIN ANALYZE realmente executa a consulta e mede os valores reais. **Exemplo de consulta:** ``` EXPLAIN ANALYZE SELECT * FROM users WHERE email = 'test@example.com'; ``` **Exemplo de saída:** ``` Seq Scan on users (cost=0.00..35.50 rows=1 width=64) (actual time=0.032..0.033 rows=1 loops=1) Filter: (email = 'test@example.com'::text) Rows Removed by Filter: 999 Planning Time: 0.082 ms Execution Time: 0.045 ms ``` ## **Principais elementos da saída** - **Tipo de execução (Scan type)** **Seq Scan** — varredura completa da tabela (lenta para grandes volumes de dados). - **Index Scan** — busca através de um índice (mais eficiente). - **Index Only Scan** — busca por índice sem acessar a tabela. - **Bitmap Heap Scan** — busca combinada usando um bitmap. - **Custo estimado (cost=...)** Representa o custo esperado da operação em unidades virtuais. - Formato: (custo_inicial..custo_final), onde o primeiro valor é o custo inicial e o segundo é o custo total estimado. - **Tempo real (actual time=...)** Tempo real de execução da operação (em milissegundos). - **Número de linhas processadas (rows=...)** Indica quantas linhas foram retornadas nesta etapa da consulta. - **Número de repetições (loops=...)** Quantas vezes essa operação foi executada. ## **Otimização com EXPLAIN ANALYZE** - **Adição de índices** Se a consulta estiver realizando um **Seq Scan**, pode ser que um índice esteja ausente. Criar um índice pode acelerar a busca: ```sql CREATE INDEX idx_users_email ON users(email); ``` Após isso, o EXPLAIN ANALYZE< deve mostrar um Index Scan em vez de Seq Scan. - **Uso do VACUUM ANALYZE** Se as estatísticas do banco estiverem desatualizadas, as consultas podem ser ineficientes. O comando ANALYZE atualiza as estatísticas: ``` VACUUM ANALYZE; ``` - **Reescrita da consulta** Algumas consultas podem ser reformuladas para que o otimizador do banco de dados utilize um plano mais eficiente. Exemplos: Usar JOIN em vez de subconsultas. - Substituir IN por EXISTS. - **Particionamento da tabela (Partitioning)** Se a tabela for muito grande, dividi-la em partições (PARTITION) pode acelerar a busca. ### **Conclusão** O comando EXPLAIN ANALYZE é uma ferramenta essencial para análise e otimização de consultas SQL. Ele ajuda a identificar gargalos de desempenho, determinar quais índices são necessários e aprimorar a estrutura do banco de dados para um funcionamento mais eficiente. https://serverspace.com.br/support/glossary/mvcc.md Saiba como o MVCC (Multi-Version Concurrency Control) permite que os usuários trabalhem com um banco de dados sem bloqueios, proporcionando alto desempenho e isolamento de transações. Discutiremos os princípios, as vantagens, as desvantagens e os casos de uso em DBMSs… **MVCC (Multi-Version Concurrency Control)** é uma tecnologia que permite que vários usuários trabalhem simultaneamente com um banco de dados sem precisar esperar a conclusão de outras operações. Em vez de modificar diretamente os registros, o sistema cria novas versões deles, possibilitando o processamento paralelo de consultas sem bloqueios. Essa abordagem permite que as transações acessem os dados no estado em que estavam no momento em que foram iniciadas, independentemente de alterações subsequentes. ## **Como o MVCC Funciona** Com **MVCC**, cada transação opera sobre os dados conforme o estado em que estavam no início da sua execução. Quando um usuário faz alterações, o sistema não sobrescreve as informações existentes, mas cria uma nova versão do registro. Isso garante: - **Evitar bloqueios** durante operações simultâneas de leitura e escrita. - **Isolamento das transações**, impedindo interferências mútuas. - **Melhoria de desempenho** sob cargas elevadas, executando operações em paralelo. ## **Vantagens do MVCC** **Leitura sem bloqueios** — Transações de leitura não bloqueiam transações de escrita, o que melhora significativamente a velocidade do processamento de dados. **Isolamento de transações** — Suporta diferentes níveis de isolamento, incluindo **Snapshot Isolation, Read Committed** e **Repeatable Read**. **Menor latência** — As transações não precisam esperar umas pelas outras, aumentando a velocidade de execução das consultas. ## **Desvantagens do MVCC** **Maior demanda por armazenamento** — Manter várias versões dos registros aumenta o uso de espaço em disco. **Necessidade de limpeza de versões antigas** — Um mecanismo periódico de **Coleta de Lixo (Garbage Collection)** é necessário para remover dados obsoletos. **Complexidade de implementação** — Gerenciar múltiplas versões exige lógica adicional no SGBD, tornando o desenvolvimento e a administração mais desafiadores. ## **Exemplos de Uso do MVCC** O MVCC é amplamente utilizado nos principais bancos de dados relacionais e NoSQL: - **PostgreSQL** — Utiliza MVCC para garantir alto desempenho e acesso concorrente. - **Oracle** — Implementa o mecanismo **UNDO** para armazenar versões antigas dos registros. - **MySQL (InnoDB)** — Suporta MVCC por meio de **logs UNDO**. - **Microsoft SQL Server (Snapshot Isolation)** — Reduz a sobrecarga de bloqueios usando concorrência multiversionada. ## **Considerações Finais** O **MVCC** é um mecanismo essencial que possibilita operações eficientes em bancos de dados multiusuário sem atrasos causados por bloqueios. Apesar da complexidade no gerenciamento das versões de dados e da necessidade de limpeza periódica, esse método torna os bancos de dados mais escaláveis, resilientes a cargas elevadas e mais acessíveis para os usuários. https://serverspace.com.br/support/glossary/partitioning.md Saiba como o particionamento de tabelas ajuda a acelerar as consultas, simplificar o gerenciamento de dados e aumentar a escalabilidade. Saiba mais sobre os tipos de particionamento (Range, List, Hash), sua aplicação e exemplos de código para DBMSs populares. ### **Partitioning – Dividindo Grandes Tabelas em Seções Lógicas** **Partitioning** é uma técnica para dividir grandes tabelas em seções lógicas menores (partições), o que ajuda a acelerar a execução de consultas, simplificar a administração de dados e melhorar a escalabilidade do sistema. ## **Principais Tipos de Partitioning** ### Partitioning por Faixa de Valores (Range Partitioning) A tabela é segmentada em múltiplas partições conforme um determinado intervalo de valores definido em uma ou mais colunas. - **Exemplo:** Divisão de dados por anos. - **Exemplo SQL (PostgreSQL):** [/code]CREATE TABLE transactions ( transaction_id SERIAL PRIMARY KEY, transaction_date DATE NOT NULL, total DECIMAL NOT NULL ) PARTITION BY RANGE (transaction_date);CREATE TABLE transactions_2022 PARTITION OF transactions FOR VALUES FROM ('2022-01-01') TO ('2022-12-31');CREATE TABLE transactions_2023 PARTITION OF transactions FOR VALUES FROM ('2023-01-01') TO ('2023-12-31'); ### **List Partitioning (Particionamento por Lista)** Os dados são distribuídos em partições com base em uma lista de valores predefinida. - Útil para categorias fixas, como regiões ou tipos de clientes. - **Exemplo:** Particionamento por país. ```sql CREATE TABLE customers ( id SERIAL PRIMARY KEY, country TEXT NOT NULL ) PARTITION BY LIST (country);CREATE TABLE customers_usa PARTITION OF customers FOR VALUES IN ('USA');CREATE TABLE customers_europe PARTITION OF customers FOR VALUES IN ('Germany', 'France', 'UK'); ``` ### **Hash Partitioning (Particionamento por Hash)** Os dados são distribuídos de forma uniforme entre várias partições usando uma função hash. - Ideal para balanceamento de carga. - **Exemplo:** Dividindo dados de usuários em quatro partições. ```sql CREATE TABLE users ( id SERIAL PRIMARY KEY, username TEXT NOT NULL ) PARTITION BY HASH (id);CREATE TABLE users_p0 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 0); CREATE TABLE users_p1 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 1); CREATE TABLE users_p2 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 2); CREATE TABLE users_p3 PARTITION OF users FOR VALUES WITH (MODULUS 4, REMAINDER 3); ``` ### **Composite Partitioning (Particionamento Composto)** Combinação de diferentes tipos de partitioning, como **Range + Hash**. - **Exemplo:** Particionar os dados por ano (Range) e depois dividir por hash do **user_id** (Hash). ## **Vantagens do Partitioning** - **Consultas mais rápidas** – Índices são aplicados apenas às partições relevantes, reduzindo a quantidade de dados analisados. **** - **Gerenciamento simplificado** – Dados antigos podem ser excluídos ou arquivados sem bloquear a tabela principal. **** - **Balanceamento de carga** – Distribui a carga de trabalho entre as partições usando hash. **** - **Backups eficientes** – Permite criar backups de seções específicas. ## **Desvantagens e Limitações** - Lógica de consulta mais complexa. - Nem todos os sistemas de banco de dados suportam a criação dinâmica de partições. - Em alguns casos, a indexação em tabelas particionadas pode ser menos eficiente. ## **Suporte a Partitioning em Diferentes SGBDs** - **PostgreSQL** – Suporte completo desde a versão 10. - **MySQL** – Suporta Range, List e Hash, mas com algumas limitações. - **Oracle** – Sistema avançado de partitioning, incluindo subpartições. - **SQL Server** – Suporta Range e List por meio de Partitioned Tables. ## **FAQ sobre Partitioning** **Quando o partitioning deve ser usado?** Se você tem tabelas grandes (milhões ou bilhões de linhas) frequentemente utilizadas em consultas analíticas ou que exigem exclusão/arquivamento regular de dados antigos, o partitioning pode melhorar o desempenho e simplificar a administração. **O partitioning melhora a velocidade de todas as consultas?** Não necessariamente. Ele é mais eficiente quando as consultas filtram os dados usando a chave da partição (por exemplo, data ou categoria). Se uma consulta acessar várias partições, o ganho de desempenho pode ser mínimo. **É possível adicionar novas partições dinamicamente?** Na maioria dos SGBDs (como PostgreSQL e Oracle), é possível configurar a criação automática de partições. No MySQL, porém, as partições devem ser adicionadas manualmente. **Como funciona a indexação em tabelas particionadas?** Cada partição pode ter seu próprio índice, mas isso pode gerar sobrecarga adicional ao pesquisar em toda a tabela. A estratégia de indexação depende do tipo de dados e das consultas utilizadas. **É possível modificar a estrutura de uma partição sem afetar as outras?** Não. Alterar a estrutura de uma única partição (por exemplo, adicionando uma coluna) afeta toda a tabela, pois o esquema deve permanecer consistente em todas as partições. O partitioning é uma técnica de otimização valiosa para bancos de dados de grande escala, especialmente quando os dados se agrupam naturalmente por datas, categorias ou distribuição por hash. https://serverspace.com.br/support/glossary/pgadmin.md Aprenda a usar o pgAdmin, uma ferramenta poderosa para gerenciar bancos de dados PostgreSQL. Conecte-se a servidores, trabalhe com consultas SQL, monitore, importe e exporte dados, gerencie o acesso e as extensões. pgAdmin é uma ferramenta avançada e intuitiva com interface gráfica para gerenciamento de bancos de dados PostgreSQL. Ele permite administrar servidores, executar consultas SQL, visualizar estruturas de dados e monitorar o desempenho do banco. ### Principais recursos do pgAdmin - **Conexão com servidores remotos e locais** – suporte a múltiplos servidores e trabalho simultâneo com diferentes bancos de dados. - **Interface gráfica para gerenciamento de objetos do banco** – criação, edição e exclusão facilitadas de tabelas, esquemas, índices, gatilhos e outros objetos. - **Editor de consultas SQL** – realce de sintaxe, autocompletar código e opção de salvar consultas. - **Monitoramento e diagnóstico** – visualização de processos ativos, estatísticas de execução de consultas e análise de desempenho. - **Importação e exportação de dados** – suporte a vários formatos (CSV, JSON, XML etc.), facilitando a manipulação de dados. - **Segurança e controle de acesso** – configuração de funções de usuários, permissões de acesso e criptografia de conexões. ### Vantagens do pgAdmin - **Multiplataforma** – compatível com Windows, Linux e macOS. - **Interface intuitiva e acessível** – ideal tanto para iniciantes quanto para administradores experientes. - **Integração total com PostgreSQL** – compatível com todas as versões do PostgreSQL e suas extensões. - **Gratuito e de código aberto** – sem custos de uso. ### FAQ (Perguntas Frequentes) **Posso usar o pgAdmin para gerenciar um servidor PostgreSQL remotamente?** Sim, o pgAdmin permite conexão com servidores PostgreSQL remotos via tunelamento SSH ou conexão direta. **Quais sistemas operacionais são compatíveis com o pgAdmin?** O pgAdmin é multiplataforma e está disponível para Windows, Linux e macOS. **O pgAdmin é gratuito?** Sim, é um software de código aberto e pode ser usado sem custos. **Quais são as alternativas ao pgAdmin?** Outras opções populares incluem DBeaver, HeidiSQL, DataGrip e Navicat. **O pgAdmin suporta extensões do PostgreSQL?** Sim, é possível gerenciar e configurar extensões como PostGIS, pg_stat_statements e Citus. ### Conclusão O pgAdmin é uma das ferramentas mais populares para administração do PostgreSQL, combinando recursos avançados com uma interface amigável. Ele possibilita gerenciar bancos de dados, monitorar seu desempenho e otimizar consultas SQL, tornando-se essencial para desenvolvedores e administradores de banco de dados (DBA). https://serverspace.com.br/support/glossary/chave-privada-private-key.md Saiba o que é chave privada, como ela é usada em criptografia, blockchain e assinaturas digitais, e quais medidas de segurança ajudarão a proteger seus dados e ativos. **Chave Privada (Private Key) – O que é e para que serve?** A **Chave Privada** é um elemento essencial na criptografia moderna, utilizada para criptografar, descriptografar e autenticar dados. Ela desempenha um papel crucial na criptografia assimétrica, aplicada em blockchains, assinaturas digitais e na comunicação segura de informações. ## Como funciona a Chave Privada? A criptografia assimétrica opera com um par de chaves: - **Chave Privada (Private Key)** – Mantida em segredo pelo proprietário, é usada para assinar ou descriptografar dados. - **Chave Pública (Public Key)** – Disponível publicamente, permite que terceiros verifiquem assinaturas ou criptografem mensagens destinadas ao dono da Chave Privada. Quando os dados são criptografados com uma Chave Pública, apenas a Chave Privada correspondente pode descriptografá-los. Da mesma forma, se uma mensagem for assinada digitalmente com a Chave Privada, sua autenticidade pode ser verificada por qualquer pessoa com a Chave Pública correspondente. ## Onde a Chave Privada é utilizada? ### **Blockchain e Criptomoedas** Em redes como Bitcoin e Ethereum, a Chave Privada garante o controle sobre os ativos digitais. Quem detém a chave possui total domínio sobre a carteira e os fundos associados. ### Assinaturas Criptográficas Digitais A Chave Privada é usada para gerar assinaturas digitais, garantindo a autenticidade de documentos e transações, como nos certificados SSL/TLS que protegem conexões na internet. ### **Criptografia de Dados** Protocolos como o PGP utilizam Chaves Privadas para descriptografar informações previamente criptografadas com a Chave Pública correspondente. ### **Autenticação e Segurança** Em sistemas como SSH, a Chave Privada permite conexões seguras a servidores remotos sem a necessidade de senhas. ## Como manter sua Chave Privada segura? Para evitar riscos, é essencial seguir boas práticas de segurança: - **Nunca armazene sua Chave Privada em locais públicos ou desprotegidos.** - **Use carteiras físicas (hardware wallets), cofres criptografados e gerenciadores de senhas confiáveis.** - **Ative a autenticação multifator (MFA)** para reforçar a segurança do acesso. - **Faça backups seguros** para evitar a perda irreversível de acesso a seus dados criptografados ou carteiras de criptomoedas. ## Conclusão A **Chave Privada** é a base da segurança digital, garantindo privacidade, autenticação e controle de ativos. Sua proteção deve ser uma prioridade para qualquer usuário que lide com criptografia, blockchain ou troca segura de informações. https://serverspace.com.br/support/glossary/chave-publica-public-key.md Saiba como a chave pública é usada na criptografia para criptografar dados, verificar assinaturas digitais e trocar informações com segurança. A Chave Pública (Public Key) é um componente essencial da criptografia assimétrica, desempenhando um papel crucial na proteção de dados. Ela é utilizada para codificação de informações, autenticação de identidades e validação de assinaturas digitais. Ao contrário da Chave Privada (Private Key), que deve ser mantida em sigilo, a Chave Pública pode ser compartilhada livremente, permitindo a comunicação segura entre as partes envolvidas. ### Como a Chave Pública opera? A criptografia assimétrica se baseia em um par de chaves interdependentes: uma privada e uma pública. A Chave Pública é utilizada para cifrar informações ou verificar assinaturas digitais, enquanto a Chave Privada, mantida sob proteção, é necessária para descriptografar os dados ou assinar documentos digitais. Esse mecanismo garante que apenas o destinatário autorizado possa acessar o conteúdo original, reforçando a integridade e a confidencialidade das informações. A criptografia assimétrica baseia-se em um par de chaves: - **Chave Privada (Private Key)** — mantida em segredo e utilizada para descriptografar dados ou assinar mensagens. - **Chave Pública (Public Key)** — disponibilizada publicamente e usada para criptografar mensagens e verificar assinaturas. Quando os dados são criptografados com a Public Key, somente o detentor da Private Key correspondente pode descriptografá-los. Da mesma forma, se uma mensagem for assinada com a Chave Privada, sua autenticidade pode ser verificada usando a Chave Pública correspondente. ## Onde a Chave Pública é utilizada? ### 1. Criptografia de dados A Chave Pública é usada em protocolos de criptografia como PGP e TLS. Por exemplo, quando um site utiliza HTTPS, o navegador recebe a Public Key do servidor para estabelecer uma comunicação segura. ### 2. Assinaturas digitais A Public Key é empregada para verificar a autenticidade de documentos, transações e mensagens. As assinaturas digitais garantem que os dados não foram alterados após serem assinados. ### 3. Blockchain e criptomoedas No blockchain, a Chave Pública é usada para gerar endereços de carteiras e validar transações. No Bitcoin, por exemplo, um endereço de carteira é derivado de uma Public Key e pode ser usado para verificar o recebimento de fundos. ### 4. Autenticação e segurança Em sistemas SSH, a Public Key permite conexões seguras sem a necessidade de senhas. Na autenticação de dois fatores, ela pode ser usada para confirmar a identidade do usuário. ## Segurança da Chave Pública Embora a Public Key possa ser amplamente distribuída, sua segurança ainda é essencial: - **Autenticidade**: É fundamental garantir que a Public Key realmente pertence ao proprietário pretendido. Para isso, utilizam-se certificados digitais. - **Relação com a Chave Privada**: Se a Private Key for comprometida, um invasor pode descriptografar dados e falsificar assinaturas digitais. ## Conclusão A Chave Pública desempenha um papel essencial na segurança digital, garantindo a confidencialidade e autenticidade das informações. Seu uso se estende por diversas tecnologias, desde criptomoedas até a segurança da web e assinaturas digitais. Para utilizá-la corretamente, é importante compreender os princípios da criptografia assimétrica e proteger as chaves de forma adequada. ## FAQ **É possível descriptografar uma mensagem apenas com a Public Key?** Não, a descriptografia requer a Private Key correspondente. **Como verificar a autenticidade de uma Public Key?** A autenticidade pode ser confirmada por meio de certificados digitais emitidos por autoridades certificadoras (CA). **O que fazer se uma Public Key for comprometida?** Embora a Public Key, por si só, não permita o acesso à Private Key, sua substituição pode levar a ataques do tipo "man-in-the-middle". Nesse caso, é essencial atualizar as chaves e notificar os usuários afetados. https://serverspace.com.br/about/news/novos-modelos-de-sistemas-operacionais-na-serverspace.md Implante máquinas virtuais e outros serviços em nuvem com as versões mais recentes dos principais sistemas operacionais. Expandimos a variedade de modelos de sistemas operacionais disponíveis para implantação na nuvem da Serverspace! Agora, você pode implantar máquinas virtuais e outros serviços em nuvem com as versões mais recentes dos principais sistemas operacionais. As novas opções incluem: - AlmaLinux 9.5; - FreeBSD 14.2; - Kali Linux 2024.4; - Oracle Enterprise Linux (OEL) 9.5; - Rocky Linux 9.5; - Ubuntu 24.04.2. ## O que há de novo nessas versões? AlmaLinux 9.5 O fork gratuito e estável do CentOS continua evoluindo. Nesta versão: - Melhor desempenho do kernel Linux 5.14; - Atualizações de segurança aprimoradas; - Suporte otimizado para contêineres e virtualização. FreeBSD 14.2 Um sistema operacional altamente confiável e de alto desempenho, ideal para servidores. Novidades: - Suporte aprimorado para os processadores mais recentes da AMD e Intel; - Melhorias no sistema de arquivos ZFS; - Drivers e pilhas de rede atualizados para melhor desempenho em nuvem. Kali Linux 2024.4 A distribuição preferida dos especialistas em segurança cibernética recebeu atualizações importantes: - Novas ferramentas para testes de penetração; - Maior compatibilidade com ambientes virtuais; - Suporte para as versões mais recentes do Metasploit, Nmap e outras ferramentas essenciais. OEL 9.5 (Oracle Enterprise Linux) Uma distribuição corporativa de suporte prolongado, ideal para aplicações empresariais. Destaques da nova versão: - Melhor desempenho do Btrfs; - Expansão dos recursos de conteinerização (Podman, CRI-O); - Otimizações para integração com Oracle Cloud e outras plataformas de nuvem. Rocky Linux 9.5 Sucessor do CentOS, garantindo total compatibilidade com o RHEL. Novidades: - Suporte ampliado para novas arquiteturas; - Melhorias na segurança e gerenciamento de atualizações; - Novas ferramentas para DevOps e contêineres. Ubuntu 24.04.2 Uma das distribuições mais populares para servidores em nuvem agora está ainda melhor: - Suporte aprimorado para os processadores mais recentes da AMD e Intel; - Melhor desempenho para contêineres (Docker, LXC); - Recursos expandidos para projetos de IA/ML. ## Pronto para implantar seu servidor? Crie um VPS, infraestrutura em nuvem ou servidor especializado com um desses sistemas operacionais em apenas alguns minutos pelo [painel de controle](https://my.serverspace.com.br/) intuitivo da Serverspace. _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que permite implantar infraestrutura virtual em plataformas Linux e Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas como API, CLI e Terraform estão disponíveis para integração perfeita com os serviços dos clientes._ https://serverspace.com.br/support/glossary/nas.md Saiba o que é um armazenamento conectado à rede ou NAS, como ele funciona e seus principais recursos e benefícios. O **NAS (Network-Attached Storage / Armazenamento Conectado à Rede)** é um dispositivo de armazenamento que se conecta a uma rede local (LAN) e oferece acesso centralizado aos dados para vários usuários e dispositivos clientes. A ideia principal do NAS é facilitar o compartilhamento de dados e centralizar o armazenamento de informações em um único ponto da rede. ## Principais características e benefícios do NAS - **Gerenciamento centralizado:** Todos os dados são armazenados em um único local, facilitando a administração, o backup e a recuperação. - **Compartilhamento:** Vários usuários e dispositivos podem acessar os dados simultaneamente, tornando o NAS ideal para escritórios e redes domésticas. - **Fácil implantação e gerenciamento:** Normalmente, o NAS pode ser configurado e gerenciado facilmente por meio de uma interface web, permitindo que administradores e usuários adicionem e configurem o espaço de armazenamento de forma rápida e intuitiva. - **Escalabilidade:** É possível adicionar novos discos rígidos a um sistema existente ou instalar dispositivos de maior capacidade para expandir o armazenamento. - **Suporte a múltiplos protocolos:** O NAS é compatível com diversos protocolos de rede, como NFS (Network File System), SMB/CIFS (Server Message Block/Common Internet File System) e FTP (File Transfer Protocol), garantindo compatibilidade com diferentes sistemas operacionais (Windows, macOS, Linux, etc.). - **Recursos de segurança:** Pode incluir funcionalidades como controle de acesso baseado em funções, criptografia de dados e proteção contra adulteração. ## Exemplos de uso do NAS - **Servidores de mídia domésticos:** O NAS é amplamente utilizado em redes domésticas para armazenar e transmitir arquivos de mídia (filmes, músicas, fotos) para diversos dispositivos (smart TVs, computadores, dispositivos móveis). - **Backup:** Empresas e usuários domésticos podem utilizar o NAS para criar backups centralizados de dados de vários dispositivos. - **Armazenamento compartilhado de arquivos:** Em ambientes corporativos, o NAS permite que funcionários compartilhem arquivos e documentos de maneira prática. - **Arquivamento de dados:** Dispositivos NAS podem ser usados para armazenar dados a longo prazo e arquivar informações importantes. ## Como o NAS funciona? - **Dispositivo:** O NAS é um computador ou servidor dedicado equipado com múltiplos discos rígidos (HDDs) ou unidades de estado sólido (SSDs) conectados a uma rede local. - **Sistema operacional e software:** Os dispositivos NAS utilizam um sistema operacional e software especializados para gerenciamento de arquivos e recursos de rede. - **Conexão de rede:** O NAS é conectado à rede local por meio de Ethernet ou Wi-Fi, permitindo que todos os dispositivos da rede (computadores, dispositivos móveis, etc.) acessem os arquivos armazenados. - **Acesso aos dados:** Os usuários podem acessar os arquivos armazenados no NAS utilizando protocolos de rede (NFS, SMB/CIFS, FTP) ou por meio de uma interface web. https://serverspace.com.br/support/glossary/virtualizacao.md A virtualização é a alocação de recursos em um ambiente isolado (pode ser o isolamento de alguns recursos de CPU, memória RAM e disco rígido). A virtualização é uma tecnologia que permite executar vários sistemas operacionais em um único servidor físico. Ao alocar recursos de um servidor ou computador pessoal para um ambiente isolado, a virtualização funciona da mesma forma que um computador convencional, ou seja, para rodar uma máquina virtual, é necessário isolar parte dos recursos do dispositivo físico principal. O isolamento pode ocorrer em nível de hardware (virtualização de CPU, RAM, HDD) ou em nível de software. A virtualização surgiu entre as décadas de 1960 e 1970 e continua evoluindo até hoje, possibilitando a criação de máquinas virtuais, ambientes em nuvem e data centers. ## Tipos de Virtualização de Hardware Operação normal de um servidor ou PC: - Hardware físico (Placa-mãe, Processador, RAM, Armazenamento); - Sistema operacional (O sistema instalado no seu disco, como Linux, Windows etc.); - Aplicações em execução no sistema operacional. ## Virtualização de primeiro tipo Na virtualização de primeiro tipo, não há necessidade de um sistema operacional intermediário. - Hardware físico (Placa-mãe, Processador, RAM, Armazenamento); - Hypervisor. Nesse modelo, o servidor contém todos os componentes necessários, assim como um PC comum. O hypervisor, que é o sistema operacional para virtualização, é instalado diretamente no hardware. Ele gerencia a virtualização de hardware e cria múltiplos ambientes isolados, ou seja, máquinas virtuais. ## Virtualização de segundo tipo Uma máquina virtual requer os mesmos recursos que um computador tradicional: - Hardware físico (Placa-mãe, Processador, RAM, Armazenamento); - Sistema operacional (O sistema instalado no seu disco, como Linux, Windows etc.); - Software de virtualização (Hypervisor); - Qualquer sistema operacional (para a máquina virtual). Nesse caso, a máquina virtual é executada por meio de aplicativos de virtualização como VMware, VirtualBox ou Hyper-V. Esses programas isolam parte dos recursos do computador hospedeiro para permitir a execução de outro sistema operacional. A virtualização não é útil apenas para administradores de sistemas, mas também pode ser benéfica para usuários comuns que desejam proteger seus computadores. ## Exemplo prático Imagine que você baixou um arquivo de um site suspeito e suspeita que ele possa conter um vírus. Para evitar infectar seu computador de trabalho, você pode criar uma máquina virtual com um sistema operacional isolado e executar o arquivo dentro dela. Se o arquivo estiver realmente infectado, apenas a máquina virtual será comprometida, mantendo o computador principal seguro. Após a infecção da máquina virtual, você pode simplesmente excluí-la ou reverter para um ponto de restauração (também conhecido como Snapshot), eliminando qualquer risco para o seu sistema principal. https://serverspace.com.br/support/glossary/tpc.md TCP - Transmission Control Protocol (Protocolo de Controle de Transmissão) - é um protocolo de transmissão de dados especializado no controle de transmissão de dados. O **TCP (Transmission Control Protocol)** é um protocolo de transmissão na Internet que opera na camada de transporte, junto com UDP e RTP. A principal diferença entre UDP e TCP é que o TCP é mais confiável. ## O TCP garante - Entrega dos dados; - Preservação da ordem das mensagens. A entrega dos dados e a preservação da ordem das mensagens são garantidas por meio de uma mensagem de confirmação (ACK – Acknowledgment). ## Exemplo de funcionamento do protocolo O remetente envia uma mensagem pela rede, o destinatário a recebe e envia um ACK de volta (confirmação de recebimento). O próximo segmento de dados é enviado e, se recebido corretamente, outro ACK é enviado. Esse processo se repete até que o arquivo completo seja recebido pelo destinatário. ## Funcionamento do protocolo em caso de erro Se ocorrer um erro na transmissão e o destinatário não receber o segmento de dados, ele não enviará um ACK. O remetente define um tempo limite e, se não receber um ACK, o segmento será retransmitido. O protocolo continua esse processo até que todos os segmentos sejam recebidos corretamente. O TCP confirma múltiplos segmentos enviados em sequência, não apenas um único segmento. Os arquivos chegam ao TCP como um grande fluxo de bytes, que é dividido em segmentos. Esses segmentos são enviados ao destinatário, que os recebe, os reorganiza em um único fluxo e os entrega ao aplicativo correspondente. O TCP protege apenas contra a perda de segmentos, mas: - Os segmentos podem chegar fora da ordem original; - Podem ser duplicados. https://serverspace.com.br/support/glossary/escalabilidade.md Saiba o que é escalabilidade, aspectos básicos da escalabilidade, por que ela é necessária, exemplos de escalabilidade e seus desafios ## O que é escalabilidade? **Escalabilidade** é a capacidade de um sistema, rede ou aplicação de se adaptar a mudanças na carga de trabalho (aumento ou diminuição) sem perder desempenho ou funcionalidade. Essa é uma característica essencial em TI, determinando o quão bem a infraestrutura ou o software pode lidar com demandas crescentes, como aumento no número de usuários, volume de dados ou quantidade de requisições. ## Tipos de escalabilidade - **Escalabilidade horizontal:** Consiste em adicionar novos nós ao sistema, como servidores ou máquinas virtuais adicionais. Essa abordagem é amplamente utilizada na computação em nuvem e em sistemas distribuídos modernos. Exemplo: aumentar a quantidade de servidores em um cluster web. - **Escalabilidade vertical:** Envolve melhorar o desempenho do hardware existente, como adicionar mais memória, poder de processamento (CPU) ou armazenamento a um servidor. Exemplo: atualizar um processador de 8 núcleos para um de 16 núcleos. ## Principais aspectos da escalabilidade - **Taxa de transferência (Throughput):** O sistema deve manter ou aumentar a velocidade de processamento das requisições à medida que a carga cresce. - **Gerenciamento de recursos:** O uso eficiente dos novos recursos adicionados é um fator chave para uma escalabilidade bem-sucedida. - **Custo-benefício:** Os custos de escalabilidade devem ser justificados pelos resultados do negócio, garantindo que a adição de recursos seja eficiente. - **Tolerância a falhas:** O sistema deve permanecer estável durante aumentos ou reduções súbitas na carga de trabalho. ## Por que a escalabilidade é importante? - **Crescimento do negócio:** Com o aumento do número de usuários ou requisições, o sistema deve estar pronto para lidar com a demanda sem falhas. - **Resistência a picos de carga:** Permite lidar com aumentos temporários no tráfego, como vendas sazonais ou eventos de alta atividade. - **Redução de custos:** Recursos podem ser adicionados conforme a necessidade, evitando gastos excessivos. - **Competitividade:** Sistemas escaláveis oferecem flexibilidade para implementar novas funcionalidades rapidamente e se adaptar a mudanças de mercado. ## Exemplos de sistemas escaláveis - **Arquitetura de microserviços:** Aplicações divididas em pequenos módulos independentes, que podem ser escalados separadamente. - **Bancos de dados escaláveis:** Bancos de dados modernos, como MongoDB e Cassandra, permitem escalabilidade horizontal, adicionando nós para gerenciar grandes volumes de dados. - **Containerização:** Ferramentas como Docker e Kubernetes possibilitam a rápida escalabilidade de aplicações, implantando novos contêineres conforme necessário. ## Desafios da escalabilidade - **Complexidade de gerenciamento:** O aumento no número de nós e recursos pode exigir sistemas de orquestração avançados. - **Latência:** A escalabilidade de sistemas distribuídos pode aumentar a latência entre os nós. - **Custos:** Uma estratégia de escalabilidade mal planejada pode resultar em gastos excessivos com infraestrutura. - **Compatibilidade:** O sistema deve ser projetado com escalabilidade desde o início, pois nem todos os sistemas legados suportam expansão eficiente. ## Conclusão A escalabilidade é uma característica fundamental dos sistemas modernos de TI, garantindo eficiência a longo prazo e adaptabilidade a condições em constante mudança. O sucesso de um negócio na era digital depende de uma arquitetura escalável bem planejada, uma vez que o crescimento das cargas de trabalho e dos volumes de dados se tornou uma realidade inevitável. https://serverspace.com.br/about/blog/serverspace-confiabilidade-e-seguranca-na-era-das-ameacas-ciberneticas.md Descubra como a Serverspace oferece soluções confiáveis e seguras para proteger dados e infraestrutura contra ameaças cibernéticas, garantindo alta performance e conformidade. Com o aumento do número de ataques cibernéticos, as empresas estão cada vez mais preocupadas com a segurança na nuvem e a confiabilidade de suas infraestruturas. A infraestrutura segura tornou-se uma prioridade essencial para proteger dados e garantir a estabilidade operacional. O nível de confiança nas soluções em nuvem agora é determinado pela capacidade dos provedores de prevenir ataques cibernéticos e pela garantia de resiliência de suas infraestruturas. ## Tipos de ameaças No ambiente de nuvem, existem várias ameaças que podem comprometer a proteção de dados e a estabilidade dos serviços. Vamos analisar as principais: - **Acesso não autorizado:** Tentativas de invasores de acessar dados ou sistemas por meio de phishing, quebra de senhas ou exploits. A autenticação multifator e o controle rigoroso de acesso são essenciais para prevenir esse tipo de ameaça. - **Vazamento de dados:** Perda de dados devido a erros de configuração ou ataques. Por exemplo, armazenamento público sem proteção. Criptografia e verificações regulares reduzem os riscos. - **Ataques DDoS:** Sobrecarga de infraestrutura por meio de requisições massivas, tornando os serviços indisponíveis. O uso de filtros de tráfego e balanceamento de carga protege contra esses ataques. - **Malware:** Infecções por vírus ou trojans que podem criptografar dados. Soluções antivírus, atualizações regulares e treinamento de funcionários são indispensáveis. ## Medidas de segurança na nuvem Serverspace Arquitetura moderna e proteção da infraestrutura A infraestrutura em nuvem da Serverspace é construída com base em tecnologias avançadas e alta resiliência. Os data centers da empresa são certificados por padrões internacionais de segurança, como Tier III e ISO 27001, garantindo infraestrutura segura, proteção física dos servidores, fornecimento confiável de energia e sistemas redundantes de refrigeração. Soluções de virtualização de alto nível são implementadas para isolar os dados dos clientes, minimizando riscos de vazamento ou acessos indevidos. A parceria com provedores de data center líderes, como a Equinix, assegura a conformidade com protocolos rigorosos de segurança. Além disso, tecnologias de segmentação de rede são aplicadas para limitar os impactos de ameaças potenciais. Criptografia de dados A criptografia de dados é um componente obrigatório da segurança. As conexões entre usuários e servidores são protegidas por protocolos SSL/TLS, evitando a interceptação de informações por invasores. O armazenamento de dados é criptografado em nível de disco com algoritmos AES-256, em conformidade com os padrões globais. Essas medidas garantem a integridade das informações mesmo em caso de acesso físico aos equipamentos. A atualização regular dos protocolos criptográficos mantém o nível de proteção sempre atualizado. Autenticação multinível A implementação da autenticação de dois fatores (2FA) reduz significativamente o risco de comprometimento de contas. Mesmo em caso de vazamento de senhas, o acesso continua impossível sem um segundo fator, como um código temporário ou confirmação via aplicativo. Os usuários do Serverspace podem integrar sistemas de gerenciamento de identidade (IAM), como Authy e Google Authenticator. Atualizações e correções regulares Manter o software atualizado é um elemento chave para a segurança. Versões desatualizadas frequentemente contêm vulnerabilidades exploradas por invasores. Por exemplo, a ausência de atualizações em sistemas de gerenciamento pode permitir que hackers usem exploits para acessar dados. A automatização das atualizações e auditorias regulares minimizem esses riscos. Monitoramento e auditoria O monitoramento contínuo da atividade na nuvem permite identificar ações suspeitas, como tentativas de invasão ou atividade anormal de usuários. No Serverspace, ferramentas de análise de logs e alertas em tempo real notificam administradores sobre possíveis ameaças. Auditorias regulares ajudam a identificar e corrigir vulnerabilidades antes que causem problemas. Segmentação de rede Dividir a infraestrutura em nuvem em segmentos isolados reduz os riscos de propagação de ameaças. Por exemplo, caso um segmento seja infectado por malware, os demais permanecem protegidos. No Serverspace, a virtualização é utilizada para isolar recursos dos clientes, prevenindo ataques entre redes e limitando os impactos de incidentes. Monitoramento e proteção contra ataques DDoS Os ataques DDoS representam uma ameaça significativa para a infraestrutura em nuvem, pois têm como objetivo sobrecarregar os recursos e interromper os serviços. A proteção eficaz contra esses ataques inclui o uso de tecnologias avançadas de monitoramento e filtragem de tráfego. O Serverspace utiliza um sistema de detecção de ataques DDoS que analisa o tráfego de entrada em tempo real. Atividades anômalas, como um fluxo massivo de requisições de IPs suspeitos, são bloqueadas antes de atingirem os servidores. Isso garante o funcionamento estável dos serviços mesmo durante ataques intensos. Além disso, o balanceamento de carga é aplicado para distribuir o tráfego de forma uniforme entre diferentes nós da rede, reduzindo a pressão sobre componentes específicos. Essa abordagem proporciona não apenas proteção, mas também alta disponibilidade dos serviços para os usuários. Resposta rápida a incidentes Em situações críticas, cada minuto é essencial, e o Serverspace garante uma resposta rápida a qualquer incidente. O tempo médio de resposta aos chamados é de apenas 15 minutos, posicionando a empresa como uma das mais ágeis no mercado. O suporte técnico funciona 24/7, assegurando a continuidade e a estabilidade dos serviços. Conformidade com a LGPD O Serverspace opera em conformidade com a Lei Geral de Proteção de Dados (LGPD), garantindo a privacidade e a segurança das informações pessoais de seus clientes. A empresa implementa políticas rigorosas de proteção de dados, como consentimento explícito para o uso de informações, controle de acesso baseado em função e auditorias regulares de conformidade. Além disso, as soluções de monitoramento identificam atividades não autorizadas relacionadas a dados pessoais, enquanto a criptografia protege informações sensíveis tanto em trânsito quanto em repouso. Essa abordagem assegura que os clientes do Serverspace podem confiar no gerenciamento responsável e ético de seus dados. ## Conclusão O Serverspace se destaca como um exemplo de excelência em segurança em nuvem, combinando inovação, alta performance e conformidade com padrões internacionais. Com medidas robustas como autenticação multifator, segmentação de rede, proteção contra DDoS e conformidade com a LGPD, a infraestrutura permanece confiável e resiliente. A combinação de suporte ágil, tecnologias avançadas e uma abordagem proativa em relação à segurança torna o Serverspace o parceiro ideal para negócios que buscam proteção e estabilidade na era digital. https://serverspace.com.br/support/glossary/rdp.md RDP (Remote Desktop Protocol) é um protocolo desenvolvido pela Microsoft para conexão remota a computadores pessoais baseados em Windows. RDP (Remote Desktop Protocol) é um protocolo desenvolvido pela Microsoft para conexão remota a computadores pessoais baseados em Windows. O protocolo utiliza a porta 3389 por padrão, mas pode ser alterado nas configurações do sistema. ## Como é utilizado O RDP é geralmente usado em ambientes corporativos para permitir o acesso remoto a computadores pessoais, possibilitando que funcionários trabalhem de qualquer lugar. Além disso, o RDP é amplamente utilizado por empresas de VDS (Servidores Virtuais Dedicados), pois servidores Windows suportam uma interface gráfica e exigem uma conexão remota desde o início para facilitar a configuração do servidor. ## Requisitos mínimos para o RDP funcionar corretamente - Sistema operacional Windows 7 ou superior. - Para servidores, utilizar Windows Server 2008 ou superior. - Em algumas versões do Windows, o RDP deve ser configurado manualmente antes do primeiro uso. - Boa velocidade de internet. Entre os benefícios do RDP, destaca-se a possibilidade de interagir completamente com a área de trabalho remota, como se estivesse utilizando o computador localmente. ## Exemplo de uso do protocolo RDP Imagine que um colega de trabalho precise enviar um arquivo importante que está salvo em um computador do escritório, mas ele não tem acesso físico à máquina. Existem duas soluções para esse problema: - Ir até o escritório pessoalmente para enviar o arquivo. - Conectar-se remotamente ao computador usando o protocolo RDP e enviar o arquivo sem sair de casa. https://serverspace.com.br/support/glossary/nat.md Descubra o que é NAT, seus benefícios, principais funções e características. ## O que é NAT NAT (Network Address Translation) é uma tecnologia utilizada em dispositivos de rede para traduzir endereços IP privados (locais) para endereços IP públicos (globais) e vice-versa. Essa tecnologia permite que vários dispositivos em uma rede local utilizem o mesmo endereço IP público para acessar a Internet, sendo especialmente útil quando há um número limitado de endereços IP públicos disponíveis. ## Funções e características básicas do NAT - **Tradução de endereços:** O NAT converte os endereços IP privados dos dispositivos na LAN em um ou mais endereços IP públicos ao serem enviados para a Internet, e faz o processo inverso para os pacotes recebidos da Internet. - **Economia de endereços IP:** Reduz a necessidade de endereços IP públicos, pois vários dispositivos em uma rede local podem compartilhar o mesmo endereço IP público. - **Aumento da segurança:** Oculta a estrutura da rede interna de usuários externos, dificultando o acesso não autorizado. ## Variedades de NAT Existem vários tipos de NAT, incluindo NAT estático, dinâmico e NAT com sobrecarga (PAT - Port Address Translation). - **NAT estático:** Mapeia um endereço IP privado para um único endereço IP público. - **NAT dinâmico:** Utiliza um conjunto de endereços IP públicos para mapear endereços IP privados. - **PAT (NAT com sobrecarga):** Permite que vários dispositivos usem um único endereço IP público, diferenciando-os pelo número da porta. ## Benefícios do NAT - **Menor necessidade de endereços IP públicos:** Dispositivos na LAN podem acessar a Internet com um único endereço IP público. - **Melhoria na segurança:** O NAT oculta os endereços IP internos, aumentando a proteção contra acessos externos. - **Facilidade de implementação:** Simples de configurar e usar em dispositivos de rede como roteadores e firewalls. ## NAT e Serverspace Com a Serverspace e seus gateways, você pode proteger seus dados configurando elementos de segurança da rede local, como NAT e Firewall. Proteja servidores dentro da sua rede privada e obtenha acesso à Internet por meio de um único endereço IP externo. https://serverspace.com.br/support/glossary/cdn.md Descubra o que é um CDN, como ele funciona, veja exemplos de provedores populares e conheça o CDN da Serverspace. CDN (Content Delivery Network) é uma rede distribuída de servidores projetada para entregar conteúdo aos usuários de forma eficiente. O CDN melhora a experiência do usuário reduzindo o tempo de carregamento, equilibrando a carga nos servidores e aumentando a disponibilidade dos recursos. [https://serverspace.com.br/wp-content/uploads/2025/02/cdn-2.svg](https://serverspace.com.br/wp-content/uploads/2025/02/cdn-2.svg) ## Principais aspectos do funcionamento do CDN - **Distribuição geográfica de servidores:** os servidores CDN estão localizados em diferentes regiões do mundo, o que reduz a latência na entrega de conteúdo. O servidor mais próximo do usuário fornece os dados solicitados rapidamente, minimizando o tempo de transmissão. - **Cache de conteúdo:** o cache é um mecanismo essencial do CDN, onde recursos frequentemente solicitados, como imagens, vídeos, arquivos CSS e JavaScript, são armazenados temporariamente nos servidores CDN. Quando há requisições repetidas, o conteúdo é carregado diretamente do cache, acelerando o download. - **Balanceamento de carga:** o CDN distribui o tráfego entre vários servidores, evitando sobrecarga em um único servidor e aumentando a resiliência contra picos repentinos de acesso. - **Melhoria da disponibilidade e tolerância a falhas:** se um ou mais servidores CDN falharem, outros servidores assumem o processamento das requisições, garantindo a disponibilidade do conteúdo. - **Proteção contra ataques DDoS (Distributed Denial of Service):** muitos CDNs incluem mecanismos para mitigar ataques DDoS, distribuindo o tráfego e filtrando solicitações maliciosas para evitar sobrecarga e falha do servidor de origem. ## Como funciona o CDN O usuário faz uma solicitação: quando um usuário requisita um recurso, como uma página da web, vídeo ou imagem, a solicitação é encaminhada ao servidor mais próximo da sua localização (point of presence, PoP). O cache é verificado: o servidor CDN verifica se o recurso solicitado já está armazenado em cache. Se encontrado, o conteúdo é enviado imediatamente ao usuário. Solicitação ao servidor de origem: caso o recurso não esteja no cache, o servidor CDN solicita o conteúdo ao servidor de origem. Após o carregamento, o servidor CDN armazena uma cópia do conteúdo em cache e o entrega ao usuário. ## Exemplos de uso do CDN **Mídia:** plataformas de vídeo como YouTube e Netflix utilizam CDNs para fornecer conteúdo com baixa latência. **E-commerce:** varejistas online como a Amazon usam CDNs para carregar rapidamente páginas, imagens e outros recursos estáticos. **Sites de alto tráfego:** portais de notícias, blogs e redes sociais utilizam CDNs para agilizar o carregamento de páginas e garantir estabilidade em períodos de tráfego intenso. Exemplos de provedores de CDN - Akamai - Cloudflare - Amazon CloudFront - Fastly - Google Cloud CDN ## CDN Serverspace O provedor de nuvem Serverspace adicionou à sua lista de serviços a integração com [CDN (Content Delivery Network)](https://serverspace.com.br/services/cdn.md), um sistema de entrega de conteúdo. O serviço permite que os usuários conectem seus domínios à CDN de duas formas: por delegação de zona ou configurando registros A e CNAME. Isso oferece flexibilidade para integrar a CDN conforme a necessidade da estrutura atual. ## Como conectar um domínio ao CDN da Serverspace? - Criar uma conta na [Serverspace](https://serverspace.com.br/index.md) ou fazer login no painel de controle; - Acessar a aba CDN e escolher o método de conexão: delegação de zona ou registro CNAME; - Seguir as instruções no painel; - Clicar no botão "Conectar". *As instruções estão disponíveis na seção de Configurações de CDN no Painel de Controle. https://serverspace.com.br/support/glossary/vpn.md VPN (Virtual Private Network) ou Rede Privada Virtual é um protocolo que cria uma conexão segura entre o usuário e uma rede virtual, facilitando o acesso a recursos restritos da Internet no futuro e protegendo o usuário contra a transmissão… VPN (Virtual Private Network) é um protocolo que cria uma conexão segura entre o usuário e uma rede virtual, facilitando o acesso a recursos restritos da Internet e protegendo o usuário contra a transmissão insegura de tráfego em redes públicas. Uma rede privada é uma conexão dentro de uma rede com restrições em um ambiente protegido. Esse tipo de rede pode ser configurado para impedir o acesso de dispositivos que não pertencem a ela. ## Tipos de VPN **Remote Access VPN:** permite que um usuário se conecte remotamente a uma rede e interaja com os dados, possibilitando o trabalho remoto. Todo o tráfego, tanto de entrada quanto de saída, é criptografado. **Site-To-Site VPN**, também conhecida como **"ponto a ponto"**: projetada para conectar redes de uma organização, ligando duas redes confiáveis. Esse tipo de conexão é comum em redes corporativas. ## Funcionamento da VPN Uma VPN oculta o seu endereço IP único, redirecionando-o através de um servidor gerenciado pelo provedor da VPN. Quando você se conecta a uma VPN, o servidor VPN atribui um novo endereço IP, que passa a ser o seu "IP principal" enquanto a conexão estiver ativa. Dessa forma, o seu provedor de Internet não pode monitorar os sites que você acessa nem os dados que você transmite. ## Uso da VPN - Protege suas informações e localização contra invasores em redes Wi-Fi públicas. - Permite acessar conteúdos indisponíveis em alguns países, como Netflix e outros serviços. - Conecta duas redes privadas de uma empresa, facilitando a interação entre funcionários. ## Vantagens da VPN - Proteção de dados. - Privacidade em redes públicas. - Oculta seu endereço IP. - Evita a limitação de largura de banda com base em certas atividades. - Proteção contra ataques DDoS. ## Desvantagens da VPN - Reduz a velocidade da Internet. - Não garante 100% de anonimato, pois algumas VPNs podem vazar dados para redes sociais e outros serviços. - VPNs gratuitas ou baratas são lentas e podem comprometer sua privacidade ao coletar seus dados. - Para garantir total anonimato, é necessário investir em uma VPN de qualidade paga. https://serverspace.com.br/about/news/novo-llm-gpt-phi-4-da-microsoft-ja-disponivel.md O novo LLM GPT PHI-4 da Microsoft, um dos modelos de linguagem mais avançados da atualidade, já está disponível no painel de controle do Serverspace. O provedor de nuvem [Serverspace](https://serverspace.com.br/index.md) anunciou a integração do novo [modelo de linguagem GPT PHI-4](https://serverspace.com.br/services/api-gpt-do-serverspace.md) da Microsoft. Essa poderosa solução de IA permite automatizar a codificação, o processamento de dados e a gestão de textos, garantindo alta precisão e eficiência. O novo modelo já está disponível para todos os usuários do Serverspace diretamente no painel de controle. PHI-4 é um dos modelos de linguagem mais avançados da atualidade. Baseado em dados sintéticos e acadêmicos, ele oferece alta precisão e desempenho, superando muitas soluções open-source, inclusive modelos de maior escala. PHI-4 processa textos, códigos e dados de forma rápida e eficiente, utilizando algoritmos avançados da Microsoft para entregar resultados precisos e relevantes. Os usuários do Serverspace podem integrar o novo modelo facilmente via API, automatizando tarefas complexas dentro do ambiente em nuvem. Como usar o GPT PHI-4 no Serverspace: - **Geração e otimização de código** – escreva e depure códigos com eficiência, sem esforço desnecessário. - **Análise de dados** – extraia insights e automatize o processamento de grandes volumes de dados. - **Desenvolvimento de assistentes inteligentes** – crie chatbots e sistemas de suporte ao cliente. - **Gerenciamento de textos** – automatize a criação de conteúdo, a tradução de documentos e a geração de relatórios. No futuro, o Serverspace planeja expandir sua biblioteca de modelos, oferecendo ainda mais possibilidades para a integração de IA nos serviços em nuvem. _O [Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que permite implantar infraestrutura virtual em plataformas Linux e Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas como API, CLI e Terraform estão disponíveis para integração perfeita com os serviços dos clientes._ https://serverspace.com.br/support/glossary/ftps.md Saiba como o FTPS (FTP Secure) protege as transferências de arquivos usando SSL/TLS, suas vantagens e desvantagens e como configurar um servidor FTPS para troca segura de dados. **FTPS (FTP Secure)** — Uma versão aprimorada do FTP com criptografia SSL/TLS FTPS (FTP Secure) é uma versão avançada do protocolo padrão FTP (File Transfer Protocol), que inclui um mecanismo de criptografia baseado em SSL/TLS. Ele foi projetado para a transferência segura de arquivos pela rede, minimizando o risco de interceptação de dados e ataques "man-in-the-middle" (MITM). ## Como funciona o FTPS Descubra como o FTPS (FTP Secure) protege a transferência de arquivos com SSL/TLS, quais são suas vantagens e desvantagens, e como configurar um servidor FTPS para uma troca de dados segura. Existem dois modos de operação: - **Explicit FTPS (modo explícito)** — O cliente inicia a conexão segura sob demanda antes da autenticação. A porta 21 é usada para estabelecer a conexão, e portas seguras separadas são utilizadas para a transferência de arquivos. - **Implicit FTPS (modo implícito)** — A criptografia é ativada automaticamente ao conectar. Nesse caso, a porta 990 é usada para estabelecer a conexão, e portas dinâmicas são utilizadas para a transferência de dados. ## Vantagens do FTPS - **Segurança na transferência de dados** — O SSL/TLS protege as informações contra acessos não autorizados. - **Suporte à autenticação por certificados** — Possibilidade de usar certificados de cliente e servidor para maior segurança. - **Compatibilidade com clientes FT**P — Suportado por clientes populares como FileZilla e WinSCP. - **Flexibilidade na configuração** — Possibilidade de operar nos modos explícito e implícito. ## Desvantagens do FTP - **Configuração complexa** — Requer a geração e configuração de certificados SSL/TLS, além da abertura de várias portas. - **Problemas com NAT e firewalls** — O uso de portas dinâmicas pode dificultar a transmissão de dados. - **Compatibilidade limitada com sistemas antigos** — Nem todos os clientes e servidores mais antigos suportam FTPS. ## Implantação de um servidor FTPS **Instalar o vsftpd com suporte a FTPS (Ubuntu/Debian):** ```bash sudo apt update sudo apt install vsftpd openssl ``` **Gerar um certificado SSL:** ``` openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem ``` **Configurar o vsftpd para FTPS:** Edite o arquivo _**/etc/vsftpd.conf**_ e adicione as seguintes linhas: ``` ssl_enable=YES force_local_logins_ssl=YES force_local_data_ssl=YES rsa_cert_file=/etc/ssl/private/vsftpd.pem pasv_min_port=40000 pasv_max_port=50000 ``` **Reiniciar o serviço:** ```bash sudo systemctl restart vsftpd ``` ## Uso de clientes FTPS Principais programas compatíveis com FTPS: - **FileZilla** — Cliente FTP intuitivo com suporte a FTPS/FTPES. - **WinSCP** — Cliente para Windows compatível com SFTP e FTPS. - **lftp** — Cliente FTP de linha de comando para UNIX/Linux. ## Conclusão O FTPS é um método eficiente e confiável para transferência de arquivos com criptografia SSL/TLS. Ele é amplamente utilizado em ambientes corporativos e para a troca de dados confidenciais. No entanto, se for necessário uma alternativa com configuração mais simples, o **SFTP (SSH File Transfer Protocol)** pode ser uma opção viável, pois opera sobre um canal seguro via SSH. https://serverspace.com.br/support/glossary/windows-event-viewer.md Saiba o que é o Windows Event Viewer, como ele ajuda a monitorar, analisar e diagnosticar erros do sistema e quais registros de eventos estão disponíveis para monitorar o desempenho do sistema operacional O Windows Event Viewer (Visualizador de Eventos do Windows) é um componente padrão do sistema operacional Windows, desenvolvido para monitorar, registrar e analisar diversos eventos que ocorrem no sistema. ## Principais Funcionalidades - **Registro de eventos** — Gravação de todos os eventos relevantes no sistema, incluindo inicialização e parada de serviços, erros de drivers, falhas de aplicativos e logins de usuários. - **Categorização de evento**s — Separação dos dados em logs (Sistema, Aplicativo, Segurança, Instalação etc.) para facilitar a análise. - **Diagnóstico de problemas** — Permite que usuários e administradores identifiquem as causas de falhas e problemas no sistema. - **Filtragem e pesquisa** — Possibilidade de filtrar eventos por data, nível de gravidade e fonte. - **Configuração de gatilhos** — Permite reagir a eventos específicos (como enviar notificações ou executar scripts). ## Onde Encontrar Para abrir o Windows Event Viewer, você pode utilizar os seguintes métodos: Pressione **Win + R**, digite **eventvwr.msc** e pressione **Enter**. Pelo menu Iniciar: Acesse **Painel de Controle → Ferramentas Administrativas → Visualizador de Eventos**. No **Windows 10/11**, utilize a pesquisa do menu Iniciar e digite **"Visualizador de Eventos"**. ## Principais Logs de Eventos - **Sistema (System)** — Erros e eventos relacionados ao funcionamento do sistema operacional, drivers e serviços. **** - **Aplicativo (Application)** — Erros e mensagens relacionadas aos programas instalados. **** - **Segurança (Security)** — Registros de logins, logouts de usuários e ações relacionadas à segurança. **** - **Instalação (Setup)** — Eventos relacionados à instalação do sistema e atualizações (disponível apenas em algumas versões). **** - **Logs de Aplicativos e Serviços** — Registros especializados para determinados aplicativos e serviços. ## Conclusão O Windows Event Viewer é um recurso essencial para acompanhar e examinar o funcionamento do sistema, permitindo a identificação de falhas e a otimização do desempenho. Ele é útil tanto para usuários comuns na identificação de problemas quanto para administradores de sistemas que precisam diagnosticar falhas e garantir a estabilidade do Windows. ## Base de conhecimento do Serverspace Na base de conhecimento do **Serverspace**, você pode encontrar uma ampla variedade de informações detalhadas sobre termos técnicos, configurações avançadas, soluções para problemas comuns e melhores práticas relacionadas a servidores, redes, segurança e computação em nuvem. Além disso, a plataforma oferece guias passo a passo, artigos explicativos e dicas úteis para ajudar tanto iniciantes quanto profissionais de TI a otimizar a infraestrutura e melhorar a eficiência dos seus sistemas. https://serverspace.com.br/support/glossary/nfs.md Saiba como configurar e usar o NFS (Network File System) para compartilhar arquivos em uma rede. Conheça os princípios de operação, as principais versões, as vantagens e desvantagens e a instalação e configuração passo a passo do servidor e do… Este sistema de arquivos distribuído foi criado pela Sun Microsystems em 1984. Ele permite que dispositivos remotos montem sistemas de arquivos pela rede e os utilizem da mesma forma que o armazenamento local. ## Como funciona o NFS? O **NFS **é baseado em uma arquitetura cliente-servidor, onde o servidor compartilha arquivos, e os clientes se conectam para acessar e modificar os dados remotos. A comunicação entre cliente e servidor é realizada através do protocolo RPC (Remote Procedure Call), que executa operações nos arquivos do servidor mediante solicitações dos clientes. ## Principais versões do NFS - **NFSv2** — versão obsoleta, utiliza UDP e suporta identificadores de arquivos de 32 bits. - **NFSv3** — versão aprimorada com suporte a operações assíncronas e arquivos maiores. - **NFSv4** — padrão moderno com segurança avançada (Kerberos), caching e bloqueio de arquivos. ## Vantagens do NFS - **Fácil integração** — O NFS é simples de configurar e compatível com a maioria dos sistemas Unix-like (Linux, BSD, macOS). - **Transparência** — Usuários acessam arquivos remotos como se estivessem armazenados localmente. - **Desempenho eficiente** — O uso de cache e operações assíncronas melhora a performance. - **Flexibilidade** — Permite montar diretórios específicos ou sistemas de arquivos inteiros. ## Desvantagens do NFS - **Segurança** — Versões mais antigas do NFS transmitem dados sem criptografia, tornando-os vulneráveis a ataques. - **Latência de rede** — Conexões lentas podem impactar a performance. - **Configuração necessária** — A correta configuração do servidor e permissões de acesso é essencial. ## Instalação e configuração do servidor NFS **1. Instalar o servidor NFS (Ubuntu/Debian):** ```bash sudo apt update sudo apt install nfs-kernel-server ``` **2. Configurar os diretórios compartilhados** Edite o arquivo `/etc/exports` e adicione os diretórios que deseja compartilhar: ``` /home/shared 192.168.3.200/24(rw,sync,no_root_squash,no_subtree_check) ``` **Parâmetros**: - rw — Permite leitura e escrita. - sync — Garante gravação imediata dos dados no disco. - no_root_squash — Permite que o usuário root do cliente tenha permissões de superusuário no servidor. - no_subtree_check — Desativa verificações de subdiretórios para melhorar o desempenho. **3. Aplicar alterações:** ```bash sudo exportfs -a sudo systemctl restart nfs-kernel-server ``` ## Conectando um cliente NFS **1. Instalar o cliente NFS (Ubuntu/Debian):** ```bash sudo apt install nfs-common ``` **2. Montar um diretório remoto:** ``` sudo mount 192.168.3.200:/home/shared /mnt/nfs ``` Para montagem automática na inicialização, adicione ao arquivo **/etc/fstab**: ``` 192.168.3.200:/home/shared /mnt/nfs nfs defaults 0 0 ``` ## Conclusão O NFS é uma solução eficiente para compartilhamento de arquivos em redes locais. Ele oferece facilidade de uso, mas exige atenção à segurança. Para ambientes modernos, recomenda-se o uso do NFSv4, que fornece autenticação aprimorada e criptografia de dados. ## Base de Conhecimento Serverspace A **Base de Conhecimento Serverspace** é um recurso completo com artigos, tutoriais e guias sobre configuração de infraestrutura em nuvem, administração de servidores, segurança de redes e sistemas operacionais. Projetada tanto para iniciantes quanto para administradores experientes, ela oferece soluções para problemas comuns, recomendações de otimização e instruções passo a passo para maximizar a eficiência dos serviços. https://serverspace.com.br/support/glossary/logs-de-aplicacao.md Saiba o que são logs de aplicativos e como eles o ajudam a monitorar o software, diagnosticar erros, analisar o desempenho e garantir a segurança do sistema **Logs de Aplicação (Application Logs)** são arquivos ou registros que contêm informações sobre a operação de um software. Eles são utilizados para rastrear eventos, diagnosticar erros e analisar o comportamento dos aplicativos. ## **Finalidade e Funções:** - **Registro de eventos** — Os logs armazenam informações sobre inicialização, interrupções, atualizações e eventos críticos do aplicativo. - **Depuração e diagnóstico** — Auxiliam desenvolvedores e administradores na identificação de erros e na análise de suas causas. - **Monitoramento de segurança** — Registram tentativas de acesso não autorizado, falhas de autenticação e atividades suspeitas. - **Análise de desempenho** — Permitem acompanhar a carga do sistema, o tempo de execução de operações e o uso de recursos. ## **Onde os logs de aplicação são armazenados?** - No **Windows**, os logs de aplicativos podem ser acessados através do **Windows Event Viewer**, na seção **Application**. Eles são salvos no arquivo: **%SystemRoot%\System32\Winevt\Logs\Application.evtx ** - No **Linux e macOS**, os logs geralmente ficam no diretório **/var/log/**, como **/var/log/syslog** ou **/var/log/appname.log**. ## **Principais Níveis de Registros:** - **Informações (Information)** — Registros gerais sobre a operação do aplicativo, como operações bem-sucedidas. - **Avisos (Warning)** — Potenciais problemas que podem levar a falhas. - **Erros (Error)** — Falhas críticas que afetam o funcionamento do programa. - **Erros Críticos (Critical)** — Problemas graves que exigem intervenção imediata. ## **Conclusão:** Os logs de aplicação são ferramentas essenciais para desenvolvedores, administradores e especialistas em segurança. Eles ajudam a identificar erros, garantir a estabilidade dos sistemas e proteger contra ameaças. https://serverspace.com.br/support/glossary/bios.md Saiba o que é o BIOS, suas principais funções e seu papel na inicialização do hardware e a evolução do BIOS em direção à UEFI. Além disso, este artigo aborda materiais da base de conhecimento do Serverspace para ajudá-lo a… ## BIOS: O Sistema Fundamental de Inicialização O **BIOS (Basic Input/Output System) **é um sistema essencial de entrada e saída embutido na placa-mãe do computador, desempenhando um papel crítico na inicialização do dispositivo. Ao ligar o computador, o BIOS é responsável por verificar e inicializar os principais componentes do sistema, incluindo o **processador, a memória RAM, os dispositivos de armazenamento e outros elementos críticos do hardware**. Essa interface atua como uma ponte entre o sistema operacional e a parte física do computador, garantindo seu funcionamento adequado. Além disso, o BIOS gerencia operações fundamentais, como: - **Iniciar o sistema;** - **Diagnosticar componentes;** - **Configurar o hardware;** - **Transferir o controle para o sistema operacional.** Nos computadores modernos, o BIOS tem sido gradualmente substituído pelo UEFI (Unified Extensible Firmware Interface), um sistema mais avançado. No entanto, sua função na inicialização e estabilidade do sistema ainda é indispensável. ## Principais Funções do BIOS - **Inicialização do hardware** – realiza a verificação e a ativação dos componentes principais do sistema, como processador, memória RAM, discos rígidos e placa de vídeo. - **Carregamento do sistema operacional** – determina o dispositivo de boot (HDD, SSD, USB) e transfere o controle para o carregador do sistema operacional. - **Configuração do sistema** – permite que o usuário modifique configurações de hardware, como a ordem de inicialização, controle de ventoinhas e overclock do processador. - **Gerenciamento de energia** – regula o funcionamento dos componentes para otimizar o consumo de energia. - **Diagnóstico e depuração** – fornece códigos POST (Power-On Self-Test), indicando possíveis falhas nos componentes de hardware. ## Onde o BIOS é Armazenado? O BIOS está salvo em uma memória não volátil na placa-mãe, geralmente uma EEPROM ou Flash ROM. Suas configurações são preservadas mesmo após desligar o computador, sendo armazenadas em uma memória CMOS, alimentada por uma pequena bateria. ## Evolução do BIOS: Do Clássico ao UEFI O BIOS tem sido um padrão em PCs desde os **anos 1980**. No entanto, dispositivos modernos utilizam cada vez mais o UEFI, que oferece: - Interface gráfica interativa; - Suporte para discos grandes (GPT); - Inicialização segura (Secure Boot); - Maior velocidade de inicialização. Embora o UEFI esteja substituindo o BIOS tradicional, ambos desempenham a mesma função essencial: inicializar o sistema e preparar o hardware para o sistema operacional. ## Conclusão O **BIOS **continua sendo um dos pilares fundamentais dos computadores, garantindo a ativação adequada do sistema e a transição para o sistema operacional. Apesar da migração para o UEFI, seu impacto na evolução da tecnologia computacional segue relevante. Base de Conhecimento do Serverspace A **Base de Conhecimento Serverspace** contém uma vasta coleção de materiais técnicos para ajudar você a entender melhor: - Tecnologias de servidores - Computação em nuvem - Infraestrutura de redes - Gerenciamento e segurança de sistemas Projetada tanto para iniciantes quanto para profissionais experientes, essa base oferece tutoriais, guias e instruções passo a passo para otimizar sua infraestrutura de TI. Explore agora e aprofunde seu conhecimento sobre o mundo da tecnologia! https://serverspace.com.br/support/glossary/uefi.md Saiba o que é UEFI, como ela difere do BIOS, os benefícios de uma interface de firmware moderna e como configurá-la adequadamente para inicializar seu sistema operacional. ## UEFI: A Evolução do Firmware para Inicialização O UEFI (Unified Extensible Firmware Interface) é uma interface avançada de firmware responsável por iniciar o sistema operacional e inicializar os componentes de hardware durante a inicialização do computador. Ele substituiu o antigo BIOS (Basic Input/Output System), oferecendo funções aprimoradas, maior segurança e suporte para tecnologias modernas. ## Principais Características do UEFI - **Interface Gráfica** Diferente do BIOS, que possui uma interface de texto, o UEFI permite um ambiente gráfico intuitivo, com suporte ao uso do mouse. - **Suporte a GPT em vez de MBR** O UEFI utiliza a Tabela de Partições GUID (GPT), que possibilita o uso de discos maiores que 2 TB e suporta até 128 partições, enquanto o MBR está limitado a apenas 4 partições. - **Secure Boot** A função Secure Boot protege o sistema contra a execução de códigos não autorizados, impedindo a inicialização de softwares maliciosos durante o boot. - **Inicialização Rápida** O UEFI melhora a velocidade de inicialização graças ao suporte ao Fast Boot, inicialização paralela de dispositivos e código otimizado. - **Arquitetura Modular** Diferente do BIOS, que é monolítico, o UEFI permite expansões através de drivers e módulos, facilitando a adição de novos hardwares. - **Suporte a Boot pela Rede** O UEFI inclui o protocolo PXE (Preboot Execution Environment), permitindo a inicialização do sistema pela rede, sem a necessidade de um disco local. ## Diferença entre BIOS e UEFI O BIOS possui uma interface de texto e é controlado apenas pelo teclado, enquanto o UEFI oferece uma interface gráfica mais intuitiva com suporte ao uso do mouse. Em relação à estrutura de armazenamento, o BIOS utiliza a tabela de partição MBR, que possui um limite máximo de 2 TB por disco e permite apenas 4 partições primárias. Já o UEFI adota o GPT (GUID Partition Table), possibilitando o uso de discos maiores que 2 TB e suportando até 128 partições. No que diz respeito ao processo de inicialização, o BIOS opera através do Legacy Boot, que segue um método tradicional de carregamento do sistema. O UEFI, por outro lado, conta com o Secure Boot, que protege contra a execução de códigos não autorizados durante o boot, tornando o sistema mais seguro. A expansão de funcionalidades no BIOS é bastante limitada, enquanto o UEFI possui uma arquitetura modular, permitindo o suporte a novos drivers e atualizações. Por fim, o UEFI proporciona uma inicialização mais rápida e eficiente em comparação ao BIOS, devido ao seu suporte à inicialização paralela de dispositivos e otimização de código. ## Modos de Funcionamento do UEFI O UEFI pode operar em dois modos principais: - **Modo Nativo UEFI** – suporte completo a todas as funcionalidades do UEFI. - **Modo Legacy (CSM - Compatibility Support Module)** – emulação do BIOS para compatibilidade com sistemas operacionais antigos e discos com MBR. ## Conclusão O UEFI tornou-se o padrão para computadores modernos, oferecendo maior flexibilidade, segurança e facilidade no gerenciamento de hardware. A maioria dos PCs e servidores recentes já utilizam UEFI, enquanto o BIOS está sendo gradualmente substituído. ## Perguntas Frequentes (FAQ) **Posso mudar do BIOS para UEFI em um PC antigo?** Se a placa-mãe suportar UEFI, é possível desativar o modo Legacy (CSM) e ativar o UEFI. No entanto, pode ser necessário reinstalar o sistema operacional, pois o UEFI usa GPT, enquanto o BIOS usa MBR. Antes da mudança, faça backup dos seus dados, pois a conversão da tabela de partições pode apagar o disco. **O que fazer se o UEFI não reconhecer o disco de boot?** Isso pode ocorrer por configurações incorretas ou incompatibilidade de formato do disco. Verifique se: - O disco está formatado como GPT, não MBR (pode ser conferido via diskpart no Windows). - O modo UEFI Boot está ativado no firmware. - O Secure Boot não está bloqueando a inicialização de sistemas não assinados (exemplo: algumas versões do Linux). - O disco está corretamente conectado e com prioridade na sequência de boot. **Quais são as vantagens do UEFI em relação ao BIOS?** - Inicialização mais rápida devido à inicialização paralela de dispositivos. - Suporte a discos maiores que 2 TB graças ao GPT. - Maior compatibilidade com sistemas modernos e tecnologias avançadas. - Interface gráfica intuitiva, com suporte ao mouse. - Secure Boot, protegendo contra malware no boot. - Arquitetura modular, permitindo atualizações de firmware e suporte a drivers. **Posso instalar o Windows em um computador com UEFI?** Sim, mas alguns pontos devem ser considerados: - A mídia de instalação deve ser criada no modo UEFI (exemplo: usando o Rufus com a opção "GPT para UEFI"). - O UEFI Boot deve estar ativado nas configurações do firmware. - Se o disco estiver em MBR, ele deve ser convertido para GPT antes da instalação (diskpart pode ser usado para isso). **Por que alguns programas antigos não funcionam no UEFI?** Algumas aplicações e sistemas antigos foram desenvolvidos para funcionar exclusivamente no ambiente BIOS. Para compatibilidade, pode-se ativar o modo CSM (Compatibility Support Module) no UEFI, que emula o BIOS. No entanto, isso pode desativar recursos como Secure Boot. https://serverspace.com.br/support/glossary/tta.md O TTA (Time-To-Attack) é uma métrica que mede o tempo entre a preparação e a execução de um ataque. Este artigo discute suas aplicações em segurança cibernética, jogos e redes, e a importância do TTA para a defesa, o equilíbrio… ## TTA (Time-To-Attack) — O Que É e Como Funciona? O **TTA (Time-To-Attack)** é um indicador utilizado em diversas áreas, incluindo segurança da informação, desenvolvimento de jogos e tecnologias de rede. Seu significado principal é o tempo necessário para a execução de um ataque ou ação ofensiva após sua preparação. Vamos entender melhor o conceito de TTA e como ele pode variar de acordo com o contexto. ## TTA na Cibersegurança Na segurança cibernética, o **TTA **representa o intervalo de tempo entre o início da preparação do invasor para o ataque (por exemplo, a varredura de vulnerabilidades) e a execução propriamente dita. Esse indicador ajuda os especialistas em segurança a avaliar o risco e a velocidade de uma ameaça. - Quanto menor for o TTA, mais rápido um invasor pode explorar uma vulnerabilidade descoberta. - A otimização do TTA do ponto de vista da defesa está relacionada à redução do tempo de resposta às ameaças, como a detecção e a neutralização mais ágeis de ataques. ## TTA no Desenvolvimento de Jogos Na indústria de jogos, o TTA pode ser utilizado para definir o tempo necessário para que um personagem execute um ataque. Esse conceito é crucial em gêneros onde a velocidade de interação e as decisões táticas são fundamentais, como jogos de luta, FPS e MOBAs. **Exemplos de TTA nos jogos:** - **Jogos de luta:** tempo entre pressionar um botão de ataque e o golpe atingir o oponente. Esse tempo deve ser equilibrado para evitar ações injustas ou movimentos excessivamente lentos. - **RTS e MOBA:** atraso entre a ativação de uma habilidade e sua execução, afetando a estratégia de uso das habilidades. - **Jogos de tiro:** tempo entre pressionar o gatilho e a bala atingir o alvo, especialmente em jogos com física realista de projéteis. ## TTA em Tecnologias de Rede Nas tecnologias de rede, o TTA pode descrever o tempo necessário para que um invasor inicie um ataque após obter acesso a um sistema. Esse indicador é relevante na análise de comportamento de invasores e no desenvolvimento de estratégias para prever e mitigar ataques. ## Por Que o TTA é Importante? O conhecimento e a gestão do TTA são essenciais em qualquer área: - **Na cibersegurança:** permite detectar ataques mais rapidamente e minimizar danos. - **No desenvolvimento de jogos:** ajuda a equilibrar a mecânica do jogo para garantir uma experiência justa e envolvente. - **Na análise de ameaças de rede**: fornece informações sobre a velocidade de ação de invasores após um acesso não autorizado. ## Como o TTA é Medido? A medição do **TTA **envolve a marcação precisa do início e do fim de cada fase de uma ação. Por exemplo: - No desenvolvimento de jogos: é medido como a diferença entre o momento em que o jogador inicia uma ação e quando seu efeito acontece. - Na cibersegurança: é o tempo entre a detecção da preparação e o início real do ataque. ## Conclusão O TTA é um indicador versátil que permite analisar a velocidade de ações ofensivas em diferentes contextos. Dependendo da aplicação, ele pode ser uma ferramenta para defesa, balanceamento ou análise estratégica. Compreender e otimizar o TTA pode melhorar a eficiência em várias áreas, desde a segurança da informação até a jogabilidade em videogames. https://serverspace.com.br/support/glossary/csm.md Saiba como o Compatibility Support Module (CSM) ajuda a executar sistemas mais antigos no UEFI, como ele difere do BIOS e como desativar o CSM para alternar para um modo de inicialização moderno. ## Módulo de Suporte à Compatibilidade (CSM) no UEFI O** Compatibility Support Module (CSM)** é um componente integrado ao firmware UEFI, projetado para garantir a compatibilidade com sistemas legados baseados no BIOS tradicional. Ele permite a inicialização de sistemas operacionais e o uso de drivers desenvolvidos para BIOS, sendo especialmente útil para versões mais antigas de sistemas operacionais e plataformas de hardware. ## Finalidade e Funções O CSM desempenha as seguintes funções: - Emula o BIOS tradicional para permitir a inicialização de sistemas operacionais mais antigos que não suportam UEFI. - Mantém a compatibilidade com discos formatados em MBR (Master Boot Record), usados em sistemas BIOS. - Suporta bootloaders e drivers legados. - Facilita a transição do BIOS para UEFI, permitindo que usuários com hardware antigo ainda possam utilizá-lo. ## Diferenças entre UEFI e CSM O CSM faz parte do firmware UEFI, mas seu uso implica a execução em um modo semelhante ao BIOS tradicional. As principais diferenças entre os modos são: - No modo UEFI, a inicialização ocorre em discos com GPT (GUID Partition Table), enquanto no modo CSM, a inicialização ocorre em MBR. - O UEFI suporta Secure Boot, garantindo maior segurança, enquanto no modo CSM, essa função é desativada. - O UEFI utiliza bootloaders e drivers 64-bit, enquanto o CSM pode operar com componentes 16-bit e 32-bit herdados do BIOS. ## Desativando o CSM e Migrando para o UEFI Muitas placas-mãe modernas desativam o CSM por padrão, pois sistemas operacionais recentes, como Windows 10 e 11, utilizam exclusivamente o modo UEFI. Para desativar o CSM e ativar o UEFI, siga estes passos: - Acesse as configurações do UEFI (geralmente pressionando Del ou F2 durante a inicialização). - Localize a opção CSM Support ou Legacy Boot Mode e desative-a. - Certifique-se de que o Secure Boot está ativado (se necessário). - Converta o disco de MBR para GPT, caso necessário (utilize a ferramenta MBR2GPT no Windows). - Instale ou reinstale o sistema operacional no modo UEFI. ## Conclusão O CSM é uma ferramenta útil para manter a compatibilidade com sistemas mais antigos, mas seu uso está diminuindo à medida que o BIOS tradicional é substituído pelo UEFI. Se o seu hardware e software forem compatíveis, recomenda-se desativar o CSM e utilizar o modo UEFI, garantindo maior segurança e desempenho no processo de inicialização do sistema. https://serverspace.com.br/support/glossary/acid.md Saiba como as regras ACID garantem a confiabilidade das transações no PostgreSQL: atomicidade, consistência, isolamento e durabilidade, e como elas são implementadas usando MVCC, WALs e níveis de isolamento. ## ACID no Contexto do PostgreSQL ACID representa um conjunto essencial de princípios que asseguram a segurança e a precisão das transações em bancos de dados relacionais, como o PostgreSQL. Esses princípios são indispensáveis para preservar a integridade das informações, prevenindo inconsistências causadas por falhas no sistema ou acessos concorrentes de múltiplos usuários. ## Por que o ACID é importante? Em sistemas multiusuário, onde centenas ou milhares de operações no banco de dados são executadas simultaneamente, é essencial evitar a perda ou alteração incorreta de dados. Por exemplo, sistemas bancários, plataformas de e-commerce, bancos de dados médicos e outras aplicações críticas exigem garantias rigorosas de correção dos dados. As propriedades ACID garantem: - Prevenção da execução parcial de transações, evitando estados inconsistentes do banco de dados. - Proteção contra conflitos entre operações paralelas. - Durabilidade dos dados, mesmo em caso de falhas de hardware ou software. ## Análise das propriedades ACID no PostgreSQL **1. Atomicidade (Atomicity)** A atomicidade garante que uma transação seja executada completamente ou totalmente revertida, eliminando a possibilidade de que apenas algumas mudanças sejam aplicadas. Isso evita situações em que algumas operações dentro de uma transação são bem-sucedidas, enquanto outras falham, resultando em dados inconsistentes. ## Como é implementado no PostgreSQL? - O PostgreSQL usa o mecanismo **ROLLBACK**, permitindo cancelar transações incompletas em caso de erro. - Todas as operações dentro de uma transação são agrupadas, e se ocorrer um erro, elas são automaticamente revertidas ao estado inicial. Exemplo: ```sql BEGIN; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT; ``` Se uma das atualizações falhar, toda a transação será revertida, impedindo uma alteração parcial do saldo. ## 2. Consistência (Consistency) A consistência garante que o banco de dados transite de um estado válido para outro, mantendo sempre as restrições de integridade. ## Como é implementado no PostgreSQL? - Uso de restrições: PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE. - Gatilhos e regras para validação dos dados. - Correção automática dos dados dentro das transações para garantir a integridade. Exemplo: ```sql CREATE TABLE orders ( id SERIAL PRIMARY KEY, customer_id INT NOT NULL REFERENCES customers(id), amount NUMERIC CHECK (amount > 0) ); ``` Se alguém tentar inserir `amount = -50`, o PostgreSQL rejeitará a operação, garantindo a consistência dos dados. ## 3. Isolamento (Isolation) O isolamento impede conflitos entre transações paralelas. O PostgreSQL implementa MVCC (Multi-Version Concurrency Control), permitindo que as transações trabalhem com "instantâneos" dos dados sem bloquear outros usuários. O PostgreSQL suporta quatro níveis de isolamento de transações: - **READ UNCOMMITTED** (raramente usado). **** - **READ COMMITTED** (padrão, evita a leitura de alterações não confirmadas). **** - **REPEATABLE READ** (garante resultados consistentes dentro da transação). **** - **SERIALIZABLE** (proteção máxima contra conflitos, mas pode causar reversões de transações). Exemplo: ```sql BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; SELECT * FROM accounts WHERE id = 1; -- Neste momento, outro processo modifica os dados, mas esta transação ainda vê a versão antiga. COMMIT; ``` Assim, as transações não interferem umas nas outras, mantendo a consistência dos dados. ## 4. Durabilidade (Durability) A propriedade de durabilidade assegura que todas as modificações feitas por uma transação confirmada permaneçam registradas de forma definitiva no banco de dados, mesmo em caso de falhas do sistema. Como é implementado no PostgreSQL? - **WAL (Write-Ahead Logging)** grava as mudanças em um log especial antes de aplicá-las. - Replicação automática e backups evitam a perda de dados. - A função fsync garante que os dados sejam gravados no disco antes da conclusão da transação. Exemplo: ```sql sql INSERT INTO transactions (account_id, amount) VALUES (1, 500); COMMIT; ``` Mesmo que o servidor falhe imediatamente após o `COMMIT`, os dados permanecerão intactos graças ao WAL. ## Conclusão As propriedades ACID no PostgreSQL garantem confiabilidade, consistência e resistência a falhas ao lidar com bancos de dados. Esses princípios fazem do PostgreSQL uma excelente escolha para sistemas críticos que exigem alta integridade dos dados. https://serverspace.com.br/support/glossary/autovacuum.md Saiba como o Autovacuum funciona no PostgreSQL, quais tarefas ele resolve e como definir suas configurações para otimizar o desempenho do banco de dados. Conheça as principais configurações, casos de uso e recomendações para melhorar o desempenho. ## O que é o Autovacuum? O **Autovacuum **é um processo em segundo plano integrado ao PostgreSQL que executa automaticamente os comandos **VACUUM** e **ANALYZE**. Ele remove versões antigas de linhas, libera espaço em disco e atualiza as estatísticas do otimizador de consultas. Esse mecanismo desempenha um papel fundamental na manutenção do desempenho do banco de dados, evitando o crescimento excessivo das tabelas e a degradação da velocidade de processamento das consultas. ## Para que serve o Autovacuum? O PostgreSQL utiliza o mecanismo **MVCC (Multi-Version Concurrency Control)**, que permite que as transações trabalhem com "instantâneos" dos dados sem bloqueio. No entanto, isso leva ao acúmulo de linhas obsoletas (conhecidas como "tuplas mortas"), que não são mais usadas, mas continuam ocupando espaço em disco. Se essas linhas não forem removidas, o tamanho do banco de dados crescerá descontroladamente e o desempenho das consultas diminuirá. Para evitar isso, o PostgreSQL utiliza: - **VACUUM** — remove as tuplas mortas e libera espaço para novos dados. - **ANALYZE** — atualiza as estatísticas do banco de dados para que o otimizador de consultas selecione as estratégias de execução mais eficientes. ## Como funciona o Autovacuum? O processo em segundo plano do Autovacuum é ativado automaticamente e executa **VACUUM** e **ANALYZE** em tabelas onde o número de linhas modificadas ultrapassa o limite definido nas configurações. ## Principais processos do Autovacuum: - **VACUUM** — remove dados não utilizados e libera espaço. - **ANALYZE** — atualiza estatísticas para ajudar o otimizador de consultas a escolher os melhores planos de execução. - **Autovacuum Daemon** — monitora a atividade nas tabelas e executa **VACUUM** e **ANALYZE** quando as mudanças ultrapassam os limites definidos. ## Configuração do Autovacuum O mecanismo de limpeza automática do PostgreSQL é controlado por parâmetros que podem ser configurados no arquivo _**postgresql.conf**_ ou individualmente para cada tabela. ## Principais parâmetros: - **autovacuum = on** — ativa ou desativa a limpeza automática do banco de dados (ativado por padrão). - **autovacuum_vacuum_threshold** — número mínimo de registros excluídos ou modificados antes de acionar o **VACUUM**. - **autovacuum_analyze_threshold** — limite de alterações necessário para acionar o **ANALYZE**. - **autovacuum_vacuum_scale_factor** — percentual de linhas modificadas necessário para acionar o VACUUM. - **autovacuum_analyze_scale_factor** — parâmetro equivalente para ANALYZE. - **autovacuum_naptime** — intervalo entre as verificações de atividade das tabelas (padrão: 60 segundos). - **autovacuum_max_workers** — número máximo de processos paralelos executando o Autovacuum. ## Exemplo de Configuração do Autovacuum Suponha que temos uma grande tabela chamada _orders_, na qual ocorrem muitas atualizações e exclusões de registros. Para modificar as configurações do Autovacuum apenas para essa tabela, podemos usar o seguinte comando: ```sql ALTER TABLE orders SET (autovacuum_vacuum_threshold = 1000, autovacuum_analyze_threshold = 500); ``` Essa configuração fará com que o `VACUUM` seja executado após a exclusão ou modificação de 1.000 linhas, enquanto o `ANALYZE` será acionado após 500 alterações. ## Quando desativar o Autovacuum? Na maioria dos casos, o Autovacuum é benéfico, mas existem situações em que o controle manual pode ser mais adequado: - **Sistemas OLTP de alta carga**, onde a limpeza automática pode interferir em consultas críticas. - **Tabelas que são atualizadas em lotes** — nesses casos, é melhor executar `VACUUM` manualmente após grandes atualizações. - **Ambientes de teste**, onde o **VACUUM** pode ser programado em horários específicos, em vez de ser monitorado continuamente. ## Conclusão O Autovacuum no PostgreSQL é uma ferramenta essencial para manter o banco de dados limpo e otimizado. Ele remove automaticamente dados obsoletos, atualiza estatísticas de consultas e evita a degradação do desempenho. O sistema de configuração flexível permite ajustar seu funcionamento para diferentes cargas de trabalho, equilibrando a automação e o controle manual. ## Recursos úteis na base de conhecimento da Serverspace Para um entendimento mais aprofundado sobre o Autovacuum e a administração do PostgreSQL, você pode acessar a [Base de Conhecimento da Serverspace](https://serverspace.com.br/support.md)— um recurso abrangente com artigos detalhados, tutoriais e guias práticos. A base de conhecimento cobre tópicos como otimização de bancos de dados, gerenciamento da limpeza automática, configuração dos parâmetros do `autovacuum`, além de monitoramento e solução de problemas de desempenho. O uso desses materiais ajuda administradores de bancos de dados a gerenciar recursos com mais eficiência, reduzir a carga do servidor e melhorar a estabilidade do PostgreSQL. https://serverspace.com.br/support/glossary/b-tree.md Saiba como os índices B-Tree no PostgreSQL fornecem indexação rápida e eficiente de dados, acelerando as pesquisas e otimizando as consultas ao banco de dados. **B-Tree (Árvore Balanceada)** é uma estrutura de dados amplamente utilizada no PostgreSQL para a construção de índices. Trata-se de uma árvore de busca balanceada, otimizada para lidar com grandes volumes de dados e operações frequentes de pesquisa. ## Principais Vantagens do B-Tree - **Estrutura estável** – Os nós folha estão sempre no mesmo nível, evitando a degradação do desempenho à medida que o volume de dados aumenta. - **Alta velocidade de busca** – Inserções, exclusões e buscas são realizadas em O(log n), tornando o B-Tree eficiente mesmo para tabelas grandes. - **Otimizado para consultas por intervalos** – Graças à sua natureza ordenada, o B-Tree é ideal para lidar com consultas dentro de faixas de valores. - **Uso eficiente da memória** – O PostgreSQL otimiza as operações do B-Tree considerando a arquitetura de disco, reduzindo o número de operações de E/S. ## Uso do B-Tree no PostgreSQL Por padrão, o PostgreSQL utiliza o B-Tree para indexação de dados. Para criar esse tipo de índice, utilize o seguinte comando: ```sql CREATE INDEX index_name ON table_name USING btree (column_name); ``` Esse índice acelera significativamente as operações **SELECT**, **WHERE** e **ORDER BY**, especialmente ao lidar com tabelas grandes. ## Estrutura Interna do B-Tree A estrutura do B-Tree no PostgreSQL inclui: - **Nó raiz** – O nível superior da árvore, contendo referências para nós internos. - **Nós internos** – Elementos intermediários que auxiliam na navegação. - **Nós folha**– O nível mais baixo da árvore, armazenando referências para as linhas da tabela. ## Perguntas Frequentes (FAQ) - **Por que o PostgreSQL usa o B-Tree?** O B-Tree equilibra a velocidade de pesquisa, inserção e exclusão, tornando-se uma solução versátil para a maioria dos tipos de consultas. - **Quando devo usar outros tipos de índices?** Para busca em texto completo, os índices GIN são mais indicados, enquanto os índices GiST são ideais para lidar com objetos geométricos. - **É possível converter um índice existente para B-Tree?** Não, é necessário criar um novo índice e depois remover o antigo para minimizar a carga no sistema. ## Onde Encontrar Mais Informações Se você deseja aprender mais sobre PostgreSQL, pode encontrar diversos materiais úteis e guias práticos sobre administração, configuração e otimização de bancos de dados na [base de conhecimento do Serverspace](https://serverspace.com.br/support.md). https://serverspace.com.br/support/glossary/cte.md Saiba o que é Common Table Expression (CTE) no PostgreSQL, como usar consultas WITH para simplificar o código SQL, melhorar a legibilidade e trabalhar com dados recursivos. Uma **Common Table Expression (CTE)** é um resultado temporário de uma consulta que pode ser utilizado dentro de uma consulta SQL principal. A CTE ajuda a simplificar consultas complexas, tornando-as mais legíveis e melhorando o desempenho em determinados cenários. ## O que é uma CTE? Uma CTE é um conjunto temporário de dados nomeado, definido com a palavra-chave **WITH**. Ela existe apenas dentro de uma única execução de consulta SQL e permite o uso repetido dos resultados intermediários dos cálculos. Isso é especialmente útil ao lidar com junções complexas e consultas recursivas. ## Sintaxe da CTE Uma CTE é declarada antes da consulta SQL principal utilizando `WITH`: ```sql WITH temporary_table AS ( SELECT column1, column2 FROM some_table WHERE condition ) SELECT * FROM temporary_table; ``` Aqui, **temporary_table** é o nome temporário da CTE, que pode ser referenciado na instrução **SELECT** subsequente. ## Vantagens da CTE - **Simplificação do código** – Permite dividir consultas SQL complexas em partes mais compreensíveis. - **Reutilização de dados** – A CTE pode ser chamada várias vezes na consulta principal, evitando a duplicação de código. - **Otimização de consultas recursivas** – A CTE facilita a execução de consultas recursivas, útil para manipulação de dados hierárquicos (como estruturas em árvore). ## Exemplo de uso Suponha que temos uma tabela **employees**, contendo informações sobre funcionários e seus gerentes. Para encontrar todos os subordinados de um gerente específico, podemos usar uma CTE recursiva: ```sql WITH RECURSIVE subordinates AS ( SELECT id, name, manager_id FROM employees WHERE id = 1 -- ID do gerente UNION ALL SELECT e.id, e.name, e.manager_id FROM employees e INNER JOIN subordinates s ON e.manager_id = s.id ) SELECT * FROM subordinates; ``` Essa consulta retorna todos os funcionários subordinados ao gerente com **id = 1**, incluindo subordinados indiretos. ## Limitações da CTE - **Escopo temporário** – A CTE só existe durante a execução da consulta e não é armazenada na memória entre execuções. - **Impacto no desempenho** – Em alguns casos, o desempenho da CTE pode ser inferior ao de subconsultas ou tabelas temporárias, especialmente se o PostgreSQL não otimizar sua reutilização de forma eficiente. ## Onde encontrar mais informações Se você deseja aprofundar seus conhecimentos sobre PostgreSQL, a [base de conhecimento da Serverspace](https://serverspace.com.br/support.md) oferece diversos materiais e guias práticos sobre administração, configuração e otimização de bancos de dados. https://serverspace.com.br/support/glossary/check-constraint.md Saiba o que é CHECK Constraint no PostgreSQL - uma restrição que garante que os dados correspondam às condições especificadas. Vamos dar uma olhada na sintaxe, nos exemplos de uso, nas vantagens e nas limitações. **CHECK Constraint** é uma restrição no nível da tabela no PostgreSQL que garante que os valores em uma coluna específica (ou várias colunas) atendam a uma condição lógica definida. Ele ajuda a manter a integridade dos dados, impedindo que valores inválidos sejam inseridos no banco de dados. ## Como funciona o CHECK Constraint? Quando os dados são inseridos ou atualizados, o PostgreSQL verifica se a condição especificada na restrição **CHECK** é atendida. Se o valor não cumprir a condição, a operação **INSERT **ou **UPDATE **será rejeitada com um erro. ## Sintaxe do CHECK Constraint A restrição **CHECK **pode ser definida ao criar uma tabela: ```sql CREATE TABLE employees ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, age INT CHECK (age >= 18), salary DECIMAL(10,2) CHECK (salary > 0) ); ``` Neste exemplo: - **age >= 18** – impede a inserção de funcionários com menos de 18 anos. - **salary > 0**** – evita valores nulos ou negativos para o salário.** Também é possível adicionar um **CHECK **a uma tabela existente: ```sql ALTER TABLE employees ADD CONSTRAINT check_salary_positive CHECK (salary > 0); ``` ## Exemplo de Uso Imagine que temos uma tabela **orders **onde queremos restringir os valores da coluna **status **a opções específicas: ```sql CREATE TABLE orders ( id SERIAL PRIMARY KEY, status TEXT CHECK (status IN ('pending', 'shipped', 'delivered', 'canceled')) ); ``` Agora, se tentarmos inserir ou atualizar um status com um valor fora da lista permitida, o PostgreSQL retornará um erro. ## Vantagens do CHECK Constraint - **Garantia de integridade dos dados** – Controla os valores permitidos em uma coluna. - **Flexibilidade** – Permite definir condições lógicas complexas. - **Redução de erros no banco de dados** – Garante validação direta no banco, sem depender apenas da aplicação. ## Limitações e Considerações - CHECK não impede valores **NULL**, a menos que a coluna também tenha uma restrição **NOT NULL**. - Diferente de **FOREIGN KEY**, **CHECK **não pode referenciar outras tabelas. - Pode impactar a performance ao lidar com grandes volumes de dados, pois cada operação precisa ser validada. ## Onde encontrar mais informações? No [Serverspace Knowledge Base](https://serverspace.com.br/support.md), você pode encontrar mais conteúdos sobre PostgreSQL, incluindo configuração de índices, gerenciamento de transações e otimização de desempenho do banco de dados. https://serverspace.com.br/support/glossary/ci-cd.md Descubra o que é CI/CD, sua importância, principais etapas e passos para a integração. **CI/CD** (Continuous Integration e Continuous Delivery/Continuous Deployment) é uma prática de automação e otimização dos processos de desenvolvimento, teste e implantação de software. Ela permite que as equipes integrem continuamente mudanças no código e entreguem atualizações mais rapidamente aos usuários, garantindo alta qualidade e estabilidade do produto. ## Principais etapas do CI/CD - **Continuous Integration (CI)** — integração contínua. Consiste na compilação e testes automatizados do código a cada commit no repositório. Isso ajuda os desenvolvedores a identificar e corrigir erros rapidamente, pois os testes garantem a compatibilidade das novas alterações com o código existente. O CI acelera o trabalho em equipe e reduz a possibilidade de conflitos no código. - **Continuous Delivery (CD)** — entrega contínua. Nesta etapa, o produto fica pronto para implantação a qualquer momento, pois passa por testes automáticos e verificações de qualidade. As mudanças podem ser enviadas para um servidor de testes ou para um ambiente de staging para uma verificação final, mas a implantação definitiva ainda exige uma aprovação manual. - **Continuous Deployment (CD)** — implantação contínua. Esse é o próximo passo após a entrega contínua, no qual o produto é implantado automaticamente no ambiente de produção sem intervenção humana. O Continuous Deployment exige um alto nível de automação nos testes para eliminar riscos de bugs a cada implantação. ## Por que o CI/CD é importante? O CI/CD ajuda a minimizar erros, acelera os lançamentos e torna os processos mais gerenciáveis e previsíveis. Isso é especialmente essencial para equipes com atualizações frequentes, onde a estabilidade e a qualidade são fatores críticos. https://serverspace.com.br/support/help/como-configurar-o-freeradius-no-linux.md Configure facilmente seu servidor FreeRADIUS no AlmaLinux seguindo os passos simples de configuração Aprenda a instalar e configurar o FreeRADIUS no AlmaLinux para autenticação, autorização e contabilização de acesso à rede.neste artigo. A arquitetura moderna de redes empresariais possui uma estrutura complicada, com diversos dispositivos conectados simultaneamente, o que representa uma funcionalidade conveniente para hackers e pessoas com intenções ilegais. Para resolver esse problema, foi inventada uma solução inovadora: o servidor RADIUS (servidor AAA), que oferece três funções de proteção: autenticação, autorização e contabilização. Cada etapa no sistema será registrada, e todas as entradas e pontos de acesso estarão sob controle. O FreeRADIUS é amplamente utilizado em ambientes corporativos para controlar o acesso à rede com alto nível de segurança, especialmente em cenários com Wi-Fi corporativo, VPNs e dispositivos de borda. ## Servidor RADIUS (FreeRADIUS) O FreeRADIUS é um servidor RADIUS excepcional que oferece serviços centralizados de autenticação e autorização para dispositivos, como switches, roteadores, gateways VPN e pontos de acesso WiFi. Sua capacidade única de gerenciar o acesso de usuários a recursos de rede com base em diversos parâmetros, como identidade, localização, características do dispositivo e horário, o torna uma solução versátil para ambientes corporativos, acadêmicos e de provedores de serviços. O servidor suporta vários métodos de autenticação e pode integrar-se a bancos de dados externos como SQL, LDAP e Kerberos para armazenar e recuperar informações de usuários e dispositivos de forma eficiente. Com sua escalabilidade, flexibilidade e robustez, o FreeRADIUS continua sendo uma escolha de destaque para organizações que buscam uma solução RADIUS confiável e personalizável. ## Instalando o FreeRADIUS Neste guia, utilizamos o AlmaLinux como sistema operacional, mas os passos são semelhantes para outras distribuições baseadas em RHEL. Antes de instalar qualquer software, precisamos atualizar o índice e os pacotes no AlmaLinux: ```bash sudo dnf update -y ``` Screenshot №1 — Atualização de pacotes Instale o pacote necessário para o servidor RADIUS: ```bash sudo dnf install freeradius ``` Screenshot №2 — Instalação do servidor RADIUS Após a instalação, será necessário configurar o servidor de acordo com suas necessidades. Os arquivos de configuração podem ser encontrados com o comando abaixo: ``` sudo nano /etc/raddb/radiusd.conf ``` Você pode usar qualquer editor de texto que preferir. Abra o arquivo e verifique os parâmetros: registro de logs, protocolo de autenticação e portas. Todas as configurações podem ser ajustadas conforme suas necessidades. Screenshot №3 — Arquivo de configuração do servidor Em seguida, crie um arquivo chamado "user.conf" no mesmo diretório: ``` sudo touch /etc/raddb/user.conf ``` Abra o arquivo no seu editor de texto com o seguinte comando: ``` sudo nano /etc/raddb/user.conf ``` No arquivo de configuração, adicione os dispositivos do cliente e o segredo compartilhado usando a seguinte sintaxe: ``` client { secret = } ``` Screenshot №4 — Arquivo de configuração para dispositivos Substitua pelo IP ou hostname necessário e por uma senha forte, já que este é um método único e rápido de acessar seu sistema. Agora, configure a conta de usuário: crie contas e atribua grupos para autenticação no lado do servidor, utilizando uma implementação de código aberto do protocolo RADIUS. Isso envolve a criação de contas de usuários e sua associação a grupos no banco de dados. Abra o arquivo de usuários com o comando: ``` sudo nano /etc/raddb/users ``` E cole o seguinte: ``` Cleartext-Password := "" ``` Screenshot №5 — Arquivo de configuração para o cliente Substitua pelo nome do usuário desejado e pela senha correspondente em texto claro. Da mesma forma, abra o arquivo de grupos com o comando: ``` sudo nano /etc/raddb/groups ``` E insira o seguinte: ``` User-Name == "" ``` Screenshot №6 — Arquivo de configuração para grupos Inicie o servidor RADIUS: Após concluir a configuração, inicie o servidor com o comando apropriado. Por exemplo, para iniciar o servidor, você pode executar: ```bash sudo systemctl start radiusd ``` Para verificar se o serviço iniciou corretamente, utilize o comando: ```bash sudo systemctl status radiusd ``` E pronto! ## FreeRADIUS no Linux Configurar o FreeRADIUS no AlmaLinux é um processo relativamente simples, mas extremamente poderoso para o controle de acesso à rede. Neste artigo, abordamos a instalação básica, a configuração de clientes e usuários, além da inicialização do serviço. Para ambientes mais complexos, o FreeRADIUS oferece integração com bancos de dados, LDAP, Kerberos e políticas avançadas de autenticação, permitindo escalar a solução conforme a necessidade da infraestrutura. https://serverspace.com.br/support/help/instalacao-e-uso-do-ggh-em-unix-windows-e-go.md Saiba como instalar o GGH no Unix, Windows e Go e explore cenários básicos de uso. O GGH é um complemento que complementa o SSH, mantendo sua funcionalidade O **GGH** é uma ferramenta SSH que atua como um invólucro leve e rápido para comandos SSH padrão. Ele foi projetado para simplificar a interação com servidores e melhorar a usabilidade de sessões e configurações anteriores de SSH. ## Instalação Execute um dos scripts a seguir ou faça o download da versão mais recente do software na página de [lançamento (Git Hub)](https://github.com/byawitz/ggh/releases) **Para sistemas do tipo Unix:** ```bash curl https://raw.githubusercontent.com/byawitz/ggh/master/install/unix.sh | sh ``` **Para Windows:** ``` powershell -c "irm https://raw.githubusercontent.com/byawitz/ggh/master/install/windows.ps1 | iex" ``` **Para Go:** ``` go install github.com/byawitz/ggh@latest ``` ## Uso - **Como um cliente SSH:** ``` ggh root@server.com ggh root@server.com -p2440 ``` - **Executar sem argumentos:** Mostrará uma lista interativa das sessões anteriores: ``` ggh ``` - **Executar com -:** Mostrará uma lista interativa de todas as entradas do arquivo ~/.ssh/config: ``` ggh - ``` - **Filtragem da lista ~/.ssh/config:** Você pode especificar uma cadeia de caracteres para filtrar: ``` ggh - stage ggh - meta-servers ``` Algo como um histórico ou uma lista de configuração - **Para obter um histórico não interativo ou uma lista de configuração:** ``` ggh --config ggh --history ``` ## Importante: o GGH não substitui o SSH O GGH não funcionará se o SSH não estiver instalado ou não estiver disponível no caminho do sistema. O GGH foi projetado para ser um invólucro leve e rápido para seus comandos SSH. https://serverspace.com.br/support/help/instalar-o-gnome-no-ubuntu-22-04.md Instalando o GNOME no Ubuntu 22.04 e conectando-se ao servidor via xRDP e VNC usando o Remote Desktop e o MobaXterm O GNOME é um ambiente de desktop gratuito para distribuições baseadas em UNIX. Considere instalá-lo em um servidor vStack Cloud limpo. Vamos optar pelos requisitos mínimos. ## Preparação para instalação Para instalar o ambiente de desktop, escolha o Ubuntu 22.04. Configuração inicial do sistema. Utilize o [MobaXterm](https://mobaxterm.mobatek.net/download.html), uma ferramenta para diversos tipos de conexão ao servidor, considerando também a conexão via VNC. ## Atualizando pacotes Atualize o índice de pacotes e software com o seguinte comando: ```bash apt update && apt upgrade -y ``` ## Instalando o GNOME no Ubuntu O pacote ubuntu-gnome-desktop requer pelo menos 2,5 GB de espaço livre no sistema. O pacote é instalado com o comando: ```bash apt install ubuntu-gnome-desktop -y ``` O processo de instalação será iniciado e, dependendo da velocidade da conexão, o pacote será baixado. Após instalar o ambiente de trabalho, instale o xRDP. Se você não conseguir fazer login com um usuário comum, é recomendável definir uma senha para o usuário root conectando-se via SSH e reiniciando o serviço xRDP. Para configurar o desktop, inicie a instalação como mostrado na Imagem 1. Imagem 1 – Iniciando a instalação do desktop Caso não consiga se conectar via xRDP, defina a senha para o usuário root com o seguinte comando após fazer login como root: ``` passwd ``` Escolha o layout do teclado conforme mostrado na Imagem 2: Imagem 2 – Selecionando o layout do teclado Desative a opção de compartilhamento de dados para aplicativos que exigem geolocalização, como mostrado na Imagem 3: Imagem 3 – Desativando o compartilhamento de dados de geolocalização O resultado da configuração do ambiente de trabalho será semelhante ao mostrado na Imagem 4: Imagem 4 – Resultado bem-sucedido Para verificar informações do sistema, use o comando: ``` cat /etc/os-release ``` O resultado será semelhante ao mostrado na Imagem 5: Imagem 5 – Informações do sistema Experimente instalar um navegador da web com o comando: ```bash apt install firefox ``` Após a instalação, inicie o navegador pela linha de comando: ``` firefox ``` O resultado será semelhante ao mostrado na Imagem 6: Imagem 6 – Iniciando o navegador Para fazer login via VNC com o MobaXterm, adicione uma sessão com o endereço IP do servidor e especifique a porta atribuída após iniciar o vncserver. Clique em "OK" e faça login conforme mostrado na Imagem 7: Imagem 7 – Configurando uma sessão VNC O resultado da conexão via VNC é mostrado na Imagem 8: Imagem 8 – Conexão via VNC ## Conclusão Neste guia, vimos: - Como instalar o desktop GNOME no Ubuntu 22.04. - Como conectar via xRDP e VNC usando a ferramenta "Conexão de Área de Trabalho Remota" do Windows e o MobaXterm. Concluímos que a conexão via xRDP é a mais eficiente. Por exemplo, o xRDP permite iniciar uma linha de comando, enquanto o VNC não. https://serverspace.com.br/help/support/conexao-ao-armazenamento-compativel-com-o-s3-por-meio-da-api-do-amazon-s3-no-ubuntu-com-o-python-pre-instalado.md Como se conectar ao armazenamento compatível com S3 no Ubuntu por meio da API do Amazon S3 usando Python. Instruções detalhadas: instalação, configuração, upload e download de arquivos Este artigo oferece um guia detalhado sobre como se conectar a um armazenamento compatível com S3 usando a API Amazon S3 em um sistema Ubuntu. Você aprenderá como instalar as ferramentas necessárias, configurar um script Python para interação contínua com o armazenamento e executar operações essenciais, como recuperar uma lista de buckets, fazer upload e download de arquivos. Cada etapa é explicada de forma clara, facilitando para iniciantes configurarem e testarem a conexão com confiança, mesmo sem experiência prévia. ## Instalando o Python e o pip Comece atualizando seu sistema e instalando o Python 3 junto com o pip: ```bash sudo apt update ``` ```bash sudo apt install python3 python3-pip ``` ``` python3 -m pip install --upgrade pip ``` ## Instalando a Biblioteca boto3 Em seguida, instale a biblioteca boto3, que facilita o trabalho com armazenamento compatível com S3: ``` pip3 install boto3 ``` ## Criando o Script Python Crie um novo arquivo (por exemplo, s3_client.py usando seu editor de texto preferido: ``` import boto3 from botocore.client import Config # Substitua os espaços reservados pelas suas credenciais access_key = 'SUA_CHAVE_DE_ACESSO' secret_key = 'SUA_CHAVE_SECRETA' endpoint_url = 'https://seu.endpoint.url' # Inicializando o cliente S3 s3_client = boto3.client( 's3', aws_access_key_id=access_key, aws_secret_access_key=secret_key, endpoint_url=endpoint_url, config=Config(signature_version='s3') ) # Exemplo: Listar buckets try: response = s3_client.list_buckets() print("Buckets:") for bucket in response['Buckets']: print(f" - {bucket['Name']}") except Exception as e: print(f"Erro: {e}") ``` Salve as alterações e saia do editor (use Ctrl + X, depois Y e Enter). ## Executando o Script Execute o script com o seguinte comando: ``` python3 s3_client.py ``` Se configurado corretamente, você verá uma lista de buckets no seu armazenamento. ## Operações Adicionais de Armazenamento ### Criando um Arquivo de Teste Para testar os uploads e downloads de arquivos, crie um arquivo de teste: ``` echo "Conteúdo de exemplo do arquivo" > local_file.txt ``` ### Fazendo Upload de um Arquivo Adicione a seguinte linha ao seu script para fazer o upload do arquivo: ``` s3_client.upload_file('local_file.txt', 'bucket_name', 'remote_file.txt') ``` Onde: - local_file.txt é o caminho para o arquivo local. - bucket_name é o nome do bucket de destino. - remote_file.txt é o nome do arquivo no armazenamento. ## Fazendo Download de um Arquivo Da mesma forma, adicione esta linha para fazer o download do arquivo: ``` s3_client.download_file('bucket_name', 'remote_file.txt', 'local_file.txt') ``` Onde: - bucket_name é o nome do bucket. - remote_file.txt é o nome do arquivo no armazenamento. - local_file.txt é o caminho onde o arquivo será salvo. ## Resolução de Problemas de Dependências Se você encontrar erros, verifique se todas as dependências estão atualizadas. Por exemplo, você pode atualizar o botocore manualmente: pip3 install --upgrade botocore[/code] ## Notas - Se você não tem um serviço de armazenamento compatível com S3 configurado, verifique com seu provedor as informações necessárias, como endpoint_url, chaves de acesso e configurações de buckets. - Você pode usar editores de texto alternativos, como vim ou qualquer editor com o qual se sinta confortável. - Certifique-se de que sua conta de usuário tenha as permissões necessárias para criar e gerenciar arquivos no armazenamento S3. Este guia garante um processo de configuração tranquilo, permitindo que os usuários se conectem e interajam eficientemente com o armazenamento compatível com S3. ## Explore Mais Recursos sobre Python Para quem deseja expandir seus conhecimentos, nossa base de conhecimento oferece uma variedade de materiais focados em Python. Se você está começando agora ou buscando enfrentar desafios mais avançados, encontrará tudo o que precisa. Oferecemos tutoriais para iniciantes, dicas para otimizar seu código e artigos detalhados sobre tópicos como integração de banco de dados, desenvolvimento de APIs, utilização de frameworks como Django e Flask, e construção de aplicativos com bibliotecas de aprendizado de máquina. Esses recursos são projetados para ajudá-lo a construir uma base sólida em Python e aplicá-lo de forma eficaz para resolver problemas complexos do mundo real. https://serverspace.com.br/support/help/como-resolver-o-erro-do-mongodb-connect-econnrefused-127-0-0-127017.md Aprenda a resolver o erro "Connect ECONNREFUSED 127.0.0.1:27017" no MongoDB. Descubra as etapas de solução de problemas para se reconectar com sucesso ao seu banco de dados MongoDB. Um erro bastante comum tem afetado muitos usuários do MongoDB, impedindo a conexão aos servidores de banco de dados. A causa desse problema pode estar relacionada a eventos recentes na MongoDB Inc., que deixaram usuários com servidores de banco de dados inativos. Ao tentar se conectar via o cliente mongosh, o servidor retorna a resposta padrão: "mongodb://127.0.0.1:27017/?directconnection=true&serverselectiontimeoutms=2000&appname=mongosh+2.1.1" mesmo quando há uma conexão local. Screenshot №1 — Erro Neste caso, tanto o cliente quanto o servidor estão na mesma máquina. Assim, as chamadas do cliente para o servidor serão feitas via loopback. No entanto, no seu caso, pode ser outro servidor na rede. O cliente ou a ferramenta mongosh gera uma solicitação e a envia para a porta do servidor, tentando estabelecer a conexão. Se for bem-sucedida, veremos a interface do MongoDB para interagir com o servidor; se falhar, veremos uma resposta de erro. As razões para isso podem variar bastante, desde o daemon não estar em execução até a indisponibilidade do servidor na rede. Todos os passos deste tutorial podem ser realizados em [servidores na nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md). ## O daemon foi desativado Primeiro, vamos verificar o funcionamento do daemon do MongoDB usando o gerenciador de serviços systemd. Se o seu sistema operacional usa um sistema diferente, adapte o comando de acordo com ele: ```bash systemctl status mongod ``` Screenshot №2 — Daemon desativado Como podemos ver na captura de tela, o serviço está desativado e não está funcionando. Vamos tentar iniciá-lo: ```bash systemctl start mongod ``` Em seguida, vamos verificar o estado do serviço em execução no sistema para identificar possíveis erros: ``` journalctl -xeu mongod ``` Screenshot №3 — Logs do serviço Ótimo, o serviço foi iniciado. Podemos confirmar isso pelas linhas "job for unit finished successfully". No entanto, o problema nem sempre é apenas um daemon não iniciado. Um erro de configuração do MongoDB também é bastante comum. ## Erro de conexão e configuração Ao conectar-se ao servidor, verifique se a sua solicitação está correta. No erro descrito anteriormente, há a entrada: mongodb://127.0.0.1:27017/?directconnection=true, Isso indica uma conexão com um servidor local. Se você deseja usar um servidor remoto, utilize a seguinte sintaxe: mongodb://meuusuario:minhasenha@123.456.789.0:27017/meubanco. Obviamente, substitua meuusuario, minhasenha, 123.456.789.0 e meubanco pelos valores corretos para conectar-se corretamente. Se isso não funcionar, verifique a disponibilidade da rede do seu servidor na porta onde ele deve estar escutando conexões. Você pode fazer isso com uma ferramenta específica. Caso não tenha uma instalada, use o seguinte comando para instalá-la: ```bash apt install netcat-traditional -y ``` Agora, vamos verificar a conexão: ``` nc -zv 127.0.0.1 27017 ``` Screenshot №4 — Teste da porta No nosso servidor, o serviço está em execução, então há uma resposta. No seu caso, pode ser diferente. Se a porta estiver fechada, edite o arquivo de configuração do MongoDB: ``` nano /etc/mongod.conf ``` Screenshot №5 — Arquivo de configuração Certifique-se de que as configurações de rede atendem às suas necessidades e que o servidor está escutando na porta e no endereço corretos. Caso contrário, altere os dados, salve o arquivo usando Ctrl + O e reinicie o serviço! ## O usuário do sistema não tem permissões O MongoDB cria um serviço e um usuário específicos e define no sistema que ele será executado sob esse usuário. Isso limita os direitos do software apenas aos necessários, além de controlar o acesso aos arquivos do banco de dados. Para verificar se o arquivo de configuração pertence ao usuário correto na pasta de armazenamento, use o comando: ``` ls -la /etc/mongod.conf ``` Screenshot №6 — Permissões À esquerda, podemos ver as permissões de acesso para três grupos. O dono do arquivo pode escrever e ler, enquanto outros grupos podem apenas ler. Neste caso, o proprietário é o root, o que é aceitável. O mais importante é garantir que a categoria "outros", na qual o MongoDB está incluído, tenha acesso de leitura ou seja o proprietário com permissões adequadas. Para conceder permissões, use o comando: ```bash chmod 644 /etc/mongod.conf ``` Screenshot №7 — Alteração de permissões Após isso, teste a conexão novamente e reinicie o daemon do MongoDB! Compreender as causas desse erro e utilizar as ferramentas corretas para diagnosticar e corrigir o problema permitirá restaurar com sucesso o funcionamento do MongoDB e resolver falhas de conectividade com o servidor do banco de dados. https://serverspace.com.br/about/news/serverspace-2024-resultados-do-ano.md Em 2025, seguimos prontos para novos desafios. Relembre os destaques de 2024: novos serviços, data centers e expansão global! O ano de 2025 já começou a todo vapor, e estamos prontos para encarar os novos desafios que ele trará. A equipe Serverspace continua inovando e aprimorando seus serviços. Mas antes de olharmos para o futuro, é hora de fazer um balanço dos grandes destaques de 2024: novos serviços e data centers, expansão geográfica de escritórios locais, uma parceria com um projeto internacional de GameDev e muito mais. Confira os principais acontecimentos do ano que passou! ## As nuvens da Serverspace sobre todos os continentes O último ano foi marcado por avanços significativos na expansão internacional do nosso projeto. A Serverspace estabeleceu escritórios locais em 3 novos países: Brasil, Canadá e Emirados Árabes Unidos. Essas regiões estão em rápida evolução no setor de TI e apresentam uma alta demanda por tecnologias em nuvem e soluções digitais. Para os usuários brasileiros, disponibilizamos o site [serverspace.com.br](https://serverspace.com.br/index.md), enquanto os clientes canadenses podem acessar o [serverspace.ca](http://serverspace.ca). Um destaque especial é o lançamento do [falconcloud.ae](http://falconcloud.ae) nos Emirados Árabes Unidos, uma empresa baseada nas tecnologias da Serverspace. Cada um desses projetos oferece uma ampla gama de serviços em nuvem, desde servidores virtuais VStack até ferramentas de desenvolvimento, mantendo os altos padrões de qualidade da Serverspace. Os data centers locais garantem baixa latência e alta confiabilidade para os negócios nas regiões atendidas. Além disso, em todas as plataformas, estão disponíveis: painel de controle gratuito em inglês e espanhol, pagamentos em moedas locais e suporte técnico 24/7. ## Expansão da infraestrutura: acesso mais próximo do que nunca Em 2024, duas novas localizações para o lançamento de servidores virtuais foram adicionadas ao painel de controle: Brasil (São Paulo) e Emirados Árabes Unidos (Dubai). O data center [SP3 Equinix](https://serverspace.com.br/infrastructure/data-center-sao-paulo.md), em São Paulo, é um dos principais centros de processamento de dados do Brasil. Ele atende aos padrões internacionais de qualidade e possui as certificações Tier III do Uptime Institute e a certificação de Sustentabilidade Operacional Ouro. O SP3 é equipado com servidores vStack SL201-25RE, que contam com processadores avançados de 16 núcleos Intel Xeon Gold 6226R, com arquitetura Cascade Lake e frequência de 2,70 GHz. Outro data center agora disponível é o [Equinix DX1](https://serverspace.com.br/infrastructure/data-center-dubai.md), em Dubai. Projetado de acordo com os padrões internacionais Tier III, ele possui certificações como ISO 27001, ISO 9001 e PCI DSS. O cluster conta com servidores vStack-R-SL201-25RE, equipados com CPUs Intel Xeon Gold de 16 núcleos e frequência base de 3,0 GHz. O acesso aos data centers no Brasil e nos Emirados Árabes Unidos permite aos usuários da Serverspace alcançar com rapidez e eficiência os mercados da América do Sul e do Oriente Médio. Essas novas localizações oferecem baixa latência, conformidade com as legislações locais de dados e acesso a equipamentos modernos para máxima performance. ## Novos Serviços - Oportunidades Únicas Em 2024, introduzimos diversas novidades importantes: integração de GPT via API e o serviço Video on Demand (VoD). [GPT via API](https://serverspace.com.br/services/api-gpt-do-serverspace.md). Agora, os clientes têm acesso rápido e eficiente à integração de inteligência artificial em seus aplicativos. Seja para chatbots, tradução de textos ou criação de conteúdo criativo, as tecnologias de IA oferecem novos horizontes, aumentam a produtividade e melhoram a experiência do usuário. Para saber como usar a IA a seu favor, confira o [artigo completo](https://www.folhavitoria.com.br/geral/serverspace-lista-cinco-armadilhas-no-uso-de-ia/). [Video on Demand (VoD)](https://serverspace.com.br/services/video-on-demand-vod.md). Com a crescente demanda por vídeos de carregamento rápido, disponibilizamos o VoD, que garante entrega instantânea de vídeos com alta velocidade. Através de nossa CDN otimizada, os arquivos de vídeo são distribuídos globalmente, garantindo que estejam sempre próximos ao usuário final. ## Nova Sistema Operacional: Rocky Linux Adicionamos suporte ao [Rocky Linux](https://serverspace.com.br/about/news/o-serverspace-adiciona-o-novo-sistema-operacional-rocky-linux.md), uma alternativa confiável e estável ao CentOS. Principais benefícios: - Confiabilidade e Estabilidade: Suporte a longo prazo com atualizações consistentes, ideal para servidores corporativos. - Compatibilidade: Totalmente compatível com RHEL, permitindo migração fácil sem alterar a infraestrutura. - Transparência: Gerido por uma comunidade aberta, sem restrições comerciais, perfeito para negócios. ## Serverspace X Sumo Tatami Em 2024, iniciamos uma parceria com o projeto internacional de GameDev [Sumo Tatami](https://store.steampowered.com/app/1707170/Sumo_Tatami_Prologue/). Os servidores virtuais da Serverspace ajudaram o jogo a lidar com altas demandas, ofereceram baixa latência e garantiram uma experiência de jogo fluida e emocionante. Além disso, com nossa infraestrutura escalável, o projeto conseguiu suportar o crescimento rápido da sua base de usuários globalmente. Detalhes sobre essas novidades estão disponíveis no [nosso site](https://serverspace.com.br/about/cases/sumo-tatami-x-serverspace.md). ## Planos para o Futuro No próximo ano, temos grandes passos planejados para o desenvolvimento da Serverspace. Entre as novidades, destacamos: - Abertura de um novo escritório e localização VPS no Uzbequistão; - Atualização do programa de indicação, tornando-o ainda mais vantajoso para nossos clientes e parceiros; - Expansão das funcionalidades dos servidores em nuvem VStack, incluindo a criação de backups diretamente pelo painel de controle; - Adição de novas localizações para VPS; - Integração de novos sistemas operacionais para servidores; - Lançamento de novos serviços e recursos. Continuaremos trabalhando para aprimorar nossos serviços, aumentar a estabilidade e melhorar o desempenho de todas as nossas soluções. Fique por dentro das novidades no [changelog](https://serverspace.com.br/changelog.md), em nossa newsletter e no [LinkedIn](https://www.linkedin.com/company/serverspace-brasil/) – muitas coisas incríveis estão por vir. https://serverspace.com.br/support/glossary/armazenamento-de-objetos.md Saiba o que é armazenamento de objetos, seus principais recursos, benefícios e casos de uso. Gerenciamento eficaz de dados para soluções modernas de TI **Armazenamento de Objetos (Object Storage)** é um método moderno de gerenciamento de dados, onde as informações são divididas em entidades individuais chamadas objetos. Cada objeto contém dados, metadados e um identificador único, o que o torna uma unidade autônoma e fácil de gerenciar. Esse método se diferencia dos tradicionais, como armazenamento de arquivos ou blocos, e possui características únicas. ## Principais características do armazenamento de objetos - **Organização dos dados** Os objetos são armazenados em containers ou buckets, em vez de serem organizados como arquivos ou blocos tradicionais. - **Metadados** Cada objeto é acompanhado por um conjunto detalhado de metadados, o que facilita o gerenciamento e a busca de informações. - **Identificação** Os objetos recebem identificadores únicos, permitindo encontrar e recuperar os dados de forma rápida. - **Escalabilidade** Esses sistemas lidam muito bem com o aumento do volume de dados, tornando-os ideais para armazenar grandes quantidades de informações não estruturadas. ## Vantagens do armazenamento de objetos - **Gestão simplificada** Com o uso de metadados, fica mais fácil organizar os dados por atributos e categorias. - **Maior eficiência** O armazenamento de objetos é otimizado para trabalhar com grandes volumes de dados. - **Confiabilidade** Os dados são duplicados e distribuídos entre vários nós, aumentando sua integridade e disponibilidade. - **Integração via API** A maioria das soluções oferece interfaces convenientes (como S3 API) para integração com diferentes serviços. ## Aplicações do armazenamento de objetos - **Multimídia** Ideal para armazenar fotos, vídeos e áudios. - **Backup e Arquivamento** Proporciona armazenamento de longo prazo e confiável para dados. - **Big Data e Machine Learning** Usado para armazenar grandes volumes de dados aplicados em análises e treinamentos de modelos. ## Soluções populares - **Amazon S3** O serviço de armazenamento de objetos mais popular. - **Google Cloud Storage** Solução do Google com alta confiabilidade. - **Microsoft Azure Blob Storage** Oferece flexibilidade para diferentes tipos de dados. - **OpenStack Swift** Plataforma aberta, ideal para nuvens privadas. ## Saiba mais Se você deseja aprofundar seus conhecimentos sobre armazenamento de objetos e outras tecnologias em nuvem, consulte a base de conhecimento do Serverspace. Lá, você encontrará artigos detalhados, tutoriais e explicações sobre os principais termos, ajudando a entender melhor as soluções de TI atuais. O armazenamento de objetos está ganhando cada vez mais popularidade devido à sua versatilidade, capacidade de escalabilidade e gerenciamento eficiente dos dados. Ele oferece interfaces API convenientes para integração e lida muito bem com grandes volumes de informações. https://serverspace.com.br/support/glossary/saas-software-as-a-service.md O que é SaaS? Uma explicação simples do modelo de software como serviço, suas vantagens, desvantagens, exemplos e comparação com o modelo local. Saiba tudo sobre SaaS! **SaaS (Software as a Service)** é uma forma de fornecer produtos de software em que os usuários acessam aplicativos pela internet, sem a necessidade de instalá-los em seus dispositivos. Em vez de comprar uma licença completa de software, os usuários pagam pelo acesso com base em um modelo de assinatura. ## Como o SaaS Funciona? - **Armazenamento Centralizado**. O software é hospedado nos servidores do provedor, eliminando a necessidade de instalação local. - **Acesso via Rede**. A interação com o software ocorre por meio de um navegador web ou um aplicativo dedicado, exigindo uma conexão com a internet. - **Assinatura**. Os usuários pagam pelo serviço regularmente — geralmente mensalmente ou anualmente. Esse modelo torna o software acessível e flexível para diversos cenários de uso. ## Exemplos de SaaS - **Aplicativos de Escritório na Nuvem**: Google Workspace, Microsoft 365. - **Sistemas de CRM**: Salesforce, HubSpot. - **Ferramentas de Colaboração**: Slack, Trello, Asana. - **Plataformas de Marketing**: Mailchimp, SEMrush. ## Vantagens do SaaS - **Eficiência de Recursos**: Não é necessário hardware potente ou instalação de software. - **Atualizações Automáticas**: Os provedores atualizam o serviço regularmente, adicionando recursos e corrigindo erros. - **Acessibilidade**: O SaaS pode ser acessado de qualquer lugar com conexão à internet. - **Escalabilidade**: Fácil ampliação de recursos (por exemplo, adicionar mais usuários ou armazenamento). ## Desvantagens do SaaS - **Dependência da Internet**: É necessária uma conexão estável para o funcionamento do serviço. - **Controle Limitado**: Os usuários dependem das decisões do provedor (por exemplo, em relação à privacidade dos dados). - **Modelo de Assinatura**: Os custos a longo prazo podem exceder os da compra de software permanente. ## Comparação entre SaaS e On-Premises SaaS e On-premises são dois modelos diferentes de fornecimento de software, cada um com suas características e usos específicos. No caso do SaaS, o software é acessado pela internet, eliminando a necessidade de instalação em dispositivos individuais. Os usuários podem trabalhar com o serviço de qualquer lugar com conexão à rede. As atualizações são realizadas automaticamente, e os custos geralmente são calculados com base em uma assinatura, tornando o modelo financeiramente previsível. Por outro lado, o On-premises envolve a hospedagem do software diretamente nos servidores ou dispositivos da empresa. Esse modelo oferece controle total sobre os dados e configurações do sistema, mas exige investimentos significativos em hardware, licenças e manutenção. Além disso, as atualizações precisam ser realizadas manualmente, adicionando complexidade à gestão. A principal diferença entre SaaS e On-premises está no local onde o software é hospedado e quem é responsável por sua manutenção. O SaaS é mais adequado para empresas que priorizam conveniência, acessibilidade e esforço mínimo de gerenciamento, enquanto o On-premises é preferido por aquelas que valorizam segurança, privacidade e controle total. ## Conclusão O SaaS é uma parte fundamental do cenário moderno de TI, oferecendo flexibilidade, conveniência e escalabilidade. Esse modelo é amplamente adotado por empresas e usuários individuais, proporcionando acesso a tecnologias avançadas sem a necessidade de infraestrutura complexa. https://serverspace.com.br/support/glossary/dimensionamento-da-nuvem.md O dimensionamento da nuvem é uma tecnologia fundamental que oferece flexibilidade e resiliência aos aplicativos. Conheça os tipos de dimensionamento, como horizontal, vertical e automático, bem como os benefícios, como custos reduzidos e maior disponibilidade, para a utilização eficiente dos… **Escalonamento na Nuvem** é o processo de aumentar ou diminuir os recursos fornecidos pela infraestrutura em nuvem para atender às necessidades de aplicativos e usuários. É uma das principais características da computação em nuvem que permite que os sistemas se adaptem de forma eficaz a cargas de trabalho variáveis, sem exigir investimentos significativos em hardware físico. ## Métodos de Escalonamento na Nuvem **Escalonamento Horizontal** Isso envolve adicionar instâncias adicionais de recursos (servidores, máquinas virtuais) para distribuir a carga. Em vez de aumentar o poder de um servidor existente, o sistema escala adicionando novos nós. O escalonamento horizontal pode ser automatizado usando tecnologias como o Kubernetes e é usado na maioria das soluções modernas de nuvem para garantir tolerância a falhas e escalabilidade. **Escalonamento Vertical** O escalonamento vertical refere-se ao aumento da potência de um único recurso, como adicionar memória RAM ou atualizar o processador de uma máquina virtual. Isso pode ser útil para aplicativos que não funcionam de forma eficiente em um ambiente distribuído, mas apresenta limitações quando se trata de melhorar o desempenho. **Escalonamento Automático (Auto Scaling)** O escalonamento automático é a adição ou remoção dinâmica de recursos com base na carga atual do sistema. Ele garante o desempenho ideal dos aplicativos, mesmo quando o número de usuários ou o volume de dados varia significativamente ao longo do tempo. Um exemplo é o recurso de escalonamento automático no AWS, onde as configurações permitem adicionar máquinas virtuais conforme o tráfego aumenta e removê-las quando a demanda diminui. ## Benefícios do Escalonamento na Nuvem - **Flexibilidade**: As soluções em nuvem permitem o escalonamento rápido para cima ou para baixo com base nas necessidades em tempo real, possibilitando a economia de custos sem sobrecarregar a infraestrutura. - **Tolerância a Falhas**: O escalonamento garante a disponibilidade dos aplicativos, mesmo durante cargas de pico, prevenindo falhas e períodos de inatividade. - **Redução de Custos**: Ao pagar apenas pelos recursos usados, as empresas podem reduzir significativamente os custos com infraestrutura. ## Aplicações do Escalonamento na Nuvem - **Aplicativos Web**: O escalonamento na nuvem é ideal para aplicativos web que enfrentam tráfego flutuante, como sites de comércio eletrônico, portais de notícias ou redes sociais. - **Processamento de Big Data**: O escalonamento é crucial para aplicativos que lidam com grandes volumes de dados, como plataformas de análise ou aplicações de aprendizado de máquina. - **Jogos e Serviços Multimídia**: O escalonamento na nuvem ajuda a lidar com o tráfego intenso em jogos online ou serviços de streaming. ## Conclusão O escalonamento na nuvem é uma ferramenta essencial para garantir a confiabilidade e a eficiência dos serviços online modernos. Ele permite que as empresas se adaptem às condições em mudança e otimizem o uso de recursos, o que é crucial para manter a competitividade em ambientes tecnológicos que evoluem rapidamente. https://serverspace.com.br/support/glossary/armazenamento-em-bloco.md O armazenamento em bloco é uma tecnologia para o gerenciamento eficiente de dados como blocos individuais de tamanho fixo. Saiba como ela melhora o desempenho, a flexibilidade e a confiabilidade do armazenamento e sua aplicação em serviços de nuvem, virtualização… O armazenamento em blocos é um tipo de armazenamento de dados usado para organizar informações em blocos individuais de tamanho fixo. Cada bloco representa uma pequena parte dos dados, que pode ser acessada e gerenciada de forma independente de outros blocos. Esse tipo de armazenamento é utilizado na maioria dos sistemas modernos, incluindo servidores, bancos de dados e plataformas em nuvem. ## Como Funciona o Armazenamento em Blocos No armazenamento em blocos, os dados são divididos em blocos individuais do mesmo tamanho, e cada bloco pode ser gravado, lido ou modificado de forma independente dos outros. Cada bloco possui um identificador único (endereço), permitindo que o sistema localize e gerencie os dados no nível do bloco. Ao contrário dos sistemas de arquivos, onde os dados são armazenados como arquivos, o armazenamento em blocos fornece um gerenciamento de dados de baixo nível, mas flexível. Quando um aplicativo ou sistema precisa acessar dados, ele pode solicitar um bloco específico, e o armazenamento fornecerá o bloco correspondente. No caso do armazenamento em nuvem, os blocos de dados podem ser fisicamente armazenados em dispositivos e servidores distribuídos, aumentando a escalabilidade e a disponibilidade. ## Vantagens do Armazenamento em Blocos - **Desempenho** O armazenamento em blocos oferece altas velocidades de leitura e gravação, pois os blocos de dados podem ser facilmente extraídos e gravados de forma rápida. Isso é especialmente importante para aplicativos com operações intensivas de entrada e saída, como bancos de dados ou virtualização. - **Flexibilidade** Os blocos podem ser usados para diferentes tipos de dados e podem ser modificados sem afetar outros blocos. Isso torna o armazenamento em blocos adequado para várias aplicações, desde sistemas de arquivos simples até soluções empresariais complexas. - **Escalabilidade** O armazenamento em blocos é altamente escalável, pois permite adicionar novos blocos à medida que o volume de dados cresce. Em soluções de nuvem, o armazenamento em blocos é frequentemente usado para fornecer flexibilidade na gestão de espaço e recursos. - **Confiabilidade e Tolerância a Falhas** Muitos provedores de armazenamento em blocos oferecem recursos de replicação e backup de dados. Isso aumenta a confiabilidade e segurança dos dados em caso de falhas de hardware ou perda de dados. ## Desvantagens do Armazenamento em Blocos - **Complexidade de Gerenciamento** O armazenamento em blocos exige que os usuários gerenciem aspectos de baixo nível do armazenamento de dados, como alocação e configuração dos blocos. Isso pode ser desafiador para usuários menos experientes. - **Menos Conveniência para o Usuário Final** Ao contrário do armazenamento de arquivos, que fornece uma interface simples para trabalhar com arquivos e pastas, o armazenamento em blocos exige configuração adicional para usar dados no formato de arquivos. - **Custo** O armazenamento em blocos pode ser mais caro em comparação com outros tipos de armazenamento, como o armazenamento de objetos, pois exige uma infraestrutura e gerenciamento mais complexos. ## Aplicações do Armazenamento em Blocos - **Virtualização** Máquinas virtuais (VMs) frequentemente utilizam armazenamento em blocos para armazenar discos virtuais. Isso ajuda a garantir alto desempenho e flexibilidade no gerenciamento de dados dentro de ambientes virtuais. - **Bancos de Dados** O armazenamento em blocos é a base para muitos bancos de dados, pois fornece a velocidade de entrada e saída necessária para processar grandes volumes de dados em tempo real. - **Computação em Nuvem** Provedores de nuvem, como Amazon Web Services (AWS), Microsoft Azure e Google Cloud, oferecem soluções de armazenamento em blocos que são usadas para criar discos virtuais e armazenar dados na nuvem. Essas soluções permitem que os usuários escalem recursos de forma flexível, conforme suas necessidades. - **Armazenamento de Dados Críticos** O armazenamento em blocos também é uma solução ideal para armazenar dados de importância crítica, como informações financeiras, registros médicos ou outros dados sensíveis que exigem confiabilidade e segurança. ## Conclusão O armazenamento em blocos é uma tecnologia crucial para organizações e usuários que exigem alto desempenho, flexibilidade e confiabilidade no gerenciamento de dados. Ele permite o manuseio eficiente de grandes volumes de dados, garantindo acesso rápido e escalabilidade. Apesar de suas desvantagens, como alto custo e complexidade de gerenciamento, o armazenamento em blocos continua sendo um elemento essencial nas infraestruturas de computação em nuvem, virtualização e bancos de dados. https://serverspace.com.br/support/glossary/teste-de-estresse.md Saiba o que são testes de sustentabilidade, como funcionam, para que são usados e exemplos de casos de uso de Soak Testing **Teste de Estresse: Garantindo a Confiabilidade de Sistemas em Condições Extremas** O teste de estresse é o processo de avaliar a resiliência de um sistema ou aplicação em condições extremas ou no limite de sua capacidade, para determinar sua habilidade de lidar com cargas acima do normal. O objetivo é identificar pontos de falha, determinar os limites do sistema e garantir que ele continue funcional ou se recupere corretamente após uma sobrecarga. **No contexto de software, o teste de estresse geralmente envolve:** - **Avaliação sob cargas máximas:** Como, por exemplo, submeter o servidor a um grande número de usuários ou requisições para observar como ele reage. - **Análise em condições de escassez de recursos:** Como limitações de memória ou capacidade de processamento. - **Teste de recuperação:** Avaliação da rapidez com que o sistema retorna ao estado normal após uma falha. ## **Tipos de Testes de Estresse** Existem diferentes tipos de testes de estresse, dependendo dos aspectos do sistema ou aplicação avaliados em condições extremas. Abaixo, exploramos os principais tipos, seus exemplos e objetivos: **1. Teste de Carga de Pico (Peak Load Testing)** - **Objetivo:** Avaliar como o sistema lida com a carga máxima esperada em condições reais de operação. - **Exemplo:** Testar websites durante momentos de pico, como Black Friday ou lançamentos de novos recursos. - **Por que realizar?** Para verificar se o sistema suporta alto tráfego sem perda de desempenho, mesmo com acessos simultâneos. **2. Teste de Carga Extrema (Breaking Load Testing)** - **Objetivo:** Determinar o ponto em que o sistema falha ou começa a apresentar problemas em condições de carga extrema. - **Exemplo:** Testar servidores ou infraestruturas de rede em situações de tráfego ou requisições abruptamente elevados. - **Por que realizar?** Para identificar os limites físicos e lógicos do sistema, evitando falhas em ambientes reais. **3. Teste de Carga Sustentada (Sustained Load Testing)** - **Objetivo:** Avaliar a capacidade do sistema de suportar cargas contínuas por longos períodos. - **Exemplo:** Testar servidores que precisam operar de forma ininterrupta por dias ou semanas, como em serviços na nuvem. - **Por que realizar?** Para detectar problemas como vazamento de memória e perda de desempenho ao longo do tempo. **4. Teste de Failover (Failover Testing)** - **Objetivo:** Testar a capacidade do sistema de se recuperar após falhas de hardware ou software. - **Exemplo:** Avaliar serviços de rede que operam com servidores de backup ou infraestruturas em nuvem, como bancos de dados. - **Por que realizar?** Para garantir alta disponibilidade e minimizar o tempo de inatividade em situações de emergência. **5. Teste com Recursos Limitados (Resource Starvation Testing)** - **Objetivo:** Avaliar o desempenho do sistema sob restrições de recursos, como memória, processamento ou espaço em disco. - **Exemplo:** Testar servidores, bancos de dados ou aplicativos web para garantir confiabilidade em cenários de escassez de recursos. - **Por que realizar?** Para compreender como o sistema lida com a falta de recursos e identificar necessidades de mecanismos de proteção contra falhas. **6. Teste de Concorrência (Concurrency Testing)** - **Objetivo:** Verificar o desempenho do sistema sob múltiplas requisições ou ações simultâneas. - **Exemplo:** Testar sistemas multiusuário, como jogos online ou aplicativos colaborativos, com alta simultaneidade de acessos. - **Por que realizar?** Para garantir que o sistema gerencie requisições paralelas sem problemas de sincronização ou queda de desempenho. **7. Teste de Falha de Componentes (Component Failure Testing)** - **Objetivo:** Avaliar a resiliência do sistema quando um ou mais componentes falham. - **Exemplo:** Testar sistemas distribuídos ou serviços em nuvem com arquiteturas baseadas em microsserviços. - **Por que realizar?** Para assegurar que o sistema funcione mesmo com falhas parciais, utilizando redundância e tolerância a falhas. ## **Exemplos de Aplicação de Testes de Estresse** - **E-commerces:** Antes de um lançamento, é essencial garantir que o site suporte picos de tráfego, como durante promoções. - **Serviços em Nuvem:** Plataformas como AWS ou Azure realizam testes para garantir desempenho com milhões de usuários simultâneos. - **Servidores de Jogos:** Jogos online testam servidores para suportar grandes volumes de jogadores sem atrasos ou falhas. - **Redes de Telecomunicações:** Garantem resiliência durante eventos de alta demanda, como catástrofes ou grandes eventos. ## **Por que realizar testes de estresse?** - **Aumentar a confiabilidade:** Identifica vulnerabilidades antes do lançamento. - **Garantir escalabilidade:** Avalia a capacidade do sistema de crescer com o aumento da carga. - **Preparação para picos:** Simula cenários de tráfego intenso ou aumentos no número de usuários. - **Minimizar riscos:** Previne falhas e problemas de desempenho que podem gerar perdas de dados ou de clientes. O teste de estresse é, portanto, uma etapa essencial para garantir a qualidade e a confiabilidade de sistemas e infraestruturas de TI. https://serverspace.com.br/about/news/interface-em-portugues-e-largura-de-banda-ampliada.md Agora, a interface do painel de controle está disponível em português, e a largura de banda máxima no data center brasileiro foi aumentada de 100 Mbps para 500 Mbps. Estamos continuamente aprimorando o serviço do Serverspace para oferecer mais comodidade aos nossos usuários no Brasil. Agora, a interface do painel de controle está disponível em português, e a largura de banda máxima no data center brasileiro foi aumentada de 100 Mbps para 500 Mbps. ### Idioma português no painel de controle Anteriormente, a interface do painel de controle do Serverspace suportava apenas inglês e espanhol. Agora usuários do Brasil e de outros países lusófonos podem acessar o serviço em seu idioma nativo. Como alterar o idioma no painel de controle? - Acesse o [painel de controle](https://my.serverspace.com.br/) do Serverspace; - No menu lateral esquerdo, vá até a seção "Settings"; - Encontre a opção "Interface language"; - Selecione "Português" e salve as alterações. Após isso, a interface será atualizada automaticamente e exibida em português. ### Aumento da largura de banda máxima para 500 Mbps Agora, os usuários do Serverspace podem escolher uma largura de banda de até 500 Mbps ao selecionar o data center Equinix SP3 (São Paulo). Anteriormente, o limite máximo era de 100 Mbps, mas com essa atualização, ampliamos as possibilidades para projetos que demandam maior capacidade de rede. A nova largura de banda já está disponível no painel de controle e em todas as calculadoras de preços para servidores. Como alterar a largura de banda em um servidor já criado? - Acesse o painel de controle e abra a lista de servidores; - Escolha o servidor desejado e vá até suas configurações; - Na seção "Redes conectadas", ajuste a largura de banda dentro do intervalo disponível; - Salve as alterações. O servidor será reiniciado automaticamente para aplicar as novas configurações; Essas melhorias tornam o Serverspace ainda mais acessível e eficiente, proporcionando uma interface intuitiva e maior flexibilidade para gerenciar os recursos de rede. _[Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas abertas como API, CLI e Terraform estão disponíveis para integração dos serviços dos clientes._ https://serverspace.com.br/support/glossary/atop.md Aprenda a usar o atop, um poderoso utilitário de monitoramento do Linux para analisar a utilização da CPU, da memória, do disco e da rede e salvar dados para diagnóstico do sistema. **atop — uma ferramenta avançada de monitoramento em tempo real no Linux** O **atop** é uma ferramenta avançada de monitoramento em tempo real para ambientes Linux, fornecendo uma coleta detalhada de dados sobre a carga da CPU, uso de memória, atividade de disco, rede e processos em execução. Diferente de ferramentas padrão como **top**,**htop **e **iostat**, ele não apenas fornece informações detalhadas sobre cada processo, mas também permite registrar estatísticas em arquivos de log para análise posterior. ## Principais recursos do atop - Supervisão de todos os processos, inclusive os já encerrados. - Visualização detalhada da carga da CPU separada por núcleo. - Avaliação do desempenho do disco, consumo de memória e tráfego de rede. - Armazenamento de estatísticas em logs para análise posterior. - Seleção e filtragem de processos com base no uso de recursos. - Detecção de pontos críticos no desempenho do sistema (E/S, CPU, RAM, rede). ## Instalação do atop Para a maioria das distribuições Linux: **Debian, Ubuntu:** ```bash sudo apt install atop ``` **RHEL, CentOS:** ```bash sudo yum install atop ``` **Arch Linux:** ```bash sudo pacman -S atop ``` Após a instalação, o comando para iniciar a ferramenta é: ``` atop ``` ## Como usar o atop? Ao ser executado, o **atop** exibe uma tabela com as seguintes métricas: - **PRC** — Número total de processos. - **CPU** — Carga da CPU (incluindo tempo de espera por E/S). - **MEM** — Uso da memória RAM e swap. - **NET** — Atividade das interfaces de rede. - **DSK** — Operações de entrada e saída no disco. ## Exemplos de comandos úteis Monitoramento com atualização a cada 5 segundos: ``` atop 5 ``` Gravação de dados em um arquivo de log (a cada 10 segundos): ``` sudo atop -w /var/log/atop.log 10 ``` Visualização de logs salvos para um determinado período: ``` sudo atop -r /var/log/atop.log ``` Filtragem por um processo específico: ``` atop -p PID ``` ## Por que o atop é melhor que as ferramentas padrão? | Função | top | htop | atop | | --- | --- | --- | --- | | Análise detalhada de processos | Parcial | Parcial | Sim | | Monitoramento de processos finalizados | Não | Não | Sim | | Registro de logs para análise posterior | Não | Não | Sim | | Dados de rede e disco | Não | Não | Sim | | Flexibilidade na filtragem | Média | Boa | Excelente | ## Conclusão O **atop** é uma poderosa ferramenta de monitoramento no Linux, ideal para administradores de sistemas e engenheiros DevOps. Ele auxilia na identificação de gargalos no desempenho do servidor e no armazenamento de dados para diagnósticos detalhados. ## Base de Conhecimento Serverspace No **Base de Conhecimento** da Serverspace, você pode encontrar mais instruções sobre o uso do **atop**, além de análises detalhadas de outras ferramentas de monitoramento e administração do Linux. Também há artigos explicativos sobre termos essenciais para uma melhor compreensão da gestão de sistemas servidores. https://serverspace.com.br/support/glossary/api.md Uma API é uma descrição das maneiras pelas quais os programas interagem uns com os outros, como eles podem se comunicar e passar dados uns para os outros. API (Application Programming Interface) é uma interface de programação de aplicações, ou seja, uma descrição dos métodos de interação entre programas, definindo como eles podem se comunicar e trocar dados entre si. A API simplifica a criação de código, pois fornece um conjunto de classes, funções ou estruturas prontas para serem utilizadas em conjunto com os dados existentes. Esse conceito não se aplica apenas ao desenvolvimento web, mas também a diversos produtos de software em geral. Controles de videogame, geladeiras, TVs e alto-falantes – todos possuem sua própria API. ## Do que é composta uma API? A API é composta por duas partes principais: - Interface de interação; - Descrição. A interface pode ser uma janela visual sustentada por um texto explicativo, enquanto a descrição responde à pergunta "como essa interface funciona?". ## API da Serverspace Vamos analisar o conceito de API sob outra perspectiva, utilizando a nossa empresa como exemplo: A API da _Serverspace_ é uma interface que permite obter informações do banco de dados do site "serverspace.ru" por meio de requisições HTTP a um servidor específico. Você não precisa conhecer em detalhes qual banco de dados é utilizado nem como ele é implementado – basta saber que a API lida com essas informações para você. ## Exemplo de interação cliente-servidor Suponha que a nossa empresa _Serverspace_ tenha uma API que oferece determinadas funções às quais os clientes podem enviar requisições e obter respostas. Imagine que a API "serverspace.ru" tenha uma função chamada "retornar lista de serviços da empresa". Nesse caso, o navegador faria uma requisição à API da empresa para obter essa lista, receberia os dados e os renderizaria na página do navegador. É importante notar que as interfaces de API são limitadas: você só terá acesso às funções que foram disponibilizadas pelos desenvolvedores. Para adicionar uma nova funcionalidade, um programador precisa desenvolvê-la previamente. A interação não ocorre apenas entre cliente e servidor, mas também entre servidores. ## Exemplo de interação servidor-servidor Imagine que você deseja comprar uma passagem de trem. Você acessa um site de vendas, escolhe a cidade de destino e, além das opções de datas e horários dos trens, o site exibe a previsão do tempo para aquele local. Isso não significa que a empresa de venda de passagens possui sensores meteorológicos ao redor do mundo. O site das passagens se comunica com um serviço de previsão do tempo utilizando a API desse serviço para obter os dados meteorológicos em tempo real. https://serverspace.com.br/support/glossary/cluster.md Um cluster é um grupo de computadores conectados por canais de comunicação de alta velocidade. Esse grupo é um recurso de hardware combinado com funcionalidade específica. Um cluster é um grupo de computadores conectados por canais de comunicação de alta velocidade. Esse grupo funciona como um recurso de hardware unificado com funcionalidades específicas: - Fornecimento de poder computacional; - Balanceamento de carga; - Escalonamento automático; - Alta disponibilidade. ## Clusters de computação Nesse tipo de cluster, a característica definidora é o alto desempenho dos processadores ao trabalhar com valores numéricos de ponto flutuante. Outro fator determinante é a baixa latência da rede de suporte. As operações de entrada e saída (I/O) são menos relevantes para a definição desse tipo de cluster, pois sua taxa de execução geralmente é mais rápida em bancos de dados. Os clusters de computação podem dividir cálculos em diversos processos paralelos e analisar dados simultaneamente em diferentes direções. A troca de dados nessa estrutura ocorre por meio da rede de conexão entre os nós do cluster. ## Clusters de balanceamento de carga Esse tipo de cluster também é chamado de cluster distributivo. Seu princípio de funcionamento baseia-se no uso de nós de entrada que direcionam as solicitações para os nós computacionais. No entanto, pode haver mais de um nó atuando como ponto de entrada para as requisições. As solicitações chegam a um ou mais nós que atuam como pontos de entrada. Em seguida, esses nós distribuem as requisições entre os nós computacionais, que realizam o processamento das tarefas. ## Clusters de alta disponibilidade Esse tipo de cluster é projetado para garantir alta disponibilidade dos serviços. Ele contém um número excedente de nós (pelo menos dois), que atuam como uma cadeia de segurança. Se um ou mais servidores falharem, o cluster continuará fornecendo o serviço. Os clusters de alta disponibilidade são construídos com base em três principais arquiteturas: - **Redundância modular**. É utilizada quando a interrupção do sistema é inaceitável. Nesse caso, cada nó processa uma solicitação ou partes separadas dela. Os resultados dos nós individuais serão idênticos aos dos outros nós, ou não alterarão a natureza do processamento subsequente, garantindo que qualquer um dos nós possa ser selecionado sem impacto negativo. - **Reserva ativa**. Todos os nós do cluster processam solicitações. No entanto, se um ou mais nós falharem, a carga será redistribuída entre os nós em funcionamento. - **Reserva passiva**. Alguns nós permanecem inativos e não processam solicitações até que ocorra uma falha nos nós ativos. Somente nesse caso eles entram em operação para assumir a carga. https://serverspace.com.br/support/glossary/mac.md Saiba o que é um endereço MAC, como ele é formado, onde é usado e se pode ser alterado. Aprender a estrutura de um endereço MAC, sua função em redes locais e como controlar o acesso usando-o **Endereço MAC (Media Access Control Address)** é um identificador de hardware atribuído à interface de rede pelo fabricante. Ele é representado no formato de 48 bits e é registrado em pares hexadecimais, por exemplo: ``` 1:B2:C3:D4:E5:F6 ``` Esse endereço é utilizado para transmissão de dados na camada de enlace de dados do modelo OSI, garantindo o roteamento preciso dentro de redes locais (LAN). ## Como é formado o endereço MAC? Um endereço MAC é composto por dois segmentos: - Os primeiros 3 bytes (OUI, Organizationally Unique Identifier) — código do fabricante do dispositivo, por exemplo, para Intel, pode começar com 00:1B:44. - Os 3 bytes restantes — um número de série único atribuído ao dispositivo específico pelo fabricante. **Exemplo de decodificação do endereço MAC 00:1B:44:67:89:AB:** - **00:1B:44** — prefixo registrado do fabricante (Intel). - **67:89:AB** — identificador único do adaptador de rede. ## Principais áreas de aplicação - **Redes locais (Ethernet, Wi-Fi)** — roteadores e switches utilizam endereços MAC para encaminhar pacotes dentro da rede. - **Controle de acesso** — administradores podem restringir o acesso à rede permitindo apenas endereços MAC específicos. - **Análise de tráfego de rede** — ferramentas de monitoramento ajudam a rastrear a atividade dos dispositivos por seus endereços MAC. ## O endereço MAC pode ser alterado? Embora o endereço MAC esteja gravado no adaptador de rede, ele pode ser alterado programaticamente. No Windows, Linux e macOS, existem utilitários que permitem falsificar temporariamente o endereço MAC, o que pode ser utilizado para testes ou para contornar restrições. ## Conclusão O endereço MAC é um dos elementos fundamentais da interação em rede, proporcionando a identificação de dispositivos em um nível baixo. Ele desempenha um papel crucial no roteamento dentro das redes locais, segurança e gerenciamento de conexões. https://serverspace.com.br/support/glossary/gpg.md Saiba como o GPG (GNU Privacy Guard) fornece criptografia segura de dados, assinatura digital e gerenciamento de chaves criptográficas para ajudar a proteger suas informações e autenticá-las. **GPG (GNU Privacy Guard)** é um software livre que implementa o padrão OpenPGP (RFC 4880), projetado para proteger dados por meio de criptografia assimétrica. Ele permite aos usuários criptografar arquivos e mensagens, criar assinaturas digitais para verificar a autenticidade dos dados e gerenciar chaves criptográficas. O GPG é amplamente utilizado para garantir a confidencialidade, proteger informações contra adulteração e autenticar usuários em ambientes digitais. ## Como o GPG funciona? O GPG é baseado em um sistema de criptografia de chave pública, que consiste em dois componentes principais: - **Chave pública** – Usada para criptografar informações e verificar assinaturas digitais. Pode ser compartilhada com outros usuários. - **Chave privada** – Utilizada para descriptografar dados recebidos e criar assinaturas digitais. Deve ser mantida em segurança. Ao trocar dados criptografados, o remetente usa a chave pública do destinatário, enquanto apenas o destinatário com a chave privada correspondente pode descriptografar a informação. Isso torna o GPG uma ferramenta poderosa para proteger dados, mesmo quando transmitidos por canais de comunicação não seguros. ## Principais recursos do GPG - **Criptografia de dados** – Impede o acesso não autorizado a arquivos e mensagens. - **Assinaturas digitais** – Garante a autenticidade do remetente e a integridade das informações transmitidas. - **Gerenciamento de chaves** – Permite gerar, importar, exportar, transferir e revogar chaves criptográficas. - **Suporte a múltiplos algoritmos de criptografia**, incluindo RSA, ECC, AES e outros. - **Integração com clientes de e-mail** (Thunderbird, Outlook) para comunicações seguras. - **Criação de contêineres criptografados** para armazenar dados sensíveis. ## Onde o GPG é utilizado? O GPG é amplamente utilizado em diversas áreas relacionadas à segurança da informação: - **Criptografia de e-mails** – Proteção da correspondência usando extensões como Enigmail para Thunderbird. - **Assinatura de código** – Verificação da autenticidade e integridade de softwares. - **Proteção de backups** e outros arquivos críticos. - **Troca de documentos criptografados** em ambientes corporativos. O GPG é uma ferramenta multiplataforma disponível para Windows, Linux e macOS. Ele pode ser usado como um aplicativo independente ou integrado a sistemas de segurança existentes. https://serverspace.com.br/support/glossary/virtualizacao-de-hardware.md Saiba como funciona a virtualização de hardware, quais tecnologias (Intel VT-x, AMD-V) a suportam e como ela é usada em sistemas de nuvem, servidores e jogos para melhorar o desempenho e a segurança. A **virtualização de hardware** é uma tecnologia inovadora que possibilita a criação e gerenciamento de máquinas virtuais (VMs) em um único servidor ou dispositivo físico. Com o suporte específico das instruções de hardware do processador, essa tecnologia permite que vários sistemas operacionais rodem simultaneamente, de forma isolada, sobre o mesmo hardware físico. Ela é fundamental para otimizar o uso de recursos computacionais, promovendo flexibilidade na gestão da infraestrutura de TI. Ademais, a virtualização de hardware proporciona benefícios como maior segurança, pois garante a separação dos sistemas operacionais, evitando que falhas ou ataques em um ambiente afetem os outros. Isso a torna uma solução ideal para ambientes corporativos, data centers e plataformas de nuvem, onde o aproveitamento máximo dos recursos e a escalabilidade são essenciais. Com a virtualização de hardware, as organizações podem reduzir custos com infraestrutura, melhorar a eficiência operacional e facilitar o gerenciamento de sistemas de forma mais ágil e segura. Neste artigo, exploraremos o que é a virtualização de hardware, as tecnologias por trás dela, como funciona e suas aplicações no mundo real. ## Como Funciona a Virtualização de Hardware? A virtualização de hardware é uma abordagem que possibilita a execução simultânea de vários sistemas operacionais em um único servidor ou computador físico, criando ambientes virtuais independentes. Ao contrário da virtualização via software, esse método aproveita instruções específicas do processador para otimizar o desempenho das máquinas virtuais. ## Objetivos principais da Virtualização de Hardware - **Uso eficiente dos recursos**: Maximiza a utilização dos componentes físicos. Execução de múltiplos sistemas operacionais em um único servidor. - **Segurança e isolamento**: Impede interferências entre os ambientes virtuais. - **Facilidade de gerenciamento da infraestrutura de TI**. ## Como Funciona a Virtualização de Hardware O **Hypervisor** (ou VMM – Virtual Machine Monitor) é o componente principal da virtualização de hardware. Ele gerencia as máquinas virtuais e distribui os recursos do hardware entre elas. Tipos de Hypervisores - **Hypervisores Tipo 1 (Bare-metal)**: Executam-se diretamente no nível do hardware, sem depender de um sistema operacional intermediário. Exemplos: VMware ESXi, Microsoft Hyper-V, KVM, Xen. - **Hypervisores Tipo 2 (Hosted)**: São executados dentro de um sistema operacional e usam seus recursos para criar VMs. Exemplos: VMware Workstation, Oracle VirtualBox, Parallels Desktop. ## Suporte de Hardware para Virtualização Os processadores modernos incluem instruções dedicadas para otimizar o desempenho das VMs: - **Intel VT-x**: Tecnologia de virtualização assistida por hardware da Intel. - **AMD-V**: Tecnologia equivalente da AMD. Essas tecnologias permitem que os hypervisores gerenciem operações da CPU e memória de forma mais eficiente, reduzindo a sobrecarga da virtualização. ## Principais Tecnologias de Virtualização de Hardware - **Virtualização de CPU**: O Intel VT-x e o AMD-V permitem que os hypervisores deleguem a execução das VMs diretamente ao processador, minimizando a necessidade de emulação complexa e aumentando o desempenho. - **Virtualização de Memória**: Usa mecanismos como Extended Page Tables (EPT) e Nested Page Tables (NPT) para aprimorar a gestão da memória, reduzindo a sobrecarga na tradução de endereços. - **Virtualização de Entrada/Saída**: Intel VT-d / AMD-Vi – Permite que as VMs acessem dispositivos de entrada/saída (como placas de rede e GPUs) diretamente. SR-IOV (Single Root I/O Virtualization) – Permite que múltiplas VMs utilizem dispositivos físicos com desempenho próximo ao nativo. - **Virtualização de GPU**: Permite que as máquinas virtuais utilizem GPUs para computação acelerada e processamento gráfico. Exemplos incluem NVIDIA vGPU (para data centers) e AMD MxGPU. ## Vantagens da Virtualização de Hardware - **Alto Desempenho**: A virtualização assistida por hardware reduz a sobrecarga, permitindo que as VMs operem com desempenho próximo ao do hardware físico. - **Flexibilidade e Escalabilidade**: A alocação dinâmica de recursos computacionais possibilita ajustes em tempo real conforme a demanda. - **Isolamento das Máquinas Virtuais**: Falhas ou ataques de segurança em uma VM não afetam as outras. - **Eficiência no Uso de Recursos**: Permite a execução de vários ambientes virtuais em um único servidor físico, reduzindo os custos com hardware. ## Aplicações da Virtualização de Hardware - **Virtualização de Infraestrutura de Servidores**: Plataformas de nuvem como AWS, Google Cloud e Microsoft Azure utilizam virtualização para otimizar o uso de hardware e executar milhares de instâncias virtuais. - **Segurança e Sandboxing**: A virtualização de hardware é usada em soluções de segurança, como Windows Sandbox e AWS Firecracker, para analisar arquivos suspeitos em ambientes isolados. - **Virtualização para Jogos e Gráficos**: A virtualização de GPU permite jogos na nuvem e processamento de IA, como nos serviços Google Stadia e NVIDIA GeForce Now. - **Criação e Avaliação**: Desenvolvedores utilizam máquinas virtuais para testar softwares em diferentes sistemas operacionais sem precisar de múltiplos dispositivos físicos. ## O Futuro da Virtualização de Hardware Com a evolução da computação em nuvem e da inteligência artificial, a tecnologia de virtualização continua avançando em diversas áreas: - **Otimização para IA e Machine Learning**: Aprimoramento da virtualização para cargas de trabalho de aprendizado profundo. - **Avanços na Virtualização de GPU**: Expansão da renderização na nuvem e aplicações de IA. - **Computação Confidencial**: Tecnologias como AMD SEV e Intel SGX permitem contêineres isolados com proteção avançada por hardware. ## Conclusão A virtualização de hardware é uma tecnologia essencial que possibilita ambientes computacionais eficientes, flexíveis e seguros. Com instruções especializadas no processador, ela supera significativamente a virtualização baseada em software em termos de desempenho e confiabilidade. Hypervisores modernos e plataformas de nuvem tornam a virtualização de hardware indispensável para data centers, empresas e computação em nuvem, enquanto a virtualização de GPU abre novas possibilidades nos campos de jogos e inteligência artificial. Se você se interessa por virtualização, experimente configurar um hypervisor e testar máquinas virtuais—é uma ótima maneira de entender melhor essa tecnologia poderosa! ## Base de conhecimento do Serverspace Na nossa base de conhecimento, você encontrará uma vasta gama de materiais que cobrem uma variedade de tópicos técnicos e conceitos, ajudando você a aprofundar seu entendimento sobre diversas áreas da tecnologia. Se você está começando no mundo da TI ou já possui experiência, temos conteúdos que abordam desde conceitos fundamentais até técnicas avançadas, sempre com o objetivo de apoiar sua aprendizagem e crescimento no setor. https://serverspace.com.br/support/glossary/ftp.md FTP (File Transfer Protocol) é um protocolo de rede padrão usado para a transferência de arquivos entre um cliente e um servidor em uma rede de computadores. FTP (File Transfer Protocol) é um protocolo de transferência de arquivos em rede criado em 1971. Esse protocolo opera no modo **"Cliente - Servidor"** e faz parte dos protocolos de aplicação, junto com HTTP, SMTP e DNS. O servidor possui um sistema de arquivos estruturado em diretórios onde os arquivos estão armazenados. ## Princípio do FTP O FTP utiliza uma URL (localizador uniforme de recursos) para localizar arquivos. Vamos ver como isso funciona: Por exemplo, temos um link de URL que permite baixar um documento do nosso servidor de arquivos: ftp://serverspace.com.br/host/doc/readme.txt A URL é composta por três partes: - **O identificador do protocolo FTP** - ftp://serverspace.com.br/host/doc/readme.txt - **O nome do nosso servidor** (por meio do nome DNS ou endereço IP) - ftp://serverspace.com.br/host/doc/readme.txt - **O caminho do arquivo dentro do sistema de arquivos do servidor **- ftp://serverspace.com.br/host/doc/readme.txt Diferente de outros protocolos da camada de aplicação, o FTP utiliza duas conexões: - Uma conexão de controle, que opera na porta 21. - Uma conexão de dados, que opera na porta 20 no modo ativo. No modo ativo do FTP, o servidor inicia a conexão de dados, utilizando a porta 20 no servidor e portas a partir da 1024 no lado do cliente. No modo passivo do FTP, o cliente inicia a conexão de dados, utilizando portas a partir da 1024. Ao se conectar ao servidor, o cliente pode interagir com o sistema de arquivos, navegar pelos diretórios, copiar dados e realizar outras operações de gerenciamento de arquivos. ## Autenticação O FTP exige autenticação do usuário. Para acessar, é necessário fornecer um nome de usuário e uma senha, após o que o usuário terá acesso aos diretórios autorizados para sua conta. Outra forma de autenticação é como usuário anônimo. Nesse caso, é necessário inserir "ftp" ou "anonymous" como nome de usuário e fornecer uma senha (que pode ser seu login ou e-mail). No entanto, usuários anônimos possuem muitas restrições, e o acesso é controlado pelas configurações do servidor. ## O FTP nos dias de hoje Atualmente, esse protocolo é menos utilizado devido a questões de segurança. O ID do usuário e a senha são transmitidos sem criptografia pela rede, assim como os dados transferidos. Muitas empresas migraram do FTP para protocolos mais seguros baseados em SSH, como SFTP e SCP. O FTP ainda pode ser útil para redes locais, por exemplo, para transferir arquivos de um computador para uma televisão dentro da mesma rede, onde o computador atua como servidor. Para criar seu próprio servidor FTP, você pode usar qualquer computador pessoal com Windows, Linux ou macOS. - No macOS e no Windows, é possível ativar o suporte para FTP/SFTP nas configurações do sistema. - No Linux, será necessário instalar e configurar o pacote "vsFTPd". https://serverspace.com.br/support/help/como-configurar-o-mysql-no-docker.md Configure o MySQL no Docker. Explore o processo simplificado de utilizar o Docker para MySQL neste guia completo. Aprenda as etapas para configurar e gerenciar bancos de dados MySQL! No mundo do gerenciamento de bancos de dados, o Docker se tornou um divisor de águas, oferecendo uma abordagem simplificada e eficiente para configurar e executar bancos de dados. Este tutorial foca na instalação do MySQL através do Docker — um método amplamente utilizado por desenvolvedores e profissionais de DevOps. Assim como as vantagens oferecidas para o MongoDB, usar o Docker para a instalação do MySQL traz benefícios inéditos em termos de portabilidade, escalabilidade e isolamento. ## Instalando o MySQL no Docker No início do processo de instalação, atualizamos os índices e fazemos upgrade nos pacotes das aplicações e utilitários atuais. Isso ajuda a evitar problemas de compatibilidade: ```bash apt update && apt upgrade -y ``` Screenshot №1 — Atualização dos pacotes Ao final do processo, certifique-se de que tudo foi concluído com sucesso e que não surgiram problemas. O próximo passo será a instalação do software para containerização de aplicações, com o comando abaixo: ```bash apt install docker.io ``` Screenshot №2 — Instalação do Docker O Docker é uma plataforma que permite executar aplicações, utilitários ou sistemas isolados, com sistema de arquivos, rede e ferramentas integrados para funcionamento adequado. Podemos baixar uma imagem do repositório e instalá-la em um contêiner isolado. A conexão com eles pode ser feita pelo localhost e pela porta indicada, ou diretamente via terminal. Após instalar o Docker, podemos baixar e automaticamente implantar o servidor MySQL com o comando: ```bash docker run --name my-db -e MYSQL_ROOT_PASSWORD=123321 -d mysql ``` Screenshot №3 — Download dos pacotes ## Verificando a instalação do MySQL no Docker Agora precisamos garantir que nosso contêiner Docker foi criado e iniciado. Para isso, usamos o comando: ```bash docker ps ``` Screenshot №4 — Processo Se houver algum problema, você pode usar o comando abaixo para verificar os logs do contêiner e solucionar os problemas: ```bash docker logs my-db ``` Screenshot №5 — Logs Agora podemos nos conectar ao contêiner via rede e fornecer as credenciais para gerenciá-lo com um utilitário: ```bash docker exec -it my-db bash ``` Depois disso, podemos iniciar o banco de dados usando o utilitário apropriado: ```bash mysql -h localhost -u root -p ``` Screenshot №6 — Conexão Nossa conexão foi estabelecida, e agora podemos usar o banco de dados a partir do cliente. Nesta exploração abrangente sobre o uso do Docker para o MySQL, navegamos pelo transformador cenário do gerenciamento de bancos de dados, onde o Docker emerge como uma força essencial. Desenvolvedores e profissionais de DevOps estão cada vez mais adotando essa abordagem para configurar o MySQL, devido à eficiência já comprovada em implementações do MongoDB. Usar o Docker para o MySQL não apenas simplifica o processo de instalação, mas também introduz benefícios incomparáveis em termos de portabilidade, escalabilidade e isolamento. https://serverspace.com.br/support/help/processos-linux-ferramentas-e-gerenciamento.md Descubra novas possibilidades com o conhecimento sobre o gerenciamento de processos e threads no Linux! No artigo, você conhecerá instrumentos de trabalho! As principais entidades ao trabalhar com um sistema operacional são processos e threads. Eles determinam o contexto de execução do software e quais ações devem ser realizadas. Neste artigo, responderemos detalhadamente às seguintes perguntas. O que é um processo e uma thread? Por que é necessário um sistema de inicialização como o systemd em um SO? Quais ferramentas podem ser usadas para trabalhar com processos? Como invasores podem explorá-los? ## O que é um processo e uma thread no Linux? Um processo é uma entidade abstrata e passiva que reside no kernel do sistema operacional e possui atributos necessários para a operação do software. Basicamente, esses atributos incluem: - PID - ID do processo; - PPID - ID do processo pai; - CMD - nome do software em execução; - Current Working Directory - diretório de trabalho do software; - Signals - sinais processados pelo software. Quando um usuário executa uma utilidade, o shell envia uma solicitação ao kernel, passando do espaço do usuário para o espaço do kernel por meio de uma chamada de sistema. Screenshot №1 — Esquema de funcionamento do SO Exemplo: Para gravar dados em um novo arquivo, o shell realiza a chamada de sistema apropriada. Depois que o kernel recebe essa chamada, ele a processa, identifica a qual processo pertence e inicia as ações ou threads adequadas. As threads são as entidades ativas do processo, encarregadas de executar as instruções passadas pela chamada de sistema. ## Qual é o ciclo de nascimento dos processos no Linux? Se você não tiver recursos suficientes, pode realizar ações em [servidores na nuvem](https://serverspace.com.br/services/vps-server/cloud-servers-in-brazil.md) de alto desempenho. O Serverspace oferece servidores VPS isolados para uso comum e virtualizado. Screenshot №2 — Criar Servidor É importante entender o ciclo de nascimento dos processos no Linux. Há apenas um processo iniciado pelo kernel na inicialização - o systemd. Os demais processos são iniciados no formato de processo pai-descendente. Isso significa que, durante a inicialização do software, o systemd cria uma chamada de sistema fork(2), que literalmente instrui o kernel a criar uma cópia do systemd, utilizando os mesmos recursos alocados, desde que a memória destinada ao trabalho permaneça a mesma. Uma vez criado, o novo processo recebe um PID e um PPID, que é o ID do processo pai. Para transformar a cópia do processo pai em uma "nova utilidade", uma chamada de sistema exec() é feita dentro do processo filho, o que exige que o kernel substitua os arquivos na memória pelos arquivos executáveis do novo software. Você pode ver essa sequência de forma mais esquemática na figura abaixo. Screenshot №3 — Esquema do nascimento de processos Assim, a ramificação do software em execução parecerá hierárquica: um processo iniciou outro. Mas como isso aparece ao conectar um cliente a um servidor SSH para gerenciar o Linux? Ou como podemos identificar qual processo malicioso executou o script? Vamos analisar isso usando a utilidade htop, que pode ser instalada pelo gerenciador de pacotes: ```bash apt install htop ``` Screenshot №4 — Htop Após iniciar o htop, pressione F5 para visualizar a árvore de processos: Screenshot №5 — Árvore de processos Observe a primeira linha, onde o processo com PID=1 está especificado - este é o sistema de inicialização systemd, a partir do qual os outros processos filhos são iniciados. À direita, na coluna Command, é exibido o software em execução e suas ramificações, onde um dos processos filhos do systemd é o sshd. Já o processo filho do sshd gerencia a sessão remota SSH root@pts/0, onde um shell bash foi iniciado para gerenciar o sistema, onde o usuário está conectado. Logo abaixo, podemos ver a utilidade htop em execução com PID 499087. ## Como verificar atividades maliciosas no Linux? Como aprendemos acima, qualquer conexão ao dispositivo será acompanhada por um terminal em execução, real ou virtual, como um processo. Portanto, é possível rastreá-las usando a utilidade: ``` w ``` O comando w permite exibir as conexões à máquina no momento atual, e a utilidade: ``` last ``` Screenshot №6 — Histórico de login Exibe o histórico de logins no sistema operacional, reinicializações e inicializações a partir de endereços específicos. É a partir desse histórico que você pode determinar quais conexões foram feitas durante todo o período de operação da máquina. Preste atenção aos logs do sistema e aos processos iniciados por aplicativos, pois geralmente um sinal de alerta ocorre quando o sistema operacional faz chamadas de software para o shell. Um invasor precisa acessar o sistema operacional pelo shell para realizar um hardening ou uma elevação de privilégios. Se detectar esse tipo de atividade, você deve encerrar os processos relevantes, isolar a máquina na rede e investigar. A primeira ação pode ser realizada usando a utilidade kill: ``` kill -SIGKILL (pid) ``` Substitua (pid) pelo ID do processo a ser encerrado. Depois disso, você pode coletar logs e dumps de memória RAM do dispositivo. Entender como trabalhar com processos forma uma visão completa de como gerenciar e proteger seu sistema usando as ferramentas do SO. https://serverspace.com.br/support/help/how-to-install-the-telegram-desktop-app-in-linux.md Aprenda a instalar o Telegram Desktop no Linux de forma rápida e segura. Este guia cobre Ubuntu, Fedora e CentOS, com instruções passo a passo para começar a usar chats, grupos, canais e chamadas. Instalar o Telegram no Linux é um processo rápido e fácil que permite aproveitar os benefícios desta popular plataforma de mensagens no seu dispositivo Linux. Seguindo os passos descritos neste artigo, você poderá se comunicar perfeitamente com seus amigos e colegas usando o Telegram. Além de suas funcionalidades de mensagens, o Telegram oferece várias funcionalidades avançadas que aprimoram a experiência do usuário. Um recurso notável é a capacidade de criar e participar de canais e grupos, permitindo que os usuários se conectem com comunidades de interesses compartilhados. Os canais são plataformas de comunicação unidirecionais onde os administradores podem transmitir mensagens para um grande número de inscritos, enquanto os grupos permitem discussões interativas entre os membros. Outra vantagem de usar o Telegram no Linux é seu suporte multiplataforma. O Telegram está disponível em vários sistemas operacionais, incluindo Windows, macOS, iOS e Android. Essa compatibilidade entre plataformas permite que os usuários alternem perfeitamente entre dispositivos, mantendo o acesso a seus chats e arquivos. O Telegram também prioriza a privacidade e a segurança do usuário. Ele oferece criptografia de ponta a ponta para chats secretos, garantindo que apenas os destinatários pretendidos possam acessar as mensagens. Além disso, o Telegram fornece opções para mensagens autodestrutivas, nas quais as mensagens desaparecem automaticamente após um período de tempo especificado. O Telegram oferece uma ampla gama de recursos que melhoram sua experiência de mensagens. Você pode trocar mensagens, compartilhar arquivos, imagens e vídeos, além de fazer chamadas de voz e vídeo. Sua interface amigável e medidas robustas de proteção de dados o tornaram uma escolha preferida entre os usuários de Linux. Antes de começar o processo de instalação, certifique-se de que seu sistema Linux esteja conectado à internet. Isso garante que o instalador possa baixar os arquivos e dependências necessários. Além disso, verifique se você possui privilégios de administrador para prosseguir com a instalação. Para sistemas baseados em Ubuntu e APT, abra o terminal e atualize os repositórios de pacotes executando o comando: ```bash sudo apt update ``` Depois que os repositórios forem atualizados, instale o Telegram inserindo: ```bash sudo apt install telegram-desktop ``` Este comando instala o Telegram e suas dependências necessárias. Após a conclusão da instalação, você encontrará o Telegram no menu de aplicativos do sistema. Inicie-o clicando no ícone do Telegram ou usando o comando "telegram" no terminal. Para sistemas baseados em CentOS e DNF, abra o terminal e atualize o cache de pacotes executando: ```bash sudo dnf update ``` Em seguida, instale o Telegram executando: ```bash sudo dnf install telegram-desktop ``` Este comando inicia o processo de instalação e, uma vez concluído, você poderá acessar o Telegram no menu de aplicativos. Inicie-o selecionando o ícone do Telegram ou usando o comando "telegram-desktop" no terminal. ## Conclusão Agora você pode desfrutar do uso do Telegram no Fedora ou em qualquer outro sistema Linux baseado em DNF seguindo estas instruções de instalação. O Telegram oferece uma experiência de mensagens segura e repleta de recursos, e, ao instalá-lo no seu dispositivo Linux, você poderá se manter conectado com facilidade. O Telegram inclui uma ampla variedade de recursos, como troca de mensagens, compartilhamento de arquivos, chamadas de voz e vídeo, canais, grupos e opções avançadas de privacidade. Seguindo as instruções de instalação descritas neste artigo, você poderá aproveitar todos os benefícios do Telegram no seu dispositivo Linux. ## FAQ - **O Telegram Desktop funciona em todas as distribuições Linux?** Sim, o Telegram Desktop está disponível para distribuições baseadas em Debian/Ubuntu, Fedora, CentOS e outras. Apenas siga os comandos de instalação específicos para cada sistema. - **Preciso de privilégios de administrador para instalar o Telegram?** Sim, a instalação requer privilégios de root ou sudo para adicionar pacotes e dependências ao sistema. - **Como iniciar o Telegram após a instalação?** No Ubuntu/Debian, use telegram no terminal ou clique no ícone do Telegram no menu de aplicativos. No Fedora/CentOS, use telegram-desktop ou o ícone do menu. - **Posso usar o Telegram Desktop junto com dispositivos móveis?** Sim, o Telegram oferece suporte multiplataforma, permitindo que você sincronize chats e arquivos entre Linux, Windows, macOS, iOS e Android. - **O Telegram Desktop é seguro no Linux?** Sim, o Telegram oferece criptografia de ponta a ponta para chats secretos, mensagens autodestrutivas e opções avançadas de privacidade para proteger suas conversas. - **Quais recursos posso usar no Telegram Desktop?** Você pode enviar mensagens, compartilhar arquivos, fotos e vídeos, fazer chamadas de voz e vídeo, participar de grupos e canais, e configurar opções avançadas de segurança. ## Tabela de Comandos para Instalação | Distribuição Linux | Comando para atualizar repositórios | Comando para instalar Telegram Desktop | Comando para iniciar o Telegram | | --- | --- | --- | --- | | Ubuntu / Debian | sudo apt update | sudo apt install telegram-desktop | telegram ou clique no ícone no menu de aplicativos | | Fedora / CentOS (DNF) | sudo dnf update | sudo dnf install telegram-desktop | telegram-desktop ou clique no ícone no menu de aplicativos | **Observações:** - Certifique-se de ter privilégios de administrador (root ou sudo) antes de instalar. - O Telegram Desktop mantém sincronização de chats entre todos os dispositivos conectados. - Para distribuições não listadas, use o repositório oficial do Telegram ou o pacote Snap/Flatpak. https://serverspace.com.br/support/help/como-configurar-uma-politica-de-grupo-para-servidor-ntp.md Aprenda a configurar um servidor NTP usando a Política de Grupo no Windows. Siga nosso guia passo a passo para ajustar as configurações da Política de Grupo e garantir uma sincronização precisa do tempo em toda a sua rede. ## O que é um Servidor NTP? Um servidor NTP (Network Time Protocol) é indispensável para garantir uma sincronização consistente de horários entre vários dispositivos dentro de uma rede corporativa. Isso é especialmente importante ao monitorar e registrar eventos do sistema, já que marcas de tempo precisas são essenciais para uma análise eficiente e solução de problemas.Com a implementação de um servidor NTP, todos os dispositivos conectados podem sincronizar seus relógios com uma fonte de tempo centralizada, minimizando inconsistências e assegurando uma operação confiável. Além disso, ter um banco de dados central para informações de horário facilita o rastreamento e a auditoria de atividades na rede, o que é crucial para atender aos padrões de conformidade e manter protocolos de segurança. Em resumo, um servidor NTP desempenha um papel vital ao simplificar operações dentro de uma organização, fornecendo sincronização precisa de horários e capacidade de registro eficiente. ## Configuração do Servidor No Windows, existe um daemon para controle de horário, o **win32tm**, que permite fornecer data e hora precisas para outros computadores. Geralmente, o serviço é configurado para iniciar automaticamente no Controlador de Domínio. No entanto, há situações em que é necessário definir parâmetros e valores específicos. Para isso, podemos usar o CMD com a utilidade mencionada anteriormente para configurar nosso servidor e, em seguida, distribuir a configuração para máquinas clientes por meio da Política de Grupo. Primeiramente, explicaremos a sintaxe da utilidade w32tm: **w32tm [/opções] valor**. No início, indicamos a utilidade, depois as opções e, por último, inserimos o valor correspondente. Verifique se o serviço não foi interrompido: ``` w32tm /query /status ``` Após confirmar que o serviço está parado, podemos inserir a configuração no servidor. Também é necessário indicar o servidor NTP principal que sincronizará a data e a hora. Por questões de tolerância a falhas, é recomendável indicar no mínimo quatro servidores próximos à sua região: ``` w32tm /config /manualpeerlist:"0.europe.pool.ntp.org, 1.europe.pool.ntp.org, 2.europe.pool.ntp.org, 3.europe.pool.ntp.org" /syncfromflags:manual /reliable:YES /update ``` Espere até o final do processo e sincronize: ``` w32tm /resync ``` Em seguida, ative com o comando CLI: ``` net stop w32time net start w32time ``` Screenshot №1 — Parar Serviço Certifique-se de que nossas configurações foram aplicadas: ``` w32tm /query /status ``` Screenshot №2 — Verificar Status Pronto! A configuração do servidor NTP foi concluída. ## Política de Grupo Abra a barra de pesquisa e procure por Política de Grupo (Group Policy). Execute-a no Controlador de Domínio ou na máquina com AD: Screenshot №3 — Pesquisar Política de Grupo Escolha uma GPO existente ou crie uma nova clicando em Forest -> Domains -> Domain, e clique com o botão esquerdo do mouse. Escolha Criar e nomeie a Política: Screenshot №4 — Criar GPO Selecione a política que você acabou de criar e siga a sequência: Configuração do Computador -> Políticas -> Modelos Administrativos -> Sistema -> Serviço de Hora do Windows. Screenshot №5 — Procurar Serviço de Hora Escolha Provedores de Hora e edite os valores conforme mostrado na imagem abaixo: Screenshot №6 — Primeiro Valor Edite o ponto com o servidor NTP e indique nossa máquina NTP. No exemplo, usamos o IP 192.168.1.1. Em seguida, configure a flag para sincronização. Altere também o próximo ponto: Screenshot №7 — Segundo Valor Depois, para que funcione corretamente, precisamos vincular a GPO ao domínio. Clique com o botão direito no domínio e vincule-a: Screenshot №8 — Vincular GPO No lado do cliente, você pode aguardar até que as políticas sejam atualizadas, o que pode demorar, mas existe uma maneira de sincronizar manualmente o cliente com o controlador de domínio: ``` gpupdate /force ``` Atenção! Uma desvantagem deste método é a necessidade de atualizar manualmente cada computador! A implementação de um servidor NTP é crucial para manter a consistência e precisão no controle de horários dentro de uma rede corporativa. Marcas de tempo precisas são essenciais para a análise e resolução de problemas de eventos do sistema, tornando o servidor NTP indispensável para garantir operações confiáveis. https://serverspace.com.br/support/help/integracao-continua-como-funciona-e-por-que-e-necessaria.md Saiba o que é Integração Contínua, como funciona, para que serve e como ajuda as equipes a manter a qualidade, a estabilidade e a velocidade do desenvolvimento A** integração contínua (CI)** é uma metodologia de desenvolvimento que permite que as equipes integrem automaticamente e com frequência as alterações de código no repositório principal. O principal objetivo da CI é identificar e corrigir bugs rapidamente para minimizar a probabilidade de conflitos e problemas ao integrar códigos de diferentes desenvolvedores. A CI ajuda a simplificar e acelerar o processo de desenvolvimento, mantendo a estabilidade do projeto. ## Por que você precisa de CI? - **Detecção rápida de bugs.** Com a CI, o sistema executa automaticamente os testes e constrói o projeto a cada alteração, de modo que os bugs são detectados imediatamente após uma confirmação. Os desenvolvedores recebem feedback sobre os bugs mais cedo, permitindo que eles sejam resolvidos com antecedência. - **Redução de conflitos de mesclagem de código**. A CI ajuda a integrar alterações pequenas e frequentes, o que reduz os conflitos de código que geralmente ocorrem quando vários desenvolvedores trabalham no mesmo projeto. - **Maior estabilidade do código**. Testes e compilações automáticos regulares garantem a qualidade do código, para que o projeto permaneça sempre em um estado estável. Testes (testes de unidade, testes de integração) são adicionados à CI para verificar a funcionalidade após cada alteração. - **Economia de tempo**. A CI automatiza as tarefas de rotina, como criação, teste e validação de código, permitindo que os desenvolvedores se concentrem na criação de novas funcionalidades sem se distrair com verificações manuais. - **Simplificação do lançamento de atualizações.** Com a CI, a equipe pode garantir que todas as alterações sejam testadas e não danifiquem o software. Isso torna mais fácil e rápido o lançamento de atualizações estáveis. ## Como funciona a CI? O processo de CI envolve três etapas principais: - **Construção** - o sistema de CI constrói automaticamente o projeto para garantir que as alterações de código sejam compatíveis. - **Testes** - após a compilação, a CI executa um conjunto de testes para verificar se o novo código funciona. - **Relatórios** - os desenvolvedores recebem notificações e relatórios quando são encontrados bugs, permitindo correções rápidas. A CI ajuda as equipes a manter a qualidade, a estabilidade e a velocidade de desenvolvimento, especialmente quando vários desenvolvedores estão trabalhando em um projeto. https://serverspace.com.br/support/help/como-trabalhar-com-o-chaveiro-gpg.md Este artigo aborda o trabalho com chaves GPG (GNU Privacy Guard), uma poderosa ferramenta de segurança! Chaves GPG Os meios criptográficos de proteção de informações são a base do sistema de proteção do sistema de informações. Eles possibilitam a transmissão segura de dados via VPN, o armazenamento confiável de dados em formato criptografado em dispositivos de computação, a transmissão segura de cartas com criptografia. E também permitem que você coloque uma assinatura digital, que confirmará a integridade e a autenticidade dos dados transmitidos. Uma dessas soluções é o GPG ou GNU Privacy Guard, que é uma implementação aberta de um sistema de criptografia. Um conjunto de módulos que permite realizar transformações criptográficas: criptografia, assinatura, armazenamento de chaves públicas e privadas. Os dois últimos módulos são parte integrante de qualquer ferramenta. No GPG, ele é chamado de anel de chaves! ## O que é um chaveiro GPG? O chaveiro GPG, ou literalmente chaveiro, é um conjunto de chaves públicas e privadas, cujas informações são armazenadas em arquivos. Para uma interação mais conveniente e segura, as chaves públicas e secretas são separadas em dois locais de armazenamento diferentes, uma base com chaves públicas e uma pasta com chaves privadas: - pubring.kbx - private-keys-v1.d Considerando as especificidades de como as chaves públicas são usadas, elas precisam ser acessadas constantemente, portanto, não são armazenadas de forma criptografada, ao contrário das chaves secretas. Entretanto, a capacidade de falsificar uma chave pública fornece um novo vetor de ataque e dados confidenciais podem ser enviados ao invasor. [importante] Portanto, é importante garantir que o acesso seja diferenciado corretamente! [/importante] As chaves privadas exigem medidas de segurança rigorosas, portanto, cada chave é armazenada separadamente e criptografada com uma senha definida pelo usuário. A segurança se baseia em uma senha complexa, uma chave criptografada e a mesma delimitação de acesso. Para visualizar a lista de mapeamentos de chaves públicas e privadas, use o comando para chaves públicas e secretas: ``` gpg -K && gpg -k ``` Na imagem, você pode ver que as informações sobre mapeamentos foram obtidas do pubring.kbx, pois ele armazena chaves públicas e informações relacionadas a elas, o que permite determinar a propriedade da chave. Incluindo chaves secretas, seus valores de hash e UIDs dos usuários que as possuem. ## Como faço para importar um chaveiro GPG? Para fazer isso, você pode usar o comando: ``` gpg --import ``` No entanto, é necessário fazer o download da chave com antecedência, e isso gera uma nova dificuldade. Como fazer isso com segurança? Afinal, ao falsificar a conexão com o servidor Mitm com um ataque, o invasor enviará o malware e uma chave diferente, disfarçada de genuína. Há dois métodos de distribuição para isso: - Teia de confiança; - um terceiro ou um centro de certificação. Nesses tipos de transferência, há objetos confiáveis e não confiáveis; no método Web of Trust, confiamos no site oficial da empresa ou em seus intermediários. Vamos considerar a importação segura de chaves no exemplo do banco de dados MySql. Para fazer isso, vamos acessar o site da empresa e nos certificar de que o protocolo https usado e o certificado pertencem à organização: Ótimo, a Oracle é proprietária do MySQL, portanto, se confiarmos na autoridade de certificação onde a verificação foi realizada, podemos continuar. Vamos para a guia que oferece várias maneiras de usar a chave pública. Normalmente, há três opções: Copiar do site, a fim de eliminar a transmissão adicional por um canal de comunicação não confiável e evitar novos vetores de ataque com falsificação de arquivos no host. O site do MySQL fornece um exemplo: Normalmente, uma chave exclusiva é formada e todos os arquivos e pacotes necessários são assinados com ela. Nesse caso, vamos copiar a chave e ir para o nosso dispositivo onde precisamos adicioná-la. Para uma demonstração mais clara, todas as etapas do tutorial podem ser executadas em servidores de nuvem avançados. Levará algum tempo para implementar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das formas convenientes. E vamos passar para o terminal com nosso sistema operacional! Vamos criar um arquivo chamado key.gpg. Você pode escolher como nomear o arquivo, mas o formato deve ser .gpg. É isso que será usado na importação: ``` nano key.pgp ``` Screenshot №5 — Make record of public key Um editor de texto será aberto, cole a chave pública e importe-a com o comando: ``` gpg --import ``` O desarmamento é o processo de conversão do formato de origem para o formato de destino: ``` gpg --dearmor -o /usr/share/key.gpg && gpg --import /usr/share/key.gpg ``` Depois disso, a importação da chave será realizada: Depois disso, podemos usá-lo! ## Como faço para remover o chaveiro GPG? Para remover uma chave de um chaveiro, você precisa especificar o proprietário ou o ID da chave no comando: ``` gpg --delete-secrete-key ``` . E para chaves públicas: ``` gpg --delete-key ``` Todas as informações importantes podem ser visualizadas com o comando nas instruções acima! ## Como faço para exportar meu chaveiro GPG? Para exportar chaves, precisamos de dois comandos, para chaves públicas: ``` gpg -a --export > pub_key.asc ``` A opção -a permite armar a chave em ASCII e transmiti-la por correio, messenger ou publicá-la em seu site. ``` gpg -a --export-secret-keys > secret_key.asc ``` Observe que, na maioria dos casos, a chave secreta quase sempre permanecerá na máquina, exceto quando você precisar delegar sua assinatura ou descriptografia de mensagens cifradas a um objeto confiável. https://serverspace.com.br/support/help/guia-de-comandos-do-windows-cmd.md Esta tabela de comandos CMD do Windows contém mais de 50 comandos mais utilizados que podem ajudar na administração de sistemas de servidores Windows. Às vezes, você pode esquecer os comandos do CMD no Windows, e salvá-los no seu computador ou em um pedaço de papel como um guia pode ser uma boa prática. Esta lista não está completa, mas contém os comandos mais usados. Fique à vontade para adicionar seus comandos favoritos nos comentários abaixo e compartilhar a lista. ## Gerenciamento de Arquivos e Pastas - **COPY** - Copia arquivos para outro local; - **DIR** - Exibe os arquivos e pastas no diretório atual; - **DEL ou ERASE** - Exclui arquivos; - **EDIT** - Inicia o editor de arquivos; - **CD** - Altera o diretório; - **EXPAND** - Descomprime arquivos compactados; - **FC** - Compara arquivos e mostra as diferenças entre eles; - **FIND** - Encontra uma string de texto no arquivo; - **MD ou MAKEDIR** - Cria uma pasta; - **MOVE** - Move arquivos de uma pasta para outra; - **PRINT** - Imprime o conteúdo de arquivos de texto; - **RD ou RMDIR** - Exclui uma pasta; - **REN ou RENAME** - Renomeia um arquivo ou pasta; - **REPLACE** - Substitui arquivos em um diretório por arquivos com o mesmo nome em outro diretório (sobrescrever); - **ROBOCOPY** - Usa uma ferramenta avançada para copiar arquivos e diretórios; - **TREE** - Mostra a estrutura de diretórios de um disco ou pasta; - **TYPE** - Exibe o conteúdo de arquivos de texto; - **OPENFILES** - Gerencia arquivos locais ou de rede abertos; - **XCOPY** - Copia arquivos e árvores de diretórios; ## Aplicativos e Processos - **SCHTASKS** - Executa um comando ou inicia uma aplicação agendada (Agendador de Tarefas); - **SHUTDOWN** - Desliga ou reinicia o computador; - **TASKLIST** - Lista as tarefas em execução; - **TASKKILL** - Para ou interrompe uma tarefa (use o PID da tarefa, obtido com o TASKLIST); - **REG** - Inicia o editor de registro; - **RUNAS** - Lança a tarefa como outro usuário; ## Gerenciamento de Discos - **CHKDISK** - Verifica o disco e exibe estatísticas; - **DEFRAG** - Inicia a desfragmentação do disco; - **CHKNTFS** - Exibe ou altera a execução da verificação de disco na inicialização; - **COMPACT** - Exibe e altera a compactação de arquivos em partições NTFS; - **CONVERT** - Converte o volume de disco FAT para NTFS; - **DISKPART** - Exibe e ajusta as propriedades de partições de disco; - **FORMAT** - Formata o disco; - **FSUTIL** - Exibe e configura as propriedades do sistema de arquivos; - **LABEL** - Cria, altera ou exclui o rótulo de volume do disco; - **RECOVER** - Recupera dados de um disco danificado; - **VOL** - Exibe o rótulo de volume e o número de série do disco; ## Informações do Sistema - **DATE** - Exibe ou define a data atual; - **TIME** - Exibe ou define o horário do sistema; - **DRIVERQUERY** - Exibe o estado e as propriedades atuais dos drivers de dispositivo; - **HOSTNAME** - Exibe o nome do computador; - **SYSTEMINFO** - Mostra informações sobre a configuração do computador; - **VER** - Permite visualizar a versão do Windows; - **GPRESULT** - Exibe as políticas de grupo aplicadas atualmente (RSoP); - **GPUPDATE** - Atualiza as políticas de grupo; ## Rede - **IPCONFIG** - Exibe informações sobre interfaces de rede; - **PING** - Envia solicitações ICMP ao host de destino, verifica a disponibilidade do host; - **TRACERT** - Localiza o caminho dos pacotes na rede; - **NSLOOKUP** - Encontra o endereço IP pelo nome do recurso; - **ROUTE** - Exibe tabelas de rotas da rede; - **ARP** - Mostra uma tabela com endereços IP convertidos em endereços físicos; - **NETSH** - Inicia o programa de controle de configurações de rede; - **GETMAC** - Mostra o endereço MAC do adaptador de rede; - **TFTP** - Inicia o cliente TFTP no console; ## Configuração da Linha de Comando - **CLS** - Limpa a tela; - **CMD** - Exibe outro prompt de comando; - **COLOR** - Define a cor do texto e do fundo; - **PROMPT** - Altera o prompt da linha de comando; - **TITLE** - Atribui um título à sessão atual; - **HELP** - Inicia a ajuda do CMD; - **EXIT** - Sai da linha de comando. https://serverspace.com.br/support/help/guia-de-comandos-executar-no-windows.md Este guia contém mais de 30 comandos Executar do Microsoft Windows que ajudarão os administradores de sistema a realizar seu trabalho de forma muito mais rápida. O utilitário Executar no Windows é uma forma muito prática de abrir diferentes aplicativos e configurações do sistema. Para usá-lo, você pode utilizar atalhos de teclado com o botão Windows ou comandos curtos. Aqui está a lista dos comandos mais populares para iniciar aplicativos e configurações no Windows. ## Abrindo a Caixa de Diálogo do Executar Primeiro, é necessário saber como abrir a caixa de diálogo do Executar. Existem três maneiras de fazer isso no Windows: - Pressione a combinação de teclas "Windows+R" no teclado. - Clique com o botão direito no menu Iniciar e selecione "Executar" no menu. - Procure por Executar na busca do Windows. ## Windows Run Commands Cheat Sheet - **msconfig** - Configurações do Sistema. - **msinfo32** - Informações do Sistema. - **resmon** - Monitor de Recursos. - **main.cpl** – Configurações do Mouse. - **mstsc** - Conexão de Área de Trabalho Remota. - **cmd** - Prompt de Comando. - **explorer** – Explorador do Windows. - **taskmgr** – Gerenciador de Tarefas. - **shutdown** – Desligamento do Windows. - **chkdsk** – Utilitário de Verificação de Disco. - **cleanmgr** – Gerenciador de Limpeza de Disco. - **dxdiag** – Opções do DirectX. - **powershell** – Console do Windows PowerShell. - **winver** – Versão do Windows. - **control folders** – Opções de Pasta. - **diskmgmt.msc** – Gerenciador de Discos. - **eventvwr.msc** – Visualizador de Eventos. - **gpedit.msc** – Editor de Política de Grupo Local. - **regedit** - Editor de Registro. - **sysdm.cpl** - Propriedades do Sistema. - **powercfg.cpl** – Opções de Energia. - **magnify** – Lupa. - **charmap** - Mapa de Caracteres do Windows. - **ncpa.cpl** - Conexões de Rede. - **mrt** - Ferramenta de Remoção de Malware. - **devmgmt.msc** - Gerenciador de Dispositivos. - **netplwiz** - Contas de Usuários. - **services.msc** – Serviços. - **appwiz.cpl** - Programas e Componentes. - **control** - Painel de Controle. - **"."** - Abre a pasta do usuário atual. - **osk** - Teclado Virtual. - **snippingtool** – Ferramenta de Captura. - **mdsched** – Verificador de Memória do Windows. ## Comandos Executar Mais Populares - **msconfig** - Configurações do Sistema. Permite alterar parâmetros de inicialização do Windows e configurações de serviços em segundo plano. Caso haja dois sistemas operacionais instalados no dispositivo, você pode escolher qual iniciar na próxima vez. Outra função útil é carregar a inicialização segura após o próximo reinício. - **resmon** - Monitor de Recursos. Ajuda a monitorar os recursos do sistema, fornecendo informações em tempo real sobre CPU, RAM, disco e rede. - **msinfo32** - Informações do Sistema. Contém informações detalhadas sobre o hardware e o software do computador. - **main.cpl** – Propriedades do Mouse. Permite alterar configurações relacionadas à operação do mouse. - **mstsc** - Configurações de Conexão de Área de Trabalho Remota. Permite conectar-se remotamente a outro computador ou servidor para controlá-lo. - **cmd** - Prompt de Comando. Console onde é possível digitar comandos para configurar o Windows ou executar aplicativos. - **explorer** – Explorador do Windows. Abre o explorador do Windows para navegar entre pastas e discos. - **taskmgr** – Gerenciador de Tarefas. Permite encerrar aplicativos travados, reiniciar serviços e monitorar recursos do sistema. - **shutdown** – Desligamento do Computador. Desliga o sistema imediatamente, sem aviso. Use com cuidado. - **chkdsk** – Verificador de Disco. Utilitário que verifica erros no disco e pode corrigi-los. - **cleanmgr** – Gerenciador de Limpeza de Disco. Libera espaço no disco removendo arquivos temporários ou esvaziando a lixeira. - **dxdiag** – Opções do DirectX. Mostra informações completas sobre os componentes e drivers do DirectX instalados. - **powershell** – Console do Windows PowerShell. Permite executar diferentes cmdlets para obter dados ou configurar o Windows e aplicativos. - **winver** – Versão do Windows. Mostra informações detalhadas sobre a versão atual do Windows. - **control folders** – Opções de Pasta. Abre a janela de opções de pasta para configurar, por exemplo, a exibição de arquivos ocultos ou extensões de arquivos. - **diskmgmt.msc** – Gerenciamento de Disco. Permite criar volumes e partições, formatar discos e aplicar rótulos diferentes. - **eventvwr.msc** – Visualizador de Eventos. Mostra logs de segurança, sistema, aplicativos e outros eventos gerados pelo Windows. - **gpedit.msc** – Editor de Política de Grupo Local. Permite gerenciar configurações de política de grupo local. - **regedit** - Editor de Registro. Dá acesso ao registro do Windows para ajustes avançados. Use com cuidado. - **sysdm.cpl** - Propriedades do Sistema. Gerencia segurança do sistema, conectividade remota, renomeia o computador ou adiciona-o a um domínio. - **powercfg.cpl** – Opções de Energia. Gerencia as configurações de energia do dispositivo, útil especialmente para dispositivos móveis. - **magnify** – Lupa. Abre a lupa do Windows para inspecionar imagens ou ler textos pequenos. - **charmap** - Mapa de Caracteres do Windows. Dá acesso a fontes e símbolos disponíveis no sistema. - **ncpa.cpl** - Conexões de Rede. Gerencia conexões de rede, altera endereços IP v4/v6, configura MAC de dispositivos de rede e muito mais. - **mrt** - Ferramenta de Remoção de Malware. Executa a ferramenta de remoção de vírus da Microsoft sob demanda. - **devmgmt.msc** - Gerenciador de Dispositivos. Mostra detalhes sobre dispositivos conectados e versões dos drivers instalados. - **netplwiz** - Contas de Usuários. Permite gerenciar contas locais, adicionar novas contas, alterar tipos de contas, redefinir senhas e configurar políticas de segurança. - **services.msc** – Serviços. Lista todos os serviços em execução no sistema, base para o funcionamento do Windows. - **appwiz.cpl** - Programas e Componentes. Exibe uma lista de aplicativos instalados para desinstalar programas desnecessários. - **control** - Painel de Controle. Contém todas as configurações básicas do Windows. - **"."** - Abre a pasta raiz do usuário atual. Um comando prático para acessar rapidamente arquivos do usuário. - **osk** - Teclado Virtual. Útil para usar um teclado na tela. - **snippingtool** – Ferramenta de Captura. Ferramenta principal para capturas de tela sem usar aplicativos de terceiros. - **mdsched** – Verificador de Memória do Windows. Verifica o desempenho da RAM para identificar e corrigir possíveis problemas. https://serverspace.com.br/support/help/como-encontrar-arquivos-que-contem-texto-definido-no-linux-e-no-windows.md Neste artigo, foi descrito como encontrar todos os arquivos com uma string de texto definida em todo o computador no Windows e no Linux. ## Como encontrar arquivos que contêm texto definido no Linux O interpretador de comandos mais popular no Linux é o bash. Historicamente, o Linux teve apenas interface de linha de comando (CLI), e o ambiente gráfico foi integrado posteriormente. Por isso, temos muitas possibilidades de manipulação eficaz de dados através do interpretador CLI. A melhor maneira de encontrar arquivos com uma string de texto necessária no Linux é a utilidade **grep**. É uma ferramenta integrada em todos os sistemas operacionais Linux modernos. Muito provavelmente, você não precisará instalá-la, pois já estará disponível. Mas, mesmo que não esteja, você pode instalá-la facilmente. O comando para instalar em sistemas operacionais baseados no Debian (como Ubuntu) é: ```bash apt-get update && apt install grep ``` O comando para instalar em sistemas operacionais baseados no RedHat (como CentOS) é: ```bash yum install grep ``` Para encontrar todos os arquivos com a string necessária, basta executar: ``` grep -r ``` Para evitar mensagens de erro na saída, você pode adicionar a opção -s ao comando: ``` grep -sr ``` E, por fim, mas não menos útil, a opção -n. Esta opção mostra a linha com o texto encontrado. Isso pode ser útil para arquivos grandes: ``` grep -rns ``` ## Como fazer pesquisa de texto em um computador Windows Infelizmente, o Windows não possui boas ferramentas de busca "prontas para uso", mas existem algumas maneiras rápidas e fáceis de resolver isso. A primeira opção é a utilidade grep. Ela foi "portada" para o sistema operacional Windows, então você pode instalá-la: Baixe o instalador [aqui](https://sourceforge.net/projects/gnuwin32/files/latest/download), execute-o e siga as etapas padrão de instalação no estilo do Windows: Após a instalação do programa, você deve adicionar uma variável de ambiente para tornar sua vida futura mais confortável. Basta abrir as opções avançadas do computador e editar a variável **PATH**: Adicione uma nova opção na variável **PATH** de acordo com a pasta de instalação: Depois, você pode executar o interpretador **cmd** e fazer a pesquisa. A sintaxe do programa é idêntica à ferramenta "original" do Linux: Outro método mais "no estilo do Windows" é instalar um editor de texto poderoso, como o Notepad++. Baixe-o do [site do projeto](https://notepad-plus-plus.org/downloads/), execute o aplicativo e instale-o como de costume: Para usar este aplicativo como "localizador de texto", basta executá-lo e escolher o comando **Search > Find in Files**. Em seguida, preencha os campos apropriados com as condições de pesquisa: Resultado abaixo: ## Conclusão Neste artigo, descrevi algumas maneiras de realizar buscas poderosas de texto no Linux e no Windows. https://serverspace.com.br/support/help/como-realizar-a-manutencao-do-servidor-e-notificar-o-usuario-sobre-isso.md Aprenda a realizar a manutenção do servidor de forma eficiente e responsável com ferramentas do Linux como `wall`, `pkill` e `write`. Descubra como notificar os usuários, restringir o acesso, encerrar sessões e garantir atualizações contínuas do sistema, minimizando a interrupção. A manutenção de servidores é um processo essencial para garantir uma operação estável e segura. No entanto, antes de iniciar essas tarefas, é importante organizar o processo adequadamente: restringir o acesso ao sistema, notificar os usuários conectados e encerrar suas sessões de forma graciosa. Neste artigo, discutiremos como utilizar ferramentas padrão do Linux, como **wall**, **pkill** e **write**, para notificar os usuários sobre as ações planejadas, encerrar sessões e realizar tarefas de manutenção com segurança. ## Restringindo o Acesso Para começar, crie um arquivo vazio chamado** /etc/nologin**. Isso restringirá o acesso ao sistema, permitindo que apenas o usuário root faça login. Todos os outros usuários não conseguirão autenticar via SSH. No entanto, antes de desativar o acesso, é essencial informar os usuários que estão conectados ao sistema. Para isso, podemos usar a ferramenta wall. ## O que é o wall? O comando **wall** é uma ferramenta poderosa na interface de linha de comando, projetada para transmitir mensagens para todos os usuários ativos conectados ao sistema. Essas mensagens são exibidas diretamente nas janelas do terminal de cada usuário, garantindo visibilidade instantânea. Você pode enviar uma mensagem executando o seguinte comando: ``` wall "O servidor ficará indisponível para manutenção a partir das 12:00" ``` Assim que o comando for executado, todos os usuários conectados verão a mensagem em suas telas, independentemente do que estiverem fazendo. Além disso, o wall também pode ser usado para enviar mensagens para grupos específicos de usuários. Encerrando Sessões de Usuários No horário agendado, você pode encerrar forçadamente todas as sessões de usuários ativos, exceto a do root, com o seguinte comando: ``` pkill -9 -u $(who | awk '{print $1}' | grep -v root | head -1) ``` Agora, o servidor estará livre para tarefas de manutenção. Após concluir a manutenção, não se esqueça de excluir o arquivo /etc/nologin para restaurar o acesso aos demais usuários. ## Alternativas ao wall Se, por algum motivo, a utilidade wall não estiver disponível, você pode explorar métodos alternativos para notificar os usuários: Enviar uma mensagem para um usuário individual: ``` echo "Mensagem para o usuário" | write nome_do_usuario ``` Substitua nome_do_usuario pelo nome do usuário desejado. Enviar uma mensagem para um terminal específico: ``` echo "A manutenção começará em 5 minutos" > /dev/pts/1 ``` Esse método é útil se você souber o ID da sessão do terminal. A ferramenta write é outra maneira de enviar uma mensagem para um usuário específico que tenha uma sessão ativa no sistema. Se você precisar alertar todos os usuários, mas o wall não estiver disponível, pode criar um pequeno script para iterar por todos os usuários ativos e enviar notificações utilizando o comando echo. ## Agora você está pronto! Com essas ferramentas e dicas, você está preparado para realizar a manutenção do servidor com o mínimo de inconveniência para os seus usuários. ## FAQ: Perguntas Frequentes - **O que fazer se o wall não estiver instalado no servidor?** Você pode usar métodos alternativos, como o write para usuários individuais, ou redirecionar mensagens para terminais usando /dev/pts/*. Também é possível criar um script simples para notificar todos os usuários ativos. - **Devo excluir o arquivo /etc/nologin após a manutenção?** Sim, é necessário excluir este arquivo para restaurar o acesso dos usuários regulares. Caso contrário, eles não poderão fazer login no sistema. - **Como descobrir quem está atualmente conectado ao servidor?** Execute o comando who. Ele exibirá uma lista de todos os usuários ativos, juntamente com seus terminais associados. - **Os usuários podem ignorar as mensagens do wall?** Não, as mensagens do wall serão exibidas para todos os usuários conectados. A única exceção é se o usuário redirecionar a saída do terminal para um arquivo, o que é raro. - **Como enviar mensagens para um grupo específico de usuários?** Você pode filtrar os usuários com o comando grep ou escrever um script para enviar mensagens apenas para aqueles que atendam a determinados critérios. Por exemplo, é possível enviar mensagens exclusivamente para usuários conectados via SSH. https://serverspace.com.br/support/help/pesquisar-strings-em-arquivos-de-texto-usando-o-powershell.md Saiba como usar efetivamente o cmdlet Select-String no PowerShell para pesquisar cadeias de caracteres em arquivos de texto. Exemplos úteis, comparação com o grep, suporte a expressões regulares e dicas de otimização Este artigo ajudará você a aprender como realizar buscas de strings em arquivos de texto utilizando o PowerShell. Esse método é particularmente útil para administradores e especialistas em DevOps quando é necessário localizar rapidamente informações em logs extensos, arquivos de configuração ou outros dados textuais. ## Aplicação do Select-String Este cmdlet no PowerShell é uma das ferramentas mais funcionais para encontrar correspondências de texto. Com suporte a expressões regulares, ele oferece alta flexibilidade e versatilidade ```sql Select-String -Path "C:Logs*.log" -Pattern "Error" ``` ## Filtragem por diretórios e arquivos O Select-String pode ser usado com arquivos de diferentes pastas. Para escanear todas as pastas subjacentes, use o parâmetro -Recurse. **Saída de resultados:** Os resultados encontrados podem ser passados para outro cmdlet para filtragem adicional ou salvos em um arquivo para análise posterior. ```sql Select-String -Path "C:Logs*.log" -Pattern "Critical" | Out-File "C:OutputCriticalLogs.txt" ``` ## Comparação com o comando grep O Select-String no PowerShell pode ser visto como um análogo da ferramenta **grep** do Linux, mas com funcionalidades adicionais adaptadas para o ambiente Windows. **Funções avançadas** - Suporte a expressões regulares. - Busca com distinção de maiúsculas e minúsculas. - Contagem de correspondências ou extração de dados específicos. ## Integração com outras ferramentas do PowerShell **Combinação com Where-Object:** Use o Where-Object para filtragem adicional dos resultados ```sql Select-String -Path "C:Logs*.log" -Pattern "Critical" | Where-Object { $_.Line.Contains("Database") } ``` **Abrir o arquivo:** Você pode usar as correspondências encontradas para abrir automaticamente o arquivo no local correto ``` $match = Select-String -Path "C:Logs*.log" -Pattern "Critical" notepad.exe $match.Path ``` ## Dicas para otimizar o uso do Select-String **Exclusão de arquivos desnecessários:** Para excluir arquivos ou tipos de arquivos específicos, use o parâmetro **Busca em arquivos grandes:** Se os arquivos forem muito grandes, você pode processá-los em partes usando o processamento de fluxo. Isso melhora a performance. **Realce de texto:** No terminal do PowerShell, os resultados são automaticamente destacados, o que facilita a visualização. ## Recursos avançados do Select-String **Uso de apelidos:** No PowerShell, o Select-String possui o apelido **sls**, que simplifica os comandos. Por exemplo: ``` sls -Path "C:Logs*.log" -Pattern "Warning" ``` **Trabalhando com objetos:** O Select-String retorna objetos, que podem ser filtrados ou usados em outras operações. Por exemplo: ``` $results = Select-String -Path "C:Logs*.log" -Pattern "Error" $results | Where-Object { $_.LineNumber -gt 10 } ``` **Exibição de linhas ao redor da correspondência:** Usando o parâmetro -Context, você pode mostrar as linhas antes e depois da correspondência. Isso é útil para analisar o contexto. ```sql Select-String -Path "C:Logs*.log" -Pattern "Error" -Context 2,3 ``` ## Perguntas frequentes (FAQ) - **O que é o cmdlet Select-String no PowerShell?** O cmdlet Select-String é uma ferramenta poderosa para buscar strings em arquivos de texto usando expressões regulares. Ele permite localizar rapidamente correspondências no conteúdo dos arquivos, o que é útil para analisar logs e arquivos de configuração. - **Como usar o Select-String para buscar em várias pastas?** Para buscar em subpastas, use o parâmetro **-Recurse**. Isso permite escanear todas as pastas internas e encontrar correspondências em arquivos de todos os níveis. - **É possível usar expressões regulares no Select-String?** Sim, o Select-String suporta expressões regulares, permitindo configurar a busca de maneira mais flexível com base em padrões específicos. - **Como salvar os resultados da busca em um arquivo?** Os resultados podem ser salvos em um arquivo de texto usando o cmdlet **Out-File**. Por exemplo, com o comando: Select-String -Path "C:Logs*.log" -Pattern "Critical" | Out-File "C:OutputCriticalLogs.txt" você pode gravar as linhas encontradas no arquivo especificado. - **O que diferencia o Select-String do grep?** O Select-String é um equivalente da ferramenta **grep**, mas foi projetado especificamente para o PowerShell. Ele funciona de forma eficaz no ambiente Windows, oferecendo vantagens como o suporte ao gerenciamento de caminhos de arquivos e saída de dados flexível. https://serverspace.com.br/about/blog/o-que-e-nuvem-publica.md Descubra para que serve a nuvem pública (Public) VMware e suas diferenças em relação à privada (Private). Saiba como implementar uma nuvem pública no servidor. A [nuvem pública (Public Cloud)](https://serverspace.com.br/services/iaas.md) tornou-se uma das soluções mais populares para computação em nuvem devido à sua escalabilidade, flexibilidade e acessibilidade. Neste artigo, vamos explorar as principais vantagens e limitações do Public Cloud e como ele pode ajudar empresas a melhorar sua infraestrutura e processos de negócios. ## O que é nuvem pública? A nuvem pública, ou nuvem pública, é um modelo de fornecimento de recursos de computação em nuvem que permite aos usuários alugar servidores virtuais (VPS), armazenar dados e executar aplicativos por meio de provedores de nuvem acessíveis via internet. As principais vantagens da nuvem pública são a escalabilidade e a flexibilidade. Os usuários podem alugar apenas os recursos necessários no momento e expandir sua infraestrutura conforme o projeto cresce. Isso permite que as empresas respondam rapidamente às demandas do mercado e reduzam os custos com aquisição e manutenção de equipamentos. Além disso, a nuvem pública oferece alta disponibilidade e confiabilidade. Os provedores utilizam múltiplos servidores e sistemas de armazenamento localizados em diferentes regiões e países, garantindo acesso contínuo a dados e aplicativos. Por exemplo, no Serverspace você pode criar servidores em 7 locais ao redor do mundo: Brasil, EUA, Cazaquistão, Canadá, Países Baixos, Turquia e Emirados Árabes Unidos. No entanto, é importante lembrar que a nuvem pública pode não ser adequada para todos os tipos de dados e aplicativos. Algumas organizações podem enfrentar desafios relacionados à conformidade com normas de segurança e regulamentações ao usar a nuvem pública. Para resolver isso, é essencial que o provedor tenha certificações de segurança e data centers que sigam os padrões e legislações locais. ## Nuvem pública e privada: diferenças. Existem diferentes tipos de nuvem, como nuvem pública, privada e híbrida, que combina as duas primeiras. Vamos explorar as diferenças entre nuvem pública e privada. **Propriedade e gerenciamento** - Nuvem pública: A infraestrutura é de propriedade e gerenciada por um provedor de nuvem terceirizado. Os usuários não têm controle sobre os recursos físicos. - Nuvem privada: A infraestrutura é de propriedade e gerenciada pela própria organização ou por terceiros. A organização pode ter seus próprios servidores, sistemas de armazenamento e infraestrutura de rede, o que oferece maior controle sobre dados e segurança. **Segurança** - Nuvem pública: Provedores oferecem medidas de segurança robustas, como criptografia de dados e segurança física nos data centers. No entanto, algumas organizações podem considerar os dados mais vulneráveis devido à natureza compartilhada da nuvem pública. - Nuvem privada: Oferece maior controle sobre segurança. As organizações podem implementar suas próprias políticas, criptografar dados e configurar medidas de proteção personalizadas. Isso permite controle mais rigoroso sobre o acesso a dados e proteção contra ameaças. **Flexibilidade e escalabilidade** - Nuvem pública: Oferece alta flexibilidade e escalabilidade. Os usuários podem aumentar ou diminuir os recursos conforme necessário, pagando apenas pelo uso. Por exemplo, no Serverspace, é possível expandir rapidamente CPU, RAM e SSD com alguns cliques. Basta reiniciar o servidor para aplicar as alterações. - Nuvem privada: A flexibilidade e escalabilidade podem ser limitadas pelos recursos próprios da organização. No entanto, soluções como virtualização, clusters e orquestração podem ser implementadas para garantir maior flexibilidade conforme necessário. **Custos** - Nuvem pública: Os usuários pagam apenas pelos recursos consumidos, geralmente no modelo Pay-as-you-go, tornando-a uma solução econômica para muitas organizações. Isso elimina custos de aquisição e manutenção de infraestrutura própria. - Nuvem privada: Requer investimentos significativos na aquisição e manutenção da infraestrutura. Isso inclui a compra de servidores, equipamentos de rede, software e recursos de gerenciamento, o que pode gerar custos iniciais e operacionais mais altos em comparação com a nuvem pública. ## Quem deve usar a nuvem pública? A nuvem pública é uma ótima solução para diversas organizações e cenários. Veja quem mais se beneficia do nuvem pública: - **Startups:** Para startups com recursos limitados, a nuvem pública oferece uma maneira econômica e flexível de desenvolver e escalar produtos e serviços. Elas podem criar e lançar aplicativos rapidamente, sem precisar investir em infraestrutura própria. - **Pequenas e médias empresas (PMEs):** A nuvem pública dá acesso a tecnologias avançadas que normalmente estariam fora do alcance de PMEs devido a restrições orçamentárias. Essas empresas podem usar serviços de nuvem para armazenamento de dados, backup e escalonamento de operações. - **Testes e desenvolvimento:** Ideal para desenvolvedores que precisam de uma plataforma para testar e criar aplicativos. A nuvem pública permite alugar recursos sob demanda, economizando tempo e custos com infraestrutura local. Além disso, os recursos podem ser facilmente ajustados ou recriados em poucos cliques. - **Organizações globais:** A acessibilidade e escalabilidade da nuvem pública a tornam perfeita para organizações internacionais que precisam atender clientes em diferentes regiões do mundo. - **Projetos com carga variável:** Para projetos ou aplicativos com demandas variáveis, a nuvem pública é ideal. Você pode ajustar recursos conforme a necessidade, pagando apenas pelo uso efetivo. ## Como implementar a nuvem pública? Para implementar uma nuvem pública, escolha um provedor que ofereça esse [serviço](https://serverspace.com.br/services/iaas.md). No Serverspace, você pode criar servidores em nuvem e conectá-los em uma única rede com facilidade. ## Como criar sua nuvem no Serverspace? - Acesse o painel de controle e vá até a aba de criação de servidores. - Escolha as configurações: Sistema operacional: Linux, FreeBSD ou Windows Server; - Localização do data center: Selecione a região mais adequada; - CPU: Número de núcleos necessários; - RAM: Memória necessária; - SSD: Capacidade de armazenamento; - Largura de banda: Determine a capacidade do canal. O Serverspace oferece vários data centers pelo mundo. Escolha o local ideal para suas necessidades, considerando a localização dos seus usuários e os requisitos de desempenho. ### Como melhorar o desempenho de um banco de dados? O desempenho pode ser otimizado por meio da criação adequada de índices, otimização de consultas SQL, ajuste das configurações de memória, monitoramento contínuo e revisão da estrutura do banco de dados para eliminar gargalos. ### Qual é a diferença entre otimizar o MySQL e o PostgreSQL? Embora ambos utilizem técnicas como indexação e análise de consultas, o PostgreSQL oferece recursos avançados, como MVCC e diferentes tipos de índices (GIN, GiST e SP-GiST), enquanto o MySQL exige atenção especial às configurações do InnoDB, cache e ferramentas como Performance Schema. ### Por que o comando EXPLAIN é importante? O EXPLAIN mostra como o SGBD executa uma consulta SQL, indicando quais índices são utilizados e quais etapas consomem mais recursos. Isso ajuda a identificar problemas de desempenho e otimizar consultas de forma mais eficiente. ### Com que frequência um banco de dados deve ser otimizado? A otimização deve ser um processo contínuo. É recomendável realizar monitoramento constante, analisar métricas de desempenho, revisar índices e executar testes periódicos, especialmente após o crescimento do volume de dados ou alterações na aplicação. https://serverspace.com.br/about/blog/padrao-tier-iii.md Entenda os padrões Tier, seus benefícios e níveis. Descubra as certificações dos data centers Serverspace! No mundo moderno, os dados estão se tornando um ativo cada vez mais valioso para as organizações, e a confiabilidade e disponibilidade dos centros de processamento de dados (CPDs) são uma prioridade. Esses centros garantem o armazenamento, processamento e transmissão de dados críticos para as operações das organizações. Mas como saber se um CPD garante a continuidade do serviço e a proteção dos dados? Um dos padrões mais conhecidos e amplamente aplicados nesse campo é o padrão de confiabilidade Tier. Neste artigo, exploraremos o que é o padrão Tier, sua importância e os benefícios que ele oferece aos clientes que buscam alta confiabilidade na proteção e disponibilidade de seus dados. ## O que é o padrão Tier **Tier** é uma diretriz internacionalmente reconhecida para a classificação e avaliação da confiabilidade e disponibilidade dos centros de processamento de dados. Foi desenvolvida pelo instituto de certificação Uptime Institute e define os níveis de confiabilidade com base em requisitos específicos de arquitetura e infraestrutura dos CPDs. O objetivo do padrão Tier é estabelecer uma compreensão clara e inequívoca dos requisitos e expectativas em relação à confiabilidade e disponibilidade dos data centers. O Uptime Institute foi fundado nos Estados Unidos no final da década de 1990 como uma organização independente especializada na avaliação da confiabilidade e disponibilidade dos CPDs. Uma das primeiras conquistas do instituto foi a criação do padrão Tier, amplamente adotado e reconhecido na indústria. Os níveis Tier foram introduzidos para ajudar as organizações a compreender e definir os requisitos de infraestrutura e arquitetura de seus CPDs. Inicialmente, foram definidos três níveis do padrão Tier: Tier I, Tier II e Tier III. Cada nível representava um aumento progressivo na confiabilidade e disponibilidade dos CPDs. O nível Tier I correspondia à menor confiabilidade e disponibilidade, enquanto o nível Tier III garantia um grau mais elevado de confiabilidade e disponibilidade. Em 2008, foi introduzido um quarto nível, o Tier IV, desenvolvido para data centers que exigiam máxima confiabilidade e resiliência. A importância do padrão Tier na indústria cresceu rapidamente, e muitas organizações passaram a buscar a certificação de seus CPDs de acordo com esse padrão. Obter a certificação Tier do Uptime Institute tornou-se uma prova de conformidade dos CPDs com altos padrões de confiabilidade e disponibilidade. As empresas passaram a usar o padrão Tier como base para o design, construção e gerenciamento de seus CPDs, garantindo condições ótimas de funcionamento de seus sistemas e proteção de dados. Com o tempo, foram feitas atualizações e complementações para atender às mudanças tecnológicas e às exigências do setor. O Uptime Institute continua sendo a principal autoridade em avaliação e certificação de confiabilidade e disponibilidade de CPDs. Eles oferecem treinamento, consultoria e auditorias para organizações que buscam atender aos padrões Tier. ## Níveis de Confiabilidade Tier Como mencionado anteriormente, o padrão Tier inclui quatro níveis principais: **Tier I**, **Tier II**, **Tier III** e **Tier IV**. Cada nível representa um aumento progressivo na confiabilidade e disponibilidade dos Centros de Processamento de Dados (CPDs). A seguir, exploramos as principais características de cada nível: ### Tier I O nível Tier I é o menos avançado em termos de confiabilidade e disponibilidade para CPDs. Suas principais características incluem: - **Redundância limitada**: Oferece redundância única para os componentes principais, mas possui apenas uma linha de alimentação elétrica. Em caso de falha na linha principal, pode ocorrer interrupção nos serviços. - **Sistema de resfriamento básico**: Pode não haver redundância nos sistemas de resfriamento, o que aumenta o risco de falhas térmicas em caso de problemas no sistema. - **Paradas durante manutenção**: Não garante continuidade durante manutenção ou atualizações. Isso significa que a realização de manutenções ou substituições de equipamentos pode exigir a interrupção dos serviços. - **Disponibilidade**: O nível de disponibilidade é de no mínimo 99,671%, o que equivale a aproximadamente 28,8 horas de indisponibilidade por ano. - **Indicação de uso**: É uma solução adequada para pequenas organizações ou sistemas não críticos, onde confiabilidade e disponibilidade não são requisitos essenciais. Se a sua operação depende de serviços ininterruptos e proteção contra riscos e interrupções, níveis mais altos de Tier serão opções mais apropriadas. ### Tier II O nível Tier II apresenta maior confiabilidade e disponibilidade em comparação ao Tier I. Suas principais características incluem: - **Redundância dupla**: Garante redundância em alguns componentes, permitindo manutenção planejada sem interrupção total dos serviços. Possui duas linhas independentes de alimentação elétrica, o que oferece proteção contra falhas na linha principal. No entanto, pode ocorrer uma breve interrupção ao mudar para a linha de backup. - **Sistema de resfriamento redundante limitado**: Possui alguma redundância no sistema de resfriamento, mas ainda há risco de superaquecimento em caso de falhas no sistema. - **Continuidade parcial durante manutenção**: Oferece continuidade para alguns sistemas críticos durante manutenções, mas não para toda a infraestrutura do CPD. - **Disponibilidade**: O nível de disponibilidade é de no mínimo 99,741%, o que equivale a aproximadamente 22 horas de indisponibilidade por ano. - **Indicação de uso**: É uma escolha adequada para organizações que necessitam de maior confiabilidade e disponibilidade para seus sistemas, mas que podem aceitar algumas limitações em relação aos níveis mais altos de Tier. Estes dois níveis são mais indicados para empresas com diferentes níveis de criticidade nas operações. Caso sua organização exija alta confiabilidade e disponibilidade, considere optar por níveis Tier III ou IV para atender a requisitos mais rigorosos. ### Tier III Os CPDs de nível Tier III são o padrão de escolha para muitas empresas que buscam confiabilidade elevada no armazenamento e processamento de seus dados. Principais características: - **Redundância completa**: Garante dupla redundância para todos os componentes principais. Possui dois caminhos independentes e totalmente redundantes de fornecimento de energia. Em caso de falha em um dos caminhos, o outro entra em operação automaticamente, garantindo alimentação ininterrupta. Isso minimiza significativamente os riscos de interrupções. - **Sistemas de resfriamento redundantes**: Mantém condições estáveis de temperatura, evitando superaquecimento dos equipamentos e garantindo o desempenho ideal do sistema. - **Manutenção sem interrupções**: Permite realizar manutenção e atualizações planejadas sem impactar as operações do CPD. Isso é possível graças ao uso de sistemas e componentes duplicados que permitem o redirecionamento das operações sem tempo de inatividade. - **Alta disponibilidade**: Oferece um nível de disponibilidade de no mínimo 99,982%, o que equivale a aproximadamente 1,6 hora de indisponibilidade por ano. Os CPDs Tier III são ideais para organizações que precisam de alta confiabilidade e disponibilidade de sistemas, especialmente para processos de negócios críticos onde interrupções, mesmo que pequenas, podem gerar prejuízos financeiros e impactos negativos à reputação. ### Tier IV O nível Tier IV é o mais alto em confiabilidade e disponibilidade para Centros de Processamento de Dados. Ele atende aos mais exigentes requisitos de proteção e continuidade das operações. Principais características: - **Redundância dupla**: Possui dois caminhos independentes e completamente redundantes de fornecimento de energia, com dupla redundância em cada caminho. Isso garante continuidade no fornecimento de energia mesmo em caso de falhas simultâneas nos dois caminhos. - **Sistemas de resfriamento totalmente redundantes**: Mantém condições estáveis de temperatura, mesmo com falhas em uma ou mais unidades de resfriamento, garantindo o funcionamento pleno do CPD. - **Operação ininterrupta**: Garante continuidade total das operações durante quaisquer atividades de manutenção ou atualizações. Isso é alcançado por meio de sistemas e componentes duplicados e, muitas vezes, separados fisicamente. - **Máxima disponibilidade**: Oferece um nível de disponibilidade de no mínimo 99,995%, o que equivale a apenas 26 minutos de indisponibilidade por ano. Os CPDs Tier IV são a escolha ideal para empresas que exigem máxima confiabilidade e resiliência para aplicações críticas. Eles são projetados para garantir operações ininterruptas, mesmo em situações adversas, proporcionando proteção avançada para dados e sistemas. ## Certificações Tier As certificações Tier são divididas em três categorias: Design (Projeto), Facility (Infraestrutura) e Operations (Operações). ### Design (Projeto) O projeto de um CPD Tier desempenha um papel fundamental na garantia da confiabilidade e disponibilidade dos sistemas. As principais características incluem: - Redundância no fornecimento de energia elétrica. - Redundância nos sistemas de resfriamento. - Continuidade das operações durante manutenções. - Segurança física da instalação. ### Facility (Infraestrutura) A infraestrutura de um CPD Tier inclui os sistemas e componentes que permitem seu funcionamento de acordo com os padrões exigidos. Principais características: - Redundância em geradores de energia. - Sistemas de resfriamento duplicados. - Monitoramento e controle centralizados. ### Operations (Operações) A operação de um CPD Tier abrange a gestão e o suporte contínuos da infraestrutura, assegurando a conformidade com os requisitos do padrão. Características principais: - Gerenciamento eficiente de recursos. - Planos de manutenção e atualização. - Monitoramento e resposta a eventos. - Sistemas de backup e equipe técnica qualificada. A certificação Tier não é obrigatória para todos os data centers, e alguns podem ser construídos de acordo com os padrões Tier III sem obter formalmente a certificação. Isso pode ser motivado por razões como os custos associados ao processo de certificação, que podem ser significativos e impactar o preço final dos serviços para os clientes. A obtenção da certificação Tier III de uma instalação significa que ela foi avaliada e aprovada conforme os padrões do Uptime Institute, garantindo alta confiabilidade, disponibilidade e resiliência. ## Data Centers Serverspace A Serverspace opera equipamentos em sete data centers Tier III ao redor do mundo, oferecendo alta confiabilidade e disponibilidade. - **[Brasil (São Paulo)](https://serverspace.com.br/infrastructure/data-center-sao-paulo.md)**: O data center Equinix SP3 é um dos mais avançados da região, certificado pelo padrão Tier III com alto nível de resiliência operacional e conformidade com PCI DSS. - **[Estados Unidos (Nova Jersey)](https://serverspace.com.br/infrastructure/data-center-new-jersey.md)**: O data center NNJ3, localizado em Parsippany, Nova Jersey, oferece excelente proteção contra desastres naturais e inovadores sistemas de resfriamento. - **[Canadá (Toronto)](https://serverspace.com.br/infrastructure/data-center-toronto.md)**: O data center TOR3, gerenciado pela Cologix, é certificado Tier III e garante alto desempenho em energia, segurança e sistemas de resfriamento. - **[Países Baixos (Amsterdã)](https://serverspace.com.br/infrastructure/data-center-amsterdam.md)**: O data center AM2 é um dos mais modernos da Europa, certificado conforme os padrões PCI DSS e projetado para máxima eficiência. - **[Turquia (Istambul)](https://serverspace.com.br/index.md)**: O Star of Bosphorus é o primeiro data center comercial da Turquia certificado como Tier III pelo Uptime Institute. - **[Emirados Árabes Unidos (Dubai)](https://serverspace.com.br/infrastructure/data-center-dubai.md)**: O data center DX1 é parte de uma rede global, projetado para máxima eficiência e interconectividade. - **[Cazaquistão (Almaty)](https://serverspace.com.br/infrastructure/data-center-almaty.md)**: O Kazteleport foi projetado com as mais modernas tecnologias para atender às necessidades de segurança e disponibilidade de dados. Em 2025, a Serverspace planeja expandir sua infraestrutura com novos data centers, todos projetados para atender ao padrão Tier III. Para mais informações sobre nossos data centers, acesse nossa [página dedicada](https://serverspace.com.br/infrastructure/data-centers.md). A existência de uma certificação Tier III para um data center significa que ele foi avaliado e certificado em conformidade com os padrões e requisitos estabelecidos pelo Consórcio Uptime Institute. A certificação Tier III confirma que o data center possui um alto nível de confiabilidade, disponibilidade e resiliência a falhas. Ele oferece características e funcionalidades específicas que ajudam a minimizar os períodos de inatividade e a garantir o funcionamento contínuo dos sistemas de informação. No entanto, essa certificação não é o único indicador que reflete a confiabilidade de um data center. Antes de escolher uma localização para hospedar seus dados e implementar [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md), é essencial analisar cuidadosamente todas as características do data center, consultar especialistas no assunto e fazer uma escolha informada. ### O que é o padrão Tier e qual é o seu objetivo principal na indústria de data centers? Tier é uma diretriz internacionalmente reconhecida para a classificação e avaliação da confiabilidade e disponibilidade dos centros de processamento de dados. O objetivo do padrão Tier é estabelecer uma compreensão clara e inequívoca dos requisitos e expectativas em relação à confiabilidade e disponibilidade dos data centers. ### Quais são as garantias de disponibilidade e o tempo de indisponibilidade anual de um CPD de nível Tier III? Oferece um nível de disponibilidade de no mínimo 99,982%, o que equivale a aproximadamente 1,6 hora de indisponibilidade por ano. Os CPDs Tier III são ideais para organizações que precisam de alta confiabilidade e disponibilidade de sistemas, especialmente para processos de negócios críticos onde interrupções, mesmo que pequenas, podem gerar prejuízos financeiros e impactos negativos à reputação. ### Por que alguns data centers são construídos de acordo com os padrões Tier III, mas não possuem a certificação formal? A certificação Tier não é obrigatória para todos os data centers, e alguns podem ser construídos de acordo com os padrões Tier III sem obter formalmente a certificação. Isso pode ser motivado por razões como os custos associados ao processo de certificação, que podem ser significativos e impactar o preço final dos serviços para os clientes. ### Quais são os planos de expansão de infraestrutura da Serverspace para o futuro próximo? Em 2025, a Serverspace planeja expandir sua infraestrutura com novos data centers, todos projetados para atender ao padrão Tier III. Para mais informações sobre nossos data centers, acesse nossa página dedicada. https://serverspace.com.br/about/news/boas-festas.md Temos certeza de que você se comportou bem neste ano e merece um presente. Gire a Roda da Fortuna do Serverspace e ganhe! Temos certeza de que você se comportou bem neste ano e merece um presente. Gire a Roda da Fortuna do Serverspace e ganhe! O Serverspace está lançando uma promoção especial de jogos de férias. Convidamos novos usuários a participar da [Roda da Fortuna](https://serverspace.com.br/roda-da-fortuna-no-serverspace/) de Natal. Os prêmios incluem ofertas incríveis, desde cashback até um ano inteiro de VPS grátis! Gire a roda e descubra o que você vai ganhar! ### Como participar? - Digite seu endereço de e-mail no formulário ao lado esquerdo do botão "Girar a Roda" para ativá-lo. - Clique no botão "Girar a Roda" e veja os prêmios. - Verifique seu e-mail – o prêmio já estará lá. ### Condições da promoção de Natal: - A Roda da Fortuna está disponível apenas para novos usuários que criaram uma conta pela primeira vez durante o período da promoção. - A promoção da Roda da Fortuna de Natal estará em vigor de 18/12/24 a 28/12/24. - Os códigos promocionais dos prêmios são válidos apenas durante o período da Roda da Fortuna de Natal. ### Para prêmios com bônus em reais: - Os reais de bônus serão creditados no saldo ao realizar um depósito de 25 R$ ou mais. - Os reais de bônus serão aplicados somente a 1 projeto, que será criado automaticamente no momento do cadastro. ### E para os nossos usuários já existentes? Os presentes de Natal já estão esperando por você no painel de controle. Acesse-o para conferir os termos e condições de recebimento. _[Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas abertas como API, CLI e Terraform estão disponíveis para integração dos serviços dos clientes._ https://serverspace.com.br/about/news/feliz-natal.md Neste final de ano, queremos desejar a você um Feliz Natal e um próspero Ano Novo! **Caros usuários da Serverspace**, neste final de ano, queremos desejar a você um Feliz Natal e um próspero Ano Novo! ???? Gostaríamos de aproveitar este momento para expressar nossa sincera gratidão por sua confiança e parceria ao longo de 2024. Foi um ano marcante para nós, e vocês desempenharam um papel essencial nessa jornada. Com muita alegria, celebramos a chegada da Serverspace ao Brasil, um marco que nos enche de orgulho e reforça nosso compromisso em oferecer soluções inovadoras e confiáveis. Além disso, expandimos nossa presença para 7 países e lançamos funcionalidades incríveis, como o [Vídeo on Demand](https://serverspace.com.br/services/video-on-demand-vod.md) e a [GPT API](https://serverspace.com.br/services/api-gpt-do-serverspace.md), que tornam nossos serviços ainda mais completos e eficientes. Tudo isso só foi possível graças a você, que faz parte da nossa história. Que 2025 traga muita felicidade, sucesso e oportunidades para todos. Estamos prontos para continuar ao seu lado, trazendo ainda mais inovação e suporte de qualidade. Nos vemos no próximo ano! Com os melhores votos, **Equipe Serverspace** ???? https://serverspace.com.br/about/blog/o-que-e-kubernetes-k8s.md O que é um cluster Kubernetes (K8s) e por que sua empresa precisa dele? Conheça a história, os benefícios e o futuro dessa tecnologia. Descubra mais! Nos últimos anos, o método de containerização transformou a forma como as aplicações são implantadas. A containerização permite empacotar aplicações junto com suas dependências em contêineres isolados. Esses contêineres podem ser executados em praticamente qualquer ambiente, seja em um servidor local, plataforma em nuvem ou infraestrutura híbrida. Para gerenciar contêineres, é amplamente utilizada a plataforma Kubernetes, que automatiza sua implantação, escalabilidade e gerenciamento. O Kubernetes ajuda a reduzir a complexidade desses processos, tornando-os mais previsíveis e acessíveis. ## O que é Kubernetes? Kubernetes (ou K8s) é uma plataforma aberta desenvolvida pelo Google que permite gerenciar aplicações em contêineres em ambientes distribuídos. Ela simplifica o processo de implantação e manutenção de aplicações, fornecendo aos desenvolvedores um conjunto poderoso de ferramentas para trabalhar com contêineres. ## Principais benefícios do Kubernetes - **Automação do gerenciamento de contêineres.** O Kubernetes permite iniciar, parar e monitorar contêineres. Ele também ajuda a distribuir a carga de trabalho entre servidores (ou nós) em um cluster, garantindo uma utilização equilibrada. - **Escalabilidade.** _Escalabilidade horizontal:_ aumento ou redução do número de contêineres de acordo com a carga de trabalho. - _Escalabilidade vertical:_ ajuste de recursos alocados (CPU, memória) para um contêiner. O Kubernetes realiza essas operações automaticamente, reagindo às condições atuais. - **Auto-recuperação.** Se um contêiner ou servidor falhar, o Kubernetes detecta automaticamente o problema e reinicia os componentes defeituosos. Isso garante alta disponibilidade e estabilidade das aplicações. - **Abordagem declarativa de gerenciamento.** Em vez de executar comandos manuais, os desenvolvedores definem o estado desejado do sistema (por exemplo, "3 réplicas da aplicação em execução"), e o Kubernetes mantém esse estado automaticamente. Isso simplifica o gerenciamento, tornando os processos de implantação mais previsíveis. - **Suporte a várias infraestruturas.** O Kubernetes funciona tanto em ambientes em nuvem quanto em servidores locais. Isso oferece flexibilidade na escolha da plataforma ideal para o seu projeto. Kubernetes é uma ferramenta poderosa para gerenciar contêineres que simplifica o trabalho de desenvolvedores e engenheiros DevOps. Com automação e flexibilidade, o Kubernetes permite criar sistemas estáveis, escaláveis e de fácil manutenção, independentemente da infraestrutura utilizada. ## História do Kubernetes O Kubernetes surgiu a partir da experiência do Google em gerenciar aplicações escaláveis. Em 2003, a empresa desenvolveu o Borg, um sistema interno que automatizava a implantação, escalabilidade e gerenciamento de recursos em toda a infraestrutura do Google. Em 2014, o Google apresentou o Kubernetes — uma versão aberta do sistema, baseada nos princípios do Borg. A primeira versão pública foi lançada em junho do mesmo ano, e o projeto foi transferido para a Cloud Native Computing Foundation (CNCF). O Kubernetes rapidamente se tornou o padrão para gerenciar aplicações em contêineres e continua em constante evolução. Hoje, empresas ao redor do mundo o utilizam para gerenciar aplicações tanto na nuvem quanto em infraestruturas locais. A plataforma permanece como uma ferramenta central para DevOps e desenvolvimento de soluções em nuvem, com atualizações frequentes e novos recursos. ## Arquitetura do Kubernetes [https://serverspace.com.br/wp-content/uploads/2024/12/kubernetes-arc-1.svg](https://serverspace.com.br/wp-content/uploads/2024/12/kubernetes-arc-1.svg) - **Master Node (Control Plane Node).** O master node é o elemento central do Kubernetes, responsável por executar tarefas administrativas essenciais para gerenciar o cluster. Ele é composto pelos seguintes componentes principais: _API Server:_ fornece uma interface para interagir com o Kubernetes. É através do API Server que todas as solicitações e comandos chegam ao cluster. Por exemplo, ao implantar uma aplicação, o pedido passa pelo API Server. - _Controllers:_ garantem que o cluster esteja no estado desejado, controlando processos como a quantidade de réplicas de pods em execução ou a recuperação de nós em caso de falhas. - _Scheduler:_ distribui novos pods entre os nodes com base na disponibilidade de recursos e nas políticas de alocação. - _etcd:_ um armazenamento distribuído de chave-valor que guarda todas as informações sobre o estado do cluster, incluindo configurações e a localização dos pods. - **Nodes.** Os nodes são servidores físicos ou virtuais onde os pods são executados. Eles atuam como unidades de trabalho que fornecem os recursos necessários para rodar os contêineres. Em cada node, estão presentes três componentes principais: Kubelet: é o agente que gerencia o ciclo de vida dos pods naquele node. Ele recebe comandos do master node e garante que os contêineres sejam executados corretamente. - Kube-proxy: mantém a conectividade de rede entre os pods e realiza o balanceamento de carga, direcionando as solicitações para os serviços apropriados. - Container Runtime: a ferramenta que gerencia e executa os contêineres diretamente, como Docker, Containerd ou CRI-O. Cada node possui seus próprios recursos computacionais (CPU, memória, armazenamento) e interfaces de rede. Todos os nodes estão conectados ao master node, que coordena sua operação. - **Pods.** O pod é a menor unidade de implantação no Kubernetes. Dentro de um pod pode haver um ou mais contêineres que compartilham recursos, como rede e armazenamento. Por exemplo: Um pod pode conter um servidor web e um contêiner para coleta de logs. Os pods são os blocos de construção fundamentais usados pelo Kubernetes para gerenciar aplicações. - **Services.** Os serviços são abstrações que fornecem um endereço fixo para acessar um grupo de pods. Mesmo que os pods sejam alterados ou reiniciados, o serviço continua a redirecionar as solicitações para as instâncias disponíveis, garantindo o balanceamento de carga. - **Componentes adicionais:** _Replication Controller:_ garante que um número definido de pods esteja sempre em execução, restaurando automaticamente instâncias em caso de falhas. - _Persistent Volumes:_ oferecem armazenamento permanente, permitindo que os dados sejam preservados mesmo quando os pods são reiniciados ou movidos. - _ConfigMaps e Secrets:_ armazenam dados de configuração e informações confidenciais, como senhas e chaves. - _Ingress Controller:_ gerencia o tráfego de entrada, roteando solicitações para serviços, como em acessos por nomes de domínio. - _Namespaces:_ permitem dividir os recursos do cluster em grupos lógicos, isolando aplicações e usuários. ## Para que serve o Kubernetes? O Kubernetes desempenha funções essenciais no gerenciamento de aplicações em contêineres: - **Implantação de contêineres e gerenciamento de estado.** Permite iniciar, parar e reiniciar contêineres, garantindo que as aplicações estejam sempre operacionais e atualizadas. - **Escalabilidade de aplicações.** Possibilita a execução de vários contêineres em diferentes hosts, aumentando a eficiência no uso de recursos e garantindo a alta disponibilidade. - **Balanceamento de carga.** Kubernetes distribui automaticamente a carga entre os contêineres, otimizando o desempenho. Por meio de sua API, é possível agrupar contêineres, definir pools e alocações eficientes, maximizando o uso dos recursos disponíveis. ## Processo de instalação do Kubernetes O serviço Kubernetes pode ser solicitado na [Serverspace](https://serverspace.com.br/services/managed-kubernetes.md), onde você pode selecionar a versão desejada, a localização do cluster e configurar parâmetros como CPU, RAM e número de nós. Na interface de gerenciamento, é possível ativar o Dashboard para facilitar a administração. Através da interface, você pode criar e excluir clusters, modificar suas configurações e gerenciar os nós. Para tarefas mais avançadas, utiliza-se a linha de comando com ferramentas específicas para trabalhar com clusters. ### Uso do kubectl O kubectl é a principal ferramenta de linha de comando do Kubernetes, que permite: - Implantar aplicações; - Gerenciar recursos do cluster; - Visualizar logs e status dos componentes. A documentação oficial do Kubernetes oferece uma descrição completa das funcionalidades do kubectl. ### Instalação do kubectl no Ubuntu Execute os seguintes comandos para instalar o kubectl: ```bash sudo apt-get update && sudo apt-get install -y apt-transport-https curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl ``` ### Conexão ao cluster Kubernetes Para se conectar ao cluster, você precisará de um arquivo de configuração contendo dados de autenticação. Baixe o arquivo de configuração e configure o caminho na variável de ambiente: ``` export KUBECONFIG= ``` Verifique a conexão com o cluster: ```bash kubectl cluster-info ``` Caso a conexão seja bem-sucedida, você verá a seguinte mensagem: ``` Kubernetes control plane is running at https://XXX.XXX.XXX.XXX:YYY ``` Se a conexão falhar, você verá o erro: ``` The connection to the server was refused - did you specify the right host or port? ``` Para diagnosticar problemas, use o comando: ```bash kubectl cluster-info dump ``` Para aprender a trabalhar com o kubectl e as principais operações no Kubernetes, consulte o [guia rápido (cheat sheet)](https://kubernetes.io/docs/reference/kubectl/cheatsheet/) oficial disponibilizado pelos desenvolvedores do Kubernetes. ### O que é Kubernetes e de que forma ele auxilia os desenvolvedores no dia a dia? Kubernetes (ou K8s) é uma plataforma aberta desenvolvida pelo Google que permite gerenciar aplicações em contêineres em ambientes distribuídos. Ela simplifica o processo de implantação e manutenção de aplicações, fornecendo aos desenvolvedores um conjunto poderoso de ferramentas para trabalhar com contêineres. ### O que é um pod dentro da arquitetura do Kubernetes e como ele funciona na prática? O pod é a menor unidade de implantação no Kubernetes. Dentro de um pod pode haver um ou mais contêineres que compartilham recursos, como rede e armazenamento. ### O que é a ferramenta kubectl e quais são as suas principais utilidades no gerenciamento do cluster? O kubectl é a principal ferramenta de linha de comando do Kubernetes, que permite: implantar aplicações; gerenciar recursos do cluster; visualizar logs e status dos componentes. A documentação oficial do Kubernetes oferece uma descrição completa das funcionalidades do kubectl. ### Qual comando deve ser utilizado para verificar se a conexão com o cluster Kubernetes foi bem-sucedida? Verifique a conexão com o cluster: kubectl cluster-info. Caso a conexão seja bem-sucedida, você verá a seguinte mensagem: Kubernetes control plane is running at https://XXX.XXX.XXX.XXX:YYY. https://serverspace.com.br/support/help/descontinuando-apt-key-e-add-apt-repository-o-que-fazer.md Você teve problemas no momento de usar o add-apt-repository? Nesse tutorial, você encontra a resposta para sua pergunta! ## Por que o apt-key está sendo descontinuado? O processo de instalação segura contém muitas armadilhas, uma das quais é o download de arquivos e recursos com privacidade e autenticação. As distribuições Linux implementaram as utilidades apt-key e add-apt-repository, que automatizam o processo de verificação de pacotes de repositórios com chaves adicionadas. No entanto, surgiu um problema de segurança significativo: não há um mecanismo para atribuir uma chave específica a um repositório. Isso significa que, se a chave de uma empresa for comprometida ou se os funcionários abusarem de sua autoridade, um arquivo malicioso poderá ser assinado. Versões mais recentes das distribuições já integraram uma solução mais segura usando diretamente o GPG, que discutiremos a seguir. ## Qual comando substituiu o apt-key? Em vez dos obsoletos apt-key e apt-add-repository, que mediavam o mecanismo de verificação, apenas a utilidade GPG será utilizada. Ela já estava presente no mecanismo de identificação, integridade e autenticação antes. No entanto, a atualização permitirá eliminar as utilidades intermediárias que representavam uma série de ameaças. Screenshot №1 — GPG GPG ou GNU Privacy Guard é um pacote criptográfico que permite criptografar, descriptografar, assinar documentos e mensagens com EDS, armazenar chaves com identificadores em um banco de dados e executar muitas funções de criptossistema. Uma dessas funções é a verificação de assinaturas em pacotes apt. Para uma demonstração mais clara, todos os passos do tutorial podem ser realizados em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) poderosos. Screenshot №2 — Lista de servidores Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes. E vamos ao terminal com nosso SO! ## Como adicionar chaves e repositório no terminal? Primeiro, precisamos obter as chaves públicas e um link para o repositório de onde os pacotes serão baixados. Por exemplo, vamos olhar para o banco de dados MongoDB. Vá ao site oficial para encontrar um repositório para a distribuição Debian e fixe os principais componentes: - Chave pública: www.mongodb.org/static/pgp/server-7.0.asc - Link para o repositório: repo.mongodb.org/apt/debian As utilidades curl e gpg são necessárias para trabalhar com os componentes, se não estiverem disponíveis, instale-as com o comando abaixo: ```bash apt install curl gnupg -y ``` Ao baixar dados do repositório antes da instalação, o Linux acessa a lista de chaves confiáveis e verifica as assinaturas; se corresponderem, o processo de instalação prossegue. Caso contrário, a utilidade exibe que as assinaturas não correspondem e o pacote é considerado potencialmente não confiável. Para que os arquivos sejam verificados, é necessário baixar a chave pública e adicioná-la à lista de chaves confiáveis. ```bash curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongokey.gpg ``` Screenshot №3 — Baixar chave do site Após verificar que o arquivo é de fato uma assinatura pública, agora precisamos adicionar um repositório e associá-lo à chave. Para isso, vamos escrever um comando que permitirá fazer alterações no arquivo de repositórios: ``` echo "deb [ signed-by=/usr/share/keyrings/mongokey.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" >> /etc/apt/sources.list.d/mongodb-org-7.0.list ``` Vamos dar uma olhada mais detalhada em cada elemento do comando: - A utilidade echo permite exibir valores entre aspas; - A string `[ signed-by=/usr/share/keyrings/mongokey.gpg ]` é o caminho para o mecanismo de verificação da chave; - Link para o repositório: `http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main`; - Redireciona o conteúdo da tela, após a utilidade echo, para o arquivo `/etc/apt/sources.list.d/mongodb-org-7.0.list`. Screenshot №4 — Fazer registro com o caminho do repositório Depois de verificar com a utilidade cat para ver se há um registro, podemos atualizar a distribuição e tentar baixar o software: ```bash apt update && apt upgrade && apt install mongodb-org -y ``` Screenshot №5 — Baixar do repositório Os pacotes foram baixados e instalados com sucesso no sistema! Neste caso, instalamos as chaves com segurança, pois anteriormente nos conectamos via HTTPS a um site que possuía um certificado válido. Isso indica a autenticidade dos dados armazenados e também a soma de verificação anexada à chave certifica sua integridade. Portanto, os pacotes transmitidos são autênticos e não foram modificados! https://serverspace.com.br/support/help/como-usar-o-nano-e-o-que-e.md Saiba o que é o editor de texto nano e como usá-lo. Este manual apresenta os comandos e as funções básicas do nano! Para trabalhar com o sistema operacional Linux, você precisa de um terminal, shell e utilitários que proporcionem ao usuário a capacidade de gerenciar e configurar o sistema, além de realizar tarefas comuns! Um dos utilitários populares para trabalhar com texto no Linux é o **nano**. Vamos explorar sua funcionalidade, opções de controle e avaliar sua usabilidade, tanto para iniciantes quanto para especialistas experientes. ## O que é o Nano e como encontrá-lo? Nano é um editor de texto destinado principalmente para uso via console. Ele faz parte do pacote de software GNU, sendo bastante popular e amplamente utilizado. É fácil de aprender e pode ser útil até para iniciantes. Para começar a usar o nano, você precisa verificar se o pacote está instalado, digitando o seguinte comando no terminal: ``` nano ``` Screenshot №1 — Verificando a instalação do nano Se o resultado for semelhante a "comando não encontrado", o pacote provavelmente não está instalado. Você pode instalá-lo via o gerenciador de pacotes com o comando: ```bash apt update && apt upgrade && apt install nano ``` Para sistemas baseados em RPM, o comando de instalação pode ser semelhante a este: ```bash dnf update && dnf upgrade && dnf install nano ``` Depois de garantir que todas as dependências do pacote estejam instaladas, você pode usar o comando nano e avançar para sua sintaxe! ## Sintaxe do nano Para editar um arquivo, insira o caminho até ele, ou, se você estiver na pasta onde o arquivo está, basta digitar seu nome: ``` nano [path to file] ``` Por exemplo, para abrir um arquivo de logs, escreva o caminho completo: ``` nano /var/log/cloud-init.log ``` Screenshot №2 — Abrindo um arquivo com nano Após abrir o arquivo, você verá seu conteúdo, bem como informações técnicas, como cabeçalhos e o painel de controle na parte inferior. Por padrão, o arquivo pode ser imediatamente editado. Use as setas do teclado para navegar. Para salvar as alterações, pressione **Ctrl + O**; para sair sem salvar, pressione **Ctrl + X**. Para acessar a ajuda da utilidade, pressione **Ctrl + G**. Screenshot №3 — Página de ajuda Note que o símbolo ^ no terminal é ativado via **Ctrl** e todos os comandos exibidos na ajuda podem ser utilizados dessa forma. Alternativamente, você pode pressionar **Esc** duas vezes. ## Como copiar e colar no nano? Para copiar, use as teclas de atalho **Ctrl+K** e **Ctrl+U**. Selecione os dados segurando Shift e movendo o cursor com as setas. Screenshot №4 — Selecionando dados Depois, use **Ctrl+K** para copiar e **Ctrl+U** para colar a área selecionada. Todos os passos deste tutorial podem ser realizados em servidores na nuvem. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №5 - Criar Servidor O processo de implantação dos servidores levará algum tempo. Depois, você pode se conectar de qualquer maneira conveniente! ## Como buscar texto no nano? Suponha que você conheça um determinado padrão ou modelo que deseja encontrar. Para isso, pressione **Ctrl + W** para entrar no modo de busca. A linha na parte inferior exibirá os dados de entrada. Após inserir os dados, pressione Enter. O termo encontrado não será destacado, mas o cursor será posicionado no início da primeira ocorrência. Para buscar a próxima ocorrência, pressione **Ctrl + W** novamente e, sem digitar nada, pressione Enter. Screenshot №6 — Buscar texto Trabalhar com Linux exige conhecimentos sobre o terminal, shell e utilitários que permitem gerenciar e configurar o sistema, além de realizar tarefas básicas. Um desses utilitários úteis é o editor de texto nano. Ele é fácil de aprender, conveniente para iniciantes e usuários experientes. Abordamos como instalar e usar o nano, desde operações básicas até copiar e buscar texto. Este editor mostra que a gestão de arquivos no Linux pode ser intuitiva e eficiente. Agora você está pronto para usar o nano para editar arquivos de texto e otimizar seu trabalho no ambiente da console Linux. https://serverspace.com.br/support/help/como-usar-o-curl-no-linux.md Saiba como aproveitar ao máximo o utilitário Curl no Linux. Aprenda os comandos básicos. Aprenda a aproveitar ao máximo o utilitário Curl no Linux. **CURL** ou **cliente URL** é uma utilidade multifuncional que permite se comunicar com servidores usando HTTP, HTTPS, FTP, FTPS, SCP, SSH e muitos outros protocolos. O principal uso que os usuários encontraram é utilizar a ferramenta para fazer requisições a servidores web. No entanto, graças à biblioteca libcurl, a funcionalidade da ferramenta abre um grande leque de possibilidades. ## Como instalar o curl? A instalação é padrão, como para qualquer pacote de sistema Linux semelhante. É necessário primeiro atualizar o repositório, se você estiver usando o **apt-manager**, digite o comando: ```bash apt update && apt upgrade apt install curl -y ``` Para um **gerenciador de pacotes do tipo RPM**, use os comandos apropriados: ```bash dnf update && dnf upgrade dnf install curl -y ``` Screenshot №1 — Instalação do Curl Após atualizar os repositórios e instalar a ferramenta, vamos explorar o tooltip e dividir a ajuda em categorias ou protocolos de operação: ```bash curl --help category ``` Screenshot №2 — Categoria de ajuda Essa lista fornece uma lista completa de protocolos que podem ser usados para se comunicar com servidores. Se você substituir a palavra "category" no comando anterior por um dos itens fornecidos, abrirá um guia detalhado sobre como usar cada uma das opções: ```bash curl help http ``` O comando acima é um exemplo de busca por comandos para trabalhar com o protocolo HTTP. ## Exemplos básicos de uso Vamos examinar exemplos básicos de uso da ferramenta, mas antes disso, vamos definir a sintaxe utilizada: ```bash curl [opções] ``` Este é o comando principal para chamar a ferramenta curl, com suas principais opções e a URL que será acessada. ## Como baixar um arquivo usando o Curl? Por padrão, ao acessar um site, o curl envia uma requisição GET, solicitando os cabeçalhos e o próprio arquivo ao servidor. Para salvar o arquivo, use o seguinte comando: ```bash curl -Lo /tmp/artigos.pdf ``` Screenshot №3 — Download do arquivo Note que, para fazer o download de um site que pode ter um certificado autoassinado, você deve usar a opção **-k** adicionalmente. Após o download, o arquivo será salvo no diretório **/tmp/** com o nome artigos.pdf, sendo a opção -o responsável por isso. A outra opção **-i** que, se o site responder com um código de redirecionamento 301, 302, etc., o curl irá automaticamente para o site correto e fará o download do arquivo. O arquivo também pode ser mantido com o nome original e baixado no diretório atual: ```bash curl -Lo ``` No entanto, se você quiser exibir o arquivo diretamente no terminal, deixe um traço em vez do nome do arquivo: ```bash curl -Lo - ``` Essa solução permitirá que você visualize o conteúdo de um arquivo rapidamente com seus cabeçalhos e meta descrição, o que pode ser necessário para verificar o conteúdo do arquivo, como a presença de scripts embutidos em um PDF, por exemplo. Todos os passos do tutorial podem ser realizados em servidores cloud potentes. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №4 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes. Vamos continuar explorando a ferramenta. ## Como visualizar cabeçalhos usando o Curl? Antes de baixar um arquivo ou armazená-lo em cache, é necessário coletar informações sobre a página/arquivo que será acessado. Por exemplo, um arquivo PDF está hospedado em um site e é necessário saber seu nome, tamanho e a data da última modificação do arquivo. Para isso, digite o seguinte comando: ```bash curl -lkI ``` Screenshot №5 — Cabeçalho do arquivo O campo MIME content-type classifica o arquivo como PDF. O próximo campo, **last-modified**, contém a data da última modificação, e o campo **content-length** contém o tamanho do corpo do documento. ## Download interrompido continuado Suponha que você começou a baixar um arquivo e, acidentalmente, cancelou o download. Se a linha **Accept-Ranges: bytes** estiver presente nos cabeçalhos de resposta do servidor, você pode usar a função para continuar o download cancelado. Para isso, o **-c parameter** deve ser adicionado à lista usual de opções ao baixar com **-Lko**, o que permitirá continuar o download: Screenshot №6 — Continuar download O arquivo será salvo no diretório onde o usuário está localizado no momento. ## Como alterar o User-Agent ou outro cabeçalho? Ao trabalhar com um servidor web, pode ser necessário implementar cabeçalhos personalizados. Para isso, o curl tem a **-H option**, que permitirá adicionar um cabeçalho com um valor: ```bash curl -LkvH "x-os-client: MacOS" ``` Screenshot №7 — Cabeçalho personalizado Há uma opção separada, **-A**, para personalizar o campo **User-Agent** de forma semelhante. Deve-se especificar um novo valor de agente, por exemplo, o comando pode ter o seguinte formato: [code]curl -LkvA "MacOS" [.code] Screenshot №8 — User-Agent O uso do **CURL** facilita diversas operações de rede e oferece ao usuário flexibilidade e controle ao interagir com servidores. Graças às suas capacidades, os usuários podem executar uma variedade de tarefas relacionadas à troca de dados de forma eficiente. https://serverspace.com.br/support/help/como-usar-o-traceroute-no-linux.md Aprenda a usar o traceroute no Linux para testar a conexão de rede entre dispositivos. Veja como instalar, configurar e executar o traceroute com exemplos práticos e instruções detalhadas. O **Traceroute** é uma ferramenta para testar o caminho da conexão de rede entre dispositivos. Sua principal função é exibir uma lista de dispositivos envolvidos na transmissão de pacotes até o ponto de destino. Ele opera nos protocolos de camada de rede e transporte: **TCP, UDP e ICMP**. Além disso, diferentemente do utilitário ping, ele pode ser utilizado para mapear a rede. ## Qual é o princípio de funcionamento? Para que os dispositivos se comuniquem na rede, existem várias regras que regem a transmissão de informações. Uma dessas regras exige a adição de um parâmetro TTL a cada pacote transmitido, que tem um valor padrão de **128 para PCs e 64 para dispositivos móveis**. A cada vez que um pacote passa por um roteador, o valor do TTL é reduzido, para evitar que o pacote entre em loop. Quando o valor chega a 0, o roteador exclui o pacote e envia de volta um pacote Time Exceed. **Assim, o princípio de funcionamento é o seguinte**: o traceroute envia pacotes ICMP com os parâmetros TTL=1, TTL=2, TTL=3 e assim por diante; quando o nó responde com Time Exceed, o utilitário registra esse nó. ## Como instalar o traceroute? Antes de instalar o utilitário, é necessário verificar se ele já está disponível no seu dispositivo, consultando o gerenciador de pacotes. Para distribuições que utilizam o **gerenciador apt**: ```bash apt list | grep "traceroute" ``` Se você estiver usando um **gerenciador de pacotes do tipo RPM**, o comando será: ```bash dnf list | grep "traceroute" ``` Screenshot №1 — Instalando o traceroute Utilizamos o gerenciador de pacotes para a instalação: ```bash apt update && apt upgrade apt install traceroute -y ``` Para um gerenciador do tipo RPM, use os comandos correspondentes: ```bash dnf update && dnf upgrade dnf install traceroute -y ``` Atualize os repositórios, instale o utilitário e consulte a ajuda para selecionar opções úteis na lista completa: ``` traceroute ``` Screenshot №2 — Página de ajuda Esta lista fornece todas as opções que podem ser utilizadas. As opções **-4 e -6** permitem especificar o tipo de protocolo usado, seja **IPv4 ou IPv6**. Para que os pacotes não sejam fragmentados, mas transmitidos inteiramente, usa-se a opção **-F**. Para alterar o protocolo usado na pesquisa dos nós, você pode utilizar as opções **-T para pacotes TCP, -I para conexões ICMP, sendo o UDP o padrão.** ## Exemplos de uso do utilitário Para verificar o caminho até um nó, você deve escrever um comando que aponte para o nó de destino: ``` traceroute google.com ``` Screenshot №3 — Traceroute UDP O screenshot mostra o caminho completo dos roteadores e dispositivos de redirecionamento que o pacote percorreu. Com base nisso, é possível inferir quais redes estão aninhadas umas nas outras e quais estão no mesmo nível. Às vezes, os pacotes de resposta não chegam e asteriscos aparecem no lugar do nó, como na linha 5 do screenshot. Isso ocorre porque o nó fechou as portas para conexão com o protocolo utilizado. Nesses casos, você pode tentar uma conexão TCP ou ICMP. Por exemplo, para verificar a 5ª linha para google.com, use: ``` traceroute -T google.com ``` Screenshot №4 — Traceroute TCP Todos os passos descritos no tutorial podem ser realizados em servidores em nuvem de alto desempenho. A Serverspace oferece [servidores VP](https://serverspace.com.br/services/cloud-servers.md)S isolados para uso comum e virtualizado. Screenshot №5 — Criar Servidor Levará algum tempo para configurar a capacidade do servidor. Após isso, você poderá se conectar de qualquer forma conveniente! https://serverspace.com.br/support/help/como-sair-do-vim-e-outras-dicas-de-gerenciamento.md Saiba como sair do VIM e outras dicas importantes de gerenciamento. Aprenda maneiras eficientes de navegar e trabalhar. O **Vim é um editor** de texto amplamente utilizado em sistemas operacionais do tipo Linux. Suas diversas funcionalidades e forma de operação nem sempre são fáceis para iniciantes. Por isso, este manual explica os conceitos básicos e responde às principais perguntas sobre o uso dessa ferramenta. ## Como sair do vim? Para sair do vim, é necessário alternar do modo de edição para o modo de comando e digitar o comando de saída. Pressione a tecla **Esc** e digite o comando **:wq**, como mostrado na imagem abaixo: Screenshot №1 — Saindo do vim O comando **:wq** indica duas ações básicas: salvar e sair. Para sair sem salvar, use o comando **:q!**, que pode ser útil quando você não deseja manter as alterações. ## Como aprender os comandos do vim? Para se familiarizar com as opções básicas do vim, você pode usar **-h** ao chamar a utilidade: ``` vim -h ``` Screenshot №2 — Lista de argumentos de ajuda O manual descreve as opções e a sintaxe básicas que serão usadas para chamar a utilidade e trabalhar com ela. Para aprender os comandos básicos do editor, há uma utilidade chamada **vimtutor**, que abre cerca de vinte tutoriais: Screenshot №3 — Vimtutor Ao passar por esses tutoriais, em um tempo estimado de 25 minutos, você aprenderá o básico e será capaz de usar o editor plenamente. Todos os passos do tutorial podem ser realizados em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) poderosos. A Serverspace fornece servidores VPS isolados para uso comum e virtualizado. Screenshot №4 — Criando Servidor Levará algum tempo para implantar a capacidade do servidor. Após isso, você poderá se conectar de qualquer maneira conveniente. Agora, vamos continuar explorando o ambiente do vim. ## Como habilitar o modo de edição no vim? Ao abrir um arquivo, a utilidade aguarda comandos de entrada; para alternar do modo de visualização para o modo de edição, pressione a tecla **i**, que iniciará a inserção a partir da posição do cursor. O símbolo **I** iniciará a inserção a partir do início da linha. Digite o texto necessário e, em seguida, pressione **Esc** para sair do modo de edição. Screenshot №5 — Modo de edição ## Como copiar para a área de transferência no VIM? Para copiar e colar da área de transferência, os mesmos comandos são usados. Para selecionar uma área, pressione **v** para alternar para o modo de seleção e use as teclas **j**, **k**, **h**, **l** para mover pelo texto. Depois de selecionar a área desejada, use os seguintes comandos: - **y** - copiar para o buffer; - **Y** - copiar a linha para o buffer; - **x** - apagar e copiar para o buffer; - **p** - colar do buffer. Screenshot №6 — Item copiado Quando essas teclas são pressionadas, a cópia será realizada. A colagem é feita pela tecla **p**. ## Como apagar texto no VIM? Para apagar texto, você pode alternar para o modo de edição com **i** ou **I** e apagar caracteres normalmente. No entanto, se você quiser excluir a linha inteira ou um segmento selecionado via o modo de seleção (**v**), use a tecla **d**. O segmento selecionado será excluído. https://serverspace.com.br/support/help/como-usar-o-grep-no-linux.md Aprenda a usar efetivamente os comandos find e grep para localizar arquivos e padrões de texto no Linux. Um guia passo a passo sobre a sintaxe, as opções e os exemplos de como usar o utilitário grep para pesquisas simples… Para trabalhar com **distribuições Linux**, você principalmente utiliza o terminal ou console, que exigem conhecimento de comandos básicos para trabalhar plenamente com o ambiente. Para quase toda tarefa existe uma utilidade que executa funções predefinidas. A busca por arquivos e padrões de texto neles não é exceção. As duas principais utilidades que ganharam popularidade e ainda são usadas hoje em dia são **find e grep**. Se o find é usado apenas para encontrar o caminho de arquivos pelas suas propriedades, então o grep realiza, além disso, uma busca pelo conteúdo dos arquivos. Neste artigo, vamos examinar sua sintaxe, principais opções e exemplos de uso! ## O que é o GREP e como posso encontrá-lo? Como mencionado acima, o GREP é uma utilidade multifuncional do Linux para busca de arquivos e textos usando padrões, expressões regulares. Em geral, muitas distribuições já possuem esse pacote pré-instalado. Para verificar se ele está disponível na sua máquina, insira o comando: ``` grep ``` Screenshot 1 — Verificação da instalação Se a saída se parecer com esta, então o pacote já está instalado; caso contrário, instale-o por meio do seu gerenciador de pacotes. Para Ubuntu, Debian e sistemas apt-like: ```bash apt update && apt upgrade && apt install grep ``` Para sistemas RPM-like, o comando para instalar um pacote com suas dependências pode ser assim: ```bash dnf update && dnf upgrade && dnf install grep ``` Depois de garantir que o pacote foi instalado, vamos analisar a sintaxe da utilidade e suas opções! ## Sintaxe e opções O comando grep é utilizado para buscas, assim como as opções básicas que formam a sintaxe do comando: ``` grep [options] [pattern] [path to file] ``` Para uma busca simples de um padrão em um arquivo, usamos o comando: ``` grep 'named Alex' /home/kk.txt ``` Screenshot 2 — Busca em um arquivo No arquivo dado, o padrão solicitado foi encontrado e destacado, neste caso utilizando apenas os dois blocos de sintaxe básicos [pattern] e [path to file] sem [options]. Mas e se precisarmos realizar uma busca mais complexa com várias condições? Existe uma lista completa de opções [options] para isso, vamos analisar as principais e dar exemplos de uso: **Configuração de mapeamento de padrões:** - E, --extended-regexp: Expressões regulares estendidas para padrões; - G, --basic-regexp: Expressões regulares básicas para padrões; - P, --perl-regexp: Uso de expressões regulares Perl. **Fontes de padrões:** - e, --regexp=[pattern]: Permite especificar um padrão diretamente; - f, --file=[file]: Permite especificar o padrão diretamente. **Controle de maiúsculas e minúsculas:** - i, --ignore-case: Busca ignorando a diferenciação entre maiúsculas e minúsculas; --no-ignore-case: Busca sensível a maiúsculas e minúsculas, comportamento padrão. **Modos especiais de correspondência:** - w, --word-regexp: Considera apenas palavras inteiras ao buscar; - x, --line-regexp: Apenas corresponde a linhas inteiras. **Terminação alternativa de strings:** - z, --null-data: Trata o fim de uma linha como um byte nulo em vez de um caractere de nova linha. Todos esses grupos de opções se referem à configuração da maneira como o padrão é mapeado em um conjunto de dados. Para uma busca um pouco mais complexa do que no primeiro exemplo, usaremos expressões regulares comuns. As outras opções não serão necessárias agora. Vamos especificar o mesmo padrão: ``` grep -e 'named Alex' /home/kk.txt ``` Screenshot 3 — Busca de palavra inteira Existem duas ocorrências de Alex e Alex's parents no texto. A essência do funcionamento das expressões regulares é que elas dividem os dados em caracteres e procuram padrões. Portanto, ao buscar com **grep -e 'nome Alex' /home/kk.txt**, haverá duas correspondências: Alex e Alex's parents. Como encontrar uma palavra ou string específica para que outros valores não sejam capturados? Para isso, usamos a opção -w, que permite dividir frases por palavras, não por caracteres: ``` grep -w -e 'Alex' /home/kk.txt ``` Screenshot 4 — Filtro com expressões regulares Como você pode ver no exemplo, a palavra Alex's não foi destacada, pois a divisão foi feita palavra por palavra. ## Busca recursiva com grep Mas e se houver mais de um arquivo e você precisar verificar vários arquivos no mesmo diretório? Para isso, o grep possui a **opção -r**, que permite definir uma pasta para buscar em seu conteúdo. Vamos implementar a consulta de nosso nome de usuário nos logs: ``` grep -r "ghn" /var/log ``` Screenshot 5 — Busca em logs Todos os passos no tutorial podem ser realizados em servidores na nuvem poderosos. A Serverspace fornece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №6 — Criando Servidor Levará algum tempo para implantar a capacidade do servidor. Após isso, você pode se conectar de qualquer maneira conveniente! ## Filtrando a saída de comandos Muito frequentemente, no Linux, a saída dos comandos no terminal é grande ou contém muitas informações desnecessárias. Para isso, usamos **pipe** ou redirecionamos para a utilidade grep. Parece assim, suponhamos que precisemos verificar se o pacote NetworkManager para gerenciamento de redes está instalado: ```bash dnf list || grep "NetworkManager" ``` Se você estiver usando o gerenciador apt, substitua dnf no comando: ```bash apt list || grep "NetworkManager" ``` Screenshot 7 — Pipe para filtragem Trabalhar com distribuições Linux requer habilidades no terminal e conhecimento de comandos básicos. As utilidades find e grep ocupam um lugar importante no arsenal de ferramentas, proporcionando uma busca eficiente por arquivos e seus conteúdos. https://serverspace.com.br/support/help/o-que-e-o-linux-bash-e-como-usa-lo.md Saiba o que é o Linux Bash e como usá-lo! Este artigo explica as principais funções do Bash, seus recursos e comandos essenciais. No Linux, é bastante comum utilizar a linha de comando ou o terminal para trabalhar com o espaço e os componentes do sistema operacional. Em artigos e conversas, você pode frequentemente ouvir termos como: terminal, Bash, Zsh, comandos e utilitários. Mas o que tudo isso significa e qual a sua utilidade? Vamos tentar explicar brevemente a relação entre eles e considerar os comandos básicos, além de o que fazer se você não os conhecer! ## Qual é o princípio de funcionamento? Um terminal (ou programa terminal) é um software que permite ao usuário interagir com o sistema por meio de um interpretador. Exemplos de tais programas incluem gnome-terminal, xterm, konsole e outros. Quando você inicia um terminal, ele lança um shell, que é um interpretador de comandos. Os shells mais populares no Linux são bash, zsh, sh, fish, entre outros. O shell interpreta os comandos que você insere e os executa. [https://serverspace.com.br/wp-content/uploads/2024/10/esquema-de-funcionamento.svg](https://serverspace.com.br/wp-content/uploads/2024/10/esquema-de-funcionamento.svg)Screenshot №1 — Esquema de funcionamento Vamos imaginar que enviamos um comando para um terminal aberto. O que acontece internamente? - Você insere os comandos pelo teclado; - O terminal envia os comandos inseridos para o shell; - O shell interpreta os comandos e decide o que fazer. Se for um comando interno do shell (por exemplo, cd), ele é executado diretamente no shell. Se for um comando externo (por exemplo, ls), o shell chama o executável apropriado; - Se for um comando externo, o shell executa o executável adequado, criando um novo processo; - O novo processo interage com o kernel do sistema operacional para fazer as chamadas de sistema necessárias (por exemplo, para ler o conteúdo de diretórios ou exibir dados na tela); - Saída: Os resultados da execução do comando (stdout e stderr) são passados de volta pelo shell para o terminal, que os exibe ao usuário. Portanto, a estrutura de interação é a seguinte: Usuário → Terminal → Shell → Kernel do SO. O terminal é apenas uma interface para a inserção de comandos e exibição de resultados, e o verdadeiro trabalho é realizado pelo shell e pelo kernel do sistema operacional. ## Onde encontrar comandos bash? De fato, é necessário conhecer os comandos básicos que permitirão ao usuário realizar tarefas de forma eficiente. Para isso, existem diretórios de utilitários que contêm informações sobre a maioria dos utilitários existentes e seus comandos. Vamos instalar um deles: ```bash dnf update && dfn upgrade dnf install info -y ``` Se você estiver usando o gerenciador apt, utilize o comando: ```bash apt update && apt upgrade apt install info -y ``` Após a instalação, verifique se tudo foi instalado corretamente e se o diretório está funcionando: ``` info ``` Screenshot №2 — Instalação do software Todos os passos do tutorial podem ser realizados em servidores poderosos em nuvem. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №3 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Após isso, você poderá se conectar da forma mais conveniente! ## Como procurar um comando? Para procurar um comando, você deve digitar a sintaxe chave e selecionar a seção apropriada. Por exemplo, se precisarmos nos mover entre diretórios e precisamos de um comando para isso, insira o seguinte: ``` info ``` Como estamos procurando uma lista de comandos para bash, vamos para a seção apropriada e habilitamos a busca por expressão regular usando a tecla /. Em seguida, inserimos uma palavra-chave e procuramos diferentes ocorrências utilizando a tecla S! Screenshot №4 — Padrão de pesquisa Como você pode ver na captura de tela acima, a busca foi concluída e destacou a linha de comando desejada. https://serverspace.com.br/support/comando-chmod-do-linux.md Aprenda o comando chmod no Linux: como alterar as permissões em arquivos e diretórios. Uma descrição detalhada de como as permissões funcionam no Linux ## Introdução O controle de acesso e permissões para arquivos desempenha um papel crucial na gestão de dados e segurança: - **Segurança Aprimorada:** A implementação de mecanismos de controle de acesso garante que os arquivos sejam acessados apenas por indivíduos com as permissões necessárias. Isso impede que pessoas não autorizadas tenham acesso a dados sensíveis ou confidenciais. - **Preservação da Confidencialidade:** Definindo permissões precisas, a confidencialidade é protegida. A exposição indevida de informações sensíveis para usuários não intencionados é evitada, prevenindo vazamentos ou violações de dados. - **Proteção da Integridade:** O controle de permissões desempenha um papel essencial na manutenção da integridade dos arquivos. Alterações ou manipulações não autorizadas de arquivos críticos são evitadas, garantindo a confiabilidade e precisão dos dados. - **Conformidade com Regulamentos:** Diversas indústrias e organizações precisam aderir a normas regulatórias que exigem controles rigorosos de acesso. O estabelecimento de permissões adequadas auxilia no cumprimento desses requisitos e na evitação de repercussões legais. - **Prevenção de Perda de Dados:** O controle de acesso minimiza o risco de perda acidental de dados. Situações em que usuários sem permissões adequadas apagam ou sobrescrevem arquivos importantes são evitadas. - **Otimização de Recursos:** A gestão de permissões otimiza o uso de recursos. Ao limitar o acesso a usuários ou grupos específicos, evita-se o consumo desnecessário de recursos e garante-se que apenas as partes relevantes tenham acesso. Em resumo, o controle de acesso e permissões é fundamental para manter a segurança, confidencialidade e integridade dos arquivos e dados. Ele previne acessos não autorizados, evita vazamentos e perdas de dados, além de garantir conformidade regulatória. ## Requisitos - Direitos de root; - Debian 12 ou versão superior; - Conhecimento básico sobre o sistema operacional; - Conexão com a internet. ## Permissões e atributos no Linux No ambiente Linux, a gestão de arquivos e permissões é um processo detalhado e complexo, projetado para garantir máxima segurança e precisão no gerenciamento de dados. Vamos explorar isso mais a fundo. O Linux reconhece uma variedade de tipos de arquivos, como arquivos regulares, diretórios, links simbólicos e dispositivos. Cada tipo possui atributos e permissões únicas. No Debian 12, podemos verificar os atributos e permissões de todos os usuários com o comando abaixo: ``` ls -l ``` Screenshot №1 — Lista de permissões Se quisermos verificar um arquivo específico, utilizamos o comando abaixo, indicando o arquivo desejado: ``` ls -l /etc/network/interfaces ``` Screenshot №2 — Arquivo individual Agora, vamos explicar cada parâmetro na tela: - O **-rw-r--r--** indica que o primeiro trio corresponde às permissões do proprietário, o segundo ao grupo e o terceiro aos outros usuários. O arquivo não é um diretório ou link, pois o primeiro sinal é um hífen. O **rw-** significa que o proprietário tem permissão de leitura e gravação, mas não de execução. O **r--** indica que o grupo do proprietário tem apenas permissão de leitura, e o mesmo vale para outros usuários. - O número **1** significa que o arquivo tem um link rígido. - O **root:root** indica o proprietário e o grupo do arquivo. - O tamanho do arquivo é de 175 bytes. - A data da última modificação foi em 8 de novembro de 2022, e o nome do arquivo é **interfaces**. Cada arquivo está vinculado a um usuário específico (proprietário) e a um grupo designado. O ato de criar um arquivo torna o criador seu proprietário, e o arquivo é atribuído a um grupo específico. O Linux divide as permissões em três categorias: usuário, grupo e outros. Cada categoria pode receber permissões de leitura, gravação e execução distintas. Podemos alterar essas permissões utilizando o utilitário **chmod**. As permissões também podem ser traduzidas para formas numéricas, onde leitura (r) equivale a 4, gravação (w) a 2 e execução (x) a 1. A soma dessas permissões representa a permissão numérica, como 755. ```bash chmod 755 interfaces ``` Screenshot №3 — Chmod numérico Se quisermos negar todas as permissões para todos os tipos de usuários, utilizamos o comando abaixo: ```bash chmod 000 interfaces ``` Screenshot №4 — Chmod numérico negar O comando **chmod** serve para modificar permissões. Ele aceita tanto notações simbólicas quanto numéricas. Por exemplo, **chmod u+w filename** concede permissão de gravação ao proprietário. A letra **u** representa o proprietário, **g** se refere ao grupo, **o** aos outros e **a** para todos. Em seguida, usamos **+, -** ou **=** para adicionar, remover ou definir explicitamente permissões para os usuários: ```bash chmod u+rwx interfaces && chmod go-rwx interfaces ``` Screenshot №5 — Chmod simbólico Também podemos usar o comando de igualdade: ```bash chmod u=rwx, go= interfaces ``` Se quiser manter a permissão de gravação para outros e o grupo, mas proteger contra exclusão, use o comando abaixo: ```bash chmod +t interfaces ``` Esses são os conceitos básicos de permissões no sistema. Mas e se precisarmos de mais controle? ## Utilitário para controle adicional de permissões No Linux, o kernel central fornece uma base sólida para o sistema operacional, mas ele não inclui todos os recursos possíveis por padrão. A necessidade de módulos e pacotes adicionais para o controle de acesso e permissões de arquivos é justificada para oferecer flexibilidade e customização ao sistema. Aqui estão alguns motivos para essa abordagem: - **Modularidade:** O kernel do Linux é projetado para ser modular, permitindo que funcionalidades sejam carregadas como módulos em vez de serem integradas diretamente no kernel. Isso mantém o kernel leve e permite que os usuários adicionem apenas os módulos necessários, melhorando a eficiência e a estabilidade. - **Flexibilidade:** Nem todos os sistemas precisam do mesmo nível de controle de acesso. Com módulos adicionais, as distribuições Linux permitem que os administradores escolham as ferramentas apropriadas para suas necessidades de segurança, seja em um sistema desktop simples ou em um ambiente de servidor complexo. - **Segurança:** Oferecer módulos de controle de acesso como pacotes separados reduz a superfície de ataque do sistema, garantindo que apenas os recursos necessários sejam instalados. Isso também permite atualizações e patches de segurança específicos para esses módulos. Como podemos ver, o sistema padrão de controle de acesso tem algumas limitações, como a falta de proteção contra exclusão acidental de arquivos importantes. Vamos melhorar o sistema! **Uso do Umask:** O comando **umask** regula as permissões padrão para novos arquivos e diretórios. Ele subtrai a máscara especificada do valor máximo de permissão para definir as permissões padrão. Abaixo, podemos ver a lista de permissões padrão: Screenshot №6 — Permissão padrão Podemos ver a lista padrão de permissões para arquivos e alterá-la com o comando: ``` umask u=rwx,go= ``` Screenshot №7 — Umask Essa solução ajuda temporariamente, mas para um funcionamento contínuo, é possível adicionar a configuração ao **.bashrc** ou **bash_login**. ## Conclusão A combinação de controles de acesso bem definidos, configurações precisas de permissões e a flexibilidade para adicionar ferramentas suplementares oferece aos administradores de sistema um ambiente seguro e personalizado para gerenciar arquivos e dados no ecossistema Linux. https://serverspace.com.br/support/help/medindo-o-desempenho-do-servidor-ao-longo-do-tempo-atop-linux.md Descubra métodos eficazes para medir o desempenho do servidor ao longo do tempo no Linux. Explore ferramentas, técnicas e comandos para monitorar servidores! Os principais componentes em qualquer sistema de computação de informações são o subsistema de autenticação e identificação, autorização, backup e, claro, o monitoramento da carga da infraestrutura. Os meios e métodos que podem realizar essas funções dependem de cada caso específico. Se considerarmos uma infraestrutura de rede corporativa de médio e grande porte, então, muito provavelmente, para um monitoramento eficaz, precisaremos de uma solução cliente-servidor, que terá um agente leve para diferentes tipos de SO e um servidor tolerante a falhas, como o Zabbix. Para sistemas pequenos, usaremos soluções locais, que nos permitirão fazer medições manuais da máquina, além de essa ferramenta ser útil no momento de uma rápida avaliação do servidor. ## Ferramenta de Coleta de Dados atop Linux Vamos imaginar que o cliente forneceu seu servidor para implantação de serviços e não temos ideia sobre sua capacidade e possíveis processos em execução e programados para serem executados no cron, virtualizações e assim por diante. Podemos medi-lo com utilitários básicos, mas então veremos a carga apenas no momento de uso, o que não dará uma imagem completa. Para isso, existe a ferramenta atop, que permite salvar dados sobre a carga da máquina em ordem cronológica com um certo intervalo. Para testar a ferramenta, vamos implantar o [servidor em nuvem](https://serverspace.com.br/services/cloud-servers.md) na Serverspace, selecionando uma das plataformas de nuvem e clicando no botão "Create Server". Screenshot №1 — Criar Máquina Após selecionar o data center onde queremos implantar nosso servidor e especificar os parâmetros básicos para ele: CPU, RAM, Disco Rígido e interface de rede. Defina um nome e clique no botão "Order". Ótimo, agora podemos nos conectar via SSH, especificando uma chave ou senha para autenticação do usuário. No lado direito do painel principal, você pode ver instruções mais detalhadas para conectar-se com segurança. No Debian/Ubuntu, usaremos o gerenciador de pacotes apt e a sintaxe apropriada para ele. Se você estiver usando uma distribuição diferente, considere a sintaxe do seu gerenciador de pacotes e especifique o atop para instalar no final. Digite o seguinte comando em uma janela de terminal: ```bash apt update && apt upgrade -y ``` Uma vez que os índices e pacotes estão atualizados, podemos começar a instalar o atop: ```bash apt install atop ``` Screenshot №2 — Instalação Uma característica distinta do atop é a capacidade de visualizar a carga nos 4 principais parâmetros não apenas no total, mas também separadamente para cada processo. Vamos iniciar o gerenciador de processos e observar sua aparência. Screenshot №3 — Interface de Comando A tela é dividida em dois campos horizontais, cada um dos quais fornece informações detalhadas sobre cada um dos processos. No topo está a informação total do sistema, descrevendo a carga em tempo real nos 4 principais parâmetros e, na parte inferior, a mesma, mas dividida por processo. Para pausar o monitoramento, pressione z, para sair do painel, pressione q e, para alterar o período de atualização dos dados, pressione i. Outra característica interessante do atop é o registro do desempenho do sistema à noite, a cada 10 minutos, por padrão. ## Medição durante o período Normalmente, os dados são armazenados no diretório /var/log/atop, com a notação atop_YYYYMMDD, que indica a data em que o registro foi salvo. Decodifique os dados usando o comando: ``` atop -r /var/log/atop/atop_20240207 ``` Screenshot №4 — Lista de Registros No seu caso, substitua pelo arquivo que pertence ao seu sistema. Depois de escrever o comando, podemos ver os resultados interpretados do arquivo de registro. Screenshot №5 — Registro de Arquivo O tempo de coleta depende dos parâmetros que você especificar. Por padrão, a ferramenta captura uma vez por dia, medindo os resultados em um ponto no tempo. Você pode visualizar os registros para o dia atual com o comando: ``` atop -r ``` Para iniciar a gravação, use a seguinte sintaxe de comando: atop -w arquivo [-S] [-a] [intervalo [amostras]]. Onde a opção -w especifica o arquivo de gravação, -S registra chamadas de sistema e -a especifica que os dados devem ser gravados de todos os processos, não apenas dos ativos no momento. O intervalo especifica o período de tempo entre capturas, e as amostras, o número de capturas necessárias. Quando a tarefa é concluída pelas capturas, a gravação é encerrada. No entanto, se não estiverem especificadas, continuará até ser interrompida manualmente. Por exemplo, vamos criar uma tarefa para registrar 5 capturas em intervalos de 5 segundos: ``` atop -w /var/log/atop.lognight 5 5 ``` Após o processo ser executado, podemos ir à pasta e abrir o registro recém-criado: ``` atop -r /var/log/atop.lognight ``` Screenshot №6 — Registro Atual Para mover entre intervalos, usamos a tecla t, para retroceder no tempo usamos Shift+t. A dificuldade está em comparar os valores manualmente. Se estivéssemos usando Zabbix, essa cronologia da carga do servidor poderia ser refletida na forma de um gráfico. Mas, se não houver como implantá-lo, o atop ainda é uma boa solução, pois aqui você pode alterar a exibição por processo com teclas de atalho. Para uma visualização mais perceptível, filtre os processos por: - m — ordena por uso de memória; - d — ordena pela atividade do disco; - u — mostra a tabela de atividades por usuários; - v — exibe informações detalhadas sobre os processos; - g — retorna à exibição padrão. Mas, se pressionarmos Shift + com as opções acima, os valores não só serão filtrados, mas também ordenados pela opção selecionada. Um pouco mais sobre gerenciamento: se não quisermos passar por uma longa lista de capturas, podemos usar a combinação -b e especificar o horário no formato YYYYMMDDhhmm para buscar o intervalo desejado. Embora o atop forneça muitos dados, sua interface é intuitiva e nos permite monitorar convenientemente processos e recursos do sistema. Uma combinação de teclas de atalho permite filtrar e ordenar rapidamente os dados para obter as informações necessárias. Assim, o atop é uma ferramenta útil para analisar o desempenho do sistema e monitorar a carga, especialmente em situações onde sistemas de monitoramento mais sofisticados e escaláveis não ​​estão disponíveis. https://serverspace.com.br/support/help/as-10-melhores-utilitarias-para-linux.md Explore os utilitários mais eficientes para o sistema operacional Linux! Nossas 10 principais ferramentas para uso diário! Conheça as 10 melhores utilitárias para Linux! Neste artigo, analisamos as melhores ferramentas que aumentarão sua produtividade, facilitarão a gestão do sistema e melhorarão sua experiência na linha de comando. ## Nano - editor de texto O Nano se consolidou como um editor conveniente para trabalhar com muitos formatos de arquivo. Sua popularidade pode ser explicada pelo fato de fazer parte do pacote de utilitários GNU e ser distribuído gratuitamente com muitas distribuições. Além disso, é fácil de usar em comparação com outras utilitárias. Screenshot 1 — Nano Essa solução é adequada até mesmo para iniciantes, pois o painel na parte inferior é bastante claro e informativo. [Como fazer o download, começar a usar e outras funcionalidades úteis do nano](https://serverspace.com.br/support/help/como-usar-o-nano-e-o-que-e/). ## Curl - cliente para servidores Esta utilitária multifacetada é um cliente que pode interagir com servidores de diferentes serviços. Por exemplo, seu uso principal é para trabalhar com a Web: enviar requisições com qualquer método, é possível alterar cabeçalhos, e o User-Agent pode ser personalizado. Essa solução permite implementar cenários de automação ao trabalhar com servidores e serviços. Screenshot 2 — Curl Também pode ser usada para testes manuais da infraestrutura existente! [Recomendamos que você se familiarize com ela e suas funcionalidades em detalhes!](https://serverspace.com.br/support/help/como-usar-o-curl-no-linux/) ## Traceroute - caminho de rede/solução de problemas Diferentemente do ping, que verifica a acessibilidade de rede de um host final, o traceroute é usado para construir uma cadeia de roteadores pelos quais um pacote viajou. Vamos imaginar uma situação em que você envia pacotes ICMP ou pinga o destinatário, mas ele não responde. É só ele? Talvez sim, talvez não, o roteador que deveria encaminhar o pacote pode ter parado de responder. Screenshot 3 — Traceroute Para verificar isso, utiliza-se a utilitária traceroute, que também opera no nível de transporte! [Para aprender todas as peculiaridades do uso e o princípio de funcionamento, não deixe de assistir ao guia completo!](https://serverspace.com.br/articles/como-usar-o-traceroute-no-linux.md) Todos os passos do tutorial podem ser realizados em servidores poderosos na nuvem. A Serverspace fornece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot 4 — Criar Servidor Leva algum tempo para implantar a capacidade do servidor. Após isso, você pode se conectar de qualquer forma conveniente! ## VIM - um editor de texto poderoso Comparado ao editor de texto anterior, o vim é uma utilitária com funcionalidades quase ilimitadas e uma multitude de recursos. No entanto, tudo isso é complicado pelo peso do aprendizado vertical para um usuário iniciante que acabou de abrir o terminal. Screenshot 5 — VIM Com o vim, você pode navegar rapidamente pelo texto, editá-lo de forma conveniente, personalizar seu trabalho e executar comandos do terminal diretamente do editor. Além disso, é possível estender a funcionalidade com plugins. Ele possui um sistema especial de comandos internos, que é muito fácil de se acostumar e difícil de desaprender. [Um tutorial detalhado está esperando por você!](https://serverspace.com.br/support/help/como-sair-do-vim-e-outras-dicas-de-gerenciamento/) ## Grep - utilitária de busca e filtragem O Grep é uma utilitária que pode receber uma matriz de dados como entrada e encontrar, usando mecanismos de busca e expressões regulares, correspondências e padrões. Na prática, é uma ferramenta frequentemente usada. Suponha que você tenha uma grande saída de um dos comandos e precise encontrar uma frase-chave. Para isso, você pode usar pipe ou redirecionar com o sinal | para inserir no grep e filtrar, por exemplo, a lista de pacotes instalados. Screenshot 6 — Grep Ele trabalha com grandes quantidades de dados e é bastante rápido, também possui a capacidade de encontrar texto recursivamente em arquivos especificando uma pasta! Para aprender como [buscar e filtrar seus dados através do grep](https://serverspace.com.br/support/help/como-usar-o-grep-no-linux/), é necessário ler o tutorial detalhado! ## MV - utilitária para mover pastas/arquivos O Linux possui um conjunto padrão de utilitárias para interação e navegação do sistema operacional. Uma delas é a utilitária de movimentação de objetos. A ideia é que ela primeiro copia o objeto para a parte desejada e depois exclui o original, assim movendo-o. Screenshot 7 — MV Isso poderia ser feito manualmente, mas a peculiaridade da utilitária é a movimentação recursiva de todo o array de arquivos. O que pode ser muito útil no seu trabalho, [leia sobre os recursos e outros detalhes no manual](https://serverspace.com.br/support/help/como-mover-arquivos-e-diretorios-no-linux/)! ## Wine - utilitária para executar aplicativos Windows Nem todos os aplicativos e utilitárias são multiplataforma, muito depende do sistema operacional para o qual foram desenvolvidos. No Linux, você pode precisar de um aplicativo Windows. É por isso que existe o wine, que emula o ambiente para um aplicativo e permite executá-lo no Linux! Screenshot 8 — Wine Ele permite converter solicitações para APIs e bibliotecas do Windows, de forma que o Linux possa responder com suas próprias alternativas. [Este emulador possui muitos recursos, que você pode conferir no guia detalhado!](https://serverspace.com.br/support/help/como-instalar-e-configurar-o-wine-no-ubuntu/) ## Bash - interpretador do sistema operacional Todo sistema operacional que envolve o trabalho com terminal requer um interpretador. É um aplicativo que envia comandos do usuário para o kernel do sistema operacional e executa diversas ações, como: mover arquivos, abrir processos, etc. Mas para iniciantes não será fácil, pois os comandos para trabalhar não surgem como sugestões, sendo necessário buscar meios alternativos com diferentes utilitárias. Screenshot 9 — Bash [Em nosso guia, explicamos como proceder se você for um iniciante e acabou de abrir o terminal para trabalhar!](https://serverspace.com.br/support/help/o-que-e-o-linux-bash-e-como-usa-lo/) ## Chmod - controle de acesso Mecanismos de autorização são usados para um trabalho correto e seguro em um ambiente unificado. Para permitir que os usuários interajam com seus arquivos sem medo de que eles sejam comprometidos, foram desenvolvidos direitos de acesso ou atributos para objetos. A utilitária para gerenciar seus próprios arquivos e os delegados é o chmod. Screenshot 10 — Chmod Ela vem por padrão em muitas distribuições, pois faz parte do pacote GNU. [Explicamos como ela funciona e como usá-la em um de nossos tutoriais!](https://serverspace.com.br/articles/comando-chmod-do-linux/) ## Atop - gerenciador de processos No sistema operacional, além das ações que o sistema nos mostra através da janela do terminal, há muitos outros processos que afetam o desempenho. Para avaliar a performance e a eficiência do nó, é necessário ver as métricas e indicadores básicos! [A utilitária atop resolve exatamente esse problema, e há um manual detalhado para conhecê-la melhor!](https://serverspace.com.br/support/help/medindo-o-desempenho-do-servidor-ao-longo-do-tempo-atop-linux/) Screenshot 11 — Atop Usar utilitárias no sistema operacional Linux facilita bastante a execução de várias tarefas, aumentando a produtividade e a conveniência. Este artigo apresenta uma lista das dez utilitárias mais populares e úteis para Linux, cada uma com características e capacidades únicas. Essas ferramentas ajudam os usuários a gerenciar o sistema de forma eficaz, automatizar processos e otimizar o fluxo de trabalho. Independentemente do nível de treinamento e experiência, todos encontrarão nesta lista uma utilitária que será útil no trabalho diário com Linux. https://serverspace.com.br/support/help/como-mover-arquivos-e-diretorios-no-linux.md Aprenda os comandos e as técnicas essenciais para mover arquivos e diretórios no Linux. Domine o processo de forma fácil e eficiente. Existem muitas utilidades diferentes no Linux, mas algumas são usadas com mais frequência do que outras. Por exemplo, mv é uma utilidade que permite alterar o nome e a localização de um/uns arquivo/s e até mover diretórios. Tudo funciona como em um ambiente gráfico, mas apenas por meio da linha de comando. ## Como mover arquivos? Para trabalhar com a utilidade, considere sua sintaxe abaixo; parênteses e sinais de não são usados, mas apenas mostram os limites dos argumentos: ``` mv (-opções) ``` Screenshot №1 — Ajuda Vamos imaginar que logs se acumularam no dispositivo e é necessário movê-los para a pasta /tmp/backup. Para um arquivo, usaremos o comando: ``` mv ./log.txt /tmp/backup ``` Screenshot №2 — Mover arquivo Como alternativa a este comando, você pode usar o comando de descritor de arquivo: ``` cat log.txt > /tmp/backup/log.txt && rm log.txt ``` Screenshot №3 — Maneira alternativa de mover arquivo A maneira alternativa reflete mais claramente a lógica do processo: a utilidade cat exibe o conteúdo de um arquivo, o sinal > é um descritor de arquivo que redireciona a saída para o arquivo especificado como destino. E o comando **rm log.txt** remove o arquivo do diretório atual. O que implementa o processo de movimentação. No entanto, este método não funcionará para a movimentação recursiva de arquivos, ou seja, todos os arquivos de uma pasta. Para este propósito, no comando mv, em vez do nome de um arquivo específico, especificaremos o caractere curinga *****: ``` mv /tmp/backup/* /tmp/backup2 ``` Screenshot №4 — Mover vários arquivos Resultado esperado: todos os arquivos de um diretório serão movidos para o diretório de destino. ## Como mover diretórios? O processo é muito semelhante ao de mover arquivos, exceto que agora você precisa especificar uma pasta. Este processo é realizado pelo seguinte comando: ``` mv /tmp/backup_antivirus /tmp/backup_all ``` Como resultado, a pasta **backup_antivirus** será movida para **/tmp/backup_all** e o caminho absoluto ou completo ficará assim: **/tmp/backup_all/backup_antivirus**! https://serverspace.com.br/support/help/sem-espaco-no-dispositivo-erro-do-docker.md Erro “Nenhum espaço restante no dispositivo” no Docker. Este guia fornece instruções passo a passo para limpar imagens, contêineres e volumes não utilizados! Erros ao configurar um serviço são um processo natural que todo engenheiro enfrenta em sua rotina de trabalho. Um deles é o erro do Docker: sem espaço no dispositivo, um erro que pode ser muito confuso, pois atualmente, no Linux, o espaço é dividido pelo sistema de arquivos de forma bastante flexível e é bem possível ficar sem espaço ou sem cota. ## Como resolver um erro do Docker? Esse problema tem duas causas principais, que indicam que:o espaço na partição de disco no caminho /var/lib/docker está cheio e requer mais espaço. Esse problema ocorre devido à grande quantidade de espaço ocupado pelos objetos do Docker, assim como pelo repositório local. O espaço da cota do Docker se esgotou - esta também é uma das razões mais comuns quando a configuração especifica o limite de memória que o Docker pode usar. Esse recurso é útil para evitar o preenchimento excessivo do espaço do disco. Para verificar se você tem espaço em disco suficiente ou insuficiente, use o comando que exibirá uma lista dos sistemas de arquivos e o espaço que ocupam: ``` df -H ``` Screenshot №1 — Espaço em disco Observe que a pasta /var/lib/docker pode estar localizada tanto na partição raiz / disco lógico quanto separadamente em /var. Neste caso, a pasta de destino está localizada na partição lógica /dev/vda2. Se o tamanho do seu espaço em disco não permitir carregar a imagem ou armazenar dados, você deve liberar espaço de arquivos desnecessários ou aumentar o disco. ## Limpando arquivos do Docker Se você não tiver os projetos necessários no Docker, pode limpar completamente o sistema com o comando: ```bash docker system prune -af ``` O Docker fará uma varredura no repositório local, repositórios, contêineres e os removerá, mas antes de fazer isso, certifique-se de que não há contêineres em execução com o comando: ```bash docker stop $(docker ps -q) ``` Screenshot №2 — Limpar contêiner Para excluir arquivos de forma específica, use subcomandos, por exemplo, a limpeza de imagens no repositório local será feita com o comando: ```bash docker image remove $(docker image ls -q) ``` Screenshot №3 — Remover imagem Para excluir outros objetos, use subcomandos semelhantes: volume, container, network, etc. Se precisar excluir um arquivo específico, primeiro navegue pela lista e exclua o necessário: ```bash docker image ls ``` ```bash docker image remove [container-name] ``` Screenshot №4 — Remover imagem dedicada Após verificar novamente o espaço disponível no disco com o comando df -H, caso ainda não haja espaço suficiente, siga para o próximo ponto. ## Extensão de Disco Se você não tiver recursos suficientes, pode executar ações em servidores cloud poderosos. O Serverspace fornece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №5 — Criar Servidor Aumente o espaço em disco do dispositivo expandindo o armazenamento virtual do hipervisor ou selecione um disco diferente para a máquina. O espaço será aumentado, no entanto, deve ser alocado aos volumes lógicos e ao sistema de arquivos. Para ampliar uma partição lógica, vamos encontrar uma lista desses volumes, geralmente eles estão mapeados para diretórios na árvore do Linux: ``` df -H ``` Screenshot №6 — Espaço em disco Neste caso, é /dev/vda2. Usamos uma utilidade pré-preparada para alterar a tabela de partição do disco. Observe que você precisa especificar sua partição em vez de /dev/vda2: ```bash apt update && apt install parted && parted /dev/vda2 ``` O comando print listará as partições lógicas atuais, memorize o número da sua partição e insira o comando: ``` resizepart [número-da-partição] ``` Insira o novo tamanho do disco, note que não é o quanto o espaço aumentará, mas o novo valor! Por exemplo, 40GB. Screenshot №7 — Alterar tamanho do volume Em seguida, vamos aumentar o tamanho do sistema de arquivos através de uma utilidade semelhante em um único comando! ``` resize2fs ``` Screenshot №8 — Redimensionar sistema de arquivos Por padrão, todo o espaço livre da partição lógica será ocupado pelo sistema de arquivos. Após isso, você pode verificar o espaço liberado com uma utilidade já conhecida: ``` df -H ``` Mas e se houver espaço suficiente para o contêiner Docker e o erro for o mesmo? Muito provavelmente é a cota alocada. ## Aumentar a cota do Docker Uma solução em poucas linhas que permite substituir o valor das variáveis e especificar mais espaço para o Docker. Para especificar explicitamente os recursos, precisamos reiniciar os contêineres com os novos parâmetros. Vamos parar todas as tarefas atuais: ```bash docker stop $(docker ls -q) ``` Depois disso, vamos excluir os contêineres com o comando: ```bash docker container prune ``` Defina os novos parâmetros por meio de opções. Observe que você deve ter cuidado ao escolher os valores para os contêineres, pois eles podem consumir recursos do sistema desnecessariamente! ```bash docker run -d --name my_container -m 512m --memory-swap 1g --cpus='2' nginx ``` A opção -m especifica um limite de uso de RAM de 512MB, --memory-swap 1GB de memória virtual e 2 núcleos de CPU. Aumentando os valores em relação aos padrões, o problema será resolvido! https://serverspace.com.br/about/blog/seguranca-no-desenvolvimento-web-protecao-de-aplicacoes-contra-ameacas-principais.md Principais ameaças à segurança de aplicativos da Web: injeções de SQL, XSS, CSRF e sequestro de sessão. A segurança no desenvolvimento web é um aspecto indispensável de qualquer projeto de sucesso. Além da preservação dos dados confidenciais dos usuários, a segurança do sistema também afeta a estabilidade do serviço web e a reputação da empresa. Hoje, na era da economia digital, ignorar questões de segurança pode ser um erro crítico para um negócio em crescimento. ## Principais ameaças à segurança no desenvolvimento web Uma das ameaças mais comuns no desenvolvimento web são: **Injeções de SQL** (ataques através da inserção de comandos SQL maliciosos nas consultas ao banco de dados). Ataques de SQL podem levar ao acesso não autorizado a informações, sua alteração ou exclusão. A proteção contra SQL é um aspecto importante da segurança no desenvolvimento web. Existem várias estratégias e técnicas que ajudam a proteger aplicações web contra esses ataques: - Consultas preparadas e parametrizadas: o uso de consultas preparadas ou parametrizadas é uma das maneiras mais eficazes de proteger contra injeções de SQL; - Escape de caracteres especiais: abordagem em que todos os caracteres especiais usados no SQL (como aspas) são substituídos por seus equivalentes seguros; - Limitação de privilégios: conceder aos usuários do banco de dados apenas os privilégios necessários para realizar suas tarefas; - Uso de gateways de aplicação web ou firewalls (WAF): detecção e bloqueio de injeções de SQL através da análise do tráfego de entrada; - Testes de penetração e auditoria de segurança regular: testes regulares de vulnerabilidades das aplicações web. **Cross-Site Scripting (XSS)** – uma das ameaças mais comuns à segurança no desenvolvimento web. Os atacantes inserem scripts maliciosos nas páginas web, visualizadas por outros usuários. Scripts maliciosos são frequentemente transmitidos por meio de formulários de entrada em sites vulneráveis ao XSS (que não filtram ou não filtram de forma eficaz a entrada dos usuários). Quando outros usuários visualizam essas páginas, seus navegadores executam os scripts maliciosos. Dependendo da natureza do ataque e das medidas de segurança das aplicações web, as injeções de XSS podem ser divididas em três tipos principais: armazenadas (Stored), refletidas (Reflected) e baseadas em DOM (DOM-based). Ataques XSS armazenados ocorrem quando o script malicioso é armazenado no servidor e enviado a todos os usuários que visualizam a página. Eles são os mais perigosos, pois afetam um grande número de usuários. Ataques XSS refletidos são incorporados na URL e ativados quando ela é aberta. Esses ataques geralmente ocorrem quando o atacante faz com que a vítima abra uma URL especialmente preparada, por exemplo, enviando um link por e-mail ou mensagem. Ataques XSS baseados em DOM ocorrem quando o script malicioso altera a estrutura do DOM (Document Object Model) da página web, resultando na execução de código malicioso. Para se proteger contra XSS, é importante usar técnicas de desenvolvimento seguro, incluindo filtragem, escape de entrada de usuários, uso de Content Security Policy (CSP) e outras tecnologias de segurança. **Interceptação de sessão (ou hijacking de sessão) ** – um tipo de ataque em que o atacante intercepta e usa a sessão de um usuário para realizar ações não autorizadas. Esse ataque é frequentemente usado para contornar o processo de autenticação e obter acesso não autorizado a serviços web. Escuta de rede e Cross-Site Scripting (XSS) são as principais técnicas de interceptação de sessão. A proteção contra interceptação de sessão inclui as seguintes medidas: - Uso de protocolos de transmissão de dados seguros (como HTTPS), que criptografam os dados da sessão e impedem sua interceptação; - Limitação do tempo de vida das sessões e tokens de sessão, para reduzir o tempo em que o atacante pode usar o token de sessão interceptado; - Uso de medidas de segurança no lado do servidor, como a validação do endereço IP do usuário, para garantir que o token de sessão está sendo usado pelo mesmo usuário ao qual foi originalmente emitido; - Atualização e teste regulares das aplicações web para identificar e corrigir vulnerabilidades que podem ser exploradas para interceptar sessões. **Ataques CSRF (Cross-Site Request Forgery)** — ataques em que o atacante faz com que a vítima execute uma ação indesejada em um site no qual ela está autenticada. A verificação CSRF (proteção contra CSRF) — conjunto de medidas aplicadas para prevenir esse tipo de ataque. Uma das formas mais comuns de proteção é o uso de um token CSRF, um número único e aleatório gerado para cada sessão de usuário. Quando o usuário envia uma solicitação para executar alguma ação, o servidor verifica se o token CSRF na solicitação coincide com o token armazenado na sessão. Se os tokens não coincidirem, o servidor rejeita a solicitação. A falha na verificação CSRF geralmente significa que a verificação do token CSRF falhou: o token está ausente na solicitação ou não corresponde ao token na sessão. Isso pode ocorrer se o usuário tentar enviar um formulário com um token expirado ou se um atacante tentar executar um ataque CSRF. ## Segurança no design de aplicações web Os principais princípios do design seguro incluem a proteção dos dados em todos os níveis da aplicação, o uso de métodos seguros de autenticação e autorização, o tratamento de erros sem revelar informações desnecessárias e muito mais. A importância de garantir a segurança nas fases iniciais do desenvolvimento. É importante entender que a segurança deve ser incorporada na fase de design da aplicação web. Isso ajudará a evitar mudanças caras no futuro e garantirá a proteção confiável dos dados. ## Segurança na fase de desenvolvimento de aplicações web O desenvolvimento de código seguro exige que os programadores conheçam as principais ameaças e métodos para evitá-las. Existem várias metodologias e melhores práticas, como o princípio de "privilégios mínimos" ou "defesa em profundidade". O uso de bibliotecas seguras e ferramentas de desenvolvimento permite acelerar o processo de desenvolvimento e torná-lo mais confiável. ## Teste de segurança de aplicações web Abordagens e técnicas para testar a segurança do site incluem, por exemplo, teste de penetração do site ou fuzzing. Pode-se utilizar testes de segurança online através de recursos populares (VirusTotal ou Sucuri). O uso de ferramentas automatizadas para testar a segurança das aplicações web, como OWASP ZAP ou Nessus, permite detectar vulnerabilidades em uma fase inicial. ## Manutenção da segurança de sites A atualização contínua e a melhoria da proteção dos sites incluem a atualização do sistema e dos componentes da aplicação web. A auditoria de segurança da aplicação web e a resposta a ameaças de segurança em tempo real exigem monitoramento constante e resposta rápida às ameaças emergentes. É importante lembrar que os diferentes métodos de proteção contra ataques em aplicações web não são uma tarefa única, mas um processo contínuo. As ameaças estão em constante mudança e evolução, e para neutralizá-las, é necessário um enfoque sistemático e consistente. https://serverspace.com.br/about/news/lancamento-de-um-novo-servico-video-on-demand-vod-ja-disponivel-no-painel-de-controle.md O Video on Demand (VoD) permite que os usuários solicitem e reproduzam conteúdo de vídeo em alta qualidade a qualquer momento, independentemente de sua localização geográfica. A Serverspace anuncia o lançamento do novo serviço [Video on Demand (VoD)](https://serverspace.com.br/services/video-on-demand-vod.md). O VoD permite que os usuários solicitem e reproduzam conteúdo de vídeo em alta qualidade a qualquer momento, independentemente de sua localização geográfica. [VoD (Vídeo sob demanda)](https://serverspace.com.br/services/video-on-demand-vod.md) é um serviço que permite aos espectadores assistir a conteúdo de vídeo sob demanda, no horário que lhes for mais conveniente. A Serverspace integrou o VoD à rede [CDN](https://serverspace.com.br/services/cdn.md) de forma que os arquivos de vídeo carregados pelos clientes sejam automaticamente armazenados em cache e distribuídos pelos servidores ao redor do mundo. Isso garante acesso rápido aos vídeos, com mínima latência e alta qualidade. ## Quais são as funcionalidades do Video on Demand: - **Entrega eficiente de conteúdo:** O VoD, integrado à CDN, oferece baixa latência e alta velocidade no carregamento dos vídeos. - **Redução de carga nos servidores:** O uso da CDN para VoD ajuda a aliviar a carga nos servidores principais, redistribuindo as solicitações de vídeo pela rede distribuída. - **Otimização da qualidade de vídeo:** O sistema VoD ajusta automaticamente a qualidade do vídeo conforme o dispositivo do usuário e a velocidade de internet disponível. ## Para quem o serviço VoD é adequado? - **Provedores de conteúdo e serviços de streaming:** Para a distribuição e monetização de conteúdo de vídeo com qualidade, garantindo acesso a filmes, séries e outros materiais a qualquer momento. - **Plataformas educacionais e instituições de ensino:** Para fornecer aos alunos acesso a vídeos educacionais, como palestras e cursos, no horário que lhes for conveniente, aumentando a flexibilidade do processo de aprendizagem. - **Empresas distribuidoras de conteúdo de vídeo:** Para otimizar os processos de armazenamento e entrega de conteúdo, garantindo reprodução rápida e de alta qualidade para os usuários. - **Empresas de marketing:** Para o uso eficiente de conteúdo de vídeo em campanhas publicitárias e treinamentos, aumentando o engajamento e a compreensão dos produtos. O [novo serviço](https://serverspace.com.br/services/video-on-demand-vod.md) está disponível para todos os usuários que utilizam a CDN. No futuro, a Serverspace planeja expandir a lista de serviços oferecidos para proporcionar ainda mais possibilidades aos seus clientes no trabalho com tecnologias digitais. _[Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas abertas como API, CLI e Terraform estão disponíveis para integração dos serviços dos clientes._ https://serverspace.com.br/about/blog/como-a-inteligencia-artificial-esta-mudando-os-negocios-modernos.md Como a IA ajuda empresas em diversas áreas, os benefícios que oferece e como pode ser usada de forma eficaz. A inteligência artificial entrou rapidamente em nossas vidas cotidianas e transformou completamente a visão geral sobre a automação das atividades humanas. Desde a redação de textos simples até a criação de códigos complexos para programação, a IA continua a evoluir. Um dos instrumentos mais poderosos da inteligência artificial são as [APIs para grandes modelos de linguagem](https://serverspace.com.br/services/api.md) (LLM – Large Language Model). As LLMs são soluções de software que permitem integrar a IA em processos rotineiros do dia a dia. Por exemplo, as empresas podem trabalhar mais rapidamente, de maneira mais inteligente e encontrar novas oportunidades de crescimento com a ajuda da IA. Recentemente, a [Serverspace](https://serverspace.com.br/index.md) anunciou o lançamento de um novo serviço – [GPT API](https://serverspace.com.br/services/api-gpt-do-serverspace.md), que permite criar seu próprio sistema de análise baseado em IA para automatizar o trabalho com grandes volumes de dados dos clientes. Neste artigo, vamos mostrar como essas tecnologias de IA já estão ajudando as empresas em diversas áreas, quais benefícios específicos elas oferecem e como permitem que as empresas acompanhem os tempos e, até mesmo, se adiantem um pouco. ## Foco no cliente A IA está sendo amplamente adotada por empresas para **melhorar o atendimento ao cliente**, acelerando significativamente os processos e aumentando a qualidade do serviço. Por exemplo, a Amazon integrou o serviço Amazon Comprehend, que usa aprendizado de máquina e processamento de linguagem natural (NLP) para automatizar a análise de comentários sobre produtos. Como resultado, o tempo de processamento de textos foi reduzido 596 vezes em comparação com a análise manual. A Microsoft adotou uma abordagem semelhante ao implementar IA na plataforma Dynamics 365 Customer Service Insights. A IBM foi ainda mais longe, utilizando o Watson para automatizar a classificação de solicitações de clientes. A IA reduziu o tempo de processamento de 2 horas para 1 hora e aumentou a precisão da classificação de 800 para 900 casos bem-sucedidos em 1.000. Isso permitiu que a empresa processasse 300 solicitações adicionais diariamente. Além dos casos descritos acima, a IA pode ser usada para automatizar respostas a perguntas frequentes. A Zendesk, por exemplo, implementou o Answer Bot e reduziu o tempo de resposta de 10 para 2 minutos, além de diminuir a carga de trabalho dos funcionários. O Answer Bot processa cerca de 2.000 solicitações diariamente, fornecendo respostas automaticamente e liberando até 30% dos recursos humanos para tarefas mais complexas. ## Melhoria de processos empresariais As empresas modernas estão cada vez mais recorrendo à inteligência artificial para melhorar a **eficiência da gestão de seus negócios**. Exemplos de adoção da IA nessa área já demonstraram resultados significativos. A UiPath, por exemplo, utilizou IA em sua solução UiPath Process Mining para analisar mais de 10.000 cadeias lógicas de processos empresariais mensalmente. Essa abordagem permitiu identificar até 100 gargalos e sugerir melhorias, resultando em um aumento de 20% na produtividade da empresa e na automação de 70% dos processos. A automação também impactou o treinamento de funcionários. A IBM implementou a plataforma Watson, que reduziu o tempo de preparação de materiais de treinamento de 20 para 10 horas e diminuiu os custos de desenvolvimento desses materiais em US$ 500.000. A plataforma analisa dados dos funcionários e cria programas de treinamento personalizados, aumentando o engajamento e melhorando os resultados do aprendizado. A Coursera, por sua vez, implementou o AI-powered Mentor Bot para automatizar respostas a solicitações dos alunos, reduzindo o tempo de espera de 10 para 2 minutos e aumentando o número de alunos engajados em 15.000 por mês. ## Desenvolvimento de software A adoção de inteligência artificial está transformando o **processo de desenvolvimento e web design**, tornando-os mais rápidos e convenientes para os usuários. O Facebook implementou a tecnologia de tradução automática baseada em IA chamada M2M-100. Ela processa até 4,5 bilhões de traduções e utiliza redes neurais profundas que analisam textos em todos os idiomas suportados. O M2M-100 opera sem o uso intermediário do inglês, o que melhora a precisão das traduções. Outro exemplo bem-sucedido de aplicação de IA foi na empresa de desenvolvimento de software Stack Overflow, que integrou IA em sua plataforma corporativa "Stack Overflow for Teams". Essa solução reduziu significativamente o tempo necessário para encontrar respostas e soluções técnicas – de 40 para 20 horas por mês por funcionário. A IA processa as perguntas feitas pelos desenvolvedores e as compara com respostas existentes na base de conhecimento, fornecendo as soluções mais relevantes e de qualidade. A implementação da IA não só aumentou a produtividade dos desenvolvedores, mas também gerou uma economia de US$ 14,42 milhões em três anos. A Wix, por sua vez, integrou IA através da plataforma Wix ADI, que automatiza o processo de criação de páginas da web. Primeiro, o Wix ADI analisa as preferências e necessidades dos usuários, incluindo o tipo de negócio, estilo e conteúdo. Em seguida, a plataforma gera automaticamente um design exclusivo para o site, incluindo HTML, CSS e código JavaScript. Isso reduz o tempo de desenvolvimento de páginas da web de 10 para 3 horas. Como resultado, o número de pedidos aumentou em 5.000 por mês, e a receita da empresa cresceu para US$ 1,24 bilhão em 2024 apenas com assinaturas de serviços criativos. ## Segurança da informação Outro setor onde a IA está ajudando nos processos empresariais é a segurança da informação. A Splunk implementou o GPT-3 da OpenAI em seu sistema SIEM (Security Information and Event Management). Essa solução abriu novas possibilidades para automatizar e acelerar o processo de análise de incidentes. A IA processa grandes volumes de dados, classifica e prioriza incidentes automaticamente, oferece recomendações de resposta e reduz o número de falsos positivos. Graças a essas funções, o tempo de análise de eventos foi reduzido de 5 horas para 2 horas, o que permitiu que a equipe de segurança prevenisse 120 ameaças adicionais por mês e processasse 300 incidentes a mais. A Darktrace utiliza IA para analisar o tráfego de rede em tempo real, identificando anomalias e potenciais ameaças. A IA monitora continuamente os padrões de comportamento de dispositivos e usuários na rede, detecta desvios do comportamento normal e classifica os incidentes por nível de risco. Essa inovação técnica reduz o tempo de resposta a incidentes de 5 para 2 horas e previne 300 ameaças adicionais mensalmente. ## Marketing A adoção de IA no **marketin**g está abrindo novos horizontes e tornando as campanhas publicitárias mais eficazes. A Alibaba implementou a AI Copywriting Tool, que utiliza inteligência artificial para automatizar a criação de materiais de marketing. A ferramenta analisa dados sobre o produto, o público-alvo e os objetivos de marketing para gerar textos que melhor se adequam a determinadas campanhas. A IA leva em consideração o estilo, o tom e o contexto, além de criar textos, descrições de produtos e outros materiais de marketing exclusivos e atraentes. A AI Copywriting Tool é capaz de gerar até 20.000 linhas de texto por segundo, o que reduz significativamente o tempo de criação de materiais, de horas para segundos. O avanço da inteligência artificial afeta não apenas o desenvolvimento de tecnologias e negócios, mas também a qualidade de vida das pessoas em geral. A IA ajuda a automatizar muitos processos rotineiros, proporcionando economia do recurso mais valioso – o tempo. É evidente que a tendência de integrar IA nos negócios continuará crescendo rapidamente. Por isso, as empresas modernas enfrentam duas opções: perder o futuro ou avançar com confiança na era da inteligência artificial por meio de sua [adoção inteligente](https://serverspace.com.br/services/api.md). https://serverspace.com.br/about/blog/api-o-que-e-em-palavras-simples.md Descrição detalhada do que é a API, para que ela é usada e exemplos de aplicação. A API é uma tecnologia simples e conveniente de obtenção de dados para o site. Se você está começando a entrar na área de TI ou já trabalha nela, provavelmente já se deparou com a sigla "API" em descrições de vagas. Muitos usuários e futuros desenvolvedores querem saber o que exatamente uma API faz. Neste artigo, vamos explicar o que é uma API e por que ela é útil para programadores. ## O que significa API? A sigla API significa Application Programming Interface, que em português pode ser traduzido como "Interface de Programação de Aplicações". Essencialmente, é um conjunto de regras e métodos pelos quais diferentes programas podem interagir entre si e trocar informações. Essa comunicação acontece por meio de funções, estruturas, classes e constantes de um produto de software, ao qual outros sistemas fazem chamadas. Este princípio de funcionamento é fundamental. ## Para que serve uma API? Por exemplo, você está comprando um ingresso para um show usando um cartão de crédito. Durante esse processo, o terminal de pagamento se comunica com a API do banco emissor do cartão. Isso significa que o terminal envia uma solicitação de pagamento e recebe uma resposta sobre o status da transação. Vamos dar mais exemplos de uso de API. Ao pedir comida através de um aplicativo, o aplicativo se comunica com o sistema de CRM da empresa de delivery via API. O mesmo acontece quando você solicita um táxi através de um aplicativo móvel. Para esses tipos de tarefas, são necessárias chamadas de API. O funcionamento de uma API pode ser comparado a um contrato entre comprador e vendedor – o servidor é o vendedor, e o comprador é a aplicação que precisa de dados do servidor. ## Onde as APIs podem ser usadas? A API pode ser utilizada em muitas áreas, incluindo desenvolvimento web e móvel, setor bancário, indústria de jogos, Internet das Coisas e muitas outras. A interface de programação pode ser encontrada: - Em linguagens de programação populares. Graças à API, funções podem interagir corretamente entre si. Para isso, as funções chamadas e chamadoras precisam ter o tipo de dado correto e outros parâmetros compatíveis. - Em sistemas operacionais. Para criar aplicativos para um sistema operacional específico, é necessário conhecer sua API, que permite que aplicativos recebam informações da memória do sistema. Além disso, várias APIs são usadas para conectar diferentes serviços da web. Essas APIs podem ser públicas e disponíveis para qualquer um que queira usá-las. Geralmente, os autores disponibilizam informações sobre o funcionamento da API em documentos de domínio público. ## Para que os desenvolvedores precisam de uma API? As APIs aumentam a confiabilidade dos programas e facilitam o trabalho dos desenvolvedores. Eles não precisam entender a construção lógica de sistemas de funções de baixo nível. Isso aumenta a segurança de cada tarefa executada – o que é especialmente importante em programas de grande escala, como sistemas operacionais. Tarefas internas são executadas em grande quantidade e não interferem umas nas outras, ocorrendo de forma imperceptível. No desenvolvimento web, as APIs são usadas para integrar vários serviços e aplicativos em sites e aplicativos web. Por exemplo, para integrar o Google Maps em um site, pode-se usar a API do Google Maps, que permite acesso a mapas, rotas e outras funcionalidades fornecidas pelo serviço. APIs também são usadas no desenvolvimento móvel para criar aplicativos e jogos que possam trocar dados com servidores ou outros aplicativos. Por exemplo, aplicativos móveis de redes sociais, como o Facebook, utilizam amplamente APIs para a troca de dados entre o aplicativo e o servidor. Além disso, as APIs permitem que os desenvolvedores obtenham receita. Por exemplo, existem serviços que fornecem dados de estações meteorológicas. Esses serviços são pagos, e seus criadores recebem dinheiro por cada solicitação de clima feita. De maneira semelhante, outros serviços de diversos tipos de negócios são implementados por meio de APIs. Com o uso de APIs, a velocidade de desenvolvimento de novos produtos de software aumenta, assim como a segurança, e a integração entre diferentes serviços e software se torna mais simples. Os programadores podem usar serviços de terceiros sem precisar interagir diretamente com seus criadores. Isso economiza não apenas tempo e esforço, mas também reduz os custos financeiros frequentemente associados ao desenvolvimento de novos programas. ## Como escolher uma API? Muitos desenvolvedores se perguntam qual API escolher. No entanto, essa escolha depende de muitos fatores. Existem muitas opções de API, e escolher a que é mais adequada para um projeto específico pode ser difícil, então não há uma resposta objetiva sobre qual API é melhor. Para saber qual API pode se encaixar no projeto, é importante determinar suas necessidades e quais funções e dados são necessários. Isso ajudará a restringir a pesquisa. Em seguida, familiarize-se com a documentação da API. Verifique se ela oferece as funcionalidades e métodos necessários e se o formato de solicitações e respostas é adequado para o seu projeto. Algumas APIs podem oferecer uso gratuito, enquanto outras têm planos pagos com diferentes níveis de suporte e acesso a funcionalidades. Antes de usar, é uma boa prática testar a API para garantir que o serviço atenda às suas necessidades. Mesmo as versões pagas geralmente oferecem um período de teste. ## Exemplo de uso de API A conexão com uma API pode ser feita usando os seguintes protocolos: REST API, SOAP, RPC, GraphQL, entre outros. A conexão via API exige um identificador único. Por que você precisa de uma chave de API? Ela é necessária para a autorização e autenticação do usuário ou aplicativo que está enviando a solicitação através da API. Aqui está um exemplo de como usar a API do Google Maps em um site: Não se esqueça de substituir "seu_API_key" pela sua chave obtida através do Google Cloud Console. Assim, uma API é útil para integrar funcionalidades de aplicativos de terceiros em seu site. ## Para que pode ser utilizado o API no Serverspace? O [API do Serverspace](https://serverspace.com.br/services/api.md) é uma forma segura e eficiente de gerenciar serviços utilizando requisições HTTP. Através dessa interface de programação, os usuários podem administrar sua infraestrutura em nuvem, além de integrar aplicativos, serviços e scripts. As funcionalidades do API permitem a execução de praticamente todas as tarefas disponíveis no painel de controle do provedor de nuvem. Por exemplo, se o seu projeto está crescendo rapidamente e está precisando de mais recursos, você pode alterar a configuração do servidor virtual enviando a seguinte requisição: ``` [curl -X PUT \ https://api.serverspace.com.br/api/v1/servers/{server_id} \ -H 'content-type: application/json' \ -H 'x-api-key: ' \ -d '{ "cpu": 4, "ram_mb": 4096 }' ``` Os usuários podem utilizar o API do Serverspace para criar, modificar e excluir [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md), monitorar o estado dos seus servidores, gerenciar registros DNS, bem como automatizar tarefas. O API do Serverspace pode ser integrado com outros aplicativos, como CRMs, sistemas de gerenciamento de conteúdo, ferramentas de monitoramento, entre outros. Por exemplo, você pode configurar o envio automático de notificações para o seu sistema de CRM quando algum evento ocorre no servidor. Graças à documentação detalhada, o API do Serverspace é ideal para resolver muitas tarefas cotidianas do departamento de TI, sendo um diferencial competitivo do Serverspace. https://serverspace.com.br/about/blog/cli-gerenciamento-de-infraestrutura-pela-linha-de-comando.md Para que serve a CLI (interface de linha de comando) ao trabalhar com a infraestrutura de nuvem. Uso da CLI em sistemas Linux e Windows. O gerenciamento da infraestrutura em nuvem pode ser feito através de várias ferramentas, como a interface de programação de aplicativos (API) ou a linha de comando (CLI). Neste artigo, vamos explorar em detalhes o que é o CLI e como essa ferramenta permite trabalhar com infraestrutura virtual. A linha de comando possibilita que administradores e desenvolvedores executem várias operações usando comandos e scripts familiares, proporcionando uma maneira prática e eficiente de gerenciamento. Antes do surgimento das interfaces gráficas (GUI), a linha de comando era uma das poucas maneiras de interagir com um computador. Mesmo com o desenvolvimento das GUI, a linha de comando continua sendo uma ferramenta essencial, pois fornece acesso rápido às funções do computador/servidor. ## CLI. O que é? CLI (Command Line Interface), ou interface de linha de comando, é uma ferramenta que permite interação com um sistema computacional ou software por meio de comandos em formato de texto. A ideia central do CLI é que o usuário insere comandos na linha de comando, o sistema os executa e retorna os resultados. Os comandos podem incluir operações como criação, leitura, atualização e exclusão de recursos, configuração de parâmetros do sistema, gerenciamento de conexões de rede e muito mais. No contexto de provedores de nuvem, o CLI permite o controle da infraestrutura diretamente no terminal. ## Principais vantagens do CLI - **Amplo conjunto de comandos e opções**. O CLI oferece um conjunto abrangente de comandos e parâmetros que possibilitam configurar e gerenciar a infraestrutura conforme as necessidades específicas da sua organização. Os usuários podem realizar operações como criação, modificação, escalonamento e exclusão de recursos, além de configurar parâmetros de segurança. Diferente de uma GUI, onde a interação se dá através de cliques e elementos gráficos, o CLI permite um controle mais preciso das operações e a execução de tarefas complexas com comandos. Isso facilita a automação de tarefas, criação de scripts para executar uma série de comandos e integração do CLI com outros programas e sistemas. - **Automatização de tarefas e operações**. O CLI permite a automação da infraestrutura por meio de scripts e arquivos em lote. Com ele, é possível criar scripts para executar uma sequência de comandos, simplificando e agilizando tarefas e processos repetitivos. Isso ajuda a economizar tempo e recursos, além de garantir consistência e uniformidade na gestão da infraestrutura. - **Acesso rápido e direto às operações**. O CLI fornece acesso direto às operações e recursos da infraestrutura. Com comandos, você pode executar ações e obter resultados instantaneamente, sem necessidade de navegação por uma interface gráfica. Isso economiza tempo e facilita o gerenciamento. - **Controle total e gerenciabilidade da infraestrutura**. O CLI permite um controle detalhado sobre parâmetros e configurações, além de monitorar e analisar o estado dos recursos. Com ele, é possível gerenciar o acesso e permissões dos usuários, garantindo a segurança e o cumprimento das políticas da sua organização. O CLI é amplamente utilizado por administradores de sistemas, desenvolvedores de software, engenheiros de rede e outros profissionais técnicos para gerenciar e configurar sistemas de computador, servidores, redes e software. Além disso, é uma ferramenta útil para automação de tarefas diárias, gerenciamento de sistemas remotos e programas via rede, além de melhorar a eficiência operacional. ## Como funciona o CLI Para utilizar o CLI, o usuário deve inserir comandos em texto na interface de linha de comando e aguardar o resultado. Durante o processo, o CLI traduz os comandos em funções compreensíveis para o sistema operacional, que então retorna uma resposta. Os comandos podem ser simples, com uma única palavra, ou complexos, envolvendo várias linhas, como scripts. Por exemplo, este comando no [CLI da Serverspace](https://serverspace.com.br/services/cli.md) permite verificar o volume do disco rígido: ``` >s2ctl server get-volume l1s12345 --volume-id 20210 ``` *s2ctl é uma ferramenta da Serverspace que permite interagir com a infraestrutura diretamente no terminal. Resultado: ```yaml id: 20210 name: boot server_id: l1s12345 size_mb: 25600 created: '1970-01-01T0:00:00.0000000Z' ``` O CLI é útil para automatizar tarefas. Sua equipe pode criar uma lista de comandos que o sistema executará em horários ou situações específicas. ## O que significa CLI na Serverspace O CLI da Serverspace possibilita gerenciar a infraestrutura em nuvem e outros serviços, com funções como configuração e monitoramento de máquinas virtuais, gerenciamento de configurações de rede, segurança com chaves SSH e coordenação de projetos. Com o CLI, você pode executar ações disponíveis no painel de controle da Serverspace usando comandos de linha. Independente de você utilizar Linux ou Windows, estão disponíveis executáveis para download no GitHub. Basta baixar o arquivo adequado e executá-lo no seu computador. Para facilitar o acesso ao CLI, você pode adicionar o caminho da pasta com o executável na variável de ambiente PATH, permitindo chamar o CLI de qualquer diretório do sistema. O CLI permite automatizar interações com [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) e obter respostas imediatas para comandos, sem precisar acessar o painel de controle. As principais ações disponíveis no CLI incluem: - Criar máquinas virtuais (VM); - Visualizar informações e gerenciar energia do servidor; - Escalar configurações de VM; - Conectar redes; - Gerenciar chaves SSH; - Criar snapshots; - Criar e excluir gateways, configurar regras de NAT e Firewall; - Visualizar informações detalhadas do projeto; - Criar e excluir nomes de domínio. Para começar a usar o CLI da Serverspace, é necessário instalá-lo, com procedimentos específicos para Linux e Windows. ## Interface de linha de comando CLI no Linux Primeiro, baixe o arquivo no GitHub e descompacte o arquivo: ```bash tar -xzf s2ctl-vX.X.X-linux.tar.gz ``` Você também pode adicionar a pasta onde colocou o s2ctl à variável de ambiente PATH, para acessar de qualquer lugar do sistema. Para verificar o seu $PATH atual, digite no terminal: ``` echo $PATH ``` Para adicionar um novo diretório ao PATH, use o comando: ``` export PATH=$PATH:"/caminho/do/s2ctl" ``` Essa variável $PATH é configurada a cada inicialização do terminal, mas você pode definir o caminho para que seja sempre incluído ao iniciar uma nova sessão. O método exato varia conforme o shell que você utiliza. Instruções detalhadas estão disponíveis no [GitHub](https://github.com/itglobalcom/s2ctl). ## Interface de linha de comando CLI no Windows Baixe o arquivo no GitHub e descompacte-o. Em seguida, abra o Prompt de Comando no computador. O Prompt de Comando, por padrão, exibe o diretório do usuário atual. Navegue até o diretório com o arquivo extraído: ``` cd \caminho\do\s2ctl ``` Após acessar o diretório, execute o comando: ``` s2ctl ``` Não se esqueça de configurar o PATH no Windows. Instruções detalhadas estão disponíveis no [GitHub](https://github.com/itglobalcom/s2ctl). https://serverspace.com.br/about/blog/por-que-fazer-backups-e-onde-armazena-los.md Por que você precisa fazer backup de seus arquivos, dados ou servidor? Como configurar um sistema de backup e qual é o melhor local para armazenar os backups? A criação de cópias de segurança ou backups do servidor é um processo que garante a preservação dos dados e a proteção contra a perda de informações em caso de falhas no sistema. Sem a criação regular de backups, você corre o risco de perder arquivos e documentos, além de comprometer o funcionamento de todo o sistema. É possível copiar: - arquivos individuais; - grupos de arquivos unidos por alguma característica em comum; - o sistema operacional; - discos ou partições de discos; - máquinas virtuais (VM). A criação de backups deve ser realizada regularmente para que, em caso de falha, os dados possam ser rapidamente restaurados. A opção ideal para armazenamento dos backups são dispositivos ou servidores separados, localizados em diferentes locais. Isso garante a proteção contra perda de dados em caso de desastres, como incêndios ou inundações. ## Por que são necessários backups para sites e bancos de dados Os backups são essenciais para sites e bancos de dados, pois as informações podem ser perdidas ou danificadas devido a falhas no sistema, ataques de vírus, erros de administração, etc. Por exemplo, no caso de um site, os backups permitem restaurar rapidamente o funcionamento após um ataque de hackers ou uma falha no servidor. Os backups de bancos de dados ajudam a preservar todas as informações importantes armazenadas, como dados de clientes, pedidos, pagamentos, etc. As cópias de segurança permitem restaurar rapidamente os dados e retomar o funcionamento normal do sistema. As razões para fazer backups incluem: - **Proteção contra perda.** Os backups permitem manter cópias de todos os dados importantes e restaurá-los rapidamente em caso de perda ou dano. Isso pode acontecer devido a falhas no sistema, ataques de vírus, incêndios ou inundações. - **Conformidade com a legislação.** Se o site ou o banco de dados contiver dados pessoais de usuários, a existência de backups garante o cumprimento das exigências legais de preservação e proteção de dados. - **Proteção contra invasões.** Os backups permitem restaurar rapidamente o funcionamento do site ou do banco de dados em caso de invasão ou ataque de vírus. - **Teste de novas funcionalidades e atualizações.** A criação de cópias permite realizar testes e assegurar que todas as funcionalidades funcionam corretamente, sem danificar a versão principal em produção. - **Prevenção de interrupções no funcionamento.** Os backups ajudam a evitar problemas na operação do site ou do banco de dados e reduzem o risco de perda de clientes e receitas. A ausência de backups para um site ou banco de dados pode levar a consequências e problemas sérios: perda de dados, descumprimento da legislação, falhas imprevisíveis no funcionamento do site ou banco de dados, perda de reputação da empresa, riscos de segurança e altos custos de recuperação. ## Tipos de backup Existem vários tipos de backups. Vamos considerar alguns dos mais comuns: - **Backup completo (full backup).** É uma cópia completa de todas as informações presentes no site ou no banco de dados. Um backup completo pode ocupar muito espaço em disco, sendo o tipo mais abrangente e confiável de backup. - **Backup incremental (incremental backup).** Este tipo de backup copia apenas os dados que foram alterados desde o último backup completo ou incremental. Isso ajuda a reduzir o tempo necessário para criar backups e diminuir o volume de dados armazenados. - **Backup diferencial (differential backup).** Faz uma cópia de todos os dados modificados desde o último backup completo. Ele ocupa menos espaço em disco do que um backup completo, mas mais do que um backup incremental. Existem também duas abordagens principais para a criação de backups de arquivos – a cópia de segurança manual, como antes de fazer alterações ou atualizar um CMS, e a criação automática de backups. **Cópia de segurança manual implica** que o usuário seleciona por conta própria os arquivos a serem copiados e os transfere para um dispositivo externo. Esse método exige muita responsabilidade e atenção do usuário, pois uma escolha incorreta dos arquivos ou o armazenamento inadequado dos dados podem levar a erros e perda de informações. **Criação automática de backups é uma abordagem mais conveniente e confiável**, que permite automatizar o processo de criação das cópias. Para isso, pode-se usar softwares específicos ou ferramentas integradas no sistema operacional. O backup automático apresenta diversas vantagens em relação ao método manual. Em primeiro lugar, economiza o tempo do usuário, pois o processo de criação de cópias de segurança é iniciado automaticamente em segundo plano. Em segundo lugar, as cópias são feitas de forma regular e mais confiável, minimizando o risco de perda de dados em caso de falhas no sistema. Todos os tipos de backups têm suas vantagens e desvantagens. A escolha do tipo específico depende das necessidades do usuário, dos recursos disponíveis e da arquitetura técnica do site ou banco de dados. ## Como configurar a criação de backups Existem muitas ferramentas para a criação de cópias de segurança de dados que podem ser usadas em computadores, servidores e na nuvem. Aqui estão algumas delas: - **Ferramentas integradas no sistema operacional:** a maioria dos sistemas operacionais possui ferramentas integradas de backup, como Time Machine para macOS, Windows Backup and Restore ou rsync para Linux. - **Programas de terceiros para backup de dados**, como Acronis True Image, EaseUS Todo Backup, Paragon Backup & Recovery, entre outros; - **Serviços em nuvem**, como Google Drive, OneDrive, Dropbox e iCloud, bem como provedores de nuvem que permitem criar backups automáticos em servidores na nuvem; - **Plugins:** se você deseja fazer o backup de um site WordPress, pode instalar plugins como All-in-One WP Migration, BackWPup, UpdraftPlus WordPress Backup Plugin; - **Armazenamento em rede:** dispositivos de armazenamento em rede, como NAS (Network-Attached Storage) ou SAN (Storage Area Network), oferecem a possibilidade de armazenar e criar backups automáticos em discos de rede; - **Backup em mídias externas:** discos rígidos externos, pen drives USB, cartões SD e outros dispositivos de armazenamento externo podem ser usados para criar backups. Este é um método prático e acessível para proteger informações importantes. Independentemente da ferramenta escolhida, é importante criar backups regularmente e verificar a integridade deles. Aqui estão alguns passos para fazer backup na nuvem de fotos e outros conteúdos: - **Escolha um serviço de backup** que atenda melhor às suas necessidades. Considere a facilidade de uso e os recursos de edição e compartilhamento de conteúdo; - **Selecione o servidor ou os dado**s que precisam ser salvos, como fotos, vídeos, documentos e outros arquivos; - **Configure a frequência dos backups:** defina a periodicidade para que as cópias de segurança sejam feitas regularmente; - **Verifique seus backups** para garantir que estão sendo salvos corretamente e que não estão corrompidos. Lembre-se de que o backup deve ser um processo contínuo para minimizar o risco de perda de informações. Também é recomendável usar múltiplas fontes de backup para máxima segurança dos dados. Por exemplo, você pode usar armazenamento em nuvem para backups automáticos e discos rígidos externos ou outros dispositivos para criar backups adicionais. ## Configuração de backup em servidor Cada serviço em nuvem oferece seu próprio método de configuração de backup em servidor. Vamos mostrar como configurar o backup de um servidor (site ou arquivos nele) usando o exemplo da Serverspace. Existem duas opções de conexão de backup de dados em servidor: - Conexão de backup em um servidor criado na Serverspace. - Conexão de backup em um servidor externo usando uma ferramenta adicional. Os dados serão armazenados em um repositório de objetos S3. Na criação de um novo servidor, a conexão do backup é feita por meio do campo "Backup do servidor" e a seleção da profundidade de armazenamento das cópias (7 dias, 14 dias, 21 dias, 28 dias). Para um servidor já criado, é possível ativar o serviço nas configurações do servidor, na seção "Backup", especificando também a profundidade de armazenamento das cópias. O backup é realizado uma vez por dia em um array de discos geograficamente distante, permitindo uma restauração rápida e eficiente dos dados em caso de perda. O parâmetro de profundidade de armazenamento define por quanto tempo os backups serão mantidos (1, 2, 3 ou 4 semanas) e, quando o prazo expira, as cópias são automaticamente excluídas. Na Serverspace, também é possível ativar outra opção de cópia, o snapshot. Um "snapshot" é a captura instantânea do estado de um sistema ou aplicativo em um momento específico. No contexto de sistemas de computador, os snapshots são frequentemente usados em virtualização para salvar o estado atual de uma máquina virtual, incluindo o sistema operacional, aplicativos e arquivos. Snapshots podem ser usados para restaurar rapidamente o sistema a um estado específico ou para criar uma cópia da máquina virtual no estado atual. Os backups, ao contrário dos snapshots, são criados automaticamente e podem ser restaurados apenas no servidor em que foram feitos. Se você já possui um servidor e deseja armazenar backups em um repositório de objetos, é necessário conectar um serviço externo, como o Veeam Backup. ## Como restaurar um servidor a partir de um backup A restauração de um site a partir de um backup depende do método utilizado para criar o backup e onde a cópia está armazenada. Se você conectou o backup de um servidor virtual na Serverspace, acesse o painel de controle e vá para as configurações do servidor, na seção "Backup" – "Restauração". Escolha o método de restauração do servidor: **Ao lado** ou **Por cima**. No primeiro caso, será criado um duplicado do servidor, enquanto no segundo, a cópia selecionada será restaurada sobre o servidor principal. Se o backup do site estiver armazenado em uma nuvem, será necessário usar ferramentas especializadas de backup que suportem a função de restauração a partir do armazenamento, como o Veeam Backup & Replication. ## Conclusão O backup é uma ferramenta essencial para a proteção e preservação de dados em caso de perda devido a falhas de disco rígido, ataques de vírus, erros de usuários, eventos inesperados e muitas outras razões. Recomenda-se que os usuários criem regularmente backups dos dados necessários e os armazenem em um local seguro. https://serverspace.com.br/about/news/sete-dias-de-loucura-de-black-friday-grandes-ofertas-da-serverspace.md Ótima notícia - vamos celebrar a Black Friday de 25/11 a 01/12 com códigos promocionais exclusivos, cashback aumentado e ofertas especiais. Prepare-se! ### Oi! Equipe da Serverspace a bordo. Temos ótimas notícias — de **25 de novembro a 1 de dezembro**, vamos celebrar a sexta-feira mais aguardada do ano com uma semana cheia de surpresas para nossos usuários. Prepare-se para códigos promocionais exclusivos, cashback aumentado e ofertas especiais em infraestrutura de nuvem. De [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) a [VPN](https://serverspace.com.br/services/cloud-vpn.md) e [CDN](https://serverspace.com.br/services/cdn.md), qualquer solução que você escolher sairá mais barata se você ativar seu código promocional antes de dezembro chegar. Antes de encerrar, gostaríamos de agradecer a todos os nossos usuários por escolherem a Serverspace. Fiquem atentos e não percam nossas atualizações por e-mail! _[Serverspace](https://serverspace.com.br/index.md) é um provedor de nuvem que oferece implantação automática de infraestrutura virtual baseada em Linux, Windows de qualquer lugar do mundo em menos de 1 minuto. Ferramentas abertas como API, CLI e Terraform estão disponíveis para integração dos serviços dos clientes._ https://serverspace.com.br/support/help/como-usar-o-CRON-no-Linux.md Aprenda como usar o CRON no Linux para automatizar tarefas e scripts. Este guia explica comandos básicos, sintaxe, exemplos práticos e como verificar logs do cron. Ao trabalhar com o Linux ou com outras distribuições diariamente, há uma lista de tarefas que precisam ser feitas de hora em hora, diariamente ou mensalmente. No entanto, ninguém cancela o fator humano e é muito fácil esquecer de executar uma tarefa simples ou uma lista rotineira delas. Para automatizar esse tipo de coisa, **existe um agendador de tarefas - CRON!** Ele permite que você execute os comandos necessários em uma determinada programação ou intervalo. ## O que é o Cron e como posso encontrá-lo? **O Cron é um utilitário de sistema para automatizar a execuçã**o de tarefas, scripts, comandos de utilitários e serviços com uma programação predefinida de horários ou intervalos precisos. Essa solução permite que você execute tarefas rotineiras e constantes sem a participação do usuário. O Cron é composto de várias partes: - arquivos de configuração **crontab** com comandos a serem executados, quando e qual comando deve ser executado. Um arquivo separado pode ser criado para cada usuário, geralmente armazenado no diretório /etc/cron.d; - **serviço crond**, que verifica periodicamente os arquivos com trabalhos para executá-los. Vamos verificar se o utilitário está instalado em seu sistema e onde encontrá-lo. Para gerenciadores de pacotes do tipo RPM, use o comando: ```bash dnf info crontabs ``` Screenshot №1 — Verificar o cron de instalação Se você estiver usando o gerenciador apt, use apt list para pesquisar: ```bash apt list | grep '.*cron.*binstalledb.*' ``` Isso exibirá uma lista de utilitários instalados mencionando o cron, a partir da qual você pode inferir o software instalado! ## Instalação do cron Se você descobrir que os pacotes não estão presentes em seu dispositivo, será necessário instalá-los por meio do comando para distribuições do tipo apt. Como o Debian e o Ubuntu: ```bash apt update && apt upgrade && apt install cron ``` Para sistemas do tipo RPM, o comando para instalar um pacote com suas dependências pode ter a seguinte aparência: ```bash dnf update && dnf upgrade && dnf install crontabs ``` Depois de nos certificarmos de que todas as dependências do pacote estão instaladas por meio do comando crontab, podemos passar para sua sintaxe! ## Sintaxe e princípio de funcionamento do cron Há alguns blocos básicos usados para criar uma tarefa no cron: ``` minutes hours hours days days months days_weeks username /path/to/command ``` O primeiro bloco com valores de tempo que, em ordem, indicam o momento em que a tarefa deve ser executada. Em seguida, vem o nome do usuário a partir do qual ela deve ser executada, bem como o caminho completo para o comando. Se o nome não for especificado, a tarefa será atribuída ao usuário pelo qual foi criada. Por exemplo, precisamos exibir um texto na hora exata mais próxima e gravá-lo em um arquivo. Para fazer isso, vamos escrever o comando: ``` crontab -e ``` Uma janela com campos vazios será aberta no terminal, esse é o nosso arquivo de tarefas, no qual podemos escrever um deles. Para fazer isso, vamos acessar o modo de edição por meio do botão i e escrever a seguinte linha: ``` 27 7 * * * * * echo 'Good morning $USER!' >> /tmp/hello.txt ``` Screenshot №2 — Tarefa para o cron Isso significa que todos os dias, às 7 horas e 27 minutos, o comando write to file será executado! Em seguida, pressione Esc para sair do modo de edição e digite :wq para salvar e sair do editor. Para fazer isso, digite o seguinte comando; se não for difícil, pule esta etapa: ```bash apt update && apt upgrade && apt install nano EDITOR=nano ``` Vamos voltar ao nosso gerenciador de tarefas! Depois que uma tarefa for adicionada, o cron emitirá um alerta sobre ela e, para verificar a lista de tarefas atuais, você precisará escrever: ``` crontab -l ``` Screenshot №3 — Lista de cron Ótimo! A tarefa foi criada e agora precisamos verificar sua operacionalidade. Para isso, podemos aguardar o tempo para o qual a tarefa foi definida ou executar o arquivo à força por meio do comando: ``` run-parts /etc/cron.d/ ``` Depois disso, corrigiremos o resultado: Screenshot №4 — Resultado da tarefa cron O Cron trabalhou em uma tarefa e gravou dados em um arquivo, mas e se a tarefa não for concluída? Como posso saber quais ações o cron executou? ## Logging de cron Para visualizar as ações do utilitário, é necessário abrir um arquivo de texto com os registros por meio do seguinte comando: ``` tail /var/log/cron ``` Ou use outro caminho: ``` tail /var/syslog | grep 'cron' ``` O que abrirá uma lista de atividades recentes: Screenshot №5 — Logs do cron Nas últimas linhas, você pode ver que o serviço CROND cronometrou o tempo limite do comando e depois foi encerrado. Se a lista de tarefas no cron estiver desatualizada, você poderá excluir todas as tarefas por meio do comando: ``` crontab -r ``` Todas as etapas do tutorial podem ser executadas em poderosos [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md). O Serverspace fornece servidores VPS isolados para uso comum e virtualizado. Screenshot №6 — Criar servidor Levará algum tempo para implementar a capacidade do servidor. Depois disso, você poderá se conectar de qualquer uma das formas convenientes! ## Exemplo de uso do cron Se considerarmos tarefas reais, o cron ajuda a rotacionar arquivos e registros temporários, limpar diretórios temporários e criar backups. Tanto para bancos de dados quanto para outros sistemas. Por exemplo, vamos considerar a limpeza de diretórios, todos os dias em intervalos de 2 horas e 0 minutos com o comando cleanup com base no armazenamento de mais de um dia: ``` 0 */2 * * * /usr/bin/find /tmp -type f -mtime +1 -exec rm {} ``` Vamos verificar se ele funciona usando os utilitários e métodos descritos acima: Screenshot №7 — Limpar arquivo Depois de verificar se o utilitário executou o comando apropriado, podemos declarar o domínio bem-sucedido do CRON! ## Conclusão O CRON é uma das ferramentas mais úteis do Linux para automatizar tarefas rotineiras sem intervenção humana. Com ele, você pode agendar scripts, comandos administrativos, limpezas de diretórios, backups e qualquer outra ação necessária para manter seu sistema organizado e funcionando corretamente. Neste guia, você aprendeu como instalar o cron, entender sua sintaxe, criar tarefas personalizadas, verificar sua execução e analisar logs para identificar possíveis erros. Dominar o CRON permite otimizar fluxos de trabalho, reduzir erros operacionais e aumentar a eficiência do servidor — especialmente em ambientes de produção. Combine essas práticas com servidores VPS confiáveis para garantir automações rápidas e estáveis. ## FAQ - **O CRON já vem instalado por padrão no Linux?** Depende da distribuição. Em muitos sistemas, o cron já está presente, mas em alguns casos é necessário instalá-lo manualmente via apt ou dnf. - **Onde ficam armazenadas as tarefas do cron?** As tarefas de usuários ficam no arquivo crontab de cada conta, enquanto tarefas globais são armazenadas em /etc/cron.d, /etc/cron.daily, /etc/cron.hourly e outros diretórios semelhantes. - **Qual editor o cron usa para editar tarefas?** Por padrão, o cron usa o editor definido na variável EDITOR. Caso prefira outro editor, você pode definir temporariamente, por exemplo: ``` EDITOR=nano crontab -e. ``` - **Como verificar se uma tarefa do cron foi executada?** Você pode consultar os logs com: ``` tail /var/log/cron ``` ``` ou ``` ``` tail /var/log/syslog | grep cron. ``` - **Como excluir todas as tarefas do cron?** Use o comando crontab -r para remover completamente o arquivo de tarefas do usuário. - ** O cron é adequado para executar scripts pesados?** O cron pode executar qualquer comando ou script, mas processos muito pesados devem ser monitorados, e é recomendável usar logs e validação adicional para evitar falhas silenciosas. - **Posso rodar tarefas com diferentes usuários?** Sim. Em /etc/cron.d, você pode especificar o usuário diretamente na linha da tarefa. No crontab do usuário, as tarefas sempre rodam sob o próprio usuário. https://serverspace.com.br/support/help/como-instalar-o-deb-packet.md Saiba como instalar um pacote deb no Ubuntu e em outras distribuições baseadas no Debian com comandos simples no terminal. A distribuição do sistema operacional é uma plataforma para trabalhar com um ambiente de software que inclui muitos aplicativos e utilitários diferentes. Tanto os de cliente para executar tarefas básicas quanto as ferramentas de administrador para gerenciar o dispositivo. Para instalar e trabalhar com eles, são usados arquivos binários, imagens com plataformas de virtualização, código-fonte, conjuntos de instruções com intérpretes/compiladores, bem como pacotes arquivados deb, rpm e outros. Neste tutorial, vamos nos concentrar nos arquivos especializados da família Debian. ## Como instalar um pacote deb rapidamente? Não vamos hesitar em escolher uma fonte da qual baixar o deb, que pode ser um repositório, um servidor da Web ou um armazenamento de arquivos. Por exemplo, vamos encontrar os pacotes de que precisamos no repositório do Docker e baixá-los usando wget ou curl: ```bash wget https://download.docker.com/linux/debian/dists/bookworm/pool/stable/amd64/containerd.io_1.6.16-1_amd64.deb ``` Screenshot №1 — Download do pacote deb Depois disso, vamos acessá-lo usando o dpkg ou o apt e instalar seu conteúdo. Observe que é importante especificar o caminho para o arquivo deb, pois o gerenciador de pacotes não sabe sua localização: Screenshot №2 — Erro do apt Se você tentar especificar apenas o nome, poderá receber o seguinte erro; portanto, é importante identificar o caminho completo ou especificar o diretório atual! Todas as etapas do tutorial podem ser executadas em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) avançados. O Serverspace fornece servidores VPS / VDS isolados para uso comum e virtualizado. Screenshot №3 — Criar servidor Levará algum tempo para implementar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das formas convenientes! Vamos explicar o comando para a instalação: ```bash apt install ./containerd.io_1.6.16-1_amd64.deb ``` Vamos esperar até que o arquivo seja descompactado e as dependências necessárias sejam instaladas: Screenshot №4 — Instalação do pacote Observe que o utilitário instalado agora se chama containerd.io. E para trabalhar com ele por meio do gerenciador de pacotes, você deve usar esse nome. Os dados na captura de tela mostram que o utilitário está instalado e seu daemon foi criado! Vamos verificar isso por meio do gerenciador de inicialização: ```bash systemctl status containerd.io ``` Se o serviço estiver no estado ativo, podemos presumir que o utilitário foi instalado com êxito. Entretanto, nem todos os pacotes têm daemons, os pacotes deb podem conter scripts, imagens e outras soluções. Também é possível instalar diretamente pelo gerenciador de pacotes, usando os repositórios do sistema. Para fazer isso, escreva o comando: ```bash apt update && apt upgrade && apt install name-of-package ``` Para procurar pacotes entre os repositórios, use o comando apt search ou apt list | grep 'package'. ## Onde o pacote deb foi instalado? Preste atenção à estrutura do arquivo, pois ela indicará onde o pacote pode ter sido instalado. Para isso, usamos o comando dpkg --content [nome_do_pacote.deb]: ``` dpkg --content containerd.io_1.6.16-1_amd64.deb ``` Screenshot №5 — Árvore de arquivos Em toda a lista, você deve prestar atenção aos pacotes com tamanho maior que 0 e um caminho que contenha a pasta bin. Normalmente, todos os arquivos binários e executáveis devem estar no diretório apropriado. Vamos considerar mais arquivos dessa lista e descobrir onde estão localizados os dados de configuração e outros componentes. Normalmente, todos os arquivos de configuração são descompactados em /etc para que o utilitário funcione, como podemos ver na figura acima. As bibliotecas necessárias para a operação estão no diretório /lib, e o daemon com a documentação em systemd e man, respectivamente. Mas e se os pacotes tiverem sido instalados por engano ou precisarem ser desinstalados por N motivos? ## Como remover um pacote deb? Para remover um pacote, precisamos saber seu nome, não no formato .deb, mas o nome atribuído pelo gerenciador de pacotes durante a descompactação. Para fazer isso, vamos dar uma olhada nos metadados do pacote com o comando apt show: ```bash apt show containerd.io_1.6.16-1_amd64.deb ``` Screenshot №6 — Meta dados do pacote A captura de tela mostra várias informações diferentes sobre o pacote: sua versão, dependências, contra-dependências, tamanho e outras informações. Para remover o pacote correspondente, você precisa especificar seu nome: ```bash apt remove containerd.io ``` Para uma remoção completa e irrevogável, use o comando: ```bash apt purge containerd.io ``` O processo de instalação de pacotes deb é fácil se você seguir as instruções, mas é importante entender a estrutura e o conteúdo do pacote. Também abordamos os comandos para verificar a instalação e gerenciar serviços, além de como desinstalar pacotes para evitar possíveis conflitos ou liberar recursos do sistema. https://serverspace.com.br/support/help/instalacao-do-mecanismo-do-docker-no-centos.md Instalação do mecanismo do Docker no CentOS Para trabalhar com a tecnologia de virtualização, várias plataformas são usadas no sistema operacional, o que permite executar sistemas, utilitários e aplicativos independentes devido ao isolamento dos processos e do ambiente no nível do processador e do kernel. Essa solução se tornou evolutiva e é usada ativamente na produção de vários sistemas de informação. Uma das opções para implementar essa tecnologia é o Docker, cuja instalação consideraremos nesta instrução. ## Instalação rápida do Docker no CentOS! Uma das três opções para instalar a plataforma Docker no CentOS é através de um script pré-preparado pela própria empresa. Ele gravará os repositórios e fará o download da chave para o EDS e, em seguida, instalará o software necessário por meio do gerenciador de pacotes. Vamos atualizar os pacotes e instalar as dependências necessárias, para isso, execute o comando: ```bash yum update && dnf install curl nano -y ``` Screenshot №1 — Atualizar pacotes Depois de fazer o download e conceder direitos para trabalhar com o script, execute-o como root: ```bash curl -fsSL https://get.docker.com -o install.sh && chmod 700 install.sh && bash ./install.sh ``` Screenshot №2 — Execução do script do processo Como resultado, a única coisa que resta a fazer é iniciar o próprio daemon de gerenciamento da plataforma Docker por meio do sistema de provisionamento: ```bash service docker start && service docker status ``` Screenshot №3 — Starting service Como resultado, a plataforma de conteinerização está implantada na máquina e pronta para uso! ## Instalação via repositório Todas as etapas do tutorial podem ser executadas em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) avançados. O Serverspace fornece servidores VPS isolados para uso comum e virtualizado. Screenshot №4 — Criar servidor Levará algum tempo para implementar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das formas convenientes! Na maioria dos casos, os sistemas de informações de combate podem exigir uma versão específica do Docker ou a necessidade de rastrear manualmente o desempenho do sistema. Para fins de configuração mais flexível, podemos usar os repositórios da plataforma! Vamos acessar o diretório de configuração do gerenciador de pacotes e criar um arquivo: ``` cd /etc/yum.repos.d/ && nano docker-ce.repo ``` Dentro do qual você precisa escrever uma configuração, com uma sintaxe específica: ``` name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/centos/$releasever/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg ``` Cada uma das opções acima tem sua própria funcionalidade, as principais são: - baseurl especifica um link para o repositório a partir do qual os pacotes serão sincronizados e instalados; - função habilitada, que indica o estado do repositório. Se ele deve ou não ser incluído na lista de pesquisa; - gpgcheck verifica o EDS dos pacotes baixados para determinar sua autenticidade e integridade a partir do momento da transmissão; - gpgkey o caminho para a chave usada no formato de caminho de URL. Para controlar as chaves existentes no seu sistema, você também pode fazer o download, verificar a soma do hash e especificar o caminho para o arquivo via **file:///**. Depois disso, podemos salvar o arquivo com Ctrl+O e prosseguir com a instalação dos pacotes: ```bash yum install docker-ce docker-ce-cli contained.io ``` Screenshot №4 — Resultado da atualização Como você pode ver na captura de tela acima, o repositório docker-ce-stable que mencionamos foi usado para instalar esses pacotes, então tudo o que resta a fazer é iniciar o daemon e começar! ```bash service docker start ``` https://serverspace.com.br/support/help/configurar-repositorios-no-rocky-linux.md Aprenda a configurar repositórios no Rocky Linux para garantir acesso a pacotes atualizados, instalar softwares com segurança e gerenciar chaves GPG corretamente. Para ter um sistema operacional ou SO totalmente funcional, você precisa receber atualizações em tempo hábil, listas de softwares novos e antigos ou softwares que lhe permitam executar tarefas administrativas ou de cliente. Screenshot №1 - Atualizar software do repositório No Windows, o processo de download de atualizações do sistema operacional é feito por meio de repositórios, e o download de software geralmente é feito por meio de recursos da Web como arquivos binários. A interação com o Linux geralmente é orientada para o uso de repositórios para todos os processos descritos acima. Portanto, é importante considerar a configuração e a operação segura dessas soluções. ## O que é um repositório e como posso trabalhar com ele? Um repositório é uma coleção de objetos armazenados em um servidor, geralmente usada para armazenar software e outras dependências necessárias para sua operação. Ele pode ser implementado como um servidor SFTP, servidor da Web ou pode ser um banco de dados em uma plataforma de controle de versão. É frequentemente usado como um ponto de distribuição de software, bem como uma forma conveniente de armazenamento de dados para o trabalho das equipes. Screenshot №2 - Exemplo de repositório O Linux geralmente usa repositórios como pontos de download abertos, e é importante dividi-los em dois tipos: repositórios confiáveis e não confiáveis. Os primeiros foram aprovados pelos desenvolvedores ou pela comunidade e é menos provável que tenham software que não funcione ou que tenham guias de software. O segundo deve ser verificado ou confiado pelo desenvolvedor de uma determinada coleção de objetos. Para trabalhar com um repositório Linux, geralmente é necessário fornecer um link de URL de onde os pacotes de software serão baixados e uma chave pública correspondente para assinatura digital. ## Configurar o repositório no Rocky Linux Usaremos dois diretórios principais: /etc/yum.repos.d e /etc/pki/rpm-gpg, pois esses são os diretórios em que as referências aos repositórios e às chaves GPG são armazenadas, respectivamente. Esse método é uma configuração manual do repositório e permite que você monitore os repositórios existentes. Para adicionar uma nova coleção, vamos para a pasta /etc/yum.repos.d e criar um novo arquivo de configuração para o Docker: ``` cd /etc/yum.repos.d && nano docker-ce.repo ``` ``` name=Docker CE Stable - $basearch baseurl=https://download.docker.com/linux/rhel/$releasever/$basearch/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/rhel/gpg ``` Screenshot №3 - Configuração Neste exemplo, a primeira linha é o nome do repositório, assim como a segunda, que pode assumir qualquer valor. A linha baseurl deve ser composta corretamente com a versão de sua distribuição RHEL, e a arquitetura de processador normalmente usada é x86_64. Se você não souber os dados exatos, deixe-os como no exemplo acima - variáveis. Enabled é responsável por usar o repositório ao procurar pacotes, e gpgcheck é responsável por verificar as assinaturas. É aconselhável deixá-lo ativado para evitar ataques do tipo man-in-the-middle. Outro componente importante em todo o arquivo é o caminho para a chave, que é especificado no formato de URL - um link para um arquivo local ou um link para um objeto de repositório existente. No exemplo apresentado acima, é apenas um link para um recurso online. Vamos tentar atualizar o repositório e ver se o software lê os pacotes de lá: ```bash dnf upgrade ``` Screenshot №4 - Novo repositório A atualização está ocorrendo, portanto os caminhos estão definidos corretamente e o repositório está configurado corretamente. Todas as etapas do tutorial podem ser executadas em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) avançados. O Serverspace fornece servidores VPS isolados para uso comum e virtualizado. Screenshot №5 - Criar servidor Levará algum tempo para implementar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes! ## Como faço para baixar a chave do repositório? Mas e se você não confiar no recurso de forma permanente e quiser verificar as chaves você mesmo e atualizá-las via Ansible sempre? Para isso, você pode fazer o download da chave por meio do link de comando e gravá-la imediatamente em um diretório com permissões limitadas: ```bash curl https://download.docker.com/linux/rhel/gpg > /etc/pki/rpm-gpg/docker ``` Screenshot №6 - Chave local Esse comando redirecionará a saída do servidor para o arquivo de armazenamento de chaves. E para que o repositório verifique a chave fornecida, nós a especificaremos na configuração do repositório com a linha gpgkey=file:///etc/pki/rpm-gpg/docker, tendo comentado a anterior. Agora vamos testar o repositório instalando o pacote docker-ce: ```bash dnf install docker-ce ``` Screenshot №7 - Resultado da configuração No campo Repositório, podemos ver a lista de repositórios usados para localizar o utilitário, bem como suas dependências que serão usadas para a instalação. ## Como faço para excluir ou desativar um repositório? Se precisarmos desativar alguns repositórios, poderemos excluir o arquivo de configuração com eles ou desativá-los com a cláusula enabled. Isso também é feito no arquivo de configuração. Por exemplo, não precisamos da coleção online atual de arquivos do Docker, portanto, vamos atualizar seu valor: ``` sed 's/enabled=1/enabled=0' ./docker-ce.repo ``` Screenshot №8 - Disable repo Esse comando substituiu todos os itens de =1 para =0 no parâmetro que era responsável pelo uso de repositórios durante a pesquisa. Agora vamos verificar como ele funciona: ```bash dnf update ``` Screenshot №9 — Changes of turn off process Como você pode ver, o repositório foi excluído da lista de pesquisa e não está sendo usado para instalar ou atualizar software. ## Conclusão Configurar repositórios no Rocky Linux é essencial para manter seu sistema atualizado e seguro. Com o uso correto dos diretórios /etc/yum.repos.d e /etc/pki/rpm-gpg, você consegue adicionar, validar e gerenciar repositórios de forma confiável. Além disso, a configuração de repositórios confiáveis reduz riscos de instalação de softwares maliciosos e permite automatizar atualizações e instalações de pacotes. Seguindo as etapas deste guia, você poderá manter seu sistema funcional, seguro e preparado para receber novas versões de softwares sem complicações. ## FAQ - **O que é um repositório no Linux?** Um repositório é um servidor ou coleção de pacotes de software que permite instalar, atualizar e gerenciar aplicativos e dependências de forma centralizada. - **Onde ficam os arquivos de configuração de repositórios no Rocky Linux?** Eles estão localizados no diretório /etc/yum.repos.d, enquanto as chaves GPG usadas para validar os pacotes ficam em /etc/pki/rpm-gpg. - **Como adicionar um novo repositório?** Crie um arquivo .repo dentro de /etc/yum.repos.d e configure os parâmetros name, baseurl, enabled e gpgkey. - **Como verificar se a chave GPG do repositório está correta?** Você pode baixar a chave manualmente com curl e especificar o caminho local no parâmetro gpgkey do arquivo .repo. - **Como desativar ou remover um repositório?** Desative temporariamente alterando enabled=1 para enabled=0 no arquivo .repo ou exclua o arquivo de configuração do repositório. - **Posso usar servidores em nuvem para configurar repositórios?** Sim, servidores VPS isolados, como os oferecidos pelo Serverspace, permitem configurar repositórios da mesma forma que em servidores locais, garantindo controle total sobre pacotes e atualizações. https://serverspace.com.br/support/help/configuracao-de-rede-para-rocky-linux.md Guia detalhado para configuração de interfaces de rede, gerenciamento de conexões de rede, configuração de endereços IP estáticos e dinâmicos. Para que um dispositivo tenha acesso à Internet ou seja acessível para outros na sua rede, é necessário fazer algumas configurações. Praticamente todo dispositivo de computação possui um módulo de processamento de rede ou placa de rede. Neste guia, iremos criar arquivos de configuração para esses dispositivos, que definem como eles funcionam, veremos diferentes métodos de configuração e testaremos para garantir que estejam funcionando corretamente. ## Como configurar uma rede via nmtui? Atualmente, existem maneiras gráficas e textuais para configurar a interface de rede. A mais simples e intuitiva é a utilidade nmtui. A pseudo-interface permite editar e salvar as alterações feitas. Antes de começarmos, vamos fazer as alterações e atualizar os pacotes na máquina: dnf update Screenshot №1 —Atualizar arquivos Em seguida, chame o utilitário especificando o comando, no seguinte formato: nmtui Screenshot №2 — Menu O menu suspenso fornece uma lista de funções básicas. Para configurar a rede, vamos acessar a aba **Edit a connection**: Screenshot №3 — Lista de interfaces Use as setas para selecionar o nome da interface desejada e vá para **Edit**. Se a interface estiver conectada, mas não houver um arquivo de configuração para ela, selecione **Add** e escolha seu protocolo de conexão, frequentemente Ethernet. Preencha a janela com os dados necessários, como endereço MAC, endereço IP, Gateway e outras configurações. O arquivo de configuração resultante pode parecer assim: Screenshot №4 — Resultado do arquivo de configuração Existem campos a serem preenchidos: - **Nome do perfil:** rótulo para a interface, pode ter qualquer valor; - **Nome da interface do dispositivo:** dado pelo sistema, se não houver valor, ele deve ser inserido. Para isso, você pode usar o comando `ip a`; - **Configuração IPv4:** um bloco inteiro de configurações para a versão 4 do IP. A escolha entre Manual e DHCP (Auto) determina o tipo de configuração: manualmente ou usando um servidor DHCP; - **Endereços:** requer o endereço IP para a interface de rede atual, você pode especificar mais de um, se necessário; - **Gateway:** especifica a rota padrão e permite o roteamento de pacotes fora da sub-rede do dispositivo; - **DNS:** especifica um servidor para pesquisa e resolução de nomes de domínio. Depois disso, você deve salvar as alterações e sair para o menu principal, em seguida, recarregar a interface na aba Ativar uma conexão, Desativar e Ativar interface. Todos os passos do tutorial podem ser realizados em [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) poderosos. A Serverspace fornece servidores VPS isolados para uso comum e virtualizado. Screenshot №5 — Criar servidor Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer maneira conveniente! ## Configuração com CLI nmcli Enquanto a GUI é mais intuitiva, a CLI é rápida para aplicar configurações. Para exibir uma lista de todas as interfaces, use o comando: nmcli Screenshot №6 — Lista de interfaces Estamos interessados na interface enp0s6. Embora ela já esteja configurada, vamos configurá-la novamente. A ordem é bastante simples, para configuração manual, escreveremos os comandos: nmcli con mod "enp0s6" ipv4.addresses 172.16.1.12/24 nmcli con mod "enp0s6" ipv4.gateway 172.16.1.1 nmcli con mod "enp0s6" ipv4.dns "8.8.8.8" nmcli con mod "enp0s6" ipv4.method manual Para criar uma interface, você deve usar: nmcli connection add type ethernet con-name Ethernet ifname enp0s6 Para remover uma interface que você não precisa, use o comando: nmcli connection delete enp0s Depois disso, é necessário verificar as configurações de rede usando o comando `nmcli` ou `ip a`. Para uma configuração mais detalhada da interface de rede, é necessário usar um arquivo de configuração através de um editor de texto. No entanto, para configurações básicas, as soluções descritas no manual funcionarão bem. https://serverspace.com.br/support/help/como-funciona-a-expressao-if-em-python.md Aprenda a trabalhar com construções condicionais em Python usando instruções if, elif e else para criar programas flexíveis e dinâmicos. Ao escrever um programa, quase sempre há a necessidade de criar um algoritmo ramificado com várias variantes de condição. Por exemplo, para usar diferentes pacotes de idioma ou modos de configuração de software para usuários com diferentes preferências de idioma. Neste artigo, vamos examinar uma das construções mais comumente usadas e simples do Python3 - o if! ## O que é uma construção condicional if em Python? Como mencionado acima, os algoritmos são frequentemente ramificados e construtos de linguagem especiais são usados para implementar diferentes cenários: Screenshot №1 — Sintaxe da linguagem A lógica é, se [condição-1] for verdadeira, então execute [instrução-1]. Caso contrário (primeira falsa), se [condição-2] for verdadeira, então execute [instrução-2], caso contrário (todas as anteriores são falsas), execute [instrução-3]. Note que a indentação ou tabulação determina se a próxima linha de instrução se referirá à construção ou será separada dela. Vamos considerar o exemplo mais simples de uso: ``` max=12 min=1 if max>5 and min= ou ou Cada uma das expressões apresentadas contém operandos [value-1] e [value-2], bem como um operador entre eles, a ligação pode ser fornecida por valores adicionais ou e. E se você precisar realizar uma ação quando a condição estiver errada? Há um bloco else para isso! ## Bloco Else A lógica da sintaxe anterior era verificar os dados e executar a ação apropriada se o valor fosse True. Mas se for necessário introduzir um ramificação com uma ação quando a condição não for cumprida, usamos else: ``` max=12 min=1 if max>5 and min5 and min5 and min https://serverspace.com.br/support/help/configurar-docker-desktop-no-windows.md Um guia detalhado para configurar o Docker Desktop no Windows. Saiba como configurar o Docker para funcionar com o Hyper-V e o WSL 2! Iniciar uma infraestrutura containerizada pode ser um processo demorado, parte do qual envolve a instalação e configuração de serviços. Para projetos de pequeno e médio porte, isso pode levar tempo, e treinar especialistas para usar o cliente CLI e delegar responsabilidades pode demorar ainda mais. Para reduzir o limiar de entrada e tornar o Docker mais acessível, foi desenvolvido o Docker Desktop. Na última seção, detalhamos o processo de instalação e os requisitos da plataforma; certifique-se de conferir se você ainda não instalou o Docker Desktop. Neste tutorial, vamos explorar a operação e configuração do produto Docker Desktop. ## O que é o Docker Desktop? O Docker Desktop é o produto da Docker para implantar aplicações e serviços prontos para uso, com dependências empacotadas, baseado em uma solução containerizada com módulos que fornecem um ciclo completo de entrega e integração de software. Isso significa que o mesmo ambiente de arquivos, rede e processador é criado no SO, que é separado do SO principal em nível lógico, na forma de um processo restrito. Um SO básico com um conjunto mínimo de utilitários para operação é carregado internamente, a solução é construída com base nisso, de modo que o sistema, a priori, não depende do SO host e um kernel comum é usado. Screenshot №1 — Esquema do algoritmo O diagrama abaixo resume o funcionamento do serviço, onde o cliente envia um comando para o daemon, que por sua vez cria ambientes isolados ou containers com base nas imagens selecionadas. Consequentemente, um dispositivo físico pode ser "dividido" e muitos serviços, sistemas e aplicações podem ser usados em um único dispositivo. A única coisa que os unirá é o kernel do SO host. Como trabalhar com o Docker Desktop? ## Como trabalhar com o Docker Desktop? Vamos abrir o aplicativo e olhar a janela com o painel de controle, à esquerda estão os principais blocos para trabalhar: - Containers, a lista de containers parados e em execução, bem como sua configuração e gerenciamento; - Imagens, o repositório local de imagens baixadas ou construídas, bem como fontes externas; - Volumes, ambientes de arquivos separados que permitem o uso de um ambiente de arquivos isolado em vez de mapear um disco host; - Builder, que reunirá todas as dependências necessárias em uma única imagem automatizada; - Scanner de container Docker Scout para vulnerabilidades; - Extensões para containers. Screenshot №2 — Painel de Controle E tudo é apresentado em um único painel de controle, esse abordagem otimiza e acelera o trabalho com serviços e aplicações. O primeiro passo ao trabalhar com containers é construir ou baixar uma imagem pronta, vamos para a aba Imagens. Screenshot №3 — Imagens Enquanto este painel está vazio, vamos baixar a imagem nginx do repositório Docker. Para isso, clique em "Search images to run" e digite o nome do serviço. Na lista suspensa, selecione a necessária e baixe a imagem. Screenshot №4 — Imagem Nginx no Docker O container é representado como uma string com nome, ID e tags, bem como status e outros metadados. Do lado direito estão os botões de controle. Na visualização clássica, havia um arquivo docker-compose.yml ou uma lista de configurações para executar a imagem no container, agora a lista é criada automaticamente e opcionalmente modificada ao iniciar o container. Screenshot №5 — Executar um novo container Você pode definir um nome personalizado para o container, atribuir as portas apropriadas, bem como conectar volumes com arquivos e variáveis de ambiente para trabalho ou deixar tudo como padrão. Vamos iniciar o container e entrar nele; para isso, clique no botão de iniciar e vá para a aba Containers, onde selecionaremos o que está em execução com o nosso nome. A aba Exec permite conectar-se ao terminal do próprio container e executar comandos. Screenshot №6 — Gerenciamento do container Também é possível ver os logs, arquivos conectados, portas, estatísticas e escanear o container para vulnerabilidades. Todos os passos no tutorial podem ser realizados em servidores em nuvem poderosos. A Serverspace oferece [servidores VPS](https://serverspace.com.br/services/cloud-servers.md) isolados para uso comum e virtualizado. Screenshot №7 — Criar Servidor Levará algum tempo para implantar a capacidade do servidor. Depois disso, você pode se conectar de qualquer uma das maneiras convenientes. A gestão de vulnerabilidades está sendo implementada quase em todos os lugares, e a ferramenta Docker Scout foi desenvolvida exatamente para a gestão e correção. A inspeção pode ser realizada a partir da janela do container na aba Inspecionar manualmente, ou selecionar a ferramenta Scout no lado esquerdo do painel. Screenshot №8 — Docker Scout A ferramenta analisa o conteúdo do container na forma de executáveis de software, configs e o Docker File onde as camadas Docker são armazenadas. Com base nas versões do software encontrado e usado, ele pesquisa no banco de dados CVE e oferece para atualizar o software vulnerável. Para minimizar a interação com o sistema host, você pode criar um volume virtual. Para isso, vá até a aba Volumes e crie um volume seguindo o mesmo princípio. Screenshot №9 — Criação de Volume Neste painel é possível importar arquivos para um volume, usar a conexão de containers ao volume, clonagem, backups. Tudo isso permite criar um único armazenamento para muitos serviços ou, ao contrário, ambientes isolados com arquivos para cada um dos containers. Todos esses cenários são possíveis graças à funcionalidade flexível de volumes virtuais. Além disso, note que no canto inferior esquerdo está o painel de controle do Docker Engine, onde você pode gerenciar o daemon. Screenshot №10 — Configurações do daemon Há uma engrenagem no canto superior esquerdo que permite configurar rede, proxy e uso de recursos no Docker. Usando sliders, você pode definir limites de uso de recursos no SO host de forma interativa, se necessário. Há também um recurso de economia de energia que permite reduzir a carga da CPU e o consumo de RAM. Este produto permitirá que você crie rapidamente a infraestrutura de containers necessária e delegue tarefas para iniciantes. Itens sobre Kubernetes e Docker Build podem ser discutidos em detalhes em guias separados na base de conhecimento! https://serverspace.com.br/support/help/loop-while-em-python.md Saiba como usar um loop while para executar tarefas repetitivas em Python. Um tutorial detalhado com exemplos está incluído aqui! As linguagens de programação são usadas para resolver todos os tipos de problemas relacionados a tipos de dados massivos, como listas, strings, tuplas, dicionários, entre outros que exigem uma linguagem moderna para lidar com um grande fluxo de dados. Em Python, para trabalhar com esses tipos, existem laços, que são divididos em laços com um contador 'for' e sem um número certo de etapas, que são os laços 'while'. Hoje discutiremos o segundo tipo! ## O que é While em Python? While é uma construção cíclica que é executada enquanto a condição especificada para ela for verdadeira. Dentro dessa construção, existem instruções para executar o loop, bem como palavras-chave para interromper a própria construção ou pular a iteração. Vamos considerar sua sintaxe abaixo: Screenshot №1 - Sintaxe da linguagem Primeiro, a palavra-chave 'while' é definida, com uma condição que é verificada quanto à veracidade e, se for 'True', uma série de instruções é executada. Note que tudo o que estiver indentado pertence à construção e será executado de acordo com a regra do loop, exceto por "continue/break", mas falaremos sobre isso abaixo. Da teoria à prática: se antes não estava claro como funciona a máquina de loops, o exemplo esclarecerá. Por exemplo, precisamos exibir números de 0 a 5; para isso, escreveremos a construção abaixo: ``` n=0 while n https://serverspace.com.br/about/news/o-novo-data-center-nos-emirados-arabes-unidos-equinix-dx1.md O provedor de nuvem adicionou um novo data center Equinix DX1, localizado em Dubai, ao seu painel de controle. Os usuários agora têm a oportunidade de implementar VPS nos EAU. O Serverspace agora está no Oriente Médio. O provedor de nuvem adicionou um novo data center [Equinix DX1](https://serverspace.com.br/infrastructure/data-center-dubai.md), localizado em Dubai, ao seu painel de controle. Os usuários agora têm a oportunidade de implementar a infraestrutura de nuvem nos Emirados Árabes Unidos, seja na plataforma hiperconvergente [vStack](https://serverspace.com.br/services/cloud-servers.md) ou na plataforma de virtualização [VMware](https://serverspace.com.br/services/iaas.md). O data center já está disponível no painel de controle, abrindo novos benefícios do Equinix DX1. O data center foi projetado de acordo com os padrões internacionais Tier III e possui certificados de conformidade de qualidade, como ISO 27001, ISO 9001 e PCI DSS. O cluster é equipado com servidores vStack-R-SL201-25RE, com CPUs Intel Xeon Gold de 16 núcleos e frequência básica de 3,0 GHz. ### Principais recursos do Equinix DX1: - Potência elétrica de 5,6 MW; - Fonte de alimentação ininterrupta com nível de redundância N+1; - Sistema de resfriamento com nível de redundância N+20%; - Contém 1200 racks para colocação de equipamentos; ### Como criar um VPS nos Emirados Árabes Unidos? - Acesse o painel de controle em my.serverspace.com.br; - Comece a criar um servidor; - Escolha o sistema operacional e o local - Dubai, EAU; - Defina as configurações de recursos do servidor; - Clique no botão "Create" (Criar). Com a adição do novo data center DX1, o Serverspace oferece a capacidade de implementar a infraestrutura em 6 data centers localizados em todo o mundo: - [São Paulo (Brasil)](https://serverspace.com.br/infrastructure/data-center-sao-paulo.md); - [Nova Jersey (EUA)](https://serverspace.com.br/infrastructure/data-center-new-jersey.md); - [Amsterdã (Holanda)](https://serverspace.com.br/infrastructure/data-center-amsterdam.md); - [Toronto (Canadá)](https://serverspace.com.br/infrastructure/data-center-toronto.md); - [Istambul (Turquia)](https://serverspace.com.br/index.md); - [Dubai (EAU)](https://serverspace.com.br/infrastructure/data-center-dubai.md); https://serverspace.com.br/about/blog/trio-de-ouro-da-computacao-em-nuvem-iaas-paas-saas.md Aprenda sobre IaaS, PaaS e SaaS em termos simples. Explore as diferenças entre infraestrutura, plataforma e software como serviço baseados em nuvem. Você provavelmente já ouviu falar muito sobre serviços em nuvem, mas não consegue imaginar por que precisa deles ou o que eles são em geral. Na verdade, a tecnologia de nuvem está derrubando nossa visão tradicional da infraestrutura de TI empresarial. Não há necessidade de comprar equipamentos caros e ficar pensando em como otimizar o site, onde armazenar grandes quantidades de dados ou fornecer uma rede eficiente na empresa. Os serviços em nuvem podem fazer todo esse trabalho árduo. Além disso, trabalhar na nuvem é muito mais lucrativo, seguro e rápido. No entanto, surge a pergunta: qual serviço você deve escolher? Neste artigo, explicaremos em termos simples quais são os principais tipos de serviços em nuvem e qual deles garantirá um futuro melhor para sua empresa. Se você decidir migrar para a nuvem, encontrará letras estranhas: **IaaS, PaaS, SaaS**. O que elas significam? Para facilitar a compreensão, você pode visualizá-las da seguinte forma: - **No local** - compra de um terreno vazio. Você faz tudo sozinho - instala eletricidade, traz água e constrói uma casa do zero. Isso consome muito de seu valioso tempo e esforço. - **IaaS** - comprar um terreno vazio com comunicações conectadas; com base nelas, fazer um projeto da casa e construí-la. - **PaaS** - compra de um terreno com uma casa construída. Sua área de responsabilidade é apenas a mobília e o design de interiores. - **SaaS** - compra de uma casa totalmente mobiliada. Mude-se e aproveite a vida! Vamos a os detalhes. ### No local O método no local envolve a configuração e o controle de software, hardware e infraestrutura dentro das instalações da própria organização. Esse método é totalmente diferente do uso de serviços de hospedagem na nuvem, dando às empresas total soberania sobre seus ativos de TI, como servidores, bancos de dados e ferramentas de software. As empresas que optam pela configuração no local são responsáveis pela manutenção, pelo aprimoramento e pela proteção de seus sistemas de tecnologia, o que lhes permite personalizar o cenário de TI para atender a necessidades e padrões de referência específicos. Em comparação com uma solução de provedor de hospedagem baseada em nuvem, a utilização de uma estratégia no local normalmente requer um grande investimento inicial em compras de hardware e software, além de custos contínuos com equipe técnica, consumo de energia e alocação de espaço físico para equipamentos. ### IaaS [IaaS](https://serverspace.com.br/services/cloud-servers.md) significa Infraestrutura como Serviço (Infrastructure as a Service) na computação em nuvem. Ela envolve a oferta de recursos de computação, como servidores virtuais, armazenamento e sistemas de rede. Imagine isso como "máquinas" virtuais, nas quais você pode carregar qualquer coisa: sistemas operacionais, vários softwares e aplicativos. O provedor de IaaS cuidou dos aspectos essenciais: compra e configuração da infraestrutura, garantia de energia e conectividade com a Internet. Sua função é simplesmente aproveitar esse recurso computacional pela Internet para atender às suas necessidades específicas. A infraestrutura como serviço (IaaS) em nuvem inclui: - [Servidores virtuais (VPS)](https://serverspace.com.br/services/cloud-servers.md) para a instalação de diversos softwares; - [Configurações de rede](https://serverspace.com.br/services/private-networks.md); - Serviços de VPN, protegendo os dados transmitidos entre a nuvem e os data centers locais; - Gerenciamento de acesso de usuários, permitindo restrições em máquinas virtuais ou limitando os direitos de modificação de dados; - Instalações de armazenamento em nuvem para armazenamento de arquivos, dados ou backup; - Opções de backup e recuperação de desastres. Optar por soluções de nuvem IaaS significa acessar servidores virtuais, redes e armazenamento em nuvem mantidos pelo provedor. Você tem o poder de gerenciar os sistemas operacionais dos servidores virtuais, o que lhe dá a liberdade de adaptar e implementar aplicativos conforme suas necessidades. Essa abordagem oferece um equilíbrio entre o suporte do provedor e a personalização pessoal. Principais vantagens: - Ajuste de recursos em tempo real - aumente ou diminua a escala conforme necessário; - Redução de despesas gerais - elimine a necessidade de servidores caros e de equipe de manutenção; - Eficiência de custos - transforma despesas de capital em despesas operacionais; - Operação imediata - evite atrasos na configuração e na manutenção dos equipamentos; - Acessibilidade global - gerencie as operações de qualquer lugar, sem se limitar a um único local. Quem pode achar a IaaS útil: - Startups em busca de uma TI flexível e econômica; - Empresas com demanda variável, como sites de comércio eletrônico durante períodos de pico de vendas; - Empresas de tecnologia que precisam testar novos aplicativos; - Grandes corporações que buscam reduzir o custo de manutenção de servidores físicos; - Empresas que desejam se concentrar nas operações de negócios principais em vez de gerenciamento de TI. _A IaaS é adequada para absolutamente todas as empresas, desde uma startup até uma corporação internacional. É possível alugar capacidade para praticamente qualquer configuração._ Um exemplo de serviço de IaaS são as soluções do provedor internacional de serviços em nuvem [Serverspace](https://serverspace.com.br/index.md). Ele oferece uma variedade de opções de hospedagem, incluindo [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) VPS e servidores dedicados, atendendo a diversas necessidades de negócios e garantindo desempenho e confiabilidade ideais. O Serverspace permite que os clientes não apenas escolham os recursos de TI necessários para aluguel, mas também personalizem a configuração necessária. Você pode experimentar, por exemplo, o serviço de criação de uma nuvem privada ou particular e optar pela capacidade de servidor adequada. O custo do servidor em nuvem não será fixo; ele dependerá exclusivamente dos parâmetros que você selecionar. É por isso que você não pagará a mais pelo serviço. O Serverspace fornece hardware de alta qualidade e [data centers em todo o mundo](https://serverspace.com.br/infrastructure/data-centers.md). Assim, a empresa não precisa se preocupar com sua infraestrutura de TI; os especialistas do Serverspace estão envolvidos no suporte 24 horas por dia. ### PaaS PaaS - Plataforma como serviço (Platform as a Service) na computação em nuvem. O conceito de plataforma de nuvem implica uma ferramenta parcialmente pronta para executar ou gerenciar aplicativos. O provedor de PaaS oferece uma solução que consiste em uma infraestrutura virtual (capacidade do processador, RAM, armazenamento) e um software especial que é instalado em um servidor virtual. Os serviços de PaaS são normalmente usados por desenvolvedores e empresas que desejam delegar parte de seus processos a um provedor de serviços para se concentrarem em tarefas comerciais de maior prioridade. A abordagem economiza tempo e permite lançamentos mais frequentes. As soluções de PaaS permitem que os usuários façam o trabalho de criação, integração, migração e implantação de vários aplicativos. Produtos de PaaS: Kubernetes - uma plataforma de código aberto para automatizar a implantação, o dimensionamento e a operação de contêineres de aplicativos em clusters de hosts. Como um serviço de PaaS, o Kubernetes abstrai a complexidade do gerenciamento da infraestrutura, simplifica os processos de desenvolvimento e permite que você se concentre na criação de aplicativos em vez de gerenciar servidores. Provedores como o Serverspace oferecem serviços do Kubernetes, dando aos usuários a capacidade de implantar e operar aplicativos em contêineres com facilidade e eficiência. Docker - uma plataforma que permite que os usuários desenvolvam, enviem e executem aplicativos dentro de contêineres. O Serverspace também oferece um serviço Docker que você pode usar para implantar e dimensionar aplicativos com mais facilidade e rapidez. Principais benefícios: - Economia de tempo para a personalização do sistema; - Uso da melhor solução pronta para uso; - Redução do tempo "da ideia à realização" - a velocidade dos testes e do desenvolvimento de aplicativos aumenta; - Acesso de vários usuários ao sistema de diferentes locais. Para quem a PaaS é perfeita? - Desenvolvedores de software que precisam de uma plataforma pronta para uso; - Startups que criam novos aplicativos sem uma infraestrutura tecnológica pesada; - Empresas especializadas em desenvolvimento de aplicativos; - Empresas que exigem rápida implementação e atualização de aplicativos; - Equipes que desejam colaborar em projetos de desenvolvimento de software. ### SaaS SaaS - Software como serviço (Software as a Service) em computação em nuvem. É uma solução totalmente pronta que pode ser usada imediatamente. Ao implementar, o provedor de serviços de SaaS assume todas as obrigações para configurar os serviços. O cliente não participa desses processos, mas apenas usa o produto acabado com as configurações existentes. O provedor de serviços realiza o licenciamento, os upgrades, o suporte técnico e outras configurações. Exemplos de serviços profissionais de SaaS: - Dropbox; - Zoom; - Skype; - SAP Concur; - GoToMeeting. Principais vantagens da tecnologia SaaS: - Econômico - reduz as despesas iniciais; - Início rápido - não há necessidade de instalação; - Atualizações automáticas - não são necessárias atualizações manuais; - Fácil de usar - fácil de usar em qualquer dispositivo; - Colaborativa - simplifica o trabalho em equipe; - Baixa demanda de TI - minimiza a carga de trabalho de TI. Quem se beneficiará com os produtos SaaS: - Empresas que precisam de software acessível e fácil de usar; - Pequenas empresas que procuram ferramentas econômicas; - Sites de comércio eletrônico para gerenciar vendas on-line; - Empresas de marketing em busca de plataformas de gerenciamento de projetos; - Instituições educacionais que precisam de plataformas de e-learning. _Essas soluções SaaS são adequadas para empresas que precisam resolver rapidamente uma tarefa específica e estão satisfeitas com as soluções oferecidas pelo provedor. Se um cliente precisar de personalização individual de quaisquer parâmetros, é razoável escolher entre serviços Iaas ou PaaS._ Se o software SaaS atender completamente às suas necessidades, é mais rápido e mais barato usar um serviço pronto para uso em vez de desenvolver o seu próprio. Por exemplo, quase todas as empresas usam clientes de e-mail prontos, porque a funcionalidade desse serviço é suficiente para todas as tarefas. ### Como entender o que é melhor para você? Para descobrir o serviço de nuvem certo - seja ele IaaS, PaaS ou SaaS - para o seu projeto, avalie as metas do projeto e as habilidades técnicas da sua equipe. - Use **IaaS** para ter acesso a recursos de computação, como VPS, com o benefício adicional de controlar o sistema operacional e o software. Isso é ótimo para equipes experientes em tecnologia que precisam de personalização. - A **PaaS** é feita sob medida para desenvolvedores que desejam criar e implementar aplicativos sem o incômodo de gerenciar a infraestrutura básica. - O **SaaS** oferece uma abordagem fácil de usar, com aplicativos baseados na Internet prontos para uso imediato, ideal para quem deseja soluções de software sem complicações. _Os serviços em nuvem podem realmente facilitar sua vida e levar sua empresa para o próximo nível. Não importa quais sejam suas necessidades específicas, há uma solução de nuvem perfeita para você. Não perca o voo para o céu - migre para a nuvem._ ### Qual é a diferença entre IaaS, PaaS e SaaS? A principal diferença está no nível de gerenciamento. No IaaS, o cliente administra o sistema operacional e os aplicativos; no PaaS, o provedor também gerencia a plataforma de desenvolvimento; já no SaaS, o usuário utiliza um software pronto, sem precisar administrar a infraestrutura. ### Quando escolher IaaS em vez de PaaS ou SaaS? O IaaS é a melhor opção para empresas que precisam de maior flexibilidade, controle sobre a infraestrutura e possibilidade de instalar sistemas e aplicações personalizados. ### Quais são as vantagens dos serviços em nuvem para empresas? Os serviços em nuvem reduzem custos com hardware, oferecem escalabilidade sob demanda, aumentam a disponibilidade dos sistemas e permitem acesso aos recursos de qualquer lugar com conexão à internet. ### É possível migrar de uma infraestrutura local para a nuvem? Sim. A migração pode ser feita de forma gradual, permitindo que empresas transfiram aplicações, bancos de dados e arquivos para a nuvem sem a necessidade de substituir toda a infraestrutura de uma só vez. https://serverspace.com.br/about/news/novo-acesso-ao-gpt-via-api-a-partir-do-painel-de-controle.md O Serverspace anuncia o lançamento de um novo serviço que fornece acesso a grandes modelos de linguagem (GPT) via API. Esse serviço permite que os usuários integrem recursos avançados de inteligência artificial em seus aplicativos diretamente do painel de controle… _O Serverspace anuncia o lançamento de um novo serviço que fornece acesso a modelos de linguagem grandes (GPT) via API. Esse serviço permite que os usuários integrem recursos avançados de inteligência artificial em seus aplicativos diretamente do painel de controle do Serverspace._ Os serviços baseados em modelos de linguagem grandes ([GPT](https://serverspace.com.br/services/api-gpt-do-serverspace.md)) estão se tornando ferramentas cada vez mais vitais em vários setores. Pesquisas indicam que o GPT pode reduzir o tempo de criação de conteúdo em até 70% e melhorar a precisão das respostas às consultas dos clientes em até 85%. Mais de 40% das empresas já implementaram tecnologias de IA em seus processos de negócios, e o mercado de IA está projetado para atingir US$ 407 bilhões até 2027. Atualmente, o Openchat 3.5.0106 está disponível para uso. A biblioteca de modelos continuará a se expandir e, até o final de 2024, a maioria dos modelos LLM de código aberto disponíveis será integrada ao painel de controle do Serverspace. ### Exemplos de uso do [GPT](https://serverspace.com.br/services/api-gpt-do-serverspace.md): - **Automação do suporte ao cliente:** Respostas rápidas e precisas às consultas. - **Criação de conteúdo:** Geração de artigos, descrições de produtos e materiais publicitários. - **Tradução de idiomas:** Tradução instantânea de textos e documentos. - **Desenvolvimento de chatbot:** Criação de assistentes virtuais inteligentes. ### Quem pode se beneficiar da [API do Serverspace GPT](https://serverspace.com.br/services/api-gpt-do-serverspace.md)? - **Desenvolvedores:** para integrar a IA em aplicativos e automatizar processos. - **Empresas:** para aprimorar a interação com o cliente e aumentar a eficiência operacional. - **Profissionais de marketing:** para gerar conteúdo exclusivo e realizar análises de dados. _A Ainergy, uma integradora de soluções de negócios especializada em IA, está colaborando nesse projeto. Essa parceria expandirá os recursos do Serverspace e oferecerá aos clientes novas ferramentas de integração de IA._ https://serverspace.com.br/about/blog/nocoes-basicas-de-python-um-guia-para-iniciantes.md Quer começar a aprender Python? Discussão sobre fundamentos da programação e seleção de recursos úteis. Python é uma linguagem desenvolvida por Guido van Rossum no final dos anos 1980 e início dos anos 1990. Originalmente projetada para acelerar e simplificar o trabalho dos programadores, a Python tornou-se amplamente reconhecida e imensamente popular devido à sua facilidade de uso, simplicidade e suporte ativo da comunidade de desenvolvedores. Apesar de sua simplicidade, o Python continua a evoluir e a melhorar, permanecendo como uma das linguagens de programação mais populares do mundo. Sua versatilidade a torna atraente tanto para iniciantes quanto para desenvolvedores experientes. O Python é aplicado em vários campos e domínios, mas é mais comum nos seguintes: - Desenvolvimento Web: Criação de aplicativos e sites da web usando estruturas como Django e Flask. - Análise de dados e pesquisa científica: Processamento e visualização de informações, bem como realização de cálculos científicos. - Inteligência artificial e aprendizado de máquina: Desenvolvimento e implementação de aprendizado de máquina e algoritmos de IA. - Automação de tarefas: O Python fornece ferramentas convenientes para automação, economizando tempo e esforço. - Desenvolvimento de jogos: Prototipagem e desenvolvimento de aplicativos de jogos. - Design gráfico e processamento de imagens: Automatização de tarefas de processamento e análise de imagens. - Robótica: Programação de robôs e automatização de seu controle. ## Diferenciando Python de outras linguagens de programação (PL): - O Python é conhecido por sua sintaxe compreensível. A linguagem em si é limpa e concisa, o que facilita o aprendizado e o uso do Python por iniciantes. - O Python tem uma comunidade de desenvolvedores ativa e solidária, que fornece ampla documentação, bibliotecas, módulos e soluções para várias tarefas. - Essa linguagem de programação foi projetada para ser escrita linha por linha, simplificando os processos de depuração e desenvolvimento. - Python é compatível com vários sistemas operacionais e plataformas, o que a torna uma linguagem portátil e flexível. - A linguagem vem com um conjunto de bibliotecas padrão, além de várias bibliotecas e módulos de terceiros, o que simplifica a execução de várias tarefas sem a necessidade de escrever código do zero. - O Python oferece tipagem dinâmica, o que significa que as variáveis podem mudar seu tipo de dados durante a execução do programa. - Python é uma linguagem aberta e gratuita, permitindo que os usuários a usem, modifiquem e distribuam livremente. ## Por onde começar a aprender Python: O início da programação em Python envolve o aprendizado de seus conceitos e sintaxe fundamentais. Familiarize-se com tipos de dados, variáveis, instruções condicionais, loops e funções. Utilize ambientes de programação interativos como o Jupyter Notebook ou o modo interativo do Python (por meio da linha de comando ou do interpretador integrado). Isso permitirá que você pratique e veja os resultados imediatamente. Em seguida, aprofunde-se em exemplos e na solução de problemas: mergulhe em exemplos de código disponíveis na documentação do Python e em recursos online. Gradualmente, passe a resolver tarefas simples para reforçar seu conhecimento e aprimorar sua compreensão da linguagem. ## Pratique: Comece a escrever seus próprios programas e projetos. Aplique os conceitos que aprendeu na prática e desenvolva suas habilidades de programação. Familiarize-se com várias bibliotecas e estruturas Python para iniciantes; elas expandem a funcionalidade da linguagem e simplificam seu desenvolvimento inicial. Por exemplo, explore bibliotecas para análise de dados (NumPy, Pandas), desenvolvimento da Web (Django, Flask), inteligência artificial (TensorFlow, PyTorch) e muito mais. ## Participe da comunidade! Envolva-se com a comunidade Python por meio de fóruns, grupos de mídia social ou encontros. A interação com desenvolvedores experientes e a troca de conhecimentos podem ser incrivelmente valiosas. Não tenha medo de começar com tarefas simples e progredir gradualmente para tarefas mais desafiadoras. A prática e a paciência o ajudarão a dominar o Python e a se tornar um desenvolvedor habilidoso. É claro que, para trabalhar com essa linguagem, você precisa preparar sua plataforma e instalar o Python no computador. Siga estas etapas simples: - Acesse o site oficial do [Python](https://www.python.org/). - Na página principal, navegue até a seção "Downloads" e selecione a versão da linguagem que deseja baixar. Recomendamos escolher a versão estável mais recente, pois ela é a mais atualizada. - Faça o download do arquivo de instalação para seu sistema operacional (Windows, macOS, Linux). - Execute o arquivo de instalação. Talvez seja necessário conceder permissões ou confirmar direitos administrativos para prosseguir com a instalação. - Siga as instruções fornecidas pelo instalador do Python. O processo de instalação é normalmente simples e não exige nenhuma configuração específica. Por padrão, o Python será instalado no diretório "Program Files" (Arquivos de programas) no Windows ou "/usr/local/bin" no macOS e no Linux. - Após a conclusão da instalação, abra o prompt de comando (no Windows - "Prompt de Comando", no macOS e no Linux - "Terminal") e digite o comando "python --version" (sem aspas). Se o Python for instalado com êxito, você verá a versão do Python que selecionou durante a instalação. - Agora o Python foi instalado com êxito em seu computador e você está pronto não apenas para aprender os fundamentos da programação em Python, mas também para programar nessa linguagem poderosa e versátil! ## Plataformas gratuitas que ensinam noções básicas de Python para iniciantes: - [Codecademy](https://www.codecademy.com/): O curso de Python da Codecademy oferece uma experiência de aprendizado interativa, guiando-o pela sintaxe, tipos de dados e fluxo de controle do Python com exemplos práticos. - [Coursera](https://www.coursera.org/): O Coursera hospeda cursos de Python de universidades conceituadas, permitindo que você aprenda com instrutores especializados e participe de uma comunidade de apoio. - [edX](https://www.edx.org/learn/python): A edX oferece vários cursos de Python, incluindo os de instituições renomadas como MIT e Harvard, com opções para alunos iniciantes e avançados. - [SoloLearn](https://www.sololearn.com/learn/courses/python-introduction): O SoloLearn é um aplicativo para dispositivos móveis que oferece lições, testes e desafios de Python em pequenas quantidades, tornando o aprendizado conveniente em qualquer lugar. - [Real Python](https://realpython.com/): O site do Real Python oferece uma coleção de tutoriais e artigos gratuitos para alunos de Python, abrangendo tópicos desde conceitos básicos até técnicas avançadas. https://serverspace.com.br/about/cases/sumo-tatami-x-serverspace.md Uma história de como o uso de servidores VPS da Serverspace ajudou a realizar um ambicioso projeto de jogo Sumo Tatami em um curto período de tempo. Há uma descrição das ferramentas e da arquitetura do jogo on-line em seu… Imagine um mundo onde os lutadores de sumô não competem em dohyo tradicionais, mas sim em emocionantes corridas de arcade, cheias de obstáculos e desafios divertidos. Este é o universo criado pela equipe do projeto [Sumo Tatami](https://store.steampowered.com/app/1707170/Sumo_Tatami/). Esta startup já ganhou reconhecimento significativo dentro da comunidade de desenvolvedores e recebeu apoio considerável. Vamos mergulhar nos desafios técnicos que a equipe enfrentou e na contribuição da [Serverspace](https://serverspace.com.br/index.md) para a realização deste projeto. ## História da criação Konstantin Kondyukov, um programador com 10 anos de experiência, dedicou os últimos quatro anos ao desenvolvimento do Sumo Tatami. Tudo começou com uma paixão por startups, que cresceu e se tornou um projeto ambicioso. O jogo, baseado na ideia de combinar corridas de arcade com tradições de sumô, rapidamente capturou a atenção do público. Em Sumo Tatami, os jogadores controlam lutadores de sumô navegando por vários obstáculos em modos competitivos. Corridas, duelos, boliche e até futebol estão incluídos em uma jogabilidade emocionante. ## Por que eram necessários servidores em nuvem? Criar um jogo multiplayer exige não apenas uma abordagem criativa, mas também a solução de desafios técnicos complexos. Um dos principais problemas era garantir a operação estável do servidor, capaz de lidar com altas cargas durante os períodos de pico. Este índice reflete o número máximo de jogadores no servidor ao mesmo tempo: quanto mais jogadores, maior a carga. Sumo Tatami precisava da capacidade para vários milhares de usuários no lançamento inicial e nas etapas de teste beta. "Sumo Tatami" é um projeto internacional, portanto, todos os jogadores estão espalhados pelo mundo. Por essa razão, além dos servidores virtuais, a equipe de desenvolvimento precisava de um provedor de nuvem com uma rede de data centers geograficamente distribuída. A capacidade de implantar servidores em diferentes partes do mundo garante uma experiência de jogo para um público global amplo. ## Como eles usaram Serverspace? A velocidade de implantação da infraestrutura também é um índice importante para um projeto que requer desenvolvimento dinâmico, especialmente para um jogo online. Os criadores do jogo precisavam de uma implantação rápida de servidores virtuais, a possibilidade de escalonar para cima ou para baixo durante os testes e corrigir bugs imediatamente. Vale ressaltar que os preços e a qualidade do suporte técnico também foram critérios cruciais na escolha de um provedor de serviços em nuvem. Como uma startup, o projeto tem recursos financeiros e humanos limitados. Assim, configurar e manter a infraestrutura adiciona custos extras ao pequeno orçamento do Sumo Tatami. A equipe do projeto experimentou várias soluções em nuvem de diferentes fornecedores e, ou os preços eram muito altos, ou o suporte técnico não funcionava adequadamente. Portanto, no contexto da tecnologia de virtualização à prova de falhas e protegida e da interação do usuário com os recursos da infraestrutura, Sumo Tatami recorreu à [Serverspace](https://serverspace.com.br/index.md) em busca de uma plataforma em nuvem ideal. ## Como os servidores Serverspace foram utilizados? Para o desenvolvimento, a equipe do Sumo Tatami implantou mais de 10 [servidores Windows](https://serverspace.com.br/services/vps-server/windows.md) em nuvem usando a plataforma de virtualização hiperconvergente vStack. O [vStack](https://serverspace.com.br/services/cloud-servers.md) oferece a solução mais lucrativa para criar uma infraestrutura robusta. Além disso, o modelo de pagamento Pay-As-You-Go se adequou perfeitamente aos requisitos do projeto. No estágio inicial de desenvolvimento, os especialistas do Sumo Tatami usaram pequenas capacidades de servidor: 4 núcleos, 8 GB de RAM e 50 GB de espaço em disco rígido. O servidor principal foi colocado em um servidor VPS virtual da Serverspace na Turquia, permitindo que jogadores de diferentes regiões se conectassem ao jogo por meio de uma rede global. Para ampliar a cobertura geográfica, a equipe também implantou servidores virtuais em outras localidades: EUA, Canadá e Holanda. As cargas de pico exigiram tanto escalonamento vertical quanto horizontal para a infraestrutura do projeto. As capacidades do segmento principal foram aumentadas quase sem tempo de inatividade, com as mudanças de configuração levando apenas alguns minutos. Além disso, o uso de data centers em outros países expandiu geograficamente o alcance e reduziu a latência para os usuários. ## Alguns resultados para compartilhar? Vários parâmetros-chave influenciam a qualidade da experiência de jogo: ping, baixa latência e rápida sincronização de ações entre os jogadores. Cada um desses fatores depende diretamente do desempenho dos servidores que compõem a infraestrutura técnica. No desenvolvimento de jogos, o ping é a medida do tempo necessário para enviar e receber dados entre o cliente (dispositivo do jogador) e o servidor. O ping é medido em milissegundos (ms) e é um indicador crucial do desempenho da rede em jogos online multiplayer. Um ping baixo significa uma conexão rápida com o servidor, resultando em atrasos mínimos e uma jogabilidade mais suave. Por outro lado, um ping alto pode causar um lag significativo, impactando negativamente a experiência de jogo. O ping é importante nos seguintes aspectos: - **Tempo de resposta:** em jogos que exigem reflexos rápidos (como jogos de tiro em primeira pessoa ou jogos de luta), um ping alto pode afetar negativamente o desempenho do jogador. - **Sincronização:** um ping baixo ajuda a melhor sincronização das ações entre os jogadores, o que é especialmente importante em jogos em equipe. - **Qualidade da rede:** um ping alto pode indicar problemas com a conexão à internet ou sobrecarga do servidor, levando a quedas de conexão e outros problemas técnicos. Para reduzir o ping, recomenda-se usar conexões de internet mais estáveis e rápidas e escolher servidores localizados mais próximos da localização geográfica do público-alvo. Usar servidores VPS de alto desempenho da Serverspace em [várias localizações geográficas](https://serverspace.com.br/infrastructure/data-centers.md) permitiu à equipe atingir um ping baixo de pouco mais de 30 ms na etapa inicial de lançamento do jogo. No futuro, os especialistas planejam aumentar a capacidade de produção em outros países, o que melhorará a estabilidade da rede e a disponibilidade do jogo para usuários em todo o mundo. O termo "Baixa Latência" refere-se ao atraso mínimo entre a entrada do jogador e a resposta correspondente do jogo. A baixa latência é crucial para garantir uma jogabilidade suave e responsiva, especialmente em jogos online multiplayer e jogos que exigem reações rápidas, como jogos de tiro em primeira pessoa, jogos de luta e jogos de corrida. Aspectos importantes da baixa latência no desenvolvimento de jogos incluem: - **Input lag:** o tempo entre quando um jogador executa uma ação (por exemplo, pressionar um botão) e quando essa ação é exibida na tela. Baixo input lag é essencial para controles precisos e responsivos. - **Latência da rede:** o tempo necessário para enviar dados do cliente (dispositivo do jogador) para o servidor e vice-versa. Reduzir a latência da rede ajuda a diminuir o lag e melhorar a sincronização entre os jogadores em jogos online. - **Latência de renderização:** o tempo necessário para processar e exibir gráficos na tela. Otimizar a renderização ajuda a reduzir a latência e melhorar a qualidade da imagem. - **Latência de processamento:** o tempo gasto processando os dados do jogo (física, lógica, IA, etc.) antes de exibi-los. Algoritmos eficientes e otimização de código podem ajudar a reduzir essa latência. Para alcançar baixa latência, os desenvolvedores do Sumo Tatami empregaram vários métodos: - **Otimização do código de rede:** usando protocolos de transmissão de dados mais eficientes e reduzindo a quantidade de dados transmitidos. - **Uso de equipamentos potentes e rápidos da Serverspace:** atualizando servidores e dispositivos de jogos para garantir alto desempenho. - **Escolha de servidores próximos:** distribuindo servidores em diferentes regiões para reduzir a distância física entre o jogador e o servidor. - **Uso de tecnologias de previsão e compensação de lag:** aplicando algoritmos que preveem as ações dos jogadores e compensam possíveis atrasos. Com essas ações, a equipe conseguiu praticamente eliminar os atrasos durante os testes beta do jogo. ## O que a Serverspace pode oferecer para o desenvolvimento de jogos? Os desenvolvedores do Sumo Tatami destacaram vários benefícios significativos que ajudaram a realizar o projeto com sucesso. Primeiro, a interface amigável permitiu que a equipe configurasse e lançasse servidores rapidamente, sem a necessidade de configurações complexas exigidas por outros provedores. Isso permitiu que os programadores do Sumo Tatami configurassem os servidores por conta própria, sem a necessidade de um engenheiro DevOps separado, economizando tempo e recursos. Em segundo lugar, a alta estabilidade dos servidores da Serverspace foi evidente durante todo o período de testes. Isso é particularmente importante para jogos multiplayer, pois até mesmo breves períodos de inatividade podem arruinar a experiência do usuário. O terceiro aspecto crucial foi a economia de tempo. A implantação rápida de servidores em nuvem e a ausência de necessidade de suporte técnico constante permitiram que a equipe se concentrasse no desenvolvimento do jogo e na implementação de novas funcionalidades. Em um ambiente de startup, onde cada hora conta, essa economia de tempo acelerou significativamente o processo de implementação do projeto. Além disso, o alto desempenho dos servidores garantiu um processamento rápido de dados e uma jogabilidade suave, o que é crucial para uma experiência de usuário de qualidade. A escalabilidade rápida deu à equipe a capacidade de adaptar as capacidades dos servidores de acordo com as necessidades do projeto, o que é especialmente útil à medida que o número de usuários cresce. A qualidade do suporte técnico também desempenhou um papel importante: a assistência rápida e profissional permitiu a resolução rápida de problemas e questões. Finalmente, o modelo de preços conveniente Pay-As-You-Go permitiu o controle de custos e a gestão eficiente do orçamento, pagando apenas pelos recursos realmente utilizados. Todos esses fatores fizeram da Serverspace a escolha certa para a equipe do Sumo Tatami, ajudando-os a crescer sua startup. ## O que vem a seguir? Sumo Tatami está apenas começando sua jornada. No futuro próximo, a equipe planeja lançar testes abertos, com o lançamento completo do jogo previsto para o final do ano. No futuro, a equipe do projeto planeja atrair investimentos privados, expandir a cobertura geográfica dos servidores, melhorar a jogabilidade e escalar a infraestrutura. Sumo Tatami é um excelente exemplo de como a paixão pelo desenvolvimento e a plataforma em nuvem certa podem levar à criação de um produto único. A Serverspace tornou-se a solução ideal, permitindo que a equipe se concentrasse na parte criativa do projeto sem se preocupar com as complexidades técnicas. Ainda há muito trabalho pela frente, mas o Sumo Tatami já conquistou os corações de seus primeiros fãs e está pronto para conquistar o mundo dos jogos. E nisso, a equipe de especialistas da Serverspace está, sem dúvida, pronta para ajudá-los. https://serverspace.com.br/about/blog/como-otimizar-o-desempenho-do-banco-de-dados-melhores-praticas-e-dicas.md Otimização de Desempenho dos Bancos de Dados MySQL e PostgreSQL. Técnicas Básicas para Melhorar o Desempenho do Banco de Dados Na era da tecnologia da informação, os bancos de dados tornaram-se uma parte integral de nossas vidas diárias. Eles são a base sobre a qual a maioria das aplicações modernas, desde compras online até redes sociais, são construídas. Bancos de dados armazenam, processam e disponibilizam grandes quantidades de dados, tornando esse processo rápido e eficiente. Mas, à medida que a quantidade de informações cresce, a complexidade de processá-las também aumenta, tornando a otimização de banco de dados um desafio crucial para muitas organizações. **MySQL** e **PostgreSQL** são os sistemas de gerenciamento de banco de dados (SGBD) mais populares do mundo. O **MySQL** é um software de código aberto conhecido por sua confiabilidade, facilidade de uso e alto desempenho. O PostgreSQL é um poderoso SGBD de código aberto que oferece um conjunto avançado de recursos e capacidades para a construção de aplicações complexas. Hoje, vamos examinar as melhores práticas e dicas para otimizar seu trabalho com esses e outros bancos de dados, para que seu sistema sempre opere no máximo de suas capacidades. Para otimizar efetivamente o desempenho do banco de dados, é importante entender em profundidade como os SGBDs relacionais são estruturados. Isso permitirá avaliar melhor as necessidades do sistema e aplicar técnicas de otimização adequadas. ## Princípios e mecanismos de operação do SGBD A base de qualquer SGBD é o chamado "motor de banco de dados". Ele é responsável pelo processamento de consultas, interação com dados e armazenamento. O motor utiliza diversos algoritmos e estruturas de dados para buscar, modificar e armazenar informações de forma eficiente. - **Indexação.** Um dos principais mecanismos que aceleram o acesso aos dados. Um índice é uma estrutura de dados que permite ao SGBD encontrar rapidamente linhas em uma tabela sem precisar percorrer cada linha. - **Bufferização.** A maioria dos SGBDs usa um buffer de memória para armazenar temporariamente dados frequentemente utilizados, o que reduz o tempo de acesso. - **Otimizador de Consultas.** Esse componente analisa as consultas ao banco de dados e determina a forma mais eficiente de executá-las. - **Transações.** Os SGBDs utilizam o mecanismo de transação para garantir a integridade dos dados e fornecer meios de controle de consistência para o acesso simultâneo de vários usuários. ## A importância de otimizar o desempenho do banco de dados À medida que os volumes de dados aumentam e a complexidade das consultas cresce, o desempenho do banco de dados pode se degradar. Um SGBD não otimizado pode se tornar um gargalo no desempenho do sistema, causando atrasos e perda de produtividade. Otimizar o SGBD não só acelera os tempos de resposta das consultas, mas também pode reduzir os custos de manutenção da infraestrutura, aumentar a confiabilidade do sistema e melhorar a experiência geral do usuário. ## Otimização de desempenho interna do banco de dados Os índices aceleram significativamente a extração de dados do banco de dados. No entanto, índices redundantes podem desacelerar os processos de inserção, atualização e exclusão. É importante criar índices apenas para as colunas que participam frequentemente das condições das consultas. - **Normalização.** A normalização é o processo de organizar dados em um banco de dados de maneira a reduzir a duplicação de dados e evitar anomalias indesejadas. A normalização adequada pode melhorar o desempenho e facilitar a escalabilidade. Personalizar as configurações de memória, como tamanhos de buffer e cache, pode ter um impacto significativo no desempenho. Atenção especial deve ser dada ao buffer InnoDB e ao tamanho do cache de consultas. ## Otimização de Consultas - **Uso da explicação do plano de consulta (EXPLAIN).** Use o comando EXPLAIN para analisar como o MySQL executa uma consulta e determinar quais índices são utilizados ou ignorados. - **Otimização de joins e subconsultas.** Evite subconsultas correlacionadas sempre que possível e utilize joins. É preferível usar JOIN em vez de múltiplos joins aninhados. ## Trabalhando com banco de dados MySQL: otimização de desempenho O MySQL é um dos sistemas de gerenciamento de banco de dados mais populares e é usado em diversas aplicações. No entanto, para alcançar o máximo desempenho, é importante saber como otimizar adequadamente o [servidor MySQL](https://serverspace.com.br/services/1-click-app-marketplace/mysql.md). O MySQL fornece um profiler que ajuda a analisar o tempo de execução de diferentes etapas da consulta, o que pode ajudar a identificar gargalos. Fique de olho em métricas do servidor, como uso de CPU, RAM e disco. Ferramentas de monitoramento e otimização do MySQL, como "Performance Schema" ou "SHOW STATUS", podem ajudar a identificar problemas potenciais. ## Otimização do PostgreSQL: o caminho para um desempenho eficiente do banco de dados O PostgreSQL é um **sistema de gerenciamento** de banco de dados open source poderoso e flexível. No entanto, mesmo um SGBD tão avançado requer otimização regular para garantir alto desempenho e capacidade de resposta do banco de dados. Vamos conhecer os aspectos-chave da otimização do PostgreSQL. ## Otimização de desempenho do PostgreSQL (interna) - **Gestão de Transações.** As transações no PostgreSQL são gerenciadas usando MVCC (controle de concorrência multiversão), permitindo que várias transações sejam executadas em paralelo com segurança. No entanto, transações longas podem levar ao acúmulo de linhas "mortas", o que requer intervenção automática ou manual para limpá-las. Trabalhar com um banco de dados PostgreSQL envolve interagir com uma variedade de tipos de dados, desde dados numéricos e de string simples até especializados, como JSON, hstore ou PostGIS para dados geoespaciais. A escolha correta pode ter um impacto significativo no desempenho do banco de dados. Assim como em outros SGBDs, os índices do PostgreSQL aceleram o acesso aos dados. Atenção especial deve ser dada aos índices B-tree, bem como a índices opcionais como GiST, GIN e SP-GiST. ## Otimização de Consultas no PostgreSQL (externa) Uso do ANALYZE: Use o comando ANALYZE para obter estatísticas sobre uma tabela, permitindo que o otimizador estime corretamente o custo de uma consulta e escolha o melhor plano de execução. Otimização de JOINs e Subconsultas: Utilize LEFT JOIN apenas quando realmente necessário. Sempre que possível, substitua subconsultas correlacionadas por JOINs regulares para melhorar o desempenho do banco de dados. ## Otimização de Desempenho do PostgreSQL - Ferramentas de Monitoramento: Utilize ferramentas de monitoramento como pg_stat_statements ou PgBadger para identificar gargalos de desempenho. - Configuração do Servidor: Atenção especial deve ser dada a parâmetros de configuração como shared_buffers, work_mem e maintenance_work_mem para garantir o máximo desempenho do seu [servidor PostgreSQL](https://serverspace.com.br/services/1-click-app-marketplace/postgresql.md). ## Dicas e Melhores Práticas A otimização de banco de dados não se resume apenas à escolha da ferramenta certa ou à configuração de parâmetros. Também envolve planejamento de longo prazo, estratégia e aprendizado contínuo. Vamos agora ver algumas dicas e melhores práticas que ajudarão você a maximizar o desempenho e a segurança do seu banco de dados. ## Design do Esquema de Dados Antes de começar o desenvolvimento, é importante fazer um planejamento cuidadoso. Identifique as principais entidades, suas relações e os requisitos potenciais de escalabilidade. Sistemas mudam, e o que funciona hoje pode precisar de alterações amanhã. Desenhe esquemas de dados com crescimento e mudanças potenciais em mente. ## Testes e Monitoramento Regulares Use ferramentas como Query Profilers ou Performance Monitors para entender quais consultas ou operações são gargalos. Execute testes de carga regulares para garantir que seu sistema possa lidar com cargas de trabalho reais e identificar problemas potenciais. ## Segurança - Criptografia: Dados, especialmente os sensíveis, devem ser criptografados. Isso se aplica tanto aos dados armazenados em disco quanto aos transmitidos pela rede. - Backup de Dados: Faça backups regulares do seu banco de dados e armazene-os em um local seguro. Isso garante que você possa restaurar seus dados em caso de desastre. - Controle de Acesso: Implemente controle de acesso ao seu banco de dados. Use um modelo de acesso baseado em funções e minimize o número de contas com permissões totais. ## Treinamento e Desenvolvimento de Habilidades A tecnologia está mudando rapidamente. O treinamento contínuo e o aprendizado de novas abordagens e tecnologias garantem que você esteja sempre um passo à frente. Mesmo que prefira um SGBD específico, aprender sobre tecnologias alternativas pode oferecer novas ideias e insights sobre como melhorar seu sistema atual. ## Recomendações para Otimizar o Desempenho do Banco de Dados Trabalhar com bancos de dados não é apenas uma tarefa técnica, mas uma arte que requer conhecimento, experiência e aprendizado contínuo, desde a compreensão dos princípios dos SGBDs até recomendações específicas para otimizar sistemas populares como MySQL e PostgreSQL. ## Otimizando um Banco de Dados: Pontos Chave Para otimizar efetivamente seu banco de dados, é importante entender como seu SGBD funciona. Esse conhecimento permitirá que você personalize e ajuste adequadamente seu sistema. Projetar corretamente o esquema de dados para requisitos futuros pode prevenir muitos problemas de desempenho no futuro. A otimização regular do desempenho do banco de dados, testes e monitoramento são necessários para identificar gargalos e problemas e avaliar a eficácia das mudanças feitas. A proteção de dados deve ser uma prioridade. Isso inclui criptografia, backups e controles de acesso rigorosos. O mundo tecnológico está em constante evolução. Novas ferramentas, abordagens e técnicas surgem regularmente e é importante manter-se atualizado com as últimas novidades e práticas para manter um alto desempenho do banco de dados. A otimização de banco de dados é um processo contínuo. Requer atenção, tempo e recursos, mas investir nisso promete melhorias significativas no desempenho, confiabilidade e segurança dos seus dados. Não tenha medo de experimentar e adotar novas práticas, mas sempre faça isso de forma cuidadosa e baseada em conhecimento comprovado. ### Como melhorar o desempenho de um banco de dados? O desempenho pode ser otimizado por meio da criação adequada de índices, otimização de consultas SQL, ajuste das configurações de memória, monitoramento contínuo e revisão da estrutura do banco de dados para eliminar gargalos. ### Qual é a diferença entre otimizar o MySQL e o PostgreSQL? Embora ambos utilizem técnicas como indexação e análise de consultas, o PostgreSQL oferece recursos avançados, como MVCC e diferentes tipos de índices (GIN, GiST e SP-GiST), enquanto o MySQL exige atenção especial às configurações do InnoDB, cache e ferramentas como Performance Schema. ### Por que o comando EXPLAIN é importante? O EXPLAIN mostra como o SGBD executa uma consulta SQL, indicando quais índices são utilizados e quais etapas consomem mais recursos. Isso ajuda a identificar problemas de desempenho e otimizar consultas de forma mais eficiente. ### Com que frequência um banco de dados deve ser otimizado? A otimização deve ser um processo contínuo. É recomendável realizar monitoramento constante, analisar métricas de desempenho, revisar índices e executar testes periódicos, especialmente após o crescimento do volume de dados ou alterações na aplicação. https://serverspace.com.br/about/blog/introducao-ao-devops-principios-e-praticas-essenciais.md O que é DevOps? Princípios do DevOps. O que faz um engenheiro de DevOps e como se tornar um desenvolvedor de DevOps do zero? Instruções passo a passo para iniciantes Neste artigo, vamos explorar os fundamentos do DevOps, seus benefícios, ferramentas, e fornecer um guia para se tornar um especialista em DevOps do zero. Vamos começar! ## O que é DevOps em termos simples Para entender o que significa DevOps, é preciso considerar os termos "Development" (desenvolvimento) e "Operations" (operações). A engenharia DevOps representa uma filosofia que visa integrar os processos de desenvolvimento e operação de software. O objetivo do DevOps é otimizar e automatizar processos, reduzir o tempo de lançamento do produto no mercado (time-to-market), além de aumentar a confiabilidade e estabilidade dos sistemas de TI. ## Princípios do DevOps Os princípios do DevOps se baseiam em vários aspectos fundamentais que o destacam entre outras abordagens para desenvolvimento e operação de software: - **Colaboração e Cultura** A essência do DevOps está na colaboração entre os departamentos de desenvolvimento e operação. Em comparação com abordagens tradicionais, onde desenvolvimento e operação trabalham separadamente, o DevOps promove uma interação e comunicação mais próximas, o que, como mostra o relatório Puppet State of DevOps, acelera o processo de desenvolvimento em 20-30%. - **Integração e Entrega Contínuas (CI/CD)** Organizações que utilizam CI/CD lançam atualizações 2-3 vezes mais rápido do que aquelas que não utilizam. Isso aumenta a velocidade de entrega de novas funcionalidades e correções, o que impacta positivamente os negócios e a satisfação dos usuários. - **Automatização** A automação de processos trabalhosos permite reduzir o tempo gasto em tarefas rotineiras e diminuir a quantidade de erros. Além disso, a automação pode levar a uma redução de 25% nos custos de TI. - **Monitoramento e Feedback** A coleta e análise de dados sobre o desempenho do sistema e feedbacks dos usuários permitem que a equipe responda rapidamente a problemas e melhore o produto. Empresas que utilizam ferramentas de monitoramento detectam e corrigem problemas 2-3 vezes mais rápido. - **Infraestrutura como Código (IaC)** O IaC permite automatizar os processos de implantação e gerenciamento de infraestrutura, o que reduz a probabilidade de erros e acelera os processos. O uso de IaC pode diminuir o tempo de implantação da infraestrutura em 50-60%. Em comparação com outras abordagens, como Agile e Waterfall, o DevOps oferece uma velocidade de entrega mais rápida, melhora a qualidade do produto e aumenta a satisfação da equipe. Graças aos seus princípios, o DevOps ajuda as organizações a se adaptarem melhor às mudanças nas demandas de negócios e do mercado. ## Vantagens do DevOps - Aumento da velocidade de desenvolvimento: de acordo com o mesmo relatório do Puppet State of DevOps, as empresas que aplicam práticas de DevOps lançam código 200 vezes mais frequentemente; - Melhoria na qualidade do produto: graças à integração e entrega contínuas, o nível de erros na fase de produção é reduzido em 60%; - Melhoria na interação e colaboração: o DevOps contribui para o aumento do índice NPS (Net Promoter Score) em 50%; - Redução do tempo de inatividade: o tempo de recuperação após falhas é 24% menor em empresas que aplicam DevOps. ## Ferramentas e práticas do DevOps - Integração e entrega contínuas (CI/CD): Jenkins, Travis CI, GitLab CI/CD, Bamboo e Spinnaker; - Gerenciamento de configuração: Puppet, Chef, Ansible, Terraform e outras ferramentas; - Infraestrutura como Código (IaC): Terraform e CloudFormation; - Virtualização e conteinerização: Docker para conteinerização de aplicações e [Kubernetes](https://serverspace.com.br/services/managed-kubernetes.md) para DevOps (orquestração de containers); - Monitoramento e logging: Prometheus, Grafana, ELK Stack, Datadog e Splunk. ## Engenheiro DevOps do zero: guia passo a passo Tornar-se um profissional em engenharia DevOps requer esforço, tempo e aprendizado contínuo. Escrevemos um plano passo a passo de como se tornar um engenheiro DevOps: **Passo 1: Aprenda os fundamentos de programação e administração de sistemas** Primeiro de tudo, você precisará de habilidades básicas de programação e compreensão do que é o DevOps. A maioria dos desenvolvedores DevOps prefere linguagens como Python, Ruby ou JavaScript. De acordo com as estatísticas do GitHub, o Python ocupa o 3º lugar em popularidade entre as linguagens de programação em 2023. Recursos gratuitos para aprender Python incluem Codecademy, SoloLearn e a documentação oficial do Python. O conhecimento de Unix/Linux também é importante, pois a maioria das ferramentas de DevOps funciona nesses sistemas operacionais. De acordo com dados da Stack Overflow Developer Survey 2023, Linux/Unix é a plataforma mais popular entre os profissionais. Recursos gratuitos para aprender Linux incluem Linux Journey e Introduction to Linux da Linux Foundation. **Passo 2: Domine as ferramentas do DevOps** Compreender completamente o que faz um engenheiro DevOps e quais ferramentas ele utiliza (Git, Jenkins, Docker, Kubernetes, Ansible e Terraform) é a chave para o sucesso nesta área. Essas ferramentas permitem implementar práticas de CI/CD, gerenciamento de configuração, conteinerização e IaC. Fontes gratuitas de informações sobre DevOps incluem documentações oficiais, bem como cursos interativos na Katacoda. **Passo 3: Aprendizado de tecnologias em nuvem** As plataformas em nuvem desempenham um dos papéis mais importantes no DevOps moderno. De acordo com o relatório Flexera 2023, 92% das empresas utilizam estratégias multicloud. Fontes gratuitas de informação sobre tecnologias em nuvem incluem AWS Training and Certification, Google Cloud Training e Microsoft Learn. **Passo 4: Obtenção de certificados e diplomas em DevOps** Obter um certificado de formação como engenheiro DevOps pode aumentar a confiança do futuro empregador e demonstrar seu conhecimento na área. Segundo a ACloudGuru, os certificados mais requisitados são AWS Certified DevOps Engineer, Microsoft Certified: Azure DevOps Engineer e Google Cloud – Professional DevOps Engineer. A maioria das organizações de certificação oferece materiais de estudo gratuitos e testes práticos. **Passo 5: Aprendizado contínuo** O mundo tecnológico está em constante mudança e evolução. Portanto, o aprendizado contínuo e a atualização de suas habilidades são fundamentais para engenheiros DevOps. Mantenha-se atualizado com as últimas tendências e melhores práticas, participe de conferências e workshops, leia blogs e artigos profissionais (DevOps.com, The New Stack e DZone). Não tenha medo de começar a aprender DevOps! Todos os materiais para um mergulho de qualidade na profissão já estão ao seu alcance, basta um pouco de dedicação. https://serverspace.com.br/about/blog/como-acelerar-o-desempenho-do-seu-site-dicas-de-otimizacao-de-performance.md Considere o impacto da velocidade de carregamento do site na experiência do usuário, nas taxas de conversão e na classificação de pesquisa. Atualmente, a internet funciona em alta velocidade, e os usuários esperam resultados imediatos. Pesquisas mostram que mais da metade dos visitantes fecham uma página da web se ela demorar mais de três segundos para carregar. Isso não apenas afeta negativamente a experiência do usuário, mas também leva a rejeições e à queda na posição do site nos resultados de busca. O Google considera a velocidade de carregamento ao avaliar o ranqueamento dos sites. Portanto, a velocidade de carregamento do site desempenha um papel crucial na atração e retenção de visitantes. Neste artigo, exploraremos em detalhes o impacto da velocidade de carregamento do site na experiência do usuário, nas taxas de conversão e no ranqueamento nos motores de busca, além de discutir o que pode influenciar a velocidade de carregamento e como aumentar essa velocidade. ## Impacto da Velocidade do Site no SEO e Ranqueamento nos Motores de Busca: - Desde 2010, a velocidade de carregamento tornou-se um fator de ranqueamento para as consultas de busca no Google. Mais tarde, em 2018, o Google também incluiu a velocidade de carregamento como um dos fatores de ranqueamento para buscas em dispositivos móveis. Isso significa que sites lentos têm menos chances de obter posições elevadas nos resultados de busca; - Os motores de busca levam em consideração sinais do usuário, incluindo métricas relacionadas à velocidade de carregamento do site. Se os usuários saírem rapidamente do site após clicarem em um link nos resultados de busca, isso pode indicar baixa qualidade do conteúdo da página e impactar negativamente seu ranqueamento; - Sites móveis lentos têm menos chances de aparecer no topo dos resultados de busca, já que os motores de busca promovem ativamente a otimização móvel e priorizam a experiência do usuário em dispositivos móveis; - Carregamento rápido do site pode melhorar métricas relacionadas ao SEO, como o tempo de permanência no site, o número de páginas visualizadas e o nível de engajamento. Essas métricas influenciam a avaliação geral da qualidade do site pelos motores de busca e podem melhorar seu ranqueamento. ## Análise de Desempenho do Seu Site A velocidade de carregamento de página desempenha um papel importante na otimização do site. Existem ferramentas que podem ajudar a medir a velocidade e o desempenho do site, como Google PageSpeed Insights, GTmetrix, Pingdom e outras. Quais métricas você deve considerar? O tempo de carregamento ideal do site é de 2 a 3 segundos; após esse período, o usuário geralmente passa para o próximo site na busca. Como verificar a velocidade do site? Aqui estão algumas ferramentas que podem ajudá-lo a fazer isso. ### Google PageSpeed Insights Uma ferramenta gratuita do Google que ajuda a avaliar o desempenho e a velocidade de carregamento do site. O Google PageSpeed analisa o tempo de carregamento da página, o tempo de resposta do servidor, a otimização de imagens, o cache e outros parâmetros. A ferramenta fornece uma avaliação geral da velocidade de carregamento para dispositivos móveis e desktops, além de recomendações para melhorar o desempenho. ### GTmetrix Assim como o Google PageSpeed Insights, este serviço de velocidade de carregamento de páginas do site ou ferramenta fornece uma análise detalhada do desempenho do site. Ele avalia a velocidade de carregamento, o tempo de resposta do servidor, o tamanho da página e outros aspectos. O GTmetrix oferece recomendações para melhorar o desempenho, incluindo cache, compactação de recursos e otimização de código. ### Pingdom O serviço oferecido pela Pingdom AB permite medir o desempenho do site e monitorar sua disponibilidade. Esta ferramenta permite verificar a velocidade do site a partir de vários servidores localizados em diferentes partes do mundo. Fornece relatórios detalhados sobre o tempo de carregamento de cada elemento da página da web, como imagens, folhas de estilo CSS, scripts JavaScript e outros recursos. Mostra o tempo de resposta do servidor e o tamanho total da página. Esses dados ajudam a identificar áreas problemáticas e determinar quais componentes da página estão demorando mais para carregar. Estude cuidadosamente as recomendações fornecidas pela ferramenta de análise de desempenho. Elas podem indicar etapas para otimizar o carregamento do site. Por exemplo, implementar cache, usar uma CDN (rede de entrega de conteúdo), melhorar o código ou otimizar recursos. Avalie quais dessas recomendações podem ser aplicáveis ao seu site e comece a implementá-las. Ao interpretar os resultados, preste atenção aos seguintes parâmetros: - **Tempo de Carregamento da Página** Avalie o tempo total de carregamento do seu site. Se exceder os valores recomendados (geralmente menos de 3 segundos), isso pode indicar problemas que exigem otimização. - **Tempo de Resposta do Servidor** Este é o tempo necessário para o servidor processar uma solicitação. Se o tempo de resposta do servidor for alto, isso pode indicar problemas com a hospedagem ou a configuração do servidor. - **Tamanho da Página e Número de Solicitações** Páginas grandes e muitas solicitações podem retardar o carregamento. Preste atenção ao tamanho da página e ao número de solicitações, e tente reduzi-los comprimindo imagens, minimizando arquivos CSS e JavaScript, combinando-os em um único arquivo ou utilizando cache. - **Priorização de Tarefas** Identifique áreas problemáticas e defina prioridades. Concentre-se nos aspectos que têm maior impacto na velocidade de carregamento e desempenho. Por exemplo, se o tamanho das imagens for o principal problema, comece pela otimização delas. - **Teste e Reanálise** Após fazer alterações e otimizar o site, analise novamente seu desempenho usando as ferramentas. Isso permitirá ver o resultado das mudanças e continuar a otimização, se necessário. ## Técnicas e Dicas para Aumentar a Velocidade do Site Vamos explorar algumas técnicas eficazes e dicas para acelerar o carregamento do site. Veremos a otimização de imagens, a minimização de CSS, JavaScript e HTML, o uso de cache e CDN, além da otimização do tempo de resposta do servidor. ### Otimização de Imagens **Formato** Cada formato de imagem tem suas próprias vantagens e é adequado para tipos específicos de imagens. Por exemplo, JPEG (ou JPG) é ideal para fotos e imagens com muitos tons de cores. Ele oferece boa compressão e preserva os detalhes da imagem. PNG é o formato mais adequado para imagens com transparência ou texto. Ele mantém linhas mais nítidas e é uma boa escolha para logotipos e ícones. **Compressão** Ferramentas de compressão de imagens ajudam a reduzir o tamanho dos arquivos sem perda significativa de qualidade. Isso é feito removendo informações redundantes, como metadados desnecessários e cores ocultas, enquanto se preserva a qualidade visual da imagem. Além disso, você pode converter as imagens para o formato WebP, que reduz o tamanho dos arquivos em 26% em comparação ao PNG e em 25-34% em comparação ao JPEG. **Carregamento Adiado** O carregamento adiado de imagens permite que elas sejam carregadas apenas quando se tornam visíveis na tela do usuário. Isso é especialmente útil para páginas com muitas imagens ou longas. Existem diferentes técnicas, como: - Lazy Loading: Permite o carregamento das imagens à medida que a página é rolada. Plugins e bibliotecas, como LazyLoad ou Intersection Observer API, podem ajudar nesse processo. - Plugins de Otimização de Imagens: Existem vários plugins e extensões para plataformas de gerenciamento de conteúdo (CMS) que automaticamente aplicam o carregamento adiado de imagens ou otimizam o processo de carregamento. Por exemplo, o WP Smush para WordPress. ### Otimização do Código do Site Outra forma de otimização é a redução do tamanho dos arquivos CSS, JavaScript e HTML, eliminando comentários, espaços em branco e quebras de linha desnecessárias. Combine arquivos CSS e JavaScript em um único arquivo para reduzir o número de requisições ao servidor. Isso pode ser feito usando ferramentas de compilação, como Webpack ou Gulp. Também é recomendável colocar o código CSS no início da página e os scripts no final. Essa abordagem permite que o navegador comece a renderizar a página antes de carregar todos os scripts, o que reduz o tempo de carregamento e melhora a experiência do usuário. Evite o uso de código CSS e JS inline. Em vez disso, mantenha o código CSS e JS em arquivos externos. Isso permite que os navegadores armazenem em cache esses recursos, acelerando o carregamento da página. ### Uso de Cache e CDN Habilitar o cache no servidor permite armazenar recursos estáticos, como imagens, arquivos CSS e JavaScript, no lado do cliente. Esses recursos são carregados e armazenados em cache pelo navegador do usuário, permitindo que sejam reutilizados sem a necessidade de carregá-los do servidor a cada solicitação. Isso reduz significativamente o tempo de carregamento da página em visitas repetidas e melhora o desempenho. Use uma CDN (rede de entrega de conteúdo) para distribuir cópias de conteúdo em servidores localizados em diferentes regiões do mundo, garantindo a aceleração do site. A CDN funciona da seguinte forma: o servidor mais próximo atende às solicitações dos usuários, o que reduz o tempo de carregamento. Quando um usuário solicita um recurso de um site, ele o recebe do servidor CDN mais próximo, em vez do servidor principal. Quando os recursos são armazenados em cache no lado do cliente e distribuídos por servidores CDN, você tem a oportunidade de fornecer conteúdo com a mínima latência e garantir acesso rápido para usuários em qualquer parte do mundo. ### Minimize Redirecionamentos e Links Quebrados Evite o uso excessivo de redirecionamentos em seu site. Redirecionamentos adicionam um passo extra no carregamento da página, o que pode retardá-la. Verifique sua estrutura de URLs e codificação para garantir que estejam otimizadas e minimizadas. Sempre que possível, use links diretos e evite cadeias de redirecionamentos. Verifique regularmente seu site em busca de links quebrados e corrija-os. Links quebrados que levam a páginas inexistentes ou inacessíveis podem afetar negativamente a experiência do usuário e a velocidade de carregamento. ### Provedor de Nuvem e Servidor Ao escolher um provedor de hospedagem, preste atenção ao desempenho e à confiabilidade. Uma hospedagem bem selecionada com infraestrutura otimizada, alta largura de banda e baixa latência pode melhorar significativamente o tempo de resposta do servidor. Mantenha o software do seu servidor e seus componentes atualizados, como o servidor web (por exemplo, Apache ou Nginx), PHP ou outras linguagens de programação. Isso permite que você aproveite as últimas correções de segurança e otimizações de desempenho. ## Como Acelerar o Funcionamento do Site Agora vamos analisar como melhorar a infraestrutura de hardware para garantir o aumento da velocidade de carregamento do site. - Escolha do Provedor de Nuvem Adequado: Plataformas de hospedagem em nuvem oferecem escalabilidade e flexibilidade, permitindo que o site utilize recursos de vários servidores. Isso possibilita lidar com grandes volumes de tráfego e garantir alta disponibilidade. - [Servidor VPS:](https://serverspace.com.br/services/cloud-servers.md)Oferece um ambiente virtual isolado que simula um servidor dedicado. Ele fornece mais recursos e controle do que a hospedagem compartilhada comum. - Servidor Dedicado:Disponibiliza todos os recursos de computação de um servidor para o seu site. Ele garante alto desempenho e controle, mas pode ser mais caro e exigir mais gerenciamento. A escolha certa do tipo de hospedagem depende dos requisitos do seu site e do volume de tráfego esperado. - Otimização das Configurações do Servidor: Inclui ajustes de memória, processador, cache e outros parâmetros para garantir o rápido processamento das solicitações. - Atualização do Software do Servidor:Como o servidor web (por exemplo, Apache ou Nginx), banco de dados e linguagens de programação. As novas versões geralmente incluem melhorias de desempenho e correções de bugs. - Otimização do Banco de Dados: Para acesso rápido e processamento de dados. Use o Comando EXPLAIN em seu banco de dados para analisar e entender quais consultas estão lentas. Isso pode incluir a alteração da estrutura da consulta, a adição de índices ou a revisão do uso de tabelas e relações. - Cache de Respostas: A consultas frequentemente repetidas pode acelerar significativamente o trabalho com o banco de dados. Em vez de executar a consulta toda vez, o banco de dados pode fornecer um resultado já armazenado em cache. Isso é especialmente útil para sites dinâmicos, onde o conteúdo é gerado com frequência e pode ser o mesmo para muitos usuários. - Configuração de Índices no Banco de Dados:Permite executar eficientemente a busca de dados em tabelas. Os índices são criados nos campos indexáveis e aceleram significativamente o processo de busca. - Balanceamento de Carga e Clusterização: Permitem distribuir a carga em vários servidores, o que melhora o desempenho e garante a alta disponibilidade. Os princípios incluem: Distribuição de Tráfego entre vários servidores para equilibrar a carga e garantir alta disponibilidade. - Agrupamento de Servidores em Cluster: Para processar o tráfego e garantir a alta disponibilidade. O cluster pode incluir replicação de dados, compartilhamento de recursos e recuperação automática. - Uso de Armazenamento SSD: O uso de drives SSD rápidos e eficientes em vez de HDDs tradicionais pode melhorar significativamente o desempenho. O armazenamento SSD oferece maior velocidade de leitura e gravação de dados, acelerando o processamento de solicitações e o carregamento de conteúdo. - Infraestrutura de Rede:Hospedar o site em provedores de hospedagem com conexões de rede de alta velocidade e usar tecnologias de rede, como CDN, ajuda a garantir a rápida entrega de conteúdo para os usuários em qualquer lugar do mundo. Os sites e suas demandas estão em constante evolução, e os usuários esperam sites cada vez mais rápidos e responsivos. Portanto, é importante entender que a otimização é um processo contínuo, que deve fazer parte das práticas diárias de desenvolvimento e manutenção do site. https://serverspace.com.br/support/help/como-ativar-o-tema-escuro-no-painel-de-controle.md Como ativar o tema escuro no painel de controle Mudar para um tema mais escuro é um recurso útil encontrado no Painel de controle do servidor em nuvem do Serverspace. Se você se sentir mais confortável trabalhando com cores mais escuras ou se tiver uma hora escura do dia e não quiser forçar a vista, poderá ativar esse tema. Agora vamos detalhar como fazer isso. ## Como ativar o tema escuro no painel de controle Em primeiro lugar, precisamos ir para o painel de controle. Depois disso, clique no ícone do seu perfil no canto superior direito - ele levará ao menu, onde você poderá alterar o tema para escuro: Depois disso, seu painel de controle ficará escuro. ## Como desativar o tema escuro no painel de controle Se você quiser reverter tudo de volta ao que era antes, siga as etapas na mesma sequência. Clique no ícone do perfil e, em seguida, no botão ao lado de Dark Theme (Tema escuro). https://serverspace.com.br/support/help/autenticacao-de-dois-fatores-no-painel-de-controle-do-serverspace.md Autenticação de dois fatores no painel de controle do Serverspace A autenticação de dois fatores garantirá a segurança de sua conta. Quando esse recurso está ativado, o login em sua conta exige não apenas uma senha e um login, mas também um código exclusivo de seis dígitos obtido por meio do aplicativo em seu smartphone ## Como ativar a autenticação de dois fatores Antes disso, você precisa autorizar em seu gabinete pessoal. Após essa operação, usando o menu à esquerda, vá para Settings (Configurações), abra a guia Security (Segurança), na janela Two-Factor Authentication (Autenticação de dois fatores), clique no botão Connect (Conectar): Use o aplicativo em seu smartphone "Google Authenticator", "Authy" ou similar para escanear o código QR: Depois de inserir o código exclusivo de seis dígitos, a autenticação de dois fatores será ativada com êxito. A partir desse momento, você precisará digitar o código especial recebido em seu smartphone para fazer login na sua conta: ## Desativação da autenticação de dois fatores Recomendamos enfaticamente que você não desative a autenticação de dois fatores, pois ela é um importante mecanismo de segurança adicional que oferece forte proteção graças a um código exclusivo. Se precisar desativar a autenticação de dois fatores, você sempre poderá fazer isso na guia **Settings - Security**: https://serverspace.com.br/support/help/funcoes-de-usuario-no-serverspace.md Funções de usuário no Serverspace No painel de controle do Serverspace, os usuários podem personalizar as funções de cada participante. Há três funções no total: Owner (Proprietário), Administrator (Administrador) e Accountant (Contador). A seguir, examinaremos cada uma delas em mais detalhes. Como adicionar ou remover usuários é abordado em nossas instruções "Как добавить и удалить участника проекта в Serverspace?". ## Funções de usuário no Serverspace Há três funções para os participantes dos projetos do Serverspace. Elas são divididas de acordo com as tarefas executadas pelos participantes: - **Owner** — é atribuído automaticamente ao proprietário da conta e permite que ele o transfira para qualquer outro participante do projeto. O proprietário tem controle total sobre o painel de controle e os servidores em nuvem, podendo realizar todas as operações disponíveis nele; - **Administrator** — não pode adicionar ou remover participantes do projeto nem alterar a função do Proprietário. No entanto, essa função tem os mesmos direitos e recursos que o Proprietário em outros aspectos; - **Accountant** - em acesso apenas às informações financeiras, como as seções "Partners" (Parceiros), "Billing" (Faturamento), "Support" (Suporte) e "Legal Entity Settings" (Configurações da entidade jurídica). O contador também pode ver a lista de todos os participantes do projeto Na tabela abaixo, mostramos as principais diferenças entre as funções em um projeto. **Função** Gerenciamento da função do projeto Execução de operações Trabalho com finanças Owner + + + Administrator - + + Accountant - - + ## Lista de todos os participantes do projeto Para ver todos os participantes do projeto, vá para **"Settings" -> "Project Settings" -> "Project Participants"**: ## Como alterar as funções dos usuários e excluí-los do projeto Se quiser alterar a função de um participante ou removê-lo do projeto, clique no ícone de triângulo ao lado do usuário. Depois disso, será exibido um menu no qual você poderá selecionar a opção necessária: Se quiser alterar a função de um usuário, selecione **"Edit Access"** (Editar acesso) e, em seguida, o menu de alteração da função será aberto: https://serverspace.com.br/support/help/como-adicionar-e-remover-um-membro-do-projeto-no-serverspace.md Como adicionar e remover um membro do projeto no Serverspace? Este guia fornecerá as etapas detalhadas para gerenciar seu projeto e adicionar ou remover membros. ## Adição de um membro do projeto Para adicionar um membro a um projeto, você deve tornar seu projeto pessoal público ou criar um novo projeto público. ### Expansão de projetos pessoais Vejamos o processo de expansão de seu projeto para o público. No canto superior direito, clique no símbolo + ou clique no nome do seu projeto e o menu de seus projetos será expandido, e lá você também poderá clicar no botão **"Add the project"** (Adicionar projeto): Em seguida, marque a caixa, crie um nome e clique no botão **Create project** (Criar projeto): ### Criação de um novo projeto No canto superior direito, clique no símbolo + ou clique no nome do seu projeto e o menu de seus projetos será expandido, e lá você também poderá clicar no botão "Add the project" (Adicionar projeto): Crie um nome e clique no botão Create project (Criar projeto): ## Adição de um usuário Independentemente do método de criação de projeto que você escolher, o processo para adicionar um membro permanecerá o mesmo. Vá para Settings - Project Settings - Project Details (Configurações - Configurações do projeto - Detalhes do projeto): Há três funções disponíveis para você escolher: - **Owner **A função é atribuída por padrão ao proprietário da conta e, depois disso, ele pode atribuí-la a qualquer outro participante. Essa função dá acesso total ao painel de controle - **Administrator **O usuário dessa função não pode adicionar ou excluir participantes do projeto, nem pode influenciar a função " Owner" (adicionar, excluir, transferir, etc.). Caso contrário, essa função tem os mesmos recursos que o proprietário. - **Accountant** Essa função terá acesso apenas às guias com informações financeiras, por exemplo: "Partners" (Parceiros), "Billing" (Faturamento), "Support" (Suporte) e "Customer info" (Informações do cliente). Essa função também pode ver todos os participantes do projeto. Especifique a função do futuro participante, digite seu endereço de correspondência. Um convite para o projeto será enviado para: Quando o usuário aceitar seu convite, ele aparecerá nas configurações do projeto: ## Exclusão de um membro Para excluir um participante do projeto, vá para Settings - Project Settings (Configurações - Configurações do projeto) e clique no usuário que deseja excluir: ## Após a confirmação, o participante será removido do projeto. https://serverspace.com.br/support/help/como-criar-uma-chave-ssh.md Como criar uma chave SSH Vamos dar uma olhada em como criar uma chave SSH, para que ela é usada e para quais serviços ela é necessária. ## Para que é usada a chave SSH? O SSH (Secure Shell Protocol) é um protocolo para acesso seguro a sistemas remotos. Ele pertence aos protocolos aplicados juntamente com os seguintes: http, smtp, snmp, FTP, Telnet etc. O protocolo opera na porta 22; ao configurar o protocolo ssh, a porta pode ser alterada. Em comparação com o protocolo Telnet, o ssh transmite tráfego criptografado que é protegido por uma chave de criptografia. O protocolo usa chaves de criptografia para operar e transmitir dados de forma criptografada. Graças à criptografia, um invasor que intercepta um fluxo de dados criptografados precisará de vários anos para descriptografá-los, perdendo assim o tempo em que os dados estão atualizados, razão pela qual a criptografia assimétrica é usada. A criptografia assimétrica é o uso de duas chaves para criptografar e descriptografar dados. Uma chave SSH é uma sequência de caracteres arbitrários. Com ela, os dados são criptografados e, após a criptografia, são enviados ao nó final. Public key (Chave pública) - essa chave criptografa os dados e pode ser transferida para outra parte que precisa enviar mensagens/dados criptografados. Private key (chave privada) - essa chave descriptografa os dados e deve ser armazenada em um local seguro. É possível criptografar uma chave privada usando uma frase secreta ao criar a chave. ## Como criar uma chave SSH Você pode criar uma chave SSH por meio do painel de controle do Serverspace. Para fazer isso, vá para as configurações do usuário e, em seguida, para a guia SSH keys, conforme mostrado na captura de tela: Aqui você pode adicionar uma chave ou visualizar as existentes. Se você quiser adicionar uma chave SSH, clique no botão Add SSH key (Adicionar chave SSH) e, em seguida, um menu será aberto: No menu, você pode adicionar uma chave existente ou gerar uma nova. Para criar uma nova, especifique o nome da chave, seu formato e, em seguida, clique no botão Criar e fazer download. Depois disso, sua chave será criada com sucesso. A chave criada pode ser usada durante a configuração do servidor. Nas **Access preferences** (Preferências de acesso), selecione a opção **SSH keys** (Chaves SSH) e, em seguida, marque a caixa de seleção da chave a ser usada: https://serverspace.com.br/support/help/como-se-inscrever-no-painel-de-controle-do-serverspace.md Como se inscrever no painel de controle do Serverspace? ## Tipos de registro Para trabalhar com os serviços do Serverspace e gerenciar servidores em nuvem, é necessário criar uma conta no painel de controle my.serverspace.com.br: - via [Serverspace.com.br](https://serverspace.com.br/index.md); - por um convite de indicação. Há vários métodos que você pode usar para criar uma conta: - usando seu endereço de e-mail; - Registre-se usando serviços como o Google ou o GitHub. ## Como se inscrever ### Registrar-se pelo site No site, clique em "**Sign up**" (Registre-se) no canto superior direito ou use os botões localizados nas páginas. Na guia que se abre, você pode começar a criar uma conta especificando sua caixa de correio ou usando serviços de terceiros: Google ou GitHub. Um e-mail de confirmação será enviado para o e-mail especificado. Depois disso, você receberá uma senha para fazer login no painel de controle e na sua conta pessoal: ### Registro por convite Para se registrar por convite, você precisará de um link de convite. Você pode obtê-lo de uma pessoa já registrada no Serverspace. Depois de clicar nesse link, o registro ocorrerá da mesma forma: por e-mail ou por um serviço de terceiros. A vantagem desse registro por meio do programa de indicação é que a pessoa ou organização que o convidou receberá até 10% dos seus pagamentos. Você receberá 20% de cashback em seu primeiro pagamento. ## Configurações pessoais Após concluir o registro, é recomendável configurar uma conta. O Serverspace permite que você configure os dados pessoais e as informações do cliente em sua conta. ### Pessoal **Configurações.** Na coluna Personal (Pessoal), você pode especificar seu nome, sobrenome e idioma de exibição: __ **Segurança**. Aqui você pode ativar a autenticação de dois fatores por meio do aplicativo móvel e alterar sua senha. Recomendamos que você altere sua senha na primeira vez que fizer login na sua conta: ## Configurações do projeto Na guia SSH keys (Chaves SSH), você pode criar chaves de criptografia para o protocolo SSH: Na janela que aparece, selecione a guia Generate a new key (Gerar uma nova chave), selecione o nome e o formato da chave: A chave criada pode ser usada durante a configuração do servidor. No campo Access preferences (Preferências de acesso), selecione a opção Authentication by SSH key (Autenticação por chave SSH) e, em seguida, o nome da chave: ## Tipos de projetos Depois de se registrar e configurar sua conta, você terá acesso ao painel de controle Seus projetos. Os projetos são divididos em pessoais e gerais. Você pode adicionar outros usuários do Serverspace aos projetos compartilhados. Somente você tem acesso aos projetos pessoais. Para criar um novo projeto, vá para a guia Projects (Projetos) - Add project (Adicionar projeto): Na janela que se abre, digite o nome do novo projeto e clique no botão **Create a project** (Criar um projeto): Parabéns! Você criou um novo projeto pessoal. Para torná-lo público, clique no botão Add (Adicionar) no bloco Project members (Membros do projeto): **** Em seguida, digite o endereço de e-mail da pessoa com quem deseja compartilhar o projeto e selecione a função apropriada: https://serverspace.com.br/support/help/como-excluir-a-conta-do-serverspace.md Como excluir a conta do Serverspace? Se você decidiu encerrar sua conta na plataforma Serverspace, estamos prontos para ajudá-lo nesse processo. Nestas instruções, descrevemos em detalhes as etapas que devem ser seguidas para excluir sua conta sem complicações desnecessárias... ## Exclusão de conta Primeiro, vá para a guia **Settings** (Configurações), localizada no painel esquerdo, na parte inferior. Em seguida, **Personal user data** (Dados pessoais do usuário) - **Delete** (Excluir): https://serverspace.com.br/support/help/como-criar-um-servidor-no-painel-de-controle-do-serverspace.md Crie e gerencie rapidamente seu servidor VPS de alto desempenho com o Serverspace. Saiba como configurar recursos, escolher data centers e personalizar seu ambiente em poucos passos simples. O Serverspace oferece uma ampla gama de serviços para criar e gerenciar servidores na nuvem. [Criar um servidor VPS](https://serverspace.com.br/services/vps-server.md) de alto desempenho pode ser feito literalmente em algumas etapas simples. O VPS é um servidor dedicado virtual com acesso via tecnologia de nuvem, cujos recursos podem ser dimensionados. Uma das principais vantagens do VPS é a possibilidade de obter recursos dedicados, como CPU, RAM, espaço em disco e largura de canal, o que permite a operação mais estável de sites e aplicativos. Além disso, os servidores VPS oferecem mais liberdade na escolha do sistema operacional e do software, que podem ser instalados de acordo com os requisitos do projeto. Abaixo estão as etapas básicas para criar e gerenciar um servidor VPS que o colocará em funcionamento rapidamente. ## Registro Antes de criar um servidor e selecionar sua configuração, é necessário concluir um rápido registro. Depois de passar por essa etapa, insira os dados nos campos "Email" e "Password": ## Criação de uma máquina Após a autorização, o painel principal do site será aberto, onde você poderá selecionar a solução de nuvem apropriada. O VMware Cloud e o Vstack Cloud são soluções de nuvem fornecidas pela Serverspace. Elas são baseadas nas tecnologias de virtualização VMware e vStack, respectivamente - **VMware Cloud** — é uma solução baseada em nuvem que permite que você execute máquinas virtuais na infraestrutura do VMware vSphere. Oferece alto desempenho, confiabilidade e segurança para seu aplicativo. Você também pode dimensionar e gerenciar facilmente seus recursos por meio da interface da Web. - **vStack Cloud** — é uma solução de nuvem criada na plataforma de virtualização hiperconvergente vStack para criar e gerenciar a infraestrutura de nuvem. Isso proporciona maior flexibilidade e escalabilidade No menu à esquerda, clique na guia **Servers** (Servidores) e clique em **Create Server** (Criar servidor). Dependendo da solução de nuvem escolhida, você terá diferentes opções disponíveis no painel de criação do servidor. ## VMware cloud O painel de criação e configuração do VPS será aberto na sua frente. Antes de começar, você precisa selecionar um modelo para o servidor. **Template**— é um conjunto de definições e configurações com as quais seu servidor será criado e executado. Os sistemas operacionais de servidor mais populares disponíveis no painel Serverspace são Linux, Windows e FreeBSD. **Server Configuration** —personalizar a capacidade de seu VPS. Nessa solução de nuvem, é possível a configuração flexível dos recursos principais. Dependendo de suas necessidades, o custo total será alterado automaticamente: - número de núcleos de processador (CPU, pcs); - quantidade de RAM (RAM, Gb); - tipo e tamanho do subespaço do disco (Storage, GB, SSD/SAS); - largura do canal de comunicação (valor garantido abaixo do qual o indicador não pode cair, Mbit/s); **Data processing center (DPC)** - localização geográfica do servidor solicitado. Os data centers estão localizados em edifícios especialmente construídos que atendem a todos os requisitos necessários de segurança, energia, refrigeração, incêndio e outros. Se você escolher a solução de nuvem da VMware, os data centers mostrados na captura de tela abaixo estarão disponíveis: Descendo um pouco mais na página, você precisará preencher mais alguns campos: **** - **Backup** - A função é o processo de duplicação completa do servidor em uma determinada periodicidade. - **Authentication method** -A autenticação está disponível em duas variantes: [por SSH](https://serverspace.com.br/support/help/como-criar-uma-chave-ssh/), que é mais segura. E por login/senha padrão. **** - **Server name** - designa como seu VPS será chamado. **** - **Number of servers** - especifique o número necessário de servidores que serão criados de acordo com o modelo de parâmetro que você especificou acima. Como resultado de todas as manipulações e da configuração concluída, a calculadora do site calculará o valor necessário para pagar por um mês/dia/hora de uso e manutenção do equipamento de servidor/rede. A cobrança será feita em um modelo Pay-as-you-go, com um período de dez minutos. ## vStack cloud O procedimento para criar um servidor é o mais idêntico possível, mas há várias diferenças claras nessa solução de nuvem. Mais opções de locais de data center: Holanda, EUA, Canadá, Turquia, Brasil e, em breve, Emirados Árabes Unidos: Além da calculadora flexível, aqui você pode escolher uma configuração de servidor que atenda às suas necessidades. Por padrão, o servidor recebe um endereço IPv4, gratuitamente. No entanto, é possível conectar até 4 endereços IPv4 adicionais em uma base comercial. Outra diferença é a presença de guias como: - **Affinity Groups** - oferecem a capacidade de colocar servidores em locais diferentes ou no mesmo pool de locais, dependendo de suas necessidades. - **Applications** -um recurso que permite instalar software pronto para uso ao criar um servidor. Os aplicativos serão implantados automaticamente na máquina virtual depois de clicar no botão "**Order**": Uma seleção de softwares básicos está disponível no site, resolvendo uma ampla gama de problemas, desde o WordPress até estruturas. ## Conclusão Depois de selecionar as configurações, leva alguns minutos para criar e iniciar o servidor e, em seguida, ele está pronto para funcionar. Use dados ou software para se conectar, dependendo do método de autenticação escolhido. O Serverspace oferece uma interface fácil de usar para gerenciar o servidor. Além disso, o site tem muitas instruções e guias sobre como configurá-lo e gerenciá-lo na [base de conhecimento](https://serverspace.com.br/support/help.md). https://serverspace.com.br/support/help/como-trabalhar-com-projetos-no-serverspace.md Como trabalhar com projetos no Serverspace Após o registro, o usuário obtém acesso a uma conta na qual pode criar um número ilimitado de projetos. O que são e como gerenciá-los? ## O que são projetos? Os projetos permitem que um proprietário de conta conceda acesso total ou limitado ao seu painel a outros usuários para colaborar em recursos. Os projetos são de dois tipos: - **Personal project (Projeto pessoal)** Esse projeto é criado automaticamente após o registro da conta, e o usuário tem acesso total ao projeto. Se necessário, ele pode ser compartilhado. - **General project (Projeto geral)** Projetos desse tipo podem ser criados por um usuário para proporcionar trabalho colaborativo com outros usuários. O proprietário pode adicionar um membro do projeto e escolher uma das três funções: proprietário, administrador ou contador: - **Owner (Proprietário)** A função é atribuída por padrão ao proprietário da conta e, depois disso, ele pode atribuí-la a qualquer outro membro. Essa função dá acesso total ao painel de controle - **Administrator (Administrador)** Aqui, o usuário não pode adicionar membros do projeto e excluí-los, bem como influenciar a função "Proprietário" (owner) (adicionar, excluir, transferir etc.). - **Accountant (Contador)** Essa função só terá acesso a guias com informações financeiras, como: "Partners" (Parceiros), "Billing" (Faturamento), "Support" (Suporte) e "Legal Entity Settings" (Configurações da entidade jurídica). Essa função também pode ver todos os participantes do projeto. ## Criação de um projeto Depois de criar uma conta e/ou autorização no painel de controle, o logotipo do Serverspace e o projeto pessoal criado automaticamente serão exibidos no canto superior esquerdo. Para compartilhar um projeto, clique no nome do projeto pessoal e selecione a opção "**Add Project**" (Adicionar projeto) na lista suspensa: Em seguida, você pode converter um projeto pessoal existente em um projeto compartilhado ou pode simplesmente criar um novo projeto. Selecione um nome para o projeto, seu logotipo, se necessário, e clique em criar projeto: Depois de criar um projeto, você verá o menu de configurações do projeto. A seguir, examinaremos cada guia individualmente. ## Gerenciamento de projetos ## Project details (Detalhes do projeto) Aqui você pode alterar o nome do projeto, adicionar um novo membro ou editar o acesso a um membro existente. Você pode alterar o nome do projeto clicando nele: Para adicionar um novo membro, clique no botão "**Add**" (Adicionar) na parte inferior da página: Em seguida, você deve especificar o e-mail e a função do novo usuário: O novo participante do projeto aparecerá na lista. Para confirmar, o participante adicionado deve fazer login em seu painel de controle. Na lista de projetos, ele deve selecionar o novo projeto e confirmar sua participação. ### Gerenciamento dos participantes do projeto Para interagir com um participante do projeto, clique no tripleto à direita do participante: Por meio do mesmo menu, você pode controlar o acesso do participante. ## SSH-keys Nessa guia, você pode adicionar uma nova chave SSH ou gerenciar as existentes. Você pode adicioná-la clicando no botão "**Add SSH key**" (Adicionar chave SSH): Em seguida, será solicitado que você adicione uma chave existente ou gere uma nova: A chave aparecerá na lista e você poderá gerenciá-la: por exemplo, para excluí-la, clique no ícone da lixeira à direita do nome da chave. ## Excluir um projeto Aqui você pode excluir um projeto clicando no botão correspondente https://serverspace.com.br/support/help/como-entrar-em-contato-com-a-equipe-de-suporte-tecnico-do-serverspace.md Como entrar em contato com a equipe de suporte técnico do Serverspace? Se tiver algum problema ou dúvida ao trabalhar com a infraestrutura, você pode informar ao nosso suporte técnico. - O tempo médio para um especialista responder a um tíquete é de 15 minutos. - O tempo de resolução da solicitação é de 30 minutos. Há várias maneiras de entrar em contato com o suporte. ## Entre em contato pelo sistema de tickets no painel de controle No menu de gerenciamento de projetos, há uma seção de Suporte no canto. Ao acessá-la, uma janela para criar uma solicitação será aberta: Aqui você indica o tópico da apelação e descreve sua pergunta em detalhes. Se necessário, você pode anexar um arquivo à sua solicitação: Após criar uma solicitação, você será encaminhado para um bate-papo com um especialista, onde poderá fazer perguntas de esclarecimento e avaliar o resultado da resolução da solicitação. Depois de criar a solicitação, você também receberá uma notificação por e-mail na qual poderá acompanhar o status do tíquete: Depois de concluir o trabalho com um especialista, você pode clicar no botão** Mark as resolved** (Marcar como resolvido) e a solicitação será fechada: ## Contato por telefone Você pode entrar em contato com o suporte por telefone: [+ 55 11 5118-1047](%22tel:+) ## Contato via chat no site Antes de se registrar no site ou se não conseguir entrar no painel de controle, você pode fazer uma pergunta pelo bate-papo do site. Para fazer isso, clique no ícone Letras no canto inferior direito. Aqui você pode - anexar arquivos - ícone de clipe de papel; - indique suas informações de contato - nome, endereço de e-mail e número de telefone; - ativar/desativar o som das notificações de bate-papo. ## SLA Os indicadores de metas quantitativas e qualitativas dos serviços do Serverspace, bem como as garantias financeiras de sua conformidade, são determinados pelo [Service Level Agreement (SLA, Contrato de nível de serviço)](https://serverspace.com.br/conditions/sla.md). https://serverspace.com.br/support/help/como-alterar-a-senha-e-o-endereco-de-e-mail-da-conta-do-serverspace.md Como alterar a senha e o endereço de e-mail da conta do Serverspace? Para proteger seus servidores em nuvem, você pode alterar sua senha e seu endereço de e-mail. Ao usar sua conta no Serverspace, talvez seja necessário alterar sua senha ou atualizar seu endereço de e-mail para garantir a segurança. Neste guia, examinaremos cada uma dessas etapas em detalhes para que você possa atualizar seus dados com facilidade e segurança no painel de controle do Serverspace. ## Senha Para alterar a senha, você precisa ir para a guia **Settings - Security - Reset your Password** (Configurações - Segurança - Redefinir a senha): Em seguida, preencha novamente os campos Old password (Senha antiga), New password (Nova senha) e New password (Nova senha). Clique no botão Save changes (Salvar alterações) e faça login usando a nova senha. ## Alterar endereço de e-mail Para alterar seu endereço de e-mail no painel do Serverspace, você precisa tornar seu projeto pessoal público. Para fazer isso, clique no sinal **+** no canto superior direito do painel: Em seguida, converta seu projeto pessoal em um projeto geral: Vá para **Settings - Project Settings - Project Details** (Configurações - Configurações do projeto - Detalhes do projeto). Adicione um novo usuário clicando no botão Add (Adicionar): Digite o e-mail da sua nova conta registrada com a função - Owner (Proprietário): Verifique sua caixa de correio e aceite o convite: Na conta antiga, saia do projeto: Exclua sua conta antiga. Vá para as configurações pessoais e, em seguida, para a guia **Delete** (Excluir): Na nova conta, verifique se há apenas um proprietário com o novo correio: Você alterou o e-mail do projeto com sucesso! https://serverspace.com.br/support/help/tipos-de-notificacoes-no-painel-de-controle-do-serverspace.md Tipos de notificações no painel de controle do Serverspace Para garantir um trabalho confortável no painel de controle do Serverspace, nossa equipe usa diferentes tipos de notificações. Com a ajuda delas, você pode entender o que está acontecendo em sua conta e, o mais importante, por quê. ## Notificações para administradores Há três tipos: 1)**Notificações informativas** (cinza), como trabalho técnico: 2)**Notificações de aviso** (amarelo), como indisponibilidade do data center: 3) **Notificações "importantes"** (cor vermelha), por exemplo, algumas alterações no trabalho do serviço: ## Notificações do sistema As notificações de um brinde bem-sucedido são exibidas em verde, por exemplo, a criação bem-sucedida de um instantâneo do servidor: Avisos informativos - cor amarela, por exemplo, sobre a necessidade de preenchimento de alguns dados: As notificações de erro são mostradas em vermelho, como dados não especificados: ## Notificações do suporte técnico Você também pode receber notificações do administrador, tanto no painel de controle quanto no seu e-mail. Essas notificações podem ser notificações de aviso, como quando uma atividade ilegal foi cometida em seu servidor, ou notificações de bloqueio: Nossa equipe de marketing também pode usar notificações para se comunicar com você sobre sua experiência de interação com o painel. Seu feedback é sempre bem-vindo! Se tiver alguma dúvida sobre as notificações que recebe, entre em contato com o suporte no painel de controle. https://serverspace.com.br/support/help/como-desligar-e-ligar-o-servidor-no-painel-de-controle-do-serverspace.md Como desligar e ligar o servidor no painel de controle do Serverspace No painel de controle do Serverspace, o usuário pode gerenciar suas máquinas virtuais. Neste artigo, discutiremos como desligar e ligar servidores. ## Desativar uma máquina virtual da lista de servidores Para desativar o servidor, você precisa ir para a lista de servidores, clicar no menu de contexto do servidor desejado e, no menu suspenso, selecionar **Stop** (Parar): Depois disso, você terá a opção de desligar o servidor por meio do sistema operacional ou do desligamento: O desligamento do servidor será iniciado: O servidor será exibido como desligado: ## Desligamento do servidor por meio de seu menu Você também pode desligar o servidor por meio de seu menu. Para isso, acesse o menu **Actions**->**Power** e clique no botão **Turn off** server (Desligar servidor): Depois disso, você terá a opção de desligar o servidor por meio do sistema operacional ou do desligamento: Em seguida, será iniciado o processo de desligamento do servidor: O servidor será desligado: ## Como incluir um servidor na lista de servidores A ativação é semelhante ao processo de desativação. Para o servidor necessário, clique no ícone do menu de contexto e selecione **Start** (Iniciar): O menu de confirmação é exibido: Isso iniciará o processo de ativação do servidor: O servidor será ligado e estará pronto para funcionar: ## Como habilitar o servidor por meio de seu menu Para desligar a máquina virtual, vá para o menu **Server menu** -> **Actions** (Ações) -> **Power** (Energia): e clique em **Launch**: O processo de ativação do servidor será iniciado: O servidor será ligado: https://serverspace.com.br/support/help/como-criar-um-instantaneo-do-servidor.md Como criar um instantâneo do servidor No painel de controle do Serverspace, o usuário pode criar instantâneos do servidor e restaurar a partir deles, se necessário. ## O que é um instantâneo de servidor? Um instantâneo de servidor é o estado do sistema de arquivos e da configuração de rede do servidor salvo em um determinado momento. Os instantâneos ocupam um espaço mínimo de armazenamento e refletem a quantidade de alterações feitas desde que o estado foi salvo. O volume de um instantâneo é formado da seguinte forma: - Quando um instantâneo é criado, ele corresponde exatamente ao estado do sistema de arquivos do servidor, e é por isso que o tamanho do instantâneo imediatamente após a criação é de 0 MB. - Após alterações de dados no servidor, operações de E/S realizadas pelo sistema de arquivos e alterações na configuração da rede, os estados do sistema de arquivos atual e do instantâneo são comparados. A diferença entre os estados é o volume do instantâneo. - Quanto mais alterações ocorrerem no sistema de arquivos, maior será o tamanho do snapshot. Usando um instantâneo, é possível restaurar o estado do sistema de arquivos e a configuração da rede em um determinado momento - retornar o conteúdo de arquivos e diretórios, retornar as configurações de rede. ## Peculiaridades e limitações do trabalho com imagens - O tamanho de um instantâneo só pode ser conhecido depois que ele for criado. O tamanho do instantâneo muda com o tempo e depende das alterações que ocorreram nos dados do servidor. Imediatamente após a criação, o tamanho do instantâneo é 0. - Ao restaurar a partir de um snapshot que não seja o último, os mais recentes são excluídos automaticamente. - É possível excluir qualquer snapshot do painel de controle sem perder snapshots mais recentes ou mais antigos, e a quantidade de snapshots restantes pode mudar. - Os instantâneos levam em conta a configuração e os discos adicionais. - As interfaces de rede não são excluídas durante a restauração se não estavam presentes no momento em que o instantâneo foi criado. - As interfaces de rede excluídas serão restauradas se estiverem presentes quando o snapshot for criado. - Não é possível excluir uma rede se um servidor anteriormente conectado a essa rede tiver um instantâneo (no instantâneo, a interface está conectada à rede). - O volume do instantâneo no painel de controle é atualizado a cada 5 minutos. ## Criação de um instantâneo Para criar um instantâneo, vá para o menu do servidor desejado e depois para **Snapshots**: Depois disso, clique no botão **Add** (Adicionar) e será exibido um menu de contexto com a criação de um snapshot. Especifique seu nome e clique em **Create** (Criar): O instantâneo foi criado e será exibido na lista: ## Como restaurar um servidor a partir de um instantâneo. Para restaurar o servidor por instantâneo, acesse o menu **Server** (Servidor) -> **Snapshots** (Instantâneos) e, depois de selecionar o instantâneo desejado, clique no botão **Restore** (Restaurar): Você precisará confirmar o processo de recuperação: Isso levará algum tempo e, depois disso, o servidor será restaurado. https://serverspace.com.br/support/help/como-reinicializar-um-servidor-no-painel-de-controle-do-serverspace.md Saiba como reiniciar o servidor no painel de controle do Serverspace. A reinicialização pode ser feita de duas maneiras: pela energia e pelo sistema operacional No painel de controle do Serverspace, o usuário pode reinicializar o servidor de duas maneiras: por energia e por meio do sistema operacional. ## Como reiniciar o servidor Para reiniciar o servidor, você deve acessar o menu -> Actions -> Power (Ações -> Energia) e clicar no botão Restart (Reiniciar): Será aberto um menu de contexto, no qual será oferecida a opção de reinicializar o servidor por meio de reinicialização suave ("Soft reboot") (por meio do sistema operacional) ou de reinicializar o servidor por meio de reinicialização rígida ("Hard reboot") (fonte de alimentação): O processo de reinicialização do servidor será iniciado: Depois disso, o servidor estará pronto para funcionar! ## Maneira adicional de reinicializar o servidor Você também pode reiniciar o servidor usando o menu suspenso no menu do servidor: https://serverspace.com.br/support/help/historico-de-operacoes-no-painel-de-controle-do-serverspace.md Descubra onde ver o histórico de transações e os débitos detalhados por dia de sua conta do Serverspace. No painel de controle do Serverspace, o usuário pode acompanhar o histórico de transações de seu projeto. ## Onde posso ver o histórico de transações? Para ver o histórico de transações, você deve acessar **Finance** -> **Operations** (Finanças -> Operações): No histórico de operações, você pode ver seus créditos, adicionar bônus, cobranças mensais. ## Como posso saber as baixas detalhadas por dia? (Gastos detalhados de fundos de infraestrutura) Para ver as baixas detalhadas, você precisa clicar no ícone "documento" à direita das cobranças (**Monthly charges**): Depois disso, será aberto um menu de contexto com operações de débito detalhadas para o mês. Para obter informações detalhadas sobre o dia, você precisa expandir a lista pressionando o sinal de mais à esquerda da data desejada: https://serverspace.com.br/about/news/tecnologias-de-espaco-de-servidor-nos-eau-lancamento-do-falconcloud.md O Falconcloud.ae atende a todos os padrões de qualidade definidos pelo Serverspace e fornece o mesmo conjunto de serviços já disponíveis no painel my.falconcloud.ae. As tecnologias da Serverspace chegaram ao Oriente Médio. Nossos colegas nos Emirados Árabes Unidos anunciam o lançamento oficial do Falconcloud. Os usuários que fazem negócios na região agora podem pagar pelos serviços em dirhams usando os bancos dos Emirados Árabes. O [Falconcloud.ae](https://falconcloud.ae/) atende a todos os padrões de qualidade definidos pelo Serverspace e fornece o mesmo conjunto de serviços já disponíveis no painel my.falconcloud.ae. O provedor permite a implantação de infraestrutura de nuvem com base em hardware corporativo em diferentes locais do mundo. Os usuários também podem alugar serviços de nuvem adicionais para lidar com projetos de TI: [Aplicativos pré-instalados](https://serverspace.com.br/services/1-click-app-marketplace.md), [DNS](https://serverspace.com.br/services/dns-hosting.md), [CDN](https://serverspace.com.br/services/cdn.md), e [ferramentas de desenvolvimento](https://serverspace.com.br/services/api.md). O Oriente Médio é uma região que está passando por um forte crescimento econômico e tem um potencial significativo. As empresas que operam no mercado dos Emirados Árabes Unidos enfrentam o desafio de gerenciar, processar e armazenar com eficiência grandes quantidades de dados. Isso está fazendo com que as empresas recorram cada vez mais aos provedores de IaaS. As tecnologias de nuvem oferecem uma infraestrutura escalável e flexível que permite que as organizações personalizem seus recursos de computação de acordo com as necessidades atuais dos projetos. Isso está alimentando a expansão do mercado, pois cada vez mais empresas estão percebendo os benefícios do uso de soluções em nuvem. _"[Falconcloud.ae](https://falconcloud.ae/) é uma marca que ajudará a experiência da Serverspace a entrar no Oriente Médio. Os Emirados Árabes têm um grande número de PMEs focadas na adoção da nuvem, bem como uma grande comunidade de empreendedores globais que precisam de infraestrutura. Os Emirados Árabes Unidos também têm um ambiente de negócios favorável: concorrência moderada, boas taxas de impostos, atitude amigável com especialistas estrangeiros e uso generalizado do inglês. O desenvolvimento de um provedor local permitirá que os usuários que fazem negócios no mercado do Oriente Médio implementem a infraestrutura de nuvem em um formato que seja conveniente para eles"_ - diz Svetlana Sharapova, gerente de projetos da Serverspace. ### Mais informações sobre o Falconcloud - Site disponível em: [falconcloud.ae](http://falconcloud.ae). Idioma: inglês; - Registro e login no painel de controle: my.falconcloud.ae; - O suporte técnico pode ser contatado por meio do bate-papo ao vivo no site, na seção "Support" do painel de controle ou pelo telefone: +971 58 262 9713; - A moeda é o dirham dos Emirados Árabes Unidos; - O pagamento é aceito por cartões bancários dos Emirados Árabes Unidos. Tecnologias de espaço do servidor em diferentes países: - Emirados Árabes Unidos: [falconcloud.ae](https://falconcloud.ae/) - EUA: [serverspace.us](https://serverspace.us/) - Canadá: [serverspace.ca](http://serverspace.ca) - Holanda: [serverspace.io](http://serverspace.io) - Turquia: [serverspace.com.tr](http://serverspace.com.tr) - Brasil: [serverspace.com.br](https://serverspace.com.br/index.md) _O Serverspace é um provedor internacional de nuvem que fornece serviços para criar e trabalhar com infraestrutura virtual. Oferece implantação automática de servidores VPS com sistemas operacionais populares Linux e Windows Server, bem como com sistemas operacionais domésticos. A criação da infraestrutura é realizada de qualquer lugar do mundo em 1 minuto. Ferramentas de API aberta, CLI e Terraform estão disponíveis para integração dos serviços do cliente._ https://serverspace.com.br/about/blog/o-que-e-a-infraestrutura-de-nuvem-e-a-nuvem.md O que é a nuvem, como ela é estruturada e para que é usada. Tecnologia de nuvem no Brasil. As tecnologias de nuvem permitem o desenvolvimento de sistemas de TI complexos, o armazenamento de grandes quantidades de dados e a realização de operações de computação complexas. Hoje, Svetlana Sharapova, gerente de projetos da [Serverspace](https://serverspace.com.br/index.md), dirá a você o que é a nuvem e qual o papel que ela desempenha nos negócios modernos. Nos últimos dez anos, as tecnologias de nuvem se tornaram parte dos negócios modernos, influenciando o trabalho de empresas de vários tamanhos. Essas tecnologias transformaram as abordagens tradicionais dos processos de negócios. Agora, elas possibilitam o desenvolvimento de sistemas de TI complexos, o armazenamento de grandes quantidades de dados e a realização de operações complexas de computação. Atualmente, a infraestrutura de TI de uma empresa pode consistir em servidores físicos e/ou virtuais, software de aplicativos, bancos de dados, ferramentas para monitoramento em tempo real dos processos de produção, e-mail e outros componentes necessários para o funcionamento do sistema corporativo. Todos esses elementos podem ser hospedados na infraestrutura de nuvem. O que é infraestrutura em nuvem? A infraestrutura em nuvem é um conjunto de recursos de hardware e software fornecidos em um modelo de serviço pela Internet. Ela inclui servidores virtuais, dispositivos de rede, armazenamento e outros componentes que são hospedados em data centers em todo o mundo. Os usuários podem usar esses recursos para executar aplicativos, manipular conjuntos de dados, realizar cálculos e muito mais sem precisar comprar e manter hardware físico. Um [servidor em nuvem (VPS)](https://serverspace.com.br/services/cloud-servers.md) é um servidor emulador que é executado em cima de um servidor físico. Ele oferece funcionalidade semelhante à dos servidores físicos, mas com mais flexibilidade e escalabilidade. Em termos simples, um servidor em nuvem é um espaço na Internet para trabalhar, onde você pode fazer tudo o que faz em seu computador normal. Por exemplo, trabalhar com arquivos, instalar programas e executar processos de computação. Os servidores permitem que você faça essas coisas com recursos mais avançados. Os [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) podem ser alugados de provedores de nuvem. Eles possuem recursos de computação ("hardware") localizados em data centers certificados e a equipe necessária para auxiliar e configurar a infraestrutura do usuário, mantê-la e resolver problemas técnicos. Diferentemente dos servidores tradicionais, que estão fisicamente localizados em um escritório ou em um local especialmente equipado, os servidores em nuvem estão localizados em data centers de propriedade do provedor de nuvem ou em racks alugados por ele. Para deixar claro como a infraestrutura de nuvem funciona, podemos dar um exemplo comum, mas ilustrativo, com o compartilhamento de carros. Temos uma tarefa para ir de casa para o trabalho. Há várias maneiras de resolver esse problema: - **Seu próprio carro.** Ele precisa ser comprado, mantido, ter seguro, etc. Se traduzirmos isso para uma pergunta sobre servidores, esse é o caso quando um usuário não aluga espaço de um provedor, mas compra seu próprio servidor físico, configura-o, faz a manutenção etc. - **Compartilhamento de carros.** Aqui você não precisa comprar um carro, mas precisa dirigir, dirigir você mesmo, etc. Ao transferir para a nuvem, o usuário aluga a capacidade do servidor do provedor, mas ele mesmo realiza toda a configuração dos sistemas e assume o gerenciamento. - **Táxi.** Você entra no carro e pega uma carona. Aqui também, o usuário só dá uma tarefa técnica ao provedor, e o provedor já fornece capacidade, dá suporte a todos os processos de TI e fornece suporte técnico de sistemas para o usuário. Como os servidores em nuvem são organizados? Os servidores em nuvem operam com base na tecnologia de virtualização, que permite que um servidor físico seja dividido em várias máquinas virtuais isoladas. Cada uma dessas máquinas atua como um servidor independente graças a um hipervisor - software especializado que coordena o trabalho das máquinas virtuais e seu acesso aos recursos do servidor principal. Ou seja, fisicamente há um servidor que pertence ao provedor de nuvem. Ele é dividido em várias máquinas virtuais (VMs). Embora as VMs compartilhem recursos comuns, elas são completamente isoladas umas das outras e não sabem nada sobre seus "vizinhos". [https://serverspace.com.br/wp-content/uploads/2024/05/vms.svg](https://serverspace.com.br/wp-content/uploads/2024/05/vms.svg) Os usuários podem controlar seus servidores virtuais pela Internet usando interfaces de gerenciamento. O [Serverspace](https://serverspace.com.br/index.md), por exemplo, tem um painel de administração separado que pode ser acessado pela Internet. Isso dá a liberdade de iniciar, parar, configurar e monitorar a infraestrutura de qualquer lugar do mundo. Os [servidores em nuvem](https://serverspace.com.br/services/cloud-servers.md) podem dar suporte a todos os processos de negócios de uma organização, fornecendo uma infraestrutura de TI empresarial completa. Diferenças entre um servidor físico e um servidor em nuvem A compra e a implementação do seu próprio servidor físico dão ao usuário controle total sobre a infraestrutura, mas isso implica a necessidade de verificá-la e atualizá-la constantemente. Com o tempo, o hardware está sujeito a desgaste e exige manutenção regular, incluindo a substituição de componentes como discos rígidos e o ajuste de links entre diferentes processos empresariais. Além disso, à medida que as necessidades de computação aumentam, é necessário expandir e atualizar os equipamentos, o que acarreta custos adicionais para a compra, instalação e integração de novos equipamentos à infraestrutura existente, bem como sua manutenção subsequente. Essas tarefas exigem pessoal qualificado. Ao alugar [servidores VPS](https://serverspace.com.br/services/cloud-servers.md), toda a responsabilidade pela manutenção e atualização da infraestrutura recai sobre os ombros do provedor de nuvem. As tecnologias de nuvem permitem que empresas e usuários individuais reduzam o custo de aquisição e manutenção de seus próprios servidores, ao mesmo tempo em que oferecem flexibilidade e escalabilidade de recursos. Quais são as vantagens da nuvem? Os servidores em nuvem garantem um alto nível de confiabilidade e disponibilidade de dados e aplicativos. Para isso, os provedores de nuvem trabalham de acordo com o SLA - acordo de nível de serviço, que define metas quantitativas e qualitativas para os serviços do provedor, bem como garantias financeiras de seu cumprimento ([SLA Serverspace](https://serverspace.com.br/conditions/sla.md)). Ao utilizar recursos distribuídos e implementar sistemas redundantes, os usuários podem ter certeza de que seus dados estarão seguros mesmo em caso de falhas ou desastres. A escalabilidade é outra vantagem importante dos servidores em nuvem. Os recursos podem ser facilmente ampliados ou reduzidos de acordo com os requisitos comerciais atuais. Isso proporciona flexibilidade sem a necessidade de intervenção na infraestrutura física ou investimento de capital inicial em hardware. Conveniência. Os usuários podem acessar seus dados e gerenciar aplicativos de qualquer lugar do mundo com uma conexão à Internet usando dispositivos portáteis, dando suporte à mobilidade e ao trabalho distribuído. A relação custo-benefício das soluções em nuvem as torna acessíveis a uma ampla gama de usuários. O modelo de pagamento por uso permite que empresas e usuários individuais otimizem seus custos pagando apenas pelos recursos que utilizam. Isso elimina a necessidade de investir em hardware e manutenção caros, reduzindo os custos gerais da infraestrutura de TI. Também vale a pena observar que os recursos de nuvem têm uma desvantagem, que é a dependência da Internet: o acesso aos serviços de nuvem requer uma conexão estável. É seguro? Para um provedor de nuvem, manter a segurança dos dados do usuário é um aspecto fundamental. Isso inclui uma série de medidas destinadas a proteger os dados, os aplicativos e a infraestrutura hospedados na nuvem. Os provedores de nuvem colocam seus equipamentos nos data centers mais avançados e seguros, certificados de acordo com os padrões internacionais. No Brasil, por exemplo, a LGPD é a garantia de proteção de dados. Para as empresas brasileiras, a conformidade com essa lei é um fator essencial na escolha de um provedor para hospedar seu sistema de TI. O equipamento no qual os servidores em nuvem se baseiam é protegido contra tempo de inatividade e falhas, com um sistema de backup automático. Тambém vale a pena observar que os provedores de nuvem têm uma ampla gama de especialistas em segurança cuja tarefa é monitorar todos os sistemas em busca de vulnerabilidades. Isso significa que um [servidor em nuvem](https://serverspace.com.br/services/cloud-servers.md) é muitas vezes mais seguro do que um servidor físico, porque muitas vezes as empresas que usam um servidor físico não têm um "hardware" de backup em caso de falha do principal. A nuvem na TI mudou a forma como os dados são armazenados, processados e os recursos de computação são fornecidos. Ela não apenas tornou as operações comerciais mais eficientes e dimensionáveis, mas também ofereceu novas oportunidades de inovação e desenvolvimento. Entretanto, apesar de todos os benefícios, também é importante considerar os possíveis riscos associados à segurança e à privacidade dos dados. No futuro, a tecnologia de nuvem continuará a evoluir, oferecendo soluções ainda mais inovadoras que moldaram o cenário digital. Os avanços na tecnologia de nuvem estão aumentando, e as empresas que desejam permanecer competitivas devem examinar cuidadosamente o mercado e escolher o provedor de nuvem que melhor atenda às suas necessidades e objetivos. https://serverspace.com.br/support/help/como-ativar-um-codigo-promocional.md Como ativar um código promocional? Os códigos promocionais do Serverspace permitem que você use os serviços de nuvem do Serverspace em condições favoráveis. Você pode ativá-los no painel de controle. ## Como faço para ativar um código promocional do Serverspace? Para ativar um código promocional, acesse o painel de controle do Serverspace ou registre-se do zero. Depois disso, abra a seção **Refill balance** (Saldo de recarga) e clique na guia **Promo Code** (Código promocional): Digite o código promocional recebido no campo de entrada e clique no botão **Activate Promo Code** (Ativar código promocional): Em caso de ativação bem-sucedida do código promocional, você verá a linha "Promo code successfully activated" (Código promocional ativado com sucesso) e os termos da promoção. Se o código promocional não tiver sido verificado, você verá uma linha com informações destacadas em vermelho sobre o motivo da rejeição. Exemplos de motivos: - Nenhum código promocional ativo foi encontrado com essa chave. - Você já inseriu um código promocional. Para inserir o próximo código promocional, cumpra as condições do código anterior. - Esse código promocional só pode ser ativado no primeiro projeto. ## O que devo fazer se houver um erro ao ativar um código promocional? Verifique se: - seu projeto está em conformidade com os termos do código promocional; - o período promocional não expirou; - a maioria das promoções é para novos usuários registrados pela primeira vez. ## Onde você pode encontrar os códigos promocionais do Serverspace? - Em portais na Internet; - no boletim informativo do Serverspace; - nas notícias do Serverspace no site; - nas páginas promocionais durante o período promocional. https://serverspace.com.br/support/help/metodos-de-pagamento-para-os-servicos-de-nuvem-do-serverspace.md Métodos de pagamento para os serviços de nuvem do Serverspace Para pagar pelos serviços de nuvem do Serverspace, você precisa ir ao painel de controle e reabastecer seu saldo de uma das formas disponíveis. No artigo, analisaremos quais métodos de pagamento e formatos de trabalho com fundos você pode usar. Você pode ler os termos e condições em nosso [contrato de nível de serviço (SLA)](https://serverspace.com.br/conditions/sla.md). Para pagar pelos serviços de nuvem, acesse o painel de controle do Serverspace: os botões para registro e login estão localizados no canto superior direito do Serverspace.us. Depois de entrar no painel, clique em "**Refill balance**", o botão também está no canto superior direito. ## Por cartão bancário Você pode usar cartões bancários para recarregar seu saldo. O valor mínimo de reabastecimento é de 25 reais. Para pagar com cartão bancário, você precisa inserir os dados necessários e clicar em pagar agora: ## Ativação do código promocional Periodicamente, o Serverspace realiza promoções ou fornece códigos promocionais, que podem ser encontrados em vários sites na Internet. Se tiver recebido um código promocional e quiser ativá-lo, vá para o painel de controle na seção **Refill balance** - **Promo code: ** https://serverspace.com.br/about/news/serverspace-no-brasil.md A Serverspace, um provedor internacional de serviços em nuvem, continua sua expansão e lança sua primeira representação na América Latina, no Brasil. A Serverspace, um provedor internacional de serviços em nuvem, continua sua expansão e lança sua primeira representação na América Latina, no Brasil. O [Serverspace.com.br](https://serverspace.com.br/index.md) em português e um painel de controle com aceitação de pagamento em reais estão agora disponíveis para os usuários locais. O provedor de nuvem Serverspace continua seguindo sua estratégia de expansão, fornecendo serviços nos mercados locais dos países onde opera. Assim, os usuários podem trabalhar com infraestrutura virtual em um formato conveniente para eles com pagamento por cartões de bancos locais. Para os usuários brasileiros, os recursos incluem: - um site em português, [Serverspace.com.br](https://serverspace.com.br/index.md); - um painel de controle com uma função de pagamento em reais; - suporte gratuito de especialistas técnicos do Serverspace. _"Como uma das 10 maiores economias do mundo em termos de PIB, o Brasil é um mercado estrategicamente importante. Muitos setores, como finanças, logística e TI, estão demonstrando um interesse cada vez maior na inovação da nuvem, alimentando a demanda por soluções. Isso torna o mercado brasileiro um mercado-chave para nossa estratégia de desenvolvimento, que visa oferecer aos usuários locais as condições ideais para o uso de serviços em nuvem. Além disso, um aspecto importante do nosso trabalho será a conformidade com a legislação de proteção de dados da LGPD, garantindo a segurança das informações dos usuários"_, diz Svetlana Sharapova, gerente de projetos da Serverspace. Com a abertura de um escritório no Brasil, a Serverspace pretende continuar sua expansão. Seu principal objetivo é oferecer a um número ainda maior de usuários acesso aos seus serviços de nuvem em um formato o mais adaptado possível às necessidades dos mercados de diferentes países. A empresa também planeja lançar um novo escritório nos Emirados Árabes Unidos antes do final deste ano, enfatizando o compromisso da Serverspace em expandir sua influência e fortalecer sua posição na tecnologia de nuvem. **Informações detalhadas sobre a representação da Serverspace no Brasil:** - Site adaptado disponível em: [serverspace.com.br](https://serverspace.com.br/index.md). Idioma: português; - Registro e login no painel de controle: [my.serverspace.com.br](https://my.serverspace.com.br/); - O suporte técnico pode ser contatado via chat no site, na seção "Support" no painel de controle ou pelo telefone: + 55 11 5118-1047; - A moeda é o real brasileiro; - O pagamento é aceito por cartões bancários brasileiros; - Data center em São Paulo, Equinix SP3. ### Data Center in Brazil No final de 2023, a Serverspace conectou equipamentos no data center [Equinix SP3](https://serverspace.com.br/infrastructure/data-center-sao-paulo.md) em São Paulo, Brasil. Data center é um dos data centers mais avançados tecnologicamente e é propriedade da Equinix, uma empresa internacional. O SP3 hospedou poderosos servidores vStack SL201-25RE, equipados com processadores de última geração Intel Xeon Gold 6226R de 2,70 GHz e 16 núcleos com arquitetura Cascade Lake. Você pode usar qualquer painel de controle do Serverspace para criar um servidor em São Paulo. Para fazer isso: - vá para o [painel de controle do Serverspace.com.br](https://my.serverspace.com.br/); - comece a criar um servidor em nuvem; - selecione um data center no Brasil, bem como os recursos necessários para seu servidor; - clique no botão "Create". O servidor será criado automaticamente. Lista de escritórios de representação da empresa em diferentes países: - Brasil: [Serverspace.com.br](https://serverspace.com.br/index.md) - EUA: [Serverspace.us](https://serverspace.us/) - Canadá: [Serverspace.ca](https://serverspace.ca/) - Holanda: [Serverspace.io](https://serverspace.io/) - Turquia: [Serverspace.com.tr](https://serverspace.com.tr/) - Cazaquistão: [Serverspace.kz](https://serverspace.kz/) _O **[Serverspace](https://serverspace.com.br/index.md)** é um provedor internacional de nuvem que fornece serviços para criar e trabalhar com infraestrutura virtual. Ele oferece implementação automática de servidores VPS com os populares sistemas operacionais Linux e Windows Server. A criação da infraestrutura é realizada de qualquer lugar do mundo em um minuto. Ferramentas de API aberta, CLI e Terraform estão disponíveis para integração dos serviços do cliente._ https://serverspace.com.br/about/news/o-serverspace-adiciona-o-novo-sistema-operacional-rocky-linux.md O provedor internacional de nuvem Serverspace expande o conjunto de modelos apresentados no painel de controle. Agora todos os usuários podem implementar servidores virtuais com a versão mais recente do Rocky Linux 9.3. O provedor internacional de nuvem Serverspace expande o conjunto de modelos apresentados no painel de controle. Agora todos os usuários podem implementar servidores virtuais com a versão mais recente do Rocky Linux 9.3. O recurso está disponível para servidores em nuvem baseados na plataforma de virtualização hiperconvergente vStack. ### Recursos do Rocky Linux: O Rocky Linux é uma distribuição Linux criada como substituta do CentOS depois que o suporte ao CentOS Linux foi descontinuado em favor do CentOS Stream. Nesse sentido, o Rocky Linux, juntamente com o AlmaLinux, tornou-se a melhor opção para aqueles que dependiam do CentOS. O Rocky Linux é um sistema operacional empresarial e é ideal para tarefas comerciais. Principais recursos do sistema operacional: - O sistema operacional garante compatibilidade total ao nível binário com o Red Hat Enterprise Linux. Isso permite que os usuários portem e executem sem problemas aplicativos desenvolvidos para o RHEL. - O sistema operacional utiliza o SELinux (Security-Enhanced Linux) para facilitar o controle de acesso e um alto nível de segurança. - A distribuição inclui o Dandified YUM, um gerenciador de pacotes de última geração. Ele oferece um desempenho mais poderoso e recursos aprimorados em comparação com o YUM introduzido nas versões anteriores do CentOS. - O Rocky Linux oferece suporte a uma variedade de sistemas de arquivos para otimizar o armazenamento, dependendo dos requisitos individuais, incluindo XFS, Ext4 e Btrfs. - O sistema operacional usa o sistema de gerenciamento de inicialização Systemd. Ele oferece inicialização rápida e administração conveniente dos serviços por meio de um único ponto de controle. - É fornecido com as ferramentas Tuned e cgroups para monitoramento e otimização do desempenho. Essas ferramentas facilitam a personalização do sistema para diferentes cargas de trabalho. - Oferece suporte ao Docker e ao Kubernetes, permitindo que você desenvolva e implemente aplicativos em contêineres. - O Rocky Linux oferece compatibilidade com diferentes arquiteturas, como x86_64 e ARM64. Isso torna o sistema operacional adequado para uma ampla variedade de hardware, de computadores pessoais a servidores e infraestruturas de nuvem. - O sistema operacional oferece operação estável com atualizações regulares e um ciclo de vida de suporte de 10 anos. ### Como implementar um servidor virtual baseado no Rocky Linux? - Se você ainda não é usuário do Serverspace, precisa se [registrar](https://auth.serverspace.com.br/register) no site; - Em seguida, vá para a seção vStack Cloud no painel de controle e clique na guia "Servers"; - Selecione a distribuição Rocky Linux 9.3; - Defina as configurações apropriadas de VPS: CPU, RAM e largura de canal; - Implante o servidor em nuvem usando o botão "Create". O sistema operacional será instalado automaticamente com a criação do servidor virtual. https://serverspace.com.br/support/help/how-to-work-with-mysql-strings.md Explore o mundo das funções de cadeia de caracteres no MySQL com nosso guia de referência definitivo. Encontre tudo o que você precisa saber sobre como lidar com strings. Concat SQL. Concatenar em SQL. Para operar com cadeias de caracteres no MySQL dentro do contexto de uma tabela existente contendo informações, você pode usar consultas SQL que permitem executar várias operações em campos de texto. Vamos ver alguns exemplos das operações mais comuns realizadas em dados de texto no MySQL. Por exemplo, temos uma tabela chamada **client** que contém uma coluna chamada **first_name** e ** last_name**, onde são armazenados os nomes dos clientes. Consideramos diferentes funções e métodos para trabalhar com strings! ## Pesquisa de dados por condições Esse ponto é muito útil no sistema moderno, que exige a recuperação de dados por solicitação no aplicativo móvel, no servidor da Web ou no sistema de informações para verificar dados críticos. Mas há um problema: podemos saber a exclusividade** id** da linha na tabela para chamar os dados, mas e se soubermos apenas os dados em uma coluna? No início, temos um conjunto de dados: ```sql CREATE DATABASE test; USE test; CREATE TABLE client (id INT, first_name VARCHAR(255), last_name VARCHAR(255)); INSERT INTO client (id, first_name, last_name) VALUES (0, "Alex", "Kors"), (1, "Kork", "Ghottem"), (2, "Jorj","Fotten"), (3, "Ford", "Bold"); SELECT * FROM client; ``` Screenshot №1 - First data Podemos usar o contexto no operador de coluna. ```sql SELECT * FROM client WHERE first_name= Jorj'; ``` Screenshot №2 - WHERE operator Esse comando exibirá na tela todas as colunas do cliente da tabela em que o nome completo for igual a **John**. É um comando útil comumente usado para o mecanismo de pesquisa no aplicativo, nos serviços e no sistema. ## Concatenar dados Essa função será útil para o sistema de informações, pois ajuda a preencher campos para registro de usuários, formatar dados antes de enviá-los da coluna de diferença e outras coisas importantes. Dê uma olhada no exemplo de uso. Precisamos concatenar o nome e o sobrenome do usuário para obter o nome completo: ```sql SELECT CONCAT(first_name, ', ', last_name) AS full_name FROM client; ``` Screenshot №3 - Concatenação Esse comando dará como resultado a concatenação de dados em full_name, se essa coluna não existir, portanto, eles serão criados na tabela atual. Ao indicar o sinal na consulta, não precisamos escrevê-lo toda vez que quisermos indicar uma nova coluna. **Destaque!** Você pode notar que indicamos os operadores em letras MAIÚSCULAS, mas também podemos usar outras maiúsculas e minúsculas, mas o nome do banco de dados, a coluna e outros objetos diferenciam maiúsculas de minúsculas! Por exemplo, podemos escrever **Select**, mas não podemos escrever Online_Store em vez do valor original online_store! ## Selecionar substring Há situações em que precisamos selecionar parte do valor do texto e mostrar os dados no aplicativo de forma mais curta ou, devido a limitações em outro sistema, queremos ajustá-los aos parâmetros. Para isso, podemos imaginar o caso em que precisamos obter a primeira letra do nome de nossos clientes. Usaremos a função SUBSTRING quando precisarmos indicar a coluna na tabela, o primeiro número do sinal e a quantidade de letras: ```sql SELECT SUBSTRING(first_name,1,1) FROM client; ``` Não se esqueça do ponto e vírgula no final da consulta! Vamos verificar o resultado desse comando: Screenshot №4 - Substring Também podemos adicionar o operador AS e obter o resultado na tabela conforme descrito acima! ```sql SELECT SUBSTRING(first_name,1,1) AS first_letter FROM client; ``` Que você pode usar para aplicação, uso mais adequado em contextos diferentes! ## UPPER & LOWER Essa função será útil para fins de formatação dos dados de entrada do cliente, pois o motivo precisa ser unificado. Portanto, a função UPPER torna a letra maiúscula e a LOWER, nas sequências lógicas, minúscula: ```sql SELECT UPPER (first_name) FROM client; ``` Screenshot №5 - Upper E minúsculas, portanto: ```sql SELECT LOWER (first_name) FROM client; ``` E a última função comumente usada será REPLACE! ## Replace Essa função ajudará a alterar os dados por qualquer motivo que você tenha. A sintaxe é simples: no primeiro atributo da função, você indica a coluna, o texto de referência e o texto de destino: REPLACE (fist_name,'reference_text','target_text'); ```sql SELECT REPLACE(first_name,'Jorj','Huston') FROM client; ``` Screenshot №6 - Replace Consideramos a função principal da cadeia de caracteres e seus valores, e tudo isso pode ajudar em diferentes casos e situações! ## Conclusão Compreender e utilizar essas funções de string aumenta a versatilidade do MySQL no manuseio de dados de texto. Seja para pesquisa, concatenação, extração de substring, conversão de maiúsculas e minúsculas ou substituição de dados, essas operações permitem que os desenvolvedores e administradores de bancos de dados gerenciem e manipulem com eficiência as informações textuais em seus bancos de dados. https://serverspace.com.br/support/help/undo-options-in-git.md Opções de desfazer no Git. Git - sistema de gerenciamento de versões incrivelmente potente, repleto de recursos projetados para gerenciar códigos e projetos. Sua característica mais valiosa é, sem dúvida, a capacidade de reverter as modificações. As operações de desfazer… ## Opções de desfazer no Git Git - sistema de gerenciamento de versões incrivelmente potente, repleto de recursos projetados para gerenciar códigos e projetos. Sua característica mais valiosa é, sem dúvida, a capacidade de reverter modificações. Este documento aborda os procedimentos cruciais de reversão, incluindo "git restore", "git reset", "git revert" e "git checkout". ## Uso do git checkout O uso desse comando oferece uma maneira simples e eficaz de descartar alterações. Isso permite reverter a versão anterior dos arquivos no catálogo de trabalho ativo. Esse comando tem a capacidade de reverter modificações em um arquivo que não foi indexado até o momento. Para fazer isso, basta inserir: ```bash git checkout myfile.txt ``` ## Uso do git reset O próximo exemplo, embora um pouco mais complexo, fornece uma série de opções para reverter as modificações. Ele tem a capacidade de reverter as modificações no índice e também pode até mesmo modificar o HEAD. As três principais operações realizadas. Ele direciona para o commit preciso indicado no comando, enquanto mantém as modificações no catálogo operacional e de índice: ```bash git reset --soft ``` Reverte para o commit selecionado, apagando as modificações do índice, mas mantendo-as no catálogo de trabalho: ```bash git reset --mixed ``` Reverte totalmente todas as alterações, traz você de volta para o commit mencionado, apagando todas as modificações no índice e nos catálogos de trabalho: ```bash git reset --hard ``` Esta é uma ilustração prática: ```bash git reset --hard HEAD~1 ``` Esse exemplo reverterá o "HEAD" e apresentará um commit da ramificação, descartando todas as modificações. ## Uso do git Restore O comando "Git Restore" normalmente serve para desfazer alterações em arquivos ou estágios de volta ao estado em que se encontravam em um commit específico. Isso se torna essencial quando você faz modificações que posteriormente escolhe para desfazer. A sintaxe básica desse comando é: ```bash git restore ``` Nesse contexto, "arquivo" deve ser substituído pelo nome do arquivo que você deseja reverter para o estado mais recente do commit. Além disso, a restauração do Git também pode ser usada para arquivos sem estágio. Isso pode ser bastante útil se você tiver preparado prematuramente um arquivo e depois decidir não fazer o commit dele. A sintaxe para essa operação é: ```bash git restore --staged ``` Nesse comando, "file" (arquivo) representa o nome do arquivo que você pretende remover da etapa. O Git restore também tem a capacidade de restaurar um arquivo para sua condição em um commit específico, o que é benéfico quando você deseja restaurar um arquivo para uma determinada versão. A estrutura de comando para isso é a seguinte: ```bash git restore --source= ``` Nesse caso, "commit" refere-se ao hash exato do commit que você deseja usar como base para restaurar o arquivo, enquanto "file" significa o nome do arquivo. ## Anular todas as modificações Se você decidir reverter todas as modificações locais em seu diretório de trabalho, poderá executar o comando subsequente: ```bash git restore -- . ``` Isso restaurará todos os arquivos no diretório atual ao seu status no commit mais recente. ## Reverter Se você enviou suas modificações para o repositório compartilhado e deseja desfazê-las, deve usar o comando git revert. Esse comando cria um novo commit que reverte as modificações do commit escolhido. Veja a seguir um exemplo de uso do git revert: ```bash git revert HEAD ``` Essa ação gerará um novo commit que reverterá todas as modificações feitas nos commits anteriores. As operações de desfazer devem ser gerenciadas com cautela, principalmente em ambientes com vários usuários. Normalmente, é aconselhável não desfazer os commits que já foram enviados para o repositório compartilhado, a menos que haja uma grande necessidade de fazê-lo Em resumo, examinamos as operações fundamentais de desfazer no Git. Essas ferramentas poderosas oferecem flexibilidade e controle significativos sobre o histórico de alterações, mas devem ser usadas com critério. https://serverspace.com.br/support/help/how-to-connect-the-swift-object-storage-with-cli-on-oracle.md Aprenda o processo passo a passo de conexão com o SWIFT Object Storage na Oracle usando a interface de linha de comando (CLI). No atual ambiente de negócios em ritmo acelerado, as empresas enfrentam constantemente novos desafios e tarefas que exigem soluções inovadoras. No entanto, esses problemas geralmente surgem devido à falta de recursos especializados, restrições de tempo ou gerenciamento inadequado por parte dos tomadores de decisão. Como resultado, as organizações podem acabar com soluções inadequadas ou sistemas que não atendem às suas necessidades. Nesse contexto, a nebulosidade pode levar a mais complicações e impedir o sucesso dos planos. Para superar esses desafios, as plataformas de nuvem de automação e terceirização estão se tornando cada vez mais populares, pois oferecem tolerância a falhas, escalabilidade horizontal e facilidade de controle para soluções de sistema. Um desses serviços é o Serverspace: Object Storage - SWIFT, que oferece um sistema altamente estruturado que pode conter dados em contêineres usando seu método ou metadados. Em contraste com os servidores de arquivos tradicionais ou o armazenamento em nuvem, o SWIFT oferece várias vantagens, inclusive a capacidade de armazenar grandes quantidades de dados não estruturados e pesquisá-los facilmente mais tarde. ## Configuração da CLI Para começar, vamos primeiro atualizar nossos índices e pacotes. Utilizaremos o gerenciador de pacotes yum para Oracle: ```bash yum update -y ``` Screenshot №1 - Update packages Após a atualização dos índices e pacotes, a próxima etapa é instalar o gerenciador de pacotes Python, por meio do qual podemos procurar e baixar o utilitário cliente que nos permite gerenciar nosso armazenamento: ```bash yum install python3-pip ``` Screenshot №2 - Download pip Obviamente, a próxima etapa será o download do cliente de API no sistema: ``` pip3 install python-swiftclient python-keystoneclient ``` Screenshot №3 - Download client Normalmente, muitas distribuições Linux vêm com os pacotes já instalados; no entanto, é fundamental mantê-los atualizados. Se o Python e o pip3 já estiverem instalados, mas o pip3 não puder ser encontrado, podemos utilizar o seguinte comando para habilitar o gerenciador de pacotes para o Python. ```bash python -m ensurepip --default-pip ``` Caso a solução anterior não resolva o problema, talvez seja necessário remover todas as versões existentes do Python e do pip3 antes de tentar uma nova instalação. Como alternativa, podemos tentar atualizar os pacotes instalados atualmente. ```bash yum reinstall python3-pip ``` Essas etapas devem nos ajudar a resolver os problemas encontrados e fornecer as ferramentas necessárias para gerenciar nosso armazenamento. ## Configuração e uso Para prosseguir com o pedido do Swift Storage do Serverspace, [entre na sua conta](https://auth.serverspace.us/) e navegue até a seção Storage no lado esquerdo da página. Se você já tiver encomendado o **Swift Storage**, fique à vontade para pular esta etapa: Screenshot №4 - Main page Depois de encontrar o botão **Activate** centralizado na tela, clique nele e aguarde alguns segundos para que o processo de implantação comece. Agora você poderá acessar a interface de gerenciamento principal do seu **Swift Storage**: Screenshot №5 - Armazenamento ativado É claro que você pode gerenciar seus dados usando uma interface da Web para uso pessoal, o que pode ser mais conveniente. No entanto, ao lidar com redes corporativas, a automação é frequentemente necessária. Para começar, pressione o botão **Add Container** e dê um nome a ele. Depois disso, carregue um arquivo para testar a conexão: Screenshot №6 - Upload file Localize a guia denominada **Credentials** na tela e clique nela para acessar a seção referente às conexões Swift: Screenshot №7 - Credentials Por enquanto, por favor, mantenha essas informações à mão. Em seguida, acesse o dispositivo que contém o software cliente baixado. Uma vez lá, localize o prompt de comando e insira suas credenciais conforme exibido na tabela. Isso nos permitirá estabelecer uma conexão com o armazenamento SWIFT e manipular dados: ``` swift --os-storage-url $(Endpoint)/v1/AUTH_$(UserID) --os-password $(Password) --os-username $(Username) --os-project-name $(Project) --os-project-domain-name $(Domain) --os-auth-url $(Endpoint) stat -v ``` No nosso caso, o comando terá a seguinte aparência: ``` swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/ download STORE ``` Screenshot №8 - Connect and download Observe que esse comando é uma solicitação à API para recuperar dados do armazenamento, utilizando suas credenciais fornecidas. Para verificar as informações baixadas, você pode usar o seguinte comando: ``` ls ``` Para simplificar o processo de autenticação e gerenciar o acesso ao armazenamento, considere a possibilidade de criar uma entrada de alias no script de login do usuário: ``` echo "alias swift_request='swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/'" >> ~/.bashrc ``` Screenshot №9 - Make alias Você pode escolher um nome descritivo para essa solicitação, como swift_request. Caso suas credenciais de login tenham sido atualizadas (por exemplo, após a reativação do armazenamento ou por outros motivos), você poderá modificá-las no arquivo **.bashrc** executando o comando fornecido abaixo: ``` nano ~/.bashrc ``` **Necessariamente!** Você precisa salvar o alias de entrada com o comando: ``` source .bashrc ``` Para garantir o funcionamento adequado, por favor, remova todos os arquivos desnecessários associados ao contêiner de armazenamento: ``` swift_request delete STORE ``` Screenshot №10 - Check alias request Ao executar o alias **swift_request**, você iniciará uma sequência de comandos definidos no script correspondente. Depois disso, você pode acrescentar parâmetros adicionais à solicitação, conforme necessário. ## Conclusão Em resumo, este tutorial oferece uma exploração aprofundada de como conectar o armazenamento de objetos com o SWIFT CLI na Oracle. Ele enfatiza a importância de abordagens organizadas e demonstra os benefícios da utilização de serviços de automação e nuvem para aumentar a eficiência. Seguindo as etapas descritas neste guia, você obterá um entendimento completo do processo e estará bem equipado para implementá-lo com sucesso. https://serverspace.com.br/support/help/how-to-connect-swift-object-storage-through-cli-on-debian.md Aprenda o processo passo a passo para conectar o SWIFT Object Storage usando a interface de linha de comando (CLI) no Debian. ## Introdução No atual ambiente de negócios em ritmo acelerado, as organizações são frequentemente confrontadas com novos desafios e tarefas que exigem soluções inovadoras. No entanto, essas dificuldades geralmente surgem devido à falta de recursos especializados, restrições de tempo ou gerenciamento inadequado por parte dos tomadores de decisão. Ao se deparar com esses problemas, as empresas podem acabar implementando soluções ou sistemas inadequados que não atendem às suas necessidades. Isso pode levar a mais complicações e prejudicar o sucesso dos planos. Para enfrentar esses desafios, as plataformas de nuvem de automação e terceirização estão ganhando popularidade, pois oferecem tolerância a falhas, escalabilidade horizontal e facilidade de controle para soluções de sistema. Um desses serviços é o Serverspace: Object Storage - SWIFT, que oferece um sistema altamente estruturado que pode armazenar dados em contêineres usando seu método ou metadados. Em contraste com os servidores de arquivos tradicionais ou o armazenamento em nuvem, o SWIFT oferece várias vantagens, inclusive a capacidade de lidar com grandes quantidades de dados não estruturados e pesquisá-los facilmente mais tarde. ## Configuração da CLI Antes de prosseguirmos, precisamos garantir que nossos índices e pacotes estejam atualizados. Para realizar essa tarefa, usaremos o gerenciador de pacotes yum em um sistema Debian: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Update package Depois de atualizar nossos índices e pacotes, prosseguiremos com a instalação do gerenciador de pacotes Python. Essa ferramenta nos permitirá localizar e recuperar o software cliente necessário para gerenciar nosso armazenamento: ```bash apt install python3-pip ``` Screenshot №2 - Download pip **Aviso!** Na versão Book Worm do Debian, o python não pode processar o cliente de instalação automaticamente devido ao virtualenv gerenciado externamente! Portanto, criaremos e ativaremos o ambiente manualmente, mas há uma limitação: o aplicativo instalado funciona somente a partir do virtualenv. Vamos instalar o pacote para manipular o virtualenv: ```bash apt install python3-virtualenv ``` Screenshot №3 - Download virtualenv Agora, podemos criar um novo ambiente para nosso utilitário de cli, usando o comando abaixo: ``` virtualenv swift ``` Screenshot №4 - Make virtualenv Em seguida, ative-os, seguindo o diretório em que o ambiente foi criado, no nosso caso o /root/swift. Procure seu valor no comando: ``` source /root/swift/bin/activate ``` E, finalmente, podemos instalar pacotes do gerenciador pip3, por meio do comando: ``` pip3 install python-swiftclient python-keystoneclient ``` Screenshot №5 - Ativação e download Na maioria das distribuições Linux, os pacotes necessários podem já estar pré-instalados. Entretanto, é essencial mantê-los atualizados regularmente. Caso o Python e o pip3 já estejam presentes, mas o pip3 não puder ser localizado, você pode usar o seguinte comando para ativar o gerenciador de pacotes para o Python: ```bash python -m ensurepip --default-pip ``` Se a abordagem inicial não resolver o problema, talvez seja necessário desinstalar todas as versões anteriores do Python e do pip3 antes de reinstalá-los. Uma opção alternativa seria atualizar as instalações dos pacotes atuais antes de tentar uma nova instalação: ```bash yum reinstall python3-pip ``` Seguindo essas instruções, pretendemos resolver todos os problemas que possam surgir e nos equipar com o software necessário para gerenciar nosso armazenamento com eficiência. ## Configuração e uso Antes de fazer um pedido de Armazenamento Swift por meio do Serverspace,[faça login na sua conta](https://auth.serverspace.us/) e acesse a seção Armazenamento localizada no menu à esquerda. Você pode ignorar essa etapa se tiver comprado anteriormente o Swift Storage do **Serverspace**: Screenshot №6 - Main page Depois de localizar o botão Activate (Ativar) na página, pressione-o. Dê algum tempo para que o procedimento de implantação seja executado. Depois de concluído, você terá acesso ao console de gerenciamento principal do seu **Swift Storage**: Screenshot №7 - Armazenamento ativado Embora você possa gerenciar facilmente seus dados por meio de uma interface da Web para uso pessoal, o gerenciamento automatizado pode ser necessário em configurações corporativas. Para começar, clique no botão Add Container (Adicionar contêiner) e especifique seu nome. Em seguida, carregue um arquivo para verificar a conexão, testando-a ainda mais: Screenshot №8 - Upload file Em sua tela, localize a guia **Credentials** e clique nela para navegar até a área que trata das conexões Swift: Screenshot №9 - Credentials Enquanto isso, por favor, guarde essas informações. Em seguida, prossiga para recuperar o dispositivo que tem o software cliente baixado instalado nele. Depois de obter acesso a esse dispositivo, navegue até o prompt de comando e insira as credenciais de login encontradas na tabela fornecida. Isso nos permitirá estabelecer uma conexão com o armazenamento SWIFT e gerenciar os dados: ``` swift --os-storage-url $(Endpoint)/v1/AUTH_$(UserID) --os-password $(Password) --os-username $(Username) --os-project-name $(Project) --os-project-domain-name $(Domain) --os-auth-url $(Endpoint) stat -v ``` Nesse caso, nosso comando terá a seguinte aparência: ``` swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/ download STORE ``` Screenshot №10 - Connect and download Observe que a instrução fornecida busca recuperar informações do armazenamento SWIFT usando as credenciais inseridas. Você pode validar os dados adquiridos executando o comando subsequente: ``` ls ``` Para simplificar o procedimento de autorização e controlar o acesso ao seu armazenamento, convém criar um atalho no script de login: ``` echo "alias swift_request='swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/'" >> ~/.bashrc ``` Screenshot №11 - Make alias Você pode escolher um título significativo para essa tarefa, como **swift_request**. Se houver alguma alteração em suas credenciais de login (por exemplo, após retomar o uso do armazenamento ou devido a várias causas), você poderá atualizá-las no arquivo .bashrc usando o comando fornecido: ``` nano ~/.bashrc ``` **Necessariamente!** Você precisa salvar o alias de entrada com o comando: ``` source .bashrc ``` Para que ele funcione corretamente, exclua todos os arquivos estranhos vinculados ao contêiner de armazenamento: ``` swift_request delete STORE ``` Screenshot №12 - Check alias request Com a execução do alias **swift_request**, uma série de instruções especificadas no script associado será executada. Você pode adicionar mais parâmetros à solicitação, se necessário, após essa etapa. ## Conclusão Em essência, este tutorial fornece uma visão geral abrangente de como vincular o armazenamento de objetos ao SWIFT CLI no Debian. Ele ressalta a importância de métodos sistemáticos e mostra as vantagens de empregar automação e serviços em nuvem para aumentar a produtividade. Ao aderir às diretrizes apresentadas neste manual, você adquirirá uma compreensão abrangente do procedimento e será capaz de executá-lo sem falhas. https://serverspace.com.br/support/help/how-to-mount-lvm-disk-on-the-debian.md Saiba como montar discos LVM no Debian com este guia passo a passo. Entenda o processo de criação de volumes lógicos. ## Por que usamos o LVM? O LVM (Logical Volume Manager) destina-se principalmente ao gerenciamento de pool de armazenamento e, portanto, é adequado sempre que o espaço de armazenamento deve ser utilizado de forma otimizada, como em ambientes de alto tráfego e onde vários servidores ou cargas de trabalho compartilham um conjunto de discos. Ele oferece soluções de armazenamento flexíveis que são mais escalonáveis do que os volumes físicos convencionais, permitindo que os administradores ampliem a capacidade dos grupos de volumes sem a necessidade de executar operações off-line adicionais nos discos membros. Além disso, o LVM permite a fácil migração de discos, incluindo a adição/remoção de unidades e a alternância entre configurações de RAID espelhado ou em faixas. Consequentemente, seu uso é vantajoso em situações em que a demanda de armazenamento de dados pode flutuar ao longo do tempo ou quando surge a necessidade de soluções de backup redundantes (por exemplo, para fins de recuperação de desastres). Nessa instrução, consideraremos como montar o disco existente no sistema! ## Montando um disco Em primeiro lugar, precisamos conectar um disco físico ou virtual ao nosso sistema e verificá-lo com o comando abaixo: ``` lsblk ``` Screenshot №1 - Check disk Agora podemos ver as informações impressas do mapa sobre nosso sistema de discos com vários detalhes; inicialmente, temos apenas **vda** físico e conectamos **vdb**virtual. Mas o tipo de disco que você escolher não importa. Dê uma olhada na última coluna com o nome **MOUNTPOINTS**, que significa literalmente montar no sistema de arquivos. Se o seu disco não for exibido dessa forma ou se no tipo de arquivo você vir o valor **nenhum**, instale o utilitário necessário para nossa manipulação: ```bash apt install lvm2 ``` Screenshot №2 - Installation Muito bem! Nem sempre o sistema busca o disco lvm automaticamente; para o processo manual, usaremos o comando: ``` vgscan ``` Além disso, após a instalação do utilitário, podemos ver o espaço em disco por meio do comando com informações mais detalhadas sobre o volume criado: ``` lvs ``` Screenshot №3 - Scan Vá em frente, geralmente o disco lvm é ativado automaticamente, mas, se no seu caso isso não funcionar corretamente, tente usar o comando: ``` vgchange -ay /dev/vgb ``` E também para o volume lógico, precisamos digitar o comando: ``` lvchange -ay /dev/vgb/target_disk ``` Screenshot №4 - Activation **Destaque! **Você precisa alterar cada nome de dispositivo, grupo virtual e volume lógico para o seu. Outra etapa importante; se você tiver dados com um sistema de arquivos já existente, poderá pular essa etapa. Para os outros, nesse bloco, criaremos um sistema de arquivos no disco bruto, por meio do comando: ``` mkfs /dev/vgb/targert_disk ``` Screenshot №5 - Make filesystem No resultado, podemos ver o resumo das informações impressas. Para conexão temporária, podemos usar o comando **mount**; para carregamento automático, veremos a seguir. No início, crie ou use a pasta existente no momento, no meu caso **/mnt/tmp**: ``` mkdir /mnt/tmp ``` E, em seguida, montar o disco: ``` mount /dev/vgb/targert_disk /mnt/tmp ``` Para verificar o resultado de nossas manipulações, digite: ``` lsblk ``` Screenshot №6 - Mount A última coluna indica nosso ponto de conexão do disco /mnt/tmp! Mas e se precisarmos montar automaticamente o disco com o sistema de inicialização? Para isso, no Debian, podemos usar o **fstab**. Esse arquivo literalmente monta todos os discos contidos nele, basta adicionar a linha especificada e o sistema funcionará. Mas precisamos conhecer alguns detalhes do disco: ``` blkid /dev/vgb/targert_disk ``` Eles imprimirão o UUID do dispositivo necessário e o tipo de sistema de arquivos, que usaremos a seguir. ``` echo 'UUID=34e1e481-6c35-472b-a8f2-97bc4f3190a2 /mnt/tmp ext2 defaults 0 0' >> /etc/fstab ``` Para ter certeza de que tudo está funcionando corretamente, imprima a última linha do arquivo: ``` tail -n 1 ``` Screenshot №7 - Fstab Altere o UUID, a pasta onde você deseja montar o disco, o sistema de arquivos e deixe sem alterações os padrões com 0 0. O comando acima permite adicionar valores de entrada no arquivo. Para atualizar o disco do mapa sem reiniciar, usaremos: ``` mount -a ``` Certifique-se de que tudo foi feito corretamente: ``` lsblk ``` Screenshot №8 - Mount-point Dê uma olhada também na última coluna! A montagem de discos LVM no Debian envolve a conexão do disco, a verificação de discos LVM, a ativação de volumes, a criação de sistemas de arquivos, a montagem e a configuração do arquivo /etc/fstab. Essas etapas garantem a utilização eficiente e a montagem automatizada na inicialização do sistema. https://serverspace.com.br/support/help/how-to-reset-password-on-linux.md Descubra instruções passo a passo sobre como redefinir uma senha no Linux. Não importa se você está bloqueado ou precisa atualizar sua senha. O principal motivo para alterar a senha de um usuário é evitar o acesso não autorizado por agentes mal-intencionados. Os criminosos cibernéticos geralmente tentam decifrar uma chave de login por meio de ataques de força bruta ou por meio de violações de dados de outros sistemas, o que poderia dar a eles a oportunidade de adivinhar sua senha corretamente. Portanto, a rotação frequente de senhas pode ajudar a proteger suas informações pessoais ou as da sua organização. Mas e se você esquecer as credenciais do seu servidor Linux? E os protocolos de autenticação alternativos, como TACACS+ ou RADIUS, não estiverem configurados. Nessa instrução, consideramos uma maneira de alterá-las. **Destaque! **O texto representa informações sobre o mecanismo de segurança apenas para fins educacionais e não exige nada! ## Caminho para o crack Essa abordagem é comumente usada devido aos recursos ou à vulnerabilidade de várias maneiras de iniciar o kernel por meio do carregador de inicialização do GRUB, mas antes precisamos explicar como o sistema de autenticação funciona! Na máquina, as credenciais são armazenadas na forma de hash com sal, que são sequências aleatórias de valores que dão uma senha mais complicada e forte entre vários ataques. Quando o usuário tenta se conectar, o Linux compara o hash da senha digitada com as credenciais armazenadas; se elas coincidirem, o usuário poderá obter acesso; caso contrário, a entrada será negada, pois esse módulo controla o kernel. Além disso, no sistema moderno, há o PAM, módulo que integra várias formas de autenticação e possui recursos próprios. Vamos nos deter no modelo básico de verificação de acesso. Para contornar os requisitos do sistema, precisamos desativar ou substituir o módulo do kernel, mas como fazer isso? Vamos voltar ao texto acima com o carregador de inicialização **GRUB**. No momento da inicialização, podemos escolher o tipo de inicialização, como na tela abaixo: Screenshot №1 - Grub Pressione o botão **E** para editar a configuração de inicialização, exatamente no local que indicamos para começar. Role para baixo e adicione essa linha à string que começa com a palavra linux: ``` init=/bin/bash ``` Se o disco for criptografado, adicione: ``` plymouth.enable = 0 ``` Além disso, se nessa cadeia houver **ro**, altere-a para **rw**: Screenshot №2 - Edit Muito bem! Pressione **Ctrl + X** ou **F10** para salvar as alterações e aguarde o carregamento do sistema; após a verificação, você verá a janela do terminal com o bash. Para alterar a senha, use o comando abaixo: ``` passwd root ``` Screenshot №3 - First way Reinicie o sistema e as alterações que fizemos na configuração serão redefinidas, mas a senha que você definiu permanecerá! Em conclusão, a necessidade imperativa de alterar a senha de um usuário decorre da ameaça constante de acesso não autorizado por agentes mal-intencionados no cenário digital. A rotação frequente de senhas serve como uma medida proativa para reduzir o risco de os criminosos cibernéticos explorarem vulnerabilidades, seja por meio de ataques de força bruta ou de dados comprometidos por violações externas. Essa prática é fundamental para proteger as informações pessoais e a segurança organizacional. https://serverspace.com.br/support/help/tool-for-stress-test-servers-cpu.md Explore o poder dos testes de estresse com nosso guia sobre o uso do sysbench, uma ferramenta versátil para testar o estresse da CPU do seu servidor. ## O que é ferramenta de estresse? As ferramentas de teste de estresse são uma parte vital de qualquer processo de desenvolvimento de software ou otimização de sistema, pois permitem que os desenvolvedores identifiquem possíveis problemas com seus sistemas antes da implementação. Deve-se observar que não há nada diretamente relacionado à experiência do usuário - o único objetivo é garantir uma operação tranquila e sem falhas para todas as partes envolvidas, inclusive clientes/usuários! Veja a seguir alguns motivos pelos quais esses instrumentos são benéficos: - As ferramentas de teste de estresse fornecem uma visão de como o software responderá sob condições de carga pesada - essa é uma informação crucial, especialmente se você estiver lançando ou redesenhando um serviço on-line de alto tráfego sem espaço para soluços de desempenho (ou seja, reclamações do suporte ao cliente). Um exame minucioso dos tempos de resposta do seu sistema ajuda a identificar os pontos fracos que precisam ser corrigidos e permite a distribuição/utilização otimizada de recursos no lado do servidor sem causar gargalos; - Testar o software sob carga pesada é necessário, pois revela possíveis bugs/falhas - Quanto mais testes de estresse forem realizados, maior será a probabilidade de encontrar problemas no sistema (que podem passar despercebidos usando métodos convencionais). Por exemplo: a execução de duas ou três instâncias de jogos de navegador populares em rápida sucessão em hardware idêntico pode revelar uma incompatibilidade entre versões diferentes; ao tentar fazer upload/transmissão simultânea de um arquivo grande por meio de vários dispositivos, pode-se saber se há largura de banda suficiente disponível para suportar todos os usuários ao mesmo tempo; - As ferramentas de teste de estresse fornecem estatísticas/métricas valiosas - elas podem ser usadas por administradores e desenvolvedores durante as verificações de manutenção do sistema (ou ao solucionar problemas). Nessa instrução, consideraremos um dos exemplos de ferramenta para testar a CPU! ## Uso prático Geralmente, para estimar como nosso sistema funcionará na produção, precisamos fazer um plano. Dividir nosso sistema em várias partes: **software**, **hardware** e **rede**. Todas elas precisam ser comparadas com o valor médio de desempenho. Nessa parte da instrução, consideraremos a estimativa da CPU do servidor na máquina Linux. Que ocupava grande parte dos servidores de produtos no mundo. O processo do sistema também influencia a velocidade dos discos, a RAM etc. O primeiro passo em qualquer manipulação é atualizar o pacote no sistema por meio de um dos comandos abaixo: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Atualizar pacote Usaremos o sysbench para fazer testes intensos e expressos em nosso servidor sem instalar softwares complexos, o que pode ser útil para situações em que precisamos estimar o servidor em um prazo determinado. E como isso funcionará? O processo de instalação não é complexo: ```bash apt install sysbench ``` Screenshot №2 - APT Aguarde até que o processo seja concluído e agora podemos usar o utilitário para teste. Pare todos os serviços ou daemons inúteis que não serão usados no sistema. A sintaxe do comando é parecida com o comando **sysbench [options] [testname] **que o multitool também pode verificar a RAM, o sistema de E/S etc., mas vamos examinar a seção da CPU. Para o teste, você precisa usar o comando: ``` sysbench cpu --cpu-max-prime=30000 run ``` Screenshot №3 - Exemplo de uso Na imagem, você pode ver diferentes métricas: velocidade, latência e equidade dos threads. Fizemos o teste resolvendo 30.000 números primos, mas você pode escolher qualquer outro teste adequado. Por padrão, o utilitário usa um dos threads, mas os aplicativos de programas modernos usam pelo menos 2 ou mais threads, portanto, precisamos de opções que modelem a carga do software com o tráfego. Para isso, podemos usar: ``` sysbench cpu --cpu-max-prime=30000 --threads=4 run ``` Screenshot №4 - Example of usage with threads Esse teste foi feito em uma máquina com 1 núcleo de processo com possibilidade de processar 4 threads, mas e se aumentarmos nossa potência? Vamos fazer o mesmo teste em uma máquina com CPU de 4 núcleos e possibilidade de processar 16 threads. Para que o experimento fique claro, executamos o mesmo teste: ``` sysbench cpu --cpu-max-prime=30000 --threads=4 run ``` Screenshot №5 - More power O valor médio caiu rapidamente para 6X! Esse utilitário também pode ser usado para comparação ou apenas para estimar a potência do componente do servidor! Neste guia de instruções, exploramos um exemplo de ferramenta de teste de estresse para testar a CPU, com foco no sysbench para máquinas Linux. O guia abordou o processo de atualização de pacotes, instalação do sysbench e realização de testes de estresse da CPU. Os exemplos práticos demonstraram como avaliar o desempenho da CPU do servidor, destacando o impacto de fatores variados, como o número de threads e núcleos da CPU. O guia foi concluído enfatizando a utilidade das ferramentas de teste de estresse para comparar os componentes do servidor e estimar a potência do sistema. https://serverspace.com.br/support/help/how-to-test-speed-of-the-disk.md Descubra maneiras eficazes de testar a velocidade do seu disco e otimizar o desempenho do seu sistema. Conheça as ferramentas e técnicas populares de teste de velocidade do disco e os principais fatores que influenciam o desempenho do disco. ## Por que usamos ferramentas de estimativa? Utilizamos ferramentas de estresse na tentativa de avaliar o comportamento de nossos sistemas sob altas cargas. O teste de estresse nos fornece dados em tempo real que permitem que sejam feitos ajustes, se necessário, antes do lançamento em serviços ao vivo, ajudando a evitar possíveis pontos de falha ou tempos de desempenho lentos devido ao aumento do volume de usuários. Portanto, para atender às expectativas dos clientes e garantir um serviço satisfatório, usamos ferramentas de teste de estresse. ## Como verificar o disco? Um dos principais componentes do servidor que também precisamos ter em mente é o disco! Absolutamente, nenhum teste de alta carga pode ser feito sem testar a integridade e a velocidade do sistema de disco. Infelizmente, na Internet, há muitas maneiras de verificar, o que faz com que você passe vergonha: - artigo científico que descreve a velocidade estimada do cluster FS com o utilitário dd e o cache de arquivos ativado; - usar bonnie++; - uso do iozone; - uso do utilitário cp com contagem de tempo. Todos esses métodos são fundamentalmente incorretos; nessa instrução, não consideraremos por que você não os usa. Mas, se explicarmos em poucas palavras parte do programa necessário para estimar a velocidade de fechamento e abertura de arquivos, alguns utilitários estimam a velocidade linear, que não é a velocidade máxima do disco ou a produtividade real etc. Para verificar rapidamente o servidor, usaremos o sysbench, esse método também não é limpo, mas permite estimar rapidamente e próximo do valor real! Para isso, precisamos atualizar os índices e fazer upgrade dos pacotes, por meio do comando: ```bash apt update && apt upgrade ``` Screenshot №1 - Pacote de atualização Aguarde até que o processo termine, agora podemos fazer o download do pacote necessário: ```bash apt install sysbench ``` Screenshot №2 - APT O Sysbench nos permite fazer medições com vários algoritmos, que fornecem alta carga sintética. Usaremos o método com valor aleatório, que será gravado e lido. Precisamos preparar o teste de dados se o tamanho do arquivo de teste for menor que a RAM, pois, ao testar discos rígidos ou de estado sólido, o sistema poderá usar o cache da RAM para armazenar dados. Isso pode levar à distorção dos resultados do teste, pois as operações de leitura e gravação serão realizadas na RAM, e não no próprio disco. Recomenda-se usar arquivos de teste que excedam a quantidade de RAM para avaliar o desempenho real do subsistema de disco. ``` sysbench fileio --file-total-size=10G prepare ``` Screenshot №3 - Dados de teste Em seguida, finalmente executamos nosso teste: ``` sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 run ``` Screenshot №4 - First test A importância da contagem de threads fica evidente quando se consideram as tarefas que envolvem o subsistema de disco e que podem ser executadas simultaneamente. O aumento do número de threads pode melhorar a eficiência da utilização de recursos de disco, o que o torna uma consideração valiosa para otimizar o desempenho em cenários que envolvem tarefas paralelas ``` sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 --threads=4 run ``` Screenshot №5 - Second test Se não quisermos salvar um arquivo gigante temporário com dados de teste, limpe-o com o comando: ``` sysbench fileio cleanup ``` Screenshot №6 - Clean up Como resultado, podemos usar a velocidade média do disco e, como podemos ver, nosso SSD tem um ótimo resultado! O teste de estresse é uma prática indispensável para avaliar o comportamento do sistema sob altas cargas, garantindo o desempenho ideal e resolvendo preventivamente os possíveis problemas. Ao examinar vários aspectos do desempenho do servidor, é fundamental não ignorar a importância da integridade e da velocidade do disco. https://serverspace.com.br/support/help/data-base-ms-and-efficiency-stress-test.md Explore o guia definitivo para testar o estresse dos bancos de dados MS para obter a eficiência ideal. Descubra insights de especialistas e práticas recomendadas! ## Por que precisamos de testes de estresse? O teste de estresse é uma atividade essencial para garantir operações e desempenho sem problemas, simulando a carga em um sistema ou aplicativo para analisar seu comportamento sob altas cargas de trabalho. Ao realizar esses testes antes que o software/aplicativo entre em operação, ele ajuda a identificar pontos fracos que podem afetar a satisfação do usuário ou causar falhas devido a demandas excessivas durante períodos de pico. Portanto, as ferramentas de teste de estresse desempenham um papel integral nos cenários de teste que normalmente não seriam possíveis quando operando com cargas menores, o que nos dá uma vantagem inicial para garantir otimizações de desempenho bem-sucedidas antes do lançamento no mercado. ## Como verificar o DBMS? Um dos principais componentes de qualquer sistema é o DBMS. Muitas vezes, precisamos verificar o trabalho e dar uma nota adequada de desempenho no servidor. Muitas coisas dependem da configuração e das possibilidades de hardware do sistema, é claro que sempre é preciso estimar a configuração com o software e o hardware do servidor; nesse artigo, consideramos apenas o teste do DBMS. Antes de tudo, precisamos atualizar os índices e os pacotes de upgrade na máquina: ```bash apt update && apt upgrade ``` Screenshot №1 - Pacote de atualização Para o teste de estresse, usaremos o sysbench, que representa uma ferramenta múltipla sem requisitos para testes complicados, uma forma expressa de estimar a transação e a velocidade do DBMS. Em seguida, baixamos e instalamos o pacote do repositório: ```bash apt install sysbench ``` Screenshot №2 - APT Usaremos o modo OLTP para o teste, o que significa literalmente processamento de transações on-line e, no processo, representa o processamento simultâneo de dados de vários usuários. Esse sistema é adequado para transações curtas e frequentes, para gravação e leitura! Em seguida, precisamos fazer a preparação para o teste, fazer login no DBMS com o usuário privilegiado, por exemplo, root, e criar o DB: ``` SHOW DATABASES; ``` E agora crie o banco de dados: ```sql CREATE DATABASE gg; ``` Screenshot №3 - Preparação Após a criação do banco de dados, precisamos preparar os dados. Com o comando, podemos criar uma tabela e preencher a linha com os registros necessários: ``` sysbench oltp_read_write --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg - -mysql-user=root --mysql-password=123321 prepare ``` Screenshot №4 - Prepare table **Lembre-se!** Você precisa alterar as credenciais da conta! O tamanho da tabela de opções indica o número de registros na tabela, o usuário e a senha são credenciais, o db-driver usa o sistema DBMS para verificação. Foi criada a tabela **sbtest1**. Agora podemos executar o teste com o comando abaixo: ``` sysbench oltp_read_write --threads=2 --report-interval=3 --histogram --time=50 --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg - -mysql-user=root --mysql-password=123321 run ``` Screenshot №5 - Teste Aguarde até o fim do processo. Outro fator importante no teste de estresse é o resultado do interpretador. Você precisa comparar os dados de saída com a carga teórica no sistema. Vários parâmetros importantes nesse relatório - consultas e transações por segundo. Nosso servidor apresenta um resultado muito bom: Screenshot №6 - Result Agora, se não quisermos armazenar arquivos indesejados, precisaremos limpá-los com o comando: ``` sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 cleanup ``` Screenshot №7 - Clean up Todos os dados salvos foram descartados e a memória foi limpa! Em geral, o conteúdo fornecido descreve um processo passo a passo para testar o estresse de um DBMS usando o sysbench, abrangendo a preparação, a execução, a interpretação dos resultados e a limpeza. https://serverspace.com.br/support/help/what-is-an-rdp-terminal-server-and-how-to-use-it.md Explore os recursos de um servidor de terminal RDP com nosso guia. Saiba o que é um Terminal Server e descubra instruções passo a passo para usar o RDS com eficiência. ## Por que usamos o acesso remoto? O acesso remoto tornou-se uma necessidade nos últimos anos, porque há um número crescente de motivos pelos quais as pessoas podem precisar acessar o computador de trabalho de qualquer local e em qualquer dispositivo. Esses motivos incluem a necessidade de concluir o trabalho fora do horário de expediente ou quando estiver viajando; querer continuar trabalhando caso os servidores fiquem inoperantes em seu local; querer trabalhar com segurança e sem ser comprometido; ou simplesmente ter preferência por usar diferentes dispositivos, como smartphones, tablets e laptops, para concluir suas tarefas diárias. O uso do acesso remoto permite que os funcionários tenham maior liberdade de movimento quando se trata de onde podem trabalhar (o que, por sua vez, aumenta a produtividade geral) e também lhes dá a capacidade não só de continuar trabalhando se as conexões com o servidor forem interrompidas, mas também ajuda a proteger contra uma série de possíveis problemas de segurança que podem surgir como resultado. ## Configuração e servidor de terminal Algumas empresas não têm recursos, poderes e especialistas qualificados suficientes para fornecer a cada funcionário seu local de trabalho. PC, monitor, hardware, software e o nível de segurança necessário nas várias camadas da rede e do sistema operacional. O que podemos fazer nesse caso? Há uma tecnologia que permite que os usuários tenham acesso a um servidor poderoso que separa o ambiente entre diferentes usuários. **Esse é o Terminal Server!** O conceito principal inclui a ideia de que cada funcionário tem um thin client ou, em outras palavras, um PC de baixo consumo de energia, que se conecta ao servidor principal onde executa todas as operações. O thin client, por sua vez, recebe os dados e os exibe na tela. O uso desse modelo diminui a necessidade de orçamento para o funcionamento seguro e eficaz de todo o sistema. Screenshot №1 - Thin client Essa tecnologia é bastante semelhante à infraestrutura de desktop virtual, mas tem diferenças significativas: no caso do Terminal Server, o acesso separado é executado pelo mecanismo de controle de acesso padrão, mas no caso da VDI, temos uma máquina virtual isolada em um host. Podemos falar muito sobre as diferenças entre essas tecnologias, mas, nesta instrução, vamos nos concentrar na primeira delas. Consideramos como preparar o servidor padrão para o trabalho com o cliente, configurando o próprio Terminal Server! Primeiramente, precisamos tomar uma decisão sobre o tipo de gerenciamento do nosso servidor. Em um primeiro momento, criamos uma LAN com o Terminal Server e o cliente local; dessa forma, definimos todas as configurações localmente. Em segundo lugar, podemos conectar o Terminal Server ao controlador de domínio e criar um GPO para ele. Nessa instrução, consideraremos a configuração local! Vá para a máquina recém-instalada com a partição de disco preparada na parte do sistema, disco para aplicativos e serviços. Além disso, opcionalmente, já tenha configurado o RAID, que permite aumentar a eficiência e a tolerância a falhas do sistema. Procure na barra **Server Manager** e clique nela. Olhe para o canto direito e procure na guia **Manage**, **Add Role**: Screenshot №2 - Manage Server Procure por RDS ou Remote Desktop Service, clique nele, no botão esquerdo, e vá para Role Services: Screenshot №3 - Add Role Em Role Services (Serviços de função), escolha RD Licensing (Licenciamento de RD) e RD Session (Sessão de RD). À esquerda de cada opção, você pode ver uma breve descrição dos serviços e sua funcionalidade: Screenshot №4 - Add Services Instale a configuração selecionada e aguarde até o final do processo de instalação: Screenshot №5 - Installation Na próxima etapa, precisamos ativar o servidor com o assistente. Para isso, acesse a página principal e veja o menu à esquerda. Procure **All Servers** (Todos os servidores), onde você precisa clicar com o botão esquerdo no servidor e escolher License services RD Licensing Manager (Serviços de licença RD Licensing Manager): Screenshot №6 - Choose services Aguarde até que a janela seja carregada e escolha o certificado necessário, clique nele e escolha a opção Activate Server (Ativar servidor): Screenshot №7 - Choose server for activate Preencha todos os campos com as credenciais apropriadas: Screenshot №8 - Enter credentials Clique no botão next (próximo) e poderemos ver nossa licença: Screenshot №9 - License Na próxima etapa do assistente, insira sua chave de licença para esse tipo de sistema e conecte-se ao servidor por meio do aplicativo cliente RDP! A implementação dos Serviços de Área de Trabalho Remota (RDS) e a utilização da tecnologia do Terminal Server oferecem às organizações uma solução poderosa para atender às necessidades crescentes de acesso remoto e mobilidade da força de trabalho. Conforme descrito neste guia, a demanda por acesso remoto cresceu significativamente, impulsionada pelo desejo de flexibilidade nos arranjos de trabalho e pela necessidade de garantir a produtividade contínua em face de possíveis interrupções. https://serverspace.com.br/support/help/how-to-delete-data-in-file-with-truncate.md Aprenda a maneira eficiente de excluir dados em um arquivo usando o método truncate. Explore instruções e exemplos de manipulação de arquivos! ## Por que alteramos o tamanho do arquivo? Os motivos pelos quais você pode precisar definir explicitamente o tamanho de um arquivo podem variar de tarefas simples de programação até questões complexas de segurança, mas, em geral, ao escrever código, é comum que você esteja trabalhando com tamanhos específicos de dados e precise que eles não sejam apenas os mesmos em diferentes sistemas (que geralmente têm interpretações ligeiramente diferentes), mas também fixos e previsíveis. Isso significa que, se o seu aplicativo depende de um determinado tamanho de arquivo para que sua funcionalidade funcione corretamente, ter controle explícito sobre o tamanho desse arquivo pode evitar o surgimento de um comportamento inesperado devido a uma variável não controlada. Além disso, ter controles rígidos sobre os arquivos que você cria é uma boa prática em geral por motivos de segurança; isso evita vazamentos acidentais que podem ser perigosos ou expor dados confidenciais do sistema e protege contra possíveis ataques por meio de técnicas de estouro de buffer, em que um arquivo grande ultrapassa os limites da memória e permite a execução de código não autorizado (uma forma de invasão remota). Por fim, se você estiver trabalhando com algum tipo de criptografia de arquivos, a necessidade é mais direta. O mesmo motivo para manter o controle sobre o tamanho do arquivo ao escrever o código - ele evita erros devido a arquivos inesperadamente grandes - se estende muito além da codificação para a criptografia, pois ambos exigem um grau de controle preciso sobre como as informações estão sendo armazenadas e acessadas. Portanto, é fundamental que você compreenda e gerencie corretamente (defina, redefina, altere) esses tamanhos em todos os momentos. ## Como usá-lo? Para o sistema operacional Linux, há um utilitário que pode ajudar a aumentar a nitidez e a extensão dos dados por meio de uma simples sintaxe de uso. Vamos considerar o algoritmo e a maneira de usá-lo! Antes de tudo, precisamos atualizar o pacote: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Update Em seguida, podemos fazer o download do pacote necessário por meio do gerenciador de pacotes de aplicativos, que obtém dados de repositórios confiáveis: ```bash apt install coreutils -y ``` Screenshot №2 - Instalação Como podemos ver na imagem acima, já instalamos o software e, portanto, finalmente consideramos a sintaxe: **truncate -OPTIONS -FILE**. Por exemplo, seu arquivo se chama example.txt e seu tamanho atual é de 5 MB, e você deseja reduzi-lo para 1 MB: ``` truncate -s -4M example.txt ``` A opção -s indica o tamanho, menos significa ação aritmética para o tamanho atual do arquivo, para ter certeza, podemos verificar a lista: ``` ls -l ``` Screenshot №3 - Minus value of size **Alerta importante!** Se o tamanho do arquivo for maior do que o novo valor de tamanho, os extradados serão excluídos, portanto, não comprima! Por outro lado, se o tamanho for menor que o valor, o utilitário adicionará dados extras com zero registros. Se precisarmos indicar o valor certo, o comando será o mesmo que descrevemos acima, mas não usaremos o sinal aritmético: ``` truncate -s 0M example.txt ``` Essa linha de comando limpa os dados do arquivo sem excluí-los; em outras palavras, obtemos como resultado um arquivo vazio! Vamos nos certificar disso: ``` ls -l ``` Screenshot №4 - Arquivo vazio De outra forma, também podemos usar + para aumentar o tamanho do arquivo, o sinal de barra / para arredondar para baixo e para cima o múltiplo de e a porcentagem % para arredondar para cima! O domínio do uso do truncate permite que os usuários mantenham o controle sobre o tamanho dos arquivos, contribuindo para práticas de gerenciamento de arquivos mais previsíveis e seguras em ambientes Linux. https://serverspace.com.br/support/help/how-to-install-mongodb-on-ubuntu.md Descubra um guia passo a passo sobre a instalação do MongoDB no Ubuntu. Aprenda os fundamentos da configuração do MongoDB. ## Visão geral A instalação do MongoDB envolve várias etapas, como escolher se deseja usar versões comunitárias ou comerciais, baixar o pacote com o repositório escrito e assinar antes no Ubuntu, configurar conjuntos de réplicas (se necessário) e verificar a instalação com um teste de conexão. Nessa instrução, consideraremos a instalação para o Ubuntu. **Aviso!** Comumente, os repositórios distribuem ativamente pacotes com o rótulo mongodb, que não são mantidos pelo desenvolvedor oficial! Em vez disso, adicionaremos o repositório oficial e faremos o download do mongodb-org. Se você já tiver instalado o pacote não oficial do mongodb, precisará removê-lo do sistema digitando o comando: ```bash apt purge mongodb -y ``` Depois desse comando, o pacote com as dependências será excluído! ## Instalação Antes de tudo, precisamos nos certificar de que estamos usando a versão mais recente do pacote no sistema: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Update package Em seguida, vamos falar sobre como faremos o download do pacote com segurança. Para isso, o Linux usa o repositório oficial e a realização aberta do sinal pgp! Se você não tiver esse pacote, instale-o: ```bash apt install gnupg curl ``` Verifique a versão do sistema operacional usado: ``` lsb_release -a ``` Screenshot №2 - Versão do sistema operacional Baixe a chave pública que nos permitiu confirmar a autenticidade e a integridade dos dados de transferência de uma rede insegura: ```bash curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor ``` Screenshot №3 - Curl download Esse comando prefere ser usado por um usuário com privilégios administrativos ou usar o comando sudo. No nosso caso, usamos o root, portanto, o comando não tem sudo. Na ação anterior, baixamos a chave pgp e a adicionamos à assinatura confiável. Em seguida, precisamos criar uma lista no repositório: ``` touch /etc/apt/sources.list.d/mongodb-org-7.0.list ``` Adicione o repositório com o sinal no arquivo, como no comando abaixo: ``` nano /etc/apt/sources.list.d/mongodbb.list ``` Insira a linha abaixo nesse arquivo: ``` deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse ``` Screenshot №4 - Adicionar repositório Indicamos a arquitetura, o sinal e o endereço de URL, portanto, precisamos atualizar os índices: ```bash apt update ``` Em seguida, precisamos instalar o pacote do repositório, usando o gerenciador apt, para fazer o download da versão mais recente: ```bash apt install mongodb-org -y ``` Screenshot №5 - APT install Se quiser fazer o download da versão dedicada do MongoDB, você pode digitar: ```bash apt install mongodb-org=6.0.12 ``` Essa linha de comando ajuda a fazer o download da versão dedicada, mas não evita atualizações inesperadas, o que pode ser útil em situações em que a nova versão não é adequada, então precisamos configurar o status do pacote: ``` echo "mongodb-org hold" | sudo dpkg --set-selections ``` A opção --set-selections ajuda a indicar o status do pacote, que pode ser instalar, desinstalar ou manter. No pacote oficial, há um arquivo de configuração que pode ser modificado: ``` nano /etc/mongod.conf ``` Agora precisamos iniciar o daemon no sistema de inicialização, usaremos o comando: ```bash systemctl start mongod ``` Em seguida, verifique o carregamento do daemon digitando o comando antes: ```bash sudo systemctl status mongod ``` Screenshot №6 - Status of the daemon Muito bem! Agora precisamos iniciar o MongoSH, que pode ajudar a gerenciar o servidor de banco de dados: ``` mongosh ``` Screenshot №7 - MongoSH Todo o processo envolve várias etapas cruciais para garantir uma configuração segura e confiável. A decisão entre versões comunitárias e comerciais, a seleção adequada do repositório e a atenção à autenticidade do pacote são considerações fundamentais. Em especial, recomenda-se cautela em relação ao uso de pacotes não oficiais do MongoDB distribuídos em determinados repositórios, pois eles podem não ter manutenção e suporte oficiais. https://serverspace.com.br/support/help/how-to-connect-to-the-mongodb.md Saiba como se conectar sem esforço ao MongoDB usando instruções passo a passo. Seja por meio da GUI do Compass ou da poderosa CLI! ## Visão geral O gerenciamento eficaz de um sistema de gerenciamento de banco de dados (DBMS) oferece diversas opções, permitindo que os usuários escolham entre a interface de linha de comando (CLI) com comandos mongosh ou o módulo de interface gráfica do usuário (GUI) - Compass, projetado para visualizar dados. Ao utilizar o mongosh, é essencial ter uma compreensão fundamental dos comandos básicos e do uso da CLI para um gerenciamento eficiente dos dados. O Compass serve como uma solução personalizada para usuários ou administradores menos inclinados a operações de CLI, aumentando a eficiência do trabalho por meio de sua interface quase intuitiva. Fazendo a ponte entre o Compass e as complexidades do gerenciamento de dados, este guia se concentra em esclarecer a interseção das funcionalidades do Compass, capacitando os usuários a aproveitar todo o seu potencial. Seja navegando pela linha de comando ou aproveitando o apelo visual do Compass, esta instrução fornece insights sobre a conectividade do MongoDB, garantindo uma experiência perfeita para usuários novatos e experientes. ## Compass Em termos gerais, podemos separar a conexão em dois tipos, para interface GUI e CLI. Nessa parte da instrução, examinaremos a forma gráfica de conexão com o DBMS. Você precisa instalar o Compass por meio do gerenciador de pacotes ou [baixar do site oficial](https://www.mongodb.com/try/download/compass). No sistema Linux, temos de configurar o shell da GUI, se ele não existir na máquina, e depois baixá-lo. No Ubuntu, podemos usar o código abaixo: ```bash apt install desktop-ubuntu ``` Após o processo de instalação, inicie o MongoDB Compass por meio da CLI ou do ícone da área de trabalho; no Ubuntu, você pode usar o comando: ``` mongodb-compass ``` E para o sistema operacional Windows, digite na CLI: ``` MongoDBCompass.exe ``` O arquivo de instalação no sistema operacional Linux geralmente é armazenado em /usr/bin e, no sistema operacional Windows, na pasta escolhida no processo de instalação. Se tivermos feito tudo corretamente, poderemos ver a janela pop-up com o campo de conexão: Screenshot №1 - Connection Clique no campo URL e insira os dados para conexão. Se você tiver o MongoDB em sua própria máquina, clique no botão **Connect** sem nenhuma alteração. Se você usar um servidor remoto, substitua localhost pelo endereço IP interno ou externo e indique a porta no caso de os administradores usarem uma configuração incomum. E é isso! Estamos dentro: Screenshot №2 - Main page Se você tiver problemas no estágio de conexão, verifique o funcionamento do serviço de banco de dados, por exemplo, no sistema operacional Ubuntu, podemos digitar: ```bash systemctl status mongod ``` E se virmos um processo morto, tente reiniciá-lo: ```bash systemctl restart mongod ``` Depois disso, o sistema terá que funcionar, no sistema operacional Windows você precisa procurar na barra de pesquisa Services e iniciar o serviço MongoDB! ## Mongo Shell Por outro lado, podemos usar uma maneira mais eficiente de conexão, da mesma forma que no sistema, temos que configurar o Mongo DB e o Mongo Shell, depois disso, precisamos verificar o status do daemon como fizemos antes: ```bash systemctl status mongod ``` E se tivermos problemas com eles, reinicie! ```bash systemctl restart mongod ``` Muito bem! Agora podemos iniciar o shell para interagir com o sistema, com o comando abaixo, no modo localhost: ``` mongosh ``` Screenshot №3 - MongoSH Se for necessário conectar-se ao servidor remoto, use o seguinte comando: ``` mongosh --host : --username --password --authenticationDatabase ``` Substitua os valores entre colchetes angulares pelas informações específicas do seu servidor remoto. O gerenciamento eficaz de um Sistema de Gerenciamento de Banco de Dados (DBMS) oferece aos usuários um espectro de opções, apresentando a escolha entre a interface de linha de comando (CLI) que utiliza os comandos do mongosh e o módulo de interface gráfica do usuário (GUI) - Compass, adaptado para visualização de dados. A proficiência em comandos básicos e no uso da CLI é fundamental ao optar pelo mongosh. https://serverspace.com.br/support/help/mongodb-creating-updating-and-deleting-documents.md Tutorial sobre como trabalhar com documentos do MongoDB. Criar documentos do MongoDB. Atualizar muitos documentos do MongoDB. Excluir documentos do MongoDB. O domínio do MongoDB vai muito além do processo de instalação inicial, abrangendo um conjunto de operações imperativas essenciais para o gerenciamento proficiente de bancos de dados. Neste guia abrangente, exploraremos de forma intrincada três aspectos fundamentais da utilização do MongoDB: a criação, a atualização e a exclusão de documentos. A arquitetura NoSQL orientada a documentos exclusiva do MongoDB oferece flexibilidade e escalabilidade incomparáveis, enfatizando a importância de dominar essas operações fundamentais para uma manipulação de dados perfeita e eficiente. ## Criar documentos no MongoDB Inicialmente, precisamos nos conectar ao servidor MongoDB; usaremos o mongoshell para essa tarefa no servidor local: ``` mongosh ``` Screenshot №1 - MongoSH Muito bem, estamos dentro! Mude para o banco de dados ou crie um novo com o comando: ``` use hh ``` Screenshot №2 - Create DB Agora mudamos nosso comando de entrada ahead para o banco de dados hh. Mas nenhum banco de dados pode existir sem uma coleção, esse grupo de futuros documentos do MongoDB, vamos criá-los com o comando abaixo: ``` db.createCollection ('FS') ``` Screenshot №3 - Create Collection Após a etapa de preparação, crie o documento necessário, usando o comando: ``` db.FS.insertOne ({ id: "value1", name: "value2", surname:"value3"}) ``` Screenshot №4 - Create one document Se quisermos criar muitos documentos do MongoDB em uma única transação, precisaremos usar outro método de coleta: ``` db.FS.insertMany ([ {id: "22", name: "Jhon"}, {hobby:"dance"}]) ``` Screenshot №5 - Criar muitos documentos do MongoDB Como você pode notar, usamos o sinal {} para indicar a tela do documento e o sinal [] para indicar o intervalo da coleção. Em seguida, precisamos nos certificar de que os arquivos foram criados pelo método da coleção: ``` db.FS.find() ``` Screenshot №6 - Check created files Na imagem, podemos ver a lista dos documentos criados anteriormente. ## Atualização de documentos do MongoDb Para a atualização, usaremos o seguinte algoritmo: primeiro, indicar o valor do filtro e, em seguida, substituir o destino: ``` db.FS.updateOne ( { id: "valuel" }, { $set: { id: "newvalue"} } ); ``` Screenshot №7 - Update value No final da operação, vemos informações resumidas sobre a moderação: contagem correspondente, contagem modificada etc. ## MongoDb exclui documentos Para excluir, usaremos o seguinte comando: ``` db.FS.deleteOne({id: "newvalue"}) ``` Screenshot №8 - Excluir documento Para ter certeza de que o comando foi concluído com êxito, digite o comando find: ``` db.FS.find() ``` Na imagem acima, não vemos o documento excluído, o que significa que a exclusão foi feita. Concluindo, este guia serve como uma bússola no cenário multifacetado das operações do MongoDB, capacitando os usuários a navegar pelas nuances da criação, atualização e exclusão de documentos com confiança e precisão. À medida que os usuários continuarem a aproveitar o poder do MongoDB, essas habilidades fundamentais serão, sem dúvida, inestimáveis no gerenciamento de dados com destreza e eficiência. https://serverspace.com.br/support/help/how-to-manage-debian-repositories.md Explore a configuração de arquivos, a adição de repositórios, a verificação de chaves e a atualização de pacotes para obter um sistema seguro e atualizado. ## Introdução No Debian temos várias formas de atualizar e baixar softwares para nosso sistema, que pode ser um único arquivo com conjunto de dependências, índice e etc. Normalmente, que têm formato tar.gz ou .deb, há arquivos com código-fonte aberto que precisam ser compilados antes de serem usados. Mas alguns utilitários, pacotes e softwares podem ter trechos de código malicioso, instáveis ou não confiáveis. Para resolver esses problemas, temos repositórios com pacotes confiáveis, verificados e estáveis, que podem ser instalados e usados facilmente. Eles representam um pacote de hierarquia de pacotes, índice, bibliotecas necessárias para instalação e sinalização para uso mais seguro. **Destaque!**Existem alguns repositórios de fontes não oficiais, que você pode usar por sua própria conta e risco. . ## Requisitos - Direitos de root; - Sistema operacional Debian; - Vários conhecimentos sobre o sistema operacional de trabalho; - Conexão com a Internet. ## Gerenciar repositórios Para gerenciar repositórios, podemos usar arquivos para configurar nosso sistema, para isso vamos encontrar o catálogo com o rótulo apt e verificar o conteúdo: ``` cd /etc/apt/ && ls -l ``` Screenshot №1 - List of files Na captura de tela, podemos ver vários arquivos e diretórios diferentes, que podemos usar para configurar nossos repositórios. Vamos considerar todos os arquivos no catálogo e dar-lhes uma explicação: - **Sources.list** - determina a lista de repositórios em uso, sua versão e a ramificação do software; esse arquivo combina nele mesmo toda a lista de servidores; - **Sources.list.d** - o arquivo usado para configurar separadamente a lista de repositórios, geralmente dividida por serviços usados; - **Trusted.gpg** - esse arquivo contém chaves confiáveis de repositórios usados; - **Trusted.gpg.d** - o mesmo arquivo acima, mas dividido pelos serviços. Considere o arquivo sources.list e adicione uma linha com o repositório: ``` nano /etc/apt/sources.list ``` ``` deb http://security.debian.org/debian-security bullseye-security main ``` Screenshot №2 - Lista de repositórios Depois disso, podemos atualizar o índice com o comando abaixo: ```bash apt update ``` Em seguida, podemos usar o repositório com os comandos apt, aptitude e outros para controlar o pacote em nossa máquina local. No entanto, podemos configurar o sistema separadamente pelos serviços: ``` cd /etc/apt/sources.list.d/ && ls ``` Screenshot №3 - Directory of repo Vá para o editor de texto e considere o arquivo. Em seu sistema, pode ser que não haja um arquivo necessário e você pode criá-lo. Para um arquivo existente, basta abri-lo. Para um catálogo vazio, criamos com **.list**: ``` nano mysql.list ``` Screenshot №4 - Repo list of MySQL Nessa linha, podemos indicar o arquivo assinado para o repositório, o link e a versão dos servidores que estão sendo usados. Normalmente, precisamos adicionar o arquivo **.gpg** ao sistema. No momento da atualização do pacote de índice, nossa máquina verificou a chave pública do nosso repositório e, em seguida, atualizou todas as informações. Esse mecanismo de assinatura eletrônica ajuda a salvar a integridade e a verificar o autor dos dados. Podemos adicionar a chave pelo comando, onde key.asc é a sua chave pública: ``` gpg --import key.asc ``` Screenshot №5 - List of public keys E agora podemos usar o repositório para atualização e instalação do software, executando o comando abaixo: ```bash apt update ``` Screenshot №6 - Update Estamos instalando o software para verificar se o repositório funciona: ```bash apt install dnsutils ``` Screenshot №7 - Instalação ## Conclusão Este guia fornece uma compreensão abrangente dos repositórios e de seus componentes, permitindo que os usuários gerenciem com eficácia as fontes de software em seus sistemas baseados no Debian. https://serverspace.com.br/support/help/how-to-check-get-postgresql-version.md Descubra as etapas simples para verificar e obter a versão do PostgreSQL. Saiba como encontrar sua versão do PostgreSQL! ## Introdução No sistema DBMS moderno, podemos fazer quase tudo com os dados, e as habilidades de operação são significativas. Neste tutorial, consideramos o processo de verificação da versão do sistema de gerenciamento de banco de dados, que pode ajudar se você quiser instalar software adicional e verificar se está de acordo com seu conjunto, saber quais são as funções disponíveis em sua versão etc. ## Verificar versão Já instalamos o DBMS PostgreSQL em nossa máquina. Primeiro, trocamos o usuário para **postgres**: ``` sudo -i -u postgres && psql ``` Screenshot №1 - Login Como você pode ver, depois de digitar o comando **psql**, temos informações resumidas sobre nossa versão do DBMS **15.3** e as próximas informações do sistema operacional. Mas como podemos ver mais detalhes? Vamos digitar o comando abaixo: ```sql SELECT version(); ``` **Destaque! **Após a maioria das solicitações, precisamos digitar ponto e vírgula como um final de solicitação. Screenshot №2 - Version of DB Para sair, você pode digitar o comando: ``` exit ``` Ou simplesmente matar o processo com a combinação de botões Ctrl+Z Screenshot №3 - Exit ## Conclusão Este tutorial esclareceu a importância de entender e gerenciar a versão de um sistema de gerenciamento de banco de dados (DBMS). No âmbito dos modernos sistemas DBMS, é fundamental ter as habilidades necessárias para operar e navegar pelo sistema de forma eficiente. A capacidade de verificar a versão do seu DBMS serve a vários propósitos, desde garantir a compatibilidade ao instalar software adicional até saber quais recursos estão disponíveis em sua versão específica. https://serverspace.com.br/support/help/postgresql-to-manage-users.md Descubra o poder do PostgreSQL para o gerenciamento eficiente de usuários. Saiba como aproveitar os recursos do PostgreSQL. ## Introdução Os sistemas de informação estão presentes em várias esferas de negócios e em nosso ciclo de vida: assistência médica, produção, cultivo de alimentos, entretenimento etc. Tudo isso precisava salvar, compartilhar, extrair, obter e atualizar dados com mais eficácia. Para isso, a comunidade desenvolveu o armazenamento de dados estruturados e criou diferentes tipos de BD para finalidades distintas. Nestas instruções, consideraremos um desses exemplos, o PostgreSQL, e como gerenciar usuários nele. ## Gerenciamento Instalamos o Sistema de Gerenciamento de Banco de Dados (SGBD) PostgreSQL em nossa máquina, e nossa etapa inicial envolve mudar o usuário para **postgres**: ``` sudo -i -u postgres ``` ```bash psql ``` Screenshot №1 - Login Para verificar o usuário no DBMS, podemos usar o comando abaixo: ```sql SELECT * FROM pg_catalog.pg_user; ``` Screenshot №2 - Show users Agora podemos adicionar uma nova conta e, para isso, precisamos indicar o rótulo e a senha: ```sql CREATE USER serverspace WITH PASSWORD 'mypassword.com'; ``` E para garantir que nosso comando funcione corretamente, podemos destacar a legenda **CREATE ROLE**como confirmação e digitar o comando para verificar o usuário novamente: ```sql SELECT * FROM pg_catalog.pg_user; ``` Screenshot №3 - Create user Na tabela, estão representados todos os parâmetros do novo usuário adicionado. Agora, precisamos conceder privilégios também por meio do comando: ``` GRANT ALL ON ALL TABLES IN SCHEMA public TO serverspace; ``` Vamos explicar a sintaxe dessas consultas complexas: - GRANT ALL - é um comando de sintaxe que força a concessão de todos os privilégios ou privilégios administrativos para o usuário; - ON ALL TABLES - significa conceder privilégio para todas as tabelas; - IN SCHEMA - no postgreSQL, usamos o plano de organização das tabelas no BD; - TO serverspace - que indica a conta para escalar o privilégio. Screenshot №4 - Grant privileges Da mesma forma, podemos revogar isso: ``` REVOKE ALL ON ALL TABLES IN SCHEMA public FROM serverspace; ``` Screenshot №5 - Revoke privileges Como você pode notar, a sintaxe do comando lembra a linguagem humana e intuitiva. Também podemos atribuir uma função ao usuário, ou seja, um grupo especial para facilitar o gerenciamento: ```sql CREATE ROLE tigers; ``` ``` GRANT tigers to serverspace; ``` Screenshot №6 - Create and grant role Há casos em que precisamos restaurar a senha ou atualizá-la devido a fatores humanos ou problemas técnicos; para isso, podemos usar o comando: ```sql ALTER USER serverspace WITH PASSWORD 'newpassphrase'; ``` Screenshot №7 - Change password Para excluir a conta, podemos usar a consulta SQL DROP: ```sql DROP USER serverspace; ``` E verificar a lista de usuários atuais no DBMS: ```sql SELECT * FROM pg_catalog.pg_user; ``` Screenshot №8 - Excluir usuário ## Conclusão Os sistemas de informação desempenham um papel fundamental em vários aspectos de nossas vidas, abrangendo setores como saúde, produção, agricultura, entretenimento e outros. A necessidade de armazenar, compartilhar, recuperar e atualizar dados com eficiência nesses sistemas levou ao desenvolvimento de soluções de armazenamento especializadas para dados estruturados. Um exemplo disso é o PostgreSQL, um sistema de gerenciamento de banco de dados (DBMS) poderoso e versátil. https://serverspace.com.br/support/help/debian-errors-solution.md Resolva os erros do Debian de forma eficaz: Método especializado e dicas de solução de problemas. Rede, sistema de arquivos e outra solução para seu problema! ## Introdução Problemas, erros, bugs e servidores que não estão funcionando são uma pequena lista de problemas em potencial para administradores, especialistas em segurança da informação etc. Todos nós precisamos resolver um problema que apareceu o mais rápido possível! Mas como começar, onde está a localização do motivo e como lidar com isso? Vamos considerar a principal área de possíveis problemas: sistema de arquivos, serviços, unidades etc. Devido à enorme quantidade de problemas que aparecem, eles têm sua própria maneira de resolvê-los. Podemos dividir o processo de solução de problemas em duas etapas: analisar e aplicar a solução! ## Primeira etapa: Analisar Antes de tudo, precisamos identificar o problema e a área no sistema operacional. Podemos ver a mensagem de erro do programa, utilitário ou serviço. Por exemplo, o sistema de controle de acesso e gerenciamento de contas pode imprimir esse erro na tela: Screenshot №1 - Message of problem Não temos permissão para o arquivo criado pelo **root** porque ele tem o atributo 700. Isso significa que o root tem o direito rwx, mas outros usuários e grupos não têm! Para resolver esse tipo de problema, altere o atributo do arquivo ou catálogo necessário. Além disso, o sistema pode não notificá-lo sobre o que está acontecendo em seu interior, pois isso não interrompe o processo. O sistema operacional é como uma caixa preta com milhões de processos internos e precisamos monitorar todos eles. **Aviso!** Mas cada sistema, aplicativo ou serviço pode ter seu próprio utilitário de registro ou arquivo para solução de problemas. Vamos dar uma olhada no log do sistema, para saber exatamente como todos os problemas do sistema são documentados aqui: ``` journalctl | grep "login" | tail ``` Esse comando tem várias funções, vamos dar algumas explicações. O primeiro comando permite verificar os logs do sistema, o segundo ajuda a encontrar um padrão de texto na quantidade de dados e o último mostra o fim dos logs. No resultado, temos o fim dos registros de login do sistema operacional: Screenshot №2 - Log message of login É engraçado destacar, mas no servidor para os objetivos do experimento, não definimos a chave pública e você pode ver o motivo dos possíveis problemas: vários endereços IP estão tentando entrar na máquina. Portanto, defina uma chave pública confiável. Isso ajuda a descobrir a origem do problema. Também podemos usar isso para verificar o status de um dos serviços, se virmos o problema abaixo, basta digitar: ``` journalctl -xeu postgresql@15-main.service ``` Screenshot №3 - Problema com o serviço Com as recomendações acima, podemos verificar o diário das unidades de ação: Screenshot №4 - Problema com a unidade Na tela acima, podemos ver o arquivo Subject com o problema Unit failed, verificar raw com a tag **FATAL**. Nesse caso, há um problema nos arquivos de configuração e, portanto, a unidade não pode ser iniciada! ## Segunda etapa: Solução Se quiser verificar o status dos serviços, você precisará digitar: ```bash systemctl list-units -t service -p important ``` Screenshot №5 - Active units Vamos solucionar o problema do serviço postgresql, acessar o arquivo de configuração e encontrar o erro raw: Screenshot №6 - Error raw Exclua-os com a combinação de botões **Ctrl + K**, salve-os e reinicie o serviço: ```bash systemctl restart postgresql@15-main.service ``` E, ao mesmo tempo, precisamos verificar o status do serviço: ```bash systemctl status postgresql@15-main.service ``` Screenshot №7 - Working service Para o seu caso, talvez você precise de uma etapa mais exata para resolvê-los, vamos pesquisá-los pela mesma mensagem de erro no mecanismo de pesquisa ou nos serviços geradores de IA, como o GPT. Nesse artigo, consideramos ferramentas de monitoramento para resolver seus erros. Além disso, se não conseguir encontrar o motivo do problema, mas sua máquina estiver funcionando lentamente, você pode instalar o Task Manager - atop: ```bash apt install atop -y ``` Em seguida, basta digitar **atop **e aguardar a janela pop-up com o processo principal em execução: ``` atop ``` Screenshot №8 - atop Na última coluna, podemos ver o campo CPU com a porcentagem de uso do processo no momento atual e, se houver uma carga alta, então, mate o processo ou suspenda-o: ``` kill -SIGINT 332697 ``` E o segundo comando para eliminá-los: ``` kill -SIGTERM 332697 ``` Screenshot №9 - PID trouble Se a CLI não retornar uma mensagem com o problema, então a execução foi bem-sucedida! ## Conclusão Encontrar erros e desafios em um sistema baseado no Debian é uma parte comum da administração do sistema. Este guia abordou vários aspectos da identificação e resolução eficaz desses problemas. https://serverspace.com.br/support/help/analysis-of-debian-kernel-errors-troubleshooting.md Descubra soluções eficazes para solucionar erros do kernel do Debian por meio de uma análise criteriosa. Saiba como resolver os problemas. ## Introdução Os erros do kernel representam um desafio formidável no domínio dos sistemas de computador, provocando frustração e preocupação entre os usuários de todos os níveis de conhecimento. Situado no centro de qualquer sistema operacional, o kernel assume um papel fundamental na orquestração dos recursos de hardware e na proteção da estabilidade do sistema. No entanto, quando esses kernels intrincados encontram erros, as consequências podem ser terríveis, desde falhas no sistema até perda de dados e instabilidade generalizada do sistema. Neste guia abrangente, vamos nos aprofundar no intrincado mundo da solução de problemas de erros do kernel. Nossa jornada incluirá um exame das origens comuns desses erros, as repercussões de longo alcance que eles causam nos sistemas de computador e, o mais importante, o arsenal de técnicas e metodologias à nossa disposição para o diagnóstico e a resolução proficientes desses problemas enigmáticos. Independentemente de sua função envolver administração de sistemas, desenvolvimento de software ou apenas uma curiosidade apaixonada pelo funcionamento interno dos sistemas de computação, dominar a arte de lidar com erros de kernel é uma habilidade de valor imensurável, que oferece os meios para garantir a vitalidade e a confiabilidade de seus domínios digitais. ## Primeiro estágio: Erros Os problemas no sistema operacional podem aparecer inesperadamente: E/S lenta do disco, dispositivo desaparecido, alta carga da CPU. Todo esse impacto crítico para o servidor moderno é inaceitável. Para isso, temos vários utilitários de sistema para monitorar e registrar os eventos que ocorrem. Syslog - é um diário do sistema que pode ajudar na investigação de incidentes de software, daemon, sistema de arquivos, rede e outros problemas. No entanto, ele não abrange mensagens, problemas de dispositivos e drivers. Esse espaço no sistema de monitoramento é preenchido pelo kernel por sua função de registro, que usa um canal especial - buffer em anel - para transferir todas as mensagens e informações do kernel sobre dispositivos conectados, seus drivers etc. Para ler as mensagens do kernel, podemos usar o utilitário dmesg, que tem várias opções para trabalhar com o registro: ``` dmesg ``` Screenshot №1 - Message from kernel A tela exibirá várias informações que o kernel envia para o arquivo de registro. Com essa quantidade de dados, não podemos trabalhar. Para isso, temos opções que especificam as informações impressas: ``` dmesg -H ``` Screenshot №2 - Use option H Os dados são ajustados de acordo com o padrão e a classificação pelo domínio. Mas ainda não temos informações em tempo real do módulo de registro do kernel, vamos corrigir isso digitando o comando abaixo: ``` dmesg -H -w ``` Screenshot №3 - Use a opção H e w Para observar apenas as mensagens do kernel e do serviço, especifique a opção -k; por padrão, o serviço de registro exibe apenas mensagens de erro e de aviso. A opção -k permite a saída de todas as mensagens, inclusive as informativas: ``` dmesg -k -H ``` Screenshot №4 - Use as opções H e k Para limpar o buffer da mensagem do kernel, basta digitar: ``` dmesg -c ``` Para limitar a mensagem do buffer, use -s: ``` dmesg -s 4096 ``` É importante saber! Se você aumentar o tamanho do buffer, isso, pela lógica, exigirá mais espaço no disco. Mas isso é útil se você tiver problemas de desempenho em seu computador, pois as mensagens aparecerão com mais frequência! Também podemos usar o pipeline para filtrar o diário, por exemplo: ``` dmesg -H | grep "error" ``` Dessa forma, podemos monitorar o status dos dispositivos, drivers e kernels. Para a próxima etapa, vamos considerar o principal problema com o kernel, que pode aparecer repentinamente. ## Solucionar o problema No Linux, há vários tipos de erros críticos para o kernel, que devemos conhecer: Se você encontrar a mensagem de erro **Segmentation fault** inesperadamente, isso pode indicar um problema com o driver. Nesses casos, você tem a opção de atualizar o driver ou desinstalá-lo e substituí-lo por um diferente. Nesse caso, em primeiro lugar, devemos verificar os módulos carregados no kernel, usando o comando: ``` lsmod ``` Se você vir seu driver ou módulo nessa lista, isso significa que ele foi iniciado, mas não está funcionando corretamente. Reinstale seus drivers pela maneira padrão por meio dos utilitários apt-get, aptitude ou use o código-fonte para compilar. Da mesma forma, se você se deparar com a mensagem de erro **Divide por zero**, isso pode sugerir um bug de software. Nesse cenário, você pode considerar a atualização do software ou o ajuste da configuração do sistema para resolver o problema. Nesse caso, devemos procurar problemas no módulo de uso, devido à probabilidade de o kernel de trabalho incorreto ir para o valor mínimo. Se usarmos um software com um módulo pré-instalado, reinstale-o e lembre-se de usar a opção purge! ```bash apt purge software_name ``` E, em seguida, use o autoremove para limpar o espaço em disco das bibliotecas não utilizadas: ```bash apt autoremove ``` Além disso, se você vir a mensagem de erro **Kernel panic**, isso pode indicar um problema crítico com o kernel. Em resposta, você pode tentar resolver o problema reiniciando o sistema ou restaurando-o a partir de um backup salvo anteriormente. Se você clonar o sistema, precisará inicializar e entrar no BIOS, para alterar o boot para o IMG de backup. No Serverspace, precisamos ir para a página principal e escolher o servidor necessário: Screenshot №5 - Main page Mude a guia para Recovery e, em seguida, altere o modo de inicialização para Boot from recovery image: Screenshot №6 - Recovery Portanto, na próxima inicialização, será carregada uma imagem adicional, mas o que fazer se isso não ajudar? O núcleo entrou em estado de pânico e, com a mensagem padrão de que não é possível resolver o problema, você precisará instalar o mod de recuperação **kdump**. Esse módulo do kernel ajudará a reunir dados, variáveis e fornecerá informações mais detalhadas sobre o problema. ## Conclusão A navegação dos meandros dos erros do kernel nos sistemas de computador é uma tarefa desafiadora, que exige nossa atenção e conhecimento. Esses erros, muitas vezes imprevistos e perturbadores, podem se manifestar de várias maneiras, afetando o desempenho e a estabilidade do sistema. Para resolver esses problemas de forma eficaz, exploramos as ferramentas à nossa disposição, como syslog e dmesg, para monitorar e analisar as mensagens do kernel, fornecendo informações valiosas sobre a integridade do sistema. https://serverspace.com.br/support/help/python-string-concatenation.md Aprenda a arte da concatenação de strings em Python: Descubra métodos eficientes para combinar strings em Python. Explore as diferentes maneiras! ## O que é isso? As cadeias de caracteres de concatenação em Python representam a consolidação de duas ou mais cadeias de caracteres em um único exemplo. Isso pode ser útil no processo de trabalho com tarefas de automatização e ações de rotina. Consideramos formas clássicas e mais recentes de unificação, você pode usar isso em seu programa e escolher uma abordagem mais eficaz: operadores e métodos! ## Operador e união No caso clássico, podemos usar o operador + para unificar dois ou mais no passado declarado implicitamente por meio da variável ou explicitamente na linha de strings de comando: ``` string1 = "Hi" string2 = "Serverspace!" string_res = string1 + ", " + string2 print(string_res) ``` Na cadeia de caracteres de resultado, usamos um operador com as mesmas estruturas de dados e, sem nenhum problema, temos uma linha na saída. Podemos declarar e consolidar de forma explícita: ``` string_res = "Hi" + ", " + "Serverspace" print(string_res) ``` Não se esqueça também da declaração híbrida: ``` string_between = ", " res = "Hi" + string_between + "Serverspace!" print(res) ``` Para usar o método de junção do tipo string, primeiro precisamos declarar a lista de strings que usaremos: ``` strings_bef = ["Hi", "Serverspace"] res= ", ".join(strings_bef) print(res) ``` A vírgula entre as aspas significa sinal de separação, se tivermos . Também podemos declarar de outra forma: ``` string1 = "Hi" res = ", ".join([string1, "Serverspace"]) print(res) ``` Mas se quisermos concatenar diferentes estruturas de dados, precisaremos usar o método str ou format! ## Métodos Também como nos exemplos acima, podemos declarar isso em uma linha por meio do método str(): ``` years = 35 text = "Congratulations on the " + str(years) + "th " + "anniversary" print(text) ``` Na saída desse trecho de código, obtemos a linha "Congratulations on the 35th anniversary" (Parabéns pelo 35º aniversário). Se você tiver dados preparados, deverá usar o método abaixo: ``` first = 5 second = "car's" res = "I have {} {}".format(first, second) print(res) ``` Dessa forma, o sinal {} significa campo para os dados e, no atributo to format, indicamos os mesmos dados. No entanto, há mais uma maneira de concatenar strings, por meio da linha f: ``` goals = 10 print(f"I have done {goals} tasks!") ``` Como resultado, podemos ver: "Eu fiz 10 tarefas!", na minha opinião, essa é uma maneira mais confortável e rápida de concatenar! ## Conclusão Em conclusão, dominar a concatenação de strings em Python é uma habilidade indispensável para qualquer programador. Independentemente de estar trabalhando em tarefas simples de manipulação de texto ou em projetos complexos de processamento de dados, entender como unir e manipular cadeias de caracteres com eficiência em Python pode aprimorar muito seus recursos de codificação. https://serverspace.com.br/support/help/how-to-work-with-unicode-in-python.md Descubra técnicas essenciais para trabalhar com Unicode em Python. Aprenda a codificar e decodificar em seus projetos Python. ## O que é isso? O Unicode serve como um padrão de codificação de caracteres que abrange praticamente todos os idiomas escritos em todo o mundo e é atualmente o padrão dominante para a Internet. Em sua essência, o Unicode é uma abordagem sistemática para representar o texto de forma linear. A cada caractere Unicode é atribuído um código exclusivo, um número inteiro que varia de 0 a 1.114.111. Esses códigos desempenham um papel fundamental na representação de caracteres em sistemas de computador, incluindo sistemas operacionais, navegadores da Web e vários aplicativos. O Unicode apresenta várias vantagens quando comparado a sistemas alternativos de codificação de caracteres, como ASCII e ISO 8859-1. Ele oferece suporte abrangente para uma vasta gama de caracteres, cobrindo todas as línguas escritas do mundo. Além disso, o suporte do Unicode para códigos multibyte permite a representação de caracteres complexos, como hieróglifos. Mas é preciso ressaltar que o Unicode não é um algoritmo de código, mas sim um conjunto de pontos de código, como um banco de dados de indicadores. Portanto, existem algoritmos de código que usam essa base, por exemplo: UTF-8, UTF-16, UTF-32, UCA, BIDI, etc. ## Como usá-lo? Python já suporta Unicode e tem no modelo padrão o algoritmo UTF-8/16/32, devemos usar várias instruções .encode e .decode para converter dados: ``` print("That's data!".encode("utf-16")) #Output b'xffxfeTx00hx00ax00tx00 x00ix00sx00 x00dx00ax00tx00ax00!x00' ``` Na saída, podemos ver um conjunto de dados separados por um sinal de barra e x é um sistema de codificação de 16 bits. Também podemos decodificar em letras latinas com o comando: ``` print(b'xffxfeTx00hx00ax00tx00 x00ix00sx00 x00dx00ax00tx00ax00!x00'.decode("utf-16")) #Output 'That is data!' ``` Como destacamos anteriormente, o Unicode, portanto o UTF-8, é compatível com letras árabes, hieróglifos e a maior parte da linguagem escrita: ``` print("العربية".encode("utf-16")) #Output b"xffxfe'x06Dx069x061x06(x06Jx06)x06" ``` E da mesma forma que descrevemos acima - decodificar: ``` print(b"xffxfe'x06Dx069x061x06(x06Jx06)x06".decode("utf-16")) #Output 'العربية' ``` Além disso, você pode não identificar o algoritmo para converter o valor, por exemplo: ``` print("Hi, my name is Jhon!".encode()) #Output b'Hi, my name is Jhon!' ``` E decodificar da mesma forma: ``` print(b'Hi, my name is Jhon!'.decode()) #Output 'Hi, my name is Jhon!' ``` Há um método que permite exibir o valor dos dados convertidos para o sistema de cálculo decimal: ``` print(list(b"xffxfe'x06Dx069x061x06(x06Jx06)x06")) #Output [255, 254, 39, 6, 68, 6, 57, 6, 49, 6, 40, 6, 74, 6, 41, 6] ``` A lista pode ser útil em diferentes cenários para seu programa e utilitário. No entanto, nem todos os algoritmos usam Unicode da mesma forma. Se tentarmos representar nossa mensagem de texto "Here's my data!" (Aqui estão meus dados!), obteremos várias respostas: ``` print("Here's my data!".encode("utf-16")) #Output b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00' ``` E se tentarmos decodificar para utf-8 ou utf-32, veremos: ``` print(b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00'.decode("utf-8")) #Output UnicodeDecodeError: 'utf-8' codec can't decode ``` ``` print(b'xffxfeHx00ex00rx00ex00x19 sx00 x00mx00yx00 x00dx00ax00tx00ax00!x00'.decode("utf-32")) #Output UnicodeDecodeError: 'utf-32' codec can't decode ``` Nos dois casos, recebemos mensagens sobre a impossibilidade de decodificar os dados dessa forma! ## Conclusão O Unicode é um padrão fundamental de codificação de caracteres que abrange a vasta gama de idiomas escritos em todo o mundo, tornando-o o padrão dominante para a Internet. Essa abordagem sistemática atribui um código exclusivo a cada caractere Unicode, permitindo uma representação perfeita em vários sistemas e aplicativos de computador. https://serverspace.com.br/support/help/how-to-configure-apache.md Saiba como configurar o servidor da Web Apache com instruções passo a passo. Configure e personalize seu servidor Apache. ## Introdução No início do século XXI, você deve ter ouvido falar sobre a nova revolução nas tecnologias da informação, a WEB 2.0, e agora estamos quase chegando à WEB 3.0, mas vamos falar sobre os pequenos detalhes. O que isso significa? WEB ou World Wide Web é uma tecnologia ou sistema global que unifica servidores da Web, DNS e CDN, que representam serviços de pesquisa e uso de conteúdo: páginas da Web, aplicativos da Web e serviços da Web. Esse sistema se divide na linha do tempo pelas versões 1.0, 2.0 e a próxima 3.0. Mas um dos principais detalhes desse esquema é o servidor da Web. Ele representa as consultas de processamento de software dos clientes e as respostas de formulário devido à configuração e às regras nele contidas. ## Configuração Já instalamos o pacote Apache2 em nossa máquina. Para iniciar o servidor Web, precisamos verificar o serviço no **sysetmd**, iniciá-lo e ativar a inicialização automática: ```bash systemctl list-units | grep "apache2" ``` No visor, aparecerá uma lista de unidades com a opção de filtragem **apache2**, salve o rótulo da unidade e inicie-a com o comando abaixo: ```bash systemctl start apache2.service ``` Em seguida, ative a inicialização automática na inicialização: ```bash systemctl enable apache2.service ``` Certifique-se de que o servidor Web tenha permissão para alterar a configuração por meio dos arquivos adicionais; para isso, podemos alterar o valor **AllowOverride** para **All**: ``` nano /etc/apache2/apache2.conf ``` Screenshot №1 - Main config Nas diferentes versões do Apache2, existem dois exemplos de configuração principal: httpd.conf e apache2.conf. Para determinar o arquivo em seu caso, use o comando abaixo: ``` find / -name httpd.conf && find / -name apache2.conf ``` Screenshot №2 - Search A ativação do AllowOverride permite que o servidor compreenda as diretivas definidas nos arquivos .htaccess encontrados nas pastas do seu site. Esse recurso promove maior flexibilidade e possibilidades de personalização por diretório, elevando assim a funcionalidade e a segurança do seu servidor da Web. Agora podemos prosseguir com a configuração do arquivo .htaccess, que serve como uma extensão da nossa configuração existente. Quaisquer alterações e definições nesse arquivo influenciarão o resultado da configuração. Vamos ilustrar como isso funciona com uma configuração padrão. Em primeiro lugar, devemos ativar a função que nos ajuda a substituir as configurações atuais de cada um dos sites pelo comando abaixo: ``` mkdir /etc/site-test ``` ``` nano /etc/apache2/sites-available/000-default.conf ``` Screenshot №3 - Configuração do site Modifique o parâmetro **ServerName** para refletir seu próprio domínio e defina **AllowOverride** como o valor **All**. É importante observar que você deve ter um registro DNS correspondente no painel do seu provedor, onde há um registro com o endereço IP público do servidor necessário. Além disso, ajuste o "DocumentRoot" que contém o html e outros arquivos para o site desejado. Estamos criando um diretório chamado **site-test** e a página principal index.html: ``` nano /etc/site-test/index.html ``` Screenshot №4 - Web-page ```html OUR SITE # ALL WORKING PROPERLY! ``` O conteúdo e a estrutura de sua página da Web podem ser diferentes, mas a parte principal deve ser intocável. Agora, no mesmo diretório, vamos gerar um novo arquivo que estabelece uma lógica de comportamento. Vamos criar o arquivo: ``` nano /etc/site-test/.htaccess ``` ``` RewriteEngine On RewriteRule ^hello$ index.html [L] ``` Screenshot №5 - Site config Na tela acima, ativamos o módulo de reescrita que instalaremos na próxima etapa. Na linha seguinte, estabelecemos uma regra vinculada a uma página e associamos a ela o atributo [L], indicando que essa é a etapa final a ser executada, e todas as instruções subsequentes serão ignoradas. Para garantir a funcionalidade adequada, é fundamental ativar o módulo de reescrita, que está incluído no pacote Apache2, e, portanto, reiniciar o serviço. ``` sudo a2enmod rewrite && systemctl restart apache2 ``` Screenshot №6 - Enable module Certifique-se de que nossas alterações foram aplicadas: Screenshot №7 - Result ## Conclusão Em resumo, considere os principais pontos na configuração do servidor da Web, que permitem controlar a conta e o acesso, fornecer um sistema de proteção, gerenciar erros com elegância e redirecionar URLs com elegância. Isso também fornece um conjunto de configurações para criar sua primeira página da Web, garantindo uma experiência on-line verdadeiramente exclusiva e dinâmica. https://serverspace.com.br/support/help/how-to-install-mysql-on-ubuntu.md Saiba como instalar o MySQL no Ubuntu com instruções passo a passo. Nosso guia abrange o processo de instalação para ajudá-lo a configurar o MySQL. ## Introdução O MySQL é uma escolha altamente favorecida nos sistemas modernos de rede e automação por seus recursos e capacidades robustos. Como um Sistema de Gerenciamento de Banco de Dados Relacional (RDBMS) confiável e dimensionável, ele garante a integridade dos dados, o que é fundamental nesses contextos em que dados estruturados, como configurações e estados de dispositivos, devem ser gerenciados com eficiência. Seu excelente desempenho, a natureza de código aberto e o amplo suporte da comunidade o tornam acessível e adaptável a vários ambientes. Os recursos de segurança do MySQL protegem informações confidenciais, e sua compatibilidade com diferentes linguagens de programação e ferramentas aumenta a integração. Além disso, ele oferece soluções de confiabilidade e disponibilidade, minimizando o tempo de inatividade. Em essência, o MySQL serve como a pedra angular para armazenar, recuperar e analisar dados críticos em sistemas de rede e automação contemporâneos. ## Como fazer o download? No site oficial, podemos ver diferentes maneiras de baixar vários tipos de produtos, como sistemas operacionais e gerenciadores de pacotes: Screenshot №1 - Lista de software Em nosso guia, consideraremos a instalação de dois componentes principais: Community Server e Cluster no Ubuntu. O primeiro produto representa um banco de dados gratuito e de código aberto que se ajusta a vários casos: armazenar dados para aplicativos, sites, pequenos sistemas de automação ou dados de uso mínimo. O segundo produto representa uma versão autoaperfeiçoada do produto Community com pontos-chave que diferenciam a escalabilidade e a tolerância a falhas para uso em sistemas de automação complexos. Isso é possível graças ao mecanismo de replicação que copia os dados para vários hosts ao mesmo tempo. Screenshot №2 - Download interface Para instalar o pacote, podemos usar o shell gráfico ou da CLI. Como o servidor geralmente não tem interface gráfica, consideraremos a CLI. **Destaque! **Se você usa outro sistema operacional, precisa mudar de categoria e trabalhar com ele antes. Na próxima etapa, baixe o arquivo de configuração por meio do utilitário wget; se não o tiver, basta digitar: ```bash apt install wget -y ``` E agora indique o link na opção para download: ```bash wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb ``` Screenshot №3 - Download package Com esse comando, podemos instalar o repositório apt para o sistema operacional Ubuntu. Execute-o com o comando abaixo: ``` dpkg -i mysql-apt-config_0.8.26-1_all.deb ``` Screenshot №4 - Select version Vamos instalar o servidor, portanto, escolha o primeiro ponto no menu acima. Em seguida, precisamos indicar a versão do software usado, que, no nosso caso, é **mysql-8.0**: Screenshot №5 - Choose version Se você escolher a versão e o script roll novamente, poderá encontrar o botão **OK** na parte inferior do menu e sair dele. Na próxima etapa, instalaremos o pacote com o servidor: ```bash apt update && apt install mysql-server -y ``` Screenshot №6 - Installation server No processo de instalação, podemos ver o menu pop-up, digite uma senha forte com letras maiúsculas, sinais especiais, não use palavras frequentes e o comprimento deve ser de, no mínimo, 13 sinais. Talvez você tenha se perguntado por que usamos exatamente treze sinais para isso. O tempo médio para a força bruta de dados com esse tipo de senha é de aproximadamente várias décadas. Screenshot №7 - Senha Na etapa seguinte, você precisa escolher o padrão de criptografia: Screenshot №8 - Encryption Depois de várias telas com opções, podemos entrar no sistema MySQL, por meio do comando: ```bash mysql -u root -p ``` Screenshot №9 - Enter in the MySQL Indicamos a opção com usuário, senha e, depois de inserir o segundo, podemos usar o DBMS! ## Conclusão A versatilidade, o desempenho e os recursos de segurança do MySQL fazem dele a escolha preferida para lidar com dados críticos em sistemas modernos de rede e automação, e seu processo de instalação, conforme descrito no guia, garante uma configuração tranquila em um sistema baseado no Ubuntu. https://serverspace.com.br/support/help/how-to-limit-in-the-mysql.md Saiba como limitar suas consultas ao banco de dados MySQL de forma eficaz com este guia abrangente. Explore a cláusula SQL LIMIT e sua sintaxe! ## Introdução ## Chave primária Uma das limitações da função de exibição para identificar valores na tabela - Chave primária. Ela representa uma lista de regras unificada e abstrata, que ajuda a criar relações com diferentes tabelas por meio do uso de chave estrangeira. Os valores devem ser exclusivos e não NULL. Por exemplo, imagine que temos uma loja on-line e precisamos numerar nossos clientes, que podem ter o mesmo nome, data de nascimento e outros dados pessoais. Nesse caso, usaremos essa limitação para identificar o cliente necessário: ```sql CREATE TABLE client ( identificator INT NOT NULL AUTO_INCREMENT, first_name VARCHAR(30) NOT NULL, PRIMARY KEY (identifier, first_name) ); ``` Criamos a tabela **client**com as colunas **identificator** e **first_name** e, a seguir, escrevemos o parâmetro PRIMARY KEY e as colunas identificate para isso. Para testar como isso funciona, nosso gerente ou sistema adiciona dados com dois clientes: ```sql INSERT INTO client (identificator, first_name) VALUES ('1', 'Loren'); ``` E o segundo cliente pelo comando manual: ```sql INSERT INTO client (identificator, first_name) VALUES ('2', 'Sara'); ``` Vejamos o que obtemos no resultado dessa manipulação: ```sql SELECT * FROM client; ``` Agora, todos os registros nessas colunas são identificadores e exclusivos. Se o nosso gerente tentar publicar novos dados com o mesmo nome ou ID, ele receberá uma mensagem de erro: Screenshot №3 - Error message É uma restrição importante nos sistemas e aplicativos modernos, onde precisamos salvar dados pessoais, informações sobre pagamentos bancários e outras informações confidenciais, o sistema deve funcionar corretamente! Se quiser remover a PRIMARY KEY, você precisa escrever: ```sql ALTER TABLE client DROP PRIMARY KEY; ``` Esse comando exclui a chave de sua tabela! ## UNIQUE & NOT NULL Na próxima restrição, faça uma distinção com o método descrito acima. UNIQUE garante que todos os registros da coluna terão um valor exclusivo! Já criamos a tabela e agora precisamos modificá-la, adicionando um novo parâmetro: ```sql ALTER TABLE client ADD COLUMN email VARCHAR (31) NOT NULL UNIQUE; ``` Verifique o formato da tabela usando o comando descrito anteriormente: ``` DESC client; ``` A primeira chave UNIQUE será transformada em PRIMARY KEY, se ainda não existir, devido à necessidade de identificar cada linha. Nesse caso, você precisa adicionar a primária conforme descrito acima ou criar outra coluna com a chave UNIQUE: ```sql ALTER TABLE client ADD COLUMN email_reserv VARCHAR (31) NOT NULL UNIQUE; ``` E mostrar o formato na tabela: ``` DESC client; ``` Screenshot №4 - UNIQUE key Como você pode ver acima, na primeira tabela a chave é PRIVATE, mas também adicionamos outra coluna e o valor da chave foi definido como UNIQUE. Dê uma olhada no nosso exemplo, gerente, e tente novamente adicionar a mesma coluna de e-mail que eles escrevem: ```sql INSERT INTO client (id, email, email_reserv) VALUES ('1', 'email@mail.com', 'reserv_email@mail.com'); ``` E a segunda linha duplicada: ```sql INSERT INTO client (id, email, email_reserv) VALUES ('2', 'email@mail.com', 'reserv_email@mail.com'); ``` Screenshot №5 - Duplicate row Isso ajuda a salvar a integridade, evitar problemas no sistema e aumentar o desempenho do banco de dados. Nos dois últimos métodos, não falamos sobre outra limitação - NOT NULL. A célula no banco de dados deve ter determinado tipo ou valor, mas há situações em que identificamos valores no processo de trabalho do sistema. **Importante agora! **NULL não representa valor 0, é literalmente o vazio. Na comparação, você pode imaginar uma rolha, que tem propriedades próprias, mas não é um valor! ## DEFAULT & CHECK Continue e dê uma olhada nas limitações dos valores DEFAULT e CHECK. Eles executam funções que também são atribuídas com seus nomes. DEFAULT destina-se a gravar um valor preparado antecipadamente quando a célula no BD não recebe dados, o que ajuda a evitar problemas e a definir o valor padrão. CHECK representa uma lista de regras para filtrar a entrada de dados; se eles se enquadrarem nas regras, serão inseridos; de outra forma, serão negados. Em nossa loja, não podemos vender nosso produto para crianças e adolescentes, então precisamos adicionar uma regra de filtragem e, por padrão, o valor será dezoito: ```sql ALTER TABLE client ADD COLUMN age INT CHECK (age BETWEEN 18 AND 65) DEFAULT 18; ``` ``` DESC client; ``` Screenshot №6 - Format table Para verificar as regras de filtragem aplicadas, podemos inserir dados e veremos o resultado: ```sql INSERT INTO client (id, email, email_reserv) VALUES ('4', 'mail.com', 'mail.gg'); ``` ``` DESC client; ``` E mostre a entrada de dados pelo comando: ```sql SELECT * FROM client ``` Screenshot №7 - DEFAULT Na tabela, aparece a entidade com id quatro e a idade padrão indicada, o que ajuda a evitar o mesmo problema descrito acima do campo vazio, que pode afetar o sistema. Mas se não correspondermos aos parâmetros, o sistema não poderá adicionar a linha à tabela: ```sql INSERT INTO client (id, email, email_reserv) VALUES ('4', 'mail.com', 'mail.gg', '5') ``` Screenshot №8 - Erro Se criarmos um sistema ou programa de informações, poderemos identificar o problema pelo ID ou código de erro. ## Conclusão A imposição de limitações de dados em um sistema de gerenciamento de banco de dados é uma prática crucial para manter a qualidade dos dados, a segurança do sistema e a confiabilidade geral do sistema. Ao implementar essas limitações, você pode criar aplicativos robustos e seguros que gerenciam e protegem os dados com eficiência. https://serverspace.com.br/support/help/neofetch-linux-system-information.md Neofetch. Utilitários neofetch do Linux. Uma ferramenta para exibir informações sobre seu sistema Linux como um desenho ASCII exclusivo. O Linux é um sistema operacional amplamente utilizado e gratuito. Ele oferece aos usuários uma ampla gama de recursos e opções de personalização. Entre as ferramentas úteis disponíveis no Linux está o Neofetch. O Neofetch é um utilitário de linha de comando projetado para exibir informações sobre o sistema instalado em uma janela de terminal do Linux. Ele fornece detalhes sobre a versão do sistema operacional, o kernel, o processador, a memória e outras características relevantes do sistema operacional. Essa é uma ferramenta extremamente conveniente para quem trabalha com Linux, pois permite que você obtenha rapidamente informações sobre o sistema sem precisar usar uma GUI. Essa ferramenta permite que os usuários criem desenhos exclusivos de seus sistemas. Neste artigo, veremos os conceitos básicos do Neofetch e como ele pode melhorar sua experiência com o Linux. ## Peculiaridades O Neofetch é um programa escrito em Bash. Ele permite que os usuários exibam informações sobre seu sistema Linux como uma imagem ASCII. Há suporte para várias distribuições do Linux, incluindo Ubuntu, Debian, Fedora, Arch Linux e outras. Essas distribuições podem ser convenientemente instaladas usando seus respectivos gerenciadores de pacotes. ## Instalação O Neofetch, um utilitário de linha de comando para exibir informações do sistema no Linux, pode ser facilmente instalado em várias distribuições Linux usando um gerenciador de pacotes. Por exemplo, no Debian, você pode instalá-lo executando o comando: ```bash apt update && apt upgrade -y ``` ```bash sudo apt-get install neofetch ``` ## Principais recursos Exibição de informações do sistema: Usando a ferramenta Neofetch, é possível exibir várias informações do sistema, incluindo nome de usuário, nome do host, distribuição, arquitetura, versão do kernel e outras informações. Saída personalizável: Você pode personalizar a saída do Neofetch escolhendo os dados a serem exibidos e em que formato. Suporte a temas: O Neofetch suporta vários temas de arte ASCII que são selecionados pelo usuário. Suporte a scripts: O Neofetch permite que os usuários usem seus próprios scripts para personalizar a saída. ## Uso Após a instalação, o Neofetch pode ser acessado com a execução do comando "neofetch" no terminal. Isso apresentará detalhes do sistema em formato de arte ASCII: ``` neofetch ``` Screenshot №1. Apenas inicie o programa sem nenhum parâmetro Você também pode usar sinalizadores e parâmetros adicionais para personalizar a saída do Neofetch de acordo com suas necessidades. Por exemplo, você pode alterar as cores de saída, adicionar um logotipo de distribuição ou alterar a fonte: ``` neofetch --colors 2 7 ``` Para adicionar um logotipo de distribuição, você deve usar o parâmetro --ascii_distro. Por exemplo, para adicionar o logotipo do Ubuntu, execute o seguinte comando: ``` neofetch --ascii_distro ubuntu ``` Screenshot №2. Iniciar com o parâmetro de distro Para alterar a fonte, você deve usar a opção --font. Por exemplo, para alterar a fonte para Inconsolata, execute o seguinte comando: ``` neofetch --font inconsolata ``` O Neofetch também oferece suporte à saída de arte ASCII. Para fazer isso, você deve usar a opção --ascii. Por exemplo, para exibir informações do sistema em formato de arte ASCII, execute o seguinte comando: ``` neofetch --ascii ``` ## Conclusão O Neofetch é um utilitário versátil e fácil de usar que exibe os detalhes do seu sistema Linux em um formato de arte ASCII distinto. Ele oferece saída personalizável e é compatível com diferentes distribuições e temas do Linux. https://serverspace.com.br/support/help/how-to-connect-to-a-mysql-database.md Saiba como se conectar a um banco de dados MySQL sem esforço com nosso guia abrangente. Descubra instruções passo a passo para a conexão. Conexão MySQL ## Introdução Os sistemas de banco de dados são de suma importância no âmbito das operações empresariais por uma série de razões distintas. Eles servem como base para o armazenamento criterioso e a recuperação rápida de dados, garantindo que os inúmeros fluxos de dados gerados por uma empresa sejam meticulosamente organizados e prontamente acessíveis. Ao abordar a preocupação primordial da segurança dos dados, os bancos de dados fornecem recursos de autenticação e criptografia que protegem as informações confidenciais de qualquer incursão injustificada. Eles também servem como sentinelas da integridade dos dados, mantendo zelosamente as regras de consistência, e são dotados de recursos de escalabilidade que podem se expandir sem esforço para acomodar os requisitos crescentes de uma empresa em expansão. Além disso, os bancos de dados fornecem a base analítica essencial para a tomada de decisões orientada por dados e para a geração de relatórios abrangentes, gerenciam com elegância o acesso simultâneo de vários participantes e oferecem mecanismos robustos para backup e recuperação de dados. Sua função de facilitar a adesão aos padrões de conformidade normativa é fundamental, consolidando-os como uma ferramenta indispensável no arsenal das empresas contemporâneas. ## Conexão local e remota Se você tem uma empresa de pequeno ou médio porte em que o servidor tem acesso físico a você, conecte-se por meio do painel local em sua máquina. Além disso, se você tiver acesso remoto ao servidor via SSH, esse método também é adequado para seus objetivos! Para aqueles que usam SSH, primeiro você precisa se conectar ao servidor: ```bash ssh root@94.141.98.22 ``` Em vez de root, indique o login do usuário no servidor e também altere o endereço IP da máquina para o seu! Depois disso, digite a senha ou, se você tiver uma chave pública no servidor, basta conectar-se a ela. Em seguida, precisamos escrever o comando **mysql** e as credenciais para a conexão: ```bash mysql -u root -p ``` A opção -u indica o usuário do banco de dados; se você não tiver dados, adicione o administrador e solicite-os a ele. Com o parâmetro -p, indicamos a autenticação por meio da senha: Screenshot №1 - Local connect Muito bem, estamos no DBMS! Há outra maneira de se conectar ao MySQL, e para isso usaremos duas máquinas. Na primeira, instalamos o cliente do MySQL e, na segunda, o servidor. No lado do **servidor**, precisamos fazer login no sistema com privilégios que permitam criar um usuário e, depois disso, escrever: ```sql CREATE USER 'name_user'@'ip_user' IDENTIFIED BY 'password'; ``` Substitua as credenciais do modelo para o seu caso, ip_user significa o endereço IP do cliente público que será usado para identificá-los no servidor. Se você não as conhece, verifique-as com o comando: ```bash apt-get install curl -y && curl ifconfig.me ``` Essa linha instalará o utilitário **curl** e verificará seu endereço IP: Screenshot №2 - Check IP No meu caso, o endereço IP do cliente é **109.207.171.124**, portanto, após a criação do usuário, a lista deles terá a seguinte aparência: ```sql SELECT user FROM mysql.user; ``` Screenshot №3 - User creation **Lembre-se! **Essa configuração foi feita no lado do servidor! Porém, há outra etapa para conectar-se ao banco de dados remoto, precisamos alterar o arquivo de configuração, pois o servidor MySQL padrão escuta o localhost. Para isso, abra o arquivo e altere a linha com bind-address para **0.0.0.0**: ``` nano /etc/mysql/mariadb.conf.d/50-server.cnf ``` Screenshot №4 - Alterar configuração Talvez você não encontre o parâmetro necessário no arquivo, mas tudo bem, basta **adicioná-lo **abaixo. Salve as alterações com **Ctrl + O** e saia com **Ctrl + X**, se estiver usando o editor de texto nano. Reinicialize o serviço com o comando: ```bash systemctl restart mysql ``` ```bash systemctl status mysql ``` Screenshot №5 - Verificar status Muito bem, o servidor MySQL foi iniciado, vamos passar para o lado do cliente! Para a conexão remota, precisamos digitar: ```bash mysql -u remote -h 94.141.98.98 -p ``` Screenshot №6 - Client command Digite sua senha no campo abaixo e então poderemos ter acesso ao servidor! ## Conclusão Os sistemas de banco de dados são a base do gerenciamento eficiente de dados nas operações empresariais. Eles não apenas garantem o armazenamento ordenado e a recuperação rápida dos dados, mas também servem como bastiões da segurança dos dados, mantendo a integridade das informações e, ao mesmo tempo, aderindo aos padrões regulatórios. Além disso, os bancos de dados fornecem a base analítica para a tomada de decisões informadas, permitem o acesso simultâneo e oferecem mecanismos robustos de backup e recuperação. https://serverspace.com.br/support/help/common-sql-errors-description.md Ocorreu um erro de SQL. O que fazer? A instrução descreve os erros típicos que os usuários cometem ao escrever consultas SQL. Quando você digita alguns comandos para executar uma consulta ao banco de dados, espera obter uma resposta, mas... de repente, algo dá errado e, em vez disso, você recebe uma mensagem de erro. Não precisa se preocupar! Cometer erros ao programar, inclusive ao usar SQL, é completamente normal. Neste artigo, discutiremos os erros comuns que as pessoas costumam encontrar ao escrever código SQL. Exploraremos vários tipos de erros que podem ocorrer ao trabalhar com SQL. Ao final deste artigo, você terá uma melhor compreensão desses erros comuns e poderá evitá-los. É particularmente importante que os iniciantes em SQL estejam cientes desses erros e de como resolvê-los, pois os novatos em codificação geralmente cometem mais erros e gastam mais tempo depurando seu código. O artigo fornecerá mais detalhes sobre os erros comuns de SQL que devem ser observados. ## Passos preliminares Para ilustrar os erros comuns de SQL, criaremos um banco de dados com alguns dados dentro dele. Conecte-se ao seu servidor de banco de dados, crie um banco de dados vazio com o nome _testdb_ e torne esse banco de dados ativo: ```bash mysql -u -p create database testdb; use testdb; ``` Crie duas tabelas no banco de dados: ```sql CREATE TABLE boys ( ID int, Name varchar(20), Surname varchar(20), FavoriteDiscipline varchar(20), Age int); CREATE TABLE girls ( ID int, Name varchar(20), Surname varchar(20), FavoriteDiscipline varchar(20), Age int); ``` Em seguida, preencha essas tabelas: ```sql INSERT into boys (Id,Name,Surname,FavoriteDiscipline,Age) VALUES (1,'Vanya','Sidorov','Math',15), (2,'Petya','Shmelev','Literature',14), (3,'Seryozha','Petrov','Music',15), (4,'Fedya','Kurbanov','Geography',15), (5, 'Vanya','Korolyov','History',15); INSERT into girls (Id,Name,Surname,FavoriteDiscipline,Age) VALUES (1,'Olya','Sukhova','History',14), (2,'Irina','Vlasova','Music',14), (3,'Vera','Kurbanova','Literature',15); ``` Usaremos esse banco de dados nas próximas etapas. Vamos descrever os erros comuns de SQL! ## Digitação incorreta de comandos Imagine se você dissesse "Nice dukc" em vez de "Nice duck". A pessoa ficaria confusa porque não saberia o que significa "dukc". O mesmo acontece com um banco de dados de computador. Se você disser a ele para encontrar uma "TABEL" em vez de uma "TABLE", ele não saberá o que fazer porque não entende o que significa "TABEL". Um exemplo prático - veja esta frase simples: ```sql SELECT * FORM boys; ``` Você consegue ver algum erro nela? Se você quiser ver todas as informações sobre os meninos da classe, precisará escrever este código. Mas se você tentar executá-lo, poderá ver uma mensagem dizendo que há um erro: Há um erro nesta frase. A palavra "FROM" está escrita incorretamente como "FORM". Às vezes, as palavras são escritas incorretamente em partes importantes das instruções do computador, como quando dizemos quais informações queremos selecionar, de onde queremos obtê-las ou quais condições elas precisam atender. Os erros mais comuns que as pessoas cometem ao escrever SQL geralmente são devido à grafia incorreta das palavras. Para resolver o problema, você pode usar qualquer editor SQL on-line que o ajude a destacar as palavras corretas, como "SELECT" e "WHERE", mas ele não destacará a palavra incorreta "FORM". Portanto, se corrigirmos nossa declaração, obteremos: ## Símbolos de "delimitador" ausentes Imagine que você esteja procurando informações sobre uma pessoa chamada Fedya. Lembramos que o sobrenome dele pode ser Kurbanov ou Shmelev. Além disso, parece que ele realmente odiava matemática, mas você não tem certeza. Então, vamos executar a consulta: ```sql SELECT * FROM boys WHERE Name = 'Fedya' and NOT FavoriteDiscipline = 'Math' and (Surname = Kurbanov or Surname = Shmelev); ``` E... aparece um erro Você sabe o motivo desse erro? Esquecer de fechar os colchetes é um erro comum em SQL que ocorre com frequência. Portanto, quando corrigirmos o comando, a consulta será concluída: ```sql SELECT * FROM boys WHERE Name = 'Fedya' and NOT FavoriteDiscipline = 'Math' and (Surname = 'Kurbanov' or Surname = 'Shmelev'); ``` O mesmo princípio se aplica a aspas simples (' ') ou aspas duplas (" "). No SQL, é sempre necessário ter um par de aspas. Não há nenhuma situação em que uma aspa (simples ou dupla) deva ser deixada sem seu par correspondente. Para valores de texto em uma coluna, se houver necessidade de incluir uma aspa dentro do valor (por exemplo, Surname = "O'Henry"), usamos uma combinação de diferentes tipos de aspas ou utilizamos caracteres de escape. No SQL, os caracteres de escape são usados para desativar o significado especial de um caractere e geralmente são colocados antes do caractere que precisa ser escapado, por exemplo, adicionando outra aspa perto dele. ## Aliases negligenciados Quando combinamos informações de tabelas diferentes, às vezes isso pode confundir a máquina porque algumas colunas têm o mesmo nome. Para evitar essa confusão, damos a cada tabela um apelido chamado alias. Isso ajuda o banco de dados a saber quais valores de coluna devem ser exibidos. Nem sempre é necessário usar aliases ao combinar tabelas diferentes, mas isso é necessário ao combinar uma tabela que tenha itens com os mesmos nomes. Imagine que estamos procurando todos os meninos e meninas que gostam da mesma disciplina. Para fazer isso, podemos usar um código especial chamado _join_ e comparar o conteúdo das duas tabelas. Então, vamos construir a consulta de acordo com as "regras comuns": ```sql SELECT * FROM girls INNER JOIN boys ON FavoriteDiscipline; ``` Se você vir as palavras _nome de coluna ambíguo_ na mensagem de erro, isso significa que você precisa dar um apelido à tabela, pois ambas as tabelas, meninos e meninas, têm uma tabela com o nome _FavoriteDiscipline_. Para corrigir esse erro, basta adicionar aliases de tabela à consulta: ```sql SELECT * FROM girls INNER JOIN boys ON boys.FavoriteDiscipline = girls.FavoriteDiscipline; ``` ## Ordem incorreta das instruções A ordem das instruções é crucial no SQL. Ao escrever instruções SELECT, é importante seguir uma ordem predefinida de palavras-chave para garantir a execução adequada da instrução. Não há flexibilidade ou espaço para desvios nesse sentido, mas também não há "ciência de foguetes". A ordem correta é ", , , . Exemplo - encontraremos todos os meninos que se chamam "Vanya" e ordenaremos a saída por sobrenome: ```sql SELECT Name, Surname FROM boys WHERE Name = 'Vanya' ORDER BY Surname; ``` É uma ordem "hardcoded"; se tentarmos trocar as palavras, receberemos um erro: ```sql SELECT Name, Surname FROM boys ORDER BY Surname WHERE Name = 'Vanya' ; ``` Solução: Não fique triste nem desista! Veja que todas as palavras importantes estão colocadas corretamente e todas as aspas e colchetes estão fechados. ## Nomes em maiúsculas e minúsculas Na maioria dos casos, os comandos SQL não diferenciam maiúsculas de minúsculas, o que significa que a letra maiúscula não afeta sua execução. No entanto, se você criar uma tabela com o mesmo nome, mas com letras maiúsculas e minúsculas diferentes, isso pode levar a mais complicações e possíveis problemas. Para ilustrar, vamos criar uma tabela "vazia" chamada GIRLS: Agora, se você alterar acidentalmente o caso do comando, isso pode resultar em uma saída inesperada. Imagine que estamos procurando o sobrenome de uma garota com o nome "Olya". E, se ativarmos o caps lock, receberemos um erro: Solução - evite usar nomes CAPITALIZADOS se for possível. Esses são os erros típicos que as pessoas costumam cometer ao escrever código SQL. Cometer erros é uma ocorrência comum durante o aprendizado e é uma parte natural do processo de programação. Não se sinta desanimado nem desista. À medida que você adquire mais experiência, é útil abordar seu código de forma organizada, o que lhe permite identificar e corrigir erros com mais eficiência. https://serverspace.com.br/support/help/how-to-show-the-list-of-all-databases-in-mysql.md Aprenda vários métodos para exibir a lista de todos os bancos de dados no MySQL, incluindo ferramentas gráficas e de linha de comando. MySQL show tables ## Introdução A integração dos sistemas de gerenciamento de banco de dados (DBMS) é imperativa, impulsionada por uma série de imperativos convincentes. Acima de tudo, os sistemas DBMS fornecem uma estrutura impecavelmente estruturada e metódica para o armazenamento e a administração eficazes de conjuntos de dados extensos. Eles garantem a integridade e a precisão dos dados, orquestrando a facilitação contínua do acesso e das alterações simultâneas por diversos usuários, ao mesmo tempo em que mantêm os princípios de consistência e confiabilidade dos dados, atributos de suma importância para empresas e aplicativos que dependem da veracidade e da uniformidade de seus dados. Além disso, os sistemas DBMS oferecem uma égide de medidas de segurança formidáveis, incluindo autenticação rigorosa de usuários e criptografia robusta de dados, fortalecendo efetivamente o bastião de proteção de informações confidenciais contra quaisquer violações indesejadas ou invasões injustificadas. Além disso, eles possibilitam a recuperação fácil, a análise aprofundada e a geração de relatórios abrangentes dos dados, manifestando-se, assim, como um ponto de apoio para a tomada de decisões baseadas em discernimento orientado por dados. Nesse tutorial, consideramos um tópico de administração de BD: diferentes maneiras de verificar o banco de dados da lista em seu sistema DBMS! ## Maneiras de ver os bancos de dados Na maioria das configurações de uso do DBMS, instalamos a versão no servidor sem GUI, o que ajuda a navegar interativamente por todo o sistema. Esses custos ajudam a economizar eficiência, espaço de memória e outros recursos na máquina do servidor. Mas gerenciar esse sistema torna-se uma tarefa difícil para usuários despreparados, então podemos corrigir isso! Na CLI do seu servidor em execução, digite o comando abaixo: ```bash mysql -u root -h localhost -p ``` Screenshot №1 - Get into Nesse caso, você precisa substituir **root**, **localhost** pela sua credencial opcional. A opção -u significa o usuário que se conectará ao sistema, -h significa o host de destino da conexão e -p a autenticação por senha. Depois disso, digite a senha e aguarde o sistema de login prosseguir. Muito bem! Agora podemos usar o comando para ver todos os bancos de dados: ``` SHOW DATABASES; ``` Screenshot №2 - Show DB O sistema de E/S exibe em nossa tela informações curtas sobre o banco de dados criado no sistema. É importante destacar! Os comandos não diferenciam maiúsculas de minúsculas, você pode escrevê-los de outra forma, mas o rótulo e o nome do BD, das tabelas, do usuário e de outros objetos diferenciam maiúsculas de minúsculas! A segunda maneira de ver a lista de BDs é usar o sistema GUI na WEB, o phpMyadmin. Nesse caso, você precisa ter a parte da Web do sistema pré-instalada: Screenshot №3 - DB GUI Na parte superior da tela, na guia, você pode ver os bancos de dados; ao clicar nesse campo, a lista à esquerda será exibida! ## Conclusão Este tutorial o equipou com o conhecimento e as ferramentas necessárias para navegar e gerenciar bancos de dados de forma eficaz, seja por meio de interações de linha de comando ou de interfaces GUI fáceis de usar. https://serverspace.com.br/support/help/how-to-use-redirect-operators-in-bash.md Descubra a arte do redirecionamento de fluxo e da manipulação de entrada/saída em seus scripts de shell com nosso guia passo a passo abrangente. ## Introdução Como redirecionar a saída ou a entrada de arquivos, comandos ou processos no sistema Linux? Para essa pergunta, na instrução, daremos a resposta! Isso pode ser útil para a automatização extraordinária e bastante comum do sistema, por meio de um script, programa ou outro material. Abaixo, você pode obter uma resposta teórica breve e completa! ## Teoria resumida Para executar qualquer programa no Linux, no Windows e em outros sistemas operacionais, basta clicar no ícone ou no arquivo executável. Mas, nesse momento, o núcleo do sistema operacional cria um processo. **Processo** - é uma entidade passiva e abstrata, que descreve os recursos e o local do programa em execução. Portanto, se o processo é passivo, então há uma entidade ativa - **thread**. Cada um dos processos tem 3 threads padrão: **input**, **output** e **error**. Elas são parte fundamental de qualquer sistema. Se quisermos personalizar o uso, para thread de redirecionamento, precisaremos chamá-los e indicá-los na CLI. Isso pode ser possível com descritores de arquivo, que representam o número que atribui ao thread, ao arquivo, ao soquete de rede e a qualquer elemento do sistema operacional. O esquema da lógica desse mecanismo pode ser visto abaixo: Screenshot №1 - Schema No resultado para redirecionar a entrada, a saída ou o erro, precisamos usar o comando abaixo: ``` cat 0< vocabulary.txt ``` Screenshot №2 - Example Para o comando **cat**, não indicamos nenhum argumento para a entrada; em vez disso, escrevemos o descritor de arquivo para a entrada padrão **0< **e fornecemos o texto. No resultado, podemos ver o texto escrito do **vocabulary.txt**. O mecanismo dos descritores de arquivos pode parecer um sistema bastante complicado, portanto, para criar um pacote lógico, você pode considerar o capítulo abaixo! ## Descritores de arquivos A representação de recursos com descritores permite que diferentes partes de um programa se refiram ao mesmo objeto subjacente sem precisar acompanhar sua localização na memória, o que facilita a manipulação e o gerenciamento de recursos compartilhados. Os descritores são simplesmente números inteiros que representam um arquivo aberto ou outro canal de entrada/saída; eles são chamados de "descritores" porque você pode pensar neles como ponteiros: em vez de ter que controlar onde um recurso específico está armazenado na memória (o que seria difícil se houvesse várias cópias), basta saber o valor do descritor e usá-lo sempre que quiser acessar esse recurso. Screenshot №3 - File descriptors **Por exemplo**, se um aplicativo precisar acessar vários arquivos ao mesmo tempo, cada arquivo pode ser representado por seu próprio valor inteiro: em vez de ter que controlar onde cada arquivo está armazenado na memória (o que seria difícil se houvesse várias cópias), o programa simplesmente precisa saber o valor do descritor de cada recurso e usá-lo sempre que quiser acessá-los. Os descritores são comumente usados para arquivos, mas não se limitam a eles; qualquer tipo de recurso do sistema pode ser representado por um único valor inteiro: soquetes de rede ou outros tipos de canais de comunicação. Em resumo, embora os descritores sejam simplesmente números inteiros que representam um arquivo aberto ou outro canal de entrada/saída, eles são chamados de "descritores" porque você pode pensar neles como ponteiros: em vez de ter que controlar onde um recurso específico está armazenado na memória (o que seria difícil se houvesse várias cópias), o programa simplesmente precisa saber o valor do descritor e usá-lo sempre que quiser. ## Operadores básicos Muito bem, depois da parte matemática, podemos considerar os operadores para o thread de redirecionamento, que indicam o que discutimos acima como um sing. **A saída padrão ou redirecionamento**, forma de uso: **command > output_object**. Essa direção personalizada do thread significa literalmente que o resultado do comando não é exibido na tela do terminal, mas sim redirecionado para o objeto. Se o arquivo não existir, ele será criado pelo sistema, mas se o arquivo já existir, ele será completamente substituído. Por exemplo, temos uma tarefa para gravar todos os pacotes com o nome "apache2" do nosso repositório no arquivo, por meio de um comando ou precisamos usá-lo no script. ```bash apt list | grep "apache2" > apache.txt ``` Depois de inserir o comando, precisamos ver o contexto: ``` tail apache.txt ``` Screenshot №4 - Redirection stdout Mas se quisermos acrescentar dados ao arquivo existente, usaremos o próximo formulário para esse fim: **command >> output**. Na diferença do exemplo acima, o arquivo não é substituído, mas no caso em que o arquivo não foi criado, depois de inserir o comando, podemos vê-los no catálogo. Entretanto, se precisarmos ocultar a saída, poderemos usar um dispositivo especial no Linux, chamado **null**. Sua principal função é descartar o thread de saída de dados e, dessa forma, também podemos redirecionar o tráfego para outro dispositivo. **O erro padrão**, forma de uso: **command 2> output_object**. Geralmente, é usado nos casos em que precisamos redirecionar apenas o evento de erro entre todos os arquivos de registro. Esse comando **2> **também, como consideramos acima, significa criar ou substituir um arquivo existente. Consideramos o caso em que precisamos usar o comando **ls** iniciado para analisar os erros e redirecionar para o arquivo: ``` ls don't_exist_dir 2> err0rs.txt ``` Screenshot №5 - Redirection error's Se quisermos adicionar algumas informações sem substituir, use um operador já conhecido **2>> **que cria ou anexa dados ao arquivo. Por exemplo: ```bash apt-get errr 2>> err0rs.txt ``` E veja o resultado da operação de teste: ``` cat err0rs.txt ``` Screenshot №6 - Error's append Como podemos ver acima, a nova linha não substitui todo o arquivo, então os operadores de redirecionamento funcionam corretamente! Há situações em que precisamos usar simultaneamente os dois operadores, quando interceptamos dados do daemon ou do comando, o sistema pode gravar a saída padrão e o erro em um único arquivo: ``` ls /tmp /jgj &> log.txt ``` Vamos verificar o resultado do comando: ``` cat log.txt ``` Screenshot №7 - Redirecionar para um único arquivo Indicamos dois catálogos e um deles deu erro e passou para a saída padrão, como podemos ver na captura de tela. **Para algumas situações**, precisamos criar um redirecionamento mais complicado. Imagine que você precise classificar um objeto de um arquivo e gravá-lo em um novo arquivo: ``` sort < err0rs.txt > sort_err0rs.txt ``` Screenshot №8 - Complicated redirection Vamos explicar como isso funciona! Na primeira execução, **stdinput** do **err0rs.txt** para o comando **sort** e o resultado dessa operação é redirecionado para o **s0rt_err0rs.txt** e é isso. Você pode notar que usamos operadores para o redirecionamento para o dispositivo ou arquivo, mas e se redirecionarmos a saída do nosso comando para a entrada de outro comando? Infelizmente, os operadores descritos acima não se encaixam em nossos critérios. Para esse fim, existe o pipe. O que isso significa? Literalmente, pipe! Indicado por um sinal **|** e usado na forma: **comando_1 | comando_2**: ```bash apt list | grep "apache2" ``` Screenshot №9 - Pipe A linha de comandos na primeira coleta de dados do comando apt escreve no **stdoutput **e redireciona para o **stdinput **sem arquivo proxy! De maneira semelhante, usando operadores padrão, isso terá a seguinte aparência: ```bash apt list >> proxy_file.txt >> grep "apache2" ``` Nesse caso, usamos o proxy-file e salvamos as informações nele! ## Conclusão A compreensão de como usar os operadores de redirecionamento no Bash é uma habilidade fundamental para qualquer pessoa que trabalhe com a linha de comando em sistemas operacionais do tipo Unix. Esses operadores oferecem uma maneira poderosa de manipular fluxos de entrada e saída, permitindo que você manipule dados e processos com eficiência. Ao dominar conceitos como , >>, 2> e &>, você pode não apenas redirecionar dados, mas também combinar, anexar e gerenciar erros com eficiência. https://serverspace.com.br/support/help/examples-of-common-mysql-queries.md Descubra as consultas MySQL essenciais para suas tarefas de banco de dados com nossas instruções. Obtenha insights de especialistas e aprimore suas habilidades em SQL. ## Introdução Por que precisamos usar o SQL? O SQL oferece vários recursos de segurança e desempenho. Por exemplo, as transações garantem que várias operações sejam executadas como um todo, portanto, se alguma operação falhar, toda a transação será descartada. Além disso, os índices podem acelerar significativamente a execução de consultas, permitindo que o sistema de banco de dados use um caminho de acesso diferente de uma pesquisa linear para todos os registros na tabela. Por fim, o SQL permite que usuários com quase nenhum conhecimento de linguagens de programação realizem operações complexas nos dados. Por exemplo, é muito fácil para uma pessoa que não sabe nada sobre linguagens de programação escrever uma instrução SELECT que extraia apenas sobrenomes e nomes de uma tabela com informações sobre funcionários. No entanto, se ela tentasse fazer isso em uma linguagem procedural como C ou Java, seria muito mais difícil, pois o programador teria de usar loops e outras construções para obter os dados no formato desejado. Por esse motivo, consideraremos um comando comum para aprimorar suas habilidades de navegação no sistema DBMS! ## Como ver os usuários? Em primeiro lugar, precisamos fazer login no sistema por meio de uma conexão do tipo localhost ou remota; para a segunda maneira, você precisa substituir **localhost** pelo endereço IP do servidor MySQL necessário e indicar o nome do usuário para o seu caso! Por exemplo, queremos nos conectar via local: ```bash mysql -u root -h localhost -p ``` Screenshot №1 - Connection **Destaque! **Não se esqueça de alterar o nome de usuário e a porta opcionalmente! ```bash mysql -u jhon -h 76.56.32.1 -p ``` Agora podemos procurar os usuários em nosso banco de dados, as contas e as configurações do sistema também são salvas no banco de dados e, em seguida, podemos obter acesso por meio de uma consulta SQL comum: ```sql SELECT user,host FROM mysql.user; ``` Screenshot №2 - Selection Na imagem, você pode ver a tabela formada a partir da coluna selecionada user e host, que procuramos na tabela de usuários! Os operadores SELECT indicam a coluna em que buscaremos as informações e FROM em qual tabela. ## Como criar um usuário? Mas se não tivermos nenhum usuário necessário ou quisermos criar um novo, precisaremos digitar o comando abaixo: ```sql CREATE USER 'kk'@'localhost' IDENTIFIED by 'password'; ``` **Destaque! **O uso de operadores para o comando não é sensível ao caso da letra, mas o nome e o rótulo do banco de dados, da tabela e de outros objetos são. Nesse comando, você pode ver a criação de uma conta com o nome **kk** para **localhost**, na próxima linha você pode ver o operador **IDENTIFIED** que fornece controle de acesso no DBMS, em vez de senha, insira seu valor! Vamos verificar o resultado de nossa manipulação com o usuário: ```sql SELECT user,host FROM mysql.user; ``` Screenshot №3 - Creation of account Mas também todos os usuários precisam ter direitos no sistema MySQL, pois, por padrão, os usuários não os têm. Esse ponto é muito importante, pois, como regra do conceito principal de segurança, precisamos restringir o acesso de outro usuário: ``` GRANT ALL PRIVILEGES on mysql.user to 'kk'@'localhost'; ``` Screenshot №4 - Granting privileges Nesse ponto, concedemos privilégios para o usuário **kk ** na tabela **user **e concedemos privilégios ALL, esse ponto significativo que determina a lista de direitos para o usuário. Podemos conceder REVOKE, DROP ou CREATE à lista de direitos necessários devido ao tipo de conta. Mas se concedermos privilégios acidentalmente? Isso pode ser corrigido com o comando REVOKE: ``` REVOKE ALL PRIVILEGES on mysql.user from 'kk'@'localhost'; ``` Screenshot №5 - Revogação de privilégios O **REVOKE** significa privar os direitos do usuário e a forma de uso é quase igual à do **GRANT**, excluindo a sintaxe **from**. ## Como criar um banco de dados? Para essa finalidade, usaremos o comando familiar: ```sql CREATE DATABASE store; ``` E, em seguida, você pode digitar para selecionar o banco de dados como padrão: ``` USE store ``` Screenshot №6 - Creation database Essa sintaxe significa criar um banco de dados com o nome **store**. Talvez você tenha notado que após cada comando há um sinal de ponto e vírgula. Nós os usamos quando precisamos indicar o fim das sequências de comando. Porém, algumas sintaxes, como **USE**operator, não são marcadas dessa forma. Como verificar o resultado de nossa manipulação? Basta digitar o comando **SHOW** abaixo: ``` SHOW DATABASE; ``` E veremos o resultado! ## Como criar uma tabela? Agora podemos criar uma coluna com o comando: ```sql CREATE TABLE clothes ( id INT NOT NULL,name VARCHAR(30) NOT NULL); ``` Onde o operador imutável CREATE TABLE, **clothes **é o nome da tabela, id - primeira coluna com inteiros **INT **tipo de dados e opção NOT NULL, para o nome da coluna a mesma situação. E verifique nosso resultado com o comando: ``` SHOW TABLES; ``` Ou podemos ver a estrutura da tabela criada com o próximo comando: Screenshot №7 - Describe operator ``` DESCRIBE clothes; ``` Screenshot №8 - Descrição da tabela Na imagem, podemos ver o resultado de nossas manipulações! ## Conclusão A compreensão e a utilização do SQL são fundamentais para aumentar a segurança e o desempenho dos sistemas de gerenciamento de banco de dados. O suporte do SQL para transações garante a integridade das operações, enquanto recursos como índices contribuem para a execução eficiente de consultas. Além disso, o SQL permite que indivíduos com conhecimento limitado de programação realizem operações de dados complexas sem esforço. https://serverspace.com.br/support/help/mysql-workbench-installation-guide.md Descubra como instalar o MySQL Workbench com nosso guia de instalação abrangente. Aprenda instruções passo a passo e práticas recomendadas. MySQL Workbench ## Introdução O MySQL Workbench é o ambiente de desenvolvimento integrado (IDE) oficial projetado especificamente para o MySQL pela Oracle Corporation, que possui e oferece suporte aos bancos de dados MySQL e MariaDB. Ele foi desenvolvido com base na estrutura do Eclipse IDE, portanto, você obtém todos os benefícios dessa plataforma, incluindo um editor de código avançado, integração de controle de versão, realce de sintaxe e muito mais. O Workbench também está disponível como uma solução integrada para o Microsoft Windows e outros sistemas operacionais. Nesta instrução, instalaremos o Workbench no sistema operacional Ubuntu, com interface gráfica e software de configuração! ## Etapa de preparação Antes de tudo, você precisa atualizar o pacote do seu repositório com o comando: ```bash apt update && apt upgrade -y ``` Infelizmente, devido a vários problemas de aparência, não é possível controlar o status do pacote e a próxima instalação pode falhar. Para garantir que o gerenciador de pacotes funcione corretamente, digite: ```bash apt --fix-broken install ``` Screenshot №1 - Fix package No nosso caso, o sistema verifica a integridade dos pacotes instalados e encontra objetos problemáticos, pressiona **Y** para iniciar o processo de recuperação e aguarda o fim da reinstalação! Isso ajuda a atualizar e curar a biblioteca necessária no sistema. Continue, vamos configurar o repositório instalando o pacote no sistema. **Destaque! **O link pode mudar, para ter certeza de que você está instalando exatamente o que deseja [verificar informações](https://dev.mysql.com/downloads/) no site de desenvolvimento, também lá você pode encontrar pacotes de instalação para outro sistema operacional! ```bash wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb ``` Screenshot №2 - Download package ## Instalação Com o comando **wget**, baixamos o arquivo de instalação para o diretório inicial e o executamos com o comando: ``` dpkg -i mysql-apt-config_0.8.28-1_all.deb ``` Screenshot №3 - Instalação do repositório Na janela pop-up, você precisa escolher a versão do seu sistema operacional e, em alguns sistemas, indicar a arquitetura do processador. Considere o menu e escolha também a versão e o tipo de mysql; por padrão, precisamos usar a versão comum. Depois disso, precisamos atualizar o índice de pacotes: ```bash apt update ``` Depois disso, precisamos instalar o shell gráfico, preferimos o **gnome**, mas você pode escolher qualquer outro: ```bash sudo apt install ubuntu-gnome-desktop ``` Screenshot №4 - Graphical shell Isso levará muito tempo para fazer o download e instalar, mas se você tiver uma internet rápida e um computador de alto desempenho, isso levará menos tempo. Em seguida, o workbench representa um sistema de GUI próprio para controlar o servidor ou apenas o cliente, portanto, precisamos ter um servidor instalado local ou remotamente: ```bash apt install mysql-community-server ``` Screenshot №5 - Instalação do servidor comunitário Pressione **Y** e aguarde o fim do processo de instalação. Agora, podemos instalar o workbench por meio de um comando semelhante: ```bash apt install mysql-workbench-community ``` Screenshot №6 - Workbench Muito bem, agora precisamos fazer login na interface GUI, para isso você pode reiniciar o sistema operacional com o comando: ``` reboot ``` Depois de ligar o sistema, passe pela configuração inicial, configure sua conta, nome e outros pontos importantes: Screenshot №7 - Time Zone No canto esquerdo, você pode ver o botão **Activities**, pressione-o e localize-o na barra de pesquisa, como você pode ver abaixo, ou apenas observe o painel do aplicativo instalado recentemente: Screenshot №8 - Search MySQL Depois de clicarmos no ícone, podemos ver a página de boas-vindas com o cartão de nossas conexões, os sistemas reconhecem automaticamente o servidor, mas se você quiser gerenciar o banco de dados remoto, poderá adicioná-los com um sinal de mais próximo à conexão MySQL: Screenshot №9 - Start window Certifique-se de que o WorkBench esteja funcionando corretamente e escolha no menu à esquerda, na guia **Management**-> Status of the server (Status do servidor), por meio dessa função, podemos controlar a carga no banco de dados e solucionar problemas de forma rápida e eficaz! Screenshot №10 - Server status Na parte esquerda, você pode ver muitas funções e parâmetros que podem ajudar a gerenciar o servidor! ## Conclusão O MySQL Workbench foi projetado especificamente para atender às necessidades dos usuários do MySQL, fornecendo um ambiente de desenvolvimento integrado (IDE) abrangente. Com seu rico conjunto de recursos, essa ferramenta facilita a criação, a modificação e a análise de estruturas de banco de dados por desenvolvedores e administradores usando interfaces gráficas intuitivas. Este guia fornece uma visão geral detalhada da instalação do MySQL Workbench em sistemas Ubuntu com uma GUI, incluindo instruções passo a passo que o ajudarão a começar a trabalhar rapidamente com essa ferramenta avançada. Além disso, esse software é adequado para gerenciar vários bancos de dados e também oferece recursos de importação/exportação de dados para facilitar a integração perfeita de diferentes fontes. Ao aproveitar a robusta funcionalidade do MySQL Workbench, os usuários podem tirar proveito de uma ampla gama de recursos que simplificarão suas tarefas de desenvolvimento e administração, permitindo que se concentrem em aspectos mais importantes de seus projetos, como otimização de desempenho ou segurança de aplicativos. Em geral, essa poderosa ferramenta é um recurso indispensável para qualquer pessoa que trabalhe com bancos de dados MySQL, oferecendo suporte incomparável no desenvolvimento e na manutenção de uma ampla variedade de aplicativos. https://serverspace.com.br/support/help/how-to-get-a-list-of-mysql-tables.md Aprenda a maneira rápida e fácil de recuperar uma lista de tabelas do MySQL com este guia informativo. ## Introdução A importância da utilização de Sistemas de Gerenciamento de Banco de Dados (DBMSs) com maior exclusividade não pode ser exagerada, pois contribui significativamente para o crescimento e o desenvolvimento de uma organização. Uma abordagem exclusiva para o uso de um DBMS pode levar a uma maior eficiência no gerenciamento e na recuperação de dados, o que, consequentemente, permite melhores processos de tomada de decisão com base em informações precisas. Além disso, ao aproveitar o poder da exclusividade do DBMS, as organizações podem otimizar suas operações, reduzir os custos associados ao processamento manual de dados e, por fim, aumentar a satisfação do cliente. Além disso, uma abordagem inovadora em relação ao uso de um DBMS é fundamental para manter a competitividade no cenário tecnológico em constante mudança, pois permite que as empresas se mantenham à frente, adaptando novas tecnologias que se alinham às suas necessidades exclusivas. A utilização de DBMSs de forma mais exclusiva é essencial para as organizações que se esforçam para obter resultados ideais e permanecer na vanguarda da inovação. ## Como ver as tabelas? Em muitas configurações, as instalações de DBMS são configuradas sem uma interface gráfica do usuário (GUI), que permite aos usuários navegar por todo o sistema de forma interativa. Essa abordagem é vantajosa, pois permite a utilização ideal dos recursos, diminuindo as demandas de eficiência na memória do servidor e melhorando o desempenho geral. No entanto, o gerenciamento desses sistemas pode ser um desafio para pessoas despreparadas; portanto, criamos uma solução que simplifica esse processo. Para acessar a interface de linha de comando (CLI) do seu servidor em execução, digite o seguinte comando: ```bash mysql -u root -h localhost -p ``` Screenshot №1 - Get into Nesse cenário, talvez seja necessário substituir **root** e **localhost** por suas próprias credenciais (opcional). A opção -u especifica o usuário que se conectará ao sistema, enquanto -h indica o host de destino da conexão. Para prosseguir com a autenticação via senha, basta digitar as informações solicitadas depois de inserir o comando. Uma vez conectado, você pode usar uma série de comandos para visualizar todas as tabelas do seu banco de dados: ``` USE online_store ``` Com esse comando, escolhemos o banco de dados padrão no qual manipularemos os dados. Em seguida, podemos finalmente dar uma olhada nas tabelas criadas: ``` SHOW TABLES; ``` Screenshot №2 - Show tables Pronto, podemos ver as tabelas criadas antes; depois de cada criação, você precisa digitar o comando novamente! ## Conclusão Este tutorial o equipou com o conhecimento e as ferramentas necessárias para navegar e gerenciar bancos de dados de forma eficaz, seja por meio de interações de linha de comando ou de interfaces GUI fáceis de usar. https://serverspace.com.br/support/help/how-to-connect-the-object-storage-with-swift-cli-on-ubuntu.md Aprenda o processo passo a passo para conectar o armazenamento de objetos com o SWIFT CLI no Ubuntu. Este guia abrangente cobre a instalação e a configuração! ## Introdução A cada rotina, os dias úteis na empresa nos forçam a encontrar novas soluções para todos os problemas e tarefas que surgem. Muitos deles ainda esperam seu tempo devido à falta de especialistas, recursos e paciência do gerente. Portanto, obtemos uma solução inadequada ou, na pior das hipóteses, um sistema inviável com um ponto concluído no papel. A incerteza de planos futuros é o resultado de um sistema não estruturado. A automatização e a plataforma de nuvem terceirizada podem ajudar a criar tolerância a falhas, escalabilidade horizontal e conforto para a solução do sistema de controle. Nessa instrução, consideramos um dos serviços que fornecem Serverspace: Armazenamento de objetos - SWIFT. Em contraste com o servidor de arquivos comum ou o armazenamento em nuvem, eles representam um sistema bem estruturado, que pode ajudar a conter dados com seu método ou metadados nos contêineres. Além disso, responderemos detalhadamente à pergunta: Como se conectar a eles com a CLI? ## Configuração da CLI Antes de mais nada, precisamos atualizar nossos índices e pacotes de instalação. No caso do Ubuntu, usaremos o gerenciador apt: ```bash apt update && apt upgrade ``` Screenshot №1 - Update package Depois disso, temos de instalar o gerenciador de pacotes Python, onde procuraremos e baixaremos o utilitário cliente para controlar nosso armazenamento: ```bash apt install python3-pip ``` Screenshot №2 - Download pip Vá em frente e faça o download do cliente para nosso armazenamento: ``` pip3 install python-swiftclient python-keystoneclient ``` Screenshot №3 - Download SWIFT client Geralmente, nas distribuições Linux, temos pré-instalados todos os pacotes descritos acima, mas atualizá-los é uma parte importante! Se você instalou o pacote python, mas o pip3 não pode ser instalado, você pode usar o comando abaixo, que habilita o gerenciador de pacotes para python: ```bash python -m ensurepip --default-pip ``` Se isso não ajudar a resolver o problema, tente excluir a versão anterior, se houver, ou reinstale o pacote atual. ```bash apt reinstall python3-pip ``` Isso deve ajudar a solucionar nossos problemas e dar acesso ao utilitário principal para controle! ## Configuração e uso Iremos ao Serverspace e solicitaremos o Swift Storage, se você já o tiver, pule essa etapa! Para isso, devemos [entrar na conta](https://auth.serverspace.us/) e procurar no menu esquerdo **Storage**: Screenshot №4 - Main page No centro da tela, vemos o botão **Activate**, clique nele e aguarde cerca de um minuto para o processo de implantação. Pronto! Na imagem abaixo, podemos ver o painel principal de controle do nosso armazenamento: Screenshot №5 - Armazenamento ativado É claro que podemos manipular os dados da interface da Web adequada para uso pessoal, e essa pode ser a melhor maneira. Mas, na rede corporativa, precisamos automatizar esse processo, vamos considerar isso. Pressione **Add Container** e dê um nome a ele! Em seguida, podemos carregar o arquivo para testar o funcionamento de nossa conexão: Screenshot №6 - Upload file Localize a guia **Credentials** na tela e clique nela; podemos ver a parte da conexão Swift: Screenshot №7 - Credentials Deixe esses dados por perto por enquanto e abra nossa máquina com o cliente baixado, preencha suas credenciais no comando abaixo da tabela. Isso pode permitir a criação de nossa conexão com o armazenamento SWIFT e a manipulação de dados: ``` swift --os-storage-url $(Endpoint)/v1/AUTH_$(UserID) --os-password $(Password) --os-username $(Username) --os-project-name $(Project) --os-project-domain-name $(Domain) --os-auth-url $(Endpoint) stat -v ``` No nosso caso, o comando será parecido com este: ``` swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/ download STORE ``` Screenshot №8 - Conectar e fazer download Como você pode notar, o comando representa a solicitação à API do armazenamento com suas credenciais e o subcomando **download** no final da solicitação! Para verificar os dados baixados, usamos o comando: ``` ls ``` Para simplificar a autorização e o controle do nosso armazenamento, precisamos criar um registro de alias no script de login do usuário: ``` echo "alias swift_request='swift --os-storage-url https://ru.serverspace.store:443/v1/AUTH_c7e61e55cca64d1f91d6a3b178a833f5 --os-password 6bfa1hdD2Dzr --os-username ssio6578_admin --os-project-name ssio6578 --os-project-domain-name default --os-auth-url https://ru.serverspace.store:443/'" >> ~/.bashrc ``` Screenshot №9 - Make alias Você pode identificar essa solicitação com qualquer nome adequado; usaremos **swift_request**. Se você alterou os dados das credenciais devido à reativação do armazenamento ou por qualquer outro motivo, basta abrir o arquivo **.bashrc** e alterar o valor das credenciais com o comando abaixo: ``` nano ~/.bashrc ``` **Necessariamente!**Você precisa salvar o alias de entrada por meio do comando: ``` source .bashrc ``` Certifique-se de que ele funcione corretamente excluindo o arquivo não utilizado com o contêiner: ``` swift_request delete STORE ``` Screenshot №10 - Check alias request O alias **swift_request **executa o comando que identificamos no arquivo e, em seguida, adiciona o subcomando com atributos! ## Conclusão Em conclusão, este guia investiga as etapas essenciais da conexão do armazenamento de objetos com o SWIFT CLI no Ubuntu. Ao abordar a necessidade de sistemas estruturados e destacar as vantagens da automação e das plataformas de nuvem terceirizadas, o tutorial fornece um passo a passo abrangente. https://serverspace.com.br/support/help/nginx-cipher-suites.md Após a leitura deste artigo, você saberá como "aumentar" a classificação SSL do seu site e torná-lo mais valioso nos resultados do Google ## O que é a cifra do nginx e por que você deve alterá-la O Nginx é um dos servidores da Web mais conhecidos atualmente. Para provar que o site é realmente o que parece, os certificados SSL são usados em toda parte. Aparentemente, isso parece maravilhoso. Mas a realidade é que os conjuntos de cifras SSL estão mudando porque sempre surgem novos algoritmos. Portanto, essa é a razão pela qual a configuração "pronta para uso" do Nginx não é a ideal com muita frequência. ## Como verificar a classificação SSL do seu servidor Antes de verificar, você precisa de um [VDS rápido e confiável](https://serverspace.com.br/services/cloud-servers.md) com um servidor da Web "interno" e um domínio cujos registros DNS estejam "apontados para esse servidor". Em seguida, você pode examinar as cifras SSL atuais usando [este serviço](https://www.ssllabs.com/ssltest/). Como podemos ver, a configuração padrão não é altamente classificada: Para corrigir isso, basta abrir o arquivo de configuração do Nginx, localizar a diretiva _ssl_ciphers_ e substituir seu valor pelo seguinte código: ```xml ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4; ``` Salve o arquivo, reinicie o serviço por meio do comando _systemctl restart nginx _ e verifique o resultado novamente: ## Conclusão Após a leitura deste artigo, você saberá como "aumentar" a classificação SSL do seu site, o que será útil para SEO. https://serverspace.com.br/support/help/how-to-use-the-chroot-in-linux.md Descubra os benefícios do chroot, desde o isolamento de processos até o gerenciamento de permissões. Saiba como criar ambientes seguros. **Chroot** é um comando Unix que pode ajudá-lo a alterar o diretório raiz aparente do seu sistema de arquivos. As vantagens desse utilitário excedem todas as normas e indicadores possíveis, como a execução de programas ou utilitários em uma versão diferente do sistema operacional sem afetar o sistema restante. ## Chroot Quando você executa o chroot, está criando um novo ambiente de shell com seu diretório raiz, separado do diretório raiz do sistema central. Isso significa que todos os comandos ou ações executados no ambiente chroot **afetarão somente os arquivos e diretórios** do ambiente chroot, e não o sistema principal. Por exemplo, se você quiser testar uma nova versão de um programa que requer bibliotecas diferentes das que estão instaladas no sistema principal, poderá criar um ambiente chroot com as bibliotecas necessárias e executar o programa nesse ambiente. Dessa forma, você pode garantir que o programa funcionará corretamente sem precisar modificar o sistema principal. É importante observar: o chroot só deve ser usado por usuários experientes, pois pode causar instabilidade no sistema se não for usado corretamente. ## Chroot: isolamento e permissão de root Os principais recursos do chroot são: - **Isolamento de processos**: o chroot pode executar processos em um espaço de nomes isolado do sistema de arquivos para impedir o acesso a dados e recursos confidenciais; - **Teste de programas**: o chroot pode ser usado para testar programas em um ambiente seguro, onde eles não podem danificar o sistema host; - **Recuperação do sistema**: o chroot pode ser usado para recuperação do sistema após uma falha ou ataque mal-intencionado; - **Gerenciamento de permissões**: o chroot pode ser usado para restringir o acesso do usuário a arquivos e diretórios específicos no servidor. Nesse artigo, consideraremos apenas o **isolamento** de processos e a **permissão de root**, outra função desse utilitário será descrita em uma nova instrução de episódio. No início, escreva este comando para atualizar o índice do pacote : ```bash sudo apt update -y && sudo apt upgrade -y ``` Screenshot №1 - Atualizar pacote Verifique o chroot de instalação em seu sistema por meio do comando. Na maioria das distribuições Linux, eles são chamados de "**chroot**" ou "**util-linux**": ``` chroot --version || util-linux --version ``` Screenshot №2 - Verificar versão Depois de nos certificarmos de que todos os arquivos e pacotes tenham a instalação correta, crie um diretório no qual será instalado o novo ambiente do nosso sistema: ``` cd / && mkdir env0 ``` Screenshot №3 - Start environment Por exemplo, isolamos o processo utilitário ls: ``` cp -R /bin /lib /lib64 /usr /etc /env0/ ``` ``` chroot /env0 /bin/ls ``` Screenshot №4 - After start Por meio desses comandos, copiamos e iniciamos o ambiente isolado, que, por sua vez, inicializa o processo ls. Mas como podemos dar ou obter acesso a esse utilitário, todo o processo é bastante simples. ``` сhroot --userspec= ``` Screenshot №5 - Gerenciamento de permissões de usuário Define o usuário e o grupo em cujo nome o comando será executado em um ambiente isolado. ## Conclusão Em geral, o chroot é um utilitário avançado que oferece uma ampla gama de benefícios, incluindo isolamento de processos, teste de programas, recuperação de sistemas e gerenciamento de permissões. Neste artigo, nos concentramos no isolamento de processos e no gerenciamento de permissões de raiz, mas no próximo episódio de instruções, exploraremos outra função desse utilitário. Seguindo essas etapas, você poderá aproveitar os recursos do chroot para criar ambientes seguros para testar programas e recuperar sistemas após falhas ou ataques mal-intencionados. Fique atento ao nosso próximo artigo sobre ["Recuperação isolada do Linux via chroot"!](https://serverspace.com.br/support/help/how-to-use-the-chroot-in-linux-part-2/) https://serverspace.com.br/support/help/how-to-use-the-chroot-in-linux-2.md Saiba como usar o comando Chroot no Unix para recuperação do sistema após uma falha ou ataque malicioso em um servidor VDS hospedado no Serverspace. O comando Chroot no Unix permite que os usuários criem um ambiente temporário seguro para os programas, alterando a raiz dos sistemas de arquivos. Esse isolamento evita qualquer dano ou prejuízo ao sistema principal. [No episódio anterior](https://serverspace.com.br/support/help/how-to-use-the-chroot-in-linux/), consideramos duas outras funções desse utilitário. ## Como usá-lo? O Chroot cria um novo ambiente de shell, o que significa que qualquer modificação feita nesse ambiente afetará apenas os arquivos e diretórios do ambiente Chroot, e não o sistema central. Por exemplo, se precisar testar um programa em uma versão diferente do sistema operacional que exija bibliotecas específicas indisponíveis no sistema principal, você poderá criar um ambiente Chroot com as bibliotecas necessárias e executar o programa nesse ambiente isolado. Isso garante que o programa funcione corretamente sem causar problemas no sistema principal. No entanto, é fundamental observar que o Chroot só deve ser usado por usuários experientes, pois o uso inadequado pode causar instabilidade no sistema. Além disso, o Chroot pode ajudar a recuperar sistemas após falhas de emergência ou ataques mal-intencionados. ## Instalação e exploração Nesse artigo, consideramos uma das principais funções do utilitário: a recuperação do sistema. O Chroot pode ser usado para a recuperação do sistema após uma falha ou um ataque mal-intencionado. Como não se trata de um último papel nesse mecanismo, o programa isola o sistema de arquivos do impacto que pode surgir após a manutenção. Vamos dar uma olhada! Se você tiver o VDS no Serverspace, precisará abrir o painel de controle e ir para a guia de recuperação: Screenshot №1 - Preparation Screenshot №2 - Tab Em seguida, reinicie o servidor e prossiga. Antes de usar, atualize o utilitário principal e atualize seu sistema: ```bash sudo apt update -y && sudo apt upgrade -y ``` Screenshot №2 - Update Na primeira etapa, precisamos descobrir o rótulo do disco de recuperação com o comando abaixo: ``` fdisk -l ``` Screenshot №3 - Label of device Dispositivo de montagem para ponto, portanto, trabalharemos com isso. O comando abaixo cria uma pasta e esse ponto: ``` mkdir mnt && mount dev/vda2 /mnt ``` Screenshot №4 - Mount disk Em seguida, crie uma pasta e copie o arquivo de configuração: ``` mkdir /mnt/chroot/etc && cp -p /etc/(passwd,group,shadow,gshadow} /mnt/chroot/etc ``` Screenshot №5 - Configuration files Criação de pastas e montagem de diretórios no sistema: ``` mkdir /mnt/chroot/dev mount --bind /dev /mnt/chroot/dev mkdir /mnt/chroot/proc mkdir /mnt/chroot/sys mount --bind /proc /mnt/chroot/proc mount --bind /sys /mmt/chroot/sys ``` Screenshot №6 - Mounting folder Inicie o ambiente virtual e execute as operações necessárias para restaurar o sistema, por exemplo, atualizando pacotes ou restaurando o setor de inicialização: ``` chroot /mnt ``` Screenshot №7 - Start chroot Após a conclusão das operações, saia do ambiente chroot e monte os sistemas de arquivos: ``` umount /mnt/chroot/sys && umount /mnt/chroot/proc && umount /mnt/chroot/dev ``` Screenshot №8 - Unmount directories E, ao final do processo, reinicie seu sistema de preparação! ## Conclusão O comando **Chroot** no Unix fornece um ambiente temporário seguro para a execução de programas, **isolando-os** do sistema principal. Esse isolamento evita qualquer dano ou prejuízo ao sistema principal e pode ser usado para testar programas em diferentes versões do sistema operacional com bibliotecas específicas indisponíveis no sistema principal. No entanto, é importante observar que ele só deve ser usado por usuários experientes, pois o uso inadequado pode causar instabilidade no sistema. Além disso, o **Chroot** também pode ser usado para recuperação do sistema após falhas de emergência ou ataques mal-intencionados. Neste artigo, vimos como usar o Chroot para a recuperação do sistema após uma falha ou um ataque mal-intencionado em um servidor **VDS** no Serverspace. Seguindo as etapas descritas, os usuários podem atualizar e fazer upgrade do sistema, descobrir o rótulo do disco de recuperação, montar o dispositivo, criar pastas e copiar arquivos de configuração, iniciar o ambiente virtual e executar as operações necessárias, como atualizar pacotes ou restaurar o setor de inicialização. Por fim, eles podem sair do ambiente chroot e montar sistemas de arquivos antes de reiniciar o sistema de preparação. https://serverspace.com.br/support/help/gixy-nginx-configuration-analyzer.md Aprender a instalar e usar o GIXY para verificar se há erros e vulnerabilidades de segurança nos arquivos de configuração do Nginx. O GIXY é uma ferramenta projetada especificamente para analisar arquivos de configuração do Nginx. Ele atua como um analisador estático que ajuda a identificar possíveis vulnerabilidades de segurança, configurações incorretas e otimizações de desempenho na configuração do servidor Nginx. Veja a seguir alguns dos principais recursos e funcionalidades do GIXY: - Análise de segurança: O GIXY se concentra na segurança ao detectar configurações incorretas de segurança comuns em seus arquivos de configuração do Nginx. Ele verifica se há vulnerabilidades de segurança conhecidas, configurações inseguras e possíveis vetores de ataque. - Detecção de erros de configuração: O GIXY ajuda a identificar definições de configuração que podem levar a um comportamento inesperado ou indesejado. Ele detecta problemas como diretivas duplicadas ou conflitantes, sintaxe incorreta, configurações não utilizadas ou obsoletas e muito mais. - Otimização do desempenho: O GIXY também pode fornecer recomendações para otimizar o desempenho de seu servidor Nginx. Ele sugere melhorias e práticas recomendadas que podem aumentar a eficiência e a capacidade de resposta da configuração do seu servidor. - Relatórios detalhados: O GIXY gera relatórios de análise detalhados, que incluem informações sobre os problemas identificados, seu nível de gravidade e sugestões de correção. Os relatórios podem ser visualizados no terminal ou exportados para texto ou JSON, etc., para análise ou compartilhamento posterior. Usando o GIXY, você pode identificar e abordar proativamente os possíveis riscos de segurança, garantir a configuração adequada do seu servidor Nginx e otimizar seu desempenho. Ele ajuda a melhorar a segurança e a confiabilidade gerais de seus aplicativos ou sites baseados em Nginx. ## Instalação Pré-requisitos: - Verifique se você tem o Nginx instalado em seu sistema Ubuntu. - Certifique-se de que você tenha o Python e o Pip instalados. Caso contrário, você pode instalá-los executando o seguinte comando: sudo apt update sudo apt install python3 python3-pip Instalação do Gixy: Instale o GIXY usando o pip, executando o seguinte comando: pip install gixy==0.1.20 pyparsing==2.4.7 Estamos instalando a versão 2.4.7 do pyparsing porque nas versões mais recentes há um erro que não permite que o Gixy analise o nginx.conf como pretendido ## Análise da configuração: Depois que o GIXY estiver instalado, você poderá analisar seus arquivos de configuração do Nginx. Para analisar um arquivo de configuração específico do Nginx, use o seguinte comando: gixy /etc/nginx/nginx.conf Se seu nginx.conf for movido para outro lugar, altere-o para o caminho real. O GIXY analisará o arquivo de configuração do Nginx e gerará um relatório com possíveis problemas de segurança, configurações incorretas ou otimizações de desempenho. O relatório será exibido no terminal. Além do terminal, o GIXY fornece vários formatos de saída para o relatório de análise, incluindo texto e json. Você pode especificar o formato de saída usando a opção **`-format`**. Por exemplo, para gerar um relatório de texto, você pode usar o seguinte comando: gixy /etc/nginx/nginx.conf --format=text --output=/path/to/output Substitua "/path/to/output" pelo caminho e nome de arquivo desejados para o relatório HTML. O GIXY oferece opções adicionais para personalizar o processo de análise. Você pode explorá-las usando o comando "gixy -h". Lembre-se de fazer backup dos arquivos de configuração do Nginx antes de fazer qualquer alteração com base nas recomendações do GIXY e teste todas as modificações em um ambiente que não seja de produção. ## Conclusão: Você aprendeu a instalar o GIXY e a verificar a configuração do nginx com ele https://serverspace.com.br/support/usage-netcat-for-test-tcp-udp.md O Netcat (ou nc) é uma ferramenta para testar conexões TCP e UDP. Ele oferece a capacidade de criar conexões de cliente e servidor para testar e depurar vários protocolos de rede. Nas instruções do Serverspace, vamos dar uma olhada… Netcat - ferramenta avançada para testar redes TCP e UDP. Ele oferece a capacidade de criar conexões de cliente ou servidor para testar e depurar vários protocolos de rede. O Netcat é um utilitário flexível que encontra várias aplicações em testes e análises de rede. Vamos nos aprofundar em seu uso, examinando como ele pode ser empregado para testar conexões TCP e UDP. ## Testando conexões TCP Antes de começar a usar a ferramenta, você precisa instalá-la da seguinte forma, por exemplo, no Debian: ```bash sudo apt update ``` ```bash sudo apt install netcat ``` O TCP (Transmission Control Protocol) é um protocolo que fornece transferência de dados confiável e ordenada entre os nós da rede. Para testar as conexões TCP com o Netcat, siga estas etapas: **1.** Inicie o Netcat no modo de servidor escutando em uma porta específica: ``` nc -l port ``` Screenshot №1. Iniciar o nc como servidor Esse comando inicia o Netcat no modo de servidor, que escutará as conexões de entrada na porta especificada. **2.**Inicie o Netcat como um cliente estabelecendo uma conexão com o servidor: ``` nc host port ``` Screenshot №2. Conexão do cliente Esse comando inicia o Netcat no modo cliente e estabelece uma conexão com o host e a porta especificados. Depois que a conexão é estabelecida, tanto o servidor quanto o cliente podem enviar e receber dados. Para enviar dados ao Netcat no modo cliente, basta digitar o texto e pressionar Enter. Os dados serão enviados ao servidor, que os aceitará e os exibirá em seu terminal. Da mesma forma, o servidor pode enviar dados para o cliente. Assim, você pode testar e depurar uma conexão TCP enviando dados e observando sua transmissão e processamento em ambos os lados. ## Testando conexões UDP O UDP (User Datagram Protocol) é um protocolo que fornece transferência de dados sem primeiro criar um canal entre os nós da rede. Use as etapas a seguir para testar as conexões UDP: **1.**Inicie o Netcat no modo de servidor, escutando em uma porta específica para dados UDP: ``` nc -ul port ``` Screenshot №3. Inicie o nc para trabalhar no modo UDP Esse comando inicia o Netcat no modo de servidor para escutar os dados UDP na porta especificada. **2.**Inicie o Netcat como um cliente que envia dados UDP para o servidor: ``` nc -u host port ``` Screenshot №4. Conectar-se ao nc em execução como udp Esse comando inicia o Netcat no modo cliente e envia dados UDP para o host e a porta especificados. Depois que a conexão é estabelecida, você pode verificar os dados transmitidos e sua integridade. Assim como no TCP, os dados podem ser enviados do cliente para o servidor e vice-versa. O teste de conexões UDP permite testar a confiabilidade, a taxa de transferência e a operação do protocolo UDP. ## Verificar se uma porta está disponível O Netcat também pode ser usado para verificar se uma porta está disponível em um host remoto. Para fazer isso, use o comando: ``` nc -zv host port ``` Screenshot №5. Verificação da porta SSH a ser aberta no servidor Esse comando permite que você verifique a disponibilidade da porta especificada no host especificado. Se a conexão for estabelecida com êxito, a porta será considerada aberta. Caso contrário, se a conexão não puder ser estabelecida, a porta será considerada fechada. ## Transferência de arquivos para teste de rede O Netcat também pode ser usado para transferir arquivos por conexões TCP ou UDP a fim de testar a estabilidade e a taxa de transferência da rede. Para iniciar o servidor no modo de recebimento de um arquivo do cliente para o servidor por meio de uma conexão TCP, use o seguinte comando: ``` nc -l port > filename ``` Screenshot №6. Iniciar o nc como receptor de arquivo Esse comando inicia o Netcat no modo de servidor, que aceita dados e os redireciona para o arquivo especificado. Em seguida, no lado do cliente, você pode enviar o arquivo desta forma: ``` nc host port < filename ``` Screenshot №7. Envio de arquivo para o servidor pelo cliente Nesse caso, o Netcat será usado para transferir os dados do arquivo para o computador do cliente por meio da conexão TCP especificada. ## Opções avançadas O Netcat oferece suporte a muitas opções avançadas que permitem controlar e configurar conexões. Por exemplo, com o sinalizador "-s", você pode especificar um endereço IP de saída específico, e o sinalizador "-p" permite selecionar uma porta específica para a conexão de saída. O Netcat oferece opções flexíveis e convenientes para testar conexões TCP e UDP. Ele pode ser uma ferramenta útil para profissionais de rede e desenvolvedores na depuração e verificação de protocolos de rede. Dominar e usar o Netcat o ajudará a aprofundar seu conhecimento de rede e a se tornar um profissional de rede mais experiente. https://serverspace.com.br/support/help/setup-raid-massive-on-linux.md Descrição detalhada da criação de uma matriz RAID no Linux - desde a escolha do nível de RAID até a configuração e o teste da matriz ## Planejamento A configuração de uma matriz RAID no Linux envolve várias etapas básicas: - Preparação do disco: Garantir a disponibilidade e a preparação dos discos físicos a serem usados na matriz RAID. Os discos podem ser novos ou ter dados que precisarão ser salvos; - Seleção do nível de RAID: Determinação do melhor nível de RAID para os requisitos do sistema. Por exemplo, RAID 1 para tolerância a falhas de dados, RAID 0 para melhoria de desempenho ou RAID 5/6 para um equilíbrio entre tolerância a falhas e desempenho; - Criação de uma matriz RAID: Usando o utilitário mdadm (Multiple Device Administration) para criar uma matriz RAID lógica com base no nível RAID selecionado e nos discos físicos; - Configuração do sistema de arquivos: Formatação da matriz RAID usando o sistema de arquivos selecionado para que os dados possam ser armazenados; - Montagem de uma matriz RAID: Configuração da montagem automática da matriz RAID quando o sistema é inicializado; - Teste e verificação: Verificação da exatidão da configuração da matriz RAID e de sua operacionalidade por meio da criação, gravação e leitura de dados de teste. ## Requisitos - Direitos de root; - Debian 11 ou versão superior; - Alguns conhecimentos sobre o sistema operacional de trabalho; - Conexão com a Internet. ## Adicionar disco Na dependência de sua infraestrutura, escolha o método para adicionar o disco ao sistema. Para a máquina física, conecte-se à porta vazia; para a máquina virtual, veja a guia no hipervisor e adicione o disco atual ou de destino; de outra forma, se você escolher o servidor VPS Serverspace, poderá adicionar o espaço necessário por meio do painel principal: Screenshot №1 - Control panel Escolha tecnologia de nuvem e servidores, depois escolha a guia Settings (Configurações) e role até ver Volumes e clique em Add (Adicionar): Screenshot №2 - Create disk Na janela pop-up, escolha o espaço em disco necessário, marque a caixa e reinicie o servidor por meio do botão abaixo. No terminal, digite o comando: ``` lsblk ``` Screenshot №3 - List of block Muito bem, há dois discos no sistema e eles estão conectados. Na próxima etapa, precisamos escolher o formato RAID. Vamos dar uma olhada! ## Esquemas RAID Entre os vários pacotes, combinações e arquiteturas de esquemas de RAID modernos, destacam-se vários para uso: ### RAID 0 Representa o método básico de transferência de dados por meio do striping de blocos de informações entre dois ou mais discos. Os dados inteiros são divididos em duas partes, o que aumenta a largura de banda devido ao uso de vários discos em vez de um único armazenamento. Mas há um problema significativo nesse caso: não há tolerância a falhas. Se pelo menos um disco for corrompido, todos os dados se transformarão em lixo. Esse sistema simples é usado para dados temporários e sistemas com requisitos para ler e gravar informações rapidamente. ### RAID 1 Representa o método básico de transferência de dados por meio de espelhamento e sincronização de informações entre dois ou mais discos. Todos os dados são copiados para outro armazenamento. Dessa forma, aparece a tolerância a falhas e salva o sistema até que um dos discos seja corrompido, mas há falta de velocidade de gravação de dados em comparação com o **RAID 0**. ### RAID 5 Essas soluções são um compromisso entre a velocidade de E/S e a tolerância a falhas no sistema RAID. A integridade dos dados será possível devido ao algoritmo de bloco de paridade, que salva os dados com mais segurança. O processo de cálculo dos blocos de paridade depende do nível de RAID e do algoritmo de paridade usado. Considere os processos de cálculo de blocos de paridade para RAID 5 e RAID 6, que são os níveis de RAID mais comuns que usam blocos de paridade. Suponha que tenhamos 4 discos A, B, C e P (em que P é um disco de paridade) e que desejemos gravar dados nos discos A, B e C. Para calcular o bloco de paridade dos dados que desejamos gravar nos discos A, B e C, a operação XOR (exclusive OR) é usada nos dados desses discos. **Exemplo:** Digamos que tenhamos dados 10101010 que precisam ser gravados nos discos A, B e C. Então, o processo de cálculo do bloco de paridade (P) será o seguinte: **P = A XOR B XOR C** Assim, o valor de P será igual ao resultado da operação XOR entre os dados nos discos A, B e C. Ao ler dados dos discos A, B e C, o controlador RAID pode usar o bloco de paridade (P) para recuperar dados no disco com falha. Por exemplo, se o disco B falhar, o controlador RAID usará os dados dos discos A, C e P para recuperar os dados que estavam armazenados no disco B. Mas para esse RAID precisamos de pelo menos três discos. ## Instalação Depois de escolher o sistema RAID, é necessário atualizar e fazer o upgrade dos pacotes do sistema em nossa máquina para que eles funcionem corretamente: ```bash apt update && apt upgrade -y ``` Screenshot №4 - Update Se você tiver dados significativos no disco, faça um backup deles por meio do comando abaixo: ```bash tar -cvfz backup /etc && scp /backup root@65.44.32.1:/etc/backup ``` É necessário alterar o endereço IP do seu IP da máquina. Verifique se o RAID está instalado em sua distribuição Linux. Na maioria dos casos, será um pacote mdadm. Você pode instalá-lo usando o gerenciador de pacotes da sua distribuição (por exemplo, apt, yum, dnf). No nosso exemplo, usaremos o gerenciador de pacotes apt; no seu caso, use de acordo com o seu sistema operacional. Se você esqueceu o rótulo do seu disco, digite: ``` lsblk ``` Depois disso, instale o software necessário, em nossa instrução, o mdadm, que permite criar um sistema RAID de programa para o disco no Linux: ```bash apt install mdadm ``` Screenshot №5 - Installation Agora podemos usar o mdadm para criar uma matriz. Vamos começar com o RAID 1, criar um dispositivo controlador virtual e indicar o disco necessário para uso. **Importante destacar!** Na dependência da sua arquitetura de rede, você precisa decidir. Você usará o disco inicializável do sistema operacional no sistema RAID ou não. Se a resposta for positiva, será necessário garantir que o gerenciador de inicialização suporte a versão md. Vamos criar uma matriz com o comando abaixo: ``` sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdb ``` Screenshot №6 - Create controller O **mdadm** é o comando de sintaxe principal, a opção **--create** para criar a matriz, ** /dev/mdo --level=1** dispositivo de RAID 1, **--raid-devices=2 /dev/sdc /dev/sdb** nessa parte indicamos dois discos de uso para nossa matriz. Vamos verificar o status do processo por meio do comando abaixo: ``` cat /proc/mdstat ``` Screenshot №7 - Status of installation Para a nossa matriz, precisamos criar um único sistema de arquivos para todos os discos; usaremos o ext4 para nossos propósitos: ``` sudo mkfs.ext4 /dev/md0 ``` Screenshot №8 - Make file system Vamos montar o sistema RAID em um ponto: ``` sudo mkdir /mnt/md sudo mount /dev/md0 /mnt/md ``` Screenshot №9 - Mount disk Adicione o sistema raid ao autoboot no início; depois disso, abra o nano com o comando abaixo e coloque Tab no campo vermelho: ``` echo "/dev/md0 /mnt/md ext4 defaults 0 0" >> /etc/fstab ``` ``` nano /etc/fstab ``` Screenshot №10 - Nano editor Depois disso, recarregue o daemon: ```bash systemctl daemon-reload ``` E digite o comando check para garantir que o sistema de arquivos e o RAID estejam funcionando corretamente: ``` lsblk ``` Screenshot №11 - Resultado ## Conclusão A configuração de uma matriz RAID no Linux envolve a preparação dos discos, a seleção do nível RAID, a criação da matriz RAID usando o mdadm, a configuração do sistema de arquivos e a montagem da matriz RAID. Testar e verificar a configuração é fundamental para garantir sua funcionalidade. Os requisitos específicos incluem acesso à raiz, Debian 11 ou superior, conhecimento do sistema operacional e uma conexão com a Internet. A adição de um disco, a escolha de esquemas RAID (RAID 0, RAID 1, RAID 5) e as etapas de instalação também são abordadas. A conclusão fornece uma visão geral concisa do processo de configuração do RAID no Linux. https://serverspace.com.br/support/help/rdp-remote-access-clients-for-linux.md Descubra os principais clientes de acesso remoto RDP (Remote Desktop Protocol) para Linux. Explore ferramentas poderosas como RDP e Área de Trabalho Remota. ## Introdução A interface gráfica do usuário (GUI) é um componente essencial da computação moderna, fornecendo aos usuários uma maneira visual e interativa de interagir com softwares, aplicativos e sistemas operacionais. O uso de uma GUI oferece várias vantagens que contribuem para uma experiência de computação mais amigável e eficiente para o usuário: - Intuitividade: As GUIs são projetadas com ícones, menus, botões e elementos visuais que são familiares e fáceis de entender. Os usuários podem entender rapidamente como executar tarefas sem a necessidade de um amplo conhecimento técnico ou de memorizar comandos complexos. - Facilidade de uso: As GUIs simplificam operações e tarefas complexas, tornando-as acessíveis a uma gama mais ampla de usuários. Com interações do tipo apontar e clicar, os usuários podem navegar pelas opções e recursos sem esforço. - Curva de aprendizado reduzida: Em comparação com as interfaces de linha de comando, as GUIs geralmente têm uma curva de aprendizado menor. Os usuários podem se tornar produtivos rapidamente sem a necessidade de lembrar comandos ou sintaxe. - Retroalimentação visual: As GUIs fornecem feedback visual em tempo real, permitindo que os usuários vejam os resultados de suas ações instantaneamente. Esse feedback imediato aumenta a produtividade e minimiza os erros. - Multitarefa: As GUIs permitem que os usuários trabalhem com vários aplicativos e janelas simultaneamente, tornando a multitarefa mais eficiente e gerenciável. - Representação gráfica: Dados e informações complexos podem ser apresentados visualmente, usando tabelas, gráficos e imagens, o que facilita a análise e a compreensão. - Interação com o usuário: As GUIs facilitam elementos interativos, como arrastar e soltar, redimensionar janelas e controles deslizantes, permitindo que os usuários interajam com os aplicativos de maneira mais envolvente e interativa. - Acessibilidade: As GUIs geralmente incluem recursos de acessibilidade, tornando a computação mais inclusiva para usuários com deficiências. Recursos como leitores de tela, lupas e atalhos de teclado melhoram a usabilidade para uma base de usuários diversificada. - Padronização: Muitas GUIs seguem princípios comuns de design e diretrizes de interface de usuário, que proporcionam consistência em diferentes aplicativos e plataformas, levando a uma experiência de usuário mais uniforme. - Apelimento visual: GUIs bem-projetadas aprimoram o aspecto estético do uso do computador, criando uma experiência de usuário agradável e visualmente prazerosa. Embora as GUIs ofereçam inúmeras vantagens, é essencial reconhecer que elas podem não ser adequadas para todos os cenários. Em alguns casos, as tarefas podem ser realizadas com mais eficiência por meio de interfaces de linha de comando, especialmente para usuários avançados, administradores de sistema e desenvolvedores que precisam de maior controle e automação. Em resumo, as GUIs desempenham um papel fundamental na computação moderna, oferecendo uma experiência intuitiva, amigável e visualmente atraente que permite aos usuários interagir com softwares e sistemas operacionais sem esforço. A combinação de GUI e CLI oferece aos usuários um ambiente de computação versátil que atende a diferentes necessidades e preferências. ## Requisitos - Direitos de root; - Debian 12 ou versão superior; - Vários conhecimentos sobre o sistema operacional de trabalho; - Conexão com a Internet. ## Instalação Antes de tudo, precisamos atualizar e fazer o upgrade dos pacotes do sistema em nossa máquina para que funcionem corretamente: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Updating packages Vamos instalar o rdp server adaptive para o sistema operacional Linux; em nosso exemplo, usamos o Debian 12, encontre os pacotes necessários com o comando abaixo: ```bash apt list | grep xrdp ``` Screenshot №2 - Search packet Se você vir uma letra vermelha, isso significa que há pacotes para instalação e que você precisa escrever seus rótulos no comando abaixo, mas lembrete importante: rótulos - são letras e símbolos antes da barra! Código para um pacote da captura de tela de exemplo: ```bash apt install xrdp ``` Screenshot №3 - Install packets Pressione o botão **Y** para que a instalação comece e baixe as bibliotecas de dependência para que todo o sistema remoto funcione corretamente. No entanto, se você não tiver esses pacotes na lista, precisará adicionar o repositório seguindo as regras e digitando o comando abaixo: ``` nano /etc/apt/sources.list.d/other.list ``` Se você precisar usar o código-fonte, exclua a hashtag: ``` deb http://archive.ubuntu.com/ubuntu jammy multiverse # deb-src http://archive.ubuntu.com/ubuntu jammy multiverse deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse # deb-src http://archive.ubuntu.com/ubuntu jammy-updates multiverse ``` Depois disso, atualize todos os índices de pacotes e renove os repositórios: ```bash apt update ``` Screenshot №4 - Atualização de repositórios Muito bem, agora podemos nos conectar ao Debian por meio do rdp. Certifique-se de que seu firewall acesse o tráfego para a porta 3389: ``` sudo ufw allow 3389 ``` Vamos mudar para a máquina Windows e iniciar o utilitário rdp abrindo o mecanismo de pesquisa e pressionando o botão com o ícone Windows. Digite Remote e escolha utility: Screenshot №5 - Utility Clique nele e digite o nome do host e o nome de usuário no campo de acordo: Screenshot №6 - Hostname Clique no botão **Connect** e aguarde a resposta do servidor de entrada: Screenshot №7 - Password Insira as credenciais necessárias e clique em **OK**: Screenshot №8 - RDP Parabéns! Estamos no sistema e conectados por meio do protocolo RDP. ## Conclusão A interface gráfica do usuário (GUI) é um aspecto fundamental da computação moderna, oferecendo aos usuários uma maneira visualmente interativa de interagir com softwares, aplicativos e sistemas operacionais. As vantagens de usar uma GUI são muitas, incluindo seu design intuitivo, facilidade de uso, curva de aprendizado reduzida, feedback visual em tempo real, recursos multitarefa, representação gráfica de dados complexos e interação com o usuário por meio de vários elementos interativos. As GUIs também melhoram a acessibilidade, a padronização e o apelo visual, tornando-as uma ferramenta indispensável para uma ampla gama de usuários, desde iniciantes até profissionais avançados. No entanto, é fundamental reconhecer que as GUIs nem sempre são a opção mais eficiente para todas as situações, especialmente para determinadas tarefas em que a interface de linha de comando (CLI) se destaca por oferecer maior controle, automação e flexibilidade. https://serverspace.com.br/support/help/screen-in-ubuntu-linux-screen-command.md Domine a arte da multitarefa com o comando screen do Linux no Ubuntu. Saiba como criar, gerenciar e desconectar. ## Introdução Um dos principais requisitos para qualquer especialista em TI que tenha em sua mochila de soft skills é a capacidade de automatização! Mas há utilitários que ajudam a destruir obstáculos técnicos no Linux. Uma sessão de conexão é um pouco desconfortável para uso e, para isso, existe a **tela**. O **Screen** utiliza dois componentes principais para facilitar a criação e o gerenciamento de terminais virtuais. O primeiro componente é a sessão de terminal, que atua como um contêiner para vários terminais virtuais (janelas). Essa sessão de terminal lida com a entrada e a saída de todos os terminais virtuais dentro dela. _O segundo componente essencial_ é o multiplexador de terminal, responsável pelo gerenciamento de vários aspectos dos terminais virtuais dentro da sessão de terminal. Ele processa comandos relacionados à alternância entre janelas e lida com o gerenciamento de terminais virtuais. Quando uma nova janela é criada na tela (usando comandos como Ctrl+a, c), o multiplexador de terminal gera um novo terminal virtual e inicia um processo de shell (por exemplo, bash) para essa janela específica. Cada terminal virtual funciona como um processo independente, gerenciando sua entrada e saída, além de ter seu próprio ambiente e diretório de trabalho. Quando você se desconecta da sessão de tela (Ctrl+a, d), a sessão de terminal permanece ativa no servidor e os terminais virtuais continuam sendo executados em segundo plano. Após a reconexão (por exemplo, comando screen -r), você pode recuperar o acesso aos terminais virtuais e os processos em execução neles persistem. Em resumo, a combinação da sessão de terminal e do multiplexador de terminal permite que o screen forneça uma maneira eficiente de trabalhar com vários processos em uma única janela de terminal. Além disso, ele permite que os usuários se desconectem e depois retomem o trabalho sem problemas, tornando o screen uma ferramenta poderosa e versátil para operações eficientes de linha de comando no Linux. ## Requisitos - Direitos de root; - Ubuntu 16 ou versão superior; - Vários conhecimentos sobre o sistema operacional de trabalho; - Conexão com a Internet. ## Instalação Antes de tudo, precisamos atualizar e fazer o upgrade dos pacotes do sistema em nossa máquina para que funcionem corretamente: ```bash apt update && apt upgrade -y ``` Screenshot №1 - Updating packages Após a atualização e o upgrade do sistema, precisamos instalar o pacote necessário do utilitário **screen**, que pode ajudar a trabalhar com diferentes telas: ```bash sudo apt-get install screen ``` Screenshot №2 - Installation Pressione o botão **Y** para iniciar o processo de instalação e aguarde até que ele seja concluído. Em quase todas as distribuições, podemos ver que o pacote e o processo de instalação não serão complexos. Isso não leva muito tempo, seja paciente. Para iniciar o utilitário-, digite a sintaxe de comando **screen**, você verá a mensagem hello-: ``` screen ``` Screenshot №3 - Hello message Pressione Espaço ou Return para pular a janela pop-up e, em seguida, você verá uma nova tela limpa, o utilitário criou uma nova sessão de terminal que se parece com um contêiner para salvar e gerenciar a janela virtual. Vamos criar o terminal, temos dois tipos de divisão de tela: horizontal e vertical. Também é possível dividir a tela já dividida para tarefas mais complexas. Todos os comandos são ativados pela combinação **Ctrl+a**, vamos criar uma nova janela e dividir a tela pressionando o botão: ``` Ctrl+a+c ``` ``` Ctrl+a+S ``` Screenshot №4 - Tela dividida Lembrete! Para esse utilitário, há uma diferença ao usar um registro grande e um pequeno, destaque esse momento. É possível alternar a janela ativa por combinação: ``` Ctrl+a+Tab ``` E alternar o terminal virtual necessário por meio da combinação do terminal anterior e seguinte: ``` Ctrl+a+n and Ctrl+a+p ``` Também é possível exibir na tela a lista das janelas do terminal: ``` Ctrl+" ``` Screenshot №5 - Lista de janelas Se você quiser ver informações mais curtas sobre isso, digite: ``` Ctrl+a+w ``` Screenshot №6 - Shorter list Para tornar o uso das janelas mais claro, você pode alterar o rótulo de cada janela pressionando: ``` Ctrl+a+Tab ``` Alterne para a janela necessária e pressione um conjunto de teclas: ``` Ctrl+a+A ``` Screenshot №7 - Rename Em nosso exemplo, você pode ver na linha inferior o índice e o rótulo de acordo com essa janela. Você pode ver a linha vertical na tela, dividida por comando: ``` Ctrl+a+| ``` Você também pode fazer divisões mais complexas. Vamos separar a área direita com o comando abaixo: ``` Ctrl+a+S ``` Screenshot №8 - Multi split No início, você não terá nenhuma janela ativa para deslizá-las, conforme descrito anteriormente: ``` Ctrl+a+p or n ``` Para encerrar um processo, use a combinação: ``` Ctrl+a+k ``` Para todos os pacotes de janelas virtuais: ``` Ctrl+a+ ``` E concorde com a instrução close na linha pop-up. Mas se você quiser apenas minimizar a janela do terminal virtual, precisará digitar: ``` Ctrl+a+Q ``` Essa combinação minimiza todas as janelas, exceto a principal de foco. Você também pode se desconectar do terminal e fechar a conexão com o servidor, mas elas ainda funcionarão, pela combinação de botões: ``` Ctrl+a+d ``` E anexar novamente pesquisando a linha necessária: ``` screen -ls ``` E digite seu ID no comando abaixo: ``` screen -r 23505 ``` Para obter mais informações sobre a combinação a ser usada, você pode pressionar: ``` Ctrl+a+? ``` Screenshot №9 - Help E obtenha ajuda para usar esse utilitário. Vamos representar um exemplo real do uso desse utilitário. Obviamente, podemos automatizar e personalizar muitas ações rotineiras ou incômodas, por exemplo, precisamos verificar o espaço livre no armazenamento e criar um backup. Dividimos a tela e, com um atraso de 2 segundos, o monitor muda. Screenshot №10 - Usage ## Conclusão O utilitário de tela no Linux oferece uma maneira poderosa e eficiente de gerenciar vários terminais virtuais em uma única janela de terminal. Ele consiste em dois componentes essenciais: a sessão de terminal que atua como um contêiner para terminais virtuais e o multiplexador de terminal responsável pelo gerenciamento desses terminais. Com o screen, os especialistas em TI podem otimizar seu fluxo de trabalho criando e organizando vários terminais, alternando entre eles e até mesmo dividindo a tela para tarefas complexas. https://serverspace.com.br/support/help/file-permissions-in-linux.md Entenda as permissões de arquivo do Linux: Saiba como gerenciar direitos de acesso, propriedade e configurações de segurança para arquivos e diretórios no Linux. ## Introdução O controle de acesso e permissão para arquivos serve a propósitos críticos no âmbito do gerenciamento e da segurança de dados: - Segurança aprimorada: A implementação de mecanismos de controle de acesso garante que os arquivos só possam ser acessados por indivíduos que possuam as permissões necessárias. Essa segurança reforçada impede que pessoas não autorizadas tenham acesso a dados sensíveis ou confidenciais. - Preservação da confidencialidade: Ao instituir configurações de permissão precisas, a confidencialidade é protegida. A exposição não autorizada de informações confidenciais a usuários não intencionais, que poderia resultar em violações ou vazamentos, é efetivamente evitada. - Salvaguarda da integridade: O controle de permissão desempenha um papel fundamental na manutenção da integridade dos arquivos. Alterações não autorizadas ou adulterações em arquivos cruciais são impedidas, garantindo a confiabilidade e a precisão dos dados. - Aderência aos regulamentos: Vários setores e organizações são obrigados a aderir a padrões normativos que exigem controles de acesso rigorosos. O estabelecimento de estruturas de permissão adequadas ajuda a atender a esses requisitos de conformidade e a evitar ramificações legais. - Mitigação da perda de dados: por meio do controle de acesso, a perda inadvertida de dados é mitigada. Os casos em que os usuários sem as permissões adequadas excluem ou sobrescrevem acidentalmente arquivos vitais são reduzidos. - Otimização de recursos: O gerenciamento de permissões otimiza a alocação de recursos. Ao limitar o acesso a usuários ou grupos específicos, evita-se o consumo desnecessário de recursos e concede-se acesso às partes pertinentes. Em resumo, o controle de acesso e permissão é fundamental para manter a segurança, a confidencialidade e a solidez de arquivos e dados. Eles impedem o acesso não autorizado, evitam violações e perdas de dados e contribuem para a conformidade normativa. ## Requisitos - Direitos de root; - Debian 12 ou versão superior; - Vários conhecimentos sobre o sistema operacional de trabalho; - Conexão com a Internet. ## Permissão e atributos no Linux No ambiente Linux, o gerenciamento de arquivos e permissões é um processo minucioso e intrincado, projetado para garantir o máximo de segurança e precisão no manuseio de dados. Aqui está uma visão mais detalhada. O Linux reconhece um espectro de tipos de arquivos, incluindo arquivos comuns, diretórios, links simbólicos e dispositivos. Cada tipo possui atributos e permissões exclusivos. No Debian 12, podemos verificar todos os atributos e permissões de todos os usuários com o comando abaixo: ``` ls -l ``` Screenshot №1 - List of permission Mas se quisermos verificar determinado arquivo, precisamos usar o comando abaixo, indicando o arquivo que você deseja verificar: ``` ls -l /etc/network/interfaces ``` Screenshot №2 - Single file Vamos ser claros e explicar cada parâmetro dessa tela: - O **-rw-r--r--** bruto significa que o trio inicial corresponde às permissões do proprietário, o segundo ao grupo e o terceiro a outros usuários. Esse arquivo não é um diretório ou link, pois o primeiro sinal é um traço. O **rw- ** significa que o proprietário tem o direito de ler, gravar, mas não de executar. O **r--** significa que o grupo do proprietário tem apenas direitos de leitura, também no último tripleto de outros usuários; - O **1** significa que o arquivo tem um hard link; - O parâmetro **root:root**nesse caso indica o proprietário e o grupo desse arquivo; - O tamanho desse arquivo é de 175 bites; - Dados das últimas alterações em 8 de novembro de 2022 e nome do arquivo **Interfaces**. Cada arquivo é vinculado a um usuário individual (proprietário) e a um grupo designado. O ato de criar um arquivo estabelece o criador como seu proprietário, enquanto um grupo específico é atribuído ao arquivo. O Linux segmenta as permissões em três categorias: usuário, grupo e outros. A cada categoria podem ser atribuídas permissões distintas de leitura, gravação e execução. E podemos alterar tudo isso se tivermos permissão correta e direta para isso por meio do utilitário chmod. As permissões também podem ser traduzidas em formas numéricas, em que leitura (r) equivale a 4, gravação (w) a 2 e execução (x) a 1. A soma cumulativa representa a permissão numérica, como 755. ```bash chmod 755 interfaces ``` Screenshot №3 - Chmod numeric Mas se quisermos negar todas as permissões a todos os tipos de usuários, precisaremos escrever o comando abaixo: ```bash chmod 000 interfaces ``` Screenshot №4 - Chmod numeric deny O comando chmod serve para modificar as permissões. Esse comando aceita notações simbólicas e numéricas. Por exemplo, chmod u+w nome do arquivo confere permissão de gravação ao proprietário. O **u** significa proprietário, **g** atribui ao grupo, **o** para outros e **a** para todos . Em seguida, indicamos + ou - ou = para adicionar, excluir, indicar explicitamente a permissão para os usuários: ```bash chmod u+rwx interfaces && chmod go-rwx interfaces ``` Screenshot №5 - Chmod symbolic Ou podemos usar o comando equal: ```bash chmod u=rwx, go= interfaces ``` Se quiser salvar a permissão de gravação de outros usuários e de grupos, mas precisar protegê-los contra exclusão, use o comando abaixo: ```bash chmod +t interfaces ``` Isso é o básico da permissão no sistema, mas e se precisarmos de mais? ## Utilidade para permissão de controle adicional No Linux, o núcleo principal fornece uma base sólida para o sistema operacional, mas não inclui todos os recursos e funcionalidades possíveis por padrão. O motivo pelo qual são necessários módulos e pacotes adicionais para controlar o acesso e as permissões de arquivos é dar aos administradores de sistema e aos usuários a flexibilidade de adaptar o comportamento do sistema às suas necessidades específicas. Aqui estão alguns motivos pelos quais essa abordagem é adotada: - Modularidade: O kernel do Linux foi projetado para ser modular, o que significa que várias funcionalidades podem ser compiladas como módulos carregáveis em vez de serem diretamente integradas ao kernel principal. Isso mantém o núcleo do kernel relativamente leve e permite que os usuários adicionem apenas os módulos específicos de que precisam. Essa abordagem melhora a eficiência do sistema e reduz o risco de códigos desnecessários afetarem a estabilidade do kernel. - Flexibilidade: Nem todos os usuários e sistemas exigem o mesmo nível de controle de acesso e permissões de arquivos. Ao oferecer módulos e pacotes adicionais, as distribuições Linux permitem que os administradores escolham as ferramentas apropriadas para seus requisitos de segurança específicos. Essa flexibilidade garante que os sistemas possam ser ajustados para atender a várias necessidades, seja um sistema de desktop simples ou um ambiente de servidor complexo. - Segurança: A oferta de módulos de controle de acesso e permissão de arquivos como pacotes separados garante que os usuários instalem apenas o que precisam. Isso reduz a superfície de ataque do sistema, pois os recursos desnecessários não estão presentes. Também permite que atualizações regulares e patches de segurança sejam aplicados especificamente a esses módulos, aumentando a segurança geral do sistema. Como você pode destacar, o sistema de controle de acesso padrão tem várias deficiências: não há proteção do sistema contra exclusão aleatória de arquivos significativos, integridade do sistema de arquivos etc. Vamos atualizar o sistema! Uso do Umask: O comando umask regula as permissões padrão para novos arquivos e diretórios. Ele consegue isso deduzindo a máscara especificada do valor máximo de permissão para definir os padrões. Por padrão, podemos ver essa lista de permissões: Screenshot №6 - Default permission Você pode ver a lista padrão de permissões para o arquivo, vamos alterá-la: ``` umask u=rwx,go= ``` Screenshot №7 - Umask Essa solução ajudará por algum tempo antes de você desligar a máquina ou a conexão; para trabalhar por mais tempo com o sistema, você pode adicionar o .bashrc ou o bash_login raw necessário! ## Conclusão A combinação de controles de acesso bem definidos, configurações de permissão precisas e a flexibilidade de adicionar ferramentas suplementares permite que os administradores de sistema criem um ambiente seguro e personalizado para gerenciar arquivos e dados no ecossistema Linux. https://serverspace.com.br/infrastructure/data-center-new-jersey.md O NNJ3 é um data center de última geração com um sistema de resfriamento inovador. O data center faz parte da Cologix, uma empresa americana, que possui mais de 20 data centers modernos localizados na América do Norte. - SOC 1 (SSAE18/ISAE3402); - SOC 2; - HIPAA; - PCI-DSS. https://serverspace.com.br/support/help/bitrix24-install-on-the-server-under-centos-7.md Instalar e configurar o Bitrix24 no servidor com Centos7. Explique os requisitos, as vantagens e os benefícios desse CRM ## Benefícios do Bitrix24 Um dos CRMs mais populares atualmente é o Bitrix24. Sua prevalência se deve à qualidade e ao suporte razoavelmente bons do desenvolvedor, à facilidade de gerenciamento e a um grande número de plug-ins de desenvolvedores de terceiros que expandem a funcionalidade básica. ## Requisitos do servidor O Bitrix24 pode ser instalado em qualquer servidor que atenda aos seguintes requisitos: - Edição moderna de 64 bits do Linux; - Pelo menos 2 GB de RAM; - Pelo menos 10 GB de espaço em disco (excluindo o espaço ocupado pelo sistema operacional); - Uma conta com direitos privilegiados; - Um nome de domínio ativo com registros DNS "direcionados" para o endereço IP do servidor; - Chave de licença válida (é possível o acesso de avaliação por 30 dias). ## Instalação e configuração Para instalar o Bitrix24 no Centos 7, os desenvolvedores da 1C criaram um script especial, para usá-lo, faça o seguinte: Faça login no servidor com direitos elevados; ``` sudo -s ``` Instale o utilitário _wget_ para obter o script de instalação; ```bash yum install -y wget ``` Faça o download do script de instalação e execute-o. Se necessário, o script oferecerá a desativação do SELinux, com a qual você deve concordar; ```bash wget https://repo.bitrix.info/yum/bitrix-env.sh bash bitrix-env.sh ``` Reinicialize o servidor; Execute o script novamente. A atualização do sistema será iniciada, aguarde a conclusão do processo e, como resultado, você verá uma mensagem como na captura de tela abaixo; Feche o terminal e faça login como root novamente. Você será solicitado a alterar a senha da conta bitrix. Faça isso. Crie um pool pressionando o número "1": Digite um nome para o pool. Se você tiver um site no servidor, é recomendável inserir o nome de domínio dele: O script iniciará seu trabalho e, quando terminar, abra seu site em um navegador. Deverá aparecer uma janela como a mostrada abaixo. Clique no botão "Install" (Instalar): Selecione a edição desejada do Bitrix24, insira sua chave de licença no campo abaixo e clique no botão "Download": Aceite o contrato de licença: Se você tiver uma chave de licença, preencha os campos propostos; se estiver instalando uma versão de avaliação, desmarque a caixa: A instalação do Bitrix24 será iniciada. Após a conclusão, será solicitado que você defina um nome de usuário e uma senha para entrar no CMS. Faça isso: Escolha um modelo de design de site entre os propostos ou faça o download de um modelo de terceiros no marketplace da 1C: As etapas restantes dependem do tema selecionado e das opções fornecidas para ele, e são mais ou menos assim: No final, você será levado ao painel administrativo do Bitrix24. Isso conclui a instalação: ## Conclusão Neste artigo, falamos sobre as vantagens do Bitrix24 e examinamos o processo de instalação em um servidor que executa o Centos 7 usando um script de instalação desenvolvido pela 1C. https://serverspace.com.br/support/help/installing-concourse-ci.md Instalando o Concourse CI - Serverspace. Configuração de serviços para iniciar. Configuração de um proxy reverso para obter acesso externo. ## **Preamble** Concourse CI - sistema moderno e escalonável para alto desempenho e desempenho com sintaxe declarativa componível. Em comparação com os experimentos para configurar um experimento contínuo, a equipe do Concourse fez todos os esforços para simplificar o gerenciamento do pipeline de experimentos contínuos. Em nosso tutorial, examinaremos a instalação do Concourse CI no servidor Ubuntu/Debian/CentOS, que será pré-instalado e configurado. Vamos configurar um banco de dados PostgreSQL para usar como backend. ## **Preparação para a instalação** Antes de instalar o Concourse CI, é necessário implantar um servidor Debian/Ubuntu/CentOS e configurá-lo. Você pode fazer isso usando nossa [instrução](https://serverspace.io/support/help/initial-server-setup-with-ubuntu-20-04//). ## Instalação e configuração do PostgreSQL Antes de fazer o download e instalar o Concourse CI, é necessário atualizar os índices dos pacotes e instalar o PostgreSQL. Para fazer isso, siga este código: ```bash apt update apt install postgresql postgresq-contrib ``` Depois de instalar o PostgreSQL, temos que criar um usuário no banco de dados do Concourse. A criação do usuário deve ser feita como postgres. ``` sudo -u postgres createuser concourse ``` O Concourse se conecta a um banco de dados atc. É necessário criar um banco de dados atc e atribuir direitos de propriedade ao usuário do concourse. ``` sudo -u postgres createdb --owner=concourse atc ``` Após o processo de instalação e criação do banco de dados, podemos fazer o download e instalar o Concourse CI. ## Baixar e instalar o Concourse CI Você pode usar o arquivo do [site oficial](https://concourse-ci.org/) do Concourse ou do GitHub. Em nosso caso, consideramos fazer o download do [GitHub](https://github.com/concourse/concourse/releases). É necessário fazer o download do servidor. ```bash curl -LO "url_for_concourse_linux.tgz" tar -xzf concourse*.tgz ``` Depois disso, precisamos fazer o download do cliente _fly_ em seu diretório pessoal e descompactá-lo: ```bash curl -LO "ufl_for_fly" tar -xzf fly*.tgz ``` Depois disso, precisamos definir os direitos de execução de arquivos nos arquivos descompactados e mover todos os arquivos para o diretório - /usr/local/bin ```bash chmod +x concourse* fly* mv concourse* /usr/local/bin/ mv fly* /usr/local/bin/ ``` Vamos nos certificar de que nossas versões do concourse e do fly são relevantes usando o comando: ``` concourse --version fly --version ``` Como resultado, obtemos as versões 7.9.0. ## **Configuração do serviço****Concourse ****CI** Afinal, é necessário criar o diretório concourse em /etc/: ``` mkdir -p /etc/concourse ``` Em seguida, temos que criar chaves de criptografia para acessar o serviço e definir a configuração do Concourse. Vá para o diretório /etc/concourse e gere as chaves: ```bash sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/tsa_host_key sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/worker_key sudo ssh-keygen -t rsa -q -N '' -f /etc/concourse/session_signing_key ``` Verifique o que está dentro da pasta por meio de: ``` ls -l ``` Como resultado, obteremos uma lista de chaves geradas: ``` -rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 session_signing_key -rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 session_signing_key.pub -rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 tsa_host_key -rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 tsa_host_key.pub -rw------- 1 spcsteam spcsteam 1823 Jan 4 12:18 worker_key -rw-r--r-- 1 spcsteam spcsteam 393 Jan 4 12:18 worker_key.pub ``` Vamos fazer uma cópia da chave worker_key.pub para distribuir essa chave aos funcionários para autorização. ``` cp /etc/concourse/worker_key.pub /etc/concourse/authorized_worker_keys ``` Vamos criar um arquivo de configuração para iniciar a UI da Web do serviço Concourse. ``` vim /etc/concourse/web_environment ``` No arquivo, especifique os caminhos para usar as chaves e o caminho para o arquivo para iniciar o PostgreSQL. E também especifique o login, a senha, o endereço do servidor e a porta. ``` CONCOURSE_SESSION_SIGNING_KEY=/etc/concourse/session_signing_key CONCOURSE_TSA_HOST_KEY=/etc/concourse/tsa_host_key CONCOURSE_TSA_AUTHORIZED_KEYS=/etc/concourse/authorized_worker_keys CONCOURSE_POSTGRES_SOCKET=/var/run/postgresql CONCOURSE_BASIC_AUTH_USERNAME=serverspace CONCOURSE_BASIC_AUTH_PASSWORD=p@ssw0rd CONCOURSE_EXTERNAL_URL=http://server_IP:8080 ``` Vamos salvar o arquivo e sair dele. Vamos criar um arquivo de configuração para o backend do Concourse. Especifique o caminho para a chave, o endereço local e a porta: ``` vim /etc/concourse/worker_environment ``` ``` CONCOURSE_WORK_DIR=/var/lib/concourse CONCOURSE_TSA_WORKER_PRIVATE_KEY=/etc/concourse/worker_key CONCOURSE_TSA_PUBLIC_KEY=/etc/concourse/tsa_host_key.pub CONCOURSE_TSA_HOST=127.0.0.1:2222 ``` Os serviços são iniciados no diretório /etc/systemd/system/. Por esse motivo, dois arquivos devem ser criados para iniciar os serviços da Web e de trabalho. ``` vim /etc/systemd/system/concourse-worker.service ``` ``` Description=Concourse CI worker process After=concourse-web.service User=root Restart=on-failure EnvironmentFile=/etc/concourse/worker_environment ExecStart=/usr/local/bin/concourse worker WantedBy=multi-user.target ``` Esse arquivo especifica o usuário a partir do qual o serviço é iniciado, o caminho para o arquivo de configuração e o caminho para o arquivo de trabalho a ser iniciado a partir do diretório /etc/concourse. Agora vamos criar um arquivo para iniciar o serviço WEB UI no diretório /etc/systemd/system: ``` vim /etc/systemd/system/concourse-web.service ``` ``` Description=Concourse CI web process (ATC and TSA) After=postgresql.service User=concourse Restart=on-failure EnvironmentFile=/etc/concourse/web_environment ExecStart=/usr/local/bin/concourse web WantedBy=multi-user.target ``` Vamos adicionar a porta 8080 às regras do ufw para obter acesso de outro host e iniciar os serviços: ```bash ufw allow 8080 service start concourse-web.service service start concourse-worker.service ``` Vamos adicionar o carregamento automático aos serviços concourse-web e concourse-worker para que eles sejam iniciados automaticamente quando o servidor for iniciado: ```bash systemctl enable concourse-web concourse-worker ``` ## **Acesso à ****Interface da Web** Na linha de comando, execute o seguinte comando: ``` fly -t tutorial login -c http://127.0.0.1:8080 -u serverspace -p p@ssw0rd ``` Como resultado, obteremos: ``` logging in to team 'main' target saved ``` Vamos verificar o componente ativo usando o comando: ``` fly -t tutorial workers ``` ``` #Result name containers platform tags team state version age 01fb36b82106 0 linux none none running 2.4 1d ``` A interface da Web é verificada por meio de um navegador da Web. Digite o endereço e a porta do servidor na barra de endereços. ## **Conclusão** Como resultado, podemos dizer que as seguintes ações foram consideradas: - Baixar os arquivos de origem do GitHub; - Configuração do Concourse e do Fly; - Definição de arquivos de configuração; - Configurar arquivos para iniciar o trabalhador e os serviços da Web; - Criar um trabalhador; - Fazer login na interface da Web. https://serverspace.com.br/support/help/how-to-install-vnc-on-the-server-under-ubuntu-20-04.md Após a leitura deste artigo, você saberá como instalar, executar e salvar o status do serviço VNC em seu próprio servidor no Ubuntu 20.04 ## O que é VNC VNC (Virtual Network Computing) - software que torna seu teclado e mouse "locais" conectados a qualquer outro servidor. Essa ferramenta permite o fácil gerenciamento de arquivos, software e configurações em um servidor remoto. ## Requisitos para instalação Embora seja possível usar o console VNC como ferramenta de gerenciamento no modo CLI, ele é completamente sem sentido, pois o SSH é melhor nesse cenário (exceto na recuperação de desastres). Portanto, o motivo para usar o VNC é a presença da GUI. Você precisa de pelo menos 2 Gb de RAM, CPU de 2 núcleos e 20 a 30 GB de espaço em disco. ## Instalação Agora você está pronto. Siga as etapas abaixo: Atualize o cache do software e instale os pacotes por meio da ferramenta de gerenciamento de pacotes do sistema: ```bash apt-get update && apt install xfce4-goodies tightvncserver xfce4 ``` Execute a ferramenta instalada e defina a senha de acesso. Você também pode definir uma senha separada para os "visualizadores", se desejar: ``` vncserver ``` Encerrar a sessão: ``` vncserver -kill :1 ``` Adicione uma linha ao arquivo de configurações: ``` echo "startxfce4 &" >> /root/.vnc/xstartup ``` Adicionar permissões de execução ao arquivo: ```bash chmod -rwxr-xr-x /root/.vnc/xstartup ``` Execute o serviço novamente: ``` vncserver ``` Agora seu serviço VNC está pronto para ser usado. Lembre-se: se você preferir qualquer cliente VNC, precisará adicionar "59" antes do número da porta "real". Por exemplo, se a porta real for "1", você deverá usar "5901" em seu software cliente: Deve aparecer um resultado como o abaixo. Se você viu isso, você é ótimo! A próxima etapa é opcional: você pode querer executar o serviço VNC automaticamente. Isso é muito fácil. Crie um arquivo inicial de serviço: ``` cat /etc/systemd/system/vnc.service Description=VNC-server After=syslog.target network.target Type=forking User=root PAMName=login PIDFile=/root/.vnc/%H:1.pid ExecStartPre=-/usr/bin/vncserver -kill :1 > /dev/null 2>&1 ExecStart=/usr/bin/vncserver ExecStop=/usr/bin/vncserver -kill :1 WantedBy=multi-user.target EOT ``` Habilite nosso serviço e inicie-o: ```bash systemctl enable vnc systemctl start vnc ``` ## Conclusão Agora você pode organizar um acesso fácil ao ambiente de trabalho do seu servidor e configurar esse acesso para funcionar permanentemente. https://serverspace.com.br/support/help/how-to-django-postgres-gunicorn.md É uma estrutura avançada para a criação de aplicativos em Python, que ajuda a reduzir o tempo de desenvolvimento com sua biblioteca de ferramentas e módulos. ## Introdução O Django é uma estrutura gratuita e de código aberto para o desenvolvimento de aplicativos da Web em Python. Ele fornece ferramentas poderosas para desenvolver sites e aplicativos da Web completos. Ele permite que os desenvolvedores criem aplicativos de forma rápida e eficiente sem perder a qualidade. O Django é famoso por sua versatilidade e potência no desenvolvimento da Web. É uma estrutura avançada para a criação de aplicativos em Python, que ajuda a reduzir o tempo de desenvolvimento com sua biblioteca de ferramentas e módulos. Também é conhecido por seus recursos avançados de criação de modelos e construção automática de URLs. Essa estrutura também oferece boa segurança para os aplicativos, pois verifica automaticamente os dados de entrada e evita ataques. ## Comparação com outras estruturas - Flask (Python) Desvantagens: você precisa escrever a maior parte do código por conta própria e não há ferramentas suficientes para grandes projetos; - Ruby on Rails Desvantagens: Inicialização lenta, alta sobrecarga de memória e alto limite de entrada; - Desvantagens do Pyramid: Difícil de configurar e não há ferramentas suficientes para grandes projetos; - Desvantagens do Laravel (PHP): difícil de configurar e nenhuma ferramenta fácil de usar para criar um "banco de dados". O Postgres é conhecido por sua alta confiabilidade e desempenho. Ele também tem recursos avançados para análise de dados, incluindo funções analíticas e ferramentas para lidar com a geoespacialização. Há também uma grande variedade de plug-ins que podem complementar sua funcionalidade. O Gunicorn é conhecido por sua facilidade de uso e alto desempenho. Ele é um gerenciador de processos Python simples que pode lidar com várias solicitações em um único servidor. O Gunicorn tem muitos recursos incorporados, como suporte ao protocolo HTTP/1.1, reinicialização automática e dimensionamento de vorkers. Ele também pode ser usado em combinação com outras estruturas da Web, como Django e Flask. O Nginx é um dos servidores da Web mais populares e confiáveis. É fácil de instalar e configurar, tem alto desempenho e baixo uso de recursos, oferece suporte a aplicativos da Web e sites dinâmicos e tem muitos recursos diferentes, incluindo envio de conteúdo estático, proxy, redirecionamento de URL e roteamento. Ele pode ser usado principalmente para lidar com o tráfego da Web, bem como para tolerância a falhas e alto desempenho. ## Começando Atualize os pacotes de software. ```bash sudo apt update ``` Instale o software a seguir. ```bash sudo apt install python3-pip python3-dev libpq-dev postgresql postgresql-contrib nginx curl ``` ## Configurar o banco de dados Faça login no Postgres. ``` sudo -u postgres psql ``` Comando para criar um banco de dados para o projeto. ```sql CREATE DATABASE "yournameproject"; ``` Crie um banco de dados, um usuário e otimize nosso banco de dados para que ele funcione mais rápido. ```sql CREATE DATABASE "yournameproject" ``` . O banco de dados foi criado e precisamos fazer alterações em determinados parâmetros. ```sql CREATE USER "YourUsername" WITH PASSWORD 'password'; ``` O usuário foi criado com sucesso e decidi otimizar o "DB" alterando os parâmetros para acelerar o nosso "DB". ```sql ALTER ROLE "Yourproject" SET timezone TO 'UTC'; ALTER ROLE "Yourproject" SET default_transaction_isolation TO 'read committed'; ALTER ROLE "Yourproject" SET client_encoding TO 'utf8'; ``` Esses parâmetros são criados para fornecer ao usuário uma conta para se conectar ao banco de dados com uma senha. Em seguida, a função do usuário será configurada com um fuso horário padrão de UTC, um isolamento de transação padrão de "Read Completely" e uma codificação de cliente padrão de UTF-8. Concedido acesso ao usuário para administrar o "DB". ``` GRANT ALL PRIVILEGES ON DATABASE "yourproject" TO "myprojectuser"; ``` ## Criando um espaço de trabalho para o projeto Criei um "DB" e agora podemos passar para os requisitos restantes do projeto. Para tornar as coisas um pouco mais fáceis, configurei todos os requisitos de que precisamos em um ambiente virtual. Vamos escrever esses comandos. ``` sudo -H pip3 install --upgrade pip sudo -H pip3 install virtualenv ``` Depois de instalar a ferramenta "virtualenv", começo a modelar nosso projeto. Criei um diretório no qual armazenaremos nossos arquivos para o projeto e navegarei até ele ``` mkdir ~/yourprojectdir cd ~/myprojectdir ``` No diretório, crie um ambiente virtual. ``` virtualenv yourprojectenv ``` _virtualenv é um comando que permite criar ambientes isolados para diferentes projetos e usar diferentes versões de bibliotecas e aplicativos._ Isso permite que a mesma pilha de tecnologia seja mantida para todos os projetos da organização, reduzindo o risco de incompatibilidades e bugs. Esse diretório conterá imediatamente a versão local do Python e o sistema de gerenciamento de pacotes. Antes de atribuirmos requisitos ao nosso projeto, precisamos executar o ambiente virtual. Digite este comando. ``` source yourprojectenv/bin/activate ``` A linha de comando será alterada, mostrando que agora você está executando o ambiente virtual do Python. Ela será semelhante a esta. Ao executar o ambiente virtual, instale os componentes necessários. ```bash pip install django gunicorn psycopg2-binary ``` ## Criação do projeto Um diretório de projeto já foi criado para a estrutura, portanto, precisamos especificar o caminho para a inicialização, porque o segundo diretório contém o subdiretório com o código do script de controle dentro dele. ``` django-admin startproject yourproject ~/yourprojectdir ``` Depois disso, você precisará alterar alguns parâmetros no arquivo de projeto gerado. Abra o arquivo de configurações com qualquer editor de texto. ``` nano ~/yourprojectdir/yourproject/settings.py ``` Agora precisamos alterar as configurações. Em seguida, role a tela para baixo e encontre a seção que fornece a senha, cujo nome é "DB". Procure também a string DATABASES, configure essa string para seus dados. Role para baixo e adicione o parâmetro para especificar onde você deseja armazenar os arquivos estáticos. ## Configuração final Usando os scripts de gerenciamento, moverei o esquema "DB". ``` ~/yourprojectdir/manage.py ~/yourprojectdir/manage.py migrate ``` Crie um usuário administrativo para o projeto. ``` ~/yourprojectdir/manage.py createsuperuser ``` Coletou todo o conteúdo estático no diretório fornecido. ``` ~/myprojectdir/manage.py collectstatic ``` O comando precisa ser validado. Depois disso, todos os arquivos serão movidos para o diretório "static" do projeto. Abra também a porta que será usada para o projeto. ``` sudo ufw allow 2222 ``` ## Check Verifique nosso projeto iniciando o servidor da estrutura. ``` ~/myprojectdir/manage.py runserver your_ip:2222 ``` Vá para o navegador da Web para verificar se a estrutura funciona. Após a autorização no recurso da Web, você será direcionado ao painel de controle. ## Saída Nesta postagem, mostrei como preparar o sistema Ubuntu 20.04 para iniciar um projeto Django com um banco de dados Postgres, um servidor Web Gunicorn e um proxy Ngnix configurado. https://serverspace.com.br/support/help/how-to-ngnix-ubuntu-20-04.md Laravel - é uma estrutura PHP disponível publicamente e foi desenvolvida em 2011. Ele é usado para criar recursos e aplicativos da Web em várias camadas. ## Introdução Nesta publicação, descreverei como implantar um aplicativo Laravel em um servidor no Ubuntu Linux 20.04. Laravel - é uma estrutura PHP disponível publicamente e foi desenvolvida em 2011. Ele é usado para criar recursos e aplicativos da Web em várias camadas. Ele suporta prontamente o teste funcional ao criar software, e você pode evitar o uso de outras ferramentas de teste de software. Fácil escalabilidade de projetos na estrutura Laravel. A estrutura fornece um sistema de autorização simples, mas rápido e acessível, e dá a você direitos de acesso imediato aos seus arquivos. Isso nos permite restringir o acesso a usuários não autorizados. Fornecendo segurança ao aplicativo, o código da estrutura é protegido contra ameaças como injeção de SQL ou falsificação de consulta entre sites. O Laravel oferece uma abordagem simples e flexível para o desenvolvimento de aplicativos da Web. Ele vem com recursos e ferramentas poderosos que permitem aos desenvolvedores criar e manter aplicativos da Web de forma rápida e fácil. Há também uma opção para que os desenvolvedores avançados usem modelos e módulos para projetar e desenvolver aplicativos com mais eficiência. Além disso, o Laravel suporta muitos bancos de dados populares, como MySQL, Postgres, SQLite e MS SQL, o que o torna mais adequado para o desenvolvimento de aplicativos com diferentes bancos de dados. Ele tem mecanismos integrados para segurança e autenticação e, além disso, tem ferramentas poderosas para monitorar aplicativos. Tudo isso torna o Laravel muito atraente para o desenvolvimento de aplicativos da Web. O Nginx oferece suporte aos seguintes recursos exclusivos: - Gerenciamento de desempenho: O Nginx fornece muitas ferramentas para ajustar o desempenho do servidor, incluindo a capacidade de dimensionamento e controle de carga. - Suporte a um grande número de protocolos: O Nginx oferece suporte a uma ampla variedade de protocolos, incluindo HTTP, HTTPS, FTP, SMTP e muitos outros. - Gerenciamento de cache: O Nginx permite o ajuste do cache para melhorar o desempenho e o tempo de resposta. - Suporte para aplicativos distribuídos: O Nginx oferece suporte a aplicativos distribuídos, permitindo distribuir a carga entre vários servidores. - Suporte para hospedagem compartilhada: O Nginx permite que você faça hospedagem compartilhada, permitindo que vários sites da Web sejam executados em um único servidor. ## Requisitos do sistema - Servidor em um sistema operacional Linux Ubuntu; - Pacotes atualizados de sistema e aplicativos; - Software pré-instalado de: banco de dados; servidor da Web. ## Alterações no sistema Atualização de pacotes. ```bash sudo apt update ``` Instalar os pacotes necessários dos módulos PHP. ```bash sudo apt install php-mbstring php-xml php-bcmath ``` ## Criação de banco de dados Antes de mais nada, vamos pesquisar algumas opções exclusivas no banco de dados mysql. - Estratégias de otimização: uso de índices, otimização de consultas e definições de configuração. - Replicação mestre-escravo, que permite a duplicação assíncrona de dados entre vários servidores. - Logs binários para registrar alterações nas tabelas do banco de dados. - Consultas SQL procedimentais (PL/SQL) para executar tarefas complexas. - Uso de gatilhos para execução automática de ações após a execução da consulta. - Suporte para visualizações que fornecem outro mecanismo para armazenar e manipular dados. - Suporte para procedimentos armazenados para tarefas complexas. - Suporte para tarefas diferidas para realizar consultas e ações em um momento específico. - Uso de clustering para distribuir dados e consultas entre os nós. - Suporte para trabalhar com geodados que permite usar dados em mapas. ```bash sudo mysql ``` Criei um novo "banco de dados". Criou um usuário e me deu todos os direitos para o "DB" criado. Concedeu todo o acesso ao "DB" para o usuário e, em seguida, deixou o "DB". Isso concede ao usuário todos os direitos de acesso ao "banco de dados" para administração. Verifique se podemos entrar no MySQL usando as credenciais do nosso usuário. Verifique o mesmo acesso ao "DB" criado e, em seguida, saia do "DB". ## Criando um novo aplicativo Eu crio uma tabela no banco de dados. Inserção de dados na tabela. No meu caso, insiro dados sobre cidades populares. Verifique se os registros foram adicionados à tabela. Você verá uma janela como esta. ## Desenvolvimento de um aplicativo para a estrutura Depois de criar um aplicativo de lista de cidades. Ele é usado para mostrar as principais configurações da estrutura e o acesso ao "banco de dados". Criei um novo diretório chamado "citylist", no qual a própria estrutura estará contida. ```bash composer create-project --prefer-dist laravel/laravel "name_of_your_project" ``` Após a instalação, as seguintes informações serão exibidas na linha de comando. Agora, abra o diretório do nosso aplicativo e execute o comando artisan para verificar se os componentes estão instalados corretamente. ```bash cd "name_of_your_project" php artisan ``` Artisan é a CLI incluída na estrutura. Ele fornece vários comandos que são úteis para o desenvolvimento do aplicativo. Se tudo for feito conforme as instruções, será mostrado o seguinte. ## Configurando a estrutura A configuração da estrutura está localizada no diretório "config" de seu diretório principal. Quando instalamos a estrutura usando o utilitário "Composer", criamos um arquivo de ambiente. O arquivo de ambiente registra as configurações do seu ambiente, onde o aplicativo reside, e coloca seu arquivo acima dos outros arquivos de configuração, que estão localizados no diretório "config". Abra o arquivo ".env". ``` Nano .env ``` Embora o arquivo pareça ter muitas configurações, configurarei apenas as que precisamos. Abaixo, escreverei e descreverei quais parâmetros alterarei. - NAME é o nome do aplicativo. - ENV é uma variável de ambiente que define o ambiente atual do aplicativo. - KEY é a chave do aplicativo usada para criptografar dados. - URL é o URL do aplicativo. - DATABASE é o nome do banco de dados. - USERNAME é o nome de usuário do banco de dados. - PASSWORD é a senha do usuário do banco de dados. Altere as seguintes chaves no arquivo do aplicativo. ## Configuração de um servidor da Web Mova nossa pasta de aplicativos para o diretório "/var/www", que geralmente é onde todos os aplicativos executados em um servidor da Web são armazenados. ``` mv ~/name_of_your_project /var/www/name_of_your_project ``` Deu acesso às pastas em que a estrutura salva os arquivos criados pelo aplicativo. Vamos prosseguir com a configuração do servidor da Web. Crie um arquivo de configuração de host virtual. ``` nano /etc/nginx/sites-available/name_of_your_project ``` Insira as seguintes configurações para o servidor da Web. ```css server { listen 80; server_name IP ADDRESS/DOMAIN_NAME; root /var/www/YOURPROJECT/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; index index.html index.htm index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string;} location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } error_page 404 /index.php; location ~ .php$ { fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /.(?!well-known).* { deny all;}} ``` Agora, execute um novo arquivo com configurações de host virtual e crie um link para seu projeto em "sites-enabled". ``` sudo ln -s /etc/nginx/sites-available/name_of_your_project /etc/nginx/sites-enabled/ ``` Verifique se há erros de sintaxe nas configurações. ``` sudo nginx -t ``` Reiniciar o servidor da Web ```bash systemctl reload nginx ``` ## Configuração da página principal da estrutura Abra o arquivo de rota principal. ``` nano routes/web.php ``` Insira os seguintes parâmetros em nosso arquivo. Crie um novo arquivo - uma tela que renderizará a saída do "DB" para o usuário. ``` nano resources/views/travellist.blade.php ``` Esse código foi projetado para gerar as informações. Nós as escrevemos no arquivo de configuração. ```php https://serverspace.com.br/support/help/first-python-program.md As instruções abrangem os programas mais simples em Python. Como escrever seu primeiro Hello, World! e como uma multiplicação de dados numéricos. ## Introdução O programa Python mais simples é imprimir uma string dizendo Hello, World! Vamos descobrir como escrevê-lo. Para fazer isso, precisamos instalar a versão mais recente do Python em nosso sistema. ## Preparação antes de começar Para começar, você precisa expandir o [ambiente virtual](https://serverspace.com.br/support/help/python-3-virtual-environment-on-ubuntu-22-04/) no Python 3. Você também precisará [configurar inicialmente](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/) nosso servidor. ## Primeiro programa Vamos usar a linha de comando do Python 3: ``` python3 ``` Vamos executar o comando que exibe informações: ``` print("Hello, World!") ``` Na saída, obtemos o resultado: ``` Hello, World! ``` A instrução print() executa a função de saída de dados para o console. Vamos criar um arquivo com o Vim: ``` vim TestFirstProgramm.py ``` E adicionar um código de uma linha: ``` print("Hello, World!") ``` Para executar o programa propriamente dito, execute o comando: ``` python3 TestFirstProgramm.py ``` Considere também o uso de variáveis no código e o uso de print() para imprimir informações das variáveis: ``` #Assigning values ​​to variables a = "Hello," b = " World!" print(a+b) ``` Na saída, obtemos o resultado: ``` Hello, World! ``` As variáveis são atribuídas não apenas a tipos de dados de cadeia de caracteres, mas também a números inteiros ou de ponto flutuante. No exemplo a seguir, considere a multiplicação de números usando variáveis. Vamos atribuir o valor 5,60 à variável "a" e o valor 5 à variável "b" e multiplicá-los usando a instrução print(a*b), de acordo com o código a seguir: ``` python3 a = 5.60 b = 5 print(a*b) ``` Obtemos o seguinte resultado: ``` #Result: 28.0 ``` ## Conclusões Como resultado, podemos dizer que escrever o primeiro programa na linguagem de programação Python não é difícil. Há várias possibilidades, como: - escrever um[módulo](https://serverspace.com.br/support/help/import-modules-into-python-3/) para projetos; - criação de classes dentro de módulos; - definição de uma [função](https://serverspace.com.br/support/help/how-to-create-functions-in-python-3/) em uma classe; - importar módulos usando a instrução import. https://serverspace.com.br/support/help/how-to-change-the-mariadb-data-directory-to-a-new-location-in-centos-7.md Você sabia o que é o MariaDB, os motivos para mover seus dados para outro local e como fazer isso no servidor com Centos 7 ## O que é MariaDB O MariaDB é um sistema de banco de dados baseado em SQL muito popular. Ele é mais poderoso e totalmente compatível com seu "ancestral", o MySQL. ## Por que você pode precisar mover o diretório de dados do MariaDB para outro local Há duas razões principais: - O espaço do disco atual acabou; - Unidade de disco mais rápida instalada e você deseja melhorar o desempenho dos bancos de dados. ## Como alterar o local dos dados do banco de dados Antes de qualquer operação, recomendo enfaticamente que você verifique qual é o local atual dos dados. Basta abrir uma sessão SSH como usuário root, fazer login no MariaDB e executar este comando: ```bash mysql -u root select @@datadir; ``` Saia e pare o serviço: ```bash quit; service mariadb stop ``` Crie um novo diretório e mova os dados dos bancos de dados para ele: ``` mkdir && rsync -av ``` Edite o arquivo de configuração do serviço de banco de dados: ``` sed -i 's|||g' /etc/my.cnf cat /etc/my.cnf socket=/mysql.sock EOT ``` Crie um arquivo de soquete especial e defina as permissões: ``` touch /mysql.sock && chmod 777 /mysql.sock ``` Inicie o serviço: ```bash service mariadb start ``` Verifique onde os dados estão localizados agora: ```bash mysql -u root select @@datadir; ``` ## Conclusão Após a leitura deste artigo, você soube o que é o MariaDB, os possíveis motivos para mover seus dados para outro local e como fazer isso. https://serverspace.com.br/support/help/python-3-virtual-environment-on-ubuntu-22-04.md Aprenda a instalar o Python 3, configurar o pip3 e criar um ambiente virtual no Ubuntu 22.04. Guia completo com passos de instalação, ativação, testes e pacotes essenciais. Python é uma linguagem de programação interpretada. O autor é Guido van Rossum, um desenvolvedor da Holanda. Python é uma linguagem rica em recursos, e os iniciantes se acostumam rapidamente com a sintaxe da linguagem e programam em um editor de texto conveniente ou usam um ambiente de desenvolvimento integrado. Usando a linguagem Python, você pode obter informações sobre erros no código escrito. Com este guia, você poderá instalar a versão mais recente do Python no Ubuntu Server 22.04. ## Preparação para a instalação Antes de instalar os pacotes, você precisa seguir [nosso guia](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/) para executar o Ubuntu Server 22.04 como um usuário padrão. ## Baixe o Python 3 Vamos atualizar o índice de pacotes e executar o comando para atualizar os pacotes para as versões mais recentes: ```bash sudo apt update && sudo apt upgrade -y ``` A chave "-y" significa forçar a atualização. A verificação da versão do Python é feita da seguinte forma: ``` python3 --version ``` A saída será semelhante a esta: ```bash #Output Python 3.10.6 ``` A próxima etapa é instalar o python3-pip para gerenciar os pacotes Python. Vamos usar o comando interno: ```bash sudo apt install python3-pip -y ``` Para instalar a biblioteca matplotlib, você deve executar o seguinte comando e o resultado é mostrado na Tela 1: ``` pip3 install matplotlib ``` Tela 1 - Instalando a biblioteca matplotlib Para garantir que o ambiente do software seja confiável, é necessário instalar vários pacotes ```bash sudo apt install build-essential libssl-dev libffi-dev python3-dev ``` A primeira etapa foi concluída. Atualizamos o índice de pacotes e atualizamos os pacotes obsoletos, a versão atual do sistema de gerenciamento de pacotes pip3 está instalada. # Configuração de um ambiente virtual Um ambiente de desenvolvimento virtual em um servidor de produção é considerado uma ótima solução em comparação com a execução em um ambiente de desenvolvimento principal. Em um ambiente virtual, você pode editar e não danificar os arquivos do ambiente de desenvolvimento principal. Podemos criar quantos ambientes virtuais forem necessários. Cada ambiente virtual é implantado em diferentes diretórios em nosso servidor. Os diretórios contêm arquivos para inicializar o ambiente virtual. O ambiente virtual é implantado usando o pacote venv (ambiente virtual) instalado: ```bash sudo apt install python3-venv -y ``` Em seguida, vamos criar um diretório chamado test: ``` mkdir test cd test ``` Mude para o primeiro diretório e use o seguinte comando para criar um ambiente virtual chamado test_env: ``` python3 -m venv test_env ``` O resultado é mostrado na Tela 2. Tela 2 - Criar um ambiente virtual Os arquivos gerados configuram o ambiente virtual para funcionar separadamente dos nossos arquivos de host. A ativação do ambiente é feita da seguinte forma e, para desativar o ambiente, você deve executar o comando deactivate: ``` source test/test_env/bin/activate ``` Para desativar o ambiente virtual, execute o comando: ``` deactivate ``` Os resultados são mostrados na Tela 3. Tela 3 - Ativação e desativação de um ambiente virtual Na figura, é possível ver que, após o lançamento, aparece uma inscrição na frente do nome do usuário (test_env) indicando que todos os comandos são executados em um ambiente virtual; a próxima etapa é considerar a execução de um código regular escrito na linguagem de programação Python. ## Testando o ambiente virtual Após a ativação, você precisa criar um arquivo com a extensão .py: ``` vim thanks.py ``` И вставим следующий кусок кода: ``` print("Dear User,n" "Thank you for using tutorials from n" "Serverspace Team") ``` Para executar o programa, faça o seguinte: ``` python3 thanks.py ``` E obtemos o seguinte resultado, conforme mostrado na Tela 4. Tela 4 - Executando código em um ambiente virtual Nesse ponto, o estágio termina e, para concluir o processo de trabalho no ambiente virtual, executaremos o comando "deactivate" (desativar) e retornaremos ao ambiente normal. ## Conclusões Nesta instrução: - Consideramos opções para atualizar pacotes de software e atualizar o índice de pacotes; - Instalou as bibliotecas da linguagem de programação Python usando o sistema de gerenciamento de pacotes pip3; - Considerou a ativação e a desativação do ambiente virtual; - Testou o trabalho em um ambiente virtual. ## FAQ - **Preciso instalar o Python manualmente no Ubuntu 22.04?** Não. O Ubuntu 22.04 já inclui o Python 3 por padrão, mas é recomendado atualizar os pacotes para obter a versão mais recente disponível nos repositórios. - **Para que serve o pip3?** O pip3 é o sistema de gerenciamento de pacotes do Python. Ele permite instalar bibliotecas adicionais, como o matplotlib, diretamente do PyPI. - **Por que usar um ambiente virtual?** Ambientes virtuais isolam dependências e versões de pacotes, evitando conflitos com a instalação principal do sistema. Isso é essencial em servidores de produção e projetos múltiplos. - **Posso criar vários ambientes virtuais?** Sim. Você pode criar quantos ambientes forem necessários, cada um armazenado em seu próprio diretório. - **Como sei que o ambiente virtual está ativo?** Ao ativar o ambiente, o nome dele aparece antes do prompt do terminal, indicando que todos os comandos estão sendo executados dentro desse ambiente. - **Como desativo o ambiente virtual?** Basta executar o comando deactivate para voltar ao ambiente principal do sistema. https://serverspace.com.br/support/help/how-to-write-a-module-in-python-3.md As instruções abrangem as opções de gravação de módulos, importação de módulos, adição de um módulo ao sys.path e extração de informações sobre os caminhos do sistema. ## **Introdução** Os módulos em Python são arquivos com extensão ".py" codificados em Python. Qualquer arquivo escrito em Python pode ser referenciado como um módulo. Vários módulos estão disponíveis após a instalação da linguagem Python. Alguns módulos precisam ser instalados manualmente. A instalação manual de módulos foi abordada em nosso guia sobre [importação de módulos para o Python 3](https://serverspace.com.br/support/help/import-modules-into-python-3/). Com este guia, você entenderá como: - Escrever um módulo; - Acessar módulos de outros diretórios; - Usar uma variável de ambiente; - Módulo em variável de ambiente do Python 3. ## Preparação para o trabalho Você deve ter uma distribuição baseada em Debian/CentOS//[Ubuntu](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/) configurada, configurando um usuário com privilégios sudo. Configuração do [ambiente virtual](https://serverspace.com.br/support/help/python-3-virtual-environment-on-ubuntu-22-04/) da linguagem Python. Recomendamos que você se prepare com antecedência antes de começar a trabalhar. ## Escrevendo e importando módulos A primeira etapa é verificar a versão do Python com: ``` python3 --version ``` No momento, a versão atual é 3.10.6. Se você tiver uma versão mais antiga, atualize o índice de pacotes e os pacotes de software usando: ```bash sudo apt update && apt upgrade -y ``` Vamos iniciar o ambiente virtual e usar o editor de texto Vim para criar um novo arquivo chamado testingFile.py e adicionar as seguintes linhas de código logo no início, especificando o shebang. Shebang - usando #! especifique o caminho para o interpretador Python, consulte nossas instruções para obter mais detalhes. ``` #!/usr/bin/env python # Function definition def test(): print("This is test file") ``` Se executarmos com: ``` python3 testingFile.py ``` Obteremos um resultado vazio. Precisamos criar um segundo arquivo e chamá-lo de test2.py, abri-lo com o vim e importar testingFile.py para o arquivo test2.py e chamar a função de teste. ``` vim test2.py #!/usr/bin/env python3 #File import import testingFile #Calling a function from testingFile testingFile.test() ``` Obtemos o seguinte resultado, como na Tela 1. Tela 1 - Chamando uma função de um módulo importado Estamos importando o módulo sem usar "from testingFile import test", precisamos chamar a função usando o nome do módulo. O uso de from ... import pode ser considerado em nossas instruções. Considere o uso de variáveis em nosso módulo, adicione uma linha na parte inferior: ``` #!/usr/bin/env python3 # Function definition def test(): print("This is test file") #Assigning a value to a variable name = "serverspace" ``` Em seguida, no arquivo test2.py, no final, adicione uma linha alterando nosso código para a seguinte forma: ``` #!/usr/bin/env python3 #File import import testingFile #Calling a function from testingFile testingFile.test() #Calling a print function using a variable print(testingFile.name) ``` A saída é mostrada na Figura 2. Tela 2 - Chamando uma variável de um módulo Depois de considerar a possibilidade de chamar a função e a variável print, vamos dar uma olhada na criação de uma classe e adicionar alguns atributos à classe usando os seguintes comandos. ``` #!/usr/bin/env python3 # Function definition def test(): print("This is test file") #Assigning a value to a variable name="serverspace" #Class definition class TestingClass: def __init__(self, name, age): self.name = name self.age = age def tell_me_about_TestingClass(self): print("this class is " + self.name + ".") print(self.name + "is the testing's name") ``` Agora, usando o arquivo test2.py, chamaremos a função de inicialização e as informações sobre a classe: ``` #!/usr/bin/env python3 #Import module import testingFile #Function call testingFile.test() #Output information from another module print(testingFile.name) #Calling functions from a class server = testingFile.TestingClass("testingserver", "30 y.o.") server.tell_me_about_TestingClass() ``` O resultado é mostrado na Tela 3. Tela 3 - Chamando funções da classe TestingClass Primeiro, criamos uma variável chamada "server", chamamos a classe do módulo testingFile.py, atribuímos valores para o nome da variável "testingserver" e o valor "30 y.o." para a variável idade. É importante ter em mente que um módulo é uma definição, mas, ao mesmo tempo, é possível implementar código. Considere um novo exemplo de módulo em test3.py ``` #!/usr/bin/env python3 def TestHello(): print("Testing Hello, World!") #Calling a function in a module TestHello() ``` Importe o módulo para o arquivo test4.py e verifique a chamada da função TestHello: ``` #!/usr/bin/env python3 import test3 ``` Obtemos o resultado de acordo com a Tela 4. Tela 4 - Chamando uma função de um módulo O motivo é simples: dentro do arquivo test3.py, criamos uma função chamada TestHello e, dentro dela, implementamos a função de impressão de texto. Em seguida, chamamos a função criada e a importamos para o arquivo test4.py. Assim, ao executar o test4.py, chamamos a função de impressão de texto a partir da função TestHello. ## Acesso a módulos de outros diretórios Às vezes, alguns módulos são úteis não apenas para um projeto, mas também para outros projetos. Por esse motivo, não é necessário armazenar o módulo no mesmo diretório do projeto. Você pode criar um diretório compartilhado e fazer referência a esse diretório usando vários métodos. ### Usando uma variável de ambiente Se o módulo estiver fora do projeto, use o módulo sys e use-o para especificar o caminho para o ambiente em que o arquivo com o módulo desejado está localizado. Por exemplo, se criarmos o arquivo test5.py no diretório home, não poderemos importar o arquivo test3.py localizado no diretório do ambiente virtual. Considere como especificar o caminho para o arquivo test3.py: ``` import sys sys.path.append('/root/testing/') import test3 ``` E obteremos um resultado bem-sucedido, conforme mostrado na Tela 5. Tela 5 - O resultado Podemos obter um resultado bem-sucedido especificando o caminho correto para o test3. ### Módulo na variável de ambiente do Python 3 Esse método é considerado uma solução eficaz, pois o módulo fica disponível para todo o ambiente e sistema. Verificando qual caminho o Python verifica com comandos ``` python3 import sys print(sys.path) ``` Como resultado, obteremos os caminhos de teste do interpretador Python, conforme mostrado na Tela 6. Tela 6 - Maneiras comuns de verificar o interpretador Python Selecione o caminho desejado e copie o arquivo test3.py para o caminho desejado. ``` cp testing/test3.py /usr/lib/python3.10 python3 test5.py ``` No arquivo test5.py, remova a importação do módulo sys. Vamos executar o código: ``` cat test5.py #to make sure the sys import line is removed or commented out python3 test5.py ``` Obtemos a saída como na Tela 7. Tela 7 - Acessando um módulo a partir de um caminho compartilhado Copiar o módulo para o caminho de checkout comum do interpretador Python provou ser o mais eficiente. O motivo é que, para não importar o módulo sys nos arquivos de código todas as vezes e especificar o caminho para o módulo desejado, vale a pena copiar o módulo desejado para o caminho comum. Não se esqueça do backup dos módulos necessários, pois ninguém exclui a remoção de módulos não padrão após a atualização dos pacotes Python. ## Conclusões Neste guia, abordamos as seguintes opções: - Criação de um módulo; - Importar o módulo criado; - Referir-se ao módulo importando o módulo sys de estar em outro diretório; - Adicionar o módulo criado ao caminho comum do interpretador Python; - Obteve informações sobre caminhos comuns ao procurar um módulo usando o shell do Python. https://serverspace.com.br/support/help/import-modules-into-python-3.md Importar módulos, alterar os nomes dos módulos para nomes mais curtos. Trabalho com funções de módulo. Execução na linha de comando do Python. ## Introdução O Python oferece vários recursos. Vamos dar uma olhada em algumas funções incorporadas: - print() - para saída de dados; - abs() - para retornar o valor absoluto de um número; - int() - para converter outro tipo de dados em um número inteiro; - len() - retorna o comprimento de uma sequência ou coleção. Os módulos devem ser usados, devido à funcionalidade limitada. Conectamos módulos externos e, assim, obtemos mais funções. Os módulos em Python têm uma extensão ".py" no final do arquivo. Você pode fazer referência a funções, classes ou variáveis em outros módulos usando a linha de comando do Python. Quando importamos o módulo de teste, o interpretador procura o módulo interno. Se não o encontrar, ele procura o arquivo test.py no diretório que obtém da variável sys.path. Este tutorial abordará a verificação, a instalação, a importação e a alteração de nomes longos de módulos com funções. ## Preparação para importação É necessário usar [nossas instruções](https://serverspace.com.br/support/help/python-3-virtual-environment-on-ubuntu-22-04/) para se preparar com antecedência antes de começar a trabalhar. Você precisa atualizar o índice de pacotes e atualizar os pacotes de software necessários. Importante! Execute como um usuário com acesso sudo. Se estiver trabalhando em um servidor de produção, para não prejudicar os dados no servidor. ## Verificação da instalação de módulos Depois de instalar a atualização do Python, obtemos acesso a vários módulos. Os módulos são instalados com o Python e a biblioteca padrão para tarefas minificadas. Para testar o Python na linha de comando, digite: ``` python3 ``` O interpretador de comandos será aberto e, após ">>>", você poderá executar várias funções. Para verificar, ativamos o ambiente virtual com: ``` source /testing/testingv/bin/activate python3 ``` O nome será prefixado com (testingv), conforme mostrado, e entraremos no shell do Python, conforme mostrado na Tela 1. Tela 1 - Ativação do ambiente virtual e do interpretador de comandos Importamos dois módulos: "math" e "matplotlib". Math - é um módulo interno para cálculos matemáticos e o comando deve ser executado sem erros. Matplotlib é uma biblioteca para trabalhar com gráficos 2D, e podemos ver os resultados na Tela 2. Tela 2 - Erro ao importar matplotlib Saia do shell e use o pip3 (o interpretador de comandos para instalar bibliotecas) para instalar o matplotlib. ``` exit() – exit from the command interpreter; pip3 install matplotlib ``` O resultado é mostrado na Tela 3. Tela 3 - Instalando o matplotlib Vamos tentar reimportar os módulos novamente e obter um resultado bem-sucedido, conforme mostrado na Tela 4. ``` import math import matplotlib ``` Tela 4 - Importação bem-sucedida de módulos Consideramos a primeira etapa concluída. Conseguimos instalar o módulo usando o pip3 e fizemos a importação com sucesso. ## Importando módulos Vamos sair do shell e criar o arquivo testing_random.py. A linha com a importação de módulos é inserida na parte superior do código ou sob o shebang. O shebang é #!/usr/bin/env python3 - executa o arquivo como um programa Python, usando o ambiente para obter o caminho para o arquivo do interpretador. Importe a biblioteca aleatória para gerar números aleatórios. ``` #!/usr/bin/env python3 import random ``` Ao importar módulos, o acesso às suas funções é aberto. Antes de executar a função, para começar, o nome do módulo é indicado, um ponto final é colocado e o nome da função é indicado. Considere um exemplo de geração de números aleatórios 7 vezes de 5 a 15 usando a função randint, conforme mostrado nas linhas de código a seguir. ``` import random print("Output:") for i in range(7): print(random.randint(5, 15)) ``` Vamos executar o arquivo com "python3 testing_random.py". Na saída, temos 7 colunas com diferentes valores gerados. Por exemplo, em nosso caso, esses são os dados a seguir: ``` Output: 6 14 14 12 12 12 12 ``` Ao mesmo tempo, observe que os dados não devem ser inferiores a 5 nem superiores a 15. No caso de usar outros módulos, você deve importar outros módulos no início do código. ``` import random import math ``` Vamos editar o código, quando recebermos o resultado, indicaremos 7 colunas dos dados gerados de 5 a 15 e adicionaremos o número de saída Pi. ``` import random import math print("Output:") for i in range(7): print(random.randint(5,15)) print(math.pi) ``` Ao executar esse código, obtemos os seguintes dados: ``` Output: 9 13 12 15 7 14 13 3.141592653589793 ``` Além disso, com a ajuda da importação, é possível importar vários módulos de uma só vez. ## Usando from ... import A instrução from é útil porque não precisamos especificar o nome do módulo antes de usar a função. Esse processo simplifica a velocidade de escrita do código. No início, especificamos qual função importamos do módulo e escrevemos o código. Considere uma versão simplificada do nosso código anterior e o resultado é mostrado na Tela 5: ``` from math import pi from random import randint print("Output") for i in range(7): print(randint(5,15)) print(pi) ``` Tela 5 - Resultado É seguro dizer que importar algumas funções de um módulo no início do código economiza muito mais tempo do que nomear o módulo e depois nomear a função no código. ## Alterando o nome do módulo e das funções No Python, é perfeitamente possível substituir o nome de um módulo por um nome mais curto usando "as" no início do código. Esse caso deve ser usado se o nome do módulo já existir no código. Você também pode substituir o módulo por um nome longo, que usamos com mais frequência. Um exemplo é mostrado na seguinte linha de código: ``` import math as m print(m.pi) print(m.e) ``` O resultado é mostrado na Tela 6. Tela 6 - O resultado do código executado Saída dos números das constantes Pi e Exponente. Você também pode usar "as" para encurtar o nome matplotlib.pyplot, por exemplo, para pyplt. Você pode ver em [guia oficial](https://matplotlib.org/2.0.2/users/pyplot_tutorial.html) sobre o uso do módulo matplotlib. ## Conclusões As instruções abrangeram opções como: - Importação de módulo; - Usar uma função usando o nome do módulo adicionado; - Importar uma função de um módulo; - Usar uma função sem um nome de módulo; - Alteração do nome do módulo; https://serverspace.com.br/support/help/how-to-create-functions-in-python-3.md As instruções abrangem opções para definir uma função, atribuir argumentos-chave e usar a função main(). ## Introdução Uma função em Python é um bloco de instruções que recebe entrada, executa instruções e retorna informações de entrada. Os blocos de código definidos como uma função podem ser reutilizados. O Python tem funções incorporadas: - print() - exibe informações; - int() - converte uma cadeia de caracteres ou um tipo de dados numérico em um tipo de dados inteiro; - len() - retorna o comprimento do valor; Neste tutorial, veremos como criar novas funções para uso em nosso projeto. ## Preparação antes do trabalho É necessário preparar o [sistema para o trabalho](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/), instalar o Python 3 mais recente e implantar o [ambiente virtual](https://serverspace.com.br/support/help/python-3-virtual-environment-on-ubuntu-22-04/). ## Definição de função Vamos considerar o código usual, como o de exibição de informações. Vamos criar um arquivo test_hello.py e adicionar uma função em nosso ambiente virtual. Uma função é definida usando a palavra-chave def(): ``` def hello(): ``` Se você estiver usando o editor de texto Vim, depois de criar a função, o Vim redirecionará para a segunda linha usando tabulação automática. Vamos adicionar o seguinte trecho de código para gerar informações no console. ``` def hello(): print("Hello, Dear, User!") ``` Chame a função no final do código hello(). ``` def hello(): print("Hello, Dear, User!") hello() ``` Vamos executar o código e obter o resultado: ``` python3 test_hello.py ``` Tela 1 - O resultado da função escrita As funções têm diferentes graus de complexidade, sendo que a mais simples foi discutida acima. Considere a função abaixo, que usará instruções condicionais if-else para iterar sobre vogais em strings. ``` # Creating the names function() def names(): # Name input variable name = str(input('Enter your name: ')) # Checking for vowels if set('aeiou').intersection(name.lower()): print('Your name has vowels!') else: print('Your name does not contain vowels') # Iterate by name for letter in name: print(letter) # Function call names() ``` Portanto, criamos a função names() e usamos instruções condicionais if-else e uma instrução for nela. ## Trabalhando com parâmetros Até este ponto, consideramos as funções sem o uso de parâmetros; em seguida, definiremos a função e seus parâmetros. Os parâmetros são objetos em nossa função que apontam para um argumento que a função pode receber. Considere um código com três parâmetros i, j e k e crie uma função para somar todos eles em diferentes configurações. Em seguida, suas somas serão impressas na função add(). Chame a função para obter o resultado. Vamos escrever o seguinte trecho de código em um novo arquivo TestAdd.py: ``` def add(i, j, k): q = i + j w = i + k e = j + k print(q, w, e) add(20, 25, 30) ``` Passamos os dados para os parâmetros, ou seja, 20 - para o parâmetro i, 25 - para o parâmetro j, 30 - para o parâmetro k. O programa executa as seguintes operações matemáticas: ``` q = 20 + 25 w = 20 + 30 e = 25 + 30 ``` Vamos executar o programa e obter nosso resultado no formato: ``` 45 50 55 ``` Quando passamos 20, 25 e 30 como parâmetros para a função add(), obtivemos o resultado esperado. ## Principais argumentos Os parâmetros podem ser chamados não apenas em ordem, mas também usando argumentos-chave no momento em que a função chamada identifica os argumentos pelo nome do parâmetro. Vamos criar um arquivo chamado TestInfo. Vamos definir a função info() e atribuir parâmetros. Vamos adicionar uma instrução print() para exibir informações. No final do código, chamamos a função info usando os parâmetros e seus valores definidos dentro da chamada da função info(). ``` #Function with parameters def info(name, age): print("Name: " + name) print("Age: " + str(age)) ``` Em seguida, considere a possibilidade de atribuir valores aos parâmetros. ``` # Function definition with parameters def info(name, age): print("Name: " + name) print("Age: " + str(age)) #Calling a function with parameters above info("ServerSpace", 25) #Calling a Function Using Key Arguments info(name="Team", age=35) ``` Vamos executar o código e obter o resultado: Tela 2 - Resultado obtido usando parâmetros e argumentos-chave No código a seguir, considere a especificação do parâmetro age no início da chamada da função info(). Depois de definir a função, chamamos a instrução print() para imprimir informações sobre o nome e a idade. No final do código, chamamos a função info, especificando primeiro a idade e depois o nome. Mas antes disso, obtemos o resultado sobre o nome e depois sobre a idade dentro da função info(). O motivo é que a ordem em que a instrução print() é chamada não foi alterada: ``` # Function definition with parameters def info(name, age): print("Name: " + name) print("Age: " + str(age)) #Calling a Function Using Key Arguments info(age=40, name="ServerSpaceTeam") ``` Tela 3 - O resultado da chamada de parâmetros em sentido inverso ## Atribuição de argumentos-chave Copie o arquivo TestInfo.py e altere o nome para TestInfoValue.py ``` cp TestInfo.py TestInfoValue.py ``` Por padrão, o parâmetro age recebe o valor "1". Se você chamar a função info sem especificar o valor do parâmetro age, obteremos o resultado Age = 1. Considere as opções para chamar a função info com o valor do parâmetro age e usar o argumento key: ``` # Function definition with parameters def info(name, age=1): print("Name: " + name) print("Age: " + str(age)) #Calling a Function with a Key Argument and Without a Key Argument info(name="ServerSpace") info(name="Team", age=15) ``` Tela 4 - Resultado do código executado usando o valor padrão Consideramos dois tipos de chamada da função info(). No primeiro caso, especificamos um valor para o parâmetro name e não especificamos um valor para o parâmetro age e, ao exibir as informações, o parâmetro age recebeu um valor padrão de "1". No segundo caso, foram especificados valores para ambos os parâmetros, mas o valor padrão do parâmetro age não foi exibido. ## Retorno de valores Os dados dos parâmetros podem ser passados para uma função. O valor de um parâmetro pode ser retornado usando a instrução return. Ao usar return sem um argumento, obtemos um resultado com o valor None. Vamos criar um arquivo TestSquare.py e definir a função testsquare com o parâmetro i. Vamos adicionar uma variável j na qual elevamos o parâmetro i à terceira potência. Usamos return para retornar o valor obtido como resultado da operação dentro da variável j. Usando a variável result, atribuímos o valor 5 ao parâmetro i na função testsquare. No final do código, usamos a instrução print() para imprimir as informações do resultado. Isso retornará o valor da operação 5 ** 3. O uso de "**" no Python denota exponenciação: ``` def testsquare(i): j = i ** 3 return j result = testsquare(5) print(result) ``` Depois de executar o código e obter o resultado: Tela 5 - Retornando uma função com return Se comentarmos a linha return j, obteremos o resultado: Tela 6 - Retornando um valor None Considere o retorno de uma função com return em TestAdd.py: ``` def add(i, j, k): q = i + j w = i + k e = j + k return q, w, e result = add(20,25,30) print(result) ``` Vamos executar o código e obter o resultado: Tela 7 - O resultado do retorno da função Obtemos o valor (45, 50, 55) como uma tupla, pois quando a função de retorno foi chamada, as variáveis foram especificadas separadas por vírgulas. ## Usando main() como uma função A função main() coloca os componentes do programa em uma única função, enquanto a função main() não precisa ser chamada no programa. Considere o uso de main() em um programa normal, vamos criar um arquivo TestMain.py. Vamos definir a função TestMain e adicionar uma instrução print() para imprimir texto. Vamos definir uma função main() e adicionar uma instrução print(). Na parte inferior do código, adicione TestMain() e main() para chamar funções e exibir texto. Vamos escrever o código, executá-lo e obter o resultado: ``` def TestMain(): print("Hello, Dear, User!") def main(): print("This is test text") TestMain() main() ``` Tela 8 - O resultado do código acima No Python, você pode usar a seguinte construção '__main__', que executará o código de nível superior. Toda a estrutura é semelhante a esta: ``` if __name__ == '__main__': ``` Considere um programa que usa a construção "__main__". A lógica do programa é que o código analisa o valor inserido na variável name e faz a correspondência com as vogais. Se o nome contiver vogais, o resultado será retornado "Seu nome tem vogais": ``` #Declaring a global variable and for entering a name name = str(input('Your name: ')) # Function to check vowels def vowel(): if set('aeiou').intersection(name.lower()): print('Your name has vowels!') else: print('Your name has no vowels!') # Iteration of letters in a name def print_letters(): for letter in name: print(letter) # Main function definition def main(): has_vowel() print_letters() # Executing the main function if __name__ == '__main__': main() ``` Você também pode especificar duas funções has_vowel() e print_letters() no final; o resultado será o mesmo: ``` if __name__ == '__main__': has_vowel() print_letters() ``` Tela 9 - O resultado do código executado ## Conclusões Como resultado, podemos dizer que as funções são objetos que recebem argumentos e retornam um valor. Para obter mais informações sobre como escrever um módulo em Python, sugerimos que você consulte [nosso guia](https://serverspace.com.br/support/help/how-to-write-a-module-in-python-3/). Aqui, examinamos possibilidades como: - definição de funções; - trabalhar com parâmetros de função; - argumentos-chave; - retorno de valores com retorno; - usando main() como uma função; https://serverspace.com.br/support/help/how-to-configure-continuous-integration-pipelines-with-concourse-ci-in-ubuntu-20-22.md Configuração de um pipeline de integração contínua com o Concourse CI no Ubuntu 20/22 - Serverspace. Executando o aplicativo de teste Hapi.js ## Introdução Configure a integração contínua e automatize os pipelines de teste com a sintaxe declarativa componível do Concourse CI. Em comparação com outros sistemas para configurar a integração contínua, a equipe do Concourse faz todos os esforços para simplificar o gerenciamento do pipeline de integração contínua. As instruções anteriores analisaram o download e a configuração do Concourse em um servidor Ubuntu 22.04 e protegeram nossa interface da Web com SSL de uma CA Let's Encrypt. Neste tutorial, veremos como usar o Concourse para executar testes automaticamente, e as alterações serão confirmadas em nosso repositório. Considere a possibilidade de configurar um pipeline de integração contínua com o aplicativo "hello world", usando o código [Hapi.js](https://hapijs.com/), criado na estrutura da Web do Node.js para garantir o processo de sincronização do código com a montagem e os testes. Vamos adicionar definições de CI ao próprio repositório do produto. Vamos usar o terminal e o utilitário "fly" para iniciar o pipeline no Concourse. Por fim, vamos adicionar as alterações ao nosso repositório para salvá-las e implementar os testes no fluxo de trabalho de CI. ## Preparação para o trabalho Antes de começar, você precisa executar um servidor baseado no Ubuntu/Debian/CentOS, a RAM deve ter pelo menos 1 GB. Defina as permissões do usuário para executar com sudo. Baixe e instale o utilitário Concourse do site oficial ou do GitHub e o servidor da Web Nginx instalado usando o gerenciador de pacotes. Você precisa configurar um certificado de segurança TLS/SSL, configurar um servidor proxy reverso para a interface da Web do Concourse. Precisamos obter um nome de domínio que aponte para o nosso servidor Concourse. Use as instruções a seguir para a configuração adequada: - [Instalando e configurando o servidor com um usuário padrão](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/); - [Instalar o Concourse CI](https://serverspace.com.br/support/help/installing-concourse-ci/); - [https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/](https://serverspace.ru/support/help/ustanovka-i-nastrojka-nginx/)[Instalar e configurar o Nginx](https://serverspace.com.br/support/help/install-and-configure-nginx-on-centos-7/); - [Configurando a segurança do Concourse CI com SSL](https://serverspace.com.br/support/help/installing-concourse-ci/); Neste manual, todo o processo de trabalho é considerado em um computador funcional com o Ubuntu Linux pré-instalado. Por esse motivo, você deve se certificar de que instalou vários utilitários para editar arquivos de texto que sejam convenientes para você usar. Você também precisará do utilitário Git em seu computador local e seguirá nossas instruções para a configuração adequada. Quando tivermos certeza de que o servidor Concourse está em execução e que o computador local tem todas as ferramentas para trabalhar com arquivos de texto e o Git está instalado, vamos prosseguir para a tarefa principal de nossas instruções. ## Usando o Fly na linha de comando Você precisa ter certeza de que o Concourse Worker e o Fly estão instalados no servidor principal (para gerenciar o pipeline usando a linha de comando). Para o trabalho diário com o Concourse CI, é mais conveniente instalar o fly em um computador de trabalho, que tem ferramentas diárias para trabalhar com o desenvolvimento de vários produtos. Para obter a versão mais recente do fly, você precisa abrir a interface da Web do Concourse CI instalada no servidor: ``` https://server_url ``` Após a autorização no servidor, na parte inferior direita da tela, você pode fazer o download do fly selecionando seu sistema no local de trabalho: Tela 1 - Fly version and link to files Clicamos no ícone do nosso sistema local e fazemos o download para um diretório conveniente para nós, que no nosso caso é Downloads. ### Linux e MacOS Se sua estação de trabalho principal tiver Linux ou um dispositivo com MacOS, siga estas etapas para instalar e executar o Fly: ```bash chmod +x /root/fly ``` Em seguida, você precisa adicionar o utilitário fly ao ambiente "PATH" para executá-lo no terminal: ``` install /root/fly /usr/local/bin ``` Vamos executar o utilitário fly e obter informações sobre a versão: ``` fly –version ``` Obtemos um resultado que corresponde à versão da interface da Web: ``` 7.9.0 ``` ### Windows Se o sistema primário for uma estação de trabalho Windows, você precisará executar o PowerShell e adicionar o diretório bin: ``` PS C:UsersServerspace> mkdir bin ``` Você precisa copiar o utilitário fly.exe baixado para o diretório bin: ``` PS C:UsersServerspace> mv .Downloadsfly.exe .bin ``` Vamos verificar a relevância do perfil executando o comando: ``` PS C:UsersServerspace> Test-Path $profile ``` Se o resultado for True, o perfil atual está disponível no sistema. Se o resultado for False, você precisará criar um novo perfil: ``` PS C:UsersServerspace> New-Item -path $profile -type file -force ``` Como resultado, temos: ``` Directory: C:UsersServerspaceDocumentsWindowsPowerShell Mode LastWriteTime Length Name ---- ------------- --------- ---- -a---- 31.01.2023 18:05 0 Microsoft.PowerShell_profile.ps1 ``` Vamos abrir o arquivo de perfil do editor de texto Notepad criado: ``` PS C:UsersServerspace> notepad.exe $profile ``` Uma nova janela do editor de arquivos de texto será aberta e adicionada ao ambiente PATH, especificando o caminho para o arquivo: ``` $env:path += ";C:UsersServerspacebin" ``` Salve o arquivo e saia. Vamos começar a ler o caminho de $profile: ``` PS C:UsersServerspace> . $profile ``` Em seguida, execute o comando para verificar a versão do arquivo fly baixado: ``` PS C:UsersServerspace> fly.exe –version ``` Como saída, obtemos: ``` 7.9.0 ``` Ao executar comandos do Windows, você precisa alterar cada comando fly (neste tutorial) para fly.exe. ## Autorização usando a linha de comando Depois de iniciar o fly com sucesso, você precisa fazer login no Concourse instalado. Cada servidor pode usar vários "alvos", com os quais você pode identificar o pipeline necessário no sistema e executar comandos nele. Neste tutorial, vamos dar uma olhada no tutorial no nome de destino do sistema Concourse: ``` fly -t tutorial login -c https://concourse_server_url ``` É necessário preencher o login e a senha do arquivo de configuração /etc/concourse/web_environment do nosso servidor. Como resultado, temos: ``` logging in to team 'main' username: serverspace password: target saved ``` Se a autorização for bem-sucedida, um arquivo .flyrc aparecerá em seu diretório pessoal. Vamos verificar a criação do "tutorial" no .flyrc: ``` fly -t tutorial sync ``` Como resultado, obtemos: ``` version 7.9.0 already matches; skipping ``` ## Forking e clonagem de um repositório Depois de configurar o fly, você precisa configurar o repositório para usar os pipelines do Concourse. Em um navegador da Web, abra o link para o repositório, que usaremos em nossas instruções. No Concourse, você precisa adicionar um pipeline de integração contínua à [filial principal do repositório](https://github.com/do-community/hello_hapi). Tela 2- hello_hapi repository No terminal, vá para o diretório do usuário. Vamos fazer uma cópia do repositório em nosso computador de trabalho. Para isso, usaremos os seguintes comandos do utilitário git clone e iremos para uma nova ramificação: ```bash cd git clone https://github.com/githubUser/hello_hapi cd hello_hapi git checkout -b pipeline ``` Após a execução dos comandos, obtemos a seguinte linha: ``` Switched to a new branch 'pipeline' ``` Mudamos para uma nova ramificação. ## Configurar a integração contínua para um aplicativo Vamos definir nossos arquivos que estão associados ao repositório do projeto. Assim, garantiremos a sincronização do trabalho de integração contínua com o código em teste. O conjunto de testes está localizado no diretório de testes. Ele contém três testes. O script de teste reside em package.json, que armazena o elemento de teste no objeto scripts. É necessário criar um diretório chamado ci e definir duas subpastas denominadas tasks e scripts, nas quais colocaremos os arquivos de integração contínua do produto. Vamos executar o seguinte comando: ``` mkdir -p ci/{tasks,scripts} ``` ## Adicionando um pipeline No diretório ci, criaremos um arquivo chamado pipeline.yml, no qual especificaremos nossas definições de configuração: ``` vim ci/pipeline.yml ``` Depois de criar o arquivo de configuração para o pipeline principal, precisamos adicionar nossa configuração a ele. ### Definição do cache NPM Vamos adicionar a seguinte configuração: ```yaml --- resource_types: - name: npm-cache type: docker-image source: repository: ymedlop/npm-cache-resource tag: latest ``` Os processos que se desacoplam dos dados de integração contínua são processados pelo Concourse e extraem as informações de status da abstração e são convertidos em recursos. Os recursos são dados de origem para o Concourse usar ao receber ou enviar informações. A string resource_types definirá novos tipos de recursos que você pode implementar em seu pipeline. ### Definição e armazenamento em cache de um repositório Adicione o seguinte trecho de código ao pipeline.yml para definir o recurso real para o pipeline: ``` resources: - name: hello_hapi type: git source: &repo-source uri: https://github.com/githubUser/hello_hapi branch: master - name: dependency-cache type: npm-cache source: https://serverspace.com.br/support/help/how-to-provide-access-to-the-multiple-servers-with-one-public-IP-via-Serverspace-control-panel.md Descrevi aqui como fornecer acesso a vários servidores com apenas um endereço IP "público" por meio do painel de controle do Serverspace ## Qual é o motivo para "ocultar" alguns servidores atrás de um único IP público ? Há dois motivos pelos quais você pode precisar "ocultar" seus servidores: - **Razões de segurança**. Se você "colocar" qualquer host "na estrada" entre seu servidor e a Internet, criará uma "área segura" privada, pois qualquer intruso precisará passar por uma "fronteira" antes de ter acesso ao servidor; - **Poupança de dinheiro** Não há sub-redes IPv4 não utilizadas em todo o mundo, e o IPv6 ainda não está muito difundido. Portanto, o custo do endereço IP está aumentando e será maior no futuro. Você pode economizar seu dinheiro usando menos IPs públicos. Para criar seu próprio espaço de rede privada, usaremos a tecnologia Network Address Translation (NAT). Siga as etapas seguintes: Para criar um login de rede protegido na área do cliente do Serverspace, vá para a seção **VMWare Cloud > Networks >** **Add Network ** e escolha as opções de rede. Lembre-se de que o IP externo atribuído é o "portão" de sua rede; Na próxima etapa, você precisa alterar as configurações das interfaces de rede dos servidores. Adicione a interface privada e remova a pública (opcional) e, em seguida, desligue e ligue todos os servidores para aceitar as alterações; Por fim, você verá os endereços IP internos de cada servidor. Leve-os em consideração; Volte às configurações de rede e adicione regras de tradução de endereços para acesso aos servidores; A lista mínima de regras deve ter a aparência abaixo; ## Verificação Para verificar se o resultado é suficiente, tente se conectar ao IP público da sua rede e à porta que você está "encaminhando" para o servidor; ## Conclusão Nesta instrução, mostrei como fornecer conexão a vários servidores por meio de um único endereço IP com os recursos da área do cliente do Serverspace. https://serverspace.com.br/support/help/how-to-keep-the-docker-container-running-after-starting-services.md Após a leitura deste artigo, você saberá como manter o contêiner da janela de encaixe ativo mesmo que todas as operações atuais tenham sido concluídas. ## Qual é o ponto problemático O Docker executará software pré-construído no contêiner "sandboxed". Por um lado, essa abordagem nos permite fornecer idempotência absoluta, pois temos a garantia de que o software não depende do ambiente e o "comportamento" é o mesmo a qualquer momento. Por outro lado, o Docker será interrompido quando os comandos predefinidos forem executados. Exemplo: o contêiner será interrompido imediatamente após o comando _echo _: ```bash docker run # Run command docker ps # Check the running containers ``` Esse comportamento do Docker não é um bug, é um recurso para economizar recursos do sistema. Mas, às vezes, o contêiner deve ser executado permanentemente, por exemplo, se o software precisar aguardar conexões "de entrada". ## Como "forçar" o contêiner do Docker a nunca parar Você pode atingir seu objetivo de várias maneiras: Lançamento de pseudo-terminal. Esse método é bom se você precisar manter o contêiner em execução de tempos em tempos. Basta executar seu comando com os sinalizadores _-it _: ```bash docker run -it bash # Run command interpreter # Run command "inside" the container docker ps # Check the container status ``` Execute qualquer comando "em um loop". Para evitar a parada do contêiner, você pode executar qualquer comando em um ciclo e, em seguida, fechar a sessão do terminal: ```bash docker run bash -c ``` Em seguida, basta verificar o status do contêiner: ```bash docker ps ``` Você pode obter o mesmo resultado se executar o docker no modo "desconectado". Basta usar a sinalização _-d _: ```bash docker run bash -c ``` ``` # Run command docker ps # Check the running containers ``` ## Conclusão Após a leitura deste artigo, você sabia como salvar o contêiner do docker vivo mesmo que seu cenário tenha terminado. https://serverspace.com.br/support/help/configuring-concourse-ci-security-with-ssl.md Configuração da segurança do Concourse CI com SSL - Espaço do servidor. Redirecionamento do tráfego HTTP para HTTPS. Vinculação de um domínio a um endereço local. ## Introdução. A montagem automática de projetos após a atualização do código é, na verdade, um procedimento padrão que permite visualizar e testar o produto desenvolvido em qualquer lugar, examinar imediatamente os erros e, como resultado, encontrar e corrigir rapidamente o problema. Com o advento do Docker, eles não se tornaram menos relevantes e procurados. Atualmente, existem dezenas de sistemas de CI: Jenkins, Atlassian Bamboo, Bitbucket Pipelines e assim por diante. O problema é que eles são bastante complexos, a maioria deles é comercial e custa uma certa quantia e, o mais importante, exige um especialista e tempo para configurar e ajustar constantemente, o que geralmente não é possível em projetos pequenos e, mais ainda, no desenvolvimento individual. O Concourse CI é um sistema de integração contínua necessário para automatizar pipelines de teste usando uma sintaxe declarativa unificada. O Concourse CI simplifica o processo de implementação da integração contínua e quase não requer tempo para implantação e estudo. Em nosso [guia](https://serverspace.com.br/support/help/configuring-concourse-ci-security-with-ssl/) anterior, vimos a instalação e a configuração do Concourse CI em um servidor Debian 10. Descobrimos como executá-lo a partir da CLI e usar a interface da Web. Nesta instrução, veremos como proteger a interface gráfica configurando o servidor proxy reverso por meio do Nginx. O uso do proxy reverso tem algumas vantagens, como: restringir o acesso a determinado conteúdo, permitir permanecer anônimo, evitar restrições de visualização de conteúdo, reduzir a carga nos servidores principais devido ao armazenamento em cache de conteúdo estático e dinâmico, compactar o conteúdo para reduzir o tempo de download e usar um firewall de software, que pode proteger contra os ataques mais comuns da Web. ## Antes de começarmos Em primeiro lugar, devemos implantar um servidor virtual com o sistema operacional Debian 10. Deve haver pelo menos 1 GB de RAM. Siga os[tutoriais de acordo](https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04/) com as instruções para configurar uma conta simples sem direitos de superusuário. Instale e configure o Concourse CI usando o [site oficial](https://about.gitlab.com/) ou o [GitHub](https://github.com/concourse/concourse/releases). Instalação do Nginx e configuração de uma conexão criptografada. Você deve obter um nome de domínio para acessar por domínio, não por endereço IP. ## Especificação de proxy reverso Vamos começar editando o arquivo de bloco do servidor para configurar o SSL e redirecionar o tráfego para o servidor Concourse CI. O diretório /etc/nginx/sites-enabled contém o arquivo, que é o arquivo padrão depois que o nginx é instalado. Vamos fazer edições no arquivo para configurar um servidor proxy. Ele encaminhará o tráfego para o site por nome de domínio. Vamos começar. Adicione linhas na parte superior do arquivo padrão do diretório /etc/nginx/sites-enabled antes da parte principal do bloco do servidor. Especifique o endereço IP do servidor local e a porta em que nosso servidor Concourse está escutando: ```css upstream concourse { server 127.0.0.1:8080; } ``` Você precisa encontrar o bloco responsável pela manutenção do SSL. Por padrão, a linha com listen 443 é usada. Certifique-se de que, após server_name, haja seu nome de domínio. Configure o bloco "location /" nesse bloco. Ele envia solicitações para o servidor Concourse: ```css location / { include proxy_params; proxy_http_version 1.1; proxy_read_timeout 90; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_pass http://concourse; } ``` Depois de fazer as edições, não se esqueça de salvar o arquivo e sair dele. Usando o comando, vamos verificar a exatidão do arquivo: ``` nginx -t ``` Como resultado, obtemos a sintaxe ok. O teste foi bem-sucedido. Você precisa reiniciar o nginx para aplicar as alterações ```bash service nginx restart ``` Você configurou o servidor Concourse para o domínio. ## Vinculação de um domínio a uma interface de rede Depois de todas as definições de configuração, precisamos vincular nosso endereço local ao nosso domínio. Abra o arquivo de ambiente da Web no diretório /etc/concourse e converta a string CONCOURSE_EXTERNAL_URL para o seguinte e adicione o endereço IP local: ``` CONCOURSE_EXTERNAL_URL=https://serverspace.tm CONCOURSE_BIND_IP=127.0.0.1 ``` Vamos sair e salvar as alterações. Precisamos reiniciar o serviço concourse-web para aplicar as edições. ```bash service concourse-web restart ``` Vamos verificar qual endereço funciona com a porta 8080 usando o comando: ``` netstat -tlnup | grep :8080 ``` Como saída, temos a seguinte linha ``` tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 1781/concourse ``` A interface só escuta o endereço IP local. Agora faremos edições no firewall, excluindo a regra para a porta 8080: ``` ufw delete allow 8080 ``` Todas as solicitações serão processadas pelo Nginx, que é executado na porta 80. ## Verificação da interface A interface oferece a capacidade de navegar por todos os pipelines e tarefas e monitorar os resultados. Vamos abrir um navegador e inserir nosso nome de domínio. Chegaremos à página de boas-vindas do Concourse: Tela 1 - Página de boas-vindas do Concourse Em seguida, digite o login e a senha que você especificou durante a configuração do Concourse: Tela 2 - Campo para login e senha Após a autorização bem-sucedida, podemos abrir a interface: Tela 3 - Página com nosso pipeline Agora você tem acesso ao gui do Concourse por meio do domínio. ## Conclusões Demos uma olhada em: - Alteração do arquivo Nginx para rotear o tráfego por padrão; - Vincular um endereço IP local a um domínio; - Teste de GUI por meio de um domínio. https://serverspace.com.br/support/help/protect-setup-for-smb-traffic.md Este artigo descreveu vários métodos de proteção do protocolo corporativo de tráfego SMB no Windows Server para negar o tráfego SMB lateral ## Introdução Qual é uma das coisas mais perigosas deste planeta para a rede corporativa? Talvez, se um detalhe desses mecanismos fosse destruído, o criminoso executaria um ataque DDoS em seu servidor ou um sistema mal configurado por um funcionário. Os protocolos são uma parte essencial dele. Eles definem regras de transmissão de unidades de dados de pacotes, que lembram o sangue no organismo. Qualquer infecção e vírus contribuem por meio desse líquido. Absolutamente a mesma coisa com o protocolo! O **SMB**, ou Server Message Block, é um protocolo desenvolvido para a transferência de arquivos pela rede. Seu objetivo é facilitar o compartilhamento de arquivos, impressoras e outros recursos entre computadores conectados a uma rede. A importância desse conjunto de regras é bastante notável. Diferentes sistemas operacionais tiveram a oportunidade de se comunicar sem restrições, como Mac OS, Linux e Windows. Portanto, ele é usado em redes corporativas com bastante frequência e, infelizmente, a vulnerabilidade é um grande problema! ## Análise: verifique seus protocolos Vamos dar uma primeira olhada na versão do protocolo que você usa: - Mantenha pressionado o atalho de teclado Win+R e escreva "powershell"; - Depois, digite o comando abaixo na CLI. ``` sc.exe qc lanmanworkstationе ``` Encontre raw com "Dependencies" e verifique os parâmetros que são opostos: Screenshot №1 - Verifique a versão do SMB Isso indica que seu cliente SMB é compatível com a versão apropriada do protocolo: - **smb1** - "mrxsmb10.sys "; - **smb2** - "mrxsmb20.sys "; - **smb3** - "mrxsmb30.sys ". Se, por azar, você tiver o protocolo da primeira versão ou quiser ter certeza de que ele não o incomodará com certeza, aconselho a desativá-lo com os comandos abaixo: ``` sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi ``` A linha acima ativa as dependências do SMB2/3. ``` sc.exe config mrxsmb10 start= disabled ``` E esse comando desativa a primeira versão do protocolo. Todas essas ações se devem ao fato de o SMB1 não ter um algoritmo de criptografia forte, o que será um problema para a confidencialidade, a integridade e a disponibilidade de uma rede. ## Ação: etapas de proteção Se você tiver uma segunda ou terceira versão do protocolo, precisará concluir duas ações para salvar a segurança das informações: configurar regras de firewall, que permitirão delimitar a rede por uma porta específica, e ativar a criptografia, que evitará a interceptação e a descriptografia. ### Adicionar regras de firewall Há alguns casos de arquitetura de rede em que as pessoas usam o SMB fora de sua LAN, no entanto, é uma porcentagem muito pequena. Então, talvez o SMB seja um pedaço saboroso para os invasores. Você precisa escrever regras para conexões de entrada e saída em seu firewall. Bloqueie a porta TCP com o número 445: Screenshot №2 - Firewall block port Screenshot №3 - Aplicação das regras E você precisa realizar ações semelhantes para as regras de saída. ### Ativar a criptografia No Windows Server, você tem configurações padrão para SMB: desativar a criptografia. Esse problema tem uma solução rápida. No lado do servidor, abra um prompt de comando elevado e digite o seguinte comando: ``` reg add "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v "SMBEncryption" /t REG_DWORD /d 1 /f ``` E, no cliente, escreva a seguinte linha: ``` reg add "HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters" /v "RequireSecureNegotiate" /t REG_DWORD /d 1 /f ``` Aqui está um detalhamento do comando e de seus atributos: - **/v "SMBEncryption"** - Esse atributo especifica o nome do valor que será adicionado; - **/t REG_DWORD** - Esse atributo especifica o tipo de dados que será armazenado no valor. Nesse caso, será um valor binário de 32 bits (um DWORD); - **/d 1** - Esse atributo especifica os dados que serão armazenados no valor. Nesse caso, ele define o valor como 1, o que habilita a criptografia SMB; - **/f** - Esse atributo informa ao comando reg para forçar a operação sem solicitar confirmação. Se esse atributo for omitido, o comando solicitará que você confirme antes de fazer qualquer alteração. Em geral, esse comando adiciona um novo valor ao Registro do Windows que habilita a criptografia SMB no servidor ou no cliente, dependendo do comando utilizado. ## Conclusão Recomendo enfaticamente que você cancele a cultura do SMB1 devido à falta de criptografia. Use uma versão mais recente desse protocolo SMB2/3 ou desative-o se não precisar dele. Ative a criptografia e adicione regras de firewall para a porta TCP 445. ## Também pode ser de seu interesse - [Obter o servidor em nuvem do Windows](https://serverspace.com.br/services/vps-server/windows.md) - [Serviços de DNS em nuvem](https://serverspace.com.br/services/dns-hosting.md) - [Mais instruções para servidores Windows](https://serverspace.com.br/support/help/category/windows/) https://serverspace.com.br/support/help/windows-multiple-ip-addresses-powershell.md Instruções sobre como automatizar a atribuição de vários endereços IP em diferentes servidores usando o Power Shell no Windows Server 2016/2019 Em alguns casos, por exemplo, em servidores da Web, é necessário configurar mais de um endereço IP em um adaptador de rede. Se esse for um servidor e ele tiver uma ou duas placas de rede e um pequeno número de endereços IP adicionais, a configuração por meio da interface gráfica não causará problemas. Mas e se houver mais de dez servidores e cada um deles tiver vários adaptadores de rede com um grande número de endereços IP? Nesse caso, a configuração por meio da interface gráfica levará muito tempo. Nesse caso, as ferramentas de automação do Windows PowerShell virão em seu socorro. A seguir, consideraremos o processo de configuração do sistema operacional Windows Server 2016/2019. Primeiro, você precisa executar o Powershell como administrador. Você pode fazer isso clicando com o botão direito do mouse no menu "Iniciar" e selecionando "Windows PowerShell (Admin)" no caso de uma versão em inglês do sistema operacional: Screenshot №1. Iniciar o PowerShell como administrador Em seguida, uma janela do PowerShell será aberta. Agora você precisa determinar em qual interface precisa adicionar os endereços IP necessários. Usando o comando abaixo, determinamos a interface de rede necessária: ``` Get-NetAdapter ``` Screenshot № 2. Determinar os adaptadores de rede para a configuração Neste caso, há um adaptador de rede chamado "Ethernet", e nós o usaremos. Vamos primeiro descobrir quais IPs já estão configurados nesse adaptador usando o comando : ``` Get-netIpAddress -ifalias Ethernet -addressFamily Ipv4 | ft ``` Screenshot № 3. Descubra quais IPs já estão configurados Para adicionar um novo endereço, por exemplo, 192.168.10.10, você deve usar o seguinte comando: ``` New-NetIPAddress -addressfamily Ipv4 -IPAddress 192.168.10.10 -PrefixLength 24 -InterfaceAlias "Ethernet" -SkipAsSource $True ``` Verifique o resultado executando o comando abaixo: Screenshot № 4. Resultado da execução do comando New-IPAddress Como você pode ver, o adaptador recebeu outro endereço IPv4 - 192.168.10.10. Se você quiser que o tráfego de saída seja enviado a partir do endereço IP adicionado, será necessário alterar o parâmetro abaixo: Screenshot № 5. Defina o tráfego de saída a ser enviado a partir do endereço IP adicionado Se você precisar adicionar um número maior de endereços, por exemplo, 5, poderá usar o script. Usando uma matriz de números, por exemplo, de 11 a 16 e um loop foreach-object, adicione mais 5 endereços IP: ``` 11..16 | foreach-object {New-NetIpAddress -ifalias Ethernet -AddressFamily IPv4 -PrefixLength 24 -IPAddress "192.168.10.$_" -verbose} ``` Screenshot № 6. Adicionando vários IPs por script Depois de executar o comando, verifique com o comando já conhecido: Screenshot № 7. Resultado após a execução do script Conclusão: Neste artigo, examinamos as possibilidades de usar o PowerShell para automatizar a atribuição de vários endereços IP em uma única interface de rede. - [Servidores em nuvem com o sistema operacional Windows Server](https://serverspace.com.br/services/vps-server/windows.md) - [VPS com Linux Ubuntu](https://serverspace.com.br/services/vps-server/linux.md) - [Instruções para Windows Server](https://serverspace.com.br/support/help/category/windows/) https://serverspace.com.br/support/help/setup-open-source-siem-system-on-debian.md Saiba mais sobre os sistemas SIEM: configuração e manutenção para aumentar a velocidade e a eficácia das respostas a incidentes cibernéticos Obtenha uma ampla compreensão do gerenciamento e do controle do **sistema SIEM**, da configuração e da manutenção, o que pode ajudar a aumentar a eficácia e a velocidade de reação a incidentes cibernéticos e fornecer um modo de alta segurança para o seu sistema de informações. Obtenha conhecimento sobre o tipo de arquitetura construída com o SIEM para pequenas e médias empresas. Explore mais recursos de controle de incidentes cibernéticos, com base na análise de correlação e nos métodos de gerenciamento de riscos. ## Sistema SIEM **SIEM** (Gerenciamento de eventos de segurança + Gerenciamento de informações de segurança) - sistemas que monitoram sistemas de informações, analisam eventos de segurança em tempo real provenientes de dispositivos de rede, ferramentas de segurança da informação, serviços de TI, design e infraestrutura de aplicativos e ajudam a detectar incidentes de segurança da informação. Problemas de detecção de incidentes em redes corporativas: - ferramentas de segurança, servidores e dispositivos de rede criam milhões de eventos, terabytes de registros; - é ineficaz responder a todos os incidentes de IB: 50-95% deles são falsos positivos no SPI; - os dados de um único meio de proteção não revelam ataques complexos e direcionados; - os eventos estão espalhados por diferentes sistemas e dezenas de relatórios - requisitos regulatórios no campo da segurança da informação. ## Configuração do sistema SIEM Antes de instalar qualquer software, precisamos atualizar o índice e o pacote no Debian: ```bash sudo apt update && sudo apt upgrade -y ``` Screenshot №1 - Update package Próxima etapa: instalar os pacotes necessários. ```bash sudo apt-get install suricata ``` Screenshot №2 - Instalação ## Configurar o Suricata ``` sudo nano /etc/suricata/suricata.yaml ``` Screenshot №3 - Open config No arquivo de configuração, defina a interface de rede apropriada para o Suricata monitorar: ```yaml default-log-dir: /var/log/suricata/ ... af-packet: - interface: enp0s5 ``` Screenshot №4 - Change interface Observação: substitua "enp0s5" pelo nome de sua interface de rede; você pode usar o comando abaixo: ``` ifconfig ``` Screenshot №5 - Check your config Salve e feche o arquivo de configuração. Inicie o Suricata no modo IDS: ``` sudo suricata -c /etc/suricata/suricata.yaml -i enp0s5 --init-errors-fatal ``` Screenshot №6 - Check status Verifique se o Suricata está em execução verificando seus arquivos de registro: ``` tail -f /var/log/suricata/fast.log ``` Como resultado, o sistema de saída se parecerá com uma cadeia de caracteres com informações sobre suas configurações; se você não inserir nenhum valor, receberá uma resposta apropriada. ## Conclusão do sistema SIEM Concluindo, a configuração de um **sistema SIEM** de código aberto no Debian é uma etapa crucial para aumentar a segurança dos sistemas de informações para pequenas e médias empresas. Os sistemas SIEM ajudam a detectar possíveis incidentes de segurança por meio do monitoramento e da análise de eventos de segurança em tempo real. No entanto, a detecção de incidentes em redes corporativas pode ser um desafio devido ao alto volume de eventos gerados por várias ferramentas e dispositivos de segurança. Com um sistema SIEM configurado adequadamente, as empresas podem gerenciar com eficácia os incidentes cibernéticos com base na análise de correlação e nos métodos de gerenciamento de riscos, proporcionando, assim, um modo de alta segurança para seu sistema de informações. https://serverspace.com.br/support/help/how-to-quickly-deploy-a-website-on-wordpress-on-an-ubuntu-server.md Aprenda a implantar rapidamente um servidor da Web no Wordpress CMS no sistema operacional Ubuntu e a colocar seu próprio site em funcionamento. O WordPress é um dos sistemas de gerenciamento de conteúdo (CMS) mais populares do mundo. Milhões de sites usam essa ferramenta porque ela é a mais fácil de usar para o usuário comum que não tem muita habilidade em programação da Web. Hoje, vamos instalar e configurar um servidor Ubuntu do zero no qual implantaremos o WordPress. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "WordPress" já instalado.** ## Criando o servidor A maneira mais rápida de obter um servidor é implantar o chamado VPS. Esse é um servidor virtual baseado no VMWare ou, no nosso caso, no vStack - um desenvolvimento exclusivo da ServerSpace Corporation, que permite criar um servidor em 40 segundos. Então, vamos ao site do ServerSpace [https://serverspace.com.br/](https://serverspace.com.br/index.md) e registre-se lá. Autentique-se em sua conta e navegue: vStack cloud -> Servers -> Create Server. Em seguida, escolha o sistema operacional; no nosso caso, será o Ubuntu 20.04 x64. Em seguida, escolha o local do servidor. Se você planeja desenvolver o site para clientes dos EUA, escolha o data center de Nova Jersey. Em seguida, escolha a configuração do servidor. Para nosso site de teste, usaremos um servidor virtual com 2 CPUs, 4 GB de RAM, disco rígido de 60 GB e velocidade de conexão à Internet de 50 Mb/s. Essa configuração será suficiente para cerca de 50.000 usuários por dia, o que é um sonho quase inatingível para um site recém-implantado nos primeiros meses. Se o número de usuários aumentar, você poderá facilmente adicionar recursos ao seu servidor. Para esse recurso, o VPS é muito bom no estágio inicial. Escolhemos a autenticação "login e senha" e fazemos login no nosso servidor usando o putty. ## Configuração do servidor Ubuntu Antes de instalar o WordPress, precisamos instalar um pacote de software de servidor - o servidor da Web Apache e o banco de dados MySQL, bem como a linguagem PHP. Mas, antes disso, precisamos atualizar nosso sistema operacional: ```bash sudo apt-get update && sudo apt-get upgrade -y ``` ### Instalação do servidor da Web Apache Para instalar a versão mais recente do servidor da Web Apache, digite os seguintes comandos: ```bash sudo apt install apache2 apache2-utils ``` Em seguida, adicione o Apache à execução automática e inicie o serviço: ```bash sudo systemctl enable apache2 ``` ```bash sudo systemctl start apache2 ``` Para verificar se o Apache está disponível on-line, digite o endereço IP do seu servidor no navegador. Se estiver instalando um servidor da Web em uma máquina local, use o endereço http://127.0.0.1 ou http://localhost Por padrão, todos os documentos HTML estão localizados no diretório /var/www/html. Também precisamos do módulo "mod_rewrite" do Apache para que o WordPress funcione corretamente. Para ativá-lo, execute o seguinte comando: ``` sudo a2enmod rewrite ``` Em seguida, reinicie o servidor da Web: ```bash sudo systemctl restart apache2 ``` ### Instalando o banco de dados MySQL Para instalar o banco de dados mysql, execute o comando: ```bash sudo apt install mysql-client mysql-server ``` Para concluir a configuração, execute o comando: ``` sudo mysql_secure_installation ``` O sistema solicitará a instalação de um plug-in de verificação de senha, que proibirá o uso de senhas fracas: Em seguida, você precisará alterar a senha e desativar o acesso à conta de superusuário da rede e também desativar o acesso de convidados. Portanto, respondemos sim para todos. ### Instalação do PHP E, finalmente, antes de instalar o WordPress no Ubuntu 20.04, você precisa instalar o PHP e alguns módulos para trabalhar com o servidor Web e o banco de dados MySQL. Para fazer isso, execute o comando: ```bash sudo apt install php7.4 php7.4-mysql libapache2-mod-php7.4 php7.4-cli php7.4-cgi php7.4-gd ``` Para testar o funcionamento do PHP, crie um arquivo chamado test.php em /var/www/html/: ``` sudo nano /var/www/html/test.php ``` Texto do arquivo: ```php ``` Salve-o e abra http://ip-address/test.php em um navegador da Web. Se tudo estiver configurado corretamente, você verá uma página com informações sobre a versão do PHP. Naturalmente, por uma questão de segurança, ela deve ser removida após um teste bem-sucedido. ## Instalação do WordPress no servidor Ubuntu Então, finalmente, baixe a versão mais recente do CMS WordPress do site oficial: ```bash wget -c http://wordpress.org/latest.tar.gz ``` Extraia o conteúdo do arquivo para sua pasta atual: ```bash tar -xzvf latest.tar.gz ``` Copie os arquivos do WordPress de sua pasta atual para /var/www/html/: ```bash sudo rsync -av wordpress/* /var/www/html/ ``` Para que o servidor Web funcione corretamente com esses arquivos, é necessário definir as permissões corretas para eles, ou seja, o usuário e o grupo www-data: ```bash sudo chown -R www-data:www-data /var/www/html/ ``` ```bash sudo chmod -R 755 /var/www/html/ ``` E agora a instalação do WordPress no Ubuntu 20.04 está concluída, mas ainda falta configurar a conexão com o banco de dados. Para que o WordPress seja aberto por padrão, vamos excluir o arquivo index.html: ``` sudo rm /var/www/html/index.html ``` ### Criando um banco de dados para o novo site Para criar um banco de dados, primeiro faça login na interface de gerenciamento do mysql e, para isso, execute: ```bash sudo mysql -u root -p ``` Digite a senha que você digitou durante a instalação e, em seguida, execute separadamente os seguintes comandos para criar o banco de dados, o usuário e definir os privilégios corretos para eles: ```bash mysql> CREATE DATABASE wp_db; ``` ```bash mysql> CREATE USER 'wpusr'@'localhost' IDENTIFIED BY 'password'; ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_20__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_21__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_22__ Substitua wp_db pelo nome do banco de dados desejado, wpusr pelo nome de usuário e password pela senha desejada. O modificador localhost significa que você pode se conectar ao banco de dados somente a partir da máquina local. ## Configurando o WordPress no servidor Ubuntu Tudo está pronto para configurar o WordPress. Digite o endereço IP do servidor onde instalou o WordPress ou localhost se a plataforma foi instalada em um computador local. Na primeira janela, o programa solicitará que você escolha um idioma. Em seguida, clique em "Next" (Avançar) e digite o nome do banco de dados, o nome de usuário e a senha que você usou durante a criação do banco de dados. Por fim, tudo o que resta é escolher um nome de site, um login de administrador e criar uma senha complexa. No final, tudo o que resta é fazer login e você poderá usar o sistema de gerenciamento de conteúdo do WordPress que acabou de configurar. Parabéns, agora você pode criar facilmente seu próprio site usando vários modelos, plug-ins e uma interface gráfica. É aqui que começa a parte divertida. https://serverspace.com.br/support/help/fixing-inactive-repositories-in-centos-8.md Instruções para corrigir repositórios inativos no CentOS 8. Como o CentOS 8 não é mais compatível, seus repositórios começam a ficar indisponíveis e a apresentar erros. Se você encontrar esse erro, recomendamos mudar para o sistema operacional atual - OEL 8. Se, por algum motivo, você não puder mudar de sistema operacional, para corrigir esse erro, basta digitar dois comandos: ``` sed -i 's/^mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-* ``` ``` sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* ``` Pronto! https://serverspace.com.br/support/help/how-to-create-a-slackbot-using-python-3-on-ubuntu-20-04.md Aprenda a construir um Slackbot com Python 3 no Ubuntu 20.04. Melhore a comunicação da equipe com este guia simples Criando o Slackbot usando Python no Ubuntu 20.04: - [Intro](#step1) - [Preparação](#step2) - [Lançamento do Slackbot](#step3) - [Configurando o Python.3](#step4) - [Mensagens do nosso bot](#step5) - [Testar ações com nosso bot](#step6) - [Iniciando um aplicativo Flask](#step7) - [Iniciando nosso aplicativo Flask](#step8) ## Intro: Slack - um mensageiro corporativo, que foi projetado para melhorar a produtividade em seus locais de trabalho. Com ele, você poderá trocar mensagens, criar bate-papos públicos ou privados, fazer chamadas (chamadas de voz ou vídeo) e integrar-se a diferentes Slackbots. O Slackbot é um aplicativo projetado para interagir com os usuários por meio de conversas. Ele tem muitas funções e opções, como: enviar avisos e mensagens, iniciar qualquer tarefa. Em nosso tutorial, para implantar o Slackbot, usaremos Python e Ubuntu 20.04. O Slack tem muitas ferramentas em seu próprio arsenal para ajudá-lo a interagir com a _Interface de Programação de Aplicativos (API)_ do Python e suas integrações. Para testar as habilidades da API do Python e do Slack, será lançado um _CoinBot_, que monitorará o bate-papo e lançará uma moeda quando for acionado. Depois de tudo, você pode atualizar seu bot para fins mais práticos e suas próprias ideias. _Blot:_ Em nosso tutorial, estamos usando o Python.3, o que significa que se você estiver usando versões lançadas anteriormente, o bot não poderá funcionar. ## Preparação: Tudo funcionará se você tiver esses elementos: 1) Slack em seu PC e Workplace (espaço de trabalho) no qual você vai trabalhar. Se você não tiver um, deverá criar um no site oficial do Slack. 2) Máquina virtual ou PC com endereço IP público. ## Lançando o Slackbot Primeiro, vamos iniciar nosso aplicativo Slack no Painel de controle da API do Slack (SCPAPI). Entre no menu de seu local de trabalho e depois vá para SCPAPI. Em seguida, clique no menu "Create an App" (Criar um aplicativo), como na nossa captura de tela: Depois disso, será necessário nomear seu aplicativo. Nosso nome será "_CoinBot_", mas o nome fica a seu critério. Depois disso, escolha um espaço de trabalho que seja mais conveniente para você, onde o aplicativo será instalado. Depois disso, seu aplicativo estará pronto para funcionar. Você pode acessar o painel de controle. Nesse painel, você pode personalizar seu aplicativo: carregar novas permissões, conectar notificações a qualquer evento, instalar seu aplicativo em qualquer local de trabalho e muitas outras coisas. Agora, precisamos conceder direitos especiais ao nosso aplicativo, se quisermos que ele tenha acesso para enviar mensagens em nossos bate-papos. Para obter essa permissão, precisamos clicar no menu de contexto "Permissions" (Permissões), como na captura de tela: Depois disso, você estará no menu "OAuth & Permissions". Você precisa ir até a parte inferior de "Scope" (Escopo). Lá, você deve selecionar "Bot Token Scopes". Nesse menu, pressione o menu "Add on OAuth Scope" (Adicionar escopo do OAuth): Como próxima etapa, precisamos adicionar a permissão _chat:write. _Você pode procurá-la na mesa especial. Depois disso, seu aplicativo terá permissão para gravar em bate-papos. Em seguida, depois de adicionar esse direito, você deve adicionar seu aplicativo novamente ao Workspace. Vá um pouco mais abaixo nesta página até "Oauth Tokens for Your Workspace" e, em seguida, clique no botão "Install to Workspace": Após nossas ações, o Slack vai sugerir que você verifique as permissões de lançamento disponíveis para esse aplicativo. Se tudo estiver de acordo com você, clique no botão "Permitir": Depois que nosso bot estiver pronto para funcionar, o Slack fornecerá seu token de usuário, que será usado para acessar seu Workspace: Ainda nesse menu, há um botão "Reinstall to Workspace" (Reinstalar no espaço de trabalho), que pode ser usado se você tiver algum erro com o bot, que será reinstalado depois de clicar nesse botão. Nossa última coisa a fazer é adicionar nosso chatbot em seu espaço de trabalho. Se você já tiver um canal criado, poderá passar para essa etapa agora: ["Adicionar um bot ao seu canal"](#stepchannel) Caso você ainda não tenha iniciado os bate-papos, siga estas duas etapas: Localize o menu de contexto "Adicionar canal" e selecione o botão "Criar um novo canal" nele: Depois, selecione um nome para seu canal e, opcionalmente, preencha a barra de descrição. ## Adicionar um bot ao seu canal Se você quiser adicionar um bot ao seu chat, coloque o cursor sobre o nome do chat e clique no menu de contexto "Exibir detalhes do canal": Em seguida, vá para o menu "Integration" (Integração) e clique no botão "Add Application" (Adicionar aplicativo): Em seguida, pesquise seu aplicativo pelo nome ou simplesmente role a tela para baixo para encontrá-lo. No nosso caso, "CoinBot": Depois de todas as nossas ações, o bot será iniciado em nosso chat: ## Configuração do Python Temos que configurar o Python para que possamos instalar e gerenciar nossos bots do Slack. Em primeiro lugar, vamos instalar o python v.3 e os auxiliares de ferramentas correspondentes. Faremos isso em nossa VM com o Ubuntu v.20.04 implantado nela. Inicialmente, o Python v.3 já está pré-instalado em todos os servidores Ubuntu versão 20.04, mas para garantir que temos todas as atualizações disponíveis, devemos fazer o download de todas as atualizações anteriores em nosso sistema usando estes comandos: ```bash sudo apt update ``` ```bash sudo apt -y upgrade ``` Depois disso, podemos ver qual é a versão que temos: ``` python3 -V ``` A resposta será mais ou menos assim: ```bash Python 3.8.2 ``` Em seguida, devemos fazer o download da ferramenta pip, que nos dará acesso ao gerenciamento de pacotes: ```bash sudo apt install -y python3-pip ``` Depois disso, vamos implantar o ambiente virtual (VE): ``` python3 -m venv ~/.venvs/slackbot ``` Depois disso, precisamos ativá-lo: ``` source ~/.venvs/slackbot/bin/activate ``` Agora, nosso terminal entre parênteses exibirá nosso ambiente virtual, que deverá ser algo assim: ``` (slackbot) root@Ubuntu-Bot-Python:~# ``` Em seguida, com a ferramenta pip, instalaremos alguns componentes importantes do Python: ```bash pip install slackclient slackeventsapi Flask ``` Explicação: slackclient e slackeventsapi - ferramentas que facilitam o uso da API do Slack. Flask - estrutura microweb que será usada para implantar nosso bot. Depois de configurarmos o Python, podemos configurar nosso bot. ## Criando uma classe para mensagens do Slackbot em Python O Slack está usando dados JSON especialmente formatados para enviar mensagens. Vamos lançar uma classe Python que simula o lançamento de uma moeda. Lembrete - realizamos todas as ações em um ambiente virtual. No nosso caso, o ambiente virtual é root@Ubuntu-Bot-Python:~# Primeiro, usando o comando touch, crie um arquivo chamado coinbot.py: ``` touch coinbot.py ``` Em seguida, abra esse arquivo com o editor nano, você pode usar qualquer outro editor: ``` nanocoinbot.py ``` Adicione o seguinte conteúdo ao nosso arquivo: ```python # import the random library to help us generate the random numbers import random # Create the CoinBot Class class CoinBot: # Create a constant that contains the default text for the message COIN_BLOCK = { "type": "section", "text": { "type": "mrkdwn", "text": ( "Ok! Flipping a coin....nn" ), }, } & # The constructor for the class. It takes the channel name as the a # parameter and then sets it as an instance variable def __init__(self, channel): self.channel = channel # Generate a random number to simulate flipping a coin. Then return the # crafted slack payload with the coin flip message. def _flip_coin(self): rand_int = random.randint(0,1) if rand_int == 0: results = "Heads" else: results = "Tails" text = f"The result is {results}" return {"type": "section", "text": {"type": "mrkdwn", "text": text}}, # Craft and return the entire message payload as a dictionary. def get_message_payload(self): return { "channel": self.channel, "blocks": [ self.COIN_BLOCK, *self._flip_coin(), ], } ``` Em seguida, vamos salvar e fechar nosso arquivo com um atalho de teclado. Agora nosso bot pode enviar mensagens e você pode adicioná-lo ao seu espaço de trabalho. ## Teste as mensagens do nosso Slackbot Agora vamos verificar se a nossa classe cria a carga correta. Crie um arquivo chamado coinbot_test.py: ``` nano coinbot_test.py ``` Em seguida, adicione o seguinte conteúdo ao arquivo criado Importante: certifique-se de alterar o nome do servidor para o seu próprio nome em coin_bot = coinbot("#YOUR_CHANNEL_HERE"). ``` from slack import WebClient from coinbot import CoinBot import os # Create a slack client slack_web_client = WebClient(token=os.environ.get("SLACK_TOKEN")) # Get a new CoinBot coin_bot = CoinBot("#YOUR_CHANNEL_HERE") # Get the onboarding message payload message = coin_bot.get_message_payload() # Post the onboarding message in Slack slack_web_client.chat_postMessage(**message) ``` Salve e feche esse arquivo. Antes de executar o teste, você precisa exportar seu token, que está listado na API do Slak: Agora exporte seu token: ``` export SLACK_TOKEN="Your token" ``` Agora podemos testar nosso bot. Execute o seguinte script em seu terminal: ```bash python coinbot_test.py ``` Depois disso, uma mensagem sobre o lançamento de uma moeda será enviada a você no canal em que você instalou o aplicativo. Certifique-se de que seu bot realmente lhe deu cara ou coroa. ## Criando um aplicativo Flask para executar o Slackbot Agora que seu bot pode jogar uma moeda, criar e enviar mensagens, vamos implantar o Flask, que processará as mensagens e dará algum tipo de reação a elas se o conteúdo corresponder a algum critério. Primeiro, vamos definir as configurações do firewall para permitir o tráfego na porta 3000: ``` sudo ufw allow 3000 ``` Agora, verifique o status do ufw: ``` sudo ufw status ``` Você deverá ver uma saída semelhante a esta: ``` Output status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3000 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 3000 (v6) ALLOW Anywhere (v6) ``` Em seguida, criaremos um arquivo para o nosso aplicativo Flask. Vamos chamar esse arquivo de app.py: ``` touch app.py ``` Em seguida, abra esse arquivo com qualquer um dos editores. Usaremos o nano: ``` nano app.py ``` Vamos adicionar o seguinte conteúdo ao nosso arquivo app.py: ```python import os import logging from flask import Flask from slack import WebClient from slackeventsapi import SlackEventAdapter from coinbot import CoinBot # Initialize a Flask app to host the events adapter app = Flask(__name__) # Create an events adapter and register it to an endpoint in the slack app for event injestion. slack_events_adapter = SlackEventAdapter(os.environ.get("SLACK_EVENTS_TOKEN"), "/slack/events", app) # Initialize a Web API client slack_web_client = WebClient(token=os.environ.get("SLACK_TOKEN")) def flip_coin(channel): """Craft the CoinBot, flip the coin and send the message to the channel """ # Create a new CoinBot coin_bot = CoinBot(channel) # Get the onboarding message payload message = coin_bot.get_message_payload() # Post the onboarding message in Slack slack_web_client.chat_postMessage(**message) # When a 'message' event is detected by the events adapter, forward that payload # to this function. @slack_events_adapter.on("message") def message(payload): """Parse the message event, and if the activation string is in the text, simulate a coin flip and send the result. """ # Get the event data from the payload event = payload.get("event", {}) # Get the text from the event that came through text = event.get("text") # Check and see if the activation phrase was in the text of the message. # If so, execute the code to flip a coin. if "hey sammy, flip a coin" in text.lower(): # Since the activation phrase was met, get the channel ID that the event # was executed on channel_id = event.get("channel") # Execute the flip_coin function and send the results of # flipping a coin to the channel return flip_coin(channel_id) if __name__ == "__main__": # Create the logging object logger = logging.getLogger() # Set the log level to DEBUG. This will increase verbosity of logging messages logger.setLevel(logging.DEBUG) # Add the StreamHandler as a logging handler logger.addHandler(logging.StreamHandler()) # Run our app on our externally facing IP address on port 3000 instead of # running it on localhost, which is traditional for development. app.run(host='0.0.0.0', port=3000) ``` Salve e feche o arquivo. Explicação: Adicionamos as seguintes declarações porque: _import os_ - que usaremos para acessar as variáveis de ambiente _import logging_ - usaremos para registrar eventos do aplicativo. _from flask import Flask_ - usaremos para criar um aplicativo Flask _from slack import WebClient_ - usaremos para enviar mensagens via Slack _from slackeventsapi import SlackEventAdapter_ - usaremos para receber eventos do Slack e processá-los _from coinbot import CoinBot_ - usaremos para instanciar seu CoinBot e gerar a carga útil da mensagem. ## Iniciando seu aplicativo Flask Afinal de contas, nosso aplicativo Flask está pronto para trabalhar com o aplicativo, vamos testá-lo. Primeiro, vamos adicionar nosso aplicativo Slackbot. Na página da API do Slack, vá para a seção "Basik information" (Informações básicas) e role para baixo até a subseção "App Credentials" (Credenciais do aplicativo): Clique em "Show" (Mostrar), conforme mostrado na captura de tela, e copie o segredo de assinatura. Agora, exportamos nosso segredo de assinatura com este comando: ``` export SLACK_EVENTS_TOKEN="MY_SIGNING_SECRET_TOKEN" ``` Agora podemos testar nosso aplicativo. Inicie o aplicativo Flask usando esse código: ``` python3 app.py ``` Exemplo de saída: ``` (slackbot) [19:37:05] danial:CoinBot$ python app.py * Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://0.0.0.0:3000/ (Press CTRL+C to quit) ``` Agora vamos concluir a configuração do nosso aplicativo na interface do usuário do Slack. Em primeiro lugar, vamos fornecer ao nosso aplicativo o direito de ler, processar atividades no bate-papo e responder a elas. No menu da interface do usuário, selecione a seção "Event Subscriptions" (Assinaturas de eventos) e alterne o botão de alternância "Enable Events" (Ativar eventos) para a posição "On" (Ligado), conforme mostrado na captura de tela: Depois, abra o menu "Assinar eventos de bot" e selecione _message.channels:_ Após nossas ações, seu aplicativo no futere terá a oportunidade de processar mensagens. Depois de salvar as alterações, você terá um menu de contexto amarelo na parte superior da tela informando que é necessário reinstalar o aplicativo para aplicar as alterações a seguir. Clique no link de reinstalação nesse banner para reinstalar o aplicativo: Em seguida, você terá um menu de contexto com as novas permissões aplicadas. Se você concordar com tudo, clique em "Allow" (Permitir): Depois disso, nosso bot estará pronto. Vá para seu bate-papo e envie uma mensagem com a frase "Hey Danny, flip a coin" (Danny, jogue uma moeda). Seu bot vai verificar sua sorte e mostrar o resultado. Parabéns, lançamos nosso bot! https://serverspace.com.br/support/help/instruction-for-installing-and-configuring-php-and-mysql-in-conjunction-with-iis.md Siga as instruções do ServerSpace para instalar e configurar o PHP e o MySQL com o IIS. Ideal para configurar ambientes dinâmicos da Web Acontece que em um servidor Windows é necessário usá-lo como um servidor da Web. A primeira coisa que vem à mente é instalar o WAMP. Ou simplesmente instalar o Apache, o MySQL e o PHP separadamente. No entanto, também há particularidades, por exemplo, em vez do Apache, você deseja usar o IIS. Os motivos podem ser completamente diferentes. Desde a falta de vontade do administrador do sistema de aprender algo novo até as opiniões radicais do serviço de segurança da informação. Vamos dar uma olhada em como criar um conjunto de IIS + MySQL + PHP. O IIS é um conjunto de serviços de Internet da Microsoft, em outras palavras, uma plataforma da Web. A peculiaridade do IIS é que ele suporta um grande número de módulos e aplicativos, incluindo o trabalho com MySQL e PHP. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com os aplicativos "MySQL e PHP" já instalados.** [step num="1"] **Instalação do IIS.** [/step] [step num="2"] Abra o Server Manager. [/step] [step num="3"] Na janela que se abrirá, você deve selecionar "Add roles and features" (Adicionar funções e recursos). [/step] [step num="4"] Na janela Assistente de instalação de funções e recursos, opcionalmente, marque a caixa "Ignorar esta página por padrão". Essa página será exibida sempre que você tentar adicionar uma função ou recursos. Depois disso, pressione o botão "**Next**". [/step] [step num="5"] Como próxima etapa, devemos verificar se a opção "**Instalar funções e recursos**" está selecionada no menu **Tipo de instalação**. Depois disso, clique no botão "**Next**". [/step] [step num="6"] Na etapa de seleção de servidores, basta clicar em "**Next**", pois em nosso caso há um servidor [/step] [step num="7"] Na etapa de seleção das funções de servidor, marque a caixa "**Web server (IIS)**" e clique no botão "**Next**". [/step] [step num="8"] Na janela que será exibida, clique no botão "**Add Components**". A janela será fechada. [/step] [step num="9"] Na janela restante do assistente, clique no botão "**Next**". [/etapa] [step num="10"] Na etapa de seleção de componentes, recomendamos que você marque a caixa "**Features of the .NET Framework 3.5**". Clique em "**Next**". [/step] [step num="11"] Na etapa "**Web Server Role (IIS)**" - clique em "**Next**". [/step] [step num="12"] Opcionalmente, você pode verificar serviços adicionais da função Web Server, como um servidor FTP. Pressionamos o botão "**Next**". [/step] [step num="13"] Confirme a instalação clicando no botão "**Install**". [/step] Precisamos aguardar o fim do processo de instalação. [step num="14"] O ícone **IIS** aparecerá na janela do Server Manager. Precisamos clicar nele. [/step] [step num="15"] Na janela atualizada, clique com o botão direito do mouse no nome do servidor. Selecione "**IIS Manager**" no menu de contexto. [/step] [step num="16"] Na janela do gerenciador que aparece, no lado esquerdo, selecione o servidor atual. Na parte direita da janela - "**Get new web platform components**". [/step] [step num="17"] Uma janela do navegador padrão será aberta, solicitando o download e a instalação do Web Platform Installer. [/step] [step num="18"] Faça o download do pacote de instalação, execute-o e instale-o. [/step] [step num="19"] Após a instalação, clique novamente em "**Get new web platform components**". [/step] [step num="20"] O assistente do instalador da plataforma Web será iniciado. [/step] [step num="21"] **Instalação do MySQL e do PHP.** Há um campo de pesquisa na janela do programa. Vamos usá-lo. Nos resultados da pesquisa, selecione o pacote PHP. Clique no botão "**Add**". [/step] [step num="22"] Da mesma forma, localize o pacote MySQL e clique em "**Add**". Quando todos os pacotes forem adicionados, clique no botão "**Install**". [/step] [step num="23"] Como nos sistemas Linux, o instalador solicitará uma senha para o usuário raiz do MySQL. Não se esqueça da senha digitada. Clique em "**Continue**". [/step] [step num="24"] A parte central da janela lista os programas que serão instalados. Para visualizar o texto do contrato de licença do software instalado, clique no hiperlink. Se você concordar, clique no botão "**Accept**". [/step] Precisamos aguardar a conclusão da instalação. [step num="25"] Resultado da instalação. Clique em "**Finish**". [/step] [step num="26"] Como você pode ver, o pacote "PHP Manager for IIS" não foi instalado. Instale-o da mesma forma. Encontramos no campo de pesquisa, clicamos no botão "**Add**" e, em seguida, no botão "**Install**". [/step] [step num="27"] Lembre-se de que o programa não foi instalado devido a uma assinatura digital incorreta. Isso acontece. Faça o download do programa em [github](https://github.com/phpmanager/phpmanager/releases). Não se esqueça da quantidade de bits do sistema operacional. [/step] O resultado será um arquivo MSI. Instale-o como um programa normal. Talvez seja necessário fechar o IIS Manager durante a instalação [step num="28"] Após a conclusão da instalação, o ícone "**PHP Administrator**" será exibido na janela do Gerenciador do IIS. Abra-o com um clique duplo. [/step] [step num="29"] Na janela que se abre, verifique phpinfo(). Clique no hiperlink apropriado. [/step] [step num="30"] Na janela aberta para selecionar um site e um URL, selecione o site padrão. Clique em "**OK**". [/step] O resultado da execução da função phpinfo() será exibido no gerenciador do IIS. [step num="31"] **Vamos verificar o resultado da instalação do MySQL.** Precisamos abrir uma janela do PowerShell e ir para o diretório de localização do DBMS usando o comando: ``` cd "C:Program FilesMySQLMySQL Server 5.5bin" ``` [/step] [step num="32"] Tente se conectar ao DBMS: ``` ./mysql -u root -p ``` [/step] [step num="33"] Digite a senha que você especificou durante a instalação. https://serverspace.com.br/support/help/secured-windows-server-checklist.md Proteja seu servidor Windows com nossa abrangente lista de verificação. Implemente medidas essenciais para se proteger contra vulnerabilidades e garantir a segurança robusta do servidor Lista de verificação do Windows Server protegido: - [Instale regularmente atualizações do sistema operacional e do software instalado.](#step1) - [Use software de fontes confiáveis](#step2) - [Configure adequadamente o firewall](#step3) - [Renomear a conta do administrador](#step4) - [Usar várias contas de administrador](#step5) - [Usar uma conta de usuário com direitos limitados](#step6) - [Restrinja o compartilhamento de arquivos e pastas, ative a proteção por senha](#step7) - [Ative a solicitação de uma senha para fazer login ao sair do modo inativo, bem como a desconexão de sessões quando ociosas](#step8) - [Usar o Assistente de configuração de segurança](#step9) - [Configurar corretamente as políticas de segurança](#step10) - [Usar políticas de segurança locais](#step11) - [Proteger o serviço de área de trabalho remota (RDP)](#step12) - [Configurar o Terminal Services Gateway](#step13) - [Instalar o serviço de gateway do TS](#step14) - [Instalar um certificado SSL](#step15) - [Resta apenas configurar as políticas de grupo](#step16) - [Isolar funções de servidor. Desative os serviços não utilizados](#step17) A questão da segurança do servidor tem sido e continuará sendo relevante. Vamos considerar as regras básicas para garantir a segurança dos servidores que executam sistemas operacionais da família Windows Server. [step num="1"]**** ### Instale regularmente as atualizações do sistema operacional e do software instalado. [/step] Na vida cotidiana, há uma opinião de que o Windows não precisa de atualizações e, em geral, é melhor desativá-las, supostamente "para que o sistema não fique inativo". Esse é um dos maiores erros. É importante instalar as atualizações em tempo hábil, especialmente as críticas. Essa tarefa é simplificada por um utilitário especial, que pode ser encontrado no site oficial do [Windows Update](https://www.microsoft.com/ru-ru/itpro/windows). Também é importante manter atualizados os softwares relacionados instalados, incluindo DBMS, várias estruturas e assim por diante. [step num="2"] **** ### Use software de fontes confiáveis. [/step] Recomendamos que você se certifique de que a fonte é confiável antes de fazer o download do pacote de instalação do software, inclusive de código aberto. Muitas vezes acontece de um recurso visualmente semelhante ao site oficial distribuir um software já comprometido (Fishing). Um arquivo com código malicioso pode ser adicionado ao pacote de instalação. [step num="3"] **** ### Configure adequadamente o firewall. [/step] É importante entender que o servidor pode ser acessado pela Internet. Por esse motivo, o sistema operacional deve ser protegido por qualquer dispositivo que atue como firewall. Se não houver nenhum desses dispositivos, o Firewall do Windows será a última esperança de proteção contra conexões não autorizadas com o servidor. Quanto menos portas TCP/UDP estiverem disponíveis do lado de fora, menor será a probabilidade de ataque ao servidor. Nesse caso, é importante entender o que você precisa bloquear. Se estivermos falando de um servidor da Web, as portas TCP 80 e 443 devem ficar disponíveis (o serviço escuta nessas portas por padrão). Essas eram portas públicas, mas não se esqueça de que há portas cujo acesso deve ser fornecido de acordo com o princípio da lista "branca", ou seja, somente para um determinado grupo de pessoas. Exemplo de portas: - 3389 - RDP (Remote Desktop Protocol); - 135-139 - NetBIOS; - 445 - Samba (compartilhamento de arquivos e pastas); - 5000 - 5050 - FTP no modo passivo; - 1433 - 1434 - portas SQL; - 3306 - porta padrão para MySQL; - 53 - DNS Não é difícil criar uma regra. Abra o **menu Iniciar→ Painel de controle → Sistema e segurança → Ferramentas administrativas → Firewall do Windows com segurança avançada.** Na janela do programa, clique com o botão direito do mouse em "**Regras para conexões de entrada**". No menu de contexto que é aberto, selecione "**Create Rule...**". [step num="4"] **** ### Renomear a conta do administrador. [/step] [step num="5"] **** ### Use várias contas de administrador. [/step] Se várias pessoas estiverem administrando o servidor, você deverá criar uma conta individual para cada uma delas. Essa medida permitirá que você rastreie o culpado pelo que aconteceu. [step num="6"] **** ### Use uma conta de usuário com direitos limitados. [/step] Nem sempre é necessário usar uma conta com direitos administrativos para executar tarefas cotidianas. Recomendamos que você crie uma conta com direitos limitados. Se a conta for comprometida, o invasor terá que tentar obter direitos de administrador e fazer algumas coisas ruins será muito mais complexo para ele. Além disso, essa medida pode ajudar a salvar o servidor de suas próprias ações. Em caso de acesso não autorizado na conta de administrador, o invasor terá acesso total ao sistema. [step num="7"] **** ### Restrinja o compartilhamento de arquivos e pastas, ative a proteção por senha. [/step] Recomendamos enfaticamente que você não compartilhe conexões com usuários anônimos ou usuários sem senha. Mesmo que os arquivos armazenados em pastas não tenham valor, nada impede que um invasor substitua seu arquivo por um arquivo com conteúdo malicioso. As consequências dessa alteração podem ser muito diferentes. Além de usar proteção por senha, recomendamos restringir o nível de acesso de diferentes usuários a arquivos e pastas (leitura, gravação, alteração). [step num="8"] **** ### Ative a solicitação de uma senha para fazer login ao sair do modo inativo, bem como a desconexão de sessões quando ociosas. [/step] Ao usar um servidor físico (não remoto ou virtual), é recomendável ativar a solicitação de senha do usuário ao despertar. Essa configuração é feita no painel de controle: **Painel de controle → Todos os itens do painel de controle → Opções de energia.** Também é importante definir limites de inatividade do usuário e, "ao retornar", solicitar uma senha. Isso excluirá a possibilidade de outra pessoa fazer login em nome do usuário, caso ele tenha saído ou se esquecido de fechar a sessão RDP. Para configurar esse item, use a configuração de política local **secpol.msc**. [step num="9"] **** ### Use o Assistente de Configuração de Segurança. [/step] ([SCW - Security Configuration Wizard](https://docs.microsoft.com/en-us/previous-versions/orphan-topics/ws.11/cc754997(v=ws.11))) permite criar arquivos XML de políticas de segurança, que podem ser transferidos posteriormente para outros servidores. Essas políticas incluem não apenas regras de uso de serviços, mas também configurações gerais do sistema e regras de firewall. [step num="10"] **** ### Configure corretamente as políticas de segurança. [/step] Além da configuração inicial das políticas de grupo do Active Directory, elas devem ser periodicamente revisadas e reconfiguradas. Essa é uma das principais maneiras de garantir a segurança da infraestrutura do Windows. Para a conveniência do gerenciamento de políticas de grupo, você pode usar não apenas o utilitário gpmc.msc incorporado ao Windows Server, mas também o ([SCM-Security Compliance Manager](https://technet.microsoft.com/ru-ru/library/cc677002.aspx)). O utilitário oferecido pela Microsoft.**** [step num="11"] **** ### Use políticas de segurança locais. [/step] Além de usar as políticas de segurança de grupo do Active Directory, você também deve usar políticas locais que afetam os direitos dos usuários remotos e das contas locais. Para gerenciar as políticas locais, você pode usar o snap-in apropriado "Política de segurança local", chamado pelo comando **secpol.msc** em Iniciar -> Executar (tecla Windows + R). [step num="12"] **** ### Proteja o serviço de área de trabalho remota (RDP). [/step] - Bloqueie as conexões RDP para usuários com uma senha em branco. A presença de usuários sem senhas é inaceitável, mas se isso não puder ser evitado, você pode pelo menos desativar a conexão com o RDP. Para fazer isso, abra **Iniciar → Ferramentas administrativas.** No diretório que se abre, execute a **Política de Segurança Local.** Na janela Políticas de segurança local, à esquerda, selecione **Políticas locais → Opções de segurança.** Na parte principal da janela, encontramos "**Contas: Limitar o uso de senhas em branco pela conta local somente para logon no console**". Selecione esse item com um clique duplo e mova a chave para a posição "**Disabled**". Pressione o botão "**OK**". **Alterar a porta TCP padrão do RDP.** A substituição dos números de porta TCP dos serviços padrão por outros valores pode aumentar a segurança do servidor, mas o principal é não esquecer o novo número de porta. Para alterar uma porta: - Abra o Editor de Registro do Windows - Windows + R - Por precaução, criamos uma cópia de backup do registro (File → Export) - Expanda a ramificação **HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp** e, na parte direita da janela, localize o parâmetro PortNumber. - - Abra a opção clicando duas vezes com o mouse. Na janela que se abre, selecione o **Sistema de cálculo: Decimal**, especifique um novo valor de porta, clique no botão "**OK**" e feche a janela do editor de registro. Para podermos nos conectar ao servidor, criamos uma regra apropriada para o Firewall do Windows. Clique com o botão direito do mouse em "**Inbound Rules**" e selecione "**New Rule**" no menu de contexto. Na janela "**Wizards**", selecione "**For Port**" Em seguida, selecione "**TCP Protocol**", "**Specific Local Ports**" e especifique um novo número de porta. A próxima etapa é selecionar "**Allow the connection**" Configuramos para quais redes a regra se aplicará e marcamos as necessárias com os daws. Na etapa final, especifique o nome da regra e uma descrição para ela. Reinicialize o servidor para aplicar as alterações. Para conectar-se a uma área de trabalho remota, agora usamos um endereço IP ou um nome de domínio e especificamos a porta por meio de dois pontos. [step num="13"] **** ### Configurar o Terminal Services Gateway. [/step] O serviço "TS (Remote Desktop Services) Gateway" permite proteger uma conexão de área de trabalho remota usando o protocolo HTTPS (SSL), evitando que o administrador do sistema tenha que configurar uma VPN. A ferramenta é capaz de controlar de forma abrangente o acesso às máquinas, bem como definir regras e requisitos de autorização para usuários remotos, por exemplo: - Usuários ou grupos de usuários que têm permissão para se conectar a recursos de rede interna; - Recursos de rede aos quais os usuários podem se conectar; - Se os computadores clientes devem ter associação ao Active Directory; - Se os clientes precisam usar autenticação baseada em cartão inteligente ou senha, ou se podem usar um dos métodos de autenticação acima. A lógica de operação do Remote Desktop Gateway requer o uso de uma máquina separada. No entanto, ela não proíbe o uso de uma máquina virtual autônoma. [step num="14"] **** ### Instale o serviço de gateway TS. [/step] Abra o Server Manager. Selecione "**Adicionar funções e recursos**" No estágio "**Installation type**" (Tipo de instalação), selecione "**Install roles and features**" (Instalar funções e recursos). A próxima etapa é selecionar o servidor atual. Função de servidor - **Serviço de área de trabalho remota.** Vamos passar para o serviço de função. Selecione "**Remote Desktop Gateway**". Prosseguimos para a etapa de confirmação, clique no botão "**Install**". [step num="15"] **** ### Instalação de um certificado SSL. [/step] Depois de instalar a função, na janela Server Manager, selecione **Ferramentas → Serviços de Área de Trabalho Remota → Remote Desktop Gateway Manager**. Na janela que se abre, em sua parte esquerda, clique no ícone do servidor. Na parte principal da janela, selecione "**Ver e alterar as propriedades do certificado**". Na janela "**Properties**" que se abre, vá para a guia "**SSL Certificate**". Selecione o item "**Criar um certificado autoassinado**" e clique no botão "**Criar e importar um certificado**". Se você tiver um certificado criado anteriormente, poderá usar uma das opções abaixo, dependendo de quem o emitiu. Na nova janela, verifique as configurações. Se tudo estiver correto, clique em "**OK**". Em uma nova janela, o sistema o notificará sobre a criação bem-sucedida do certificado e fornecerá o caminho para o arquivo. Vá para a janela de propriedades do servidor. Clique em "**Apply**". [step num="16"] **** ### Resta apenas configurar as políticas de grupo. [/step] Na janela "**Remote Desktop Gateway Manager**", na coluna da esquerda, expanda a ramificação do servidor, selecione "**Policies**" e, em seguida, "**Connection Authorization Policies**". Na coluna direita da mesma janela, selecione "**Criar uma nova política**"** →** "**Assistente**". Na nova janela, selecione "**Criar apenas uma política de autorização de conexão de área de trabalho remota**" e clique em "**Próximo**". Especifique o nome desejado para a política. Recomendamos que você digite o nome em latim. A próxima etapa é escolher um método de autenticação conveniente - uma senha ou um [smart-card](https://docs.microsoft.com/ru-ru/windows/win32/secauthn/smart-card-authentication). Deixe apenas a opção "**Password**" marcada. Clique em "**Add Group...**" Na janela de seleção de grupos, clique no botão "**Advanced**". O tamanho da janela será alterado. Clique no botão "**Search**". Nos resultados encontrados, selecione "**Domain Admins**" e clique no botão "**OK**". Na janela de seleção de grupos, verifique os nomes de objetos selecionados e clique em "**OK**". O grupo foi adicionado. Para prosseguir para a próxima etapa, clique no botão "**Next**". Na próxima etapa, selecione o item "**Habilitar redirecionamento de dispositivo para todos os dispositivos clientes**" e clique em "**Next**". Configure os tempos limite da sessão. E ações após sua expiração. Recomendamos desconectar a sessão para que os processos do usuário em segundo plano não ocupem o tempo da CPU. Clique em "**Next**". Na última etapa, visualizamos o resumo e clicamos em "**Finish**". Para confirmar a criação da política, clique em "**Close**". **Configure uma política de autorização de recursos.** O processo é realizado de forma semelhante ao anterior. Na janela do Remote Desktop Gateway Manager, expanda a ramificação **Políticas → Políticas de autorização de conexão**. Na parte direita da janela, selecione **"Criar uma nova política" → "Assistente"**. Na janela que se abre, selecione "**Criar apenas uma política de autorização de recursos de área de trabalho remota**" e clique no botão "**Próximo**". A primeira etapa é especificar o nome desejado para a política de autorização. É altamente recomendável que você especifique o nome em latim. Pressionamos o botão "**Next**". Na janela de seleção de grupo, clique no botão "**Advanced**". A janela será redimensionada. Pressione o botão "**Search**". Nos resultados da pesquisa, localize "**Domain Admins**" e clique no botão "**OK**". Na janela de seleção de grupo, verifique os nomes de objetos selecionados e clique em "**OK**". O grupo foi adicionado. Para prosseguir para a próxima etapa, clique no botão "**Next**". Na próxima etapa, permitiremos que os usuários se conectem a qualquer recurso de rede. Para fazer isso, selecione a opção apropriada e clique no botão "**Next**". Configure as portas permitidas. Se a porta do servidor RDP não tiver sido alterada, deixe 3389. Clique em "**Next**". A etapa final é verificar as configurações e clicar no botão "**Finish**". Na janela atualizada, clique em "**Close**". [step num="17"] **** ### Isolar as funções do servidor. Desative os serviços não utilizados. [/step] Na etapa de planejamento preliminar da arquitetura de rede, uma das principais tarefas é planejar os riscos em caso de falha de qualquer elemento da rede. Pode haver muitos motivos para isso, desde a falha do equipamento até a "invasão" externa. Quanto mais funções forem atribuídas ao servidor, mais graves serão as consequências se o servidor falhar. Para minimizar os riscos e os danos, você deve, se possível, delinear as funções do servidor no estágio de projeto. Desativar serviços e funções de servidor que sejam necessários também terá um efeito positivo em sua operação. O caso ideal é que um servidor execute uma função específica, como um controlador de domínio, um servidor de arquivos ou um servidor de terminal. Na prática, é difícil conseguir essa separação de funções. O isolamento de funções também pode ser feito por servidores virtuais. As modernas tecnologias de virtualização oferecem um alto nível de desempenho e estabilidade, enquanto o administrador e o usuário não sofrem nenhuma restrição. O hardware adequadamente selecionado e as peças de software configuradas podem ser um substituto completo para toda uma frota de equipamentos. **Visão geral do Windows Nano Server.** O **Nano Server** tornou-se um desenvolvimento adicional do **Windows Server Core**. Essa versão do kit de distribuição exclui o uso de uma interface gráfica de usuário. Todo o gerenciamento é focado no WMI - Windows Management Instrumentation, bem como no Windows PowerShell. Essa distribuição do Windows Server tem 92% menos recomendações críticas de segurança. O Nano Server está disponível apenas para clientes do Microsoft Software Assurance e plataformas de computação em nuvem, como o Microsoft Azure e o Amazon Web Services. A partir do Windows Server build 1709, o Nano Server só pode ser instalado dentro de um host de contêiner. https://serverspace.com.br/support/help/elk-stack-on-centos-7.md Entenda como instalar e configurar o ELK Stack no CentOS 7. Um guia claro para aprimorar suas habilidades de análise de dados e gerenciamento de logs As instruções descrevem como instalar o ELK Stack em um servidor virtual que executa o Centos 7. ## O que é o ELK Stack? "ELK" é a abreviação de três projetos de código aberto: Elasticsearch, Logstash e Kibana. O Elasticsearch é um mecanismo de pesquisa e análise. O Logstash é um pipeline de processamento de dados no lado do servidor que recebe dados de várias fontes ao mesmo tempo, transforma-os e, em seguida, envia-os para um "estoque" como o Elasticsearch. O Kibana permite que os usuários visualizem dados usando tabelas e gráficos no Elasticsearch. ## Requisitos iniciais Os requisitos mínimos do sistema para a operação normal do ELK são 4 GB de RAM e 2 CPUs ## Instalação do Java A implantação de um Elastic Stack requer a instalação do Java. Execute o seguinte comando: ```bash yum -y install java-1.8.0 ``` Você pode verificar a versão instalada com o comando: ``` java -version ``` ## Instalando e configurando o Elasticsearch Use o comando rpm para baixar a chave do Elasticsearch: ``` sudo rpm --import [https://artifacts.elastic.co/GPG-KEY-elasticsearch](https://artifacts.elastic.co/GPG-KEY-elasticsearch) ``` Adicionar um repositório: ``` sudo vi /etc/yum.repos.d/elasticsearch.repo ``` Cole o seguinte conteúdo nele e salve o arquivo: ``` [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` Inicie o processo de instalação: ```bash sudo yum install elasticsearch ``` Em seguida, você precisa editar o arquivo de configuração; primeiro, você precisa abri-lo com o editor de texto vi: ``` vi /etc/elasticsearch/elasticsearch.yml ``` Descomente a seguinte linha no arquivo: ``` bootstrap.memory_lock: true ``` Descomente e defina valores para os seguintes parâmetros: ```yaml network.host: localhost http.port: 9200 ``` Salve suas alterações e feche o editor de texto. A próxima etapa é editar o arquivo de configuração sysconfig do Elasticsearch: ``` vi /etc/sysconfig/elasticsearch ``` Descomente a configuração MAX_LOCKED_MEMORY e verifique se ela está definida como ilimitada: ``` MAX_LOCKED_MEMORY=unlimited ``` Antes de iniciar o serviço, primeiro reinicialize os sistemas e permita que o Elasticsearch inicie no momento da inicialização: ```bash systemctl daemon-reload systemctl enable elasticsearch systemctl start elasticsearch ``` ## Instalação e configuração do Kibana Use o wget para baixar o Kibana 6.2.4 e, em seguida, instale-o com o comando rpm: ```bash wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm rpm -ivh kibana-6.2.4-x86_64.rpm ``` Em seguida, você precisa editar o arquivo de configuração do Kibana: ``` vi /etc/kibana/kibana.yml ``` Descomente as seguintes linhas e defina os valores: ```yaml server.port: 5601 server.host: "[IP - adress of your server]" elasticsearch.url: "http://localhost:9200" ``` Por exemplo: ```yaml server.port: 5601 server.host: "123.234.123.234" elasticsearch.url: "http://localhost:9200" ``` Inicie o serviço Kibana e configure-o para iniciar automaticamente na inicialização: ```bash systemctl enable kibana systemctl start kibana ``` Abra a porta 5601 para se conectar à interface da Web do Kibana: ``` sudo firewall-cmd --add-port=5601/tcp --permanent sudo firewall-cmd --reload ``` ## Configuração do Nginx Em seu servidor virtual, o servidor da Web NGINX deve ser instalado; como fazer isso está escrito em nossas instruções**(нужна гиперссылочка)**. Instale ferramentas adicionais para trabalhar com o servidor da Web: ```bash yum install httpd-tools ``` Em seguida, você precisa criar um novo arquivo de configuração de host virtual no diretório conf.d: ``` vi /etc/nginx/conf.d/[Домен или IP-адрес].conf ``` Por exemplo: ``` vi /etc/nginx/conf.d/123.234.123.234.conf ``` E insira os seguintes dados: ```css server { listen 80; server_name [Domen or IP-adress]; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.kibana; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } ``` Em seguida, crie um novo arquivo de autenticação básica usando o comando htpassw. Você precisará criar uma senha para o usuário admin: ``` sudo htpasswd -c /etc/nginx/htpasswd.kibana admin ``` Restartar o servidor nginx: ```bash systemctl restart nginx ``` ## Instalação e configuração do Logstash Baixe e instale o Logstash: ```bash wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm rpm -ivh logstash-6.2.4.rpm ``` Depois que o Logstash estiver instalado, inicie o serviço: ```bash systemctl restart logstash systemctl enable logstash ``` ## Conectando-se ao Kibana Depois de concluir as configurações, conecte-se ao Kibana no navegador. Para fazer isso, acesse o seguinte link: ``` http://[IP-adress of your server]:5601 ``` Por exemplo: http://123.234.123.234:5601 https://serverspace.com.br/support/help/reserve-copying-backup.md Explore o guia do ServerSpace sobre backup e cópia de reserva para garantir a segurança dos dados. Aprenda técnicas para redundância de dados em serviços de nuvem O serviço **Cópia de reserva** está disponível para todos os usuários de [máquinas virtuais](https://serverspace.ru/services/vps-server/). ### Como funciona A cópia de reserva é realizada uma vez por dia em uma matriz de disco geograficamente remota. O parâmetro **Profundidade de armazenamento** calcula por quanto tempo os backups serão mantidos (1, 2, 3 ou 4 semanas). Lembre-se de que as cópias mais antigas do que o período selecionado são excluídas automaticamente. ### Como ativar um serviço Quando você criar um novo servidor, a ativação do backup ocorrerá com a ajuda do campo correspondente e com a escolha da profundidade de armazenamento. Se você já tiver um servidor, poderá ativar esse serviço no menu do servidor **Backup**, como anteriormente, com a ocorrência de uma profundidade de armazenamento. Não se esqueça de salvar as alterações. ### Como fazer backup do servidor a partir da cópia de reserva Se quiser fazer backup do seu servidor, você deve ir para a guia **Backup** → **Backup from reserve copying** e escolher uma variante de backup: Near (próximo) ou Above (acima). Na primeira variante, você terá uma duplicata do seu servidor, na segunda variante você fará backup do seu servidor atual. Escolha uma data de uma cópia de reserva da qual você deseja fazer backup. Se estiver fazendo backup de "Above", você também deverá marcar a guia especial. Pressione o botão **Backup**. ### Como desativar um serviço de backup Se quiser desativar um serviço de backup, você deve ir até a guia **Backup** → **Shedule** e pressionar o botão **Disabled**. Confirme suas ações com o botão **Alterar**. ### Faturamento e lista de preços O custo do serviço é calculado com a fórmula: _Z = G * S * (N / 7)_ Aqui G - é o custo do serviço para 1 gigabite, S - o volume total de todos os discos do servidor, N - profundidade de armazenamento. As informações sobre o custo atual do serviço podem ser encontradas na guia **Billing** do seu servidor. Regras de tarifação: - O serviço está sendo tarifado a cada 10 minutos ; - o custo total não depende do status do servidor (se está ligado ou desligado). [Seleções de VPS/VDS](https://serverspace.com.br/services/cloud-servers.md) https://serverspace.com.br/services/vps-server.md Hospede seu servidor VPS cloud com desempenho de ponta, segurança de nível empresarial e expansão instantânea sob demanda. Tenha um ambiente rápido, estável e pronto para acompanhar o crescimento do seu negócio. Assistance with server migration and administration upon request. https://serverspace.com.br/services/vps-server/linux.md Lance seu projeto agora com VPS-servidor Linux pronto em 1 minuto, com controle total de recursos, alta performance e segurança. Soluções confiáveis com VPS Linux Brasil. Servidores virtuais na nuvem em 1 minuto com Ubuntu, CentOS, Debian ou Oracle Linux predefinidos. https://serverspace.com.br/support/help/adding-a-volume-and-creating-partitions-in-windows.md Este guia passo a passo o ajudará a criar partições de disco e adicionar um volume no sistema operacional Windows. ## Esta instrução ajuda a montar novos volumes e a criar partições em servidores virtuais com um sistema operacional Windows. [step num="1"] Depois de adicionar um volume no painel de controle, é necessário torná-lo disponível para o sistema operacional. Conecte-se ao servidor com privilégios de superusuário. Vá para o Gerenciador do servidor. No menu superior, selecione "Tools" → "Computer Management". [/step] **Nota:** No Windows Server 2008, você precisa abrir o Gerenciador de Servidores e selecionar "Armazenamento" → "Gerenciamento de Disco" no menu vertical à esquerda. [step num="2"] No menu à esquerda, no diretório "Storage", selecione "Disk Management" (1). No painel inferior direito, você verá o volume adicionado (Disk1) com uma área não alocada (2) (no exemplo abaixo, a área não alocada é de 40 Gb). [/step] [step num="3"] Em seguida, você precisa tornar o volume adicionado visível para o sistema operacional. Se o volume estiver no estado "Offline", clique nele com o botão direito do mouse antes e escolha "Online" no menu de contexto. [/step] [step num="4"] No módulo Volume Management, clique com o botão direito do mouse no volume que deseja inicializar e selecione Initialize Disk. [/step] Clique em OK na caixa de diálogo exibida para aceitar o estilo de partição padrão ou alterar o estilo de partição (GPT ou MBR). **Observação:** MBR (Master Boot Record) e GPT (GUID Partition Table) são duas maneiras diferentes de armazenar informações sobre as partições do disco rígido. Essas informações incluem informações sobre como as unidades funcionam e qual partição será inicializável para o sistema. [step num="5"] Para criar um volume simples, clique com o botão direito do mouse na área não particionada e selecione "New Simple Volume" no menu exibido. [/step] [step num="6"] Na janela exibida do Assistente de configuração, clique em "Next" (Avançar) e especifique o tamanho do volume (você pode aceitar o padrão e usar o valor máximo) e, em seguida, clique novamente em "Next" (Avançar). [/step] [step num="7"] Atribua uma letra ao volume ou aceite o padrão e, em seguida, clique em Next novamente. [/step] [step num="8"] Especifique o sistema de arquivos que deseja usar (geralmente NTFS) e, em seguida, clique em "Next" (Avançar) e "Finish" (Concluir). [/step] [step num="9"] O volume adicionado aparecerá na lista de dispositivos, com uma área marcada no painel inferior. [/step] [step num="10"] No Windows Explorer, você também pode ver a unidade adicionada, cujo tamanho é de 40 GB. https://serverspace.com.br/support/help/ultimate-linux-commands-cheat-sheet.md Esta folha de dicas de comandos do Linux contém mais de 100 comandos de terminal do Linux mais comumente usados. Às vezes, você pode esquecer os comandos do terminal no _Linux_ e salvá-los no seu computador ou em um pedaço de papel como uma folha de consulta é uma boa prática. Esta lista não está completa, mas contém os comandos mais comumente usados. Sinta-se à vontade para adicionar seus comandos mais usados nos comentários abaixo e compartilhar a lista. ## Usuários - **Id** - Detalhes sobre o usuário (uid, gid e grupo) - **último - **Lista informações sobre os últimos logins no sistema, incluindo hora, nome de usuário, endereço IP e duração da sessão. - **who** - Exibir usuários autorizados - **groupadd** **"testgroup"** - Cria um grupo chamado "testgroup" - **adduser** **NewUser** - Adiciona o usuário chamado "NewUser" - **userdel** **NewUser -** Exclui o usuário chamado "NewUser" - **usermod NewUser** Modifica as informações do usuário "NewUser" ## Navegar por diretórios - **cd** **/.** - Vai para o diretório principal - **cd** - Vai para o diretório home (variável $HOME) - **cd** **/root - **Vai para o diretório /root - **cd ... - **Vai para um nível inferior - **cd /root/.ssh - **Vai para a pasta oculta .ssh ## Trabalhando com arquivos - **ls** **-al -** Lista arquivos e diretórios - **pwd** - Exibe o diretório de trabalho atual - **mkdir** **NewFolder** - Cria um novo diretório chamado "NewFolder" - **rm** **NewFile** - Exclui o arquivo chamado "NewFile" - **rm** **-f** **NewFile** - Exclui à força o arquivo chamado "NewFile" - **rm** **-r** **NewFolder -** Exclui o diretório chamado "NewFolder" recursivamente - **rm** **-rf** **NewFolder **- Força a exclusão de um diretório chamado "NewFolder" recursivamente - **cp** **oldfile1 newfile2** - Copia o conteúdo de oldfile1 para newfile2 - **cp** **-r olddir1 newdir2** - Copia recursivamente o diretório "olddir1" para "newdir2". Dir2 será criado se não existir. - **mv** **oldfile1 newfile2 -** Renomeia "oldfile1" para "newfile2" - **ln** **-s /etc/log/file logfile** - Cria um atalho para o arquivo - **touch** **newfile -** Cria um arquivo vazio chamado newfile - **cat** **> newfile** - Coloca o STDIN em newfile - **more** **newfile** - Exibe o conteúdo do newfile em partes - **head** **newfile** - Gera as 10 primeiras linhas do newfile - **tail** **newfile** - Gera as últimas 10 linhas do newfile - **gpg** **-c** **newfile -** Criptografa o newfile no formato gpg com uma frase secreta e o armazena no mesmo diretório\ - **gpg** **gpg** - Descriptografa o arquivo - **wc** **newfile** - Imprime o número de bytes, palavras e linhas do newfile - - ## Permissões de arquivo/diretório - **chmod** **777 /root/ssh** - Configura permissões rwx (leitura, gravação, execução) para o arquivo ssh para todos que têm acesso ao servidor (proprietário, grupo, outros) - **chmod** **755 /root/ssh - **Configura as permissões rwx para o proprietário e r_x para o grupo e outros - **chmod** **766** **/root/ssh** - Configura as permissões rwx para o proprietário e rw para o grupo e outros - **chown** **newuser** **newfile -** Altera o proprietário do newfile para newuser - **chown** **newuser:newgroup newfile** - Altera o proprietário e o proprietário do grupo do newfile para newuser e newgroup - **chown** **newuser:newgroup** **newfolder** - Altera o proprietário e o proprietário do grupo do diretório newfolder para newuser e newgroup - **stat -c "%U %G" newfile** - exibe o usuário newfile e os proprietários do grupo ## Pesquisa - **grep** **searchargument newfile -** procura o searchargument em newfile - **grep** **-r searchargument newfolder** - Procura recursivamente em todos os arquivos em newfolder pelo searchargument - **locate** **newfile** - Mostra todos os locais do newfile - **find** **/etc/ -name "searchargument"** - Localiza arquivos com um nome que começa com searchargument no diretório /etc - **find** **/etc/ -size +50000k** - Localiza arquivos maiores que 50000k no diretório /etc ## Arquivamento - **tar** **-cf archive.tar newfile -** Cria o arquivo 'archive.tar' a partir do arquivo 'newfile' - **tar** **-xf archive.tar - **Desempacotar o arquivo 'archive.tar' - **tar** **-zcvf archive.tar.gz** **/var/log/** - Cria arquivo a partir do diretório /var/log - **gzip newfile** - Comprime o newfile (ele terá uma extensão .gz) ## Instalação a partir de pacotes - **rpm -i pkg_programa.rpm** - Instala o pacote rpm (CentOS, RHEL...) - **rpm** **-e pkg_name** - Remove o pacote rpm (CentOS, RHEL...) - **dnf** **install pkg_name -** Instala o pacote com o dnf a partir do repositório. Anteriormente, o YUM era usado, mas recentemente o YUM foi substituído pelo DNF. (CentOS, RHEL...) - **dpkg** **-i pkg_name** - Instala a partir de um pacote deb (Debian, Ubuntu, Mint...) - **dpkg** **-r pkg_name** - Remove o pacote deb (Debian, Ubuntu, Mint...) - **apt** **install pkg_name - **Instala o pacote do repositório (Debian, Ubuntu, Mint...) - **apt remove pkg_name -**Remove o pacote (Debian, Ubuntu, Mint...) - **apt** **upgrade && apt update** - Atualiza pacotes em seu sistema (Debian, Ubuntu, Mint...) e atualiza os repositórios depois disso ## Processos - **ps** - Exibe os processos em execução no momento - **ps** **aux | grep 'bash' -** Localiza o ID do processo 'bash' - **pmap -x 11** - Mapeia o processo com PID = 11 na memória do processo - **top** - Mostra todos os processos em execução - **kill** **pid** - Finaliza o processo por pid - **killall** **process** - Finaliza todos os processos com o nome "process" - **pkill** **nome do processo** - Envia sinal para um processo - **bg** - Envia um processo pausado para execução em segundo plano - **fg** - Tira um processo em execução do segundo plano - **fg** **process** - Retira o processo denominado "processo" do segundo plano - **lsof** - Listas de arquivos que os processos usam - **renice** **19 PID** - Define a prioridade mais baixa do processo - **pgrep** **bash ** - localiza o ID do processo bash - **pstree** - Mostra a exibição em árvore dos processos ## Sistema - **uname - **Mostra informações do sistema - **uname** **-r** - Mostra informações sobre o kernel do Linux - **uptime** - Há quanto tempo o sistema está sendo executado e a média de carga - **hostname** - Mostra o nome do host - **hostname** -i - Mostra o endereço IP do host - **último** **reboot** - Mostra o histórico de reinicializações - **date** - Mostra a data e a hora - **timedatectl** - Emite e altera a data e a hora - **cal** - Exibe o calendário - **w** - Exibe os usuários que estão trabalhando no sistema - **whoami** - Exibe seu nome de usuário - **finger** **root** - Mostra informações do usuário root (precisa ser instalado com "apt-get install finger") ## Hardware - **dmesg** - Exibe as mensagens do sistema na inicialização - **cat /proc/cpuinfo** - Mostra informações da CPU - **cat** **/proc/meminfo** - Mostra informações sobre a RAM - **lshw** - Mostra informações de hardware - **lsblk** - Mostra informações sobre o disco rígido - **free** **-m** - Libera a memória: RAM e swap (opção -m em MB) - **lspci** **-tv** - Mostra informações sobre dispositivos PCI na exibição em árvore - **lsusb** -**tv** - Exibe dispositivos USB em uma visualização em árvore. - **dmidecode -** Mostra informações do dispositivo BIOS - **hdparm** **-i /dev/xda -** Mostra informações sobre o disco - **hdparm** **-tT /dev/xda -** Mostra a velocidade de leitura e gravação de xda - **badblocks** **-s /dev/xda -** Mostra o teste de badblocks ## Usando o disco - **df** **-h** - Mostra o espaço livre nas partições montadas (em bytes) - **df** **-i** - Mostra os inodes livres no sistema de arquivos - **fdisk** **-l** - Mostra informações do disco, da partição e do sistema de arquivos - **du** -**sh** - Exibe o espaço não alocado em partições montadas em MB, GB, TB - **findmnt** - Exibe todos os pontos de montagem - **mount** **/dev/sdb1 /mnt** - Monta a partição 1 do disco sdb em /mnt ## Rede - **ip** **addr show** - Mostra os endereços IP de todas as interfaces de rede disponíveis - **ip** **address add 192.168.0.1/24 dev eth0** - Atribui o endereço 192.168.0.1 à eth0 - **ifconfig** - Mostra os endereços IP de todas as interfaces de rede disponíveis - **ping** **168.0.1** - Envia uma solicitação de eco ICMP para se conectar ao host em 192.168.0.1 - **whois** **domínio** - Mostra informações sobre o nome do domínio - **dig** **domínio** - Obtém informações de DNS sobre um domínio - **dig** **-x 192.168.0.1** - Inverte a resolução de nomes - **host** **us -** Mostra a resolução do endereço do host - **hostname** **-I** - Mostra endereços locais - **wget** **nome_do_arquivo** - Faz o download de um arquivo - **netstat** **-pnltu** - Mostra todas as portas que estão sendo ouvidas no host (precisa de "apt-get install net-tools") ## Conexão remota - **ssh** **root@host** - Conecta-se a um host remoto via ssh como root - **ssh** **-p port_number user@host** - Conecta-se ao host remoto se for usada uma porta ssh diferente de 22 - **ssh** **host** - Usa a conexão padrão como o usuário atual - **telnet** **host** - Usa a conexão telnet (porta 23) https://serverspace.com.br/support/help/how-to-backup-linux-server-with-veeam-agent.md Este tutorial mostrará como fazer backup do seu servidor Linux facilmente em um compartilhamento de rede ou localmente usando o agente de backup da Veeam. Em nosso exemplo, usaremos o sistema operacional Ubuntu 20.04. Portanto, você precisa fazer o download do software do agente Veeam aqui [Veeam Software for Enterprise](https://www.veeam.com/linux-backup-download.html?ad=in-text-link) e copiar o arquivo deb no computador Ubuntu onde planeja instalar o agente. ## Instalação do agente da Veeam Vá para o diretório onde você salvou o pacote veeam-release e instale o pacote com os seguintes comandos para Debian/Ubuntu ``` dpkg -i ./veeam-release* && apt-get update ``` E apenas execute a instalação do pacote ```bash sudo apt-get install veeam -y ``` Após a conclusão da instalação, basta executar ``` veeam ``` e o gui do agente Veeam será iniciado. ## Configuração do Veeam Agent Fazer o backup com o Veeam Agent para Linux é muito fácil. Não há muitas opções para escolher, portanto, você pode verificá-las por si mesmo. No nosso caso, farei um backup completo de todo o sistema e o moverei para um compartilhamento samba. Portanto, vamos criar uma tarefa para fazer o backup do nosso servidor em nosso storage usando smb. ``` veeam ``` Imediatamente somos solicitados a especificar o arquivo de licença. Como não temos uma licença, recusamos. Somos recebidos pela janela principal do programa. Pressione C (configurar) para configurar uma tarefa de backup. Damos um nome para o trabalho e escolhemos que queremos fazer o backup da máquina inteira. Como destino para o backup do sistema, selecionamos Shared Folder (Pasta compartilhada). Em seguida, você precisará inserir os parâmetros de acesso ao local do backup. No meu exemplo, compartilhei uma pasta em um servidor Windows, portanto, escolhi o compartilhamento SMB. O item Pontos de restauração especifica a profundidade do arquivo. Esse é o número de cópias que você deseja manter no servidor. Se você fizer um backup todos os dias e especificar 14, os backups do sistema dos últimos 14 dias serão preservados. Se o backup for feito em dias alternados, então serão preservados 28 dias, e assim por diante. Você pode criar várias tarefas com diferentes profundidades de backup. Por exemplo: todos os dias, 7 backups, uma vez por semana, 4, e uma vez por mês, 12. Dessa forma, você sempre terá os últimos 7 backups do sistema para aquela semana. Em seguida, um backup por semana para o último mês e 12 backups por mês para o último ano. Pressione Enter para continuar Opções avançadas desativadas por padrão na versão gratuita, mas se você tiver uma licença, recomendo criptografar o backup. Pressione Enter para continuar e ver o cronograma de backup; na versão gratuita, você também não pode editar isso. Pressione Enter e dê o peixe. O backup será iniciado o mais rápido possível. Se você receber um erro: O sistema atual não é compatível com o cifs. Instale o pacote do cliente cifs. Instale o pacote do cliente cifs: ```bash sudo apt-get install cifs-utils ``` Reinicie o veeam e continue. Agora você iniciou o processo de backup. Você pode monitorar seu progresso. Se você receber um erro informando que a criação do instantâneo falhou Tente o seguinte: Precisamos nos aprofundar na causa raiz, portanto, vamos para a pasta de registro de backup do VEEAM /var/log/veeam/Backup Navegue até o registro de trabalho e abra-o com um editor de texto, por exemplo, nano. Descobrimos que o modeprobe falhou ao carregar o módulo veeamsnap Para isso, precisamos instalar o linux-headers primeiro, basta verificar a versão do seu kernel : ``` uname -r ``` E instale os cabeçalhos linux corretos ```bash sudo apt-get install linux-headers-5.4.0.-74-generic -y ``` E agora precisamos carregar o veeamsnap: ``` modprobe veeamsnap ``` Execute o veeam novamente e pressione S. Ele deve funcionar agora Depois de concluir um backup do sistema, você pode verificar o conteúdo da unidade compartilhada acessando-a diretamente do Windows. Isso conclui a configuração de um backup completo do servidor. O backup do sistema está agora em um local seguro. https://serverspace.com.br/support/help/adding-a-volume-and-creating-partitions-in-freebsd.md Este guia mostrará como montar novos volumes e criar partições em servidores virtuais com a família de sistemas operacionais FreeBSD. Depois de adicionar um volume no painel de controle, é necessário torná-lo disponível no sistema operacional. [step num="1"] Faça logon no servidor como sudo ou root e procure todos os volumes, execute o seguinte comando: [/step] ``` geom disk list ``` Exemplo: ```yaml Geom name: vtbd0 Providers: Name: vtbd0 Mediasize: 26843545600 (25G) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r1w1e3 descr: (null) ident: BHYVE-72B8-3EC6-7459 rotationrate: unknown fwsectors: 0 fwheads: 0 Geom name: vtbd1 Providers: Name: vtbd1 Mediasize: 42949672960 (40G) Sectorsize: 512 Stripesize: 4096 Stripeoffset: 0 Mode: r0w0e0 descr: (null) identr: BHYVE-679A-4260-62AE rotationrate: unknown fwsectors: 0 fwheads: 0 ``` Este tutorial mostrará como montar o dispositivo /dev/vtbd1 de 40 GB como uma partição ufs (Unix Fast File System) padrão e como adicionar uma partição swap. Observação: se o volume adicionado não aparecer na lista, será necessário reiniciar o servidor. [step num="2"] Crie um volume particionado GPT com o comando: [/step] ``` gpart create -s gpt /dev/vtbd1 ``` Observação: GPT é um formato de tabela de partição GUID que usa um sistema de endereçamento de bloco lógico (LBA). [step num="3"] Para visualizar o volume, execute o comando: [/step] ``` gpart show vtbd1 ``` ``` => 40 83886000 vtbd1 GPT (40G) 40 83886000 - free - (40G) ``` Exemplo 1 [step num="4"] Para adicionar a primeira partição de 10 GB, use o comando: [/step] ``` gpart add -t freebsd-ufs -s 10G /dev/vtbd1 ``` ``` vtbd1p1 added ``` Este exemplo adicionará a segunda partição de 20 GB: ``` gpart add -t freebsd-ufs -s 20G /dev/vtbd1 ``` ``` vtbd1p2 added ``` [step num="5"] A terceira partição pode ser adicionada sem especificar um LBA e um tamanho iniciais, portanto, ela será criada em todo o espaço disponível: [/step] ``` gpart add -t freebsd-ufs /dev/vtbd1 ``` ``` vtbd1p3 added ``` [step num="6"] Para verificar as partições resultantes: [/step] ``` gpart show vtbd1 ``` ``` => 40 83886000 vtbd1 GPT (40G) 40 20971520 1 freebsd-ufs (10G) 20971560 41943040 2 freebsd-ufs (20G) 62914600 20971440 3 freebsd-ufs (10G) ``` [step num="7"] Para criar um sistema de arquivos em partições de volume, execute os seguintes comandos. A opção -U especifica o uso do mecanismo Soft Update, que aumenta a velocidade de criação e exclusão de arquivos: [/step] ``` newfs -U /dev/vtbd1p1 newfs -U /dev/vtbd1p2 newfs -U /dev/vtbd1p3 ``` [step num="8"] Em seguida, você precisa criar um ponto de montagem para cada partição: [/step] ``` mkdir /mnt/volume1 mkdir /mnt/volume2 mkdir /mnt/volume3 ``` [step num="9"] Para alterar o modo de acesso das partições, você precisa executar o seguinte comando: [/step] ```bash chmod -R 660 /mnt/volume1 chmod -R 660 /mnt/volume2 chmod -R 660 /mnt/volume3 ``` [step num="10"] Para montar as partições automaticamente após a reinicialização do servidor, é necessário fazer alterações no arquivo /etc/fstab. Use um editor de texto como o vi ou o nano para abrir esse arquivo: [/step] ``` vi /etc/fstab ``` No arquivo aberto, você precisa adicionar as seguintes linhas e salvar as alterações: ``` /dev/vtbd1p1 /mnt/volume1 ufs rw 0 0 /dev/vtbd1p2 /mnt/volume2 ufs rw 0 0 /dev/vtbd1p3 /mnt/volume3 ufs rw 0 0 ``` Para montar partições, use: ``` mount -a ``` [step num="11"] Para exibir a lista de dispositivos montados e o espaço ocupado, use o comando: [/step] ``` df -h ``` ``` Filesystem Size Used Avail Capacity Mounted on ... /dev/vdbd1p1 9.7G 8.0K 8.9G 0% /mnt/volume1 /dev/vdbd1p2 19G 8.0K 18G 0% /mnt/volume2 /dev/vdbd1p3 9.7G 8.0K 8.9G 0% /mnt/volume3 ``` Exemplo 2 (adição de uma partição swap) [step num="12"] Primeiro, precisamos adicionar uma partição swap de 1 GB: [/step] ``` gpart add -t freebsd-swap -s 1G /dev/vtbd1 ``` ``` vtbd1p1 added ``` A segunda partição pode ser adicionada sem especificar um LBA e um tamanho iniciais, portanto, ela será criada em todo o espaço livre: ``` gpart add -t freebsd-ufs /dev/vtbd1 ``` ``` vtbd1p2 added ``` [step num="13"] Para verificar as partições resultantes: [/step] ``` gpart show vtbd1 ``` ``` => 40 83886000 vtbd1 GPT (40G) 40 2097152 1 freebsd-swap (1.0G) 2097192 81788848 2 freebsd-ufs (39G) ``` [step num="14"] Para criar um sistema de arquivos nas partições de volume, execute o seguinte comando. A opção -U especifica o uso do mecanismo Soft Update, que acelera a criação e a exclusão de arquivos: [/step] ``` newfs -U /dev/vtbd1p2 ``` Observação: a partição de troca não precisa ser formatada. [step num="15"] Em seguida, você precisa criar um ponto de montagem para cada partição, exceto a swap: [/step] ``` mkdir /mnt/volume1 ``` [step num="16"] Para alterar o modo de acesso das partições, você precisa executar o seguinte comando: [/step] ```bash chmod -R 660 /mnt/volume1 ``` [step num="17"] Para montar as partições automaticamente após a reinicialização do servidor, é necessário fazer alterações no arquivo /etc/fstab. Use um editor de texto como o vi ou o nano para abrir esse arquivo: [/step] ``` vi /etc/fstab ``` [step num="18"] Você precisa adicionar as seguintes linhas e salvar suas alterações: [/step] ``` /dev/vtbd1p1 none swap sw 0 0 /dev/vtbd1p2 /mnt/volume1 ufs rw 0 0 0 ``` [step num="19"] Use o seguinte comando para montar as partições: [/step] ``` mount -a ``` [step num="21"] Em seguida, você precisa montar a partição swap: [/step] ``` swapon /dev/vtbd1p1 ``` Você pode usar o comando swapinfo para verificar se a partição foi montada com êxito: ``` swapinfo ``` ``` Device 1K-blocks Used Avail Capacity /dev/vtbd1p1 1048576 0 1048576 0% ``` [step num="22"] Use esse comando para exibir uma lista de dispositivos montados e o espaço ocupado: [/step] Observação: a partição do tipo swap não é exibida nessa lista. ``` df -h ``` ``` Filesystem Size Used Avail Capacity Mounted on ... /dev/vdbd1p2 38G 8.0K 35G 0% /mnt/volume ``` https://serverspace.com.br/support/help/how-to-add-a-volume-and-create-partitions-for-linux-systems.md Esta instrução o ajudará a montar novos volumes e criar partições em servidores virtuais com sistemas operacionais Linux. [step num="1"] Depois de adicionar um volume no painel de controle, é necessário torná-lo disponível no sistema operacional. Conecte-se ao servidor com privilégios sudo e visualize todos os volumes. Digite o seguinte comando: [/step] ``` fdisk -l ``` Exemplo de resultado: ```yaml Disk /dev/vda: 25 GiB, 26843545600 bytes, 52428800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: 775D7B55-7C02-4DAE-AC79-B81AAA1BECE3 Device Start End Sectors Size Type /dev/vda1 2048 104447 102400 50M EFI System /dev/vda2 104448 52428766 52324319 25G Linux filesystem Disk /dev/vdb: 40 GiB, 42949672960 bytes, 83886080 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes ``` [step num="2"] Esta instrução descreverá como montar o dispositivo de armazenamento /dev/vdb de 40 GB adicionado e particioná-lo em três volumes: - 1 partição primária, 10 GB - 1 partição estendida, 30 GB - 1 partição lógica dentro da partição estendida, 20 GB [/step] [step num="3"] Somente 4 partições primárias podem ser criadas em um único disco rígido físico. Uma partição estendida é um tipo especial de partição que contém "espaço livre" onde podem ser criadas mais de quatro partições primárias. As partições criadas em uma partição estendida são chamadas de partições lógicas. Execute o utilitário fdisk para criar partições: [/step] ``` fdisk /dev/vdb ``` [step num="4"] Para adicionar uma nova partição, use o comando n: [/step] ``` Command (m for help): n ``` Tipo de partição: ``` p primary (0 primary, 0 extended, 4 free) ``` ``` e extended ``` Use a opção p para selecionar o tipo primário: ```sql Select (default p): p ``` Observação: pressione Enter para selecionar os valores padrão. ``` Type in the partition number: ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_8__ Digite o primeiro setor: ``` First sector (2048-83886079, default 2048): 2048 ``` Digite o último setor: ``` Last sector, +sectors or +size{K, M, G} (2048-83886079, default 83886079): +10G ``` [step num="5"] Em seguida, você precisa adicionar uma partição estendida (adicional) selecionando a opção **e**: [/step] ``` Command (m for help): n ``` ``` Partition type: ``` ``` p primary (1 primary, 0 extended, 3 free) ``` ``` e extended ``` ```sql Select (default p): e ``` Defina o número da partição: ``` Partition number (2-4, default 2): 2 ``` [step num="6"] Para que o tamanho da segunda partição ocupe todo o espaço restante em disco, você pode deixá-lo no valor padrão pressionando Enter: [/step] ``` First sector (2099200-83886079, default 2099200): ``` ``` Last sector, +sectors or +size{K, M, G} (2099200-83886079, default 83886079): ``` [step num="7"] Em seguida, você precisa criar uma partição lógica dentro da partição estendida (a partição lógica será definida automaticamente). Para fazer isso, digite o comando **n** no utilitário **fdisk** e, em seguida, selecione a partição lógica usando a opção **l**: [/step] ``` Command (m for help): n ``` ``` Partition type: ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_21__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_22__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_23__ Defina o início do setor por padrão e pressione Enter: ``` First sector (2101248-83886079, default 2101248): ``` [step num="8"] Digite o último setor de acordo com o tamanho desejado da partição lógica: [/step] ``` Last sector, +sectors or +size{K, M, G} (2101248-83886079, default 83886079): +20G ``` Para exibir as partições adicionadas, use o comando **p**: ``` Command (m for help): p ``` ``` Device Boot Start End Sectors Size Id Type ``` ``` /dev/vdb1 2048 20973567 20971520 10G 83 Linux ``` ``` /dev/vdb2 20973568 83886079 62912512 30G 5 Extended ``` ``` /dev/vdb5 20975616 62918655 41943040 20G 83 Linux ``` **Observação: **A partição estendida tem 10 GB de espaço livre onde você pode criar mais partições lógicas. Use o comando **w** para salvar suas alterações: ``` Command (m for help): w ``` Agora, crie um sistema de arquivos na partição primária e lógica usando o utilitário **mkfs**, especificando o tipo de sistema de arquivos após o ponto. ``` mkfs.ext4 /dev/vdb1 ``` ``` mkfs.ext4 /dev/vdb5 ``` **Observação:** a partição estendida não pode ser formatada com sistemas de arquivos como **ext3**, **FAT** ou **NTFS** e não pode conter dados diretamente. Em seguida, é necessário criar um ponto de montagem para cada partição: **Nota:** - Normalmente, o ponto de montagem é criado nos diretórios /mnt ou /media; - Não é necessário criar um ponto de montagem para uma partição estendida. ``` mkdir /mnt/volume1 ``` ``` mkdir /mnt/volume2 ``` [step num="9"] Para alterar o modo de acesso das partições, você deve executar o seguinte comando: [/step] ```bash chmod -R 660 /mnt/volume1 ``` ```bash chmod -R 660 /mnt/volume2 ``` [step num="10"] Para montar as partições automaticamente após a reinicialização do servidor, faça alterações no arquivo **/etc/fstab**. Use um editor de texto como o nano ou o vi para abrir esse arquivo: [/step] ``` nano /etc/fstab ``` [step num="11"] Adicione as seguintes linhas ao arquivo que será aberto e salve as alterações: [/step] ``` /dev/vdb1 /mnt/volume1 ext4 defaults 0 0 ``` ESPAÇO RESERVADO DO BLOCO DE CÓDIGO_40__ [step num="12"] Para montar partições, use: [/step] ``` mount -a ``` [step num="13"] Para imprimir a lista de dispositivos montados e o espaço ocupado, use o comando: [/step] ``` df -h ``` ``` Filesystem Size Used Avail Use% Mounted on ``` ``` ... ``` ``` /dev/vdb1 9.8G 37M 9.3G 1% /mnt/volume1 ``` ``` /dev/vdb5 20G 45M 19G 1% /mnt/volume2 ``` https://serverspace.com.br/support/help/how-to-manage-groups-in-ad-part-2-managing-members-in-a-group.md Este tutorial mostrará como gerenciar a associação de grupos no domínio do Active Directory usando o ADUC, o ADAC e o Microsoft Windows Powershell. Nas florestas comuns do AD, os grupos controlam a autorização para dados confidenciais. Os grupos podem distribuir conteúdo ou ajudar a dar acesso a arquivos, serviços ou até mesmo à delegação do AD. Após a instalação, você terá vários grupos incorporados, como o grupo Domain Admins ou Account Operators. O Active Directory Users and Computers (ADUC) e o Active Directory Administrative Center (ADAC) são programas que fornecem uma interface gráfica para interagir com grupos e ajudar a gerenciá-los. O ADAC difere do ADUC pelo fato de ter o Histórico do PowerShell, que permite ver os cmdlets do PowerShell por trás da GUI. Para gerenciar grupos, é necessário fazer login em um DC, em um servidor com união de domínio ou em um dispositivo com o Remote Server Administration Tools (RSAT) instalado. Quanto ao nível de acesso, você precisa ter uma conta de administrador de domínio, a conta Account Operators ou ter direitos para criar grupos em determinadas UOs por meio de delegação. # Gerenciando membros de um grupo É possível gerenciar os membros de um grupo de várias maneiras: ## Gerenciando a associação ao grupo via ADUC ### Adicionando um usuário a um grupo Abra o ADUC (dsa.msc). Vá para a UO onde reside o usuário necessário. No menu Ação, selecione Find.... No campo Nome, digite o nome do usuário que deseja adicionar a um grupo e pressione Enter. Clique com o botão direito do mouse no objeto de usuário necessário e selecione "Adicionar a um grupo..." no menu. Na janela "Select Groups" (Selecionar grupos), digite o nome do grupo necessário; caso contrário, clique no botão "Advanced" (Avançado) para procurar o grupo necessário. Clique em "Check Names" (Verificar nomes). Clique em OK para adicionar o usuário ao grupo. ### Removendo um usuário de um grupo No menu Action (Ação), selecione "Find..." (Localizar...). No "Campo de nome", digite o nome do grupo necessário e pressione Enter. Clique com o botão direito do mouse no grupo e selecione Propriedades. Vá para a guia "Members" (Membros). Na janela "Propriedades do grupo", selecione o usuário que precisa ser removido e clique em Remover. Clique em Yes na janela de confirmação. Clique em OK e pronto. ## Realizar alterações na associação de grupos via ADAC ### Adicionar um usuário a um grupo Para adicionar um usuário a um grupo usando o ADAC no painel de navegação esquerdo, alterne para a visualização em árvore. Vá para a UO ou o contêiner em que o usuário reside. Use a Pesquisa global para localizar o usuário necessário. Digite o nome do objeto do usuário no campo de pesquisa e pressione Enter. Na lista de resultados da Pesquisa global, clique com o botão direito do mouse no objeto do usuário e selecione Adicionar ao grupo... Na janela Select Groups (Selecionar grupos), digite o nome do grupo ao qual deseja adicionar a conta de usuário. Clique em "Check Names" (Verificar nomes). Clique em OK para concluir a adição do usuário. ### Removendo um usuário de um grupo Para remover um usuário de um grupo, acesse a UO ou o contêiner em que o grupo reside. Em Global Search (Pesquisa global), digite o nome do grupo e pressione Enter. Na lista de resultados da Pesquisa global, selecione o grupo. Clique com o botão direito do mouse e selecione Propriedades na lista. No painel de navegação esquerdo, clique em Members, conforme mostrado na captura de tela a seguir: Na seção Members (Membros), selecione o usuário necessário e clique em Remove (Remover), e o usuário será removido sem nenhuma janela de confirmação. ## Usando o Windows PowerShell Use o seguinte cmdlet para adicionar um usuário a um grupo: ``` Import-Module ActiveDirectory ``` Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul" Use as seguintes linhas de código do PowerShell para remover um usuário de um grupo no Active Directory: ``` Import-Module ActiveDirectory ``` ``` Remove-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul" ``` Digite "y" para confirmar sua ação de remoção. . https://serverspace.com.br/support/help/how-to-manage-groups-in-ad-part-1-creating-and-deleting-groups.md Neste tutorial, você aprenderá a criar, alterar e excluir grupos no domínio do Active Directory usando o ADUC, o ADAC e o Windows Powershell. Nas florestas comuns do AD, os grupos controlam a autorização para dados confidenciais. Os grupos podem distribuir conteúdo ou ajudar a dar acesso a arquivos, serviços ou até mesmo à delegação do AD. Após a instalação, você terá vários grupos incorporados, como o grupo Domain Admins ou Account Operators. O Active Directory Users and Computers (ADUC) e o Active Directory Administrative Center (ADAC) são programas que fornecem uma interface gráfica para interagir com grupos e ajudar a gerenciá-los. O ADAC difere do ADUC pelo fato de ter o Histórico do PowerShell, que permite ver os cmdlets do PowerShell por trás da GUI. Para gerenciar grupos, é necessário fazer login em um DC, em um servidor com união de domínio ou em um dispositivo com o Remote Server Administration Tools (RSAT) instalado. Quanto ao nível de acesso, você precisa ter uma conta de administrador de domínio, a conta Account Operators ou ter direitos para criar grupos em determinadas UOs por meio de delegação. ## Escopos de grupo Há três escopos de grupo: - Grupos globais - Grupos universais - Grupos locais de domínio Ao decidir qual grupo criar, você precisa saber quais são os tipos de grupo e como eles diferem. Os grupos globais e os grupos universais podem ser aninhados em grupos locais de domínio e os grupos globais podem ser aninhados em grupos universais. Portanto, é muito comum a criação de grupos globais para departamentos, grupos universais para grupos de distribuição e grupos locais de domínio para direitos de acesso. ## Tipos de grupos Há dois tipos de grupos: - Grupos de distribuição - Grupos de segurança Os grupos de distribuição não têm um identificador de segurança (SID) e, portanto, não podem ser usados para permitir o acesso a recursos, exceto aos recursos do Microsoft Exchange Server. Por outro lado, os grupos de segurança têm SIDs. É possível converter um grupo de distribuição em um grupo de segurança e vice-versa. # Como criar um grupo Há vários métodos para criar um grupo. ## Criando um grupo com o ADUC [step num="1"] Abra o ADUC (dsa.msc). Navegue até a UO ou o contêiner onde você deseja criar o grupo. Clique com o botão direito do mouse na UO ou no contêiner em que deseja criar um novo grupo e selecione New-> Group. [/step] Na tela Novo objeto - Grupo, especifique os seguintes valores: - Especifique o Nome do Grupo. - Especifique o escopo do grupo ou aceite o escopo global padrão. - Especifique o tipo de grupo ou aceite o tipo de segurança padrão. Clique em OK para criar o grupo. ## Criando um grupo com o ADAC [step num="2"] Abra o ADAC (dsac.exe). Clique com o botão direito do mouse no nome do domínio e selecione New->Group no menu. [/step] Na tela Criar grupo, especifique os seguintes valores: - Especifique o nome do grupo - Especifique o escopo do grupo ou aceite o escopo global padrão . - Especifique o tipo de grupo ou aceite o tipo de segurança padrão. Clique em OK para criar o grupo. ## Criando um grupo usando o prompt de comando [step num="3"] Use o seguinte comando cmd.exe para criar um grupo no AD: [/step] ``` dsadd.exe group "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" ``` ## Criando um grupo usando o Windows PowerShell [step num="4"] Use o seguinte código do PowerShell: [/step] ``` Import-Module ActiveDirectory ``` ``` New-ADGroup -GroupCategory Security -GroupScope Global -Name "ITGroup" -Path "OU=OfficeCorp,DC=office,DC=local" -SamAccountName "ITGroup ``` # Como excluir um grupo no AD Aqui estão vários métodos para fazer isso. ## Excluindo um usuário usando o ADAC [step num="5"] Abra o ADUC (dsa.msc). Execute estas ações: [/step] Navegue até a UO ou o contêiner onde reside o grupo que você pretende excluir. No menu Action (Ação), selecione Find.... No campo Name (Nome), digite o nome do grupo que você pretende excluir e clique em Find Now (Localizar agora). Na lista de resultados da pesquisa, selecione o grupo. Clique com o botão direito do mouse no grupo e selecione Excluir na lista. Clique em Yes (Sim) na janela de confirmação. ## Excluindo um grupo com o ADAC [step num="6"] Abra o ADAC (dsac.exe). Execute uma destas séries de ações: Navegue até a UO ou o contêiner onde reside o grupo que você pretende excluir. No painel do menu principal, em Pesquisa global, digite o nome do grupo que você pretende excluir e pressione Enter. Na lista de resultados da Pesquisa global, selecione o grupo. Desta vez, clique com o botão direito do mouse no grupo e selecione Excluir na lista. Clique em Yes na janela pop-up de confirmação de exclusão. [/step] ## Excluindo um grupo usando o prompt de comando [step num="7"] Use o seguinte comando para excluir um grupo no Active Directory: [/step] ``` dsrm.exe "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" ``` Digite "y" para confirmação e pressione Enter. ## Excluindo um grupo usando o Windows PowerShell [step num="8"] Use o seguinte código do PowerShell: [/step] ``` Import-Module ActiveDirectory ``` ``` Remove-ADObject -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" ``` Digite "y" para confirmação e pressione Enter. . https://serverspace.com.br/support/help/how-to-backup-windows-server-with-veeam-backup-agent.md Aqui estão as instruções passo a passo sobre como fazer facilmente um backup de seu servidor Windows usando o agente de backup da Veeam. Os backups são sempre importantes para todas as organizações, especialmente agora que enfrentamos ataques de ransomware todos os dias. Aqui estão as instruções sobre como fazer facilmente um backup de seu servidor Windows usando o Veeam Agent. ## Baixando e instalando o Veeam Backup Agent Primeiro, precisamos baixar o agente de backup da Veeam do site oficial, aqui está o link para download: [https://www.veeam.com/windows-endpoint-server-backup-free.html](https://www.veeam.com/windows-endpoint-server-backup-free.html) Após a conclusão do download, precisamos instalar esse software. Para isso, você precisará de direitos de administrador. Descompacte o Veeam Agent Windows e execute-o. Aceite todos os termos e prossiga para a instalação. A instalação é simples e será concluída automaticamente. Ignorar o destino de backup removível E na janela seguinte, clique em **Finish ** ## Criação de mídia de recuperação Agora, precisamos criar uma mídia de recuperação, manter todas as coisas por padrão e clicar em **Next** **** Selecione um caminho onde deseja armazenar essa mídia, você pode usar o armazenamento local ou de rede para isso; no meu caso, vou salvá-la na unidade local, clique em **Next** e **Create**. Aguarde até que a criação da imagem seja concluída, pois isso levará algum tempo. Clique em **Finish** e abra o **Veeam Agent** na bandeja do Windows. ## Configuração do Veeam Backup Agent Ele solicitará a instalação de um arquivo de licença, clique em **Não** e depois em "**Adicionar novo trabalho**". O assistente será aberto. Primeiro você precisa especificar o nome da tarefa e clicar em **Next**. Depois disso, precisamos selecionar o tipo de backup. Em nosso exemplo, farei um backup completo do **computador inteiro**. Clique em **Next** e escolha o destino do backup; neste exemplo, faremos um backup para o **drive compartilhado**. A opção "Manter backups por 7 dias" especifica a profundidade do arquivo. Esse é o número de dias em que você deseja manter os backups no servidor. Se você fizer um backup todos os dias e especificar 8, os backups do sistema dos últimos 8 dias serão preservados. Se você fizer backup em dias alternados, então serão 4 dias, e assim por diante. Você pode criar várias tarefas com diferentes profundidades de backup. Por exemplo: todos os dias, 7 dias, uma vez por semana, 30, e uma vez por mês, 365. Dessa forma, você sempre terá os últimos 7 backups do sistema para aquela semana. Em seguida, um backup por semana para o último mês e 12 backups por mês para o último ano. Clique em **Advanced** para adicionar algumas configurações extras, você precisa ir para a guia **Storage** e ativar a **criptografia de backup**: Crie, digite e salve uma senha forte em seu gerenciador de senhas. Clique em **Ok** e, em seguida, em **Next**. Agora precisamos configurar o **Schedule**; neste exemplo, farei apenas um backup. Portanto, desmarco a opção diária. Clique em **Aplicar**, verifique o resumo e marque a opção "**Executar a tarefa quando eu clicar em Concluir**". E clique em **Finish**. O backup começará em breve, e podemos verificar seu status completo clicando na tarefa e depois em "**Processing**" Após a conclusão da tarefa, podemos visualizar nosso backup em nossa unidade de rede: https://serverspace.com.br/support/help/how-to-manage-groups-in-ad-part-3-managing-expiring-groups-and-viewing-nested-group.md Este guia o ajudará a criar e gerenciar a associação de grupos que estão expirando no AD, e você também descobrirá como obter uma lista de grupos aninhados. Nas florestas comuns do AD, os grupos controlam a autorização para dados confidenciais. Os grupos podem distribuir conteúdo ou ajudar a dar acesso a arquivos, serviços ou até mesmo à delegação do AD. Após a instalação, você terá vários grupos incorporados, como o grupo Domain Admins ou Account Operators. O Active Directory Users and Computers (ADUC) e o Active Directory Administrative Center (ADAC) são programas que fornecem uma interface gráfica para interagir com grupos e ajudar a gerenciá-los. O ADAC difere do ADUC pelo fato de ter o Histórico do PowerShell, que permite ver os cmdlets do PowerShell por trás da GUI. Para gerenciar grupos, é necessário fazer login em um DC, em um servidor com união de domínio ou em um dispositivo com o Remote Server Administration Tools (RSAT) instalado. Quanto ao nível de acesso, você precisa ter uma conta de administrador de domínio, a conta Account Operators ou ter direitos para criar grupos em determinadas UOs por meio de delegação. ## Gerenciando a expiração das associações de grupos As associações de grupos podem ser configuradas para expirar. Para usar a opção de expiração de associação de grupo, o FFL do Active Directory precisa ser, no mínimo, o Windows Server 2012 R2. O recurso Privileged Access Management precisa estar ativado. Isso pode ser feito usando as seguintes linhas do PowerShell em um sistema com o Módulo do Active Directory para Windows PowerShell instalado: ``` Import-Module ActiveDirectory ``` ``` Enable-ADOptionalFeature "Privileged Access Management Feature" -Scope ForestOrConfigurationSet -Target office.local ``` Digite "y" para confirmar essa ação. Observe que esse recurso é irreversível e não pode ser desativado. Definir associações de grupos que estão expirando por meio do Windows PowerShell. Normalmente, para adicionar um objeto de usuário a um grupo, você usaria as seguintes linhas do PowerShell: ``` Import-Module ActiveDirectory ``` ``` Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul" ``` No entanto, para adicionar um usuário com uma associação de grupo expirada a um grupo, é necessário usar as seguintes linhas do PowerShell em um sistema com o Módulo do Active Directory para Windows PowerShell instalado: ``` Import-Module ActiveDirectory ``` ``` Add-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Members "GSoul" -MemberTimeToLive (New-TimeSpan -Days 14) ``` Para exibir o tempo de vida das associações de grupo, use as seguintes linhas de código do PowerShell: ``` Import-Module ActiveDirectory ``` ``` Get-ADGroup "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Property member -ShowMemberTimeToLive ``` Procure a opção TTL, que é exibida em segundos. ## Visualização de associações a grupos aninhados Esta instrução mostrará a você como enumerar todos os membros de um grupo, até mesmo os membros de grupos aninhados. Usando o ADUC Como administrador, você pode clicar em grupos na guia Membros e inserir as propriedades de grupos aninhados para ver seus membros. No entanto, quando os grupos estão muito aninhados, fica muito difícil executar essa ação. Exibir todos os membros do grupo, incluindo grupos aninhados, via PowerShell. Use as seguintes linhas de código do PowerShell para enumerar todas as associações de grupo em um grupo: ``` Import-Module ActiveDirectory ``` ``` Get-ADGroupMember -Identity "CN=ITGroup,OU=OfficeCorp,DC=office,DC=local" -Recursive | Out-GridView ``` ## Encontrando grupos vazios Este guia o ajudará a encontrar grupos sem membros. Todo objeto no Active Directory ocupa recursos. Quando um grupo não é usado, você pode considerá-lo excluído para abrir espaço para outros objetos mais importantes. ## Encontrar grupos vazios com o PowerShell Use as seguintes linhas do PowerShell para localizar todos os grupos sem membros no Active Directory: ``` Import-Module ActiveDirectory ``` ``` Get-ADGroup -Filter * -Properties members | Where-Object {$_.Members.count -eq 0} | Out-GridView ``` https://serverspace.com.br/support/help/how-to-troubleshoot-account-lockout-issues-in-active-directory.md Aprenda a solucionar problemas de bloqueio de contas no Active Directory, investigue a causa raiz e descubra como prevenir falhas de login com auditoria e ferramentas especializadas. ## Possíveis causas de bloqueio de usuário no Active Directory Essa situação ocorre em empresas que têm uma política de bloqueio de conta quando um determinado número de senhas incorretas é inserido, o que é correto do ponto de vista da segurança cibernética, pois ajuda a proteger contra ataques de força bruta. Algumas das principais causas de bloqueio são: - **Mapeamento constante de unidades com credenciais antigas** - **Dispositivos móveis que usam serviços corporativos com credenciais antigas** - **Contas de serviço que usam senhas em cache que foram alteradas durante a manutenção** - **Tarefas programadas com senhas desatualizadas** - **Programas que usam senhas em cache que foram alteradas** - **Sessões de servidor de terminal desconectadas** - **Problemas com a replicação do Active Directory** - **Configurações de política de domínio inadequadas** - **Atividade maliciosa, como ataques de força bruta de senha** ## Onde configurar a política de bloqueio de conta Abra o **Editor de Política de Grupo** e crie uma nova política, nomeando-a, por exemplo, "Política de bloqueio de conta". Clique com o botão direito do mouse e selecione **Editar**. - Defina o tempo até que o contador de bloqueio seja redefinido para **30 minutos** - O limite de bloqueio é de **5 erros de login** - Duração do bloqueio da conta: **30 minutos** Feche, aplique a política e execute **gpupdate /force** na máquina de destino. ## Como descobrir por que a conta foi bloqueada Para investigar a causa do bloqueio, é necessário configurar uma **política de auditoria** especial que registre os eventos de logon. Abra novamente o Editor de Política de Grupo (gpmc.exe), crie uma Política de Auditoria e siga os passos: - Configuração do computador → Políticas → Configuração do Windows → Configurações de segurança → Política local → Política de auditoria - Ativar auditoria de logon (gera os eventos **4771** e **4624**) com Sucesso e Falha - Ativar Auditoria de Gerenciamento de Contas para monitorar eventos **4740** Force a atualização de política com **gpupdate /force**. ## Quais eventos rastrear no registro de segurança Uma entrada de credencial incorreta gera o evento **4740**. Os códigos de falha Kerberos mais comuns são: - 6 - O nome de usuário não existe - 12 - Limite de tempo de login - 18 - Conta desativada, desabilitada ou expirada - 23 - Senha de usuário expirada - 24 - Falha na pré-autenticação (senha incorreta) - 32 - Ticket expirado - 37 - A hora do computador não foi sincronizada com a hora do domínio Códigos de erro NTLM: - 3221225572 - C0000064 - Este nome de usuário não existe - 3221225578 - C000006A - Nome de usuário correto, mas senha incorreta - 3221226036 - C0000234 - Esta conta de usuário está bloqueada - 3221225586 - C0000072 - Conta desativada - 3221225583 - C000006E - Usuário tentando fazer logon fora do período de tempo especificado - 3221225584 - C0000070 - Limitação da estação de trabalho - 3221225875 - C0000193 - Conta expirada - 3221225585 - 0000071 - Senha expirada - 3221226020 - C0000224 - O usuário deve alterar a senha na próxima vez que fizer login ## Como investigar a causa do bloqueio de conta Abra o **registro de eventos** em "Segurança" e filtre pelo **Event ID 4740**. Use a função de pesquisa para localizar a conta bloqueada e verifique o campo **Caller Computer Name** para identificar a origem. Outras causas podem estar associadas a servidores Exchange, Outlook ou dispositivos móveis. Para análise avançada, use comandos do PowerShell como **Get-ActiveSyncDeviceStatistics** ou ferramentas da Microsoft. ### Microsoft ALTools A **Microsoft Account Lockout and Management Tool** ajuda a monitorar e desbloquear contas. [Baixe o LockoutStatus.exe aqui](https://www.microsoft.com/en-us/download/details.aspx?id=15201). ### Ferramenta EventCombMT Coleta eventos de vários servidores em um local central. Execute EventCombMT.exe e configure a busca por **Account Lockouts**. ## Outras causas de bloqueio de contas de usuário Problemas com Google Workspace, sessões RDP antigas, credenciais armazenadas localmente e replicação incompleta do AD podem gerar bloqueios. Use ferramentas como **Process Monitor**, **Netlogon.log** e comandos **repadmin /syncall /AdeP** para diagnosticar e resolver. ## Conclusão O bloqueio de contas no Active Directory pode ser causado por diversos fatores, desde credenciais desatualizadas até ataques maliciosos. Seguindo este guia, você pode identificar rapidamente a origem do problema, aplicar políticas de auditoria eficientes e usar ferramentas especializadas para resolver o bloqueio. Manter boas práticas de gerenciamento de contas e monitoramento contínuo ajuda a reduzir incidentes e garante maior segurança na sua rede corporativa. ## FAQ (Perguntas Frequentes) - **O que causa o bloqueio de contas no Active Directory?** Credenciais desatualizadas, tarefas programadas, replicação incompleta, ataques de força bruta e erros de configuração de políticas. - **Como posso descobrir de qual computador veio o bloqueio?** Use os eventos 4740 no registro de segurança e verifique o campo **Caller Computer Name**. - **Quais ferramentas ajudam a solucionar bloqueios?** LockoutStatus.exe da Microsoft, EventCombMT, Netlogon.log e PowerShell com Get-ActiveSyncDeviceStatistics. - **Como prevenir futuros bloqueios?** Atualize credenciais em todos os dispositivos, configure auditoria de logon, monitore tarefas programadas e mantenha replicação do AD sincronizada. https://serverspace.com.br/support/help/how-to-use-microphone-in-rdp-session.md Este guia mostrará como usar o microfone e os alto-falantes em um computador remoto conectado por meio do Microsoft Windows Remote Desktop Services. Às vezes, é necessário usar um microfone em um servidor de terminal para diferentes tarefas. A Conexão de Área de Trabalho Remota não habilita esse recurso por padrão, portanto, você precisa habilitá-lo manualmente. Esta instrução lhe dirá como fazer isso. Execute o **gpedit.msc** no computador local a partir do qual você se conectará ao terminal remoto. Navegue até: Local Computer Policy -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host-> Device and Resource Redirection -> Habilite "**Allow audio and video playback redirection**" e "**Allow audio recording redirection**". **A mesma política deve ser aplicada no servidor remoto.** Você precisa ativar o áudio do Windows em ambas as máquinas no services.msc. Eles devem estar no estado "Running" (Em execução). Nas configurações de conexão da área de trabalho remota, vá até a guia "**Recursos Locais**", clique em "**Configurações...**" e defina a reprodução de áudio remoto como "**Reproduzir neste computador**" e defina a gravação de áudio remoto como "**Gravar neste computador**". Clique em "OK" e conecte-se à área de trabalho remota. Vá para "**Sound**" na guia "**Recording**". E verifique se há "**Áudio remoto**". Sucesso! Agora você pode usar o microfone no terminal remoto. O principal nos aplicativos é usar o microfone padrão. . https://serverspace.com.br/support/help/how-to-restore-windows-server-via-veeam-agent.md Este guia mostrará como restaurar facilmente o volume do Microsoft Windows usando a ferramenta de backup gratuita - Veeam Agent. Depois de fazer o backup do volume em seu Windows Server por meio do agente Veeam, você precisa ser capaz de restaurá-lo se tiver algum problema com os dados, como corrupção ou perda. Aqui estão as instruções para a restauração do volume. Você pode fazer isso em qualquer máquina Windows com o Veeam Agent instalado. Pressione os botões Windows+S e digite Veeam, escolha Volume restore na pesquisa exibida. Na janela exibida, escolha **Armazenamento em rede** e clique em **Next**. Escolha **Pasta compartilhada** e clique em **Next** Insira o caminho para o compartilhamento com a imagem de backup e insira as credenciais para ele. Clique em **Next.** Escolha a imagem de backup a ser restaurada. Clique em **Next**. Escolha o ponto de restauração para o qual você deseja reverter os dados. Clique em **Next.** Escolha o disco no qual deseja restaurar o volume. Observe que não é possível restaurar no disco do sistema ativo. Se você não tiver esse disco na lista, precisará criá-lo primeiro e, em seguida, executar o processo de restauração novamente. Clique em **Next** e, em seguida, clique em **Restore**. Após a conclusão do processo de restauração, clique em **Finish** para fechar o assistente. Agora você pode acessar a unidade restaurada e visualizar os arquivos restaurados. https://serverspace.com.br/support/help/how-to-restore-linux-server-via-veeam-agent.md Este guia mostrará como restaurar facilmente um volume em um servidor Linux usando uma ferramenta de backup gratuita, o Veeam Agent. Depois de fazer o backup do volume em seu servidor Linux por meio do agente Veeam, você precisa ser capaz de restaurá-lo se tiver algum problema com os dados, como corrupção ou perda. Aqui estão as instruções para a restauração do volume. Você pode fazer isso em qualquer máquina Linux com o Veeam Agent instalado. Observe que você precisa ter o agente Veeam instalado. Digite **veeam** no terminal, e o aplicativo do agente Veeam será aberto. Pressione "R" e a janela **Imported backups** será aberta imediatamente. Pressione a opção "i" para carregar um backup da unidade de rede. Selecione "**Adicionar pasta compartilhada...**" e pressione "**Enter**". Insira o caminho da unidade compartilhada e as credenciais para acessá-la. Escolha o backup necessário na lista e pressione "**Enter".** O backup será montado no caminho **/mnt/backup**. Pressione "**Enter**" para fechar a janela. Agora você pode navegar nesse caminho por meio de comandos bash ou de um gerenciador de arquivos como o midnight commander e copiar manualmente os arquivos corrompidos ou perdidos para seus locais iniciais. Quando terminar de trabalhar com arquivos e pastas restaurados, você pode desmontar o backup da pasta **/mnt/backup**. No painel de controle do Veeam Agent, pressione a tecla 'u' para desmontar um backup. O Veeam Agent interromperá a sessão de montagem do backup e exibirá uma janela de notificação. Pressione Enter para fechar a janela e retornar ao painel de controle do Veeam Agent. https://serverspace.com.br/support/help/how-to-install-chocolatey-package-manager-on-windows-server.md Este guia o ajudará a instalar o Chocolatey - gerenciador de pacotes para Windows que o ajudará a instalar e atualizar seu software com facilidade. Esta instrução mostrará como instalar o gerenciador de pacotes Chocolatey no Windows Server, o que tornará a instalação e a desinstalação de programas no Windows tão fáceis e convenientes quanto nos sistemas operacionais baseados em Linux. Além disso, você poderá atualizar facilmente os aplicativos instalados com um clique ou comando. ## O que é Chocolatey? Houve épocas em que os sistemas operacionais baseados em Linux tinham um mecanismo de instalação de aplicativos muito complicado, que ainda persiste e você pode compilar qualquer aplicativo a partir de um código-fonte agora usando make ou magic. Nesse caso, os desenvolvedores do Linux introduziram uma maneira muito conveniente de instalar aplicativos: os gerenciadores de pacotes. Agora você tem a possibilidade de comparar a compilação e o mecanismo moderno de gerenciamento de pacotes - apt-get, yum para sistemas operacionais e pip, gem para linguagens em que os aplicativos com dependências são instalados com um simples comando e são igualmente fáceis de atualizar ou remover. O Windows, nesse caso, não fez nenhuma melhoria revolucionária, apenas criou sua loja, mas ainda não é nada popular. No Windows, ainda temos que procurar programas na Web e atualizá-los manualmente, o que não é apenas inconveniente, mas também mais perigoso para a segurança do sistema. Nesse caso, o Chocolatey foi criado para tornar o gerenciamento de programas no Windows mais conveniente e mais semelhante ao que é feito no Linux. Ele criou um repositório de software e um cliente especial para Windows capaz de fazer download, instalar e atualizar programas desse diretório quase automaticamente. ## Instalando o Chocolatey O cliente Chocolatey é um utilitário do PowerShell. Para instalá-lo, abra um Windows PowerShell com privilégios de administrador e digite o seguinte código: ``` Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) ``` Agora vamos aguardar a conclusão do processo e o software estará pronto para ser usado. Depois disso, você poderá se familiarizar com os principais recursos do programa. Para isso, digite o comando **choco /?** que mostrará a você como usar o programa e os comandos básicos. Como você provavelmente já entendeu, todas as operações são realizadas digitando comandos especiais no PowerShell. Por exemplo, se você precisar instalar um programa, basta digitar: ``` choco install package_name ``` Para atualizá-lo: ``` choco update package_name ``` Para ver a lista completa de programas disponíveis no repositório, digite: ``` choco list ``` ou use a pesquisa na versão on-line do catálogo - [https://community.chocolatey.org/packages?q=](https://community.chocolatey.org/packages?q=) ## ChocolateyGUI Se você realmente não gosta de digitar comandos manualmente, pode obter uma GUI para o Chocolatey. Ela se chama ChocolateyGUI e é instalada digitando no PowerShell: ``` choco install chocolateygui ``` O processo levará algum tempo e exigirá a digitação de "a" para confirmar a instalação. Para executar o ChocolateyGUI, basta digitar seu nome na Pesquisa do Windows e ele exibirá o programa instalado. O programa tem uma interface muito simples e intuitiva. A instalação dos programas é muito simples, basta clicar com o botão direito do mouse no aplicativo desejado na lista e clicar em instalar. Em seguida, aguarde um pouco até que a instalação seja concluída Após a conclusão da instalação, você poderá encontrar o programa usando a Pesquisa do Windows. Para excluir o software, basta clicar com o botão direito do mouse e selecionar desinstalar. Para atualizar todos os softwares automaticamente, basta executar: ``` choco upgrade all ``` https://serverspace.com.br/support/help/automation.md Este guia mostrará a você como automatizar o processo de criação de servidores no espaço do servidor usando a API, a CLI ou os utilitários do Terrarform. ## Lista de chaves de API Chaves de API para acessar seu projeto. ## API [Serverspace Public API](https://docs.serverspace.io/public_api.html) - uma API pública para interação com os serviços do Serverspace. As ações executadas no painel de controle do Serverspace também podem ser executadas usando a API pública. ### Autorização Para trabalhar com a API pública, crie uma chave de API para o projeto e passe-a no cabeçalho X-API-KEY em cada solicitação. Por exemplo, ao usar o utilitário cURL, o cabeçalho teria a seguinte aparência: ``` -H "X-API-KEY: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r" ``` Todas as solicitações de API devem ser feitas por meio de HTTPS. Aqui está o URL do ponto de extremidade da API pública: ``` https://api.serverspace.io/ ``` ### ### Exemplos de uso Vamos obter informações sobre o projeto enviando uma solicitação usando o utilitário cURL: ```bash curl -X GET https://api.serverspace.io/api/v1/project -H 'content-type: application/json' -H 'x-api-key: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r' ``` Isso retornará informações sobre o projeto: ```json { "project": { "balance": 400.07, "created": "2019-04-08T10:35:53.7021047Z", "currency": "EUR", "id": 1, "state": "Active" } } ``` Vamos criar um servidor com a seguinte configuração: Amsterdã, nome: "api-example", sistema operacional Debian 10.7, configuração do servidor - 1 GB de RAM, 1 CPU, unidade de inicialização SSD de 25 GB, 50 Mbps: ```bash curl -X POST https://api.serverspace.io/api/v1/servers -H 'content-type: application/json' -H 'x-api-key: lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r' -d '{ "location_id": "am2", "image_id": "Debian-10.7-X64", "cpu": 1, "ram_mb": 1024, "volumes": [ { "name": "boot", "size_mb": 25600 } ], "networks": [ { "bandwidth_mbps": 50 } ], "name": "api-example" }' ``` O resultado retorna um ID de tarefa, que pode ser usado para rastrear o processo de criação do servidor: ```json { "task_id" : "lt1507097" } ``` ## CLI O s2ctl é um Serverspace na linha de comando. A CLI lhe dá a capacidade de controlar sua infraestrutura por meio do terminal, assim como no painel de controle. A ferramenta está disponível em nosso Github. ### Instalação O s2ctl está disponível para Linux e Windows como um arquivo binário separado. Baixe o arquivo do Github e descompacte-o. Instalação no Linux - Baixe o arquivo do repositório do GitHub: ```bash wget https://github.com/itglobalcom/s2ctl/releases/download/vX.X.X/s2ctl-vX.X.X-linux.tar.gz ``` X.X.X.X é o número da versão mais recente do utilitário. - Descompacte o arquivo baixado: ```bash tar -xzf s2ctl-vX.X.X-linux.tar.gz ``` - Navegue até o diretório criado e execute o utilitário s2ctl: ``` cd s2ctl-vX.X.X-linux ./s2ctl --help ``` - (Opcional) Você também pode adicionar o diretório que contém o executável s2ctl à variável de ambiente $PATH para acessar o utilitário de qualquer lugar do sistema operacional. Para ver o que está na variável $PATH neste momento, digite o comando: ``` echo $PATH ``` Para adicionar um novo diretório à lista, use o comando: ``` export PATH=$PATH:"" ``` A variável $PATH é definida pelo shell sempre que ele é iniciado, mas você pode fazer com que ele inclua o caminho para o utilitário em cada novo shell que abrir. O método exato depende do shell que você está usando. Por exemplo, no bash, você precisa adicionar a seguinte linha sobre o arquivo correspondente: ``` echo 'export PATH=$PATH:""' >> .bashrc ``` Use o comando para aplicar as alterações: ``` source ~/.bashrc ``` Instalação no Windows - Baixe o arquivo s2ctl-vX.X.X-windows.zip de [Github](https://github.com/itglobalcom/s2ctl/releases) e descompacte-o. Execute a linha de comando: - Pressione Win+R ou Iniciar → Pesquisar → Digite run → OK - Insira o comando cmd → OK - Por padrão, a linha de comando exibe o diretório inicial do usuário atual. Navegue até o diretório com o arquivo extraído: ``` cd ``` - Vá para o diretório desejado e execute o comando: ``` s2ctl --help ``` - (Opcional) Você também pode adicionar o diretório onde colocou o binário s2ctl à variável de ambiente PATH para acessar o utilitário de qualquer lugar do sistema operacional. Encontre System (Painel de controle) em Search e abra-o. - Clique em Configurações avançadas do sistema. - Clique em Variáveis de ambiente. Na seção System Variables (Variáveis do sistema), localize a variável PATH e selecione-a. Clique em Editar. Se a variável PATH não existir, clique em New. - Na janela Edit System Variable (ou New System Variable), especifique o valor da variável de ambiente PATH. Clique em OK. Feche todas as janelas restantes clicando em OK. ### Autorização Para trabalhar com a CLI, você deve criar uma chave de API para o projeto e também um contexto. Caso contrário, você precisará passar a chave de API em cada solicitação. Criação de contexto O uso de contextos simplifica o uso do utilitário s2ctl. Nesse caso, você não precisa especificar explicitamente a chave de API para cada comando. Para criar um contexto, use o seguinte comando: ``` s2ctl context create -k -n ``` Por exemplo: ``` s2ctl context create -k lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r -n example ``` Transferência de chave Para passar a chave da API explicitamente, ela deve ser especificada no final do comando com a opção --apikey: ``` s2ctl --apikey ``` Por exemplo: ``` s2ctl images --apikey lmGwbvllpIqIrKROOCLgE5Z941MKP5EYfbkgwtqJZGigfXUTpuYRpNQkCqShmm6r ``` ### Exemplos de uso Obtenha informações sobre o projeto com o seguinte comando: ``` s2ctl project show ``` Isso retornará informações sobre o projeto: ```yaml id: '1' balance: '400.24' currency: EUR state: Active created: '2019-04-08T10:35:53.7021047Z' ``` Criar servidor: ``` s2ctl server create --name test-cli --location nj3 --image Ubuntu-20.04-X64 --cpu 2 --ram 2048M --volume boot:30720M --volume volume:10240M --public-network 50 --public-network 60 ``` Isso retornará o ID da tarefa, que pode ser usado para rastrear o processo de criação do servidor: ``` task_id: lt1512053 ``` ## Terraform O Serverspace do provedor Terraform permite que você gerencie recursos de nuvem usando a abordagem Infraestrutura como código. O gerenciamento é feito usando arquivos de configuração especiais nos quais você descreve o estado desejado da sua infraestrutura. ### Instalando o Terraform Primeiro, vamos instalar o Terraform em seu sistema operacional. Recomendamos usar o manual do desenvolvedor do Terraform. ### Configuração do provedor - Crie uma chave de API para o projeto que funcionará com o Terraform. - Crie e navegue até o diretório que será usado para trabalhar com o Terraform Provider. - Crie e abra o arquivo de configuração provider.tf. - Insira as informações do provedor no arquivo, onde é sua chave de API, e salve as alterações: ``` terraform { required_providers { serverspace = { source = "itglobalcom/serverspace" version = "0.2.0" } } } variable "s2_token" { type = string default = "" } provider "serverspace" { key = var.s2_token } ``` - Abra um prompt de comando e navegue até o diretório em que você criou o arquivo. Execute uma inicialização para verificar se ela está correta: ``` terraform init ``` Você verá a seguinte mensagem se a inicialização for bem-sucedida: ``` Initializing the backend... Initializing provider plugins... - Finding itglobalcom/serverspace versions matching "0.2.0"... - Installing itglobalcom/serverspace v0.2.0... - Installed itglobalcom/serverspace v0.2.0 (self-signed, key ID 062XXXXXXXXXXXX) Partner and community providers are signed by their developers. If you'd like to know more about provider signing, you can read about it here: https://www.terraform.io/docs/cli/plugins/signing.html Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. ``` ## Descrição de sua infraestrutura Com o Serverspace Terraform Provider, você pode criar uma infraestrutura com várias configurações. Você pode encontrar a documentação detalhada no [Terraform Registry](https://registry.terraform.io/providers/itglobalcom/serverspace/latest/docs). Vamos dar uma olhada no exemplo de criação de uma infraestrutura simples com dois servidores conectados por meio de uma rede isolada: - Servidor em Amsterdã chamado "server-1" com sistema operacional Ubuntu 20.04. Configuração do servidor - 2 GB de RAM, 2 CPUs, unidade de inicialização SSD de 40 GB, unidade SSD adicional de 20 GB, 50 Mbit/s. Conexão SSH com o servidor. Armazenamento de dados Redis instalado no servidor. - Servidor em Amsterdã chamado "server-2" com sistema operacional Ubuntu 20.04. Configuração do servidor - 8 GB de RAM, 4 CPUs, unidade de inicialização SSD de 40 GB, 70 Mbps. - Rede isolada em Amsterdã com endereço 192.168.0.0/24 Siga as etapas abaixo para configurar essa infraestrutura: - Crie e abra o arquivo ssh_key.tf, que conterá a parte pública da chave ssh para criar o servidor. - Insira as informações sobre a parte pública da chave ssh no arquivo ssh_key.tf e salve as alterações, substituindo o conteúdo da variável public_key pelo seu valor: ``` resource "serverspace_ssh" "terraform" { name = "terraform-key" public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local" } variable "pvt_key" { type = string default = "" } ``` - Crie e abra o arquivo main.tf que conterá a descrição da infraestrutura. - Insira a descrição de sua infraestrutura no arquivo. ``` resource "serverspace_server" "server1" { image = "Ubuntu-20.04-X64" name = "server-1" location = "am2" cpu = 2 ram = 2048 boot_volume_size = 40*1024 volume { name = "bar" size = 20*1024 } nic { network = "" network_type = "PublicShared" bandwidth = 50 } nic { network = resource.serverspace_isolated_network.my_net.id network_type = "Isolated" bandwidth = 0 } ssh_keys = [ resource.serverspace_ssh.terraform.id, ] connection { host = self.public_ip_addresses[0] user = "root" type = "ssh" private_key = file(var.pvt_key) timeout = "2m" } provisioner "remote-exec" { inline = [ "export PATH=$PATH:/usr/bin", "sudo apt-get update", "sudo apt-get install -y redis-server", "exit 0" ] } } resource "serverspace_server" "server2" { image = "Ubuntu-20.04-X64" name = "server-2" location = "am2" cpu = 4 ram = 8192 boot_volume_size = 40*1024 nic { network = "" network_type = "PublicShared" bandwidth = 70 } nic { network = resource.serverspace_isolated_network.my_net.id network_type = "Isolated" bandwidth = 0 } } resource "serverspace_isolated_network" "my_net" { location = "am2" name = "my_net" description = "Example for Terraform" network_prefix = "192.168.0.0" mask = 24 } ``` - Para criar a infraestrutura descrita acima, execute o comando: ``` terraform apply ``` Será exibida uma janela de diálogo: ``` Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # serverspace_isolated_network.my_net will be created + resource "serverspace_isolated_network" "my_net" { + description = "Example for Terraform" + id = (known after apply) + location = "am2" + mask = 24 + name = "my_net" + network_prefix = "192.168.0.0" } # serverspace_server.server1 will be created + resource "serverspace_server" "server1" { + boot_volume_id = (known after apply) + boot_volume_size = 40960 + cpu = 2 + id = (known after apply) + image = "Ubuntu-20.04-X64" + location = "am2" + name = "server-1" + public_ip_addresses = (known after apply) + ram = 2048 + ssh_keys = (known after apply) + nic { + bandwidth = 0 + id = (known after apply) + ip_address = (known after apply) + network = (known after apply) + network_type = "Isolated" } + nic { + bandwidth = 50 + id = (known after apply) + ip_address = (known after apply) + network_type = "PublicShared" } + volume { + id = (known after apply) + name = "bar" + size = 20480 } } # serverspace_server.server2 will be created + resource "serverspace_server" "server2" { + boot_volume_id = (known after apply) + boot_volume_size = 40960 + cpu = 4 + id = (known after apply) + image = "Ubuntu-20.04-X64" + location = "am2" + name = "server-2" + public_ip_addresses = (known after apply) + ram = 8192 + ssh_keys = (known after apply) + nic { + bandwidth = 0 + id = (known after apply) + ip_address = (known after apply) + network = (known after apply) + network_type = "Isolated" } + nic { + bandwidth = 70 + id = (known after apply) + ip_address = (known after apply) + network_type = "PublicShared" } } # serverspace_ssh.terraform will be created + resource "serverspace_ssh" "terraform" { + id = (known after apply) + name = "terraform-key" + public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local" } Plan: 4 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. ``` - Digite yes para criar a infraestrutura. ```yaml Enter a value: yes serverspace_ssh.terraform: Creating... serverspace_isolated_network.my_net: Creating... serverspace_ssh.terraform: Creation complete after 1s [id=3181] serverspace_isolated_network.my_net: Creation complete after 8s [id=l2n403] serverspace_server.server2: Creating... serverspace_server.server1: Creating... serverspace_server.server1: Still creating... [10s elapsed] serverspace_server.server2: Still creating... [10s elapsed] ... serverspace_server.server1 (remote-exec): (Reading database ... serverspace_server.server1 (remote-exec): (Reading database ... 5% serverspace_server.server1 (remote-exec): (Reading database ... 10% ... serverspace_server.server1: Creation complete after 1m3s [id=l2s190038] Apply complete! Resources: 4 added, 0 changed, 0 destroyed. ``` - Para exibir a infraestrutura atual, execute o comando: ``` terraform show ``` - Isso exibirá a configuração atual da infraestrutura: ``` # serverspace_isolated_network.my_net: resource "serverspace_isolated_network" "my_net" { description = "Example for Terraform" id = "l2n403" location = "am2" mask = 24 name = "my_net" network_prefix = "192.168.0.0" } # serverspace_server.server1: resource "serverspace_server" "server1" { boot_volume_id = 58909 boot_volume_size = 40960 cpu = 2 id = "l2s190038" image = "Ubuntu-20.04-X64" location = "am2" name = "server-1" public_ip_addresses = [ "45.138.24.19", ] ram = 2048 ssh_keys = [ 3181, ] nic { bandwidth = 0 id = 59576 ip_address = "192.168.0.1" network = "l2n403" network_type = "Isolated" } nic { bandwidth = 50 id = 59575 ip_address = "45.138.24.19" network_type = "PublicShared" } volume { id = 58910 name = "bar" size = 20480 } } # serverspace_server.server2: resource "serverspace_server" "server2" { boot_volume_id = 58911 boot_volume_size = 40960 cpu = 4 id = "l2s190039" image = "Ubuntu-20.04-X64" location = "am2" name = "server-2" public_ip_addresses = [ "31.44.3.68", ] ram = 8192 ssh_keys = [] nic { bandwidth = 0 id = 59578 ip_address = "192.168.0.2" network = "l2n403" network_type = "Isolated" } nic { bandwidth = 70 id = 59577 ip_address = "31.44.3.68" network_type = "PublicShared" } } # serverspace_ssh.terraform: resource "serverspace_ssh" "terraform" { id = "3181" name = "terraform-key" public_key = "ssh-rsa AAAAB3Nza...JUDjlM= root@CentOS.local" } ``` Parabéns por sua primeira infraestrutura como uma implementação de código. https://serverspace.com.br/support/help/how-to-setup-wireguard-vpn-client-on-centos.md Aprenda a instalar o cliente VPN WireGuard no sistema operacional Linux CentOS e a configurar um túnel com um servidor VPN WireGuard. O WireGuard é um aplicativo que pode fornecer uma rede virtual privada (VPN) segura, sendo simples de usar e configurar. Ele usa protocolos e algoritmos criptográficos fortes para cifrar os dados. Projetado exclusivamente para o kernel do Linux, ele pode ser implantado no Windows, macOS, FreeBSD, iOS e Android. Em nosso caso, usaremos o CentOS 8.3 para a configuração do WireGuard. Como configurar o cliente VPN do WireGuard: - [Como instalar o cliente WireGuard no CentOS](#step1) - [Como criar uma chave pública e privada](#step2) - [Como executar o WireGuard](#step3) ## Instalando o cliente WireGuard no CentOS A instalação do cliente é semelhante à do servidor. Faça login no seu servidor Linux e, depois de fazer login, adicione os repositórios EPEL e Elrepo para instalar os módulos do kernel e as ferramentas do WireGuard. ```bash sudo dnf install epel-release elrepo-release -y ``` Agora vamos instalar o WireGuard a partir do repositório epel: ```bash sudo dnf install kmod-wireguard wireguard-tools ``` ## Geração de chaves públicas e privadas O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves privadas e públicas, pois cada par fornece apenas mensagens unidirecionais. Gere um par de chaves públicas e privadas do cliente executando o seguinte comando: ``` wg genkey | tee private.key | wg pubkey > public.key ``` Depois disso, crie um arquivo de configuração do cliente no seguinte diretório: ``` sudo nano /etc/wireguard/wg0.conf ``` No tipo de arquivo: ``` PrivateKey = Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PublicKey = AllowedIPs = 10.0.0.2/32 ``` Observações: Na linha publickey, insira a chave pública do servidor que geramos [no artigo anterior e](https://serverspace.com.br/support/help/how-to-setup-wireguard-vpn-server-on-centos/), na chave privada, insira a chave privada do cliente. ## Inicialização do WireGuard Para iniciar a conexão, digite o seguinte comando: ``` sudo wg-quick up wg0 ``` Agora que o cliente pode se comunicar com o servidor, você pode fazer ping no servidor a partir do cliente com o comando ``` ping 10.0.0.1 ``` Para descobrir o status da conexão, execute o seguinte comando: ``` sudo wg show ``` Você obterá todos os detalhes da conexão, conforme mostrado abaixo Parabéns! Seu computador cliente agora tem acesso à rede VPN. https://serverspace.com.br/support/help/how-to-setup-wireguard-vpn-server-on-centos.md Aprenda a instalar o servidor VPN WireGuard no sistema operacional Linux CentOS e a configurar túneis com hosts remotos. O WireGuard é um aplicativo que pode fornecer uma rede virtual privada (VPN) segura, sendo simples de usar e configurar. Ele usa protocolos e algoritmos criptográficos fortes para cifrar os dados. Projetado exclusivamente para o kernel do Linux, ele pode ser implantado no Windows, macOS, FreeBSD, iOS e Android. Em nosso caso, usaremos o CentOS 8.3 para a configuração do WireGuard. Como instalar o servidor VPN WireGuard no CentOS 8.3: - [Como instalar o servidor WireGuard no CentOS](#step1) - [Como gerar chaves públicas e privadas](#step2) - [Como ajustar a configuração do servidor](#step3) - [Como configurar o FireWall](#step4) - [Como iniciar o WireGuard e ativá-lo na inicialização](#step5) ## Instalando o WireGuard Server no CentOS Faça o download das atualizações mais recentes usando os dados do comando: ```bash sudo yum update ``` ```bash sudo dnf update ``` Adicione os repositórios EPEL e Elrepo para instalar os módulos do kernel e as ferramentas do WireGuard. ```bash sudo dnf install epel-release elrepo-release -y ``` Certifique-se de que o repositório PowerTools esteja ativado, pois os pacotes EPEL podem depender de pacotes desse repositório, ```bash sudo yum install 'dnf-command(config-manager)' ``` ```bash sudo yum config-manager --set-enabled PowerTools ``` Agora vamos instalar o WireGuard do repositório epel: ```bash sudo dnf install kmod-wireguard wireguard-tools ``` ## Geração de chaves públicas e privadas O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves públicas e privadas, pois cada par fornece apenas uma comunicação unidirecional. Antes de gerar o par de chaves, vá para a seção: ``` cd /etc/wireguard ``` Defina a permissão para esse diretório: ``` umask 077 ``` Para gerar um par de chaves, digite o seguinte comando: ``` wg genkey | tee private.key | wg pubkey > public.key ``` ## Definindo a configuração do servidor Para começar a configurar o servidor WireGuard, vá para a pasta /etc/wireguard e crie o arquivo **wg0.conf ** ``` sudo nano /etc/wireguard/wg0.conf ``` Adicione as seguintes diretivas ao arquivo de configuração: ``` PrivateKey = Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PublicKey = AllowedIPs = 10.0.0.2/32 ``` Copie a chave privada que geramos anteriormente e cole-a na PrivateKey. Da mesma forma, temos de gerar um par de chaves para o cliente, copiar a chave pública do cliente e colá-la em PublicKey. Para copiar o valor da chave, execute o seguinte comando: ``` sudo cat /etc/wireguard/public.key ``` ``` sudo cat /etc/wireguard/private.key ``` ## Configuração do firewall Por padrão, o firewall interrompe toda a comunicação entre a rede interna (wg0) e a rede pública (eth0). Vamos alterar isso com estes comandos: ``` sudo firewall-cmd --add-interface=wg0 --zone=internal ``` ``` sudo firewall-cmd --permanent --zone=internal --add-masquerade ``` ## Inicie o WireGuard e faça-o iniciar na inicialização Agora estamos prontos para iniciar o servidor. Para iniciar o WireGuard, usamos o **wg-quick** e especificamos o nome da nova interface: ``` wg-quick up wg0 ``` Se a configuração estiver perfeita, você verá a seguinte tela, Para verificar o status do servidor WireGuard, digite: ``` wg show ``` Parabéns, iniciamos com sucesso o servidor WireGuard! https://serverspace.com.br/support/help/how-to-install-wireguard-vpn-server-on-ubuntu.md Aprenda a instalar o servidor VPN WireGuard no sistema operacional Ubuntu Linux e a configurar túneis com hosts remotos. O WireGuard é um aplicativo que permite estabelecer uma rede virtual privada (VPN) segura, conhecida por sua simplicidade e facilidade de uso. Ele usa protocolos e algoritmos criptográficos comprovados para proteger os dados. Originalmente projetado para o kernel do Linux, ele pode ser implantado no Windows, macOS, BSD, iOS e Android. Esta configuração de VPN do WireGuard usa o Ubuntu 20.04. ## Instalando o WireGuard Server no Ubuntu Linux Faça login via SSH no servidor Linux, depois de fazer login, verifique se a máquina está atualizada executando o seguinte comando: ```bash sudo apt-get update && sudo apt-get upgrade ``` Agora, instale o WireGuard executando o seguinte comando: ```bash sudo apt-get install wireguard ``` ## Configuração do encaminhamento de IP Para que a VPN funcione, precisamos habilitar o encaminhamento de pacotes, só assim poderemos nos conectar por meio do servidor Wireguard. Para isso, precisamos editar o arquivo /etc/sysctl.conf: ``` sudo nano /etc/sysctl.conf ``` remova o "#" do comando a seguir: ``` net.ipv4.ip_forward=1 ``` Depois disso, execute o seguinte comando para aplicar as alterações: ``` sysctl -p ``` A seguinte mensagem será exibida: ## Geração de chaves públicas e privadas O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves públicas e privadas, pois cada par fornece apenas uma comunicação unidirecional. Antes de gerar o par de chaves, vá para a seção ``` dwg sudo cd /etc/wireguard ``` Defina a permissão para esse diretório: ``` umask 077 ``` Para gerar um par de chaves, digite o seguinte comando: ``` wg genkey | tee private.key | wg pubkey > public.key ``` ## Definindo a configuração do servidor Para começar a configurar o servidor WireGuard, vá para a pasta /etc/wireguard e crie o arquivo **wg0.conf ** ``` sudo nano /etc/wireguard/wg0.conf ``` Adicione as seguintes diretivas ao arquivo de configuração: ``` PrivateKey = Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PublicKey = AllowedIPs = 10.0.0.2/32 ``` Copie a chave privada que geramos anteriormente e cole-a na PrivateKey. Da mesma forma, temos que gerar um par de chaves para o cliente, copiar a chave pública do cliente e colá-la em PublicKey. Para copiar o valor da chave, execute o seguinte comando: ``` sudo cat /etc/wireguard/public.key ``` ``` sudo cat /etc/wireguard/private.key ``` ## Inicie o WireGuard e faça-o começar na inicialização Agora estamos prontos para iniciar o servidor. Para iniciar o WireGuard, usamos o **wg-quick** e especificamos o nome da nova interface: ``` wg-quick up wg0 ``` Se a configuração estiver perfeita, você verá a seguinte tela, Para verificar o status do servidor WireGuard, digite: ``` wg show ``` Parabéns, iniciamos com sucesso o servidor WireGuard! https://serverspace.com.br/support/help/how-to-install-wireguard-vpn-client-on-ubuntu-linux.md Saiba como instalar o cliente VPN WireGuard no sistema operacional Ubuntu Linux e conectá-lo ao servidor WireGuard. O WireGuard é um aplicativo que permite configurar uma rede virtual privada (VPN) segura, conhecida por sua simplicidade e facilidade de uso. Ele usa protocolos e algoritmos criptográficos comprovados para proteger os dados. Originalmente projetado para o kernel do Linux, pode ser implantado no Windows, macOS, BSD, iOS e Android. Esta configuração do cliente vpn WireGuard usa a distribuição Linux, Ubuntu 20.04. ## Instalando o aplicativo cliente WireGuard no Ubuntu A instalação do cliente WireGuard é feita da mesma forma que no lado do servidor. Faça login via SSH no servidor Linux e, depois de fazer login, verifique se a máquina está atualizada executando o seguinte comando: ```bash sudo apt-get update && sudo apt-get upgrade ``` Agora, instale o WireGuard executando o seguinte comando: ```bash sudo apt-get install wireguard ``` ## Geração de chaves públicas e privadas O WireGuard funciona criptografando a conexão usando um par de chaves criptográficas. O par de chaves é usado passando a chave pública para a outra parte, que pode então criptografar sua mensagem de modo que ela só possa ser descriptografada com a chave privada correspondente. Para proteger a comunicação bidirecional, cada lado deve ter suas próprias chaves privadas e públicas, pois cada par fornece apenas mensagens unidirecionais. Gere um par de chaves públicas e privadas do cliente executando o seguinte comando: ``` wg genkey | tee private.key | wg pubkey > public.key ``` Depois disso, crie um arquivo de configuração do cliente no seguinte diretório: ``` sudo nano /etc/wireguard/wg0.conf ``` No tipo de arquivo: ``` PrivateKey = Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PublicKey = AllowedIPs = 10.0.0.2/32 ``` Observações: Na linha publickey, insira a chave pública do servidor que geramos no artigo anterior e, na chave privada, insira a chave privada do cliente. ## Inicialização do WireGuard Para iniciar a conexão, digite o seguinte comando: ``` sudo wg-quick up wg0 ``` Agora que o cliente pode se comunicar com o servidor, você pode fazer ping no servidor a partir do cliente com o comando ``` ping 10.0.0.1 ``` Para descobrir o status da conexão, execute o seguinte comando: ``` sudo wg show ``` Você obterá todos os detalhes da conexão, conforme mostrado abaixo Parabéns! Seu computador cliente agora tem acesso à rede VPN. https://serverspace.com.br/support/help/monitor-network-traffic-vnstat-ubuntu.md O vnStat monitora o tráfego nas interfaces de rede, registra dados e ajuda a descobrir as estatísticas de uso da largura de banda durante um período de tempo. O vnStat monitora o tráfego nas interfaces de rede e registra os dados. Assim, com sua ajuda, podemos descobrir as estatísticas de uso da largura de banda em um determinado período de tempo. ## Instalando o vnStat no Ubuntu 20.04 [step num="1"] O vnStat está disponível nos repositórios oficiais do Ubuntu 20.04. No momento em que este tutorial foi escrito, ele continha a versão mais recente. Vamos primeiro atualizar a lista de repositórios e depois instalar: [/step] ```bash sudo apt update sudo apt install vnstat ``` [step num="2"] Você pode verificar se a instalação foi bem-sucedida e descobrir a versão usando o comando: [/step] ``` vnstat -v ``` [step num="3"] Saída: [/step] ``` vnStat 2.6 by Teemu Toivola ``` [step num="4"] Vamos verificar se o serviço está em execução e já está analisando o tráfego: [/step] ```bash systemctl status vnstat ``` [step num="5"] Saída: [/step] ``` vnstat.service - vnStat network traffic monitor Loaded: loaded (/lib/systemd/system/vnstat.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2021-04-03 02:22:28 UTC; 9min ago ``` [step num="6"] Se você vir **enabled** e **active (running)**, então tudo está funcionando. [/step] ## Visualizando estatísticas de rede com o vnStat [step num="7"] Logo após a instalação, você precisa esperar um pouco para que as estatísticas sejam acumuladas. Para visualizar os dados de todo o tempo e de todas as interfaces de rede, execute o vnstat sem parâmetros: [/step] ``` vnstat ``` [step num="8"] Para visualizar as estatísticas a cada 5 minutos: [/step] ``` vnstat -5 ``` [step num="9"] Para cada hora: [/step] ``` vnstat -h ``` [step num="10"] E é assim que o diagrama de uso da largura de banda será construído: [/step] ``` vnstat -hg ``` [step num="11"] Estatísticas para dias, meses ou anos, respectivamente: [/step] ``` vnstat -d vnstat -m vnstat -y ``` [step num="12"] Veja como você pode ver os 10 principais dias por uso geral do canal: [/step] ``` vnstat -t ``` [step num="13"] Exibir estatísticas resumidas de 5 segundos em tempo real: [/step] ``` vnstat -tr ``` [step num="14"] E assim o utilitário mostrará o que está acontecendo no momento atual: [/step] ``` vnstat -l ``` [step num="15"] Se você tiver várias interfaces de rede, poderá selecionar uma delas especificando seu nome como um parâmetro no comando: [/step] ``` vnstat -i interface-name ``` [step num="16"] Para desativar o monitoramento de uma interface específica e remover todas as estatísticas referentes a ela, use: [/step] ``` sudo vnstat --remove -i interface-name --force ``` [step num="17"] Para adicioná-la novamente depois disso: [/step] ``` sudo vnstat --add -i interface-name ``` [step num="18"] Para aplicar as configurações após a adição, você precisa reiniciar o vnstat: [/step] ```bash sudo systemctl restart vnstat ``` [step num="19"] Como você pode ver, o vnStat é uma ferramenta fácil de usar e útil para analisar o uso de interfaces de rede. https://serverspace.com.br/support/help/diagnosing-winmtr-windows-server-2019.md WinMTR - é uma ferramenta avançada com interface gráfica para diagnosticar a conectividade de rede com um host remoto em sistemas Windows. Existe uma ferramenta que combina a simplicidade e a conveniência de um aplicativo de GUI com mais recursos do que as ferramentas clássicas de linha de comando para diagnosticar uma conexão de rede com um host remoto. Seu nome é WinMTR e, neste tutorial, veremos sua funcionalidade. O sistema operacional será o Windows Server 2019. Primeiro, faça o download do WinMTR. Para fazer isso, siga o link [https://sourceforge.net/projects/winmtr/](https://sourceforge.net/projects/winmtr/) e clique no botão "**Download**". Descompacte o arquivo baixado em um local conveniente, abra a pasta e execute o **WinMTR.exe** na pasta com o bitness correspondente ao seu sistema operacional. Para o Windows Server 2019, esse é o **x64**. Portanto, usaremos um arquivo da pasta **WinMTR_x64**. Para obter um diagnóstico simples da conexão de rede com um host remoto, basta inserir seu endereço IP ou nome de domínio no campo **Host** e, em seguida, clicar em **Start**. Todos os parâmetros podem ser deixados como padrão. Depois disso, você verá como o WinMTR envia solicitações a cada segundo e por quais hosts os pacotes de rede passam ao longo do caminho. Para obter maior precisão, recomendamos aguardar de 1 a 2 minutos para que algumas estatísticas sejam acumuladas. Os resultados podem ser enviados a um técnico ou equipe de suporte para análise. Para a conveniência da exportação, há botões que permitem copiar dados e criar um documento de texto ou html. Screenshot 1. Diagnosticando a conexão de rede usando o WinMTR no Windows Server 2019 Explicação dos nomes das colunas: - Hostname - o nome do host intermediário. Se você desmarcar a caixa de seleção "Resolver nomes" nas configurações, somente os endereços IP dos nós serão exibidos. - Nr - o número do host na rota. - Loss% - a proporção de pacotes perdidos e enviados como uma porcentagem. - Sent - o número de pacotes enviados. - Recv - o número de respostas recebidas. - Best - menor tempo de resposta após o envio da solicitação. - Avrg - tempo médio de resposta após o envio da solicitação. - Pior - tempo de resposta mais longo após o envio da solicitação. - Último - tempo de resposta após o envio da última solicitação. https://serverspace.com.br/support/help/multiple-network-interfaces-centos-7.md Configuraremos a disponibilidade do servidor em várias interfaces de rede e endereços IP públicos no CentOS 7 usando o roteamento baseado em origem. Para configurar a disponibilidade do servidor por meio de diferentes interfaces de rede e endereços IP públicos, não basta apenas configurar os parâmetros de cada placa de rede. Só pode haver um gateway padrão, por isso todos os pacotes de rede deixarão o servidor por meio dele, mesmo que tenham sido originalmente recebidos em um endereço diferente. Essa é uma desvantagem da política de roteamento baseada em destino usada por padrão. Neste tutorial, configuraremos várias interfaces de rede no CentOS 7 usando o roteamento baseado em origem. ## Configuração de interfaces de rede [step num="1"] Se você usar um [servidor no Serverspace](https://serverspace.com.br/services/cloud-servers.md), os parâmetros das interfaces de rede serão configurados automaticamente quando você as adicionar ou criar um servidor. Caso contrário, é necessário trazer os parâmetros para o formulário abaixo. O exemplo acima pode ser copiado substituindo seus valores para o nome da interface (eth0), gateway (GATEWAY), endereço MAC (HWADDR), endereço IP (IPADDR) e, em alguns casos, a máscara de sub-rede (NETMASK): [/step] ``` nano /etc/sysconfig/network-scripts/ifcfg-eth0 ``` ``` BOOTPROTO=none DEFROUTE=yes DEVICE=eth0 GATEWAY=33.44.55.1 HWADDR=aa:11:bb:22:cc:33 IPADDR=33.44.55.66 MTU=1500 NETMASK=255.255.255.0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet ``` [step num="2"] O GATEWAY é configurado apenas para uma interface de rede, pois deve haver apenas uma no sistema. Configuração da segunda interface: [/step] ``` nano /etc/sysconfig/network-scripts/ifcfg-eth1 ``` ``` BOOTPROTO=none DEVICE=eth1 HWADDR=bb:cc:dd:ee:ff:gg IPADDR=66.77.88.99 MTU=1500 NETMASK=255.255.255.0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet ``` [step num="3"] Da mesma forma, você pode configurar o número de interfaces que estão conectadas ao sistema. [/step] ## Configuração do roteamento baseado em origem [step num="4"] Por via das dúvidas, vale a pena verificar se o pacote iproute está instalado e instalá-lo, caso contrário: [/step] ```bash yum install iproute ``` [step num="5"] Agora, abra o arquivo a seguir: [/step] ``` nano /etc/iproute2/rt_tables ``` [step num="6"] Adicione as seguintes linhas ao final: [/step] ``` 200 table200 201 table201 ``` [step num="7"] O registro deve estar no formato **número** espaço** nome da tabela**. Ambos os valores podem ser arbitrários. A única condição é sua exclusividade em relação aos valores de outros registros no arquivo. O número de linhas deve corresponder ao número de interfaces de rede para as quais estamos configurando a acessibilidade. [/step] [step num="8"] Agora vamos criar arquivos com parâmetros de tabelas de roteamento. Você precisa criar um arquivo separado para cada interface, substituindo **eth0** no nome do arquivo pelo nome real da conexão de rede. [/step] ``` nano /etc/sysconfig/network-scripts/rule-eth0 ``` [step num="9"] Abaixo está o conteúdo do arquivo, no qual, em vez de **33.44.55.66**, você precisa colocar o endereço IP da interface de rede e, em vez de **table200**, as tabelas adicionadas acima, uma para cada interface: [/step] ``` from 33.44.55.66 lookup table200 ``` [step num="10"] E os arquivos correspondentes com regras de roteamento. Criados da mesma forma que os arquivos de parâmetros da tabela de roteamento. [/step] ``` nano /etc/sysconfig/network-scripts/route-eth0 ``` [step num="11"] É necessário substituir os valores reais do **endereço de sub-rede**, **gateway**, **nome da interface** e o valor da **tabela** correspondente ao valor do arquivo anterior. [/step] ``` 33.44.55.0/24 dev eth0 table table200 default dev eth0 via 33.44.55.1 table table200 ``` [step num="12"] Esses pares de arquivos são criados para cada interface de rede no sistema com os valores correspondentes. [/step] [step num="13"] Reinicie o serviço de rede para que as alterações tenham efeito: [/step] ```bash systemctl restart network ``` https://serverspace.com.br/support/help/multiple-network-interfaces-on-centos-8.md Neste tutorial, configuraremos a disponibilidade de várias interfaces de rede da Internet no CentOS 8 usando o roteamento baseado em origem Se houver duas ou mais interfaces de rede com endereços IP públicos no sistema, não basta fazer as configurações de rede corretas para garantir sua disponibilidade na Internet. A desvantagem do roteamento padrão é que todos os pacotes de rede deixarão o host pelo gateway padrão. E, ao mesmo tempo, não importa a qual das interfaces eles chegaram inicialmente. Neste tutorial, configuraremos a disponibilidade de várias interfaces de rede externas no CentOS 8 usando o roteamento baseado na origem. ## Parâmetros da interface de rede [Os servidores em nuvem no Serverspace](https://serverspace.com.br/services/cloud-servers.md) têm a função de configurar automaticamente as interfaces de rede quando são adicionados ou quando um servidor é criado. Portanto, se você os usar, passe para a próxima etapa. Caso contrário, primeiro você precisa definir os parâmetros corretos das interfaces de rede. [step num="1"] Abra o arquivo de configurações da interface de rede. Seus nomes podem ser visualizados com o comando **ip a** ou definir novos nomes se eles não estiverem configurados. [/step] ``` nano /etc/sysconfig/network-scripts/ifcfg-enp0s5 ``` [step num="2"] Você pode copiar a configuração abaixo e substituir os seguintes valores pelos seus próprios: - nome da interface (enp0s5) - gateway (GATEWAY) - endereço MAC (HWADDR) - Endereço IP (IPADDR) - máscara de sub-rede (NETMASK) [/step] ``` BOOTPROTO=none DEFROUTE=yes DEVICE=enp0s5 GATEWAY=54.43.32.1 HWADDR=56:67:78:89:01:ab IPADDR=54.43.32.11 MTU=1500 NETMASK=255.255.255.0 ONBOOT=yes STARTMODE=auto TYPE=Ethernet ``` [step num="3"] Configure todas as interfaces de rede da mesma forma. O **GATEWAY** para a segunda, terceira, etc. interfaces não é especificado, pois esse é o gateway padrão e deve haver apenas um. [/step] ## Desabilitar o NetworkManager [step num="4"] Configuraremos o roteamento baseado em políticas usando **scripts de rede**, portanto, desativaremos o **NetworkManager** e os serviços relacionados: [/step] ```bash systemctl mask NetworkManager.service systemctl stop NetworkManager.service systemctl mask NetworkManager-wait-online.service systemctl mask NetworkManager-dispatcher.service ``` [step num="5"] Instale o pacote **network-scripts**. [/passo] ```bash dnf install network-scripts ``` [step num="6"] Vamos iniciar o **serviço de rede**: [/passo] ```bash systemctl enable network systemctl start network ``` ## Configuração do roteamento baseado na origem [step num="7"] Vamos verificar se o pacote **iproute** está presente. Se não estiver, instale-o. [/step] ```bash dnf install iproute ``` [step num="8"] Adicionar novas tabelas para configurar políticas de roteamento. [/step] ``` nano /etc/iproute2/rt_tables ``` [step num="9"] Adicione registros ao final do arquivo: [/step] ``` 400 400 401 401 ``` [step num="10"] Cada linha é uma nova tabela. Formato do registro - **prioridade** espaço **nome da tabela**. Esses valores devem ser exclusivos em relação a outras entradas no arquivo. A **prioridade** é numérica, e o **nome da tabela** pode conter letras. Adicione tantas tabelas novas quantas forem as interfaces que estiver configurando. [/step] [step num="11"] Os arquivos a seguir conterão as configurações de roteamento. Para cada interface, você precisa criar um par de arquivos: **rule-eth-name**, **route-eth-name**, em que **eth-name** deve ser substituído pelo nome da interface. Exemplo para a interface **enp0s5**: [/step] ``` nano /etc/sysconfig/network-scripts/rule-enp0s5 ``` [step num="12"] Insira a seguinte linha nela com o endereço IP atual em vez de **54.43.32.11** e o nome da tabela criada na etapa anterior em vez de **400**: [/step] ``` from 54.43.32.11 lookup 400 ``` [step num="13"] Segundo arquivo: [/step] ``` nano /etc/sysconfig/network-scripts/route-enp0s5 ``` [step num="14"] Substitua **54.43.32.0/24** pelo endereço de sua sub-rede, **enp0s5** pelo nome da interface, **400** pelo nome da tabela correspondente e **54.43.32.1** pelo gateway para roteamento do tráfego e insira-o no arquivo aberto: [/step] ``` 54.43.32.0/24 dev enp0s5 table 400 default dev enp0s5 via 54.43.32.1 table 400 ``` [step num="15"] Depois de criar esses arquivos para cada interface de rede, reinicie o serviço de rede e nosso objetivo será alcançado. [/step] ```bash systemctl restart network ``` https://serverspace.com.br/support/help/multiple-network-interfaces-ubuntu-20-04.md Vamos ver como configurar várias interfaces de rede no Ubuntu 20.04 e fazer com que o servidor responda a vários endereços IP. Em situações em que há duas ou mais interfaces de rede com endereços IP públicos no servidor Ubuntu 20.04, configurações adicionais devem ser feitas para garantir que o servidor esteja disponível nesses endereços adicionais. Isso ocorre porque a política de roteamento padrão envia todos os pacotes de rede por meio de uma interface, que tem uma rota padrão. Nesse caso, não importa por qual interface o pacote chegou ao servidor. Portanto, mesmo com a configuração correta do Netplan, o servidor não responderá a endereços IP adicionais sem configurações adicionais. Vamos dar uma olhada em como configurar várias interfaces de rede no Ubuntu 20.04. Como configurar várias interfaces de rede no Ubuntu 20.04: - [Configurar automaticamente o Netplan](#stepone) - [Configurar rotas baseadas em políticas](#steptwo) ## Configuração automática do Netplan [step num="1"] [Os servidores Linux Serverspace](https://serverspace.com.br/services/cloud-servers.md) foram projetados para facilitar a vida dos usuários. Eles têm a função de configurar interfaces de rede no modo automático quando são adicionadas no painel de controle ou durante a criação do servidor. Mas, para garantir a operação do roteamento baseado em políticas e como resultado da disponibilidade do servidor em várias interfaces de rede ao mesmo tempo, precisamos fazer alterações nas configurações do Netplan. Para evitar que nossas configurações sejam substituídas durante uma reinicialização, precisamos desativar a configuração automática da rede. Depois de se certificar de que o número necessário de interfaces foi adicionado ao servidor, crie um arquivo nele: [/step] ``` nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ``` [step num="2"] E adicione um parâmetro a ele: [/step] ``` network: {config: disabled} ``` [step num="3"] Agora, as alterações subsequentes no Netplan não serão sobrescritas automaticamente na reinicialização. [/passo] ## Configurando rotas baseadas em políticas [step num="4"] Roteamento baseado em políticas alimentado por tabelas. Cada tabela tem suas próprias rotas e políticas. Vamos verificar a presença do pacote **iproute2** no sistema. Se não estiver, instale-o. [/step] ```bash apt install iproute2 ``` [step num="5"] Abra o arquivo com as tabelas de roteamento: [/step] ``` nano /etc/iproute2/rt_tables ``` [step num="6"] E adicione no final o número de tabelas correspondente à quantidade de interfaces que você está configurando: [/step] ``` 800 800 801 801 ``` [step num="7"] Formato do registro: **prioridade** (número) espaço **nome da tabela** (número). Agora abra o arquivo Netplan com as configurações da interface de rede. Ele está localizado no caminho **/etc/netplan/** e tem a extensão **.yaml**. No meu caso, o caminho é o seguinte: [/step] ``` nano /etc/netplan/50-cloud-init.yaml ``` [step num="8"] Cada interface tem um bloco de configurações nesse arquivo. No final desse bloco, adicionaremos configurações para políticas e regras de roteamento para a interface. Nesse arquivo, é importante observar o número de espaços antes de cada parâmetro e valor, e não usar tabulações em vez de espaços. Concentre-se na indentação das entradas existentes e adicione por analogia. [/step] [step num="9"] Para cada interface de rede, adicione os blocos **routes** e **routing-policy**. O registro final para uma interface terá a seguinte aparência: [/step] ```yaml rede: version: 2 ethernets: enp0s5: addresses: - 78.89.90.12/24 gateway4: 78.89.90.1 match: macaddress: 54:43:32:21:10:09 mtu: 1500 servidores de nomes: endereços: - 8.8.8.8 - 1.1.1.1 - 8.8.4.4 busca: [] set-name: enp0s5 routes: - to: 0.0.0.0/0 via: 78.89.90.1 tabela: 800 routing-policy: - from: 78.89.90.12 tabela: 800 prioridade: 300 ``` [step num="10"] Para outras interfaces, as entradas serão as mesmas, começando com o nome da interface (**enp0s5**), mas outras não devem ter o parâmetro **gateway4**, pois deve haver um gateway padrão. Configurações de **rotas** e **política de roteamento**: - to - endereço de destino do pacote. Para nossos propósitos - qualquer um (0.0.0.0/0) - via - endereço do gateway dessa interface - table - nome da tabela de roteamento. Os mesmos valores devem ser especificados em **routes** e **routing-policy** para uma interface, mas devem ser diferentes de uma interface para outra. Criamos essas tabelas no arquivo **rt_tables** - from - o endereço de origem do pacote. Para os fins deste manual, esse é o endereço IP da interface - prioridade - um valor numérico obrigatório [/step] [step num="11"] Depois de fazer as configurações e salvar o arquivo, verifique se há erros na configuração: [/step] ``` netplan generate ``` [step num="12"] Uma saída como essa indicará um erro se estiver presente (nesse caso, está faltando um espaço): [/step] ``` /etc/netplan/50-cloud-init.yaml:23:12: YAML inválido: indentação inconsistente: routes: ^ ``` [step num="13"] Se a configuração for compilada corretamente, a saída estará ausente. Isso significa que é hora de aplicar as alterações: [/step] ``` netplan apply ``` [step num="14"] Depois de aplicar as alterações, as interfaces de rede configuradas dessa forma ficarão disponíveis do lado de fora em seus endereços IP públicos. https://serverspace.com.br/support/help/configure-network-interfaces-ubuntu-18.md Aprenda a configurar várias interfaces de rede no Ubuntu 18.04 usando Netplan e roteamento baseado em políticas para garantir acesso a múltiplos IPs públicos simultaneamente. Para garantir a operação correta de várias interfaces de rede com endereços IP públicos no Ubuntu 18.04 ao mesmo tempo, não basta apenas escrever parâmetros básicos para elas no Netplan. Nesse caso, todos os pacotes deixarão o servidor pelo gateway padrão, o que significa que o servidor estará disponível somente em um endereço IP público. Esse é o ponto negativo do roteamento pelo endereço de destino. Aqui, adicionaremos as configurações necessárias no Netplan para que várias interfaces de rede funcionem corretamente no Ubuntu 18.04. ## Desativar o ajuste automático do Netplan Quando você cria um servidor [Ubuntu 18.04 no Serverspace](https://serverspace.com.br/services/cloud-servers.md) ou adiciona novas interfaces de rede a ele no painel de controle, os parâmetros de conexão são configurados automaticamente. Além disso, durante uma reinicialização do sistema, o arquivo de configuração do Netplan também é substituído pelos parâmetros reais. Portanto, todas as alterações feitas no modo manual serão perdidas. Para evitar isso, vamos desativar essa função. Primeiro, certifique-se de que você adicionou o número necessário de adaptadores de rede ao servidor e, em seguida, crie um arquivo: ``` nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ``` Com o seguinte conteúdo: ``` network: {config: disabled} ``` Após salvar o arquivo, a função de configuração automática das interfaces de rede será desativada. ## Roteamento para várias interfaces de rede [step num="1"] A tarefa de garantir a disponibilidade do servidor por meio de várias conexões de rede e endereços IP será resolvida com o uso de roteamento baseado em políticas, ou seja, com base no endereço do remetente. Assim, cada pacote será enviado do servidor pelo mesmo endereço pelo qual chegou até ele. Em primeiro lugar, você precisa criar tabelas de roteamento para essa finalidade e, para isso, precisa do pacote **iproute2**. Se ele não estiver presente no sistema, você precisará instalá-lo: [/step] ```bash apt-get install iproute2 ``` [step num="2"] Agora, abra o arquivo: [/step] ``` nano /etc/iproute2/rt_tables ``` [step num="3"] É necessário adicionar tantas tabelas ao final quanto o número de interfaces de rede a serem configuradas. Uma tabela é uma única linha de dois números separados por um espaço. O primeiro número é a **prioridade** e o segundo é o **nome da tabela**. Por exemplo: [/step] ``` 60 60 61 61 62 62 ``` [step num="4"] Assim, adicionaremos 3 tabelas. Agora é hora de adicionar configurações de roteamento ao Netplan, abra sua configuração em **/etc/netplan/** com a extensão **.yaml** (o nome do arquivo pode ser diferente em seu sistema): [/step] ``` nano /etc/netplan/50-cloud-init.yaml ``` [step num="5"] O Netplan é sensível à formatação do arquivo de configuração. É muito importante manter o número correto de espaços e não usar tabulações, caso contrário, o resultado não passará na verificação. Um exemplo válido é mostrado abaixo. Ele mostra um bloco de configurações para uma interface (enp0s5); você verá os mesmos blocos na configuração para cada uma das conexões. Você precisa adicionar as configurações **routes** e **routing-policy** em cada um dos blocos e deixar o restante das configurações como estão. Explicação dos valores adicionados: - para - qualquer IP de sub-rede de destino - 0.0.0.0/0 - via - gateway IP da conexão de rede atual - table - nome de uma das tabelas adicionadas a **rt_tables**. Deve corresponder a **routes** e **routing-policy** de cada conexão. Mas para interfaces diferentes - tabelas diferentes. - from - endereço IP dessa interface - prioridade - pode ser deixada como está [/step] ```yaml network: version: 2 ethernets: enp0s5: addresses: - 12.34.56.78/24 gateway4: 12.34.56.1 match: macaddress: ee:ff:gg:hh:ii:jj mtu: 1500 servidores de nomes: endereços: - 8.8.8.8 - 1.1.1.1 - 8.8.4.4 busca: [] set-name: enp0s5 routes: - to: 0.0.0.0/0 via: 12.34.56.1 table: 60 routing-policy: - from: 12.34.56.78 table: 60 prioridade: 300 ``` [step num="6"] Depois de terminar de editar a configuração, vamos nos certificar de que ela está correta: [/step] ``` netplan generate ``` [step num="7"] Se a saída estiver vazia, então tudo foi feito corretamente. Se houver erros, você verá algo parecido com isto: [/step] ``` /etc/netplan/50-cloud-init.yaml:24:1: YAML inválido: tabulações não são permitidas para recuo: - to: 0.0.0.0/0 ^ ``` [step num="8"] Foram encontradas tabulações neste exemplo. Depois de corrigir os erros e passar com êxito pela validação, aplique as alterações: [/step] ``` netplan apply ``` [step num="9"] Agora o servidor estará acessível a todos os endereços IP configurados dessa forma. [/step] ## Conclusão Configurar várias interfaces de rede no Ubuntu 18.04 exige atenção aos detalhes do Netplan e do roteamento baseado em políticas. Desativando a configuração automática do Netplan, criando tabelas de roteamento separadas e ajustando corretamente os blocos routes e routing-policy, você garante que cada IP público funcione corretamente, aumentando a disponibilidade e a estabilidade do servidor. Seguindo este guia, seu servidor estará pronto para operar com múltiplas conexões de rede de forma eficiente e segura. ## FAQ - **Por que preciso desativar a configuração automática do Netplan?** Para evitar que alterações manuais sejam sobrescritas durante reinicializações do sistema. - **O que é roteamento baseado em políticas?** É uma técnica que garante que cada pacote seja enviado pelo mesmo IP pelo qual chegou, permitindo que múltiplos IPs públicos funcionem simultaneamente. - **Como validar a configuração do Netplan?** Execute netplan generate para verificar erros de sintaxe antes de aplicar as alterações. - **Como corrigir erros de YAML no Netplan?** Verifique se não há tabulações, apenas espaços, e que a indentação está correta em todos os blocos do arquivo de configuração. - **Posso usar este método para qualquer número de interfaces?** Sim, basta criar tabelas de roteamento separadas para cada interface e ajustar os blocos routes e routing-policy de acordo. https://serverspace.com.br/support/help/install-and-configure-nginx-on-centos-7.md Neste tutorial, vamos orientá-lo na instalação e na configuração básica do servidor da Web Nginx no CentOS 7. O Nginx é um servidor da Web muito popular devido ao seu desempenho e facilidade de uso. Neste tutorial, vamos orientá-lo na instalação e na configuração básica do Nginx no CentOS 7. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Nginx" já instalado.** ## Instalando o Nginx Se você usar um usuário não raiz, deverá ter direitos sudo e adicionar a todos os comandos sudo na frente deles. [step num="1"] Para instalar o Nginx, adicione o repositório EPEL. [/step] ```bash yum install epel-release -y ``` [step num="2"] Agora, instalaremos o Nginx, bem como o editor de texto nano, por conveniência. [/step] ```bash yum install nginx nano -y ``` [step num="3"] Por padrão, o Nginx é configurado para trabalhar com endereços IPv4 e IPv6. Se o último não estiver configurado no servidor, como no meu caso, o servidor Web simplesmente não será iniciado. Portanto, vamos imediatamente para a configuração: [/step] ``` nano /etc/nginx/nginx.conf ``` [step num="4"] Encontre a próxima linha e comente-a, ou seja, coloque um sinal # em seu início: [/step] ``` listen [::]:80 default_server; ``` [step num="5"] Resultado: [/step] ``` # listen [::]:80 default_server; ``` [step num="6"] Vamos salvar o arquivo e verificar se há erros na configuração: [/step] ``` nginx -t ``` [step num="7"] Saída: [/step] ```yaml nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ``` [step num="8"] Se sua saída for diferente, ela indicará quais erros precisam ser corrigidos na configuração. [/step] [step num="9"] Agora vamos iniciar o Nginx e adicioná-lo à execução automática. [/step] ```bash systemctl enable --now nginx ``` [step num="10"] Se estiver usando o Firewall, será necessário adicionar uma regra de permissão para o servidor da Web. Abaixo está um exemplo para o Firewalld, digite os comandos em sequência: [/step] ``` firewall-cmd --zone=public --permanent --add-service=http firewall-cmd --zone=public --permanent --add-service=https firewall-cmd --reload ``` ## Configurando o local dos arquivos do site [step num="11"] Por padrão, o nginx exibe uma página de informações sobre o site. Vamos configurar um local diferente para os arquivos do site e adicionar nossa própria página. Primeiro, vamos criar os diretórios necessários. [/step] ``` mkdir -p /var/www/default ``` [step num="12"] Agora, vamos criar a própria página em uma nova pasta: [/step] ``` nano /var/www/default/index.html ``` [step num="13"] E adicionar conteúdo a ela, que pode ser qualquer coisa. Por exemplo: [/step] ``` # My first web page ``` [step num="14"] Vamos definir o proprietário do diretório e do arquivo nele contido como o usuário nginx: [/step] ```bash chown -R nginx:nginx /var/www/default/ ``` [step num="15"] Usaremos o host virtual já existente na configuração do nginx e substituiremos a configuração para o local dos arquivos do site. Para fazer isso, abra a configuração do nginx: [/step] ``` nano /etc/nginx/nginx.conf ``` [step num="16"] Você precisa encontrar a seção **server**, que começa com **listen 80 default_server;**, e nela o parâmetro **root**, que define o caminho para os arquivos do site. Vamos substituí-lo pelo caminho **/var/www/default/** que acabamos de criar: [/step] ``` server { listen 80 default_server; # listen [::]:80 default_server; nome_do_servidor _; root /var/www/default/; ... ``` [step num="17"] Salve o arquivo e reinicie o nginx. [/step] ```bash systemctl restart nginx ``` [step num="18"] Agora, ao acessar o endereço do servidor na janela do navegador, você verá o conteúdo da página recém-criada. [/step] ## Configuração do processamento do PHP [step num="19"] Para trabalhar com PHP, instale o php-fpm: [/step] ```bash yum install php-fpm ``` [step num="20"] Agora vamos executá-lo e adicioná-lo à inicialização: [/step] ```bash systemctl enable --now php-fpm ``` [step num="21"] Adicione à configuração do nginx, no final da mesma seção **server** de antes, as configurações para trabalhar com o php-fpm: [/step] ``` nano /etc/nginx/nginx.conf ``` ```css location ~ .php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; include fastcgi_params; } ``` [step num="22"] Reinicie o nginx: [/step] ```bash systemctl restart nginx ``` [step num="23"] Vamos criar um arquivo para testar a funcionalidade do php-fpm: [/step] ``` echo "" > /var/www/default/info.php ``` [step num="24"] Vamos abrir o site http://server-IP/info.php na barra de endereços do navegador e ver informações sobre o PHP: [/step] Screenshot 1. Verificação da operação do PHP. [step num="25"] Essa saída confirma que o nginx + php-fpm está funcionando. Depois de testar a operação do servidor, certifique-se de excluir essa página, pois ela representa uma ameaça à segurança do servidor. https://serverspace.com.br/support/help/connecting-the-pfsense-2-4-server-to-the-network.md Este é um guia sobre como conectar um servidor PFSense 2.4 à rede usando a linha de comando e a interface da Web. Este é um guia sobre como conectar um servidor PFSense 2.4 à rede no Serverspace usando a linha de comando e a interface da Web. Vamos instalar o servidor virtual **PFSense** em uma rede isolada. Primeiro, você deve conectar o servidor à rede isolada no **Painel de Controle**. Clique em **Redes** no menu vertical à direita, selecione a rede desejada (ou crie uma nova) e conecte o servidor. O servidor deve estar desligado durante a conexão. Conectando o servidor à rede ## Conectando o PFSense via linha de comando Ligue o servidor e abra um terminal como root, clicando em "Web Console" e digitando o login e a senha. ## Configuração quando o DHCP está desativado No menu do usuário do pfSense, digite a opção 1 (Assign Interfaces). ``` Enter an option: 1. ``` Digite "**y**" para confirmar a configuração da rede. ``` Valid interfaces are: vtnet0 ca:04:d7:1a:3c:a1 (up) VMware VMXNET3 Ethernet Adapter vtnet1 ca:04:8e:66:d4:47 (down) VMware VMXNET3 Ethernet Adapter Do VLANs need to be set up first? If VLANs will not be used, or only for optional interfaces, it is typical to say no here and use the webConfigurator to configure VLANs later, if required. Should VLANs be set up now [y|n]? y ``` Em alguns casos, é possível definir opcionalmente o nome da interface principal para a VLAN. Se você não souber qual valor especificar, pressione **Enter**. ``` VLAN Capable interfaces: vtnet0 ca:04:d7:1a:3c:a1 (up) vtnet1 ca:04:8e:66:d4:47 Enter the parent interface name for the new VLAN (or nothing if finished): ``` Digite o nome da interface externa. Essa interface já está configurada. ``` If the names of the interfaces are not known, auto-detection can be used instead. To use auto-detection, please disconnect all interfaces before pressing 'a'; to begin the process. Enter the WAN interface name or 'a' for auto-detection (vtnet0 vtnet1 or a): vtnet0 ``` Digite o nome da interface local. Ela será configurada posteriormente. ``` Enter the LAN interface name or 'a' for auto-detection NOTE: this enables full Firewalling/NAT mode. (vtnet1 a or nothing if finished): vtnet1 ``` Pressione "**y**" para confirmar a atribuição das interfaces. ``` The interfaces will be assigned as follows: WAN -> vtnet0 LAN -> vtnet1 Do you want to proceed [y|n]? y ``` A seguinte entrada será exibida na linha de comando após o salvamento bem-sucedido das configurações. ``` Writing configuration...done. One moment while the settings are reloading... done! VMware Virtual Machine - Netgate Device ID: XXXXXXXXXXXXXXXXXXXXXX *** Welcome to pfSense 2.4.2-RELEASE-p1 (amd64) on pfsense24 *** WAN (wan) -> vtnet0 ->; v4: XXX.XXX.XXX.XXX/24 LAN (lan) -> vtnet1-> ``` Para definir o endereço IP da interface LAN, digite a opção 2 (Set interface(s) IP address). ``` Enter an option: 2 ``` Digite o número que corresponde ao tipo de interface que você deseja configurar. ``` Available interfaces: 1 - WAN (vtnet0 - static) 2 - LAN (vtnet1) Enter the number of the interface you wish to configure: 2 ``` Digite o endereço IP local na rede especificada no painel de controle; no nosso caso, será 10.0.0.3. ``` Enter the new LAN IPv4 address. Press ; for none: > 10.0.0.3 ``` Especifique a máscara de sub-rede. **Nota:** A máscara de sub-rede especifica uma parte fixa do endereço e afeta a capacidade da rede (número de endereços disponíveis). Ela é especificada como o número de bits que não muda de endereço para endereço. Por exemplo, 24 é equivalente a escrever "255.255.255.0" e representa 256 endereços disponíveis (254 em funcionamento). ``` Subnet masks are entered as bit counts (as in CIDR notation) in pfSense. 255.255.255.0 = 24 255.255.0.0 = 16 255.0.0.0 = 8 Enter the new LAN IPv4 subnet bit count (1 to 31): > 24 ``` Nas próximas duas etapas, pressione Enter. ``` For a WAN, enter the new LAN IPv4 upstream gateway address. For a LAN, press for none: > Enter the new LAN IPv6 address. Press for none: > ``` Pressione "**n**" quando for perguntado se deseja ativar o servidor DHCP na LAN. ``` Do you want to enable the DHCP server on LAN? (y/n) n ``` Pressione Enter para concluir. ``` The IPv4 LAN address has been set to 10.0.0.3/24 You can now access the webConfigurator by opening the following URL in your web browser: http://10.0.0.3/ Press to continue. ``` Após a atribuição bem-sucedida do endereço IP, a seguinte entrada será exibida. ``` WAN (wan) -> vtnet0 -> v4: XXX.XXX.XXX.XXX/24 LAN (lan) -> vtnet1 -> v4: 10.0.0.3/24 ``` ## Configuração quando o DHCP está ativado: Para obter um endereço IP dinamicamente, a opção 8 (Shell) deve ser selecionada. ``` Enter an option: 8 ``` Execute o comando **dhclient ** com o nome da interface local. ``` dhclient vmx1 ``` Use o utilitário **ifconfig** para ver o endereço IP e as configurações que foram obtidas. ## Conectando-se por meio da interface da Web Vá para o painel de controle da interface do pfSense e digite o login e a senha indicados no endereço da Web. Para adicionar uma interface LAN, selecione **Interfaces** no menu horizontal e, em seguida, clique em **Assignments**. Menu Assignments no Pfsense Na janela exibida, selecione a interface necessária, clique em **Add** e salve o parâmetro selecionado clicando em **Save**. Para configurar as interfaces, selecione **Interfaces** e, em seguida, LAN. Selecione **Enable interface** na janela exibida. Habilite a interface no pfsense ## Configuração quando o DHCP está desativado. No campo **Tipo de configuração IPv4**, selecione **IPv4 estático**. No campo **IPv4 Address**, especifique o endereço e a máscara da rede local. Salve suas alterações clicando em **Save** na parte inferior da janela. **Nota:** a máscara de sub-rede define uma parte fixa do endereço e afeta a capacidade da rede (o número de endereços disponíveis). Ela é especificada como o número de bits que não muda de endereço para endereço. Por exemplo, 24 é equivalente a escrever "255.255.255.0" e representa 256 endereços disponíveis (254 em funcionamento). Aplique as alterações salvas clicando em **Apply Changes**. ## Configuração Quando o DHCP estiver ativado. No campo **Tipo de configuração IPv4**, selecione **DHCP**. Salve as alterações clicando em **Save** e, em seguida, em **Apply Changes**. O endereço IP atribuído é exibido na parte inferior da página principal, à direita das informações do sistema. https://serverspace.com.br/support/help/permissions-delegation-in-active-directory.md Neste guia, você saberá como delegar permissões no Active Directory, como direitos exclusivos para criar usuários e grupos. Em grandes organizações, há várias equipes de administradores de TI e especialistas em help desk; nesse caso, a delegação é necessária. Por exemplo, os especialistas em help desk ou líderes de equipe podem redefinir senhas, os administradores de sistema podem alterar associações de grupos e somente os administradores de arquitetos de TI podem gerenciar UOs. Essa separação de funções é realmente útil para operações e segurança. Para realizar a delegação de controle, você precisa de permissões de administrador do domínio ou ter controle total sobre as UOs nas quais deseja delegar o controle. Você pode fazer isso de várias maneiras: via ADUC, prompt de comando e outros. ## Delegação via ADUC Para delegar o controle por meio do **Active Directory Users and Computers (dsa.msc)**. Siga estas instruções: Execute o dsa.msc. Clique com o botão direito do mouse na UO necessária e selecione Delegar controle... O **Assistente de delegação de controle** é exibido e você precisa clicar em "**Next**". Em seguida, clique em "**Add...**", escolha a quem deseja delegar o controle e clique em **Next** Na janela Tasks to Delegate (Tarefas a delegar), selecione as tarefas que deseja delegar. Você também pode criar uma tarefa personalizada do zero. Clique em **Next** e **Finish.** As permissões de delegação podem ser visualizadas nas propriedades da OU na guia **Security**. ## Delegação por meio da linha de comando Para a delegação de permissões, a Microsoft desenvolveu o **dsacls.exe**. Ele é bom para implantações com script. Também é bom para exibir as permissões atuais. Você pode usar o parâmetro /a para exibir todas as permissões da UO, por exemplo: ``` dsacls.exe "OU=Employees,DC=office,dc=local" /a ``` **_ _** Aqui podemos ver as permissões da KJenkins que delegamos em nosso exemplo anterior. Para adicionar novos privilégios delegados a uma conta, precisamos atribuir a ela permissões de acordo com determinada sintaxe. A sintaxe consiste em permissões básicas e avançadas. Aqui está a lista de permissões básicas: - **GR -** Leitura genérica - **GE** - Execução genérica - **GW** - Escrita genérica - **GA** - Controle total genérico As permissões avançadas mais populares: - **SD** - Excluir - **DT** - Excluir um objeto e todos os objetos filhos - **RC** - Ler informações de segurança - **WD** - Alterar informações de segurança - **WO** - Alterar informações do proprietário - **CC** - Criar objeto filho - **DC** - Excluir objeto filho - **RP** - Ler propriedade - **WP** - Gravar propriedade Vamos delegar ao nosso usuário KJenkins as permissões **deletar** para a UO de funcionários: ``` dsacls.exe "OU=Employees,DC=office,DC=local" /G OFFICEKJenkins:SD; ``` ** ** ## Delegação por meio dos grupos internos Por padrão, há grupos internos, como Operadores de conta e Operadores de servidor, que têm tarefas administrativas no Active Directory. Você pode colocar qualquer usuário nesses grupos e obter permissões adicionais no domínio sem a necessidade de conceder acesso de controle total. No entanto, esteja ciente de que o grupo Account Operators integrado fornece mais permissões do que as realmente necessárias. Eles podem criar, modificar e excluir todos os objetos, exceto os membros do grupo Admins. do domínio, em todas as UOs, exceto na UO Controladores do domínio. ## Melhores práticas para delegação de direitos de UO - Construa uma matriz de controle de delegação para documentar todos os direitos de acesso ao seu AD - Sempre use grupos ao delegar permissões, não use contas de usuários individuais. Será mais fácil e mais seguro para você conceder acesso de delegação - Evite negar permissões porque elas têm precedência sobre as permitidas e isso pode tornar suas listas de acesso muito complexas para gerenciar. - Tente testar as configurações de delegação para verificar se há efeitos indesejados. https://serverspace.com.br/support/help/how-to-enable-active-directory-recycle-bin.md A Lixeira do Active Directory permite que os administradores restaurem objetos excluídos. Este guia o ajudará a fazer isso. A Lixeira do Active Directory permite que os administradores restaurem objetos excluídos. Como ativar a Lixeira do Active Directory: - [Encontrar o servidor mestre de nomes de domínios](#stepone) - [Ativar a lixeira no Centro Administrativo do AD](#steptwo) - [Habilitar a Lixeira no console do PowerShell](#stepthree) ## Encontrar o servidor mestre de nomes de domínios Recomendamos ativar o recurso Lixeira em seu DC com a função **Domain Naming Master**. Para saber qual controlador de domínio tem essa função, você precisa usar o aplicativo netdom.exe com os seguintes parâmetros (execute-o no cmd): ``` netdom.exe query fsmo ``` **_ _** Como alternativa, isso pode ser feito no console do PowerShell com privilégios elevados: ``` Import-Module ActiveDirectory Get-ADForest | Format-List DomainNamingMaster ``` **_ _** ## Como habilitar a lixeira no Centro Administrativo do AD. Para fazer isso, você precisa de uma conta de usuário de administrador de domínio. Inicie o Centro Administrativo do AD (**start->run->dsac.exe**). Clique no nome do seu domínio e, no painel "**Tarefas**", clique em "**Ativar lixeira...**". Como alternativa, clique com o botão direito do mouse em seu domínio na visão geral e clique em "**Habilitar lixeira...**". É exibida a janela de confirmação, que informa que a Lixeira só pode ser ativada uma vez sem uma opção de desativação. Clique em **OK**. Depois de ativar o compartimento, precisamos atualizar a janela do ADAC. Clique em OK no aviso exibido e atualize o ADAC clicando no botão Atualizar no canto superior direito da janela: Você verá que um novo contêiner chamado "**Deleted Objects**" aparece próximo ao contêiner "**Computers**". ## Como ativar a lixeira no console do PowerShell. A Lixeira também pode ser ativada com o console do PowerShell. Você precisa executar o **PowerShell.exe** com permissões elevadas e digitar o seguinte código: ``` Import-Module ActiveDirectory Enable-ADOptionalFeature -Identity "CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=office,DC=local" -Scope ForestOrConfigurationSet –Target "office.local" ``` Substitua _office, local, office.local_ por seus próprios parâmetros de domínio. O sistema solicitará confirmação, digite "**y**" para continuar e o contêiner "**Deleted Objects**" será exibido. Portanto, agora, depois que um objeto do AD é excluído, seu atributo "**isDeleted**" é definido como "**true**", mas seu atributo "**isRecycled**" não é alterado. Com esses parâmetros, o objeto excluído é movido para "**Deleted Objects**", de onde você pode restaurá-lo facilmente clicando com o botão direito do mouse e selecionando restaurar. Em 60 dias, o tempo de vida da reciclagem expira e o parâmetro "**isRecycled**" muda para "**true**"; nesse caso, um objeto é excluído permanentemente. https://serverspace.com.br/support/help/how-to-manage-active-directory-computers-part-1-creating-and-deleting-computer-accounts.md Este guia mostrará a você como criar e excluir contas de computador no Microsoft Active Directory de várias maneiras. As contas ou objetos de computador representam dispositivos conectados ao AD. Eles são armazenados no banco de dados do AD após a conexão com o domínio. Isso é necessário para aplicar diferentes GPOs a eles e acompanhar suas atualizações, se você tiver o WSUS instalado. E o mais importante é estabelecer uma autenticação segura para os usuários que fazem login no Windows. Para gerenciar computadores, você precisa de administrador de domínio, operadores de conta ou direitos delegados e fazer isso a partir da estação de trabalho com as ferramentas RSAT instaladas ou do controlador de domínio. ## Como criar uma conta de computador no AD Vamos criar uma conta de computador usando vários métodos. Essa conta pode ser usada para anexar um dispositivo a ela. ### Criação de conta de computador com o ADUC Execute o **ADUC (****dsa.msc****).** Vá para a UO em que você deseja armazenar esses objetos, clique com o botão direito do mouse nessa **UO -> New-> Computer:** Ou você pode fazer isso clicando em **Action -> New -> Computer.** Em **New Object - Computer**, digite o **Nome do computador** e o **nome anterior ao Windows 2000** de acordo com sua política de nomenclatura. Escolha qual grupo pode inserir essa máquina no domínio e clique em **OK.** ** ** ### Criação de conta de computador com o ADAC Execute o ADAC (dsac.exe), clique com o botão direito do mouse no nome do domínio e selecione **New->Computer. **A tela **Criar computador** é exibida, na qual é necessário digitar **Nome do computador, NetBIOS do computador** **nome**, de acordo com sua política de nomenclatura. Especifique a UO onde deseja armazenar o item do computador clicando em **Alterar...** Você também pode especificar qual grupo pode inserir esse computador em um domínio e protegê-lo contra exclusão. Clique em **OK** no final. ### Criando uma conta de computador com o Cmd.exe Para essa tarefa, precisamos usar o dsadd.exe. Use o seguinte comando para criar um objeto de computador no Active Directory: ** ** ``` dsadd.exe computer "CN=WKS033,CN=Computers,DC=office,DC=local" ``` ### Criação de conta de computador com o PowerShell Use as seguintes linhas de código do PowerShell para criar uma conta de computador chamada "WKS033" no domínio office.local. ``` Import-Module ActiveDirectory New-ADComputer -Name "WKS033" -sAMAccountName " WKS033" -Path "CN=Computers,DC=office,DC=local" ``` ## Como excluir uma conta de computador no AD É importante excluir computadores antigos do seu domínio para evitar bagunça nos relatórios do WSUS e no aplicativo GPOs. Há várias maneiras de fazer isso. ### Excluindo a conta de computador do AD com o ADUC Execute o **ADUC (****dsa.msc****)**. Vá para a UO que contém os computadores necessários e, no menu **Action**, selecione **Find**. Digite o nome do computador no campo **Nome** e clique em **Encontrar agora...** Exclua o computador nos resultados da pesquisa clicando com o botão direito do mouse no computador e selecionando a opção **Eliminar**. Clique em **Yes** na janela de confirmação. Se você receber o seguinte erro posteriormente: Clique com o botão direito do mouse no computador novamente e vá para **Properties -> Object**, desmarque a opção "**Protect object from accidental deletion**" e execute a operação de exclusão novamente. ### Excluindo a conta de computador do AD com o ADAC Execute o **ADAC (****dsac.exe**). Alterne o painel esquerdo para a exibição em árvore e localize a UO necessária, digite o nome do computador no painel **Filtro** e pressione Enter. Selecione o computador a ser excluído nos resultados da pesquisa, clique com o botão direito do mouse nele e selecione Excluir. Clique em **Sim** para confirmar. Se você receber a mensagem de erro: Clique com o botão direito do mouse no objeto de computador **-> Properties** e desmarque a opção "**Protect from accidental deletion**". Depois disso, refaça o processo de exclusão. ### Excluindo a conta de computador do AD com cmd.exe ****Para essa tarefa, precisamos usar o **dsrm.exe**. Use-o com os seguintes parâmetros para excluir uma conta de computador, que no nosso caso é WKS033. ** ** ``` dsrm.exe "CN=WKS033,CN=Computers,DC=office,DC=local" ``` ### Excluindo a conta de computador do AD com o Windows PowerShell Essa tarefa também pode ser feita facilmente com o Powershell. Aqui está o código para excluir uma conta de computador. Em nosso exemplo, o nome do computador é WKS033 ``` Import-Module ActiveDirectory Remove-ADComputer -Identity "CN=WKS033,CN=Computers,DC=office,DC=local" ``` https://serverspace.com.br/support/help/how-to-manage-active-directory-computers-part-2-rename-and-join-computers-to-the-domain.md Neste guia, você aprenderá a renomear computadores Windows e a uni-los em um domínio do Active Directory. As contas ou objetos de computador representam dispositivos conectados ao AD. Eles são armazenados no banco de dados do AD após a conexão com o domínio. Isso é necessário para aplicar diferentes GPOs a eles e acompanhar suas atualizações, se você tiver o WSUS instalado. E o mais importante é estabelecer uma autenticação segura para os usuários que fazem login no Windows. Para ingressar uma estação de trabalho em um domínio, o dispositivo precisa estar na mesma rede que os controladores de domínio. Também é possível ingressar em um dispositivo por meio de uma **VPN**. Nesse caso, o dispositivo precisa ser capaz de resolver o nome do ambiente do AD. O **DHCP** pode definitivamente ajudar com isso, mas você também pode fazer isso adicionando as informações do domínio ao arquivo **hosts**. ## Como ingressar um computador no domínio É possível ingressar um computador no domínio de três maneiras diferentes. Vamos ver como fazer isso na prática. ### Aderindo ao domínio com a GUI Para ingressar em um servidor Windows no AD, execute as seguintes etapas: Clique com o botão direito do mouse no botão **Iniciar** ou pressione o botão **Iniciar** no teclado e a tecla **_X_** simultaneamente e selecione **Sistema**. Role a tela para baixo até a parte inferior e clique em "**Informações do sistema**". Depois disso, clique em "**Alterar configurações**" ao lado de **Nome do computador** e, na janela exibida, clique em **Alterar...** Na janela **Domain changes**, digite o nome de domínio DNS em "**Member of Domain**" e clique em OK. Insira as credenciais de administrador do domínio e clique em **OK três vezes. ** Clique em **Close** e, em seguida, em **Restart Now**. Parabéns, sua estação de trabalho ingressou no domínio! ### Aderir ao domínio usando o Windows PowerShell A maneira mais fácil de adicionar um dispositivo baseado no Windows a um Active Directory é usar o Powershell e o cmdlet **Add-Computer**: ``` Add-Computer -DomainName office.com -Credential OFFICEAdministrator Restart-Computer ``` ## Como renomear uma conta de computador Renomear um computador é uma tarefa bastante fácil de realizar, que pode ser feita de três maneiras diferentes. ### Renomeando o computador nas configurações ** **No Windows Server, isso pode ser feito de forma semelhante ao ingresso no domínio, mas desta vez faremos isso de forma um pouco diferente. Clique com o botão direito do mouse no botão **Iniciar** ou pressione o botão **Iniciar** no teclado e a tecla **X** simultaneamente e selecione **Sistema**. Clique em **Renomear este PC** e digite um novo nome para o dispositivo de acordo com sua política de nomes. Clique em **Next**, insira suas credenciais de administrador do domínio se o computador já estiver dentro do domínio e, em seguida, reinicie o servidor. Você terá um servidor com novo nome após a reinicialização. ## Renomeando o computador no Cmd.exe Renomear o computador no prompt de comando é uma tarefa fácil, basta digitar o seguinte código no computador de destino: ``` netdom.exe renamecomputer localhost /newname WKS033 /reboot ``` ## Renomear o computador com o Windows PowerShell O Windows PowerShell permite renomear um computador em segundos, digitando dois comandos curtos em uma máquina de destino: ``` Rename-Computer WKS001 Restart-Computer ``` https://serverspace.com.br/support/help/how-to-manage-ous-in-active-directory.md Neste guia, você aprenderá a gerenciar unidades organizacionais no domínio do Active Directory: crie, exclua e altere-as. Uma unidade organizacional (OU) é um subcontêiner ou subpasta em um AD onde residem contas de usuário, computadores, grupos etc. As UOs só podem ser gerenciadas por administradores de domínio e por usuários com permissões delegadas a uma UO específica. As UOs podem ser aninhadas e você pode vincular GPOs a elas. ## Criação de uma unidade organizacional As UOs são criadas por meio do Active Directory Administrative Center (ADAC), do Active Directory Users and Computers (ADUC), do prompt de comando e do PowerShell. ### Criando uma OU com o ADAC Vamos criar uma OU por meio do ADAC: Execute o arquivo **dsac.exe**. Alterne para a exibição em árvore e expanda o domínio ou a OU onde deseja colocar a nova. Clique com o botão direito do mouse em uma UO ou domínio, selecione **Novo...** e, em seguida, selecione Unidade organizacional. A janela **Create Organizational Unit** é exibida: Digite um nome exclusivo para a OU e clique em OK. ### Criação de UO com a linha de comando Para criar uma OU por meio do **cmd**, execute o **dsadd.exe** com os seguintes parâmetros: ``` dsadd.exe ou "OU=testorg,DC=office,DC=local" -desc "TestOU" ``` Isso criará uma OU de teste no domínio com a descrição "TestOU". ### Criação de OU com o PowerShell O cmdlet **New-ADOrganizationalUnit** pode nos ajudar a realizar a tarefa de criação. Execute o PowerShell como **Administrador** e digite o seguinte: ``` Import-Module ActiveDirectory New-ADOrganizationalUnit "TestOU" -Description "TestOU" ``` Isso criará um TestOU no domínio com a descrição "TestOU". ## Excluindo uma unidade organizacional As OUs não podem ser excluídas facilmente; elas são protegidas contra exclusão acidental por padrão. Para excluir uma **Unidade Organizacional**, precisamos desmarcar a caixa de seleção **Protegida contra exclusão acidental** nas propriedades da OU. ### Excluindo a OU com o ADAC Abra o **Active Directory Administrative Center** (dsac.exe). Alterne para a exibição em árvore, expanda seu domínio e localize a UO que deseja excluir. Clique com o botão direito do mouse na UO e, em seguida, em **Delete**. A janela **Confirmação de exclusão** é exibida: Clique em Yes (Sim) para confirmar. Se a OU contiver objetos filhos, clique em Yes (Sim) novamente. ### Excluindo a OU usando a linha de comando Para excluir uma UO usando um prompt de comando, precisamos usar a ferramenta **dsrm.exe** em **cmd** executado como administrador com a seguinte sintaxe: ``` dsrm.exe "OU=TestOU,DC=office,DC=local" -subtree ``` Isso removerá completamente uma OU com todas as sub-OUs existentes. ### Excluindo a OU com o Windows PowerShell Para excluir uma UO, precisamos usar o cmdlet New-ADOrganizationalUnit do PowerShell: ``` Import-Module ActiveDirectory Remove-ADObject -Identity "OU=TestOU,DC=office,DC=local" -Recursive -Confirm:$False ``` Isso removerá completamente a OU TestOU com todas as sub-OUs existentes. ## Modificação de uma unidade organizacional Às vezes, você precisa modificar uma UO, portanto, aqui está a explicação para fazer isso de três maneiras diferentes. ### Modificação de uma UO com o Centro Administrativo do Active Directory Abra o **Active Directory Administrative Center (dsac.exe)**. Alterne para a exibição em árvore e localize a UO que você precisa modificar. Clique com o botão direito do mouse e selecione "**Properties:**". Na janela exibida, você pode alterar as configurações da UO, como descrição ou gerente. Desmarque a configuração **Protegido contra exclusão acidental** e clique em **OK**. ## Modificação de OU com a linha de comando Para modificar uma OU, você precisa usar o **dsmod.exe** no cmd como administrador. Mas, nesse caso, você pode modificar apenas a descrição. ``` dsmod.exe ou "OU=TestOU,DC=office,DC=local" -desc "New description" ``` Aqui atribuímos "Nova descrição" à UO de teste. ### Modificando a OU com o Windows PowerShell O cmdlet do PowerShell **Set-ADOrganizationalUnit** é o que usaremos para alterar a UO. Ele é muito poderoso, ao contrário do **dsmod.exe**. Você pode alterar facilmente vários parâmetros da OU, como **DistinguishedName**, **LinkedGroupPolicyObjects** ou **ManagedBy**. Aqui está um exemplo de como alterar o parâmetro **ManagedBy** em uma UO: ``` Import-Module ActiveDirectory Set-ADOrganizationalUnit -Identity "OU=TestOU,DC=office,DC=local" -ManagedBy "CN=User,CN=Users,DC=office,DC=local" ``` https://serverspace.com.br/support/help/how-to-manage-user-accounts-in-active-directory-part-1-creating-and-deleting-user-accounts.md Neste guia, você aprenderá a criar e excluir contas de usuário no domínio do Microsoft Active Directory. Os usuários são um dos objetos mais populares do AD. Eles são usados para autenticação e autorização em estações de trabalho. Também em muitos serviços integrados ao AD. O gerenciamento de usuários é a principal rotina dos administradores de sistemas e especialistas em helpdesk. Este guia ajuda a gerenciar esses objetos de várias maneiras. Para gerenciar usuários, é necessário instalar as **ferramentas RSAT** ou gerenciá-las a partir do seu DC. Você precisa estar assinado como **administrador de domínio** ou como **operador de conta** ou com direitos de delegação para criar objetos na UO atual. ## Criação de uma conta de usuário Há muitas maneiras de criar uma conta de usuário no AD, vamos considerar várias delas. ### Criação de conta de usuário usando o Active Directory Users and Computers (ADUC) Execute o **ADUC (dsa.msc)**. Vá para a UO onde os novos usuários devem estar localizados. Na barra de tarefas, clique no ícone "**Novo Usuário**" ou clique com o botão direito do mouse em um espaço em branco na janela principal e, em seguida, clique em "**Novo -> Usuário**". Outra maneira é clicar com o botão direito do mouse na unidade organizacional necessária e selecionar "**New -> User**". Aparece a mensagem "**New Object - User**", especifique os parâmetros para o seu usuário: - Nome completo, digitando o nome completo no campo Nome completo ou digitando-o nos campos Nome e Sobrenome. - Nome de logon do usuário, esse campo cria os atributos **userPrincipalName** e **sAMAccountName**. Clique em **Next** e especifique uma senha forte e, em seguida, digite-a novamente no próximo campo e verifique os parâmetros necessários; geralmente, para usuários comuns, você deve marcar "**User must change password at next logon**". Clique em **Next and Finish**. Parabéns, o novo usuário foi criado com sucesso! ### Criação de conta de usuário usando o prompt de comando Para fazer a mesma coisa no **cmd**, precisamos usar o utilitário **dsadd.exe**. Os parâmetros a seguir ajudarão a criar um usuário no contêiner "Usuários" no AD e a definir a senha padrão para ele: ``` dsadd.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -upn GSoul@office.local -fn "Gordon" -ln "Soul" -display "Gordon Soul" -pwd "P@&&W0rd" ``` ### Criação de conta de usuário usando o Windows PowerShell Execute o seguinte código do PowerShell com privilégios de administrador: ``` Import-Module ActiveDirectory New-ADUser -Name FRobinson -Path "CN=Users,DC=office,DC=local" -GivenName "Frank" -Surname "Robinson" -sAMAccountName FRobinson ``` ## Como excluir uma conta de usuário Para excluir um usuário do ambiente do AD, siga estes métodos simples. Observe que essa ação não excluirá completamente uma conta de usuário com a **Lixeira do AD ativada**, mas alterará seus atributos de token e a moverá para objetos excluídos. ### Excluindo a conta de usuário no Active Directory Users and Computers (ADUC) Vamos excluir um usuário e, para isso, abra o **Active Directory Users and Computers** (**dsa.msc**). Vá para a UO ou o contêiner onde reside o usuário que você precisa excluir. Clique no menu **Action** ou clique com o botão direito do mouse na UO e selecione **Find**. Digite o nome ou o sobrenome do usuário que deseja excluir no campo de nome e clique em "**Find Now**". Os resultados serão exibidos, selecione o objeto que você precisa excluir, clique com o botão direito do mouse e, em seguida, clique em **Delete** e confirme sua decisão. ### Excluindo uma conta de usuário usando o prompt de comando A seguinte cadeia de caracteres cmd excluirá um usuário "GSoul" do domínio office.local: ``` dsrm.exe user "CN=GSoul,CN=Users,DC=office,DC=local" ``` ### Excluindo a conta de usuário usando o PowerShell Execute o seguinte código do PowerShell para excluir um usuário GSoul do AD: ``` Import-Module ActiveDirectory Remove-ADUser -Identity "CN=GSoul,CN=Users,DC=office,DC=local ``` " https://serverspace.com.br/support/help/how-to-manage-user-accounts-in-active-directory-part-2-moving-and-renaming-user-accounts.md Com este tutorial, você aprenderá a mover e renomear contas de usuário no domínio do Microsoft Active Directory. Os usuários são um dos objetos mais populares do AD. Eles são usados para autenticação e autorização em estações de trabalho. Além disso, em muitos serviços que são integrados ao AD. O gerenciamento de usuários é a principal rotina dos administradores de sistemas e especialistas em helpdesk. Este guia ajuda a gerenciar esses objetos de várias maneiras. Para gerenciar usuários, é necessário instalar as **ferramentas RSAT** ou gerenciá-las a partir do seu DC. Você precisa estar inscrito como administrador de domínio ou usuário de operadores de conta ou com direitos de delegação para criar objetos na UO atual. ## Movendo uma conta de usuário por meio do Active Directory Users and Computers (ADUC) No **ADUC (dsa.msc)**, vá para a UO ou o contêiner com a conta de usuário necessária. Clique com o botão direito do mouse e selecione **Find...**. No campo **Name**, digite o nome da conta de usuário e clique em **Find Now...** Na lista de resultados da pesquisa, selecione o objeto de usuário necessário. Clique com o botão direito do mouse na conta de usuário. Selecione **Move...** no menu. A janela Mover é exibida: Na janela Mover, navegue até a UO ou o contêiner para onde deseja mover o objeto do usuário, selecione-o e clique em OK. ### Movendo uma conta de usuário pelo prompt de comando Para mover o objeto de usuário (GSoul, no nosso caso) para a UO "**Employees**", execute dsmove.exe no cmd com os seguintes parâmetros: ``` dsmove.exe "CN=GSoul,CN=Users,DC=office,DC=local" -newparent "OU=Employees,DC=office,DC=local" ``` ### Movendo uma conta de usuário pelo Windows PowerShell Use o seguinte código do Powershell para mover uma conta de usuário (GSoul em nosso exemplo) para a UO "Employees". ``` Import-Module ActiveDirectory Move-ADObject -Identity:"CN=GSoul,CN=Users,DC=office,DC=local" -TargetPath:"OU=Employees,DC=office,DC=local" ``` ## Como renomear uma conta de usuário no Active Directory Para renomear uma conta de usuário, siga estas várias instruções. ### Renomeando uma conta de usuário por meio de usuários e computadores do Active Directory Em Usuários e Computadores do Active Directory (dsa.msc), no menu **Ver**, ative **Recursos Avançados**. Navegue até a OU ou contêiner onde reside o objeto de usuário necessário. Clique com o botão direito do mouse e selecione **Encontrar...**. No campo **Name**, digite o nome do usuário e pressione "**Find Now**". Nos resultados da pesquisa, clique com o botão direito do mouse na conta de usuário necessária e selecione **Renomear**. Digite o novo nome e pressione **Enter**. Na janela Renomear usuário, insira novos dados para outros atributos e clique em OK. ### Renomeando uma conta de usuário via prompt de comando Use o **dsmove.exe** com os seguintes parâmetros para renomear um usuário: ``` dsmove.exe "CN=GSoul,CN=Users,DC=office,DC=local" -NewName "Gordon Gates" ``` ### Renomeando uma conta de usuário via PowerShell Para renomear um usuário no AD, digite este código no Windows PowerShell: ``` Import-Module ActiveDirectory Rename-ADObject -Identity "CN=GSoul,CN=Users,DC=office,DC=local" -NewName "Gordon Gates" ``` https://serverspace.com.br/support/help/how-to-manage-user-accounts-in-active-directory-part-3-enabling-disabling-and-setting-expiration-period-for-accounts.md Neste guia, você aprenderá a ativar, desativar e definir o período de expiração de uma conta de usuário no domínio do Active Directory. Os usuários são um dos objetos mais populares do AD. Eles são usados para autenticação e autorização em estações de trabalho. Além disso, em muitos serviços que são integrados ao AD. O gerenciamento de usuários é a principal rotina dos administradores de sistemas e especialistas em helpdesk. Este guia ajuda a gerenciar esses objetos de várias maneiras. Para gerenciar usuários, é necessário instalar as ferramentas RSAT ou gerenciá-las a partir do seu DC. É necessário estar inscrito como administrador de domínio ou como usuário de operadores de conta ou com direitos de delegação para criar objetos na UO atual. ## Como habilitar e desabilitar uma conta de usuário no Active Directory Se você quiser impedir que um usuário faça login em sua estação de trabalho, poderá desativá-la, mas se precisar dela novamente por algum motivo, por exemplo, um funcionário que retornou da licença maternidade, poderá ativá-la novamente. Aqui está o guia para fazer isso de várias maneiras. ### Ativação e desativação de uma conta de usuário usando o Active Directory Users and Computers Para ativar/desativar um usuário no ADUC, siga estas etapas: No **ADUC (dsa.msc**). Determine a UO ou o contêiner que armazena as contas necessárias. Clique com o botão direito do mouse e selecione **Find...**. No campo **Nome**, digite o nome da conta de usuário e clique em **Encontrar agora...** Na lista de resultados da **Pesquisa**, selecione o objeto de usuário necessário, clique com o botão direito do mouse nele e selecione **Habilitar conta** ou **Desabilitar conta**, dependendo do que você precisa no momento, e clique em **OK**. ### Ativação/desativação de uma conta de usuário usando cmd.exe Essas tarefas são para o **dsmod.exe**, use-o com as seguintes configurações para habilitar uma conta. ``` dsmod.exe "CN=GSoul,CN=Users,DC=office,DC=local" -disabled no ``` E isso a desativará: ``` dsmod.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -disabled yes ``` ### Ativar e desativar uma conta de usuário usando o Windows PowerShell Aqui está o código do PowerShell para habilitar uma conta de usuário: ``` Import-Module ActiveDirectory Enable-ADAccount -Identity "CN=GRobinson,CN=Users,DC=office,DC=local" ``` E este aqui é para desativar uma conta de usuário: ``` Import-Module ActiveDirectory Disable-ADAccount -Identity "CN=GRobinson,CN=Users,DC=office,DC=local" ``` ## Como definir o período de expiração da conta para uma conta de usuário As contas de usuário podem ser definidas para expirar automaticamente após um determinado período de tempo. ### Definição do período de expiração da conta no ADUC Para definir a expiração da conta no ADUC, siga estas etapas simples: No ADUC (**dsa.msc**), vá para a UO ou o contêiner com a conta de usuário necessária. Clique com o botão direito do mouse e selecione **Find...**. No campo **Name**, digite o nome da conta de usuário e clique em **Find Now...** Na lista de resultados da **Search**, selecione o objeto de usuário necessário. Clique com o botão direito do mouse nele e selecione **Properties**. Selecione a guia **Conta**, na parte inferior dessa guia, altere a opção **Nunca** de "**A conta expira:**" para **Fim de:** e selecione a data necessária. Clique em **OK** para salvar as alterações. ### Definição do período de expiração da conta usando o cmd.exe Use o **dsmod.exe** para definir a quantidade de dias antes da expiração de uma conta: ``` dsmod.exe user "CN=GSoul,CN=Users,DC=office,DC=local" -acctexpires 90 ``` ### Definição do período de expiração da conta usando o Windows PowerShell Para definir o período de expiração do usuário na OU Employees, execute o seguinte script do PowerShell: ``` Import-Module ActiveDirectory Set-ADAccountExpiration -Identity "CN=GSoul,OU=Employees,DC=office,DC=local" -DateTime "11/11/2021 12:00:00" ``` https://serverspace.com.br/support/help/how-to-manage-user-accounts-in-active-directory-part-4-finding-locked-out-accounts-and-unlocking-them.md Com este tutorial, você aprenderá a localizar contas bloqueadas no domínio do Active DIrectory e a desbloqueá-las com êxito. Os usuários são um dos objetos mais populares do AD. Eles são usados para autenticação e autorização em estações de trabalho. Também em muitos serviços integrados ao AD. O gerenciamento de usuários é a principal rotina dos administradores de sistemas e especialistas em helpdesk. Este guia ajuda a gerenciar esses objetos de várias maneiras. Para gerenciar usuários, é necessário instalar as ferramentas RSAT ou gerenciá-las a partir do seu DC. É necessário estar inscrito como administrador de domínio ou como usuário de operadores de conta ou com direitos de delegação para criar objetos na UO atual. ## Como encontrar contas de usuário bloqueadas As contas de usuário podem ser bloqueadas por algum motivo e você precisa solucionar a causa do bloqueio da conta, mas, antes de tudo, precisa obter a lista delas. Há várias maneiras de obter essa lista. ### Encontrar contas de usuário bloqueadas com o Centro Administrativo do Active Directory Execute o Centro Administrativo do Active Directory (**dsac.exe**). Selecione a UO ou o contêiner onde deseja procurar usuários bloqueados. Expanda a barra superior clicando em um botão de seta no canto superior direito. Clique em **Adicionar critérios** e selecione o critério "**Usuários com contas ativadas, mas bloqueadas**". Clique em Adicionar e as contas bloqueadas serão exibidas. ### Encontrar contas de usuário bloqueadas com o Windows PowerShell Para localizar contas bloqueadas no AD, use o seguinte script do PowerShell: ``` Import-Module ActiveDirectory Search-ADAccount -LockedOut -UsersOnly | Format-Table Name,LockedOut -AutoSize ``` ## Como desbloquear uma conta de usuário O bloqueio de contas é um dos casos mais frequentes para os administradores de sistemas em uma organização. Às vezes, é até difícil descobrir sua causa, o que exige uma investigação profunda. Mas não se trata de desativar uma política de bloqueio de conta, pois ela ajuda a proteger suas contas de usuário contra ataques de força bruta. Neste guia, vamos nos concentrar em técnicas fáceis para desbloquear usuários. ### Desbloqueio de contas de usuário por meio do Centro Administrativo do Active Directory Para desbloquear um objeto de usuário, abra o Centro Administrativo do Active Directory (**dsac.exe**), navegue até a UO ou o contêiner em que os usuários existem. Clique com o botão direito do mouse no objeto que deseja desbloquear e selecione **Properties**. Na janela Usuário, clique em **Desbloquear conta** e, em seguida, em **OK**. Para desbloquear todas as contas bloqueadas em uma determinada UO ou contêiner, selecione a UO ou o contêiner onde deseja pesquisar os usuários bloqueados. Expanda a barra superior clicando em um botão de seta no canto superior direito. Clique em **Adicionar critérios** e selecione os "Critérios de **usuários com contas ativadas, mas bloqueadas**". Clique em **Adicionar** e as contas bloqueadas serão exibidas. Selecione todas as contas, vá para **Properties** e clique em **Unlock account**. ### Desbloqueio de contas de usuário pelo Windows PowerShell Para desbloquear uma conta de usuário, é necessário executar o seguinte código do PowerShell: ``` Import-Module ActiveDirectory Unlock-ADAccount -Identity "CN=User,CN=Users,DC=office,DC=local" ``` E, para desbloquear todas as contas bloqueadas, use o cmdlet Search-ADAccount: ``` Import-Module ActiveDirectory Search-ADAccount -LockedOut -UsersOnly | Unlock-ADAccount ``` https://serverspace.com.br/support/help/how-to-manage-user-accounts-in-active-directory-part-5-modifying-several-users-in-bulk.md Com este tutorial, você aprenderá a modificar várias contas de usuário em massa no Microsoft Active Directory. Os usuários são um dos objetos mais populares do AD. Eles são usados para autenticação e autorização em estações de trabalho. Além disso, em muitos serviços que são integrados ao AD. O gerenciamento de usuários é a principal rotina dos administradores de sistemas e especialistas em helpdesk. Este guia ajuda a gerenciar esses objetos de várias maneiras. Para gerenciar usuários, é necessário instalar as ferramentas RSAT ou gerenciá-las a partir do seu DC. É necessário estar inscrito como administrador de domínio ou como usuário de operadores de conta ou com direitos de delegação para criar objetos na UO atual. ## Como modificar vários usuários em massa Às vezes, é necessário modificar um atributo de vários objetos. Modificar vários objetos de uma vez é uma tarefa ligeiramente diferente de editar um único usuário, e há várias maneiras de fazer isso. ### Modificar vários usuários de uma só vez usando o ADUC O **ADUC** é ótimo quando você precisa de filtros simples para agrupar usuários por determinados critérios. Ele tem um mecanismo de seleção, por exemplo, você pode selecionar vários usuários diferentes com o botão **Ctrl** pressionado ou uma parte com o botão **Shift** pressionado. Também é possível selecionar facilmente todos os usuários em uma OU ou contêiner pressionando **Ctrl + A**. Portanto, se você precisar alterar algumas configurações em várias contas de usuário, vamos fazer isso com o AD: No **ADUC (dsa.msc**), localize a UO que atenda às suas necessidades. Selecione os objetos de usuário enquanto o botão **Shift** estiver pressionado. Clique com o botão direito do mouse em todos esses objetos e selecione **Properties**. Altere os atributos fornecidos de acordo com suas necessidades e clique em **OK**. ### Modifique vários usuários de uma só vez usando o Active Directory Administrative Center O ADAC difere do ADUC por fornecer filtros adicionais. Execute o ADAC e selecione a UO a ser usada como escopo base para o filtro. Expanda a barra superior clicando no botão de seta pequena no canto superior direito. Clique no botão **Adicionar critérios**: Adicione os critérios que deseja usar, como "**Usuários com senhas expiradas**" ou crie um filtro por um dos atributos. Selecione o filtro e clique em **Add** para carregá-lo. Você pode usar correspondências como **começa com**, **igual**, **não é igual**, **está vazio** e **não está vazio**. Depois de receber a lista de objetos com base em seu filtro, pressione **Ctrl+A** para selecionar todos eles e clique em **Propriedades**. Altere os atributos que você deseja modificar e clique em OK. ### Modificar vários usuários de uma só vez usando o Windows PowerShell A personalização de filtros no PowerShell é mais avançada e é melhor usada para modificar vários objetos de usuário repetidamente. Em nosso exemplo, filtraremos todas as contas com nome começando com "**admin**" e habilitaremos "**Prevent from accidental deletion"** para todas essas contas: ``` Import-Module ActiveDirectory Get-ADUser -ldapfilter "(sAMAccountName=admin*)" | Set-ADObject - ProtectedFromAccidentalDeletion $true ``` https://serverspace.com.br/support/help/how-to-troubleshoot-ad-replication-using-repadmin-tool.md Com este tutorial, você aprenderá a solucionar problemas de replicação entre os controladores de domínio do Active DIrectory. O Repadmin é um aplicativo cmd para diagnosticar problemas de replicação do AD. Por meio do Repadmin, é fácil visualizar a topologia de replicação de cada controlador de domínio. E use esse conhecimento para alterá-la manualmente e iniciar comunicações de replicação entre os controladores. Com o Repadmin, você pode verificar facilmente os metadados de replicação e os vetores de relevância (atualidade (UTDVEC)). O Repadmin.exe é um recurso incorporado no ambiente do Windows Server a partir de 2008. Ele vem com a função AD Directory Services e também pode ser configurado em sistemas operacionais clientes como o Windows 10 com RSAT. Para usar o Repadmin, você precisa ter dois controladores de domínio com replicação configurada entre eles. ## Lista de comandos ** **O Repadmin.exe tem muitos comandos, vamos nos concentrar nos mais populares: - **/syncall - **usado para sincronizar um determinado DC com outros - **/prp - **se você tiver uma política de replicação de senha (PRP), esse comando ajudará a gerenciá-la - **/queue - **Mostra a fila atual de replicação - **/replicate **- esse comando ajuda a executar a replicação de um DC para outro - **/replsingleobj - **Esse comando é útil se você precisar replicar apenas um determinado objeto entre DCs - **/replsummary - **Mostra um relatório do estado atual da replicação e da integridade do AD - **/showattr **- é usado quando você precisa ver os atributos do objeto - **/showbackup **- essa configuração exibe a hora do último backup - **/showrepl **- Se você precisar saber o status atual da replicação, use essa configuração ## Como obter o status geral da replicação Vamos começar pelo estado geral da replicação, executar o cmd.exe elevado **(start->run->cmd.exe)** e digitar o seguinte comando: ``` repadmin.exe /replsummary ``` O resultado mostrará todas as falhas de replicação existentes em seu ambiente do AD. ## Como forçar a replicação Suponha que você tenha falhas de replicação e precise forçar uma replicação depois de corrigir a falha nas conexões de rede. Em um prompt de comando elevado (cmd.exe) em qualquer DC, execute: ``` repadmin.exe /syncall /Aped ``` Além do comando **/syncall**, temos alguns sinalizadores que sincronizarão todas as partições (/A), usando notificações por push (/p), no modo corporativo em sites do Active Directory (/e) usando nomes distintos em vez de nomes DNS (/d). ## Como gerenciar a replicação de entrada e de saída É possível desativar a replicação de entrada e/ou de saída com a possibilidade de reativá-la posteriormente. Para isso, execute os seguintes comandos no cmd com direitos de administrador: ``` repadmin.exe /options DC01 +DISABLE_INBOUND_REPL ``` Desativa a replicação de entrada em um DC01 ``` repadmin.exe /options DC01 +DISABLE_OUTBOUND_REPL ``` Desativa a replicação de saída em um DC01 ** ** ``` repadmin.exe /options DC01 -DISABLE_INBOUND_REPL ``` ** **Ativa a replicação de entrada em um DC01 ** ** ``` repadmin.exe /options DC01 -DISABLE_OUTBOUND_REPL ``` ** **Ativa a replicação de saída em um DC01 ** **Por exemplo, a opção de desativar a replicação de saída é uma boa maneira de realizar atualizações de esquema sem a necessidade de reconstruir toda a floresta do Active Directory. https://serverspace.com.br/support/help/installing-active-directory-on-windows-server-2019.md Com este tutorial, você aprenderá a instalar um domínio do Active Directory no Microsoft Windows Server 2019. Neste tutorial, você encontrará a instalação do Active Directory no Windows Server 2019. Isso será feito instalando a função apropriada e atualizando o servidor para um controlador de domínio mestre (DC). Também adicionaremos a função DNS para aproveitar os recursos de zona integrados ao Active Directory. Basicamente, trata-se de um processo de duas etapas: instalar a função ADDS e fazer o upgrade para um DC. ## Adicionando a função de serviços de domínio do Active Directory Mas, primeiro, você deve definir um endereço IP estático no servidor e encontrar o nome apropriado para o Windows Server que corresponda à política de nomes da empresa. Após concluir essa etapa, prossiga para a configuração do ADDS. Execute o Server Manager e clique em **Manage -> Add Roles and Features**. Logo depois disso, a janela do assistente é exibida. Em "**Before You Begin**", clique em "**Next**". Agora precisamos selecionar um tipo de instalação, que pode ser baseado em funções de servidor ou infraestrutura virtual (com base no Hyper-V), escolher a primeira configuração e continuar em uma nova janela. Em "Server selection" (Seleção de servidor), precisamos escolher nosso servidor, que geralmente é alocado por padrão, e continuar na próxima seção. Aqui chegamos a **Server Roles**, selecionamos **Active Directory Domain Services** e aceitamos a adição de recursos relacionados. Clique em **Add Features -> Next.** A próxima janela tem o nome de "**Features**", mas aqui não precisamos adicionar nada, portanto, basta ir para a próxima seção. A seção ADDS exibe informações resumidas sobre o seu AD. Aqui, basta clicar em Next. Por fim, prosseguimos com a instalação, clique em **Install** e aguarde um pouco até que a instalação seja concluída. ## Atualização do servidor para um DC Após concluir a instalação, a menos que você feche a janela, haverá um link no resumo de conclusão para promover o servidor a um DC. Esse link está destacado como texto azul. No entanto, é possível promover o servidor por meio de notificações no gerenciador de servidores. Clique em "**Promover servidor para controlador de domínio**". Você será levado ao assistente de implantação do AD, que o ajudará a criar uma floresta no AD. Em "**Deployment Configuration**", escolha a opção "**Add a new forest**" e, em seguida, pense no seu nome de domínio (observe que ele não deve ser igual ao nome de domínio no site da sua organização, deve ser diferente, caso contrário, você terá sérios problemas de DNS) e digite-o no campo apropriado. No meu caso, é office.local e, em seguida, clique em **Next**. Agora chegamos às "**Opções do controlador de domínio**". Aqui você precisa especificar o nível funcional do domínio. Observe que ele pode ser diferente da sua versão atual do sistema operacional; para o Windows Server 2019, o 2016 só está disponível. Para o primeiro servidor AD, escolha a versão mais recente do nível funcional. E se não for o primeiro, você precisará sincronizar o nível entre outros controladores. Em nosso exemplo, também escolheremos a opção de servidor DNS porque não temos DNS autônomo; escolha se precisa ou não dele em sua infraestrutura. Você também deve especificar a senha para o modo de restauração (**DSRM**), salvá-la em seu gerenciador de senhas corporativo e clicar em "**Next**" para continuar. Provavelmente você notará uma mensagem de aviso de DNS, mas ela não deve incomodá-lo neste momento. Ignore-a e siga em frente. Então, chegamos ao **nome do NetBIOS**, recomendo que você o deixe como está, mas pode alterá-lo como quiser, não se esqueça de especificá-lo em letras maiúsculas. Avance para o **próximo**. Em "**Paths**", escolha o local das pastas **NTDS, SYSVOL e LOG**. Você pode escolher uma unidade diferente, dependendo de suas preferências e configurações, mas o padrão também é aceitável. Em "**Review Options**", você verá um resumo de suas seleções. Verifique cuidadosamente se há erros e passe para a próxima etapa se estiver tudo certo. A seção "**Prerequisites Check**" verifica os pré-requisitos do servidor. Aqui, se for encontrado um erro, o processo de instalação será abortado e você precisará corrigi-lo. Caso contrário, se apenas mensagens de aviso forem exibidas (o que é comum), mas a verificação foi bem-sucedida, conforme mostrado, clique em **Install** para continuar. E aqui você precisa esperar um pouco para concluir o processo de instalação. Imediatamente depois disso, o servidor é reiniciado automaticamente. Depois que o servidor concluir o processo de reinicialização, seu primeiro controlador de domínio estará pronto para ser usado e você poderá aproveitar todos os recursos, como o ADUC e o ADAC. https://serverspace.com.br/support/help/install-tigervnc-server-on-centos-8.md Neste tutorial, examinaremos a instalação e a configuração do servidor VNC (Virtual Network Computing) TigerVNC no CentOS 8 A VNC (Virtual Network Computing) permite que você se conecte remotamente a um servidor e o controle usando uma interface gráfica. Neste tutorial, examinaremos a instalação e a configuração do TigerVNC Server no CentOS 8. ## Instalação de um ambiente de área de trabalho gráfico [step num="1"] Nesta etapa, presume-se que ele funcione com o usuário root. Por padrão, o CentOS 8 não tem uma interface gráfica de usuário, e é necessário conectar-se ao servidor via VNC. Portanto, vamos instalar o Gnome. [/step] ```bash dnf groupinstall "Server with GUI" ``` ## Instalando o TigerVNC [step num="2"] Agora vamos instalar o servidor TigerVNC. [/step] ```bash dnf install tigervnc-server ``` [step num="3"] Para se conectar ao servidor via VNC, é melhor não usar o usuário root, pois isso não é seguro. Além disso, algumas funções podem não funcionar corretamente. Portanto, criaremos um usuário comum para a conexão, definiremos uma senha para ele e o adicionaremos ao grupo wheel. Isso lhe dará autoridade sudo. [/step] ``` adduser username passwd username usermod -aG wheel username ``` ## Configuração do TigerVNC [step num="4"] Agora precisamos atribuir a cada usuário uma porta individual para conexão. Para fazer isso, abra o arquivo: [/step] ``` nano /etc/tigervnc/vncserver.users ``` [step num="5"] Adicione a seguinte linha ao final. Você pode colocar quantos usuários com portas forem necessários. O último dígito da porta é mostrado aqui. A primeira parte será sempre 590x. Nesse caso, definiremos a porta 5902 para o usuário **username**. A porta para cada usuário deve ser exclusiva. [/step] ``` :2=username ``` [step num="6"] Agora, abra o arquivo de configuração padrão. [/step] ``` nano /etc/tigervnc/vncserver-config-defaults ``` [step num="7"] Adicione a configuração padrão aqui: [/step] ``` session=gnome ``` [step num="8"] Agora você precisa fazer login com o usuário recém-criado. [/step] ``` su - username ``` [step num="9"] Defina uma senha para esse usuário do servidor TigerVNC. Se escolher uma senha somente para visualização, você não poderá controlar o computador, apenas assistir. [/step] ``` vncpasswd ``` [step num="10"] Agora, inicie o serviço TigerVNC e adicione-o à inicialização automática. [/passo] ```bash sudo systemctl enable --now vncserver@:2 ``` ## Conexão de área de trabalho remota via VNC [step num="11"] Qualquer aplicativo cliente VNC pode ser usado para se conectar. Digite o endereço IP público de seu servidor e a porta 5902 como o servidor VNC. [/step] Screenshot 1. Conectar-se ao servidor VNC. [step num="12"] Digite sua senha do VNC e você verá a área de trabalho remota do servidor. [/passo] Screenshot 2. Área de trabalho remota. Para proteger a conexão, consulte [How to Establish VNC Connection Over SSH tunnel in CentOS 8](https://serverspace.com.br/support/help/vnc-connection-ssh-tunnel-in-centos-8/) https://serverspace.com.br/support/help/automate-tasks-with-cron-ubuntu-20-04.md Neste tutorial, configuraremos tarefas regulares em intervalos específicos usando o Cron no Ubuntu 20.04 e examinaremos sua sintaxe. O Сron permite que você execute automaticamente tarefas e scripts em intervalos específicos. Portanto, é uma ferramenta de administração de servidores muito popular. O Cron está presente em todas as distribuições Linux. Neste tutorial, configuraremos tarefas regulares usando o Cron no Ubuntu 20.04 e examinaremos sua sintaxe. ## Instalando o cron [step num="1"] É muito provável que o cron esteja instalado em seu sistema. Mas se, de repente, esse não for o caso, você poderá corrigi-lo com o comando: [/step] ```bash apt install cron ``` [step num="2"] Adicione-o à inicialização automática e execute-o: [/step] ```bash systemctl enable --now cron ``` ## Configuração simples do cron [step num="3"] A maneira mais fácil de criar uma tarefa regular usando o cron é colocar o script em uma das seguintes pastas: - /etc/cron.hourly - /etc/cron.daily - /etc/cron.weekly - /etc/cron.monthly A frequência de execução é indicada no nome da pasta. É importante definir os direitos de execução e excluir os pontos dos nomes dos scripts. [/step] [step num="4"] Os logs do cron estão localizados aqui: **/var/log/syslog**. Aqui estão os logs de outros aplicativos. Portanto, para ver os logs do cron, use: [/step] ``` grep CRON /var/log/syslog ``` ## Configuração avançada do cron [step num="5"] Para configurar os trabalhos do cron, digite: [/step] ``` crontab -e ``` [step num="6"] Na primeira inicialização, você será solicitado a selecionar o editor de texto de sua preferência. Especifique sua escolha e você verá uma explicação dos desenvolvedores sobre a configuração do cron, após a qual poderá inserir suas tarefas. [/step] [step num="7"] Formato de gravação - os valores a seguir são inseridos por meio de um espaço: - minuto - de 0 a 59 - hora - de 0 a 23 - dia do mês - de 1 a 31 - mês - de 1 a 12 OU jan, fev, mar, abr, etc. - dia da semana - de 0 a 6 (domingo = 0 ou 7) OU sun, mon, tue, wed, thu, fri, sat - comando Asterisco - para todos os valores. Exemplo: [/step] ``` 10 20 * * * /var/script ``` [step num="8"] Para essa entrada, o cron executará o script todos os dias às 20:10. [/step] ## Opções adicionais de configuração do cron [step num="9"] **O hífen (-)** permite que você especifique um intervalo de valores. Por exemplo, execução em dias de semana: [/step] ``` 10 20 * * 1-5 ``` [step num="10"] A **vírgula (,)** permite que você especifique vários valores. Por exemplo, o lançamento às 10 e 20 horas pode ser escrito da seguinte forma: [/step] ``` 10 10,20 * * * ``` [step num="11"] A **barra (/)** permite que você especifique uma etapa de valor. Por exemplo, executar a cada 10 minutos: [/step] ``` */10 * * * * ``` [step num="12"] Além disso, há expressões especiais para a criação simples de tarefas: @reboot, @yearly ou @annually, @monthly, @weekly, @daily, @hourly, @midnight. Quando aplicada, a frequência corresponderá ao seu nome. Por exemplo: [/step] ``` @midnight /var/script ``` [step num="13"] Para ver todos os trabalhos cron configurados, use o comando: [/step] ``` crontab -l ``` ## Gerenciando trabalhos do cron de outros usuários [step num="14"] Você pode visualizar os trabalhos do cron criados por outros usuários se tiver direitos de administrador (**sudo**) ou depois de fazer login com a conta root: [/step] ``` crontab -u username -l ``` [step num="15"] E até mesmo editá-los: [/step] ``` crontab -u username -e ``` ## Gerenciando os direitos de criação de trabalhos cron [step num="16"] Inicialmente, cada usuário tem permissão para criar trabalhos do cron. Para proibir essa ação para determinados usuários, adicione seus logins ao arquivo **/etc/cron.deny**. Outros usuários terão o direito. [/step] [step num="17"] Para evitar que os trabalhos do cron sejam criados para todos os usuários, exceto alguns, adicione esses usuários ao arquivo **/etc/cron.allow**. https://serverspace.com.br/support/help/incremental-backups-rsync-ubuntu-20-04.md Neste tutorial, daremos uma olhada em como configurar um backup periódico incremental usando o Rsync no Ubuntu 20.04. Anteriormente, vimos [instalando o Rsync no Ubuntu 20.04 e criando um backup único](https://serverspace.com.br/support/help/use-rsync-to-create-a-backup-on-ubuntu/). Para concluir a configuração do guia atual, siga as etapas do primeiro artigo. Para muitas tarefas, basta adicionar a execução desse backup ao cron, mas essas ferramentas permitem que você faça e armazene várias cópias de arquivos e tenha um histórico de alterações em um determinado período de tempo. Neste tutorial, daremos uma olhada em como configurar um backup periódico incremental usando o Rsync no Ubuntu 20.04. ## Lógica de backup Ao fazer o backup pela primeira vez, todos os arquivos de destino são colocados na pasta **full**. Nas execuções subsequentes, o script atualiza todos os arquivos nessa pasta e coloca as versões antigas dos arquivos alterados na pasta **increment** com a data correspondente. Dessa forma, um backup completo atualizado é mantido constantemente, bem como uma lista de arquivos alterados para cada data. O período de retenção é configurado, bem como a frequência do lançamento da tarefa. [step num="1"] Realizamos a configuração básica para a interação de servidores usando o Rsync na [primeira parte do manual](https://serverspace.com.br/support/help/use-rsync-to-create-a-backup-on-ubuntu/). Agora vamos criar um script para backups incrementais regulares. [/step] ## Criando um script de backup [step num="2"] Crie pastas para armazenar seus backups: [/step] ``` sudo mkdir -p /opt/destination/full sudo mkdir -p /opt/destination/increment ``` [step num="3"] Ao criar um arquivo de script, você pode selecionar uma pasta de localização. Se você o colocar na pasta **/etc/cron.hourly**, a sincronização ocorrerá de hora em hora e, se estiver na pasta **/etc/cron.daily**, então diariamente, etc. Vamos criar um arquivo de script: [/step] ``` sudo nano /etc/cron.hourly/backup ``` [step num="4"] Evite pontos no nome do arquivo de script nas pastas do agendador do cron. [Saiba mais sobre o Cron](https://serverspace.com.br/support/help/automate-tasks-with-cron-ubuntu-20-04/). [/step] [step num="5"] No script a seguir, você deve especificar pelo menos o endereço IP correto do servidor de origem. O restante dos valores pode ser deixado como está. Cole as seguintes linhas no arquivo aberto: [/step] ```bash #!/bin/bash # Path to folder for backups dest=/opt/destination # Source server IP address ip=10.5.5.10 # Rsync user on source server user=backup-user # The resource we configured in the /etc/rsyncd.conf file on the source server src=data # Set the retention period for incremental backups in days retention=30 # Start the backup process rsync -a --delete --password-file=/etc/rsyncd.passwd ${user}@${ip}::${src} ${dest}/full/ --backup --backup-dir=${dest}/increment/`date +%Y-%m-%d`/ # Clean up incremental archives older than the specified retention period find ${dest}/increment/ -mindepth 1 -maxdepth 2 -type d -mtime +${retention} -exec rm -rf {} ; ``` [step num="6"] Salve o arquivo de script e adicione os direitos de inicialização: [/step] ```bash sudo chmod 0744 /etc/cron.hourly/backup ``` [step num="7"] Agora o script sincronizará os dados na origem e no destino a cada hora, adicionando versões antigas de arquivos excluídos à pasta correspondente em **/opt/destination/increment/**. https://serverspace.com.br/support/help/how-to-install-lemp-stack-ubuntu-20-04.md Vamos dar uma olhada no processo de instalação de uma pilha LEMP (Linux, Nginx, MySQL e PHP) no Ubuntu 20.04. A pilha LEMP é um dos kits mais populares como base para um site. Ela consiste em um servidor Linux, um servidor da Web Nginx, sistemas de gerenciamento de banco de dados MySQL e PHP. Vamos dar uma olhada no processo de instalação de uma pilha LEMP no Ubuntu 20.04. Todos os comandos devem ser executados como **root** ou adicionar **sudo** antes deles. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "LEMP" já instalado.** ## Instalando o Nginx [step num="1"] Primeiro, vamos atualizar o cache do gerenciador de pacotes e instalar o Nginx. [/step] ```bash apt update apt install nginx ``` [step num="2"] Se o firewall estiver ativado, você precisará permitir o acesso ao servidor na porta 80: [/step] ``` ufw allow in "Nginx HTTP" ``` [step num="3"] Saída: [/step] ``` Rules updated Rules updated (v6) ``` [step num="4"] Agora você pode verificar se o servidor Web Nginx está em execução inserindo o endereço IP público do servidor na barra de endereços do navegador. Você verá a seguinte página: [/step] Screenshot 1. Página de boas-vindas do Nginx. ## Instalação do MySQL [step num="5"] Para instalar o servidor MySQL, digite: [/step] ```bash apt install mysql-server ``` [step num="6"] Depois de instalado, execute o script e siga as instruções para definir as configurações de segurança recomendadas do MySQL. A configuração mais segura será obtida com respostas afirmativas e a verificação mais rigorosa da complexidade da senha. [/step] ``` mysql_secure_installation ``` ## Instalação do PHP [step num="7"] Instale os seguintes pacotes para que o PHP seja executado no servidor. [/step] ```bash apt install php-fpm php-mysql ``` ## Configurando o Nginx para processamento de PHP [step num="8"] Neste tutorial, mostraremos a você como configurar o processamento de PHP usando o host virtual padrão como exemplo. Ao configurar o Nginx para trabalhar com vários nomes de domínio, essa configuração também se aplicará. [Guia de configuração básica do host virtual Nginx](https://serverspace.com.br/support/help/nginx-virtual-hosts-on-ubuntu-20-04/). Abra o arquivo de configuração padrão do host virtual. [/step] ``` nano /etc/nginx/sites-available/default ``` [step num="9"] Adicione o próximo código ao final da seção **server**: [/step] ``` localização ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; ``` [step num="10"] Salve e feche o arquivo e verifique se há erros na configuração: [/step] ``` nginx -t ``` [step num="11"] Reinicie o Nginx: [/step] ```bash systemctl restart nginx ``` ## Testando o PHP no servidor Nginx [step num="12"] Agora criaremos um arquivo **.php** em nosso servidor e verificaremos se o PHP está sendo executado. Crie um arquivo: [/step] ``` nano /var/www/html/info.php ``` [step num="13"] Cole o seguinte conteúdo aqui: [/step] ``` ``` [step num="14"] Agora, digite o endereço IP público do seu servidor na barra de endereços do navegador com **/info.php** no final: [/step] ``` http://server-public-ip/info.php ``` [step num="15"] Se você vir o seguinte conteúdo, o PHP funciona bem com o Nginx. [/step] Screenshot 2. Teste de PHP. https://serverspace.com.br/support/help/vnc-connection-ssh-tunnel-ubuntu-20-04.md A VNC em si não é segura. O processo de configuração de um túnel SSH seguro para uma conexão VNC será descrito neste tutorial. Recentemente, abordamos o processo de [instalação e configuração de um servidor TightVNC no Ubuntu 20.04](https://serverspace.com.br/support/help/how-to-install-vnc-on-the-server-under-ubuntu-20-04/). Além disso, agora será descrito o processo de configuração de um túnel SSH seguro para uma conexão VNC. Isso ocorre porque o VNC em si não é seguro. O uso de um túnel SSH corrige a situação. ## Preparação [step num="1"] Na [primeira parte](https://serverspace.com.br/support/help/how-to-install-vnc-on-the-server-under-ubuntu-20-04/), abrimos a porta 5901 do firewall. A conexão agora será direcionada pelo túnel SSH, portanto, você precisa fechar as portas abertas para o VNC. [/step] ``` ufw deny 5901/tcp ``` [step num="2"] Você também precisa fechar todas as sessões do TightVNC em execução. [/passo] ``` vncserver -kill :1 ``` [step num="3"] E iniciar uma sessão que esteja ouvindo apenas conexões internas. Depois de abrir o túnel SSH, essa será a nossa conexão. [/step] ``` vncserver -localhost ``` [step num="4"] Se você tiver configurado o serviço TightVNC, abra sua configuração. [/passo] ``` nano /etc/systemd/system/vncserver.service ``` [step num="5"] Localize o parâmetro **ExecStart** e faça com que ele tenha a seguinte aparência: [/step] ``` ExecStart=/usr/bin/vncserver -localhost ``` [step num="6"] Recarregar o systemd: [/step] ```bash systemctl daemon-reload ``` [step num="7"] E inicie (ou reinicie) o serviço: [/step] ```bash systemctl enable --now vncserver ``` ## Criando um túnel SSH [step num="8"] O comando a seguir deve ser executado no computador cliente a partir do qual você está se conectando ao servidor VNC. Ele conecta a porta 61000 no computador local à porta 5901 no servidor por meio de um túnel SSH. [/step] ```bash ssh -L 61000:localhost:5901 -N -l username VNC_server_IP ``` [step num="9"] As seguintes opções são usadas para criar um túnel: - **L** - encaminha informações da porta local 61000 para a porta remota 5901 via túnel SSH; **** - **-N** - especifica apenas o encaminhamento de portas, não a execução do comando; **** - **-l** - especifica o nome de usuário para criar o túnel. Substitua **username** e **VNC_server_IP** por seus próprios parâmetros. Se você se conectar usando uma chave SSH, não se esqueça de adicionar o parâmetro **-i**, como em uma conexão SSH normal. [/step] ## Usando o Putty para criar um túnel SSH [step num="10"] Use os parâmetros normais de conexão no Putty. Além desses, você precisa adicionar algumas configurações. Ou seja, vá para **Conexão - SSH - Túneis**, digite **61000** na **porta de origem** e **localhost:5901** no **destino**. [/step] [step num="11"] Clique em Add and Apply. [/passo] ## Conectando-se a uma área de trabalho remota [step num="12"] O túnel foi criado. Para se conectar à área de trabalho remota, use o mesmo cliente da primeira parte do tutorial - qualquer cliente VNC que desejar. Digite **localhost:61000** como o servidor VNC. https://serverspace.com.br/support/help/vnc-connection-ssh-tunnel-in-centos-8.md Neste tutorial, mostraremos como estabelecer uma conexão VNC por meio de um túnel SSH no CentOS 8. Recentemente, falamos sobre [como instalar o servidor TigerVNC no CentOS 8](https://serverspace.com.br/support/help/install-tigervnc-server-on-centos-8/). As conexões VNC são inseguras por si só. Portanto, neste tutorial, mostraremos a você como estabelecer uma conexão VNC em um túnel SSH no CentOS 8. Isso protegerá a conexão e os dados transmitidos. Para concluir com êxito as etapas deste manual, você deve concluir todas as configurações da [primeira parte](https://serverspace.com.br/support/help/install-tigervnc-server-on-centos-8/). ## Configuração do SSH [step num="1"] Anteriormente, criamos o usuário **username**. Agora precisamos dar a ele a capacidade de se conectar ao servidor via SSH, caso ele não a tenha. Para testar isso, tente se conectar ao servidor remoto via SSH como **nome de usuário**. [/step] [step num="2"] Se isso funcionar, você poderá prosseguir para a próxima etapa. Caso contrário, será necessário ativar a autorização por senha no servidor ou configurar uma chave SSH para **nome de usuário**. Consulte os capítulos **Configuração de SSH** e **Configuração de chave SSH** na [Nota sobre a configuração inicial do servidor CentOS 8](https://serverspace.com.br/support/help/initial-server-setup-with-centos-8/). [/step] ## Configuração do TigerVNC [step num="3"] Abra o arquivo de configuração do TigerVNC: [/step] ``` sudo nano /etc/tigervnc/vncserver-config-defaults ``` [step num="4"] Descomente a seguinte linha: [/step] ``` # localhost ``` [step num="5"] Reinicie o serviço TigerVNC: [/step] ```bash sudo systemctl restart vncserver@:2 ``` [step num="6"] Agora não será possível conectar-se via VNC ao servidor diretamente de um computador remoto, somente por meio de um túnel SSH. [/step] [step num="7"] Agora vamos passar para o computador cliente. [/step] ## Criando um túnel SSH no Linux ou no MacOS [step num="8"] Em qualquer sistema operacional do tipo Unix, basta abrir um prompt de comando e digitar o seguinte comando: [/step] ```bash ssh -L 62000:localhost:5902 -N username@TigerVNC_server_IP ``` [step num="9"] Substitua **nome de usuário** pelo seu login que foi criado na primeira parte do tutorial. E **TigerVNC_server_IP** pelo endereço de seu servidor. Como você pode ver, esse é um comando **ssh** comum. Os sinalizadores **L** e **N** permitem que ele seja usado para criar um túnel. [/step] ## Criando um túnel SSH no Windows com o Putty [step num="10"] No Putty, as diferenças em relação à conexão SSH normal também não são muito diferentes. É necessário ir para a seção **Connection**, depois **SSH** e, finalmente, **Tunnels**. Digite 62000 na **porta de origem** e localhost:5902 no **destino**. [/step] [step num="11"] Clique em Add and Apply. [/step] ## Estabelecendo uma conexão VNC em um túnel SSH [step num="12"] Depois que o túnel for criado, você poderá estabelecer uma conexão VNC segura com o servidor remoto. Para fazer isso, use qualquer cliente VNC, como na primeira parte. Mas o endereço e a porta do servidor VNC para conexão serão diferentes: **localhost:62000**. https://serverspace.com.br/support/help/disable-enhanced-security-windows-server.md Neste tutorial, desativaremos o Enhanced Security no Internet Explorer no Windows Server 2019 para desativar o bloqueio de conteúdo. A funcionalidade padrão do Internet Explorer é significativamente reduzida nas versões de servidor do Windows, e aparecem avisos de bloqueio de conteúdo. Mas há uma maneira de corrigir a situação. Neste tutorial, desativaremos o Enhanced Security no Internet Explorer no Windows Server 2019. ## Método 1 - Desativar via Server Manager [step num="1"] Inicie o **Server Manager**. [/step] Screenshot 1. Iniciar o Server Manager. [step num="2"] Clique em **Local Server** no menu à esquerda. [/passo] Screenshot 2. Clique em Local Server. [step num="3"] No lado direito, você verá o parâmetro **IE Enhanced Security Configuration**. Clique em **On** ao lado dele. [/passo] Screenshot 3. Abrir a configuração de segurança aprimorada do Internet Explorer. [step num="4"] Na janela que aparece, desative essa opção para administradores e usuários e clique em **OK**. [/passo] Screenshot 4. Desativar a configuração de segurança aprimorada do Internet Explorer. [step num="5"] O Server Manager mostrará **Off** para **IE Enhanced Security Configuration** após alguns segundos. Se isso não ocorrer, tente atualizar o conteúdo da janela. [/step] Screenshot 5. A configuração de segurança aprimorada do IE está desativada. [step num="6"] Agora você pode usar totalmente o Internet Explorer no Windows Server 2019. [/step] ## Método 2 - Desativar via PowerShell [step num="7"] Abra o **PowerShell**. [/passo] Screenshot 6. Abrir o PowerShell. [step num="8"] Cole o script a seguir e pressione Enter. Às vezes, é necessário um toque duplo. [/step] ``` function Disable-IEESC { $AdminKey = "HKLM:SOFTWAREMicrosoftActive SetupInstalled Components{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}" $UserKey = "HKLM:SOFTWAREMicrosoftActive SetupInstalled Components{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}" Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0 Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0 Stop-Process -Name Explorer Write-Host "IE Enhanced Security Configuration (ESC) has been disabled." -ForegroundColor Green } Disable-IEESC ``` Screenshot 7. Colar o script no PowerShell. [step num="9"] O Internet Explorer agora funciona no modo normal. https://serverspace.com.br/support/help/postfix-send-only-smtp-server-centos-8.md Neste tutorial, veremos como instalar e configurar o Postfix como um servidor SMTP somente para envio no CentOS 8. A configuração de um servidor de e-mail para enviar apenas mensagens pode ser muito útil na administração de servidores. Por exemplo, para receber notificações do Cron ou de sistemas de monitoramento. Neste tutorial, veremos como instalar e configurar o Postfix como um servidor SMTP somente de envio no CentOS 8. Primeiro, você precisa ter um nome de domínio a partir do qual o e-mail será enviado, bem como ter autorização no servidor como raiz. ## Instalando e configurando o Postfix [step num="1"] Vamos instalar os pacotes necessários. O Postfix é o próprio servidor de e-mail e o mailx é o ambiente para lidar com o e-mail. [/step] ```bash dnf install -y postfix mailx ``` [step num="2"] Ative a inicialização junto com o sistema e execute o Postfix. [/passo] ```bash systemctl enable --now postfix ``` [step num="3"] Abra o arquivo de configuração do Postfix. [/step] ``` nano /etc/postfix/main.cf ``` [step num="4"] Você precisa localizar o parâmetro **inet_interfaces** e atribuir a ele o valor **localhost** se ele for diferente no momento. No meu caso, o parâmetro foi listado várias vezes, mas com o valor correto. [/step] ``` inet_interfaces = localhost ``` [step num="5"] Defina o parâmetro **myhostname** como seu nome de domínio. [/step] ``` myhostname = domain-name.com ``` [step num="6"] Descomente esta linha: [/step] ``` myorigin = $myhostname ``` [step num="7"] Faça com que a linha se pareça com esta e substitua o nome de domínio pelo seu próprio: [/step] ``` mydestination = $myhostname, domain-name.com, localhost.$mydomain, localhost ``` [step num="8"] Salve e feche o arquivo e reinicie o sistema. [/step] ``` reboot ``` [step num="9"] Agora você precisa configurar o nome do host para o servidor. [/step] ``` hostname domain-name.com echo "domain-name.com" > /etc/hostname ``` [step num="10"] Essas configurações são suficientes em muitos casos, mas alguns servidores de e-mail têm filtros de spam bastante rígidos e rejeitarão e-mails. Nesse caso, são necessárias etapas adicionais. Uma delas é a configuração de um registro PTR para um domínio. Normalmente, para fazer isso, é necessário entrar em contato com o serviço de suporte da empresa que lhe forneceu um endereço IP público. [/step] ## Teste do prefixo [step num="11"] Para enviar uma mensagem de teste, use o comando: [/step] ``` echo "Mail delivery test" | mail -s "[Server] New e-mail" mail@domain.com ``` [step num="12"] O endereço de e-mail deve ser substituído por um endereço real, e o texto entre aspas representa o corpo da carta e seu cabeçalho. [/step] ## Configurando o encaminhamento de correio eletrônico [step num="13"] Às vezes, você precisa receber o e-mail interno do host em uma caixa de correio externa. Por exemplo, para receber notificações do sistema. Existem aliases para essas finalidades. Vamos dar uma olhada na configuração do encaminhamento de e-mail para **root**. Abra o arquivo com aliases. [/step] ``` nano /etc/aliases ``` [step num="14"] Para adicionar o encaminhamento de e-mail para **root** a uma caixa de correio externa, adicione uma linha com sua caixa de correio: [/step] ``` root: mail@domain.com ``` [step num="15"] Salve o arquivo e digite o comando para aplicar as alterações: [/step] ``` newaliases ``` https://serverspace.com.br/support/help/incremental-backups-rsync-centos-8.md O Rsync, em colaboração com o Cron, permite que você configure backups incrementais periódicos no CentOS 8. Neste tutorial, mostraremos a você como fazer isso. O Rsync, em colaboração com o Cron, permite que você configure backups incrementais periódicos no CentOS 8. Neste tutorial, mostraremos a você como fazer isso. Primeiro, você precisa [instalar e configurar o Rsync, como fizemos neste artigo](https://serverspace.com.br/support/help/use-rsync-to-create-a-backup-on-centos-8/). Aqui, mostraremos como usar o poder do Rsync para criar e armazenar várias cópias de arquivos para que você possa ter um histórico de alterações durante um período de tempo. ## Localização dos arquivos de backup [step num="1"] A pasta **full** contém todos os arquivos de backup. Esse local é a cópia real do conteúdo no momento do backup. Na pasta **increment**, os catálogos são criados para cada data. Eles contêm as versões antigas dos arquivos modificados. [/step] ## Configuração de backups incrementais regulares [step num="2"] Vamos primeiro criar pastas para armazenar os backups. [/step] ``` mkdir -p /opt/backup/full mkdir -p /opt/backup/increment ``` [step num="3"] A regularidade da execução do backup será garantida pelo cron. Por exemplo, se colocarmos o script na pasta **/etc/cron.hourly**, a tarefa será executada a cada hora. Use a pasta **/etc/cron.daily**, **/etc/cron.weekly** ou **/etc/cron.monthly** para selecionar uma frequência diferente. [Saiba mais sobre a configuração do cron](https://serverspace.com.br/support/help/automate-regular-tasks-cron-centos-8/). [/step] ``` nano /etc/cron.hourly/backup-task ``` [step num="4"] Cole as seguintes linhas aqui. Se você usou o nome do arquivo (/etc/secret.passwd), o nome de usuário (rsync-user), o nome da fonte de dados (data) são os mesmos do nosso primeiro tutorial, agora resta substituir **source-server-ip** pelo endereço IP do servidor da fonte de dados. Caso contrário, você também deverá fazer a substituição apropriada dos parâmetros no script. [/step] ```bash # Backup rsync -a --delete --password-file=/etc/secret.passwd rsync-user@source-server-ip::data /opt/backup/full/ --backup --backup-dir=/opt/backup/increment/`date +%Y-%m-%d`/ # Clean up find /opt/backup/increment -mindepth 1 -maxdepth 2 -type d -mtime +30 -exec rm -rf {} ; ``` [step num="5"] Na seção **Limpeza**, é possível configurar como as cópias incrementais antigas são excluídas usando o parâmetro **mtime**. Nesse caso, ele é superior a 30 dias. [/step] [step num="6"] Agora resta configurar os direitos necessários para o nosso script. [/step] ```bash chmod 0744 /etc/cron.hourly/backup-task ``` https://serverspace.com.br/support/help/cron-notifications-to-email-on-centos-8.md O Cron tem uma opção útil, e falaremos sobre ela agora. Neste tutorial, configuraremos o envio de notificações do Cron para e-mail no CentOS 8. Recentemente, examinamos a [configuração do Cron no CentOS 8](https://serverspace.com.br/support/help/automate-regular-tasks-cron-centos-8/). Ele tem outra opção útil, e falaremos sobre ela agora. Neste tutorial, configuraremos o envio de notificações do Cron para e-mail no CentOS 8. Antes que o cron possa enviar notificações por e-mail, você precisa configurar um servidor SMTP. Cobrimos a configuração do Postfix em [este tutorial](https://serverspace.com.br/support/help/postfix-send-only-smtp-server-centos-8/). ## Configuração do cron [step num="1"] Para ativar o envio de notificações do cron para e-mail, abra o agendador do cron. [/step] ``` crontab -e ``` [step num="2"] Cole essas linhas e digite seu endereço de e-mail para receber a notificação. [/passo] ``` MAILTO="recipient@domain.com" SHELL=/bin/bash HOME=/ * * * * * echo "Test email from cron" ``` [step num="3"] O resultado de todas as tarefas configuradas será enviado para o endereço de e-mail especificado. [/step] Screenshot 1. Teste de notificação de e-mail do cron. [step num="4"] Se você não receber nenhuma notificação, procure na pasta **Spam**. Você também pode examinar os registros de e-mail para ver o motivo. [/step] ``` cat /var/log/maillog ``` [step num="5"] Alguns servidores de e-mail têm verificações de spam tão rigorosas que são necessárias configurações adicionais do servidor de saída. Por exemplo, adicionar um registro DNS PTR para o nome de domínio. Para fazer isso, é necessário entrar em contato com a equipe de suporte da empresa que lhe fornece um endereço IP público. [/step] [step num="6"] Medidas adicionais para aumentar a confiança na correspondência de seu servidor são ativar a assinatura DKIM para suas mensagens, adicionar registros SPF e DMARC para seu domínio. https://serverspace.com.br/support/help/cron-notifications-to-email-ubuntu-20-04.md Neste tutorial, examinaremos um recurso adicional útil e configuraremos o envio de notificações do Cron por e-mail. Já abordamos [a configuração de tarefas agendadas automáticas usando o cron no Ubuntu 20.04](https://serverspace.com.br/support/help/automate-tasks-with-cron-ubuntu-20-04/). Neste tutorial, examinaremos um recurso adicional útil e configuraremos o envio de notificações do Cron para e-mail. ## Preparação do servidor [step num="1"] Primeiro, você precisa configurar seu servidor para poder enviar e-mails. Você pode seguir as etapas deste tutorial - [Configuração do Postfix como um servidor SMTP Send-Only](https://serverspace.com.br/support/help/postfix-as-a-send-only-smtp-on-ubuntu/). [/step] [step num="2"] Seguir as instruções das duas primeiras etapas deve ser suficiente para nossos propósitos. No entanto, alguns servidores de correio eletrônico colocarão os e-mails não criptografados na pasta Spam ou os rejeitarão completamente. [/step] [step num="3"] Portanto, se você não receber notificações como resultado de seguir as etapas deste guia, tente verificar a pasta de lixo eletrônico e ativar a criptografia SMTP (etapa 4 do guia de configuração do Postfix). [/step] [step num="4"] Para verificar os registros de e-mail do servidor, consulte: [/step] ``` cat /var/log/mail.log ``` ## Configurar o envio de notificações do Cron para e-mail [step num="5"] Abra o arquivo de configuração do Cron. [/step] ``` crontab -e ``` [step num="6"] Coloque essa configuração nele. Substitua o endereço de e-mail pelo seu. [/passo] ``` MAILTO="mail@domain-name.com" SHELL=/bin/bash HOME=/ * * * * * echo "Message from Ubuntu cron" ``` Screenshot 1. Notificação de e-mail do Cron. https://serverspace.com.br/support/help/install-configure-postfix-ubuntu-20-04.md Este tutorial abordará a instalação e a configuração básica do Postfix, o servidor Ubuntu 20.04 e os registros de DNS para ele. O Postfix é um servidor de e-mail bastante comum devido à funcionalidade suficiente para a maioria das tarefas e à facilidade de configuração. Este tutorial abordará a instalação e a configuração básica do Postfix e do servidor para ele. ## Preparação [step num="1"] O servidor deve ter um endereço IP público estático. Você também precisará de um nome de domínio. Vamos primeiro configurar os registros DNS necessários. Para o servidor de e-mail, geralmente é usado um subdomínio de terceiro nível. Como exemplo, usaremos **mail.domain-name.com**. Substitua **domain-name.com** por seu nome de domínio. O nome de domínio de terceiro nível pode ser arbitrário. O principal é usar a opção apropriada na configuração posterior. Os registros DNS geralmente podem ser configurados no painel de controle de um registrador de nomes de domínio ou no seu servidor DNS. Adicione um registro DNS A para o seu domínio chamado **mail** e "target" igual ao endereço IP do futuro servidor de e-mail. [/step] ``` mail A xxx.xxx.xxx.xxx ``` [step num="2"] Adicione o registro DNS MX para o domínio raiz com um valor igual ao nome de domínio do servidor de e-mail: [/step] ``` @ MX mail.domain-name.com ``` [step num="3"] Se o serviço retornar um erro como resultado, tente não usar nada em vez de **@**. [/step] ## Configuração do servidor [step num="4"] Com o nome de domínio de terceiro nível selecionado **mail.domain-name.com**, o nome do host será **mail**. Vamos configurá-lo. [/step] ``` sudo hostnamectl set-hostname mail ``` [step num="5"] Agora abra o arquivo **hosts**. [/step] ``` sudo nano /etc/hosts ``` [step num="6"] Vamos adicionar uma linha para esse servidor com seu endereço IP, seu nome de domínio e nome de host. Essa entrada deve ser colocada diretamente abaixo da entrada para localhost. [/step] ``` xxx.xxx.xxx.xxx domain-name.com mail ``` ## Instalação do Postfix [step num="7"] Vamos instalar o Postfix e o pacote de correio eletrônico **mailutils**. [/step] ```bash sudo apt install postfix mailutils ``` [step num="8"] Durante a instalação, você será solicitado a fornecer opções interativamente. Defina o **tipo de configuração do servidor de e-mail** como **Site na Internet**. [/step] Screenshot 1. Definir o tipo de configuração do servidor de e-mail. [step num="9"] O **nome de correio do sistema** deve corresponder ao nome de domínio para o qual estamos configurando o servidor de correio. Em nosso caso, esse é o **nome-do-domínio.com**. [/step] Screenshot 2. Definir o nome do correio eletrônico do sistema. ## Teste de prefixo [step num="10"] Agora o servidor de e-mail Postfix está pronto para funcionar. Vamos testá-lo e enviar nosso primeiro e-mail. Coloque seu e-mail no seguinte comando e execute-o: [/step] ``` echo "Postfix test" | mail -s "Subject" mail@server.com ``` [step num="11"] Devido ao fato de a criptografia e itens como DKIM ainda não estarem configurados, sua carta provavelmente acabará na pasta Spam. Alguns servidores de e-mail, como o gmail.com, não a aceitarão de forma alguma. Corrigiremos isso mais tarde. Agora você pode responder a essa carta em sua caixa postal e ver essa resposta no servidor de e-mail. [/step] ``` mail ``` [step num="12"] Saída: [/step] ``` "/var/mail/root": 1 message 1 new >N 1 Sender Name Wed Mar 17 04:32 66/2877 RE: Subject ? ``` [step num="13"] Digite **1** e você verá sua resposta. [/passo] A próxima etapa é [configurar o Postfix para usar caixas de correio virtuais](https://serverspace.com.br/support/help/postfix-virtual-mailboxes-ubuntu-20-04/). https://serverspace.com.br/support/help/how-to-install-node-js-on-ubuntu-20-04.md O Node.js é um tempo de execução de JavaScript. Neste tutorial, veremos as diferentes maneiras de instalar o Node.js no Ubuntu 20.04 e seus benefícios. O Node.js é um tempo de execução de JavaScript. Neste tutorial, veremos as diferentes maneiras de instalar o Node.js no Ubuntu 20.04 e seus benefícios. Como instalar o Node.js no Ubuntu 20.04: - [Instalando o Node.js](#stepone) - [Instalando o Node.js com PPA](#steptwo) - [Instalando o Node.js com NVM](#stepthree) ## Instalando o Node.js com o apt [step num="1"] Esse é o método de instalação mais fácil e mais suficiente para muitas finalidades. Além do próprio Node.js, instalaremos imediatamente seu gerenciador de pacotes - **npm**. Os pacotes do Node.js são bibliotecas ou ferramentas que podem ser baixadas usando o npm. [/step] ```bash sudo apt update && sudo apt install nodejs npm ``` [step num="2"] Você pode verificar o sucesso da instalação e, ao mesmo tempo, descobrir a versão usando o comando: [/step] ``` nodejs -v ``` ## Instalando o Node.js com PPA [step num="3"] A instalação por meio do PPA lhe dá uma opção de versão. Confira as versões disponíveis na [documentação](https://github.com/nodesource/distributions/blob/master/README.md#installation-instructions). Também precisaremos do **curl** para continuar. [/step] ```bash sudo apt install curl ``` [step num="4"] Agora, faremos o download e executaremos o script da versão correspondente, que adicionará o PPA aos repositórios do sistema. [/step] ```bash curl -fsSL https://deb.nodesource.com/setup_15.x | sudo -E bash - ``` [step num="5"] E instale o Node.js a partir dos repositórios adicionados. [/step] ```bash sudo apt install nodejs ``` [step num="6"] Vamos verificar a versão instalada. [/step] ```bash node -v ``` [step num="7"] Nesse caso, o npm já está instalado. [/step] ## Instalando o Node.js com o NVM [step num="8"] NVM é o gerenciador de versões do Node.js. Ele permite que você instale diferentes versões do Node.js com pacotes npm ao mesmo tempo e alterne entre elas no tempo de execução. Para instalar a versão mais recente do script de instalação do NVM, vá para [Installing and Updating part of the project page on GitHub](https://github.com/nvm-sh/nvm#installing-and-updating), copie o link e execute-o em seu Ubuntu 20.04. [/step] ```bash wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash ``` [step num="9"] Agora você precisa fazer logout da sua conta e fazer login novamente. A segunda opção é executar os seguintes comandos para garantir a operação do NVM: [/step] ``` export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" bash_completion ``` [step num="10"] Neste ponto, a NVM está pronta para ser usada. Para obter uma lista das versões disponíveis para instalação: [/step] ``` nvm list-remote ``` [step num="11"] Escolha uma versão e instale: [/step] ``` nvm install 14.16.0 ``` [step num="12"] Exibir a lista de versões instaladas: [/step] ``` nvm list ``` [step num="13"] Saída: [/step] ``` v12.21.0 -> v14.16.0 default -> 14.16.0 (-> v14.16.0) ... ``` [step num="14"] Para selecionar uma versão do Node.js, use o comando que indica a versão necessária. Assim, você pode alternar entre diferentes versões se houver várias instaladas. [/step] ``` nvm use v14.16.0 ``` [step num="15"] Se, além das versões instaladas usando o nvm, o sistema também contiver a versão instalada usando o **apt**, ele será marcado como **system**. Para mudar para ela, use: [/step] ``` nvm use system ``` [step num="16"] Além disso, a saída do **nvm list** mostra as versões LTS do Node.js. As que não estão instaladas têm a seguinte aparência: [/step] ``` lts/dubnium -> v10.24.0 (-> N/A) ``` [step num="17"] Para instalá-los, especifique o alias da versão: [/step] ``` nvm install lts/dubnium ``` [step num="18"] Para verificar a versão usada no momento, use o comando: [/step] ```bash node -v ``` [step num="19"] Saída: [/step] ``` v14.16.0 ``` https://serverspace.com.br/support/help/install-node-js-on-windows-server-2019.md Neste tutorial, mostraremos como instalar e usar diferentes versões do Node.js no Windows Server 2019 usando o nvm-windows. Para fins de treinamento ou para explorar as possibilidades, você pode instalar um Node.js diretamente no Windows. Neste tutorial, veremos como fazer isso, usando o Windows Server 2019 como base. [step num="1"] Supõe-se que nenhum Node.js tenha sido instalado no sistema. Se esse não for o caso, você deve primeiro desinstalar a versão antiga [seguindo o guia](https://stackoverflow.com/questions/20711240/how-to-completely-remove-node-js-from-windows). Isso é necessário porque, após a instalação do NVM, podem ocorrer conflitos de versão. Se não tiver certeza, você pode verificar com o comando no PowerShell: [/step] ```bash node --version ``` [step num="2"] Se não houver Node.js no sistema, você verá uma saída semelhante: [/step] Screenshot 1. O nó não existe no sistema. ## Instalando o nvm-windows [step num="3"] Há diferentes maneiras de configurar o Node.js. Usar o Node Version Manager (NVM) é o mais fácil e universal, portanto, vamos usá-lo. O NVM original não funciona no Windows. Mas é por isso que o nvm-windows está sendo desenvolvido. Portanto, vá para a [página de lançamentos do nvm-windows](https://github.com/coreybutler/nvm-windows/releases). [/step] [step num="4"] Faça o download do arquivo **nvm-setup.zip** da versão mais recente. [/step] [step num="5"] Abra o arquivo baixado, execute o arquivo **nvm-setup.exe** e siga as instruções do instalador. Por padrão, são selecionados os valores ideais, que não devem ser alterados desnecessariamente. [/step] ## Instalação do node.js e do npm [step num="6"] Agora, instalaremos a versão LTS mais recente do Node.js. Abra o PowerShell e digite o seguinte comando: [/step] ``` nvm list available ``` [step num="7"] Agora você pode ver todas as versões do Node.js disponíveis para instalação. [/step] Screenshot 2. Versões disponíveis do Node.js. [step num="8"] Escolha a versão LTS mais recente e instale-a usando o comando **nvm install **: [/step] ``` nvm install 14.16.0 ``` Screenshot 3. Instalação do Node.js. [step num="9"] Agora, ative a versão instalada. [/step] ``` nvm use 14.16.0 ``` [step num="10"] Agora você pode ter certeza de que tudo foi instalado corretamente e, ao mesmo tempo, ver as versões do Node.js e do npm: [/step] ```bash node --version npm --version ``` Screenshot 4. Versões do Node.js e do npm. [step num="11"] Neste ponto, você instalou o Node.js e o npm no Windows Server 2019. Agora, vamos ver como você pode ter versões diferentes do Node.js ao mesmo tempo e alternar entre elas. Primeiro, vamos instalar uma versão diferente. Por exemplo, a mais recente. Ela pode ter problemas de confiabilidade, mas contém os recursos mais recentes. [/step] ``` nvm install latest ``` [step num="12"] Agora vamos verificar as versões instaladas: [/step] ``` nvm ls ``` Screenshot 5. Versões instaladas do Node.js. [step num="13"] E mude para a nova: [/step] ``` nvm use 15.13.0 ``` https://serverspace.com.br/support/help/create-discord-bot-windows-server-2019.md Criaremos um bot do Discord usando o Discord.js no Windows Server 2019 desde o início - recebendo um token e a instalação do software. Neste tutorial, criaremos um bot do Discord usando o Discord.js no Windows Server 2019 desde o início - recebendo um token e a instalação do software. ## Criando um bot do Discord e obtendo seu token [step num="1"] Primeiro, você precisa ter uma conta do Discord e criar seu próprio servidor. Em seguida, vá para a seção [Application (Aplicativo) no Portal do desenvolvedor](https://discord.com/developers/applications) e clique no botão **New Application** (Novo aplicativo). [/step] Screenshot 1. Botão New Application (Novo aplicativo). [step num="2"] Em seguida, dê um nome ao seu primeiro aplicativo e clique em **Create**. Você se encontrará em uma página de configurações para o seu aplicativo, que pode ser configurado como quiser. Para os fins deste tutorial, todos os parâmetros podem ser deixados em seus valores padrão. [/step] [step num="3"] Agora, vá para a seção **Bot** e clique em **Add bot**. [/passo] Screenshot 2. Criar um bot do Discord. [step num="4"] Precisaremos do Discord bot Token mais tarde, salve-o. [/passo] Screenshot 3. Copiar token do bot do Discord. [step num="5"] Agora vá para a página **OAuth2**, selecione **bot** para **Scope**, **Send Messages** para **Bot Permissions** e copie o link resultante. Você pode adicionar mais permissões ao bot, se necessário. Mas isso é suficiente para criar um bot. [/passo] Screenshot 4. Criação do link OAuth2 para o bot. [step num="6"] Siga o link copiado e autorize o bot em seu servidor. Depois disso, o bot deverá aparecer entre os membros de seu servidor no Discord. [/passo] Screenshot 5. O bot foi adicionado ao servidor do Discord. ## Instalação do Visual Studio Code e do Node.js [step num="7"] Vá para o site [Visual Studio Code](https://code.visualstudio.com/), faça o download e instale-o. Todos os parâmetros podem ser deixados em seus valores padrão durante a instalação. [/step] [step num="8"] Use este [tutorial para instalar o Node.js no Windows Server 2019](https://serverspace.com.br/support/help/install-node-js-on-windows-server-2019/). [/step] ## Conectando o discord.js e criando um bot [step num="9"] Inicie o Visual Studio Code, abra uma pasta para armazenar os arquivos do seu bot: **Arquivo - Abrir pasta**. [/step] [step num="10"] Abra o Terminal: **View - Terminal**. [/passo] [step num="11"] Agora vamos definir os dados do nosso bot. Você pode deixar os valores padrão e apenas pressionar **Enter** para cada item. [/step] ```bash npm init ``` [step num="12"] Instale o package.json e o discord.js: [/step] ```bash npm install npm install discord.js ``` Screenshot 6. Instalação do package.json e do discord.js. [step num="13"] Agora vamos criar o código para o nosso bot. No lado esquerdo da janela **VS Code**, na seção **EXPLORER**, crie um novo arquivo **index.js** e cole o seguinte código nele: [/step] ```javascript // include the discord.js module const Discord = require('discord.js'); // create a Discord client with the name bot const bot = new Discord.Client(); // print Launched! in the Terminal when the bot started bot.once('ready', () => { console.log('Launched!'); }); bot.on('message', message => { if (message.content === '!Who are you?') { message.channel.send('New Bot!'); } }); // paste here your Discord bot Token new-bot.login('ODIyODE0MDUxMzk3NTMz..IN3Ny34FXXKxB3f_Gy5ItCyI'); ``` [step num="14"] Salve o arquivo. Agora vamos iniciar nosso novo bot. [/step] ```bash node index.js ``` [step num="15"] Saída: [/step] ``` Launched! ``` [step num="16"] Você verá que o bot ficou on-line no servidor em que você o adicionou. Agora vamos verificar seu trabalho e escrever a frase especificada no código - "!Who are you?". [/step] Screenshot 7. Verificando o trabalho de um novo bot. [step num="17"] Parabéns! Nosso primeiro bot do Discord começou a funcionar. https://serverspace.com.br/support/help/postfix-virtual-mailboxes-ubuntu-20-04.md Por padrão, o Postfix lida com o e-mail dos usuários do sistema. Neste tutorial, configuraremos o Postfix para usar caixas de correio virtuais no Ubuntu 20.04. Após a [instalação e configuração básica do Postfix](https://serverspace.com.br/support/help/install-configure-postfix-ubuntu-20-04/), ele pode enviar e receber e-mails enviados para os nomes de usuários registrados no sistema. Neste tutorial, configuraremos o Postfix para usar caixas de correio virtuais no Ubuntu 20.04. ## Configuração do sistema [step num="1"] Em primeiro lugar, é necessária alguma preparação do sistema para a operação das caixas de correio virtuais. Vamos criar uma pasta **caixas de correio virtuais** para isso. Seu nome pode ser arbitrário, mas se você o alterar, não se esqueça de substituir a opção apropriada na configuração posterior. Ela conterá uma pasta para seu nome de domínio. Dentro dela, o Postfix adicionará arquivos correspondentes a cada usuário virtual depois de receber o primeiro e-mail endereçado a ele. [/step] ``` sudo mkdir -p /home/virtualmailboxes/domain-name.com ``` [step num="2"] Agora vamos configurar o usuário **virtualmail**, o grupo e os direitos para trabalhar com essas pastas. [/step] ```bash sudo groupadd -g 2000 virtualmail sudo useradd -g virtualmail -u 2000 virtualmail -d /home/virtualmailboxes -m chown -R virtualmail:virtualmail /home/virtualmailboxes ``` ## Configuração do postfix [step num="3"] Abra o arquivo de configuração do Postfix: [/step] ``` sudo nano /etc/postfix/main.cf ``` [step num="4"] O Postfix pode operar em um dos dois modos ao processar e-mails para um único domínio: - entregar e-mails aos usuários do sistema, conforme configurado anteriormente; - trabalhar com caixas de correio virtuais e entregar e-mails para usuários virtuais. Para configurar a primeira opção, o domínio de destino é adicionado à variável **mydestination**. Portanto, agora vamos removê-lo de lá e trazê-lo para a seguinte forma: [/step] ``` mydestination = localhost.com, localhost ``` [step num="5"] A próxima etapa é adicionar as seguintes configurações ao arquivo de configuração: [/step] ``` virtual_mailbox_domains = domain-name.com virtual_mailbox_base = /home/virtualmailboxes virtual_mailbox_maps = hash:/etc/postfix/virtualmaps virtual_minimum_uid = 500 virtual_uid_maps = static:2000 virtual_gid_maps = static:2000 ``` [step num="6"] A presença da variável **virtual_mailbox_domains** indica que o Postfix está trabalhando no modo de caixa de correio virtual. Ela também contém o domínio para o qual o e-mail está sendo processado. **virtual_mailbox_base** indica o caminho para armazenar o correio, **virtual_mailbox_maps** indica um arquivo com uma lista de usuários virtuais. **virtual_minimum_uid, virtual_uid_maps, virtual_gid_maps** - configurações do usuário do sistema que gerenciará a pasta de correio. [/step] [step num="7"] Agora vamos criar uma lista de caixas de correio virtuais, cujo caminho foi especificado em **virtual_mailbox_maps**. Cada linha desse arquivo deve conter um endereço de e-mail no formato **user@domain** e separado por um espaço **domain/folder** - caminho do arquivo para armazenar o e-mail em relação a **virtual_mailbox_base**. [/step] ``` sudo nano /etc/postfix/virtualmaps ``` ``` user1@domain-name.com domain-name.com/user1 user2@domain-name.com domain-name.com/user2 support@domain-name.com domain-name.com/support ``` [step num="8"] Salve o arquivo. Para aplicar as configurações, você precisa executar dois comandos: [/step] ``` postmap /etc/postfix/virtualmaps postfix reload ``` ## Testando caixas de correio virtuais [step num="9"] Para testar o recebimento de um e-mail por um usuário virtual, vamos enviar um e-mail a ele. Faremos isso em nome de outro usuário criado por nós e indicaremos o e-mail dele como endereço de retorno (parâmetros -u e -r): [/step] ``` sudo echo "Postfix virtual mailboxes test" | mail -r user2@domain-name.com -u user2@domain-name.com -s "Subject" user1@domain-name.com ``` [step num="10"] Para visualizar as mensagens recebidas pelo usuário1, use o comando: [/step] ``` sudo cat /home/virtualmailboxes/domain-name.com/user1 ``` [step num="11"] Saída: [/step] ``` From user2@domain-name.com Wed Mar 31 12:55:19 2021 Return-Path: X-Original-To: user1@domain-name.com Delivered-To: user1@domain-name.com Received: by domain-name.com (Postfix, from userid 0) id 260A481421; Wed, 31 Mar 2021 12:55:19 +0000 (UTC) Subject: Subject To: X-Mailer: mail (GNU Mailutils 3.7) Message-Id: Date: Wed, 31 Mar 2021 12:55:19 +0000 (UTC) From: root Postfix virtual mailboxes test ``` [step num="12"] Se a carta não estiver lá, tente examinar os registros de envio de e-mail usando o comando: [/step] ``` sudo cat /var/log/mail.log ``` [step num="13"] Além disso, se ocorrer um erro, a carta pode ser devolvida ao remetente. É por isso que a enviamos em nome do usuário virtual criado anteriormente. Afinal de contas, o correio não é mais entregue aos usuários do sistema. Para visualizar a caixa postal do remetente (user2), use o comando: [/step] ``` sudo cat /home/virtualmailboxes/domain-name.com/user2 ``` https://serverspace.com.br/support/help/configure-http-2-in-apache-on-centos-8.md O protocolo HTTP/2 foi criado como uma versão mais avançada do HTTP que torna o site mais rápido e reduz a carga no servidor da Web. O protocolo HTTP/2 foi criado como uma versão mais avançada do HTTP. Ele permite que você acelere o site e reduza a carga no servidor da Web e no canal de comunicação. Tudo isso leva a uma redução nos custos e até mesmo a um aumento na posição do site nos mecanismos de pesquisa. Neste tutorial, configuraremos o protocolo HTTP/2 no servidor da Web Apache no CentOS 8. Para começar, você precisará de um arquivo [certificado SSL instalado no Apache](https://serverspace.com.br/support/help/ssl-certificate-on-apache-for-centos-8/). Você pode usar este tutorial - [Como configurar o Let's Encrypt SSL no Apache](https://serverspace.com.br/support/help/lets-encrypt-ssl-with-apache-on-centos-8/). A maioria dos navegadores só funciona com HTTP/2 sobre HTTPS. ## Preparação do sistema [step num="1"] Primeiro, você precisa da versão mais recente do Apache. Portanto, você precisa atualizar os pacotes no sistema. [/step] ```bash dnf upgrade ``` [step num="2"] Nos sistemas CentOS/RHEL 8, o **mod_http2** é instalado com o Apache. Para ter certeza de que ele está no sistema ou instalá-lo, caso contrário: [/step] ```bash dnf install mod_http2 ``` ## Configuração do Apache para HTTP/2 [step num="3"] Certifique-se de que o módulo HTTP/2 esteja ativado no Apache. [/step] ``` cat /etc/httpd/conf.modules.d/10-h2.conf ``` [step num="4"] Saída: [/step] ``` LoadModule http2_module modules/mod_http2.so ``` [step num="5"] Abra o arquivo de configuração do seu host virtual e localize a seção **VirtualHost *:443** [/step] ``` nano /etc/httpd/conf.d/domain-name.com.conf ``` [step num="6"] Ela também pode estar no arquivo **domain-name.com-le-ssl.conf**. Adicione o parâmetro **Protocols** nesse arquivo. [/step] ```xml Protocols h2 http/1.1 ... ``` [step num="7"] Salve e feche o arquivo e, em seguida, reinicie o Apache. [/passo] ```bash systemctl restart httpd ``` ## Verificar se o HTTP/2 funciona [step num="8"] Você pode verificar desta forma: [/step] ```bash curl -I https://domain-name.com ``` [step num="9"] Output: [/step] ``` HTTP/2 200 ... ``` [step num="10"] Seu servidor Web Apache agora usa o protocolo HTTP/2. https://serverspace.com.br/support/help/bacula-administration-tool-ubuntu-20-04.md O Bacula Administration Tool oferece a capacidade de visualizar estatísticas de Jobs e gerenciá-los por meio de uma interface gráfica. A Bacula Administration Tool oferece a capacidade de visualizar estatísticas de Jobs e gerenciá-los por meio de uma interface gráfica. Portanto, ela requer uma versão desktop do Ubuntu ou a [instalação de um ambiente desktop e xRDP](https://serverspace.com.br/support/help/install-xrdp-server-on-ubuntu-20-04/) para conexão remota ao servidor VPS. Você também precisa [instalar e executar a configuração inicial do Bacula](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Neste tutorial, instalaremos e configuraremos a ferramenta de administração do Bacula no Ubuntu 20.04. ## Instalação e configuração da ferramenta de administração do Bacula [step num="1"] Para instalar o Bacula Administration Tool, use este comando: [/step] ```bash apt install bacula-console-qt ``` [step num="2"] Você pode instalá-lo em uma máquina remota a partir daquela em que o Bacula Director está sendo executado. Nesse caso, é necessário alterar a configuração para conexão com o Director. Abra o arquivo **/etc/bacula/bat.conf** e defina o **Nome**, o **Endereço** e a **Senha** corretos para o seu Bacula Director. [/step] ``` Director { Name = Bacula-Director DIRport = 9101 address = 10.5.5.5 Password = "password" } ``` [step num="3"] Se você o instalou no mesmo computador em que o Bacula Director está sendo executado, não é necessário fazer isso. Tudo o que você precisa fazer é verificar se os parâmetros no arquivo **/etc/bacula/bat.conf** correspondem aos parâmetros no arquivo **/etc/bacula/bacula-dir.conf**. [/step] ## Iniciando a ferramenta de administração do Bacula [step num="4"] Não é uma boa ideia executar o Bacula Administration Tool a partir do usuário root. Em alguns casos, o aplicativo pode não iniciar. Para executá-lo como um usuário comum, você deve adicioná-lo ao grupo **bacula**. [/step] ``` sudo usermod -a -G bacula user ``` [step num="5"] Faça logout e login novamente como esse usuário usando SSH. Se você fizer login como ele somente via xRDP, precisará fazer isso via SSH. Por exemplo, depois de fazer login via SSH como o usuário root: [/step] ``` su - user exit ``` [step num="6"] Agora, faça login como esse usuário comum via xRDP e inicie o aplicativo. [/passo] ``` bat ``` [step num="7"] Ou você pode encontrar o Bacula Administration Tool na lista de aplicativos instalados e iniciá-lo. [/passo] [step num="8"] Agora você pode ver a janela do Bacula Administration Tool. Aqui você pode ver todas as entidades criadas, iniciar e desativar Jobs, restaurar e muito mais. [/passo] Tela 1. Janela do Bacula Administration Tool. https://serverspace.com.br/support/help/configure-remote-backups-bacula-centos-8.md Neste tutorial, instalaremos o cliente Bacula em um servidor CentOS 8 e o usaremos para fazer backup de arquivos em um servidor remoto. Neste tutorial, instalaremos o cliente Bacula em um servidor CentOS 8 e o usaremos para fazer backup de arquivos. Os backups serão armazenados em um servidor remoto. Para isso, usaremos a [máquina Ubuntu onde instalamos e configuramos o Bacula Director](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Você pode usar qualquer outro sistema operacional para isso: CentOS, RHEL, Debian, etc. A configuração do Bacula será a mesma. ## Instalando e configurando o cliente Bacula [step num="1"] Instalar o cliente. [/step] ```bash dnf install bacula-client ``` [step num="2"] Se o firewall estiver ativado, adicione uma regra do Bacula a ele. [/passo] ``` firewall-cmd --add-service=bacula-client --permanent firewall-cmd --reload ``` [step num="3"] Agora, abra o arquivo de configuração do cliente Bacula. [/step] ``` nano /etc/bacula/bacula-fd.conf ``` [step num="4"] Especifique a senha do cliente e o nome do diretor do Bacula no arquivo **/etc/bacula/bacula-dir.conf** do servidor: [/step] ``` Director { Name = bacula-dir Password = "password" } ``` [step num="5"] Você também precisará inserir o nome do cliente e o endereço IP que o Bacula Director usará para acessar o cliente. [/step] ``` FileDaemon { Name = CentOS-client-fd ... FDAddress = 10.0.0.5 } ``` [step num="6"] Salve o arquivo e habilite o cliente Bacula. [/passo] ```bash systemctl enable --now bacula-fd ``` [step num="7"] Para garantir a capacidade de restaurar arquivos nessa máquina, crie uma pasta e atribua o Bakula como seu proprietário. [/step] ```bash mkdir /var/bacula chown bacula:bacula /var/bacula ``` ## Configuração do Bacula Director [step num="8"] Você precisa fazer algumas alterações na máquina do servidor para ativar o backup remoto. Primeiro, insira o endereço IP que o cliente Bacula usará para acessar essa máquina no parâmetro **SDAddress** da seção **Storage** no arquivo **/etc/bacula/bacula-sd.conf**. [/step] ``` Storage { ... SDAddress = 10.0.0.10 } ``` [step num="9"] Faça a mesma coisa para o **DirAddress** no arquivo **/etc/bacula/bacula-dir.conf**. [/step] ``` Director { ... DirAddress = 10.0.0.10 } ``` [step num="10"] E no parâmetro **Address** da seção **Storage**. [/step] ``` Storage { ... Address = 10.0.0.10 } ``` [step num="11"] E o último está no arquivo **/etc/bacula/bconsole.conf**, digite o mesmo IP no parâmetro **address**. [/step] ``` Director { ... address = 10.0.0.10 } ``` [step num="12"] Você precisa adicionar informações sobre o cliente e seus parâmetros de backup ao arquivo **/etc/bacula/bacula-dir.conf**. **Name**, **Address** e **Password** devem ser os mesmos que especificamos no cliente no arquivo **/etc/bacula/bacula-fd.conf**. [/step] ``` Client { Name = CentOS-client-fd Address = 10.0.0.5 FDPort = 9102 Catalog = MyCatalog Password = "password" } ``` [step num="13"] Adicione as informações do caminho de backup aos parâmetros **File** em uma nova seção **FileSet** com um nome exclusivo. [/step] ``` FileSet { Name = CentOS-FS Include { Options { signature = MD5 } File = /path/to/be/backuped1 File = /path/to/be/backuped2 } } ``` [step num="14"] Em seguida, insira um novo agendamento com um novo nome e a frequência de backup necessária. [/step] ``` Schedule { Name = CentOS-Daily Run = Full daily at 01:00 } ``` [step num="15"] O novo pool permite que você separe os arquivos de backup dos existentes. [/passo] ``` Pool { Name = CentOS-Pool Pool Type = Backup Label Format = CentOS- } ``` [step num="16"] Por fim, insira uma seção Job e insira os parâmetros **Name** das seções recém-criadas **Client**, **FileSet**, **Schedule**, **Pool** nos campos correspondentes. [/step] ``` Job { Client = CentOS-client-fd Name = CentOS-Backup JobDefs = DefaultJob Enabled = yes Level = Full FileSet = CentOS-FS Schedule = CentOS-Daily Pool = CentOS-Pool Storage = LocalSD Write Bootstrap = "/var/lib/bacula/RemoteBackup.bsr" } ``` [step num="17"] É possível inserir outra seção **Job** para restaurar arquivos. [/passo] ``` Job { Client = CentOS-client-fd Name = CentOS-Restore Messages = Standard FileSet = CentOS-FS Pool = CentOS-Pool Storage = LocalSD Type = Restore Bootstrap = "/var/lib/bacula/RemoteBackup.bsr" Where = /var/bacula # Path on the client to restore the backup } ``` [step num="18"] A tarefa de backup agora será executada de acordo com o cronograma configurado. [/step] ## Iniciando o backup e a restauração [step num="19"] As tarefas podem ser iniciadas manualmente. Há um console de gerenciamento para essa finalidade. Ele também fornece informações sobre tarefas agendadas e muitas outras. Para acessá-lo, digite: [/step] ``` bconsole ``` [step num="20"] Output: [/step] ``` Connecting to Director 10.0.0.10:9101 1000 OK: 103 Ubuntu-Server.local-dir Version: 9.4.2 (04 February 2019) Enter a period to cancel a command. * ``` [step num="21"] Você pode ver todos os comandos digitando o comando **help**. Para executar um trabalho, digite **run** ou para iniciar um trabalho de restauração, digite **restore** e siga as instruções. https://serverspace.com.br/support/help/backup-mysql-on-centos-8-with-bacula.md Neste tutorial, configuraremos um processo regular de backup do banco de dados MySQL usando a ferramenta de backup de código aberto Bacula no CentOS 8. Já [examinamos brevemente em que consiste o Bacula](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Neste tutorial, configuraremos um processo regular de backup de banco de dados MySQL usando o Bacula no CentOS. Se você quiser configurar [backups de um servidor CentOS 8 remoto, leia este artigo](https://serverspace.com.br/support/help/configure-remote-backups-bacula-centos-8/). Depois de concluir essas configurações, você pode simplesmente adicionar as configurações deste tutorial e obter um backup do banco de dados MySQL de um servidor remoto. ## Instalação de pacotes [step num="1"] Vamos instalar todos os pacotes necessários. [/step] ```bash dnf install bacula-director bacula-storage bacula-console bacula-client ``` ## Configuração do MySQL [step num="2"] Altere o sistema de gerenciamento de banco de dados padrão para MySQL, se ele ainda não estiver definido. [/step] ``` alternatives --config libbaccats.so There are 3 programs which provide 'libbaccats.so'. Selection Command ----------------------------------------------- 1 /usr/lib64/libbaccats-mysql.so ... ``` [step num="3"] Selecione **1**. Conecte-se ao MySQL. [/passo] ```bash mysql -u root -p ``` [step num="4"] Crie um banco de dados e um usuário para o Bacula. [/passo] ```sql create database bacula; create user bacula@localhost identified by 'password'; grant all privileges on bacula.* to bacula@'localhost'; flush privileges; exit ``` [step num="5"] Execute este script para criar a estrutura da tabela. [/passo] ``` /usr/libexec/bacula/make_mysql_tables -p ``` [step num="6"] Para a tarefa de backup, crie um novo usuário e atribua a ele somente os direitos de acesso necessários. [/step] ```bash mysql -u root -p create user dump@localhost identified by 'password'; grant select, lock tables on *.* to dump@localhost; grant process on *.* to dump@localhost; flush privileges; exit ``` ## Preparação de scripts [step num="7"] Para tornar o Bacula capaz de criar backups de um banco de dados MySQL, você deve primeiro fazer o dump. Usaremos a capacidade do Bakula de executar scripts personalizados antes e depois do Job de backup. Vamos criar um script para criar um dump do banco de dados. [/step] ``` nano /etc/bacula/pre-mysql.sh ``` [step num="8"] Insira esses comandos nele. Observe que a senha do usuário **dump** deve ser inserida após o parâmetro **-p** sem espaço e altere **database_name** para o nome do banco de dados de destino. [/step] ```bash #!/bin/bash # Preparation of the folder rm -rf /opt/mysql-backup/ mkdir -p /opt/mysql-backup/ # Backup mysqldump -u dump -ppassword database_name > /opt/mysql-backup/dump$(date +%Y-%m-%d_%H:%M).sql ``` [step num="9"] E um script para limpar o espaço em disco após o backup. [/step] ``` nano /etc/bacula/post-mysql.sh ``` [step num="10"] Insira as seguintes linhas aqui. [/step] ```bash #!/bin/bash # Clearing the folder rm -rf /opt/mysql-backup/ ``` [step num="11"] Torne os scripts executáveis. [/step] ```bash chmod +x /etc/bacula/pre-mysql.sh chmod +x /etc/bacula/post-mysql.sh ``` ## Configuração do Bacula [step num="12"] Abra o arquivo /etc/bacula/bacula-dir.conf e defina a senha do usuário MySQL **bacula** no parâmetro **dbpassword** da seção **Catalog**. [/step] ``` Catalog { Name = MyCatalog dbname = "bacula"; dbuser = "bacula"; dbpassword = "password" } ``` [step num="13"] Insira as seções com as configurações de backup do MySQL aqui. [/step] ``` FileSet { Name = MySQLFileSet Include { Options { signature = MD5 } File = /opt/mysql-backup }} Schedule { Name = MySQL Run = Full daily at 03:00 } Job { Name = "MySQLBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = MySQLFileSet Schedule = MySQL Storage = File1 ClientRunBeforeJob = "/etc/bacula/pre-mysql.sh" ClientRunAfterJob = "/etc/bacula/post-mysql.sh" Write Bootstrap = "/var/spool/bacula/%c.bsr" } ``` [step num="14"] Inicie e ative os serviços do Bacula. [/passo] ```bash systemctl enable --now bacula-dir.service systemctl enable --now bacula-fd.service systemctl enable --now bacula-sd.service ``` [step num="15"] Agora, os backups do banco de dados selecionado serão feitos no horário especificado. https://serverspace.com.br/support/help/restoring-a-root-password-via-recovery-boot.md Aprenda a restaurar sua senha de root por meio da inicialização de recuperação. Siga as instruções simples para recuperar o controle de forma rápida e segura Esta instrução descreve como usar uma imagem de recuperação para restaurar a senha de um usuário root. ## Recuperação de senha [step num="1"] Primeiro, abra o servidor para o qual você deseja restaurar a senha raiz na lista de servidores. [/step] [step num="2"] Abra a guia **Recovery** e selecione **"Boot from the recovery image"**. [/step] [step num="3"] Confirme uma conexão com a imagem de recuperação. [/etapa] O tipo de inicialização será alterado. **Importante**: após a inicialização a partir da imagem de recuperação, o servidor poderá ser acessado por meio de um console da Web! [step num="4"] Para inicializar a partir da imagem de recuperação, é necessário reiniciar o servidor a partir do painel de controle ou usando as ferramentas do sistema operacional. A seguir, vamos ver um exemplo de reinicialização a partir do painel de controle. [/step] [step num="5"] Vá para a guia **Actions** -> **Power** e reinicie o servidor. [/step] [step num="6"] Confirme a reinicialização do servidor. [/step] [step num="7"] Depois de reiniciar o servidor, abra o **console da Web**. [/step] [step num="8"] Selecione a primeira opção ***Boot SystemRescueCd usando as opções padrão**. [/step] Se uma linha de comando já tiver sido exibida no console, a opção de inicialização foi selecionada por padrão. [step num="9"] Em seguida, você precisa descobrir qual partição de disco tem o sistema: fdisk -l [/step] Nesse caso, é /dev/vda2/. [step num="10"] Crie um diretório temporário para um novo sistema:mkdir /tmp/reset [/step] [step num="11"] Monte a partição do sistema na pasta criada:mount /dev/vda2 /tmp/reset [/step] [step num="12"] Altere o diretório raiz para um novo diretório: chroot /tmp/reset [/step] [step num="13"] Para alterar a senha da raiz, execute o seguinte comando:passwd [/step] [step num="14"] Digite e confirme sua nova senha. [/step] ATENÇÃO: ao digitar uma senha, os caracteres da senha não são exibidos, mas ainda assim são digitados! [step num="15"] Altere a inicialização da imagem de recuperação para a inicialização do sistema na guia **Recovery** do painel de controle. [/step] [step num="16"] Reinicie o servidor no painel de controle. [/step] [step num="17"] Depois de reiniciar o servidor, conecte-se a ele com uma nova senha, como de costume. https://serverspace.com.br/support/help/install-openvpn-server-on-ubuntu-20-04.md Neste tutorial, instalaremos o servidor OpenVPN no Ubuntu 20.04. Isso permitirá que você estabeleça um canal VPN seguro. Neste tutorial, instalaremos o servidor OpenVPN no Ubuntu 20.04. Para fazer isso, é necessário fazer login como usuário root. Você também precisa saber o IP público do servidor com o qual os clientes estabelecerão um canal VPN seguro. ## Instalação e configuração do OpenVPN Usaremos o script para instalar e configurar todos os pacotes necessários para iniciar o servidor OpenVPN. Tudo o que você precisa fazer é fornecer a ele o endereço IP público correto do seu servidor. Vamos fazer o download. ```bash wget https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh ``` Torne-o executável. ```bash chmod +x openvpn-install.sh ``` Agora, execute o script. ``` ./openvpn-install.sh ``` Você será solicitado a confirmar alguns parâmetros que têm valores ideais por padrão. A única coisa que realmente vale a pena verificar é o IP público do servidor. Os outros parâmetros só devem ser alterados se você souber o que está fazendo e por quê. Tela 1. Configurações de instalação do OpenVPN. Na última etapa, você precisa definir o nome do cliente e escolher se deseja proteger a configuração com uma senha ou não. Por motivos de segurança, é melhor definir uma senha. Quando o processo terminar, você poderá verificar se o servidor OpenVPN está escutando conexões de entrada. ``` ss -tupln | grep openvpn ``` Tela 2. O servidor OpenVPN está escutando conexões de entrada ## Conexão do cliente OpenVPN Usaremos outra máquina Ubuntu para mostrar o processo de conexão do cliente. Você pode configurar qualquer sistema Linux dessa forma ou fazer o download do cliente Windows no site do OpenVPN: [https://openvpn.net/community-downloads/](https://openvpn.net/community-downloads/) No final do processo de configuração do servidor OpenVPN, você verá uma mensagem informando que a configuração do cliente foi criada e o caminho para ela foi especificado. Faça o download para o cliente. ```bash scp user@vpn-server:/path/to/configuration.ovpn /home/user ``` Instale o cliente OpenVPN. ```bash sudo apt install openvpn ``` Agora inicie o cliente e especifique o caminho para a configuração baixada do servidor. ``` openvpn --config /path/to/configuration.ovpn ``` A próxima linha mostra que a conexão foi estabelecida com êxito. ``` Wed Dec 9 19:59:58 2020 Initialization Sequence Completed ``` ## Adicionar mais clientes OpenVPN ou excluir um Para adicionar ou remover clientes no servidor ou excluir o OpenVPN, execute o script novamente e selecione a opção apropriada. ``` ./openvpn-install.sh ``` Saída: ```sql What do you want to do? 1) Add a new user 2) Revoke existing user 3) Remove OpenVPN 4) Exit Select an option [1-4]: ``` ## FAQ - **Preciso ser usuário root para instalar o OpenVPN? ** Sim, privilégios de root são necessários para instalar pacotes e configurar a VPN corretamente. - **Posso usar este guia em outras versões do Ubuntu? ** Este tutorial é específico para Ubuntu 20.04, mas pode funcionar em versões próximas, com pequenas adaptações. - **Como proteger a configuração do cliente com senha? ** Durante a instalação, você pode definir uma senha para o cliente, garantindo maior segurança na conexão VPN. - **É possível adicionar múltiplos clientes? ** Sim, o script permite adicionar ou remover clientes facilmente, conforme necessário. - **Posso usar clientes Windows ou Linux? ** Sim, o OpenVPN suporta conexões de sistemas Linux e Windows; basta baixar o cliente apropriado no site oficial. ## Conclusão Seguindo este tutorial, você terá um servidor OpenVPN funcional no Ubuntu 20.04, permitindo conexões seguras e criptografadas entre clientes e servidor. O uso do script simplifica a instalação, configuração e gerenciamento de usuários, tornando fácil adicionar ou remover clientes conforme necessário. Para segurança adicional, sempre configure senhas para clientes, restrinja acesso às portas do servidor e mantenha o OpenVPN atualizado. Com essa abordagem, sua infraestrutura VPN será estável, confiável e segura para uso corporativo ou pessoal. https://serverspace.com.br/support/help/configure-http-2-in-nginx-ubuntu-20-04.md Neste tutorial, veremos como configurar o HTTP/2 no servidor da Web Nginx no sistema Ubuntu 20.04. O HTTP/2 é uma versão aprimorada do protocolo HTTP que permite aumentar a velocidade do site e reduzir a carga no servidor da Web. Tudo isso é possível ao fazer várias solicitações simultâneas em uma única conexão TCP. Aumentar a velocidade não só melhora a experiência do usuário com o site, mas também pode elevar sua posição nos resultados dos mecanismos de pesquisa. Neste tutorial, veremos como configurar o HTTP/2 no servidor da Web Nginx no sistema Ubuntu 20.04. Condições necessárias: - O [servidor da Web Nginx está instalado e sua configuração básica foi realizada](https://serverspace.com.br/support/help/nginx-virtual-hosts-on-ubuntu-20-04/); - [Seu site usa o protocolo HTTPS](https://serverspace.com.br/support/help/ssl-certificate-on-nginx-ubuntu-20-04/). A maioria dos navegadores da Web exige uma conexão criptografada para habilitar o HTTP/2. ## Preparando o sistema para HTTP/2 [step num="1"] Primeiro, você precisa de uma nova versão do servidor da Web Nginx para poder habilitar o HTTP/2. Atualize os pacotes no sistema. [/step] ```bash apt update && apt upgrade ``` ## Configurando o HTTP/2 no Nginx [step num="2"] Abra o arquivo de configuração de seu host virtual. [/step] ``` nano /etc/nginx/sites-available/domain-name.com ``` [step num="3"] Localize esta linha no arquivo: [/step] ``` listen 443 ssl; ``` [step num="4"] Adicione **http2** aqui: [/step] ``` listen 443 ssl http2; ``` [step num="5"] Se você vir a linha, começando com: [/step] ``` listen [::]:443 ssl ... ``` [step num="6"] Em seguida, adicione **http2** nela também. [/step] ``` listen [::]:443 ssl http2 ... ``` [step num="7"] Salve e feche o arquivo e verifique se há erros na configuração. [/step] ``` nginx -t ``` [step num="8"] Reinicie o Nginx. [/step] ```bash systemctl restart nginx ``` [step num="9"] É isso, o protocolo HTTP/2 está ativado em seu site. [/passo] ## Verificar se o HTTP/2 está ativado [step num="10"] Você pode verificar se o HTTP/2 está ativado diretamente na linha de comando de qualquer máquina Linux. Para fazer isso, você precisa instalar o curl. Por exemplo, para o Ubuntu: [/step] ```bash apt install curl ``` [step num="11"] Agora, digite este comando com seu FQDN: [/step] ```bash curl -I https://domain-name.com ``` [step num="12"] Saída: [/step] ``` HTTP/2 200 ... ``` [step num="13"] Isso significa que seu site está usando HTTP/2 no momento. [/step] [step num="14"] Outra maneira de verificar isso é usar este serviço: [https://tools.keycdn.com/http2-test](https://tools.keycdn.com/http2-test). https://serverspace.com.br/support/help/how-to-install-docker-on-ubuntu-20-04.md O Docker é amplamente utilizado no processo de desenvolvimento, teste e implantação contínuos de software, ou seja, DevOps. O Docker é um software de código aberto para criar e gerenciar contêineres que contêm o ambiente de tempo de execução de um único aplicativo e incluem tudo o que ele precisa para ser executado. O Docker é amplamente usado no processo de desenvolvimento, teste e implantação contínuos de software, ou seja, DevOps. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Docker" já instalado.** ## Instalação do Docker [step num="1"] Para instalar e ser sempre atualizado para a versão mais recente, você deve conectar o repositório dos desenvolvedores do Docker. Primeiro, atualize os repositórios e instale os pacotes necessários. [/step] ```bash sudo apt update sudo apt install software-properties-common ca-certificates curl gnupg-agent apt-transport-https ``` [step num="2"] Prepare o sistema para adicionar um repositório adicionando esta chave. [/step] ```bash curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` [step num="3"] Adicione o repositório propriamente dito. [/step] ``` sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ``` [step num="4"] Após a execução desse comando, o sistema estará pronto para a instalação. Vamos fazer isso. [/step] ```bash sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io ``` [step num="5"] Neste ponto, a instalação está concluída. Agora vamos considerar algumas configurações e executar um contêiner de teste. [/step] ## Privilégios para o Docker [step num="6"] Para gerenciar o Docker e executar comandos nele, o usuário deve ter privilégios sudo. Se quiser conceder direitos sudo no Docker a outro usuário, adicione-o ao grupo docker. Mas tenha cuidado! Os usuários desse grupo podem obter acesso à raiz no host do Docker. Digite este comando e substitua **user** pelo nome de usuário necessário. [/step] ``` sudo usermod -aG docker user ``` ## Executando um contêiner de teste do Docker [step num="7"] Você pode verificar se o Docker é capaz de executar contêineres com um contêiner de teste. [/step] ```bash docker container run hello-world ``` [step num="8"] Depois de carregar a imagem, você verá uma mensagem informando que o contêiner foi iniciado com êxito. https://serverspace.com.br/support/help/use-rsync-to-create-a-backup-on-centos-8.md Neste tutorial, usaremos o Rsync para criar um backup no CentOS 8. Os backups serão enviados para o segundo servidor e armazenados lá. Neste tutorial, usaremos o Rsync para criar um backup no CentOS 8. Os backups serão enviados para o segundo servidor e armazenados lá. Portanto, precisamos de dois servidores CentOS 8 funcionando e [configurados](https://serverspace.com.br/support/help/initial-server-setup-with-centos-8/). ## Instalação dos pacotes do Rsync [step num="1"] Vamos verificar se os pacotes Rsync necessários estão instalados e instalá-los caso não estejam. [/step] ```bash dnf install rsync rsync-daemon ``` [step num="2"] Inicie o daemon do Rsync e habilite sua inicialização automática. [/passo] ```bash systemctl enable --now rsyncd ``` [step num="3"] Verifique se a inicialização automática está ativada e funcionando. [/passo] ```bash systemctl status rsyncd ● rsyncd.service - fast remote file copy program daemon Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2020-12-19 13:18:16 UTC; 6s ago ... ``` [step num="4"] Verifique se o serviço Rsync está escutando na porta da rede. [/passo] ``` netstat -tulpn | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 55746/rsync tcp6 0 0 :::873 :::* LISTEN 55746/rsync ``` ## Configuração do servidor de origem do backup [step num="5"] Abra o arquivo de configuração: [/step] ``` nano /etc/rsyncd.conf ``` [step num="6"] Insira as seguintes linhas nele: [/step] ``` # Rsync daemon global config pid file = /var/run/rsyncd.pid # User name and group for reading source files uid = rsync-user gid = rsync-user # Do not allow to modify the source files read only = yes # Data Source Configuration path = /home/user list = yes auth users = rsync-user secrets file = /etc/secret.passwd ``` [step num="7"] Crie um arquivo com credenciais para autorização nesta máquina. [/step] ``` nano /etc/secret.passwd ``` [step num="8"] Digite o nome de usuário e a senha nesse arquivo. [/passo] ```bash rsync-user:rsync-pass ``` [step num="9"] Altere as permissões do arquivo para somente leitura pelo usuário root. [/passo] ```bash chmod 0600 /etc/secret.passwd ``` [step num="10"] Reinicie o daemon do Rsync. [/step] ```bash systemctl restart rsyncd ``` [step num="11"] Você também precisa criar o usuário que foi especificado na configuração e no arquivo com credenciais. [/step] ``` useradd rsync-user ``` ## Configuração do servidor de backup Rsync receptor [step num="12"] Crie um arquivo para a senha. [/step] ``` nano /etc/secret.passwd ``` [step num="13"] Digite a senha do usuário do Rsync no servidor de origem. [/step] ```bash rsync-pass ``` [step num="14"] Altere suas permissões aqui também. [/step] ```bash chmod 0600 /etc/secret.passwd ``` ## Executando um backup [step num="15"] Crie uma pasta para o backup. [/passo] ``` mkdir /opt/backup ``` [step num="16"] O comando a seguir iniciará o backup. Substitua **source-server-ip** pelo endereço IP do servidor de origem. [/step] ```bash rsync -a --password-file=/etc/secret.passwd rsync-user@source-server-ip::data /opt/backup/$(date +%Y-%m-%d)/ ``` [step num="17"] Para configurar backups periódicos, você pode adicionar uma tarefa cron com o último comando. https://serverspace.com.br/support/help/how-to-install-docker-on-centos-8.md O Docker é um sistema de gerenciamento de contêineres. Neste tutorial, instalaremos o Docker, o Docker compose e executaremos um contêiner de teste. O Docker é um sistema de gerenciamento de contêineres. A distribuição do Linux e os aplicativos necessários para o software que está sendo desenvolvido são implantados dentro do contêiner. Depois de configurado, o contêiner pode ser movido para qualquer sistema operacional em que o Docker esteja instalado e funcionar lá sem nenhuma etapa adicional. Esse é o motivo da popularidade do Docker entre os desenvolvedores e DevOps. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Docker" já instalado.** Neste tutorial, instalaremos o Docker, o Docker compose e executaremos um contêiner de teste. ## Instalação do Docker no CentOS 8 [step num="1"] Para instalar e sempre atualizar o Docker para a versão mais recente, adicione o repositório do desenvolvedor ao sistema. [/step] ```bash dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo ``` [step num="2"] Instale o pacote do Docker. [/step] ```bash dnf install docker-ce docker-ce-cli containerd.io ``` [step num="3"] Inicie o serviço do Docker e adicione-o à execução automática. [/step] ```bash systemctl enable --now docker ``` [step num="4"] O CentOS 8 usa um firewall diferente do Docker. Portanto, se você tiver o firewalld ativado, precisará adicionar uma regra de mascaramento a ele. [/step] ``` firewall-cmd --zone=public --add-masquerade --permanent firewall-cmd --reload ``` ## Instalação do Docker compose [step num="5"] O Docker é frequentemente instalado junto com o Docker compose. É esse utilitário que permite implantar seu projeto em outra máquina usando um comando. Para baixá-lo, execute o seguinte comando: [/step] ```bash curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ``` [step num="6"] Torne-o executável. [/step] ```bash chmod +x /usr/local/bin/docker-compose ``` ## Usando o Docker como um usuário não raiz [step num="7"] Para poder usar o Docker como um usuário não raiz, você deve adicionar esse usuário ao grupo docker. [/step] ``` usermod -aG docker username ``` [step num="8"] Substitua o **nome de usuário** pelo nome de usuário desejado. Depois de executar esse comando, ele precisará fazer logout do sistema e fazer login novamente. [/step] [step num="9"] Tenha cuidado! Os usuários desse grupo podem assumir o controle do host do Docker. [/step] ## Contêiner de teste do Docker em execução [step num="10"] Você pode verificar se o Docker está funcionando corretamente executando um contêiner de teste. [/step] ```bash docker run hello-world ``` [step num="11"] Como resultado da execução do comando, você deverá ver uma mensagem de que tudo está funcionando bem. https://serverspace.com.br/support/help/install-bacula-with-postgresql-centos-8.md Neste tutorial, instalaremos os principais componentes do Bacula junto com o banco de dados PostgreSQL no servidor CentOS 8. Já consideramos [instalar o cliente Bacula no CentOS 8 e salvar backups em uma máquina remota usando-o](https://serverspace.com.br/support/help/configure-remote-backups-bacula-centos-8/), fizemos uma [visão geral do Bacula e instalamos o Director no servidor Ubuntu 20.04](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Neste tutorial, instalaremos os principais componentes do Bacula juntamente com o banco de dados PostgreSQL no servidor CentOS 8. ## Instalando e configurando o PostgreSQL [step num="1"] O Bacula pode trabalhar com o sistema de gerenciamento de banco de dados PostgreSQL. Vamos instalá-lo, fazer o init e iniciar. [/step] ``` # dnf install postgresql-server # postgresql-setup initdb # systemctl enable --now postgresql ``` [step num="2"] Crie um usuário para o Bacula. [/step] ```bash # sudo su - postgres $ createuser bacula $ psql psql (10.14) Type "help" for help. postgres=# ALTER USER bacula PASSWORD 'bacula'; ALTER ROLE postgres=# ALTER USER bacula LOGIN SUPERUSER CREATEDB CREATEROLE; ALTER ROLE postgres=# q $ exit logout ``` [step num="3"] Descomente a seguinte configuração no arquivo **/var/lib/pgsql/data/postgresql.conf**: [/step] ``` listen_addresses = 'localhost' ``` [step num="4"] Altere a configuração da conexão para o seguinte formato no arquivo **/var/lib/pgsql/data/pg_hba.conf**: [/step] ``` # TIPO DE MÉTODO DE ENDEREÇO DO USUÁRIO DA BASE DE DADOS # "local" é apenas para conexões de soquete de domínio Unix local all all peer local bacula bacula md5 # Conexões locais IPv4: host all all 127.0.0.1/32 md5 ... ``` [step num="5"] Reinicie o serviço. [/step] ```bash systemctl restart postgresql.service ``` ## Instalando e configurando o Bacula [step num="6"] Primeiro, instale os componentes do Bacula. [/step] ```bash dnf install bacula-director bacula-storage bacula-console bacula-client ``` [step num="7"] Os scripts a seguir automatizam o processo de preparação do banco de dados, das tabelas e dos privilégios. Você precisa executá-los em nome do usuário Bacula recém-criado. [/step] ``` cd /usr/libexec/bacula/ sudo -u bacula ./create_postgresql_database sudo -u bacula ./make_postgresql_tables sudo -u bacula ./grant_postgresql_privileges ``` [step num="8"] Crie qualquer pasta para armazenar backups e defina Bacula como seu proprietário. [/passo] ```bash mkdir /opt/bacula chown bacula:bacula /opt/bacula ``` [step num="9"] Abra o arquivo **/etc/bacula/bacula-dir.conf** e localize a seção **FileSet** com o nome **Full Set**. Aqui, na seção **Include**, é possível definir as pastas necessárias para o backup. Adicione **/opt/bacula** na seção **Exclude**. [/step] ``` FileSet { Name = "Full Set" Include { ... File = /home/user File = /folder/to/backup } Exclude { File = /opt/bacula }} ``` [step num="10"] Depois disso, abra o arquivo **/etc/bacula/bacula-sd.conf** e defina **Archive Device = /opt/bacula** para ambos os **dispositivos**. [/step] ``` Device { ... Archive Device = /opt/bacula ... } ``` [step num="11"] Inicie os serviços. [/passo] ```bash systemctl enable --now bacula-dir.service systemctl enable --now bacula-fd.service systemctl enable --now bacula-sd.service ``` [step num="12"] Agora, será feito o backup diário das pastas especificadas na seção **Include** do FileSet. Para iniciar a tarefa de backup agora, vá para o Console de Gerenciamento do Bacula. [/step] ``` # bconsole ``` [step num="13"] Digite o comando **run** e siga as instruções. Para restaurar arquivos, use o comando **restore**. Para visualizar os trabalhos agendados, digite **status** e, em seguida, **1**. Para ver todos os comandos disponíveis, digite **help**. https://serverspace.com.br/support/help/zimbra-collaboration-suite-on-centos-8.md Neste tutorial, vamos instalar o Zimbra Collaboration Suite 9 Open-Source Edition no CentOS 8. O Zimbra Collaboration Suite é uma ferramenta poderosa para o trabalho coletivo que combina o poder de um servidor de correio eletrônico premium. Em termos de recursos, ele pode ser comparado com segurança ao Microsoft Exchange. Neste tutorial, vamos instalar o Zimbra Collaboration Suite 9 Open-Source Edition no CentOS 8. ## Preparação para a instalação do Zimbra Collaboration Suite 9 OSE [step num="1"] Primeiro, você precisa se certificar dos recursos do seu servidor. Para a operação correta, o desenvolvedor especifica os requisitos de pelo menos 4 núcleos de processador, 16 GB de RAM e 10 GB de espaço no disco rígido. [/step] [step num="2"] Você também precisa ter um nome de domínio e configurar corretamente o DNS. Para fazer isso, é necessário adicionar um registro **A** para seu servidor de e-mail (altere domain-name.com com seu FQDN) **mail.domain-name.com** com o endereço IP do servidor no qual você instalará o Zimbra. O segundo registro é o registro **MX** para seu domínio com o valor **mail.domain-name.com** e qualquer prioridade, como 10. [/step] [step num="3"] A próxima coisa a verificar é o cliente NTP. O CentOS 8 tem o Chrony para isso, que é instalado e configurado por padrão. Para verificar seu status, execute: [/step] ```bash systemctl status chronyd.service ``` [step num="4"] Se ele não estiver instalado: [/step] ```bash dnf install chrony ``` [step num="5"] Para verificar a hora no sistema: [/step] ``` date ``` [step num="6"] Para definir o fuso horário correto: [/step] ``` timedatectl set-timezone Europe/Madrid ``` [step num="7"] Agora você precisa fazer o download da distribuição. Para fazer isso, acesse o [site oficial do desenvolvedor](https://www.zextras.com/ru/zextras-build-based-on-zimbra-official-repository/), preencha o formulário e você receberá links para baixar o Zimbra Collaboration Suite 9 OSE em seu e-mail. Selecione um para o CentOS 8 e use o wget para fazer o download. [/step] ```bash wget https://download.zextras.com/...tgz ``` ## Instalação do Zimbra Collaboration Suite 9 OSE [step num="8"] Instale o Perl no sistema. [/step] ```bash dnf install perl ``` [step num="9"] Descompacte o arquivo baixado. [/step] ```bash tar xvf zcs-9.0.0_OSE_RHEL8_latest-zextras.tgz ``` [step num="10"] Vá para a pasta de instalação. [/passo] ``` cd zimbra-installer ``` [step num="11"] Execute o script de instalação. [/step] ``` ./install.sh ``` [step num="12"] Durante o processo de instalação, leia as informações e siga as instruções. Os componentes necessários do Zimbra são Core, LDAP, MTA, Proxy e Store. O restante pode ser omitido. [/step] [step num="13"] Após a solicitação, você também precisa verificar se o nome do host corresponde ao nome de domínio do seu servidor de e-mail, que escrevemos no DNS no início do tutorial - mail.domain-name.com. [/step] [step num="14"] Em um momento, você verá uma verificação da lista de parâmetros básicos. Se você vir linhas com asteriscos, precisará configurá-las. No meu caso, a senha do administrador não estava configurada. [/step] ``` ******* +Admin Password UNSET ``` [step num="15"] Para configurá-la, pressione 5 e depois 4. Quando tudo estiver pronto, você verá: [/step] ``` *** CONFIGURATION COMPLETE - press 'a' to apply ``` [step num="16"] Pressione 'a'. Depois disso, você pode confirmar os parâmetros padrão propostos, exceto para a solicitação de alterações de configuração, em que você precisa inserir uma resposta positiva: [/step] ``` The system will be modified - continue? [No] y ``` [step num="17"] Depois disso, o processo de instalação será iniciado, e tudo o que você precisa fazer é aguardar a conclusão. [/step] [step num="18"] Quando terminar, você poderá acessar o cliente web do Zimbra no seu navegador em mail.domain-name.com e o console de administração em mail.domain-name.com:7071. Digite o nome de usuário 'admin' e a senha que você definiu anteriormente para acessá-lo. https://serverspace.com.br/support/help/test-internet-connection-speed-ubuntu.md Neste tutorial, vamos dar uma olhada em como testar a velocidade da conexão com a Internet no Ubuntu 20.04 usando o Speedtest-CLI Muitas vezes surge uma situação em que você precisa determinar a largura de banda do canal da Internet. Na versão desktop do sistema operacional, basta inserir a solicitação correspondente em um mecanismo de pesquisa e medir a velocidade em qualquer um dos sites de resultados de pesquisa. Mas se isso precisar ser feito na versão para servidor, o método será diferente. Neste tutorial, vamos dar uma olhada em como testar a velocidade da conexão com a Internet no Ubuntu 20.04. Todos os comandos devem ser executados como root. ## Instalar o Speedtest [step num="1"] Para instalar o Speedtest, você precisa adicionar seu repositório. Primeiro, instale os pacotes necessários. [/step] ```bash apt install gnupg1 apt-transport-https dirmngr ``` [step num="2"] Adicione uma chave para o repositório. [/step] ```bash apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61 ``` [step num="3"] Adicione o próprio repositório. [/step] ``` echo "deb https://ookla.bintray.com/debian generic main" | sudo tee /etc/apt/sources.list.d/speedtest.list ``` [step num="4"] Desinstale outra versão do Speedtest, se estiver instalada. [/passo] ```bash apt remove speedtest-cli ``` [step num="5"] Atualizar a lista de pacotes. [/step] ```bash apt update ``` [step num="6"] Por fim, instale uma ferramenta para testar a velocidade da conexão com a Internet. [/step] ```bash apt install speedtest ``` ## Teste de velocidade da conexão com a Internet [step num="7"] Para executar um teste simples de velocidade da Internet, execute: [/step] ``` speedtest ``` [step num="8"] Leia a licença e aceite-a. [/step] ``` Do you accept the license? [type YES to accept]: ``` [step num="9"] Você verá os resultados quando o teste for concluído: [/step] ```yaml Speedtest by Ookla Server: Some Server ISP: Your ISP Latency: 1.22 ms (0.04 ms jitter) Download: 82.59 Mbps (data used: 41.5 MB) Upload: 91.69 Mbps (data used: 41.3 MB) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/4f200375-d643-... ``` [step num="10"] Você pode compartilhar o resultado usando o URL do resultado. [/step] [step num="11"] Você pode escolher outro servidor para testar a velocidade. Digite este comando para ver os servidores mais próximos: [/step] ``` speedtest -L ``` [step num="12"] Para selecionar um deles, digite o seguinte comando com o ID do servidor em vez de "1111": [/step] ``` speedtest -s 1111 ``` [step num="13"] Para ver todas as opções disponíveis, digite: [/step] ``` speedtest --help ``` https://serverspace.com.br/support/help/how-to-install-postgresql-13-on-centos-8.md Neste tutorial, vamos orientá-lo na instalação e na configuração inicial do PostgreSQL 13 no CentOS 8. Neste tutorial, vamos orientá-lo na instalação e na configuração inicial do PostgreSQL 13 no CentOS 8. As atualizações para o PostgreSQL 13 serão lançadas por cinco anos, até novembro de 2025. Você deve executar todos os comandos como root. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Postgres" já instalado.** ## Instalando os pacotes do PostgreSQL 13 [step num="1"] Adicione o repositório do PostgreSQL ao sistema. [/step] ```bash dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm ``` [step num="2"] Desligue os módulos do PostgreSQL com uma versão mais antiga presente no sistema. [/step] ```bash dnf -qy module disable postgresql ``` [step num="3"] Vamos instalar o servidor PostgreSQL 13. [/step] ```bash dnf install -y postgresql13-server ``` ## Configuração inicial [step num="4"] Inicialize o banco de dados. [/step] ``` /usr/pgsql-13/bin/postgresql-13-setup initdb Initializing database ... OK ``` [step num="5"] Inicie e ative a inicialização automática do serviço PostgreSQL. [/step] ```bash systemctl enable --now postgresql-13 ``` [step num="6"] Defina uma senha para o usuário **postgres**. [/passo] ```bash su - postgres psql -c "alter user postgres with password 'psql-user-pass'" ALTER ROLE exit logout ``` ## Criando um novo usuário do PostgreSQL [step num="7"] Para criar um novo usuário no PostgreSQL, primeiro é necessário criá-lo no próprio sistema. [/step] ``` adduser username passwd username ``` [step num="8"] Faça login como postgres. [/step] ``` su - postgres ``` [step num="9"] Crie um usuário de banco de dados. [/step] ``` createuser username ``` [step num="10"] Crie um banco de dados para esse usuário. [/passo] ``` createdb username ``` [step num="11"] O novo usuário agora pode trabalhar com o PostgreSQL. Vamos fazer o login. Digite a senha do nome de usuário quando solicitado. [/step] ``` su - username Password: ``` [step num="12"] Digite a linha de comando do PostgreSQL. [/step] ```bash psql psql (13.1) Type "help" for help. username=> ``` https://serverspace.com.br/support/help/test-internet-connection-speed-centos-8.md Neste tutorial, instalaremos o Speedtest CLI e testaremos a velocidade da conexão com a Internet no CentOS 8 usando-o. A maneira de testar a velocidade da conexão com a Internet no CentOS 8 é diferente daquela dos sistemas desktop, em que isso pode ser feito simplesmente em um navegador. Neste tutorial, instalaremos o Speedtest CLI e testaremos a velocidade da conexão com a Internet usando-o. ## Instalando a CLI do Speedtest no CentOS 8 [step num="1"] Primeiro, faça o download do repositório Speedtest CLI. [/step] ```bash wget https://bintray.com/ookla/rhel/rpm -O speedtest.repo ``` [step num="2"] Agora, mova-o para a lista de repositórios do sistema. [/step] ``` sudo mv speedtest.repo /etc/yum.repos.d/ ``` [step num="3"] Verifique se há outras versões instaladas no sistema. [/step] ``` rpm -qa | grep speedtest ``` [step num="4"] Remova-as se forem encontradas. [/step] ```bash sudo dnf remove speedtest-cli ``` [step num="5"] Agora, instale a versão oficial do Speedtest CLI. [/passo] ```bash sudo dnf install speedtest ``` ## Teste de velocidade da conexão com a Internet [step num="6"] Para executar o teste, digite o seguinte comando e aceite a licença: [/step] ``` speedtest ``` [step num="7"] Resultado: [/step] ``` Do you accept the license? [type YES to accept]: yes License acceptance recorded. Continuing. ``` ```yaml Speedtest by Ookla Server: Server's name and ID ISP: Itglobalcom Bel LLC Latency: 1.32 ms (0.07 ms jitter) Download: 90.73 Mbps (data used: 109.7 MB) Upload: 92.45 Mbps (data used: 41.7 MB) Packet Loss: 0.0% Result URL: https://www.speedtest.net/result/c/605ca0ec-... ``` [step num="8"] Para ver todas as opções disponíveis da CLI do Speedtest, digite: [/step] ``` speedtest -h ``` https://serverspace.com.br/support/help/google-pagespeed-module-apache-centos-8.md Neste tutorial, configuraremos o módulo Google PageSpeed no Apache no CentOS 8. Ele foi projetado para fazer com que o servidor da Web responda mais rapidamente. O módulo PageSpeed foi projetado para otimizar o servidor da Web e acelerar sua resposta. Neste tutorial, configuraremos o módulo Google PageSpeed no Apache no CentOS 8. Primeiro, você precisa ter um servidor CentOS 8 com o [servidor da Web Apache instalado](https://serverspace.com.br/support/help/how-to-install-lamp-stack-on-centos-8/). **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Apache" já instalado.** ## Baixar e instalar o módulo Google PageSpeed [step num="1"] Para instalar o módulo do Google PageSpeed, você precisa dos pacotes **at** e **wget**. [/step] ```bash dnf install at wget ``` [step num="2"] Faça o download do pacote Google PageSpeed para o Apache. [/passo] ```bash wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm ``` [step num="3"] Instale o módulo PageSpeed propriamente dito. [/passo] ``` rpm -U mod-pagespeed-*.rpm ``` [step num="4"] Reinicie o Apache. [/passo] ```bash systemctl restart httpd ``` ## Configurar o módulo Google PageSpeed [step num="5"] Neste ponto, o módulo PageSpeed já está funcionando em conjunto no servidor da Web Apache. Você pode alterar as configurações de otimização. Para fazer isso, abra o arquivo: [/step] ``` nano /etc/httpd/conf.d/pagespeed.conf ``` [step num="6"] Vale a pena alterar as configurações somente se você entender bem o que está fazendo. O módulo é definido com valores ideais por padrão. Aqui estão alguns exemplos de configurações. Para desativar o módulo PageSpeed, localize **ModPagespeed** e altere seu valor para off. [/step] ``` ModPagespeed off ``` [step num="7"] Você pode alterar o caminho de armazenamento do cache. Ele é especificado no parâmetro a seguir: [/step] ``` ModPagespeedFileCachePath ``` [step num="8"] E o caminho para armazenar os registros: [/step] ``` ModPagespeedLogDir ``` [step num="9"] Se você tiver feito alguma alteração nas configurações, reinicie o Apache. [/step] ```bash systemctl restart httpd ``` ## Acessando a interface da Web do PageSpeed [step num="10"] O módulo PageSpeed tem sua própria interface da Web que exibe estatísticas e informações sobre configurações. Por padrão, o acesso à interface da Web é permitido somente a partir do servidor local. Para alterar essa configuração, abra o arquivo novamente: [/step] ``` nano /etc/httpd/conf.d/pagespeed.conf ``` [step num="11"] Encontre a seção a seguir quase no final do arquivo: [/step] ``` ``` [step num="12"] Adicione uma nova diretiva **Allow from** com o endereço IP ou a sub-rede a partir da qual você deseja acessar a interface da Web: [/step] ```xml ... Allow from 10.5.5.0/24 ... ``` [step num="13"] Reinicie o Apache. [/step] ```bash systemctl restart httpd ``` [step num="14"] Agora, digite o seguinte endereço em seu navegador, substituindo "Server-IP" pelo endereço do seu servidor. [/step] ``` http://Server-IP/pagespeed_admin ``` https://serverspace.com.br/support/help/automate-regular-tasks-cron-centos-8.md O Cron inicia scripts configurados em um cronograma. Neste tutorial, daremos uma olhada em como automatizar tarefas comuns usando o сron no CentOS 8. O Cron é um serviço que é executado em segundo plano e inicia tarefas configuradas em um cronograma. Isso o torna muito útil para a manutenção do servidor. Neste tutorial, daremos uma olhada em como automatizar tarefas comuns usando o cron no CentOS 8. ## Instalando o cron no CentOS 8 [step num="1"] O cron está presente no CentOS 8 por padrão. Se, por algum motivo, ele não estiver presente, você poderá instalá-lo com o comando: [/step] ```bash dnf install crontabs ``` [step num="2"] Agora vamos executá-lo e adicioná-lo à inicialização: [/step] ```bash systemctl enable --now crond.service ``` ## Configurações básicas do cron [step num="3"] Para ajustar o tempo e a frequência de execução das tarefas, existe o comando **crontab**. Falaremos sobre ele mais tarde. Além disso, existem as seguintes pastas para facilitar a adição de tarefas: - /etc/cron.hourly - /etc/cron.daily - /etc/cron.weekly - /etc/cron.monthly [/step] [step num="4"] Os scripts localizados neles são executados com a frequência especificada. Para funcionar com êxito, os scripts devem ter direitos de execução e não devem conter pontos em seus nomes. [/step] [step num="5"] Por padrão, qualquer usuário pode criar tarefas. Para permitir a criação de tarefas para determinados usuários, adicione-os ao arquivo **/etc/cron.allow**. Para todos os outros, o acesso será negado. [/step] [step num="6"] Para restringir essa capacidade a um usuário específico, basta adicionar o login dele ao arquivo **/etc/cron.deny**. [/step] [step num="7"] O Cron grava os logs no seguinte arquivo: **/var/log/cron**. [/step] ## Ajuste fino das tarefas do cron [step num="8"] Para gerenciar tarefas com a capacidade de especificar a hora exata e a frequência de execução, use o comando: [/step] ``` crontab -e ``` [step num="9"] A configuração do agendador será aberta em seu editor de texto padrão (geralmente o vi). Para configurar outro editor de texto padrão, use o comando (insira seu editor de texto favorito em vez do "nano"): [/step] ``` export EDITOR=nano ``` [step num="10"] Para exibir as configurações atuais do cron, execute: [/step] ``` crontab -l ``` [step num="11"] Para exibir as configurações do cron de outro usuário, digite: [/step] ``` crontab -u user -l ``` [step num="12"] Para editar: [/step] ``` crontab -u user -e ``` [step num="13"] O uso do comando **crontab** fornece uma verificação de sintaxe ao salvar para evitar erros. É por isso que é melhor usar esse comando para configurar o cron. Para obter informações, o arquivo do agendador pode ser editado diretamente. Ele está localizado em **/var/spool/cron/**. [/step] [step num="14"] Também vale a pena observar que as tarefas atribuídas serão executadas em nome do usuário que as adicionou ao cron. Os arquivos cron usam a seguinte sintaxe: [/step] ``` # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * command to be executed ``` [step num="15"] O sinal * significa todos os valores válidos. Exemplo de trabalho do cron: [/step] ``` 30 22 15 * * /opt/script.sh ``` [step num="16"] O script **/opt/script.sh** será executado no dia 15 de cada mês às 22:30. [/step] ## Caracteres especiais e expressões do cron [step num="17"] **Vírgula (,)**. No cronograma, você pode especificar vários valores separados por vírgulas para executar a mesma tarefa em horários diferentes: [/step] ``` 30 22 10,20,30 * * ``` [step num="18"] Com esse registro, a tarefa será iniciada nos dias 10, 20 e 30 de cada mês. **Barra (/)**. A barra é usada para indicar uma etapa. Por exemplo, a execução de uma tarefa a cada 10 dias terá a seguinte aparência: [/step] ``` 30 22 */10 * * ``` [step num="19"] **Hífen (-)**. Para especificar um intervalo de valores, há um hífen. Por exemplo, execução diária do dia 10 ao dia 20 do mês: [/step] ``` 30 22 10-20 * * ``` [step num="20"] Variáveis especiais do cron: - @reboot - executado na inicialização do sistema - @yearly ou @annually - uma vez por ano - @monthly - uma vez por mês - @weekly - uma vez por semana - @daily - uma vez por dia - @hourly - a cada hora - @midnight - à meia-noite Exemplo: [/step] ``` @daily /opt/script.sh ``` https://serverspace.com.br/support/help/google-pagespeed-module-nginx-ubuntu.md Neste tutorial, configuraremos o módulo Google PageSpeed no Nginx no Ubuntu 20.04. Isso acelerará o carregamento das páginas do site. A velocidade de carregamento das páginas do site afeta a experiência do usuário e a posição do site nos resultados dos mecanismos de pesquisa. Para analisar e acelerar o carregamento do conteúdo, existe um módulo do Google PageSpeed. Neste tutorial, configuraremos o módulo Google PageSpeed no Nginx no Ubuntu 20.04. ## Preparação para instalar o módulo do Google PageSpeed [step num="1"] Primeiro, você deve ter o servidor da Web Nginx instalado. Se você não o tiver por algum motivo, poderá instalá-lo usando o seguinte comando: [/step] ```bash apt install nginx ``` [step num="2"] Você também precisa do pacote curl para baixar o script de instalação e as bibliotecas SSL. [/step] ```bash apt install curl libssl-dev ``` [step num="3"] Verifique qual versão do Nginx e dos módulos está instalada. [/step] ``` nginx -V ``` [step num="4"] Saída: [/step] ``` nginx version: nginx/1.18.0 (Ubuntu) built with OpenSSL 1.1.1f 31 Mar 2020 TLS SNI support enabled configure arguments: ... ``` [step num="5"] É melhor especificar a mesma versão no comando a seguir para minimizar o risco ao reconstruir o Nginx. Aqui você pode ver quais módulos estão instalados agora e adicionar os necessários durante o processo de instalação. [/step] ## Instalando o módulo Google PageSpeed [step num="6"] No caso do Nginx, o módulo PageSpeed deve ser criado a partir da fonte. Além disso, todas as dependências devem ser instaladas. Para simplificar todos esses processos, os desenvolvedores sugerem o uso de um script de instalação que fará tudo isso. No entanto, é melhor testar a operação de sites com esse módulo depois de reconstruir o Nginx em um servidor de teste e só então instalá-lo em um servidor de produção. Use o seguinte comando para reconstruir o Nginx com o módulo Google PageSpeed. Especifique a versão do Nginx instalada no sistema no parâmetro **--nginx-version**. [/step] ``` bash https://serverspace.com.br/support/help/install-and-configure-zabbix-on-centos-8.md Neste tutorial, configuraremos o sistema de monitoramento de servidor Zabbix 5 no CentOS 8, usando o Postgresql-12 e o servidor da Web Nginx. Neste tutorial, configuraremos o sistema de monitoramento de servidor Zabbix 5 no CentOS 8. O sistema de gerenciamento de banco de dados será o Postgresql-12 e o servidor da Web Nginx. ## Instalando os pacotes necessários para o Zabbix [step num="1"] Vamos instalar o repositório do Zabbix e limpar o cache do gerenciador de pacotes. [/step] ```bash rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm dnf clean all ``` [step num="2"] Depois de adicionar o repositório, agora podemos instalar os pacotes necessários. [/step] ```bash dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-agent ``` ## Instalação do Postgresql-12 [step num="3"] Instale o repositório do Postgresql-12 e limpe o cache. [/step] ```bash rpm -Uvh https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf clean all ``` [step num="4"] Desative o módulo DBMS pré-instalado. [/step] ```bash dnf -qy module disable postgresql ``` [step num="5"] Depois disso, configure os pacotes do Postgresql-12. [/step] ```bash dnf -y install postgresql12 postgresql12-server ``` [step num="6"] Agora vamos inicializar o banco de dados. [/step] ``` /usr/pgsql-12/bin/postgresql-12-setup initdb ``` [step num="7"] Agora podemos ativar o serviço e fazer com que ele seja iniciado na inicialização do sistema. [/step] ```bash systemctl enable --now postgresql-12 ``` ## Configuração do banco de dados [step num="8"] Crie um novo usuário Postgresql para o Zabbix. Digite a senha para ele quando solicitado. [/step] ``` sudo -u postgres createuser --pwprompt zabbix ``` [step num="9"] Em seguida, crie um novo banco de dados para trabalhar com o sistema de monitoramento do servidor. [/step] ``` sudo -u postgres createdb -O zabbix zabbix ``` [step num="10"] Vamos importar o esquema inicial e as informações para o banco de dados do Zabbix. Quando solicitado, digite a senha do usuário do zabbix que criamos recentemente. [/step] ``` zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix ``` [step num="11"] No arquivo **/etc/zabbix/zabbix_server.conf**, descomente a linha **DBPassword** e digite a senha para acessar o banco de dados aqui. [/step] ``` DBPassword=zabbix ``` [step num="12"] Para poder estabelecer a conexão do Zabbix com o banco de dados, abra o arquivo **/var/lib/pgsql/12/data/pg_hba.conf** e localize as linhas: [/step] ``` # IPv4 local connections: host all all 127.0.0.1/32 ident ``` [step num="13"] Altere o método para **password**. [/step] ``` host all all 127.0.0.1/32 password ``` [step num="14"] E reinicie o DBMS. [/step] ```bash systemctl restart postgresql-12 ``` ## Configuração do Nginx [step num="15"] Abra o arquivo **/etc/nginx/conf.d/zabbix.conf** e descomente os parâmetros **listen** e **server_name**. No último, digite o nome do domínio do seu servidor ou **_** se quiser acessá-lo usando apenas um endereço IP. [/step] ``` server { listen 80; server_name _; ... ``` [step num="16"] No último caso, também é necessário comentar toda a seção **server** no arquivo **/etc/nginx/nginx.conf**. [/step] ``` # server { # listen 80 default_server; # listen [::]:80 default_server; # server_name _; # root /usr/share/nginx/html; ... ``` [step num="17"] No arquivo **/etc/php-fpm.d/zabbix.conf**, descomente o parâmetro **php_value[date.timezone]** e defina seu fuso horário. [/step] ``` php_value[date.timezone] = Europe/Prague ``` [step num="18"] Agora reinicie os aplicativos configurados e faça com que eles sejam iniciados com a inicialização do sistema. [/step] ```bash systemctl restart zabbix-server zabbix-agent nginx php-fpm systemctl enable zabbix-server zabbix-agent nginx php-fpm ``` ## Configuração do front-end do Zabbix Abra o endereço IP de seu servidor no navegador. Screenshot 1. Página de boas-vindas do Zabbix. Verifique se todos os pré-requisitos estão corretos na segunda etapa. Na terceira etapa, digite **127.0.0.1** no campo **Database Host** e a senha do banco de dados no campo correspondente. Screenshot 2. Configurações do banco de dados. Agora, siga até o final da configuração e deixe os parâmetros padrão. O login **Admin** e a senha **zabbix** são usados para fazer login no painel de administração. Screenshot 3. Página de login do Zabbix https://serverspace.com.br/support/help/how-to-configure-ftp-access-on-centos-8.md Um servidor FTP é útil para gerenciar sites e compartilhar arquivos. Neste tutorial, configuraremos o acesso ao FTP no CentOS 8 usando o vsftpd. Um servidor FTP é útil para gerenciar sites e compartilhar arquivos. Neste tutorial, configuraremos o acesso ao FTP no CentOS 8 usando o vsftpd. ## Instalação e configuração do servidor FTP [step num="1"] Vamos instalar o pacote vsftpd. [/step] ```bash dnf install vsftpd ``` [step num="2"] Agora, inicie o serviço. [/step] ```bash systemctl start vsftpd ``` [step num="3"] E adicione-o à execução automática. [/step] ```bash systemctl enable vsftpd ``` [step num="4"] Abra o arquivo **/etc/vsftpd/vsftpd.conf**. Verifique esses parâmetros para ter certeza de que estão com os valores corretos. Atualmente, proibimos o login anônimo e o permitimos para usuários locais. A gravação de FTP também é permitida. [/step] ``` anonymous_enable=NO local_enable=YES write_enable=YES ``` [step num="5"] Localize e descomente essa linha para restringir o acesso a tudo, exceto ao diretório inicial. [/step] ``` chroot_local_user=YES ``` [step num="6"] E adicione esta linha ao final do arquivo para conceder acesso para alterar e gravar arquivos via FTP. [/step] ``` allow_writeable_chroot=YES ``` [step num="7"] Agora salve e feche o arquivo e abra **/etc/pam.d/vsftpd**. Comente esta linha no arquivo: [/step] ``` #auth required pam_shells.so ``` [step num="8"] Se você usar o **firewalld**, adicione o serviço FTP a ele. [/step] ``` firewall-cmd --permanent --add-service=ftp firewall-cmd --reload ``` [step num="9"] Reinicie o serviço FTP. [/step] ```bash systemctl restart vsftpd ``` ## Criação de um usuário para acesso ao FTP [step num="10"] Crie um novo usuário e defina a senha para ele. [/step] ``` useradd newftpuser passwd newftpuser ``` [step num="11"] Para evitar que ele faça login via ssh, altere seu shell. [/step] ``` usermod --shell /sbin/nologin newftpuser ``` ## Usando SSL/TLS para FTP seguro [step num="12"] Você pode usar SSL/TLS para criptografar sua conexão. Para essa finalidade, você pode usar o Let's Encrypt ou um certificado SSL autoassinado. No arquivo **/etc/vsftpd/vsftpd.conf**, adicione os caminhos para as chaves e ative a opção **ssl_enable**. [/step] ``` rsa_cert_file=/etc/letsencrypt/live/domain_name/fullchain.pem rsa_private_key_file=/etc/letsencrypt/live/domain_name/privkey.pem ssl_enable=YES ``` [step num="13"] E reinicie o serviço. [/step] ```bash systemctl restart vsftpd ``` https://serverspace.com.br/support/help/dns-server-unavailable.md Ao navegar na Internet, os usuários geralmente encontram o erro de servidor DNS indisponível ao abrir sites. O que fazer em tais situações e como corrigi-lo. Ao navegar na Internet, os usuários frequentemente encontram o erro "O servidor DNS não está respondendo" ao abrir sites. O que fazer em tais situações e como corrigir o problema - vamos contar neste artigo. Todo site na Internet tem um endereço exclusivo. Para o usuário, ele é apresentado em uma forma de conjunto de letras significativas, por exemplo, google.com, mas na rede global, um valor numérico é usado para denotar recursos da Web. Ele é chamado de endereço IP e pode ter a seguinte aparência: 176.108.10.5. Obviamente, é mais conveniente para os usuários memorizar letras do que números, portanto, há um servidor DNS responsável por traduzir o endereço IP em caracteres e vice-versa. E se o texto "O servidor DNS não está respondendo" aparecer ao acessar a página, então a solicitação do usuário não foi traduzida corretamente. ## Razões para o aparecimento Os motivos para esse erro podem ser de dois tipos: - O problema está no lado do provedor: talvez o servidor DNS esteja indisponível, a eletricidade tenha sido cortada, há trabalhos técnicos em andamento etc. - O problema está no lado do usuário: a Internet está desconectada, os parâmetros do roteador foram redefinidos, problemas com drivers, etc. ## Como resolver o problema? Antes de prosseguir com a solução, determinaremos em que estágio o erro ocorre devido à indisponibilidade dos endereços do servidor DNS. [step num="1"] Vamos conectar outros dispositivos ao roteador. Se eles também mostrarem um erro, então o problema é com o dispositivo de rede. Se o DNS não estiver disponível apenas ao trabalhar com um computador e funcionar corretamente em um tablet, começaremos a lidar com um PC. [/step] ## Problema do roteador [step num="2"] Vamos começar a verificar o equipamento de rede, pois essa é a maneira mais fácil e rápida. Desligamos o roteador da rede de fornecimento de energia e esperamos de 2 a 3 minutos. Em seguida, ligamos o roteador novamente e verificamos a disponibilidade dos recursos. [/passo] [step num="3"] Em seguida, verificamos se as configurações do roteador não foram perdidas: vamos ao painel de controle do roteador e inserimos nele os dados fornecidos pelo provedor de Internet. E, por fim, se o firmware do roteador estiver desatualizado, vá até a guia responsável pela atualização do software e faça a atualização. [/step] [step num="4"] Se o modelo do roteador não permitir a atualização automática, acesse o site oficial do fabricante, encontre o modelo usado do roteador, faça o download da versão mais recente do software e instale-a. [/step] **Importante!** Após a atualização, o roteador precisa ser reinicializado. [step num="5"] Verificamos o trabalho realizado: abra um navegador e verifique a disponibilidade dos sites. [/step] ## Alteração do endereço DNS [step num="6"] Os erros de DNS também podem ocorrer devido a problemas no computador de trabalho. Vamos falar sobre um dos métodos que permitem corrigir o erro. [/step] **Importante!** Como a configuração manual do servidor DNS no Windows 7, 8 e 10 é semelhante, falaremos sobre isso usando um exemplo das versões desses sistemas operacionais. [step num="7"] No computador, pressione a combinação de teclas Win + R e digite o comando ncpa.cpl. A janela "Network Connections" (Conexões de rede) será aberta. Selecionamos a conexão atual, abrimos o menu de contexto clicando com o botão direito do mouse e selecionamos "Properties" (Propriedades). [/step] [step num="8"] Na janela que se abre, selecione a linha marcada na imagem e clique em "Properties" (Propriedades). [/step] Screenshot nº 1. Configurando o protocolo. [step num="9"] A tela exibirá informações sobre o valor atual dos endereços IP e DNS. [/step] Screenshot No. 2. Alteração do servidor DNS. [step num="10"] Selecione o item conforme mostrado na captura de tela acima. Preenchemos as linhas da seguinte forma: especifique 8.8.8.8 como o servidor DNS preferencial e 8.8.4.4 na linha abaixo. Esses parâmetros foram obtidos no site oficial do Google, mas há outros endereços públicos de grandes empresas: Comodo, OpenDNS (Cisco), etc. Eles também vêm em pares: servidor DNS primário e alternativo. [/step] **Importante!** Certifique-se de incluir um endereço alternativo. Se o endereço preferencial não estiver disponível, a chamada será feita para um endereço alternativo. Para maior confiabilidade, você pode especificar um endereço, por exemplo, do Google, como o servidor DNS principal, e o Comodo como backup. Esse arranjo garante que o usuário sempre tenha acesso aos servidores DNS disponíveis. ## Verificação do serviço DNS [step num="11"] Se o servidor DNS tiver sido configurado de acordo com as instruções, mas o erro persistir, verifique o serviço Domane Name System. Pressione simultaneamente Win + R no teclado, digite services.msc e pressione "Enter". [/step] Screenshot nº 3. Lista de serviços. [step num="12"] Será aberta uma área de trabalho que contém os serviços do Windows. Selecione a linha destacada em azul. Abra o menu de contexto e selecione o item "Restart" (Reiniciar) - o serviço será reiniciado. Você pode verificar a disponibilidade dos sites. [/step] ## Limpeza do cache [step num="13"] Outra solução para o problema é limpar o cache do DNS. Execute a linha de comando com direitos de administrador local: [/step] Screenshot nº 4. Seleção de utilitários. [step num="14"] A janela do terminal será aberta. Escrevemos os seguintes comandos sucessivamente: [/step] ``` ipconfig /flushdns ipconfig /registerdns ipconfig /renew ipconfig /release ``` [step num="15"] No final, reiniciamos o computador e tentamos entrar novamente no site anteriormente inacessível. [/step] ## Configuração do antivírus [step num="16"] Se as configurações do computador estiverem definidas corretamente, mas o erro ainda aparecer, verifique as configurações do software antivírus. Vamos fazer uma ressalva imediatamente - não há nenhum antivírus ruim, apenas muitos deles bloqueiam as conexões com alguns sites ou servidores DNS. [/passo] [step num="17"] Por exemplo, o antivírus Avast bloqueia o acesso com base em sua base de conhecimento. Nesses casos, é necessário desativar o módulo de firewall e atualizar a página no navegador. Se isso não ajudar, desative completamente a proteção antivírus por 15 minutos e tente novamente. [/passo] [step num="18"] Para evitar esses problemas, configure uma "lista branca" nas opções do firewall e adicione a ela somente os recursos verificados. Como alternativa, experimente um produto antivírus diferente, depois de remover o antigo. [/step] ## Comunicação com seu provedor de Internet [step num="19"] Além disso, o problema pode surgir no lado do provedor de Internet. Quando a mensagem "DNS Server Not Responding" for exibida, a primeira etapa é entrar em contato com o provedor de Internet e descrever o problema encontrado. Se o provedor realizar um trabalho técnico ou houver problemas no local de sua residência, você será informado sobre isso e, se necessário, será anunciado o intervalo de tempo durante o qual a conexão com a Internet será restaurada. https://serverspace.com.br/support/help/how-to-install-lamp-stack-on-centos-8.md Neste tutorial, instalaremos a pilha LAMP no CentOS 8. LAMP é um acrônimo para Linux, Apache, MariaDB, PHP. Neste tutorial, instalaremos a pilha LAMP no CentOS 8. LAMP é um acrônimo para Linux com um servidor da Web Apache, sistema de gerenciamento de banco de dados MariaDB e PHP para trabalhar com conteúdo dinâmico. Todas as ações devem ser executadas pela conta **root**. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "LAMP" já instalado.** ## Instalando o Apache no CentOS 8 [step num="1"] Vamos instalar o servidor da Web Apache. [/step] ```bash dnf install httpd ``` [step num="2"] Inicie o daemon do Apache e faça-o iniciar automaticamente durante a inicialização do sistema. [/step] ```bash systemctl start httpd systemctl enable httpd ``` [step num="3"] Se você tiver um firewalld ativado, deverá abrir as portas http ou https, ou ambas. [/step] ```bash firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https systemctl reload firewalld ``` [step num="4"] Para testar o servidor da Web, digite o endereço IP do seu servidor no navegador. [/step] Screenshot 1. Página de teste do Apache. ## Instalação do MariaDB O MariaDB é uma alternativa ao sistema de gerenciamento de banco de dados MySQL. Ele foi desenvolvido por ex-membros da equipe do MySQL, já que o último pode se tornar um produto proprietário da Oracle. [step num="5"] Vamos instalar o MariaDB DBMS. [/step] ```bash dnf install mariadb-server ``` [step num="6"] Agora, inicie o serviço e faça com que ele seja executado automaticamente durante a inicialização do sistema. [/step] ```bash systemctl start mariadb systemctl enable mariadb ``` [step num="7"] Para concluir a configuração básica de segurança do DBMS, execute o script e siga as instruções: [/step] ``` mysql_secure_installation ``` [step num="8"] Agora você pode entrar na linha de comando do MariaDB. [/step] ```bash mysql Welcome to the MariaDB monitor. Commands end with ; or g. Your MariaDB connection id is 15 Server version: 10.3.17-MariaDB MariaDB Server ... ``` [step num="9"] Se você vir este texto, o MariaDB está funcionando agora. [/step] ## Instalação do PHP [step num="10"] O primeiro pacote é o PHP, e o segundo permite que o PHP interaja com o DBMS. Vamos instalá-los. [/step] ```bash dnf install php php-mysqlnd ``` [step num="11"] Agora reinicie o Apache para ativar os módulos PHP. [/step] ```bash systemctl restart httpd ``` [step num="12"] Para testar o funcionamento do PHP, vamos criar um arquivo **php.php** na pasta **/var/www/html/**. [/step] ``` nano /var/www/html/php.php ``` E insira as seguintes linhas: ``` ``` [step num="13"] Salve e feche esse arquivo. Agora, digite o endereço IP de seu servidor no navegador e adicione **/php.php** a ele. Você verá as informações do serviço PHP. [/step] Screenshot 2. Página de informações do PHP. [step num="14"] Atenção! Não deixe esse arquivo no servidor, pois é um risco de segurança. https://serverspace.com.br/support/help/nginx-virtual-hosts-on-ubuntu-20-04.md Neste tutorial, configuraremos hosts virtuais do Nginx. Isso permitirá que vários sites funcionem no mesmo servidor. O Nginx foi projetado para lidar com vários domínios em um único servidor e endereço IP. Os hosts virtuais oferecem esse recurso. Neste tutorial, configuraremos os hosts virtuais do Nginx. ## Arquivos de configuração do Nginx [step num="1"] Primeiro, você precisa instalar o pacote Nginx. [/step] ```bash apt install nginx ``` [step num="2"] Todos os arquivos de configuração dos hosts virtuais do Nginx são armazenados na pasta **/etc/nginx/sites-available/**. A melhor maneira é criar um arquivo separado para cada site no servidor. Vamos criar a primeira configuração para **domain-name.com**. [/step] ``` nano /etc/nginx/sites-available/domain-name.com ``` [step num="3"] Agora insira essa configuração aqui. [/step] ```css server { listen 80; # Specify the listening port listen [::]:80; # The same thing for IPv6 root /var/www/domain-name.com/html; # The path to the website files index index.html index.htm; # Files to display if only the domain name is specified in the address server_name domain-name.com; # Domain name of this site location / { try_files $uri $uri/ =404; } } ``` [step num="4"] Salve e feche esse arquivo. Crie uma pasta para o site e coloque seus arquivos nela. [/step] ``` mkdir -p /var/www/domain-name.com/html ``` [step num="5"] E defina as permissões para a pasta. [/step] ```bash chmod -R 755 /var/www ``` ## Ativando o host virtual Nginx [step num="6"] Você precisa criar um link simbólico para a configuração no diretório **sites-enabled** para ativar o host virtual. [/step] ``` ln -s /etc/nginx/sites-available/domain-name.com /etc/nginx/sites-enabled/ ``` [step num="7"] Agora, verifique se há erros na configuração. [/step] ``` nginx -t ``` [step num="8"] E reinicie o serviço. [/step] ```bash systemctl restart nginx ``` [step num="9"] Agora você tem um host virtual em funcionamento para um único domínio. Você pode acessá-lo pelo nome do domínio se o servidor DNS estiver configurado corretamente. Qualquer número de domínios pode ser adicionado ao servidor dessa forma. [/step] ## Desabilitação dos hosts virtuais do Nginx [step num="10"] Para desativar um host virtual, remova o link simbólico da pasta **sites-enabled**. Para desativar o retorno de uma página da Web padrão ao acessar o endereço IP do servidor, basta excluir o link para a configuração padrão. [/step] ``` rm /etc/nginx/sites-enabled/default ``` [step num="11"] Reinicie o serviço depois disso. [/step] ```bash systemctl restart nginx ``` [step num="12"] Dessa forma, você pode desativar qualquer configuração necessária. E ativá-la adicionando novamente um link simbólico, como fizemos anteriormente. https://serverspace.com.br/support/help/initial-server-setup-with-ubuntu-20-04.md Aprenda a configurar seu servidor Ubuntu 20.04 passo a passo: atualização do sistema, criação de usuários, configuração SSH, firewall UFW e ajuste de fuso horário. Neste tutorial, faremos a configuração inicial do servidor com o Ubuntu 20.04. [Servidor em nuvem Serverspace.io](https://serverspace.com.br/services/cloud-servers.md) usado como base. A rede é configurada para eles automaticamente durante a criação, portanto, você não precisa se preocupar com isso. ## Atualização do sistema [step num="1"] O sistema deve ser atualizado após ser instalado. [/step] ```bash apt update apt upgrade ``` [step num="2"] Reinicie o sistema quando o processo estiver concluído. [/step] ``` reboot ``` ## Criação de usuários e configuração de SSH [step num="3"] Por padrão, apenas o usuário raiz é criado no sistema. Para usar um servidor com várias pessoas, é melhor dar a cada pessoa uma conta separada. Para criar um novo usuário, use o seguinte comando. Substitua o **nome de usuário** pelo login. Digite a senha de sua conta e outras informações. [/step] ``` adduser username ``` [step num="4"] Se você selecionou a autorização por chave SSH ao criar o servidor, poderá ativar a autorização por senha. Para fazer isso, abra o arquivo de configuração do SSH: [/step] ``` nano /etc/ssh/sshd_config ``` [step num="5"] Remova o comentário da linha: [/step] ``` PasswordAuthentication yes ``` [step num="6"] Ou, se você precisar adicionar a capacidade de autorizar usando uma chave SSH, descomente esta linha: [/step] ``` PubkeyAuthentication yes ``` [step num="7"] É uma boa ideia alterar a porta SSH padrão se você ativar a autenticação por senha. Isso reduz a probabilidade de invasão do servidor por meio da quebra automática da senha usando o método de força bruta. Para fazer isso, descomente a string **Port** e defina-a com um valor diferente. 3355, por exemplo. [/step] ``` Port 3355 ``` [step num="8"] Salve e feche esse arquivo. Reinicie o serviço para que as configurações de porta tenham efeito. [/step] ```bash systemctl restart sshd ``` [step num="9"] Agora, para se conectar ao servidor, adicione o número da porta ao comando: [/step] ```bash ssh user@host -p 3355 ``` [step num="10"] Outra coisa boa para melhorar a segurança do servidor é usar [Fail2Ban](https://serverspace.com.br/support/help/install-configure-fail2ban-ubuntu-20-04/). [/step] [step num="11"] Se quiser criar uma chave SSH, use o seguinte comando em um computador Linux local. Digite o caminho para colocar a chave e a senha para ela, que pode estar vazia. Entretanto, por motivos de segurança, é altamente desaconselhável usar chaves sem senha. [/step] ```bash ssh-keygen ``` [step num="12"] Para instalar essa chave no servidor, use o seguinte comando em um computador Linux local. Digite o caminho correto da chave, o nome de usuário e o host. [/step] ```bash ssh-copy-id -i /path/to/key user@host ``` > [step num="13"] Use esse comando para acessar o servidor: [/step] ```bash ssh user@host ``` ## Configuração do UFW [step num="14"] O UFW é um firewall. Por padrão, ele está desativado no servidor. Antes de ativá-lo, você precisa configurá-lo para permitir conexões SSH. [/step] ``` ufw allow OpenSSH ``` [step num="15"] Se a porta SSH padrão tiver sido alterada, você precisará abrir essa porta. [/step] ``` ufw allow 3355/tcp ``` [step num="16"] Agora, ative o UFW. [/step] ``` ufw enable ``` [step num="17"] Todas as portas agora estão fechadas para conexões de entrada, exceto aquelas que eram permitidas. Para ver o status do UFW: [/step] ``` ufw status ``` ## Configurações de tempo [step num="18"] Outro aspecto que precisa ser configurado é a hora no sistema. Para ver a hora atual, digite o comando: [/step] ``` date ``` [step num="19"] A hora padrão no sistema é UTC. Para alterar isso, você deve especificar o fuso horário correto. Para visualizar todos eles, use o comando: [/step] ``` timedatectl list-timezones ``` [step num="20"] Para definir um deles: [/step] ``` timedatectl set-timezone Europe/Prague ``` [step num="21"] Para ativar a sincronização automática de horário, instale este pacote. [/step] ```bash apt install ntp ``` Ele será iniciado imediatamente após a instalação e seu servidor terá a hora correta. ## Conclusão Seguindo este guia, você realizou a configuração inicial de seu servidor Ubuntu 20.04 de maneira segura e eficiente. Atualizar o sistema, criar usuários individuais, configurar autenticação SSH, ajustar o firewall com UFW e definir o fuso horário correto são etapas essenciais para manter o servidor protegido e funcional. Além disso, práticas adicionais como alterar a porta SSH e usar Fail2Ban aumentam a segurança contra ataques de força bruta. Com essas configurações básicas, seu servidor estará pronto para hospedar aplicativos e gerenciar conexões de forma confiável. ## FAQ - **Preciso de privilégios de administrador para seguir este guia?** Sim, a configuração inicial requer privilégios de root ou sudo para instalar pacotes, criar usuários e modificar arquivos de configuração do sistema. - **Como criar um novo usuário no Ubuntu 20.04?** Use o comando: ``` adduser username ``` Substituindo username pelo login desejado. - **Como alterar a porta SSH padrão para maior segurança?** Edite o arquivo /etc/ssh/sshd_config e modifique a linha Port para um valor personalizado, como 3355. Em seguida, reinicie o serviço SSH: ```bash systemctl restart sshd ``` - **Como configurar o firewall UFW corretamente?** Primeiro, permita a conexão SSH: ``` ufw allow OpenSSH ``` Se alterou a porta SSH, abra-a explicitamente, depois ative o firewall: ``` ufw enable ``` ``` ufw status ``` - **Como ajustar o fuso horário e sincronizar a hora do servidor?** Liste os fusos horários disponíveis: ``` timedatectl list-timezones ``` Defina o desejado: ``` timedatectl set-timezone Europe/Prague ``` Para sincronização automática, instale o NTP: ```bash apt install ntp ``` - **É seguro usar chaves SSH sem senha?** Não é recomendado. Sempre https://serverspace.com.br/support/help/apache-virtual-hosts-on-centos-8.md O Apache permite que você hospede vários domínios e sites em um único endereço IP. Neste tutorial, configuraremos os hosts virtuais do Apache. O Apache permite que você hospede vários domínios e sites em um único endereço IP. Isso é fornecido pelo mecanismo de host virtual. Cada um deles tem uma configuração individual. Neste tutorial, configuraremos os hosts virtuais do Apache. Recentemente, [instalamos a pilha de lâmpadas no CentOS 8](https://serverspace.com.br/support/help/how-to-install-lamp-stack-on-centos-8/). Comece instalando o Apache e continue com este guia. ## Criar pastas [step num="1"] Crie uma pasta para cada site no diretório **/var/www/**. [/step] ``` mkdir /var/www/domain-name.com ``` [step num="2"] Torne o usuário **apache** o proprietário dessa pasta. [/step] ```bash chown apache:apache /var/www/domain-name.com/ ``` ## Arquivos de configuração para hosts virtuais [step num="3"] O Apache funciona com todos os arquivos com a extensão **.conf** da pasta **/etc/httpd/conf.d/**. Crie um arquivo de configuração para seu site. [/step] ``` nano /etc/httpd/conf.d/domain-name.com.conf ``` [step num="4"] Insira as seguintes linhas. Substitua domain-name.com por seu nome de domínio. [/step] ```xml ServerName domain-name.com ServerAlias www.domain-name.com DocumentRoot /var/www/domain-name.com ErrorLog /var/log/httpd/domain-name.com-error.log CustomLog /var/log/httpd/domain-name.com-access.log combined ``` [step num="5"] Se você quiser que vários nomes de domínio funcionem com o mesmo conteúdo, basta listá-los separados por um espaço na linha **ServerAlias**. [/step] ``` ServerAlias www.domain-name.com domain-name2.com domain-name3.com ``` [step num="6"] Salve e feche o arquivo e reinicie o serviço. [/step] ```bash systemctl restart httpd ``` ## Teste do host virtual do Apache [step num="7"] Para verificar a operação do host virtual, coloque um arquivo **index.html** com algum conteúdo no diretório inicial do site. [/step] ``` echo "" > /var/www/domain-name.com/index.html ``` [step num="8"] Abra o nome de domínio ou o endereço IP do servidor no navegador. Você verá o conteúdo do arquivo **index.html**. https://serverspace.com.br/support/help/install-xrdp-server-on-ubuntu-20-04.md Aprenda a instalar e configurar o xRDP no Ubuntu 20.04 para acessar seu servidor remotamente com segurança. Guia passo a passo, ajustes de firewall, dicas de segurança e melhores práticas para conexões RDP estáveis. O xRDP é uma ferramenta open source que possibilita o acesso remoto a servidores Ubuntu 20.04, proporcionando uma experiência de desktop completa, praticamente igual à utilização direta no computador local. Neste guia, você será conduzido passo a passo pela instalação de um ambiente gráfico, configuração do xRDP e ajustes de firewall, permitindo conexões seguras e estáveis à área de trabalho remota do seu servidor. Também serão apresentadas recomendações práticas para reforçar a segurança, incluindo a utilização de túneis SSH e restrições de acesso à porta RDP. ## Configuração do Ambiente Gráfico no Ubuntu Primeiro, precisamos fornecer ao nosso sistema de servidor Ubuntu um ambiente de área de trabalho. Neste exemplo, vamos instalar o Gnome. ```bash apt install ubuntu-desktop ``` ## Instalando e configurando o xRDP Para instalar o pacote xRDP, execute: ```bash apt install xrdp ``` Você também precisa conceder acesso ao arquivo **/etc/ssl/private/ssl-cert-snakeoil.key** para o usuário **xrdp**. Ele está disponível para os membros do grupo **ssl-cert** por padrão. ``` adduser xrdp ssl-cert ``` Reinicie o serviço. ```bash systemctl restart xrdp ``` ## Configuração do firewall Você precisa abrir o acesso à porta 3389. ``` ufw allow 3389 ``` É mais seguro abri-lo somente para seu endereço IP ou rede. Por exemplo: ``` ufw allow from 10.5.5.0/24 to any port 3389 ``` A prática recomendada é usar um túnel SSH para se conectar à área de trabalho remota e fazer com que o xRDP escute apenas as conexões locais. ## Conexão xRDP com o servidor Ubuntu 20.04 Observe que o usuário que se conectará ao xRDP deve se desconectar antes de fazer isso! É hora de estabelecer uma conexão xRDP com o servidor Ubuntu. Conecte-se ao seu servidor usando qualquer cliente RDP. Screenshot 1. Tela de login do xRDP. Digite as credenciais de usuário do seu servidor Ubuntu. Agora você pode ver a tela inicial da área de trabalho remota. Screenshot 2. Tela inicial da área de trabalho remota ## FAQ - **Qual ambiente gráfico devo instalar para usar o xRDP? ** Recomendamos o Gnome, mas outros ambientes compatíveis também podem ser usados. - **Como conceder permissões ao xRDP? ** Adicione o usuário xRDP ao grupo ssl-cert com adduser xrdp ssl-cert para acessar os certificados necessários. - **Qual porta o xRDP utiliza? ** A porta padrão é 3389. É aconselhável abrir apenas para IPs confiáveis ou usar túnel SSH. - **Preciso me desconectar do usuário local antes de conectar via xRDP? ** Sim, o usuário deve estar desconectado para iniciar a sessão remota. - **Posso usar qualquer cliente RDP? ** Sim, clientes compatíveis com o protocolo RDP podem se conectar ao servidor xRDP. ## Conclusão Após instalar e configurar o xRDP, você terá acesso remoto completo ao seu servidor Ubuntu 20.04, podendo gerenciar tarefas gráficas e administrativas de forma prática e segura. Para aumentar a segurança, utilize túneis SSH, restrinja o acesso à porta 3389 apenas para IPs confiáveis e mantenha seu ambiente gráfico e pacotes sempre atualizados. Além disso, para aprimorar seus conhecimentos e explorar configurações avançadas, a Base de Conhecimento Serverspace oferece uma ampla variedade de materiais sobre xRDP, incluindo tutoriais detalhados, dicas de otimização de performance, métodos de autenticação segura e integração com outros serviços de nuvem. Seguindo essas práticas, você garante um acesso remoto eficiente, seguro e confiável, facilitando o suporte e a administração do servidor sem necessidade de presença física. https://serverspace.com.br/support/help/install-configure-zabbix-agent-centos-8.md Neste tutorial, vamos percorrer as etapas necessárias para instalar e configurar o agente Zabbix no CentOS 8. O agente Zabbix é executado em máquinas clientes, coleta e envia dados para o servidor Zabbix. Portanto, todas as máquinas remotas devem ser fornecidas com um cliente para que o servidor funcione. Recentemente, [instalamos o servidor Zabbix](https://serverspace.com.br/support/help/install-and-configure-zabbix-on-centos-8/). Neste tutorial, vamos percorrer as etapas necessárias para instalar e configurar o agente Zabbix no CentOS 8. ## Desativando o SELinux [step num="1"] É melhor desativar o SELinux para que o Zabbix funcione corretamente. Portanto, abra o arquivo de configuração. [/step] ``` nano /etc/selinux/config ``` [step num="2"] Defina **SELINUX** como **disabled**. [/step] ``` SELINUX=disabled ``` [step num="3"] Salve e feche o arquivo e, em seguida, reinicie o sistema. [/step] ## Instalando o agente Zabbix [step num="4"] Agora, adicione o repositório do Zabbix para poder instalar o agente. [/step] ```bash rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm dnf clean all ``` [step num="5"] Vamos instalar o pacote do agente Zabbix. [/step] ```bash dnf install zabbix-agent ``` [step num="6"] Agora, inicie o serviço e faça-o iniciar com a inicialização do sistema. [/step] ```bash systemctl enable --now zabbix-agent ``` ## Configuração do agente Zabbix [step num="7"] Abra o arquivo de configuração do Zabbix. [/step] ``` nano /etc/zabbix/zabbix_agentd.conf ``` [step num="8"] Encontre e defina os valores corretos para os próximos parâmetros: [/step] ``` Server=10.5.5.1 ServerActive=10.5.5.1 Hostname=client ``` [step num="9"] Os dois primeiros devem conter o endereço IP do servidor Zabbix, e o **Hostname** é o nome desse cliente que será exibido nas estatísticas do servidor. [/step] [step num="10"] Agora reinicie o serviço. [/step] ```bash systemctl restart zabbix-agent ``` ## Configuração do firewall [step num="11"] Abra as portas 10050, 10051, http e https para que o Zabbix funcione. [/step] ``` firewall-cmd --add-service={http,https} --permanent firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent firewall-cmd --reload ``` https://serverspace.com.br/support/help/initial-server-setup-with-centos-8.md Os servidores do Serverspace têm rede e SSH configurados. Neste tutorial, examinaremos as etapas para a configuração adicional do servidor com o CentOS 8. Quando você cria um novo servidor CentOS [Serverspace Cloud](https://serverspace.com.br/services/cloud-servers.md), obtém um servidor configurado com rede em funcionamento e acesso SSH a ele. Neste tutorial, examinaremos as etapas para a configuração adicional do servidor com o CentOS 8. ## Conexão do servidor [step num="1"] Conecte-se ao seu novo servidor via SSH usando as instruções de sua conta pessoal para Windows ou o seguinte comando para Linux: [/step] ```bash ssh root@server_ip ``` [step num="2"] Digite o endereço IP do seu servidor em vez de **server_ip**. Se você selecionou uma chave SSH para autenticação, o comando terá a seguinte aparência: [/step] ```bash ssh root@server_ip -i path/to/ssh/key ``` ## Atualização do pacote [step num="3"] Para atualizar os pacotes no sistema, use o seguinte comando: [/step] ```bash dnf update ``` [step num="4"] Após a conclusão do processo, você pode limpar o cache para liberar espaço em disco. [/step] ```bash dnf clean all ``` ## Criação de novos usuários [step num="5"] Para usar o servidor com outras pessoas, é uma boa ideia criar uma conta individual para cada uma delas. Para fazer isso, use o seguinte comando (substitua **nome de usuário** pelo nome da nova conta): [/step] ``` useradd username ``` [step num="6"] Para definir uma senha para ele: [/step] ``` passwd username ``` [step num="7"] E permita que o novo usuário execute comandos sudo: [/step] ``` usermod -aG wheel username ``` [step num="8"] Observe que isso dará ao usuário grande autoridade para gerenciar o sistema, remover e instalar pacotes e assim por diante. [/step] ## Configuração do SSH [step num="9"] Se tiver selecionado uma chave SSH para autenticação, você poderá adicionar um método de senha para outros usuários. Para fazer isso, abra o arquivo de configuração do daemon SSH. [/step] ``` nano /etc/ssh/sshd_config ``` [step num="10"] Localize a linha **PasswordAuthentication** e altere-a para yes. [/step] ``` PasswordAuthentication yes ``` [step num="11"] Para ativar a autenticação da chave SSH (se estiver desativada): [/step] ``` PubkeyAuthentication yes ``` [step num="12"] Agora reinicie o serviço SSH. [/passo] ```bash systemctl restart sshd ``` ## Configuração da chave SSH [step num="13"] Outra maneira de aumentar a segurança do servidor é usar chaves SSH e desativar a senha para autenticação do usuário. Para fazer isso, cada usuário deve criar um par de chaves SSH públicas e privadas em seu computador local (é uma boa ideia definir uma frase secreta durante a criação da chave): [/step] ```bash ssh-keygen ``` [step num="14"] E copie-os para o servidor. [/step] ```bash ssh-copy-id username@server_ip ``` [step num="15"] Quando todos os usuários tiverem configurado a autenticação usando chaves SSH, você poderá definir **no** para **PasswordAuthentication** no arquivo **/etc/ssh/sshd_config**. [/step] ## Configuração do firewall [step num="16"] Para iniciar o firewall e ativar sua execução automática, use o seguinte comando: [/step] ```bash systemctl enable --now firewalld ``` [step num="17"] Você deve adicionar uma regra de permissão para cada serviço que planeja usar. Por exemplo, vamos abrir a porta HTTPS. [/step] ``` firewall-cmd --permanent --add-service=https ``` [step num="18"] Depois de adicionar as regras, recarregue o firewalld. [/step] ``` firewall-cmd --reload ``` [step num="19"] É uma boa ideia alterar a porta SSH padrão para reduzir o risco de adivinhação automática de senhas. Abra o arquivo **/etc/ssh/sshd_config**. Remova o comentário da linha a seguir e altere o valor para 2266, por exemplo: [/step] ``` Port 2266 ``` [step num="20"] Salve e feche o arquivo. Adicione essa porta ao firewall e remova a porta padrão. [/step] ``` firewall-cmd --add-port=2266/tcp --permanent firewall-cmd --permanent --zone=public --remove-service=ssh firewall-cmd --reload ``` [step num="21"] Em seguida, reinicie o serviço. [/step] ```bash systemctl restart sshd ``` [step num="22"] Adicione o número da porta para se conectar via SSH agora: [/step] ```bash ssh root@server_ip -p 2266 ``` [step num="23"] Agora a configuração inicial do servidor com o CentOS 8 está concluída. https://serverspace.com.br/support/help/ssl-certificate-on-nginx-ubuntu-20-04.md Aprenda a instalar e configurar um certificado SSL/TLS no Nginx no Ubuntu 20.04 para habilitar HTTPS de forma segura. Para usar o protocolo HTTPS em um site, você deve obter o certificado TLS/SSL e configurar o Nginx. Você pode obter um certificado de uma autoridade de certificação confiável por dinheiro em um grande número de serviços. A versão gratuita é possível graças ao [serviço Let's Encrypt e é descrita aqui na etapa 3](https://serverspace.com.br/support/help/how-to-get-lets-encrypt-ssl-on-ubuntu/).Você também precisa executar [configuração básica do Nginx](https://serverspace.com.br/support/help/nginx-virtual-hosts-on-ubuntu-20-04/). Se você usar certificados autoassinados, o navegador exibirá um erro ao verificar a segurança. ## Configuração básica de SSL [step num="1"] Se você adquiriu um certificado SSL, deverá criar uma cadeia completa do seu certificado a partir da chave pública recebida e da cadeia de centros de certificação. Para fazer isso, coloque o conteúdo do arquivo de cadeia no final do arquivo de chave pública. Os arquivos podem ter a extensão **.pem** ou **.crt**. Neste guia, veremos tanto a configuração básica do SSL no Nginx quanto boas práticas de segurança, como desativação de protocolos antigos e redirecionamento automático de HTTP para HTTPS. [/step] ``` cat cert.pem chain.pem > fullchain.pem ``` [step num="2"] Agora copie os arquivos para o seu servidor. Uma boa opção é colocar a chave privada (.key ou .pem) na pasta **/etc/ssl/private/** e o **fullchain.pem** na pasta **/etc/ssl/certs/**. [/step] [step num="3"] Agora, abra o arquivo de configuração de seu host virtual (/etc/nginx/sites-available/domain-name.com) e adicione as seguintes linhas: [/step] Abaixo está um exemplo mínimo de configuração HTTPS para um host virtual no Nginx: ``` server { listen 443 ssl; server_name domain-name.com; # Your website's domain name ssl_certificate /etc/ssl/certs/fullchain.pem; # Path to the full chain of your SSL certificate ssl_certificate_key /etc/ssl/private/privkey.pem; # Path to the private key of your SSL certificate } ``` [step num="4"] Não se esqueça de definir os parâmetros **root** e **index** nessa seção, assim como na seção HTTP. Reinicie o Nginx. [/step] ```bash systemctl restart nginx ``` [step num="5"] Agora você pode verificar seu certificado SSL e sua configuração usando [https://www.ssllabs.com/ssltest/](https://www.ssllabs.com/ssltest/) e prosseguir com as configurações que não correspondem à classe A. [/step] ## Desativação de protocolos desatualizados e ativação da prioridade para cifras de servidor [step num="6"] Especifique o uso das versões 1.2 e 1.3 do TLS e a prioridade para as cifras do servidor. Abra o arquivo **/etc/nginx/nginx.conf** e corrija ou adicione as seguintes linhas na seção **http**. [/step] ``` http { ... ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ... } ``` [step num="7"] Reinicie o Nginx. [/passo] ```bash systemctl restart nginx ``` ## Redirecionamento de HTTP para HTTPS [step num="8"] Para configurar o site para funcionar somente em HTTPS, você precisa adicionar um redirecionamento com HTTP. Abra o arquivo de configuração do seu host virtual (/etc/nginx/sites-available/domain-name.com), exclua a seção HTTP: [/step] ``` server { listen 80; } ``` [step num="9"] Agora, adicione uma nova seção com os seguintes parâmetros: [/step] ```css server { listen 80; server_name domain-name.com; # Your website's domain name return 301 https://$host$request_uri; # Redirect } ``` [step num="10"] Agora reinicie o Nginx. [/step] ```bash systemctl restart nginx ``` ## Conclusão A configuração de SSL/TLS no Nginx no Ubuntu 20.04 é um passo essencial para garantir a segurança e a confiabilidade do seu site. Com um certificado válido, protocolos modernos e redirecionamento correto para HTTPS, você protege os dados dos usuários e melhora a reputação do seu serviço. https://serverspace.com.br/support/help/configure-repositories-on-ubuntu-20-04.md Se não conseguir encontrar os pacotes necessários para a instalação, você precisará configurar repositórios de software adicionais no Ubuntu Server 20.04. A instalação de software em sistemas Linux é realizada a partir de repositórios, que, por padrão, contêm um grande número de pacotes. Mas, às vezes, há situações em que o software necessário não está incluído ou a versão é muito antiga. Nesse caso, você pode adicionar o repositório necessário e instalar a partir dele. Tenha cuidado ao realizar essa operação, pois às vezes essas compilações contêm versões experimentais do software do sistema e até mesmo do kernel do Linux. Portanto, você deve estudar cuidadosamente as informações sobre o repositório de terceiros em sua descrição e no gerenciador de atualizações. Neste tutorial, configuraremos os repositórios no Ubuntu Server 20.04. ## Lista de repositórios no Ubuntu Para exibir todos os repositórios no sistema: ``` nano /etc/apt/sources.list ``` Eles também podem estar localizados em um dos arquivos da pasta **/etc/apt/sources.list.d/**. Para desativar um dos repositórios, basta comentar sua linha. ``` # deb http://archive.ubuntu.com/ubuntu focal multiverse ``` ## Adicionando repositórios no Ubuntu Para adicionar um repositório, você precisa descobrir seu endereço com o desenvolvedor do software e usar o comando **apt-add-repository** com a seguinte sintaxe: ```bash apt-add-repository 'deb http://repository_address version branch' ``` Às vezes, você precisa instalar a chave de segurança GPG primeiro. Vamos usar o MariaDB como exemplo. ```bash apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc' ``` Adicionando o repositório: ``` add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.com.br/mariadb/repo/10.5/ubuntu focal main' ``` ## Removendo repositórios Para remover um repositório, use este comando: ``` add-apt-repository --remove 'deb [arch=amd64,arm64,ppc64el] http://mirror.mephi.com.br/mariadb/repo/10.5/ubuntu focal main' ``` ## Repositório PPA no Ubuntu Durante a instalação do repositório PPA, o sistema reconhece automaticamente o repositório e faz o download das chaves necessárias. ```bash apt-add-repository ppa:repository/ppa ``` Para remover o repositório PPA: ```bash apt-add-repository --remove ppa:repository/ppa ``` Depois de editar a lista de repositórios, não se esqueça de atualizar a lista de pacotes no sistema. ```bash apt update ``` ## FAQ - **O que é um repositório no Ubuntu? ** É um local online que contém pacotes de software, permitindo instalar, atualizar e gerenciar programas de forma segura. - **É seguro adicionar repositórios de terceiros? ** Deve-se ter cautela, pois alguns repositórios podem conter versões experimentais ou instáveis do software. Sempre verifique a documentação do repositório e as chaves de autenticação GPG. - **Como atualizar os pacotes após adicionar um repositório? ** Use o comando apt update para que o sistema reconheça os novos pacotes disponíveis. - **Posso remover um repositório facilmente? ** Sim, utilizando o comando add-apt-repository --remove para repositórios normais ou PPA. - **Quando devo usar repositórios PPA? ** Use PPAs quando precisar de versões mais recentes de um software que não estão disponíveis nos repositórios oficiais do Ubuntu. ## Conclusão Gerenciar repositórios no Ubuntu 20.04 é essencial para manter seu sistema atualizado e instalar softwares que não estão disponíveis nos repositórios padrão. Seguindo as práticas recomendadas, como verificar a confiabilidade dos repositórios de terceiros e manter suas chaves GPG atualizadas, você garante segurança e estabilidade no sistema. Além disso, o uso correto de PPAs e a atualização da lista de pacotes tornam o processo de instalação e remoção de softwares mais eficiente, proporcionando um ambiente Linux flexível e confiável. https://serverspace.com.br/support/help/ssl-certificate-on-apache-for-centos-8.md Neste tutorial, instalaremos um certificado SSL no servidor da Web Apache do CentOS 8 e habilitaremos o protocolo HTTPS para o site. Neste tutorial, instalaremos um certificado SSL no servidor da Web Apache do CentOS 8. Isso garantirá que o tráfego do site seja criptografado e que o HTTPS seja usado. Primeiro, você precisa de um servidor da Web. [Como instalar o Apache no CentOS 8](https://serverspace.com.br/support/help/how-to-install-lamp-stack-on-centos-8/) foi discutido anteriormente. Também é necessário um certificado SSL. Recentemente, demos uma olhada em [como configurar hosts virtuais do Apache no CentOS 8](https://serverspace.com.br/support/help/apache-virtual-hosts-on-centos-8/). Pode ser útil aprender isso antes de prosseguir com a instalação de um certificado SSL. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Apache" já instalado.** ## Verificação do mod_ssl [step num="1"] Primeiro, você precisa ter certeza de que o **mod_ssl** está instalado no sistema. Para verificar isso, use este comando: [/step] ``` rpm -qa | grep mod_ssl ``` [step num="2"] Se você não vir nenhuma saída, instale o **mod_ssl**: [/step] ```bash dnf install mod_ssl ``` ## Coloque o certificado SSL no servidor [step num="3"] Você precisa criar uma cadeia completa de seu certificado SSL a partir de sua chave pública e da cadeia de autoridades de certificação. [/step] ``` cat pub-key.pem ca-chain.pem > full-chain.pem ``` [step num="4"] Agora, coloque-o na pasta **/etc/pki/tls/certs/**. Coloque a chave privada na pasta **/etc/pki/tls/private/** e torne-a inacessível a outros usuários. [/step] ```bash chmod -R 600 /etc/pki/tls/private/ ``` ## Configuração do Apache [step num="5"] Crie um arquivo de configuração para seu nome de domínio, caso não tenha um. Coloque-o na pasta **/etc/httpd/conf.d/** e dê a ele um nome com a extensão **.conf**. Aqui e depois substitua **domain-name.com** pelo seu próprio nome. [/step] ``` nano /etc/httpd/conf.d/domain-name.com.conf ``` [step num="6"] Insira a seguinte configuração aqui: [/step] ```xml SSLEngine on # The path to the complete chain of your SSL certificate SSLCertificateFile /etc/pki/tls/certs/full-chain.pem # The path to the private key SSLCertificateKeyFile /etc/pki/tls/private/privkey.pem # The path to the content of your website. AllowOverride All # The path to the content of your website DocumentRoot /var/www/domain-name.com # Domain name of your website ServerName domain-name.com ServerAlias www.domain-name.com ``` [step num="7"] Crie o diretório **/var/www/domain-name.com** e coloque o conteúdo de seu site lá, caso ainda não o tenha feito. [/step] ## Redirecionar de HTTP para HTTPS [step num="8"] Para redirecionar solicitações da porta desprotegida 80 (HTTP) para a porta criptografada 443 (HTTPS), adicione as seguintes linhas ao arquivo **/etc/httpd/conf.d/domain-name.com.conf**. [/step] ```xml ServerName domain-name.com ServerAlias www.domain-name.com Redirect "/" "https://domain-name.com/" ``` [step num="9"] Salve e feche o arquivo e reinicie o Apache. [/passo] ```bash systemctl restart httpd ``` [step num="10"] Agora você tem um certificado SSL configurado no Apache com um protocolo HTTPS em funcionamento no seu site. https://serverspace.com.br/support/help/how-to-get-lets-encrypt-ssl-on-centos-8.md Quando o servidor estiver configurado corretamente, você poderá obter o certificado Let's Encrypt SSL em alguns minutos e renová-lo automaticamente. Let's Encrypt é uma autoridade de certificação que permite a qualquer pessoa obter um certificado SSL/TLS gratuito e fornecer criptografia para seus serviços (servidor da Web, e-mail etc.). Além disso, o cliente Certbot permite que você automatize muitos processos. Depois que o servidor estiver configurado corretamente, você poderá obter um certificado em poucos minutos e renová-lo automaticamente. Para fazer isso, você deve garantir que os seguintes pontos sejam atendidos: - Seu servidor tem um endereço IP público; - Você tem um nome de domínio. Neste tutorial, **domain-name.com** foi usado como exemplo, substitua-o pelo seu FQDN; - O registro DNS A do seu nome de domínio contém o endereço IP do seu servidor. ## Instalando o snapd [step num="1"] Os desenvolvedores do Certbot recomendam o uso do **snapd** para gerenciar e manter automaticamente o seu pacote. Vamos instalá-lo. [/step] ```bash dnf install epel-release; dnf install snapd ``` [step num="2"] Agora, inicie e habilite-o. [/passo] ```bash systemctl enable --now snapd.socket ``` [step num="3"] Você também precisa criar o seguinte link simbólico para ativar o suporte ao snap clássico. [/step] ``` ln -s /var/lib/snapd/snap /snap ``` [step num="4"] Depois disso, reinicie seu sistema. [/step] ``` reboot ``` [step num="5"] Certifique-se de que a versão mais recente esteja instalada. [/passo] ``` snap install core; snap refresh core ``` ## Instalação do Certbot [step num="6"] Certifique-se de que não haja nenhum Certbot em seu sistema. [/step] ```bash dnf remove certbot ``` [step num="7"] Instale o Cerbot. [/step] ``` snap install --classic certbot ``` [step num="8"] Adicione o seguinte link simbólico para garantir o lançamento bem-sucedido do Certbot. [/passo] ``` ln -s /snap/bin/certbot /usr/bin/certbot ``` ## Maneiras de obter um certificado SSL Let's Encrypt [step num="9"] Ao executar o desafio do Certbot, você pode inserir vários nomes de domínio do seu site como aliases quando solicitado. Por exemplo, domain-name.com, www.domain-name.com. Se você não tiver nenhum servidor da Web em execução, use este comando e siga as instruções: [/step] ``` certbot certonly --standalone ``` [step num="10"] Ele usa a porta HTTP para verificar a resposta ao acessar o nome do domínio. Se o seu servidor da Web já estiver em execução e você não quiser interrompê-lo, use o seguinte. Você será solicitado a inserir o nome do domínio e sua raiz da Web para confirmar seus direitos sobre ele. [/step] ``` certbot certonly --webroot ``` ## Certificado SSL com cartão selvagem e desafio de DNS [step num="11"] Outra forma de verificar seus direitos sobre um nome de domínio e seu servidor é o desafio de DNS. E essa é a única maneira de obter um certificado SSL curinga. Você deve ter acesso para gerenciar os registros de DNS do seu site. Use este comando e siga as instruções: [/step] ``` certbot certonly --manual --preferred-challenges dns -d domain-name.com -d *.domain-name.com ``` ## Renovação automática de certificado [step num="12"] Durante a instalação da Certobot, são configuradas atualizações automáticas de certificados. Trata-se de um cronômetro que verifica se há certificados que expirarão em breve no sistema e os atualiza. Para ver se ele está configurado, dê uma olhada aqui: [/step] ```bash systemctl list-timers | grep certbot ``` [step num="13"] Se não vir nenhuma saída, você pode verificar aqui: [/step] ``` cat /etc/crontab cat /etc/cron.*/* ``` [step num="14"] Para testar o processo de renovação automática, execute: [/step] ``` certbot renew --dry-run ``` https://serverspace.com.br/support/help/lets-encrypt-ssl-with-apache-on-centos-8.md O pacote Certbot permite que você obtenha o certificado Let's Encrypt SSL, instale-o no servidor da Web Apache e renove-o automaticamente. O pacote Certbot permite que você obtenha o certificado Let's Encrypt SSL, instale-o no servidor da Web Apache e renove-o automaticamente. Primeiro, você precisará de um nome de domínio e de um servidor CentOS com um endereço IP público. Além disso, o registro DNS A do seu domínio deve conter o endereço IP do seu servidor. Antes de começar, [configure o host virtual do Apache](https://serverspace.com.br/support/help/apache-virtual-hosts-on-centos-8/). ## Instalação de pacotes Recentemente, vimos o processo de [instalação do Certbot usando snapd](https://serverspace.com.br/support/help/how-to-get-lets-encrypt-ssl-on-centos-8/). Você pode usar esse método e pular esta etapa do tutorial, exceto para a instalação do **mod_ssl**. Aqui, usaremos uma maneira alternativa de instalar o Certbot. [step num="1"] Instalar um repositório de pacotes adicional. [/step] ```bash dnf install epel-release ``` [step num="2"] Agora, instale o Certbot, o plug-in do Apache para ele e o mod_ssl. [/step] ```bash dnf install certbot python3-certbot-apache mod_ssl ``` [step num="3"] Reinicie o Apache. [/step] ```bash systemctl restart httpd ``` ## Obtenção de um certificado SSL [step num="4"] Para obter e configurar automaticamente o certificado Let's Encrypt SSL no Apache, execute: [/step] ``` certbot --apache ``` [step num="5"] Siga as instruções, pois elas têm explicações suficientes. Na etapa de escolha de um nome de domínio, você pode especificar duas opções de uma vez: com e sem www, separadas por vírgulas. Quando o processo for concluído, o Apache será configurado automaticamente para usar os certificados recém-recebidos. Você pode verificar isso inserindo seu nome de domínio na barra de endereços do navegador. Além disso, você pode testar as configurações e o certificado SSL na página https://www.ssllabs.com/analyze.html. [/step] ## Renovação automática do certificado SSL [step num="6"] Para ativar o início automático do processo de renovação, execute: [/step] ``` echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew -q" | sudo tee -a /etc/crontab ``` [step num="7"] Isso adicionará uma tarefa cron executada duas vezes por dia em horários aleatórios durante uma hora para reduzir a carga de trabalho nos servidores da Let's Encrypt. Para ter certeza de que a tarefa está presente, execute: [/step] ``` cat /etc/crontab ``` [step num="8"] Para executar o teste do script de atualização do certificado, execute: [/step] ``` certbot renew --dry-run ``` https://serverspace.com.br/support/help/setup-lets-encrypt-ssl-nginx-on-centos-8.md Neste tutorial, forneceremos uma conexão HTTPS criptografada para o nosso site no Nginx usando um certificado SSL gratuito da Let's Encrypt. Neste tutorial, mostraremos como fornecer uma conexão HTTPS criptografada para o nosso site no servidor da Web Nginx usando um certificado SSL Let's Encrypt gratuito. Condições necessárias: - Nome do domínio; - Servidor CentOS 8 com IP público que aparece no registro DNS A do seu nome de domínio; - Servidor da Web Nginx instalado. ## Instalando e configurando o snapd [step num="1"] É melhor usar o **snapd** para instalar e manter o **Certbot**. Dessa forma, ele será sempre atualizado e a renovação automática de certificados será pré-configurada. Para instalar o **snapd**, use os seguintes comandos: [/step] ```bash dnf install epel-release; dnf install snapd ``` [step num="2"] Habilite e inicie o **snapd**. [/step] ```bash systemctl enable --now snapd.socket ``` [step num="3"] Habilite o suporte ao snap clássico. [/passo] ``` ln -s /var/lib/snapd/snap /snap ``` [step num="4"] Agora reinicie o sistema. [/passo] ``` reboot ``` [step num="5"] Verifique se a versão mais recente do snapd está instalada. [/step] ``` snap install core; snap refresh core ``` ## Instalação do pacote Certbot [step num="6"] Antes de instalar o pacote Certbot do snap, você deve ter certeza de que não há outro Certbot instalado no sistema. [/step] ```bash dnf remove certbot ``` [step num="7"] Agora, instale o Certbot a partir do snap. [/step] ``` snap install --classic certbot ``` [step num="8"] Execute o seguinte comando para ter certeza de que o Certbot será iniciado. [/step] ``` ln -s /snap/bin/certbot /usr/bin/certbot ``` ## Obtenção e instalação automáticas do certificado Let's Encrypt SSL no Nginx [step num="9"] Recomendamos configurar o host virtual Nginx adicionando sua configuração à pasta **/etc/nginx/conf.d/** com a extensão **.conf**. Se isso não for feito, a configuração HTTPS do domínio será adicionada ao arquivo **nginx.conf**. Execute o próximo comando para iniciar o processo de aquisição do certificado e siga as instruções. [/step] ``` certbot --nginx ``` [step num="10"] Depois que o processo for concluído com êxito, reinicie o Nginx. [/step] ```bash systemctl restart nginx ``` [step num="11"] O redirecionamento de HTTP para HTTPS foi configurado automaticamente. Agora você pode verificar o resultado acessando o nome do domínio na barra de endereços do seu navegador. [/step] ## Renovação automática do certificado SSL [step num="12"] A renovação automática do certificado SSL é configurada durante a instalação do Certbot a partir do snap. Você pode verificar se o cronômetro está em execução usando este comando: [/step] ```bash systemctl list-timers | grep certbot ``` [step num="13"] Se não houver saída, tente estes locais: [/step] ``` cat /etc/crontab cat /etc/cron.*/* ``` [step num="14"] Você também pode executar um teste de renovação automática de seus certificados: [/step] ``` certbot renew --dry-run ``` https://serverspace.com.br/support/help/install-lamp-stack-on-ubuntu-20.04.md Neste tutorial, instalaremos o kit LAMP no servidor Ubuntu 20.04. O LAMP consiste em Linux, servidor da Web Apache, banco de dados MySQL e PHP LAMP é um acrônimo, é um conjunto de software de código aberto que geralmente é instalado em conjunto para hospedar sites dinâmicos e aplicativos da Web escritos em PHP. O sistema operacional Linux funciona com o servidor da Web Apache. Os dados do site são armazenados em um banco de dados MySQL, e o PHP é responsável pelo processamento do conteúdo dinâmico. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "LAMP" já instalado.** Neste tutorial, instalaremos o kit LAMP no servidor Ubuntu 20.04. ## Etapa 1 - Instalação do Apache [step num="1"] Primeiro, vamos atualizar os pacotes em nosso sistema e instalar o Apache. [/step] ```bash sudo apt update sudo apt upgrade sudo apt install apache2 ``` [step num="2"] Se você tiver um firewall ativado, precisará permitir o tráfego HTTP e HTTPS. Para exibir os perfis de aplicativos disponíveis, digite o comando. [/step] ``` sudo ufw app list ``` [step num="3"] Para permitir conexões não criptografadas na porta 80, há um perfil do Apache. O Apache Secure só abrirá tráfego criptografado (TLS/SSL) na porta 443. Para permitir os dois tipos de tráfego, selecione o perfil Apache Full. [/step] ``` sudo ufw allow "Apache" ``` [step num="4"] Agora vamos verificar se o servidor da Web está funcionando. Abra o endereço IP do seu servidor em um navegador. [/step] ``` http://your_server_ip ``` Se tudo estiver bem, você verá a página padrão do Apache2 com informações básicas sobre o servidor da Web. Screenshot 1. Página padrão do Apache2. ## Etapa 2 - Instalação do MySQL [step num="5"] O MySQL é o sistema de gerenciamento de banco de dados mais comumente usado em sites dinâmicos. Vamos instalá-lo. [/step] ```bash sudo apt install mysql-server ``` [step num="6"] Para melhorar a segurança do DBMS logo após a instalação, há um script especial que altera algumas configurações do MySQL. Digite este comando e siga as instruções. [/step] ``` sudo mysql_secure_installation ``` [step num="7"] Depois de concluir a configuração, vamos fazer login no console do MySQL. [/step] ```bash sudo mysql ``` A mensagem "Welcome to the MySQL monitor" significa que o servidor MySQL está em execução. ## Etapa 3 - Instalando o PHP [step num="8"] O pacote PHP processa o código e gera o conteúdo final para os usuários. Você também precisará do pacote php-mysql para interagir com os bancos de dados MySQL e libapache2-mod-php para interagir com o Apache. Vamos instalá-los. [/step] ```bash sudo apt install php php-mysql libapache2-mod-php ``` [step num="9"] Para ter certeza de que o PHP funciona e descobrir sua versão, use o comando: [/step] ```bash php -v PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS ) ... ``` Instalamos todos os elementos do kit LAMP. Nas próximas etapas, criaremos um host virtual e testaremos a funcionalidade de todo o pacote. ## Passo 4 - Criando um host virtual [step num="10"] No servidor da Web Apache, você pode usar hosts virtuais para atender a vários sites em um único servidor. Usaremos o domínio my-site.io como exemplo. Você precisa substituir esse endereço pelo seu nome de domínio. Por padrão, o Apache processa o conteúdo do diretório /var/www/html. Se você ainda não tiver um nome de domínio, poderá usar a pasta padrão para testes. O site poderá ser acessado pelo endereço IP público do servidor por meio do protocolo HTTP. Se você já tiver um nome de domínio, vamos criar um novo diretório para ele - var/www/my-site.io. Além disso, vamos definir o usuário atual do sistema como o proprietário desse diretório. [/step] ```bash sudo mkdir /var/www/my-site.io sudo chown -R $USER:$USER /var/www/my-site.io ``` [step num="11"] Depois disso, você precisa criar um arquivo de configuração para esse domínio no diretório /etc/apache2/sites-available/ e adicionar as principais configurações a ele. [/step] ```xml sudo nano /etc/apache2/sites-available/my-site.io.conf #Basic virtual host configuration ServerName my-site.io ServerAlias www.my-site.io ServerAdmin admin-mail@localhost DocumentRoot /var/www/my-site.io ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ``` [step num="12"] Para ativar o host virtual recém-criado, digite: [/step] ```bash sudo a2ensite my-site.io sudo apache2ctl configtest systemctl reload apache2 ``` [step num="13"] Agora você configurou o Apache para processar arquivos de /var/www/html por padrão ou de /var/www/my-site.io, se você já tiver um nome de domínio. Essa é a pasta raiz do site. Crie o arquivo index.html lá e coloque algum conteúdo nele. [/step] ``` #default directory nano /var/www/html/index.html #or my-site.io directory nano /var/www/my-site.io/index.html # My first web site! Some text here. ``` [step num="14"] Em seguida, digite o nome de seu domínio ou o endereço IP do servidor na barra de endereços do navegador: [/step] ``` http://my-site.io or http://web-server-ip-address ``` Screenshot 2. Página HTML de teste. Se você vir seu conteúdo lá, tudo está funcionando bem. ## Etapa 5 - Teste do PHP [step num="15"] Para testar o processamento do PHP, crie um arquivo test.php na pasta raiz do site. [/step] ``` nano /var/www/html/test.php ``` [step num="16"] Coloque este código PHP nele: [/step] ``` ``` [step num="17"] Agora, basta adicionar "/test.php" ao endereço de seu site na etapa anterior: [/step] ``` http://my-site.io/test.php or http://web-server-ip-address/test.php ``` Você verá algo parecido com isto: Screenshot 3. Página de serviço PHP Esta é uma página de serviço PHP que contém informações sobre várias configurações. Se você puder ver isso, tudo está funcionando bem. [step num="18"] Após o teste, você deve excluir essa página, pois ela contém informações confidenciais sobre seu servidor: [/step] ``` sudo rm /var/www/html/test.php ``` Agora temos um servidor LAMP em funcionamento. https://serverspace.com.br/support/help/backup-postgresql-on-ubuntu-with-bacula.md Você precisa fazer o backup do banco de dados usando o mecanismo DBMS integrado e, em seguida, copiar o arquivo resultante. O Bacula gerenciará todo o processo. A instalação e a configuração inicial do Bacula são descritas aqui: [Como fazer backup do Ubuntu Server 20.04 com o Bacula](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Neste tutorial, adicionaremos configurações para criar um backup do banco de dados PostgreSQL. Primeiro, você precisa fazer o backup do banco de dados usando a ferramenta DBMS integrada e, em seguida, copiar o arquivo resultante. O Bacula permite que você execute scripts antes e depois do processo de backup. ## Passo 1 - Preparando e criando scripts [step num="1"] Primeiro, vamos criar um script pre-psql-backup.sh na pasta /etc/bacula/ que fará o dump. [/step] ``` sudo nano /etc/bacula/pre-psql-backup.sh ``` [step num="2"] Escreva os seguintes comandos nele. [/step] ```bash #!/bin/bash # Clearing, creating, and configuring a folder for the dump rm -rf /opt/psql-backup/ mkdir -p /opt/psql-backup/ chown -R postgres:postgres /opt/psql-backup/ # Backup all PostgreSQL databases in SQL format sudo -u postgres pg_dumpall --clean --inserts --verbose --file=/opt/psql-backup/$(date +%Y-%m-%d_%H:%M).sql 2>/var/log/bacula-pg_dump.log ``` [step num="3"] Vamos criar um script para limpar a pasta temporária. [/step] ``` sudo nano /etc/bacula/post-psql-backup.sh ``` [step num="4"] Copie as seguintes linhas para lá. [/step] ```bash #!/bin/bash rm -f /opt/psql-backup/* ``` [step num="5"] Agora vamos tornar os scripts executáveis. [/step] ```bash chmod 750 /etc/bacula/pre-psql-backup.sh chmod 750 /etc/bacula/post-psql-backup.sh ``` ## Passo 2 - Configurando o Bacula [step num="6"] A próxima seção descreverá nosso Job. Cole-a no arquivo /etc/bacula/bacula-dir.conf. [/step] ``` Job { Name = "PSQL-backup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "PSQL" Schedule = "LocalDaily" Storage = LocalSD Write Bootstrap = "/var/lib/bacula/PSQLBackup.bsr" # Executing scripts ClientRunBeforeJob = "/etc/bacula/pre-psql-backup.sh" ClientRunAfterJob = "/etc/bacula/post-psql-backup.sh" } ``` [step num="7"] Agora a seção que descreve a pasta de destino para o backup. [/step] ``` FileSet { Name = "PSQL" Include { Options { signature = MD5 } File = /opt/psql-backup/ } } ``` [step num="8"] Salve e feche o arquivo e, em seguida, reinicie o Bacula para aplicar as alterações. [/step] ```bash systemctl reload bacula-dir ``` Agora o script criará dumps e o Bacula os gravará no armazenamento "LocalSD" de acordo com a programação "LocalDaily". https://serverspace.com.br/support/help/use-rsync-to-create-a-backup-on-ubuntu.md O Rsync é uma ferramenta de backup fácil de usar, mas poderosa. Neste tutorial, aprenderemos a fazer um backup no Ubuntu 20.04 usando o rsync. Há muitas maneiras de fazer um backup no Ubuntu. Recentemente, vimos uma [ferramenta poderosa, mas complexa - Bakula](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/). Hoje, aprenderemos a fazer um backup usando o rsync. ## Passo 1 - Instalando o rsync [step num="1"] O Ubuntu 20.04 já contém o pacote rsync instalado. Para verificar isso e descobrir a versão, use o comando: [/step] ```bash sudo rsync --version ``` [step num="2"] Se o pacote não estiver instalado por algum motivo, use o comando: [/step] ```bash sudo apt install rsync ``` [step num="3"] Para iniciar o rsync como um serviço no Ubuntu 20.04, crie o arquivo /etc/rsyncd.conf e copie /lib/systemd/system/rsync.service para /etc/systemd/system/rsync.service. [/step] ``` sudo nano /etc/rsyncd.conf # save and close it sudo cp /lib/systemd/system/rsync.service /etc/systemd/system/rsync.service ``` [step num="4"] Agora reinicie o serviço. [/step] ```bash sudo systemctl restart rsync ``` ## Etapa 2 - Configurando o servidor da fonte de dados [step num="5"] Primeiro, adicione estas linhas ao arquivo de configuração do rsync /etc/rsyncd.conf. Altere o parâmetro 'path' para o caminho dos arquivos de origem para backup. Para 'uid' e 'gid', use o nome de usuário e o grupo existentes com permissões de leitura nas pastas de origem do backup. [/step] ``` sudo nano /etc/rsyncd.conf # Global configuration of the rsync service pid file = /var/run/rsyncd.pid # Username and group for working with backups uid = backup-user gid = backup-user # Don't allow to modify the source files read only = yes # Data source information path = /path/to/backup list = yes auth users = backup-user secrets file = /etc/rsyncd.passwd ``` [step num="6"] Os dados no parâmetro "auth users" e o arquivo /etc/rsyncd.passwd são usados para autorização entre o rsync em computadores diferentes. Adicione uma linha nesse arquivo, como esta: [/step] ``` sudo nano /etc/rsyncd.passwd backup-user:test-pass ``` [step num="7"] Altere as permissões do arquivo rsyncd.passwd. [/step] ```bash sudo chmod 0600 /etc/rsyncd.passwd ``` [step num="8"] Reinicie o serviço para aplicar as alterações. [/step] ```bash sudo systemctl restart rsync ``` ## Etapa 3 - Executando o backup [step num="9"] Crie o arquivo /etc/rsyncd.passwd no servidor receptor onde os backups serão armazenados. Digite a mesma senha do computador de origem, mas sem o nome de usuário, e defina 600 permissões para ele. [/step] ```bash sudo nano /etc/rsyncd.passwd test-pass # Save and close file sudo chmod 0600 /etc/rsyncd.passwd ``` [step num="10"] Para realizar um backup, execute o comando: [/step] ```bash rsync -a --password-file=/etc/rsyncd.passwd backup-user@source-server-ip::data /destination/path/$(date +%Y-%m-%d)/ ``` [step num="11"] Substitua source-server-ip pelo endereço IP do primeiro servidor e '/destination/path/' pelo caminho para armazenar backups. [/step] [step num="12"] Para backups regulares, basta adicionar a tarefa ao final do arquivo /etc/crontab. https://serverspace.com.br/support/help/configure-bind9-dns-server-on-ubuntu.md Neste tutorial, examinaremos a instalação e a configuração básica do servidor DNS BIND9 no Ubuntu 20.04 Neste tutorial, examinaremos a instalação e a configuração básica do servidor DNS BIND9. Como configurar o servidor DNS BIND9 no Ubuntu 20.04: - [Instalar o BIND9](#stepone) - [Configurar o BIND9](#steptwo) - [Testar o BIND9](#stepthree) ## Instalar o BIND9 [step num="1"] A primeira coisa que você precisa fazer é atualizar a lista de pacotes e instalar o BIND9. [/step] ```bash sudo apt update sudo apt install bind9 ``` [step num="2"] Após a conclusão do processo de instalação, você pode verificar se o BIND9 está funcionando. [/step] ``` nslookup google.com 127.0.0.1 ``` A resposta será algo parecido com isto: ```yaml Server: 127.0.0.1 Address: 127.0.0.1#53 ``` ```yaml Non-authoritative answer: Name: google.com Address: 64.233.164.138 ... ``` ## Configuração do BIND9 [step num="3"] O servidor DNS funciona logo após a instalação. Você precisa configurá-lo de acordo com suas finalidades de uso. Primeiro, permita que o BIND9 funcione por meio do firewall. [/step] ``` sudo ufw allow Bind9 ``` [step num="4"] O arquivo de configuração principal é **named.conf.options**, vamos abri-lo. [/step] ``` sudo nano /etc/bind/named.conf.options ``` [step num="5"] Algumas das opções disponíveis estão listadas abaixo. Adicione o necessário à diretriz "options". [/step] [step num="6"] A diretiva "listen-on" permite especificar as redes que o servidor DNS atenderá. Não escreva isso ou escreva "any;" para trabalhar com todos os endereços. [/step] ``` listen-on { 10.10.10.0/24; 10.1.0.0/16; ... }; ``` [step num="7"] O BIND9 só permite consultas locais por padrão. Adicione os endereços IP necessários à diretiva "allow-query" ou "any;" para permitir todas as solicitações. [/step] ``` allow-query { any; }; ``` [step num="8"] Os encaminhadores contêm os endereços IP dos servidores DNS para os quais a solicitação é redirecionada se o nosso servidor não contiver os dados necessários. [/step] ``` forwarders { 8.8.8.8; 8.8.4.4; }; ``` [step num="9"] Salve e feche o arquivo. Verifique a configuração: [/step] ``` sudo named-checkconf ``` [step num="10"] Se nenhum erro for exibido, então tudo está em ordem. Reinicie o serviço para que as alterações tenham efeito. [/step] ```bash sudo systemctl restart bind9 ``` ## Teste do BIND9 [step num="11"] Para verificar se o servidor DNS está funcionando corretamente, digite o seguinte comando em qualquer outro computador remoto. Substitua dns-server-ip-address pelo endereço IP do servidor DNS. [/step] ``` nslookup ubuntu.com dns-server-ip-address ``` Saída: ```yaml Server: dns-server-ip-address Address: dns-server-ip-address#53 ``` ```yaml Non-authoritative answer: Name: ubuntu.com Address: 91.189.88.181 ... ``` [step num="12"] Agora você tem um servidor de nomes de cache BIND9 em funcionamento. [/step] **Próximas etapas:** - [BIND9 como servidor DNS primário;](https://serverspace.com.br/support/help/bind9-as-a-primary-dns-server-on-ubuntu/) - [BIND9 como um servidor DNS secundário;](https://serverspace.com.br/support/help/bind9-as-a-secondary-dns-server-on-ubuntu/) https://serverspace.com.br/support/help/bind9-as-a-primary-dns-server-on-ubuntu.md Neste tutorial, vamos percorrer as etapas para configurar o BIND9 como o servidor DNS primário para um nome de domínio no Ubuntu 20.04. Você pode usar o servidor DNS de diferentes maneiras. Neste tutorial, configuraremos o BIND9 como o servidor DNS primário para um nome de domínio. Depois disso, você pode especificar os endereços IP de vários serviços de domínio, por exemplo, o servidor de e-mail, bem como domínios de terceiro nível. Antes de começar, [faça a instalação e a configuração básica do BIND9](https://serverspace.com.br/support/help/configure-bind9-dns-server-on-ubuntu/). ## Criação de zona DNS Neste tutorial, usaremos "domain-name.com" como exemplo. Simplesmente altere-o para seu nome de domínio. Além disso, você precisa usar seus endereços IP reais em vez de 10.1.1.xxx no exemplo. [step num="1"] Vamos adicionar informações de zona à configuração. [/step] ``` sudo nano /etc/bind/named.conf.local ``` [step num="2"] Adicione essas linhas a ele. [/step] ``` zone "domain-name.com" { type master; file "/etc/bind/db.domain-name.com"; allow-transfer { 10.1.1.10; }; also-notify { 10.1.1.10; }; }; ``` - tipo pode ser master, slave, forward, hint; - file - indica o caminho para o arquivo da nova zona; - allow-transfer - lista de servidores DNS que têm permissão para transferir a zona; - also-notify - o servidor DNS primário notificará esses servidores sobre as alterações de zona. [step num="3"] Reinicie o serviço. [/step] ```bash systemctl reload bind9 ``` ## Configuração do arquivo de zona [step num="4"] Crie um arquivo de zona a partir do modelo e abra-o. [/step] ``` sudo cp /etc/bind/db.local /etc/bind/db.domain-name.com sudo nano /etc/bind/db.domain-name.com ``` [step num="5"] Substitua localhost no registro SOA pelo FQDN do seu servidor com o caractere "." no final. No exemplo, isso é "ns.domain-name.com.". Substitua "root.localhost" pelo seu endereço de e-mail de administrador válido com "." em vez de "@" e "." no final. Serial - número de série da alteração. Você precisa incrementá-lo manualmente sempre que alterar o arquivo de zona. O servidor secundário monitora as alterações na zona usando esse parâmetro. [/step] ``` ; ; ; $TTL 604800 @ IN SOA ns.domain-name.com. admin.domain-name.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.domain-name.com. @ IN A 10.1.1.1 ns IN A 10.1.1.9 ns2 IN A 10.1.1.10 mx IN A 10.1.1.15 ``` [step num="6"] A parte inferior do arquivo contém registros DNS. O formato do registro: hostnameclassDNS record typevalue. Onde: - nome do host - na maioria das vezes, esse valor é um nome de domínio de terceiro nível, e "domain-name.com" é preenchido automaticamente. @ ou nenhum significa uma entrada para o nome da zona (nesse caso, domain-name.com). Você também pode especificar o FQDN com um ponto no final (por exemplo, ns.domain-name.com.); - A classe é IN (Internet), que indica o tipo de rede; - Os tipos mais comuns de registros de DNS: A, NS, MX, CNAME, TXT. "A" contém o endereço IP do nome de domínio, "NS" é o endereço IP do servidor DNS da zona, "MX" - o servidor de e-mail, "CNAME" - alias referente ao valor do registro especificado, "TXT" - entrada personalizada; - valor - endereço IP, nome do host, informações de texto. [/step] [step num="7"] Reinicie o rndc. [/step] ``` sudo rndc reload ``` [step num="8"] Você pode verificar o servidor DNS. Digite esse comando em qualquer computador remoto. [/step] ``` nslookup domain-name.com 10.1.1.9 ``` [step num="9"] Substitua domain-name.com pelo seu FQDN e 10.1.1.9 pelo endereço do servidor de nomes recém-configurado. O registro A de DNS do seu domínio será usado como resposta. No exemplo dado, esse registro é 10.1.1.1. [/step] **Próxima etapa** - [BIND9 como um servidor DNS secundário.](https://serverspace.com.br/support/help/bind9-as-a-secondary-dns-server-on-ubuntu/) https://serverspace.com.br/support/help/bind9-as-a-secondary-dns-server-on-ubuntu.md Neste tutorial, vamos percorrer as etapas para configurar o BIND9 como o servidor DNS secundário para um nome de domínio no Ubuntu 20.04. O servidor DNS secundário funciona para tolerância a falhas. Se o principal parar de funcionar por algum motivo, o secundário garantirá a funcionalidade do site e de outros recursos especificados nele. [step num="1"] Primeiro, você precisa [instalar e fazer uma configuração básica do servidor DNS BIND9](https://serverspace.com.br/support/help/configure-bind9-dns-server-on-ubuntu/). [/step] ### Configurações iniciais - IP do servidor DNS primário - 10.1.1.9 - IP do servidor DNS secundário - 10.1.1.10 - Nome de domínio de exemplo - nome-do-domínio.com ## Configurações adicionais para o servidor DNS primário BIND9 Se você [configurou o servidor DNS primário de acordo com nossas instruções](https://serverspace.com.br/support/help/bind9-as-a-primary-dns-server-on-ubuntu/), pode pular esta etapa. [step num="2"]. Devemos permitir que o servidor DNS primário transmita dados da zona DNS para o servidor secundário. Abra o arquivo de configuração do BIND9. [/step] ``` sudo nano /etc/bind/db.domain-name.com ``` [step num="3"] Adicione os dois parâmetros a seguir às configurações da zona: **allow-transfer** e **also-notify**, substituindo-os pelo endereço IP do servidor secundário. O resultado será algo parecido com isto. [/step] ``` zone "domain-name.com" { type master; file "/etc/bind/db.domain-name.com"; allow-transfer { 10.1.1.10; }; also-notify { 10.1.1.10; }; }; ``` [step num="4"] Salve esse arquivo e recarregue o BIND9. [/step] ```bash sudo systemctl reload bind9 ``` ## Configuração do BIND9 como um servidor DNS secundário [step num="5"] Abra o arquivo de configuração do BIND9. [/step] ``` sudo nano /etc/bind/named.conf.local ``` [step num="6"] Adicione a seguinte diretriz a ele. [/step] ``` zone "domain-name.com" { type slave; file "db.domain-name.com"; masters { 10.1.1.9; }; }; ``` [step num="7"] O parâmetro **masters** deve conter o endereço IP do servidor DNS primário. Salve o arquivo e recarregue o BIND9. [/step] ```bash sudo systemctl reload bind9 ``` [step num="8"] Para verificar se o servidor DNS secundário está funcionando corretamente, use o comando em qualquer computador remoto: [/step] ``` nslookup domain-name.com 10.1.1.10 ``` [step num="9"] Use seu FQDN em vez de domain-name.com e o endereço IP de seu servidor DNS secundário em vez de 10.1.1.10. [/step] Saída ```yaml Server: 10.1.1.10 Address: 10.1.1.10#53 ``` ```yaml Name: domain-name.com Address: 10.1.1.10 ``` https://serverspace.com.br/support/help/how-to-get-lets-encrypt-ssl-on-ubuntu.md Neste artigo, veremos o processo de obtenção de um certificado SSL gratuito Let's Encrypt com instalação automática no Ubuntu 20.04 A criptografia SSL/TLS é parte integrante da infraestrutura de rede. Qualquer servidor da Web e de e-mail permite que você ative a criptografia de dados. Neste artigo, veremos o processo de obtenção de um certificado SSL gratuito Let's Encrypt. Como obter o Let's Encrypt SSL no Ubuntu 20.04: - [Instale o pacote "Let's Encrypt"](#stepone) - [Servidor Standalone para obter o certificado SSL "Let's Encrypt"](#steptwo) - [Instalar automaticamente o certificado SSL nos servidores da Web Ngix e Apache](#stepthree) - [Criar o certificado "Let's Encrypt Wildcard SSL"](#stepfour) Como condições iniciais, você deve ter um nome de domínio. Seu registro A de DNS deve conter o endereço público do seu servidor. Se o firewall estiver ativado, abra o acesso para o tráfego HTTP e HTTPS. ``` sudo ufw allow 80 sudo ufw allow 443 ``` ## Etapa 1 - Instalação do pacote "Let's Encrypt" [step num="1"] O processo de instalação do pacote "Let's Encrypt" com todas as suas dependências é extremamente simples. Para fazer isso, digite o comando: [/step] ```bash sudo apt install letsencrypt ``` [step num="2"] Juntamente com o pacote "Let's Encrypt", esse comando também instala o utilitário "certbot.timer" para renovação automática de certificados. Ele verifica a validade dos certificados SSL no sistema duas vezes por dia e estende aqueles que expiram nos próximos 30 dias. Para ter certeza de que ele está sendo executado, digite: [/step] ```bash sudo systemctl status certbot.timer ``` Há diferentes configurações e condições para obter um certificado. Vamos dar uma olhada em algumas delas. ## Etapa 2 - Servidor autônomo para obter o certificado SSL "Let's Encrypt" [step num="3"] A maneira mais fácil de obter um certificado SSL é usar uma opção autônoma no Certbot. Substitua **domain-name.com** pelo nome do seu domínio, execute o comando e siga as instruções: [/step] ``` sudo certbot certonly --standalone --agree-tos --preferred-challenges http -d domain-name.com ``` [step num="4"] A opção **certonly** significa que o certificado só será obtido sem instalação em qualquer servidor da Web, **standalone** permite que você inicie seu próprio servidor da Web para autenticação, **agree-tos** significa a aceitação do contrato de assinatura do servidor ACME, que é um pré-requisito, e **preferred-challenges http** significa a execução da autorização usando HTTP. [/step] ## Etapa 3 - Instalação automática do certificado SSL nos servidores da Web nginx e Apache [step num="5"] O Certbot pode instalar automaticamente o certificado nos servidores da Web nginx e Apache. Para fazer isso, você precisa instalar um pacote adicional e escolher o pacote apropriado para o seu servidor da Web. [/step] ```bash apt install python3-certbot-nginx apt install python3-certbot-apache ``` [step num="6"] Execute este comando para o nginx: [/step] ``` sudo certbot --nginx --agree-tos --preferred-challenges http -d domain-name.com ``` [step num="7"] Ou isto para o Apache: [/step] ``` sudo certbot --apache --agree-tos --preferred-challenges http -d domain-name.com ``` [step num="8"] Siga as instruções e o Certbot instalará um certificado SSL para você. [/step] ## Etapa 4 - Certificado SSL curinga "Let's Encrypt" [step num="9"] Para criar um certificado curinga, o único método de desafio possível é o DNS. No parâmetro **d**, você deve especificar o domínio simples e o curinga. [/step] ``` sudo certbot certonly --manual --agree-tos --preferred-challenges dns -d domain-name.com -d *.domain-name.com ``` [step num="10"] Depois disso, coloque o registro TXT especificado no seu servidor DNS e clique em continuar. [/step] [step num="11"] Se tudo estiver bem, você verá o caminho onde o novo certificado curinga está armazenado e algumas outras informações. https://serverspace.com.br/support/help/how-to-add-swap-space-on-ubuntu-20-04.md O swap é um espaço adicional à quantidade de RAM alocada do espaço do disco rígido. Neste tutorial, criaremos um arquivo de swap de 4 GB. O swap é um espaço adicional à quantidade de RAM alocada do espaço do disco rígido. Se não houver RAM suficiente, o sistema moverá os dados mais antigos para o swap, liberando assim espaço para os aplicativos ativos. ## Recomendações para o arquivo de troca Os discos rígidos, mesmo os de estado sólido, são mais lentos que a RAM. Portanto, ao projetar e usar o sistema, é necessário alocar a quantidade de RAM com uma certa margem, deixando para o arquivo de troca a função de um espaço de backup. O tamanho ideal do swap é igual à quantidade de RAM, mas em alguns casos ele pode ser dobrado. Os servidores virtuais geralmente não têm espaço de troca. Em servidores físicos, ele geralmente é definido automaticamente, mas pode ser alterado para algumas finalidades. Neste tutorial, criaremos um arquivo de troca de 4 GB. ## Criação do arquivo de troca [step num="1"] Primeiro, vamos criar um arquivo e pré-alocar espaço para o swap. [/step] ``` sudo fallocate -l 4G /swap ``` [step num="2"] Feche os direitos de acesso a arquivos para todos, exceto para o root. [/step] ```bash sudo chmod 600 /swap ``` [step num="3"] Configure a área de troca no arquivo **/swap**. [/step] ``` sudo mkswap /swap ``` Saída: ``` Setting up swapspace version 1, size = 4 GiB (4294963200 bytes) no label, UUID=3c2ac0c0-3cc2-4571-b072-5f7d556acc88 ``` [step num="4"] Ativar o arquivo de troca. [/step] ``` sudo swapon /swap ``` [step num="5"] Para ativá-lo após uma reinicialização, abra o arquivo: [/step] ``` sudo nano /etc/fstab ``` [step num="6"] Cole esta linha no final dela. [/step] ``` /swap swap swap defaults 0 0 ``` ## Verificação do arquivo de troca [step num="7"] Para ver o tamanho e o espaço usado do arquivo de troca, use o comando: [/step] ``` sudo swapon --show ``` Saída: ``` NAME TYPE SIZE USED PRIO /swap file 4G 0B -2 ``` [step num="8"] A segunda opção é visualizar o estado da RAM e do arquivo de troca. [/step] ``` sudo free -h ``` Saída: ```yaml total used free shared buff/cache available Mem: 1.9Gi 74Mi 1.8Gi 0.0Ki 115Mi 1.7Gi Swap: 4.0Gi 0B 4.0Gi ``` ## Configuração da alternância [step num="9"] Swappiness é um parâmetro que permite ajustar o nível de uso de swap pelo sistema. Um valor alto resultará em uso ativo do arquivo de swap, enquanto um valor baixo resultará em uso mínimo. Para ver o valor atual, digite: [/step] ``` cat /proc/sys/vm/swappiness ``` Saída: ``` 60 ``` [step num="10"] Para defini-la como 20, use o seguinte comando ou insira um valor de 0 a 100: [/step] ``` sudo sysctl vm.swappiness=20 ``` [step num="11"] Para salvar essa configuração após uma reinicialização, abra o arquivo **/etc/sysctl.conf** e insira-a lá: [/step] ``` vm.swappiness=20 ``` [step num="12"] Salve e feche. [/step] ## Removendo o arquivo de troca [step num="13"] Primeiro, desative o arquivo de troca. [/step] ``` sudo swapoff /swap ``` [step num="14"] Em seguida, remova essa linha do arquivo **/etc/fstab**. [/step] ``` /swap swap swap defaults 0 0 ``` [step num="15"] Por fim, exclua o arquivo do sistema de arquivos. [/step] ``` sudo rm /swap ``` https://serverspace.com.br/support/help/set-up-wireguard-vpn-server-on-ubuntu.md Neste tutorial, veremos as etapas para instalar e configurar o servidor e o cliente WireGuard VPN no Ubuntu 20.04 WireGuard é uma VPN moderna e de alto desempenho, projetada para criar conexões seguras e criptografadas entre servidores e clientes. Neste tutorial, você vai aprender a instalar o servidor WireGuard no Ubuntu 20.04, gerar pares de chaves para autenticação segura, configurar o firewall e preparar os clientes para se conectarem à VPN. Com este passo a passo detalhado, você poderá montar uma rede privada protegida, garantindo a segurança dos dados e facilitando o gerenciamento de conexões remotas de forma prática e confiável. ## Instalação do WireGuard Instale o pacote WireGuard nos computadores servidor e cliente usando este comando: ```bash sudo apt install wireguard ``` ## Configuração do sistema Primeiro, você precisa permitir o tráfego UDP de entrada em alguma porta para a conexão VPN. ``` sudo ufw allow 61951/udp ``` Permitir o redirecionamento de pacotes de rede no nível do kernel. ``` sudo nano /etc/sysctl.conf ``` Descomente a seguinte linha. ``` net.ipv4.ip_forward=1 ``` Aplique as alterações. ``` sudo sysctl -p ``` ## Criação de pares de chaves públicas e privadas Use esse comando para gerar chaves e tornar a chave privada acessível somente ao usuário root por motivos de segurança. ```bash wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key sudo chmod 600 /etc/wireguard/server_private.key ``` Execute a mesma ação no computador do cliente para as chaves client_private.key e client_public.key. Para ver os valores das chaves, use o comando "cat", por exemplo: ``` sudo cat /etc/wireguard/server_private.key cat /etc/wireguard/server_public.key ``` ## Configuração do servidor WireGuard Crie o arquivo de configuração do WireGuard. ``` sudo nano /etc/wireguard/wg0.conf ``` Preencha-o com as seguintes linhas: ``` # Server configuration PrivateKey = oCH7Z0g+ieQ99KkkR1E5EO22Evs5q75F+ES4O4Oc93E= # The server_private.key value. Address = 10.5.5.1/24 # Internal IP address of the VPN server. ListenPort = 61951 # Previously, we opened this port to listen for incoming connections in the firewall. # Change "enp0s5" to the name of your network interface in the following two settings. This commands configures iptables for WireGuard. PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s5 -j MASQUERADE PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s5 -j MASQUERADE ``` ``` # Configurations for the clients. You need to add a [Peer] section for each VPN client. PublicKey = gsgfB29uYjpuFTCjC1+vHr9M7++MHJcG6Eg4rtuTu34= # client_public.key value. AllowedIPs = 10.5.5.2/32 # Internal IP address of the VPN client. ``` Salve e feche esse arquivo. Para iniciar o servidor VPN do WireGuard, digite o comando: ```bash sudo systemctl start wg-quick@wg0 ``` Configure a execução automática da interface após a reinicialização do sistema. ```bash sudo systemctl enable wg-quick@wg0 ``` ## Configuração do cliente WireGuard Você também precisa instalar o "resolvconf" no cliente. ```bash sudo apt install resolvconf ``` Agora, crie o arquivo de configuração do WireGuard na máquina do cliente. ``` sudo nano /etc/wireguard/wg0.conf ``` Preencha-o com as seguintes linhas: ``` # Client configuration PrivateKey = eLI6PoQf3xhLHu+wlIIME5ullpxxp8U+sYMKHGcv2VI= # The client_private.key value. Address = 10.5.5.2/24 # IP address of the client's wg0 interface. DNS = 8.8.8.8 ``` ``` # Server connection configuration PublicKey = tsGQ8spwOQhpJb4BbhZtunLZEJCcPxUBIaQUpniQ+z4= # The server_public.key value. AllowedIPs = 0.0.0.0/0 # Traffic for these addresses will be routed through the VPN tunnel. In this example, all addresses are selected. Endpoint = 82.213.236.27:61951 # Public IP address of our VPN server and port number (ListenPort in the server configuration). PersistentKeepalive = 25 ``` Salve e feche-o. Use este comando para estabelecer a conexão VPN: ``` sudo wg-quick up wg0 ``` Para visualizar as informações da conexão, use este comando: ``` wg ``` Saída: ``` interface: wg0 public key: gsgfB29uYjpuFTCjC1+vHr9M7++MHJcG6Eg4rtuTu34= private key: (hidden) listening port: 58208 ``` ```yaml peer: tsGQ8spwOQhpJb4BbhZtunLZEJCcPxUBIaQUpniQ+z4= endpoint: 82.213.236.27:61951 allowed ips: 0.0.0.0/0 ... ``` ## FAQ - **Preciso abrir uma porta específica no firewall para o WireGuard? ** Sim, você deve permitir o tráfego UDP na porta definida na configuração do servidor (por exemplo, 61951). - **Como gerar as chaves pública e privada para o servidor e clientes?** Use o comando wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key no servidor e o equivalente no cliente. - **Posso adicionar múltiplos clientes ao WireGuard? ** Sim, basta criar uma seção [Peer] no arquivo de configuração do servidor para cada cliente. - **Como garantir que o WireGuard inicie automaticamente após reiniciar o servidor? ** Execute sudo systemctl enable wg-quick@wg0 no servidor. - **É possível usar DNS personalizado no cliente? ** Sim, configure o parâmetro DNS no arquivo de configuração do cliente. ## Conclusão Com este tutorial, você pode instalar e configurar o servidor e clientes WireGuard no Ubuntu 20.04, garantindo conexões VPN seguras e confiáveis. Seguindo as boas práticas, como abrir apenas a porta necessária, gerar corretamente os pares de chaves e usar AllowedIPs adequadamente, você mantém a rede protegida e eficiente. A configuração automática de inicialização do WireGuard garante que a VPN esteja sempre ativa, permitindo o gerenciamento remoto seguro de servidores e a conexão de múltiplos clientes de forma confiável. https://serverspace.com.br/support/help/configure-repositories-on-centos-8.md Muitas vezes, os repositórios de pacotes padrão do CentOS não são suficientes. O processo de gerenciá-los será descrito neste guia. Apenas um pequeno número de pacotes está disponível nos repositórios do CentOS pré-instalados. Além disso, essas versões nem sempre são as mais recentes. É por isso que muitas vezes você precisa conectar repositórios adicionais. Esse processo será descrito neste tutorial. [step num="1"] Para ver os repositórios instalados no CentOS, use o comando: [/step] ```bash yum repolist ``` [step num="2"] Para listar todos os pacotes com suas versões no repositório (altere BaseOS para qualquer nome de repositório): [/step] ```bash yum repo-pkgs BaseOS list ``` ## Instalação de repositórios adicionais populares no CentOS 8 [step num="3"] O EPEL (Extra Packages for Enterprise Linux) contém um grande número de pacotes. Esse é o repositório adicional mais popular. Vamos instalá-lo. [/step] ```bash yum install epel-release ``` [step num="4"] O Remi é outro repositório adicional popular para o CentOS 8. Para usá-lo, o Epel deve estar instalado no sistema. Observe que os pacotes desse repositório têm os mesmos nomes que os oficiais, portanto, isso pode levar a atualizações indesejadas. Para instalá-lo, use o comando: [/step] ``` rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-8.rpm ``` ## Instalação de um repositório para um único pacote [step num="5"] Vamos considerar a instalação de um repositório individual usando o Mysql como exemplo. Esse método permite que você obtenha as atualizações mais recentes muito antes de elas aparecerem em outros repositórios de pacotes, como o BaseOS ou o EPEL. Faça o download do pacote: [/step] ```bash wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm ``` [step num="6"] E instale-o. [/step] ``` rpm -Uvh mysql80-community-release-el8-1.noarch.rpm ``` ## Desativação e exclusão de repositórios [step num="7"] Para evitar o uso do repositório durante a atualização atual do sistema, use o comando: [/step] ```bash yum update --disablerepo=remi-modular ``` [step num="8"] Para desativar um repositório no sistema sem excluí-lo, use: [/step] ```bash yum-config-manager --disable epel ``` [step num="9"] Depois disso, você pode ativá-lo novamente: [/step] ```bash yum-config-manager --enable epel ``` [step num="10"] Para excluir completamente um repositório, use o seguinte comando com o nome apropriado: [/step] ```bash yum remove epel-release ``` https://serverspace.com.br/support/help/remote-backups-using-bacula-on-ubuntu.md O Bacula é uma ferramenta de backup avançada e complexa. Neste tutorial, adicionaremos configurações para fazer o backup de um cliente remoto usando o Bacula no Ubuntu 20.04 Recentemente, configuramos o arquivo [backup em um Ubuntu Server 20.04 local com o Bacula](https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula/), usaremos esse servidor como Bacula Director e Storage. Neste tutorial, adicionaremos configurações para fazer o backup de um cliente remoto. ## Instalando e configurando o cliente [step num="1"] O cliente é uma máquina remota que executa o Ubuntu Server 20.04, cujos dados serão armazenados em backup. Vamos instalar o pacote Bacula para ele. [/step] ```bash sudo apt install bacula-client ``` [step num="2"] Abra o arquivo de configuração. [/step] ``` sudo nano /etc/bacula/bacula-fd.conf ``` [step num="3"] Copie a senha da primeira seção do Director para um local disponível para uso futuro no servidor Bacula. [/step] ``` Director { Name = Ubuntu-Server # Enter the name of the server's Bacula Director here Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" #Copy this value } ``` [step num="4"] Defina também os valores "Name" e "FDAddress" na seção FileDaemon. O mesmo nome que definiremos no servidor Bacula para esse cliente daemon de arquivo e "FDAddress" deve conter o endereço IP no qual esse cliente está disponível. [/step] ``` FileDaemon { Name = Ubuntu-Client-fd FDport = 9102 WorkingDirectory = /var/lib/bacula Pid Directory = /run/bacula Maximum Concurrent Jobs = 20 Plugin Directory = /usr/lib/bacula FDAddress = 10.5.5.5 } ``` [step num="5"] Salve o arquivo e reinicie o serviço. [/step] ```bash sudo systemctl restart bacula-fd ``` [step num="6"] Para poder restaurar arquivos nesse computador, crie uma pasta e torne o bacula seu proprietário. [/step] ```bash mkdir /opt/restore chown bacula:bacula /opt/restore ``` ## Configuração do servidor Bacula O servidor Bacula já está configurado. Usaremos o armazenamento existente e adicionaremos uma configuração para fazer o backup do cliente. [step num="7"] Defina o endereço IP do servidor no parâmetro "SDAddress" da seção "Storage" no arquivo **/etc/bacula/bacula-sd.conf**. [/step] ``` Storage { ... SDAddress = 10.5.5.1 } ``` [step num="8"] Abra o arquivo de configuração do Bacula Director **/etc/bacula/bacula-dir.conf**. Digite o endereço IP do servidor no campo "DirAddress" da seção Director. [/step] ``` Director { Name = Ubuntu-Server ... DirAddress = 10.5.5.1 } ``` [step num="9"] Digite o mesmo endereço no parâmetro "Address" (Endereço) da seção "Storage" (Armazenamento). [/step] ``` Storage { ... Address = 10.5.5.1 } ``` [step num="10"] Você também precisa inseri-lo no parâmetro "Address" no arquivo **/etc/bacula/bconsole.conf**. Agora, vá para o arquivo **/etc/bacula/bacula-dir.conf** novamente e adicione uma nova seção "Client". [/step] ``` Client { Name = Ubuntu-Client-fd # Value of the "Name" field in the "FileDaemon" section on the client Address = 10.5.5.5 # IP address of the client FDPort = 9102 Catalog = MyCatalog Password = "6L8hAXhC3BES4OlbkI2F-v6Xq66Dem05v" # Paste here the value of the "Password" parameter in the "Director" section on the client } ``` [step num="11"] Adicione uma nova seção "FileSet" com um nome exclusivo. Os parâmetros "File" definem os caminhos para o backup. Você pode adicionar qualquer número deles. [/step] ``` FileSet { Name = "RemoteFS" Include { Options { signature = MD5 } File = /home/user1 File = /home/user2 } } ``` [step num="12"] Adicione uma nova seção "Schedule", defina um nome exclusivo para ela e selecione um horário para o backup. [/step] ``` Schedule { Name = "RemoteDaily" Run = Full daily at 05:00 } ``` [step num="13"] Adicione uma nova seção Pool. [/step] ``` Pool { Name = RemotePool Pool Type = Backup Label Format = "RM-" # New label for separating files in the backup storage from local backups } ``` [step num="14"] Adicione uma nova seção Job. [/step] ``` Job { Client = "Ubuntu-Client-fd" # The "Name" value of the recently created "Client" Name = "RemoteBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "RemoteFS" # The name of recently added "FileSet' section Schedule = "RemoteDaily" # The name of the schedule for this Job Pool = "RemotePool" # Must be equal to the recently created "Pool" name Storage = LocalSD Write Bootstrap = "/var/lib/bacula/RemoteBackup.bsr" } ``` [step num="15"] Adicione também a seção "Job" para poder restaurar os dados. [/step] ``` Job { Name = "RemoteRestore" Type = Restore Client= "Ubuntu-Client-fd" FileSet="Full Set" Storage = LocalSD Pool = "RemotePool" Messages = Standard Where = /opt/restore # Path to the folder that we created on the client for data restore Bootstrap = "/var/lib/bacula/RemoteBackup.bsr" } ``` [step num="16"] Salve e feche o arquivo e reinicie o serviço Bacula. [/step] ```bash sudo systemctl restart bacula-dir ``` ## Executando o backup do servidor remoto usando o Bacula [step num="17"] O trabalho de backup será iniciado no horário programado. Para iniciá-lo imediatamente, vá para o "bconsole". [/step] ``` bconsole ``` Saída: ``` Connecting to Director 10.5.5.1:9101 1000 OK: 103 Ubuntu-Server Version: 9.4.2 (04 February 2019) Enter a period to cancel a command. * ``` [step num="18"] Digite "run" e selecione o trabalho "RemoteBackup". Agora você pode verificar, modificar ou confirmar os parâmetros listados. Você também pode alterar o destino da recuperação de arquivos nessa etapa, por exemplo. Isso pode ser útil no caso de perda do cliente. [/step] ```yaml Run Backup job JobName: RemoteBackup Level: Full Client: Ubuntu-Client-fd FileSet: RemoteFS Pool: RemotePool (From Job resource) Storage: LocalSD (From Job resource) ... ``` Para exibir informações sobre trabalhos agendados, em execução e encerrados, digite "status" e "1". Para restaurar dados, digite o comando "restore" no bconsole e siga as instruções. https://serverspace.com.br/support/help/install-configure-fail2ban-ubuntu-20-04.md Neste tutorial, instalaremos e configuraremos o Fail2ban no Ubuntu 20.04. Ele foi projetado para proteger portas e serviços abertos no servidor. O Fail2ban foi projetado para proteger portas abertas e serviços em execução no servidor. Ele monitora tentativas de autorização malsucedidas e bloqueia o endereço IP de origem por um determinado período. Isso reduz significativamente a probabilidade de invasão do servidor por meios automáticos, por exemplo, login e senha de força bruta. Neste tutorial, instalaremos e configuraremos o Fail2ban no Ubuntu 20.04. ## Instalação do Fail2ban [step num="1"] Para instalar o Fail2ban, use este comando: [/step] ```bash apt install fail2ban ``` [step num="2"] Ele é iniciado automaticamente após a instalação. Para verificar o status do serviço, use este comando: [/step] ```bash systemctl status fail2ban ``` ## Configuração do Fail2ban [step num="3"] Para alterar as configurações de proibição padrão para todos os serviços, faça uma cópia do arquivo **jail.conf**. [/step] ``` cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local ``` [step num="4"] Abra o arquivo **jail.local** e vá para a seção **[DEFAULT]**. Por exemplo, vamos definir o tempo de banimento como 3600 minutos. [/step] ``` bantime = 3600m ``` [step num="5"] Para ver todas as regras disponíveis, vá para a seção **JAILS**. Por exemplo: [/step] ``` ``` [step num="6"] Depois de alterar o arquivo, reinicie o serviço. [/step] ```bash systemctl restart fail2ban ``` ## Adicionando e configurando regras [step num="7"] Há uma pasta **/etc/fail2ban/jail.d/** para gerenciar as regras ativas. Você pode criar um arquivo separado para cada uma delas. Por exemplo, **nginx-http-auth.conf**. A segunda maneira é inserir a configuração no arquivo **defaults-debian.conf** existente. Basta adicionar essas linhas lá: [/step] ``` enabled = true ``` [step num="8"] Você pode adicionar parâmetros individuais para cada regra aqui. Vamos definir o endereço IP a ser ignorado no parâmetro **ignoreip**, o tempo para o banimento é de 2400 minutos e o número de tentativas de autorização com falha é 10. [/step] ``` ignoreip = 10.10.10.5 bantime = 2400m maxretry = 10 ``` [step num="9"] Salve e feche o arquivo e reinicie o serviço. [/step] ```bash systemctl restart fail2ban ``` ## Usando o fail2ban-client [step num="10"] Há um cliente Fail2ban para gerenciar suas regras. Lembre-se de que todas as alterações feitas aqui serão redefinidas após a reinicialização do sistema ou do serviço. Para visualizar as regras ativas, use este comando: [/step] ``` fail2ban-client status ``` [step num="11"] Para ver as estatísticas da cadeia, use esse comando com o nome que você precisa em vez de **sshd**: [/step] ``` fail2ban-client status sshd ``` [step num="12"] Para ativar uma regra, use seu nome no arquivo de configuração e o comando: [/step] ``` fail2ban-client add nginx-http-auth ``` [step num="13"] Em seguida, inicie-o. [/step] ``` fail2ban-client start nginx-http-auth ``` [step num="14"] Para exibir todos os comandos disponíveis: [/step] ``` fail2ban-client -h ``` https://serverspace.com.br/support/glossary.md Conheça diversos termos técnicos, jargões de TI e definições de tecnologia da informação em nosso Glossário. Clique para expandir seu conhecimento técnico. Conheça diversos termos técnicos, jargões de TI e definições de tecnologia da informação em nosso Glossário. Clique para expandir seu conhecimento técnico. https://serverspace.com.br/support/glossary/application-programming-interface.md Application Programming Interface, ou API, refere-se a uma interface de interação de aplicativos que permite que serviços e outros aplicativos se comuniquem entre si. API (Application Programming Interface, ou Interface de Programação de Aplicações) refere-se a uma interface de interação entre aplicações, permitindo que serviços e outros aplicativos se comuniquem entre si. A API define a funcionalidade que um programa (módulo, biblioteca) oferece, ao mesmo tempo que permite a abstração da forma como essa funcionalidade é implementada. Geralmente, uma hierarquia é estabelecida entre os componentes, onde os de nível mais alto utilizam APIs de nível mais baixo, e assim sucessivamente. O aspecto-chave do trabalho com API é o uso de código pronto ou de uma função fixa que será utilizada no produto final. O método de implementação se torna secundário, permitindo que desenvolvedores disponibilizem suas funcionalidades para outros programadores de forma simplificada. ## Componentes principais da API A definição de API destaca dois componentes essenciais: - Um segmento de software com uma função específica; - Uma parte separada de uma aplicação completa. A fragmentação dos componentes individuais pode ser determinada pelo grau de independência do módulo dentro da aplicação. Na maioria dos casos, as APIs de bibliotecas individuais são organizadas dessa forma, permitindo a interação com outras aplicações ou partes de um site. A API não inclui a lógica oculta da aplicação – os desenvolvedores podem manter determinadas áreas acessíveis apenas para uso interno. Em uma única aplicação, pode haver diversos objetos interagindo entre si. Cada um deles pode ter sua própria API, ou seja, um conjunto de características e métodos para interação com outros objetos dentro do sistema. Atualmente, o uso de APIs é onipresente. A maioria dos recursos na internet utiliza várias APIs simultaneamente, pois essa abordagem oferece maior confiabilidade e facilita a integração com diversos serviços. O uso de APIs tornou-se um padrão da indústria no desenvolvimento de sites e aplicativos modernos. https://serverspace.com.br/support/glossary/docker.md O Docker é uma plataforma ou software de código aberto (que também é verdadeiro) usado para desenvolver, testar, fornecer e executar aplicativos em ambientes de contêineres. O Docker é uma plataforma ou software de código aberto (ambas as definições são corretas) utilizada para desenvolver, testar, entregar e executar aplicações em ambientes containerizados. A utilidade da plataforma está no uso mais eficiente dos recursos, na rápida migração de aplicações em tempo real para outros ambientes e na automação de implantação. A plataforma encapsula o software em contêineres padronizados junto com todas as suas dependências. Um contêiner montado dessa forma contém todos os componentes essenciais: ferramentas do sistema, código, tempo de execução e as bibliotecas necessárias. O Docker funciona executando código de maneira padronizada, acelerando o desenvolvimento, eliminando certos riscos e, na maioria dos casos, reduzindo custos. Por exemplo, não é mais necessário instalar Redis ou Elasticsearch separadamente, pois eles podem ser executados diretamente do contêiner. A capacidade de implantação rápida permite que o Docker descreva rapidamente todo o ambiente, reduzindo significativamente os custos e acelerando os processos de desenvolvimento. ## Vantagens do uso do Docker - O Docker permite a entrega de serviços com muito mais frequência; - Com o uso de contêineres predefinidos (com todas as dependências), a mecânica de implantação se torna mais simples, pois um ambiente replicável é criado. Além disso, a gravidade dos erros é reduzida, pois é muito mais fácil restaurar uma versão anterior; - O empacotamento containerizado do Docker permite executar mais código em cada servidor utilizado, otimizando o consumo de recursos; - O sistema leve do Docker facilita a transferência de aplicações do ambiente de desenvolvimento e testes para o ambiente de produção, com implantação subsequente. O Docker funciona não apenas com o sistema operacional Linux nativo, mas também com Windows e macOS. Apesar das vantagens óbvias do uso do Docker, ele ainda pode ter algumas limitações, dependendo da configuração específica do sistema. https://serverspace.com.br/support/glossary/container.md Os contêineres são um tipo alternativo de virtualização que usa um ambiente isolado para executar aplicativos. Os contêineres são um tipo de alternativa à virtualização que utiliza um ambiente isolado para executar aplicações. A implementação dos contêineres é realizada por meio de um espaço isolado que contém todos os componentes necessários, desde ferramentas do sistema até bibliotecas. Esses recursos geralmente são chamados de nomes virtualizados. A interação é permitida entre todos os componentes dentro do contêiner, mas é limitada para elementos externos. Em outras palavras, o sistema operacional permite o uso apenas dos componentes designados. Dentro dos contêineres, as aplicações funcionam sem restrições, pois são tratadas como processos únicos. Para modificar um arquivo existente ou criar um novo, o contêiner recebe apenas as novas áreas do sistema operacional host principal. Isso oferece uma vantagem fundamental na velocidade de implantação de múltiplos contêineres em um único host. Existe uma diferença importante entre a tecnologia de máquina virtual (VM) e os contêineres. Os contêineres não utilizam arquivos e ferramentas do sistema de terceiros, enquanto as VMs trabalham com um pool de recursos isolado do seu próprio sistema operacional. Para operar um contêiner, são necessários apenas os recursos essenciais, tornando o processo mais semelhante ao compartilhamento de componentes pelo sistema operacional. Isso confere aos contêineres uma vantagem sobre as VMs não apenas na velocidade de inicialização, mas também na carga do sistema, especialmente durante o boot. Os contêineres podem ser específicos para APIs ou sistemas operacionais. Por exemplo, os contêineres Linux não funcionarão sem a API do Linux, o que os torna pouco úteis para o Windows. Para gerenciar contêineres, é possível utilizar o PowerShell (que permite apenas o gerenciamento de repositórios locais), embora sua popularidade esteja diminuindo, ou o Docker. Existe um acordo entre a Microsoft e o Docker que garante que todos os comandos de gerenciamento sejam compatíveis tanto para contêineres Windows quanto para Linux. https://serverspace.com.br/support/glossary/kubernetes.md O Kubernetes é uma plataforma de código aberto (o Google a abriu em 2014) que é uma ferramenta de gerenciamento de contêineres. O Kubernetes é uma plataforma de código aberto (liberada pelo Google em 2014) que atua como uma ferramenta de gerenciamento de contêineres. A plataforma serve para monitorar cargas de trabalho e serviços associados à operação dos contêineres. As configurações da plataforma facilitam a personalização declarativa e a automação de processos. Hoje, o Kubernetes é o centro de um ecossistema completo, com seu próprio conjunto de ferramentas e serviços. O Kubernetes permite implantar e executar aplicativos em uma arquitetura de microsserviços. Isso traz diversos benefícios para as equipes de desenvolvimento: - Controle do consumo de recursos: reinício automático de aplicações que consomem recursos desnecessários. - Distribuição equilibrada da carga de acordo com a infraestrutura local. - Sistema de recursos flexível ao atualizar um cluster, como no caso da adição de novos hosts. - Rebalanceamento automático de carga entre versões do aplicativo. - Facilidade de migração de uma aplicação entre hosts em caso de falha ou escassez de recursos. - Rollback simplificado e lançamento de versões canárias para testar a compatibilidade entre novos patches e código antigo. A plataforma possui um sistema de autoatendimento e permite a criação de abstrações de hardware para os usuários. Para as equipes de desenvolvimento, há também uma opção de resposta rápida a solicitações, otimizando a alocação de recursos para balanceamento de carga. O Kubernetes é considerado uma solução mais eficiente, pois os contêineres consomem recursos (CPU, memória) de forma significativamente mais otimizada em comparação com máquinas virtuais ou hipervisores. ## Como o Kubernetes funciona A unidade fundamental do Kubernetes é um cluster, que é composto por um conjunto de máquinas físicas ou virtuais. Essas máquinas atuam como nós ou nós de conexão — o Control Plane Node. O nó armazena um grupo de contêineres, que por sua vez contém as aplicações. O Control Plane, nesse esquema, define os parâmetros dos contêineres e estabelece novas rotas de tráfego quando ocorre uma mudança na localização dos contêineres. O runtime de contêineres (por exemplo, Docker) é responsável por iniciar os contêineres e monitorar seu funcionamento. Utilizando as ferramentas do Kubernetes, um especialista pode implantar os contêineres nos nós do cluster e gerenciar sua operação de maneira eficiente. https://serverspace.com.br/support/glossary/devops.md DevOps refere-se a práticas ágeis definidas para melhorar a eficiência do desenvolvimento de software e os processos de uso por meio da constante integração e colaboração de vários especialistas por meio de ferramentas de automação. DevOps (abreviação de DEVelopment OPeration) refere-se a um conjunto de práticas ágeis voltadas para melhorar a eficiência do desenvolvimento de software e dos processos de uso, por meio da integração contínua e colaboração entre diferentes especialistas, utilizando ferramentas de automação. O conceito de DevOps se caracteriza, principalmente, pela remoção de barreiras organizacionais entre as equipes de desenvolvimento para a criação de um produto melhor. DevOps também foca na implementação da metodologia CI/CD. Diferente de outros conceitos similares, DevOps propõe a extensão das práticas ágeis ao longo de todo o ciclo de vida de um produto de TI: da criação e testes à operação e suporte. Outro aspecto que diferencia DevOps é seu suporte à arquitetura de microsserviços. Na prática, isso significa a construção de um sistema segmentado em módulos fracamente acoplados, cada um sob a responsabilidade de um especialista. Isso possibilita a refatoração contínua e o lançamento constante de atualizações sem a necessidade de interromper o funcionamento do produto de TI. ## Tarefas do DevOps - Aceleração da entrada do produto no mercado. - Redução da taxa de falhas em novos lançamentos. - Diminuição do tempo de depuração. - Melhoria na recuperação de falhas. ## Princípios do DevOps O conceito de DevOps é baseado em cinco princípios fundamentais voltados para aumentar a responsabilidade dos desenvolvedores em todas as etapas de produção do produto e acelerar seu lançamento. - **Cultura de comunicação**. DevOps está diretamente relacionado ao trabalho das equipes em um ambiente de comunicação confiável, reunindo especialistas de diferentes perfis. - **Automação**. Todo novo código deve passar por uma série automatizada de testes antes de ser enviado ao servidor de produção. - **Eficiência**. Esse princípio visa eliminar ações e ferramentas de pouca utilidade em favor da melhoria contínua e da otimização na resolução de problemas. - **Medição**. O princípio está relacionado à eficácia dos processos por meio da análise contínua de dados e avaliações. **Compartilhamento**. Responsabilidade coletiva e compartilhamento de sucessos com toda a equipe. Esse princípio visa a unificação e a interação entre todos os participantes na criação de um produto de TI. https://serverspace.com.br/support/help/installing-mariadb.md Vamos dar uma olhada na instalação e na configuração de um dos mais populares DBMS (sistemas de gerenciamento de banco de dados), o MariaDB, no Ubuntu e no CentOS. Um grande número de serviços usa o acesso ao banco de dados - aplicativos da Web, sites da empresa, bem como serviços de correio eletrônico e vários sistemas de contabilidade. Hoje vamos considerar a instalação de um dos DBMSs mais populares, o MariaDB. Neste artigo, não consideraremos como instalar e configurar um servidor LAMP. Deve-se observar que o servidor MySQL nos repositórios foi substituído pelo MariaDB devido à abertura do código e ao desenvolvimento ativo do próprio projeto. [step num="1"] Adicionamos o repositório, pois o sistema instalará a versão do MariaDB 5.5. Para cada sistema operacional, consideramos esse momento separadamente. Se isso lhe convier, você pode pular esta etapa. Se ainda assim decidir fazer isso, abra a página [no site oficial](https://downloads.mariadb.org/mariadb/repositories/#mirror=timeweb) com informações sobre repositórios e suas configurações. [/step] [step num="2"] ## Ubuntu Antes da instalação, atualizamos os dados sobre repositórios e índices de pacotes: ```bash sudo apt-get update ``` [/step] [step num="3"] Atualizamos pacotes e componentes do sistema: ```bash sudo apt-get upgrade ``` [/step] [step num="4"] Reinicializamos o sistema, às vezes isso é necessário: ``` sudo reboot ``` [/step] [step num="5"] Verifique a versão do pacote MariaDB-server no repositório: ```bash apt-cache show mariadb-server ``` [/step] Para o Ubuntu 16.04, a resposta é a seguinte: Para o Ubuntu 18.04: [step num="6"] Adicione informações sobre o repositório com a versão 10.3. **Importante:** cada versão do Ubuntu tem seus repositórios. Para o Ubuntu 16.04, executamos os seguintes comandos sucessivamente: ```bash sudo apt-get install software-properties-common ``` ```bash sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 ``` ``` sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://mirror.timeweb.com.br/mariadb/repo/10.3/ubuntu xenial main' ``` [/step] [step num="7"] Para o Ubuntu 18.04: ```bash sudo apt-get install software-properties-common ``` ```bash sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8 ``` ``` sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.timeweb.com.br/mariadb/repo/10.3/ubuntu bionic main' ``` [/step] [step num="8"] Atualize o conteúdo dos repositórios e conclua a instalação: ```bash sudo apt-get update ``` ```bash sudo apt-get install mariadb-server ``` [/step] [step num="9"] Independentemente da versão do Ubuntu, o instalador solicitará que você digite a senha de root e a confirme: [/step] [step num="10"] ## CentOS Atualizamos os componentes do sistema e, ao mesmo tempo, os dados nos repositórios ```bash sudo yum update ``` [/step] [step num="11"] Adicione o repositório para a versão estável 10.3. Para fazer isso, vá para o diretório com os arquivos do repositório e crie um arquivo: ``` cd /etc/yum.repos.d/ ``` ``` sudo touch MariaDB.repo ``` [/step] [step num="12"] Os dados do site oficial são adicionados ao arquivo por qualquer editor: ``` # MariaDB 10.3 CentOS repository list - created 2019-05-07 06:43 UTC # http://downloads.mariadb.org/mariadb/repositories/ name = MariaDB baseurl = http://yum.mariadb.org/10.3/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 ``` [step num="13"] Instale o pacote: ```bash sudo yum install MariaDB-server MariaDB-client ``` [/step] O programa yum coletará todos os dados necessários para a instalação e aguardará o usuário: [step num="14"] Respondemos à pergunta "y" e pressionamos Enter. O número de pacotes que você pode instalar pode ser diferente. [/step] [step num="15"] КO comando deve ser executado novamente se ocorrer o seguinte erro: ```yaml Error downloading packages: MariaDB-compat-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try. MariaDB-client-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try. MariaDB-common-10.3.14-1.el7.centos.x86_64: [Errno 256] No more mirrors to try. ``` [/step] [step num="16"] Após a instalação, você deve iniciar o servidor: ```bash sudo service mysql start ``` [/step] ## Configuração [step num="17"] A maioria dos programas é instalada com as configurações padrão. Independentemente da distribuição, recomendamos que você otimize suas configurações de segurança. ``` sudo mysql_secure_installation ``` [/step] Sim, é "mysql" porque o projeto MariaDB "vazou" do MySQL. [step num="18"] Logo no início, o programa solicitará a senha do usuário root. Se a senha não tiver sido definida, pressione Enter. A maioria das perguntas pode ser respondida com "y". As perguntas e a tradução estão listadas abaixo: [/step] - Alterar a senha do root? [S/n] - Remover usuários anônimos? [S/n] - Permitir o login do root remotamente? [S/n] - Remover o banco de dados de teste e o acesso a ele? [S/n] - Recarregar tabelas de privilégios agora? [S/n] ## ## Verificar o status do servidor Às vezes, pode ser necessário verificar o status do servidor. Essa operação pode ser executada com o comando: ```bash sudo service mysql status ``` Deve-se observar que, se o servidor não estiver em execução, ele deverá ser iniciado no modo manual com o comando: ```bash sudo service mysql start ``` ## Testando a conexão com o DBMS A conexão com o DBMS é realizada com o seguinte comando: ```bash mysql -u -p ``` Se essa for a primeira conexão e nenhum outro usuário tiver sido adicionado, você deverá se conectar com o usuário root: ```bash mysql -u root -p ``` Em seguida, digite a senha de root; se nenhuma senha tiver sido definida, pressione Enter. Sair do shell com o comando: ``` exit ``` https://serverspace.com.br/support/help/installing-seafile-cloud-storage.md O Seafile permite sincronizar informações entre diferentes sistemas operacionais: Windows, Linux/Unix, Android e iOS. Considere a possibilidade de instalar e configurar o armazenamento em disco para atender aos requisitos do administrador. O artigo falará sobre a "nuvem", que foi criada usando a solução de software Seafile. O produto permite sincronizar informações entre diferentes sistemas operacionais: Windows, Linux/Unix, Android e iOS. Considere como instalar e configurar o armazenamento em disco para os requisitos do administrador. ## Requisitos Para instalar o Seafile, você deve ter o MySQL pré-instalado. Para saber como fazer isso, há uma publicação separada em nosso site. O Ubuntu Server 16.04 é usado como plataforma de servidor (Seafile Server). ## Instalação [step num="1"] Verifique se há as versões mais recentes do software. ```bash sudo apt-get update sudo apt-get upgrade ``` [/step] [step num="2"] Instale os componentes para trabalhar com python. ```bash sudo apt-get install python-imaging python-mysqldb python-setuptools ``` [/step] [step num="3"] Usando o gerenciador de download, faça o download da versão mais recente do Seafile no site oficial. ```bash wget https://download.seadrive.org/seafile-server_7.0.4_x86-64.tar.gz ``` [/step] **Importante!** No momento em que este artigo foi escrito (22 de agosto de 2019), a versão atual da parte do servidor é 7.0.4. [step num="4"] Então, vamos extrair o conteúdo do arquivo. Vamos para o diretório. ```bash tar xzvf seafile-server* cd seafile-server_7.0.4_x86-64 ``` [/step] [step num="5"] Dentro do modelo, execute-o. Ele verificará os componentes necessários. Ele verificará os componentes necessários. ``` ./setup-seafile-mysql.sh ``` [/step] Se tudo estiver presente, a seguinte mensagem será exibida no monitor: Screenshot nº 1. Validação bem-sucedida. [step num="6"] Seguindo os avisos na tela, pressione Enter e prossiga para a configuração. [/step] ### Configuração de arquivo marítimo [step num="7"] Criamos um nome arbitrário para o lado do servidor. O nome não deve conter mais de 15 caracteres: [/step] Screenshot nº 2. Registramos o nome do servidor. [step num="8"] A próxima etapa é especificar o endereço IP ou o nome. Em nosso exemplo, usamos a primeira opção: [/step] Screenshot nº 3. Digite o endereço IP. [step num="9"] Escolha o diretório inicial para o armazenamento: [/step] Screenshot nº 4. Seleção de pasta [step num="10"] Por padrão, propõe-se a criação do diretório Seafile-data na conta raiz. [/step] [step num="11"] Em seguida, o assistente de configuração perguntará sobre a porta: [/step] Screenshot nº 5. Porta. [step num="12"] A configuração de fábrica é a porta 8082. Se você não precisar alterar, deixe-a como está e passe para a próxima etapa. [/step] [step num="13"] Na quinta etapa, será solicitado que o assistente forneça um nome para o banco de dados que será usado para o trabalho ou indique um caminho para os bancos de dados existentes: [/step] Screenshot nº 6. Seleção de banco de dados. [step num="14"] Como a história é sobre a instalação e a configuração iniciais, selecione o primeiro item. [/step] [step num="15"] Os dois itens a seguir são o nome do servidor MySQL e o número da porta: [/step] Screenshot nº 7. O nome do host. Screenshot nº 8. Número da porta [step num="16"]. Se as alterações não forem necessárias, pule e siga em frente. [/step] [step num="17"] Defina a senha para o nome da conta de administrador do MySQL: [/step] Screenshot nº 9. Criamos uma senha. [step num="18"] As seguintes regras são recomendadas: um mínimo de 9 caracteres, caracteres especiais, números e letras maiúsculas. [/step] [step num="19"] Por padrão, o assistente de instalação cria usuários que trabalharão com o armazenamento de arquivos: [/step] Screenshot nº 10. Usuários do banco de dados e da "nuvem". [step num="20"] Se desejar, o administrador altera os valores para os seus próprios. [/step] [step num="21"] Na última etapa, o utilitário de configuração exibe a configuração final na tela: [/step] Screenshot nº 11. Resultados das configurações. [step num="22"] Se os valores estiverem corretos, pressione Enter. [/step] ## O lançamento inicial do Seafile 1. Execute o serviço com o modelo criado na seção anterior. Adicione a conexão por meio do navegador para realizar outras configurações. ``` ./seafile.sh start ./seahub.sh start ``` 2. Durante a primeira inicialização, é necessário especificar um nome de conta para o administrador do sistema e uma conta de e-mail: Screenshot nº 12. Configuração da conta. Por exemplo, vamos usar o nome admin e especificar o endereço de e-mail no domínio serverpace.by. 3. A próxima etapa é digitar a senha do administrador: Screenshot nº 13. Proteção por senha. O sistema solicitará que você especifique a chave duas vezes para evitar um erro. Se indicado corretamente, o serviço será iniciado com os parâmetros especificados. 4. A última etapa é escrever exceções no firewall. ``` iptables -A INPUT -p tcp --dport 8000 -j ACCEPT iptables-save ``` Por padrão, a interface da Web é executada na porta 8000. ## Conexão com o navegador Abrimos o navegador e prescrevemos o endereço IP especificado acima durante a configuração. No exemplo, 111.111.111.111. Não se esqueça de escrever o número da porta com dois pontos: Screenshot nº 14. Nome do servidor. Se o endereço estiver correto, uma janela de autorização será aberta. Usamos a caixa de correio eletrônico e a senha para o administrador entrar. Em nosso exemplo, o e-mail é admin@serverspace.by. O painel de controle do armazenamento de arquivos é aberto. ## Criar novo usuário Vá até a guia "Users" (Usuários) e clique no botão "Add ..." (Adicionar...). Na janela que se abre, digite a conta de e-mail e crie uma senha. Se necessário, indique o nome e o departamento da pessoa. Clique em "OK". Um usuário recém-criado aparecerá no espaço de trabalho. https://serverspace.com.br/support/help/how-to-restart-network-in-ubuntu.md Neste exemplo, estamos executando o Ubuntu 18.04, que usa o Netplan para configurar redes. Primeiro, você precisa descobrir qual gerenciador de rede o sistema usa. Neste exemplo, estamos executando o Ubuntu 18.04, que usa o Netplan para configurar redes. ## Para que é usado o Netplan? _O Netplan é um novo utilitário de configuração de rede de linha de comando introduzido no Ubuntu 17.10 para gerenciar e definir facilmente as configurações de rede nos sistemas Ubuntu. Ele permite que você configure uma interface de rede usando a abstração YAML. Ele funciona em conjunto com os daemons de rede NetworkManager e systemd-networkd (chamados de renderizadores, você pode escolher qual deles usar) como interfaces para o kernel. Ele lê a configuração de rede descrita em /etc/netplan/*.yaml e você pode armazenar as configurações de todas as suas interfaces de rede nesses arquivos._ Portanto, a primeira coisa a fazer é verificar quais arquivos de configuração temos em /etc/netplan/ Podemos verificar isso usando o comando: ``` ls /etc/netplan/ ``` Aqui podemos ver o arquivo de configuração chamado "50-cloud-init.yaml". Agora precisamos lê-lo para ver a configuração: ``` cat /etc/netplan/50-cloud-init.yaml ``` No _Renderizador _, podemos ver o "NetworkManager", que é o nosso gerenciador de rede ativo. Para reiniciá-lo, basta executar: ```bash sudo service network-manager restart ``` E, em seguida, para ver seu status, execute: ```bash sudo service network-manager status ``` Como podemos ver, ele está ativo e em execução. Se você vir "networkd" no _Renderizador _ do arquivo de configuração do netplan, será necessário reiniciá-lo com o comando: ```bash sudo systemctl restart systemd-networkd ``` E, em seguida, para ver seu status, execute: ```bash sudo systemctl status systemd-networkd ``` Isso é tudo, a rede foi reiniciada. https://serverspace.com.br/support/help/how-to-install-java-with-apt-on-ubuntu-18-04.md Este guia o ajudará a aprender como instalar diferentes versões do Java Runtime Environment (JRE) e do Java Developer Kit (JDK) com o apt. Java e JVM (Java Virtual Machine) são necessários para muitos tipos de software, incluindo Tomcat, Jetty, Glassfish, Cassandra e Jenkins. Este guia o ajudará a aprender como instalar diferentes versões do Java Runtime Environment (JRE) e do Java Developer Kit (JDK) com o apt. Como instalar o Java com o apt no Ubuntu 18.04: - [Instalando o Java com o ambiente de tempo de execução](#stepone) - [Instalando o Java Developer Kit](#steptwo) ## Ambiente de tempo de execução do Java A maneira mais fácil de instalar o Java é usar a versão incluída no pacote do Ubuntu. Por padrão, o Ubuntu 18.04 inclui o Open JDK (versão de código aberto do JRE e do JDK). Esse pacote instala o OpenJDK versão 10 ou 11. - Até setembro de 2018, o OpenJDK 10 estava instalado. - Após setembro de 2018, o OpenJDK 11 é instalado. Primeiro, atualize as listas de pacotes: ```bash sudo apt update ``` Em seguida, você precisa verificar se o Java já está instalado: ``` java -version ``` Se o Java tiver sido instalado mais recentemente, você verá os seguintes resultados: Execute o seguinte comando para instalar o OpenJDK: ```bash sudo apt install default-jre ``` Digite y (yes) e pressione Enter para retomar a instalação. Esse comando instala o Java Runtime Environment (JRE). Ele permite que você execute praticamente qualquer software Java. Agora, verifique a versão do Java: ``` java -version ``` O JRE está instalado! ## Kit de desenvolvimento Java Para compilar e executar alguns programas Java específicos, além do JRE, você pode precisar do Java Development Kit (JDK). Para instalar o JDK, execute o seguinte comando, que também instala o JRE: ```bash sudo apt install default-jdk ``` Digite y (yes) e pressione Enter para retomar a instalação. Esse comando instala o Java Development Kit (JDK). Agora, verifique a versão do JDK com o comando: ``` javac -version ``` O JDK está instalado! https://serverspace.com.br/support/help/installing-ubuntu-debian-programs-using-the-batch-manager.md Vários métodos de instalação de programas no Linux Ubuntu/Debian por meio do gerenciador de pacotes APT (advanced packaging tool), Dpkg (debian package), install.sh. Uma das tarefas mais difíceis que surgem durante a instalação de programas Unix é o rastreamento de dependências. Qualquer programa mais ou menos complexo em seu trabalho usa os recursos fornecidos por outros módulos, bibliotecas do sistema, etc. Assim, surge uma dependência - se quisermos instalar o programa "A", que usa as bibliotecas do programa "B" ao trabalhar, precisamos primeiro instalar o programa "B" (que, por sua vez, pode ter suas dependências). Assim, quanto mais programas e dependências aparecem no servidor, mais difícil é rastreá-los e gerenciá-los. A boa notícia é que você pode fazer isso com o gerenciador de pacotes APT (**A**dvanced **P**ackaging **T**ool). ## Instalação usando o gerenciador de pacotes A evolução dos métodos de instalação e gerenciamento de pacotes de software ao longo do tempo levou ao uso de gerenciadores de pacotes que são fortemente integrados aos repositórios. Os repositórios contêm arquivos de programas empacotados com dados sobre suas dependências. Após a instalação, os repositórios do sistema já estão conectados ao sistema operacional: com a ajuda deles, é possível atualizar o sistema operacional e instalar pacotes de software que foram adaptados e otimizados para funcionar com essa versão do sistema operacional. [step num="1"] Antes de iniciar a instalação dos pacotes, é recomendável atualizar a versão e os dados de dependência no repositório com o seguinte comando: ```bash sudo apt-get update ``` [/step] Screenshot №1. Atualização das informações de versão e dependência no repositório [step num="2"] Se você precisar esclarecer o nome do pacote que deseja instalar, procure um gerenciador de palavras-chave no cache local, por exemplo, **servidor da Web**: ```bash sudo apt-cache search web server ``` [/step] [step num="3"] Como resultado, obtemos uma grande lista de pacotes em que essa palavra-chave está presente na descrição: [/step] Screenshot №2. Pesquisa de palavras-chave [step num="4"] Selecionamos o pacote de que precisamos - neste caso, é o **apache2**, e o instalamos: ```bash sudo apt-get install apache2 ``` [/step] [step num="5"] O gerenciador de pacotes verifica as dependências e as versões, compara-as com os pacotes já instalados por meio do** apt-get** e, em seguida, exibe uma lista de componentes necessários para a instalação e solicita permissão para continuar a operação: [/step] Screenshot №3. Instalando o pacote [step num="6"] Pressione **y** e aguarde a conclusão da instalação. [/etapa] Comandos do gerenciador de pacotes comumente usados: - **apt-get update ** - atualiza informações sobre pacotes e dependências nos repositórios conectados; - **apt-get upgrade ** - atualiza todos os pacotes instalados para a versão mais recente disponível no repositório; - **apt-get install nome_do_pacote **- instalação de pacotes; - **apt-get remove nome_do_pacote **- remove o pacote; - **apt-get download nome_do_pacote **- baixar o pacote deb em uma pasta local; - **apt-cache search keywords **- procura um pacote por palavras-chave; - **apt-cache show package_name **- mostra as informações do pacote; - **apt-cache depends on package_name **- mostra de quais componentes o pacote depende; - **apt-cache rdepends package_name **- mostra quais componentes dependem do pacote; - **apt-mark hold nome_do_pacote **- fixa a versão atual do pacote, interrompe a atualização do pacote; - **apt-mark unhold package_name **- permite a atualização do pacote. ## Instalação por meio do pacote Debian [step num="7"] Os pacotes de software podem não ser distribuídos por meio de repositórios. Por exemplo, eles podem estar disponíveis em sites de desenvolvedores. Nesse caso, você pode fazer download do pacote e usar o utilitário **dpkg** (pacote debian) para a instalação. O uso do **dpkg** não rastreia automaticamente as dependências e faz o download de pacotes adicionais. Se não houver programas ou bibliotecas suficientes, a instalação falhará com uma lista de pacotes ausentes. Eles terão de ser instalados separadamente, por exemplo, **- get**, se estiverem presentes nos repositórios conectados, ou baixados dos sites dos desenvolvedores e instalados na ordem necessária por meio do **dpkg**. [/step] [step num="8"] Por exemplo, faça download do pacote de instalação do servidor da Web **Nginx **do repositório do sistema com o comando: ```bash sudo apt-get download nginx ``` [/step] [step num="9"] e tente instalar por meio do** dpkg-i filename.deb**: ``` sudo dpkg –i ./nginx_1.14.0-0ubuntu1.6_all.deb ``` [/step] [step num="10"] Como resultado, o sistema gera um erro com uma lista de pacotes ausentes: [/step] Screenshot №4. Erro com uma lista de pacotes ausentes Principais opções do** dpkg**: - **dpkg -i nome_do_arquivo.deb** - instala o pacote; o parâmetro é o nome completo do arquivo; - **dpkg -r nome_do_pacote** - remover um pacote instalado anteriormente; - **dpkg -l**- lista os pacotes instalados no sistema. ## Instalação por meio de arquivos de script [step num="11"] A instalação de um programa envolve descompactar um arquivo, copiar arquivos de programa para diretórios do sistema e, se necessário, fazer alterações nos arquivos de configuração do sistema. Todas essas ações podem ser inseridas no arquivo executável do script e executadas quando ele for executado. Atualmente, esse método de instalação de um programa é bastante raro, mas alguns desenvolvedores o utilizam. Se precisar instalar um pacote desse tipo, será necessário fazer o download do arquivo (geralmente um arquivo com a extensão .tgz ou .tar.gz), descompactá-lo em um diretório separado no servidor, examinar os arquivos descompactados e também ler o arquivo leia-me, se houver. A instalação do programa geralmente é iniciada pelo script** install.sh**, portanto, você precisa incluir o atributo do arquivo executável com o comando: ```bash sudo chmod +x ./install.sh ``` [/step] [step num="12"] e, em seguida, execute o script diretamente: ``` sudo ./install.sh ``` https://serverspace.com.br/support/help/debian-superuser-rights-sudo-visudo.md O comando sudo permite que você execute comandos individuais com privilégios elevados (direitos de superusuário no Debian). Vamos ver o que é necessário para que esse utilitário funcione. ## Informações gerais Os sistemas operacionais Linux implementam o princípio de diferenciação de privilégios de usuário, o que significa que diferentes contas têm diferentes quantidades de direitos de acesso a diretórios, arquivos e programas. Os direitos máximos são concedidos à conta raiz incorporada. As contas de usuário recém-criadas geralmente sofrem restrições significativas no acesso a arquivos de configuração do sistema, no gerenciamento de serviços e na instalação e exclusão de pacotes de software. Entretanto, não é recomendável trabalhar no sistema operacional com a conta raiz, principalmente por motivos de segurança. Nesse caso, o utilitário de linha de comando **sudo** vem em socorro. O comando sudo permite executar comandos individuais com privilégios maiores (por padrão, com direitos de root) usando uma conta sem privilégios. Vamos ver o que é necessário para que esse utilitário funcione. ## Instalação e configuração [step num="1"] No sistema operacional Ubuntu, o sudo está ativado por padrão e, no Debian, se o pacote correspondente não tiver sido selecionado durante o processo de instalação, a imagem a seguir provavelmente estará: ``` sudo ``` ``` #Output -bash: sudo: command not found ``` [/step] [step num="2"] Portanto, você precisa instalar o pacote que está faltando. Atualize as informações do repositório e instale o sudo: ```bash apt-get update apt-get install sudo ``` [/step] [step num="3"] Estamos aguardando o fim do processo: [/step] [step num="4"] Após uma instalação bem-sucedida, será necessário configurar o sudo para determinar quais usuários ou grupos poderão usar o escalonamento de privilégios e até que ponto. Todas essas configurações são armazenadas no arquivo de configuração **/etc/sudoers**; no entanto, é altamente desaconselhável fazer alterações diretamente nele. Para esses fins, é usado um comando especial: ``` visudo ``` [/step] que inicia um editor de texto com um arquivo de configuração: Duas linhas são responsáveis pela concessão de direitos: ``` root ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL ``` A primeira linha define os direitos para a conta root, a segunda define os direitos para os membros do grupo sudo que foi criado quando o pacote foi instalado (o sinal **% ** na frente do nome significa que o nome pertence a um grupo de usuários). [step num="5"] Dessa forma, temos duas maneiras principais de conceder à conta de usuário o direito de usar o **sudo**: Adicionar uma conta de usuário (por exemplo, usuário) ao grupo sudo no servidor: ``` usermod –a –G sudo user ``` [/step] [step num="6"] Depois de alterar a associação do grupo, você precisará fazer login novamente nessa conta para aplicar a nova configuração. Esse método é recomendado nos casos em que o usuário precisa ter direitos totais. Crie uma nova entrada no arquivo, por exemplo, para a conta de usuário. Adicionamos uma linha semelhante a root: ``` user ALL=(ALL:ALL) ALL ``` [/step] A adição de uma nova entrada é recomendada nos casos em que a lista de privilégios será ajustada (mais sobre isso adiante). Se tivermos feito alterações no arquivo, precisaremos salvá-las pressionando o atalho de teclado Ctrl-O e sair do editor - Ctrl-X. [step num="7"] Agora você pode verificar a operação correta: ``` sudo cat /etc/sudoers ``` [/step] O comando sudo solicita a senha do usuário atual (neste caso, usuário) - digite-a e, se tudo for feito corretamente, veremos o conteúdo do arquivo de configuração do sistema. ## Ajuste fino Assim, um usuário comum pode executar comandos com os direitos da conta root sem saber a senha dela. Isso é muito conveniente, mas pode ser inseguro - é possível limitar o intervalo de comandos que podem ser executados usando o sudo? Sim, e o mesmo arquivo de configuração nos ajudará com isso. Iniciamos o visudo novamente e entendemos melhor. Estamos interessados nos parâmetros especificados após o nome de usuário: Vamos analisá-los em mais detalhes: - **ALL**= (ALL: ALL) ALL - o primeiro parâmetro determina a qual host a configuração é aplicada. Ao usar um servidor dedicado, o parâmetro pode ser deixado inalterado; - ALL=**(ALL: ALL)**ALL - os parâmetros entre colchetes determinam a autoridade de qual usuário (primeiro parâmetro) e/ou grupo (segundo parâmetro) o comando será executado. Por padrão, o sudo executa o comando como root, mas, ao iniciar com a opção -u, você pode especificar uma conta diferente e, com a opção -g, pode especificar outro grupo cujos privilégios serão usados na inicialização; - ALL=(ALL: ALL)**ALL** - o terceiro parâmetro determina a quais arquivos e comandos essas configurações pertencem. Com base no exposto acima, se necessário, determine a lista de comandos permitidos, substitua o último parâmetro **ALL** pelo que precisamos, listando os comandos separados por vírgulas. Por exemplo, a linha: ``` user ALL=(ALL:ALL) /sbin/shutdown -r, /bin/cat ``` dá ao usuário o direito de usar o sudo para reiniciar o servidor com sudo /sbin/shutdown -r e visualizar arquivos usando sudo /bin/cat. Outros comandos por meio do sudo não serão executados. Por exemplo, ao tentar desligar um servidor com um comando: ``` sudo /sbin/shutdown -h ``` Obtenha a resposta: ``` Sorry, user user is not allowed to execute '/sbin/shutdown -h' as root on debian10. ``` ## Útil Você pode ver a lista de privilégios executando sudo -l (a lista do usuário atual será exibida) ou sudo -l -U user (a lista de privilégios do usuário será exibida): A composição do sudo inclui o comando sudoedit, que inicia um editor de texto com o arquivo especificado imediatamente com privilégios elevados, ou seja, em vez do comando: ``` sudo nano /etc/network/interfaces ``` Pode ser executado: ``` sudoedit /etc/network/interfaces ``` Se precisar trabalhar no modo de privilégio elevado por um longo período e for inconveniente digitar sudo para cada comando, você poderá executar uma instância do interpretador de comandos por meio do sudo: ``` sudo bash ``` Se você continuar a trabalhar nele, todos os comandos serão executados com direitos elevados. Quando terminar, saia do interpretador com o comando: ``` exit ``` https://serverspace.com.br/support/help/how-to-configure-static-ip-address-on-ubuntu-18-04.md Neste exemplo, configuraremos um IP estático para a interface de rede ethernet ens33. Para fazer isso, usaremos o utilitário netplan para o Ubuntu 18.04. Como configurar um endereço IP estático no Ubuntu 18.04: - [Listar todas as interfaces de rede conectadas em seu sistema](#stepone) - [Definir endereço IP estático no Ubuntu 18.04](#stepone) ## Listar todas as interfaces de rede ativas no Ubuntu Primeiro, você precisa identificar a interface de rede que vai configurar. Você pode listar todas as interfaces de rede conectadas em seu sistema usando o comando mostrado abaixo: ``` Ip a ``` A partir da saída do comando acima, temos 3 interfaces conectadas ao sistema Ubuntu: 2 interfaces ethernet (uma delas é docker) e a interface de loopback. A interface ethernet ens33 foi configurada para obter o endereço IP do DHCP. E precisamos alterá-la para IP estático. ## Definir endereço IP estático no Ubuntu 18.04 Neste exemplo, configuraremos um IP estático para a interface de rede ethernet ens33. Para fazer isso, usaremos o utilitário netplan. _O netplan é um novo utilitário de configuração de rede de linha de comando introduzido no Ubuntu 17.10 para gerenciar e definir facilmente as configurações de rede nos sistemas Ubuntu. Ele permite que você configure uma interface de rede usando a abstração YAML. Ele funciona em conjunto com os daemons de rede NetworkManager e systemd-networkd (chamados de renderizadores, você pode escolher qual deles usar) como interfaces para o kernel. Ele lê a configuração de rede descrita em /etc/netplan/*.yaml e você pode armazenar as configurações de todas as suas interfaces de rede nesses arquivos._ Portanto, a primeira coisa a fazer é verificar quais arquivos de configuração temos em /etc/netplan/ Podemos verificar isso usando o comando: ``` ls /etc/netplan/ ``` Como podemos ver, há um arquivo de configuração chamado 50-cloud-init.yaml. Precisamos editá-lo para alterar a configuração. _Se não houver arquivos de configuração em /etc/netplan/, você poderá usar o comando mostrado abaixo para gerá-lo:_ ``` sudo netplan generate ``` _Além disso, os arquivos gerados automaticamente podem ter nomes de arquivos diferentes em desktops, servidores, instanciações de nuvem etc. (por exemplo, _**_01-network-manager-all.yaml_**_ ou _**_01-netcfg.yaml, 50-cloud-init.yaml, etc._**_), mas todos os arquivos em _**_/etc/netplan/*.yaml_**_ serão lidos pelo netplan._ Abra o arquivo de configuração do netplan usando seu editor de texto, conforme mostrado: sudo nano /etc/netplan/50-cloud-init.yaml Encontre o nome de sua interface de rede nesse arquivo. Neste exemplo, é **ens33**. Como você pode ver, há dhcp4: true = dchp para ipv4 está ativado. Para mudar isso, basta alterar a configuração da seguinte forma: Onde: - ens33 - nome da interface de rede. - dhcp4e dhcp6 - propriedades dhcp de uma interface para IPv4 e IPv6 receptivamente. - addresses - sequência de endereços estáticos para a interface. (com máscara de sub-rede) - gateway4- endereço IPv4 para gateway padrão. - nameservers- sequência de endereços IP para nameserver. A propriedade addresses de uma interface espera uma entrada de sequência, por exemplo **[192.168.14.2/24, "2001:1::1/64"]** ou **[192.168.56.110/24, ]** (consulte a **página de manual do netplan** para obter mais informações). Importante: não use tabulações nesse arquivo de configuração. Salve o arquivo e saia. (para salvar o arquivo, pressione Ctrl+O e, em seguida, escolha o nome do arquivo e pressione Enter. Para sair do nano, pressione Ctrl+X) Em seguida, aplique as alterações recentes na rede usando o seguinte comando: ``` sudo netplan apply ``` Se tudo estiver ok, você não receberá nenhuma mensagem de erro. Basta verificar sua configuração de ip novamente com o comando: ``` ip a ``` Como você pode ver, agora o ens33 tem um endereço IP conforme configurado anteriormente no arquivo yaml. Parabéns! Você configurou com êxito um endereço IP estático de rede para o seu servidor Ubuntu. . https://serverspace.com.br/support/help/windows-server-adding-a-new-user.md Vamos ver como adicionar um novo usuário em sistemas operacionais da família Microsoft Windows Server. Esse método é universal para a maioria das versões existentes desse sistema operacional. As responsabilidades do administrador do sistema incluem, entre outras coisas, adicionar um novo usuário e atribuir a ele determinados direitos. Vamos ver como fazer isso nos sistemas operacionais da família Microsoft Windows Server. Esse método é universal para a maioria das versões existentes desse sistema operacional. Algumas diferenças fraseológicas são possíveis. No menu Iniciar, selecione "**Ferramentas de administração"** no Windows Server 2016). Em uma nova janela, clique duas vezes para abrir "**Gerenciamento de Computadores**". Na parte esquerda da janela que se abre, abra a ramificação "Usuários e grupos locais" e abra a pasta Usuários. Na parte principal da janela, clique com o botão direito do mouse no espaço e selecione "**Novo usuário". Na nova janela, digite o login do usuário, a senha e a confirmação da senha. Para que seja possível entender completamente a qual usuário a conta pertence e também para que os colegas não tenham dúvidas, é recomendável preencher os campos "Nome completo" e "Descrição". Para aumentar a segurança, é recomendável marcar a caixa de seleção "Require password change at the next login" (Exigir alteração de senha no próximo login) somente se você usar a mesma senha para todas as contas criadas. Você pode desativar qualquer conta, por exemplo, se o usuário estiver apenas assumindo uma posição. Clique no botão "Criar"**. Uma conta foi criada. Vamos prosseguir com a configuração dela. Para fazer isso, na mesma janela "Gerenciamento do computador", clique com o botão direito do mouse na conta. No menu de contexto, selecione **"Propriedades"**. As configurações da conta de usuário, por conveniência, são apresentadas em várias guias. Geral - controla os parâmetros básicos da conta. Group Membership (Associação ao grupo) - permite definir o usuário como membro do grupo. Profile (Perfil) - essa guia define o local do diretório inicial do usuário, o caminho para o perfil do usuário, bem como o script para login. Environment (Ambiente) - permite agendar o lançamento de um determinado programa na entrada do sistema e também permite a conexão de discos rígidos, impressoras e a escolha da impressora padrão no login. Sessões - permite impor restrições sobre a duração total da sessão, o tempo de inatividade e muito mais. Remote Desktop Services Profile (Perfil de serviços de área de trabalho remota) - Especifica o perfil de usuário que será carregado quando você fizer login no servidor usando a área de trabalho remota. Incoming calls (Chamadas recebidas) - define os parâmetros das conexões de rede, bem como seus direitos. Considere a possibilidade de delegar direitos de usuário para acesso à área de trabalho remota. Selecione a guia **"Participação em grupos"** e clique no botão **"Adicionar"**. Na janela que se abre, clique no botão "Avançado". Em seguida, em uma nova janela, clique no botão "Pesquisar". Na parte inferior da janela, são exibidos todos os grupos disponíveis. Selecionamos "Usuários da área de trabalho remota" clicando duas vezes ou clicando uma vez com o clique subsequente no botão "OK". A janela "Group Selection" mudará de aparência. Clique em "OK". Agora você pode se conectar ao servidor com as credenciais desse usuário. https://serverspace.com.br/support/help/configuring-an-ftp-server-in-windows-server-2012.md Instruções passo a passo para configurar um servidor FTP no Windows Server 2012 R2, configurar transferências seguras de arquivos e criar um certificado autoassinado. FTP - protocolo de transferência de arquivos. É usado para transferir arquivos por clientes de rede local, bem como para fazer upload de dados para armazenamento local e remoto. Considere a possibilidade de configurar um servidor FTP do Microsoft IIS Suite, criar um certificado autoassinado e configurar a transferência segura de arquivos. Sistema operacional - Windows Server 2012 R2. ## Instalar o servidor Web do IIS Iniciamos o Server Manager no menu Iniciar ou clicando no ícone na barra de tarefas. Selecione Adicionar funções e componentes. Na nova janela, selecione, à esquerda, o Tipo de instalação, depois Instalar funções ou componentes e clique no botão "Next" (Avançar). No pool de servidores proposto, selecione o necessário. No nosso caso, ele está sozinho, clique em "Next" (Avançar). Na lista de funções, encontramos o servidor da Web (IIS) e marcamos esse item. Na nova janela, o Assistente para adicionar funções e recursos, basta clicar em "Adicionar componentes". Essa janela geralmente aparece quando você instala o servidor da Web (IIS) pela primeira vez. Clique em "Next" (Avançar). À esquerda, clique em Role Service (subitem Web Server Role (IIS)). Colocamos um daw na frente do servidor FTP. Se necessário, marque a caixa ao lado de FTP Extensibility. Clique em "Next" (Avançar). Verificamos os componentes para instalação. Na primeira instalação, recomendamos que você marque a caixa em Automatically restarts the destination server, if necessary (Reiniciar automaticamente o servidor de destino, se necessário). Clique em "Install" (Instalar). Importante! Na primeira vez que você instalar o Web Server (IIS), serão instalados componentes de serviço adicionais. Estamos aguardando a conclusão do processo de instalação. Ao final, clique em "Close" (Fechar). ## Prosseguimos com a configuração do servidor - Abrir a Administração. Você pode fazê-lo no menu Iniciar, mas se esse item não estiver lá, então Iniciar -> Painel de Controle -> Sistema e Segurança -> Administração - Iniciar o Gerenciador do IIS - Na janela que se abre, no lado esquerdo, expanda a ramificação sob o servidor necessário. Clique com o botão direito do mouse no elemento "Sites" e selecione "Add FTP Site" ... - Na nova janela Add FTP Site, especifique o nome e o caminho para o diretório onde os arquivos estarão localizados. Clique em "Next" (Avançar). - Na janela atualizada, especifique em quais endereços IP o servidor FTP será iniciado (isso é importante quando o servidor tem várias interfaces de rede ou aliases) e também indique a porta em que o serviço escutará (por padrão, 21 portas TCP). Verifique a presença da opção Iniciar site FTP automaticamente. Nas configurações de SSL, especifique Sem SSL. Se a criptografia for necessária, selecione o item apropriado e especifique o certificado. Clique em "Next". - A próxima etapa é configurar a autenticação. Na seção Authentication (Autenticação), selecione Normal (se for necessário acesso anônimo, selecione "Anonymous" (Anônimo)). Na seção Authorization (Autorização), é possível especificar com flexibilidade o acesso para os usuários. No nosso exemplo, permitiremos o acesso a todos os usuários, exceto o anônimo. Permitir leitura e gravação. Clique em " Done " - Se for bem-sucedido, uma linha com o nome do servidor FTP adicionado (site) será adicionada à janela do IIS Manager. Role para cima ou feche essa janela. Não precisaremos mais dela. ## Configurando o firewall - Na janela Administração, abra o Firewall do Windows no modo Segurança Avançada. - Na janela que se abre, na parte esquerda, selecione as "Regras" para conexões de entrada. Na parte direita, clique em "Criar regra" ... - Na nova janela, selecione "Predefined" (Predefinido). Na lista suspensa, selecione o servidor FTP. Clique em "Next" (Avançar). - Marcamos todos os itens e clicamos em "Next". - A próxima etapa é selecionar Allow connection (Permitir conexão), clicar em "Done" (Concluído). As regras selecionadas serão adicionadas à lista geral de regras de conexão de entrada. Para aplicar as configurações do firewall, você deve reiniciar o servidor. Você pode se conectar ao servidor com qualquer cliente FTP especificando o endereço IP do servidor, o nome de usuário e a senha, por exemplo, FileZilla. Entretanto, a disponibilidade do servidor também pode ser verificada usando o Internet Explorer. Na barra de endereços, especifique ftp: //IP.address.our.server/ (ou nome de domínio). Especifique o nome de usuário e a senha. ## Configurar FTP seguro Para proteger o tráfego, é recomendável usar certificados SSL. Você pode usar certificados autoassinados ou emitidos por uma autoridade de certificação. Observe que, ao se conectar a um servidor com um certificado autoassinado, o usuário será notificado sobre isso. ### Criar um certificado autoassinado - Iniciamos o Gerenciador do IIS (consulte Configuração do servidor acima). - Na janela que se abre, no lado esquerdo, expanda a ramificação sob o servidor necessário. Selecione "Certificados de servidor". - Na nova janela, no lado direito, selecione "Create a self-signed certificate" (Criar um certificado autoassinado). - Na janela que se abre, especifique o nome do certificado e seu tipo - "Personal". Clique em "OK". O certificado foi gerado. Agora vamos prosseguir com a configuração do FTP seguro. - Na janela do IIS Manager, no lado esquerdo, expanda a ramificação sob o servidor necessário, selecione o servidor criado. Na parte principal da janela, selecione "Configurações de FTP SSL". - Na janela atualizada, na lista suspensa, selecione o certificado criado ou emitido por uma autoridade de certificação, se houver. Selecione "Require SSL Connection" (Exigir conexão SSL). Na parte direita da janela, selecione "Apply" (Aplicar). Feche a janela, se necessário. Para se conectar a um servidor FTP seguro, recomendamos o uso do WinSCP. Protocolo de arquivos - FTP Criptografia - TLS/SSL Criptografia explícita Nome do host - endereço IP ou nome de domínio. Porta - 21, ou a que foi especificada. Nome e senha do usuário do sistema. Clique em "Login". . https://serverspace.com.br/support/help/installing-and-configuring-dfs.md DFS - Sistema de arquivos distribuído - sistema de arquivos distribuído. Instalar. Criar um espaço de nomes DFS. Adicionar um novo diretório ao namespace existente Configurar a replicação do DFS. Mais cedo ou mais tarde, os administradores de sistemas se perguntam sobre o armazenamento descentralizado de informações ou, pelo menos, sobre a combinação de vários servidores de arquivos existentes em um só. Paralelamente, é levantada a questão da segurança das informações armazenadas. Relativamente simples, menos dispendioso e popular entre os administradores do AD (Active Directory) é o uso do DFS. Veja o que ele é e como configurá-lo. DFS - **D**istributed **F**ile **S**ystem é um sistema de arquivos distribuídos. É um produto da Microsoft projetado para simplificar o acesso dos usuários aos arquivos. O que é digno de nota é que os arquivos podem ser distribuídos territorialmente. Há dois tipos de DFS: 1. Espaço de nomes DFS. Esse tipo implementa uma árvore virtual que combina diretórios de rede comuns em um único namespace. É possível configurar vários namespaces. 2. Replicação DFS - replicação de um diretório existente com o rastreamento de conteúdo e alterações. ## Instalação do DFS Vamos enfatizar imediatamente que a instalação, como parte deste exemplo, será realizada em um controlador de domínio já configurado. Abra o gerenciador do servidor. Na parte principal da janela, clique em "**Adicionar funções e componentes**". Na nova janela, vá até o item "**Installation Type**", selecione o parâmetro "**Install Roles and Components**", clique no botão "**Next**". Na janela atualizada, selecione o servidor atual e clique no botão "**Next**". Na próxima etapa, na lista de funções disponíveis, encontramos "**File Services and Storage Services**" e abrimos a lista na qual você precisa encontrar "**File Services and iSCSI** Services". Também expandimos a lista de parâmetros. Marcamos "**DFS**Namespaces" e "**DFS**Replication". Na janela que aparece, clique em "**Add Components**". Pressione o botão "**Next**" várias vezes e aguarde a conclusão da instalação. ## Criando um espaço de nome DFS Antes de começar a criar um namespace DFS, você deve criar pelo menos um diretório de rede em qualquer um dos servidores do domínio. Em nosso caso, usaremos o diretório criado no mesmo controlador de domínio. Para tornar a pasta acessível a partir da rede, clique com o botão direito do mouse nela, selecione "**Compartilhar**" no menu de contexto e, em seguida, "**Separar pessoas**". No campo de entrada, especifique "**Usuários do domínio**", clique no botão "**Adicionar**" e, em seguida, em "**Compartilhar**". O compartilhamento da pasta está pronto. Clique no botão "**Done**". Agora o servidor está disponível no caminho: ``` WINSERVER2019net_share ``` Crie um namespace DFS. Para fazer isso, selecione "**Ferramentas de Administração do Windows**" no menu "**Iniciar**". Também é possível por meio do **painel de controle****Sistema e Segurança****Administração**. Na janela que se abre, selecione "**Gerenciamento do DFS**". Na nova janela "**DFS Management**", no lado direito, clique em "**New namespace**...". Na janela do assistente, especifique o nome do servidor. Ele pode ser encontrado na janela que é aberta quando você clica no botão "**Browse**" e nas propriedades do sistema na guia "**Computer Name**". Clique em "Next" (Avançar). A próxima etapa é o nome do namespace. Em nosso caso, que seja "**MyDFS**". Pressione o botão "**Alterar configurações**...". Em uma nova janela, preste atenção à linha "**Caminho local do caminho local da pasta compartilhada**"; se necessário, altere-a. Na mesma janela, defina a chave para o valor "**Usar permissões de usuário**" e clique no botão "**Configurar**". Na janela que se abre, permita o acesso total para todos e clique no botão "**OK**". Feche a janela para alterar as configurações clicando no botão "**OK**" e, na janela do assistente, clique no botão "**Next**". Na nova etapa de escolha do tipo de namespace, defina a chave para o valor "**Domain Namespace**" e clique no botão "**Next**". Revisamos cuidadosamente as configurações. Se tudo estiver de acordo, clique em "**Create**". Clique no botão "**Close**". ## Adicionar um novo diretório ao namespace existente Não há sentido no que foi dito acima se você não adicionar diretórios a um namespace existente. No exemplo, o processo será executado no mesmo servidor; no entanto, o método é aplicável a todos os servidores do domínio. Na janela de controle do DFS, na parte esquerda, expanda a árvore de controle do DFS para uma árvore existente e clique na árvore necessária. Na parte direita da janela, na seção de ação, selecione "**Create folder**...". Na janela aberta "**Create Folder**", especifique o nome, no nosso caso "**Test**" e clique no botão "**Add**". Na nova janela, adicione o caminho para a pasta de rede existente. A lista de diretórios disponíveis pode ser visualizada clicando no botão "**Overview**...". No final, pressione o botão "OK". O resultado será Clique em "**OK**". O acesso ao DFS pode ser obtido em qualquer barra de endereços (Start-> Run ou na barra de endereços de qualquer pasta) usando o modelo: ``` ``` Por exemplo: ``` laa.testMyDFS ``` ## Configurar a replicação DFS Para executar a replicação de dados, você precisa adicionar um segundo servidor ao mesmo domínio e instalar a função de servidor "**DFS Replication**" usando o gerenciador de servidores. No mesmo servidor, crie uma pasta e permita o acesso compartilhado a ela. Os dados do diretório localizado no servidor do controlador de domínio serão replicados para essa pasta. Quando você abrir o acesso posteriormente, no menu de propriedades da pasta, poderá ver o caminho de rede para o diretório. Voltamos ao controlador de domínio e ao namespace DFS implantado nele. Abra a janela "**DFS Management**", já conhecida dos exemplos acima. Na parte esquerda da janela, expanda a árvore até o namespace criado. Na parte direita da janela, selecione "**Adicionar objeto de pasta de destino**...". Na nova janela, digite o endereço do diretório compartilhado em outro servidor (que foi criado anteriormente). Pressione o botão "**OK**". O sistema perguntará se você deseja criar um grupo de replicação. Pressione o botão " **OK** ". Estamos aguardando a conclusão do progresso. O resultado será uma janela aberta "**Folder Replication Wizard**". Você deve verificar o nome do grupo de replicação, bem como o nome do diretório que será replicado. Vá para a próxima etapa clicando no botão "**Next**". Nesta etapa, verificamos os caminhos para os diretórios de rede e clicamos em "**Next**". A próxima etapa é selecionar o nó principal na lista suspensa. Esse é o nó a partir do qual os dados serão replicados. No caso do exemplo, o membro principal da replicação do servidor chamado WINSERV2016 é o servidor no qual o controlador de domínio foi criado. Um exemplo específico nos lembra mais uma vez da necessidade de determinar nomes amigáveis para servidores e outros nós de rede. Clique em "**Avançar** ". Agora você precisa escolher a topologia de conexão entre os membros da replicação. Selecionamos a disponível - "**Full grid**"; no entanto, se você quiser criar sua topologia de replicação mais tarde, escolha "**No****topology**". Clique em "**Next**". A configuração está chegando ao fim e, nesta etapa, você deve decidir sobre a frequência da replicação de dados. Escolha a opção com replicação contínua. As vantagens desse método são que os dados serão duplicados imediatamente. A desvantagem é que ele carrega a rede local com grandes quantidades de informações, bem como a carga no disco rígido. A segunda opção oferece a configuração da replicação em um cronograma. A desvantagem desse método é que os dados serão sincronizados "mais tarde". Selecione a opção desejada e clique em "**Next**". O programa oferece uma visualização dos parâmetros selecionados. Se tudo estiver de acordo com suas necessidades, clique no botão "**Create**". Clique no botão "**Close**" (Fechar). O sistema o lembrará dos atrasos na replicação. Para não receber essa mensagem novamente, se desejar, marque a caixa no local apropriado. Pressione o botão " **OK**". A configuração do sistema de arquivos distribuídos, bem como a replicação de dados, pode ser considerada concluída. https://serverspace.com.br/support/help/setting-timeouts-for-rdp-sessions.md A definição de tempos limite para sessões RDP resolve o problema do encerramento de programas, scripts e macros quando uma sessão é interrompida. Vamos ver como fazer isso. Durante o trabalho remoto dos usuários, é importante configurar para que os programas, bem como os scripts e macros iniciados pelo cliente, continuem seu trabalho e não fechem imediatamente quando a sessão for interrompida. A base para resolver o problema é apenas definir tempos limite para as sessões RDP. Vamos ver como fazer isso. Instale o Remote Desktop Service. Para fazer isso, abra o "**Painel de Controle do Servidor**". Na janela que se abre, selecione o segundo item - "**Adicionar funções e componentes**". A janela do assistente de configuração de função fornece uma introdução geral. Esse texto aparecerá toda vez que você tentar adicionar funções ou um componente de servidor. Para evitar que essas informações apareçam novamente, recomendamos marcar a caixa "**Pular esta página por padrão**". Pressione o botão " **Next **". A próxima etapa é selecionar o tipo de instalação - "**Installing Remote Desktop Services**". Clique em " **Next** ". Na próxima etapa, selecione o tipo de implantação - "**Multipoint Services**". Normalmente, essa opção é definida por padrão. Clique no botão "**Next**". A próxima etapa é escolher o servidor para o qual a instalação será executada. No nosso caso, o servidor já foi adicionado, pois estamos considerando a instalação em um único servidor não adicionado ao domínio. Clique em " **Next** ". A próxima etapa confirma a escolha. Instale um daw, que permitirá que o sistema reinicie o servidor automaticamente, se necessário. Clique no botão "**Expandir**". **Importante! Durante a instalação, todas as conexões RDP podem ser fechadas e o servidor também pode ser reiniciado várias vezes sem notificação adicional.** Aguardando a conclusão do processo de instalação. A janela diz "**Successfully**" três vezes. Feche a janela de instalação. **Começamos a configurar as políticas de grupo.** Para configurar as políticas de grupo, execute o console apropriado. No programa executar (Windows + R), digite "gpedit.msc". Pressione o botão "**OK**" ou**enter**. Na janela que se abre, siga o caminho **Configuração do Computador → Modelos Administrativos → Componentes do Windows → Serviços de Área de Trabalho Remota → Host de Sessão de Área de Trabalho Remota → Limite de Tempo de Sessão**. Os seguintes parâmetros devem ser definidos como "**Enabled**": - Terminar a sessão quando o tempo limite for atingido - A configuração desse parâmetro ativa ou desativa o uso de tempos limite. - Definir um limite de tempo para sessões ativas, mas inativas, dos Serviços de Área de Trabalho Remota - o parâmetro determina o atraso para sessões inativas quando o usuário está inativo. - Definir limite de tempo para sessões desconectadas - o parâmetro define o tempo limite para sessões encerradas quando a sessão é concluída, mas alguns processos são iniciados em segundo plano. Para alterar os valores, clique com o botão direito do mouse em cada um dos itens. No menu de contexto, selecione "**Editar**". Uma janela semelhante será aberta com um clique duplo. Na janela que se abre, defina o estado como "**Enabled**". Em seguida, defina os períodos de tempo. No final, pressione o botão "**OK**". A escolha dos intervalos de tempo fica a cargo do administrador do sistema. O parâmetro "**End session when the time limit is reached**" não tem intervalos de tempo. Você só precisa ativar esse parâmetro. Depois de ativar todas as opções, a janela terá a seguinte aparência. Isso conclui a configuração. https://serverspace.com.br/support/help/install-sql-server-management-studio.md Este artigo o ajudará a instalar o SQL Server Management Studio e a realizar uma consulta simples ao banco de dados para verificar se a instalação está correta. O SQL Server Management Studio é um programa de interface gráfica com o usuário que permite gerenciar bancos de dados de forma rápida e fácil, criar usuários, definir permissões de banco de dados, criar backups e muito mais. Este artigo o ajudará a instalar o programa e a realizar uma consulta simples ao banco de dados para verificar se a instalação está correta. O SQL Server Management Studio está disponível separadamente do Microsoft SQL Server. Para instalá-lo, visite a [página de download da Microsoft](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15) e faça o download do binário mais recente do assistente de instalação. No momento em que este artigo foi escrito, a versão mais recente do SQL Server Management Studio era a 18.3.1: A próxima etapa é selecionar o local de instalação do Management Studio e clicar em **Install:** Após clicar no botão Install, o procedimento de instalação será iniciado automaticamente: Quando a instalação for concluída, será exibida uma tela solicitando a reinicialização. Reinicie clicando em**"Restart**": O SQL Server Management Studio está pronto para ser executado. Para se conectar ao SQL Server usando o Microsoft SQL Server Management Studio, siga estas etapas: 1. Inicie o Microsoft SQL Server Management Studio no menu Iniciar: 2. A janela de autenticação será aberta. Você pode selecionar a opção com base na qual configurou a autenticação ao instalar o MS SQL Server. Em seguida, clique em** "Connect**": 3. Se a conexão for bem-sucedida, você verá o painel Object Explorer - navegador de objetos: 4. Para executar uma consulta ao banco de dados, clique com o botão direito do mouse no nó do servidor (em nosso exemplo é **WIN2019STDSQLEXPRESS**) e selecione o item de menu **"New Query**": 5. Digite a seguinte consulta no editor: ```sql select @@version; ``` Essa consulta retorna a versão do SQL Server. Em seguida, clique em **Executar**: 6. A janela **Results** exibe a versão do SQL Server, conforme mostrado na captura de tela abaixo. Uma maneira rápida de executar a solicitação é pressionar a tecla **F5**: Parabéns! Agora você sabe como se conectar ao servidor SQL e executar consultas no estúdio de gerenciamento do servidor de banco de dados. https://serverspace.com.br/support/help/linux-machine-into-windows-ad-domain.md Siga estas instruções simples passo a passo para integrar uma máquina Linux (Ubuntu 20.04) em um domínio Active Directory do Windows Este artigo descreverá o processo de adição de uma máquina Linux (Ubuntu 20.04) em um domínio do Active Directory do Windows. ## Passo 1. Instalar pacotes e preparação. [step num="1"] Vamos atualizar os pacotes primeiro. [/step] ```bash sudo apt update sudo apt upgrade ``` [step num="2"] Depois disso, instale os pacotes necessários. [/step] ```bash sudo apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit ``` [step num="3"] Em seguida, configuraremos todas essas ferramentas para trabalhar com o domínio. Tudo o que precisamos saber é: - Nome do domínio: office.local - IP do servidor DNS: 192.168.0.1 - Segundo IP do servidor DNS: 192.168.0.2 [/step] ## Etapa 2. Configurar o DNS. [step num="4"] Procure no arquivo de configuração do netplan. [/step] ``` sudo nano /etc/netplan/*.yaml ``` [step num="5"] Se você vir lá 'dhcp4: true' e seu servidor DHCP estiver configurado corretamente, vá para a próxima etapa. Se você configurar os parâmetros de conexão de rede manualmente, aqui está um exemplo de configuração de endereços estáticos: [/step] ```yaml network: ethernets: enp0s3: addresses: - 192.168.0.15/24 gateway4: 192.168.0.10 nameservers: addresses: [192.168.0.1, 192.168.0.2] search: - office.local optional: true version: 2 ``` - addresses - esse endereço IP será atribuído à sua placa de rede; - gateway4 - endereço IP do seu roteador; - nameservers - servidores DNS; - search - domínio de destino. [step num="6"] Aplicar as alterações. [/step] ``` sudo netplan apply ``` ## Etapa 3. Descubra o domínio, junte-se a ele e verifique o resultado. [step num="7"] Primeiro, descubra o domínio. [/step] ``` realm discover office.local ``` [step num="8"] Veremos algo parecido com isto. Isso significa que as configurações de rede estão corretas e que nossa máquina recebeu uma resposta do domínio. Caso contrário, você precisará verificar as configurações de rede, o domínio e a integridade do DNS. [/step] ```yaml office.local type: kerberos realm-name: OFFICE.LOCAL domain-name: office.local configured: no ... ``` [step num="9"] Em seguida, entre no domínio do AD. Substitua "admin" pelo nome de usuário do administrador do domínio e digite a senha para ele, se solicitado. [/step] ``` realm join -U admin office.local Password for admin: ``` [step num="10"] Agora vamos verificar se podemos obter informações sobre o usuário do AD. Substitua "user" pelo nome da conta de usuário do domínio. [/step] ``` id user@office.local uid=687821651(user@office.local) gid=687800512(user@office.local) groups=687800512(domain users@office.local) ``` ## Etapa 4. Últimas configurações e login. [step num="11"] Para evitar adicionar o nome de domínio ao nome de usuário todas as vezes, vamos configurar isso. [/step] ``` sudo nano /etc/sssd/sssd.conf ``` [step num="12"] Altere o valor "use_fully_qualified_names" para False. Reinicie e verifique: [/step] ```bash sudo systemctl restart sssd id user uid=687821651(user@office.local) gid=687800512(user@office.local) groups=687800512(domain users@office.local) ``` [step num="13"] Agora precisamos configurar a criação de Home Dirs para os usuários do AD quando eles fizerem login. [/step] ``` sudo nano /etc/pam.d/common-session #add this line in the end of file session optional pam_mkhomedir.so skel=/etc/skel umask=077 ``` [step num="14"] Vamos tentar fazer login como um usuário do AD. [/step] ``` su – user Password: Creating directory '/home/user@office.local'. user@ubuntu-server:~$ ``` Isso significa que você fez login com sucesso como um usuário do AD. [step num="15"] Além disso, você pode permitir a autorização para alguns usuários ou grupos do AD e restringir outros. O exemplo abaixo está definido para negar todos e permitir o usuário, user2, grupo Domain Admins. [/step] ``` sudo realm deny –all sudo realm permit user@office.local user2@office.local sudo realm permit -g 'Domain Admins' ``` [step num="16"] A configuração dos usuários do AD para obter privilégios de raiz é igual à dos usuários locais, mas em outro arquivo. [/step] ``` sudo nano /etc/sudoers.d/admins ``` [step num="17"] Adicione as linhas necessárias a ele. Por exemplo: [/step] ``` user ALL=(ALL) ALL %Domain Admins ALL=(ALL) ALL ``` https://serverspace.com.br/support/help/how-to-install-mysql-on-debian-10.md Neste artigo, você aprenderá a instalar o servidor MySQL no Debian 10.x. Ele também funciona em outra distribuição baseada em Linux (como o Ubuntu). Neste artigo, você aprenderá a instalar o servidor MySQL no Debian 10.x. Ele também funciona em outra distribuição baseada em Linux (como o Ubuntu). **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "MySQL" já instalado.** Como instalar o MySQL no Debian 10: - [Adicionar o repositório MySQL](#stepone) - [Instalar o servidor MySQL](#steptwo) ### Etapa 1. Adicionar o repositório MySQL Em primeiro lugar, vamos atualizar os pacotes: ```bash apt update apt install gnupg ``` Em seguida, faça download do MySQL na [página oficial](https://dev.mysql.com/downloads/repo/apt) ou use o comando wget: ```bash wget https://dev.mysql.com/get/mysql-apt-config_x.x.x-x_all.deb ``` em que **x.x.x-x** é a versão do MySQL (por exemplo, 0.8.15-1): Screenshot 1. Download do MySQL. Instale o arquivo .deb: ``` sudo dpkg -i mysql-apt-config_x.x.x-x_all.deb ``` em que **x.x.x-x** é a versão do MySQL. Quando você tentar instalar o pacote, ele perguntará qual produto e versão você deseja instalar. Aqui você pode selecionar a versão do MySQL, Tools, Connectors (como o MySQL Workbench) e pacotes de visualização. Para selecionar a versão, clique na primeira opção: Screenshot 2. Escolha o MySQL Server & Cluster. Selecione a versão que você usará. Uma vez selecionada, você será levado ao menu anterior - pressione o botão Ok: Screenshot 3. Selecione a versão que você usará. Atualize o repositório apt: ```bash apt-get update ``` O pacote para instalar o servidor é "mysql-community-server" e sua versão é a mesma que você selecionou anteriormente no instalador de pacotes. ### Etapa 2. Instalar o servidor MySQL Instale o servidor MySQL usando o comando: ```bash sudo apt-get install mysql-community-server ``` Screenshot 4. Processo de instalação. Quando o download do apt for concluído, o instalador solicitará uma senha de root: Screenshot 5. Digite a senha de root. Você tem duas opções: - Deixe a senha em branco: o servidor usará a autenticação de soquetes unix. Isso significa que você só poderá acessar o servidor como usuário root ou como usuário com sudo; - Definir uma senha: o método de autenticação será o mesmo para outros usuários. Se você definir uma senha, o instalador perguntará qual plug-in de autenticação usar, senha fortemente criptografada (MySQL 8.x) ou método legado (MySQL 7.x e anteriores). Para selecionar as opções, use as setas ou o botão Tab. Você deve selecionar um método que seja compatível com seu cliente/programa. Depois de selecionar todas as opções, o processo de instalação será concluído e o serviço será iniciado automaticamente: Screenshot 6. Selecione o plug-in de autenticação padrão. Agora, verifique o status do serviço com o systemctl: ```bash systemctl status mysql.service ``` Screenshot 7. Verificação do status do serviço. Se você vir "active" (ativo), isso significa que o servidor está sendo executado sem erros. Pressione Q ou Ctrl + C para sair. Em seguida, execute o comando como usuário root para configurar com segurança o serviço SQL: ``` mysql_secure_installation ``` O programa fará perguntas a você. Você precisará responder Yes (botão Y/y) ou No (qualquer outra tecla): Screenshot 8. Executando o mysql_secure_installation. Se você quiser permitir o acesso remoto, edite o arquivo "mysqld.conf" em etc/: ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` No final do arquivo, adicione a opção "bind_address" com o valor de localhost: ``` bind-address=127.0.0.1 ``` Salve o arquivo e reinicie o serviço com o systemctl: ```bash systemctl restart mysql ``` **Observação:** lembre-se de abrir a porta do MySQL (será bom especificar a porta padrão do MySQL). Se você usar o ufw: ``` ufw allow $yoursqlport ``` onde, em vez de **yoursqlport**, escreva sua porta do MySQL. Se você usar o iptables: ``` iptables –A INPUT –p tcp –dport $yoursqlport –j ACCEPT ``` onde, em vez de **yoursqlport**, escreva sua porta do MySQL. https://serverspace.com.br/support/help/backup-ubuntu-server-20-04-with-bacula.md Neste tutorial, vamos percorrer as etapas para configurar o Bacula para executar o backup de arquivos em um servidor Ubuntu Server 20.04 local O Bacula é uma poderosa ferramenta de backup. Ele é altamente dimensionável, funciona em rede, permite verificar e criptografar dados e tem muitas outras vantagens. Neste tutorial, examinaremos as etapas para configurar um backup de arquivo em um computador local. Primeiro, vamos dar uma olhada nos componentes do Bacula: - Bacula Director gerencia as tarefas de backup e restauração e coordena a verificação de arquivos; - O Bacula Console permite que você gerencie o componente Director, execute trabalhos, visualize estatísticas e assim por diante; - Bacula File funciona em todos os sistemas que precisam de backup, interage com o Director e envia arquivos a seu pedido; - Bacula Storage gerencia os armazenamentos físicos e grava os backups neles; - Bacula Catalog é um banco de dados de serviço para organizar o backup, a recuperação e a verificação de arquivos. Graças ao catálogo, o utilitário tem informações retrospectivas sobre todos os arquivos e dispositivos de armazenamento. ## Passo 1 - Instalação do Bacula e do banco de dados [step num="1"] O Bacula usa o servidor Postfix para enviar notificações por e-mail quando uma tarefa é concluída. Você precisa instalá-lo e configurá-lo se quiser receber e-mails. O processo de configuração é descrito aqui: [Como instalar e configurar o Postfix como um servidor SMTP somente de envio](https://serverspace.com.br/support/help/postfix-as-a-send-only-smtp-on-ubuntu/) [/step] [step num="2"] Vamos instalar o Bacula [/step] ```bash apt install bacula ``` [step num="3"] Digite os dados de configuração do Postfix quando solicitado ou selecione "sem conexão" se não precisar de e-mails. [/step] [step num="4"] Na próxima etapa, selecione "Yes" para configurar o servidor de banco de dados PostgreSQL e "localhost" para seu nome de host. Você pode deixar o campo de senha vazio. [/step] Screenshot 1. Configuração do banco de dados PostgreSQL ## Etapa 2 - Configuração do Bacula [step num="5"] Primeiro, configure um dispositivo de armazenamento de backup. Crie uma pasta para registrar os backups e torne o bacula seu proprietário. [/step] ```bash mkdir /opt/backup chown bacula:bacula /opt/backup ``` [step num="6"] Adicione a seguinte configuração ao arquivo /etc/bacula/bacula-sd.conf: [/step] ``` Device { Name = LocalSD Media Type = File Archive Device = /opt/backup LabelMedia = yes; # lets Bacula label unlabeled media Random Access = Yes; AutomaticMount = yes; # when device opened, read it RemovableMedia = no; AlwaysOpen = no; Maximum Concurrent Jobs = 5 } ``` [step num="7"] Para aplicar as alterações, reinicie o serviço. [/step] ```bash sudo systemctl restart bacula-sd.service ``` [step num="8"] Agora você precisa adicionar informações de armazenamento ao arquivo /etc/bacula/bacula-dir.conf. Observe que a senha deve corresponder à string de senha no bacula-sd.conf [/step] ``` Storage { Name = LocalSD # Must be equal to the "Name" parameter of the "Storage" section in the /etc/bacula/bacula-sd.conf file Address = 127.0.0.1 Password = "Password" Device = LocalSD Media Type = File } ``` [step num="9"] Além disso, adicione informações sobre o novo FileSet que especifica os diretórios para backup. [/step] ``` FileSet { Name = "LocalFS" Include { Options { signature = MD5 } File = /home } } ``` [step num="10"] Neste exemplo, a pasta /home é selecionada para backup. Você também pode adicionar outras metas da mesma forma. Lembre-se de que não deve ser feito o backup da pasta onde os backups estão localizados. [/step] [step num="11"] Além disso, adicione um Schedule: [/step] ``` Schedule { Name = "LocalDaily" Run = Full daily at 03:00 } ``` [step num="12"] A última é a configuração do trabalho: [/step] ``` Job { Name = "LocalBackup" JobDefs = "DefaultJob" Enabled = yes Level = Full FileSet = "LocalFS" Schedule = "LocalDaily" Storage = LocalSD Write Bootstrap = "/var/lib/bacula/LocalhostBackup.bsr" } ``` [step num="13"] Salve o arquivo e feche-o. Reinicie o serviço. [/step] ```bash systemctl restart bacula-dir ``` [step num="14"] O Bacula agora executará um backup completo das pastas especificadas diariamente às 03:00. Se quiser fazer isso imediatamente, faça login no bconsole, digite "run", selecione "LocalBackup" e confirme. Para verificar o status do trabalho, digite "status" e selecione "1". [/step] [step num="15"] Para restaurar arquivos, use o comando "restore" no console b e siga as instruções. https://serverspace.com.br/support/help/postfix-as-a-send-only-smtp-on-ubuntu.md Neste tutorial, instalaremos e configuraremos o Postfix como um servidor SMTP Send-Only no Ubuntu 20.04 com criptografia e aliases O Postfix é usado para enviar e receber e-mails. Muitas vezes, há situações em que o servidor só precisa enviar e-mails. Por exemplo, para enviar notificações de aplicativos. Nesses casos, a opção do Postfix para enviar apenas mensagens é útil. ## Condições iniciais - Ubuntu 20.04; - Nome do domínio; - Registro DNS A, contendo o endereço IP público do seu domínio; - Certificado TLS para criptografia de e-mail; ## Etapa 1 - Instalação do Postfix [step num="1"] A maneira mais fácil é instalar o pacote mailutils, que contém o Postfix e alguns outros pacotes. [/step] ```bash sudo apt install mailutils ``` Durante a instalação, será exibida uma janela para configurar o Postfix. Screenshot 1. Configuração do Postfix. [step num="2"] Um site da Internet é a opção mais adequada em nosso caso. Depois de selecioná-lo, defina o nome do correio eletrônico do sistema. Ele deve ser igual ao nome do host e ao nome de seu domínio. [/step] Screenshot 2. Configuração do nome de correio eletrônico do sistema Postfix. ## Etapa 2 - Configuração do Postfix [step num="3"] Para enviar e-mails somente do servidor atual, precisamos apenas escutar a interface de loopback. Portanto, no arquivo main.cf, altere o parâmetro "inet_interfaces" para loopback-only. [/step] ``` sudo nano /etc/postfix/main.cf inet_interfaces = loopback-only ``` [step num="4"] Ajuste também o parâmetro mydestination da seguinte forma. [/step] ``` mydestination = localhost.$mydomain, localhost, $myhostname ``` [step num="5"] Reinicie o Postfix. [/step] ```bash sudo systemctl restart postfix ``` [step num="6"] As configurações atuais são suficientes para enviar e-mails do servidor. Vamos testá-las. [/passo] ## Etapa 3 - Teste do Postfix [step num="7"] Usaremos o comando mail para verificar se o Postfix enviará um e-mail. [/step] ``` echo "Fill in some text of the email here" | mail -s "Message subject" recipient's-email-address ``` [step num="8"] Preencha o texto e o título da mensagem. O e-mail será enviado para o endereço especificado em vez de para o endereço de e-mail do destinatário. [/step] [step num="9"] Se o e-mail não chegar, verifique a pasta Spam. Se ela não estiver lá, você precisará verificar a configuração. Outra causa de problemas pode ser uma incompatibilidade entre o nome do host, o nome do servidor e o nome de seu domínio. [/step] ## Passo 4 - Ativação da criptografia SMTP [step num="10"] A criptografia de e-mail é muito importante por motivos de segurança. Além disso, alguns servidores consideram os e-mails não criptografados como spam. Para criptografar o e-mail, você deve especificar um certificado válido na configuração do Postfix. [/step] ``` sudo nano /etc/postfix/main.cf ``` [step num="11"] Especifique o caminho para o certificado de domínio TLS no campo smtpd_tls_cert_file, a chave privada no campo smtpd_tls_key_file e digite yes no campo smtp_use_tls. [/step] ``` # TLS parameters smtpd_tls_cert_file=/etc/ssl/certs/domain-name.pem smtpd_tls_key_file=/etc/ssl/private/domain-private-key.pem smtp_use_tls=yes ``` [step num="12"] Reinicie o Posfix. [/step] ```bash sudo systemctl restart postfix ``` ## Etapa 5 - Configuração de aliases [step num="13"] Às vezes, é necessário redirecionar as mensagens internas dos usuários para a caixa de correio. Por exemplo, para redirecionar mensagens do sistema. Os aliases são usados para essa finalidade. Para configurá-los, edite o arquivo: [/step] ``` sudo nano /etc/aliases ``` [step num="14"] Adicione uma linha ao final do arquivo. Neste exemplo, configuraremos o envio de mensagens do sistema para mail@domain.com [/step] ``` root: mail.@domain.com ``` [step num="15"] Salve o arquivo e feche-o. Para aplicar as alterações, digite o comando: [/step] ``` sudo newaliases ``` https://serverspace.com.br/support/help/how-to-install-postgresql-on-ubuntu-20-04.md Neste tutorial, examinaremos o processo de instalação do PostgreSQL e as principais operações com ele. O PostgreSQL é um sistema de gerenciamento de banco de dados relacional de desenvolvimento dinâmico. Neste tutorial, examinaremos o processo de instalação e as principais operações com ele. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Postgres" já instalado.** ## Etapa 1 - Instalação dos pacotes do PostgreSQL [step num="1"] O pacote postgresql é o principal. Você também precisa instalar um pacote com funcionalidades e utilitários adicionais, o postgresql-contrib. [/step] ```bash sudo apt install postgresql postgresql-contrib ``` ## Passo 2 - Autorização e funções no PostgreSQL O conceito de funções no DBMS PostgreSQL é usado para autenticação e autorização. Sem entrar em detalhes, as funções são muito semelhantes aos usuários e grupos no Linux. [step num="2"] Depois de adicionar uma função ao DBMS correspondente ao nome de usuário do Linux, esse usuário poderá fazer login no sistema PostgreSQL com essa função. Durante a instalação, o usuário postgres foi adicionado ao sistema. Vamos fazer login com ele. [/step] ``` sudo -i -u postgres ``` [step num="3"] Para acessar a linha de comando do PostgreSQL, use o comando: [/step] ```bash psql ``` [step num="4"] Você pode combinar esses dois comandos e executar a linha de comando do PostgreSQL imediatamente. [/step] ``` sudo -u postgres psql ``` [step num="5"] Você pode usar essa linha de comando para gerenciar o DBMS. [/step] ## Etapa 3 - Criação de uma nova função [step num="6"] Depois de fazer login com sua conta postgres, você pode criar uma nova função: [/step] ``` createuser --interactive ``` [step num="7"] Digite o nome do usuário e especifique se o usuário precisa ser um superusuário. [/step] ## Etapa 4 - Criação de um novo banco de dados O DBMS presume que há um banco de dados com o mesmo nome para cada função. E, após a autorização, o PostgreSQL tentará se conectar a ele. Portanto, não será possível fazer login na linha de comando do DBMS imediatamente após a criação do usuário. ```bash psql: error: could not connect to server: FATAL: database "username" does not exist ``` [step num="8"] Vamos corrigir isso e criar um novo banco de dados com o nome da nova função. [/step] ``` createdb username ``` ## Passo 5 - Autorização na linha de comando do PostgreSQL com a nova função [step num="9"] Para acessar a linha de comando do PostgreSQL, você precisa de uma conta do Linux com o mesmo nome da função e do nome do banco de dados. Se esse usuário não existir, você poderá criar um usando o comando: [/step] ``` sudo adduser username ``` [step num="10"] Em seguida, no modo interativo, você precisa preencher o nome de usuário, a senha e vários campos adicionais. Faça login com sua nova conta e acesse a linha de comando do PostgreSQL [/step] ```bash sudo -i -u username psql ``` [step num="11"] Use esse comando para se conectar a outro banco de dados. Aqui, postgres é o nome do banco de dados de destino. [/step] ```bash psql -d postgres ``` [step num="12"] Para exibir informações sobre uma conexão estabelecida, use o comando: [/step] ``` conninfo You are connected to database "username" as user "username" via socket in "/var/run/postgresql" at port "5432". ``` https://serverspace.com.br/support/help/configuring-a-dns-server-on-windows-server-2012-or-later.md Configuração do adaptador de rede no servidor DNS. Instalação da função de servidor DNS. Criação de zonas de pesquisa direta e reversa. Criação de um registro de host (A). O **DNS (Domain Name System)** é um sistema que permite traduzir nomes de domínio em endereços IP e vice-versa. **Um servidor DNS** é um serviço de rede que fornece e mantém a operação do DNS. O servidor DNS é um serviço fácil e leve que pode ser executado na maioria das máquinas. Se você não pretende configurar outras funções e serviços no computador de destino, a configuração mínima é suficiente. Como configurar um servidor DNS: - [Configurando o adaptador de rede para o servidor DNS](#stepone) - [Instalando a função de servidor DNS](#steptwo) - [Criar uma zona de pesquisa de encaminhamento](#step3) - [Criar uma zona de pesquisa reversa](#step4) - [Criar um registro A](#step5) - [Descreve os recursos do Sistema de Nomes de Domínio (DNS) que são novos ou alterados no Windows Server 2016.](#step6) ## Configuração do adaptador de rede no servidor DNS A instalação de um servidor DNS requer uma zona de domínio. Você precisa criar uma rede privada em sua conta pessoal e conectar máquinas virtuais a ela. Depois que a máquina estiver conectada a ambas as redes, é importante lembrar qual conexão precisa ser configurada. Normalmente, um adaptador de rede é configurado por padrão desde o início com acesso à Internet. Ao mesmo tempo, outros adaptadores de rede adicionais não têm acesso à Internet até que a configuração seja realizada manualmente: Ao passar o cursor sobre o ícone de rede na bandeja do sistema, você pode encontrar uma dica de ferramenta com informações breves sobre redes. Seguindo o exemplo acima, você pode ver que a rede conectada é a Rede 3. Execute uma série de ações: - Clique com o botão direito do mouse em Iniciar e selecione Conexões de rede no menu suspenso; - Clique com o botão direito do mouse no adaptador de rede necessário e selecione Propriedades no menu; - Selecione IPv4 na janela Propriedades e clique no botão Propriedades; - Preencha os campos apropriados com os dados necessários: Aqui, a máquina é atribuída como o servidor DNS preferencial e o alternativo é atribuído como dns.google [8.8.8.8]. ## Instalando a função de servidor DNS Para adicionar novas funções ao Windows Server, use o Assistente para Adicionar Funções e Recursos no Gerenciador de Servidores. Na barra de navegação superior do Gerenciador de servidores, clique no menu Gerenciar e selecione Adicionar funções e recursos: Aqui, o assistente recomenda que você verifique se as seguintes tarefas foram concluídas: 1. A conta de administrador tem uma senha forte. 2. As configurações de rede, como endereços IP estáticos, estão definidas. 3. As atualizações de segurança mais recentes do Windows Update estão instaladas. Se você tiver certeza de que todas as condições foram atendidas, clique em Next; Selecione a instalação baseada em função ou em recursos e clique em Next: Selecione o servidor desejado no pool de servidores e clique em Next: Marque a função de servidor DNS e clique em Next (Avançar): Verifique a lista de recursos a serem instalados e confirme clicando em Add Features: Mantenha a lista de recursos como está e clique em Next (Avançar): Leia as informações e clique em Next: Verifique a configuração de instalação mais uma vez e confirme sua decisão clicando em Install (Instalar): A tela de confirmação final permite que você saiba que a instalação foi concluída com êxito e que você pode fechar o assistente de instalação: ## Criando zonas de pesquisa direta e reversa **Uma zona de domínio** - um conjunto de nomes de domínio em um domínio específico. **Zonas de pesquisa direta** resolvem nomes para endereços IP. **Zonas de pesquisa reversa** resolvem endereços IP para nomes. Você precisa usar o Gerenciador de DNS para criar e gerenciar as zonas. Na barra de navegação superior do Server Manager, clique no menu Tools (Ferramentas) e selecione DNS na lista suspensa: ### Criando uma zona de pesquisa direta - Clique com o botão direito do mouse na pasta Forward Lookup Zones e selecione New Zone. Isso abrirá o Assistente de Nova Zona: - Na tela de boas-vindas do Assistente, clique em Next: - Na tela Zone Type (Tipo de zona), selecione Primary Zone (Zona primária) e clique em Next (Avançar): - Digite o nome e clique em Next: - Se necessário, altere o nome do futuro arquivo de zona e clique em Next: - Você deve escolher se deseja permitir atualizações dinâmicas ou não. Não é recomendável permitir isso devido a uma vulnerabilidade significativa. Clique em Next: - Verifique se as configurações selecionadas estão corretas e clique em Finish: ### Criação de uma zona de pesquisa reversa - Abra o DNS Manager e clique com o botão direito do mouse na pasta Reverse Lookup Zones (Zonas de pesquisa reversa), selecione New Zone (Nova zona). Isso abrirá o Assistente de nova zona: - Na tela Zone Type (Tipo de zona), selecione Primary Zone (Zona primária) e clique em Next (Avançar): - Na primeira página Reverse Lookup Zone Name (Nome da zona de pesquisa reversa), selecione IPv4, clique em Next: - Digite a ID da rede (os três primeiros octetos do endereço IP) e clique em Next: - Se necessário, altere o nome do arquivo da zona futura e clique em Next: - Você deve escolher se deseja permitir atualizações dinâmicas ou não. Não é recomendável permitir isso devido a uma vulnerabilidade significativa. Clique em Next: - Verifique se as configurações selecionadas estão corretas e clique em Finish: ## Criando um registro de host (A) Esta seção da diretriz está aqui para verificar principalmente todas as etapas realizadas anteriormente. **Um registro de recurso** é a unidade de armazenamento e transmissão de informações no DNS. Os RRs são os blocos básicos de construção das informações de nome de host e IP e são usados para resolver todas as consultas de DNS. **Registro A** - um registro que permite mapear nomes de host para um endereço IP do host. **Registro PTR** - é a versão reversa de um registro A. - Abra a pasta Forward Lookup Zones no DNS Manager e localize a pasta da zona. Clique com o botão direito do mouse na parte direita do Gerenciador de DNS e selecione Novo host (a ou AAA): - A página New Host é aberta. Em Name (Nome), digite um nome para o host (sem domínio, ele usará o nome da Zona como domínio) e seu endereço IP. Marque a seção "Criar registro de ponteiro associado (PTR)" para verificar se as zonas de pesquisa direta e reversa estão funcionando corretamente: Se o campo Name estiver em branco, ele usará o nome de domínio pai. - Você também pode adicionar registros para outros servidores: - Ao terminar, clique em Done (Concluído). ## Certificando-se de que tudo está correto - Verifique as alterações nas pastas das zonas (no exemplo abaixo, você pode ver que 2 registros apareceram em cada uma delas): - Abra a linha de comando (cmd) ou o PowerShell e execute o comando nslookup: Isso mostra que o servidor DNS padrão é example-2012.com com o endereço 10.0.1.6. Para ter certeza de que as zonas direta e reversa estão funcionando corretamente, você pode enviar duas consultas: - Para consultar o domínio; - Para consultar o endereço IP: No exemplo, obtivemos respostas adequadas para ambas as consultas. - Existe uma opção para enviar uma consulta a um recurso externo: Vemos uma nova linha aqui "Non-authoritative answer" (Resposta não autorizada). Isso significa que nosso servidor DNS não contém os arquivos de zona originais do domínio. Embora as informações exibidas abaixo tenham sido recebidas de um servidor autoritativo, elas não são autoritativas nesse caso. Para comparar, todas as mesmas consultas foram feitas no servidor em que as zonas forward e reverse não estavam configuradas: Aqui, a máquina se atribuiu como um servidor DNS padrão. O nome de domínio do servidor DNS é exibido como desconhecido porque não há registros de recursos para o endereço IP (10.0.1.7). Pelo mesmo motivo, a segunda consulta retorna um erro (domínio inexistente). ## Descrição dos recursos do Sistema de Nomes de Domínio (DNS) que são novos ou alterados no Windows Server 2016. No Windows Server 2016, o servidor DNS oferece atualizações nas seguintes áreas: - [Políticas do servidor DNS](#first) - [Limite de taxa de resposta (RRL)](#scnd) - [Autenticação de entidade nomeada baseada em DNS (DANE)](#third) - [Suporte a registros desconhecidos](#quarto) - [Dicas de raiz IPv6](#fith) - [Suporte ao Windows PowerShell](#sixth) ## Políticas de servidor DNS Agora você pode usar esses recursos: - Política de DNS para gerenciamento de tráfego baseado em localização geográfica - Respostas inteligentes de DNS com base na hora do dia, para gerenciar um único servidor DNS configurado para implantação de cérebro dividido - Aplicar filtros em consultas de DNS e muito mais. Descrição específica desses recursos: **Balanço de carga de aplicativos** Quando você tiver implantado várias instâncias de um aplicativo em locais diferentes, poderá usar a política de DNS para equilibrar a carga de tráfego entre as diferentes instâncias do aplicativo, alocando dinamicamente a carga de tráfego para o aplicativo. **Gerenciamento de tráfego baseado em geolocalização**. Você pode usar a política de DNS para permitir que servidores DNS primários e secundários respondam a consultas de clientes DNS com base na localização geográfica do cliente e do recurso ao qual o cliente está tentando se conectar, fornecendo ao cliente o endereço IP do recurso mais próximo. **DNS de cérebro dividido** Com o DNS split-brain, os registros DNS são divididos em diferentes Zone Scopes no mesmo servidor DNS, e os clientes DNS recebem uma resposta com base no fato de serem clientes internos ou externos. É possível configurar o DNS split-brain para zonas integradas ao Active Directory ou para zonas em servidores DNS autônomos. **Filtragem** Você pode configurar a política de DNS para criar filtros de consulta baseados em critérios fornecidos por você. Os filtros de consulta na política de DNS permitem que você configure o servidor DNS para responder de maneira personalizada com base na consulta de DNS e no cliente DNS que envia a consulta de DNS. **Forense** Você pode usar a política de DNS para redirecionar clientes de DNS mal-intencionados para um endereço IP inexistente em vez de direcioná-los para o computador que estão tentando acessar. **Redirecionamento baseado na hora do dia** Você pode usar a política de DNS para distribuir o tráfego de aplicativos entre diferentes instâncias geograficamente distribuídas de um aplicativo, usando políticas de DNS baseadas na hora do dia. **Você também pode usar políticas de DNS para zonas de DNS integradas ao Active Directory.** ## Limitação da taxa de resposta (RRL) **ТVocê pode definir as configurações de RRL para controlar como responder às solicitações de um cliente DNS quando o servidor receber várias solicitações direcionadas ao mesmo cliente. ** Ao fazer isso, você pode impedir que alguém envie um ataque de negação de serviço (Dos) usando seus servidores DNS. Por exemplo, uma rede de bots pode enviar solicitações ao seu servidor DNS usando o endereço IP de um terceiro computador como solicitante. Sem a RRL, seus servidores DNS poderiam responder a todas as solicitações, inundando o terceiro computador. Ao usar a RRL, você pode definir as seguintes configurações: **Respostas por segundo** Esse é o número máximo de vezes que a mesma resposta é dada a um cliente em um segundo. **Erros por segundo** É o número máximo de vezes que uma resposta de erro é enviada ao mesmo cliente em um segundo. **Janela** É o número de segundos durante os quais as respostas a um cliente são suspensas se forem feitas muitas solicitações. **Taxa de vazamento** É a frequência com que o servidor DNS responde a uma consulta durante o tempo em que as respostas são suspensas. Por exemplo, se o servidor suspender as respostas a um cliente por 10 segundos e a taxa de vazamento for 5, o servidor ainda responderá a uma consulta para cada 5 consultas enviadas. Isso permite que os clientes legítimos obtenham respostas mesmo quando o servidor DNS estiver aplicando a limitação da taxa de resposta em sua sub-rede ou FQDN. **Taxa TC** É usada para dizer ao cliente que tente se conectar com TCP quando as respostas ao cliente forem suspensas. Por exemplo, se a taxa TC for 3 e o servidor suspender as respostas a um determinado cliente, o servidor emitirá uma solicitação de conexão TCP para cada 3 consultas recebidas. Certifique-se de que o valor da taxa TC seja menor do que a taxa de vazamento, para dar ao cliente a opção de se conectar via TCP antes de vazar as respostas. **Respostas máximas** Esse é o número máximo de respostas que o servidor emite para um cliente enquanto as respostas estão suspensas. **Domínios da lista de permissões** Essa é uma lista de domínios a serem excluídos das configurações de RRL. **Lista de permissões de sub-redes** Esta é uma lista de sub-redes a serem excluídas das configurações de RRL. **Lista de permissões de interfaces de servidor** Esta é uma lista de interfaces de servidor DNS a serem excluídas das configurações de RRL. ## Autenticação de entidade nomeada baseada em DNS (DANE) Você pode usar o suporte a DANE (RFC 6394 e 6698) para especificar aos seus clientes DNS de qual CA eles devem esperar que os certificados sejam emitidos para nomes de domínios hospedados no seu servidor DNS. Isso evita uma forma de ataque man-in-the-middle em que alguém pode corromper um cache de DNS e apontar um nome de DNS para seu próprio endereço IP. ## Suporte a registros desconhecidos Um "Registro desconhecido" é um RR cujo formato RDATA não é conhecido pelo servidor DNS. O suporte recém-adicionado para tipos de registros desconhecidos (RFC 3597) significa que você pode adicionar os tipos de registros sem suporte às zonas do servidor DNS do Windows no formato binário on-wire. O resolvedor de cache do Windows já tem a capacidade de processar tipos de registros desconhecidos. O servidor DNS do Windows não faz nenhum processamento específico de registro para os registros desconhecidos, mas os envia de volta nas respostas se forem recebidas consultas para eles. ## Dicas de raiz IPv6 As dicas de raiz do IPV6, conforme publicadas pela IANA, foram adicionadas ao servidor DNS do Windows. As consultas de nomes da Internet agora podem usar servidores raiz IPv6 para realizar resoluções de nomes. ## Suporte ao Windows PowerShell Os seguintes novos cmdlets e parâmetros do Windows PowerShell foram introduzidos no Windows Server 2016. **Add-DnsServerRecursionScope** - Esse cmdlet cria um novo escopo de recursão no servidor DNS. Os escopos de recursão são usados pelas políticas de DNS para especificar uma lista de encaminhadores a serem usados em uma consulta de DNS. **Remove-DnsServerRecursionScope** - Esse cmdlet remove os escopos de recursão existentes. **Set-DnsServerRecursionScope** - esse cmdlet altera as configurações de um escopo de recursão existente. **Get-DnsServerRecursionScope** - Esse cmdlet recupera informações sobre os escopos de recursão existentes. **Add-DnsServerClientSubnet** - este cmdlet cria uma nova sub-rede de cliente DNS. As sub-redes são usadas pelas políticas de DNS para identificar onde um cliente DNS está localizado. **Remove-DnsServerClientSubnet** - esse cmdlet remove as sub-redes de clientes DNS existentes. **Set-DnsServerClientSubnet** - esse cmdlet altera as configurações de uma sub-rede de cliente DNS existente. **Get-DnsServerClientSubnet** - Esse cmdlet recupera informações sobre sub-redes de clientes DNS existentes. **Add-DnsServerQueryResolutionPolicy** - esse cmdlet cria uma nova política de resolução de consultas DNS. As políticas de resolução de consultas do DNS são usadas para especificar como, ou se, uma consulta é respondida, com base em diferentes critérios. **Remove-DnsServerQueryResolutionPolicy** - esse cmdlet remove as políticas de DNS existentes. **Set-DnsServerQueryResolutionPolicy** - esse cmdlet altera as configurações de uma política de DNS existente. **Get-DnsServerQueryResolutionPolicy** - Esse cmdlet recupera informações sobre as políticas de DNS existentes. **Enable-DnsServerPolicy** - esse cmdlet ativa as políticas de DNS existentes. **Disable-DnsServerPolicy** - esse cmdlet desativa as políticas de DNS existentes. **Add-DnsServerZoneTransferPolicy** - Esse cmdlet cria uma nova política de transferência de zona de servidor DNS. As políticas de transferência de zona do DNS especificam se uma transferência de zona deve ser negada ou ignorada com base em diferentes critérios. **Remove-DnsServerZoneTransferPolicy** - Esse cmdlet remove as políticas de transferência de zona do servidor DNS existentes. **Set-DnsServerZoneTransferPolicy** - Esse cmdlet altera as configurações de uma política de transferência de zona de servidor DNS existente. **Get-DnsServerResponseRateLimiting https://serverspace.com.br/support/help/validation-types-used-when-obtaining-ssl-certificates.md Diferentes certificados SSL (Validação de domínio, Validação de organização, Validação estendida) e tipos de validação usados na obtenção de certificados SSL. ## Validação de domínio (DV) Todos os certificados devem estar sujeitos a um processo de validação de domínio usado para confirmar os direitos de propriedade do nome de domínio. Há três métodos de validação disponíveis: **Validação por e-mail** Você receberá um e-mail na caixa de correio do administrador do seu domínio com um código de confirmação exclusivo e um link. Siga o link e insira esse código exclusivo para passar na validação. Endereços de e-mail permitidos: - admin@ - administrador@ - webmaster@ - hostmaster@ - postmaster@ _Os seguintes métodos de validação de domínio estão disponíveis apenas para certificados Comodo._ **Validação via registro DNS** Seu CSR será submetido a hash. Os valores de hash serão fornecidos a você. Em seguida, insira um registro DNS CNAME do seu domínio. O formato do registro CNAME terá a seguinte aparência: __.. CNAME .[.]comodoca.com._ _Notas:_ - O hash SHA-256 é dividido por um "." (ponto) em dois rótulos de 32 caracteres cada; - Certifique-se de colocar um ponto no final de um nome de domínio completo; - Ao solicitar certificados de vários domínios, crie registros CNAME separados para cada nome de domínio completo no seu pedido; - Um nome mnemônico em um registro CNAME para um domínio com "www" para o qual um certificado é solicitado deve estar sem "www" (ou seja, se o seu domínio for www.example.com, o registro deverá ter a seguinte aparência: _.example.com.). ``` _09f7e02f1290be211da707a266f153b3.subdomain1.yourdomain.com. CNAME 3d874ab7b199418a9753111648448163.9eb1f2608f4da5aa3560154ca1b0df53.comodoca.com. ``` ``` _9e107d9d372bb6826bd81d3542a419d6.subdomain2.yourdomain.com. CNAME 899826c9c46f25fc70ed08b5811dbb2b.ddf3e6b932e44c6a6a9dc5285057e9db.comodoca.com. ``` **Validação por meio de um HTTP(S)** Seu CSR será submetido a um hash. Os valores de hash serão fornecidos a você. Em seguida, crie um arquivo de texto e salve-o em um diretório raiz do seu site. O arquivo e seu conteúdo devem ser os seguintes: 1. URL do arquivo: http:///.well-known/pki-validation/.txt 2. Conteúdo: comodoca.com _Notas:_ - A validação não será concluída se o site tiver redirecionamentos; - Verifique se os diretórios /.well-known/ e /.well-known/pki-validation/ existem no servidor da Web; - Se você solicitar um certificado para vários domínios, cada domínio protegido no certificado deverá ter um arquivo txt em seu diretório raiz; - Para domínios com "www", a validação é baseada em URLs sem "www" (ou seja, se você solicitar um certificado para o domínio www.example.com, o arquivo deverá estar acessível em http(s)://example.com/.well-known/pki-validation/.txt). _Exemplos:_ _Nome do arquivo_ ``` subdomain1.yourdomain.com/.well-known/pki-validation/09F7E02F1290BE211DA707A266F153B3.txt ``` _Conteúdo_ ``` 770423513bd0765c18e500000baec91976bcd8267a245437b32572665c6ac370 comodoca.com ``` ## Validação de organização (OV) **Etapa 1. Validação do domínio** O processo de validação de domínio é descrito no parágrafo anterior. **Etapa 2. Validação da organização** Pode ser realizada da seguinte forma: - O centro de certificação verifica se a organização existe no registro estadual de entidades. - Podem ser usados registros de dados públicos, como Dun & Bradstreet, Hoovers, Companies House no gov.uk e Lursoft.lv - O endereço pode ser confirmado por um dos seguintes documentos: estatuto social da organização (o endereço deve estar especificado nele); - licença governamental para atividade comercial onde o endereço está especificado; - Cópia do extrato da conta bancária da empresa dos últimos 6 meses (você pode especificar o número da conta aqui); - Cópia das contas telefônicas da empresa dos últimos 6 meses; - Cópia das contas da empresa de serviços públicos (eletricidade, água etc.) dos últimos 6 meses ou de um contrato de aluguel existente; - Carta autenticada (Carta de Opinião Legal) **Etapa 3. Retorno de chamada** O funcionário do centro de certificação (ou, mais frequentemente, um robô) liga para você para confirmar a originalidade da solicitação do certificado e concluir o processo de validação. Depois que todas as etapas forem concluídas com êxito, o certificado será assinado e emitido. ## Validação estendida (EV) **Etapa 1. Preenchimento dos formulários do centro de certificação** O centro lhe envia formulários especiais para serem preenchidos. **Etapa 2. Validação da organização** O processo de validação da organização está descrito no parágrafo OV. **Etapa 3. Validação do domínio O processo de validação do domínio é descrito no parágrafo DV. Etapa 4. Retorno de chamada** O funcionário da central de certificação liga para você para confirmar a originalidade da solicitação de certificado e concluir o processo de validação. Depois que todas as etapas forem concluídas com êxito, o certificado será assinado e emitido. https://serverspace.com.br/support/help/firewall-configuring-a-network-firewall.md É possível controlar o acesso à rede pública do servidor e os pacotes de dados recebidos e enviados diretamente do painel de controle usando o firewall. Instruções para configurar regras de Firewall para redes de servidores virtuais no painel de controle. ## O que é isso? É possível controlar o acesso à rede de servidores públicos, os pacotes de dados de entrada e saída diretamente do painel de controle usando o firewall. Essa opção não é cobrada separadamente e está incluída no preço da rede. No momento, há um limite de 50 regras. Se não for suficiente para você, é possível aumentá-lo enviando uma solicitação ao Suporte técnico. ## Arquitetura de rede É necessário entender a ordem de operação dos firewalls existentes para evitar o conflito de regras de firewall e garantir a configuração correta do firewall. Primeiro, você pode configurar o firewall para a rede privada. Em segundo lugar, é possível configurar o firewall para o servidor por meio do painel de controle. Em terceiro lugar, você pode configurar um firewall de back-end, por exemplo, para o Linux por meio do iptables; quanto ao Windows, o firewall é incorporado. Os pacotes de entrada serão tratados primeiro por um firewall de nível de rede (se houver). Se o pacote for aprovado, o firewall no nível do servidor será aplicado posteriormente, e o último será o mecanismo de software interno. Quanto aos pacotes de saída, será aplicada a sequência inversa de ações: ## Criação de regras A configuração do firewall está disponível para redes e pode ser encontrada nas configurações de rede da seção Firewall. **_Importante:_** _- a ordem das regras é importante: quanto menor for o número de ordem da regra (quanto mais alta ela estiver na lista), maior será sua prioridade. É possível alterar a ordem das regras com o recurso Arrastar e soltar, arrastando a regra com o botão esquerdo do mouse para a posição desejada;_ _- desligado - todos os pacotes de dados, tanto de entrada quanto de saída, passam pelo roteador._ Os pacotes não cobertos por nenhuma regra podem ser permitidos ou negados; eles são permitidos por padrão. Clique no botão **Add** para criar uma regra: Será aberta a janela para adicionar uma regra. Os campos a seguir devem ser preenchidos: - **Nome** é um nome amigável ao usuário (não mais de 50 caracteres), que geralmente descreve brevemente a finalidade da regra; - **Action** é uma ação a ser aplicada que assume um de dois valores: Allow (Permitir) ou Deny (Negar). Allow significa que os pacotes de dados podem ser enviados, Deny significa que os pacotes de dados não podem ser enviados; - **Fonte/Destino** - especifique o endereço IP do servidor ou um dos valores: Endereço IP, CIDR, intervalo de endereços IP, qualquer, interno e externo; - **SourcePort/DestinationPort** - ao selecionar TCP, UDP ou TCP e UDP, você pode especificar uma porta ou um intervalo de portas ou "qualquer"; - **Protocol** é um tipo de protocolo. ANY, TCP, UDP, TCP e UDP e ICMP estão disponíveis. Clique em **Salvar** para criar uma regra. Em nosso exemplo, a regra bloqueia os pacotes Tcp de entrada para o intervalo de endereços 10.0.1.2-10.0.1.4: Para que a regra tenha efeito, você deve salvar as alterações clicando no botão **Save**. Você pode criar várias regras e salvá-las todas de uma vez: Depois disso, a página terá a seguinte aparência: ## Exemplo de definição de prioridade de regra Quanto menor o número de ordem da regra (quanto mais alta ela estiver na lista), maior será sua prioridade. **Por exemplo**, depois de criar uma regra de negação para pacotes Tcp de entrada para um intervalo de endereços específico, vamos criar uma regra que permita que os pacotes de entrada sejam recebidos na porta Tcp 443 a partir da porta de saída 443. Depois que as alterações forem salvas nessa configuração, essa porta ainda estará indisponível porque a regra Deny tem prioridade mais alta: Arraste e solte a regra Allow para o primeiro lugar usando o botão esquerdo do mouse para alterar a prioridade das regras e, em seguida, salve as alterações: Os números de ordem das regras serão alterados depois de serem salvos, e sua prioridade também será alterada: Agora, a configuração do firewall permite que os pacotes Tcp passem pela porta Tcp 443 para a rede em um determinado intervalo de endereços; outros pacotes Tcp não passarão. Todos os outros pacotes que não estiverem cobertos pelas regras passarão para a rede. https://serverspace.com.br/support/help/configuring-vpn-in-the-control-panel.md A instrução descreve o procedimento para criar um túnel VPN (Virtual Private Network) entre redes no painel de controle Serverspace. A instrução descreve o procedimento para criar um túnel VPN entre redes no painel de controle. ## O que é a tecnologia VPN? A VPN (Virtual Private Network, Rede Privada Virtual) é uma rede privada virtual que fornece uma conexão de rede em uma distância física potencialmente longa. Nesse sentido, a VPN é uma forma de rede global. A VPN suporta compartilhamento de arquivos, videoconferência e outros serviços de rede semelhantes. As VPNs podem operar tanto em redes públicas, como a Internet, quanto em redes privadas. A VPN opera por meio da mesma infraestrutura de hardware que os canais de Internet existentes, usando um método chamado tunelamento. As tecnologias de VPN também incluem vários mecanismos de segurança para proteger as conexões virtuais. A VPN oferece suporte a pelo menos três modos de uso diferentes: - conexões de cliente para acesso remoto à Internet; - rede LAN a LAN; - acesso controlado à intranet. No painel de controle, é possível configurar uma conexão criptografada entre redes privadas remotas por meio de uma rede localizada na infraestrutura. ## Como criar um túnel VPN Clique na guia VPN da rede selecionada para criar o túnel VPN. Clique no botão **Add** para criar um túnel: Preencha os seguintes campos na janela aberta: Nome é um nome claro e fácil de usar para uma conexão VPN. Local Network (Rede local) é um endereço da rede selecionada no painel de controle; o valor é definido automaticamente. Peer Networks é um endereço da rede local remota usada para estabelecer uma conexão VPN. Local End Point (Ponto final local) é um ponto de tunelamento local; o valor é definido automaticamente. Peer Ip é o endereço IP externo do dispositivo (Firewall ou conector VPN de rede remota) com o qual você precisa se comunicar por meio de um túnel VPN. Peer Id é geralmente o endereço IP externo do dispositivo (Firewall ou conector VPN de rede remota) com o qual você precisa se comunicar por meio de um túnel VPN. O Peer Id e o Peer IP são os mesmos se nenhum dispositivo NAT for usado na rede remota. Se o NAT for usado, ele poderá ser um endereço IP privado. Protocolo de criptografia - selecione o tipo de protocolo de criptografia; AES256, AES-GCM, AES, 3DES estão disponíveis: Shared key (chave compartilhada) é uma chave de criptografia. A cadeia de caracteres deve ter de 32 a 128 caracteres e conter uma letra maiúscula, uma letra minúscula e pelo menos um caractere numérico. Recomendamos o uso de geradores de chaves públicas. MTU é o tamanho de um bloco de dados útil de um pacote; o intervalo disponível é de 60 a 9000 bytes. A caixa de seleção PFS permite controlar a propriedade Perfect Forward Secrecy necessária para alguns roteadores. A caixa de seleção VPN permite controlar o status do túnel. Marque a caixa e salve as alterações. A chave de criptografia provavelmente será necessária na outra extremidade do túnel. Se ambos os lados estiverem configurados corretamente, o painel exibirá o status OK. Observação: há dois status de conexão de túnel VPN - OK (marca verde) e Crítico (cruz vermelha). O status é atualizado quando a página é recarregada no navegador. Se a página estiver aberta, o status será atualizado a cada 15 segundos: Se o túnel não for mais necessário, ele poderá ser excluído clicando na cruz cinza na coluna Actions (Ações). Essa ação deve ser confirmada. https://serverspace.com.br/support/help/configuring-openvpn-on-ubuntu.md O OpenVPN é uma implementação aberta de uma das tecnologias de VPN projetadas para organizar redes privadas virtuais seguras. Considere a possibilidade de configurá-lo no Ubuntu Linux. O OpenVPN é uma implementação aberta de uma das tecnologias de VPN, projetada para organizar redes privadas virtuais seguras entre redes locais geograficamente remotas, bem como entre clientes individuais. A segurança do túnel é fornecida pela criptografia usando o OpenSSL. ## Como o OpenVPN funciona? Após a conclusão da configuração do servidor e de seu lançamento, ele entrará no modo de espera para receber e redirecionar conexões SSL seguras externas para o adaptador de rede virtual (tun/tap). Opcionalmente, o roteamento do servidor pode ser configurado de modo que o tráfego de Internet do cliente passe pelo servidor e se torne tráfego do servidor. Nesse caso, o OpenVPN executará o tráfego de proxy. ## O que é necessário do sistema operacional? Antes de instalar o OpenVPN, você precisa se certificar de que os parâmetros básicos estejam corretos. - O servidor tem pelo menos um endereço IP estático "branco". Esses. O servidor deve estar acessível pela Internet. Se o endereço for dinâmico, mas o servidor permanecer acessível a partir da rede global, use os serviços DynDNS. - Permissão para baixar e instalar pacotes de repositórios oficiais. Para verificar, execute cat /tc/apt/sources.list. As linhas com instruções dos repositórios devem ser descomentadas (não deve haver nenhum sinal "#" no início da linha). - Os parâmetros de rede devem ser especificados corretamente - nome do host, parâmetros dos servidores DNS. Como chegar à instalação. Todas as etapas de instalação serão executadas pelo usuário root. - Atualização das informações do repositório: ```bash apt-get update ``` - Instalar as atualizações atuais do sistema e os programas instalados: ```bash apt-get upgrade ``` - Instalar o OpenVPN: ```bash apt-get install openvpn ``` Importante. Nos repositórios básicos, a versão mais recente de um pacote geralmente está ausente. Os desenvolvedores do OpenVPN mantêm seu repositório, como configurá-lo pode ser encontrado no [site oficial do](https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos). - Instale o pacote easy-rsa da mesma forma: ```bash apt-get install easy-rsa ``` ## Passos pós-instalação Colocamos os scripts do easy-rsa: ``` cd /etc/openvpn/ && make-cadir easy-rsa ``` Preparamos as chaves públicas (PKI - Public Key Infrastructure): - Vá para o diretório / etc / openvpn / easy-rsa: ``` cd /etc/openvpn/easy-rsa ``` - Criando um link simbólico para o arquivo de configuração openssl: ``` ln -s openssl-1.0.0.cnf openssl.cnf ``` - Inicializamos o script vars: ``` source ./vars ``` O sistema informará: OBSERVAÇÃO: Se você executar ./clean-all, estarei fazendo um rm -rf em / etc / openvpn / easy-rsa / keys - Executamos o ./clean-all - Para criar uma autoridade de certificação, execute o script: ``` ./build-ca ``` No decorrer de seu trabalho, o programa fará várias perguntas. Elas devem ser respondidas em letras latinas. Se você não preencher algum campo, o programa substituirá os valores padrão, geralmente indicados entre parênteses. ## Criar a chave do servidor Para criar a chave do servidor, execute o comando: ``` ./build-key-server server ``` Deve-se observar que o processo é semelhante à geração de um certificado de uma autoridade de certificação; no entanto, antes de assinar o certificado, o programa fará duas perguntas de esclarecimento. Se tudo estiver correto, responda "y". ## Geração de chaves de cliente Da mesma forma que a geração de chaves de servidor, as chaves de cliente também são criadas: ``` ./build-key client1 ``` Deve-se observar que o client1.key criado não tem uma senha nem proteção criptográfica. Isso pode fazer com que qualquer usuário que tenha tomado posse do arquivo possa tentar se conectar ao servidor. Se essa ameaça existir, é melhor gerar chaves com outro script: ``` ./build-key-pass client2 ``` O script solicitará uma frase secreta logo no início. Além disso, o processo não é diferente da geração de chaves do servidor e de um cliente simples. Lembre-se de que os nomes das chaves devem ser exclusivos. Um usuário - uma chave com um nome exclusivo. Acontece que, no decorrer da operação do servidor, após algum tempo, é necessário criar um ou mais certificados. Para fazer isso, você precisará reinicializar o script vars e só então iniciar o processo de geração de chaves: ``` cd /etc/openvpn/easy-rsa ``` ``` source ./vars ``` SUPORTE DO LOCAL DO BLOCO DE CÓDIGO_14 ## Geração de chaves Diffie-Hellman Graças ao protocolo Diffie-Hellman, duas ou mais partes podem receber uma chave secreta, o que permitirá a criação de um canal de comunicação seguro. As chaves são geradas pelo comando: ``` ./build-dh ``` O resultado será algo parecido com isto. Quando o programa for concluído, o arquivo dh2048.pem aparecerá no diretório /etc/openvpn/easy-rsa/keys/ ## Movendo certificados e chaves ### Servidor Chaves e certificados criados. É hora de distribuí-los aos usuários e copiar as chaves do servidor para os diretórios apropriados no servidor. - Acesse o diretório com as chaves: ``` cd /etc/openvpn/easy-rsa/keys ``` - Copiamos apenas os arquivos necessários para o servidor: ``` cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn ``` É importante entender que os arquivos acima são a base da operação e da segurança do servidor VPN. A perda ou a substituição desses arquivos pode ter consequências extremamente negativas. É importante armazená-los em um local seguro e não transmiti-los por canais de comunicação abertos. ### Clientes O cliente precisará de apenas 3 arquivos ca.crt, client1.crt, client1.key. Cada cliente precisa fornecer apenas suas chaves. Esses arquivos podem ser colocados no diretório / etc / openvpn no computador do cliente se ele estiver executando um sistema operacional semelhante ao Linux. No Windows, eles devem ser colocados no diretório do usuário. ## Configuração do servidor e do cliente ### Servidor A maioria dos programas instalados no Linux tem os chamados arquivos de amostra. Esses arquivos contêm exemplos de configuração e explicações sobre eles. O OpenVPN não foi exceção. Descompacte o arquivo de configuração do servidor no diretório / etc / openvpn: ``` gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf ``` O servidor está pronto para trabalhar com o arquivo recebido. Ele está configurado com a possibilidade de tunelamento, mas não pode fazer proxy, ou seja, enviar o tráfego do cliente em seu nome. Corrija isso. Primeiro, verifique quais arquivos estão no diretório / etc / openvpn: ``` ls /etc/openvpn ``` Abra o arquivo de configuração: ``` nano /etc/openvpn/server.conf ``` E verificamos a conformidade dos arquivos prescritos na configuração com os arquivos no diretório. Linhas interessantes após " Certificado raiz SSL/TLS (ca), certificado (cert) e chave privada (key)." Se os nomes forem diferentes dos existentes, as correções necessárias deverão ser feitas. Saia do editor pressionando Ctrl + X. Iniciamos o servidor: ``` /etc/init.d/openvpn start ``` Verificar o resultado do lançamento: ``` /etc/init.d/openvpn status ``` Configurações do cliente. Supõe-se que o pacote OpenVPN já esteja instalado no lado do cliente. - Copie o arquivo de configurações do cliente para o diretório inicial do usuário: ``` cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /root ``` - Copie as chaves geradas - client1.key, client1.crt, ca.crt: ``` cd /etc/openvpn/easy-rsa/keys ``` ``` cp client1.key client1.crt ca.crt /root ``` - Editar o arquivo de configuração do cliente: ``` nano /root/client.conf ``` - Encontramos as linhas comentadas "# O nome do host/IP e a porta do servidor". Para o parâmetro remoto, altere my-server-1 para o endereço IP do servidor ou seu nome de domínio. - No mesmo arquivo, abaixo, encontramos o bloco "# SSL / TLS parms.". Edição de nomes de chaves. - Saímos da edição com a combinação Ctrl + X. Respondemos "Y" à pergunta sobre como salvar as alterações. O nome do arquivo é mantido inalterado. - Transfira os arquivos client1.key, client1.crt, ca.crt e client.conf para o computador cliente a partir do qual será feita a conexão com o servidor OpenVPN. Importante! Algumas implementações de cliente do OpenVPN só funcionam com arquivos * .ovpn. Nesses casos, basta alterar a extensão do arquivo (renomear) de client.conf para client.ovpn. - Nós nos conectamos ao servidor com o comando: ``` openvpn openvpn.conf ``` Deve-se observar que o proxy ainda não está configurado. Ao mesmo tempo, quando a máquina cliente está conectada ao servidor OpenVPN, o acesso à Internet é encerrado. Isso ocorre porque o adaptador TUN criado e, no lugar dele, o próprio servidor, é o gateway padrão. Configuração do roteamento. - No servidor, edite o arquivo server.conf: ``` nano /etc/openvpn/server.conf ``` - Encontramos a seguinte linha no arquivo e excluímos o símbolo ";" na frente dela, descomentando-a: ``` push "redirect-gateway def1 bypass-dhcp" ``` - Salve e feche o editor. - Editando o arquivo /etc/sysctl: ``` nano /etc/sysctl.conf ``` - No final do arquivo, adicione a seguinte linha: ``` net.ipv4.ip_forward=1 ``` Isso permitirá que o sistema encaminhe o tráfego entre as interfaces, mas as alterações só terão efeito após uma reinicialização. Salve o arquivo e feche o editor. - Permitir o encaminhamento de pacotes sem reiniciar o servidor: ``` echo 1 > /proc/sys/net/ipv4/ip_forward ``` - Configurar o NAT no iptables. Digitamos os comandos um a um: ``` iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT ``` ``` iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT ``` ``` iptables -A FORWARD -j REJECT ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_36__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_37__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_38__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_39__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_40__ Você também pode simplesmente inseri-los no arquivo /etc/rc.local até a linha "exit 0" ou configurar o firewall. O servidor está pronto para ser usado. No entanto, a tarefa é fazer proxy de todo o tráfego e, portanto, é necessário configurar o encaminhamento de consultas de DNS. Personalizar. - Instalar o dnsmasq Se a instalação for realizada em um sistema operacional Ubuntu: ```bash apt-get install dnsmasq ``` Embora na maioria das versões modernas do sistema operacional Ubuntu o dnsmasq já esteja pré-instalado, nas versões mais antigas você deve fazer isso: ```bash apt-get install dnsmasq && dpkg-reconfigure resolvconf ``` A caixa de diálogo do assistente de instalação pode ser iniciada. Ela conterá duas perguntas. No primeiro caso, a pergunta "prepare /etc/resolv.conf for dynamic updates" é respondida com "Yes" e, no seguinte, "Append original file to dynamic file?" responde "No". Para o sistema operacional Debian 7: ```bash apt-get install dnsmasq resolvconf ``` - Edite o arquivo de configurações do dnsmasq: ``` nano /etc/dnsmasq.conf ``` Adicione os seguintes parâmetros: ``` listen-address=10.8.0.1 ``` ``` bind-interfaces ``` Salve o arquivo e feche o editor. - Edição do arquivo de configurações de rede: ``` nano /etc/network/interfaces ``` É necessário especificar o endereço dos servidores DNS nas seções correspondentes das configurações do adaptador: ``` dns-nameservers 8.8.8.8 8.8.4.4 ``` Talvez essa ação já tenha sido executada. Não é necessário executá-la novamente. - Considerando a peculiaridade da inicialização do dnsmasq e da operação subsequente - a possibilidade de travamento antes da inicialização do adaptador de túnel virtual, adicione a seguinte linha ao arquivo rc.local, antes de "exit 0": ``` /etc/init.d/dnsmasq restart ``` - Agora, permita que os clientes do servidor OpenVPN usem o DNS. Usando o editor nano, descomente a linha: ``` push "dhcp-option DNS 10.8.0.1" ``` Corrigimos as alterações no arquivo. - Reinicie o servidor: ``` reboot ``` https://serverspace.com.br/support/help/installing-and-configuring-the-wamp-server.md O servidor WAMP é uma implementação do servidor LAMP clássico, mas para a família de sistemas operacionais Windows. Antes de configurar o servidor WAMP, instale as bibliotecas que estão faltando. O servidor WAMP é uma implementação do servidor LAMP clássico, mas para a família de sistemas operacionais Windows. Essa distribuição inclui Apache, PHP, MySQL e um instalador automático de extensões. Antes de instalar o servidor WAMP, instale as bibliotecas ausentes - Visual C ++ Redistributable for Visual Studio 2015. Para fazer isso, acesse o [link](https://www.wampserver.com/en/). Por conveniência, selecione o idioma de exibição da página e clique no botão Download. A página será atualizada, selecione o tamanho do bit do kit de distribuição e clique no botão Next (Avançar). Estamos aguardando o download completo do pacote. Instale-o em um princípio "Next-Done". Da mesma forma, instale: - [Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)](https://www.microsoft.com/en-us/download/confirmation.aspx?id=2092) - [Microsoft Visual C++ 2010 SP1 Redistributable Package (x64)](https://www.microsoft.com/en-us/download/details.aspx?id=13523) - [Visual C++ Redistributable for Visual Studio 2012 Update 4](https://www.microsoft.com/en-us/download/details.aspx?id=30679) - [Update for visual C++ 2013 Redistributable Package](https://support.microsoft.com/en-us/help/4032938/update-for-visual-c-2013-redistributable-package) Acessamos o site do projeto WAMP em [o link](https://www.wampserver.com/ru/). Abrimos a seção "Download" Aguardamos o download completo do arquivo e o executamos. Logo no início, o programa sugere a escolha de um idioma para todo o processo de instalação. Escolhemos de acordo com a conveniência. Em nosso caso, será o inglês. Clique no botão "OK". Lemos cuidadosamente o contrato de licença. Se tudo estiver de acordo, aceitamos as condições e continuamos a instalação. Na próxima etapa, o programa oferecerá a você a oportunidade de se familiarizar com as informações de instalação. Essas informações o lembram da necessidade de desativar o servidor IIS e atualizar os pacotes do Visual C ++. Escolha o caminho de instalação. O padrão é "C: wamp". O disco deve ter mais de 2,5 GB de espaço livre. Se tudo estiver correto, clique em "Next". Na próxima etapa, o programa oferecerá a criação de um atalho no menu Iniciar. Clique em "Next" (Avançar). Verificamos os parâmetros de instalação e clicamos em "Install". Aguardando a conclusão do processo de instalação. Durante o processo de instalação, você pode ser solicitado a usar o Internet Explorer como navegador para um servidor WAMP. Se você quiser selecionar outro navegador, clique no botão "Yes" (Sim). Nesse caso, será necessário especificar o arquivo exe do novo navegador. Se todas as atualizações acima estiverem instaladas, o servidor WAMP será iniciado na bandeja do sistema. Verifique o funcionamento do servidor. Para fazer isso, clique no link http://127.0.0.1. ## Vamos configurar o Apache Permita que a conexão seja para todos, não apenas para os usuários locais. Edite o arquivo C: wamp64binapacheapache2.4.39confhttpd.conf. Nesse arquivo de configuração, você precisa encontrar a seção . Substitua o valor "Require local" por "Require all granted". Salve e feche o arquivo. Agora, edite o arquivo C: wamp64binapacheapache2.4.39confextrahttpd-vhosts.conf. Substitua os parâmetros e valores da seção Directory por: ``` Options FollowSymLinks ``` ``` AllowOverride All ``` __TITULAR DO BLOCO DE CÓDIGO_DE_POSIÇÕES_2__ ``` allow from all ``` Salve e feche o arquivo. Reiniciamos o servidor WAMP. Para fazer isso, clique no ícone da bandeja com o botão direito do mouse e selecione Refresh (Atualizar). Para verificar o funcionamento do servidor www, crie um arquivo html na raiz do site. Para fazer isso, abra o Bloco de Notas e preencha-o com código html. Em seguida, salve o arquivo no caminho C:wamp64wwwindex.html Agora, em outro computador, abra o arquivo. Isso pode ser feito pelo nome de domínio, se adquirido e configurado, ou pelo endereço IP. Por exemplo: ``` http:///index.html ``` ``` http:///index.html ``` Para descobrir seu endereço IP, basta abrir um prompt de comando ou uma janela do PowerShell e executar o comando: ``` ipconfig ``` Abrir. Importante! As regras do Firewall do Windows devem permitir conexões com as portas TCP 80 e 443. ## Configurando o phpMyAdmin Na página principal do servidor, na parte inferior, à esquerda, na seção Tools (Ferramentas), clique em phpmyadmin. A página será aberta em http://127.0.0.1/phpmyadmin/. O aplicativo da Web solicitará um nome de usuário e uma senha. Por padrão, o login é root e a senha deve ser deixada em branco. Você também deve selecionar o DBMS usado e clicar no botão "Forward" (Encaminhar). Após a autorização bem-sucedida, você poderá adicionar usuários, se necessário, e também alterar a senha do usuário root. Vá para a guia "User Accounts" (Contas de usuário). Na linha do usuário root, clique em editar privilégios. A página será atualizada, clique em "Change Password" (Alterar senha). Digite a senha e sua confirmação. Clique no botão "Forward" (Encaminhar). É importante entender que root é o usuário com os maiores privilégios. A senha deve ser complicada. Ao final das configurações, reinicie o servidor da mesma forma mostrada acima. https://serverspace.com.br/support/help/mounting-a-disk-and-creating-partitions-in-linux.md Vamos dar uma olhada em como montar um disco em um servidor virtual privado (VPS), servidor virtual dedicado (VDS) e servidor autônomo. A peculiaridade do sistema operacional Linux é que é possível montar o disco. O disco rígido instalado no sistema pode não ser suficiente e, às vezes, surge a questão de adicionar mais mídia. Vamos dar uma olhada em como montar um disco em um servidor virtual privado (VPS), servidor virtual dedicado (VDS) e servidor autônomo. ## Preparação Antes de começar a trabalhar, certifique-se de que o disco exista no sistema. Às vezes, a presença de um dispositivo no BIOS pode não ser suficiente. Verifique as unidades disponíveis com o comando: ``` sudo fdisk -l ``` No nosso caso, há dois discos no sistema - sda e sdb, ambos com 10 GB cada, o primeiro disco do sistema. Trabalharemos com o segundo disco (sda). É importante lembrar que os sistemas Linux podem ser danificados pela especificação incorreta de uma unidade, como a do sistema. Verifique cuidadosamente e verifique novamente a seleção da mídia. O fato de o novo disco (fora da caixa) não ter um sistema de arquivos ou partições ajuda. ## Marcação do disco Para marcar o disco, execute o utilitário fdisk com o caminho para o disco: ``` fdisk /dev/sdb ``` Quando você pressionar "m" e confirmar a entrada com Enter, o programa fornecerá uma página de comandos disponíveis: **Referência:** DOS (MBR) alternar um sinalizador inicializável b editar o rótulo de disco BSD aninhado c alternar o sinalizador de compatibilidade com o DOS **Geral** d excluir uma seção F listar espaço livre não particionado l lista de tipos de partição conhecidos n adicionar uma nova seção p mostrar tabela de partições t alterar o tipo de partição v verificar a tabela de partição i imprimir informações sobre a partição **Diversos** m mostra este menu u alterar as unidades de exibição/entrada x recursos adicionais (somente para especialistas) **Script** Carrego o layout do disco a partir do arquivo de script sfdisk O dump do layout do disco para o arquivo de script do sfdisk **Salvar e sair** w salvar a tabela no disco e sair q sair sem salvar as alterações **Criar uma nova tag** g criar uma nova tabela de partição GPT vazia G criar uma nova tabela de partição SGI vazia (IRIX) o criar uma nova tabela de partição DOS vazia s criar uma nova tabela de partição Sun vazia Como criaremos uma partição simples (não inicializável), usaremos todo o espaço do disco, pressione a tecla "n" e Enter. O sistema perguntará sobre o tipo de partição - selecione p - primária. O número da partição - 1 Respondemos à pergunta sobre o primeiro e o último setor pressionando a tecla Enter. Importante! Se quiser criar várias unidades lógicas, em resposta ao último setor, você deverá especificar o tamanho em quilogramas, mega, giga, tera, petabytes. Por exemplo, se a partição precisar de um tamanho de 2 gigabytes, especifique 2G. Salve as alterações pressionando "w" e confirme a seleção com a tecla Enter. ## Formatação de um disco Após a operação descrita acima, o dispositivo /dev/sdb1 será criado no sistema - em essência, essa é uma partição no disco. Agora, a formatação. O Linux moderno oferece várias opções de sistema de arquivos. O sistema de arquivos é criado com a execução do comando mkfs com as chaves especificadas ou com a execução de um dos programas: ``` mkfs.bfs ``` ``` mkfs.btrfs ``` ``` mkfs.cramfs ``` ``` mkfs.ext2 ``` ``` mkfs.ext3 ``` ``` mkfs.ext4 ``` ``` mkfs.ext4dev ``` ``` mkfs.fat ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_10__ ``` mkfs.msdos ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_12__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_13__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_14__ A formatação é realizada pelo comando: ``` sudo mkfs.ext4 /dev/sdb1 ``` O disco está pronto para funcionar. Resta apenas montá-lo. ## Montando um disco A peculiaridade do sistema operacional Linux é que é possível montar um disco (ou outro dispositivo de bloco) em qualquer um dos diretórios, o principal é que o diretório esteja vazio. Crie um diretório no diretório /mnt: ``` sudo mkdir /mnt/1 ``` Alteramos os direitos de acesso ao diretório. Somente root e somente leitura e gravação. ```bash sudo chmod -R 660 /mnt/1 ``` Montamos: ``` sudo mount /dev/sdb1 /mnt/1 ``` Para montar o disco automaticamente quando o sistema for inicializado, edite o arquivo /etc/fstab. Abra-o com qualquer editor de texto, por exemplo, nano: ``` sudo nano /etc/fstab ``` No final do arquivo, insira a linha: ``` /dev/sdb1 /mnt/1 ext4 defaults 0 0 ``` Salve o arquivo. . https://serverspace.com.br/support/help/managing-users-on-ubuntu-and-debian.md Aprenda a gerenciar usuários no Ubuntu e Debian: crie novas contas, remova usuários e altere senhas de forma segura usando comandos como adduser, deluser e passwd. Gerenciar usuários é uma das tarefas essenciais para administradores de sistemas Linux. No Ubuntu e no Debian, é possível criar, remover e alterar senhas de contas de usuários diretamente pelo terminal, garantindo segurança e controle sobre o acesso ao sistema. Este guia explica passo a passo como executar essas operações usando ferramentas padrão como adduser, deluser e passwd. ## Requisitos iniciais do sistema Debian Muitos dos comandos deste guia exigem privilégios de superusuário. Se o seguinte erro for exibido ao usar o comando sudo: ``` bash: sudo: command not found ``` Será necessário ativar o modo de superusuário, instalar o comando sudo e adicionar seu usuário ao grupo sudo: ```bash su - apt-get install sudo -y usermod -aG sudo yourusername ``` ## Como adicionar um novo usuário? O Ubuntu e o Debian têm duas ferramentas de linha de comando que podem ser usadas para criar uma nova conta de usuário: useradd e adduser. O useradd é um utilitário de baixo nível para adicionar novos usuários, e o adduser é uma interface interativa amigável para o useradd escrita em Perl. Para criar uma nova conta de usuário do sistema operacional chamada _username_ usando o comando _adduser_, execute o seguinte comando: ``` sudo adduser username ``` Como resultado, é exibida uma caixa de diálogo na qual você deve inserir a senha e informações adicionais: Adicionando o usuário 'nome de usuário' ... Adicionando novo grupo `nome de usuário' (1000) ... Adicionando novo usuário `username' (1000) com o grupo `username' ... Criando diretório home `/home/username' ... Copiando arquivos de `/etc/skel' ... Digite a nova senha do UNIX: Digite novamente a nova senha do UNIX: passwd: senha atualizada com sucesso Alteração das informações do usuário para o nome de usuário Digite o novo valor ou pressione ENTER para obter o valor padrão Nome completo []: Nome Número da sala []: 100 Telefone comercial []: 123-45-45 Telefone residencial []: Outro []: As informações estão corretas? [S/n] S O comando cria o diretório inicial para o novo usuário e copia os arquivos do diretório /etc/skel para lá. Por padrão, os membros do sudo recebem acesso sudo. Se quiser que o usuário recém-criado tenha direitos de administrador, adicione-o ao grupo sudo: ``` sudo usermod -aG sudo username ``` ## Como excluir um usuário? Há duas ferramentas de linha de comando que podem ser usadas para excluir uma conta de usuário: userdel e deluser. Recomendamos usar o comando deluser, pois ele é mais amigável do que o userdel de baixo nível. Para excluir um usuário sem excluir os arquivos e diretórios do usuário, faça o seguinte: ``` sudo deluser username ``` Se precisar excluir o diretório inicial do usuário e seu conteúdo, use o sinalizador -remove-home: ``` sudo deluser --remove-home username ``` Como resultado, a seguinte mensagem é exibida: Looking for files to backup/remove ... Removendo arquivos ... Removendo o usuário "nome de usuário" ... Aviso: o grupo "nome de usuário" não tem mais membros. Concluído. ## Como alterar a senha do usuário? Para alterar sua senha, use o comando passwd sem argumentos adicionais: ``` passwd ``` Na caixa de diálogo do sistema, você precisará digitar a senha antiga e especificar uma nova: Alterando a senha do nome de usuário. Senha UNIX (atual): Digite a nova senha do UNIX: Digite novamente a nova senha do UNIX: passwd: senha atualizada com sucesso Para alterar a senha de outro usuário, é necessário ter direitos de administrador e nome de usuário: ``` sudo password username ``` ## Conclusão O gerenciamento adequado de usuários no Ubuntu e Debian é fundamental para manter a segurança e a organização do sistema. Comandos como adduser e deluser permitem criar e remover contas facilmente, enquanto passwd possibilita a atualização de senhas de forma rápida e segura. Ao seguir boas práticas, como conceder privilégios de administrador somente quando necessário, você garante que o sistema permaneça protegido e funcional. ## FAQ - **Qual a diferença entre adduser e useradd?** adduser é uma interface amigável e interativa escrita em Perl, enquanto useradd é um utilitário de baixo nível para adicionar usuários. Para a maioria dos casos, adduser é mais prático. - **Como dar privilégios de administrador a um usuário?** Adicione o usuário ao grupo sudo com o comando: ``` sudo usermod -aG sudo username ``` - **Como remover um usuário mantendo seus arquivos?** Use o comando: ``` sudo deluser username ``` Para remover também o diretório inicial, adicione --remove-home. - **Como alterar a senha de outro usuário?** É necessário ter privilégios de administrador e executar: ``` sudo passwd username ``` - **Preciso de privilégios de superusuário para gerenciar usuários?** Sim, a maioria dos comandos de gerenciamento de usuários exige permissões de root ou acesso via sudo. https://serverspace.com.br/support/help/installing-the-gnome-gui-on-centos-7.md Neste artigo, explicaremos como instalar a GUI do GNOME na versão básica do sistema operacional CentOS 7 usando o conjunto de comandos para o terminal. O GNOME faz parte do projeto GNU e é uma interface gráfica de desktop (GUI). Ele usa o princípio KISS (Keep it simple, stupid) e é a GUI padrão para muitas distribuições, como Debian, Fedora, Red Hat Enterprise Linux, Kali Linux etc. Neste artigo, explicaremos como instalar a GUI do GNOME na versão básica do sistema operacional CentOS 7. Como esse sistema funciona no modo de linha de comando (CLI), como exemplo, usaremos um conjunto de comandos para o terminal. ## Instalação [step num="1"] Presumimos que você já tenha instalado o CentOS (se ainda não tiver, você pode [alugar](https://serverspace.com.br/services/vps-server/linux.md) VPS com esse sistema operacional) e que tenha direitos de root ou superusuário. Nesse caso, escreveremos comandos como usuário root. Se você não for um usuário root, basta colocar sudo antes de todos os comandos. [/step] ### Etapa 1 - Atualize seu sistema [step num="2"] Primeiro, atualizamos o sistema. Isso nem sempre é necessário, mas é uma boa prática: ```bash yum update ``` [/step] [step num="3"] Estamos aguardando a conclusão da instalação das atualizações para passar para a próxima etapa. [/step] ### Etapa 2 - Instalar pacotes do GNOME [step num="4"] Agora vamos instalar os pacotes do GNOME. Para instalá-los, usaremos um comando que instala todos os pacotes relacionados à GUI do GNOME: ```bash sudo yum -y groups install "GNOME Desktop" ``` [/step] ### Etapa 3 - Configurar o sistema X Window [step num="5"] O programa que executa o ambiente gráfico na maioria dos sistemas Linux é chamado de X Window System. Portanto, em primeiro lugar, você deve informar ao X Window System que o GNOME é a GUI padrão. Para inserir esse comando: ``` echo "exec gnome-session" >> ~/.xinitrc ``` [/step] [step num="6"] Agora concluímos a instalação do GNOME e a configuração do sistema X Window. Vamos verificar isso digitando o comando: ``` startx ``` [/step] [step num="7"] Depois de executar esse comando, você verá a GUI do GNOME, semelhante à imagem abaixo, o que significa que ele funciona: [/step] ### Etapa 4 [step num="8"] Agora a GUI do GNOME está instalada e testada. No entanto, para iniciá-la, é necessário digitar o comando_ startx_ toda vez que iniciar o sistema operacional, o que não é muito conveniente. Vamos fazer com que ele seja iniciado automaticamente. Para fazer isso, use o seguinte comando: ```bash systemctl set-default graphical.target ``` https://serverspace.com.br/support/help/windows-2016-creating-a-user.md Criação de uma conta de usuário no Windows 2016 - por meio do painel de controle e do console. E fornecendo acesso remoto à área de trabalho. Criar sua conta para cada usuário é um atributo importante da segurança do servidor. Vamos ver como adicionar um usuário no Windows 2016. ## Método 1. Tradicional [step num="1"] Abra **Iniciar → Painel de controle.** [/step] [step num="2"] Na janela que se abre, clique em **"Contas de usuário".** [/step] [step num="3"] Na janela atualizada, clique em **"Contas de usuário" novamente.** [/step] [step num="4"] A peculiaridade do sistema operacional é que os parâmetros da conta atual serão abertos, e precisamos criar uma nova conta. Clique na inscrição**"Gerenciar outra conta".** [/step] [step num="5"] Na parte inferior da janela atualizada, clique em **"Adicionar conta de usuário".** [/step] [step num="6"] Na nova janela **"Adding a user"**, todos os campos devem ser preenchidos: - nome de usuário; - senha; - confirmar senha; - dica de senha. [/step] [step num="7"] Se a senha não atender aos critérios de segurança, o programa o notificará. [/step] [step num="8"] Na janela atualizada, clique no botão **"Finish"**. [/step] [step num="9"] A janela de adição de usuário será fechada e, na janela **"Account Management"**, você poderá selecionar uma conta para alterar as configurações. [/step] ## Método 2. Por meio do console de gerenciamento do computador O atalho de teclado **"Windows + R" chama a janela do sistema "Executar"**. Em seu único campo, digitamos o comando mmc. Um console de snap-in vazio é aberto. Para poder criar um usuário, é necessário adicionar o snap-in necessário ao console. Para fazer isso, abra **arquivo → Adicionar ou remover snap-in ... ** Na janela "Add and Remove Snap-in" (Adicionar e remover snap-in), na parte esquerda, encontramos "Local Users and Groups" (Usuários e grupos locais). Agora, clique no botão "Add". **"Local users and groups **"será movido para a seção**"Selected snap-ins"**. Imediatamente após a ação acima, a janela **"Selecionar computador de destino**"será aberta. Selecionamos a opção "Local computer (on which the window of this console program is running)" (Computador local (no qual a janela deste programa de console está sendo executada)), geralmente esse parâmetro é definido por padrão. Clique no botão **"Concluído".** A janela será fechada. Na janela restante, clique no botão "OK". A janela Adicionar "Remover Snap-in" é fechada. Somente a janela do Console 1 permanece. Na parte esquerda da janela, expanda a árvore "Usuários e grupos locais" e, em seguida, clique na pasta "Usuários". Na parte principal da janela, clique com o botão direito do mouse no espaço e selecione "**Novo usuário". Na janela "Novo usuário" que se abre, os seguintes campos são importantes para serem preenchidos: - Usuário; - Nome completo; - Senha; - Confirmar senha; Recomendamos preencher claramente o campo "Descrição"**. É importante prestar atenção ao parâmetro** "Require password change at the next login"**. A marca de seleção é definida por padrão. Assim, quando o administrador passar a senha para o usuário, no primeiro login, o sistema operacional exigirá que o usuário especifique uma nova senha para entrar no sistema. Clique no botão "**Create**". O resultado será algo parecido com isto. Permitir a conexão remota. Foi originalmente planejado que o usuário criado pudesse se conectar à área de trabalho remota nesse servidor. Vamos oferecer essa oportunidade. ### Método 1. Por meio do console do servidor A partir do método acima, todos na mesma janela "Console 1", clique no usuário criado com o botão direito do mouse. No menu de contexto que se abre, selecione o item "Propriedades". Abra a guia **"Associação ao grupo"** e clique no botão "Adicionar". Na janela de seleção de grupos, clique no botão "**Additionally**". Na parte direita da janela atualizada, clique no botão **"Search"** (Pesquisar). No campo "Resultados da pesquisa", selecione **"Usuários da área de trabalho remota"** clicando duas vezes. Na janela de seleção de grupos, clique no botão "OK". A associação ao grupo correspondente aparecerá na janela de propriedades da conta. Feche a janela clicando no botão "OK". ### Método 2. Considere uma maneira alternativa de fornecer acesso à área de trabalho remota Abra o menu Iniciar e selecione Painel de controle. Na janela que se abre, clique em **"Sistema e Segurança"**. Na janela atualizada, clique em **"Sistema"**. Na parte esquerda da nova janela, clique em**"Setting up remote access"**. Na janela** "Propriedades do sistema"** que se abre, vá até a guia "Acesso remoto" e clique no botão "Selecionar usuários". Na janela que se abre, clique no botão** "Adicionar"** Na janela de seleção de usuários, clique no botão "**Additionally**". Na janela atualizada, clique no botão **"Search"** e, na parte inferior da janela, onde estão os resultados da pesquisa, encontramos o usuário de que precisamos. Selecione-o com um clique duplo. Uma linha com o login será adicionada à janela de seleção de usuários e em qual servidor o usuário está localizado. Se tudo estiver correto, clique no botão "OK". Na janela **"Remote Desktop Users"**, verificamos os usuários e, quando terminarmos, clicamos no botão "OK". ## Agora você pode tentar se conectar Você pode executar o **"Remote Desktop Connection"** por meio do menu Iniciar → Acessórios - Windows → Conexão de Área de Trabalho Remota. Talvez esse programa esteja no "mosaico" à direita. Uma janela do programa será aberta. Digite o endereço IP da máquina remota ou seu nome de domínio. E clique no botão **"Connect"**. O computador remoto solicitará um nome de usuário e uma senha, digite-os e clique no botão "OK". . https://serverspace.com.br/support/help/backing-up-using-the-windows-server-backup-component.md Configuração do Backup do Windows Server - um componente incorporado da família de sistemas operacionais Windows Server que é usado para criar backups do sistema operacional. Fazer o backup de informações importantes é um bom hábito na administração do sistema para economizar tempo valioso. Vamos dar uma olhada em como se salvar do tormento da hora "X" usando o componente Backup do Windows Server. ## O que é o Backup do Windows Server? O Backup do Windows Server é um componente integrado da família de sistemas operacionais Windows Server projetado para fazer backup e trabalhar com o sistema operacional. ## Começando a configuração [step num="1"] No menu Iniciar, inicie o Server Manager. [/step] [step num="2"] Na janela do Gerenciador de Servidores que se abre, selecione "Add Roles and Features" (Adicionar funções e recursos). [/step] [step num="3"] Na janela aberta do Add Roles and Components Wizard (Assistente para adicionar funções e componentes), na parte esquerda da janela, selecione "Installation Type" (Tipo de instalação), na direita - "Install Roles or Components" (Instalar funções ou componentes) e clique no botão "Next" (Avançar). [/step] [step num="4"] Na janela atualizada, na etapa de seleção do servidor, selecione o atual no pool. Clique em "Next" (Avançar). [/step] [step num="5"] Na janela atualizada do assistente, em sua parte esquerda, clique em "Components" (Componentes). Na parte central da janela, na parte principal da janela, selecione "Windows Server Data Archiving System". Clique no botão "Next" (Avançar). [/step] [step num="6"] Na etapa de confirmação, clique no botão "Install" (Instalar). [/step] [step num="7"] Aguardando a conclusão do processo de instalação. [/step] [step num="8"] No final, clique no botão "Close" (Fechar). [/step] [step num="9"] A janela do Server Manager permanece aberta. Na parte superior direita, selecione "Tools" (Ferramentas). No menu que se abre, selecione "Windows Server Data Backup System". [/step] [step num="10"] Na janela "wbadmin" que se abre, no lado esquerdo, selecione "Local backup"; no lado direito, as ações com o backup local estarão disponíveis. Configure um backup de acordo com a programação - selecione "Archiving schedule ..." (Programação de arquivamento...). [/step] [step num="11"] Na janela que se abre, o assistente de agendamento de ativação, na etapa inicial, clique no botão "Next" (Avançar). [/step] [step num="12"] A próxima etapa é escolher o tipo de configuração: o servidor inteiro ou algo específico. Crie uma cópia de todo o servidor. Clique em "Next" (Avançar). [/step] [step num="13"] Agora você precisa decidir quantas vezes por dia fazer o backup e em que horário. Não é recomendável fazer backup com muita frequência. Também é melhor configurar os backups no final do dia de trabalho ou mais antes do início dele. No nosso caso, que seja às 09:00 pm. Clique em "Next" (Avançar). [/step] [step num="14"] Agora escolha "onde" a cópia de backup será salva. Faz sentido deixar o parâmetro recomendado pelo sistema. Se desejar, você pode selecionar e salvar em uma pasta de rede, mas é importante lembrar que o processo dependerá muito da velocidade da rede local. Clique em "Next" (Avançar). [/step] [step num="15"] Na janela atualizada do assistente, selecione o disco de destino. Clique no botão "Show all available disks ..." (Mostrar todos os discos disponíveis). Primeiro, é necessário criar um disco adicional para backups na seção "Settings" (Configurações) do seu servidor, na guia "Disks" (Discos). [/step] [step num="16"] Na janela secundária que se abre, outros discos (não pertencentes ao sistema) serão mostrados. Marque a caixa ao lado da mídia necessária. Importante! Recomendamos que você faça backups em discos físicos, não em discos lógicos. [/step] [step num="17"] Clique no botão "OK". [/step] [step num="18"] O disco selecionado é adicionado à lista geral de discos disponíveis. Marque-o com um tique e clique em "Next" (Avançar). [/step] [step num="19"] O sistema o notificará de que você deseja formatar os discos selecionados anteriormente. Nós respondemos clicando no botão "Yes". [/step] [step num="20"] Na etapa de confirmação das operações, se todas as ações estiverem corretas, clique no botão "Finish" (Concluir). [/step] [step num="21"] Após uma breve formatação do disco, o programa o notificará sobre a criação bem-sucedida do evento no agendador e também indicará a data do primeiro backup. Clique no botão "Close" (Fechar). [/step] [step num="22"] O resultado do backup pode ser visualizado na parte central da janela do wbadmin. [/step] ## Considere restaurar a partir de um backup Na mesma janela do wbadmin, em sua parte direita, clique em "Restore ..." (Restaurar...). Na janela do assistente de recuperação, selecione o local onde o arquivo com a cópia de backup está armazenado. Selecione "Este servidor" e clique no botão "Avançar". A próxima etapa é selecionar a data do backup e clicar em "Next" (Avançar). Na janela atualizada, você deve selecionar "What needs to be restored" (O que precisa ser restaurado), por exemplo, "Files and folders" (Arquivos e pastas). Clique em "Next" (Avançar). Selecione todos os arquivos e diretórios localizados no disco "C:". Pressione o botão "Next" (Avançar). Na próxima etapa, você precisa decidir o que fazer com os arquivos, se já existirem. A escolha dessa ação fica a cargo do administrador do sistema. Vamos sobrescrever esses arquivos. Clique em "Next" (Avançar). Na próxima etapa, verificamos os diretórios que serão restaurados. Se tudo estiver indicado corretamente, clique em "Restore" (Restaurar). Estamos aguardando a conclusão do processo de recuperação. Ao final, clique no botão "Close" (Fechar). Importante! O processo pode levar algum tempo. https://serverspace.com.br/support/help/dd-utility-for-windows-backup.md Mostraremos como usar o utilitário especial DD para criar cópias de backup dos dados em um servidor virtual no Windows. Download e uso do utilitário. Descreveremos como criar backups de dados em um servidor virtual no sistema operacional Windows Server usando o utilitário especial DD. ## Algumas palavras sobre o backup de arquivos Backups são um método de criação de uma cópia de segurança de informações importantes em um computador ou servidor. Ele pode ser executado manual ou automaticamente em uma programação regular. O utilitário DD pode ser usado em sistemas operacionais da família Linux; seus comandos ajudam a copiar arquivos por meio de determinados operandos. Esse é um dos utilitários mais antigos e seus backups podem ser abertos com uma variedade de softwares. A versão para o sistema operacional Windows é menos funcional do que a versão para Linux. Por exemplo, não oferece suporte à conversão de arquivos e ao uso de dispositivos de bloco. ## Como fazer o download do utilitário [step num="1"] Faça o download do utilitário DD ([download](http://www.chrysocome.net/downloads/dd-0.5.zip)), pois esse é um software de terceiros que está amplamente disponível para os usuários. [/step] [step num="2"] Haverá vários arquivos no arquivo baixado; o aplicativo dd.exe permitirá que você execute o utilitário. [/step] ## Como usar O uso do DD em sistemas Windows é muito semelhante ao uso em uma linha de comando do Linux. [step num="3"] Para abrir a página com a ajuda, você deve ir para o diretório com o objeto desejado e, depois de abrir o console do PowerShell, digitar: ``` ./dd.exe --list ``` [/step] [step num="4"] Se você precisar de uma cópia de backup do HDD, juntamente com todas as informações armazenadas nele, essa linha será útil: ``` ./dd.exe if= of= bs=1440k ``` [/step] [step num="5"] Demonstração de como criar uma imagem do disco F e transferi-la para o disco E: ``` ./dd.exe if=.f: of=e:tempdisk1.img bs=8M ``` [/step] [step num="6"] O resultado é: ``` rawwrite dd for windows version 0.5. ``` ``` Written by John Newbigin ``` ``` This program is covered by the GPL. See copying.txt for details ``` ``` 7279+1 records in ``` ``` 7279+1 records out ``` [/step] Descriptografe o registro: - A linha if =/dev/sda é responsável pela cópia de todo o disco rígido sda. - A expressão bs=8M o ajudará a definir uma quantidade específica de cache no disco rígido que acelerará o processo de cópia de dados. Caso contrário, as informações começarão a ser transferidas em tamanhos pequenos, aproximadamente 512 b cada. - O local onde o arquivo será copiado é indicado pelo comando de =/mnt/backup/sda.img. As duas primeiras expressões indicam o ponto de montagem do HDD para armazenar a imagem, ou seja, a pasta mnt com a subpasta de backup. Observação: antes de criar backups, você precisa ter certeza de que há espaço não alocado suficiente no disco desejado. [step num="7"] O comando ajudará a restaurar o HDD a partir do backup: ``` ./dd.exe if= of= bs=8M ``` [/step] Por exemplo: ``` ./dd.exe if=e:tempdisk1.img of=.f: bs=8M ``` [step num="8"] Isso será: ``` rawwrite dd for windows version 0.5. ``` ``` Written by John Newbigin ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_12__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_13__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_14__ [/step] É melhor fazer cópias de backup dos dados de acordo com a programação estabelecida, pois assim você não precisa se preocupar com o fato de o administrador ter esquecido ou não ter tido tempo de copiar os arquivos. O trabalho é totalmente automatizado. [step num="9"] Observação: aqui, os backups são criados uma vez a cada 24 horas, todos os dados são transferidos para um disco que está territorialmente distante do próprio servidor. O usuário não precisa configurar o backup por conta própria, e os backups são armazenados mesmo em caso de falhas no servidor. https://serverspace.com.br/support/help/how-to-add-a-server-to-an-existing-windows-domain.md Considere como adicionar um novo servidor a um domínio existente do Windows. Para fazer isso, abra o Painel de controle → Sistema e segurança → Sistema. Um dos eventos significativos do crescimento e desenvolvimento da rede local é o surgimento de um novo servidor. Considere como adicionar um novo servidor a um domínio existente do Windows. O Active Directory Domain Services é uma implementação de serviço de diretório da Microsoft que fornece serviços centralizados de autorização e autenticação. O Active Directory Domain Services no Windows Server é um serviço de diretório avançado projetado para armazenamento centralizado de dados e gerenciamento de segurança. As tarefas de "segurança" incluem o gerenciamento de computadores, usuários e seus grupos, fornecendo acesso seguro e centralizado aos recursos da rede. O AD DS é usado para a organização da LAN. ## Antes de iniciar a configuração [step num="1"] Para o funcionamento normal da rede e do AD, em particular, é necessário criar servidores e controladores de domínio. Para fazer isso, na etapa de pedido do VDS, no painel de controle, em sua conta, marque a caixa "Executar preparação do sistema Windows". [/step] [step num="2"] No final do processo de formação do servidor, é necessário combinar todas as máquinas em uma rede privada. Como resultado dessas ações, os servidores receberão adaptadores de rede adicionais e endereços IP locais. [/step] [step num="3"] Primeiro, o controlador de domínio deve ser configurado e o usuário deve ser criado. [/step] Configure o adaptador de rede. [step num="4"] Nós nos conectamos ao servidor via RDP. [/step] [step num="5"] Abra as configurações de rede. Selecione "IP versão 4". [/step] [step num="6"] Indicamos, como servidor DNS primário, o endereço do servidor com o controlador de domínio. Pressione o botão "OK". [/step] ## Adicionar o servidor ao domínio [step num="7"] Para adicionar um servidor ao domínio, abra as propriedades do sistema. Para fazer isso, abra Painel de controle → Sistema e segurança → Sistema (ou clique com o botão direito do mouse no ícone "Este computador" e selecione "Propriedades" no menu de contexto). [/step] [step num="8"] Na janela que se abre, clique no link "Change parameters" (Alterar parâmetros). [/step] [step num="9"] Na janela que aparece, especifique a descrição do servidor e clique no botão "Change" (Alterar) para alterar o grupo de trabalho para o domínio. [/step] [step num="10"] Clicamos na opção de que este computador é um membro do domínio e especificamos o nome do domínio. Além disso, digite um nome de computador amigável. Para salvar as configurações, clique no botão "OK". [/step] [step num="11"] O sistema solicitará a inserção de dados do usuário para que você possa se conectar ao domínio. [/step] [step num="12"] Caso os dados do usuário estejam corretos, será exibida uma notificação do sistema. [/step] [step num="13"] E também aparece uma notificação sobre a necessidade de reiniciar o servidor. [/step] [step num="14"] O sistema o lembrará da necessidade de reinicializar novamente. [/etapa] [step num="15"] E se oferecerá para tomar uma decisão. Se não houver tarefas urgentes, reinicializaremos o servidor. [/step] ## Conexão com o servidor [step num="16"] Tentamos nos conectar usando o protocolo RDP com as credenciais do usuário criado, por meio do ícone "@" ("cachorro"), indicamos o domínio. [/step] [step num="17"] Se a conexão for bem-sucedida, então o servidor no domínio foi adicionado corretamente. [/step] [step num="18"] Embora o Windows recomende que você mantenha o Firewall ativado em todas as redes, recomendamos que você o desative em redes privadas e de domínio para evitar comportamentos imprevisíveis. Para uma rede pública, no entanto, recomendamos que você o deixe ativado. https://serverspace.com.br/support/help/how-to-change-hostname-on-ubuntu-18-04.md A primeira coisa que precisamos fazer é obter o nome do host atual. Para exibir o nome do host atual, basta digitar o seguinte comando... A primeira coisa que precisamos fazer é obter o nome do host atual. Para exibir o nome do host atual, basta digitar o seguinte comando: ``` hostnamectl ``` Como você pode ver na imagem acima, o nome do host atual desse servidor é - wyldebuntu. As etapas a seguir, descritas abaixo, mostram como alterar o nome do host no Ubuntu 18.04. - Alterar o nome do host usando o comando hostnamectl. Por exemplo, para alterar o nome de host estático do sistema para serverspace, você usaria o seguinte comando: ``` sudo hostnamectl set-hostname serverspace ``` O comando hostnamectl não produz saída. Em caso de sucesso, é retornado 0, caso contrário - um código de falha diferente de zero. - Edite o arquivo /etc/hosts. Abra o arquivo /etc/hosts com o editor de texto de sua preferência e altere o nome de host antigo para o novo. ``` sudo nano /etc/hosts ``` 127.0.0.1 espaço do servidor Pressione ctrl+O e Enter para salvar o arquivo modificado e, em seguida, pressione ctrl+X para sair do nano. - Edite o arquivo cloud.cfg. Se o pacote cloud-init estiver instalado, você também precisará editar o arquivo cloud.cfg. Esse pacote geralmente é instalado por padrão nas imagens fornecidas pelos provedores de nuvem, como a AWS, e é usado para lidar com a inicialização das instâncias de nuvem. Para verificar se o pacote está instalado, basta executar o seguinte comando: ``` ls -l /etc/cloud/cloud.cfg ``` Se você vir o seguinte resultado, isso significa que o pacote não está instalado e que nenhuma ação adicional é necessária. ls: não é possível acessar '/etc/cloud/cloud.cfg': No such file or directory Se o pacote estiver instalado, a saída será parecida com a seguinte: -rw-r--r-- 1 root root 3169 May 21 17:35 /etc/cloud/cloud.cfg Nesse caso, você precisará abrir o arquivo /etc/cloud/cloud.cfg: ``` sudo nano /etc/cloud/cloud.cfg ``` Procure por **preserve_hostname** e altere o valor de false para **true**. Pressione ctrl+O e Enter para salvar o arquivo modificado e, em seguida, pressione ctrl+X para sair do nano. ## Verificar a alteração Para verificar se o nome do host foi alterado com êxito, use mais uma vez o comando hostnamectl: ``` hostnamectl ``` Você deverá ver o novo nome do servidor impresso na saída. . https://serverspace.com.br/support/help/how-to-install-docker-on-ubuntu-18-04-lts.md Lançado em 2013, o Docker se tornou uma das ferramentas mais essenciais entre os desenvolvedores e engenheiros de DevOps. O Docker é uma tecnologia de contêiner de código aberto. Lançado em 2013, o Docker se tornou uma das ferramentas mais essenciais entre os desenvolvedores e engenheiros de DevOps. O Docker é uma tecnologia de contêiner de código aberto que simplifica a criação e a implantação de aplicativos. Ele permite o empacotamento de aplicativos em ambientes isolados chamados contêineres. Dentro desses contêineres, os aplicativos são enviados juntamente com as bibliotecas, dependências e arquivos de configuração necessários. **No Serverspace, você pode [criar um servidor](https://serverspace.com.br/services/cloud-servers.md) com o aplicativo "Docker" já instalado.** A implementação de aplicativos em contêineres garante que eles possam ser implementados em diferentes ambientes de computação com o máximo de consistência. A consistência na implantação de aplicativos elimina a preocupação com as plataformas em que o aplicativo será executado e dá aos desenvolvedores mais tempo para se concentrarem na criação de códigos. Neste guia, vamos nos aprofundar e conduzi-lo por um procedimento passo a passo de como instalar o Docker no Ubuntu 18.04 LTS. ## Pré-requisitos Antes de começarmos, verifique se você tem os seguintes requisitos: - Uma instância do Ubuntu 18.04 LTS. - Um usuário comum com privilégios sudo ou administrativos. - Uma conexão estável com a Internet. Sem mais delongas, vamos começar ## Instalando o Docker no Ubuntu 18.04 O Docker pode ser instalado no Ubuntu de duas maneiras. Você pode instalar o Docker a partir dos repositórios do Ubuntu ou instalá-lo a partir do repositório oficial do Docker. A última opção - instalar a partir do repositório oficial do Docker - é a mais preferida, pois garante que você obtenha a versão mais recente do Docker. [step num="1"] Para começar a instalar o Docker a partir do repositório do Docker, primeiro atualize a lista de pacotes do Ubuntu, conforme mostrado: ``` $ sudo apt update ``` [/step] Screenshot №1. Atualizando a lista de pacotes do Ubuntu [step num="2"] Depois de atualizar sua lista de pacotes instalados, instale os pré-requisitos necessários para a instalação do Docker: ``` $ sudo apt install apt-transport-https ca-certificates curl software-properties-common ``` [/step] No exemplo abaixo, esses pré-requisitos já foram instalados, portanto, o sistema ignorará a instalação. Se uma versão mais recente estiver disponível, os pacotes existentes serão atualizados. Screenshot №2. Se uma versão mais recente estiver disponível, os pacotes existentes serão atualizados [step num="3"] Em seguida, prossiga e importe a chave GPG do Docker, conforme mostrado, usando a ferramenta de linha de comando curl: ``` $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ``` [/step] Você receberá uma resposta "OK" no terminal, conforme mostrado: Screenshot №3. Você receberá uma resposta 'OK' no terminal, conforme mostrado [step num="4"] Com a chave GPG instalada, anexe o repositório do Docker ao arquivo **sources.list**, conforme mostrado: ``` $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" ``` [/step] Screenshot №4. Com a chave GPG instalada, anexe o repositório do Docker ao arquivo sources.list [step num="5"] Para que o Ubuntu sincronize com o repositório recém-adicionado, atualize a lista de pacotes: ``` $ sudo apt update ``` [/step] Screenshot №5. Atualizar a lista de pacotes [step num="6"] Neste ponto, você está pronto para instalar o Docker usando o gerenciador de pacotes APT. No entanto, antes de fazer isso, talvez você queira dar uma olhada nas várias versões dos pacotes do Docker disponíveis para download. Para imprimir uma lista de pacotes do Docker, execute o comando: ``` $ apt list -a docker-ce ``` [/step] A lista de pacotes do Docker é ordenada do mais recente para o mais antigo, conforme exibido na saída abaixo. Screenshot №6. A lista de pacotes do Docker é ordenada do mais recente para o mais antigo [step num="7"] Para instalar uma versão específica do Docker, por exemplo, a versão **19.03.7**, execute o comando: ``` $ sudo apt install docker-ce=5.19.03.7~3-0~ubuntu-bionic ``` [/step] [step num="8"] No entanto, se você quiser instalar a versão mais recente, basta executar o comando: ``` $ sudo apt install docker-ce ``` [/step] Screenshot №7. Instalar a versão mais recente [step num="9"] Quando solicitado a continuar, basta pressionar '**Y**' e clicar em **ENTER. **Uma vez instalado, verifique o status do Docker executando: ``` $ sudo systemctl status docker ``` [/step] Screenshot №8. Verificar o status do Docker [step num="10"] A saída confirma que o Docker está em funcionamento. Para verificar a versão do Docker instalada, execute o comando: ``` $ docker --version ``` [/step] Screenshot №9. Para verificar a versão do Docker instalada, execute o comando [step num="11"] Como esperado, a versão mais recente - no momento em que este guia foi escrito - foi instalada. Para confirmar que o Docker foi instalado corretamente, execute o contêiner hello-world: ``` $ sudo docker container run hello-world ``` [/step] O comando inicializa alguns processos. Primeiro, ele extrai uma imagem de teste do Docker hub, que é um repositório de imagens do Docker. (Falaremos sobre imagens na próxima seção). Depois que a imagem é baixada com sucesso, um contêiner é gerado a partir da imagem que executa o aplicativo, que exibe a mensagem '**Hello from Docker !**'. Screenshot №10. O comando inicializa alguns processos ## Imagens do Docker Uma imagem do docker é um arquivo binário somente leitura que é enviado com um aplicativo juntamente com seus binários, bibliotecas, dependências e as instruções necessárias para executar o aplicativo com êxito. As imagens do Docker são hospedadas no [Docker hub](https://hub.docker.com/), que é uma biblioteca ou repositório baseado em nuvem. O Docker hub lhe dá acesso a milhares de imagens de projetos de código aberto e de outros fornecedores de software. ## Pesquisando uma imagem do Docker [step num="12"] Para pesquisar uma imagem do Docker, use a sintaxe: ``` $ sudo docker search image ``` [/step] [step num="13"] Por exemplo, para pesquisar a imagem do Nginx, execute o comando: ``` $ sudo docker search nginx ``` [/step] Conforme mostrado na tabela abaixo, a saída inclui informações sobre a imagem, como o nome da imagem, uma breve descrição da imagem e sua popularidade indicada como "Estrelas" na terceira coluna. Screenshot №11. Pesquisando uma imagem do Docker ## Baixando uma imagem do Docker [step num="14"] Para baixar uma imagem do Docker do hub do Docker para seu sistema local, use o comando mostrado: ``` $ sudo docker pull image ``` [/step] [step num="15"] Por exemplo, para fazer download da imagem do Nginx, execute: ``` $ sudo docker pull nginx ``` [/step] Screenshot №12. Download de uma imagem do Docker [step num="16"] Normalmente, as imagens do Docker são marcadas e têm números de versão. Para ser mais específico ao fazer o download de uma imagem, você pode especificar a tag da seguinte forma: ``` $ sudo docker pull image:tag ``` [/step] [step num="17"] Vamos supor que você queira fazer o download de uma imagem do Ubuntu 20.04. O comando para fazer o download da imagem será: ``` $ sudo docker pull ubuntu:20.04 ``` [/step] Screenshot №13. Baixe uma imagem do Ubuntu 20.04 [step num="18"] Para listar as imagens baixadas em seu sistema, execute o comando: ``` $ sudo docker images ``` [/step] A saída é organizada em um formato de tabela com 5 colunas que exibem informações como o repositório das imagens, a tag da imagem, o ID da imagem, há quanto tempo a imagem foi criada e o tamanho da imagem. Screenshot №14. A saída é organizada em um formato tabular com 5 colunas [step num="19"] Para remover uma imagem do Docker, execute o comando: ``` $ sudo docker image rm ubuntu:20.04 ``` [/step] Screenshot №15. Para remover uma imagem do Docker, execute o comando ## Contêineres do Docker Um contêiner do Docker é uma instância de tempo de execução de uma imagem do Docker. É em um contêiner do Docker que um aplicativo é empacotado junto com suas bibliotecas e dependências. [step num="20"] Para iniciar um contêiner do Docker com base na imagem do Ubuntu que baixamos anteriormente, execute o comando: ``` $ sudo docker container run ubuntu:20.04 ``` [/step] Screenshot №16. Iniciar um contêiner docker com base na imagem do Ubuntu À primeira vista, pode parecer que nada realmente aconteceu, mas isso está longe de ser verdade. O contêiner do Ubuntu iniciou e parou imediatamente, pois não emitimos nenhum comando para ele. [step num="21"] Para executar um contêiner de sistema operacional com mais eficiência, use os argumentos -it para acessar o shell bash e interagir com ele: ``` $ sudo docker container run -it ubuntu:20.04 ``` [/step] Depois de executar o comando, você deverá obter um prompt do shell bash que permite executar comandos como se estivesse executando-os em uma instância real do Ubuntu 20.04. Screenshot №17. Contêineres do Docker ## Listando contêineres do Docker [step num="22"] Para exibir uma lista de contêineres do Docker em execução, use o comando: ``` $ sudo docker container ls ``` ``` $ sudo docker ps ``` [/step] Screenshot №18. Listagem de contêineres do Docker A saída fornece estatísticas como o ID do contêiner, o nome da imagem, quando o contêiner foi criado pela última vez e o status, para mencionar alguns. Na saída, podemos ver que só temos o contêiner Nginx em execução. [step num="23"] Para visualizar todos os contêineres, tanto ativos quanto inativos, execute: ``` $ sudo docker container ls -a ``` ou ``` $ sudo docker ps -a ``` [/step] A saída imprime mais 4 contêineres que estão inativos. Screenshot №19. A saída imprime mais 4 contêineres ## Iniciando e parando contêineres do Docker Para iniciar um contêiner do Docker, use o comando **docker start** usando o nome ou o ID do contêiner. [step num="24"] Por exemplo, para iniciar o contêiner do Ubuntu, execute: ``` $ sudo docker start c28e836e7fbf ``` [/step] Screenshot №20. Iniciando e parando contêineres da Docker [step num="25"] Para interromper um contêiner do Docker, sinta-se novamente à vontade para usar o nome ou o ID do contêiner usando o comando **docker stop**: ``` $ sudo docker stop c28e836e7fbf ``` [/step] Screenshot №21. Parar um contêiner do Docker ## Removendo um contêiner do Docker [step num="26"] Para remover um contêiner do Docker, use o comando **docker rm**. Mais uma vez, fique à vontade para usar o nome ou o ID do contêiner: ``` $ sudo docker rm c28e836e7fbf ``` [/step] Screenshot №22. Remoção de um contêiner do Docker ## Conclusão Neste guia, você aprendeu a instalar o Docker no Ubuntu 18.04. Além disso, fornecemos dicas úteis sobre como gerenciar imagens e contêineres do Docker em seu sistema. Esperamos que este tutorial tenha sido informativo. https://serverspace.com.br/support/help/installing-and-configuring-a-vnc-server-on-centos-7.md Nas instruções, consideraremos a instalação e a configuração de um servidor VNC no CentOS 7.x. para permitir conexões de clientes VNC: TightVNC, RealVNC, etc. Neste guia, veremos como instalar e configurar um servidor VNC no sistema operacional CentOS 7.x para permitir conexões remotas de qualquer cliente VNC, como TightVNC, RealVNC e outros. Em particular, faremos isso usando o software TigerVNC Server, uma ferramenta gratuita que permite o uso de uma área de trabalho virtual autônoma. ## Introdução VNC (Virtual Network Computing) é um protocolo cliente-servidor que permite que um computador cliente (executando um cliente VNC) se conecte e controle um computador remoto (executado em um servidor VNC). O software foi desenvolvido pelo laboratório de pesquisa Olivetti & Oracle em Cambridge, Reino Unido, e seu código-fonte ainda está atualizado e disponível sob a Licença Pública Geral (GNU). Dependendo do software do servidor, o cliente VNC se conectará à área de trabalho ativa (por exemplo, como programas TeamViewer ou AnyDesk) ou a uma área de trabalho virtual autônoma (como o protocolo de área de trabalho remota RDP do Windows). O último, talvez mais avançado e seguro, especialmente se você precisar gerenciar o computador servidor, pois cada sessão será um ambiente exclusivo, configurado com as permissões e os direitos do usuário conectado. É por isso que escolhemos o TigerVNC, que executa sessões paralelas do ambiente de área de trabalho do computador (GNOME, KDE ou outra GUI): isso significa que uma área de trabalho virtual será criada para cada conexão - isso é exatamente o que queremos. ## Instalação do TigerVNC [step num="1"] Agora vamos ver como podemos instalar e configurar o TigerVNC no CentOS. A primeira coisa a fazer é instalar o programa TigerVNC Server abrindo uma sessão de terminal e digitando o seguinte comando com privilégios de root: ``` $ sudo yum install tigervnc-server ``` [/step] [step num="2"] Imediatamente depois disso, você precisa criar um usuário VNC separado a partir do qual a conexão será feita (com uma senha dedicada). Para fazer isso, digite o seguinte: ``` $ sudo adduser vncuser $ sudo passwd vncuser ``` **Importante:** nunca faça isso como um usuário root - isso representará uma séria ameaça à segurança do seu sistema. A melhor solução seria deixar o usuário root sem acesso ao VNC e configurar uma conta dedicada com direitos limitados. [/step] [step num="3"] Depois de criar o vncuser e definir uma senha para fazer login, você também precisa definir uma senha exclusiva do VNC para esse usuário. O comando para fazer isso é: ``` $ su - vncuser $ vncpasswd ``` (a primeira linha pode ser omitida se já estivermos conectados como vncuser com antecedência). [/step] [step num="4"] A próxima coisa a fazer é criar um arquivo de configuração VNC para o vncuser. A maneira mais rápida de fazer isso é copiar o arquivo de modelo VNC compartilhado localizado na pasta **/lib/systemd/system/ ** e, em seguida, alterá-lo: ``` $ cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service ``` O número 1 que adicionamos ao novo nome do arquivo é o número de exibição que será usado para essa instância específica do serviço. É importante saber isso porque ele também determinará a porta TCP que será usada pelo nosso servidor VNC, igual a 5900 + número de exibição. A primeira será 5901, depois 5902 e assim por diante. [/step] [step num="5"] Imediatamente após a cópia, você precisa editar o novo arquivo usando o Vi, o Nano ou outro editor de texto e substituir [USER] pelo nome do usuário criado recentemente (no nosso caso, vncuser). É assim que o arquivo deve ficar após a atualização (exceto pela longa parte comentada no início): ``` Description=Remote desktop service (VNC) After=syslog.target network.target [Service]Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l vncuser -c "/usr/bin/vncserver %i -geometry 1280x720" PIDFile=/home/vncuser/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' WantedBy=multi-user.target ``` [/step] [step num="6"] Depois de fazer isso, você pode recarregar o daemon VNC e executar o vncserver @ 1 com os seguintes comandos: ``` $ systemctl daemon-reload $ systemctl start vncserver@:1 ``` [/step] [step num="7"] Antes de prosseguir, verifique se o serviço está em execução digitando o comando **systemctl status**: ``` $ systemctl status vncserver@:1 ``` [/step] [step num="8"] e crie um link simbólico para que ele seja sempre executado na inicialização do sistema usando o seguinte comando: ``` $ systemctl enable vncserver@:1 ``` [/step] [step num="9"] Outro teste que você pode realizar antes de tentar se conectar ao servidor é examinar os soquetes de rede ativos usando o comando**ss**: se tudo funcionar corretamente, você verá que o servidor VNC está funcionando e usa a porta TCP 5901. Execute o comando: ``` $ ss -tulpn| grep vnc ``` O resultado deve ser o seguinte: ``` tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=38344,fd=9)) tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=38344,fd=6)) tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=38344,fd=10)) tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=38344,fd=5)) ``` [/step] Se você vir isso, então tudo está configurado corretamente. ## Configuração do firewall Como nosso serviço VNC está escutando na porta TCP 5901, você deve ter certeza de que essa porta está aberta e acessível a clientes externos. Portanto, se você tiver um firewall instalado, deverá criar uma regra apropriada que permita a conexão de clientes VNC. O número de portas a serem abertas dependerá de quantas instâncias do servidor VNC você precisa. Em nosso cenário, fizemos apenas 1, portanto, você só precisa abrir a primeira porta VNC dedicada: TCP 5901, como já dissemos. O comando para abrir essa porta no Firewalld: ``` # firewall-cmd --add-port = 5901 / tcp # firewall-cmd --add-port = 5901 / tcp --permanent ``` Não será supérfluo mencionar que você também pode restringir essa porta a determinados grupos, endereços IP, placas de rede ou outras regras de firewall simples ou complexas. ## **Instalando a interface gráfica do usuário (GUI)** Se você já tiver o GNOME, o KDE ou outros ambientes de desktop instalados, poderá pular esta etapa. Caso contrário, você precisará instalar um deles: o servidor TigerVNC iniciará uma instância paralela desse ambiente de área de trabalho para cada sessão de login, o que significa que precisamos ter pelo menos uma GUI. ### GNOME Se você quiser uma interface GNOME excelente, mas pesada, digite o seguinte: ``` $ sudo yum groupinstall "GNOME Desktop" ``` ### Xfce Se você precisar de uma alternativa leve, podemos oferecer o Xfce, um ambiente gratuito e de código aberto para plataformas do tipo Unix que funciona muito bem com o TigerVNC. O GNOME também funciona muito bem, mas consome muitos recursos: se quiser economizar recursos em sua máquina de servidor, o Xfce pode ser a melhor opção. Para instalá-lo, digite o seguinte: ``` $ yum install epel-release $ yum groupinstall xfce ``` ### Configurações adicionais para o Xfce Se decidir usar o **Xfce**, você também precisará modificar o arquivo que foi executado quando a sessão VNC foi iniciada. Para fazer isso, edite o arquivo **/home//.vnc/xstartup **e altere a entrada exec (geralmente a linha 4) de **etc/X11/xinit/xinitrc **para **startxfce4**, conforme mostrado abaixo: ```bash #!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 vncserver -kill $DISPLAY ``` ## **Conexão com o cliente VNC** Agora que tudo está configurado, podemos tentar nos conectar ao nosso serviço VNC usando um cliente VNC, como o TightVNC, o UltraVNC ou o RealVNC, e ver o que acontece. Lembre-se de especificar a porta TCP 5901 (se você seguiu nosso guia). ## **Possíveis problemas** Se o seu cliente não conseguir estabelecer uma conexão VNC funcional, você precisará verificar o seguinte: **1. Problemas de conexão - Configuração do firewall**: se você vir erros de pop-up informando que o cliente não pode se conectar ao host remoto, será necessário verificar a configuração da rede e do firewall para garantir que não haja problemas de bloqueio que possam impedir que o cliente se conecte à porta 5901 do servidor TCP. **2. Tela preta com o mouse - atualizando o YUM ou reinstalando a GUI**: se você vir uma tela preta com um cursor do mouse funcionando, isso provavelmente significa que a conexão VNC está funcionando bem, mas há algo que impede que a GUI inicie corretamente na área de trabalho. Para correção: - Execute o yum update para instalar as versões mais recentes do TigerVNC e da própria GUI. Certifique-se de manter o registro de quaisquer problemas que ocorram durante a fase de instalação. - Desinstale e reinstale a GUI usando o comando **yum remove / yum group remove **e **yum groupinstall **novamente. Se ainda assim nada funcionar, você pode tentar instalar uma GUI diferente. https://serverspace.com.br/support/help/firewall-configuring-the-server-firewall.md Instruções detalhadas para configurar e criar regras de firewall no painel de controle para servidores virtuais. Definição da configuração do firewall. Instruções para configurar regras de firewall para servidores virtuais no painel de controle do Serverspace. ## O que é isso? Usando um firewall diretamente do painel de controle, é possível controlar o acesso ao servidor e aos pacotes de dados da rede. Essa opção não é cobrada separadamente e está incluída no preço do servidor. Atualmente, há um limite de 50 regras; se esse limite não for suficiente para você, é possível aumentá-lo mediante solicitação de suporte técnico. ## A arquitetura de rede [step num="1"] Para evitar um conflito de regras de firewall e sua configuração adequada, você precisa entender os procedimentos operacionais dos firewalls existentes. Primeiro, você pode configurar um firewall para uma rede privada. Em segundo lugar, para o servidor por meio do painel de controle. Em terceiro lugar, você pode configurar o firewall interno, por exemplo, para o Linux via iptables, para o Windows - integrado. [/step] [step num="2"] Para pacotes de entrada, o firewall em nível de rede (se houver) será o primeiro a ser aplicado. Se o pacote for aprovado, será aplicado um firewall no nível do servidor, e o mecanismo de software interno será usado por último. Para pacotes de saída, será aplicada a sequência inversa. [/step] _Não recomendamos o uso simultâneo de um firewall em nível de servidor e de um software interno:_ ## Criando uma regra [step num="3"] A configuração do firewall está disponível para todos os VPS e está localizada nas configurações do servidor, na seção Firewall. [/step] _Importante: - A ordem das regras é importante; quanto menor o número de ordem da regra (quanto mais alta ela estiver na lista), maior será sua prioridade. É possível alterar a sequência de regras usando o recurso Arrastar e soltar, arrastando a regra com o botão esquerdo do mouse para a posição desejada; - por padrão - todos os pacotes de dados, tanto de entrada quanto de saída, são permitidos._ [step num="4"] Para criar uma regra, clique no botão **Adicionar**: [/step] [step num="5"] Uma janela para adicionar uma regra será aberta diante de você. Esses campos devem ser preenchidos: - **Nome** - um nome amigável (não mais do que 50 caracteres), pois uma regra descreve brevemente a finalidade da regra; - **Direção** - A direção dos pacotes aos quais você deseja aplicar a regra assume um de dois valores: Incoming (Entrada) ou Outgoing (Saída). Incoming (Entrada) - a regra se aplica aos pacotes de dados de entrada, Outgoing (Saída) - aos pacotes de saída; - **Fonte/Destino** - dependendo da direção, contém o endereço IP do servidor ou um dos valores: Endereço IP, CIDR, intervalo de endereços IP e qualquer; - **SourcePort/DestinationPort **- ao escolher o protocolo TCP, UDP ou TCP e UDP, é possível especificar a porta, o intervalo de portas ou qualquer outro; - **Action **- a ação a ser aplicada assume um de dois valores: Allow (Permitir) ou Deny (Negar). Allow - permissão para encaminhar pacotes de dados; Deny - proibição de encaminhamento; - **Protocolo **- tipo de protocolo, ANY, TCP, UDP, TCP e UDP e ICMP estão disponíveis. Para criar uma regra, clique em **Salvar**. [/step] [step num="6"] Em nosso exemplo, a regra bloqueia todos os pacotes que entram no servidor. [/step] [step num="7"] Para que a regra criada tenha efeito, você precisa salvar as alterações usando o botão **Save**. Você pode criar várias regras e salvar tudo de uma vez. [/step] ### A prioridade das regras [step num="8"] Quanto menor for o número de sequência da regra (quanto mais alto ela estiver na lista), maior será sua prioridade. Por exemplo, depois que uma regra de proibição tiver sido criada para todo o tráfego de entrada, crie uma regra que permita que você receba pacotes na porta 80 do protocolo Tcp. Depois de salvar as alterações com essa configuração, essa porta também ficará indisponível, pois a regra de proibição tem uma prioridade mais alta. [/step] [step num="9"] Para alterar a prioridade das regras, use o botão esquerdo do mouse para arrastar a regra permitida para o primeiro lugar e salve as alterações. [/step] [step num="10"] Após salvar, os números de sequência das regras serão alterados e sua prioridade também será alterada. [/step] [step num="11"] Agora a configuração do firewall permite o recebimento de pacotes por meio do protocolo Tcp na porta 80, mas os demais pacotes não passarão. https://serverspace.com.br/support/help/how-to-configure-a-dhcp-server-in-windows-server-2016.md O servidor DHCP controla a emissão de endereços IP, evita a duplicação e libera endereços não utilizados. A seguir, veremos como instalar e configurar um servidor DHCP no Windows Server 2016 para uma única sub-rede. O DHCP é um protocolo de configuração dinâmica de host que permite automatizar a configuração dos parâmetros de rede do cliente, como endereço IP, gateway, DNS e máscara de sub-rede. O servidor DHCP controla a emissão de endereços IP, evita a duplicação e libera endereços não utilizados. A seguir, veremos como instalar e configurar um servidor DHCP no Windows Server 2016 para uma única sub-rede. ## Processo de instalação - Inicie o Server Manager e selecione "Adicionar funções e recursos". Escolha o primeiro item "Instalação baseada em função ou em recurso": - Especifique o servidor no qual instalaremos a função DHCP: - Em seguida, você precisa localizar e selecionar a função DHCP na lista. Concordamos em adicionar os componentes necessários para que o serviço DHCP funcione corretamente. Como os componentes foram adicionados na etapa "Funções de servidor", pulamos a etapa "Recursos": - O assistente o lembra de planejar suas sub-redes, áreas e exceções: - Verificamos os componentes instalados e clicamos em "Install": - Após a conclusão da instalação, você pode começar a configuração inicial do DHCP. Siga o link "Configuração completa do DHCP": O processo de configuração inicial ocorre em dois estágios: 1. Crie um "Grupo de segurança" para gerenciar esse servidor DHCP. Há dois deles: - Administradores de DHCP - os membros do grupo têm direitos totais para gerenciar o servidor DHCP; - DHCP Users (Usuários de DHCP) - os membros do grupo podem visualizar as configurações do servidor e uma lista de dispositivos conectados. 2. Autorização de um servidor DHCP no Active Directory (se ele estiver associado a um domínio). Essa configuração é necessária para evitar o aparecimento de servidores DHCP estranhos na rede. O servidor deve ser autorizado para que o serviço DHCP seja iniciado: - Digite as credenciais de administrador e clique no botão "Commit" (Confirmar). Se o servidor não estiver associado ao domínio, selecione o último item: - Se tudo for feito corretamente, o assistente notificará que a configuração foi bem-sucedida: ## Processo de configuração [step num="1"] Inicie o "Server Manager". Encontramos o item DHCP na lista suspensa "Tools" (Ferramentas): [/step] [step num="2"] Em nossa versão, estamos considerando a emissão de endereços IPv4, portanto, precisamos criar uma nova área (Scope) - um pool de endereços IP emitidos para os clientes. Clique com o botão direito do mouse em IPv4 e selecione "New Scope ...": [/step] [step num="3"] O assistente de criação de área é aberto, onde inserimos o nome do pool. Se necessário, você pode inserir uma descrição: [/step] [step num="4"] Determinamos os limites do nosso pool definindo os endereços IP inicial e final. Além disso, digite a máscara de sub-rede: [/step] [step num="5"] Se necessário, você pode adicionar um ou mais endereços IP do pool criado às exceções. Esse intervalo pode incluir dispositivos de rede que já tenham um IP estático atribuído. Há também um parâmetro para atrasar a resposta do servidor antes de enviar dados à solicitação do host: [/step] [step num="6"] Em seguida, você pode especificar o tempo de concessão do endereço IP. O padrão é 8 dias: [/step] [step num="7"] Agora o assistente oferecerá a especificação dos parâmetros de rede (Gateway, DNS, WINS) emitidos para os clientes na rede: [/etapa] [step num="8"] Especifique o endereço do gateway de rede: [/step] [step num="9"] Em seguida, digite o nome do domínio e o servidor DNS. O DNS pode ser encontrado pelo nome do servidor ou pela especificação de um endereço IP: [/step] [step num="10"] A próxima etapa permite adicionar um servidor WINS: [/step] [step num="11"] Selecione "Activate" (Ativar) a área que especificamos agora: [/step] [step num="12"] Depois de configurar o pool, você pode verificar se o servidor está funcionando. É possível ver os clientes conectados acessando a seção Address Leases. No nosso caso, vemos que um dispositivo está conectado: [/step] [step num="13"] Se formos ao computador do cliente, poderemos verificar a exatidão das configurações recebidas: [/step] [step num="14"] Embora tenhamos considerado a configuração no Windows Server 2016, essa instrução também é adequada para o Windows Server 2008-2012, pois o processo não é muito diferente. https://serverspace.com.br/support/help/how-to-forward-the-printer-through-rdp.md Instruções para configurar a impressora para iniciar a impressão usando a Área de Trabalho Remota (RDP). Você mesmo pode fazer a configuração, mas para isso deve. ## Introdução Há vários motivos pelos quais o uso de recursos locais do RDP é benéfico para um usuário e/ou administrador. Para começar, a utilização de impressoras disponíveis localmente pode proporcionar uma experiência de usuário aprimorada, reduzindo o tempo necessário para imprimir documentos remotamente. Isso ocorre porque os arquivos não precisam ser transferidos pela rede antes de serem impressos, o que, de outra forma, aumentaria a latência do processamento. Em segundo lugar, a cópia e a colagem de texto e outros tipos de arquivos entre os sistemas remoto e local facilitam um fluxo de trabalho mais contínuo, economizando um tempo valioso ao trabalhar em várias máquinas ou aplicativos. No entanto, embora os recursos locais ofereçam muitos benefícios tanto para os administradores quanto para os usuários finais, alguns riscos de segurança podem surgir se não forem gerenciados adequadamente. Por isso, vale a pena garantir que as restrições de rede apropriadas sejam implementadas quando necessário para reduzir ao máximo essas ameaças. ## Como nos conectamos? Você precisa iniciar a área de trabalho remota do aplicativo na máquina do cliente, pesquisando na barra de pesquisa. E clique nele com o botão direito do mouse: Screenshot №1 - Search bar No lado do servidor, você precisa permitir a conexão remota, clique em **Ctrl + E**, pesquise no menu à esquerda **Este PC** ou nome semelhante e abra **Properties**. Procure o ponto **Remote Desktop** e permita a conexão de outro PC. Muito bem, a preparação no lado do servidor foi concluída! Agora volte ao computador cliente e dê uma olhada na janela aberta recentemente: Screenshot №2 - Local resources Vá para a guia Local Resources (Recursos locais) e adicione **Printers **abaixo, volte para General (Geral) e insira o nome do host e o nome de usuário, como pode ser visto na imagem abaixo: Screenshot №3 - Connection Você pode clicar no ponto Allow me e etc., opcionalmente. Em seguida, precisamos nos conectar clicando no botão abaixo e aguardando até que o processo termine. Após o login, procure na barra **Manage Server** e, no canto direito, clique em Manage e, em seguida, siga o ponto **Add Roles**: Screenshot №4 - Manage Server Pule a etapa inicial e pesquise nas funções Print and Document Services, clique em Add Features: Screenshot №5 - Add Role Aguarde até o final do processo de verificação de conformidade e indique o ponto com a função Reiniciar, clique em Instalar: Screenshot №6 - Finish installation No menu principal, podemos ver os serviços de impressão atualizados. Agora precisamos nos certificar de que nossa impressora seja permitida no sistema: Screenshot №7 - Up service Procure dispositivos na barra de pesquisa digitando Device Manager e, depois de abrir a janela, procure a impressora necessária! Screenshot №8 - Result Como podemos ver na imagem, os dispositivos redirecionados da nossa primeira máquina foram conectados! ## Conclusão O uso estratégico de recursos locais no RDP aumenta a eficiência e a satisfação do usuário. O equilíbrio dessas vantagens com uma abordagem proativa das medidas de segurança garante um ambiente de área de trabalho remota robusto e seguro para usuários finais e administradores. https://serverspace.com.br/about/blog.md Artigos úteis sobre servidores virtuais, IaaS, armazenamento em nuvem, data centers e muito mais. Explore o blog do Serverspace. https://serverspace.com.br/support/help/configuring-the-remote-desktop-gateway-on-windows.md Falaremos detalhadamente sobre a configuração do serviço Remote Desktop Gateway (RDG) em um domínio em plataformas que executam o Windows Server. Configuração de função, acesso a recursos, instalação do certificado SSL, conexão. Explicaremos em detalhes como configurar o serviço Remote Desktop Gateway (RDG) em um domínio em plataformas que executam o Windows Server. ## O que é o RDG A Microsoft oferece o uso de acesso remoto a áreas de trabalho usando o protocolo RDP (Remote Desktop Protocol). Para criar uma conexão segura, é usado o serviço RDG (Remote Desktop Gateway). Sua característica é que ele usa uma conexão HTTPS. Isso cria um canal de comunicação confiável que garante ao usuário o nível adequado de proteção. Dessa forma, não há necessidade de usar serviços de terceiros para criar um túnel VPN. Usando as funções de restrição de acesso aos recursos da rede, os administradores criam conexões dependendo da função do usuário na empresa. O RDG permite a conexão não apenas a uma sub-rede, mas também a outras que estejam localizadas atrás de um NAT ou firewall. O gateway tem uma interface simples e conveniente com configurações flexíveis. Um administrador novato pode facilmente descobrir as configurações e criar os modelos de conexão necessários, dependendo da hierarquia interna da empresa. ## Configuração de função [step num="1"] Inicie o "Server Manager", vá para a guia "Add Role" (Adicionar função) no lado direito: [/step] Screenshot № 1. Seleção de opções [step num="2"] Por exemplo, use o primeiro item: [/step] Captura de tela № 2. A escolha da instalação [step num="3"] Em seguida, o utilitário solicitará que você especifique o servidor para o qual a função está sendo emitida. Selecione na lista e clique em "Next" (Avançar). Na próxima etapa, será exibida uma lista de funções de servidor disponíveis. Por exemplo, colocamos "Remote Desktop Service": [/step] Screenshot № 3. Ativamos a função [step num="4"] Depois de clicar no botão "Next" (Avançar), as informações sobre a função selecionada serão exibidas na tela. Concordamos e passamos para a próxima etapa. Agora, um recurso adicional foi exibido na seção Role Server. Vamos até ela e anotamos as opções necessárias para o administrador. Por exemplo, ativar o RDG: [/step] Screenshot № 4. Seleção de recursos adicionais [step num="5"] O assistente de configuração verifica a função selecionada e a compatibilidade com o sistema operacional do servidor. Se você precisar instalar componentes adicionais, o espaço de trabalho será aberto automaticamente com os componentes marcados. Para que o RDG funcione, os serviços de administração da Web com um conjunto completo de ferramentas de software devem estar instalados no sistema operacional: [/step] Screenshot № 5. Selecione componentes adicionais Recomendamos que você deixe os serviços selecionados por padrão. Clique em "Next" e confirme a instalação. ## Acesso a recursos [step num="6"] Depois de instalar a função selecionada, vá para a janela principal do Server Manager. Selecione a seção "Tools" (Ferramentas) e prossiga para a configuração do RDG. Uma nova janela pop-up será aberta (RD Gateway Manager). Nela, vá até a guia com o nome do servidor, selecione "Policies" (Políticas) e configure as conexões autorizadas. Pressione o botão "Wizard" (Assistente) para abrir o assistente de configuração: [/step] Captura de tela № 6. Criação de uma política [step num="7"] O instalador oferecerá uma opção de 3 pontos. Deixe a primeira opção ativa: [/step] Captura de tela № 7. Configure [step num="8"] Defina um nome para o novo modelo e clique em "Next" (Avançar). A próxima etapa é selecionar um método de autenticação e uma lista de usuários que terão acesso à política. A autorização é permitida com uma senha ou um cartão inteligente, ou ambos. Deixe apenas uma senha. Em seguida, clique no botão "Add Group" (Adicionar grupo) e adicione dados ao campo: [/step] Screenshot № 8. A escolha da autorização e dos usuários [step num="9"] Em seguida, diferenciamos o acesso aos recursos de rede aos quais os usuários se conectarão por meio do Remote Desktop Gateway: [/step] Screenshot № 9. Seleção de recursos Vamos deixar o primeiro ponto como exemplo. Clique em "Next". Agora você precisa definir os valores de tempo limite para os recursos de rede. Nós os definimos de acordo com os requisitos. Uma janela com um modelo personalizado será exibida na tela. Se as informações estiverem corretas, vá para a próxima etapa. [step num="10"] O assistente de configuração solicitará que você especifique uma política de autorização para os recursos da rede. Primeiro, criamos um nome de configuração. Em seguida, adicionamos os grupos de usuários que se conectarão: [/step] Captura de tela № 10. Selecione um grupo [step num="11"] Agora, selecione o grupo de recursos: [/step] Screenshot № 11. Selecionar um grupo de recursos O assistente de configuração solicitará que você especifique o número da porta para a conexão. Se não houver requisitos especiais, deixamos como padrão - 3389. Depois de clicar em "Next", as informações sobre a política de autorização criada serão exibidas na tela. Se tudo estiver correto, concluiremos a configuração. ## Instalação do certificado SSL [step num="12"] Para que o acesso ao RDG esteja ativo, você também deve criar um certificado. Na janela de trabalho do RDG Manager, vá para a seção "Server Name" (Nome do servidor). Usando o menu de contexto, abra o item "View or change certificate properties" (Exibir ou alterar propriedades do certificado). Na janela que se abre, vá para a guia SSL. Há três opções para criação. Selecione o item marcado em vermelho na captura de tela: [/step] Captura de tela № 12. Seleção do método [step num="13"] Agora escrevemos o nome do certificado e o caminho no qual ele será armazenado: [/step] Captura de tela № 13. Importar [step num="14"] Clique em "OK" para gerar. Como resultado, o espaço de trabalho do gerenciador é o seguinte: [/step] Captura de tela № 14. Informações gerais [step num="15"] Para aumentar a segurança, recomendamos que você altere a porta padrão para conexão via Remote Desktop Protocol. Abra a seção "Actions" (Ações) no RDG Manager, o item "Properties" (Propriedades). Vá para a guia "Propriedades de transporte". No campo marcado em vermelho, altere o valor: [/step] Screenshot № 15. Alterando a porta Confirmamos as alterações e fechamos a janela. ## Como se conectar [step num="16"] Agora você precisa configurar a conexão por meio do RDP. Pressione a combinação de teclas Win + R e digite o comando mstsc.exe. Na janela que se abre, clique em "Options" (Opções): [/step] Captura de tela № 16. Configuração do RDP No campo marcado em vermelho, escrevemos o endereço do servidor e, com os dois pontos no final, marcamos o número da porta. Clique em "OK". [step num="17"] Agora, vá para a guia "General" (Geral). Digite o nome de domínio e o nome de usuário: [/step] Captura de tela № 17. Domínio e usuário O assistente de configuração solicitará que você digite uma senha para o nome da conta. Digite-a. Configuração concluída. https://serverspace.com.br/support/help/configuring-network-adapter-in-windows.md Configurar a interface de rede depois que o servidor estiver conectado a uma rede no Windows. Conecte-se a um servidor virtual por RDP e, em seguida, clique com o botão direito do mouse em Configurações de conexão de rede. Configuração da interface de rede depois que o servidor estiver conectado a uma rede no Windows. ### Etapa 1 [step num="1"] Conecte-se a um servidor virtual por RDP e, em seguida, clique com o botão direito do mouse em **Configurações de conexão de rede** no canto inferior direito da área de trabalho do Windows para abrir a **Central de rede e compartilhamento**: [/passo] [step num="2"] Em uma janela que se abre, selecione a interface necessária, que não tem acesso à rede: [/step] [step num="3"] Será aberta uma janela de status da interface. Para ter certeza de que a interface necessária está selecionada, clique em **Details**: [/step] [step num="4"] Compare o valor no campo **Physical Address** com o valor no campo **MAC** no painel de controle: [/step] ### Etapa 2 [step num="5"] Se a opção **DHСP** tiver sido ativada durante a criação da rede em um painel, o adaptador de rede do Windows será configurado automaticamente. Verifique se a opção está ativada ou desativada nas propriedades da rede no painel de controle: [/step] ### Etapa 3 [step num="6"] Se a opção DHСP NÃO tiver sido ativada durante a criação da rede em um painel, você deverá realizar a configuração manualmente. Abra as propriedades do adaptador clicando em **Properties**: [/step] [step num="7"] Selecione a conexão **IPv4** e clique em **Properties**: [/step] [step num="8"] Em uma janela que se abre, digite o endereço atribuído no campo **endereço IP** e digite a máscara de sub-rede no campo **máscara de sub-rede**. É possível visualizar todos os valores no painel nas configurações do servidor (seção Redes) ou no menu Rede: [/step] [step num="9"] Salve suas alterações. [/step] ### Etapa 4 [step num="10"] Para verificar a configuração do adaptador de rede, execute o ping em um endereço IP de gateway padrão, como: ``` ping 10.0.1.1 ``` [/step] [step num="11"] Observação: A verificação no Windows Server 2016 exige o envio de ping para outro servidor local: https://serverspace.com.br/support/help/adding-disk-space-after-extension-in-windows-server-2008-r2.md Depois que o espaço em disco for adicionado a um servidor em um painel, siga nossas instruções para torná-lo utilizável pelo Windows Server 2008 R2. Guia passo a passo. Depois que o espaço em disco for adicionado a um servidor em um painel, faça o seguinte para torná-lo utilizável pelo Windows Server 2008 R2. [step num="1"] Abra o "Gerenciamento do computador". "Menu Iniciar" - "Ferramentas administrativas" - "Gerenciamento do computador": [/step] [step num="2"] Abra o "Gerenciamento de disco". [/step] [step num="3"] No painel esquerdo, selecione "Disk Management" (Gerenciamento de disco) na pasta Storage. Pressione F5 para atualizar a janela e ver a área não alocada. No painel inferior direito, você verá um espaço não alocado (40 GB no exemplo abaixo): [/step] [step num="4"] Clique em "Extend Volume". [/step] [step num="5"] Selecione um volume a ser estendido e clique nele com o botão direito do mouse. Em um menu que se abre, selecione "Extend Volume": [/step] [step num="6"] O "Extend Volume Wizard" será aberto: [/etapa] [step num="7"] Selecione o tamanho do espaço não alocado que deseja alocar (na maioria dos casos, você deve selecionar todo o espaço disponível). Clique em "Next" (Avançar): [/step] [step num="8"] Concluído. Verifique se nenhum espaço não alocado é mostrado no "Computer Manager": [/step] [step num="9"] e a janela Computador exibe o tamanho atualizado do disco: https://serverspace.com.br/support/help/pfsense-2-3-configuring-site-to-site-vpn.md O processo de configuração é dividido condicionalmente em dois estágios: 1. Configuração do pfSense e configuração de redes privadas; 2. Implementação site a site. Vamos começar. Considere a possibilidade de configurar o pfSense. Primeiro, acho que vale a pena explicar o que são o pfSense e a VPN Site-to-Site e quais são as vantagens. Em seguida, passe para a implementação. O pfSense é uma distribuição de firewall baseada no sistema operacional FreeBSD. A distribuição permite a implementação de mecanismos como NAT, CARP, VPN (incluindo PPTP, IPsec, OpenVPN) e Captive Portal. Além disso, ela executa a funcionalidade de um firewall clássico, DNS dinâmico, DHCP e servidor proxy. Fácil de implantar. **Por que Site-to-Site?** O Site-to-Site permite que você configure apenas gateways em sub-redes remotas e não precisa configurar os próprios nós da rede. Em termos simples, o método Site-to-Site conecta dois escritórios a uma única rede, e o método Point-to-Site conecta funcionários remotos ao escritório. Neste artigo, consideraremos um exemplo de conexão de duas redes existentes - física e virtual. O processo de configuração é condicionalmente dividido em dois estágios: - Configuração do pfSense e configuração de redes privadas; 2. - Implementação site a site. Vamos começar. Primeiro, configure a LAN interna e a interface do gateway. Para fazer isso, no navegador, acesse o endereço IP do servidor ou o nome de domínio, se houver. Digite o nome de usuário e a senha e vá para a tela inicial (Dashboard). No menu do programa, vá para a seção de interfaces Interfaces -> Assignments. Em nosso exemplo, apenas duas interfaces já estão distribuídas - deixamos como está. Se você tiver várias interfaces, deverá selecionar a interface necessária pelo endereço MAC e clicar no botão Add. Atribua um endereço IP à interface "looking" da rede local. No menu do programa, vá para a seção de interfaces-> LAN. Ao final da configuração, clique no botão Save (Salvar). Para todos os servidores da rede local, como gateway padrão, defina o endereço IP especificado na LAN. Importante! Se você usar serviços de nuvem, precisará unir os nós de rede no painel de administração do serviço de nuvem por meio de "Virtual Networks". ## Configuração do firewall para conexões locais No menu do programa, selecione Firewall -> Rules -> LAN. Clique no botão Add (Adicionar). Na nova página, verificamos os parâmetros: interface personalizável - LAN; Protocolo - TCP, mas você também pode usar Qualquer; Fonte - Qualquer; Destino - Qualquer. Salve as configurações clicando no botão Save (Salvar). Deve-se observar que as mesmas configurações devem ser feitas em todos os servidores pfSense remotos conectados a uma única rede. ## Inicie a configuração do túnel site a site No início, vamos configurar o OpenVPN. No menu principal, selecione VPN -> OpenVPN e clique no botão Add (Adicionar). Na nova página, selecione: Server mode (Modo de servidor) - Peer to Peer (Chave compartilhada); Protocolo - UDP somente em IPv4; Modo de dispositivo - tun - Modo de túnel de camada 3; Interface - WAN Porta local - 1194; Shared key (Chave compartilhada) - Marque a caixa de seleção ao lado de Automatically generate a shared key (Gerar automaticamente uma chave compartilhada); Algoritmo de criptografia - deixe como padrão; Criptografia de hardware - Sem aceleração de criptografia de hardware; Rede de túnel IPv4: 10.0.10.0/24 - especifique os endereços usados no túnel; Redes remotas IPv4: 10.0.1.0/24 - especifique o endereço de rede localizado atrás do gateway remoto do pfSense. Salve as configurações e não se esqueça de clicar no botão verde Apply Changes (Aplicar alterações). ## Configurar o firewall para a nova interface No menu principal, selecione Firewall - > Rules. Selecione o item OpenVPN e clique no botão Add (Adicionar). Na página atualizada, verifique os parâmetros: Interface - OpenVPN; O protocolo é TCP, mas qualquer um é melhor; Origem e destino - Qualquer. Quando terminar, clique no botão Save (Salvar). Não se esqueça de clicar no botão verde Apply changes (Aplicar alterações). ## Configurar o firewall para a interface WAN No menu principal, selecione Firewall - > Rules. Selecione o item OpenVPN e clique no botão Add (Adicionar). Interface - WAN; Protocolo - UDP; Intervalo de portas de destino em ambas as listas suspensas (From e To), selecione OpenVPN (1194). Salve as configurações. Não se esqueça de clicar no botão verde Apply changes (Aplicar alterações). Agora, copie a chave gerada para transferi-la para o roteador remoto. No menu principal, selecione VPN -> OpenVPN. Clique no ícone "Pencil" (editar). Na página atualizada, no item Shared Key, copie todo o conteúdo do campo em um editor de texto, por exemplo, o Bloco de Notas. Resta configurar o gateway remoto do pfSense como um cliente. No menu principal, selecione VPN - > OpenVPN e clique no item Clients e, em seguida, no botão Add. Na página que se abre, verifique os parâmetros: Server mode (Modo de servidor) - Peer to Peer (Chave compartilhada); Protocolo - UDP somente em IPv4; Modo de dispositivo - tun - Modo de túnel de camada 3; Interface - WAN; Endereço do host do servidor - especifica a interface WAN do servidor que foi configurada anteriormente; Porta local - 1194; Chave compartilhada - Retire a marca de seleção na frente de Automatically generate a shared key (Gerar automaticamente uma chave compartilhada); Algoritmo de criptografia - deixe como padrão; Criptografia de hardware - Sem aceleração de criptografia de hardware; Rede de túnel IPv4: 10.0.10.0/24 - especifique os endereços usados no túnel; Redes remotas IPv4: especifique o endereço de rede localizado atrás do servidor de gateway pfSense remoto. Clique em Save (Salvar). Em seguida, clique no botão verde para Aplicar alterações. Isso conclui a configuração. https://serverspace.com.br/support/help/routing-in-pfsense-port-forwarding.md Aprenda como configurar encaminhamento de portas no pfSense. Guia prático de roteamento, NAT, acesso RDP e SSH em redes locais e VPS. Os especialistas em redes dividem os roteadores em duas grandes classes: software e hardware. Os roteadores de hardware representam equipamentos desenvolvidos em empresas como um produto acabado. As implementações de software são um conjunto de programas ou montagens prontas de sistemas operacionais que podem ser instalados em praticamente qualquer computador moderno ou plataforma de servidor. Às vezes, é necessário fornecer acesso da Internet a máquinas localizadas na rede local. Considere a configuração de roteamento - encaminhamento de porta usando o pfSense. O pfSense é uma distribuição de software baseada no sistema operacional FreeBSD e projetada para organizar um roteador ou um firewall, ou todos ao mesmo tempo. Esse sistema operacional pode ser instalado em praticamente qualquer computador ou servidor. Um dos principais recursos do pfSense é a solução de tarefas por meio de uma interface baseada na Web. ## Configuração da rede Se a configuração for realizada via VPS/VDS, você deve criar todos os servidores necessários, um dos quais será gerenciado pelo pfSense. Adicione adaptadores de rede e mescle-os em uma única rede virtual. ## Começando a configuração No menu principal do programa (preto horizontal), selecione **Interfaces → Atribuições**. A página da Web é atualizada e é exibida uma lista de todas as interfaces de rede. As interfaces "**Livres**" estão no campo Portas de rede disponíveis. Todas as interfaces são mostradas com endereços MAC. Na lista suspensa, selecione a interface necessária e clique no botão "**Add**". Após concluir a ação, o sistema o notificará sobre a adição bem-sucedida. A interface será chamada de "**LAN**". Salve as configurações clicando no botão "**Save**". Configure o adaptador de rede. Para fazer isso, abra **Interfaces → LAN**no menu principal. Ao marcar a caixa de seleção no campo Enabled, ativamos a interface. Configuração do IPv4 como IP estático (Static IPv4). Na seção de definições de configuração "**Static IPv4 Configuration**", especifique o endereço IP para essa interface, no nosso caso 10.0.0.254, talvez você tenha um diferente. Na parte inferior da página, clique no botão "**Save**" para salvar as alterações. O sistema notificará você sobre as alterações. Nós as aplicamos clicando no botão "**Apply changes**". ## Configurar as interfaces de rede dos clientes Ao configurar as interfaces de rede do cliente, é importante lembrar que o endereço do servidor pfSense deve ser especificado como o gateway, no nosso caso 10.0.0.254. ### Configuração no Ubuntu Edição do arquivo /etc/network /interfaces: ``` auto ens31 ``` ``` iface ens31 inet static ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_2__ __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_3__ ``` dns-nameserver 8.8.8.8 ``` ``` gateway 10.0.0.254 ``` Reiniciar o serviço de rede: ``` /etc/init.d/networking restart ``` ### Windows Para configurar o adaptador de rede no Windows, é necessário abrir **Iniciar → Painel de controle → Rede e Internet → Conexões de rede** ou **Iniciar → Painel de Controle → Rede e Internet → Central de Rede e Compartilhamento → Alterar configurações do adaptador**. Na pasta aberta, clique com o botão direito do mouse no ícone do adaptador de rede e selecione "**Properties**". Na janela que se abre, clique no nome (não na caixa de seleção) e selecione "**Internet Protocol Version 4 (TCP/IPv4)**". Clique no botão "**Properties**" (Propriedades). Em uma nova janela, especifique: - Endereço IP - 10.0.0.3; - Máscara de sub-rede: 255.255.255.0; - Gateway - 10.0.0.254; - Servidor DNS preferencial: 8.8.8.8.8. Para salvar, clique no botão "**OK**". Na janela Propriedades do adaptador de rede, clique também no botão "**OK**". Importante! Observe novamente que o endereço IP do servidor pfSense deve ser especificado como o gateway padrão e o gateway padrão. ## Configuração do roteamento No menu principal do aplicativo Web, selecione **Firewall → NAT**. Na guia "**Port Forward**", clique no botão **Adicionar**. Na página que se abre para a edição da regra de redirecionamento de tráfego, criaremos uma regra para a interface RDP. No campo **Destination**, especifique **Any**. Intervalo de portas de destino (de uma porta) - selecione a porta de destino, no nosso caso, MS RDP. O campo "to port" será preenchido automaticamente. Redirect target IP (IP de destino do redirecionamento) - especifique o endereço IP do servidor ou do computador que está executando o Windows. Porta de destino do redirecionamento - MS RDP. Se desejar, preencha o campo de descrição - "**Description**". Clique no botão "**Salvar**". E não se esqueça de clicar no botão "**Aplicar alterações**". **Importante! Se a porta RDP tiver sido alterada (por padrão, 3389), selecione o nome da porta "Other" e, no campo Custom (Personalizado), indique o valor atual.** A regra criada é exibida como no exemplo abaixo. Da mesma forma, as regras são criadas, por exemplo, para acesso SSH. ## Verificação da conexão Para testar as configurações, é necessário conectar um cliente ou aplicativo SSH para acessar a área de trabalho remota ao endereço IP externo do servidor pfSense. Você também pode realizar a verificação usando o sniffer de porta de rede -**nmap**. . ## Conclusão O pfSense é uma solução poderosa e flexível para a implementação de roteamento e firewall em ambientes corporativos e em infraestruturas baseadas em VPS ou servidores dedicados. Graças à sua interface web intuitiva e ao uso do FreeBSD como base, ele permite configurar regras de NAT e encaminhamento de portas de forma precisa e segura, sem a necessidade de configurações complexas via linha de comando. Neste artigo, vimos como configurar interfaces de rede, definir gateways corretos para clientes Linux e Windows e criar regras de Port Forwarding no pfSense para permitir o acesso remoto a serviços internos, como RDP e SSH, a partir da Internet. Uma configuração adequada garante não apenas conectividade, mas também previsibilidade do tráfego e maior controle sobre a segurança da rede. Ao utilizar o encaminhamento de portas corretamente, é possível expor apenas os serviços necessários, mantendo o restante da infraestrutura protegido. Essa abordagem torna o pfSense uma excelente escolha tanto para pequenos laboratórios quanto para ambientes de produção mais complexos. ## FAQ — Perguntas Frequentes - **O que é encaminhamento de portas (Port Forwarding) no pfSense?** O encaminhamento de portas é uma técnica de NAT que permite redirecionar conexões recebidas em um endereço IP e porta externos para um host e porta específicos na rede interna. - **Quando é necessário usar Port Forwarding?** Ele é utilizado quando serviços internos (RDP, SSH, Web, FTP, etc.) precisam ser acessados a partir da Internet, mesmo estando atrás de um firewall ou roteador. - **O pfSense é adequado para uso em VPS?** Sim. O pfSense funciona muito bem em ambientes VPS/VDS, desde que o provedor permita múltiplas interfaces de rede ou redes virtuais internas. - **É seguro abrir portas no pfSense?** Desde que sejam abertas apenas as portas necessárias e combinadas com regras de firewall, autenticação forte e, preferencialmente, restrição por IP, o encaminhamento de portas pode ser usado de forma segura. - **Qual a diferença entre NAT e Firewall no pfSense?** O NAT define como o tráfego é traduzido entre redes (por exemplo, Port Forwarding), enquanto o Firewall controla se esse tráfego é permitido ou bloqueado. No pfSense, regras de NAT normalmente criam regras de firewall automaticamente. - **Posso usar Port Forwarding para SSH e RDP ao mesmo tempo?** Sim. Basta criar regras separadas para cada serviço, utilizando portas diferentes e apontando para os respectivos hosts internos. - **Como testar se o encaminhamento de portas está funcionando?** Você pode testar a conexão usando clientes RDP/SSH a partir de uma rede externa ou ferramentas como nmap para verificar se a porta está acessível no IP externo do pfSense. https://serverspace.com.br/support/help/installing-and-configuring-an-rdp-server-on-centos-7.md Neste guia, mostraremos como instalar o xRDP em um computador CentOS 7 remoto e como se conectar a ele por meio da conexão de área de trabalho remota. Neste guia, mostraremos como instalar o xRDP em um computador CentOS 7 remoto e como se conectar a ele por meio da conexão de área de trabalho remota. Também mostraremos como instalar e conectar-se a vários ambientes de área de trabalho em um computador CentOS 7 remoto. O xRDP é um servidor de protocolo de área de trabalho remota gratuito e de código aberto que permite que sistemas operacionais que não sejam Windows ofereçam recursos completos de área de trabalho remota. O xRDP é totalmente compatível com o rdesktop, o FreeRDP e até mesmo com o Microsoft Remote Desktop Client (mstsc.exe). **Requisitos:** - Embora isso não seja um requisito, recomendamos agir como um usuário não raiz ao fazer grandes alterações no seu sistema. - Uma máquina executando o CentOS 7 com pelo menos 2 GB de RAM. [step num="1"] Atualize os pacotes instalados no sistema: ``` $ sudo yum -y update ``` [/step] [step num="2"] Em seguida, instale os pacotes necessários: ``` $ sudo yum install -y epel-release $ sudo yum install -y xrdp $ sudo systemctl enable xrdp $ sudo systemctl start xrdp ``` [/step] [step num="3"] Se você estiver usando o FirewallD, abra a porta 3389/TCP para RDP: ``` $ sudo firewall-cmd --add-port=3389/tcp --permanent $ sudo firewall-cmd --reload ``` [/step] ## Configure seu ambiente de trabalho preferido [step num="4"] Agora podemos definir o ambiente de área de trabalho que usaremos. Neste guia, vamos experimentar o Xfce, o MATE e o GNOME. [/step] **Observação:** se não conseguir se conectar por meio da Conexão de Área de Trabalho Remota depois de instalar o ambiente de trabalho, abra a porta 3389/TCP usando o comando firewall-cmd mencionado acima. ### Instalar o espaço de trabalho do XFCE O Xfce é um dos ambientes de desktop mais leves. Ele é rápido, consome poucos recursos do sistema, mas permanece visualmente atraente. Além disso, ele tem uma comunidade muito ativa, portanto, muitas opções de personalização estão disponíveis. [step num="5"] Para instalar o Xfce, execute os seguintes comandos: ``` $ sudo yum install -y epel-release $ sudo yum groupinstall -y "Xfce" $ sudo reboot ``` [/step] [step num="6"] Em seguida, crie o arquivo.Xclients no diretório do usuário com o qual a conexão será feita: ``` $ echo "xfce4-session" > ~/.Xclients $ chmod a+x ~/.Xclients ``` [/step] [step num="7"] Agora você pode se conectar ao servidor usando a Conexão de Área de Trabalho Remota. Esta é a aparência do Xfce: [/step] Captura de tela №1. Xfce Remoção do Xfce [step num="8"] Para remover o Xfce do CentOS 7, execute os seguintes comandos: ``` $ sudo yum groupremove -y "Xfce" $ sudo yum remove -y libxfce4* ``` [/step] ### Instalar o ambiente de desktop MATE [step num="9"] Para instalar o MATE, execute os seguintes comandos: ``` $ sudo yum install -y epel-release $ sudo yum groupinstall -y "MATE Desktop" $ sudo reboot ``` [/step] [step num="10"] Em seguida, crie o arquivo.Xclients no diretório do usuário ao qual você está se conectando: ``` $ echo "mate-session" > ~/.Xclients $ chmod a+x ~/.Xclients ``` [/step] [step num="11"] Agora você pode se conectar ao servidor usando a Conexão de Área de Trabalho Remota. Esta é a aparência do MATE: [/step] Captura de tela №2. MATE Removendo o MATE [step num="12"] Para remover o MATE do CentOS 7, execute os seguintes comandos: ``` $ sudo yum groupremove -y "MATE Desktop" $ sudo yum autoremove -y ``` [/step] ### Instalar o ambiente de área de trabalho GNOME [step num="13"] Agora tente instalar o GNOME 3. Para fazer isso, precisamos instalar o grupo de pacotes do GNOME Desktop, que instalará todos os pacotes necessários para a instalação com uma interface gráfica: ``` $ sudo yum groupinstall "GNOME DESKTOP" -y ``` [/step] Isso pode levar algum tempo. Na configuração mínima da distribuição do CentOS 7, cerca de 1.000 pacotes serão instalados. Inicie a interface gráfica [step num="14"] Embora tenhamos instalado o grupo de pacotes do GNOME Desktop, a GUI não será carregada por padrão na reinicialização. Podemos verificar isso executando: ``` $ systemctl get-default ``` [/step] [step num="15"] Conclusões: ``` multi-user.target ``` [/step] [step num="16"] Se o valor padrão for multi-user.target, isso significa que a GUI não será carregada. Altere o valor padrão para graphical.target. Para fazer isso, execute os seguintes comandos: ``` $ sudo systemctl set-default graphical.target ``` [/step] [step num="17"] Conclusões: ``` Removed symlink /etc/systemd/system/default.target. ``` Criado link simbólico de /etc/systemd/system/default.target para usr / lib / systemd / system / graphical.target. [/step] [step num="18"] Depois disso, execute o seguinte comando para alternar imediatamente para a interface gráfica: ``` $ sudo systemctl isolate graphical.target ``` [/step] [step num="19"] Agora você pode se conectar via xRDP ao seu CentOS 7 usando o GNOME. Esta é a aparência do GNOME 3 quando você se conecta pela primeira vez após a instalação. Basta seguir as etapas de configuração inicial para concluir a configuração: [/step] Captura de tela №3. GNOME 3 **Nota:** Se você usou o Xfce ou o MATE Desktop para se conectar ao CentOS 7 antes de instalar o shell gráfico do GNOME Desktop, execute o seguinte comando: ``` $ sudo rm -f ~/.Xclients ``` Remoção do GNOME [step num="20"] Para remover o GNOME de seu CentOS 7, execute os seguintes comandos: ``` $ sudo yum groupremove -y "GNOME Desktop" $ sudo yum autoremove -y ``` [/step] ## Conecte-se a um computador usando a Conexão de Área de Trabalho Remota [step num="21"] Depois de instalar o xRDP e o ambiente de área de trabalho, você pode se conectar do computador local ao remoto. [/step] Conexão do Windows [step num="22"] Para se conectar ao servidor a partir do Microsoft Windows, basta localizar e iniciar o aplicativo Remote Desktop Connection (mstsc.exe) e digitar o nome do host ou o IP: [/step] Captura de tela №4. Conexão de área de trabalho remota [step num="23"] Se esta for a primeira vez que se conecta, você receberá vários avisos de segurança. Supondo que esse seja o seu servidor e que ele seja seguro, basta aceitar esses avisos: [/step] Captura de tela №5. Avisos de segurança https://serverspace.com.br/support/help/install-and-configure-ms-sql-server-express.md Este manual descreve o processo de instalação do MS SQL Server 2017 Express, um banco de dados gratuito e de alta tecnologia no Windows Server 2012 R2/2016/2019. Este guia descreve como instalar o MS SQL Server 2017 Express no Windows Server 2012 R2 / 2016/2019. Depois disso, você terá uma ferramenta pronta para explorar a linguagem de programação SQL, verificar seus desenvolvimentos ou lançar um pequeno recurso que não requer grandes quantidades de armazenamento de banco de dados. **Limitações do SQL Server 2017 Express Edition** Esta versão é gratuita e adequada para uso comercial, mas tem várias limitações: - Número máximo de núcleos de processador: 4; - Tamanho máximo do banco de dados: 10 GB; - Tamanho máximo do pool de buffer por instância do banco de dados: 1410 MB. Se precisar ir além desses limites, recomendamos que você adquira uma licença do Microsoft SQL Server Standard. **Requisitos do sistema operacional** O SQL Server 2017 Express está disponível para instalação nos seguintes sistemas operacionais: - Windows 8/8.1/10 e posterior; - Windows Server 2012, 2012 R2, 2016, 2019 e posteriores. **Procedimento de instalação** Para instalar o SQL Server 2017 Express, acesse o [link](https://www.microsoft.com/en-us/download/details.aspx?id=55994), selecione o idioma de instalação e clique em **Download:** Depois de iniciar o arquivo baixado, o instalador abrirá uma janela especial na qual oferecerá várias opções de instalação para escolha. Para controlar as opções de instalação, selecione **Custom**: Em seguida, selecione o local onde os arquivos de instalação serão baixados; se necessário, altere-o para o local desejado e clique em **Install:** Aguarde até que o processo de download conclua a instalação dos arquivos: Em seguida, selecione o primeiro item de instalação** New SQL Server stand-alone installation**: Leia os termos do contrato de licença e clique em **Next**: Se você precisar receber atualizações do Windows Update, marque a caixa e clique em **Next**: Leia o aviso sobre possíveis problemas e, se não houver nenhum, clique em **Next:** Vá para a tela de seleção de funções, onde você pode, se necessário, selecionar ou remover recursos adicionais para o servidor de banco de dados, deixe-o inalterado e clique em **Next**: Selecione um nome e um ID de servidor. O identificador do servidor será incluído no caminho de instalação. Deixe o padrão e clique em **Next**: Na tela seguinte, é possível especificar contas de serviço diferentes das padrão e conceder o direito de executar tarefas de manutenção de volume ao serviço de kernel do DBMS do SQL Server, o que aumentará a velocidade de inicialização do arquivo, mas o DBMS poderá acessar o conteúdo remoto. Na guia **Collation**, você pode alterar as opções de classificação do mecanismo de banco de dados. Neste exemplo, concederemos privilégios, deixaremos as opções de classificação padrão e clicaremos em **Next**: A próxima etapa da instalação é definir a configuração do núcleo do banco de dados. Para isso, são fornecidas as seguintes guias: - **Configuração do servidor**- indica o método de autorização para o banco de dados: usando ferramentas do Windows ou modo misto, que inclui autorização do Windows e autorização nativa do SQL Server. Ao escolher a segunda opção, você deve especificar a senha de administrador do SQL Server; - **Data Directories** - indica o local dos arquivos executáveis e dos dados do SQL Server; - **Temp ****DB**- Parâmetros do Temp DB usado por recursos internos do SQL Server, objetos temporários de usuários e armazenamento de versões; - **User instances** - permite conceder direitos a usuários que não têm direitos de administrador para executar instâncias individuais de banco de dados; - **FILESTREAM** - ativa, se necessário, o uso de tabelas otimizadas para memória (Memory Optimized). Como o Microsoft R (Machine Learning Services) e o Python foram selecionados durante a instalação, você deve concordar com os termos de uso desta e da próxima etapa clicando em **Accept** e **Next**: O processo de instalação é iniciado e, em seguida, é exibida uma janela confirmando a conclusão do instalador do SQL Server 2017. Clique em**Fechar**: Isso conclui a instalação do SQL Server 2017 Express. https://serverspace.com.br/support/help/configuring-the-remote-desktop-gateway.md Falaremos em detalhes sobre a configuração do serviço Remote Desktop Gateway (RDG) em um domínio em plataformas que executam o Windows Server. Configuração de função, acesso a recursos, instalação do certificado SSL, conexão. Para aumentar o nível de segurança do servidor Windows, não basta alterar a porta TCP RDP. Considere a possibilidade de configurar o gateway de área de trabalho remota no domínio do Active Directory. **Gateway de área de trabalho remota - o que é isso?** O Remote Desktop Gateway é uma função de servidor do Windows que fornece uma conexão segura usando o protocolo SSL para o servidor via RDP. A principal vantagem dessa solução é que você não precisa implantar um servidor VPN, e é para isso que o gateway serve. Deve-se observar que, a partir do Windows Server 2008 R2,[os nomes](https://docs.microsoft.com/en-us/windows/win32/termserv/terminal-services-is-now-remote-desktop-services) de todos os Serviços de Área de Trabalho Remota foram alterados. Os Serviços de Terminal anteriormente denominados foram renomeados como Serviços de Área de Trabalho Remota. Vantagens do Gateway de Área de Trabalho Remota - Usando uma conexão criptografada, o gateway permite a conexão a recursos de rede interna sem a necessidade de uma conexão VPN por usuários remotos; - O gateway oferece a capacidade de controlar o acesso a determinados recursos de rede, proporcionando assim uma proteção abrangente; - O gateway permite a conexão com recursos de rede que estão localizados atrás de firewalls em redes privadas ou NAT; - Você pode usar o console do gerenciador de gateway para configurar políticas de autorização para determinadas condições que devem ser atendidas quando usuários remotos se conectam a recursos de rede. Por exemplo, você pode especificar usuários específicos que podem se conectar a recursos de rede interna, bem como se o computador cliente deve ser membro do grupo de segurança do AD, se o redirecionamento do dispositivo e do disco é permitido; - O console do gerenciador de gateway contém ferramentas criadas para monitorar o status do gateway. Com elas, você pode atribuir eventos monitorados para auditoria, como tentativas fracassadas de conexão com o servidor de gateway de serviços de terminal. **Importante!**O gateway de serviços de terminal deve fazer parte de um domínio do Active Directory. A configuração do gateway é realizada somente em nome do administrador do domínio, em qualquer servidor do domínio. **Definição da função.** Abra o gerenciador do servidor. Selecione "**Adicionar funções e componentes**". Na etapa "**Tipo de instalação**", selecione "**Instalando funções e componentes**". A próxima etapa é selecionar o servidor atual. Função do servidor -**Serviço de área de trabalho remota**. Vá para o serviço de função. Selecione "**Gateway de área de trabalho remota**". Prosseguimos para a etapa de confirmação, clique no botão "**Install**". **Configuração da conexão e da política de autorização de recursos.** Na janela que se abre, o gerenciador de gateway de área de trabalho remota, na parte esquerda da janela, abra a ramificação com o nome do servidor → Políticas → Políticas de autorização de conexão. Na parte direita da mesma janela, selecione** Create a new policy → Wizard**. Na janela que se abre, "**Assistente para criar novas políticas de autorização**", selecione a opção recomendada "Criar uma política para autorização de conexões de área de trabalho remota e autorização de recursos de área de trabalho remota". Pressione o botão "**Next**". Na próxima etapa, digite um nome conveniente para a política de autorização de conexão. Recomendamos dar nomes em inglês. A próxima etapa será escolher um método de autenticação conveniente - senha ou[cartão inteligente](https://docs.microsoft.com/en-us/windows/win32/secauthn/smart-card-authentication). Em nosso caso, deixamos apenas a opção "**Password**" marcada. Adicionamos grupos que podem se conectar a esse RD-gateway; para isso, clique no botão "**Add Group ...**". Na janela de seleção de grupos, clique no botão "**Additionally**". A janela será redimensionada. Clique no botão "**Search**". Nos resultados da pesquisa, encontramos "**Administradores do domínio**" e clicamos no botão "**OK**". Na janela de seleção de grupos, verifique os nomes de objetos selecionados e clique em "**OK**". O grupo é adicionado. Para ir para a próxima etapa, clique no botão "**Next**". Na próxima etapa, selecione "**Enable device redirection for all** client devices" e clique em "**Next**". Definir tempos limite - tempo de inatividade e tempo de sessão, os valores são indicados em horas. Clique em "**Next**". Verifique as configurações. Tudo está correto - clique em "**Next**". Na próxima etapa, configure a política de autorização de recursos. Especifique o nome da política desejada. Clique em "**Next**". A próxima etapa é estabelecer a associação ao grupo. Normalmente, o grupo já está instalado, mas se isso não for feito, você deve seguir as etapas acima. Clique em "**Next**". Selecionamos os recursos de rede disponíveis. Para fazer isso, selecione o grupo que contém os servidores nos quais os grupos de usuários necessários podem trabalhar com a área de trabalho remota. Pressione o botão "**Visão geral**". Na janela de seleção de grupos, clique no botão "**Additionally**". Na janela alterada, clique no botão "**Search**". Na janela de resultados, encontramos "**Controladores de domínio**". Clique em "**OK**". Verificamos os objetos selecionados e clicamos em "**OK**". Mais uma vez, verificamos qual grupo de rede foi adicionado e clicamos em "**Next**". Se o número da porta RDP não tiver sido alterado, defina o valor do switch como "**Allow the connection only to port 3389**". Se a porta tiver sido alterada, especifique um novo valor. Clique em "**Done**" Na etapa de confirmação da criação da política, clique no botão "**Close**". Ao final da configuração, a janela terá uma aparência semelhante. **Instale o certificado SSL.** Na mesma janela "**Manager of the remote desktop gateway**", na janela esquerda, clique no ícone do servidor, na parte principal da janela - "**View and change properties of the** certificate". Na janela aberta "Properties ", vá para a guia "SSL Certificate". Defina a opção "Criar um certificado autoassinado" e clique no botão "Criar e importar certificado...". Embora sejam possíveis mais duas opções: - importar um certificado carregado anteriormente (autoassinado anteriormente ou de terceiros); - Baixar um certificado de terceiros (por exemplo, Comodo) e importá-lo; Na janela "**Criando um certificado autoassinado**", verificamos as configurações e clicamos no botão "**OK**". O sistema notificará que o certificado foi criado com êxito, e também há informações sobre onde você pode encontrar o próprio arquivo de certificado. Pressione o botão "**OK**". Na janela de propriedades do servidor, clique no botão "**Apply**". O certificado autoassinado é instalado na porta TCP 443 (porta SSL por padrão). Por motivos de segurança, recomendamos que você altere a porta SSL padrão. Para fazer isso, no menu principal da janela, selecione "**Actions" → "Properties**". Vá para a guia "**Transport settings**" e defina o valor desejado para o campo "**HTTPS port**". Salve as configurações clicando no botão "**Apply**". O sistema solicitará a confirmação - responda "Yes". **Conectando-se por meio do gateway.** Abra o cliente RDP, vá para a guia "**Additionally**" e pressione o botão "**Settings**". Na janela que se abre, selecione "**Use o seguinte** Configurações do servidor de gateway de área de trabalho remota". Indicamos o nome de domínio do servidor e, por meio de dois pontos (:), indicamos a porta SSL. O método de login é "**Request Password**". Clique em "**OK**". Vá para a guia "**General**". Especifique o endereço do computador e o usuário sob o qual a conexão será feita. Pressione o botão "**Connect**" O programa solicitará a senha da conta. Os resultados do gateway podem ser verificados por meio de rastreamento - o comando tracert. https://serverspace.com.br/support/help/configuring-samba.md O Samba é um aplicativo de servidor que implementa o acesso dos terminais clientes a pastas, impressoras e discos por meio do protocolo SMB/CIFS. Provavelmente não há um único escritório que não use recursos de rede local compartilhados, sejam eles pastas ou impressoras. As empresas de grande e médio porte usam os recursos do Active Directory, enquanto as empresas menores usam ferramentas comuns do Windows ou do Samba, mas em servidores do sistema operacional Linux. Veja todos os casos. Como configurar o Samba: - [O que é o Samba?](#step1) - **[Como configurar uma pasta compartilhada](#step2)** - [Como configurar uma pasta compartilhada no Linux](#step3) - [Como configurar uma pasta compartilhada no Windows](#step4) - **[Como se conectar a uma pasta compartilhada](#step5)** - [Como se conectar a uma pasta compartilhada no Linux](#step6) - [Como se conectar a uma pasta compartilhada do Windows](#step7) - **[Como criar um compartilhamento de rede no Samba](#step8)** ## O que é o Samba? O Samba é um aplicativo de servidor que implementa o acesso dos terminais clientes a pastas, impressoras e discos por meio do protocolo SMB/CIFS. ## Configurando pastas compartilhadas ### Linux A instalação e a configuração do servidor Samba para Ubuntu são realizadas nas seguintes etapas. Atualizar informações sobre repositórios e instalar atualizações para pacotes de software existentes no sistema: ```bash apt-get update && apt-get upgrade ``` Instalação do pacote Samba: ```bash apt-get install -y samba samba-client ``` Criação de uma cópia de reserva do arquivo de configuração: ``` cp /etc/samba/smb.conf /etc/samba/smb.conf_sample ``` Criação de diretórios para arquivos, por exemplo, no catálogo /media: ``` mkdir /media/samba ``` Importante! Por padrão, o diretório /media está localizado na raiz do sistema/, e raramente é criada uma partição separada para ele. Por esse motivo, a partição raiz pode transbordar. Para evitar essa situação desagradável, recomendamos a montagem de um disco rígido separado em /media/samba. Criando uma pasta para todos os usuários: ``` mkdir /media/samba/public ``` Alteração dos direitos de acesso à pasta: ```bash chmod -R 0755 /media/samba/public ``` Você também deve usar o comando chown para alterar o proprietário e/ou o grupo. Criando um diretório para um número limitado de pessoas: ``` mkdir /media/samba/private ``` Usando as ferramentas do sistema, criaremos um grupo de usuários: ``` groupadd smbgrp ``` Adicionando usuários do Samba: ``` useradd user1 ``` Adicionando os usuários criados ao grupo: ``` usermod -aG smbgrp user1 ``` Alteração do grupo ao qual o diretório privado pertence: ``` chgrp smbgrp /media/samba/private ``` Use as ferramentas do Samba para criar uma senha para o usuário adicionado: ``` smbpasswd -a user1 ``` Use um editor de texto como o nano para editar o arquivo de configuração do samba: ``` nano /etc/samba/smb.conf ``` Excluindo todas as linhas do arquivo. Insira o seguinte: ``` workgroup = WORKGROUP security = user map to guest = bad user wins support = no dns proxy = no path = /media/samba/public guest ok = yes force user = nobody browsable = yes writable = yes path = /media/samba/private valid users = @smbgrp guest ok = no browsable = yes writable = yes ``` Salve usando a combinação Ctrl + X e, em seguida, pressione Y e Enter. Vamos explicar os valores das strings. O arquivo de configuração consiste em três seções: **global **- essa seção é responsável pelas configurações gerais do servidor Samba; **public **и **private **- a seção de descrição dos diretórios de configurações é compartilhada. A seção **global** contém cinco parâmetros: - **workgroup **- grupo de trabalho. Para simplificar o trabalho dos usuários, WORKGROUP é especificado como o grupo padrão. Se o nome do grupo de trabalho for alterado em sua rede, você também deverá alterar esse valor para o Samba; - **Segurança **- o nível de segurança do servidor. O valor user significa autorização pelo par nome de usuário/senha; - **map to guest** - esse parâmetro define como as solicitações são processadas. O valor bad user significa que as solicitações com uma senha incorreta serão rejeitadas, mesmo que esse nome de usuário exista; - **wins support** - - ativa ou desativa o suporte a WINS; - **dns proxy** - a capacidade de fazer solicitações de proxy para um DNS. As configurações de diretório são feitas nas seções correspondentes: **path **- caminho completo para o diretório em seu disco rígido; **guest ok** - capacidade de acessar a pasta sem uma senha (guest); **browsable**- se a pasta deve ser exibida no servidor, entre outros. Se o parâmetro for definido como " no", o acesso será possível usando o caminho completo, por exemplo, ip-address hidden_directory; **force user **- o usuário que está trabalhando com a pasta. Para aumentar a segurança do servidor, geralmente é usado "nobody". O principal é que não é seguro usar o usuário root. **writable** - a definição do valor como "yes" permite que o usuário execute ações em arquivos dentro da pasta - renomear, adicionar, excluir, mover para um subdiretório e copiar; **Usuários válidos** - lista de usuários que têm acesso à pasta. Se houver vários usuários, seus nomes serão separados por vírgulas. Se o acesso for necessário para usuários pertencentes a um grupo, o símbolo "at" (@) será definido antes do nome do grupo. Importante! O nome do diretório compartilhado exibido aos usuários é igual ao nome da seção em que ele está descrito. Verifique as configurações usando o comando: ``` testparm -s ``` Reiniciar o servidor: ```bash service smbd restart ``` ```bash service nmbd restart ``` Configure o firewall. Para fazer isso, abra as portas TCP 139 e 445 nas regras, bem como as portas UDP 137 e 138, mas somente para as sub-redes em que você confia. Para especificar seu próprio intervalo de endereços, substitua o valor após a chave "-s": ``` iptables -A INPUT -p tcp -m tcp --dport 445 -s 10.0.0.0/24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 139 -s 10.0.0.0/24 -j ACCEPT ``` ``` iptables -A INPUT -p udp -m udp --dport 137 -s 10.0.0.0/24 -j ACCEPT ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_19__ Para salvar as regras e aplicá-las após reiniciar o servidor, use o pacote iptables-persistent. Instale-o: ```bash apt-get install iptables-persistent ``` Durante a instalação do pacote, o programa solicitará que você salve as regras existentes do iptables. Confirme essa ação. Para verificar as regras existentes, use: ``` iptables -L ``` ### Windows De forma semelhante ao Linux, configuraremos o acesso compartilhado às pastas públicas e privadas, mas no Windows. Para criar acesso compartilhado a uma pasta sem proteção por senha, é necessário configurar as restrições de segurança no painel de controle. Para fazer isso, abra: **Painel de controle → Rede → Central de rede e compartilhamento → Configurações avançadas de compartilhamento.** Na janela atualizada, abra a seção "Todas as redes" e procure a seção "Acesso compartilhado com proteção por senha". Defina o parâmetro como "Disable password-protected sharing" (Desativar compartilhamento protegido por senha). Para salvar os valores dos parâmetros, clique no botão "**Salvar alterações**". Agora, abriremos o acesso à própria pasta. Clique com o botão direito do mouse na pasta e selecione "Propriedades" no menu de contexto. Abra a guia "Acesso" e clique em "Configurações avançadas". Na janela de configurações avançadas de compartilhamento que se abre, marque a caixa de seleção "Abrir acesso compartilhado a esta pasta" no campo "Nome do recurso compartilhado" especifique o nome que será exibido aos usuários. Clique no botão "Permissions" (Permissões). Na janela que se abre, em grupos de usuários, selecione "Todos" e, em permissões de grupo, marque a caixa de seleção "Acesso total". Clique em "OK" nesta e em outras janelas. Na janela de propriedades da pasta pública, clique no botão "Acesso compartilhado". Na janela que se abre, adicione o usuário "Todos" e delegue os direitos de "Leitura e gravação". Clique no botão "Compartilhar". Na janela atualizada, clique em "Done" (Concluído). Configuração de uma pasta compartilhada, mas para um número limitado de pessoas. Clique com o botão direito do mouse na pasta e selecione "**Properties**". Na janela que se abre, vá para a guia "**Access** ". Clique no botão "**Configurações avançadas**". Na nova janela que se abre, marque a caixa de seleção "**Abrir acesso compartilhado a esta pasta **". Em seguida, clique no botão **"Permissões**". Na janela que se abre, no campo "**Grupos ou usuários**", selecione "**Todos "e clique em "Excluir".** Isso significa que o acesso anônimo à pasta não é permitido. A janela será atualizada. Clique no botão "**Add** ". Na janela que se abre, clique no botão "**Advanced**". A janela mudará de tamanho. Clique no botão "**Search**". Clique duas vezes para selecionar o usuário que precisa de acesso a essa pasta, por exemplo, o contador. Na janela que se abre, se desejarmos, podemos adicionar outro usuário por meio de **"Advanced" - "Search".** Da mesma forma, você pode adicionar um grupo de usuários, como "**Administradores**", mas deve entender que o acesso será concedido a todos os usuários desse grupo. Definição de direitos de acesso para o usuário "accountant". Se você precisar de acesso total ao diretório, marque a caixa de seleção no local apropriado. Clicar no botão "**OK**"retorna à janela de propriedades da pasta, onde clicamos no botão "**Acesso compartilhado**". Nessa janela, é necessário localizar e adicionar o usuário "accountant". Na janela de seleção de usuários e grupos, clique no botão "**Advanced**". A janela mudará de tamanho novamente. Clique no botão "**Search**". Na lista de usuários e grupos encontrada abaixo, selecione o usuário que está procurando. Clique duas vezes nele. Na janela restante, verifique se o usuário foi especificado corretamente e clique em "**OK**". Defina o nível de permissão necessário para o usuário e clique no botão "**Share**". Clique no botão "**Done**". ## Conectando-se a pastas compartilhadas ### do Linux Para se conectar a pastas compartilhadas a partir do ambiente Linux, é necessário instalar um software separado - o Smbclient. Estabelecer: ```bash sudo apt-get install smbclient ``` Para se conectar ao servidor, use o seguinte formato de comando: ``` smbclient -U ``` Exemplo: ``` smbclient -U buhgalter 10.0.0.1public ``` Para evitar digitar esse comando todas as vezes, é possível configurar a montagem de um diretório compartilhado como uma unidade de rede. Para fazer isso, instale o pacote CIFS-utils: ```bash sudo apt-get install cifs-utils ``` O seguinte modelo é usado para montagem: ``` mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media ``` Importante! Se precisar se conectar a pastas compartilhadas localizadas em um servidor Windows, use "Everyone" como o nome de usuário para diretórios não protegidos por senha. Para se conectar a um servidor Linux, recomendamos usar "nobody" como nome de usuário. Se você tiver acesso a diretórios protegidos, use as credenciais especificadas. ### Do Windows Conectar-se a pastas excluídas do ambiente Windows é um pouco diferente. Para fazer isso, use o seguinte modelo no Windows Explorer ou na janela de inicialização do programa (Windows + R): ``` ``` Simplesmente especificando o endereço IP do servidor, você obterá uma lista de pastas compartilhadas. Ao se conectar a um servidor Windows, o sistema de segurança pode exigir que você insira credenciais. Para conectar-se a uma pasta aberta compartilhada, use Everyone e deixe o campo de senha vazio. Ao se conectar a um servidor Linux a partir do Windows, use o modelo especificado anteriormente: ``` ``` ou apenas o endereço do servidor: ``` ``` ## Como criar um compartilhamento de rede no Samba Crie um diretório que você deseja compartilhar: ``` mkdir /home// ``` Faça um backup, caso algo dê errado: ``` sudo cp /etc/samba/smb.conf ~ ``` Edite o arquivo "/etc/samba/smb.conf": ``` sudo nano /etc/samba/smb.conf ``` Adicione isso no final do arquivo: ``` [] path = /home// valid users = read only = no ``` Insira suas próprias informações, salve o arquivo e saia dele. Reinicie o Samba: ```bash sudo service smbd restart ``` Use este comando para verificar se há erros no smb.conf: ``` testparm ``` Para acessar seu compartilhamento de rede, use: ```bash sudo apt-get install smbclient # List all shares: smbclient -L /// -U # connect: smbclient /// -U ``` Observação 1: para acessar o compartilhamento de rede, use seu nome de usuário (user_name) e senha pelo caminho "smb:////" Observe que o valor "" é passado em "[folder_name]", ou seja, o nome do compartilhamento inserido em "/etc/samba/smb.conf". Observação 2: O grupo de usuários padrão do samba é "WORKGROUP". https://serverspace.com.br/support/help/active-directory-group-policies.md As políticas de grupo do Windows são parte integrante da administração do sistema Windows. Vamos dar uma olhada em exemplos de trabalho com essa ferramenta em VDS que executam a família de sistemas operacionais Windows Server. As políticas de grupo do Windows são parte integrante da administração do sistema Windows. Vamos dar uma olhada em exemplos de como trabalhar com essa ferramenta em VDSs que executam a família de sistemas operacionais Windows Server. ## Por que as políticas de grupo são necessárias Em termos simples, a política de grupo é uma ferramenta da arquitetura do Active Directory que permite gerenciar centralmente as configurações de servidores e terminais de trabalho conectados a um domínio. Além disso, com o uso de políticas de grupo, é muito fácil distribuir o software. O administrador pode especificar as políticas para o grupo em um único local e, em seguida, aplicá-las ao grupo de usuários de destino. Em muitas empresas, como regra, é usada a divisão em departamentos: departamento de recursos humanos, contabilidade, advogados, departamento de administração de sistemas. Suponha que cada departamento precise de seu próprio conjunto mínimo de software e que as estações de trabalho devam ser configuradas para necessidades e tarefas específicas. Graças às políticas de grupo, é possível criar configurações para grupos de usuários específicos no domínio. Usando o GPO do Active Directory, um administrador pode definir e gerenciar conjuntos padronizados de configurações, especificamente para contabilidade ou recursos humanos. A configuração de estações de trabalho (computadores e usuários) é mais fácil e eficaz pelo fato de estar localizada centralmente e exigir duplicação em cada PC. ## Componentes do GPO Existem dois componentes das políticas de grupo - cliente e servidor, ou seja, uma estrutura "cliente-servidor" está sendo formada. O componente do servidor é o snap-in do Microsoft Management Console (MMC), projetado para configurar a política de grupo. O MMC pode ser usado para criar políticas, bem como para controlar e gerenciar modelos administrativos, configurações de segurança (instalação de software, scripts, etc.). O nome genérico dos "recursos" é chamado de extensão. Cada extensão pode ter uma extensão filha que permite adicionar novos componentes ou remover componentes antigos, bem como atualizá-los. O componente cliente recebe e aplica configurações de política de grupo. As extensões do cliente são componentes executados no sistema operacional do cliente que é responsável por interpretar e processar objetos de política de grupo. Para administrar um GPO, use os snap-ins do MMC - Group Policy Management Console (GPMC) e Group Policy Management Editor. Cenários de uso do GPO do Active Directory: - Configuração centralizada do pacote de software Microsoft Office. - Configuração centralizada do gerenciamento de energia do computador. - Configuração de navegadores da Web e impressoras. - Instalação e atualização de SOFTWARE. - Aplicar regras específicas com base na localização do usuário. - Configurações de segurança centralizadas. - Redirecionamento de diretório dentro do domínio. - Definição de direitos de acesso a aplicativos e programas do sistema. ## Snap-in de gerenciamento de políticas de grupo Primeiro, instale a função de servidor do Active Directory Domain Service (AD DS) no controlador de domínio. Depois disso, o snap-in Group Policy Management estará disponível; para iniciá-lo, chame a janela "Executar" (Windows + R). Na janela que se abre, digite o comando: ``` gpmc.msc ``` Clique em "**OK**". Talvez o snap não possa ser aberto porque não foi instalado anteriormente. Corrija isso. - Abra o gerenciador do servidor e selecione a instalação de funções e componentes. - Na etapa de escolha do tipo de instalação, observe o parâmetro "**Instalação de funções e componentes**". Clique no botão "**Next**". - Como a instalação é executada para o servidor atual, clique em "**Next**". - Ignoramos a instalação das funções do servidor clicando no botão "**Next**". - Na etapa de seleção de componentes, marque a caixa "**Gerenciamento de políticas de grupo**". Clique no botão "**Next**". Concluímos a instalação dos componentes como de costume. ## Criação de objetos de política de grupo Adicionando um novo objeto de política de grupo. No lado esquerdo, siga o caminho:**Floresta → Domínios → → Objetos de política de grupo**. Na parte direita da janela, clique com o botão direito do mouse em um local vazio. No menu de contexto que é aberto, selecione "**Create**". Na janela que se abre, digite o nome da nova política. Clique em " OK ". O objeto adicionado aparecerá na lista geral. ## Configurar o objeto criado Para configurar um novo objeto, clique nele com o botão direito do mouse. No menu de contexto, selecione "**Alterar**". A janela do editor de gerenciamento de política de grupo é aberta. Vamos fazer uma coisa "útil": excluir a pasta com jogos padrão do menu Iniciar. Para fazer isso, no menu à esquerda, seguiremos o caminho Configuração do usuário → Políticas → Modelos administrativos: As definições de política (arquivos ADMX) foram recebidas do computador local → Menu Iniciar e barra de tarefas. Na parte direita da janela, encontramos a opção "Remover o link" Jogos "do menu" Iniciar ". Para facilitar a pesquisa, você pode usar a classificação por nome, na parte superior da janela. Clique com o botão direito do mouse nesse parâmetro e selecione "**Alterar**". Na janela que se abre, altere o estado para "**Enabled**". No campo de comentário, recomendamos não ignorá-lo. Para concluir a configuração, clique em "**OK**". A criação de objetos pode ser considerada concluída. ## Pesquisa de objetos Em ambientes corporativos, geralmente é criado um grande número de objetos GPO. Seria bom poder localizar o objeto desejado. O console tem essa funcionalidade. Para fazer isso, clique com o botão direito do mouse na floresta, na parte esquerda da janela. No menu que se abre, selecione "Localizar..." Na janela que se abre, selecione em qual domínio pesquisar. Você pode pesquisar todos os domínios, mas isso pode levar muito tempo. Vamos tentar encontrar o objeto criado anteriormente. No campo "Elemento de pesquisa", na lista suspensa, selecione "Nome do objeto de política de grupo". Na condição, deixamos a opção "Contém". Em "Value", especifique o nome da política criada anteriormente. É por esse motivo que você deve criar nomes de política claros. Clique no botão "Add" (Adicionar). Critérios de pesquisa especificados. Clique no botão "Find" (Localizar) e veja os resultados da pesquisa. ## Excluindo um objeto de política de grupo Se o objeto GPO não for mais necessário, é melhor excluí-lo. Clicamos no objeto criado com o botão direito do mouse e selecionamos "**Delete**" no menu de contexto. Se estiver confiante em sua decisão, responda "**Yes**" à pergunta de confirmação. https://serverspace.com.br/support/help/installing-icinga-2-on-debian-9.md Este guia mostra como instalar e configurar a ferramenta de monitoramento de infraestrutura de rede Icinga 2 no Debian 9. Este guia mostra como instalar e configurar a ferramenta de monitoramento de infraestrutura de rede Icinga 2 no Debian 9. ## **O que é o Icinga 2?** O Icinga é um aplicativo de monitoramento de código aberto que pode ser usado para monitorar serviços e sistemas críticos em seu servidor virtual. O Icinga 2 pode monitorar hosts na rede ou verificar protocolos de rede externos, como o status do servidor HTTP, do servidor de e-mail, dos serviços de compartilhamento de arquivos e outros. O Icinga 2 pode ser configurado para monitorar o status dos sistemas internos, para verificar a carga, a memória, o espaço livre em disco ou outros parâmetros internos do host. O Icinga também pode ser configurado para enviar notificações e alertas por e-mail ou SMS aos administradores do sistema especificados nos contatos. **Requisitos iniciais** Muitos dos comandos deste guia exigem privilégios de superusuário. Se um comando bash: sudo: não for encontrado ao usar o comando sudo, será necessário ativar o modo de superusuário, definir o comando sudo e adicionar seu usuário ao grupo sudo: ```bash su - apt-get install sudo -y usermod -aG sudo yourusername ``` A pilha LAMP deve ser instalada no servidor virtual. Atualize os repositórios e pacotes locais: ```bash sudo apt-get update && sudo apt-get upgrade ``` **Uso do OPCache para aumentar a velocidade de download** Para aumentar a velocidade de carregamento do seu aplicativo usando o plug-in OPCache disponível no PHP 7, adicione os seguintes parâmetros OPCache ao final do arquivo de configuração do PHP: ``` vi /etc/php/7.0/apache2/php.ini ``` Insira as seguintes linhas: ``` opcache.enable=1 opcache.enable_cli=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 ``` Reinicie o Apache para que as alterações tenham efeito: ```bash systemctl restart apache2 ``` **Configurações do banco de dados** Instale o DBMS exigido pelo aplicativo Web Racing 2 para monitoramento e a interface Icinga Web 2 para armazenar usuários, contatos e outros dados coletados. Execute o seguinte comando para instalar o banco de dados MariaDB e o módulo PHP necessários para acessar o banco de dados MySQL no Debian 9: ```bash apt install php7.0-mysql mariadb-server mariadb-client ``` Faça login no console do MySQL e proteja a conta de superusuário do MariaDB: ```bash mysql -h localhost ``` ``` use mysql; ``` ```sql update user set plugin='' where user='root'; ``` ``` flush privileges; ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_10__ Em seguida, execute o script de segurança do MySQL: ``` sudo mysql_secure_installation ``` Faça login no console do banco de dados e crie o banco de dados para o Icinga 2: ```bash mysql -p ``` Crie um usuário com uma senha forte para gerenciar o banco de dados do aplicativo Icinga 2, digitando os comandos abaixo. Neste exemplo, substitua icingadb, icinga-user e strongpassword pelo nome e pelas credenciais do seu banco de dados: ```sql create database icingadb; grant all privileges on icingadb.* to 'icinga_user'@'localhost' identified by 'strongpassword'; flush privileges; ``` Crie um segundo banco de dados MySQL usado pelo Icinga 2 Web para armazenar usuários e grupos. Como na etapa anterior, substitua o nome do banco de dados e as credenciais. Você pode usar a mesma conta de usuário do MySQL para gerenciar os dois bancos de dados simultaneamente (icinga_user'@'localhost): ```sql create database icinga_users; grant all privileges on icinga_users.* to 'icinga_user'@'localhost' identified by 'strongpassword'; exit ``` **Instalação do Icinga 2** Instale o Icinga 2 e o módulo MySQL do Icinga 2 para acessar o banco de dados MariaDB: ```bash apt install icinga2 icinga2-ido-mysql ``` Durante a instalação, surge a questão de usar o módulo MySQL. Escolha Yes na linha de comando: Depois de instalar o Icinga 2, inicie o serviço Icinga 2 e verifique o status do daemon: ```bash systemctl start icinga2.service ``` ```bash systemctl status icinga2.service ``` **Instalação da interface da Web do Icinga 2** Para controlar o Icinga 2 por meio da interface da Web, instale os pacotes da interface da Web e da interface de linha de comando (CLI) do Icinga 2: ```bash apt install icingaweb2 icingacli ``` Reinicie o daemon do Icinga 2 e verifique seu status: ```bash systemctl restart icinga2.service ``` ```bash systemctl status icinga2.service ``` É necessário um banco de dados Icinga 2 para instalar o esquema MySQL: ```bash mysql -u root icingadb -p < /usr/share/icinga2-ido-mysql/schema/mysql.sql ``` Abra o arquivo de configuração IDO do MySQL da Icinga 2: ``` vi /etc/icinga2/features-enabled/ido-mysql.conf ``` Adicione as credenciais do banco de dados Icinga 2, conforme mostrado no exemplo abaixo. Use as credenciais do primeiro banco de dados que você criou na etapa anterior para criar o banco de dados: ``` library "db_ido_mysql" object IdoMysqlConnection "ido-mysql" { user = "icinga_user", password = "strongpassword", host = "localhost", database = "icingadb" } ``` Salve o arquivo e reinicie o daemon do Icinga 2: ```bash systemctl restart icinga2.service ``` Crie o diretório de registro do Icinga Web 2 e adicione as permissões apropriadas do sistema de arquivos para conceder permissões de gravação ao grupo: ``` mkdir -p /var/log/icingaweb2/ ``` ``` chgrp -R icingaweb2 /var/log/icingaweb2/ ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_27__ **Configurar o Icinga 2 por meio da interface da Web** Gere o token de instalação. Armazene-o em um local de fácil acesso. Você precisará usá-lo para acessar a configuração do Icinga 2: ``` icingacli setup token create ``` A saída desse comando deve ser algo como isto: ``` The newly generated setup token is: c0f22932e763ac41 ``` Observação: para mostrar o token gerado, caso o tenha esquecido, você pode usar o comando: ``` icingacli setup token show ``` Abra a porta HTTP para se conectar à interface da Web: ``` iptables -A INPUT -p tcp --dport 80 -j ACCEPT ``` Abra seu navegador e acesse http://exampleIP/icingaweb2/setup. Substitua o IP de exemplo pelo endereço IP de seu servidor virtual. No primeiro estágio da instalação, adicione o token criado anteriormente: Na próxima tela, marque os módulos Doc e Monitoring e clique em Next para continuar: O Icinga 2 verificará os requisitos de seu sistema e os módulos PHP para garantir que todos os requisitos sejam atendidos antes de continuar com o processo de instalação e configuração. Se alguns módulos estiverem faltando, eles deverão ser reinstalados. Role até a parte inferior da página e clique em Next para continuar: Para o tipo de autenticação, selecione**base de dados**: Use as informações do segundo banco de dados que você criou anteriormente para adicionar as credenciais necessárias para acessar o banco de dados do Icinga 2 para armazenar usuários e grupos. Use icingaweb_db como o nome para esse recurso. Os parâmetros Host e Port devem ser localhost e 3306, respectivamente. Não ative as opções persistente e SSL. Clique no botão Validate configuration (Validar configuração) para confirmar o banco de dados. Depois de verificar com êxito o banco de dados, clique em Next para ir para a próxima etapa do processo de configuração do Icinga 2: Defina um nome para o banco de dados de autenticação e clique em Next: Adicione um nome de usuário com uma senha forte para fazer login na interface da Web do Icinga 2 e clique em Next: Em seguida, configure o aplicativo e configure o registro de erros usando os seguintes parâmetros: - Marque Show Stacktraces; - Storage Type = Database; - Tipo de registro = Arquivo; - Nível de registro = Erro; - Caminho do arquivo = /var/log/icingaweb2/icingaweb2.log Veja o relatório de informações e, se não houver erros, clique em Next para continuar: Na próxima janela, clique em Next para continuar: Adicione um nome para o Icinga 2 Backend, selecione IDO como Backend Type e clique em Next: Adicione credenciais de banco de dados para configurar o ambiente de recursos do IDO. Depois de adicionar, clique no botão Validate Configuration (Validar configuração) para verificar o recurso IDO de monitoramento do Icinga. Depois que a mensagem Successfully validated for exibida, clique em Next: Configure o módulo de transporte usando os seguintes parâmetros: ``` Transport Name = icinga2 Transport Type = Local Command File Command File = /var/run/icinga2/cmd/icinga2.cmd ``` Configure as variáveis de ambiente de segurança de monitoramento (você pode deixar os valores padrão): A próxima tela mostra um relatório detalhado da configuração atual. Verifique a configuração e clique em Finish (Concluir) para concluir o processo de instalação: Após a conclusão do processo de instalação e configuração, é exibida uma mensagem informando que o Icinga Web 2 foi configurado com êxito: Faça login no painel do Icinga 2 em http://exampleIP/icingaweb2/authentication/login: Você será redirecionado para o painel de controle do Icinga Web 2, onde verá os serviços e recursos do servidor virtual que são monitorados atualmente pelo Icinga 2: Você instalou e configurou com êxito o aplicativo de monitoramento Icinga 2 e a interface Icinga Web 2 no Debian 9. https://serverspace.com.br/support/help/installing-git-on-windows.md O sistema de controle de versão Git é útil não apenas para programadores, mas também para administradores de sistemas. Considere o processo de instalação do software, bem como a configuração de uma conexão com o repositório do GitHub, em um… O sistema de controle de versão Git é útil não apenas para programadores, mas também para administradores de sistemas. Considere o processo de instalação de software, bem como a configuração de uma conexão com o repositório do GitHub, em um servidor que executa o Windows. Um pouco de teoria. O Git é um dos sistemas de controle de versão modernos mais populares. Ele é usado principalmente por desenvolvedores de software para rastrear alterações em produtos de software durante seu desenvolvimento. Inicialmente, o Git foi criado para ajudar a desenvolver o kernel do Linux, mas devido às suas vantagens, o projeto foi para as massas. Chegando à instalação. Abrimos o site oficial[do projeto](https://git-scm.com/download/win), clicamos na versão de 64 bits para Windows. O download será iniciado automaticamente, aguarde a conclusão. Execute o arquivo resultante. O instalador nos dá as boas-vindas com um contrato de licença. Clique no botão "Next" (Avançar). Na próxima etapa, especifique o caminho de instalação. Estamos satisfeitos com o padrão especificado. Clique em "Next". Na etapa de seleção de componentes, marque a criação do atalho do Git na área de trabalho e prossiga para a próxima etapa. Agora o programa de instalação oferece a criação de um atalho no menu Iniciar. Se você não achar que isso é necessário, instale a caixa de seleção correspondente. Clique no botão "Next" (Avançar). Na próxima etapa, o instalador solicitará que você selecione o editor padrão para o git. Para iniciantes, é melhor usar o nano e, para aqueles que gostam de coisas mais complicadas, o Vim. Embora o Notepad ++ e outros sejam permitidos. Vá para a próxima etapa. Agora o instalador pergunta como você usará a linha de comando: - Use o Git somente a partir do Git Bash - use somente a partir da linha de comando Bash. - Use o Git a partir do prompt de comando do Windows - use a linha de comando Bash, bem como o conjunto mínimo de comandos Git a partir da linha de comando do Windows. - Use o Git e as ferramentas Unix opcionais no prompt de comando do Windows - Use o Git e os utilitários Unix na linha de comando do Windows. A seleção dessa opção substituirá alguns utilitários do Windows, por exemplo, localizar e classificar. Deixamos a primeira opção e seguimos em frente. Agora o instalador pergunta qual biblioteca deve ser usada para conexões HTTPS. Deixe o openssl e vá para a próxima etapa. A próxima etapa pode ser considerada a mais significativa. A questão para o instalador é qual formato usar para completar a linha. Um dos recursos que diferenciam o Windows dos sistemas do tipo Unix é o caractere de nova linha nos arquivos, ou seja, LF e CRLF são caracteres de controle para quebras de linha no Unix e no Windows, respectivamente. Recomendamos que você selecione a opção sugerida pelo sistema - depurar o arquivo no formato Windows e fazer o download do arquivo no formato Unix. Clique no botão "Next" (Avançar). Nesta etapa, o programa perguntará qual terminal usar em seguida: - MinTTY - terminal Unix; - Windows é o terminal padrão (linha de comando) do Windows. No nosso caso, deixe "como está" e siga em frente. Na próxima etapa, o instalador solicitará que você anote as funções necessárias: - Caching do sistema de arquivos. - Gerenciador de credenciais do Git - habilitar o gerenciador de credenciais. - Links simbólicos - permitir o uso de links simbólicos. Escolha o que é necessário e passe para a próxima etapa. Nesta etapa, o instalador sugere o uso da opção experimental. Usá-la ou não fica a seu critério. Clique no botão "Install" (Instalar). O programa começa a copiar arquivos. Estamos aguardando o fim do processo. No final do processo de instalação, clique em "Finish" (Concluir). Estamos conectados ao repositório. Supõe-se que você já tenha sua própria conta no github/gitlab. Caso contrário, no caso do github, passaremos por um processo de registro simples no [website](https://github.com/). Em seguida, faça login nele e crie um repositório. Para isso, clique no botão "Start a project" (Iniciar um projeto). Especifique o nome do repositório e clique no botão "Create repository" (Criar repositório). Repositório criado. Adicionar arquivos. Suponha que temos um arquivo que precisa ser adicionado ao repositório git ou gitlab. Abra a pasta em que o arquivo está localizado, clique com o botão direito do mouse no espaço livre e selecione "Git Bash Here" no menu de contexto que é aberto. A linha de comando será aberta. Executamos sequencialmente os seguintes comandos: ```bash git config --global user.email "yourmail@example.com" ``` ```bash git config --global user.name "Your name" ``` Então, inserimos nosso e-mail e nome. Para começar a rastrear as alterações na pasta atual, execute os seguintes comandos: ```bash git init ``` ```bash git add . ``` Executamos nosso primeiro commit e adicionamos as alterações ao servidor: ```bash git commit -m "Init" ``` Importante. Para fazer alterações no servidor, você deve usar o github: ```bash git remote add origin https://github.com/user/repository_name.git ``` ```bash git push -u origin master ``` Para o gitlab: ```bash git remote add gitlab https://server/namespace/project.git ``` ```bash git push -u gitlab master ``` Depois de executar o comando, uma janela de autorização será aberta. Insira os dados que foram usados durante o registro. Configuração da autenticação usando chaves SSH. Primeiro, crie uma chave: ```bash ssh-keygen -t rsa -b 4096 -C "yourmail@gmail.com" ``` Durante a geração da chave, o programa solicitará que você digite uma frase secreta, que é necessária para proteger a própria chave. Você pode responder à pergunta pressionando duas vezes Enter. A chave privada estará localizada no caminho C: Users .sshid_rsa. A chave pública está em C: Users .sshid_rsa.pub Execute o agente SSH: ``` eval $(ssh-agent -s) ``` Adicione as chaves ao agente ssh: ```bash ssh-add ~/.ssh/id_rsa ``` Adicione a chave criada ao servidor Git. No site do github, no canto superior direito, clique no ícone da conta e selecione "Setting" (Configuração). Na página atualizada, no menu esquerdo, selecione "SSH and PGP keys" e, na parte principal da janela, em frente às chaves SSH, clique no botão "New SSH key". Preencha o campo Title (Título). No campo Key (Chave), cole o conteúdo do arquivo C: Users .sshid_rsa.pub Clique no botão "Add SSH key" (Adicionar chave SSH). Se tudo for feito corretamente, algo como isto aparecerá: Para verificar as configurações, execute o comando: ```bash ssh -T git@ ``` Por exemplo: ```bash ssh -T git@github.com ``` Durante a execução do comando, o programa perguntará: "Tem certeza de que deseja continuar a conexão". Esse é um problema de segurança padrão. A resposta é sim. Se tudo for feito corretamente, o programa emitirá um discurso de boas-vindas. https://serverspace.com.br/support/help/how-to-change-rdp-account-password.md Nos sistemas operacionais da família Microsoft Windows Server, é comum usar o atalho de teclado - o problema é que os "três botões" não podem ser usados por meio da "Conexão de área de trabalho remota". De qualquer forma, vamos… Um dos bons hábitos de qualquer usuário de PC, e especialmente de um administrador de sistema, é alterar periodicamente as senhas das contas. O principal é não esquecer depois. Como alterar a senha na área de trabalho remota? - [Como alterar a senha no Windows Server 2008](#step1) - [Como alterar a senha no Windows Server 2012 e no Windows Server 2012 R2](#step2) - [Como alterar a senha no Windows Server 2016](#step3) - [Modo alternativo de alterar a senha no Windows Server 2016](#step4) - [Como alterar a senha em um computador de área de trabalho remota com a combinação CTRL + ALT + END](#step5) - [Como alterar a senha na área de trabalho remota com o teclado na tela](#step6) - [Como alterar a senha com o VBS-script ou com o PowerShell](#step7) - [Como alterar a senha usando o atalho da extensão do shell do Windows Explorer](#step8) - [Como alterar a senha com o Desktop Web Access](#step9) - [Como alterar a senha com CredSSP e NLA](#step10) - [Como alterar a senha com um arquivo RDP especial](#step11) Nos sistemas operacionais da família Microsoft Windows Server, é comum usar o atalho de teclado Ctrl + Alt + Del para alterar a senha; o problema é que os "três botões" não podem ser usados por meio da "Conexão de área de trabalho remota". Vamos ver como alterar a senha mesmo assim. ## No Windows Server 2008, isso pode ser feito no menu Iniciar, clicando em**"Segurança do Windows".** Na tela atualizada, selecione**"Alterar senha".** Digitamos a senha antiga e a nova e ela é confirmada. ## No Windows Server 2012 e no Windows Server 2012 R2, a tarefa se tornou um pouco mais complicada. Abra o bloco de notas e escreva duas linhas: ``` set objShell = CreateObject("shell.application") objshell.WindowsSecurity ``` Salvamos o arquivo com a extensão * .vbs (escrevemos manualmente). Para fazer isso, selecione File -> Save as ... Em uma nova janela, selecione o diretório para salvar o arquivo, por exemplo, Desktop. No Tipo de arquivo, selecione Todos os arquivos e, no Nome do arquivo, especifique um nome arbitrário, por exemplo, 1.vbs. Depois de salvar o arquivo, ele estará pronto para ser executado. Ao clicar duas vezes com o botão esquerdo do mouse, será exibida uma tela na qual **"Alterar senha" deve ser selecionado.** Além disso, tudo é familiar. Preencha os campos com a senha antiga, indique a nova senha e sua confirmação. Clique no ícone de seta. ## O sistema operacional Windows Server 2016 agrada com sua atenção ao usuário, mas, para alterar a senha remotamente, você ainda precisa procurar esse item. Abra o menu Iniciar e clique no ícone do usuário, selecione **"Alterar configurações da conta" no menu que se abre.** Na janela "Parameters" (Parâmetros) que se abre, selecione as opções de "Sign-in" (Entrar) e, na seção Password (Senha), clique no botão Change (Alterar): Em uma nova janela, especifique a senha atual e clique no botão Next (Avançar). A janela será atualizada e solicitará uma nova senha, sua confirmação, bem como uma dica para a senha. Clique no botão "Next" (Avançar). Como resultado, clique no botão Finish (Concluir). O próximo login será feito com uma nova senha: ## Uma forma alternativa Esse método é aplicável tanto para alterar a senha da sua conta quanto das contas de outros usuários. No menu Iniciar, selecione Administração ("Ferramentas de administração" no Windows Server 2016). Em uma nova janela, clique duas vezes para abrir **"Gerenciamento do computador".** Na parte esquerda da janela que se abre, abra a ramificação "Usuários e grupos locais" e abra a pasta Usuários. Na parte principal da janela, clique com o botão direito do mouse no usuário e selecione "**Definir senha..." no menu de contexto.** O sistema emitirá um aviso. Depois de lê-lo cuidadosamente e perceber todos os riscos, clique no botão "Continuar". Caso contrário, **"Cancelar."** Em uma nova janela, especifique a nova senha e sua confirmação. Quando terminar, clique no botão OK. ## **Como alterar a senha na área de trabalho remota com a combinação CTRL + ALT + END.** Para obter a combinação CTRL + ALT + DEL na área de trabalho remota, você precisa pressionar CTRL + ALT + END. Pressionar essa combinação abrirá uma caixa de diálogo para nós, na qual teremos de selecionar "Change a password" (Alterar uma senha): Para alterar a senha, precisaremos fornecer alguns dados: ## **Como alterar a senha na área de trabalho remota usando o teclado na tela.** Ao se conectar à área de trabalho remotamente, a senha pode ser alterada usando o teclado na tela. Para abrir o teclado na tela, digite "On-Screen Keyboard" ou "OSK" no menu Iniciar. Depois que o teclado na tela aparecer, mantenha pressionadas as teclas ALT + CTRL e use o mouse para pressionar o botão Del. Será exibida uma caixa de diálogo na qual você mesmo precisará selecionar "Change a password" (Alterar uma senha): Para alterar a senha, precisaremos especificar: nome de usuário, senha antiga e repetir a nova senha duas vezes: ## **Como alterar a senha na sessão RDP com um script VBS ou PowerShell.** Para chamar a janela de alteração de senha usando um script VBS, crie o arquivo WindowsSecurity.vbs e insira as seguintes linhas de código nele: ``` set objShell = CreateObject("shell.application") ``` ``` objshell.WindowsSecurity ``` Depois disso, após clicar duas vezes nesse script VBS, uma caixa de diálogo será aberta, na qual será necessário selecionar "Change password" (Alterar senha): Para alterar a senha, precisaremos especificar: nome de usuário, senha antiga e repetir a nova senha duas vezes: Além disso, para abrir a janela de alteração de senha usando o PowerShell, abra o próprio PowerShell usando o menu Iniciar e use o comando: ``` New-Object -COM Shell.Application).WindowsSecurity() ``` Depois disso, uma caixa de diálogo será aberta na sua frente, na qual precisaremos selecionar "Change password" (Alterar senha): Para alterar a senha, precisaremos especificar: nome de usuário, senha antiga e repetir a nova senha duas vezes. ## Para abrir a caixa de diálogo de alteração de senha, você pode criar um atalho com um link para a extensão do shell do Windows Explorer. Primeiro, crie um atalho e especifique o caminho fornecido para ele: ``` C:Windowsexplorer.exe shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0} ``` Em seguida, escolha um nome para o rótulo e crie-o: Depois de clicar duas vezes nesse atalho, será aberta uma caixa de diálogo, na qual será necessário selecionar "Change password" (Alterar senha): Para alterar a senha, precisaremos especificar: nome de usuário, senha antiga e repetir a nova senha duas vezes. ## Alterar a senha com o Acesso à Web da Área de Trabalho Remota No Windows Server 2012 /R2 e posterior, os usuários remotos com direitos de Remote Desktop Web Access podem redefinir suas senhas por meio de uma página da Web especial no servidor Remote Desktop Web Access. A funcionalidade de alteração de senha remota está disponível no servidor com a função Remote Desktop Web Access, mas esse recurso está desativado por padrão. Para ativar esse recurso: Abra o console de gerenciamento do servidor IIS Manager e vá para [Nome do seu servidor] - Sites - Site padrão - RDWeb - Páginas e abra a seção Configurações do aplicativo. No painel direito, selecione a opção chamada "PasswordChangeEnabled" e altere seu valor para "true". Para verificar a disponibilidade da página de alteração de senha, acesse: https://[RD-WEB-1]/RDWeb/Pages/en-US/password.aspx Depois de alterar com êxito a senha do usuário, deverá ser exibida uma mensagem: ``` Your password has been successfully changed. ``` ## Como alterar a senha no RDP com CredSSP e NLA O CredSSP (Credential Security Support Provider) é um protocolo de passagem de credenciais usado pelo RDP para proteger ataques DDoS e execução não autorizada de processos. **Autenticação em nível de rede (NLA)** é um recurso dos Serviços de Área de Trabalho Remota que exige que o usuário conectado se autentique antes de estabelecer uma sessão com o servidor. Há um recurso importante referente à alteração de uma senha de usuário expirada com o RDP, relacionado à opção Network Level Authentication (NLA) e ao protocolo CredSSP (Credential Security Support Provider). Por padrão, o CredSSP com NLA para RDP está ativado em todas as versões do Windows a partir do Windows Server 2012/Windows 8. O NLA protege o servidor RDP executando a autenticação do usuário antes de estabelecer uma sessão RDP com o servidor. Se a senha do usuário tiver expirado ou se o administrador do AD do usuário tiver ativado a opção "userAccountControl", que exige a alteração da senha no primeiro login, será exibido um erro ao fazer login com o RDP: ``` Remote Desktop Connection You must change your password before logging on the first time. Please update your password or contact your system administrator or technical support. ``` Como resultado, o usuário não conseguirá se conectar ao servidor RDP e alterar a senha. Nesse caso, para que o próprio usuário possa alterar a senha, você pode: 1) Configurar o Remote Desktop Web Access (RDWA) com uma página de alteração de senha, como nesta parte do manual : [Como alterar a senha com o Desktop Web Access](#step9) 2) Crie um servidor separado para alterar as senhas dos usuários. Nesse servidor, você precisa desativar a função NLA. Nesse caso, os usuários poderão alterar a senha. 3) O usuário pode alterar sua senha remotamente com o PowerShell, conforme mostrado nesta parte do tutorial [Como alterar a senha com o VBS-script ou com o PowerShell](#step7) ## Alterando a senha na área de trabalho remota usando um arquivo RDP especial: Se você quiser que o usuário altere a senha usando um arquivo .rdp, deverá fazer a correspondência entre as definições de segurança do nível de configuração do RDP na interface RDS e o padrão do arquivo .rdp do servidor na interface do cliente. Tente no lado do cliente, abra o mstsc.exe. No menu Iniciar, digite "mstsc" e selecione "Remote Desktop Connection": Em seguida, configuramos todos os parâmetros necessários para a conexão com o servidor. Clique em "Show more" (Mostrar mais), digite o endereço IP do nosso computador remoto e o nome de usuário e, em seguida, usando o botão Save As (Salvar como), crie um arquivo RDP: Depois disso, abra o arquivo RDP com um editor de texto e adicione a linha no final do arquivo: ``` enablecredsspsupport:i:0 ``` Explicação: A adição desse parâmetro às propriedades da conexão RDP permitirá que o cliente estabeleça com êxito uma sessão RDP com o sistema remoto e altere a senha antes de obter acesso à área de trabalho remota. No entanto, essa configuração reduzirá o nível de segurança da conexão RDP, pois o cliente não poderá usar a autenticação em nível de rede (NLA), que [descrevemos anteriormente em nosso artigo](#helpNLA). Se a NLA estiver ativada, o usuário não conseguirá se conectar e receberá o erro correspondente: A única maneira de corrigir esse erro é diminuir o nível de segurança do RDP no lado do servidor RDS, desativando o requisito obrigatório de autenticação em nível de rede (NLA). ## Importante! **Não recomendamos fazer isso se seu computador remoto puder estar sujeito a ataques DDoS e processos não autorizados.** Para alterar essa configuração, em um computador remoto, no menu Iniciar, digite "Painel de Controle": Em seguida, vá para "Sistema e segurança": Depois disso, vá para "System" (Sistema): Abrimos a janela que apareceu em tela cheia e selecionamos "Configurações avançadas do sistema": "Permitir conexões somente de ...": Teremos uma janela com "Propriedades do sistema", vá até a parte com "Acesso remoto" e desmarque a caixa "Permitir conexões somente de ...", depois clique em "Aplicar" e "OK": Depois que desativamos a função NLA no lado do servidor RDP, o cliente, usando um arquivo RDP especial, pode estabelecer com êxito uma sessão RDP e alterar a senha nela: Depois disso, você poderá se conectar com a nova senha. Portanto, consideramos todas as maneiras possíveis de alterar a senha da conta com o RDP. https://serverspace.com.br/support/help/configuring-the-network-interface-in-ubuntu-18-04.md Configuração da interface de rede no Ubuntu 18.04. Embora o conhecido arquivo de configuração /etc/network/interfaces exista, a configuração via ifupdown foi substituída pelo netplan (ifupdown foi substituído...). Configurar a rede em versões recentes do Ubuntu, como 18.04 e 20.04, exige atenção às mudanças introduzidas pelo Netplan. Diferente do método tradicional usando /etc/network/interfaces e ifupdown, o Netplan utiliza arquivos em formato YAML localizados no diretório /etc/netplan para gerenciar interfaces de rede, endereços IP, gateways e servidores DNS. Este guia rápido ajudará você a entender como aplicar, testar e corrigir configurações de rede, incluindo múltiplas interfaces, tanto em ambientes com IP estático quanto com DHCP, garantindo que seus servidores funcionem de forma estável e eficiente. A configuração da interface de rede no Ubuntu 18.04 foi uma surpresa para muitos. Embora exista o arquivo de configuração /etc/network/interfaces, familiar a todos, ele diz: A configuração por meio do ifupdown foi substituída pelo netplan. Configuração via/etc/netplan. Se você quiser voltar ao ifupdown, configure via comando: ```bash sudo apt install ifupdown ``` Não instalaremos mais nada. Configure o que existe. Primeiro, observe o conteúdo do diretório /etc/netplan. Vejamos o que há nesse arquivo. O arquivo de configuração é escrito em YAML. As configurações mostradas no exemplo acima foram feitas no estágio de instalação do sistema operacional. Vamos dar uma olhada mais de perto. - network - início do bloco de configuração de rede; - ethernets - esse parâmetro informa que a próxima etapa será a configuração do protocolo de mesmo nome; - enp0s3 - o nome da interface de rede configurável. É provável que, em seu caso, o nome seja diferente. Uma lista de todas as interfaces pode ser visualizada com o comando ifconfig -a; - addresses - bloco de endereços IP atribuídos a uma interface com um prefixo de rede. Um endereço IP é indicado como no exemplo, vários endereços são indicados entre colchetes "[e]", separados por vírgulas; - gateway4 - gateway de rede IPv4; - nameservers - bloco de configuração do servidor de nomes. - addresses - é no bloco de nameservers que indica quais servidores DNS devem ser acessados. Indicados sem um prefixo de rede. Vários endereços são indicados entre colchetes "[e]", separados por vírgulas. - versão - versão da linguagem YAML. Ativamos as configurações atuais com o comando: ``` netplan apply ``` Examinamos as principais opções. Mais exemplos de configuração estão no [site oficial](https://netplan.io/). E se o sistema não usar o netplan? É a maneira antiga. Primeiro, obtemos uma lista das interfaces disponíveis: ``` ifconfig -a ``` Nesse caso, há 2 interfaces de rede sem endereços IP (por enquanto). Configuradas por DHCP. Vamos passar para as configurações. ``` sudo nano /etc/network/interfaces ``` Um servidor que recebe IP de um servidor DHCP não é uma boa solução. Trazemos o arquivo para o formulário: O que isso significa. - auto enp0s3 - inicialização automática de uma interface específica; - iface enp0s3 inet static - informa sobre a configuração estática; - address 10.10.2.6 - na verdade, o endereço IPv4 dessa interface; - netmask 255.255.255.0 - máscara de rede. - gateway 10.10.2.1 - gateway IPv4 - dns-nameservers 8.8.8.8 - especifique os servidores DNS A segunda interface e as subsequentes são configuradas da mesma forma ou configuradas usando um servidor DHCP. Aplicar configurações: ``` sudo /etc/init.d/networking restart ``` Se tudo for feito corretamente, aguardaremos o processo de reinicialização do serviço. Importante. Pode acontecer de o arquivo de configurações estar correto, mas o servidor não alterar o endereço IP. Nesse caso, reiniciar o servidor com o comando ajuda: ``` sudo reboot ``` ## FAQ: - **Como verificar se as configurações de rede foram aplicadas corretamente? ** Use os comandos ip a ou ifconfig -a para conferir os endereços IP atribuídos às interfaces. - **O que fazer se o servidor não aplicar o endereço IP configurado? ** Reinicie o serviço de rede com sudo /etc/init.d/networking restart ou reinicie o servidor com sudo reboot. - **Posso voltar a usar ifupdown no Ubuntu 20.04 ou 18.04?** Sim, instalando o pacote ifupdown e configurando via /etc/network/interfaces, mas o método recomendado é via Netplan. - **É possível configurar múltiplas interfaces de rede? ** Sim, cada interface adicional pode ser configurada no Netplan ou no ifupdown com blocos separados de configuração. ## Guia Rápido de Configuração de Rede no Ubuntu | Comando / Arquivo | Descrição | | --- | --- | | /etc/netplan | Diretório de configuração das interfaces de rede no Ubuntu 18.04 e 20.04 | | netplan apply | Aplicar as configurações de rede atuais | | ifconfig -a | Exibir todas as interfaces de rede e seus endereços IP atuais | | /etc/network/interfaces | Arquivo de configuração de rede para o método antigo ifupdown | | sudo apt install ifupdown | Instalar o pacote ifupdown para usar o método antigo de configuração de rede | | auto | Inicialização automática de uma interface de rede ao iniciar o sistema | | iface inet static | Configuração de IP estático para a interface | | address | Endereço IP estático da interface | | netmask | Máscara de rede da interface | | gateway | Endereço IP do gateway padrão | | dns-nameservers | Servidores DNS configurados para a interface | | sudo /etc/init.d/networking restart | Reiniciar serviços de rede usando ifupdown | | sudo reboot | Reiniciar o servidor caso o IP não tenha sido aplicado | ## Conclusão: Configurar a interface de rede no Ubuntu moderno exige atenção às mudanças introduzidas pelo Netplan. Embora o arquivo /etc/network/interfaces ainda exista, a abordagem recomendada é usar o Netplan em YAML, garantindo maior consistência e compatibilidade com as versões atuais do sistema. Testar as configurações e reiniciar os serviços de rede quando necessário assegura que os endereços IP e gateways sejam aplicados corretamente, permitindo que servidores funcionem de forma estável e eficiente. https://serverspace.com.br/support/help/windows-server-versions-editions-licensing.md Este artigo apresenta uma variedade de versões diferentes dos sistemas Windows Server, compara as edições disponíveis e aborda o tópico de seu licenciamento. Quando se perguntam qual versão do Windows Server escolher para seus negócios, os usuários, em geral, se deparam com uma grande variedade, e nem sempre está claro como escolher a opção mais adequada. O sistema operacional Windows Server não tem apenas versões diferentes, mas também edições diferentes. Vamos dar uma olhada nas diferenças entre elas. **O que é uma versão do Windows Server?** Nos anos 90, durante a época do Windows NT, cada versão do Windows Server tinha um número exclusivo. Por exemplo, o Windows NT tinha os números 3.1, 3.51 e 4.0. Mas, a partir de 2000, a Microsoft começou a adicionar, após o nome, o ano em que o sistema operacional foi lançado: Microsoft Windows 2000, Windows Server 2003, 2008 (que também tinha a versão R2), 2012 (também com R2), 2016 e 2019, etc. Cada nova versão do Microsoft Windows Server apresenta uma nova funcionalidade. Por exemplo, a virtualização do Hyper-V, do Server Core e do BitLocker foi introduzida no Windows Server 2008, os contêineres do Windows e do Nano Server foram introduzidos no Windows Server 2016 e Windows Server 2019 traz o Windows Admin Center - uma nova maneira de administrar remotamente a infraestrutura de servidores, melhorar a infraestrutura hiperconvergente e oferecer suporte profundo ao subsistema Linux. **Qual é o fim do suporte?** Como se costuma dizer, nada dura para sempre. E, em algum momento, a Microsoft para de lançar patches para software legado. A data até a qual a Microsoft lança atualizações de produtos é chamada de data final de suporte. Após essa data, uma versão desatualizada do sistema operacional se tornará um alvo fácil para o malware, pois não receberá mais atualizações de segurança e, portanto, estará vulnerável a novas explorações. Os sistemas operacionais da Microsoft geralmente têm suporte por pelo menos 10 anos. Por exemplo, o popular Windows Server 2003, lançado em abril de 2003, teve um amplo suporte que terminou em 2015. O suporte estendido para o Windows Server 2008 R2 deve terminar em janeiro de 2020, e o Windows Server 2012 R2 continuará a receber atualizações até pelo menos outubro de 2023. As versões do Server 2016 e 2019 receberão atualizações até 2027 e 2029, respectivamente. Portanto, por motivos de segurança, as organizações devem usar apenas as versões mais recentes do Windows Server. **O que é a edição do Windows Server?** Quando você compra um carro, pelo menos vários conjuntos do mesmo modelo estão disponíveis para você. Por exemplo, a opção econômica básica, uma opção luxuosa com bancos de couro e teto solar, bem como uma opção esportiva com rodas maiores e um motor mais potente. Em outras palavras, cada versão do carro tem seu preço e conjunto de recursos para grupos de clientes com orçamentos e necessidades diferentes. O mesmo acontece com as edições do Windows Server. Cada opção inclui funcionalidades que são adequadas para diferentes empresas, dependendo do tamanho e do orçamento. Por exemplo, edições diferentes podem suportar um número diferente de usuários. **Diferenças entre as edições do Windows Server 2012 R2** Para ajudar a entender algumas das diferenças entre as edições do sistema operacional, vamos dar uma olhada em um exemplo do Windows Server 2012 R2: - **Foundation **é um sistema operacional de servidor de uso geral que é mais adequado para servidores de nível inferior. O sistema operacional suporta apenas um processador e 32 GB de RAM. A edição Foundation (não disponível no Windows Server 2016) é limitada a 15 usuários, o que a torna adequada apenas para pequenos escritórios. O Foundation só está disponível por meio de OEMs, o que geralmente significa que ele é pré-instalado em computadores que você compra de empresas como Dell e HPE. - **Essentials**(anteriormente SBS ou Small Business Server) é uma solução de servidor fácil de configurar que suporta até 25 usuários e 50 dispositivos, o que o torna adequado para pequenos escritórios. O Essentials oferece suporte a hardware mais avançado com até 64 GB de RAM e dois processadores. Ao contrário de outras edições do Windows Server, o Essentials pré-configura funções como Active Directory, DNS, serviços de arquivos, IIS e Área de Trabalho Remota, o que o torna ideal para organizações com TI menos desenvolvida ou equipe de TI menos experiente. - **Standard**não restringe os usuários, mas, ao contrário do Foundation e do Essentials, você terá que adquirir licenças de acesso de cliente (CALs) separadamente, dependendo do número de pessoas que precisa suportar. O Standard suporta um máximo de 4 TB de RAM, e cada licença adquirida se estende a dois processadores. Se você estiver interessado em virtualização, esta versão permitirá que você use o hipervisor Hyper-V para executar até duas instâncias virtuais do sistema operacional (instâncias virtuais adicionais do Windows Server exigirão custos adicionais) no mesmo hardware físico, o que torna a edição Standard adequada para um ambiente levemente virtualizado. - **Datacenter** é a melhor e mais cara edição do Windows Server. O Windows Server 2012 R2 Datacenter é quase idêntico à versão padrão, com uma grande exceção. Com a licença do Datacenter, é possível executar um número ilimitado de instâncias virtuais com o Windows Server como sistema operacional convidado em um único computador com dois processadores. Essa pequena diferença tem um grande impacto, pois as empresas podem economizar ao executar dezenas de instâncias do sistema operacional em um único servidor. **As diferenças entre as edições do Windows Server 2016 e 2019** - **Hyper-V **é uma edição gratuita do Windows Server projetada apenas para iniciar a função de hipervisor do Hyper-V. Seu objetivo é ser um hipervisor para seu ambiente virtual. Ele não tem uma interface gráfica. Essa é uma versão reduzida do Server Core. Você usará o sconfig.cmd para ativar o hipervisor e, em seguida, gerenciará o ambiente usando o Gerenciador do Hyper-V (como parte do RSAT) de uma estação de trabalho do Windows 10 em sua rede. Recomenda-se que você use essa edição para seu hipervisor a fim de manter a pureza e a simplicidade do licenciamento. - **Essentials **- ideal para empresas de pequeno e médio porte e pessoas que precisam de funções básicas de servidor. A GUI é praticamente a mesma do Standard, com exceção do assistente de configuração do Essentials. **Direitos de virtualização** Você tem permissão para executar uma instância física do Essentials como um host Hyper-V que hospeda uma instância virtual do Essentials. Você precisa remover todas as funções, exceto a função Hyper-V, da instância física do Essentials para garantir a conformidade. O Essentials também é adequado para uma instância virtual em qualquer outro hipervisor. **Modelo de licenciamento** baseado no processador. As licenças de cliente não são necessárias, mas você está limitado a 25 usuários e 50 dispositivos conectados ao servidor. **Limitações de hardware** O Essentials está limitado a 64 GB de RAM e 2 CPUs no computador em que está instalado. - **Standard **- ideal para qualquer empresa ou para pessoas que precisam de recursos avançados, mas não serão intensamente virtualizadas. **Direitos de virtualização** Você pode executar até duas máquinas virtuais ou contêineres Hyper-V ou uma instância física com uma licença padrão. Se você usar a função Hyper-V somente em uma instância física, poderá usá-la como um host Hyper-V e, em seguida, hospedar duas máquinas virtuais Hyper-V nesse host. Se quiser usar várias funções em uma instância física, não será possível iniciar a máquina virtual na parte superior com a mesma licença. **Modelo de licenciamento** baseado no núcleo. As licenças de cliente são necessárias para cada usuário ou dispositivo que se conecta indireta ou diretamente ao servidor. Por exemplo, se você usar o servidor como um servidor de arquivos, precisará de uma CAL para cada conta de usuário ou computador que acessar esse servidor de arquivos na rede. **Limitações de hardware** O padrão é limitado a um máximo de 24 TB de RAM e 512 núcleos. - **Datacenter**- ideal para qualquer empresa com alto grau de virtualização. Você recebe uma licença dependendo de quantos núcleos seus hosts têm, nos quais qualquer máquina virtual com uma versão do Datacenter pode viver (executar ou potencialmente executar após o Vmotion). Esse licenciamento, à primeira vista, parece caro, mas permite que você crie um número ilimitado de máquinas virtuais executando o Datacenter nos hosts que você considerar. Se você tiver um pequeno número de hosts (e, posteriormente, kernels) e um grande número de máquinas virtuais em potencial, essa licença não será difícil. **Direitos de virtualização** O número ilimitado de máquinas virtuais ou contêineres Hyper-V. Conforme mencionado acima, você comprará licenças dependendo de quantos núcleos tiver nos hosts. Nesse ponto, você pode executar quantas máquinas virtuais quiser nos hosts usando qualquer função. **Modelo de licenciamento** baseado em núcleos. Certifique-se de não selecionar acidentalmente essa versão ao instalar em um servidor físico que não hospeda máquinas virtuais. As licenças de cliente são necessárias para cada usuário ou dispositivo que se conecta indireta ou diretamente aos servidores em seu ambiente. **Diferenças no licenciamento para o Windows Server 2016 e versões mais recentes** Embora os preços para o Windows Server 2012 R2, 2016 e 2019 sejam os mesmos, se você estiver usando uma licença padrão ou uma licença de Datacenter para o Windows Server 2016 ou posterior, há algumas alterações importantes das quais você precisa estar ciente. Em primeiro lugar, embora as licenças do Windows Server tenham sido vendidas historicamente para cada processador/socket, no Windows Server 2016, o modelo de licenciamento mudou para cada núcleo. Assim, se você tiver um servidor com 2 processadores com 24 núcleos, no Windows Server 2012 você só precisará comprar uma licença Standard ou Datacenter. No Windows Server 2016, você terá que comprar licenças para todos os 24 núcleos. Isso se torna bastante difícil, pois há muitas regras, mas o principal é que, se você tiver um servidor com 16 núcleos, os custos serão aproximadamente os mesmos. No entanto, o licenciamento do sistema operacional pode ser mais caro em servidores com maior densidade de núcleos. Apesar da mudança na licença de núcleo, as regras de virtualização permanecem as mesmas no Windows Server 2016 e posteriores. Depois de licenciar todos os núcleos no servidor, com a versão padrão, você recebe 2 licenças para o sistema operacional convidado do Windows Server, em comparação com o número ilimitado na versão Datacenter. Além disso, os recursos do Windows Server 2012 Standard e Datacenter eram os mesmos. Mas alguns recursos do Windows Server 2016, como o Storage Spaces Direct ou máquinas virtuais blindadas, só estão disponíveis na versão Datacenter. **Comparação das opções de instalação do Windows Server 2016 e 2019** As edições Standard e Datacenter oferecem uma variedade de opções de instalação. Essas opções afetam os recursos que estarão disponíveis após a instalação, como uma interface gráfica do usuário e um conjunto de serviços. As seguintes opções de instalação estão disponíveis: - Desktop Experience (com uma interface gráfica); - Core; - Nano **Desktop Experience** é uma opção de instalação com a qual a maioria das pessoas está familiarizada. Essa opção instala a maioria das funções e papéis prontos para uso, incluindo a GUI da área de trabalho. Você receberá o Server Manager, que permite adicionar e remover funções e componentes. A vantagem é que o sistema pode ser mais fácil de gerenciar para pessoas que estão acostumadas a usar uma interface gráfica. A desvantagem é que você terá que lidar com mais atualizações, reinicializações e portas abertas. Saiba mais sobre a Microsoft[aqui](https://docs.microsoft.com/en-us/windows-server/get-started/getting-started-with-server-with-desktop-experience). O** Server Core** não tem uma interface gráfica e várias funções que são instaladas por padrão na opção Desktop Experience. O núcleo do servidor tem menos espaço em disco e, portanto, uma área de ataque menor devido à base de código menor. Também há menos atualizações, reinicializações e portas abertas com as quais trabalhar. Essa é uma ótima opção para servidores de infraestrutura, como controladores de domínio do Active Directory e servidores DNS. Esta edição carece de ferramentas de acessibilidade, ferramentas de configuração de servidor integradas e suporte a som. Essa versão não tem frescuras. Não será errado garantir que você esteja familiarizado com a administração de linha de comando. Você pode ler mais sobre isso[no site da Microsoft](https://docs.microsoft.com/en-us/windows-server/administration/server-core/what-is-server-core) . **Nano** A partir do Windows Server 2019, o Nano está disponível apenas como uma imagem em contêiner do sistema operacional. Ele foi projetado para ser executado como um contêiner dentro de um host de contêiner, como o Server Core mencionado acima. Se você depender de aplicativos de contêineres projetados para o sistema operacional do servidor, usará essa versão para compilar esses aplicativos. O Nano pode ser implantado usando as versões Standard ou Datacenter, mas você deve ter o Software Assurance vinculado ao licenciamento do servidor host. Você pode saber mais sobre isso[no site](https://docs.microsoft.com/en-us/windows-server/get-started/nano-in-semi-annual-channel) da Microsoft. https://serverspace.com.br/support/help/delete-a-shared-project.md A instrução a seguir descreve como excluir um projeto compartilhado no painel de controle. O que é um projeto compartilhado e como criá-lo pode ser encontrado em nossas instruções. A instrução a seguir descreve como excluir um projeto compartilhado no painel de controle. O que é um _projeto compartilhado_ e como criá-lo pode ser encontrado em nossa instrução. ## Como excluir um projeto? Na guia **"Configurações do projeto"** - **"Exclusão"** você pode excluir um projeto compartilhado. Para excluir um projeto, as seguintes condições devem ser atendidas: - todos os recursos do projeto foram excluídos anteriormente; - todos os usuários foram removidos anteriormente, exceto o último; - você deve ter saldo zero, se necessário, o restante pode ser transferido para outro projeto, cartão ou conta corrente entrando em contato com o suporte técnico: _Nota: para excluir o único projeto, o usuário deve entrar em contato com o suporte técnico._ https://serverspace.com.br/support/help/creating-a-project.md A instrução a seguir define como criar projetos no painel de controle. A criação de projetos compartilhados agora está disponível para nossos usuários. A instrução a seguir define como criar projetos no painel de controle. ## O que é isso? A criação de _projetos compartilhados_ agora está disponível para nossos usuários. Isso permite que você colabore com outros usuários e gerencie recursos compartilhados, como servidores ou redes, saldo compartilhado e casos de suporte. Como parte desse recurso, o usuário não pode ter mais do que um projeto pessoal e qualquer número de projetos compartilhados. Os recursos, o saldo e o suporte agora estão vinculados ao projeto, não ao usuário. Um projeto pessoal é destinado ao trabalho individual do usuário, não sendo possível adicionar outros participantes a ele. Todos os usuários existentes têm seus recursos atuais combinados em um projeto pessoal. Para a maioria dos usuários do serviço, não haverá necessidade de trabalhar com projetos compartilhados. Nesse caso, todas as alterações na interface do painel de controle devem passar despercebidas para o usuário. ## Criação de um projeto compartilhado Após o registro no painel de controle, o usuário sempre criará um projeto pessoal. Para criar o primeiro projeto compartilhado, selecione a opção **+ Adicionar projeto** no menu **Configurações** localizado no canto superior esquerdo: Isso abre uma caixa de diálogo na qual você pode: - opcionalmente, selecionar **Converter um projeto pessoal existente em um projeto compartilhado**. Nesse caso, o projeto pessoal é convertido em um projeto compartilhado, o que significa que todos os recursos do usuário, como servidores, redes, certificados SSL, etc., podem ser compartilhados com outros usuários. Se essa opção _não for_ selecionada, além do projeto _pessoal_, que está disponível apenas para o usuário, será criado um projeto compartilhado; - insira o nome do projeto. Um usuário pode escolher o logotipo da lista ou carregar um personalizado. Extensões disponíveis - .png, .jpg ou .jpeg, tamanho - não mais que 1 MB. Preencha o formulário e clique em **Criar um projeto**. _Observação: se você tiver um projeto pessoal, sempre que criar um novo projeto, será solicitado a converter o projeto pessoal em um projeto compartilhado:_ Depois de criar um novo projeto, as novas configurações do projeto são abertas na guia **Project Settings**: Para alternar entre locais de trabalho, use a janela suspensa no menu horizontal na parte superior do painel. Agora haverá uma opção **+ Adicionar projeto**: https://serverspace.com.br/support/help/dns-basics.md Hierarquia e delegação de nomes de domínio. Principais tipos de registros de recursos. Consultas recursivas e não recursivas ao DNS. O DNS é um sistema distribuído para armazenar e processar informações de zona de domínio. ## Geral Este artigo descreve os conceitos básicos do DNS. O **Sistema de Nomes de Domínio (DNS)** é um sistema distribuído para armazenar e processar informações de zona de domínio. Ele é usado principalmente para mapear endereços IP de nós de rede para nomes legíveis por humanos. No entanto, esse mapeamento não é a única função do DNS. Ele também lida com diferentes tipos de registros de recursos e resolve várias tarefas, como redirecionamento entre nomes de domínio, balanceamento de carga entre hosts e vinculação de determinados serviços (como serviço de e-mail) a domínios: O DNS é um dos pilares da Internet moderna, pois saber o endereço IP de um host solicitado é fundamental para receber uma resposta a qualquer solicitação da Internet. No entanto, os endereços IP são valores numéricos, como 1.23.45.67, que não são legíveis por humanos. Além disso, o princípio fundamental da atribuição de endereços IP em uma rede é a exclusividade. Além disso, o endereço IP não é algo permanente: ele pode mudar quando um host ou provedor de serviços de hospedagem muda, etc. Todos os fatores acima tornam a navegação na rede por endereços IP complicada para um ser humano. O DNS converte um nome simbólico solicitado por um cliente em um ou mais endereços IP de um ou mais servidores responsáveis por essa zona de domínio. No estágio inicial da Internet, a conversão de endereços IP baseava-se no conteúdo do arquivo "hosts" preparado de forma centralizada e distribuído automaticamente para cada computador em uma rede. Entretanto, com o crescimento da Internet, surgiu a necessidade de um novo mecanismo, que foi desenvolvido por Paul Mockapetris em 1983: o DNS. **Principais recursos do DNS:** - **Armazenamento e gerenciamento distribuídos** - cada servidor DNS deve armazenar apenas informações sobre os domínios delegados a ele, enquanto a responsabilidade por diferentes nós da árvore de nomes de domínio cabe a diferentes partes. - **Caching de dados** - um servidor DNS pode manter temporariamente algumas informações sobre domínios não delegados para reduzir o tráfego geral. - **Estrutura hierárquica** - um nó responsável por uma zona de domínio pode delegar de forma autônoma nós de nível inferior a outros servidores DNS. - **Backup** - vários servidores DNS isolados lógica e fisicamente armazenam e processam informações sobre qualquer nó específico, garantindo assim a acessibilidade das informações mesmo se um ou mais nós falharem. ## Hierarquia e delegação de nomes de domínio **Domínio** é um ramo nomeado em uma árvore de nomes, incluindo o próprio nó (por exemplo, domínio de primeiro nível ".com") e seus nós subordinados ("exemplo.com", domínio de segundo nível, "mail.exemplo.com", domínio de terceiro nível etc.). Para designar a hierarquia do nome de domínio, o termo nível é usado, especificando a posição do nó em uma árvore. Quanto menor o número do nível, maior a posição do domínio na árvore. - "." - um domínio de nível zero; - ".br" - um domínio de primeiro nível (nível superior); - "example.com" - um domínio de segundo nível; - "mail.example.com" - um domínio de terceiro nível; - e assim por diante. Observe o domínio de nível zero **"." (ponto)**, também chamado de domínio raiz. Na prática, o ponto geralmente é omitido (digitamos "exemplo.com" em vez de "exemplo.com."); em outras palavras, a especificação de um domínio raiz não é obrigatória para a resolução de endereços IP. A maioria dos programas clientes (como navegadores da Web, etc.) adiciona um domínio de nível zero automaticamente sem mostrá-lo ao usuário. Um nome de domínio sem um domínio de nível zero é chamado de nome de domínio relativo, enquanto o nome que termina com um ponto é chamado de **Nome de domínio totalmente qualificado**, ou FQDN. **Zona de domínio** - uma parte de uma árvore hierárquica de nomes de domínio (por exemplo, ".br"), que é totalmente transferida para serviço a um servidor DNS específico (ou, com mais frequência, a vários servidores) para posterior delegação de responsabilidade por esse domínio e todos os domínios subordinados ("anyaddress.br", "any.anyaddress.br") a outra parte. **Delegação** - transferência de responsabilidade por um ramo específico de uma árvore de nomes de domínio para outro indivíduo ou organização. Esse procedimento implementa um dos princípios fundamentais do DNS: armazenamento distribuído de registros e processamento de solicitações. Durante o processo de delegação, os chamados registros glue NS para uma zona filha delegada ("example.com"), que apontam para os servidores DNS de uma parte que aceita o domínio (por exemplo, para os servidores DNS da nossa empresa), são adicionados aos registros de recursos de uma zona pai (".br"). Desde então, todos os registros de recursos do domínio de segundo nível "example.com" e todos os seus subdomínios ("mail.example.com", etc.) são armazenados nos servidores DNS dessa empresa, com a zona pai ".br" armazenando apenas registros NS que apontam para esses servidores. **Servidor DNS** - um host que armazena registros de recursos e processa consultas de DNS. O servidor DNS pode resolver autonomamente endereços dentro da zona pela qual é responsável ("example.com" no exemplo acima) ou redirecionar solicitações de zonas "estrangeiras" para servidores de nível superior. **Cliente DNS** - um conjunto de ferramentas de software para interagir com o DNS. Periodicamente, o próprio servidor DNS atua como um cliente. ## Principais tipos de registros de recursos Registro de recursos (RR) - uma unidade de armazenamento e transmissão de informações no DNS, que inclui os seguintes elementos (campos): - **Nome** - nome de um domínio ao qual o registro está relacionado; - **Time To Live (TTL)** - tempo máximo permitido de armazenamento de registros por um servidor não responsável; - **Type** - um parâmetro que define a finalidade e o formato do registro no campo de dados (Rdata); - **Class** - um tipo de rede de dados (significa que o DNS também oferece suporte a redes não-TCP/IP); - **Comprimento do campo de dados (Rdlen)**; - **Campo de dados (Rdata)** - o conteúdo e o formato do campo dependem do tipo de registro. Os tipos de registro de recursos mais usados são: - **A (Registro de endereço IPv4)** - vincula um nome de domínio a um endereço IPv4 de host; - **AAAA (Registro de endereço IPv6)** - vincula um nome de domínio a um endereço IPv6 de host (semelhante ao registro А); - **CNAME (Canonical Name Record)** - usado para redirecionar para outro nome de domínio; - **MX (Mail Exchange)** - refere-se a um servidor de e-mail que atende ao domínio; - **NS (Name Server)** - refere-se a um servidor DNS responsável pelo domínio; - **TXT** - descrição de texto do domínio. Geralmente é necessário para tarefas especiais (como confirmação do direito de propriedade do domínio ao vinculá-lo ao serviço de correio eletrônico); - **PTR (Point to Reverse)** - vincula o endereço IP de uma máquina a um domínio e é usado principalmente por serviços de correio eletrônico de terceiros para verificar se os e-mails enviados por essa máquina estão relacionados a um domínio especificado nos parâmetros do servidor de correio eletrônico. Se os parâmetros não corresponderem, um e-mail é verificado mais detalhadamente por outros critérios. ## Consultas de DNS recursivas e não recursivas **Recursão** é um modelo de processamento de consultas por um servidor DNS, quando ele realiza uma pesquisa completa de informações (incluindo informações sobre domínios que não são delegados a ele) e acessa outros servidores DNS, se necessário. As **consultas DNS** de um cliente (servidor) para um servidor podem ser recursivas ou não recursivas. No primeiro caso, um servidor DNS que recebeu uma consulta pesquisa todos os nós em ordem decrescente de níveis de zona até receber uma resposta positiva ou a informação de que o domínio solicitado não existe. No caso de uma consulta não recursiva, o servidor retorna uma resposta positiva se apenas o nó consultado estiver dentro da zona de domínio pela qual esse servidor é responsável. A não recursão pode se dever tanto ao tipo de consulta quanto à proibição de realizar tais consultas no nível do próprio servidor DNS: O armazenamento em cache é outro recurso importante do DNS. Quando, durante a realização de uma consulta recursiva, o servidor DNS pesquisa outros nós, ele pode armazenar temporariamente em cache as informações contidas nas respostas que recebe. Nesse caso, uma consulta de domínio repetida não ultrapassa o cache do servidor DNS. O tempo máximo permitido de armazenamento em cache é especificado no campo TTL de um registro de recurso. https://serverspace.com.br/support/help/reserve-copying.md A cópia de reserva é realizada uma vez em um período de 24 horas para uma matriz de disco territorialmente remota. O parâmetro Storage Depth (Profundidade de armazenamento) determina por quanto tempo as cópias de reserva serão mantidas. O serviço de **cópia de reserva** está disponível para todos os servidores virtuais. . ## Como funciona A cópia de reserva é realizada uma vez em um período de 24 horas para uma matriz de disco territorialmente remota. O parâmetro Storage Depth (Profundidade de armazenamento) determina por quanto tempo as cópias de reserva serão mantidas (1, 2, 3 ou 4 semanas). As cópias mais antigas do que o prazo escolhido serão removidas automaticamente. ## Como ativar esse serviço Ao criar um novo servidor, a ativação da cópia de reserva ocorre com a ajuda do campo apropriado e a escolha da profundidade de armazenamento das cópias: Para um servidor já ativo, você pode ativar o serviço no menu do servidor **Backup**, especificando também a profundidade da manutenção das cópias: Não se esqueça de salvar as alterações. ## Como recuperar o servidor da cópia reservada Para recuperar o servidor da cópia reservada, vá para a guia **Backup**, clique em **Recuperar da cópia** e escolha o método de recuperação do servidor: Near ou Over the top. No primeiro caso, será criada uma duplicata do servidor. No segundo caso, no servidor principal será recuperada a cópia escolhida. Escolha a data de criação da cópia reservada que precisa ser recuperada. Ao recuperar Over the top, coloque uma marca de seleção no campo adicional. Clique no botão **Recuperar**. ## Como desativar o serviço Para desativar o serviço, vá até a guia **Backup**, clique em **Schedule** e clique no botão **Turn off**. Confirme suas ações clicando no botão **Alterar**: ## Taxas e custos O preço do serviço é calculado com a seguinte fórmula: _Z = G * S * (N / 7)_ G representa o preço do serviço por 1 gigabyte, S representa a quantidade total de todas as unidades no servidor, N representa a profundidade de armazenamento das cópias. As informações sobre os preços atuais sempre podem ser encontradas na guia **Billing** do servidor solicitado. As regras para cobranças: - o serviço é cobrado a cada 10 minutos; - o valor cobrado não depende do estágio do servidor (ligado ou desligado). https://serverspace.com.br/support/help/billing-rules.md Depois que o servidor é solicitado, seu custo é gradualmente debitado de sua conta no painel de controle. Esse débito ocorre a cada 10 minutos. Você mesmo pode calcular o custo de uma configuração de servidor virtual necessária usando nosso configurador. Depois que o servidor é solicitado, seu custo é gradualmente debitado de sua conta no painel de controle. Esse débito ocorre a cada 10 minutos. Se um servidor virtual for desativado no painel de controle e estiver no status **Off**, o dinheiro será debitado apenas pelo uso do espaço em HDD e pelo aluguel de licenças adicionais. Se seu saldo atual cair abaixo de zero, todos os serviços serão automaticamente bloqueados e o débito de dinheiro da conta será interrompido. Depois de reabastecer sua conta, você poderá voltar a usar os serviços. Os usuários que reabasteceram suas contas pelo menos uma vez terão a oportunidade de recuperar um serviço bloqueado dentro de duas semanas após o bloqueio; o serviço será excluído automaticamente após o término desse período. Para os usuários que nunca reabasteceram suas contas, esse serviço será excluído no dia seguinte ao bloqueio. _Nota: Nossos usuários têm a oportunidade de usar serviços On Trust por um determinado período._ https://serverspace.com.br/support/help/how-to-configure-xrdp-server-on-ubuntu-18-04.md Este guia descreve como configurar um servidor xRDP no sistema operacional Ubuntu com o Xforce UI para poder se conectar a ele usando o RDP do Windows. Este tutorial descreve como configurar um servidor xRDP para se conectar ao Ubuntu 18.04 com a interface gráfica leve Xforce UI usando o protocolo RDP. Isso pode ser muito útil quando você precisar se conectar a sistemas operacionais Linux com interface gráfica do Windows usando a Área de Trabalho Remota. ## O que é xRDP? O **xRDP** é a implementação gratuita e de código aberto do RDP (Remote Desktop Protocol) da Microsoft, que permite que sistemas operacionais Windows que não sejam da Microsoft (como Linux e BSD) forneçam uma área de trabalho remota compatível com RDP totalmente funcional. ## Instalação e configuração Conecte-se ao seu servidor Ubuntu via SSH e execute uma atualização do sistema: ```bash sudo apt-get update sudo apt-get upgrade -y ``` Instale e ative o utilitário xRDP: ```bash sudo apt-get install xrdp sudo systemctl enable xrdp sudo systemctl restart xrdp ``` Serviço xrdp em execução Instale o ambiente xfce: ```bash sudo apt-get install xfce4 xfce4-terminal ``` Abra a porta RDP para poder se conectar remotamente: ``` sudo ufw allow 3389/tcp ``` Reinicialize o servidor xRDP para que as alterações tenham efeito: ``` sudo /etc/init.d/xrdp restart ``` ## Conectando-se a um servidor Ubuntu via RDP Se você não souber o endereço IP do servidor Ubuntu, poderá verificá-lo digitando o comando: ``` ifconfig -a ``` saída do ifconfig Em nosso caso de teste, é 10.0.0.2. Para se conectar, abra a Conexão de Área de Trabalho Remota do Windows (mstsc.exe). Digite o endereço IP do servidor e clique em **Connect**: Janela RDP Será exibido um aviso de segurança. Clique em Yes (Sim): Aviso de certificado RDP Na janela aberta, selecione Xorg como a sessão, digite o nome de usuário e a senha do usuário e clique em OK: Janela de autenticação Xorg Isso permitirá a conexão com o desktop xforce. Área de trabalho do Xforce Se ele mostrar uma tela preta ao se conectar ao xrdp, será necessário acessar a pasta **/etc/xrdp** e fazer alterações no arquivo **startwm.sh**. ``` sudo nano /etc/xrdp/startwm.sh ``` Precisamos adicionar: **_unset DBUS_SESSION_BUS_ADDRESS_** **_desconfigurar XDG_RUNTIME_DIR_** Antes da linha: **_test -x /etc/X11/Xsession && exec /etc/X11/Xsession_** configurações do startwm.sh Depois de fazer as alterações, é necessário reiniciar o serviço XRDP: ```bash sudo systemctl restart xrdp ``` Agora você pode executar o **mstsc.exe** novamente e se conectar ao nosso servidor Ubuntu. https://serverspace.com.br/support/help/copy-files-and-run-commands-through-ssh.md Vamos descobrir como executar comandos e copiar arquivos em um servidor remoto por meio da conexão SSH usando os sistemas operacionais Windows e Linux. A conexão com o servidor via SSH é um dos principais meios de gerenciar servidores *nix. Muitas vezes, é necessário fazer upload de um arquivo para um servidor remoto ou descarregá-lo, mas não há outro meio além da conexão SSH. Felizmente, uma das funções regulares desse protocolo é copiar arquivos por meio de uma conexão segura. Você pode implementá-lo usando um comando **scp** em sistemas Linux ou usando **pscp.exe**, que faz parte do cliente Putty SSH no sistema operacional Windows. ## Usando o sistema operacional Linux [step num="1"] Execute os seguintes comandos: ```bash scp [modifier] [source] [target_directory] ``` [/step] [step num="2"] Se um servidor remoto servir como diretório de origem ou de destino, execute os seguintes comandos: ``` [user]@[server]:[file_path] ``` [/step] [step num="3"] Depois de executar o comando, você precisa digitar a senha da conta do servidor remoto. [/step] [step num="4"] Em resumo, você pode copiar o arquivo local denominado: /home/user/file.tgz para o diretório home do usuário root do servidor remoto 123.123.123.123 executando o seguinte comando: ```bash scp /home/user/file.tgz root@123.123.123.123:/root ``` [/step] [step num="5"] Para baixar o mesmo arquivo de um servidor remoto: ```bash scp root@123.123.123.123:/root/file.tgz /home/user ``` [/step] [step num="6"] Você pode copiar vários arquivos de uma vez. Para fazer isso, você deve adicioná-los como a origem. Separe-os por um espaço - o último parâmetro será considerado como o diretório de destino. Por exemplo, para fazer upload de file1 files.tgz e file2.tgz do diretório local para o servidor remoto, você deve executar o comando: ```bash scp file1.tgz file2.tgz root@123.123.123.123:/root ``` [/step] [step num="7"] Para copiar o diretório, você precisará usar o modificador de comando **-r**. Copie o diretório local /home/user/dir para o servidor remoto: ```bash scp-r /home/user/dir root@123.123.123.123:/root ``` [/step] [step num="8"] Quando o servidor SSH estiver sendo executado em uma porta não padrão, precisaremos obter a ajuda da opção **P**. Se você precisar usar a porta 10022: ```bash scp-P 10022 /home/user/file.tgz root@123.123.123.123:/root ``` [/step] [step num="9"] Para saber quais outros modificadores você pode usar, basta executar **scp** sem parâmetros e ler a ajuda. [/step] ## Usando o sistema operacional Windows [step num="10"] Ao usar o sistema operacional Windows e o Putty como cliente, a formatação do comando permanece a mesma. No entanto, mudaremos o nome do arquivo executável. Precisamos usar uma sintaxe para especificar caminhos para arquivos e diretórios do Windows ao mencionar os diretórios de origem ou de destino. Execute a linha de comando (cmd.exe) ou o PowerShell, abra o diretório com o arquivo pscp .exe e digite o comando: ``` pscp.exe C: Tempfile.tgz root@123.123.123.123:/root ``` [/step] [step num="11"] Se você o executar de outra pasta, precisará especificar o caminho completo para **pscp.exe**. Se algum dos caminhos contiver espaços, será necessário usar aspas duplas - "caminho do arquivo": ``` "C:Program FilesPuttypscp.exe" C:Tempfile.tgz root@123.123.123.123:/root ``` [/step] [step num="12"] Basta executar o pscp (de forma semelhante ao scp) sem parâmetros e ler a ajuda sobre os modificadores, bem como as informações sobre a sintaxe do comando. [/step] ## Execução de comandos em um servidor remoto usando a conexão SSH [step num="13"] O protocolo SSH é compatível com a execução de sessões interativas e de comandos e scripts regulares em um servidor remoto. [/step] ### Usando o sistema operacional Linux [step num="14"] Sintaxe do comando: ```bash ssh [user]@[server] '[command]' ``` [/step] [step num="15"] Digite a senha do usuário especificado e obtenha a saída do comando no console SSH, se houver. [/step] [step num="16"] Por exemplo, podemos encontrar informações sobre o sistema operacional instalado no servidor remoto: ```bash ssh root@123.123.123.123 'uname -a' ``` [/step] [step num="17"] Para executar vários comandos usando uma única conexão, você pode usar o caractere ";" como separador. Verifique as configurações de rede e as conexões de rede ativas no servidor remoto: ```bash ssh root@123.123.123.123 'ifconfig; netstat -anp tcp' ``` [/step] [step num="18"] Se precisar executar um arquivo de script local em um servidor remoto: execute o interpretador de comandos (no modo de execução de script). Ele pode ser o bash com a tecla-s e passar o arquivo de script para ele na entrada padrão. Dê uma olhada no exemplo abaixo: ```bash ssh root@123.123.123.123 'bash -s' < /home/user/myscript.sh ``` [/step] [step num="19"] O arquivo local: /home/user/myscript.sh será executado em um servidor remoto. [/step] [step num="20"] A execução do comando SSH sem parâmetros permite que você veja uma breve referência de sintaxe e uma lista de modificadores adicionais que permitem ampliar a funcionalidade do comando. [/step] ### Usando o sistema operacional Windows [step num="21"] Para nos conectarmos ao servidor remoto, usaremos o cliente Putty com seu arquivo executável plink.exe. Arquivo, se nosso computador for compatível com o Windows. Use a linha de comando (cmd.exe) ou o PowerShell para trabalhar com esse arquivo. [/step] [step num="22"] Para executar o comando em um servidor remoto, use a seguinte sintaxe: ``` plink.exe [server] - ssh-l [user] "[command]" ``` [/step] [step num="23"] Verifique a configuração das interfaces de rede: ``` plink.exe 123.123.123.123 -ssh-l root "ifconfig" ``` [/step] [step num="24"] O plink.exe permite que você use ";" como separador para executar vários comandos, da mesma forma que o comando SSH no Linux: ``` plink.exe 123.123.123.123 -ssh-l root "ifconfig; netstat-anp tcp" ``` [/step] [step num="25"] Você pode executar comandos de um arquivo local usando uma chave adicional **m**: ``` plink.exe 123.123.123.123 -ssh-l root-m "C:Tempmyscript.sh" ``` [/step] [step num="26"] Ao executar o comando plink.exe sem parâmetros, você pode encontrar uma breve referência de sintaxe e uma lista de modificadores de comando adicionais. https://serverspace.com.br/support/help/how-to-connect-host-or-domain.md Se precisar conectar o host ou o domínio a um serviço de monitoramento, selecione Monitoring (Monitoramento) no menu suspenso do painel de controle e siga nosso tutorial. [step num="1"] Para conectar um host ou domínio a um serviço de monitoramento, selecione **Monitoramento** no menu suspenso do painel de controle. Na janela que se abre, clique no botão **Add Host** para adicionar um servidor ou domínio para monitoramento: [/step] - Digite um **endereço IP de uma máquina ou um nome de domínio **que você deseja rastrear. Você pode escolher qualquer host que desejar, não necessariamente alugado em nosso serviço. - Selecione **Regra de validação** na lista suspensa, por exemplo, PING. - Especifique o **Tempo de resposta** - o tempo durante o qual a resposta é esperada. Se nenhuma resposta for recebida durante esse tempo, consideraremos o host/domínio como indisponível. - Indique **Frequência de solicitações** - o tempo após o qual é necessário executar uma verificação de disponibilidade novamente. - Selecione **Pontos de verificação** - objetos geográficos cujo data center enviará solicitações. Um ponto pode ser um ou vários. Por padrão, todos os pontos disponíveis são selecionados. [step num="2"] Em seguida, preencha a condição para verificar a disponibilidade: [/step] [step num="3"] Se necessário, você pode ativar as notificações por e-mail para saber sobre as atualizações de status do host - marque a caixa correspondente. [/step] [step num="4"] Depois de preencher a condição, clique no botão **Add**: [/step] [step num="5"] Você verá um host de monitoramento recém-criado na lista. Você pode verificar seu status e o registro de data e hora da última varredura. Você pode atualizar o status usando a seta circular. Você também pode desativar o monitoramento do host usando o botão de alternância, por exemplo, durante o trabalho programado. [/step] [step num="6"] Para alterar as condições de verificação, vá para as configurações do host e clique com o botão esquerdo do mouse no endereço IP ou no nome do domínio. Ao fazer alterações, não se esqueça de salvá-las: [/step] ## Status do host [step num="7"] Nosso serviço usa os seguintes valores para o status do host. O valor do status do host depende da condição de verificação e do status da métrica: [/step] | | Host | | --- | --- | | | O host está disponível, a condição de validação está em execução e todas as métricas estão respondendo | | | O host não está disponível, a condição de verificação não está em execução, as métricas podem responder ou não responder | | | O host está disponível, a condição de verificação está em execução, mas algumas métricas não estão respondendo | ## Excluindo um host [step num="8"] Para excluir o host, confirme sua ação na guia **Delete** e clique no botão **Delete**: https://serverspace.com.br/support/help/managing-project-participants.md Instruções para gerenciar os participantes do projeto e suas funções no painel de controle: informações comuns, como adicionar e excluir um usuário. Instruções para gerenciar os participantes do projeto e suas funções no painel de controle. ## O que é isso? No painel de controle, é possível adicionar participantes com diferentes funções ao projeto. Uma função é um conjunto de direitos de acesso aos serviços do projeto. Os seguintes tipos de função estão disponíveis no momento: proprietário, administrador e contador. As ações de usuário disponíveis estão descritas na tabela a seguir: | Serviços | Role | | | | | --- | --- | --- | --- | --- | | Proprietário | Administrador | Contabilista | | | | VPS vStack | + | + | - | | | IaaS vmware | + | + | - | | | Armazenamento | + | + | - | | | DNS | + | + | - | | | SSL | + | + | - | | | Monitoramento | + | + | - | | | Para parceiros | + | + | + | | | Faturamento | + | + | + | | | Suporte | + | + | + | | | Configuração de entidades legais | + | + | + | | | Configuração de SSH | + | + | - | | | Usuários | Adicionar um novo usuário | + | - | - | | Ver uma lista de usuários e funções | + | + | + | | | Troca de papéis | + | - | - | | | Remover usuário da equipe | + | - | - | | | Remover-se da equipe | + | + | + | | | Capacidade de criar uma função "Proprietário" | + | - | - | | | Capacidade de transferir a função de "Proprietário" | + | - | - | | | Capacidade de remover a função "Proprietário" | + | - | - | | | Projeto | Ver | + | + | + | | Edição | + | + | - | | | Remoção | + | - | - | | ## Adicionar um usuário [step num="1"] Para adicionar um usuário, vá para o projeto **"Configurações"** - projeto **"Detalhes"** e clique em **+ Adicionar**: [/step] [step num="2"] Digite o e-mail do participante e selecione a função dele. Se as informações estiverem corretas, clique na marca de seleção verde: [/step] [step num="3"] Como resultado, um e-mail com um link de ativação será enviado para o endereço de e-mail especificado. Até que o usuário aceite o convite clicando no link de ativação, seu status será **Aguardando confirmação:** [/step] [step num="4"] Se o usuário ainda não estiver registrado no painel de controle, em caso de aceitação do convite, o procedimento de registro será realizado automaticamente. [/step] [step num="5"] O link de convite para o projeto é válido por 3 dias. Quando você clicar em um link desatualizado, será exibida uma página informativa sobre a invalidade do link. [/step] [step num="6"] Usando o botão **Resend**, você pode enviar ao usuário um segundo convite para o projeto com um novo link de ativação. Nesse caso, o link antigo será inválido. [/step] [step num="7"] Se o usuário já estiver registrado em nosso painel de controle, após o convite para o projeto em seu painel de controle, um novo projeto aparecerá na lista de projetos disponíveis: [/step] _Observação: se um usuário ainda não tiver nenhum projeto compartilhado e usar a interface antiga do painel de controle, ele poderá aceitar o convite somente usando o link enviado para o e-mail de registro._ [step num="8"] Como resultado, o status do usuário muda para **Attached**: [/step] [step num="9"] Você pode usar a lista suspensa na coluna **Role** para alterar a função do usuário. [/step] ## Excluindo um usuário [step num="10"] Para remover um usuário do projeto, clique no **Bucket**: [/step] _Importante: não é possível remover o último proprietário de um projeto compartilhado._ https://serverspace.com.br/support/help/connecting-metrics-to-monitoring.md Como conectar várias métricas de um host ao serviço de monitoramento. Status da métrica. Visualização do histórico de monitoramento. Se necessário, você pode ativar as notificações por e-mail. [step num="1"] Como parte de um serviço de **Monitoramento**, você pode rastrear várias métricas de um host. Primeiro, é necessário conectar o host ou domínio e, em seguida, clicar em **Criar métrica** na guia **Métricas**: [/step] [step num="2"] Quando uma nova janela for aberta, digite o nome da métrica, selecione o protocolo desejado e, se necessário, preencha os campos adicionais. Você pode deixar o campo **Resposta esperada** em branco; nesse caso, qualquer resposta recebida será considerada como esperada; você também pode inserir o código específico necessário aqui. Todas as métricas mantêm os pontos de verificação do host. Se necessário, você pode ativar as notificações por e-mail para saber sobre as atualizações de status das métricas - marque a caixa correspondente. Clique no botão **Create** (Criar): [/step] [step num="3"] Uma métrica recém-criada, seu status, tipo e registro de data e hora da última verificação são exibidos na lista de métricas. Para excluir a métrica, clique na cruz à direita. [/step] [step num="4"] _Importante: quando você excluir a métrica, todo o seu histórico será excluído:_ [/step] ## Status da métrica [step num="5"] Nosso serviço usa os seguintes valores para o status da métrica: [/step] | | Métricas | | --- | --- | | | A métrica está respondendo | | | A métrica não está respondendo | ## Visualização do histórico de monitoramento [step num="6"] Para visualizar o histórico das métricas e da disponibilidade do host, clique na guia **History**. Você verá o status da solicitação, o tipo, o registro de data e hora e o ponto de verificação exibidos em ordem cronológica. Se necessário, você pode filtrar essa lista de acordo com os critérios exigidos: [/step] [step num="7"] _Nota: o tipo de teste marcado como **Host** é uma verificação da condição de disponibilidade do host._ https://serverspace.com.br/support/help/how-to-create-routed-network.md Esta diretriz descreve como criar e configurar uma rede roteada no painel de controle. Uma rede roteada é uma rede privada que já está conectada a um roteador com uma interface pública. Esta diretriz descreve como criar e configurar uma rede roteada no painel de controle. ## O que é rede roteada? Uma rede roteada é uma rede privada que já está conectada a um roteador com uma interface pública. Esse tipo de rede permite que todos os servidores virtuais acessem a Internet por meio de um roteador e recebam conexões de entrada usando NAT. O custo da rede é composto de 1 endereço IP de roteador externo e da largura do canal de comunicação. ## Como criar uma rede roteada? [step num="1"] Para criar uma rede, abra um menu suspenso à esquerda, selecione **Redes** e clique no botão **Adicionar rede**: [/step] [step num="2"] Selecione o tipo como **Roteado**. Selecione o data center no qual a rede será criada. Se necessário, especifique o uso de DHCP - nesse caso, as configurações de rede serão obtidas automaticamente. Em seguida, use o controle deslizante para especificar a largura necessária do canal de comunicação. [/step] [step num="3"] Em seguida, digite o endereço de rede no formato CIDR. O endereço que você digitou deve pertencer a um dos intervalos indicados: 10.0.0.0 - 10.255.255.0, 100.64.0.0 - 100.127.255.0, 172.16.0.0 - 172.31.255.0, 192.168.0.0 - 192.168.255.0. [/step] [step num="4"] Na última etapa, digite um nome e clique em **Create network:** [/step] [step num="5"] Para conectar o servidor à rede, coloque o botão de alternância **Connect** no estado ativo e clique em **Save**. É possível conectar apenas servidores localizados no data center em que essa rede está localizada. Ao se conectar à rede, outro adaptador de rede será adicionado ao seu servidor virtual. Esse adaptador de rede deve ser configurado no nível do sistema operacional: [/step] [step num="6"] Para configurar um firewall para uma rede roteada, vá para a guia **Firewall**. [/step] [step num="7"] Para configurar o túnel VPN, vá para a guia **VPN**. [/step] [step num="8"] Para criar regras de conversão de endereços, vá para a guia **NAT**. [/step] [step num="9"] Para excluir uma rede, na guia **Delete**, confirme a remoção e clique no botão correspondente. Você também pode remover uma rede da lista de redes clicando na cruz. https://serverspace.com.br/support/help/configuring-network-adapter-in-freebsd.md Este guia descreve como configurar interfaces e conectar o servidor virtual, que opera sob o controle do sistema operacional FreeBSD. Este guia descreve como configurar interfaces e conectar o servidor virtual, que opera sob o controle do sistema operacional FreeBSD. ## Configurando a interface [step num="1"] Para exibir a configuração das interfaces de rede em seu sistema, digite o seguinte comando: ``` ifconfig ``` ```xml **vmx0:** flags=8843 metric 0 mtu 1500 options=60039b ether 00:50:56:02:0a:65 inet 45.XXX.XXX.XXX netmask 0xffffff00 broadcast 45.XXX.XXX.255 media: Ethernet autoselect status: active nd6 options=29 **vmx1:** flags=8802 metric 0 mtu 1500 options=60039b ether 00:50:56:02:0c:98 media: Ethernet autoselect status: active nd6 options=29 **lo0:** flags=8049 metric 0 mtu 16384 options=680003 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3 inet 127.0.0.1 netmask 0xff000000 groups: lo nd6 options=21 ``` [/step] [step num="2"] A saída do comando mostra que a interface vmx0 está configurada e pronta (), o que significa que você precisa configurar a interface em0 para funcionar em uma rede privada. [/step] [step num="3"] _Nota: A interface lo0: O dispositivo de loopback._ [/step] [step num="4"] Todas as ações a seguir são executadas no modo de superusuário. [/step] ## Configuração de uma conexão de rede sem DHCP [step num="5"] Use um editor de texto como o vi para abrir o arquivo /etc/rc.conf: ``` vi /etc/rc.conf ``` [/step] [step num="6"] Adicione a linha de comando com os parâmetros corretos: ``` ifconfig_="inet netmask " ``` [/step] [step num="7"] Por exemplo: ``` ifconfig_em0="inet 10.0.1.2 netmask 255.255.255.0" ``` [/step] [step num="8"] O valor do IP local pode ser encontrado no painel de controle, seção **Networks**: [/step] [step num="9"] Amostra do conteúdo do arquivo: /etc/rc.conf. ``` clear_tmp_enable="YES" sshd_enable="YES" ntpd_enable="YES" powerd_enable="YES" # Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable dumpdev="AUTO" zfs_enable="YES" hostname="freebsd12" ifconfig_vmx0="inet 45.XXX.XXX.XXX netmask 255.255.255.0" ifconfig_em0="inet 10.0.1.2 netmask 255.255.255.0" defaultrouter="45.XXX.XXX.1" ``` Depois de fazer alterações no arquivo, não se esqueça de reiniciar o servidor usando o sistema operacional para aplicar as novas configurações. [/step] ## Configuração de uma conexão de rede com DHCP [step num="10"] Se a função DHCP tiver sido ativada ao criar uma rede, verifique se a opção Obter um endereço IP automaticamente está selecionada. Isso pode ser feito usando o seguinte comando, especificando o nome da interface: ``` dhclient ``` [/step] [step num="11"] Por exemplo: ``` dhclient vmx1 ``` ``` DHCPDISCOVER on vmx1 to 255.255.255.255 port 67 interval 7 DHCPOFFER from 10.0.1.1 DHCPREQUEST on vmx1 to 255.255.255.255 port 67 DHCPACK from 10.0.1.1 bound to 10.0.1.2 -- renewal in 3600 seconds. ``` https://serverspace.com.br/support/help/how-to-install-and-use-the-google-authenticator-application.md O Google Authenticator fornece autenticação de dois fatores (2FA). Para instalar o aplicativo no sistema operacional Android ou iOS, você pode usar nossas instruções. O Google Authenticator fornece autenticação de dois fatores (2FA). A 2FA é um nível adicional de proteção usado para a confirmação de usuários que estão tentando receber acesso à conta on-line. Primeiro, o usuário digita seu login e senha e, em vez de receber acesso imediato, ele precisa fornecer informações adicionais, como: - informações adicionais (número de identificação pessoal (PIN), senha, respostas a "perguntas secretas" ou sequência específica de pressionamentos de teclas); - confirmação de propriedade (geralmente, é algo que o usuário possui, como cartão de crédito, smartphone ou um pequeno token de hardware); - dados biométricos (essa categoria é um pouco mais avançada e pode incluir impressão digital biométrica, digitalização do diafragma ou impressão de voz). Dessa forma, mesmo que sua senha ou seu telefone sejam roubados, não é provável que outra pessoa além de você consiga acessar suas informações. ## Instalação do Google Authenticator no Android [step num="1"] Para instalar o aplicativo no sistema operacional Android, basta fazer o download na loja GooglePlay: [/step] [step num="2"] Após a instalação, clique em **Begin**, na primeira página: [/step] [step num="3"] Se desejar, você pode configurar a 2FA em sua conta do Google. Se não precisar dela, clique em **Skip**: [/step] [step num="4"] Agora você pode adicionar a conta. Há duas maneiras de fazer isso: escanear o código de barras ou digitar a chave. A mais conveniente é a leitura. Uma câmera será aberta à sua frente. No quadrado selecionado, você deve inserir o código QR, que será reconhecido automaticamente e a conta será adicionada imediatamente: [/step] ## Instalação do Google Authenticator no iOS [step num="5"] Para fazer a instalação no sistema operacional iOS, você deve fazer o download na AppStore: [/step] [step num="6"] Após a instalação, abra o aplicativo e clique em **Begin the set up**. [/step] [step num="7"] Você pode começar a adicionar a conta. Há duas maneiras de fazer isso: escanear o código de barras e digitar a chave. A mais conveniente é a digitalização. Uma câmera será aberta à sua frente. No quadrado selecionado, você deve inserir o código QR, que será reconhecido automaticamente e a conta será adicionada imediatamente: [/step] ## Instalação do Google Authenticator no Windows Phone [step num="8"] O uso da autenticação no Windows Phone só é possível graças a aplicativos compatíveis com o Google, como o Authenticator+. A Microsoft também tem seu próprio aplicativo chamado Microsoft Authenticator. Vamos considerar a instalação do aplicativo Authenticator+. Para isso, você deve fazer o download na loja de aplicativos da Microsoft: [/step] [step num="9"] Após a instalação, você pode abrir o aplicativo e começar a adicionar a conta. Há duas maneiras de fazer isso: escanear o código de barras e digitar a chave. A mais conveniente é a digitalização. Uma câmera será aberta à sua frente. No quadrado selecionado, você deve inserir o código QR, que será reconhecido automaticamente e a conta será adicionada imediatamente: [/step] ## Instalação do Google Authenticator no Google Chrome [step num="10"] O uso do autenticador no computador só é possível devido a aplicativos compatíveis. Por exemplo, é [Authenticator for Windows](https://www.microsoft.com/ru-ru/p/microsoft-authenticator/9nblgggzmcj6?activetab=pivot%3Aoverviewtab), Nox App Player e [WinAuth emulator](https://winauth.github.io/winauth/index.html), no Linux [google-authenticator-libpam](https://github.com/google/google-authenticator-libpam) está disponível. [/step] [step num="11"] A instrução fornece o método mais conveniente - conexão da extensão no navegador da Web Chrome. Para instalar a extensão, abra a loja de Internet do Chrome e encontre o aplicativo [Authenticator](https://chrome.google.com/webstore/detail/authenticator/bhghoamapcdpbohphigoooaddinpkbai): [/step] [step num="12"] Depois disso, você será redirecionado para a página do desenvolvedor no Github. A extensão aparecerá em seu navegador no canto superior direito. Para adicionar a conta, pressione o **Pencil** e, em seguida, pressione o **Plus**: [/step] [step num="13"] Aqui, você também tem dois métodos: escanear o código de barras ou digitar a chave. No primeiro caso, é necessário fazer uma impressão da tela de parte do monitor com o código QR. No segundo caso, você deve digitar a chave secreta manualmente: [/step] ## Use o aplicativo Google Authenticator para se conectar ao painel de controle [step num="14"] Depois de instalar o aplicativo em seu sistema, abra a seção do painel de controle Configurações de perfil e, em seguida, Segurança. Na página que será aberta, escolha a autenticação em duas etapas por meio do aplicativo: [/step] [step num="15"] O código QR será aberto na sua frente. Em seguida, no aplicativo Google Authenticator, escolha a digitalização do código de barras. Quando a câmera for aberta, coloque o código de barras no quadrado selecionado no monitor do aplicativo, que será reconhecido automaticamente. No aplicativo, será criado um código de seis dígitos, que você deverá inserir: [/step] [step num="16"] Depois de inseri-lo, você verá que a autenticação em dois estágios está ativada no aplicativo. Agora, para entrar no controle do painel, é necessário inserir o código do aplicativo: [/step] ## Desativação da autenticação de dois níveis para a entrada no painel de controle [step num="17"] Para desativar a opção de autenticação de dois níveis no painel de controle, vá para **Configurações de perfil** e clique em **Segurança**. Para desativá-la, clique em **Disable**: [/passo] [step num="18"] Confirme suas ações: [/step] [step num="19"] Agora a 2FA está desativada. https://serverspace.com.br/support/help/configuring-nat-in-the-control-panel.md Descrição do procedimento de configuração de NAT para redes roteadas no painel de controle. Network Address Translation é o procedimento para alterar endereços IP e portas no cabeçalho do pacote IP. Descrição do procedimento de configuração de NAT para redes roteadas no painel de controle. ## O que é NAT? Network Address Translation (NAT) é o procedimento para alterar endereços IP e portas no cabeçalho do pacote IP. O uso mais comum do NAT é substituir o endereço IP da rede interna por um endereço IP externo, por exemplo, de um roteador. Quando outros computadores na Internet tentam acessar computadores na rede local, eles veem apenas o endereço do roteador. Isso acrescenta uma camada adicional de segurança porque o roteador pode ser configurado como um firewall, permitindo que somente sistemas autorizados acessem os computadores da rede local. O principal objetivo da criação do NAT é superar a falta de endereços IPv4. Nossa infraestrutura usa _Um-para-Muitos_ NAT, ou seja, o endereço IP externo de um roteador é exibido para vários endereços locais. Assim, você pode conectar grandes redes à Internet usando apenas um endereço IP externo. ## Criação de regras [step num="1"] Primeiro, é necessário criar uma rede roteada no painel de controle e conectar servidores virtuais a ela. Somente servidores do mesmo data center podem ser conectados à mesma rede. [/step] [step num="2"] Abra a guia **NAT**, quando a rede estiver configurada. Clique no botão **Add**: [/step] [step num="3"] O usuário pode criar dois tipos de regras: SNAT ou DNAT. [/step] ## SNAT [step num="4"] SNAT (Source) altera o endereço IP de origem do pacote de rede com os dados para outro endereço IP. Caso de uso: mascarar e ocultar endereços IP locais (privados) de dispositivos para aumentar a privacidade e a segurança. [/step] [step num="5"] Ao criar uma regra de tipo na lista suspensa **NAT Type**, selecione **SNAT** e preencha os seguintes campos: - **Descrição** é um nome fácil de usar; - **OriginalIp** é um endereço de servidor local (privado) (será convertido); - **TranslatedIp** é um endereço externo do roteador na rede; esse valor é inserido automaticamente e não pode ser alterado. [/step] [step num="6"] Você pode usar a marca de seleção **Habilitar** para habilitar ou desabilitar uma regra: [/step] ## DNAT [step num="7"] O DNAT (Destination) é usado para converter o endereço IP de destino de um pacote de rede em um endereço IP diferente. Caso de uso: mascarar endereços IP internos e substituí-los por outros endereços IP. [/step] [step num="8"] Ao criar uma regra de tipo na lista suspensa **NAT Type**, selecione **DNAT** e preencha os seguintes campos: - **Descrição** é um nome fácil de usar; - **OriginalIp** é um endereço externo do roteador na rede; esse valor é inserido automaticamente e não pode ser alterado; - **TranslatedIp** é um endereço de servidor local (privado) (será convertido); - **Protocol** - selecione o protocolo necessário na lista de protocolos disponíveis; - **OriginalPort** - é a porta do roteador que recebe os pacotes de dados; - **TranslatedPort** - é uma porta do servidor local a ser alterada. [/step] [step num="9"] Você pode usar a marca de seleção **Habilitar** para habilitar ou desabilitar uma regra: [/step] [step num="10"] As regras adicionadas aparecerão na seção NAT da rede selecionada: [/step] ## Editando regras NAT [step num="11"] O usuário pode editar regras NAT criadas anteriormente. Clique com o botão esquerdo do mouse no campo **NAT type** da regra para editá-la: [/step] [step num="12"] Salve as alterações. [/step] Observação: você pode usar a marca de seleção Habilitar para habilitar ou desabilitar uma regra. ## Excluindo regras NAT [step num="13"] Se a regra se tornar irrelevante, ela poderá ser excluída. Você pode excluí-la usando o botão **Cross**: [/step] [step num="14"] Confirme a exclusão: [/step] https://serverspace.com.br/support/help/rdp-connection-problems.md Quando a conexão entre uma área de trabalho e seu host falha, é hora de solucionar alguns problemas de área de trabalho remota. Confira nossa lista se uma área de trabalho remota não estiver funcionando. [step num="1"] Certifique-se de que você tenha se conectado cuidadosamente ao Windows Server. [/step] [step num="2"] Certifique-se de que você não tenha acidentalmente "enganchado" um espaço antes ou depois da senha ao copiá-la. [/step] [step num="3"] Abra o painel de controle e verifique se o servidor necessário está ativado. [/step] [step num="4"] Certifique-se de que nenhum domínio seja especificado para a conexão. [/step] [step num="5"] Se você se conectar a um servidor a partir de um PC em uma rede corporativa, certifique-se de que a porta 3389 esteja desbloqueada (na maioria das vezes, ela é bloqueada em redes corporativas). [/step] [step num="6"] Se as etapas acima falharem, clique em **Iniciar** - **Executar** e digite **cmd** em uma janela que será aberta. Em uma janela que se abre, digite **ping **: - Se você vir a mensagem "Request timed out", provavelmente há problemas de acessibilidade à rede. Entre em contato com o seu ISP. - Se você vir "Reply from IP address: bytes=xx time=xms TTL=xxx", então as etapas descritas nas cláusulas 1-4 desta diretriz podem ajudar. https://serverspace.com.br/support/help/connecting-vyos-server-to-a-network.md Os VDSs do VyOS são frequentemente usados como roteadores e podem lidar com VPNs de diferentes tipos e configurações. Este guia descreve como configurar um servidor VyOS em uma rede privada. Este guia descreve como configurar um servidor VyOS em uma rede privada. Os VDSs do VyOS são frequentemente usados como roteadores e podem lidar com VPNs de diferentes tipos e configurações. ### Configuração [step num="1"] Após a conexão do VPS a uma LAN em um painel de controle, conecte-se ao servidor por ssh e entre no modo de configuração do VyOS: ``` config ``` [/step] _[step num="2"]_ _Nota: no modo normal, alguns utilitários não estão disponíveis e o prompt de comando termina com "$", enquanto no modo de configuração termina com "#"._ [/step] _[step num="3"]_ Exibir todas as interfaces disponíveis: ``` show interfaces ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_2__ [/step] _[step num="4"]_ Use o comando set para definir o endereço IP local; se a **opção DHCP estiver desativada** para a rede, pegue um endereço de um painel de controle na guia de configurações do VPS e defina-o como um valor (veja a figura abaixo): ``` set interfaces ethernet eth1 address /24 ``` [/step] _[step num="5"]_ Por exemplo: ``` set interfaces ethernet eth1 address 10.0.0.2/24 ``` [/step] _[step num="6"]_ Se a opção DHCP estiver ativada, execute o seguinte comando: ``` set interfaces ethernet eth1 address dhcp ``` [/step] _[step num="7"]_ _Nota: se for retornado um erro, tente incluir um usuário atual em um grupo de superusuário (por exemplo, usermod -a -G root )._ [/step] _[step num="8"]_ Verifique as modificações: ``` show interfaces ``` ``` ethernet eth1 { + address / duplex auto hw-id 00:50:56:01:1b:9f smp_affinity auto speed auto } loopback lo { } ``` [/step] _[step num="9"]_ As linhas modificadas são marcadas com "+". [/step] _[step num="10"]_ Se tudo estiver OK, confirme e salve as alterações: ``` commit save ``` [/step] _[step num="11"]_ Sair do modo de configuração: ``` exit ``` [/step] _[step num="12"]_ Verifique o endereço IP local configurado da interface do VyOS: ``` show interfaces ``` ```xml Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down **Interface** --------- eth0 eth1 lo **IP Address** ---------- XXX.XXX.XXX.XXX/24 10.0.0.2/24 127.0.0.1/8 ::1/128 **S/L** --- u/u u/u u/u **Description** ----------- ``` [/step] Agora, você pode usar a máquina configurada como um roteador ou outro nó em uma rede privada. https://serverspace.com.br/support/help/connecting-to-a-windows-server.md Vá para um painel de controle interno e, em seguida, para um formulário do servidor que você solicitou. Clique em Download RDP file (Baixar arquivo RDP) e execute o arquivo baixado. ### ### Etapa 1 [step num="1"] Vá para um painel de controle interno e, em seguida, para um formulário do servidor que você solicitou. Clique em **Download do arquivo RDP** e execute o arquivo baixado: [/step] ### Etapa 2 [step num="2"] Em uma janela que se abre, marque a caixa "Não me peça novamente conexões com este computador": [/step] ### Etapa 3 [step num="3"] Em uma janela que se abre, digite a senha mostrada no campo **Administrator login** e **password** no painel de controle: [/step] ### Etapa 4 [step num="4"] A conexão com o servidor será estabelecida. https://serverspace.com.br/support/help/configuring-network-adapter-in-ubuntu-or-debian.md Depois de conectar o servidor a uma rede privada no painel de controle, um adaptador de rede virtual adicional será adicionado a ele. Em seguida, ele deverá ser configurado. [step num="1"] Esta diretriz descreve como configurar o adaptador de rede editando o arquivo: /etc /network/interfaces e Netplan. [/step] [step num="2"] Depois de conectar o servidor a uma rede privada no painel de controle, um adaptador de rede virtual adicional será adicionado a ele. Para que a interface conectada funcione corretamente, ela deve ser configurada. [/step] [step num="3"] Conecte-se a um servidor virtual como superusuário e execute o comando: ``` ifconfig -a ``` [/step] [step num="4"] Será exibida uma lista das interfaces conectadas: ```xml **ens160** Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.xxx Mask:255.255.255.0 inet6 addr: yyyy::yyy:yyy:yyyy:yyy/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:7011 errors:0 dropped:0 overruns:0 frame:0 TX packets:2862 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6661547 (6.6 MB) TX bytes:234861 (234.8 KB) ``` ```xml **ens192** Link encap:Ethernet HWaddr 00:50:56:01:2e:ca BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ``` __TITULAR DO LUGAR DO BLOCO DE CÓDIGO_3__ [/step] [step num="5"] Nas configurações de rede, localize o campo **MAC** com o valor do parâmetro **HWaddr** igual a um dos contidos na lista de interfaces de rede exibida. Observe o nome da interface (**ens192** em nosso caso). [/step] _[step num="6"]_ _Importante: antes de configurar o adaptador no sistema operacional, verifique no painel de controle se a opção DHCP está ativada ou desativada para a sua rede. Você pode encontrar essa opção nas configurações de rede._ [/step] ## Editando o arquivo: /etc /network /interfaces _[step num="7"]_ Para alterar as configurações da interface de rede, abra o arquivo /etc/network/interfaces: ``` nano /etc/network/interfaces ``` [/step] ### DHCP está ativado _[step num="8"]_ Se a opção DHСP tiver sido ativada durante a criação da rede privada, configure o adaptador de rede do Ubuntu/Debian para obter as configurações de rede automaticamente: ``` auto ens192 iface ens192 inet dhcp ``` [/step] ### DHCP está desativado _[step num="9"]_ Se o DHCP estiver desativado, configure a interface manualmente (como no exemplo abaixo). É possível encontrar o endereço local e a máscara de sub-rede nas configurações de rede no painel de controle: ``` auto ens192 iface ens192 inet static address 10.0.1.2 netmask 255.255.255.0 ``` [/step] _[step num="10"]_ Salve as alterações, saia do editor de texto e reinicie o serviço de rede (ens192 é o nome do adaptador, que você anotou): ``` ifdown ens192 && ifup ens192 ``` [/step] _[step num="11"]_ Para verificar a exatidão das configurações do adaptador de rede, execute o ping para um endereço de gateway mostrado no painel de controle, como: ``` ping 10.0.1.1 ``` [/step] ## Plano de rede _[step num="12"]_ Para alterar as configurações da interface de rede, abra o arquivo /etc/netplan/99-netcfg-vmware.yaml: ``` nano /etc/netplan/99-netcfg-vmware.yaml ``` [/step] ### DHCP está ativado _[step num="13"]_ Se a função DHCP tiver sido ativada ao criar uma rede privada, vá para as configurações do adaptador de rede do Ubuntu/Debian e certifique-se de selecionar a opção de receber as configurações de rede automaticamente, bem como o endereço do gateway: ```xml **ens192:** dhcp4: true dhcp6: no addresses: [] gateway4: 10.0.1.1 nameservers: addresses: - 10.0.1.1 ``` [/step] ### DHCP está desativado _[step num="14"]_ Se a função DHCP tiver sido desativada, especifique os parâmetros da interface manualmente, conforme mostrado no exemplo abaixo. O endereço local da máscara de sub-rede pode ser encontrado nas configurações de rede no painel de controle: ```xml **ens192:** dhcp4: no dhcp6: no addresses: - 10.0.1.2/24 gateway4: 10.0.1.1 nameservers: addresses: - 10.0.1.1 ``` [/step] _[step num="15"]_ Depois de salvar as alterações e sair do editor, você precisa verificar a configuração da interface e reinicializar os serviços de rede: ``` sudo netplan generate sudo netplan apply ``` https://serverspace.com.br/support/help/increasing-disk-space-in-freebsd-11-12.md Depois que o tamanho do disco for aumentado no painel de controle, torne-o utilizável pelo sistema operacional. Execute o terminal como root e digite os seguintes comandos. Leia mais. [step num="1"] Depois que o tamanho do disco for aumentado no painel de controle, torne-o utilizável pelo sistema operacional. [/step] [step num="2"] Execute o terminal como root e digite os seguintes comandos. [/step] [step num="3"] Restaurar a tabela de partição: ``` gpart recover da0 ``` [/step] [step num="4"] A saída do comando pode ter a seguinte aparência: - Opção 1: ``` da0 recovering is not needed ``` [/step] [step num="5"] Em seguida, reinicie o servidor e comece com a primeira etapa do guia. Para reiniciar o servidor, execute o seguinte comando: ``` shutdown -r now ``` [/step] [step num="6"] - Opção 2: ``` da0 recovered ``` [/step] [step num="7"] Em seguida, prossiga com este guia. [/step] [step num="8"] Criar nova partição: ``` gpart add -t freebsd-zfs -a 4k da0 ``` [/step] [step num="9"] O comando exibirá o número exato da partição que foi adicionada. Anote esse número. De agora em diante, vamos marcar o número da partição com símbolos (##): ``` da0p(##) added ``` [/step] [step num="10"] Adicione a nova partição ao pool zroot:, em que (##) é o número da partição criada: ``` zpool add zroot da0p(##) ``` [/step] [step num="11"] Para visualizar as informações da partição: ``` gpart show -p ``` [/step] Concluído. . https://serverspace.com.br/support/help/connecting-to-a-linux-server.md Este guia descreve como se conectar a um servidor Linux. Faça o download do aplicativo PuTTY em um site oficial e use-o para se conectar a um servidor Linux e executá-lo. Em seguida, siga nossas instruções. Este guia descreve como se conectar a um servidor Linux. ### Etapa 1 [step num="1"] Baixe o aplicativo PuTTY de um site oficial e use-o para se conectar a um servidor Linux: [/step] ### Etapa 2 [step num="2"] Execute o PuTTY. Na janela que se abre, preencha o campo **HostName (ou endereço IP)** com um valor mostrado no campo **endereço IP** do painel de controle e deixe todos os outros parâmetros inalterados. Clique em **Abrir**: [/step] ### Etapa 3 [step num="3"] Na primeira inicialização, você será solicitado a armazenar em cache um link de servidor. Clique em **Yes**: [/step] ### Etapa 4 [step num="4"] Em seguida, insira o nome de usuário e a senha do servidor Linux mostrados no campo **Ingresso do administrador** e **Senha do administrador**. [/step] _[step num="5"]_ _Observação: ao digitar uma senha, você não a verá:_ [/step] _[step num="6"]_ Se tiver inserido os dados corretos, você verá uma mensagem de login bem-sucedido. https://serverspace.com.br/services.md Produtos em Nuvem Inovadores. Nosso serviço permite configurar e implantar servidores virtuais, configurar circuitos de rede, solicitar certificados SSL, administrar zonas de domínio e realizar monitoramento. Soluções em nuvem com escalabilidade, segurança e alto desempenho para sua empresa. Gerencie servidores, redes e armazenamento com facilidade. https://serverspace.com.br/err404.md 404 - Page not found. We’re So Sorry! We can’t seem to find this page. ### Page not found Oops! We can't find the page that you're looking for.