Howto

syslogを使って、ネットワーク経由でログ出力を行う

ネットワーク上に動作しているPCへsyslogを送信して、開発の効率化を図りましょう。

1. カーネルの設定・ユーザーランドアプリケーションの変更を行う

ネットワーク経由でsyslogを送るために、Armadillo-Jのカーネル設定、および、ユーザーランドアプリケーションの変更(syslogコマンドの追加)を行います。

「uClinux-dist(以後、ワークディレクトリと呼びます)」に入り、make menuconfigと入力してコンフィギュレーション画面を起動させます。画面の起動後「[ ] Customize Kernel Settings」と「[ ] Customize Vendor/User Settings (NEW)」の両方をチェックして保存・終了させます。

Target Platform Selection  --->
 [ ] Customize Kernel Settings
 [ ] Customize Vendor/User Settings (NEW)

続けて、カーネルのコンフィギュレーション画面が起動されます。
Networking options の機能から「[ ] Unix domain sockets」をチェック、保存・終了させます。

 Networking options  ---> 
  [ ] Unix domain sockets

更にsyslogdコマンドが使えるようにします。 BusyBoxを選択、さらに「[ ] syslogd」と「[ ] syslogd: -R」をチェックして、保存・終了させます。

 BusyBox  --->
 [ ] syslogd
 [ ] syslogd: -R

保存・終了後、makeコマンドを入力してコンパイル・イメージの作成を行います。

2. サーバーの設定

Armadillo-Jが送信するsyslogを受けるためのサーバー(syslogを受けるPC)の設定を行います。

syslogを受けるPCでsyslog起動時に「-r」オプションをつけ、ネットワーク経由のログを受け付けるようにします。

設定ファイルを修正します。 (下図は、Vine Linux 2.5においてファイル「/etc/sysconfig/syslog」を修正する場合例に取っています。お使いのディストリビューションによって設定・変更方法が異なりますので御注意下さい。)

 # See syslogd(8) for more details
 SYSLOGD_OPTIONS="-m 0 -r "← 「-r」を新たに追加する
 # Options to klogd

設定の変更後、PC上でsyslogdを起動します。

syslogの詳細な設定についてはsyslogに関する情報が提供されている各種サイトをご覧下さい。

※ 参考URL:syslogdの設定ファイルについて(オンライン manページ)

3. Armadillo-J上でsyslogdを起動する

Armadillo-Jでsyslogdを起動させます。ネットワーク経由でPCにsyslogを送るために「-R」オプションを指定する必要があります。「-R」に続いてsyslogが動作しているPCのIPアドレスを指定します。今回、PCおよび、Armadillo-JのIPアドレスは次のように設定されているとします。

PC192.168.10.20
Armadillo-J192.168.10.25
[armadillo ~]# syslogd -R 192.168.10.20 &
[armadillo ~]#

Armadillo-Jの起動時に動作するように/etc/rc.d/rc.start/ディレクトリ下に上記のコマンドを記述したスクリプトファイルを保存しておくと便利です。

4. 出力内容を確認する

実際にログがPCへ送られているかどうかを確認します。

Armadillo-Jからsyslogを送るためのサンプルプログラム(syslog_test.c)をコンパイルします。

<syslog_test.c>

 #include <syslog.h>
 int main( int argc, char *argv[] )
 {
        syslog( LOG_ERR, "Hello World!\n" ) ;
        return 0 ; 
 } 

コンパイル後、生成されたファイル(syslog_test)をArmadillo-Jへ転送、実行します。

[armadillo ~]# ./syslog_test
[armadillo ~]# 

実行後、PCでログを確認します。

[PC ~]# grep syslog /var/log/messages
Apr 15 00:00:00 192.168.10.25 syslogd started: BusyBox v0.60.5 (2004.04.15-00:00+0000)
Apr 15 00:00:00 192.168.10.25 syslog: Hello World!
[PC ~]#