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

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

ただいまの
回答率

90.47%

  • Python

    8621questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Excel

    1595questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Webサイト

    1100questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • データベース

    719questions

    データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

  • Webサーバー

    450questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

ログ解析結果グラフを非ソフトエンジニアに手軽に見てもらう方法

解決済

回答 5

投稿

  • 評価
  • クリップ 2
  • VIEW 1,623

sin_250

score 25

とある組み込み製品について、市場稼働時のログを解析し、
障害率等をまとめたグラフを作る仕事をここ最近毎日行っています。
今はエクセルで行っています。

これは最終的にグラフで可視化し、事業判断に用いるためのものなので、
ソフトに詳しくない人(技術部長や事業部長が)が
「手軽に」「いつでも」「最新のグラフを」見れることが重要です。

しかしエクセルでデータを集計しグラフ化するのは時間がかかるので、
完全自動化を検討しています。
イメージは以下です。

(1)以下の動きをするPythonプログラムを組む。
あるフォルダ以下にあるログファイルを全て解析し、
解析結果(日毎のエラー数、取引数等)を
ファイルベースのデータベース(SQLite)に登録する。
Pythonを使うのは、単に私が使い慣れているからです。
この部分はソフトメンバーのみが行うため、
環境構築は自由が利く。つまりライブラリなどは好き勝手に使える。

(2)ファイルベースのデータベースは、社内ファイル共有サーバーの
決めた場所に入れておく。
なお、ファイルベースなのは、単にデータベースサーバーを立ち上げるのが
社内的に色々と面倒だから。

(3)↑のデータベースを自動で読み込んで、見たいデータのグラフを
だれでも手軽に見れるようにしたい。

(1)(2)は実現方法がハッキリしているのですが、
(3)をどんなツールを使えばいいか、悩んでいます。
部内では共有ファイルサーバーは存在します。
ただしファイルを共有できるだけで、Apacheなどを立ち上げたりすることができません。

(3)の選択肢は安直には以下が思いつきます。

(A)Pythonでデーターベースにアクセスしてグラフを書くデスクトップアプリを作る。
→Pythonスクリプトをexe化して配布することになる。
exe化できるライブラリがかなり制限されるはずである。
バージョンアップの際にいちいち配布しなおすことになるが、
あちこちで新旧バージョンが混在しかねない。

(B)データーベースにアクセスしてグラフを書くWEBサイトを作る。
→本当ならこれが理想的。ただし社内でWEBサーバーを立ち上げる手順が面倒というか前例なく機材もない。

(C)ファイルサーバーにExcelフィルを置いておいて、
そのExcelの中でデーターベースにアクセスし、グラフを掻く。
→いちばん現実的かも。やったことないのでできるのか不明であるが。

そこそこの規模の会社におり、社内ネットワークが色々とややこしくWEBサーバーを勝手に立ち上げたりすることができません。

何か、もっと簡易で、社内の誰でも使える方法があればご教示をいただきたく。
よろしくお願い申し上げます。

以上

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

+2

次のようにしては如何でしょう?

  • ファイルサーバーに html, javascrip ファイル、csv データファイルを置く。
  • グラフを見たい人は、 html ファイルを web ブラウザで開く。
  • csv データは、別ツールの集積結果であり、適宜 更新をする。

d3.js を利用すると、csv ファイルなどからグラフをつくることが可能です。
csvファイルを heml のテーブル表示にして、ソート可能にすることができる javascript のライブラリーもたくさん存在しています。
例: http://jsgt.org/lib/jquery/plugin/csv2table/v002/test.htm

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/08 12:08

    回答ありがとうございます。d3.jsを調べてみましたが、かなり高機能ですね。
    javascriptも本格的にはやったことがないのですが、WEB全盛かつこれでデスクトップアプリも作れてしまうのだから、覚えておいたほうがいいと思うようになりました。ありがとうございました。

    キャンセル

+1

katoyさんと同じやり方になりますが、次のような方法はどうでしょうか?

  • ファイルサーバーに html, javascriptファイル、JSONデータファイルを置く。
  • グラフを見たい人は、 html ファイルを web ブラウザで開く。
  • ソフトメンバーの人は、適宜pythonスクリプトでJSONデータを作りなおす

グラフの作成はamchartsで行います。
デモのどのグラフでもいいので、editしてもらうと分かるのですが、最近のamchartsは、JSONデータだけあれば、グラフを描くことができます。作りなおすファイルが一つで済むので、今回のような案件には適しているのではないでしょうか。
https://www.amcharts.com/demos/

もう一つのは案は、ソフトメンバーがPDFのレポートを作るスクリプトを書くことです。インタラクティブなグラフではありませんが、PDFなのでメールで送ることもでき、利用者側からすると便利だと思います。ソフトメンバーの方も、毎朝一回スクリプトを動かすだけです。
スクリプトは次のような手順を取ります。

  • matplotlibを使ってグラフの画像をファイルにする
  • reStructuredTextフォーマットの文書を作り、グラフも読み込んでおく。
  • rst2pdfを使ってreStrucuredTextをPDF化する
    http://sakito.jp/python/rst2pdf.html

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/08 12:49

    ご回答ありがとうございました。まずはjavascriptでグラフを書いてみるところからトライしてみます。これである程度の方向性を見出すことができました。ありがとうございました。

    なお、ベストアンサーを選ぶのが難しいのですが(本当はみなさんにあげたいのですが)
    具体的なイメージがわくElectronを紹介いただいたracccy様にさせて頂くこと、なにとぞご了承ください。

    今後とも、よろしくお願いいたします。

    キャンセル

checkベストアンサー

0

前時代的ですけど、Accessで作るとかですかね。全くお勧めはできませんが。

もし、(B)でのやり方が確立できそうであれば、Electronで作るという手もあります。Webの技術そのままでデスクトップアプリにすることができますので、そのままファイルサーバーに置くだけで使うこともできると思います。ただ、アプリのサイズが結構でかい事だけが難点です。

あと、分析対象のグラフで幅が固定で、検索や任意指定が不要なら、データ収集後にExcelファイルも作ってしまうと言うのもあるかと思います。月ごとにフォルダを分けて日ごとにファイルを分ければ良い感じになるかと。PythonからExcelファイルを作るライブラリもありますのでPythonでそのまま作成というのもありだと思います。この場合、Excelファイルに限定する物ではありませんので、PDFにして、そのまま印刷もできますという選択もできます。

他には、LibreOfficeのODSファイルにしてPythonでマクロを書くという技もあるのですが、PythonマクロをODSファイルに組み込むのが結構めんどうらしいのであまりお勧めはできません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/08 12:10

    まずはElectronで作ってみます。本案件に限らず、習得しておけば便利な技術になりそうです。
    ご回答ありがとうございました。

    キャンセル

0

1時間に一回程度の更新ならば、画像出してしまうというのもありだと思います。
リアルタイムなら、HTAを利用してできるような気がします。(やったことないですが^^;)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/07 18:09

    描画点をtextファイルへ吐き出せば、HTAでデスクトップアプリっぽく作れそうです。
    javascriptでのDBへのアクセスも可能なようなので、どちらでもいけますね。

    キャンセル

  • 2016/05/08 11:44

    HTAやElectronなど、javascriptでデスクトップアプリを作る手段があるのですね。
    これであれば確かにWEBサーバーを立ち上げる必要がありません。
    グラフ描画はjavascriptで行こうと思います!ありがとうございます。

    キャンセル

0

Python は詳しくないのですが…
データをExcelのスプレッドシート形式に出力しては?
グラフ化のとこは要検討でしょうか。

もしくは、テキストに出力して、Excelからテキストデータを
読み込んでグラフ化するあたりをVBAで組むとか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/08 12:06

    ご回答ありがとうございます。
    社内だとエクセルが共通言語なので、VBAも覚えないといけないのかなぁ、と最近思い始めています。VBAで何ができるのかあまりわかっていませんが、それが一番つぶしがきくのかもしれないです。

    キャンセル

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

  • ただいまの回答率 90.47%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    Excelで特殊なグラフを作る方法

    Excelを用いて,画像のようなデータ群の表を画像のようなグラフにするにはどのようにすればよろしいでしょうか.ご教授お願いします.

  • 解決済

    エクセルの操作、処理をVBA以外でするメリットについて

    半年ほど業務でエクセルVBAを用いてマクロの作成をしている者です。 タイトルの通りエクセルVBA以外、例えばC#やRubyでエクセルを操作するメリットについて皆さんの意見を頂きた

  • 受付中

    Excelとデータベース

    mysqlやsqlserver、oracleはDBとして使用するのに、excelをデータベースとして使用しないのはなぜですか?

  • 解決済

    Excelファイルデータからプレビュー機能を作る方法

    Excelのデータをhtmlに変換などしてプレビュー出来るような機能を作りたいのですが、まずどのように手を付けていいのかが分かりません… なにか方法なのがありませんでしょうか? p

  • 受付中

    なぜWBSをExcelで書くのでしょうか?

    こんにちは。  なぜWBSをExcelで書くのか。 代替案はあるのでしょうか? わたしが思うに、WBSはプロジェクトのなかの仕事を管理可能な単位に細分化して、理解したり共有した

  • 解決済

    Pandasをエクセルに貼り付ける。

     やりたいこと  申請したデータの進捗を調べてEXCELへ貼り付けたい。 ■できていること 済:保存先フォルダを作成 済:貼り付けようEXCELがあるか確認→あれば開く、なければ作

  • 解決済

    VBAの動作が重すぎて応答しない

    環境 OS:windows10 ラップトップのパソコンを使用しています。 購入時期:去年 やっていること 今現在、やっていることは、 設計図のデータ(.CSV)をexcelのV

  • 解決済

    エクセルの折れ線グラフの縦線について

    こんにちは タイトルの件で質問があります。 環境はWindows7 64bit / Excel2010 です。 やりたい事は以下の2点です。 ・エクセルの折れ線グラフを

同じタグがついた質問を見る

  • Python

    8621questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • Excel

    1595questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • Webサイト

    1100questions

    一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

  • データベース

    719questions

    データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

  • Webサーバー

    450questions

    Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。