Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はてなサービスプラットフォームチームにおける Mackerel / Mackerel in H...
Search
motemen
October 27, 2017
Technology
1
1.3k
はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team
2017/10/27 モニタリング勉強会の資料です
https://mackerel-ug.connpass.com/event/68478/
motemen
October 27, 2017
Tweet
Share
More Decks by motemen
See All by motemen
旧から新へ: 大規模ウェブクローラの Perl から Go への移行 / YAPC::Fukuoka 2025
motemen
3
2.1k
AIに実況させる / AI Streamer
motemen
4
7.3k
技術を育てる組織・組織を育てる技術 / technology and organization
motemen
13
5k
はてなのエンジニアリングマネジメント、これまでとこれから / Engineering Management in Hatena, Hatena Engineer Seminar 26
motemen
2
2.2k
入門 Bubble Tea
motemen
1
890
ソフトウェア開発と私 / Software Development and I
motemen
13
6.8k
はてなシステムの考古学 / History of development at Hatena
motemen
3
300k
Reading Go Tools - GoCon 2016 Spring
motemen
5
2.9k
Diff'ing Go library API changes
motemen
4
2.7k
Other Decks in Technology
See All in Technology
2025年の医用画像AI/AI×medical_imaging_in_2025_generated_by_AI
tdys13
0
320
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
330
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
390
Digitization部 紹介資料
sansan33
PRO
1
6.4k
「アウトプット脳からユーザー価値脳へ」がそんなに簡単にできたら苦労しない #RSGT2026
aki_iinuma
9
4.3k
202512_AIoT.pdf
iotcomjpadmin
0
180
産業的変化も組織的変化も乗り越えられるチームへの成長 〜チームの変化から見出す明るい未来〜
kakehashi
PRO
1
380
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.7k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
RALGO : AIを組織に組み込む方法 -アルゴリズム中心組織設計- #RSGT2026 / RALGO: How to Integrate AI into an Organization – Algorithm-Centric Organizational Design
kyonmm
PRO
3
870
Claude Codeを使った情報整理術
knishioka
20
12k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.5k
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
30 Presentation Tips
portentint
PRO
1
180
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
59
4 Signs Your Business is Dying
shpigford
187
22k
KATA
mclloyd
PRO
33
15k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.4k
Code Reviewing Like a Champion
maltzj
527
40k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Transcript
Mackerel in Hatena Platform Team 2017-10-27
id:motemen • 株式会社はてな CTO • 元 Mackerel ディレクター • アプリケーションエンジニア
• Go と Git が好きです
Mackerel とは
History of Mackerel 2007 はてな社内サーバ管理ツール 2013 クラウドサーバ監視サービス 開発開始 2014 Mackerel
チーム結成 2014-05 ベータリリース 2014-09 正式リリース 2016-06 連続リリース100週達成
Mackerelにおいて、サービスとはホストを運用する上でもっとも大 きな単位です。通常、複数のホストがそれぞれの「役割」(→ ロー ル)を担当し、協調しあってひとつのサービスを形づくります。関係 しあうホストをひとつのサービスに属するものとしてまとめること で、ホストの管理・監視が容易になります。
ロールはサービスに所属するホストをさらにその「役割」(アプリ ケーション、データベース、etc…)によって分類する概念です。 Mackerelではホストの状況をロールごとにまとめて可視化すること ができます。
App App App DB DB Web Web Web Batch Service
mackerel-agent • 各ホストで稼働する小さなプロセス ◦ ホストを Mackerel に登録 ◦ 自動的に基本的なメトリックを投稿 •
github.com/mackerelio/mackerel-agent
None
Installing mackerel-agent • mackerel-agent.conf ◦ 追加のメトリック ◦ カスタマイズされた監視 ◦ ホストに紐づくサービス/ロール
wget -O - https://mackerel.io/file/script/setup-all-apt.sh | sh a
API • サービス・ロール一覧 • ホスト情報の取得・更新 • メトリック投稿・取得
mkr • github.com/mackerelio/mkr • Mackerel API のコマンドラインインタフェース ◦ mackerel-agent の動くホストなら
API キー指定不要 mkr hosts -s Hatena-Star -r db-slave | jq 'map(.name)'
メトリック • ホストメトリック ◦ 1 ホストの稼働状況 ◦ ソフトウェアの状態 • サービスメトリック
◦ サービスの稼働状況 ◦ ビジネス上のメトリック
メトリック(ロール) • ロール内のホストを ◦ 比較 ◦ 積み上げ
プラグイン • github.com/mackerelio/mackerel-agent-plugins • Linux (fork, netstat), inode • Docker,
Elasticsearch, fluentd, MySQL, nginx, ... • AWS: CloudFront, DynamoDB, RDS, ...
監視 • ホストメトリック監視 • サービスメトリック監視 • チェック監視 • 外形監視 •
式監視
通知チャンネル • さまざまな通知サービスに対応 ◦ • アラートだけでなく、Webから手動でグラフ画像の共有も
通知グループ • 通知チャンネルとサービスを 紐付ける • チームのSlackチャンネルに、 興味あるサービスのアラートを
Mackerel in Hatena Platform Team
組織構造 Op Team Dev Team 1 Dev Team 2 Dev
Team 3 Service B Service A Service C Service D
サービスプラットフォームチーム • ユーザ向けサービスの基盤 • と、古いサービス • ほぼオンプレミス • ビジョン: 既存のシステムの解体と再生
◦ 現在はインフラ的な事情由来のタスクが主
SPF: システム特性 • 巨大な・結合したモノリス • 全貌の正確な理解は難しい • Devs / Ops
でともに理解しながら手なづけていく過程
Devs と Ops のあいだ = Mackerel • システムを観察する方法はさまざま • その橋渡しとなるのが
Mackerel • 1 ウェブサービスが Mackerel 上の 1 サービスに対応
アプリケーション / 外からの観察 • 外形監視 • サービスメトリック
HTTP 外形監視 • 最低限の監視として • SSL 証明書の有効期限監視も可能 • サービスに紐付ければ、レスポンスタイムの監視も
HTTP レスポンス / サービスメトリック • より詳しいステータス状況 • fluentd で収集・集計 ◦
fluent-plugin-mackerel ◦ レイテンシ ▪ average, 90/99 %ile ◦ ステータスコード ▪ percentage, count
Platform-API サービス • 複数のサービスに渡るAPIエンドポイントを一箇所に集約 • チームのAPIカタログに
アプリケーション / 内からの観察 • ホスト死活 • ホストメトリック
ホスト死活 • 最低限の監視として • mackerel-agent が起動すると自動的に監視
ホストメトリック • ビルトイン: Loadavg, CPU%, Memory, Filesystem, ... • OS
やミドルウェアに合わせたカスタムメトリック • 監視よりは観察用
静的なシステム理解 • アプリケーションのソースコード • コードとして表現されたインフラ
App Server Configuration Middleware Configuration Application Application Service App Devs
Ops
Service/Role 世界観 • リポジトリが Service/Role 対応 ◦ hatena/Hatena-Identity • リポジトリ中のディレクトリが
Service/Role 対応 ◦ nginx-config/Hatena-Identity/backend/nginx.conf ◦ chef/cookbooks/service-identity/recipes/backend.rb
監視: 一般的なホストメトリック • Connectivity • Filesystem% ◦ 特定の Service/Role では無効に
監視: ロール固有のメトリック • db (MySQL)、worker (TheSchwartz)、… • chefレシピでロールに合わせてカスタムメトリックも設定 • 監視の閾値は手でチューニング
監視: チェック監視 • ホスト上でアプリケーション/ミドルウェアが 正しく稼働しているか? • ミドルウェア設定ファイルの隣に配置
その他 • イベントのグラフ投稿 ◦ Dev: デプロイ ◦ Op: chef 適用
• mkr でサービス事情の監視 ◦ 旧: cron で DB 不整合の件数をメールで通知 ◦ 新: mkr throw でサービスメトリック投稿、監視閾値設定
Example: Go App
• 既存 API の置き換え(Go) 新規開発の例: APIサーバ DB app nginx front
nginx
設定した監視ポイント • 外形監視(レスポンスボディチェック) • nginx - app 間通信(専用エンドポイント + check-http)
• app - DB 間通信(専用エンドポイント + check-http) • nginx: カスタムメトリック(mackerel-plugin-nginx) • app: カスタムメトリック(mackerel-plugin-gostats) • おまけ: app-version チェック
• 旧システムで、ロール全体の CPU% 減少 • ホスト数も削減 ◦ 積み上げグラフで、台数を抽象化 置き換え後
非エンジニアとの会話にもグラフ
App Server Configuration Middleware Configuration Application Application Service App Devs
Ops KPI, Cost Business
Mackerel を使ってみて • Devs と Ops でシステムを理解していくための場 • Service/Role 世界観による情報整理
• Mackerel is for ... ◦ サーバ監視 ◦ サーバ管理 ◦ チームビルド
None