ログ

第1回 syslogdの限界と次世代シスログデーモン


UNIX系OSのシステムロギングをおよそ20年の長きにわたって支えてきた「syslogd」にも、限界が見えつつあります。その限界を打ち破る機能を備えた新しいシスログデーモンを紹介します。(編集部)

Shin.鶴長
2008/7/15

 シスログデーモン「syslogd」は、UNIX系OSのシステムロギングをおよそ20年の長きにわたり支えてきました。しかし、増大する信頼性や安全性への要求、ログの適正保管といった要望に応えるには、syslogdでは力不足との声が高まっています。

 そんな折、システムロギングをより確実に行い、RDBMSへのデータ保存や監視システムの連携といった可用性にも優れた、「syslog-ng」や「rsyslog」が注目を集めています。この連載では、こうした次世代シスログデーモンを取り上げ、導入方法や活用方法を解説します。

システムロギングとsyslogd

 実行したイベントの履歴、システム不調や変更の記録、不正アクセスの痕跡など、シスログの用途は多義にわたります。またUNIX系OSに限らず、ほかのOSやネットワーク機器にも利用されており、システム管理全般においてシスログは欠かすことができません。

syslogサーバの活用

■syslogdの利点

 syslogdが、シスログデーモンのデファクトスタンダードとして20年近くにわたって利用されているのには、主に次のような利点が挙げられます。

  • 複数台の機器が出力するシスログをネットワーク経由で1台のsyslogdサーバに集約できる
  • 出力されるシスログは、クリアテキストで1イベントごとに1行で出力されるため、加工が容易
  • 加工したログを集計・監視など、ほかのプログラムに役立てることができる
  • ログ出力をパイプで任意のプログラムに引き渡すことができる
  • CやJavaといった多くの開発言語でsyslogdをサポートするAPIやライブラリが提供されている

 また、設定がシンプルで、デフォルトのままでもsyslogdサーバとして十分機能することも、広く利用される原因となっています。syslogdの設定は、下のような「/etc/syslog.conf」で行います。

#kern.*                                  /dev/console
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.*                               /var/log/secure
#authpriv.info                           /var/log/secure
mail.*                                   -/var/log/maillog
cron.*                                   /var/log/cron
*.emerg                                  *
uucp,news.crit                           /var/log/spooler
local7.*                                 /var/log/boot.log
/etc/syslog.confの一例(#で始まる行は無効)

 おのおの1行が設定の単位です。スペースやタブで区切られた第1フィールドで「取得するログの種類」、第2フィールドで「出力先」や「出力方法」を指定します。

 例えば3行目の設定では、認証(authpriv)サービスにかかわるログを、「/var/log/secure」ファイルに出力するよう設定しています。

 また、ログのレベルによって出力を切り替えることができます。例えば4行目のように「authpriv.info」と指定した場合、認証サービス(authpriv)にかかわるログで、レベルが「info」以上のものだけファイルに書き出します。

 ログの種別はファシリティ(facility)プライオリティ(priority)の組み合わせで指定します。「authpriv.info」では、ファシリティが「authpriv」、プライオリティが「info」になります。

 シスログでは、次表のようにファシリティとプライオリティが決められています。プライオリティは表の下にあるものほどレベルが高く、指定したプライオリティより高レベルのものすべてが出力されます。例えば「warning」を指定した場合、err/crit/alert/emergレベルのログも同時に出力されます。

ファシリティ 用途
auth 認証メッセージ
authpriv プライベート認証メッセージ
cron cronやatなどのクロックデーモンのメッセージ
daemon ほかにファシリティの指定がない
デーモンプログラム一般のメッセージ
kern カーネルのメッセージ
lpr ラインプリンタのメッセージ
mail メールサービスのメッセージ
local0からlocal7 任意の用途で利用可能
security authと同様(非推奨)
syslog syslogdの内部メッセージ
user 任意のユーザープロセスメッセージ
uucp UUCPを利用したプログラムのメッセージ
lpr ラインプリンタのメッセージ
表1 ファシリティ(facility)一覧
プライオリティ 用途
debug デバッグレベルメッセージ
info 情報メッセージ
notice 通知状態
warning(warn) 警告状態
err(error) エラー状態
crit 致命的な状態
emerg システムが利用できないような緊急事態
local0からlocal7 任意の用途で利用可能
表2 プライオリティ(priority)一覧

 主要なプロセスやデーモンについては、あらかじめ表1のようにファシリティが指定されていますが、表にないサービスやプロセスでも、ログを受け取る側と出力する側でファシリティを合わせることで、シスログの取得が可能です。

 例えば、sshdサービスでは設定ファイル「/etc/ssh/sshd_config」で、次のようにファシリティ「authpriv」が指定されており、ログを/var/log/secureファイルに出力することができます。

SyslogFacility AUTHPRIV
LogLevel INFO
/etc/ssh/sshd_configでsshdのログ出力方法を設定する

 
1/3

Index
新世代syslogデーモン徹底活用
 第1回 syslogdの限界と次世代シスログデーモン
Page 1
システムロギングとsyslogd
  Page 2
syslogdの問題点
  Page 3
2つの次世代syslogデーモン
次世代を意識した「syslog-ng」
信頼性を特徴とする「rsyslog」

Linux Square全記事インデックス


 Linux Squareフォーラム サーバ構築・運用関連記事
連載:Heartbeatでかんたんクラスタリング(連載中)
オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します
特集:Apache 2.2でWebサイトをパフォーマンスアップ!
最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する
連載:実用 Apache 2.0運用・管理術(全8回)
本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える
連載:実用 BIND 9で作るDNSサーバ(全15回)
本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく
連載:実用qmailサーバ運用・管理術(全14回)
本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで
特集:Samba 3.0の全貌 改訂版
Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します

TechTargetジャパン

Linux Square フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ



- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH