質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

1432閲覧

Javaでのログ抽出ツール作成について

junkjunk

総合スコア26

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/06/04 05:27

編集2019/06/04 21:05

まず初めに、自分は初心者のため全く知識が足りていないと思うので的外れな質問をしていたらすみません。

Javaを使って、PCで動いているシステムへアクセスして、そのシステムのログを収集する、という作業をしたいです。
GUIの作成も必要なのですが、Javaでこの様なプログラムの作成は可能でしょうか?
作成したいプログラムは、システムのIPアドレスを入力することで自動的にシステムのログを収集して解析出来る、GUIです。

説明を補足させて頂きますと、システムというのはサーバーに接続して使用するシステムマネージャーのような機器で、CPUが搭載されています。システムマネージャーでは複数のデバイスを管理しています。
PCはwindowsが搭載されている普段使うようなごく普通のPCのことで、システムマネージャー(のアプリ的な何か)をPCにインストールすることでPC上からシステムマネージャーの操作が出来ます。
ブラウザについては、リモートデスクトップでシステムマネージャーそのものを操作することも可能ですし、機能の1つである管理画面のみPCからアプリ(ブラウザ?)を開くことで操作が出来る、といったイメージです。
自分のイメージとしては、システムマネージャーがインストールされているPCにJavaプログラムを置き、システムマネージャーのipアドレスを入力することでそのPCで操作しているシステムマネージャーのログを自動的に収集出来るようなプログラムを作りたい、といった感じです。

わかりにくくて申し訳ありませんが質問に記載した箇条点の部分は現状の機能を説明したもので、現在はログ収集するときはブラウザにipアドレスを含んだURL(https)を書きこみアクセスするとログファイルの置いてあるページに飛ぶので、そこからダウンロードしています。

取り急ぎ補足点を書かせて頂きましたが、やはり通信するためにはどうすればいいかが重要なんですね。
完全にこの機器に特化したログ収集ツールを作成するとなるとネットで調べて解決するものでもないのでしょうか?もしくは、PC上のブラウザを開いてURLを打ち込んでアクセスしてファイルをダウンロードする・・・といった操作を自動で行えるjavaのプログラム等が一般的にあるのかな、と思い質問させて頂きました。

全くわかりにくくて申し訳ないですが、何かヒントとなるサイトだけでもご教示頂ければと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

PC:収集したログファイルを見るマシン
システム:↑とは別のマシン

ということでしょうか?
システム=マシンとは呼びにくいのでこの回答内ではサーバとしておきます。

Javaでこの様なプログラムの作成は可能でしょうか?

たぶん出来なくはないかと思いますが、いろいろ考慮する点はあるでしょう。

  • サーバ側で他のマシンからのアクセスを許可しておく
  • サーバ側で、アクセスされたアカウントでログを取得できるように設定しておく

これらのように、Javaの他に通信に関する知識も必要になり、ひいてはセキュリティの話にも繋がります。
仮に「できた やったー」となっても、他人からアクセスされてしまう危険性があることを忘れないでください。

PCでシステムのIPアドレスを入力するとそのシステムのブラウザを開くことができる

通信先のブラウザを開かなきゃいけない理由がわかりません。
ブラウザを開いたとして、向こうの画面を操作できなきゃダメです。

・システムのIPアドレスを用いて「http://IPアドレス.なんちゃら」のようにブラウザで入力することでログファイルを入手できる

http以外にもPC間の通信のできるプロトコルはあります。
ログファイルを誰にでも提供できる場合を除き、httpは不適切かと思います。

システムのIPアドレスを入力することで自動的にシステムのログを収集して解析出来る、GUIです。

ブラウザ関係なくなっちゃいましたね。
たぶんこれがミニマムな要件だと思うので、

  • 通信するためにはどうすればいいか
  • GUIに必要なパーツはなにか

など、いろいろ肉付けするために必要なものを調査してください。


[質問文追記への回答]

システムマネージャーがインストールされているPCにJavaプログラムを置き、システムマネージャーのipアドレスを入力することでそのPCで操作しているシステムマネージャーのログを自動的に収集出来るようなプログラムを作りたい

現状通信ができていてログファイルを収集できているのなら可能です。

やはり通信するためにはどうすればいいかが重要なんですね。

現状web経由で取得できているのであれば今回のアプリ作成においてさほど重要ではないです。
(全体の構成としては最初に書いたようにセキュリティ的なところがあるので重要ですが。)

完全にこの機器に特化したログ収集ツールを作成するとなるとネットで調べて解決するものでもないのでしょうか?

よほど特殊な環境下にない限りは調べて解決するはずです。

PC上のブラウザを開いてURLを打ち込んでアクセスしてファイルをダウンロードする・・・といった操作を自動で行えるjavaのプログラム等が一般的にあるのかな、と思い

ないです。
「PC上のブラウザを開いて」の時点で、以降の操作はブラウザによります。
自作したブラウザでない限り基本的にどうしようもないです。

「Javaプログラムで、URLを打ち込むフォームとボタンがある画面を作り、ボタンを押したらhttp通信でアクセスしてファイルを取得する」のであれば作ればいけます。
使用しているシステムがなにかわかりませんが、有名なサービスであればもしかしたら誰かそういうのを作っているかもしれません。

投稿2019/06/04 09:31

編集2019/06/05 03:20
dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

junkjunk

2019/06/04 15:25

わかりにくい質問にも関わらずご回答ありがとうございます。 説明を補足させて頂きますと、システムというのはサーバーに接続して使用するシステムマネージャーのような機器で、CPUが搭載されています。 PCはwindowsが搭載されている普段使うようなごく普通のPCのことで、システムマネージャー(のアプリ的な何か)をPCにインストールすることでPC上からシステムマネージャーの操作が出来ます。 ブラウザについては、リモートデスクトップでシステムマネージャーそのものを操作することも可能ですし、機能の1つである管理画面のみPCからアプリ(ブラウザ?)を開くことで操作が出来る、といったイメージです。 自分のイメージとしては、システムマネージャーがインストールされているPCにJavaプログラムを置き、システムマネージャーのipアドレスを入力するとそのPCで操作しているシステムマネージャーのログを自動的に収集出来るようなプログラムを作りたい、といった感じです。 わかりにくくて申し訳ありませんが質問に記載した箇条点の部分は現状の機能を説明したもので、現在はログ収集するときはブラウザにipアドレスを含んだURLを書きこみアクセスするとログファイルの置いてあるページに飛ぶので、そこからダウンロードしています。httpと書いてしまいましたがhttpsを使っています。 取り急ぎ補足点を書かせて頂きましたが、やはり通信するためにはどうすればいいかが重要なんですね。 完全にこの機器に特化したログ収集ツールを作成するとなるとネットで調べて解決するものでもないのでしょうか?もしくは、PC上のブラウザを開いてURLを打ち込んでアクセスしてファイルをダウンロードする・・・といった操作を自動で行えるjavaのプログラム等が一般的にあるのかな、と思い質問させて頂きました。
jimbe

2019/06/04 16:47

補足はこちらでは無くご質問を編集して追加されたほうがよいかと思います.
junkjunk

2019/06/04 20:59

>jimbeさん 了解です。ご指摘ありがとうございます。
dice142

2019/06/05 03:08

他の回答者の方も仰ってますが、用語が正しくないのでいまいちつかめません。 具体的に ・システムマネージャーが機器なのかアプリなのかが不明です。 ・システムとはサーバ自身を指しているのか、ソフトウェアを指しているのかが不明です。  → システムマネージャーの定義が曖昧のため 現状ダウンロードは出来ているとのことですが、やりたいことはどちらなのでしょうか? ・ダウンロードしたデータを解析して表示するGUIアプリの作成 ・取得から解析までを全部行うGUIアプリの作成
junkjunk

2019/06/05 05:34

曖昧な表現になってしまいましたがシステムもシステムマネージャーも同じ”機器”のことを指しているつもりでした。様々なデバイスと接続しそれらを管理する機器、です。 現状ログの取得は難しいかと思いますので、まずはダウンロードしたログデータを解析して表示するGUIアプリの作成を行いたいと思います。
guest

0

dice142 さんの回答のコメントからの引用:
ログ収集するときはブラウザにipアドレスを含んだURLを書きこみアクセスするとログファイルの置いてあるページに飛ぶので、そこからダウンロードしています

つまりこれを自動で行うGUIを持ったツールを作りたい, ということでしょうか.

まず java で超簡単なブラウザを作ってみては如何でしょうか.

投稿2019/06/04 16:57

jimbe

総合スコア12648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

junkjunk

2019/06/04 21:07

その通りです。 了解しました。もう少し具体的な質問が出来るよう簡単なものから作成してみます。アドバイスありがとうございます。
jimbe

2019/06/05 03:34 編集

java でも, URL によってネットワークにアクセスすることが出来ます. ブラウザはネットワークに対し HTTP を用いて HTML を受け取って画面に表示しています. 現状のログファイルの取得が, 単に「リンクをクリックしたらダウンロードされる」いう形でしたら, HTML の取得とは URL が違うだけと思いますので, HTML の取得が出来れば, ダウンロードも出来ると思います. ただ, HTTP なら簡単なのですが, SSL が絡むと(当然ですが)面倒になります. 環境が整っていれば URL の `http://` が `https://` になるだけで済むはずですが, 認証次第では自力で SSL に必要なデータを集めなければならないかもしれません.
junkjunk

2019/06/05 05:36

なるほど、javaでもネットワークにアクセス出来るんですね。 出来ればログ収集まで行いたかったのですが、現状難しいようなのでとりあえずはすでに手元にログデータを入手したと仮定した状態でログ解析から始めたいと思います。 ご回答ありがとうございます。
guest

0

ベストアンサー

複数のPCの管理する「システム」とやらを作って、その「システム」はWEBのGUIを持っていて、自分の端末からアクセスすると管理下にあるPCのログを収集・確認できる

という感じですか?

「できる」「できない」で言えば出来ると思いますが、想定されている機能の詳細な条件や、その「システム」を実現する上で何が必要なのか?をご自身でわからない(言い方は悪いですが初心者)であれば、かなり難しいと思います。

まずは簡単なところから、管理下のPCそれぞれのログをどうやって出力し、それを「システム」でどうやって収集するのか、というあたりを設計されてみて、自分でできるかどうかを判断してみてはどうでしょう。

投稿2019/06/04 16:17

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

junkjunk

2019/06/04 21:12

ご回答ありがとうございます。 複数のPCを管理するわけではなく、質問に補足させて頂きましたが、システムマネージャーをインストールしているPC上で動くGUI付きのプログラムを作りたい、という感じです。 いえ、正直自分もかなり難しいと感じていますのでご回答頂けて助かります。 ご指摘頂いた通り、ログをどうやって出力しているのかの設計を調査してみようと思います。ありがとうございます。
gentaro

2019/06/04 21:23

全般的に用語の使い方が曖昧なので上手く伝わらない気がします。 「システムというのはサーバーに接続して使用するシステムマネージャーのような機器で、CPUが搭載されています。」 という表現だけ読むと、この「システム」なるものはPCでもサーバーでもなく、何か特別な謎の機器のような印象しか受けません。 また「システムマネージャー」なるものは、その謎の機器を管理するソフトウェアか何かかな?と受け取れますが、「システムマネージャーのipアドレス」なるものが出てくると、今度はその「システムマネージャー」というのもIPアドレスが付与されたPCそのものの事なのか?と思います。 でもその前に「ステムマネージャーがインストール」という表現があるとそれは「ソフトウェア」であるようにも思えるので混乱します。 正しい用語の使い方がわからなければ、せめて図解入りで解説があればそのあたりは通じそうな気はしますが、正直そういった用語のレベルから正確に理解されていない方がソフトウェアを開発できるほど、甘いものじゃないです。
gentaro

2019/06/04 21:30

別にあなたをディスりたいわけでなく、冷静に考えてみてほしいのですが、プログラムを作る、というのは、コンピューターに対して自分のやりたい命令を正確に書く作業なわけです。 一番詳しいはずの日本語でも説明できないようなことをプログラミング言語で表現するのは不可能ですし、コンピューターは決してあいまいな部分を理解してくれません。 まずは、作りたいものを正確に日本語で表現するのが先です。
junkjunk

2019/06/05 05:30

いえ、自分も全くgentaroさんのおっしゃる通りだと思うので気になさらないでください。 「システムマネージャー」というのは実機で、サーバーとPCに接続されています。 その「システムマネージャー」単体でPCのようにハードディスクなども持っているんですが、PCからリモートデスクトップで「システムマネージャー」のデスクトップに入り込むことも出来るし、特定の手順をふむ(これをインストールと表現しました)とPCから「システムマネージャー」のある画面のみ、操作することが出来る、という感じです。 ともあれ、Javaもプログラミングも未経験ですしおっしゃる通りネットワークを含んだプログラムの作成はかなり現実味がないと思うので、Txtファイルであがってきたログを解析するところから始めてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問