イントロダクション
前提情報
ログデータの役割
企業のITインフラストラクチャは、日々の運用で生成される大量のログデータによって支えられています。ログデータはシステムの動作状況やエラー、セキュリティイベントを記録し、システム管理者が問題を検出し、迅速に対応するための重要な情報源となります。その中で、syslog
はLinuxシステムにおける主要なログ管理ツールであり、システムログやセキュリティログを一元管理します。
システム運用の重要性
システム運用チームは、これらのログデータを適切に管理し、分析することで、システムの健全性を維持し、トラブルシューティングやセキュリティ対応を行います。このため、ログデータの管理はシステム運用において非常に重要なポジションを占めています。
syslogについてはこちらの記事で解説しています。
https://envader.plus/article/274
背景と目的
問題の発生
ある日の朝、IT運用チームに新たな課題が持ち込まれました。ログデータが急増し、syslog
のディスク容量が限界に達しているという報告です。このままではシステムのパフォーマンスに深刻な影響が出る恐れがあります。システム全体のパフォーマンスやセキュリティに対する影響を避けるため、迅速な対応が必要とされました。
プロジェクトの目的
新人エンジニアのAさんが、この課題を解決するプロジェクトに挑むことになりました。Aさんにとって、これは大きな挑戦であり、システム運用の基礎を学び、実践する絶好の機会でもあります。Aさんは先輩エンジニアのBさんのサポートを受けながら、syslogの論理ボリュームを拡張し、ディスク容量不足の問題を解決することを目指します。
プロジェクトの概要
プロジェクトの発端
Aさんが参加した朝のミーティングで、月次レポートをもとにディスク使用率が90%を超えていることが判明しました。特にsyslog領域の急速な増加が問題視され、緊急対策が必要とされました。システム全体の安定性とパフォーマンスを確保するために、この問題に迅速に対処することが求められました。
システム管理者は、ログデータの急増がサーバーのディスク容量を逼迫し、ログの記録が停止する恐れがあると報告しました。これは、システムのトラブルシューティングやセキュリティ監視に重大な影響を与えるため、早急な対応が必要とされました。
課題の明確化
Aさんはまず、どのログが最も容量を占めているのかを分析することから始めました。syslogは多くの種類のログを管理しており、システムログ、認証ログ、アプリケーションログなど、各種ログが含まれます。これらのログの中で、どれが急増の原因となっているのかを特定することが重要です。
次に、現在のディスク構成と論理ボリュームの確認を行いました。Aさんは、df -h
コマンドを使用してディスクの使用状況を確認し、du -sh /var/log
コマンドで特定のディレクトリのサイズを確認しました。これにより、ログがどれだけディスク容量を消費しているかを把握しました。
さらに、ログの急増がセキュリティインシデントやシステムの異常動作を引き起こす可能性があることも考慮しました。たとえば、不正アクセスの試みが頻繁に行われている場合、認証ログが急増する可能性があります。システムの異常動作が頻発している場合は、システムログのエントリが急増することがあります。これらの可能性を踏まえ、早急な対策が必要であることが明らかになりました。
初期調査とプランニング
ディスク使用状況の分析
Aさんは、du
コマンドとdf
コマンドを使ってディスクの使用状況を確認しました。
# ディスク使用状況を確認するコマンド
df -h
このコマンドで、ディスク全体の使用状況を人間が読みやすい形式で表示します。
# 特定のディレクトリの使用状況を確認するコマンド
du -sh /var/log
このコマンドで、/var/log
ディレクトリのサイズを確認しました。
ログローテーションの設定を確認する際、Aさんは初めて見る設定ファイルに戸惑いましたが、先輩エンジニアのBさんの助けを借りて解析しました。
拡張計画の立案
既存の論理ボリュームを拡張するか、新たな論理ボリュームを作成するかを検討し、ダウンタイムの最小化を考慮した作業計画を立てました。この段階で、Aさんは計画の立案に時間がかかりすぎることに悩みましたが、Bさんのアドバイスで細かいステップに分解して対処しました。
実際の作業手順
ステップ1 バックアップの取得
Aさんは、データ損失防止のために現行のsyslogデータのバックアップを取得することから始めました。これは万が一の障害に備えて重要なステップです。
手順とコマンド
まず、Aさんは以下のコマンドを使って/var/log
ディレクトリ全体を圧縮してバックアップファイルを作成しました。
# バックアップコマンド
tar -czvf /backup/syslog_backup.tar.gz /var/log
説明
tar
はファイルをまとめるコマンドです。-czvf
のオプションはそれぞれ以下の意味を持ちます。-c
新しいアーカイブを作成する-z
gzipで圧縮する-v
詳細情報を表示する-f
ファイル名を指定する
/backup/syslog_backup.tar.gz
は作成するバックアップファイルのパスと名前です。/var/log
はバックアップするディレクトリです。
バックアップの完了を確認し、エラーがないかチェックしました。Aさんはこの作業中に初めてコマンドのオプションに戸惑いましたが、Bさんの助けを借りて無事に完了しました。
ステップ2 論理ボリュームの拡張
次に、Aさんは論理ボリュームを拡張しました。既存のディスク容量が不足しているため、新しいディスクスペースを追加する必要があります。
手順とコマンド
まず、Aさんは以下のコマンドを使って論理ボリュームを拡張しました。
# 論理ボリュームを拡張するコマンド
lvextend -L +10G /dev/mapper/centos-root
説明
lvextend
は論理ボリュームを拡張するコマンドです。-L +10G
は論理ボリュームを10GB拡張することを意味します。/dev/mapper/centos-root
は拡張する論理ボリュームのパスです。
Aさんはコマンドのオプションを誤解し、一度失敗しましたが、エラーメッセージを調査して修正しました。Bさんのアドバイスに従い、再度実行して無事に拡張を完了しました。
ステップ3 ファイルシステムのリサイズ
論理ボリュームを拡張した後、ファイルシステムも拡張された新しいディスクスペースに対応するようにリサイズする必要があります。
手順とコマンド
Aさんは以下のコマンドを使ってファイルシステムをリサイズしました。
# ファイルシステムをリサイズするコマンド
resize2fs /dev/mapper/centos-root
説明
resize2fs
はファイルシステムをリサイズするコマンドです。/dev/mapper/centos-root
はリサイズするファイルシステムのパスです。
リサイズが完了した後、Aさんは新しいディスク容量を確認するために以下のコマンドを実行しました。
# ディスク使用状況を再確認するコマンド
df -h
ステップ4 設定の確認とテスト
最後に、Aさんは新しいディスク容量を確認し、ログ書き込みのテストを実施しました。これにより、拡張が正しく行われたことを確認します。
手順とコマンド
Aさんはログの書き込みテストを実施するために、以下の手順を踏みました。
-
ログ書き込みテストのシミュレーション
- 仮のログエントリを作成し、syslogに書き込みを行いました。
logger "Test log entry after resizing"
-
ログファイルの確認
- syslogファイルを確認し、テストログが正しく書き込まれていることを確認しました。
tail /var/log/messages
結果と評価
結果の確認
Aさんはすべての手順を完了した後、システムの動作をモニタリングし、問題がないことを確認しました。拡張されたディスク容量により、syslogの記録が再び安定して行えるようになり、システムの健全性が確保されました。Aさんが実行した手順により、ディスク使用率が大幅に改善され、システム全体のパフォーマンスが向上しました。
パフォーマンス評価
ディスク容量の拡張が成功した後、Aさんはシステムのパフォーマンスを評価しました。これには、以下の点が含まれます。
-
ディスク使用率のモニタリング
- 拡張後のディスク使用率を再度
df -h
コマンドで確認し、拡張が正しく反映されていることを確認しました。
df -h
- 拡張後のディスク使用率を再度
-
ログの書き込みテスト
- システムログが正しく記録されていることを確認するために、仮のログエントリを作成し、ログファイルを確認しました。
logger "Post-extension test log entry" tail /var/log/messages
-
システムパフォーマンスのチェック
- 拡張後のシステムパフォーマンスを定期的にモニタリングし、ディスクI/OやCPU使用率に異常がないか確認しました。これにより、システムの安定性が維持されていることを確認しました。
フィードバックと学び
プロジェクト完了後、Aさんはチーム内で成果を報告し、先輩エンジニアのBさんからのフィードバックを受けました。特に、問題発生から解決までの迅速な対応と、適切なバックアップとリカバリープランの実行が称賛されました。
Aさんは、今回の経験を通じて以下の点を学びました。
-
バックアップの重要性
- システム変更前にバックアップを取得することで、万が一の障害時にも迅速に復旧できることを学びました。
-
論理ボリューム管理のスキル
- 論理ボリュームの拡張とファイルシステムのリサイズに関する実践的なスキルを習得しました。
-
トラブルシューティング能力の向上
- エラーメッセージの解析と修正を通じて、トラブルシューティング能力が向上しました。
Aさんは、これらの学びを今後のシステム運用に活かすことを誓い、さらなるスキルアップを目指しました。
ベストプラクティスと今後の対応策
ベストプラクティス
Aさんは今回のプロジェクトを通じて、多くのベストプラクティスを学びました。これらの知見は今後のシステム運用においても重要です。
-
バックアップの取得
- システム変更前に必ずバックアップを取得することは、データ損失防止の基本です。今回のプロジェクトでも、syslogデータのバックアップを事前に取得したことで、安心して作業を進めることができました。
-
ディスク使用状況の定期的な確認
df -h
やdu -sh
コマンドを使用してディスク使用状況を定期的に確認することで、問題が大きくなる前に対処することができます。これにより、システムの安定性を維持することができます。
-
ログローテーションの設定
- ログデータが急増する場合には、ログローテーションの設定を見直すことが重要です。適切なローテーション設定を行うことで、ディスク容量の使用を最適化し、長期間にわたるログの保存を実現できます。
-
適切なモニタリングツールの使用
- システムのパフォーマンスやディスクI/O、CPU使用率を監視するためのツールを適切に使用することが重要です。これにより、異常を早期に検知し、迅速に対応することが可能になります。
今後の対応策
Aさんは、今回の経験を活かして今後のシステム運用における対応策を計画しました。
-
定期的なディスク容量の見直し
- 今後も定期的にディスク容量を見直し、必要に応じて拡張計画を立てることが重要です。これにより、システムの健全性を長期的に維持することができます。
-
ログ管理ポリシーの改善
- ログの保存期間やローテーションポリシーを見直し、システムのニーズに合わせたログ管理を行います。これにより、ディスク容量の効率的な使用が可能になります。
-
継続的なスキルアップ
- Aさんは、今回のプロジェクトを通じて得た知識とスキルをさらに深めるため、継続的に学習を続けることを決意しました。これにより、より高度なシステム運用に対応できるようになります。
-
チーム内での知識共有
- 今回のプロジェクトで得た知見をチーム内で共有し、全体のスキル向上を図ります。これにより、チーム全体での対応力を強化し、システム運用の品質を向上させることができます。
まとめ
syslogの論理ボリュームを拡張することは、システム運用において重要なタスクです。ディスク容量が不足すると、ログの記録が停止し、システム全体のパフォーマンスやセキュリティに深刻な影響を与える可能性があります。今回のプロジェクトでは、新人エンジニアのAさんがこの課題に取り組み、成功裏に解決しました。
この経験を通じて、Aさんは論理ボリューム管理のスキルを習得し、システムの健全性を維持するためのベストプラクティスを学びました。また、定期的なディスク使用状況の確認や、適切なログ管理ポリシーの重要性も再確認しました。
今後も、システム運用チーム全体でこれらの知見を共有し、継続的なスキルアップとシステムの安定運用を目指すことが重要です。このプロジェクトの成果は、システムの健全性を維持し、将来的な問題を未然に防ぐための貴重な一歩となりました。
皆さんもぜひ、Aさんの体験を自身の知識として活かし、日々のシステム運用に役立ててください。
参考資料
【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2023.05.28
エンジニア初学者がLinuxを学べるサービス
Linuxは様々な学習サービスが提供されているため、どのサービスを利用するかが大切です。オススメのサービスの他、初学者の方がLinuxを学ぶメリットも解説しています。
- キャリア・学習法
- Linux
- サービス
2024.03.18
AmazonLinux2023にWordPressをインストールする
この記事では、初心者でもわかるように、Amazon Linux 2023にWordPressをインストールして、ブログやサイトを立ち上げるまでの手順を丁寧に解説します。
- AWS
- Linux
- ハンズオン
2024.05.30
Linuxのディストリビューションについて(ubuntu, centos)
こちらはEnvaderの記事になります。
- Linux