- PR -

ログファイルの自動収集or転送方法

1
投稿者投稿内容
dede
常連さん
会議室デビュー日: 2003/10/01
投稿数: 47
投稿日時: 2005-08-20 13:40
windows2000またはXPでログファイルを自動的にまた一定間隔でLINUXサーバへ収集する簡単な方法を探しています。
ログファイルは単純なテキストファイルでサーバにて一括管理をしたいのです。
windows上でのログの格納場所はそれぞれ異なりますので、windowsから一定間隔でLINUXサーバのディレクトリ(日替わり)に転送する方法がいいのかなと思っているのですが、その辺の知識に乏しいので、比較的簡単に実現する方法を教えていただけませんでしょうか?
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-08-20 14:27
引用:

windows2000またはXPでログファイルを自動的にまた一定間隔でLINUXサーバへ収集する簡単な方法を探しています。



簡単かどうかは置いておいて、方法はいくつもあります。
・Windows側にIIS等でWebサーバを立ち上げaspでログをリナックスに返す。
 LINUX側から、cron等で ログを保存するシェル等を起動する。
 shellならwget、 phpなら file()関数などで簡単に取得できますよ。

・Windows側でログを送信するプログラムを作成しサービスやTSRで起動する。
 ファイル転送は ftpを使うか
 httpのform送信を使うとかですかね。
 ※LINUX側はhttpdを立ち上げて phpやcgiを作成する必要がある。

・BATファイルを使ってログを送信する。
 Windowsのタスクに登録しておけばできるんですかね?、使ったこと無いのでわかりませんが...
 日付ごとのディレトリにとのことですが、送信用のBATファイルを作成するプログラムを作成すれば解決できるんじゃないですかね?
 ※ftpの -nオプションを使えばイロイロできたと思います。調べてちょ。

・Linux側でSamba(ファイル共有サーバ)を立ち上げ、ネットワークドライブをマウントする。
 WindowsにあるファイルI/Oがほとんどそのまま使えるから、VB,VC,BATなんでもありですね。

この何れかを使うのが正解というわけではありません。
あくまでヒントとしてあげただけですので参考までに...
dede
常連さん
会議室デビュー日: 2003/10/01
投稿数: 47
投稿日時: 2005-08-20 17:58
そうですね、windows側でスクリプト言語等でLINUXへ送信する方法をとろうと思っています。自分なりに調べてみてWSH+タスクスケジューラで実現できそうな気がしています。また、LINUX側はご指摘のとおりSAMBA等で共有ディレクトリを設定するのがよいかと思っています。(と、ここまではいいのですがWSHやタスクスケジューラなどさわったこともありません・・・(笑))
あと、問題なのはそれらのプログラムの配布方法ですが、インストーラで簡単に設定できないものかと思っています。(皆のパソコンにインストールして回れないため。)タスクスケジュールはコマンドで設定できそうなので、スクリプトの設置からスケジュールまで一括でインストーラにて設定できればベストなのですが・・・。最初の質問からずれてきましたが、windowsのインストーラってどのようなことができるのでしょうか?設定方法の解説サイトなどご存知であればご教授ください。
jk
ベテラン
会議室デビュー日: 2005/08/19
投稿数: 94
投稿日時: 2005-08-20 18:20
私自身 windowsインストーラを使ったことないのですが、よく使っていたのは

自動解凍書庫+自動実行ですね。

最近の UnLHA32は解凍先の既定値とか、不確かですが %WinDir% のような
環境変数が解凍先に指定できるようです。>詳しくはドキュメントを参照してください。

ファイルの配布程度でしたら、これで充分だと思いますがいかがでしょう?
windowsインストーラをどうしても使いたいのであれば、申し訳ありませんが
ご自分でお調べください。
VIM
ベテラン
会議室デビュー日: 2003/11/14
投稿数: 76
投稿日時: 2005-08-22 14:32
ログの出力には、LogParserを試してみてください。
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&DisplayLang=ja
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2005-08-22 14:51
引用:

あと、問題なのはそれらのプログラムの配布方法ですが、インストーラで簡単に設定できないものかと思っています。(皆のパソコンにインストールして回れないため。)


この辺を前提で考えた場合、ログ集約先となるLinuxサーバ側でスクリプトを
実行した方が楽じゃないかな?って思ったりします。
ただ、IISのログなどの、すでにファイルとして存在するものを収集するならともかく、
イベントログなどの収集はこれでは無理っぽいですけど。

それより、集約先のOSはLinux、で決定なんでしょうか?
LogParserなどのWindows固有のツールを使うことを考えた際、
集約先もWindowsであれば、集約元先どちらで処理するか、という選択肢が広がりますし。

例えばイベントログの収集なら、
1.\\対象マシン名\Admin$\system32\config\*.evtをコピーしてくる
2.1.をlogparserを使って適当に加工して保存
という流れで収集できそうですが、集約先がLinuxとなると2.の処理を
ログ取得対象マシン上で実施しないと加工できないです。
最終的にLinuxにて加工処理させるにしても、
その前の加工処理を行う一次的な集約先として、Windowsを検討する価値はあるかと。
dede
常連さん
会議室デビュー日: 2003/10/01
投稿数: 47
投稿日時: 2005-08-26 13:13
すみません、ちょっと油断している間に返答いただいてましたね。。。
サーバはLINUXです。
で、収集方法はLINUXにSAMBA共有フォルダを作成して、WSHを使って自動的にコピーするしくみを検討しています。scriptも作成して動作確認済です。
LogParserは初めて知りました見てみます、ありがとうございます。
さて今後の課題として、
・LINUXにて収集したログをhtmlに編集してwindows端末から参照できるようにする。
・前述のインストーラで各自のパソコンにインストールする際、WSHのVBscriptをインストしそれをタスクスケジューリングまでする。
・できればSAMBAフォルダは登録ユーザのみのアクセスにしたいので、scriptから共有フォルダに接続する際にユーザとパスワードを入力できないか?(VBscriptのオブジェクトでユーザ・パスワードの入力方法がわからない!)
この3点です。
バッチファイルを使ってタスクスケジューリングができることまで確認したのですが、インストーラの作成方法がわからなくて勉強中です。
(この仕組みを利用するのが事務系の社員なのでインストーラで全部設定してあげたいのです。)
また、共有フォルダについては他の方法も含めて思案中です。
一応、このスレの当初の課題は解決したのですが、もしこれらの課題にアドバイスしていただけるならお願いいたします。
1

スキルアップ/キャリアアップ(JOB@IT)