Introdução
O Ubuntu Server é uma distribuição de Linux fiável e amplamente adotada, mas mesmo os sistemas mais fiáveis podem enfrentar desafios que afetam o desempenho ou interrompem as operações. Saber como resolver problemas comuns é crucial para manter o tempo de atividade e garantir um funcionamento fluido. Neste guia «Resolução de problemas comuns no Ubuntu Server» vamos explorar técnicas práticas para diagnosticar e resolver problemas frequentes, como falhas de arranque, erros de conectividade SSH, problemas de rede e muito mais. Vais também aprender a utilizar os registos do sistema de forma eficaz para identificar a causa raiz dos problemas e devolver o teu servidor ao desempenho ideal.
Artigos anteriores:
01. Introdução ao Ubuntu Server – SysOSX: AI & Cloud
02. Como configurar o teu primeiro servidor Ubuntu: guia para principiantes – SysOSX: AI & Cloud
03.Dominar a linha de comandos do Linux para o Ubuntu Server – SysOSX: AI & Cloud
04. Gerir utilizadores e permissões no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
05. Fundamentos de redes para o Ubuntu Server: um guia completo – SysOSX: AI & Cloud
06. Instalar e gerir software no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
07.Aplicar patches e atualizar o Ubuntu Server: um guia completo – SysOSX: AI & Cloud
08. Proteger o teu servidor Ubuntu: passos práticos para reforço e proteção – SysOSX: AI & Cloud
09. Auditoria e registo no servidor Ubuntu
11. Registo centralizado para o servidor Ubuntu: um guia imprescindível – SysOSX: AI & Cloud
12. Auditoria e conformidade para o Ubuntu Server: melhores práticas – SysOSX: AI & Cloud
14. Alojar vários sites num único servidor Ubuntu: dicas úteis – SysOSX: AI & Cloud
15. Gerir o armazenamento e os discos no Ubuntu Server: guia simples – SysOSX: AI & Cloud
18. Como configurar e usar LVM no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
22. Primeiros passos com o Podman no Ubuntu Server: um guia completo – SysOSX: AI & Cloud
23. Implementar o Ubuntu Server na cloud: um guia passo a passo – SysOSX: AI & Cloud
24. Automatizar a configuração do Ubuntu Server com o Ansible: um guia prático – SysOSX: AI & Cloud
25.Atualizar o Ubuntu Server de 22.04 para 24.04: um guia passo a passo – SysOSX: AI & Cloud
Índice
Problemas comuns do Ubuntu Server e como resolvê-los
1. Problemas de arranque
Os problemas de arranque podem dever-se a ficheiros corrompidos, falhas de hardware ou erros de configuração.
Sintomas:
- O servidor não arranca e mostra um ecrã em branco ou mensagens de erro.
- O menu GRUB está inacessível ou em falta.
- Aparecem erros de kernel panic durante o arranque.
Passos para resolução de problemas:
Passo 1: aceder ao menu GRUB
Reinicia o servidor e mantém premida a tecla Shift (ou a tecla Esc em sistemas UEFI) para aceder ao menu GRUB.
Passo 2: arrancar em modo de recuperação
Seleciona Advanced Options > Recovery Mode para arrancar num ambiente mínimo para resolução de problemas.
Passo 3: verificar os registos do sistema
Inspeciona os registos do sistema à procura de erros relacionados com o processo de arranque:
sudo journalctl -b
Procura erros ou avisos relacionados com módulos do kernel, montagem de discos ou serviços.
Passo 4: reparar pacotes partidos
Executa os seguintes comandos para corrigir pacotes partidos:
sudo apt update
sudo apt install --fix-broken
Passo 5: reinstalar o GRUB
Se o GRUB estiver corrompido, reinstala-o:
sudo grub-install /dev/sda
sudo update-grub
Passo 6: verificar o estado do disco
Usa fsck para verificar e reparar erros de disco:
sudo fsck /dev/sda
2. Erros de SSH
Os erros de SSH podem impedir o acesso remoto ao servidor, interrompendo as tarefas de gestão e automação.
Sintomas:
- Não é possível ligar ao servidor via SSH.
- Erros de «Connection refused» ou «Permission denied».
- O SSH bloqueia ou excede o tempo limite.
Passos para resolução de problemas:
Passo 1: verificar o serviço SSH
Garante que o serviço SSH está em execução:
sudo systemctl status ssh
Se o serviço estiver inativo, inicia-o:
sudo systemctl start ssh
Passo 2: verificar os registos SSH
Inspeciona os registos SSH para veres mensagens de erro detalhadas:
sudo tail -n 50 /var/log/auth.log
Entre os problemas comuns estão:
- Falhas de autenticação.
- Bloqueios de endereços IP devido a fail2ban ou regras da firewall.
Passo 3: verificar as regras da firewall
Garante que a firewall permite o tráfego SSH:
sudo ufw allow OpenSSH
sudo ufw status
Passo 4: inspecionar a configuração SSH
Verifica se há erros no ficheiro de configuração SSH:
sudo nano /etc/ssh/sshd_config
Reinicia o SSH depois de fazeres alterações:
sudo systemctl restart ssh
Passo 5: verificar a conectividade de rede
Garante que o servidor está acessível:
ping <server-ip>
3. Problemas de conectividade de rede
Os problemas de rede podem impedir que o servidor aceda à internet ou comunique com outros dispositivos.
Sintomas:
- Não é possível fazer ping a sites externos nem a outros servidores.
- Erros de resolução DNS.
- As interfaces de rede estão em baixo ou mal configuradas.
Passos para resolução de problemas:
Passo 1: verificar as interfaces de rede
Enumera as interfaces de rede ativas:
ip a
Se uma interface estiver em baixo, ativa-a:
sudo ip link set <interface-name> up
Passo 2: verificar os registos em busca de erros de rede
Inspeciona os registos relacionados com a rede em busca de possíveis problemas:
sudo journalctl -u systemd-networkd
Passo 3: verificar a configuração IP
Verifica o endereço IP, o gateway e as definições DNS do servidor:
cat /etc/netplan/*.yaml
Se a configuração estiver incorreta, edita o ficheiro e aplica as alterações:
sudo nano /etc/netplan/*.yaml
sudo netplan apply
Exemplo de configuração Netplan:
network:
version: 2
ethernets:
eth0:
dhcp4: true
Passo 4: testar a resolução DNS
Verifica a resolução DNS:
nslookup google.com
Se a resolução DNS falhar, atualiza /etc/resolv.conf com servidores DNS válidos:
nameserver 8.8.8.8
nameserver 8.8.4.4
4. Problemas de espaço em disco
A falta de espaço em disco pode fazer com que as aplicações falhem ou impedir atualizações.
Sintomas:
- Erros de «No space left on device».
- O servidor deixa de responder.
Passos para resolução de problemas:
Passo 1: verificar o uso do disco
Usa df para verificar o uso do disco:
df -h
Passo 2: identificar ficheiros grandes
Procura ficheiros grandes que consumam espaço em disco:
sudo du -ah / | sort -rh | head -n 10
Passo 3: verificar o tamanho dos ficheiros de registo
Os ficheiros de registo podem crescer demasiado. Verifica /var/log à procura de registos demasiado grandes:
sudo du -sh /var/log/*
Remove ou arquiva registos antigos:
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/*.log.old
Passo 4: expandir o espaço em disco
Se o disco estiver cheio, expande o volume (plataformas cloud como AWS, Azure e GCP permitem redimensionar discos).
5. Erros de instalação de pacotes
Os erros de instalação de pacotes podem dever-se a dependências partidas ou problemas com os repositórios.
Sintomas:
- Erros de «Unable to locate package» ou «Dependency errors» durante a instalação.
Passos para resolução de problemas:
Passo 1: verificar os registos em busca de erros de pacotes
Inspeciona os registos de apt para veres erros detalhados:
sudo tail -n 50 /var/log/apt/history.log
Passo 2: atualizar o índice de pacotes
Garante que o índice de pacotes está atualizado:
sudo apt update
Passo 3: corrigir dependências partidas
Executa o seguinte comando para resolver problemas de dependências:
sudo apt install --fix-broken
Passo 4: adicionar repositórios em falta
Se um pacote não estiver disponível, adiciona o repositório necessário:
sudo add-apt-repository universe
sudo apt update
6. Uso elevado de CPU ou memória
O uso excessivo de recursos pode provocar degradação do desempenho e tempos de resposta lentos.
Sintomas:
- O servidor deixa de responder.
- As aplicações falham ou excedem o tempo limite.
Passos para resolução de problemas:
Passo 1: monitorizar o uso de recursos
Usa top ou htop para monitorizar o uso de CPU e memória:
top
Passo 2: verificar os registos em busca de erros de aplicações
Inspeciona os registos específicos de aplicações em /var/log à procura de erros que causem um alto uso de recursos.
Passo 3: identificar processos que consomem muitos recursos
Procura processos que consumam recursos em excesso:
ps aux --sort=-%cpu | head -n 10
ps aux --sort=-%mem | head -n 10
Passo 4: terminar processos desnecessários
Termina os processos que consomem muitos recursos:
sudo kill <pid>
Usar registos para resolução de problemas
Os registos são uma das ferramentas mais valiosas para resolver problemas do servidor. Eis como verificar os registos para problemas comuns:
- Registos do sistema:
sudo journalctl -xeOferece registos detalhados sobre erros e avisos do sistema. - Registos de autenticação:
sudo tail -n 50 /var/log/auth.logÚteis para diagnosticar problemas relacionados com SSH e início de sessão. - Registos específicos de aplicações:
Verifica/var/logpara veres registos específicos de aplicações (por exemplo, Apache, MySQL). - Registos do kernel:
sudo dmesgMostra mensagens relacionadas com o kernel, úteis para problemas de hardware e arranque.
Conclusão
Resolver problemas do Ubuntu Server exige uma abordagem sistemática para diagnosticar e resolver problemas. Neste guia, abordámos:
- Resolver problemas de arranque, erros de SSH e problemas de conectividade de rede.
- Corrigir erros de espaço em disco e instalação de pacotes.
- Usar os registos de forma eficaz para diagnosticar problemas.
Ao seguir estes passos e tirar partido dos registos, podes identificar e corrigir problemas do servidor de forma eficiente, garantindo um ambiente Ubuntu Server estável e fiável.