• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:syslogについて…)

syslogを使った複数のclient-PCからのsyslogの保存方法

このQ&Aのポイント
  • syslogを使用して複数のclient-PCからのsyslogを個別のファイルに保存する方法について教えてください。
  • 現在、syslog-serverを使って1台のclient-PCからsyslogを保存していますが、更にもう1台のclient-PCを追加してsyslogを別々のファイルに保存したいです。
  • client-PC側のsyslog.confの設定について調べましたが、名前を変更するとsyslogが上がらなくなってしまいました。どのような設定が必要ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Fooky
  • ベストアンサー率71% (59/82)
回答No.1

?無理じゃないですか? syslogによって記録されたログの各行には、 ホスト名も入ってますから、ごっちゃになった ログからgrepか何かで、欲しいホストのログだけ 抽出すれば良い、と思っていたので、 ホストごとにファイルを作るなんて考えたことも なかったです。もしかしたら、何か方法が あるのかなあ。いや、syslog.confの書き方から 考えて、方法はないように思いますよ。 syslog.confの第1コラムのセレクタフィールドの user.*とかをuserooo.*にしてみた、と書かれていますが、 ピリオドの前後のワードは、システムに予約されて いるものしか使えません。したがって、useroooなどの ように勝手に名前をつけることはできません。 syslog.confのmanを見ればすぐ分かることですが、 ピリオドの前が"facility"と言って、ログを吐いた プログラムの種類を表します。ログを吐いたホストを 特定するfacilityはありません。後ろが"priority"で、 その名の通り重要度や緊急性を表します。 で、第2コラムのアクションフィールドでは、 セレクタフィールドで指定した種類のログに対する アクションを規定します。/で始まるファイル名を 指定するとファイルへのセーブ、@ホスト名で ログホストのsyslogdへ送信、|名前付きパイプ名で 名前付きパイプへの送信、あと、指定したユーザの コンソール画面へログを表示、ttyに表示、などの アクションがあります。 さて、そうすると、 A.ログホスト側で特定のホストから来たログだけを   選んで、別個のアクションを取る B.ログを送るクライアント側のsyslog.confで、   ログホストが取るアクションを規定する C.ログを送るクライアント側のsyslog.confで、   ログホストが解釈するfacilityを規定する といういずれも不可能であることが分かると思います。 したがって、クライアントホストごとに異なるファイルに 保存するのは無理なんじゃないかと思います。 ひとつ方法を提案すると、ログファイルをgrepして ホストごとのログファイルをつくるスクリプトをつくって、 cronで定期的に実行する、というのはどうでしょう?

mada-yu-ji
質問者

お礼

御回答ありがとうございます。 本当に助かりました。なるほど…そういったものなのですね! 是非、cronを作ってみたいと思います。 本当にありがとうございました。

関連するQ&A