Redmineのチケット量をグラフ化したい(第一回)

Redmineを使って、チケット量を週一ペースで集計してる。しかし、毎週手作業で集計するのは地味に面倒だ。Webブラウザ開いて、Redmineでメンバー全員分の未完了チケット数を表示して、それをExcelに入力してグラフ化を作って公開する、という作業がどうにも面倒。そんなものはさっさと自動化してしまいたい。

なんかRedmineのプラグイン探してもイマイチだし、なんかいい手段ねえかなぁ…とモヤモヤしながらCEDECに参加したわけだが、「龍が如く」のセッションで「ElasticsearchとKibanaで捗るぞい」という話を聞いたので、早速試してみることにした。Fluentdも面白そうなんだけど、今回ガチもんのログ収集じゃないからひとまず置いとこう。サーバ環境がWindowsという縛りがあるので、情報をかき集めながらなんとか頑張ってみた。

ElasticsearchとKibanaってなに?

Wikipedia先生曰く、「Elasticsearchは、Lucene基盤の分散処理マルチテナント対応検索エンジンである。」わっかんないよ!ネットで色々調べたところ、MySQLみたいなRDBMSは条件に合致したものを返すのに対して、Elasticsearchは条件に近いような『それっぽいデータ』を返してくれるらしい。やっぱりわっかんないよ!まあ、今回の要件でいえばRDBMS使っても実現できるんだろうけど、新しいもの使うとなんか楽しいので、とりあえずやってみることにしよう。
 
次にKibanaだが、Elasticsearch内のデータをいい感じにビジュアライズ(可視化)してくれるツールらしい。今回はこっちの方が本命だろうなー。昔はMySQLやらSQLiteやらのDBから取得したデータをグラフ化するのにPHPやらJavascriptやら使ってゴリゴリ組んでたけど、可視化をコーディングなしにやってくれるのは有り難い。せっかくいい車輪があるのだから、利用しない手はなかろうもん。

Elasticsearchを導入する

公式サイトからWindows向けのElasticsearchをダウンロードするドン!MSIとかもあるみたいだけど、今回はzipで落としてみた。zipを解凍したら、テキトーなパスに置いておく。俺の場合、 C:\elasticsearch あたりにぶちこんでみた。
 
で、さっきのダウンロードページに書いてあるとおり、bin\elasticsearch.bat を実行すると勝手にElasticsearchが立ち上がる。Windowsサービス化もできるらしいが、まあ今回はおためしなのでコマンドプロンプトでよかろう。あとは、テキトーなWebブラウザで http://localhost:9200/ にアクセスして、下記のようなJSON形式のレスポンスが帰ってくればOK。

{
  "name" : "_k9-zO0",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "Nsrq-8GtR6qnU7fJSIDI_w",
  "version" : {
    "number" : "5.6.2",
    "build_hash" : "57e20f3",
    "build_date" : "2017-09-23T13:16:45.703Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.1"
  },
  "tagline" : "You Know, for Search"
}

 
2台のサーバーに導入したんだが、うち1台ではElasticsearch.batの起動時に色々とエラーが出た。人様のサイトに対処法が書いてあったので、jvm.dll の居場所を作ってあげたり、サーバのメモリ指定(jvm.options)で2GB→1GBに変更してやったらうまく動いた。助かるワー・・・

Kibanaを導入する

Kibanaのダウンロードページから、Windows向けのzipを落としてきて解凍。こいつもexeが入ってるので、テキトーな所に置いてから起動してやる。俺の場合、 C:\kibana あたりにぶちこんだ。

そして、おもむろに bin/kibana.bat を実行すると勝手にサーバが立ち上がるので、WEBブラウザで http://localhost:5601/ なんぞにアクセスすると、Kibanaさんが何かしら英文で表示を出してくる。内容は今のところ何書いてあるのかさっぱどわがんねので後回し。でも、プロンプトの表示を見る限りエラーは出てないので、なんかうまいことElasticsearchのポートを見に行けているんだろう。
 

今回のざっくりまとめ

・Elasticsearchは、ふんわり系データベース
・Kibanaは、Elasticsearchの中身を可視化してくれるマン
・どちらもexeでサーバが用意されてて、Windowsで簡単に起動できる
 
今日の所はここまで。一気に進めると面倒なので、次回へ続く!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)