• 締切済み

syslogのデータベースへの保存

一般的なsyslogデーモンはファイルに記録する(or Displayするだけ)かと 思いますが、ログファイルではなく、データベースに記録できるよいもの はないでしょうか? ちょろりとしらべた限りでは、UNIX系列でsyslog-ng ,msyslog、Windowsで Kiwi SYslog Daemonといったソフトで可能そうとは分かりました。 構成としては、syslogを吐くクライアントがあり、同一セグメント内にsyslog サーバをおき、そこでsyslogを受けてDBに記録するようにしたいと考えています。 探している希望としては、 ・できればWindows Serverで動作するものがbetter。 ・できればオープンソース等無料。有償でも数万(ただし事前検証可のもの) 最終的な目的は、apacheのlog4jで吐かれるログのDB保存なのです。 log4jのJDBCAppenderなどを使えば、直接DBへの記録が可能なんでしょうが、 業務処理以外でJDBCを使わせたくないので、SyslogAppdenderでsyslogサーバ に飛ばし、そこでDBに格納させる処理が出来ないかと考えています。 ご助言、よろしくおねがいします。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

実際にやったことがないので想像ですが、 ログはフォーマットがきまっているでしょうから、 普通にスクリプト組んでSQLに投げてやればよいのでは? 閲覧性を考えると、pealかphpで組んでやるとよろしいかと。

sight
質問者

お礼

回答いただきありがとうございます。 そうなのですが、ポイントは、 ・ログは随時吐かれる → 随時受け、DBに登録する必要がある。 ・ログを出力しているサーバでプログラム&DBドライバ系を動かしたくない です。 ご指摘の通り、フォーマットがあるので、syslogのMessage部も一カラムとしてDBに入れてしまうのではなく、区切り文字か固定長で分割したいと思っています。 その辺りの融通を考慮すると、自作プログラムが良いのですが、UDPでsyslogを受け取る部分(syslogdにあたる部分)を自前で実装するのは力量不足な為できません。 よろしくおねがいします。

関連するQ&A