TT Lab
はじめる
学ぶ 学習パス コース

見知らぬシステムの前で

顧客環境を偵察する

TT Labで続きを見る

目標

文書もダッシュボードもない顧客先のサーバーに初めて入り、30分以内に環境地図を1枚描き出せるようになります。

なぜ重要なのか

見知らぬ環境で最も高くつくミスは、適当なログを開いてみることです。ログは海であり、サイズも形式も知らずに入ると、時間だけが消えます。偵察の目的は答えを見つけることではなく、探索範囲を確定することです。ファイルが何行かがわかれば、grep1回が何秒かがわかり、収集区間がわかれば、報告された時刻のログがそもそも存在するかどうかがわかります。そして容量の確認では、必ず2つを一緒に見ます。ブロックとinodeは別のリソースなので、容量が残っていてもinodeが尽きるとファイルが作れません。dfだけを見て「ディスクには余裕があります」と顧客に答えて、あとで問い返されることが、実際によくあります。

ステップ

  1. /root/reconディレクトリを作成してください。
  2. このシステムのディストリビューション名が入るように、/root/recon/os.txtを作成してください。
  3. /opt/dataの下のファイル一覧をサイズ付きで/root/recon/files.txtに保存してください。
  4. /opt/dataの最上位で最も容量が大きいファイル名だけを/root/recon/biggest.txtに書いてください。
  5. /opt/data/web.logの全体の行数を、/root/recon/weblog_lines.txtに数字で書いてください。
  6. ファイルシステムの容量とinodeの使用量を両方とも/root/recon/disk.txtに保存してください。
  7. /opt/data/web.logで最も早い時刻と最も遅い時刻を、/root/recon/timerange.txtに書いてください。
  8. 上で調べたことを/root/recon/map.md1枚にまとめてください。ディストリビューション、最大のファイル名、web.logの行数、ログの収集区間がすべて入っている必要があります。

参考

偵察用の作業ディレクトリを作る

/root/reconディレクトリを作成してください。

出力物を1か所に集めておくと、あとでレポートにまとめられます。mkdirに-pを付けると、すでに存在してもエラーになりません。

ディストリビューションを確認する

このシステムのディストリビューション名が入るように、/root/recon/os.txtを作成してください。

ディストリビューションの情報は、/etc/os-releaseにkey=valueの形で入っています。この値が、ログのパスとパッケージコマンドを決めます。

データのインベントリを作る

/opt/dataの下のファイル一覧をサイズ付きで/root/recon/files.txtに保存してください。

/opt/dataをサイズ付きで一覧表示してください。ls -lやduの出力を、そのままファイルに渡せば済みます。

最も大きいファイルを探す

/opt/dataの最上位で最も容量が大きいファイル名だけを/root/recon/biggest.txtに書いてください。

目で数えずに並べ替えてください。lsにはサイズ順に並べ替えるオプションがあり、duはsortと組み合わせます。ファイル名だけを書きます。

Webログの行数を数える

/opt/data/web.logの全体の行数を、/root/recon/weblog_lines.txtに数字で書いてください。

行数がわかれば、grep1回が何秒かかるかを予測できます。wcの行を数えるオプションを使ってください。

容量とinodeを一緒に記録する

ファイルシステムの容量とinodeの使用量を両方とも/root/recon/disk.txtに保存してください。

dfは既定ではブロックだけを表示します。inodeを見る別のオプションがあり、2つの出力が1つのファイルにどちらも入っている必要があります。

ログの収集区間を調べる

/opt/data/web.logで最も早い時刻と最も遅い時刻を、/root/recon/timerange.txtに書いてください。

web.logの2つ目のフィールドが時刻です。そのフィールドだけを取り出して並べ替えると、最も早い値と最も遅い値が両端に来ます。

環境地図1枚にまとめる

上で調べたことを/root/recon/map.md1枚にまとめてください。ディストリビューション、最大のファイル名、web.logの行数、ログの収集区間がすべて入っている必要があります。

前のステップで調べた値をMarkdown1枚に集めてください。ディストリビューション、最大のファイル、ログの行数、収集区間がすべて入っている必要があります。