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

_Prometheus_Grafana_でのk8s監視.pdf

yosshi_
July 27, 2018

 _Prometheus_Grafana_でのk8s監視.pdf

yosshi_

July 27, 2018
Tweet

More Decks by yosshi_

Other Decks in Programming

Transcript

  1. ここでいう監視とは 監視項⽬ 監視⽅法 アプリケーションの監視 リクエスト数、レスポンスタイム etc 対象のソフト毎の固有の情報 サービス監視 httpのリクエストの結果 ログ監視

    該当ファイルへの”error”等の⽂字列の有無 プロセス監視 プロセスの有無、プロセスの数 リソース監視 CPU/メモリ使⽤率、ディスクI/O、 ディスク容量、ネットワークトラフィック 死活監視 Pingの応答結果 ハードウェア監視 電源、ファン、温度 etc nコンテナの場合:ログの収集の検討も必要
  2. k8s監視の課題 Pod Pod Pod Service Podへのアクセス nPod⽣成時にIPが振られる n該当Podへのアクセスが保証されない k8s Cluster

    困ったこと n今までの監視の仕組みが使えない nk8sに対応した監視ソフトが欲しい
  3. Prometheusの構築の要件と実装⽅法 k8s Cluster node node master 監視サーバ federation API Server

    node n監視サーバはk8s Clusterの外に配置したい nk8sへの外部からのアクセス制御を回避したい
  4. <参考>実際に取れるメトリクス APIServiceOpenAPIAggregationControllerQueue1_adds counter APIServiceOpenAPIAggregationControllerQueue1_depth gauge APIServiceOpenAPIAggregationControllerQueue1_queue_latency summary APIServiceOpenAPIAggregationControllerQueue1_retries counter APIServiceOpenAPIAggregationControllerQueue1_work_duration

    summary APIServiceRegistrationController_adds counter APIServiceRegistrationController_depth gauge APIServiceRegistrationController_queue_latency summary APIServiceRegistrationController_retries counter APIServiceRegistrationController_work_duration summary AvailableConditionController_adds counter AvailableConditionController_depth gauge AvailableConditionController_queue_latency summary AvailableConditionController_retries counter AvailableConditionController_work_duration summary DiscoveryController_adds counter : : nkubernetes-apiserversだけで99項⽬・・・・多い・・
  5. 結局こうなる 監視項⽬ 監視⽅法 備考 アプリケーションの監視 kubernetes-pods(k8s) - Apache exporter -

    Logstash_exporter etc Sidecarで監視 サービス監視 Readiness(ReplicaSet) Blackbox-exporter ログ監視 未検討(課題) ログ収集基盤とセットで 考えたい プロセス監視 Liveness(ReplicaSet) kubernetes-pods(k8s) kubernetes-nodes(k8s) kubernetes-service-endpoints(k8s) 期待するpod数の有無で判定 リソース監視 kubernetes-apiservers(k8s) kubernetes-nodes(k8s) kubernetes-cadvisor(k8s) kubernetes-service-endpoints(k8s) kubernetes-pods(k8s) - Node-exporter(DaemonSet) 死活監視 kubernetes-pods(k8s) - Node-exporter(DaemonSet) 期待するnode数の有無で判定
  6. 全体のアーキテクチャ k8s Cluster node node master federation API Server node

    Blackbox-exporter HTTP Node-exporter Node-exporter Node-exporter Node-exporter cAdvisor cAdvisor cAdvisor cAdvisor Sidecarの exporter 監視サーバ 通知 Mattermost Prometheus Grafana
  7. やりたいこと 1. Mattermostで気づく 2. GitLabでissueきる 3. kubectlで以下のコマンドを実⾏して確認 1. kubectl get

    pod 2. kubectl describe pod xxxxxx 3. kubectl logs xxxxxx 4. 解析状況を適宜追記 n“kubectl”使える⼈を絞るなら別の⽅法でログ観れるようにしないと・・ 結局、ログ収集基盤が・・・