連載
» 2008年10月31日 00時00分 公開

新世代syslogデーモン徹底活用(4):rsyslogの導入 (1/2)

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

[Shin.鶴長,@IT]

 前回までの2回にわたり「syslog-ng」のインストール方法と特徴を解説しました。syslog-ngはキャリアクラスの信頼性や豊富な機能を持ちますが、それと引き替えにsyslogdとの互換性を犠牲にしていました。一方、今回紹介する「rsyslog」は、syslog-ng同様、多くの機能と高い信頼性を実現しながら、syslogdの設定をそのまま使用することができます。

 今回から2回にわたり、次世代syslogデーモンのもう1つの候補「rsyslog」を取り上げます。まず今回は、rsyslogのインストール方法を解説します。

rsyslogの特徴

 「reliable(信頼できる)シスログデーモン」という名前が示すように、rsyslogは高い信頼性を実現することを目標に開発されています。そのために、シスログのTCP転送(syslogdは信頼性が低いUDP)やデータベースへのログ保存などの機能が実現されています。

 rsyslogの特徴、syslogdやsyslog-ngとの違いは第1回「syslogdの限界と次世代シスログデーモン」を参照してください。

 syslog-ngはopenSUSEに採用されていますが、一方rsyslogもFedoraで標準採用されているなど(標準採用されたのはFedora 8以降です)、一部では標準化が進んでいます。Fedora以外のディストリビューションでも、パッケージ管理ツールを使って容易にインストールすることができます。

 バイナリパッケージが用意されていないプラットフォームやカスタムインストールを実行する場合も、Linuxならば、ソースコードから手軽にインストールすることもできます。

注意:以降はrootユーザーにて作業を行います。Ubuntuのようにrootユーザーが直接使用できない場合には、sudoコマンドを使用します。


rsyslogのインストール

 ここでは、ソースからインストールする方法とバイナリパッケージを使ってインストールする方法の2つについて解説します。前述のように、Fedoraではバージョン8以降、rsyslogがインストールされているため、特に作業の必要はありません。それ以外のCentOSやUbuntuを例にインストール方法を紹介します。

 まず、CentOS5.2にrsyslogをソースからインストールする方法を解説します。その後、Ubuntuにバイナリパッケージを使ってインストールする方法を解説します。

ソースからのインストール

 CentOS 5.2を例に、ソースファイルを使ってインストールする方法を解説します。ここではCentOSを取り上げますが、Red Hat互換といわれるほかのディストリビューションなら同様の作業でインストール可能です。

  • ダウンロードとインストール

 rsyslogの配布元(http://www.rsyslog.com/)からソースアーカイブをダウンロードします。

 ホームページ中央、「rsyslog 3.18.5 (v3-stable) released」リリース記事中の「Download:」の下に示されたURLをクリックし、次のページに進みます。次ページの「Download this file now!」をクリックすると、ダウンロードが始まります。「Main Menu」の「Downloads」からもダウンロード可能ですが、開発版(devel、beta)もリストアップされるため、今回使用する安定版(stable)を探し当てるのに手間取るかもしれません。

 ソースアーカイブを展開し、configure、makeを実行してインストールを行います。ここではインストール先はデフォルトの「/usr/local」を使用しています。変更するにはconfigure実行時に「--prefix=/」という形でオプションを追加します。そのほかのオプションは「# configure --help」で確認し、適宜追加します。

# wget http://www.rsyslog.com/Downloads-req-getit-lid-133.phtml
# tar xvfz rsyslog-3.18.5.tar.gz 
# cd rsyslog-3.18.5
# ./configure 
# make
# make install
リスト1 rsyslogのインストール

 以上の操作で、次のようにファイルが配置されます。

/usr/local
|-- sbin
|   `-- rsylog       ←プログラム本体
|-- lib
|   `-- rsyslog       ←ライブラリ
`-- share
  |-- info
  `-- man
    |-- man5
    |  `-- rsyslog.conf.5 ←confファイルのためのマニュアル
    `--- man8
       `-- rsyslogd.8   ←rsyslogのマニュアル
ファイルの配置先(/usr/localにインストールした場合)
  • 設定ファイルの準備

 次に、自動起動スクリプトや設定ファイルを用意します。Red Hat互換ディストリビューションでは、ソースアーカイブに同梱されたファイルを使用することができます。以下はCentOSでの作業例ですが、Red Hatでも同様の作業が可能です。

 Red Hat互換ディストリビューション向けの自動起動スクリプトや設定ファイルは、ソースディレクトリ中のredhatに納められています。ディレクトリを移動し、作業を行います。

 初めに設定ファイル「rsyslog.conf」を/etcにコピーします。次に、自動起動スクリプト「rsyslog.init」に修正を加えた後、/etc/init.dにコピーします。ログファイルのローテションを定期的に実施するlogrotateのための設定ファイルも用意されているため、併せて作業します。作業内容は次のとおりです。

(rsyslogdのソースディレクトリで作業します)
 
# cd redhat/
# cp rsyslog.conf /etc/          ←設定ファイルのコピー
# cp rsyslog.sysconfig /etc/sysconfig/rsyslog
     ←設定ファイル(rsyslogdの起動オプション)のコピー
# cp rsyslog.log /etc/logrotate.d/rsyslog		←ログファイルをローテションする
 
logrotateのための設定ファイルのコピー
 
# vi rsyslog.init
     ←起動スクリプトの修正
 
(「自動起動スクリプトの修正」を参考に)
# chmod +x rsyslog.init          ←実行権の設定
# cp rsyslog.init /etc/init.d/rsyslog
     ←自動起動スクリプトのコピー
リスト2 自動起動スクリプトと設定ファイルの用意
25行目 rsyslogdのパスを変更
前) [ -x /sbin/rsyslogd ] || exit 5
後) [ -x /usr/local/sbin/rsyslogd ] || exit 5
 
26行目 rklogdを使用しないためコメントアウト
前) [ -x /sbin/rklogd ] || exit 5
後)# [ -x /sbin/rklogd ] || exit 5
 
39行目 rsyslogdのパスを変更
前) daemon rsyslogd $SYSLOGD_OPTIONS
後) daemon /usr/local/sbin/rsyslogd $SYSLOGD_OPTIONS
 
42・43行目 rklogdを使用しないためコメントアウト
前) echo -n $"Starting kernel logger (rklogd): "
daemon rklogd $KLOGD_OPTIONS
後)# echo -n $"Starting kernel logger (rklogd): "
# daemon rklogd $KLOGD_OPTIONS
 
49〜51行目 rklogdを使用しないためコメントアウト
前) echo -n $"Shutting down kernel logger (rklogd): "
killproc rklogd
echo
後)# echo -n $"Shutting down kernel logger (rklogd): "
# killproc rklogd
# echo
 
61行目 rklogdを使用しないためコメントアウト
前) status rklogd
後)# status rklogd
リスト3 自動起動スクリプトの修正内容

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。