見出し画像

2019-03-19 Rancher Meetup Tokyo #18(モニタリングについて語ろう会)

2019/03/19 に開催された Rancher Meetup Tokyo #18 (モニタリングについて語ろう会) のイベントレポートです。

●イベント概要
 Kubernetesについて盛り上がりはどんどん増しつつあります。
米国ではKubernetesのスキルを持っていることが2019年時点では、
もっとも転職に有利に働くといった調査結果もあり
(Kuberenetesのスキルは、いま飛び抜けて米国の転職で有利。米Dice&米Indeed)、 Kuberenetesの人気はますます高まりつつあります。

 しかし、本番運用まで含めるとKubernetesのスキルだけではくその周辺スキルも必要になってきます。今回はその中から特に重要となる"監視・モニタリング"に焦点を絞って解説したいと思います。

■Monitoring of Rancher

@cyberblack28 さん

●Basic Monitoring
・Cluster
  installしてすぐに見れます
・Nodes
  ノードごともドリルダウン

●Alerts & Notifiers
・通知先
  Slack, mail, PagerDuty, Webhook, WeChat
・Alert
  2.2.0-rc6だと
  etcd, kube components, event, node, workload
  PrometheusをONにするとmemoryも見れる
・Alert Setting
  k8sの各要素からグループをつくって出せる
  prometheusと連携して、アラートを出せるようになった

●Basic Logging
  ダッシュボードから設定できる
  Elasticsearch, splunk, kafka, syslog, fluentd

●Monitoring & Logging Catalogs
・catalogでサクサク立てられる
  ELK, Fluentd, prometheus, datadog, grafana
・これまではカタログからポチポチつくっていた
  -> より簡単に!

●MultiTenant Prometheus Support
・rancher server立てる
・catalog有効化
・k8s cluster立てる
  GKE, EKS, AKS や EC2などにもGUIで
・tools -> Monitoring -> 有効化
  cluster画面統合 & grafanaリンクも

●Multi-Cluster Apps
・推し推し!
・Rancher on Azure
  -> AKS
  -> GKE
  -> EKS
・カタログデプロイのtargetで指定するだけ
・マルチクラウドへのデプロイをRancherで。
 これをCI/CDと絡めたり。色々できるようになりました!

●Information
・k3s
  IoTやエッジコンピューティングでk8sを
・submariner
  マルチクラウドでpodを貫く!


■Sysdig クラウドネイティブ インテリジェンス プラットフォームのご紹介

@takao3 さん

photo by @YTetsurou さん

●SYSDIG
・ロリス ディオニアニ
  wiresharkの共同創作者
・Sysdig Open Core
・Falco

●元のアイデア
・コンテナ、マイクロサービス、何だろうとOSにシステムコールして動く
 これが全部見えればよいのでは?

●事例
・売上の80%はオンプレ
  会社の規模が大きくなるほどオンプレを選ぶ傾向がある
・投資銀行
  はじめに作ったモニタリングは、1分間に1回取りに行く仕組み
  が、その間にコンテナは上げ下げしてしまう
  -> Sysdigを選んだ
・experian
  OpenShirtのRuntime保護&監視
・COMCAST
  60データセンターにデプロイ
・shopify
  PCIDSSでも

●sysdig monitor
・Sysdigエージェントもdocker
・servicevision
  k8sだと、コンテナはどこで動いているのかわからない
  -> 物理の構成ではなく、サービスで並べればよいのでは?
  k8sのmeta情報からjavaのプロセスまで紐づけできてしまう
・alertも自由
  例えば pod crash loop で alert
  -> sysdig inspect ※商用版はwebで見れる
  システムコールからデバッグできる

●sysdig secure
・デプロイしているコンテナにshellでアクセスしている
 -> sysdig inspect
   executed command x8回
   最後に痕跡を消して抜けている -> 怪しい
   途中でtar展開していた
   -> tar展開もシステムコールだから
     ファイルの中までIO Streamベースで見れる
・ポリシー
  podを止めたり
  ホワイトリスト、ブラックリスト
  falcoルールも指定できたり
・セキュリティスキャンも
・image scanner

●sysdig
  secure
  monitor
  inspect

●まとめました
GKEクラスターの作成とsysdig monittorの初期設定トライアル


■監視 入門 ~ マイクロサービス時代の監視設計

@songmu さん

●Mackerel
・はてなの監視SaaS
・ユーザー登録から3分でサーバ監視
・専属UI/UXデザイナ

●監視とは
・監視とテスト
  監視とは継続的なテストである
・テストは当たり前になったけど、監視は?
  難しそう
  インフラの人がやってくれるもの
・モニタリングの重要性
  ログやメトリクスは標準化しよう
・監視はシステムの高速健康診断
  わかる数値とわからない数値がある
  わかるものを追う
  -> 難しくない範囲で監視する
  -> まずは体重計を買おう
・監視は結構コード化されている
  実はただのコマンド
・チェック監視
  OK/NG
・メトリック監視
  時系列データ
  キー、値、timestamp
  スペース区切り
・healthエンドポイントパターン
  入門 監視で命名された
  モニタリングエンドポイントを生やす考え方
  -> 標準化議論中
・OpenMetrics
  Prometheus Exporterで使われている

●エンジニアと監視
・テストは不安をなくすもの
  ユーザー登録が止まっている
  キューにジョブがたまりすぎている
  など
・監視しながら開発する
  雑でも監視スクリプトを動かす
  healthcheckエンドポイント

●マイクロサービス時代の監視設計
・サービス同士がAPIで通信
  共有DBを避けて、汎用MWをラップしたサービスを立てる
  -> 監視を自分で考える

●パターン
・Four Golden Signals
  Latency / Traffic / Errors / Saturation
  わかりにくい
・USE method
  Utilization / Saturation / Error
  ブラックボックス的
・RED method
  Rate / Errors / Duration
    ※Rate: 単位時間あたりのリクエスト割合
  ホワイトボックス的
・USE と RED は補完し合う
  -> Four Golden Signalsが見えてくる
  Latency : REDのDuration
  Traffic : REDのRate
  Errors : USE/RED両方
  Saturation : USEのUtilization/Saturation
・例)認証コンポーネント
  死活監視
  リクエスト数
  エラーレート
  など

●監視パラダイムの変遷
・チェック監視
  こんな時代もあった
・メトリック監視
  見えるものが増えた
・Observability
  可観測性を整備
  ログ、イベント、トレーシング、トポロジー
  ピースが整いつつある
    Envoy, Istio etc

●Mackerelコンテナエージェント
・k8s, ECSサポート
・Pod/Taskを管理の最小単位に捉える
・サイドカーで動く


■Feedback from Cloud Native Deep Dive - みんなのモニタリングお悩み共有

@jacopen さん

Rancher2.xになってからしばらく離れていたけど
k3s と組わせるなら Rancher2.x の仕組みが活きてくる。

●Cloud Native Deep Dive
・全員参加のディスカッション
・先週のテーマが Monitoring だった

●Monitoring
・Blackbox, Whiteboxを分けて考えよう
・ツールはいろいろある
・監視対象もいろいろある
  インフラ、セキュリティ、ビジネス
・課題
  どんなメトリクスを監視する?
  通知切り分け
  ロングタームのメトリクス管理、ダウンサンプリング
・外れ値出た時どうする?
・Prometheusのメモリ使用量多い
  モニタリングのモニタリング
  PromQL -> Prometheusおじさんw
・Dashboardの作り方
  JSONのレビューできません
  できる限りコード管理したい
  Prometheus Operator
・Monitoring 101 読もう

●Logging
・Logging = 課金
  SaaS高い
  SlefHostedでも結局高い
・Aggregatorがサチる
  流量を制御するのが難しい
・ログの形式がバラバラ
・ログとメトリクスの横断検索が難しい

●Alerting
・遠発的なアラート対応で開発できなくなる
・オンコール専任部隊を作る?
  -> コミュニケーションロス
・オオカミ少年問題
・ベストプラクティスはない。それぞれで最適化しよう!


■感想

RancherでのPrometheus、Grafanaサポート、手軽で驚きました!
マルチクラスタへのデプロイが数クリックで組めるなら、マルチクラウドでkubernetesクラスタを組むことも身近になりそうでワクワクしますね!!

Sysdig を、はじめて知りましたが元のアイデアがすごい発想ですね!
「コンテナ、マイクロサービス、何だろうと
 OSにシステムコールして動く。これが全部見えればよいのでは?」
Cybereasonを知ったときと同じくらいの衝撃が走りました。早く触る時間を作らなくては!

登壇者の皆さん、運営の皆さんありがとうございました。


この記事が参加している募集

いつも応援していただいている皆さん支えられています。