
第3回 システム管理の基礎 syslogdの設定をマスターしよう
浅野史彦、小川典嗣
アイティーブースト(http://www.itboost.co.jp/)
2002/9/7
システムのログをつかさどるsyslogd
ログには、アプリケーションが独自に出力するものと、syslogdを利用して出力するものの2種類があります。
独自のログを出力する代表的なアプリケーションにはApacheやSquid、Sambaなどがあります。独自のログ設定を持つアプリケーションに関してはアプリケーションのマニュアルなどを読んでいただくとして、ほとんどのアプリケーションはsyslogdを利用してログを出力しています。以後は、syslogdを利用したログについて説明します(注)。
| 注:LinuxおよびUNIXでsyslogdがインストールされていないことは考えにくいため、特にインストール方法については言及しません。また、後述するlogrotateに関しても同様です。 |
Linuxでは、主なログの出力先は/var/logディレクトリです。ディレクトリ内を確認すると分かりますが、前述したようにここには複数のファイルが存在します。この設定を行うファイルが/etc/syslog.confです。
■syslog.confのフォーマット
syslog.confの書式は、スペースあるいはタブで分けられた2つのフィールド「selector」と「action」で構成されています(フィールドを分けるための空白はOSによって異なります。マニュアルで確認してください)。
selector |
action |
|
| 取得するログの指定 | 取得したログの出力先 |
■セレクタ(selector)
selectorは「facility」と「priority」(label)を「.」(ピリオド)で接続します。特定のactionに対して複数のselectorを指定したい場合は、「;」(セミコロン)で接続します。
facility.priority{;facility.priority} |
||
| 取得する情報の分類.どのレベルから出力 | ||
■ファシリティ(facility)
facilityはログの分類に当たるものです。syslogdを利用するプログラムは、「このログはこのfacilityに所属している」という情報をsyslogdに渡しています。syslogdの設定を行うことで、facilityに応じて扱い方を変更できます。
|
facility
|
対象のログ
|
|
| auth(security) | 認証サービスのメッセージ(現在はauthprivが推奨されている) | |
| authpriv | 認証サービス(カテゴリはauthと同じ。authとは出力結果が異なる) | |
| cron | cronのメッセージ | |
| daemon | デーモンのメッセージ | |
| kern | カーネルのメッセージ | |
| lpr | プリンタサービスのメッセージ | |
| メールサービスのメッセージ | ||
| news | ニュースサービスのメッセージ | |
| syslog | syslogのメッセージ | |
| user | ユーザープロセスのメッセージ | |
| uucp | uucp転送を行うプログラムのメッセージ | |
| local0〜7 | アプリケーションに依存する | |
| facilityで指定できるキーワード | ||
複数のfacilityを指定したい場合は「,」(カンマ)で接続して、
mail,ftp.warn |
のように書くこともできます。local0からlocal7は、特定のプログラムが所属するfacilityを既存のものと分けたいときに利用します。以下はRed Hat Linux7.3の/etc/xinetd.confの内容ですが、facilityがauthprivで設定されています。スーパーサーバ経由で動作するサービスはfacilityがauthprivということです。
defaults |
例えば、特定のサービスをlocal0のfacilityにするには/etc/xinetd.d下の設定ファイルに以下の記述を追加します。telnetの例を挙げます。
service telnet |
設定ファイルの編集後、xinetdを再起動させればtelnetのログがlocal0のfacilityで出力されます。
sshの場合、デフォルトでsshd_configに、
SyslogFacility AUTHPRIV |
の記述があります。この「AUTHPRIV」の記述をほかのfacilityに変更すればよいのです。
■プライオリティ(priority)
priorityは、プログラムが出力するメッセージのうち、ログのレベルの重要度を設定します。
|
priority
|
内容
|
|
| debug | デバッグ情報 | |
| info | 情報 | |
| notice | 通知 | |
| warn | 警告 | |
| err | 一般的なエラー | |
| crit | 致命的なエラー | |
| alert | 緊急に対処すべきエラー | |
| emerg | システムが落ちるような状態 | |
| 下になるほど重要度が高い | ||
通常の設定を行うと、指定したpriority以上のログが出力されます。例えば、「err」を指定すればcrit、alert、emergのレベルの出力もされます。すなわち、重要度の低いpriorityを選択すればするほど、出力されるメッセージは多くなります。逆に、指定したpriorityよりも重要度の低いメッセージのみを出力させたい場合は、
mail.*;mail.!warn |
のように記述します。この設定では、メールに関するメッセージのdebugとinfoとnoticeが出力されます(ここでの「*」はすべてのメッセージの意味)。
特定のpriorityのみを指定することも可能です。それには「=」を使用します。
kernel.=warn |
のように記述すると、カーネルの警告メッセージだけが出力されます。これに「!」を合わせることで、特定のpriorityを除いたメッセージを出力することも可能です。
これらのpriorityの指定以外に、「none」を利用するとそのfacirityの出力を行いません。
|
selector例
|
内容
|
|
| kernel.=warn | facilityがkernelでpriorityがwarnのみ出力 | |
| mail.*;mail.!=crit | facilityがmailでpriorityがcrit以外のメッセージを出力 | |
| .;daemon.none | facilityがdaemon以外の全メッセージを出力 |
どのfacilityをどのpriorityにするかは、何を監視したいかによります。重要なデータを見逃さないように、必要なデータが取得できるpriorityに変更しましょう。
■アクション(action)
actionには、selectorで指定したメッセージをどこに、あるいはどのように出力するかを設定します。具体的には、
- どのファイルに出力するか(ファイルのパスを記述する)
- ほかのプログラムに渡す(「|」を利用)
- 他ホストに渡す(「@ホスト名」)
- ユーザーのコンソールに表示(システムに登録されているユーザー名)
になります。また、出力先のファイルとして/dev/consoleを指定することで、コンソールに表示させることも可能です。actionの設定例は以下のとおりです。
|
設定例
|
内容
|
|
| /var/log/samplelog | /var/log/samplelogへログを出力 | |
| | /usr/local/bin/*** | ログをパイプでほかのプログラムへ渡す | |
| /dev/console | ローカルのコンソールへ出力 | |
| @remotehost | リモートホストのsyslogdへ送信(注) | |
| root,user1 | rootとuser1に通知 | |
| * | オンラインユーザーすべてに通知 | |
| 注:詳細は後述 | ||
以上の内容を踏まえて、デフォルトのsyslog.conf(注)を見てみましょう。
|
||||||||||||||
| 注:Red Hat Linux7.3のsyslog.confです。コメント行は除いています。 |
■ログサーバによるログの一元管理
以前、ログを数カ月から数年間保存することを法制化しようという動きがありました。これは不正アクセスの情報を残すためでしたが、まだ実際の法律としては存在していません。
しかし、ログを残すことがネットワーク管理者の重要な作業の1つであることは間違いありません。不正アクセスを行う者にとって、ログには自分を特定する手掛かりとなる情報が記録されます。当然、ログを削除しようとするでしょう。これに対処するために、異なるホストをログサーバとして運用する方法があります。
前述したように、syslog.confの設定でactionに@ホスト名(あるいはIPアドレス)を入力すると、そのホストにログを転送することができます。ただし、ログを受け取るホスト側でも設定が必要です。ログサーバとしてホストを設定するには、syslogdに-rオプションを指定して起動します。syslogdを停止してから、
# /sbin/syslogd -r |
で再実行します。Red Hat系であれば/etc/sysconfig/syslogに、
SYSLOGD_OPTIONS="-m 0 -r" |
のように追記してsyslogdを再起動すれば、ログサーバとして使用できます。
ログサーバへ転送されたログは、ログサーバのsyslog.confの内容に従って処理されます。ここで注意すべき点は、ログサーバのユーザーとパスワードをほかのサーバと同じにしないことと、複数のサーバからログの転送を行うのであれば容量的に十分余裕を持たせておくことです。 以上で、syslogdの主な機能については網羅できているはずです。複数のサーバから必要な情報を洗い出す作業を少しでも減らそうとするなら、ログサーバを1台用意して、例えばpriorityがwarn以上のものを1つのファイルに出力するように設定することも可能です。 |
|
2/3
|
|
||||||
|
||||||
| 連載 Linux管理者への道 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成 (2010/2/9)
natテーブルを用い、市販のブロードバンドルータと同等かそれ以上の機能を備える「Linuxルータ」を作成してみましょう - Web監視機能を賢く利用する (2010/2/2)
プロセスの稼働確認だけでは、サービスが正常に提供できているか分からないことも。そこで使いたいのがWeb監視です - ものいわぬOpenLDAPサーバのログ管理 (2010/1/20)
不満をいわないコンピュータが相手だからこそ、常にログが確認できる状態を整備することが重要になります - ネットワークアクセス権も放棄せよ (2010/1/12)
新しいセキュリティ機構「disablenetwork」を提案する1通のメールから始まった議論が、LSMも巻き込む話へと拡大しました
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |







