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
SMTPでのOpenTelemetryの可能性を考えてみる
Search
ryuichi1208
May 09, 2024
3.7k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SMTPでのOpenTelemetryの可能性を考えてみる
ryuichi1208
May 09, 2024
More Decks by ryuichi1208
See All by ryuichi1208
AIでサービス運用はどう変わるのか
ryuichi1208
0
160
入門 再発防止策
ryuichi1208
17
7.4k
金曜日デプロイ、するかしないか.pdf
ryuichi1208
1
76
会話で作る信頼性
ryuichi1208
0
180
シグナル(Unix)と仲良くなる
ryuichi1208
1
51
AI前提のサービス運用について再考する
ryuichi1208
6
1.5k
A Shallow Dive into the World of TCP
ryuichi1208
1
680
入門リトライ
ryuichi1208
20
8.3k
超入門SRE 2025
ryuichi1208
4
1.6k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
How to make the Groovebox
asonas
2
2.3k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
380
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
How to Ace a Technical Interview
jacobian
281
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Transcript
1 SMTPでのOpenTelemetryの可能性を考えてみる 渡部 ⿓⼀ Pepabo Tech Conference #22 春のSREまつり 2024.05.09
技術部プラットフォームグループ 2021年 中途入社 2 自己紹介 渡部 龍一 Watanabe Ryuichi •
ロール: SRE、メールエンジニア(自称) • SNS: @ryuichi_1208 • 好きなこと: EOL対応、障害対応
メールの仕組みのおさらい 3
4 イントロダクション 届いた! メール送信!
5 送信者 MTA MDA MTA MDA SMTP SMTP MXレコード 問い合わせ
DNSサーバ 宛先:
[email protected]
送信元サーバ 送信先サーバ mail box 受信者
6 これ以外にも複数の登場⼈物がいる
7 SMTPのシーケンス図
割と複雑! 8
9 テストで送ってみたメールが届かないんですが ...
10 どこで落ちてるのか調べるのが⼤変
11 • 送信⽤メールクライアント⾃体がバグっている • アプリケーションのバグ • ウイルス判定されている • リレー設定のミス •
メールサーバのサービスが⽌まっている • IPレピュテーションの低下によって送信先で拒否されている • 送信先のメールサーバで拒否する設定になっている 考えられる原因
メールサービスでも分散トレースしたい! 12
そうだOpenTelemetryだ! 13
trace/log/metricsをどう実装するか 14
15 • アプリケーションでtrace idを発⾏してヘッダーに挿⼊する ◦ traceparentをメールヘッダーに⼊れる • Postfixでは、Milterと呼ばれるAPIが提供されている ◦ 「mail
filter」の略 ▪ Rspamd / clamav-milter ◦ SMTPプロトコル処理の各段階をフックできる ▪ DATAコマンドやMAIL FROMコマンドの各フェーズでトレースの送信ができる ◦ Milterでアトリビュートを⼊れつつtraceを送信 trace
16 • Postfixではメールヘッダーをログに書き出すことができる ◦ /etc/postfix/header_checksあたりに追記 ▪ /^Received:/ PREPEND traceparent: $traceparen
▪ td-agentからlokiなりのOtel Backendに送信して連携 • Milterでログを出⼒して送信する⽅針でも良い ◦ 送信元や送信ステータスを属性として出⼒ log
17 • kumina/postfix_exporterあたりを使⽤ • open-telemetry/opentelemetry-collector-contribにはメール関連のサーバは ない ◦ コントリビューションのチャンス..?? • メールのステータスコード40xとか50xとかとトレースやログに紐づけられたら
便利そう metrics
実装⽅針(現在作業中) 18
19 • Pythonで使えるpymilterを⽤いて実装 ◦ Milterプロトコルを喋れれば実装⾔語⾃体に制限はないが情報が多そうな Pythonを選定 • OtelでPythonはTrace/MetricsはstableだがlogsはExperimental ◦ Postfix
+ fluent-bitの組み合わせで考えてる Milterで実装していく
まとめと今後やりたいこと 20
21 • メールサービスでもトレースやログがあると便利 • PostfixではMilterを⽤いることでSMTPの各処理でフックできるのでトレースを埋め込 みやすい • 「SMTP OpenTelemetry」とか「Postfix OpenTelemetry」でググってもヒット数0な
ので取り組むのは結構⾯⽩そう まとめと今後やりたいこと
22 ご静聴ありがとうございました