はじめに
Ubuntu Server は信頼性が高く広く採用されている Linux ディストリビューションですが、最も信頼性の高いシステムでも、パフォーマンスに影響したり運用を中断させたりする課題に直面することがあります。一般的な問題のトラブルシューティング方法を理解することは、稼働時間を維持し、シームレスな機能を確保するために不可欠です。このガイド 「Ubuntu Server の一般的な問題のトラブルシューティング」 では、起動障害、SSH 接続エラー、ネットワークの問題など、よくある問題を診断して解決するための実践的な手法を説明します。また、システムログを効果的に活用して問題の根本原因を特定し、サーバーを最適なパフォーマンスに戻す方法も学びます。
以前の記事:
01. Ubuntu Server 入門 – SysOSX: AI & Cloud
02. 初めての Ubuntu Server のセットアップ方法:初心者向けガイド – SysOSX: AI & Cloud
03.Ubuntu Server のための Linux コマンドラインをマスターする – SysOSX: AI & Cloud
04. Ubuntu Server でのユーザーと権限の管理:包括的ガイド – SysOSX: AI & Cloud
05. Ubuntu Server のためのネットワークの基礎:包括的ガイド – SysOSX: AI & Cloud
06. Ubuntu Server でのソフトウェアのインストールと管理:完全ガイド – SysOSX: AI & Cloud
07.Ubuntu Server のパッチ適用と更新:包括的ガイド – SysOSX: AI & Cloud
08. Ubuntu Server の保護:強化と防御のための実践的な手順 – SysOSX: AI & Cloud
10. Ubuntu Server のためのシステム監視ツール:包括的ガイド – SysOSX: AI & Cloud
11. Ubuntu サーバーのための集中ロギング:必読ガイド – SysOSX: AI & Cloud
12. Ubuntu Server の監査とコンプライアンス:ベストプラクティス – SysOSX: AI & Cloud
13.Ubuntu Server のホスティングと Web アプリケーションのためのセットアップ:究極ガイド – SysOSX: AI & Cloud
14. 1 台の Ubuntu Server で複数の Web サイトをホストする:役立つヒント – SysOSX: AI & Cloud
15. Ubuntu Server でのストレージとディスクの管理:シンプルガイド – SysOSX: AI & Cloud
16. Ubuntu Server でのファイル共有サービスのセットアップ:完全ガイド – SysOSX: AI & Cloud
17. Ubuntu での安全なデータベースサーバーのセットアップ:MySQL と MariaDB – SysOSX: AI & Cloud
18. Ubuntu Server での LVM の構成と使用方法:包括的ガイド – SysOSX: AI & Cloud
19. KVM を使った仮想化入門:Ubuntu Server のための初心者向けガイド – SysOSX: AI & Cloud
20. Ubuntu Server への Docker のインストール方法:コンテナ化へのステップバイステップガイド – SysOSX: AI & Cloud
21. LXD を始める:簡単にコンテナをインストールする + チートシート – SysOSX: AI & Cloud
22. Ubuntu Server での Podman 入門:完全ガイド – SysOSX: AI & Cloud
23. クラウドへの Ubuntu Server のデプロイ:ステップバイステップガイド – SysOSX: AI & Cloud
24. Ansible を使った Ubuntu Server セットアップの自動化:実践ガイド – SysOSX: AI & Cloud
25.Ubuntu Server を 22.04 から 24.04 にアップグレードする:ステップバイステップガイド – SysOSX: AI & Cloud
目次
一般的な Ubuntu Server の問題とトラブルシューティング方法
1. 起動の問題
起動の問題は、破損したファイル、ハードウェア障害、構成エラーが原因で発生することがあります。
症状:
- サーバーが起動せず、空白の画面やエラーメッセージが表示されます。
- GRUB メニューにアクセスできない、または表示されません。
- 起動中にカーネルパニックエラーが表示されます。
トラブルシューティングの手順:
ステップ 1:GRUB メニューにアクセスする
サーバーを再起動し、 Shift キー(UEFI システムでは Esc キー)を押したままにして、GRUB メニューにアクセスします。
ステップ 2:リカバリモードで起動する
選択: Advanced Options > Recovery Mode を選択し、トラブルシューティングのための最小環境で起動します。
ステップ 3:システムログを確認する
次の項目を確認します。 システムログ :起動プロセスに関連するエラーを確認します。
sudo journalctl -b
カーネルモジュール、ディスクのマウント、サービスに関連するエラーや警告を探します。
ステップ 4:壊れたパッケージを修復する
壊れたパッケージを修正するために、次のコマンドを実行します。
sudo apt update
sudo apt install --fix-broken
ステップ 5:GRUB を再インストールする
GRUB が破損している場合は、再インストールします。
sudo grub-install /dev/sda
sudo update-grub
ステップ 6:ディスクの状態を確認する
次のコマンドを使います。 fsck でディスクエラーを確認し、修復します。
sudo fsck /dev/sda
2. SSH エラー
SSH エラーによりサーバーへのリモートアクセスができなくなり、管理や自動化のタスクが中断されることがあります。
症状:
- SSH 経由でサーバーに接続できません。
- 「Connection refused」または「Permission denied」エラー。
- SSH がハングしたり、タイムアウトしたりします。
トラブルシューティングの手順:
ステップ 1:SSH サービスを確認する
SSH サービスが実行されていることを確認します。
sudo systemctl status ssh
サービスが非アクティブな場合は、開始します。
sudo systemctl start ssh
ステップ 2:SSH ログを確認する
詳細なエラーメッセージを確認するために、SSH ログを確認します。
sudo tail -n 50 /var/log/auth.log
一般的な問題には次のものがあります。
- 認証の失敗。
- fail2ban やファイアウォールルールによる IP アドレスのブロック。
ステップ 3:ファイアウォールルールを確認する
ファイアウォールが SSH トラフィックを許可していることを確認します。
sudo ufw allow OpenSSH
sudo ufw status
ステップ 4:SSH 構成を確認する
SSH 構成ファイルにエラーがないか確認します。
sudo nano /etc/ssh/sshd_config
変更を行った後、SSH を再起動します。
sudo systemctl restart ssh
ステップ 5:ネットワーク接続を確認する
サーバーに到達できることを確認します。
ping <server-ip>
3. ネットワーク接続の問題
ネットワークの問題により、サーバーがインターネットにアクセスしたり、他のデバイスと通信したりできなくなることがあります。
症状:
- 外部の Web サイトや他のサーバーに ping できません。
- DNS 解決エラー。
- ネットワークインターフェースがダウンしているか、誤って構成されています。
トラブルシューティングの手順:
ステップ 1:ネットワークインターフェースを確認する
アクティブなネットワークインターフェースを一覧表示します。
ip a
インターフェースがダウンしている場合は、起動します。
sudo ip link set <interface-name> up
ステップ 2:ネットワークエラーのログを確認する
潜在的な問題がないか、ネットワーク関連のログを確認します。
sudo journalctl -u systemd-networkd
ステップ 3:IP 構成を確認する
サーバーの IP アドレス、ゲートウェイ、DNS 設定を確認します。
cat /etc/netplan/*.yaml
構成が正しくない場合は、ファイルを編集して変更を適用します。
sudo nano /etc/netplan/*.yaml
sudo netplan apply
Netplan 構成の例:
network:
version: 2
ethernets:
eth0:
dhcp4: true
ステップ 4:DNS 解決をテストする
DNS 解決を確認します。
nslookup google.com
DNS 解決に失敗した場合は、次のファイルを更新します。 /etc/resolv.conf (有効な DNS サーバーを指定します):
nameserver 8.8.8.8
nameserver 8.8.4.4
4. ディスク容量の問題
ディスク容量が少ないと、アプリケーションがクラッシュしたり、更新ができなくなったりすることがあります。
症状:
- 「No space left on device」エラー。
- サーバーが応答しなくなります。
トラブルシューティングの手順:
ステップ 1:ディスク使用量を確認する
次のコマンドを使います。 df でディスク使用量を確認します。
df -h
ステップ 2:大きなファイルを特定する
ディスク容量を消費している大きなファイルを探します。
sudo du -ah / | sort -rh | head -n 10
ステップ 3:ログファイルのサイズを確認する
ログファイルは非常に大きくなることがあります。次のディレクトリを確認します。 /var/log :サイズの大きなログがないか確認します。
sudo du -sh /var/log/*
古いログを削除またはアーカイブします。
sudo rm -rf /var/log/*.gz
sudo rm -rf /var/log/*.log.old
ステップ 4:ディスク容量を拡張する
ディスクがいっぱいの場合は、ボリュームを拡張します(AWS、Azure、GCP などのクラウドプラットフォームではディスクのサイズ変更が可能です)。
5. パッケージインストールエラー
パッケージインストールエラーは、壊れた依存関係やリポジトリの問題が原因で発生することがあります。
症状:
- インストール中に「Unable to locate package」または「Dependency errors」が発生します。
トラブルシューティングの手順:
ステップ 1:パッケージエラーのログを確認する
確認: apt のログで詳細なエラーを確認します。
sudo tail -n 50 /var/log/apt/history.log
ステップ 2:パッケージインデックスを更新する
パッケージインデックスが最新であることを確認します。
sudo apt update
ステップ 3:壊れた依存関係を修正する
依存関係の問題を解決するために、次のコマンドを実行します。
sudo apt install --fix-broken
ステップ 4:不足しているリポジトリを追加する
パッケージが利用できない場合は、必要なリポジトリを追加します。
sudo add-apt-repository universe
sudo apt update
6. CPU またはメモリ使用量が高い
過度なリソース使用により、パフォーマンスの低下や応答時間の遅延が発生することがあります。
症状:
- サーバーが応答しなくなります。
- アプリケーションがクラッシュしたり、タイムアウトしたりします。
トラブルシューティングの手順:
ステップ 1:リソース使用量を監視する
次のコマンドを使います。 top または htop で CPU とメモリの使用量を監視します。
top
ステップ 2:アプリケーションエラーのログを確認する
次の場所にあるアプリケーション固有のログを確認します。 /var/log :リソース使用量が多い原因となるエラーを確認します。
ステップ 3:リソースを大量に消費するプロセスを特定する
過度なリソースを消費しているプロセスを探します。
ps aux --sort=-%cpu | head -n 10
ps aux --sort=-%mem | head -n 10
ステップ 4:不要なプロセスを終了する
リソースを大量に消費するプロセスを終了します。
sudo kill <pid>
トラブルシューティングのためのログの活用
ログは、サーバーの問題をトラブルシューティングする際に最も貴重なツールのひとつです。一般的な問題についてログを確認する方法は次のとおりです。
- システムログ:
sudo journalctl -xeシステムレベルのエラーや警告に関する詳細なログを提供します。 - 認証ログ:
sudo tail -n 50 /var/log/auth.logSSH やログイン関連の問題の診断に役立ちます。 - アプリケーション固有のログ:
確認:/var/logにアプリケーション固有のログがあるか確認します(例:Apache、MySQL)。 - カーネルログ:
sudo dmesgカーネル関連のメッセージを表示し、ハードウェアや起動の問題に役立ちます。
まとめ
Ubuntu Server の問題のトラブルシューティングには、問題を診断して解決するための体系的なアプローチが必要です。このガイドでは、次の内容を取り上げました。
- 起動の問題、SSH エラー、ネットワーク接続の問題の解決。
- ディスク容量とパッケージインストールエラーの修正。
- 問題を診断するためのログの効果的な活用。
これらの手順に従い、ログを活用することで、サーバーの問題を効率的に特定して修正し、安定した信頼性の高い Ubuntu Server 環境を確保できます。