drecomにおけるwinning the metrics battle

6,006 views

Published on

Published in: Internet

drecomにおけるwinning the metrics battle

  1. 1. Copyright Drecom Co., Ltd. All Rights Reserved. 1 Drecomにおける Winning the metrics battle
  2. 2. Copyright Drecom Co., Ltd. All Rights Reserved. 2 • mickey • 所属会社 - 株式会社ドリコム • 職種 - インフラエンジニア • 最近やっていること - Graphiteと戯れたり、インフラ運用面の改善等 自己紹介
  3. 3. Copyright Drecom Co., Ltd. All Rights Reserved. 3 インフラの運用において、サーバー の状態(CPU Usage等)の収集と閲 覧が簡便にできるシステムを持つこ とは必須 今日、話すこと
  4. 4. Copyright Drecom Co., Ltd. All Rights Reserved. 4 しかし、サーバーが1300台を超え ると、工夫しないとうまくいかない 今日、話すこと
  5. 5. Copyright Drecom Co., Ltd. All Rights Reserved. 5 何が必要なのか
  6. 6. Copyright Drecom Co., Ltd. All Rights Reserved. 6 の前に
  7. 7. Copyright Drecom Co., Ltd. All Rights Reserved. 7 僕たちは如何に失敗したか
  8. 8. Copyright Drecom Co., Ltd. All Rights Reserved. 8 • サーバーを構築しても、Cactiに自動 でグラフが作られない… • Proxyや情報を暗号化する機能がなく その為、Cactiが乱立 • スケールアウトが出来ない 以前は…
  9. 9. Copyright Drecom Co., Ltd. All Rights Reserved. 9 つらぽよ
  10. 10. Copyright Drecom Co., Ltd. All Rights Reserved. 10 このままだと、 破綻する
  11. 11. Copyright Drecom Co., Ltd. All Rights Reserved. 11 では、 何が必要なのか
  12. 12. Copyright Drecom Co., Ltd. All Rights Reserved. 12 • サーバーが自動で追加されること • グラフが自動的にレンダリングされること • 情報を中央に集めるために必要な機能 • スケールアウトができること 必要なこと
  13. 13. Copyright Drecom Co., Ltd. All Rights Reserved. 13 ! Middlewareの 検討
  14. 14. Copyright Drecom Co., Ltd. All Rights Reserved. 14 Munin 「グラフの見た目が好みじゃないんだよねー 」
  15. 15. Copyright Drecom Co., Ltd. All Rights Reserved. 15 Ganglia 「サーバーとグラフの管理の仕方が、 うちの構成とは合ってないよ…」 「見た目が…」
  16. 16. Copyright Drecom Co., Ltd. All Rights Reserved. 16 • 普段使いのシステムなので習熟の難度が低い 隠れた要件
  17. 17. Copyright Drecom Co., Ltd. All Rights Reserved. 17 結果
  18. 18. Copyright Drecom Co., Ltd. All Rights Reserved. 18 理想的なものは なかった…
  19. 19. Copyright Drecom Co., Ltd. All Rights Reserved. 19 ということで 開発することに
  20. 20. Copyright Drecom Co., Ltd. All Rights Reserved. 20 自作したシステム について
  21. 21. Copyright Drecom Co., Ltd. All Rights Reserved. 21 Mine って言います
  22. 22. Copyright Drecom Co., Ltd. All Rights Reserved. 22 サーバーに潜む 地雷を探すシステム という由来
  23. 23. Copyright Drecom Co., Ltd. All Rights Reserved. 23 Mineの見た目
  24. 24. Copyright Drecom Co., Ltd. All Rights Reserved. 24
  25. 25. Copyright Drecom Co., Ltd. All Rights Reserved. 開発環境 • 言語 - Ruby 2.0 • フレームワーク - Padrino 0.11.1 - Backbone.js 1.1.0
  26. 26. Copyright Drecom Co., Ltd. All Rights Reserved. 26 採用したMiddleware
  27. 27. Copyright Drecom Co., Ltd. All Rights Reserved. 27 Graphite • URL API • プッシュ型である
  28. 28. Copyright Drecom Co., Ltd. All Rights Reserved. 28 URL API
  29. 29. Copyright Drecom Co., Ltd. All Rights Reserved. 29 GraphiteのURL API target=hoge-web-*.nginx.response_time webサーバー全部のレスポンスタイムを取得する
  30. 30. Copyright Drecom Co., Ltd. All Rights Reserved. 30 GraphiteのURL API
  31. 31. Copyright Drecom Co., Ltd. All Rights Reserved. 31 GraphiteのREST API target= averageSeries(hoge-web-*.nginx.response_time) 平均値を取るという関数を適応すると
  32. 32. Copyright Drecom Co., Ltd. All Rights Reserved. 32 GraphiteのURL API
  33. 33. Copyright Drecom Co., Ltd. All Rights Reserved. 33 Graphiteで利用できる関数 • 平均 • 移動平均 • 最大値、または、最小値 • 対数 • 偏差
  34. 34. Copyright Drecom Co., Ltd. All Rights Reserved. 34 Graphiteが返せるデータ • SVG • PNG • Json • CSV • などなど
  35. 35. Copyright Drecom Co., Ltd. All Rights Reserved. 35 Graphiteが プッシュ型である ということについて
  36. 36. Copyright Drecom Co., Ltd. All Rights Reserved. 36 プル型 • Cactiのように、収集サーバーが監視対象 のサーバーへ情報を取りに行くこと ! • 手動でグラフを登録するのは数百台で限界 • 並列数的にも数百台で限界が来る
  37. 37. Copyright Drecom Co., Ltd. All Rights Reserved. 37 プッシュ型 • 監視対象のサーバが情報を収集サーバーへ送 りつける - 多少失われても困らないのでUDPでただ投げつけている • 送りつけられたら、自動でグラフが出来る • サービス用サーバーをChefで構築するだけで グラフが出来る
  38. 38. Copyright Drecom Co., Ltd. All Rights Reserved. 38 採用したMiddleware • Collectd - Graphiteへ情報をプッシュするMiddleware -- Graphiteの独自形式の情報として送信 --- Gangliaなどにも対応 - 動作が軽く、機能的に十分だったので採用 • こういったMiddlewareはGraphiteには付属しない
  39. 39. Copyright Drecom Co., Ltd. All Rights Reserved. 39 Cactiとの違い • Cactiは - APIが無い - グループで値をサマライズ出来ない - RRDなので、画像でしかとれない - プル型である
  40. 40. Copyright Drecom Co., Ltd. All Rights Reserved. 40 今後‥
  41. 41. Copyright Drecom Co., Ltd. All Rights Reserved. Graphiteの機能を活用し
  42. 42. Copyright Drecom Co., Ltd. All Rights Reserved. 複数のサーバーのMetricsをサマライズし たり
  43. 43. Copyright Drecom Co., Ltd. All Rights Reserved. • 100台のWebサーバーにおけるレスポンスタイ ムの平均 • 見なければならないグラフを最小に
  44. 44. Copyright Drecom Co., Ltd. All Rights Reserved. 異常値がわかりやすいよう工夫したり
  45. 45. Copyright Drecom Co., Ltd. All Rights Reserved. • 最大値・平均値・最小値をプロットする - 頑張りすぎているサーバーやサボりを見つけやすく
  46. 46. Copyright Drecom Co., Ltd. All Rights Reserved. 46 アーキテクチャ
  47. 47. Copyright Drecom Co., Ltd. All Rights Reserved. 47 概要
  48. 48. Copyright Drecom Co., Ltd. All Rights Reserved. Data Center A collectd Data Center A collectd collectd carbon Mine Internet B
  49. 49. Copyright Drecom Co., Ltd. All Rights Reserved. Data Center A collectd Data Center A collectd collectd carbon Mine Internet B A MetricsをCollectdへ送り、 暗号化してInternetへ
  50. 50. Copyright Drecom Co., Ltd. All Rights Reserved. Data Center A collectd Data Center A collectd collectd carbon Mine Internet B A MetricsをCollectdへ送り、 暗号化してInternetへ
  51. 51. Copyright Drecom Co., Ltd. All Rights Reserved. Data Center A collectd Data Center A collectd collectd carbon Mine Internet B A MetricsをCollectdへ送り、 暗号化してInternetへ B 復号してDiskへ書き込み、 Mineで表示する
  52. 52. Copyright Drecom Co., Ltd. All Rights Reserved. 49 詳細
  53. 53. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D
  54. 54. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D A CPU Usage等のMetricsを 収集する
  55. 55. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D A 冗長化されている組 B CPU Usage等のMetricsを 収集する
  56. 56. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D A 冗長化されている組 B CPU Usage等のMetricsを 収集する ここで、暗号化を行う C
  57. 57. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D A 冗長化されている組 B CPU Usage等のMetricsを 収集する ここで、暗号化を行う C D 暗号化され、Internetへ
  58. 58. Copyright Drecom Co., Ltd. All Rights Reserved. 50 Metricsの収集・送信側 Internet Server Server collectd collectd collectd collectd collectd A B C D A 冗長化されている組 B CPU Usage等のMetricsを 収集する ここで、暗号化を行う C D 暗号化され、Internetへ
  59. 59. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E 51 A Server Server Server データセット A データセット B
  60. 60. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E 51 A A 冗長化されている組 Server Server Server データセット A データセット B
  61. 61. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E 51 A A 冗長化されている組 Server Server Server データセット A データセット B
  62. 62. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E B 受信したデータを、ハッシュで 分割し、データセットへ送る 51 A A 冗長化されている組 Server Server Server データセット A データセット B
  63. 63. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E B 受信したデータを、ハッシュで 分割し、データセットへ送る C 受信したデータをDiskに 書き込む 51 A A 冗長化されている組 Server Server Server データセット A データセット B
  64. 64. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E B 受信したデータを、ハッシュで 分割し、データセットへ送る C 受信したデータをDiskに 書き込む D DRBDで同期し、データ を保全 51 A A 冗長化されている組 Server Server Server データセット A データセット B DRBD
  65. 65. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E B 受信したデータを、ハッシュで 分割し、データセットへ送る C 受信したデータをDiskに 書き込む D DRBDで同期し、データ を保全 E グラフのレンダリングする ためのAPIを提供。 51 A A 冗長化されている組 Server Server Server データセット A データセット B DRBD
  66. 66. Copyright Drecom Co., Ltd. All Rights Reserved. Metricsの受信・保存 Internet collectd carbon-relay carbon-cache carbon-cachecarbon-cache carbon-relay collectd Disk Disk Disk graphite-web graphite-webgraphite-web B C D E B 受信したデータを、ハッシュで 分割し、データセットへ送る C 受信したデータをDiskに 書き込む D DRBDで同期し、データ を保全 E グラフのレンダリングする ためのAPIを提供。 51 A A 冗長化されている組 Server Server Server データセット A データセット B DRBD
  67. 67. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine 表示
  68. 68. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine 表示
  69. 69. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F
  70. 70. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F F
  71. 71. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine G 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F F
  72. 72. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine G 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F F 分散して保存しているので 複数のサーバーからMetricを 検索する G
  73. 73. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine G 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F F 分散して保存しているので 複数のサーバーからMetricを 検索する H G
  74. 74. Copyright Drecom Co., Ltd. All Rights Reserved. 52 graphite-web graphite-web Mine G 表示 UserがMineを閲覧した時、 graphite-webに対してグラフの レンダリングを要求 F F 分散して保存しているので 複数のサーバーからMetricを 検索する H G Metricが見つかたら、Graphを レンダリングして、URIを返す H
  75. 75. Copyright Drecom Co., Ltd. All Rights Reserved. 53 まとめ
  76. 76. Copyright Drecom Co., Ltd. All Rights Reserved. 54 Graphiteの負荷はどんな感じ? • 1300台程度のサーバーから、5分間隔で情報を取得 CPU Usage I/O Wait
  77. 77. Copyright Drecom Co., Ltd. All Rights Reserved. 55 • Metricsの収集はプッシュ型で行う必要がある • 手動では限界が来るので、構成管理ツールで、 設定は自動化しよう 最後に
  78. 78. Copyright Drecom Co., Ltd. All Rights Reserved. 56 • Graphiteにデータを貯めることで、データを再 利用することができる • Graphiteを選択した私に間違いはなかった 最後に
  79. 79. Copyright Drecom Co., Ltd. All Rights Reserved. 57 御清聴 ありがとうございました
  80. 80. Copyright Drecom Co., Ltd. All Rights Reserved. 58 3793 153-0064 8-1 17F TEL:03-6682-5700 FAX:03-6682-5711 239 2001 11 13 1,124 (2014 3 ) Copyright Drecom Co., Ltd. All Rights Reserved.

×