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を触り始めて2年経ったので 作ってきたプラグインを振り返る
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
ryuichi1208
July 11, 2023
2.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Mackerelを触り始めて2年経ったので 作ってきたプラグインを振り返る
ryuichi1208
July 11, 2023
More Decks by ryuichi1208
See All by ryuichi1208
AIでサービス運用はどう変わるのか
ryuichi1208
0
140
入門 再発防止策
ryuichi1208
17
7.3k
金曜日デプロイ、するかしないか.pdf
ryuichi1208
1
75
会話で作る信頼性
ryuichi1208
0
180
シグナル(Unix)と仲良くなる
ryuichi1208
1
48
AI前提のサービス運用について再考する
ryuichi1208
6
1.4k
A Shallow Dive into the World of TCP
ryuichi1208
1
670
入門リトライ
ryuichi1208
20
8.3k
超入門SRE 2025
ryuichi1208
4
1.5k
Featured
See All Featured
Abbi's Birthday
coloredviolet
3
8.4k
Odyssey Design
rkendrick25
PRO
2
710
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A better future with KSS
kneath
240
18k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
300
We Have a Design System, Now What?
morganepeng
55
8.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
270
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
Navigating Team Friction
lara
192
16k
Transcript
1 Mackerelを触り始めて2年経ったので 作ってきたプラグインを振り返る 渡部 龍一/ GMO PEPABO inc. 2023/07/11 Mackerel
Meetup #14 Tokyo
技術部プラットフォームグループ 2021年 中途入社 2 自己紹介 渡部 龍一 Watanabe Ryuichi •
ロール: SRE • 仙台から来ました • Mackerel歴: 2年 • 好きな公式プラグイン: mackerel-plugin-gearmand • Twitter : @ryuichi_1208
3 ペパボはどれくらいMackerel使ってるのか
4
• サービス数: 25 • ホスト数: 840+ • VM + コンテナ
• 監視ルール: 300+ • プラグインの利用数: 60+ • 用途 • メトリクス、自動化ツール、SLIの計測 • 自宅サーバの監視 i. アラートはLINEに通知して鳴っても放置してる 5
6 これまで作ったプラグイン紹介
• メトリックプラグイン(24個) • mackerel-plugin-linux-netstat • mackerel-plugin-sslhandshake-time • mackerel-plugin-linux-meminfo • mackerel-low-usage-police
• mackerel-plugin-mysql-extend • mackerel-plugin-axslog-light • mackerel-plugin-dns-healthcheck • mackerel-errorbudget-calculator • mackerel-plugin-dns-lookup • mackerel-plugin-linux-virt-mem • mackerel-plugin-linux-tcp-memory • mackerel-plugin-linux-socket-queue-size • チェックプラグイン(8個) • check-ddos-udp • check-dos-tls12 • check-ssl-validate • check-mysql-backup • go-check-virtmem • go-check-longtransaction-cnt 7
• メトリックプラグイン(24個) • mackerel-plugin-linux-netstat • mackerel-plugin-sslhandshake-time • mackerel-plugin-linux-meminfo • mackerel-low-usage-police
• mackerel-plugin-mysql-extend • mackerel-plugin-axslog-light • mackerel-plugin-dns-healthcheck • mackerel-errorbudget-calculator • mackerel-plugin-dns-lookup • mackerel-plugin-linux-virt-mem • mackerel-plugin-linux-tcp-memory • mackerel-plugin-linux-socket-queue-size • チェックプラグイン(8個) • check-ddos-udp • check-dos-tls12 • check-ssl-validate • check-mysql-backup • go-check-virtmem • go-check-longtransaction-cnt 8
• ryuichi1208/go-check-longtransaction-cnt • MySQLのロングトランザクションの数を監視するチェックプラグイン • 大容量のUNDO(rollback)セグメントを消費することによる BufferPool荒れを防ぎたく て作った i. 分析クエリの発行が1トランザクションで実行されていたりして
3日かかるようなク エリがあった ii. 閉じ忘れられるトランザクションとかにも有効 • INFORMATION_SCHEMA INNODB_TRX テーブルあたりをパースして実装 • 検出後はクエリを出して開発者へフィードバックとか 9
• ryuichi1208/mackerel-plugin-linux-socket-queue-size • 指定したポートの listen-queue と accept-queue の数を出力するプラグイン • /proc/net/tcpをパースして実装
• nginxでSSL終端をしているサービスでnginxでの処理時間が伸びているという事象 が発生していた • 当時はこの時間をリアルタイムに監視する術がなかった • nginxで処理が詰まっていることをアラートとして出すために作成 i. nginxのスレッドがなんらかの原因で詰まると accept(2)の呼び出しが行われな いため増える ii. この数値をトリガーとしてnginx自体のオートスケール処理 10
• ryuichi1208/mackerel-plugin-sslhandshake-time • 指定されたURLへhttpsリクエストをして”名前解決”、”tcp接続”、”SSLハンドシェイク” のそれぞれを計測するメトリクスプラグイン • httptrace.ClientTraceの各処理にフックを入れて計測処理を実装 • DNSはPowerDNSを使っていたり、OpenStack Load-balancing
サービス の Octavia自分たちで運用していたりSSLの部分はngx_mrubyを使った動的証明書の 仕組みを実装していたり • 外形監視のアラートがなった際の調査の範囲を狭めるために作成 i. DNSなのかLBなのかSSL処理部分が悪いのかをある程度短時間で判断できる 仕組み 11
• ryuichi1208/mackerel-plugin-linux-virt-mem • Linuxの仮想メモリの上限と現在使用量を出力するメトリクスプラグイン • /proc/meminfoをパースして実装 • MySQLがメモリ使用量(RSS)は多くないのにOOMが発生していたケースがあって実 装 i.
仮想メモリの不足が原因 • /proc/sys/vm/overcommit_memoryを1で運用(厳格なオーバーコミット管理) i. 夜中に仮想メモリをめっちゃ使用しているグラフがわかった ii. プラグインも結構使用していることがわかった iii. 参考) Why does my Go process use so much virtual memory? 12
13 終わりに
• Mackerelプラグインサクッと作れてとても楽しい • ChatGPTを使って仙台->東京の移動で作ったりして東京でリリース • OpenTelemetry対応弊社のメンバーもとても楽しみにしてます!! • (宣伝)9月にペパボのSREやってるメンバーで勉強会やります!! 14
15 ご清聴ありがとうございました