• 締切済み

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に格納させる処理が出来ないかと考えています。 ご助言、よろしくおねがいします。

  • sight
  • お礼率75% (3/4)

みんなの回答

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

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

sight
質問者

お礼

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

関連するQ&A

  • LINUXのsyslog.conf2

    またまたお願いします。 RedHat7.0Jでサーバーを立てて ftpサーバーにしています。 (wu-ftpd) クライアントからサーバーに向けて15秒おきに ftpを行いファイルをアップロードしています。 その際にその都度/var/log/messagesにログがあがってきます。 /etc/syslog.confにどのような記述をすればfptdのsyslogだけ 止めれるのでしょうか?よろしくお願いします。 またLINUXの本でこれを見ればほとんどOKみたいな本もあれば かさねて教えてください。

  • syslogのローテーション設定

    FreeBSD上でsyslogのローテーションを設定しています。 ローテーションは毎日午前0時に行い、それが正常に ログファイルのファイル名を syslog.log.2006-06-11.gz (つまりsyslog.log.(ログローテーションを実行した前日の日付)) のように運用したいと思っています。 何かアイデアがありましたらお教えください。 今のところ、ローテーションにはnewsyslogを使用しています。 ローテーション自体は問題なく動作していますが、ファイル名の 変更処理がわかりません。 また自分は当該サーバの管理者ですので、やれることに 権限上の制限はありません。 よろしくお願いいたします。

  • LINUXのsyslog.conf

    現在LINUXサーバーをログ収集サーバーとして運用をしようと しているのですが、うまく外部からのsyslogを受け取ってくれません (OSをFreeBSDにするとうまくいきます) なにかsyslog.confに追記しないといけないのでしょうか? よろしくお願いします。 サーバーOS:RedHatLinux7.0J クライアント側syslog.confに「*.debug @servername」と 記述しています。

  • Syslogサーバ設定について

    複数のネットワーク機器のsyslogを一つのsyslogサーバで受信可能でしょうか? Syslogサーバ OS:CentOS 5.4 現在、一つのスイッチのsyslog転送先として正常に動作しています。 二つ目のスイッチを同じsyslogサーバに転送すると一つのsyslogファイルが 二つのスイッチのログが書き込まれてしまいます。 この現象を回避できる方法を探しています。 宜しくお願いします。

  • syslogサーバを別セグメントにおけますか?(YAMAHA RTA52i、55i)

    初歩的な質問かも知れず恐縮なのですが タイトルの通り、ルータとは別セグメントのIPアドレス を持つsyslogサーバへログ出力する事は可能でしょうか? 現在、ルータ⇔syslogサーバ間でPingは飛ぶように なりましたがsyslogポート(514)は通りません。 宜しくお願い致します。

  • syslog設定について

    ネットワーク機器のロギング機能により、ルータ/スイッチのログをRedhatLinuxEEサーバのSyslogに出力させる場合、機器毎に分けてログファイルを出力させるような設定は可能でしょうか。 Ex)ルータのログは、/var/log/router.logファイルに、   スイッチのログは/var/log/switch.logファイルに出力させる。

  • Sys::Syslogモジュールでsyslogを出力したい

    以下の様なスクリプトでsyslogを出力したいのですが、出力することができません。どなたかご教授ください。 環境は vine2.6r4 perl5.6.1 で、/etc/syslog.confにlocal4.* /var/log/hoge.logを追加後、syslogdを再起動しました。 プログラムを実行するとhoge.logファイルは出力されます。 また、logger -p local4.err messageでhoge.logにmessageが出力されることも確認済みです。 ------------- #!/usr/bin/perl -w use strict; use Sys::Syslog qw(:DEFAULT setlogsock); # 実行ファイル名の取得 my ($prog_name) = $0; $prog_name =~ s/(.*)\/(.*)/$2/; # Sys::Syslogモジュールの引数 my($ident, $logopt, $facility); my($ident) = $prog_name; my($logopt) = 'ndelay'; my($facility) = 'local4'; # 処理開始 &put_syslog("info", "process start."); sub put_syslog { my($priority, $msg) = @_; openlog($ident, $logopt, $facility) || die "put_syslog: can't open syslog\n"; syslog($priority, $msg); closelog(); }

    • ベストアンサー
    • Perl
  • WindowsのフリーソフトでSYSLOGサーバってありますか?

    現在YAMAHAのルータRT58iというルータを使っているのですが、たまにSYSLOGで調べたいことがあり、telnetで入ってSYSLOGをみてみると2時間前くらいのLOGしか残っていません。もっと前にさかのぼりたいと思っているのですが、500件を超してしまっているようです。そこで、Windows用のフリーのSYSLOGサーバソフトを探しているのですが、どなたかご存じのかたいらっしゃいませんでしょうか。

  • どのシステムがどういったsyslogのファシリティ(authprivと

    どのシステムがどういったsyslogのファシリティ(authprivとかdaemonなど)とセレクタ(info、debugなど)でsyslogサーバにログを転送するのか全て知るにはどうしたら良いでしょう? 先日BaffaloのTerastationというネットワークストレージ製品を購入しました。 syslog機能が付いているのですが、マニュアルを読んでもどういう時に どういうファシリティとセレクタの組み合せでログがsyslogサーバに転送されるのかについての記載がありませんでした。 そこでtcpdumpでパケットを見たところ、設定変更したときのsyslogが、 Sept 28 18:51:35 192.168.1.10 TeraStation PRO[10120]: [Web] Change value : info.syslog_forward_target=192.168.1.1 のようにinfoがファシリティでsyslog_forward_targetがセレクタであるということがわかりました。ただ、これですべてではないと思います。試すことは出来ませんがディスク障害の時にはまた別のファシリティとセレクタで飛んでくるのではないかと考えていますが、それが何なのか今は解りません。この機種に限らず、他にもどんなファシリティとセレクタがあるのか皆様はどうやって調べていますか? 上記のtcpdumpをずっと起動しておくやり方ですと本当にディスク障害が起きるまではディスク障害のファシリティとセレクタを知ることが出来ないということになってしまいますのでダメなやり方だと思います。。(すみませんがサポートに電話しろ!は無しで。今後サポートが無い機器などさまざまな局面でのsyslog設定のために勉強したいので)

  • Solaris 10のsyslog転送

    Solaris 10のsyslogをSyslog監視サーバへ転送をおこなうために次の設定を施しました。 /etc/hostsに aaa.aaa.aaa.aaa serv00 svhost00 を追加 /etc/inet/ipnodesに aaa.aaa.aaa.aaa serv00 svhost00 /etc/syslog.confに *.* @serv00 を追加し、 syslogdを再起動しました。 svcadm refresh system/system-log LinuxやWindows(NTsyslog)では正常にsyslog(イベントログ)がSyslog監視サーバへ 転送されていますが、Solarisだけはうまくいきません。  何卒宜しくお願い致します。