1.2K Views
January 17, 20
スライド概要
Prometheusは大規模なレガシー環境に最適で一台のサーバで実行ファイルを動かすだけで数万台監視できる。
レガシー環境で動かす上でのノウハウを紹介。
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
レガシー環境でもPrometheus はイケるんです 全然モダンじゃないPrometheusの 運用ノウハウください ヤフー株式会社 大町 一仁 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved.
Who • 所属 ヤフー新卒一年目 • 好物 システムの歴史(闇) • お仕事 Apache Solr(検索エンジン) の SaaSを提供 https://www.slideshare.net/techblogyahoo/serving-engine-as-a-service-at-yahoo-japan-solrjp Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 2
Prometheusはレガシー環境に最適 • レガシーシステムは担当者が少なくてやばい => 一台のサーバで実行ファイルを動かすだけ • システムが巨大で監視するサーバ台数が多くてやばい => prometheusは数万台監視できる(スケールする Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 3
監視システム構成
構成はシンプルに2台で冗長化 • 監視対象 約1万台 / 60秒 1回 / 10日保存 1万台 • 監視サーバスペック 48vCPU/ 128GB/ 892GB 2千台 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 5
prometheus̲tsdb̲head̲series Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 6 6
利用率 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 7 7
スケールアウト vs スケールアップ
スケールアウト戦略は複雑である • Prometheusはメモリがあれば監視対象が増えてもスケールする • OOMKillerに64GBメモリの亭主を殺されたら128GBと再婚すれば良い • 数年前のサーバ1台でも1万台超の監視は可能 • あと5倍は札束で楽勝(๑•̀д• ́๑) by 先輩 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 9
スケールアウトさせないことによる闇
データの欠損は仕方ないとわりきる • PromthuesのDBのリカバリーに は20分ぐらいかかる\(^o^)/ サーバ再起動 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 11
欠損の症状を緩和することは可能 • 再起動の回数を減らす • • DBのリカバリが終わるまでヘルスチェックを失敗させたい • • 設定のリロードはHUPシグナルを利用する kill -HUP 1234 Management APIを利用する curl -S http://localhost:9090/-/ready 二台のPrometheusはActive/Stanbyでロードバランシングする • ロードバランサの設定をRound-Robinではなく、Source-IPなどに設定 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 12 12
システム管理構成がレガシー環境で 独自進化したことによる闇
監視対象サーバの追加/削除を自動化する
•
独自のサーバ管理システムではCRONでサーバリストを流し込む
/etc/prometheus/prometheus.yml
- job̲name: 'node'
scrape̲interval: 60s
file̲sd̲configs:
- files:
- '/etc/prometheus/targets/node.json'
/etc/prometheus/targets/node.json
[
{
"labels": {
"cluster": "prod"
},
"targets": [
"example001.yahoo.co.jp:9100",
“example002.yahoo.co.jp:9100"
]
}]
PS. https://prometheus.io/blog/2018/07/05/implementing-custom-sd/ の方法でも良い
Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved.
14
14
レガシーでもPrometheusはイケます Copyright (C) 2020 Yahoo Japan15 Corporation. All Rights Reserved. 15
Appendix
セルフFAQ
Q. OSやハードウェアのチューニングが大変でしょ? • いいえ。「Linux kernel チューニング」で検索してヒットすることを抑え れば大丈夫です。 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 18 18
Q. 監視対象側へのExporterの導入が大変なのでは? • node̲exporter, jmx̲exporter, mtailなど必要な機能はOSSにあり事例も 豊富です • https://prometheus.io/docs/instrumenting/exporters/ もバイナリ を動かすだけなので特に大変ではないです Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 19 19
異常検知を人力で良い感じにしてしまえるという闇
流行りのAIでなくてもPromQLで頑張れる • CPUの利用率の高いサーバを並べてみる Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 21 21
流行りのAIでなくてもPromQLで頑張れる • 標準偏差で特定のグループに遅いサーバを見つける Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 22 22
流行りのAIでなくてもPromQLで頑張れる • 標準偏差で特定のグループに遅いサーバを見つける CPU不足 Copyright (C) 2020 Yahoo Japan Corporation. All Rights Reserved. 23 23