CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
こんにちは。加賀結衣(かが ゆい)と申します。
このコラムでは、株式会社リックテレコムの「Windows/Linuxのトラブル追跡実践ノウハウ」をもとに、私が実際にPCに触りながら学んだことをまとめていきます。
コラム内のページ表記は、この書籍のページを示します(Pはページです)。
日々発生するコンピュータのトラブルに対し、どのようなツールを使い、どのような情報を収集すればよいか知りたいと思われている初心者の方に、このコラムが少しでもお役に立てば嬉しいです。
今回は、第3章 「ログ、設定の調べ方」の「3.3 Linux編(ログ)」を確認していきましょう。
----------------------------------------------------------------------
第3章 ログ、設定の調べ方
3.3 Linux編(ログ)
3.3.1 Linuxのディレクトリ構成について(p.133)
3.3.2 Linuxの主なログファイルについて(p.134)
3.3.3 Linuxの主な設定ファイルについて(p.137)
3.3.4 エラーログから調査の手がかりを探す(p.137)
3.3.5 ログファイルや設定ファイルを探す(p.139)
3.3.6 grepコマンドでログを検索する(p.143)
3.3.7 grepの正規表現を活用する(p.146)
3.3.8 grepと他のコマンドを組み合わせてログを調査する(p.148)
3.3.9 圧縮されたファイル内を検索する(p.154)
3.3.10 grepよりも高速なコマンドを導入する(p.155)
3.3.11 デバッグレベルを変更して詳細なログを取得する(p.155)
3.3.12 巨大なログを調べる(p.156)
3.3.13 リアルタイムにログを監視する(p.159)
----------------------------------------------------------------------
第3章 ログ、設定の調べ方
3.3 Linux編(ログ)
3.3.1 Linuxのディレクトリ構成について(p.133)
LinuxではFHSにて主なディレクトリ名とその内容が定められています。
FHSとは、Filesystem Hierarchy Standard(ファイル・ハイアラーキー・スターンダード)の略で「ファイルシステム階層標準」とも呼ばれます。
多くのLinuxディストリビューションは、このFHSへの準拠を宣言しているため、UNIX系OSではディストリビューションが違っていても、基本的なディレクトリ構成が同一になります。
例として、以下に一部を抜粋します。
/は「ルート」と読み、最も基本となるルートディレクトリを意味します。
全てのディレクトリやファイルが、このルート配下に含まれます。
/binは「ビン」と読み、一般ユーザ向けの基本的な実行ファイル(ls、cat、moreなど)が含まれます。
一方、/sbinは「エスビン」と読み、管理者ユーザ向けの基本的な実行ファイル(fdisk、shotdownなど)が含まれます。
/bootは「ブート」と読み、OSの起動に必要なLinuxのカーネルやブートマネージャなどが含まれます。
/devは「デブ」と読み、デバイスファイルが含まれます。
/homeは「ホーム」と読み、各ユーザのドキュメントなど、各ユーザのディレクトリが/homeのサブディレクトリに含まれます。
/rootは「ルート」と読み、rootユーザ用のホームディレクトリが含まれます。
/libは「リブ」と読み、システムの起動に必要なドライバモジュールなど、基本的なコマンド ライブラリが含まれます。
/optは「オプト」と読み、追加のソフトウェアパッケージのインストールファイルなどが含まれます。
/lost+foundは「ロストアンドファウンド」と読み、ロストファイル用のディレクトリです。
/procは「プロック」と読み、メモリやプロセス関連の、Linuxのシステム情報にアクセスするためのディレクトリで、各情報をまるで実ファイルのように配置した仮想的なファイルシステムです。
/tmpは「テンプ」と読み、再起動でクリアされる一時ファイルが含まれます。
/var/tmpは「バー・テンプ」と読み、再起動後も保持される一時ファイルが含まれます。
/var/logは「バー・ログ」と読み、ログファイルが含まれます。
/var/mailは「バー・メール」と読み、ユーザの電子メールが含まれます。
/usrは「ユーザ」と読み、LinuxOSのコア以外の、基本的でないコマンド用の階層です。
参考:
Filesystem Hierarchy Standard
http://refspecs.linuxfoundation.org/fhs.shtml
3.3.2 Linuxの主なログファイルについて(p.134)
■/var/log
/varは「バー」、/var/logは「バー・ログ」と読みます。
Linuxの主なログファイルはこの/var/logに配置されています。
/varには、 ログやシステム運用中に変化するデータなど各種システムファイルが格納されています。
/var/log/faillog及び/var/log/tallylogには、各ユーザーのログインの失敗回数が記録されます。
悪意のある第三者がログイン試行しているかどうかは、これらを確認することで調査できます。
これらのログは、バイナリファイルであるため、内容を確認するには専用のコマンドが必要となります。
/var/log/faillogはfaillogコマンドで閲覧でき、/var/log/tallylogはpam_tally2コマンドで閲覧できます。
■rsyslogd
このsyslogdの頭にrを加えたものがrsyslogで、rは「Reliable(リライアブル。信頼できる)」の略です。 syslogではUDPを利用してログの転送を行っていますが、rsyslogではTCPを利用したログの転送も可能でより信頼性が高いため、このような、より信頼性の高いsyslogdのことをrsyslogdと読んでいます。
syslogdやrsyslogdは、「ファシリティ(facility)」と「プライオリティ(priority)」の組み合わせによりファイルの出力内容を決定します。
前者のファシリティとは、機能という意味でログがどの種類に属しているかを示します。
例えば、カーネルの出力メッセージは「kern」、ユーザーレベルの各種メッセージは「user」、メールシステムのメッセージは[mail」というファシリティとなります。
また、「auth」はセキュリティや認証関連、「authpriv」は、セキュリティや認証関連のうち、特にセキュリティ的に隠しておく必要のあるログなどを扱います。
「cron」はcron関連のメッセージとなります。
一方、「プライオリティ(priority)」はログの重要度を示し、emerg、alert、crit、error、warning、notice、info、debugがあります。emergはシステムが不安定な状態を表し、最も緊急度が高いことを意味します。
rsyslogdではこれらの「ファシリティ(facility)」と「プライオリティ(priority)」の組み合わせによりログファイルを出力しますが、どのログを出力するかは/etc/rsyslog.confという設定ファイルに記述されます。
参考
syslog.confの記述方法
http://www.itmedia.co.jp/help/howto/linux/0007master/04/02.html
3.3.3 Linuxの主な設定ファイルについて(p.137)
■/etc
/etcは「エトセ」と読みます。
Linuxでは設定ファイルの多くがこの/etcに配置されています。
Windows でいうところの、"Program Files"にあたります。
各ユーザがそれぞれ利用しているソフトウェアの設定ファイルは、ユーザディレクトリ内に隠しファイルや隠しディレクトリとして存在しているものが多いため、ls -aオプションで確認します。
3.3.4 エラーログから調査の手がかりを探す(p.137)
dmesgコマンドは"display message(ディスプレイ・メッセージ)"の略で、Linuxカーネルが出力するメッセージを確認するためのコマンドです。
カーネルのメッセージバッファはリングバッファ(循環バッファ)になっているため、古いものから上書きされます。
メッセージバッファのサイズは、dmesg -s で変更することができます。
なお、バッファを消去したい場合はdmesg -c を実行します。
■/var/log/messeges
/var/log/messegesはdmesgコマンドとほぼ同内容のメッセージを記録しています。
初期調査では、この/var/log/messegesや/var/logの他、/etc以下の設定ファイルなどを確認することになりますが、Linuxディストリビューションによっては設定ファイルのパスやインストール ディレクトリのパスが異なる場合があるため、差異に気をつけて調査を進めていきましょう。
★LinuxではFHS(ファイルシステム階層標準)にて主なディレクトリ名とその内容が定められている。
★Linuxの主なログファイルは/var/logに配置されており、内容を確認するには専用のコマンドが必要となる。
★Linuxでは設定ファイルの多くが/etcに配置されている。
なお、サーバ(OS)・ネットワーク分野における原因究明の仕方や切り分けなどを行う方法を基礎から学びたい方には、CTC教育サービスのオリジナルコースである
「システムトラブルシュート(ファーストステップ)」
「システムトラブルシュート(ネクストステップ)」がお勧めです。
詳細は、以下のリンクをご参照くださいませ。
http://www.school.ctc-g.co.jp/course/SSE01.html
http://www.school.ctc-g.co.jp/course/SSE02.html
最後まで読んでくださってどうもありがとうございました。次回もどうぞお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes