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
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
The Mindset for Success: Future Career Progression
greggifford
PRO
0
370
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
400
Art, The Web, and Tiny UX
lynnandtonic
304
22k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Limits of Empathy - UXLibs8
cassininazir
1
370
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
160
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
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 ご静聴ありがとうございました