Upgrade to Pro — share decks privately, control downloads, hide ads and more …

監視・ログ分析を最初から始めるイマドキの事情と理由・その1(混乱編)

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 監視・ログ分析を最初から始めるイマドキの事情と理由・その1(混乱編)

Avatar for Seigo Watanabe

Seigo Watanabe

July 03, 2020
Tweet

More Decks by Seigo Watanabe

Other Decks in Technology

Transcript

  1. 後回しに しない ❗ 1 監視・ログ分析を最初から始める イマドキの事情と理由・その 〜 俯 瞰 混

    乱 編 〜 渡辺聖剛 ソリューションアーキテクト AWS事業本部 パートナーアライアンス部 2020.07.03
  2. 4 Agenda まえおき - 前提となる話 50:50 - SREの話 SかMか -

    監視の話 3-4-3 - 可観測性(o11y)の話 それから? →以下、その2へ続く
  3. 9 自己紹介 渡辺聖剛 ( Seigo Watanabe ) • クラスメソッド株式会社 AWS

    事業本部 パートナーアライアンス部 • 前職までは 所謂インフラエンジニア • 運用・監視(Monitoring) • 好きな AWS サービス ◦ ACM, Route 53 ◦ AWS Systems Manager https://dev.classmethod.jp/author/watanabe-seigo/
  4. 14 アーキテクチャとコンピュート能力 モノリシックからマイクロサービスへ - Container, k8s, FaaS ... コンピュート性能の爆発的向上 -

    計算・I/O性能、ストレージコストは低減 - 超高速ネットワーク - 仮想化技術などの技術革新 Software Defined X (SDx) - X = Network, Infrastructure ... - 従来ハードウェアだったものがソフトウェアで 置き換えられていく
  5. 19 SREってなんぞ Site Reliability Engineering(または 〜Engineer) 技術であり、そのためのエンジニアロール SREの目的は「信頼性の向上」 - 変化し続けるサイト(システム)を前提に、

    そのサイトで安定的に「サービスを提供すること」 - サイトを「安定稼働させること」ではない ちゃんと動いているかどうかを知ることが必要 従来との違い → SREは攻めの運用
  6. 21 GoogleにおけるSRE(cont.) • 仕事の半分はコードを書くこと ◦ 自動化、Infrastructure as Code ◦ 必要なメトリックを収集する仕組みの組み込み

    ◦ プルリク ◦ その他「信頼性をあげる」ために必要なこと • 残りの半分で、 チケット、オンコール、手作業といった運用業務 観念ではなく、明確に工数を分ける
  7. CALMS - DevOpsの哲学のキーポイント - Culture - Automation - Lean -

    Measurement - Sharing DevOpsにとってMeasurementは 重視されるべきもの 23 DevOpsの文化 https://www.oreilly.co.jp/books/9784873119137/
  8. 32 辞書的な定義 monitorもsurveillanceもobserveもsuperviseも、 日本語にするとみんな「監視」になる 一方で、日本語の「監視」には「S」な意味合いが強い • 監視カメラ : Video surveillance,

    CCTV • 監視社会 : surveillance society, watchdog society • PCモニタのことを「監視装置」とは訳さない https://pixnio.com/ja/ https://flic.kr/p/3iapit
  9. 33 トラディショナルな監視の定義 Nagiosまではそんなに違和感なかった • チェック監視 = Nagios リソース監視 = Cacti

    • Zabbixは両方できる ◦ 当時はそれが画期的でもあった ◦ そのあたりから混乱が始まってる感 (個人の感想です) 可観測性までくると違いが際立ってくる https://commons.wikimedia.org/
  10. 35 一方で、 • ソフトウェアでは「ちゃんと作る」と時間がかかる • 不具合のないソフトウェアを作ることはもはやムリ • 仮に「ちゃんと出来」たとしても、 あっという間に古くなる •

    検知にだけ注目すると、単純な閾値チェックで 事足りる -> コンテキストが失われる 複雑化したモダンアプリにおいて、 「S」な監視を行っていては追いつかない https://torange.biz/jp/fx/background-modular-modern-blue-abstract-arrows-creative-215352
  11. 36 monitorの意味 “to watch and check something over a period

    of time in order to see how it develops, so that you can make any necessary changes.” - Oxford Learner's Dictionary 「必要な変更を加えることが出来るように、ある期間に わたって、それがどのようにして発展したかを把握する 目的で、見て、そしてチェックすること」 https://www.oxfordlearnersdictionaries.com/definition/english/monitor_1?q=monitor
  12. 37 つまり:M(Monitoring)な監視では 計測結果が対処とワンセットに ◦ 「まず世に出してから修正する」には こっちがハマる “Done is better than

    perfect” ◦ Mark Elliot Zuckerberg, CEO of Facebook, Inc. ◦ 「完全なものなどないという前提のもと、完全に近づく ために細かな継続的改善・反復が重要だ」ということ ◦ 現状の把握(Monitoring)なしでは為しえない https://medium.com/@amachino/done-is-better-than-perfect-%E3%81%AE%E6%84%8F%E5%91%B3-dc2c74069ece https://commons.wikimedia.org/wiki/File:Mark_Zuckerberg_F8_2018_Keynote.jpg
  13. 38 古典「推測するな、計測せよ」 Notes on Programming in C “ルール1: (略)どこがボトルネックなのかをはっきり させるまでは、推測を行ったり、スピードハックをして

    はならない” “ルール2: 計測すべし。計測するまでは速度のための調 整をしてはならない。(後略)” - Robert "Rob" C. Pike https://ja.wikipedia.org/wiki/UNIX%E5%93%B2%E5%AD%A6 http://www.lysator.liu.se/c/pikestyle.html
  14. 45 Failure mode, SLI, SLO ENT308-S - Build your next

    microservices application with modern AWS services https://youtu.be/msxD0bTFu2A?t=2505 https://dev.classmethod.jp/articles/201912-report-reinvent-2019-ent308/
  15. 46 Failure mode, SLI, SLO (cont.) failure mode SLI SLO

    SLA 何をもって 故障とするか それの重要度 (RRN)はどの くらいか 何を使ったら それが測れる か それが具体的 にどんなとき に「正常」と するのか それをどう 顧客と約束す るか・しない か(見せるか 見せないか) 例) サイトの 表示が遅い 表示速度の p95 99%が 7秒以下 99.99% https://youtu.be/msxD0bTFu2A?t=2505 https://dev.classmethod.jp/articles/201912-report-reinvent-2019-ent308/
  16. 51 The Three Pillars of Observability Metrics(数値、低コンテキスト) Event Logs(含メタデータ、高コンテキスト) Tracing(事象の関連性・分散トレーシング)

    - Distributed Systems Observability https://www.oreilly.com/library/view/distributed-systems-observability/9781492033431/ch04.html
  17. 52 The Four Golden Signals Latency (パフォーマンス・遅延) Traffic (トラフィック量) Errors

    (エラー発生率) Saturation (利用率、キャパシティ) - SREサイトリライアビリティエンジニアリング https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/
  18. 53 Three dimensions Functionally (その機能が正しく動いているか) Availability (その機能が使えるか) Speed (遅くないか) -

    Best Practices for Monitoring E-Commerce Performance https://newrelic.com/resources/tutorials/best-practices-for-monitoring-ecommerce-performance
  19. 54 雑な関連 Metric 数値 Event Log 高コンテキスト Trace 関連性 Latency

    遅延 Traffic 流量 Errors エラー Saturation キャパシティ Functionally 機能の正常性 Availability 可用性 Speed 速度・性能 何を取得するか シグナル 観点 ※線がないから取れない・関係がない、というわけではありません 遅すぎる⇔使えない 情報量の違い
  20. 57 MTTRも気にしよう Mean Time To Repair = 復旧までの最小平均時間 Mean Time

    To Resolution = 解決までの最小平均時間 SLO 99.9% = 毎月30〜40分止まっても許される? ◦ 「1回の停止は5分以内」のような定義も必要 ◦ SLOを日単位、時間単位でも設定する ▪ 99.9%/day = 8.64sec.
  21. 59 可観測性 = 広義の「可視化」その性能 見えなかったものを見えるようにする - つながり・連続性の可視化 = (分散)トレース -

    数値表現から図示・グラフ化 = ダッシュボード 可観測性(Observability) = そのシステムがそなえている性質・性能 - Availability, Capability, Scalability ...
  22. 65 そもそも「ログ」とは トラディショナルなイメージ • 取りあえず出力されるもの • /var/log/ほげほげ • ほっとくとディスクを食い潰す •

    たまにエラーが吐かれてて気をつけなきゃならない • デバッグログが大量に出ているが放置 https://help.sumologic.com/01Start-Here/Quick-Start-Tutorials/Set-Up-Sumo-Logic-Tutorial
  23. 67 Event Log(Events)? • メタデータが正規化されたログ、 あるいはコンテキスト豊富なメトリック • 一方で、メトリックにメタデータを付与するような 動きもあり ◦

    Prometheus, OpenMetrics(後述) • 境界がグレーになってきている ◦ メトリックとイベントの境、イベントとログの境 ◦ 厳密なものではなく、感覚で捉えていいと思う
  24. 71 長期保存と中・短期保存 長期 = アーカイブ、記録や監査のため ◦ 日単位、数年単位 ◦ 何かあったときに掘り起こせれば良い 中期

    = 傾向の把握(短期との比較) ◦ 時間単位、数日〜1週間〜数ヶ月、13ヶ月 ◦ シーズナルな影響をどうみる? 短期 = 「いま」何が起きているか ◦ 分単位、〜数日 ◦ 時代は準リアルタイム(秒単位)へ
  25. 74 前提:監視とは “監視とは継続的なテストである” - 監視とは継続的なテストである、という話 (もしくは cronlog とテストスクリプトを組み合わせた監視手法につい て) -

    https://planet.mysql.com/entry/?id=23085 “監視とは、あるシステムやそのシステムのコンポーネ ントの振る舞いや出力を観察しチェックし続ける行為で ある。” - 入門「監視」
  26. 77 いつから取り始めればよい?(cont.) 予め「取れるだけとっておく」ことが大切 ◦ あとから「あれを見ておけばよかった」となった時のこ とを考えておく ◦ 観測コストも保存コストも、年々安くなっている ◦ ※法的な保存期間についての議論はまた別の話

    それが判断できるのはいつか?本番稼働後でいい? ◦ 開発段階でも有効な情報が得られるのでは? ◦ そもそも、運用と開発を明確なフェーズに分けられる時 代じゃないですよね? →可観測性を高めるため、計測できる状態に作り上げる
  27. 85