エンジニアがLinuxでログを調査する方法。「/var/log/」についても解説

エンジニアがLinuxでログを調査する方法。「/var/log/」についても解説のアイキャッチイメージ

サーバを利用する際には、ログの調査が必要不可欠です。
ログを調査することによって、利用状況や外部からの不正アクセスなどを把握することができます。

本記事では、Linuxでログを調査する方法についてまとめました。
仕事でLinuxを使用する際には、ぜひ参考にしてください。

Linuxでログを調査する方法

Linuxのログは、一部は専用のコマンドで閲覧できるパイナリであるものの、そのほとんどがテキストデータです。

例えば、ログの書式としては以下のようなものがあります。
「日付 時刻 ホスト メッセージ発信元: メッセージ」

そして、実際のログの例が以下です。
「Nov 3 14:17:00 localhost su: (to root) ken on /dev/pts/1」
この例においては、日付がNov 3、時刻が14:17:00、ホストがlocalhost、メッセージ発信元がsu、メッセージが(to root) ken on /dev/pts/1となります。

そして、Linuxのログ調査に使用できるコマンドとしては「grep」「tail」「last」の3つがあります。
grepは、ログ情報を条件で絞りたいときに便利なオプションです。
例えば「# grep ken /var/log/cron」とすると、「ken」が含まれるログのみに絞り込むことができます。

tailは、テキストファイルの最後を指定してログを表示するコマンドです。
「-f」を指定することで随時更新することができるため、ログの監視に応用できます。

lastは最近のログイン履歴を確認できるコマンドです。
直近のログのみを調査したい場合に便利です。

syslogとは

syslog

syslogとは、情報をログとして保存していく仕組みを表します。
Linuxではsyslogデーモンがログを記録しており、syslogデーモンの種類としてはrsyslogやjounraldなどがあります。
syslogの書式は、以下のようになっています。

<ファシリティ>.<プライオリティ> 出力先
例えばcron.* /var/log/cronであれば、ファシリティがcron、プライオリティがすべて、出力先がlog/cronとなります。

*(アスタリスク)はすべてを指定するときに用いられます。

ファシリティとはメッセージの出力先のことで、具体的にはcron(cronからのメッセージ)、daemon(daemonからのメッセージ)、kern(カーネルからのメッセージ)、lpr(印刷関係のメッセージ)、mail(メール関係のメッセージ)、syslog(syslogの機能関係のメッセージ)などがあります。

また、プライオリティとは優先度のことをいいます。
プライオリティが高い順に、emerg、alert、crit、err、warning、notice、info、debug、noneとなっています。

そして、syslogを使用する際に知っておきたいのがログのローテーションです。
ログはサーバを使用している限り溜まっていくため、管理が難しくなってしまいます。

そこで利用できるのがローテーション機能で、コマンドを定期的に実行してくれます。
一般的には、古いログを定期的に破棄するという方法が取られています。

「/var/log/」とは

/var/log/

Linuxのログは、アプリケーションが記録するログとsyslogデーモンが記録するログの2つに分けられます。
そして、アプリケーション自体が記録するログのほとんどは/var/log/配下に保存されます。

ログを正しく調査・管理するためには、どのログがどこに保存されているのかを把握しておくことが大切だといえます。
個別アプリケーションに問題が生じた場合などは、/var/log/配下を確認してみてください。
スムーズに問題の原因を発見できる可能性があるといえるでしょう。

Linuxをマスターしてエンジニアとしての市場価値を上げよう

Linuxは、アプリケーション開発やサーバ構築を始めとした様々な用途で利用されています。
エンジニアであればLinuxを使う機会は多いといえるでしょう。
そのため、他のエンジニア以上にLinuxに関する知識を深めていくことで、希少な存在になることができます。エンジニアとしての市場価値を上げるためにも、ぜひLinuxをマスターしてください。

エンジニアの案件を探すならFEnetインフラ

合わせて読みたい

ネットワークエンジニアもLinuxスキルが必要。求人の内容をチェック!... 最近、クラウドコンピューティング技術が活用されていくなかで、消費電力が少なく小規模な機器でも軽快に動作するLinuxの重要性が増大しています。そのため、ネットワークエンジニアにもLinuxに関するスキルが必要になる場面が増えています。 本記事では、ネットワークエンジニア向けにLinuxのスキルが必...
サーバーエンジニアが職場で使うLinuxディストリビューションの紹介1【Ubuntu】... Ubuntu(ウブントゥ)は、Linuxディストリビューションの中でも代表的なOS(オペレーティングシステム)の1つです。 サーバー用途でもデスクトップ用途でも幅広く使用されており、サーバーエンジニアになればUbuntuを扱う機会は増えるでしょう。 ここではUbuntuについて解説していきます。...
サーバーエンジニアが職場で使うLinuxディストリビューションの紹介2【Debian】... 前回はUbuntuに関して紹介をしましたが、サーバーエンジニアが使うLinux ディストリビューションの1つにDebian(デビアン)というものもあります。 ここではDebianについて簡単に紹介し、Linuxにおけるシェアも述べていきます。 DebianとはどんなOSか Debian...
サーバーエンジニア初心者が知っておくべきLinuxディストリビューションの種類... サーバーエンジニアの仕事では、Linuxを扱う機会が多く、その際はディストリビューションを使うこともあります。 サーバーエンジニアを目指す人は、Linuxディストリビューションについて一通り知っておくと良いでしょう。 Linuxディストリビューションとは Linuxディストリビューションは...
インフラエンジニアに必要なLinuxのスキル。今後も求人は増える?... Linuxはサーバ用途で使用されることが多いOSです。Linuxを扱う機会が多いインフラエンジニアとしての市場価値は、Linuxのスキルで決まるといっても過言ではありません。ここでは今後のIT業界におけるLinuxの必要性と求人数の予測について解説していきます。 Linuxはインフラエンジニアの主...