トレタ開発者ブログ

飲食店向け予約/顧客台帳サービス「トレタ」、モバイルオーダー「トレタO/X」などを運営するトレタの開発メンバーによるブログです。

ログ収集サービスのlogdnaを試す

佐野です。ここ2ヶ月くらい坐骨神経痛を患って、座ると痛い、立つと痛い、歩くと痛い、朝起きると痛い、くしゃみすると痛い。靴下がはけない(痛いから)、しゃがめない(痛いから)、夜痛みで目が覚める。という生活をしています。こちらの記事( 頭痛に耐えかねて自殺する人も…【激痛を伴う病気ワースト5】 )によると、痛すぎる病気ワースト4位らしいです。さて、ご近所のplaidさんからlogdnaというログ収集サービスを教えていただいたのですが、試してみました。

logdna

ローンチは2016年、つまり今年のようです。fluentd同様、エージェントをサーバに棲ませて、それがログをlogdnaに転送します。トレジャーデータ似ていますが、まだ機能は少なくて分析などはできないです。特定文言のハイライト、通知、grep...など全サーバのログを一覧するような用途には良さそうです。rtailのホスティングサービスような感じです。

次の画像はとあるrailsサーバ群のauth.logを"CRON"という文字列でtail/grepしつつ、openという文字とcloseという文字をハイライトさせたときの様子です。

f:id:hiroakis:20161102143155p:plain

所感

使ってみた所感なのですが、

  • 安い

といった印象です。ただログを集めて一括で参照したいだけなら非常に楽です。トレタでは /var/log/syslog/var/log/auth.log などを収集対象にしてお試し運用中です。アプリケーションが吐くサービスのログは結構量もあり、今のログ基盤(fluentd->アグリゲータ->BigQuery)で十分ワークしているので移し替えるつもりはないです。

コンフィグとエージェントを配置すればよい

上述しましたが、エージェントがlogdnaに対象のログを転送します。コンフィグは次のような形式で、対象のログファイルまたはディレクトリを指定してエージェントを起動するだけです。ディレクトリ指定の場合そのディレクトリ配下の .log が対象になります。コンフィグは正規表現も受け付けます。tagsというのはサーバのロールのようなもので、例えばrailsサーバにはrails、worker用のサーバにはworkerなどと指定しておけば、logdnaのGUI上でグルーピングしてくれます。keyはlogdnaのアクセスキーです。

logdir = /var/log/syslog,/var/log/auth.log,/var/log/logdna-agent.log,/var/log/monit.log,/var/log/dpkg.log,/var/log/mackerel-agent.log,/var/log/td-agent/td-agent.log
tags = {{ logdna_group }}
key = {{ logdna_key }}

エージェントはnodejsで書かれていて、rootで動きます(!!)。収集対象のログにエージェントが収集可能なパーミッションを与えておく...のではなく、root権限をもったエージェントがコンフィグに指定されたログを舐めていきます。エージェントのソースはgithubにホスティングされています(https://github.com/logdna/logdna-agent)。さらっと見たんですが怪しいことはやっていなかったですw ソース自体もそれほど大きくなく、まだはじまったばかり感があります。

リテンションは〜30日

課金によって変わりますが、永遠に保存/参照可能にしておくことはできないです。GUI上で設定しておけば、日次でs3(オレゴン)にログアーカイブしてくれます。バックアップ用途としても一応使えます。

GUIは少しバグっているところもある

たまにバグっています。アカウントのオーナーのつけかえをしたらオーナーがいないように見えるw 一応、オーナーを付け替えた方のアカウントはオーナーとしての操作ができることは確認したので大丈夫なのですがw

f:id:hiroakis:20161102135819p:plain

また、ちょっと出力の量の多いログを転送してみたら描画が追いつかないのか、たまに画面が消えることもあったw

気がついたらfluent-pluginもリリースされてた

fluentプラグイン書いてみようとか思ったらつい先日できてたw

まさに今はじまったサービス、という印象です。

おわり

AngularConnectに参加してきました

こんにちは、トレタのウェブフロントを担当している吉田です。
トレタではウェブ予約やトレタ(Web版)などAngularプロジェクトが数多くあります。

業務の一環でトレタのカンファレンス補助制度を利用して、AngularConnectに9/27,28と両日参加してきました。
(NgConfに行きたかったのにすぐチケットが埋まって行けなかったのは内緒です。)

f:id:teyosh:20161018164921j:plain

AngularConnectとはEUから離脱をしてしまうことが確定しているイギリスはロンドンで毎年開催している最大級のカンファレンスとなっています。
今年の目玉は何と言っても開催2週間前に発表されたstableになったAngular 2です。

こちらのカンファレンスはその日の初回にキーノートがあり、それが終わると発表2つ ワークショップ1つ 質問1つ Q&Aセッション1つ とセッションが4つに別れます。

発表に関してはセッションリストからスライドやYouTubeのURLが公開されているので、気になるものをピックアップして見ると良いかと思います。

http://angularconnect.com/2016/sessions/

幾つか自分が参加したセッションを紹介したいと思います。

Day1 Keynote

キーノート前半ではAngular2やエクステンションの紹介、これからのバージョンに関する事柄が話されました。
メジャーリリースは6ヶ月のサイクルとなり、2017年3月にはバージョン3がリリースされる予定になっています。

後半では開発者であるMiško Heveryがパフォーマンスについての発表を行いました。

www.youtube.com

Secure your Angular applications

主にウェブアプリの攻撃方法はどういうものか、防ぐためにはどうするのかを論じています。
それらに対し著名なライブラリーはどうのような処理を施しているかを紹介しています。
AngularでContents-Security-Policyを利用するにはどのようにするかなどWebアプリを作成する上で重要な事柄がわかりやすく説明されています。

www.youtube.com

The Angular 2 Compiler

バージョン2ではTypeScriptを利用してAngular自体を開発しており、アプリケーション自体もTypeScriptを利用することがmore betterとされています。
TypeScriptからJavaScriptへコンパイルする際にどのようになっているか、どのようにパフォーマンスを得ているかなどの説明がされています。
AoTの初回ロードの優位性なども説明しており、どのコンパイル方法が望ましいかの指針になります。

www.youtube.com

Day2 Keynote

2日目のキーノートでは開発者のIgorとRobがアプリケーションの始め方と書き方を対話形式で紹介します。
一通り現時点でのベストプラクティスを学べます。Angular1を利用の方もバージョン2をrcで利用していた方もどちらにもおすすめです!!

www.youtube.com

RxJS 5 - Thinking Reactively

AngularではObservableを利用するためにRxJSを利用しています。
どのようにRxJSを使うのか、概念はどうなのかなどRxJSの入門的な情報満載です。

www.youtube.com

Angular 2 Forms

バージョン2にはもちろんFormsも用意してあります。
Formsではtemplate-drivenとReactiveの2つ書き方があり、両方を同じサンプルを用いてライブコーディングで発表していきます。
アプリケーションによりどちらが良いかをうまく選べると思います。
タイピングが正確で早いのでそれも必見です。

www.youtube.com

Testing Angular2

テストは使っている人も多いKarmaとJasmineの組み合わせで発表しています。
Angularではモジュールであったりコアであったり親和性の高いテストAPIが用意してあり、それを使うことにより書きやすい様になっています。

www.youtube.com

まだまだ他にも有用な情報がいっぱいありますので時間がある方はご覧になってみてください。

海外カンファレンス補助制度

トレタでは海外カンファレンスに積極的に参加して技術や情報を得るために補助を出す制度があります。
昨今のAirBnBなどを考慮して、渡航費とカンファレンス参加費を全額支給します。
ホテルに泊まるもよし、AirBnBで楽しむもよし。

トレタでは食べることや技術が好きな仲間を募集しています。

www.wantedly.com

www.wantedly.com

www.wantedly.com

www.wantedly.com

「データサイエンティスト協会3rdシンポジウム」に参加しました

f:id:serihiro:20161018145628p:plain

トレタのAPIをメンテしている芹沢です。
2016年10月14に開催されたデータサイエンティスト協会3rdシンポジウムに参加してきたので本シンポジウムの発表内容を簡単にご紹介します。

発表内容について

産学問わず様々な登壇者があつまっており、私は以下のセッションを拝聴させていただきました。

  • 「計算機視覚技術:人工知能の古くからの問題と新たな可能性」
  • データサイエンスアワード2016 最終プレゼンテーション
  • 「実務者達のデータサイエンティスト「業」 フリートークセッション~結局、実際の業務やデータ分析チームで必要なスキルって何?~」
  • 「統計学・計算機・データサイエンス」
  • 「滋賀大学データサイエンス学部で学ぶこと」
  • 「限られた情報から精度良く:機械学習技術の最近の発展」

自分自身の統計学や機械学習のスキルは嗜み程度なのであまり専門的なことは理解できませんでしたが、その中でも 「統計学・計算機・データサイエンス」 のプログラムが印象的でした。

本プログラムでは、2009年にgoogleがインフルエンザ流行予測を行うために立ち上げたGoogle Flu Trendsの予測結果と、米国政府が発表したデータを組み合わせて新たな予測モデルを作ったところ、Google Flu Trendsより正答率の高い予測モデルを実現できたという事例を元に、古典的な統計学とビッグデータ・機械学習とがどのように関わっていくべきかについて語られていました。古典的な統計学と機械学習を勉強中の身としては非常に考えさせられるものがありました。(Google Flu Trendsについては2013年出版の『ビッグデータの正体』という書籍で詳しく説明されているそうなので後で読んでみます)

その他、実際にデータ分析サービスを提供している企業の方々によるパネルディスカッションもあり、実務的な側面と学問的な側面から多くのことを学べたイベントでした。

トレタのカンファレンス参加補助制度について

話は変わりますが、トレタにはカンファレンス参加補助制度があります。具体的には、会場までの交通費(海外の場合は渡航費含む)とカンファレンス参加費を会社で負担する制度です。
この制度を使って過去にWWDC16hashiconf2015に弊社エンジニアが参加しています。今回もこの制度を利用して参加してきました。ありがたいことです。

トレタは飲食店の予約・顧客データから新たな価値を生み出す仲間を募集します

さて、さすがに業務と何も関係がないカンファレンスに会社のお金で行かせてもらえるほど世の中甘くない訳でして、今回自分が本シンポジウムに参加したのもちゃんとした業務上の理由があります。

トレタでは、現在トレタのサービスに蓄積された予約情報・顧客情報を用いて新たな価値を提供する方法を模索しています。
具体的には、過去の予約情報から学習して店舗の運用に活かしたり、店舗を予約するお客様の情報から効果的なお店のPRにつながるアクションをサポートするような機能を提供できないか、といったことを考えています。

しかしながら、トレタには現在機械学習のスキルを持った社員がいない状況です。。私が普段のRails業の合間にその手の実現可能性について考えたりもしているのですが、さすがに手が足りません。

そこで、機械学習を用いて新たな価値を生み出すスキルを持った仲間を募集します!
正式なポジションとしてはまだ募集を開始していませんが、機械学習で飲食業界に貢献するチャレンジに興味のある方は、お気軽に採用問い合わせフォームからお問い合わせください。

© Toreta, Inc.

Powered by Hatena Blog