Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Using Elasticsearch for Searching Articles and ...
Search
Elastic Co
December 16, 2015
Technology
430
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Using Elasticsearch for Searching Articles and Log Analysis
Yuri Umezaki | Nikkei | Tokyo | December 16, 2015
Elastic Co
December 16, 2015
More Decks by Elastic Co
See All by Elastic Co
Les Vendredis noirs : même pas peur ! - Breizhcamp
elastic
15
1.1k
Confoo Montreal: Ingest node: enriching documents within Elasticsearch
elastic
16
1.1k
Elastic{ON} 2018 - Sipping from the Firehose: Scalable Endpoint Data for Incident Response
elastic
6
4.3k
Elastic{ON} 2018 - A Security Analytics Platform for Today
elastic
3
11k
Elastic{ON} 2018 - The State of Geo in Elasticsearch
elastic
7
12k
Elastic{ON} 2018 - Reliable by design - Applying formal methods to distributed systems
elastic
5
4.9k
Elastic{ON} 2018 - Bigger, Faster, Stronger - Leveling Up Enterprise Logging
elastic
1
5.1k
Elastic{ON} 2018: Latest in Logstash
elastic
1
4.7k
Elastic{ON} 2018 - Lessons Learned from Workday's Search Application Journey from POC to Production
elastic
2
2.5k
Other Decks in Technology
See All in Technology
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
800
詳解 never 型 - ボトム型の性質を深掘り
nealle
0
150
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
4
3k
リアクションエンジニア ― 小さなリアクションから、話しかけやすい組織をつくる ―
ryuguyana
1
130
レガシーコードに対する loop engineering的なAI開発プロセス導入について
kubell_hr
0
270
PostgreSQL オプティマイザ統計の秘密
nori_shinoda
0
360
SLOを阻む不安
sraku2159
0
230
The future of architectural work
ufried
0
170
生き様としてのSRE
hokkai7go
1
170
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
770
今から始めるAWS環境の暗号移行 - ポスト量子時代に備える
sato4mi
0
150
2026 Apache Flink Community Checkpoint
rmetzger
0
190
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
510
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
The Cult of Friendly URLs
andyhume
79
7.1k
Technical Leadership for Architectural Decision Making
baasie
3
640
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
A better future with KSS
kneath
240
18k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
The SEO Collaboration Effect
kristinabergwall1
1
620
Deep Space Network (abreviated)
tonyrice
0
410
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Transcript
2015/12 1 2015/12/16 日本経済新聞社 梅崎裕利 0 記事検索とログ解析での
Elasticsearch活用事例 自己紹介 • 日本経済新聞社デジタル編成局 • 梅崎 裕利 • 業務内容 § アプリケーション開発 o DjangoとElasticsearchでの検索API o スマホアプリのバックエンドAPI § サーバ管理 o EFKでアクセスログ可視化 o Ansible, Serverspec, Docker o Nginx, Varnish, HAProxy 1
2015/12 2 日本経済新聞社 • 1876年年創刊 • 紙と電⼦子合わせて300万部以上 2
日本経済新聞 電子版 • 2010年年創刊 • ⽇日本で初の本格的有料料電⼦子版サービス • 44万⼈人の有料料会員 • 複数デバイスで利利⽤用可能 3
2015/12 3 日本経済新聞 電子版 4 スマートフォン 紙面ビューアー
スマートフォ ンウェブ版 PC 新聞 マーケット用 ウェブアプリ ガラケー Windows 8 Elasticsearchとわたし 5
2015/12 4 Elasticsearchとの出会い • 2014年4月 入社 • 5月
配属 § DBの調査・検証をして社内で情報共有 § 検索の需要があったので、Solrを検証 § ちょうど1.0が出て話題のElasticsearchも検証 o 国内ではログ可視化の話が多かったが、 コンテンツ検索にも使えそう • 6月 Elasticsearchの実験ページを作って上司に見せる • 9月 気がつくとElasticsearch関係がメインの仕事に 6 なぜElasticsearchを選んだのか • ログ可視化とコンテンツ検索 両方に使える § 可視化ツールのKibana § 形態素解析や正規化など、便利なプラグイン • REST API § API構造が理解しやすい § スキーマやクラスタの設定もAPIで可能 • クラウド上でクラスタ構築・運用が容易 § スケールアップ・スケールアウト § ローリングアップデート • 高性能 § 15台クラスタで秒間9000リクエスト超 7
2015/12 5 Elasticsearchの利用箇所 • 大きく分けて2箇所で利用 • 記事検索 §
形態素解析(Kuromoji)、ngramを活用 § 検索回数は多いがデータはそれほどでない • アクセスログ解析 § FluentdとKibanaを利用して可視化 § 検索回数は少ないがデータ量、書き込みが多い 8 記事検索 9
2015/12 6 記事検索 • 日本経済新聞 電子版の記事 § データ数:約200万
§ データサイズ: 約5GB § 更新頻度: 数千回/日 (ピークは300件/分 程度) § リクエスト数: 秒間100回〜 • 新規開発アプリを中心に利用 10 記事検索API • ElasticsearchとDjangoで作成 § Django API o 有料記事など表示権限の管理 o Redisを利用して同義語展開やサジェスト情報の付与 o Elasticsearch-pyを利用 o 検索ログの保管・調査 § マスターはMySQLに保存し、随時ESにも書き込み § 2015年5月から本番稼働中 11 Elas8csearch Django API MySQL App
2015/12 7 記事検索用のスキーマ • KuromojiやICU normalizerを利用 12 記事検索用のスキーマ
• 一部はngramと形態素解析の両方でインデックス § 従来の検索エンジンと互換性を残すため • タイトルなどはnot_analyzedのfieldsも用意 § 完全一致も利用するため 13
2015/12 8 記事検索ログもElasticsearch • 検索ログの可視化(独自ツール) § 検索機能の改善に o スロークエリ
o キャッシュ率 o 検索数が多いのにヒットが0件のもの o ヒット数が少ない単語 o ヒット数が多すぎる単語 § 指標として o 検索ワードランキング o 急激にふえた検索ワード 14 記事検索の事例 • もっと日経 § 新聞記事をスマホで撮ると、関連記事やバックナンバーなどを表示 15
2015/12 9 記事検索の事例 • もっと日経の仕組み • 内部では記事をOCRしてElasticsearchで検索 •
課題 § カメラ性能などが原因で、OCR精度はあまり高くない o 直接検索にかけると全然ヒットしない o OCR結果からキーワードを抽出する必要があった 16 記事検索の事例 § 形態素解析の転置インデックスを活用してキーフレーズAPI作成 o 単語の出現回数を特徴量に利用 o 重み付けしてクエリに反映 (≒TF-IDFのような機能) § 精度が大幅に向上 17
2015/12 10 記事検索-Elasticsearchで良かったこと • 新規アプリの開発速度が格段に上がった § ドキュメントが豊富 §
内製化で、チューニングや機能追加が迅速に § エイリアス活用でスキーマ変更が本番稼働中でも可能 • クラウド上でサーバのスケーリングが容易 § 普段は3台(r3.xlarge) 高負荷時は15台程度 • アップデートが簡単 § 現在は2.1.0が稼働中 § V1からV2への移行を除き、シームレスにローリングアップデートできている 18 アクセスログ解析 19
2015/12 11 アクセスログ解析 • ApacheやNginxなどWebサーバのアクセスログ § FluentdやLogstashで転送し、Elasticsearchに入れてKibanaで見る o いわゆるELK,
EFK § 潜在的な問題や課題の確認、トラブル時の即時解析が可能に 20 サーバの構成 21 Elas8csearch Varnish LogServer LB WebServer S3 Kibana • 形式はLTSVを利用 § 必要なログはすべてとる time, client_ip, method, host, path, query, agent, taken_time, status, res_bytes など • 集約サーバでuser agentやclient ipをパース § ua-parser, woothee, geo_ip
2015/12 12 アクセスログ解析 • 秒間1万件超 • 1日約3億件 §
およそ1日120GB § 常時1週間分を保持 • Elasticsearchはr3.xlargeを6台で運用 § 合計メモリ180GB(ElasticsearchのHeapは72GB) § 月20万円前後 § スポットインスタンスを使えば月約3万円 § 24時間分のログ集計には10秒~1分程度かかる 22 Elasticsearchの構成 • レプリカを作らず、サーバ1台に1つずつシャードを配置 § 書き込み時間やディスク使用量を減らすため § 注:1シャード20GB程度あるので、さらに4分割ほどしたほうが良いかも 23
2015/12 13 アクセスログ解析でわかること • レスポンスに時間がかかっているページ § 遅いレスポンスが増加していないか §
改善すべき機能はどこか 24 アクセスログ解析でわかること • レスポンスのステータス § エラーやキャッシュミスが増えていないか 25
2015/12 14 アクセスログ解析でわかること • どの地域からアクセスが多いか § GEO IPを利用
26 アクセスログ解析でわかること • どのファイルが帯域を多く使ってるか § レスポンスサイズの合計をパスごとに表示 27
2015/12 15 アクセスログ解析でわかること(実例) • SVGファイルがgzipされていないことを発見。gzip対象に追加 § 1TB/月の削減 28
アクセスログ解析でわかること • バージョン更新時の状態確認 § エラー状況や、更新できていないサーバがないか確認できる 29
2015/12 16 アクセスログ解析でわかること • サーバ台数変更時の挙動 § サーバ毎のリクエストで、ちゃんとロードバランスできてるか確認 30
アクセスログ解析でわかること • 急にアクセスが増えたときの原因調査 § フィルタを替えて異状な 項目を探す § 該当のログをフィルタして 詳細に分析 31
2015/12 17 アクセスログ解析 • ES+Kibanaで改善した点 § エンジニア秘伝のタレ(shell芸)で見ていたログが、 URLや画像で即座に社内共有できるようになった
§ Kibana4で複数アグリゲーションが利用できるようになり 複雑な解析もできるようになった • ログ解析できる人: 2人→6人以上 • 確認にかかる時間:10分~1日以上→1分 § ブラウザ上で確認できるので、即対応できる § ただし調べられる項目が増えたことにより、時間短縮はできていない o Kibanaは使うと楽しいので、気づいたら時間が… 32 まとめ 33
2015/12 18 まとめ • Elasticsearchは日経社内で広く活用中! § 記事検索 o 新規アプリやプロトタイプで利用
§ アクセスログ可視化 o 一日3億件超のログを保存 § 検索ログ・行動ログ・スロークエリなどの分析 • 今後さらに利用範囲を拡大予定です § 既存の検索エンジン置き換え § SenseやTimelionも活用 34 最後に • 日経電子版ではエンジニアを募集しています! § ServerSide: Elasticsearch, Python § Frontend: JavaScript § NativeApp: iOS, Android •
[email protected]
35
2015/12 19 Note 36 Note 37
2015/12 20 ご清聴ありがとうございました 38 www.elas8c.co 39