Linuxシステムの障害診断と復旧手法

Linuxシステムで発生するさまざまな障害に対処する際、最初に観測されるのは症状であり、根本原因の特定が復旧の鍵となる。ログ管理の理解と代表的なトラブルシューティング手法を習得することで、管理者は迅速に問題箇所を特定し、適切な対処が可能になる。

ログの種類と分析

Linuxでは、システム動作に関する情報を記録するログファイルが重要な診断手段となる。主に以下の3種類に分類される。
  1. カーネル・システムログ:syslogサービス(例:rsyslog)により一元管理され、設定ファイル /etc/rsyslog.conf に基づきメッセージが記録先に振り分けられる。多くのシステムメッセージは /var/log/messages に出力される。
  2. ユーザーログ:ユーザーのログイン・ログアウト履歴を記録。バイナリ形式のため、whowlastac などの専用コマンドで参照する必要がある。
  3. アプリケーションログ:特定のソフトウェアが独自に管理するログ(例:Apacheのaccess.log)。形式はアプリケーションごとに異なる。

ログレベル(重要度順)

  • 0: EMERG(緊急)— システム使用不能
  • 1: ALERT(警戒)— 即時対応が必要
  • 2: CRIT(重大)— 深刻な問題
  • 3: ERR(エラー)— 実行エラー
  • 4: WARNING(警告)— 注意が必要な事象
  • 5: NOTICE(通知)— 正常だが注目すべきイベント
  • 6: INFO(情報)— 一般的な情報
  • 7: DEBUG(デバッグ)— 開発・診断用詳細情報

起動関連の障害対応

MBR破損

物理ディスクの先頭512バイトに存在するMBRが破損すると、システム起動が不可能になる。復旧手順:
  1. dd if=/dev/sda of=/backup/mbr.img bs=512 count=1 でバックアップ取得
  2. 障害発生時はレスキューモード(例:RHELインストールメディアで linux rescue 起動)から復元:
    dd if=/mnt/backup/mbr.img of=/dev/sda bs=512 count=1

GRUBの不具合

レスキューモードでchroot環境に入り、GRUBを再インストール:
chroot /mnt/sysimage
grub-install /dev/sda
また、/boot/grub/grub.conf(または /boot/grub2/grub.cfg)が欠損している場合は、手動で再作成する。

重要な設定ファイルの喪失

  • /etc/inittab が失われた場合:レスキューモードでinitscriptsパッケージを --replacepkgs オプション付きで再インストール。
  • /etc/fstab が失われた場合:
    lvm vgscan
    lvm vgchange -ay VolGroup00
    mkdir /tmp_root
    mount /dev/VolGroup00/LogVol00 /tmp_root
    vi /tmp_root/etc/fstab  # 再構築
    

rootパスワードの紛失

シングルユーザーモードまたはレスキューモードでchrootし、passwd root を実行して再設定。

ソフトウェア関連の問題

  • RPMデータベース破損rpm --rebuilddb で再構築。
  • 共有ライブラリ(.so)不足
    1. find / -name "libxxx.so*" 2>/dev/null で存在確認
    2. 存在しない場合は依存パッケージをインストール
    3. 存在するが見つからない場合は /etc/ld.so.conf にパス追加後、ldconfig 実行

ファイルシステム・ディスク障害

  • ファイルシステム修復fsck -y -t ext4 /dev/sda1(ファイルシステムタイプ指定必須)
  • iノード枯渇:大量の小ファイルが原因。以下で確認:
    df -i
    find /path -xdev -type f | xargs ls -l | sort -k5n
    
    不要ファイルを削除または移動。
  • アンマウント不能fuser -mvk /mount/point で使用プロセスを強制終了。
  • 不良セクタ検出badblocks -sv /dev/sdb1

システムパフォーマンス監視

  • CPU負荷uptime または cat /proc/loadavg
  • メモリ使用状況
    free -m
    vmstat 1 3
    
  • ディスクI/Oiostat -d 1(sysstatパッケージ要)
  • CPU使用率詳細mpstat 1 3

タグ: linux system-administration Troubleshooting logs filesystem

6月29日 00:33 投稿