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が上がらなくなってしまいました。どのような設定が必要ですか?
回答を見る
  • ベストアンサー

syslogについて…

初めて質問します。 簡単な事なのかもしれませんが、よく分からずに困っています。私自身が良く分かっていないため、質問内容が的を得ていないかもしれませんが、もしご存知であれば是非御回答いただけたらと思います。 現在、syslog-serverを使うようにclient-PC1台が設定されていています。 ここにclient-PC1台を増やしたいのですが、syslog.confの設定が良く分かりません。 今まで使っていたclient-PC側のsyslog.confには、user.xxxは@loghostに上げるように設定されており、syslog-server側のsyslog.confにはuser.xxxは/フォルダ/ファイルとされていました。 それで、もう一台client-PC1台を増やしたときに、両client-PCからのsyslogが同じファイルに保存される事になっては困るので、client-PC側のsyslog.confにあるuser.xxxの名前をuserooo.xxxと変更したところsyslogが上がらなくなってしまいました。(名前の変更はいろいろと試してみました…) 結局、私が質問したいのは次の一点です。 2台のclient-PCから上げられる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

  • SolarisからSyslogを転送する設定(初心者)

    質問1 514ポート(UDP)を使用して、全てのSyslogを転送する設定をしたいのですが、例えば転送先のIPアドレスを[192.168.123.123]とした場合、syslog.confにどのような形式で書き込めば良いのでしょうか 宜しくお願いします。 [syslog.conf 設定内容(後半)] user.err     /var/adm/messages user.alert     `root, operator' user.emerg     * ) *.emerg;*.info;*.err;*.warning;*.debug;*.crit;*.alert;*.notice @loghost auth.notice /var/log/authlog 質問2 上記の設定をする前に、/etc/hostsに[192.168.123.123 loghost]と指定する必要がありますが、 既に[192.168.234.234 loghost]と書き込まれています。 [192.168.123.123 loghost]を新たに追加しても問題はないでしょうか 宜しくお願いします。 ※参考にしたホームページ http://www.atmarkit.co.jp/fsecurity/rensai/unix_sec08/unix_sec01.html

  • LINUXのsyslog.conf

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

  • LINUXのsyslog.conf2

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

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

  • Aixのsyslogログローテーションについて

    AIX ver5.3においてsyslogのログローテーションが1w(週)に設定されていたものを 1m(月)に変更しましたが、月が替わってもログローテーションが実行されません。 手順やsyslog.confの記述に問題があるのでしょうか。 手順は以下のとおりです。 (1)#stopsrc -s syslogd (2)/etc/syslog.conf の編集 <変更前> *.notice /var/adm/syslog/syslog.log rotate time 1w files 10 <変更後> *.notice /var/adm/syslog/syslog.log rotate time 1m files 12 (3)#startsrc -s syslogd (4)#lssrc -g ras Subsystem Group PID Status syslogd ras xxxxx 活動状態 (5)%su - root syslog にsu結果が追記された事を確認しsyslogdの動作はOK syslog.confの編集とsyslogdの再起動を11/26に行い、12/1にログローテーションが 行われなかったので12/1に #refresh -s syslogd にてリフレッシュをかけました。

  • Windowsのイベントをsyslogサーバに転送

    WindowsServer2022のイベントビューアのデータをLinuxのsyslogサーバに転送したいです。 以下の方法で実施しました。WindowsServer4台分のログを送付したいです。 1.NXlogをダウンロードし、インストール NXlogを公式サイトよりダウンロードし、WindowsServer2022にインストールしました。公式サイトは以下で、 https://nxlog.co/downloads/nxlog-ce#nxlog-community-edition ダウンロードしたものはこちらになります。 Windows x86-64nxlog-ce-3.2.2329.msi 2.nxlog.confの修正 以下のサイトを参考に、C:\Program Files (x86)\nxlog\conf\nxlog.confの内容を以下のIPの部分だけ修正しました。 XXXの部分はsyslogサーバのIPアドレスが入ります。 参考サイト:https://qiita.com/dan-go/items/d7d525ec44cff939c2d4 ------------------------------------------------------------ <Output out> Module om_udp Host XXX.XXX.XXX.XXX Port 514 </Output> ------------------------------------------------------------ 3.syslogサーバのフォルダ作成 syslogサーバの/data/log/配下にwindowsフォルダを作成しました。 4.Linuxサーバの/etc/rsyslog.confの追記 以下を追記しました。 ------------------------------------------------------------ ## Remote host logging :fromhost-ip, isequal, "XXX.XXX.XXX.XXX" /data/log/windows/event.log & stop ------------------------------------------------------------ →他に3台設定します。XXXは転送したいWindowsServerのIPアドレスが入ります。 5.WindowsServerのファイアウォールの送信の規則でTCPとUDPの514の許可をしました。 6.以下の様にWindowsServerのシステムを再起動しました。 C:\Users\Administrator>sc stop nxlog SERVICE_NAME: nxlog TYPE : 10 WIN32_OWN_PROCESS STATE : 1 STOPPED WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0 C:\Users\Administrator>sc start nxlog SERVICE_NAME: nxlog TYPE : 10 WIN32_OWN_PROCESS STATE : 2 START_PENDING (NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x7d0 PID : 7772 FLAGS : 7.Linux上で以下のコマンドでシステムを再起動しました。 systemctl restart rsyslog この手順でA、B、C、Dサーバのうち、A、Bサーバは手順1でNXlogをC:\Program Files (x86)にインストールし、ログの転送が出来ました。 ただ、CサーバはなぜかC:\Program Filesにインストールしてログの転送ができてしまいました。 DサーバはC:\Program Files (x86)でも、C:\Program Filesにインストールしてもログの転送ができません。 元々デフォルトのままインストールするとC:\Program Filesにインストールされてしまい、インストールが上手くいったりいかなかったりで、Cサーバは何度かやり直して設定出来てしまいまった経緯があります。 この設定で良いのかと、Dサーバの設定で見直す箇所などがあれば教えてください。

  • 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だけはうまくいきません。  何卒宜しくお願い致します。

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

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

  • Windows2003サーバーでのフォルダのアクセス権について

    Windows2003サーバー 1台 WindowsXPクライアント 6台 ユーザーアカウントは各PC毎にありパスワードも付与 サーバー側にもクライアントと同じユーザーとパスワードを作成 ドメイン環境ではなくワークグループで使用 この環境でフォルダの共有をしたいのですが希望は ユーザーA 社長 ユーザーB 社員1 ユーザーC 社員2 ユーザーD 社員3 という環境で社長いわく 社長:フルアクセス 社員:フォルダ(1)フォルダ内のファイルを削除不可だが追加保存は可能         ファイル作成者自身も追加保存後は削除不可    フォルダ(2)フォルダ内のファイルを削除不可だが変更は可能 という環境を求められてます 設定としたらどうすればいいでしょうか? 社員のファイル作成者自身も保存後は削除が不可というのが旨く いきません。 ※ここでいう追加保存は読み込み専用のデータを編集後新しい名前で同フォルダに保存したり クライアントからデータをコピーする行為です。

  • syslog-ngのdestination fileについて

    お世話になります。この度、御教授いただきたく書き込みさせていただきました。何卒宜しく御願いいたします。 ◆環境 ・CentOS(4.4)でsyslog-ng(1.6)を動作。 ・とある機器からsyslogを受信。 ◆症状 対象機器からのsyslog(514)を受け設定ファイルに指定しているdestination fileに保存は出来るのですが、書き込まれる際にファイルの権限が変更されてしまいます。 具体的には 1.destination file=taisho.log(644) ※taisho.log(644)ファイルはroot権限で作成。 2.対象機器からログを受信、syslog-ngによりtaisho.logファイルにログが書き込まれる。 3.書き込み成功。ただしファイル権限がtaisho.log(600)に変更。 上記症状はsyslog-ngのサービスを再起動するたびに起こります。 ※chmod 644 taisho.log で元に戻した場合、syslog-ngを再起動しない限り権限は"644"のままです。 お忙しいと思いますが、ご教授のほど宜しく御願いいたします。