ู…ุฑุงู‚ุจุฉ ู…ุฌู…ูˆุนุฉ Kubernetes ุจุงุณุชุฎุฏุงู… ุจุฑูˆู…ูŠุซูŠูˆุณ

ู…ุฑุญุจุง ุฒู…ู„ุงุฆูŠ.

ู„ู‚ุฏ ุชุฑุฌู…ู†ุง ู„ู„ุชูˆ ูƒุชุงุจู‹ุง ู…ุซูŠุฑู‹ุง ู„ู„ุงู‡ุชู…ุงู… ู…ู† ุชุฃู„ูŠู Brendan Burns ุŒ ูŠุชุญุฏุซ ุนู† ุฃู†ู…ุงุท ุงู„ุชุตู…ูŠู… ู„ู„ุฃู†ุธู…ุฉ ุงู„ู…ูˆุฒุนุฉ

ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ูุฅู† ุชุฑุฌู…ุฉ ูƒุชุงุจ " Mastering Kubernetes " (ุงู„ุฅุตุฏุงุฑ ุงู„ุซุงู†ูŠ) ุนู„ู‰ ู‚ุฏู… ูˆุณุงู‚ ุจุงู„ูุนู„ ูˆูƒุชุงุจ ุงู„ู…ุคู„ู ุนู† Docker ุนู„ู‰ ูˆุดูƒ ุงู„ู†ุดุฑ ููŠ ุณุจุชู…ุจุฑ ุŒ ูˆุณูŠูƒูˆู† ู‡ู†ุงูƒ ู…ู†ุดูˆุฑ ู…ู†ูุตู„ ุญูˆู„ู‡.

ู†ุนุชู‚ุฏ ุฃู† ุงู„ู…ุญุทุฉ ุงู„ุชุงู„ูŠุฉ ุนู„ู‰ ู‡ุฐุง ุงู„ู…ุณุงุฑ ู‡ูŠ ูƒุชุงุจ ุนู† Prometheus ุŒ ู„ุฐู„ูƒ ู†ู„ูุช ุงู†ุชุจุงู‡ูƒู… ุงู„ูŠูˆู… ุฅู„ู‰ ุชุฑุฌู…ุฉ ู„ู…ู‚ุงู„ ู‚ุตูŠุฑ ุจู‚ู„ู… Bjรถrn Wenzel ุญูˆู„ ุงู„ุชูุงุนู„ ุงู„ูˆุซูŠู‚ ุจูŠู† Prometheus ูˆ Kubernetes. ูŠุฑุฌู‰ ุชุฐูƒุฑ ุงู„ู…ุดุงุฑูƒุฉ ููŠ ุงู„ุงุณุชุทู„ุงุน.

ุฅู† ู…ุฑุงู‚ุจุฉ ู…ุฌู…ูˆุนุฉ Kubernetes ู‡ูˆ ุนู…ู„ ู…ู‡ู… ู„ู„ุบุงูŠุฉ. ุชุญุชูˆูŠ ุงู„ู…ุฌู…ูˆุนุฉ ุนู„ู‰ ุงู„ูƒุซูŠุฑ ู…ู† ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ุชุณู…ุญ ู„ูƒ ุจุงู„ุฅุฌุงุจุฉ ุนู„ู‰ ุฃุณุฆู„ุฉ ู…ู† ุงู„ูุฆุฉ: ูƒู… ุงู„ุฐุงูƒุฑุฉ ูˆู…ุณุงุญุฉ ุงู„ู‚ุฑุต ุงู„ู…ุชูˆูุฑุฉ ุงู„ุขู† ุŒ ูˆูƒูŠู ูŠุชู… ุงุณุชุฎุฏุงู… ูˆุญุฏุฉ ุงู„ู…ุนุงู„ุฌุฉ ุงู„ู…ุฑูƒุฒูŠุฉ ุจู†ุดุงุทุŸ ุฃูŠ ุญุงูˆูŠุฉ ุชุณุชู‡ู„ูƒ ูƒู…ูŠุฉ ุงู„ู…ูˆุงุฑุฏุŸ ูŠุชุถู…ู† ู‡ุฐุง ุฃูŠุถู‹ุง ุฃุณุฆู„ุฉ ุญูˆู„ ุญุงู„ุฉ ุงู„ุชุทุจูŠู‚ุงุช ู‚ูŠุฏ ุงู„ุชุดุบูŠู„ ููŠ ุงู„ูƒุชู„ุฉ.

ูˆุงุญุฏุฉ ู…ู† ุงู„ุฃุฏูˆุงุช ุงู„ู…ุญุชูุธ ุจู‡ุง ู„ู…ุซู„ ู‡ุฐุง ุงู„ุนู…ู„ ุชุณู…ู‰ ุจุฑูˆู…ูŠุซูŠูˆุณ. ูˆู‡ูˆ ู…ุฏุนูˆู… ู…ู† ู…ุคุณุณุฉ ุงู„ุญูˆุณุจุฉ ุงู„ุณุญุงุจูŠุฉ ุงู„ุฃุตู„ูŠุฉ ุŒ ุงู„ุชูŠ ุชู… ุชุทูˆูŠุฑู‡ุง ููŠ ุงู„ุฃุตู„ ู…ู† ู‚ุจู„ ุจุฑูˆู…ูŠุซูŠูˆุณ ุจูˆุงุณุทุฉ SoundCloud. ู…ู† ุงู„ู†ุงุญูŠุฉ ุงู„ู†ุธุฑูŠุฉ ุŒ ุจุฑูˆู…ูŠุซูŠูˆุณ ุจุณูŠุท ู„ู„ุบุงูŠุฉ:

ุงู„ุนู…ุงุฑุฉ


ูŠู…ูƒู† ู„ุฎุงุฏู… Prometheus ุงู„ุนู…ู„ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ููŠ ู…ุฌู…ูˆุนุฉ Kubernetes ูˆุชู„ู‚ูŠ ุงู„ุชูƒูˆูŠู† ู…ู† ุฎู„ุงู„ ู…ู„ู ุฎุงุต. ูŠุญุชูˆูŠ ู‡ุฐุง ุงู„ุชูƒูˆูŠู† ุŒ ุนู„ู‰ ูˆุฌู‡ ุงู„ุฎุตูˆุต ุŒ ุนู„ู‰ ู…ุนู„ูˆู…ุงุช ุญูˆู„ ู…ูƒุงู† ุงู„ู…ุญุทุฉ ุงู„ุทุฑููŠุฉ ุงู„ุชูŠ ูŠุชู… ู…ู† ุฎู„ุงู„ู‡ุง ุฌู…ุน ุงู„ุจูŠุงู†ุงุช ุจุนุฏ ุงู„ูุงุตู„ ุงู„ุฒู…ู†ูŠ ุงู„ู…ุญุฏุฏ. ูŠุทู„ุจ ุฎุงุฏู… Prometheus ุจุนุฏ ุฐู„ูƒ ู…ู‚ุงูŠูŠุณ ู…ู† ู‡ุฐู‡ ุงู„ู…ุญุทุงุช ุจุชู†ุณูŠู‚ ุฎุงุต (ุนุงุฏุฉ ู…ุง ุชูƒูˆู† ู…ุชุงุญุฉ ุนู„ู‰ /metrics ) ูˆูŠุฎุฒู†ู‡ุง ููŠ ู‚ุงุนุฏุฉ ุจูŠุงู†ุงุช ุณู„ุงุณู„ ุฒู…ู†ูŠุฉ. ููŠู…ุง ูŠู„ูŠ ู…ุซุงู„ ู…ูˆุฌุฒ: ู…ู„ู ุชูƒูˆูŠู† ุตุบูŠุฑ ูŠุทู„ุจ ู…ู‚ุงูŠูŠุณ ู…ู† ูˆุญุฏุฉ node_exporter ุชู… ู†ุดุฑู‡ุง ูƒูˆูƒูŠู„ ููŠ ูƒู„ ุนู‚ุฏุฉ:

 scrape_configs: - job_name: "node_exporter" scrape_interval: "15s" target_groups: - targets: ['<ip>:9100'] 

ุฃูˆู„ุงู‹ ุŒ ู†ุญุฏุฏ ุงุณู… ุงู„ูˆุธูŠูุฉ job_name ุŒ ูˆุจุนุฏ ุฐู„ูƒ ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ู‡ุฐุง ุงู„ุงุณู… ู„ุทู„ุจ ุงู„ู…ู‚ุงูŠูŠุณ ููŠ Prometheus ุŒ ุซู… scrape_interval ุงู„ุจูŠุงู†ุงุช scrape_interval ูˆู…ุฌู…ูˆุนุฉ ุงู„ุฎูˆุงุฏู… ุงู„ุชูŠ ุชุดุบู„ node_exporter . ุงู„ุขู† ุณูˆู ูŠุทู„ุจ Prometheus ูƒู„ 15 ุซุงู†ูŠุฉ ู…ู† ุงู„ุฎุงุฏู… path /metrics ุฅู„ู‰ ุงู„ู…ู‚ุงูŠูŠุณ ุงู„ุญุงู„ูŠุฉ. ูŠุจุฏูˆ ุดูŠุก ู…ุซู„ ู‡ุฐุง:

 # HELP go_gc_duration_seconds A summary of the GC invocation durations. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 1.4852e-05 go_gc_duration_seconds{quantile="0.25"} 2.0702e-05 go_gc_duration_seconds{quantile="0.5"} 2.2059e-05 ... 

ุฃูˆู„ุงู‹ ุŒ ูŠุชู… ุฅุนุทุงุก ุงุณู… ุงู„ู…ู‚ูŠุงุณ ุŒ ุซู… ุงู„ุชูˆู‚ูŠุน (ุงู„ู…ุนู„ูˆู…ุงุช ุจุฃู‚ูˆุงุณ) ุŒ ูˆุฃุฎูŠุฑู‹ุง ู‚ูŠู…ุฉ ุงู„ู…ู‚ูŠุงุณ. ุงู„ุฃูƒุซุฑ ุฅุซุงุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ู‡ูˆ ูˆุธูŠูุฉ ุงู„ุจุญุซ ู„ู‡ุฐู‡ ุงู„ู…ู‚ุงูŠูŠุณ. ูŠู…ุชู„ูƒ ุจุฑูˆู…ูŠุซูŠูˆุณ ู„ุบุฉ ุงุณุชุนู„ุงู… ู‚ูˆูŠุฉ ุฌุฏู‹ุง ู„ู‡ุฐุง ุงู„ุบุฑุถ.

ุงู„ููƒุฑุฉ ุงู„ุฑุฆูŠุณูŠุฉ ู„ุจุฑูˆู…ูŠุซูŠูˆุณ ุŒ ุงู„ู…ูˆุตูˆูุฉ ุฃุนู„ุงู‡ ุฃุนู„ุงู‡ ุŒ ู‡ูŠ: ุจุฑูˆู…ูŠุซูŠูˆุณ ููŠ ูุงุตู„ ุฒู…ู†ูŠ ู…ุนูŠู† ูŠุณุชู‚ุตูŠ ุงู„ู…ู†ูุฐ ู„ู„ู…ู‚ุงูŠูŠุณ ูˆูŠุฎุฒู†ู‡ุง ููŠ ู‚ุงุนุฏุฉ ุจูŠุงู†ุงุช ุณู„ุณู„ุฉ ุฒู…ู†ูŠุฉ. ุฅุฐุง ู„ู… ูŠุชู…ูƒู† Prometheus ู…ู† ุฅุฒุงู„ุฉ ุงู„ู…ู‚ุงูŠูŠุณ ู†ูุณู‡ุง ุŒ ูู‡ู†ุงูƒ ูˆุธูŠูุฉ ุฃุฎุฑู‰ ุชุณู…ู‰ pushgateway. ุชู‚ุจู„ ุจูˆุงุจุฉ ุจูˆุงุจุงุช ุงู„ุฏูุน ุงู„ู…ู‚ุงูŠูŠุณ ุงู„ู…ุฑุณู„ุฉ ู…ู† ู‚ุจู„ ูˆุธุงุฆู ุฎุงุฑุฌูŠุฉ ุŒ ูˆูŠู‚ูˆู… ุจุฑูˆู…ูŠุซูŠูˆุณ ุจุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ู‡ุฐู‡ ุงู„ุจูˆุงุจุฉ ููŠ ูุงุตู„ ุฒู…ู†ูŠ ู…ุญุฏุฏ.

ู…ูƒูˆู† ุงุฎุชูŠุงุฑูŠ ุขุฎุฑ ููŠ ู‡ู†ุฏุณุฉ ุจุฑูˆู…ูŠุซูŠูˆุณ ู‡ูˆ ู…ุฏูŠุฑ alertmanager . ูŠุณู…ุญ alertmanager ู…ูƒูˆู† alertmanager ุจุชุนูŠูŠู† ุญุฏูˆุฏ ุŒ ูˆููŠ ุญุงู„ุฉ ุชุฌุงูˆุฒู‡ุง ุŒ ูŠู…ูƒู†ูƒ ุฅุฑุณุงู„ ุฅุดุนุงุฑุงุช ุนุจุฑ ุงู„ุจุฑูŠุฏ ุงู„ุฅู„ูƒุชุฑูˆู†ูŠ ุฃูˆ ุงู„ุฑูƒูˆุฏ ุฃูˆ opsgenie.

ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ูŠุญุชูˆูŠ ุฎุงุฏู… Prometheus ุนู„ู‰ ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ูŠุฒุงุช ุงู„ู…ุชูƒุงู…ู„ุฉ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ูŠู…ูƒู†ู‡ ุทู„ุจ ุฃู…ุซู„ุฉ ec2 ุนู„ู‰ ูˆุงุฌู‡ุฉ ุจุฑู…ุฌุฉ ุชุทุจูŠู‚ุงุช Amazon ุฃูˆ ุทู„ุจ ู…ู†ุตุงุช ูˆุนูู‚ุฏ ูˆุฎุฏู…ุงุช ู…ู† Kubernetes. ูƒู…ุง ุฃู† ู„ุฏูŠู‡ุง ุงู„ุนุฏูŠุฏ ู…ู† ุงู„ู…ุตุฏุฑูŠู† ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ node_exporter ุงู„ู…ุฐูƒูˆุฑ ุฃุนู„ุงู‡. ูŠู…ูƒู† ู„ู…ุซู„ ู‡ุคู„ุงุก ุงู„ู…ุตุฏุฑูŠู† ุฃู† ูŠุนู…ู„ูˆุง ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุนู„ู‰ ุงู„ุนู‚ุฏุฉ ุญูŠุซ ุชู… ุชุซุจูŠุช ุชุทุจูŠู‚ ู…ุซู„ MySQL ูˆููŠ ูุชุฑุฉ ุฒู…ู†ูŠุฉ ู…ุญุฏุฏุฉ ู„ุงุณุชุทู„ุงุน ุทู„ุจ ุงู„ู…ู‚ุงูŠูŠุณ ูˆุชูˆููŠุฑู‡ุง ุนู„ู‰ ุงู„ุทุฑููŠุฉ / ุงู„ู…ู‚ุงูŠูŠุณ ุŒ ูˆูŠู…ูƒู† ู„ุฎุงุฏู… Prometheus ุฌู…ุน ู‡ุฐู‡ ุงู„ู…ู‚ุงูŠูŠุณ ู…ู† ู‡ู†ุงูƒ.

ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ู„ูŠุณ ู…ู† ุงู„ุตุนุจ ูƒุชุงุจุฉ ุงู„ู…ุตุฏุฑ ุงู„ุฎุงุต ุจูƒ - ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู„ุชุทุจูŠู‚ ูŠูˆูุฑ ู…ู‚ุงูŠูŠุณ ู…ุซู„ ู…ุนู„ูˆู…ุงุช jvm. ู‡ู†ุงูƒ ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ูƒุชุจุฉ ุงู„ุชูŠ ุทูˆุฑุชู‡ุง ุจุฑูˆู…ูŠุซูŠูˆุณ ู„ุชุตุฏูŠุฑ ู…ุซู„ ู‡ุฐู‡ ุงู„ู…ู‚ุงูŠูŠุณ. ูŠู…ูƒู† ุงุณุชุฎุฏุงู… ู‡ุฐู‡ ุงู„ู…ูƒุชุจุฉ ุฌู†ุจู‹ุง ุฅู„ู‰ ุฌู†ุจ ู…ุน Spring ุŒ ูƒู…ุง ุชุชูŠุญ ู„ูƒ ุชุญุฏูŠุฏ ุงู„ู…ู‚ุงูŠูŠุณ ุงู„ุฎุงุตุฉ ุจูƒ. ู‡ู†ุง ู…ุซุงู„ ู…ู† ุตูุญุฉ client_java :

 @Controller public class MyController { @RequestMapping("/") @PrometheusTimeMethod(name = "my_controller_path_duration_seconds", help = "Some helpful info here") public Object handleMain() { //  - } } 

ู‡ุฐุง ู…ู‚ูŠุงุณ ูŠุตู ู…ุฏุฉ ุงู„ุทุฑูŠู‚ุฉ ุŒ ูˆูŠู…ูƒู† ุงู„ุขู† ุชูˆููŠุฑ ู…ู‚ุงูŠูŠุณ ุฃุฎุฑู‰ ู…ู† ุฎู„ุงู„ ุงู„ู…ุญุทุฉ ุงู„ุทุฑููŠุฉ ุฃูˆ ุฏูุนู‡ุง ุนุจุฑ ุจูˆุงุจุฉ ุงู„ุฏูุน.

ุงู„ุงุณุชุฎุฏุงู… ููŠ ู…ุฌู…ูˆุนุฉ Kubernetes


ูƒู…ุง ุฐูƒุฑุช ุŒ ู„ุงุณุชุฎุฏุงู… Prometheus ููŠ ู…ุฌู…ูˆุนุฉ Kubernetes ุŒ ู‡ู†ุงูƒ ู‚ุฏุฑุงุช ู…ุชูƒุงู…ู„ุฉ ู„ุฅุฒุงู„ุฉ ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ู…ูˆู‚ุฏ ูˆุงู„ุนู‚ุฏุฉ ูˆุงู„ุฎุฏู…ุฉ. ุงู„ุฃูƒุซุฑ ุฅุซุงุฑุฉ ู„ู„ุงู‡ุชู…ุงู… ุŒ ุชู… ุชุตู…ูŠู… Kubernetes ุฎุตูŠุตู‹ุง ู„ู„ุนู…ู„ ู…ุน Prometheus. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ kubelet ูˆ kube-apiserver ู…ู‚ุงูŠูŠุณ kube-apiserver ููŠ Prometheus ุŒ ู„ุฐุง ูุฅู† ุงู„ู…ุฑุงู‚ุจุฉ ุจุณูŠุทุฉ ู„ู„ุบุงูŠุฉ.

ููŠ ู‡ุฐุง ุงู„ู…ุซุงู„ ุŒ ุจุงู„ู†ุณุจุฉ ู„ู„ู…ุจุชุฏุฆูŠู† ุŒ ุฃุณุชุฎุฏู… ู…ุฎุทุท ุงู„ุฏูุฉ ุงู„ุฑุณู…ูŠ.

ุจู†ูุณูŠ ุŒ ู‚ู…ุช ุจุชุบูŠูŠุฑ ุชูƒูˆูŠู† ู…ุฎุทุท ุงู„ุฏูุฉ ุงู„ุงูุชุฑุงุถูŠ ู‚ู„ูŠู„ุงู‹. ุฃูˆู„ุงู‹ ุŒ ูƒู†ุช ุจุญุงุฌุฉ ุฅู„ู‰ ุชู†ุดูŠุท rbac ููŠ ุชุซุจูŠุช Prometheus ุŒ ูˆุฅู„ุง ู„ู… ูŠูƒู† Prometheus ู‚ุงุฏุฑู‹ุง ุนู„ู‰ ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† kube-apiserver . ู„ุฐู„ูƒ ุŒ ูƒุชุจุช ู…ู„ู ุงู„ู‚ูŠู…. yaml ุงู„ุฎุงุต ุจูŠ ุŒ ุงู„ุฐูŠ ูŠุตู ูƒูŠููŠุฉ ุนุฑุถ ู…ุฎุทุท ุงู„ุฏูุฉ.

ู„ู‚ุฏ ุฃุฌุฑูŠุช ุฃุจุณุท ุงู„ุชุบูŠูŠุฑุงุช:

  1. alertmanager.enabled: false ุŒ ุฃูŠ ุฅู„ุบุงุก ู†ุดุฑ Alertmanager ููŠ ุงู„ู…ุฌู…ูˆุนุฉ (ู„ู… ุฃูƒู† ุฃุณุชุฎุฏู… Alertmanager ุŒ ุฃุนุชู‚ุฏ ุฃู†ู‡ ู…ู† ุงู„ุฃุณู‡ู„ ุชูƒูˆูŠู† ุงู„ุชู†ุจูŠู‡ุงุช ุจุงุณุชุฎุฏุงู… Grafana)
  2. kubeStateMetrics.enabled: false ุฃุนุชู‚ุฏ ุฃู† ู‡ุฐู‡ ุงู„ู…ู‚ุงูŠูŠุณ ุชูุฑุฌุน ูู‚ุท ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช ุญูˆู„ ุงู„ุญุฏ ุงู„ุฃู‚ุตู‰ ู„ุนุฏุฏ ุงู„ู…ุฏุงุฎู†. ุนู†ุฏ ุจุฏุก ุชุดุบูŠู„ ุงู„ู†ุธุงู… ู„ุฃูˆู„ ู…ุฑุฉ ุŒ ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ู„ูŠุณุช ู…ู‡ู…ุฉ ุจุงู„ู†ุณุจุฉ ู„ูŠ
  3. server.persistentVolume.enabled: false ุญุชู‰ ูŠุชู… ุชูƒูˆูŠู† ูˆุญุฏุฉ ุชุฎุฒูŠู† ุฏุงุฆู…ุฉ ุจุดูƒู„ ุงูุชุฑุงุถูŠ
  4. ู„ู‚ุฏ ุบูŠุฑุช ุชูƒูˆูŠู† ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ููŠ Prometheus ุŒ ุญูŠุซ ุชู… ุฐู„ูƒ ููŠ ุทู„ุจ ุงู„ุณุญุจ ุนู„ู‰ github . ูˆุงู„ุญู‚ูŠู‚ุฉ ู‡ูŠ ุฃู†ู‡ ููŠ Kubernetes v1.7 ุŒ ุชุนู…ู„ ู…ู‚ุงูŠูŠุณ citations ุนู„ู‰ ู…ู†ูุฐ ู…ุฎุชู„ู.

ุจุนุฏ ุฐู„ูƒ ุŒ ูŠู…ูƒู†ูƒ ุจุฏุก Prometheus ุจุงุณุชุฎุฏุงู… ุงู„ุฏูุฉ:

helm install stable/prometheus --name prometheus-monitoring -f prometheus-values.yaml

ู„ุฐู„ูƒ ู†ู‚ูˆู… ุจุชุซุจูŠุช ุฎุงุฏู… Prometheus ุŒ ูˆุนู„ู‰ ูƒู„ ุนู‚ุฏุฉ - ุงู„ุชุซุจูŠุช ุชุญุช node_exporter. ูŠู…ูƒู†ูƒ ุงู„ุขู† ุงู„ุงู†ุชู‚ุงู„ ุฅู„ู‰ ูˆุงุฌู‡ุฉ ุงู„ู…ุณุชุฎุฏู… ุงู„ุฑุณูˆู…ูŠุฉ Prometheus ุนู„ู‰ ุงู„ูˆูŠุจ ูˆุงู„ุงุทู„ุงุน ุนู„ู‰ ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช:

kubectl port-forward <prometheus-server-pod> 9090

ุชูˆุถุญ ู„ู‚ุทุฉ ุงู„ุดุงุดุฉ ุงู„ุชุงู„ูŠุฉ ุงู„ุฃุบุฑุงุถ ุงู„ุชูŠ ูŠุฌู…ุนู‡ุง Prometheus ุงู„ู…ุนู„ูˆู…ุงุช (ุงู„ุญุงู„ุฉ / ุงู„ุฃู‡ุฏุงู) ุŒ ูˆู…ุชู‰ ุชู… ุชุตูˆูŠุฑ ุงู„ู…ุนู„ูˆู…ุงุช ุนุฏุฉ ู…ุฑุงุช ููŠ ุงู„ู…ุงุถูŠ:



ู‡ู†ุง ูŠู…ูƒู†ูƒ ุฃู† ุชุฑู‰ ูƒูŠู ูŠุทู„ุจ Prometheus ู…ู‚ุงูŠูŠุณ ู…ู† apiserver ุŒ ูˆุงู„ุนู‚ุฏ ุŒ ูˆ cadvisor ุงู„ุชูŠ ุชุนู…ู„ ุนู„ู‰ ู†ู‚ุงุท ู†ู‡ุงูŠุฉ ุฎุฏู…ุฉ kubernetes ูˆู†ู‚ุงุทู‡ุง. ูŠู…ูƒู†ูƒ ู…ุดุงู‡ุฏุฉ ุงู„ู…ู‚ุงูŠูŠุณ ุจุงู„ุชูุตูŠู„ ุจุงู„ุงู†ุชู‚ุงู„ ุฅู„ู‰ ุงู„ุฑุณู… ุงู„ุจูŠุงู†ูŠ ูˆูƒุชุงุจุฉ ุงุณุชุนู„ุงู… ู„ุนุฑุถ ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ู†ู‡ุชู… ุจู‡ุง:



ู‡ู†ุง ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ู†ุฑู‰ ู…ุณุงุญุฉ ุชุฎุฒูŠู† ู…ุฌุงู†ูŠุฉ ุนู†ุฏ ู†ู‚ุทุฉ ุงู„ุชุญู…ูŠู„ "/". ููŠ ุงู„ุฌุฒุก ุงู„ุณูู„ูŠ ู…ู† ุงู„ุฑุณู… ุงู„ุจูŠุงู†ูŠ ุŒ ุชุชู… ุฅุถุงูุฉ ุงู„ุชูˆู‚ูŠุนุงุช ุงู„ุชูŠ ุชู…ุช ุฅุถุงูุชู‡ุง ุจูˆุงุณุทุฉ Prometheus ุฃูˆ ู…ุชูˆูุฑุฉ ุจุงู„ูุนู„ ููŠ node_exporter. ู†ุณุชุฎุฏู… ู‡ุฐู‡ ุงู„ุชูˆู‚ูŠุนุงุช ู„ุทู„ุจ ู†ู‚ุทุฉ ุงู„ุชุญู…ูŠู„ ูู‚ุท "/".

ู…ู‚ุงูŠูŠุณ ู…ุฎุตุตุฉ ู…ุน ุงู„ุชุนู„ูŠู‚ุงุช ุงู„ุชูˆุถูŠุญูŠุฉ


ูƒู…ุง ู‡ูˆ ู…ูˆุถุญ ุจุงู„ูุนู„ ููŠ ู„ู‚ุทุฉ ุงู„ุดุงุดุฉ ุงู„ุฃูˆู„ู‰ ุŒ ุญูŠุซ ูŠุชู… ุงุดุชู‚ุงู‚ ุงู„ุฃู‡ุฏุงู ุงู„ุชูŠ ูŠุทู„ุจ Prometheus ู…ู‚ุงูŠูŠุณู‡ุง ุŒ ู‡ู†ุงูƒ ุฃูŠุถู‹ุง ู…ู‚ูŠุงุณ ู„ู„ู…ูˆู‚ุฏ ุงู„ุฐูŠ ูŠุนู…ู„ ููŠ ุงู„ู…ุฌู…ูˆุนุฉ. ุฅุญุฏู‰ ุงู„ู…ูŠุฒุงุช ุงู„ุฑุงุฆุนุฉ ููŠ Prometheus ู‡ูŠ ุงู„ู‚ุฏุฑุฉ ุนู„ู‰ ุฃุฎุฐ ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ู…ุฏุงุฎู† ุงู„ูƒุงู…ู„ุฉ. ุฅุฐุง ูƒุงู†ุช ุงู„ุญุงูˆูŠุฉ ููŠ ุงู„ู…ูˆู‚ุฏ ุชูˆูุฑ ู…ู‚ุงูŠูŠุณ Prometheus ุŒ ููŠู…ูƒู†ู†ุง ุฌู…ุน ู‡ุฐู‡ ุงู„ู…ู‚ุงูŠูŠุณ ุจุงุณุชุฎุฏุงู… Prometheus ุชู„ู‚ุงุฆูŠู‹ุง. ุงู„ุดูŠุก ุงู„ูˆุญูŠุฏ ุงู„ุฐูŠ ู†ุญุชุงุฌ ุฅู„ู‰ ุงู„ุงู‡ุชู…ุงู… ุจู‡ ู‡ูˆ ุชุฒูˆูŠุฏ ุงู„ุชุซุจูŠุช ุจุชุนู„ูŠู‚ุงุช ุชูˆุถูŠุญูŠุฉ ุ› ููŠ ุญุงู„ุชูŠ ุŒ ูŠู‚ูˆู… nginx-ingress-controller ุจุฐู„ูƒ ุฎุงุฑุฌ ุงู„ุตู†ุฏูˆู‚:

 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-ingress-controller namespace: ingress-nginx spec: replicas: 1 selector: matchLabels: app: ingress-nginx template: metadata: labels: app: ingress-nginx annotations: prometheus.io/port: '10254' prometheus.io/scrape: 'true' ... 

ู†ุฑู‰ ู‡ู†ุง ุฃู† ู‚ุงู„ุจ ุงู„ู†ุดุฑ ูŠุฃุชูŠ ู…ุน ุดุฑุญูŠ ุจุฑูˆู…ูŠุซูŠูˆุณ. ูŠุตู ุงู„ุฃูˆู„ ุงู„ู…ู†ูุฐ ุงู„ุฐูŠ ู…ู† ุฎู„ุงู„ู‡ ูŠุทู„ุจ Prometheus ู…ู‚ุงูŠูŠุณ ุŒ ูˆูŠู†ุดุท ุงู„ุซุงู†ูŠ ูˆุธูŠูุฉ ุฌู…ุน ุงู„ุจูŠุงู†ุงุช. ุงู„ุขู† ุŒ ูŠุทู„ุจ Prometheus Kubernetes Api-Server ุงู„ู…ุดุฑูˆุญุฉ ู„ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ูˆูŠุญุงูˆู„ ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ู…ุญุทุฉ / ุงู„ู…ู‚ุงูŠูŠุณ.

ุงู„ุนู…ู„ ุงู„ู…ูˆุญุฏ


ู„ุฏูŠู†ุง ู…ุดุฑูˆุน ูŠุณุชุฎุฏู… ููŠู‡ ุจุฑูˆู…ูŠุซูŠูˆุณ ููŠ ูˆุถุน ู…ุชุญุฏ. ุงู„ููƒุฑุฉ ู‡ูŠ: ู†ุฌู…ุน ูู‚ุท ุงู„ู…ุนู„ูˆู…ุงุช ุงู„ุชูŠ ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง ูู‚ุท ู…ู† ุฏุงุฎู„ ุงู„ู…ุฌู…ูˆุนุฉ (ุฃูˆ ู…ู† ุงู„ุณู‡ู„ ุฌู…ุน ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุฏุงุฎู„ ุงู„ู…ุฌู…ูˆุนุฉ) ุŒ ูˆุชู…ูƒูŠู† ุงู„ูˆุถุน ุงู„ู…ุชุญุฏ ูˆุงู„ุญุตูˆู„ ุนู„ู‰ ู‡ุฐู‡ ุงู„ู…ุนู„ูˆู…ุงุช ุจุงุณุชุฎุฏุงู… Prometheus ุงู„ุซุงู†ูŠ ุงู„ู…ุซุจุช ุฎุงุฑุฌ ุงู„ูƒุชู„ุฉ. ูˆุจุงู„ุชุงู„ูŠ ุŒ ู…ู† ุงู„ู…ู…ูƒู† ุฌู…ุน ุงู„ู…ุนู„ูˆู…ุงุช ู…ู† ุงู„ุนุฏูŠุฏ ู…ู† ู…ุฌู…ูˆุนุงุช Kubernetes ููŠ ูˆู‚ุช ูˆุงุญุฏ ุŒ ูˆูƒุฐู„ูƒ ุงู„ุชู‚ุงุท ู…ูƒูˆู†ุงุช ุฃุฎุฑู‰ ู„ุง ูŠู…ูƒู† ุงู„ูˆุตูˆู„ ุฅู„ูŠู‡ุง ู…ู† ุฏุงุฎู„ ู‡ุฐู‡ ุงู„ู…ุฌู…ูˆุนุฉ ุฃูˆ ู„ุง ุชุชุนู„ู‚ ุจู‡ุฐู‡ ุงู„ู…ุฌู…ูˆุนุฉ. ุจุงู„ุฅุถุงูุฉ ุฅู„ู‰ ุฐู„ูƒ ุŒ ู„ูŠุณ ู…ู† ุงู„ุถุฑูˆุฑูŠ ุชุฎุฒูŠู† ุงู„ุจูŠุงู†ุงุช ุงู„ุชูŠ ุชู… ุฌู…ุนู‡ุง ููŠ ุงู„ู…ุฌู…ูˆุนุฉ ู„ูุชุฑุฉ ุทูˆูŠู„ุฉ ุŒ ูˆุฅุฐุง ุญุฏุซ ุฎุทุฃ ููŠ ุงู„ู…ุฌู…ูˆุนุฉ ุŒ ููŠู…ูƒู†ู†ุง ุฌู…ุน ุจุนุถ ุงู„ู…ุนู„ูˆู…ุงุช ุŒ ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ node_exporter ุŒ ู…ู† ุฎุงุฑุฌ ุงู„ู…ุฌู…ูˆุนุฉ.

Source: https://habr.com/ru/post/ar421175/


All Articles