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

Prometheusの話

 Prometheusの話

Prometheusの話です。参考資料に各社の採用事例を挙げさせていただきました。
Prometheus Meetup Tokyo行ってみたいです。
途中で”ポート番号の変更に対応する”みたいなことを書きましたが、IPアドレスの変更に対応するのがメインな気もします。

3f001aaf60bab10db9740d0d95dd85d2?s=128

Yuta Imanishi

September 26, 2019
Tweet

Transcript

  1. Prometheus & Grafana で始めるサーバー監視 CTO室CTOアシスタント 今⻄勇太

  2. アジェンダ •Who am I •Prometheusとは?? - PrometheusとDatadogの違い - Prometheusの良いとこ悪いとこ -

    具体例いくつか •最近気になってるクラウドネタについて
  3. Who am I 名前:今⻄勇太 (東京理科⼤B3) 所属:CTO室CTOアシスタント 技術スタックはWeb寄り 趣味:⾃作キーボード、アニメ (詳細は https://nisshii.dev

    まで) この前コンフル書きました(BitValleyの話) https://confl.arms.dmm.com/pages/vie wpage.action?pageId=404340448
  4. まえおき • インフラ初⼼者⼤学⽣が、 とある渋⾕のWeb系企業(ひっぱりハンティング)で 夏インターンし、k8sを実運⽤(仮)してる部署に配属された 経験に基づきます • このLTのゴールは 「とりあえずPrometheus(とGrafana)を使って ⼀通り、サーバーのメトリクス監視をする流れがわかる」

    です! (Grafanaについては紹介くらいであまり触れません...)
  5. Prometheusって何??

  6. None
  7. Prometheusとは?? • SoundCloud社 が中⼼になって開発しているPull型のリソース 監視ソフトウェア • 監視サーバーでPrometheusが動いて、監視対象サーバー内の exporterをポーリングしてメトリクスを収集するという仕組み • Prometheusで集計したデータをGrafanaで可視化する流れ

    • Helmを使って⽴てる
  8. Pull型とPush型の違い Pull型(Prometheusとか) • 監視サーバ上に監視対象につ いての設定を⾏い、監視対象 からデータを集める形 • 監視サーバー側が監視対象⼀ 覧を知っているため、データ 取得の成功/失敗で異常検知

    が可能 • 監視対象の数が変わった場合 に、監視対象リストのアップ デートが必要(対策を後述) Push型(Datadogとか) • 監視対象ホストにエージェン トをインストール、エージェ ントが監視サーバに対して データを送信するという形 • 監視対象を増やしやすい • 監視対象が増えた場合、監視 サーバー側の負荷集中対策が 必要 • 外部接続していないサーバー では使えない
  9. Prometheusの良いとこ悪いとこ 良いとこ • SaaSじゃないので多少は⾃ 由が効き、料⾦も安く済む • K8sとの親和性が⾼い • ServiceDiscoveryの設定が 書きやすい(後述)

    • PromQLが良い(らしい) 悪いとこ • 各Exporterを⽤意する⼿間 (各Exporterの信ぴょう性) • メトリクスの信頼性 (メトリクス単位の整合性より も転送量を重視しているた め、多少の誤差や⽋損がある かも)
  10. 例:EC2インスタンスの監視 scrape_configs: - job_name: 'TEST_PROJECTʼ ec2_sd_configs: - region: ap-northeast-1 access_key:

    XXXXXXXXXXXXXXXXXXX secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX port: 9100 # 監視対象ポート ただ、これだとポート番号を変更するとymlを更新する必要があ り、⾯倒なので tag で設定してあげる⽅が良い
  11. scrape_configs: - job_name: 'TEST_PROJECTʼ ec2_sd_configs: - region: ap-northeast-1 access_key: XXXXXXXXXXXXXXXXXXX

    secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX port: 9100 # 監視対象ポート relabel_configs: - source_labels: [__meta_ec2_tag_Name] target_label: instance ec2のtagのkey-value set で指定
  12. 例:Hot Reloadの仕組みの実装 https://github.com/kubernetes/kubernetes/blob/master/clust er/addons/prometheus/prometheus-statefulset.yaml ↓公式によるベストプラクティス↓ 監視ツールだから、Configmapの更新時もサーバーを⽌めたくない!

  13. Prometheusって何??

  14. Prometheus完全に理解した()

  15. 最近気になってるクラウドネタについて • 今回はPrometheusについて話しましたが、k8s周りで Teleport(https://gravitational.com/teleport/) も気になってます • ↑知⾒ある⽅いらっしゃったら教えてください↑ • あとはGrafanaで可視化する際のPromQLの組み⽅など、深く 触れられてない部分も多いのでもっと知⾒を貯めたい

  16. 参考資料 • https://prometheus.io/docs/prometheus/latest/configuratio n/configuration/ • https://github.com/kubernetes/kubernetes/blob/master/clu ster/addons/prometheus/ • https://github.com/bakins/minikube-prometheus-demo (archivedだけど、必要なことは⼤体載っている)

    • https://developers.cyberagent.co.jp/blog/archives/3814/ (AbemaTVでの実運⽤例、現在もPrometheusを使っている) 他にもクックパッド, Yahoo, PFNでも実運⽤してるようです
  17. 参考資料続き(実運⽤例) • https://speakerdeck.com/rrreeeyyy/cookpad-and- prometheus • https://www.slideshare.net/techblogyahoo/prometheus- 148831678 • https://www.slideshare.net/pfi/prometheus-at-preferred- networks

    上記3つはいずれもPrometheus Tokyo Meetupの資料です。 ⾏ったことがない(前回は6⽉)ので、次回は⾏ってみたいです!!
  18. 以上です! ご静聴ありがとうございました