1.3K Views
September 28, 20
スライド概要
https://japan-pulsar-user-group.connpass.com/event/141000/
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
Yahoo! JAPAN を支える クラウド時代の ログ・メトリクス転送システム 2019年9月3日 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.
自己紹介 メトリクス PF の Yamas 河元 裕史 アプリケーション PF PaaS 水落 啓太、増田 彬 Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 2
現状のログ・メトリクス転送システム 各ログ・メトリクス PF がログ・メトリクス転送 エージェントを配布する ログ・メトリクス PF アプリケーション PF や VM など Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 3
現状のログ・メトリクス転送システム 各ログ・メトリクス PF がログ・メトリクス転送 エージェントを配布する PaaS : 送信ログ 150 K log/s 運用していくと様々な問題が ログ・メトリクス PF アプリケーション PF や VM など Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 4
現状のシステムの課題 1 エージェント提供者(ログ・メトリクス PF)と エージェント運用者(VM, CaaS, PaaS)が異なる 提供者がエージェントを理解しているが、問題は運用者側 で起こるため、トラブルシュートが難しい また各送信先のエージェントを理解し、運用する必要あり (データ分析、ログ分析、監視、メトリクス…) Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 5
現状のシステムの課題 1 ログ・メトリクス PF アプリケーション PF や VM など Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 6
現状のシステムの課題 2 エージェント運用者側でログ・メトリクスを バッファリング 運用者は障害時や突発的な流量の増加があっても、 安定的にログ・メトリクスを送信するため、独自に バッファリングをする(VM を多く運用) Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 7
そこで Pulsar PULSAR ヤフーですでに全社的に利用できる MQ として 提供されている Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 8
Pulsar で疎結合なログ・メトリクス転送システム PULSAR ログ・メトリクス PF アプリケーション PF や VM など 1. ログ・メトリクス PF はエージェントは提供元の PF が管理可能 2. アプリケーション PF は Pulsar への producer のみを運用する 3. バッファリングは Pulsar におまかせ Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 9
新構成への移行 すぐにこの構成に変えられるわけではない - ログ・メトリクス送信 PF (以降、Producer PF) - ログ・メトリクス受信 PF (以降、Consumer PF) 間のメッセージ送信 IF を決める必要がある 10
ログ・メトリクス転送システムの仕様策定 : トピック 各 Consumer PF が必要とするログ・メトリクスの 種類に応じてトピックを分割 トピック構成例 - paas/app-out : アプリケーションの stdout ログ - paas/app-err : アプリケーションの stderr ログ - paas/metrics : アプリケーションのメトリクス (CPU, RAM) 11
ログ・メトリクス転送システムの仕様策定 : メッセージ Producer PF ごとにフォーマットが異なると Consumer PF が読み取ることができない メッセージフィールド例 - Timestamp (RFC 3339) - Event type : ログ・メトリクスの種類を表す - Message Body : パースしやすい多次元の json 12
Pulsar で疎結合なログ・メトリクス転送システム PULSAR { timestamp: 20190904, event_type: err, body: “error message” } topic topic paas/app-out paas/app-err paas/metrics XaaS PaaS ログ・メトリクス PF Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved. 13
実現上の課題 仕様を策定した上で新構成を実現する上で 様々な課題がある 1. Pulsar への Producer 実装コスト 2. 仕様策定の課題 14
1. Pulsar への Producer 実装コスト ・エージェント配布する構成 Producer PF → Consumer PF へ直接ログ・メトリ クスが送れていた ・Pulsar 構成 Producer PF → Pulsar と Pulsar → Consumer PF を各 PF が実装する必要がある 15
1. Pulsar への Producer 実装コスト Producer PF が共通で利用できる producer を開発 実装のポイント - イベントログのバリデーション - 送信イベント数を /metrics で可視化 - 読み込みは様々なタイプに対応でき、送り先を Pulsar へ - 閾値を超えたログのスロットリング 全 Producer PF が行う煩雑な処理を共通化 16
2. 仕様策定の課題 様々な Producer PF, Consumer PF が利用するため、 汎用的な仕様策定が必要 ポイント - 特定の PF 間の仕様については、POC を作るまで先送り - 定例と社内 GitHub でオープンに仕様策定 17
新構成の感触 Yamas (Consumer PF) エージェントを様々な環境で対応させる必要があった - エージェントのインストールが困難な環境からも 送れるように - 特殊 NW のノードから利用時にも ACL が楽 21