Taste of Tech Topics

Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elasticsearch無料ハンズオンセミナーを開催しました

こんにちは、3年目エンジニアの緑川です。
昨日、銀座でアクロクエスト主催の「Elasticsearch無料ハンズオンセミナー」を開催しました。

f:id:acro-engineer:20191010080407j:plain
ハンズオンの様子

本ハンズオンでは、Elastic Cloud上で最新バージョン(7.4.0)のElastic Stackを体験していただきました。
Logstashによるデータの収集/加工から、Kibanaを用いた可視化までを通して、利用イメージを掴んでいただけたと思います。
今回は40名以上の方が参加し、ハンズオン中の質問も多く出て、盛り上がりました。

また、今回は当社のサービスである「ホワイトボックス型アプリケーション診断サービス」も紹介いたしました。
これは、アプリケーションの性能監視を可能にする「Elastic APM」をベースに、
当社のエキスパートが、対応が必要となる性能リスク箇所をレポーティングします。

詳細はこちらをご覧ください。
www.endosnipe.com

そのほか、お得なキャンペーンも実施しているので、
興味がある方、Elastic Stackの運用などでお困りの方はぜひご連絡ください。

■お問い合わせ先
アクロクエストテクノロジー株式会社
TEL:045-476-3171
TEL(営業直通):045-330-9400
FAX:045-476-4171
E-MAIL(営業直通): acrosales@acroquest.co.jp

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com

第33回Elasticsearch勉強会に運営メンバーとして参加してきました

こんにちは。8月にElastic Certified Engineerになりました、ノムラです。

10/4(金)に開催された「第33回Elasticsearch勉強会」に運営メンバーとして参加してきました。
www.meetup.com

今回から、Acroquestが運営に関わっている「JEUG(Japan Elasticsearch User Group)」が「Elasticsearch勉強会@Elastic User Group 東京」にJoinし、コミュニティが1つになりました!「Elastic Stackユーザ同士で有益な情報を共有する」という目的は同じであるためです。

という訳で、新生Elasticsearch勉強会の各発表の概要と個人的に面白い!と思ったところを紹介したいと思います。

概要

発表タイトルは下記の通りです。

  1. Elastic Stackで始めるアプリケーション監視 / Elastic社 大谷さん
  2. Elasticsearch を活用した大規模侵害診断 ~ MONSTRO のお食事 ~ / サイバーディフェンス研究所 伊藤 達哉さん
  3. 決済トランザクションの監視におけるElastic Stackの活用 ~アプリケーションロギング/トレーシングの可視化~/ SBペイメントサービス株式会社 髙野 はいねさん

Elastic Stackで始めるアプリケーション監視

スピーカーはElastic社の大谷さん。
noti.st

BeatファミリーとElastic APMを使ってアプリケーション監視を実現するというお話です。
Elatic APMは、対象のアプリケーションの改修無しで分散トレーシングにより、
性能ボトルネックなプロセスが一目で分かるのが強力ですね。

Elasticsearch を活用した大規模侵害診断 ~ MONSTRO のお食事 ~

スピーカーはサイバーディフェンス研究所の伊藤さん。

MONSTROという独自KibanaプラグインによるSIEMの事例の紹介でした。
ElaticStackにより長期間のログの保存・可視化が可能になり、マルウェアの感染時期や影響範囲がより詳細に分析可能になったとのことです。

決済トランザクションの監視におけるElastic Stackの活用 ~アプリケーションロギング/トレーシングの可視化~

スピーカーはSBペイメントサービス株式会社の髙野さん。
speakerdeck.com

11万店舗以上が利用する決済代行システム。分散トレーシングとしてZipkinを導入。
ビジネスサイドの監視は、3つのビジュアライズのみで構成されたシンプルなダッシュボード。加えて、トレースIDを介してZipinのダッシュボードと連携。これは便利そうですね。あとはWatcherのGUI版ともいえるPraeco(知らなかった。。)が要チェックや!

まとめ

運営としては、勉強会がスムーズに開催、終了したのでほっとしています。
次回以降も参加者の方にとって刺激的な勉強会にできるようにしていければと思います。

発表は実際のビジネスシーンでの活用事例を多く聞くことができ、刺激的でした。
自身の業務にも取り入れてより良い活用事例をつくり発信していけたらと思います。

それでは。

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com

技術書典7でElasticsearch本を販売します!

皆さんこんにちは
@tereka114です。

9/22(日)に、待ちに待った技術書典7が開催されます。
この技術書典7に当社の有志で出展します。出展場所は「い50C」です。

techbookfest.org

昨年(2018年)の技術書典5で販売した「Elasticsearch NEXT STEP」に引き続き、「Elasticsearch NEXT STEP2」を販売します。
Elasticsearchを使ってみた方が入門レベルから次のステップ(Next Step)へ進むための本として、執筆しました。

Elasticsearch は検索機能もさることながら、Elastic APM のように運用で必要となる機能も強化されています。
また、Kibana は従来までのシンプルな可視化に加え、Canvas を用いて柔軟な可視化ができるようになりました。
本書には、進化した Elastic Stackの機能を中心に実践的な内容を盛り込みました。

この本を通して、読者のみなさんによる Elastic Stack の活用がさらに進むことを願っています。

最後に、本書の内容をイメージしていただけるよう目次を掲載します。

f:id:acro-engineer:20190918233705p:plain:h500f:id:acro-engineer:20190918233536p:plain:h500

当日、皆さんとお会いできることを楽しみにしています。

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com

AKSで構築したKubernetesクラスタをElasticStackで監視する (3)Elastic APM編

こんにちは、アキバです。

少し間が空いてしまいましたが、Azure Kubernetes Service(AKS)を用いて作成した Kubernetesk8sクラスタを ElasticStack で監視する方法の第3回(最終回)です。

これまでの2回分については以下リンクを参照してください。

最終回である第3回は、 AKS 上で動作するアプリケーションに Elastic APM を適用します。

これまでに触れた通り、k8s 上で動かしているアプリケーションは動的にスケールアウト/スケールインします。 つまり、コンテナは決まった場所で動き続けるように設定できません。 そのため、性能が出ていない時などに、どのコンテナが原因なのかを調べるのが困難であるという性質をもっています。

k8s 上で動くアプリケーションの処理性能を監視したいと考えたときは、 Application Performance Management(APM)を導入することが必須と言えるでしょう。

ということで、AKS チュートリアルアプリに対して Elastic APM を適用してみます。

1. APM Server のインストール

まずは、 APM Server をインストールします。

Elastic APMAPM Server は、apm-server というパッケージ名になっています。 今回は、リソース節約のため apm-server をデータノード(mon-data-0)に同居させます。

次に示す URL にあるリファレンスを見て、インストール方法を確認してください。

https://www.elastic.co/guide/en/apm/server/7.2/setup-repositories.html

Marketplace で作成した mon-data-0 サーバの OS は、 Ubuntu-16.04 なので、apt を使ったインストールを行います。

インストールに成功すると、サービス登録されていることが確認できます。 なお、この時点ではまだ起動していません。

$ sudo service apm-server status
● apm-server.service - Elastic APM Server
   Loaded: loaded (/lib/systemd/system/apm-server.service; disabled; vendor ...
   Active: inactive (dead)
     Docs: https://www.elastic.co/solutions/apm

APM Agent は、 APM Server とは異なるサーバで動作するため、データを受信できるように APM Server の設定ファイルを編集しておきます。

$ sudo vi /etc/apm-server/apm-server.yml

編集箇所は次のようになります。 Elasticsearch サーバの認証設定を忘れないようにしましょう。

apm-server:
  host: "0.0.0.0:8200"    ★サーバ外部からの接続に対応する設定
  :
output.elasticsearch:username: "elastic"
  password: "elastic_users_password"  ★サーバ構築時に設定したパスワードにする

設定が完了したら、APM Server を起動します。 また、 OS 起動時に APM Server が自動起動するようにしておきます。

$ sudo systemctl enable apm-server  ★自動起動する設定
$ sudo systemctl start apm-server  ★APM Serverの起動
$ sudo systemctl status apm-server
● apm-server.service - Elastic APM Server
   Loaded: loaded (/lib/systemd/system/apm-server.service; enabled; vendor ...
   Active: active (running) since Mon 2019-09-01 12:34:56 UTC; 9s ago
     Docs: https://www.elastic.co/solutions/apm
 Main PID: 12345 (apm-server)
    Tasks: 7
   Memory: 13.5M
      CPU: 82ms
   CGroup: /system.slice/apm-server.service
           mq88786 /usr/share/apm-server/bin/apm-server -e -c /etc/apm-server...

2. APM Agent のインストール/設定

次に、APM Agent を k8s 上で動かすアプリケーションに組み込みます。 組み込まれた APM Agent が、アプリケーションから情報を収集し、 APM Server に情報を送信します。

組み込むには、 azure-vote-app-redis で次に示すファイルを編集します。

(1) azure-vote/Dockerfile

FROM tiangolo/uwsgi-nginx-flask:python3.6
RUN pip install redis elastic-apm[flask]  ★末尾に「elastic-apm[flask]」を追記
ADD /azure-vote /app

(2) azure-vote/azure-vote/main.py

from flask import Flask, request, render_template
from elasticapm.contrib.flask import ElasticAPM  ★この行を追加
import os
import random
import redis
import socket
import sys

app = Flask(__name__)

# ---- 追加ここから ----
# Enable ElasticAPM
app.config['ELASTIC_APM'] = {
    'SERVICE_NAME': 'azure-voting-app',
    'SERVER_URL': 'http://192.168.0.5:8200'  # ★mon-data-0 サーバのIPアドレス
}

apm = ElasticAPM(app)
# ---- 追加ここまで ----

3. APM Agent を組み込んだアプリケーションを動かす

APM Agent の組み込み設定が完了したら、 k8s 上のアプリケーションを更新しましょう。

AKS チュートリアルを参考にして、新しいバージョンの Docker イメージをレジストリ(Azure Container Registry)にプッシュします。 今回は、新しいイメージには azure-vote-front:v2 を割り当てました。

$ docker push <レジストリ名>.azurecr.io/azure-vote-front:v2

レジストリに Docker イメージの登録ができたら、新しい Docker イメージでデプロイします。

$ kubectl get pods
$ kubectl set image deployment azure-vote-front \
  azure-vote-front=<レジストリ名>.azurecr.io/azure-vote-front:v2
$ kubectl get pods

デプロイに成功すると、 APM Agent から APM Server にアプリケーションの性能情報が送信されるようになり、 APM Server を通して Elasticsearch に情報が格納されるようになります。 格納されたデータは、 Kibana の APM 画面から見ることができます。

f:id:acro-engineer:20190910012650p:plain

まとめ

今回は、 Elastic APM を用いたアプリケーションの性能情報監視を行いました。

性能情報の監視を自前で行うには、事前のログやメトリクスの設計、アプリケーション全体を通した実装といったことを考える必要があります。 これらはそれなりに大変な作業になります。

Elastic APM を使うと、こういった作業をソースコード冒頭数行の記述と、受信側サーバの設定だけで行えて便利ですね。

これまで3回にわたって Kubernetes および Kubernetes 上で動かすミドルウェアやアプリケーションの可視化/監視を行う方法について説明してきました。

近年、 Observability という言葉が使われるようになっており、クラウド上のシステムやマイクロサービスで動作するアプリケーションの監視について必要なことが整理されています。

今シリーズで説明した Infrastructure UI(メトリクス)、Logs UI(ログ)、Elastic APM(性能方法)も、 Observability を実現するために活用することができますので、この記事を役立ていただけたら幸いです。

それでは。


Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

  少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com

Elasticsearch無料ハンズオンセミナーを開催しました

こんにちは、3年目エンジニアの緑川です。
昨日、銀座で当社主催の「Elasticsearch無料ハンズオンセミナー」を開催しました!

f:id:acro-engineer:20190827131739j:plain
ハンズオンの様子
本ハンズオンでは、Elastic Stackの最新バージョンを用いて、
基本的な使い方、データの収集/加工、ダッシュボードによる可視化まで、一通りの流れを体験いただきました。

また、Elastic Stackの有償機能について、Elastic Machine Learning(Elastic ML)を中心に紹介。
シンプルな機能ながら多数のユースケースに対応するElastic MLに、参加者からの質問も多く、注目度の高さを感じました。

いやあ、機械学習のエキスパートでなくても、時系列データの異常検知ができるなんて、本当に便利ですよね〜(^^)

次回は10月上旬に開催予定です。
奮ってご参加ください!

AKSで構築したKubernetesクラスタをElasticStackで監視する (2)AutoDiscover編

こんにちは、アキバです。

前回に引き続き、Azure Kubernetes Service(AKS)を用いて作成した Kubernetesk8sクラスタを ElasticStack で監視する方法について解説します。

第2回の今回は、k8s でデプロイしたコンテナ上で動くミドルウェアの監視を行う方法についてです。

※今回の記事の内容は、ほぼ AKS に依存しません。 kubectl が使える環境なら、どの k8s クラスタでも適用できるでしょう

1.監視対象の構成

監視対象である AKS の Vote サンプルアプリケーションは、以下のような構成で動いています。

Voteアプリケーション構成

Metricbeat には、Redis などのメトリックを監視するためのモジュールが用意されているため、 k8s クラスタでも同じように監視したいと思います。

2.AutoDiscover機能を使う

k8s のように動的にコンテナが起動・終了するようなシステムの場合、起動したコンテナに追従して Filebeat/Metricbeat を設定する必要があります。

前回の記事で、 k8s クラスタの Pod の監視には、DaemonSet という k8s の仕組みで実現できることを学びました。

しかしながら、DaemonSet で起動した Filebeat/Metricbeat は、自分の監視する Pod 上でどのツールが動いているかを知らなければモジュールを適用することができません。

Filebeat/Metricbeat には、 Autodiscover という機能があり、これを利用することで動的に増減するコンテナに追従可能になります。

例として、 Redis が動く azure-vote-back のコンテナに対して Metricbeat の redis モジュールを適用します。

前回 DaemonSet として登録する際に使用した、 metricbeat-kubernetes.yaml ファイルに、コメントアウトされた状態の記述があるので、このコメントを外して設定を追記します。

■設定前:

    # To enable hints based autodiscover uncomment this:
    #metricbeat.autodiscover:
    #  providers:
    #    - type: kubernetes
    #      host: ${NODE_NAME}
    #      hints.enabled: true

■設定後:

    # To enable hints based autodiscover uncomment this:
    metricbeat.autodiscover:
      providers:
        - type: kubernetes
          host: ${NODE_NAME}
          #hints.enabled: true
          templates:
            - condition.equals:
                kubernetes.labels.app: azure-vote-back
              config:
                - module: redis
                  metricsets: ["info", "keyspace"]
                  period: 10s
                  hosts: ["${data.host}:6379"]

上記の例では、「kubernetes.labels.app」という k8s のメトリックで得られるフィールドを見て、「azure-vote-back」だったら redis モジュールを適用するようにしています。 この「condition.equals」をシステムに合わせて設定すれば、その他のモジュールやコンテナへの適用にも応用できるわけです。

3.適用=DaemonSet を更新する

それでは、変更した設定を k8s の DaemonSet に適用します。

既に適用されている DaemonSet がある場合は、削除してから再度適用します。

$ kubectl delete -f metricbeat-kubernetes.yaml
$ kubectl create -f metricbeat-kubernetes.yaml

適用されました。

f:id:acro-engineer:20190730024152p:plain

余談ですが、このダッシュボードは、 Metricbeat からセットアップしたものです。

構築した Kibana サーバに Metricbeat をインストールし、設定後に以下のコマンドで投入しています。(※SSHコンソール上で操作)

$ metricbeat setup --dashboards

まとめ

以上の内容で、 k8s クラスタ上で動的に作成/削除されるコンテナに対して、その種類を見ながら必要なモジュールを適用できることがわかりました。

今回は Redis のみを対象にしましたが、 nginx のメトリックや、あるいは Filebeat を使ってアプリケーション独自のログを監視するといったことも可能になりますので、興味のある方はチャレンジしてみてはいかがでしょうか?

次回は、最後に Elastic APM をアプリケーションに適用してみます。

それでは。

参考文献


Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

  少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com

ミャンマーで機械学習ハンズオンセミナーを開催しました

皆さんこんにちは。
@tereka114です。

最近まで私を含め数人でミャンマーの支社へ訪問してきました。
日本と文化や食事が違ったこともあり、エキサイティングで刺激的な毎日でした。
特にミャンマーには独特な食事がいくつもあり、最初は慣れなかったのですが、段々と慣れるものですね😅

ミャンマー訪問中の7/13,7/16に機械学習ハンズオンセミナーを開催しました。
講師は@shin0higuchiと2人で担当し、機械学習の基本から応用まで話しました。
YTU, UITなどのミャンマーのトップクラスの大学生だけでなく、UCSYなど、いくつものコンピュータ大学の先生も参加してくれたのが、日本とは状況が違いますね。
まさか、大学の先生に教える機会が来るとは思わず(しかも英語で)、緊張しました。

f:id:acro-engineer:20190723231553p:plain:w500
講義中の光景

今回開催したセミナーでは次の内容を紹介し、ハンズオンを実施しました。

機械学習が手元で動くのを見て、イメージを持ってもらえたこともあり、活発に質問が出て盛り上がりました。

f:id:acro-engineer:20190723231616p:plain:w500
懇親会の光景

ハンズオンセミナーの終了後、懇親会を開催しました。
参加者から質問攻めにあい、ミャンマーでも機械学習をやりたいといった熱意が伝わってきました。
例えば、機械学習をプロジェクトで使うにはどうすればよいか、これからも勉強したいけれどどんなサイトが良いのかなど多くの質問が飛び交いました。

私は今回、ミャンマーに初めて行き、想像以上に最先端の技術に対する興味と熱気を感じました!
今回のミャンマー訪問、非常にチャレンジングなことができて楽しかったです😃

また、機会があれば行きたいと思います!

P.S. ミャンマー滞在中で一番おいしかったのは、「まんぷく」という焼き肉のお店です。

f:id:acro-engineer:20190716214830j:plain:w500
焼き肉

写真の通り、どうみても日本料理です。実のところ、店も日本の雰囲気ですが、一番おいしいと感じました。

Acroquest Technologyでは、キャリア採用を行っています。

  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。


世界初のElastic認定エンジニアと一緒に働きたい人Wanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップの求人 - Wantedlywww.wantedly.com