UNIX系OSのシステムロギングをおよそ20年の長きにわたって支えてきた「syslogd」にも、限界が見えつつあります。その限界を打ち破る機能を備えた新しいシスログデーモンを紹介します。(編集部)
前回までの2回にわたり「syslog-ng」のインストール方法と特徴を解説しました。syslog-ngはキャリアクラスの信頼性や豊富な機能を持ちますが、それと引き替えにsyslogdとの互換性を犠牲にしていました。一方、今回紹介する「rsyslog」は、syslog-ng同様、多くの機能と高い信頼性を実現しながら、syslogdの設定をそのまま使用することができます。
今回から2回にわたり、次世代syslogデーモンのもう1つの候補「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コマンドを使用します。
ここでは、ソースからインストールする方法とバイナリパッケージを使ってインストールする方法の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
以上の操作で、次のようにファイルが配置されます。
/usr/local |-- sbin | `-- rsylog ←プログラム本体 |-- lib | `-- rsyslog ←ライブラリ `-- share |-- info `-- man |-- man5 | `-- rsyslog.conf.5 ←confファイルのためのマニュアル `--- man8 `-- rsyslogd.8 ←rsyslogのマニュアル
次に、自動起動スクリプトや設定ファイルを用意します。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 ←自動起動スクリプトのコピー
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
Copyright © ITmedia, Inc. All Rights Reserved.