syslog-ng_1.4.14

これずっとうまく動かなかったんだけど、やっとわかったよ。
ログホストに全部送る

source src { unix-stream("/dev/log"); internal(); };
destination loghost { udp("loghost" port(514)); };
log { source(src); destination(loghost); };

ログ受け取るほうはこれだけでいいよ。

source net { udp(ip("0.0.0.0") port(514)); };
destination hosts {
file("/var/log/HOSTS/$HOST/$YEAR/$MONTH/$DAY/$FACILITY$YEAR$MONTH$DAY"
owner(root) group(root) perm(0600) dir_perm(0700) create_dirs(yes));
};
log { source(net); destination(hosts); };

なるほどねぇ。
でもさ、仕方ないのかな、ホスト名がFQDNじゃないから、同じホスト名だとかなり厳しいものがある。
俺の管理してるマシンはドメインが違って、全部ホスト名nsだったりして…
$FULLHOSTっていうマクロもドキュメントにあったけど、実装されてないぽい。
空になるもの…
ちなみにsyslog-ngはホストごとに振り分けられるだけじゃなくて、

  • プログラムの名称(正規表現match)
  • ログの内容の正規表現match
  • UDPじゃなくてTCP接続の使用
  • 当然ポート指定可能なのでstunnelとか通せる
  • pipeやプログラムにもログ渡せるよ

って感じぽいです。
動いてみれば、かなり素敵。

カテゴリー: コンピュータ パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください