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を知ったときと同じくらいの衝撃が走りました。早く触る時間を作らなくては!
登壇者の皆さん、運営の皆さんありがとうございました。
この記事が参加している募集
いつも応援していただいている皆さん支えられています。