syslogdの限界と次世代シスログデーモン:新世代syslogデーモン徹底活用(1)(1/3 ページ)
UNIX系OSのシステムロギングをおよそ20年の長きにわたって支えてきた「syslogd」にも、限界が見えつつあります。その限界を打ち破る機能を備えた新しいシスログデーモンを紹介します。(編集部)
シスログデーモン「syslogd」は、UNIX系OSのシステムロギングをおよそ20年の長きにわたり支えてきました。しかし、増大する信頼性や安全性への要求、ログの適正保管といった要望に応えるには、syslogdでは力不足との声が高まっています。
そんな折、システムロギングをより確実に行い、RDBMSへのデータ保存や監視システムの連携といった可用性にも優れた、「syslog-ng」や「rsyslog」が注目を集めています。この連載では、こうした次世代シスログデーモンを取り上げ、導入方法や活用方法を解説します。
システムロギングとsyslogd
実行したイベントの履歴、システム不調や変更の記録、不正アクセスの痕跡など、シスログの用途は多義にわたります。またUNIX系OSに限らず、ほかのOSやネットワーク機器にも利用されており、システム管理全般においてシスログは欠かすことができません。
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
おのおの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 | ラインプリンタのメッセージ |
メールサービスのメッセージ | |
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
Copyright © ITmedia, Inc. All Rights Reserved.