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
2014-11-28_Elasticsearch
Search
SUZUKI Masashi
November 28, 2014
Technology
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2014-11-28_Elasticsearch
社内でElasticsearchを導入した時の説明資料
SUZUKI Masashi
November 28, 2014
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
3
590
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
2
310
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
2
870
2026-07-28 3-shakeテックランチ Cloud Run のデプロイパラメータを考える / Cloud Run Deploy Parameter
masasuzu
0
110
2026-07-24 tfpolicyを試してみたのですが、、、、
masasuzu
1
170
2026-06-18 ecspressoのtfstate参照が便利すぎた話
masasuzu
1
500
2026-04-14 Jagu'e'r Cloud Native分科会 Terraform Stateにおけるシークレットの平文保存という課題とその解決
masasuzu
1
94
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
1
520
2026-03-23 Ops-JAWS Meetup39 Session Managerを使った セキュアなサーバーアクセス
masasuzu
3
200
Other Decks in Technology
See All in Technology
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
AIで社員の自主発信に広報目線を組み込む
_mossann_t
0
130
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
110
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
2.9k
AI de Idea
kawaguti
PRO
2
130
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
510
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
0
190
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
220
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
0
260
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
10
4.2k
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
210
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
3
560
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
550
Being A Developer After 40
akosma
91
590k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Faster Mobile Websites
deanohume
310
32k
The Cult of Friendly URLs
andyhume
79
7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
380
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Designing Experiences People Love
moore
143
24k
Transcript
Elasticsearch導入 ͖ͣ͢·͞͠ @ ࣾ 1
もくじ 弊社のログアーキテクチャのおさらい Elasticsearch導入の動機 Elasticsearch/Kibana概要 KibanaのDashboard 2
Elasticsearchの 話の前におさらい 3
ログ回りアーキテクチャ おさらい 4
Fluentd http://www.fluentd.org/ ログ収集ミドルウェア input pluginとoutput pluginを柔軟に組み合わせ ることができる ruby ware 弊社ではtd-agentというパッケージを利用してい
る 設定ファイルはFluentdConfプロジェクトで管理 5
td-agent https://github.com/treasure-data/ td-agent fluentdの開発元のTreasure Dataが開 発しているrubyとfluentdを同梱した パッケージ rubyを同梱しているのでsystem rubyに 影響を受けず/与えず利用できる。
6
agent/collector Fluentdに2つの役割を持たせている agent ログを転送するサーバ collector ログを受信するサーバ 7
収集しているログ ※FluentdConfプロジェクト参照 error log apache/nginx/plack access log apache/nginx(reverse proxy,static) application
log MF::FileLogger(社内用ログ出力モジュール) 8
ログの場所 ログサーバの/var/log/td-agent/以下に保存される access log {application,static,reverse_proxy}/access/site/${VHOST}/ エラーなaccess log {application,static,reverse_proxy}/access/status/${STATUS_CODE}/${VHOST}/ error log
plack/error/${APP_NAME}/ {apache,nginx}/error/${HOSTNAME}/ application log app/${APP_NAME}.${LOG_TYPE}/ 9
利用している主なplugin fluent-plugin-forest fluent-plugin-config-expander fluent-plugin-file_alternative fluent-plugin-parser fluent-plugin-rewrite-tag-filter fluent-plugin-record-reformer fluent-plugin-elasticsearch etc.. 10
ログ回りアーキテクチャ おさらい 11
ログ回りアーキテクチャ おさらい agent 1. ログをtailして読み込む 2. collectorにログを転送する collector 3. agentからのログを受信する
4. タグに従って、ログを振り分ける 5. 振り分けに従ってログをファイルに保存 12
これから 13
これから agent 1. ログをtailして読み込む 2. collectorにログを転送する collector 3. agentからのログを受信する 4.
タグに従って、ログを振り分ける 5. 振り分けに従ってログをファイルに保存 5’Elasticsearchにログを転送する 14
そもそもElasticsearch を導入する動機 15
動機 ファイルに保存されてるのでアプリケー ション(web)からログの利用がしにく い。 簡単にできるようにしたい。 16
ファイルめんどう Fluentdで集めたログは一定サイズで rotateされて横断検索がめんどう /var/log/td-agent/foo/bar/ 20141128_0.log.gz /var/log/td-agent/foo/bar/ 20141128_1.log.gz 17
ファイルめんどうcont.. flash後はgzip圧縮されるのでflash前 (buffer)と合わせて横断検索しにくい /var/log/td-agent/foo/bar/ 20141128_0.log.gz /var/log/td-agent/foo/bar/ 20141128_0924141251.log ※gzip圧縮しなくても良いのですが、そ うするとディスクの容量の問題が。 18
ファイルめんどうcont.. ファイルなのでアプリケーションから 参照するときはsshしないといけない 19
検討して選んだのは Elasticsearch 20
選ばれなかったものたち Google Big Query お金の問題と常時外にデータを投げるのに抵抗感 Tresure Data 同上 InfluxDB ちょっと実績足りない
MongoDB MySQL 21
Elasticsearch 22
Elasticsearch http://www.elasticsearch.org/ Apache Luceneベースの全文検索エンジン スキーマレス 型は存在、自動で型マッピングされるが事前に指定も可能 クラスタリング スケーラブルだけど、今回は1台構成 JVM JSON
API Fluentd + Elasticsearch + Kibana3の実績多い Kibanaの存在が決め手 23
ElasticsearchConf Elasticsearch回りの設定管理レポジト リ 設定ファイル KibanaのDashboard スキーママッピング 各種管理スクリプト 24
Elasiticsearchに 保存されるデータ application access log application/staticの404/500なaccess log application log 25
Kibana 26
Kinaba3 ElasticsearchのWebフロントエンドツール JS + HTML 簡単な検索集計であれば、Elasticsearch のAPIを直接使わないでも充分 最新バージョンは4 ただし3を使う 27
利用方針 基本的なログ検索に関してはKibanaで行 う 本当に必要であれば、Elasiticsearch のAPIを利用しても良いが、Kibanaの Dashboardをいじる方が工数が少ない と思います。 アクセスログアラートに関しては Elasticsearchの検索結果を元にするよう に修正予定
28
注意点/制限 ディスク容量と負荷の関連で全てのロ グが検索できるわけでは無いです 現状1台のサーバで大量のログをさばい ているので、重いクエリを短時間で大 量に発行すれば、普通にダウンします。 29
Kibanaの Dashboard構成要素 Header ヘッダー部分 Query 検索条件 Filter 検索条件 Row 複数のPanelをまとめたもの
Panel 検索/集計結果 30
Header ヘッダーです。 Dashboardの保存/読み込み、設定変更 とかできます。 31
QueryとFilter QueryもFilterも検索条件 Queryは複数の検索結果を比較するため に使用するもの Filterはそれぞれの検索結果に対して 条件をつけるもの 32
主なPanelの種類 Histgram 単位時間当たりのデータのカウント/最大値/平 均値などをグラフ化できます Table 実データに中身を参照できます Terms ファセット検索を用いてデータの集計ができま す 33
Histgram 34
Table 35
Terms 36
そのたのPanel map bettermap goal hits sparklines stats trends 37
Kibanaの画面を 見つつ説明 38
Dashboardの保存 一時領域に保存 企画者に検索結果を共有したいときとか ローカルに保存 Elasiticsearchに保存 Dashboard作り中に一時的に保存するときとか 他のユーザに簡単に上書き保存されかねない ElasiticsearchConfのレポジトリに保存 明示的に消さない限りは消えないので恒久的に使いたいもの とか
39
まとめ 適切にログ設定して適切にログ出力さ れていれば、快適なログ検索ができる ようになった 単純なログ検索/集計はKibanaでできる 慣れるまでは、若干辛いのでDashboard をつかいこなしてみてくだしあ 40
リソース ドキュメント Elasticsearch Kibana 書籍 サーバ/インフラエンジニア養成読本 ログ収集 ~可視化編 高速スケーラブル検索エンジン ElasticSearch
Server 41
質疑応答 42
43 おわり