{"id":354894,"date":"2024-05-20T22:57:35","date_gmt":"2024-05-20T22:57:35","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=354894"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=354894","title":{"rendered":"<span>Prometheus Alert Hints<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/471\/df2\/ee6\/471df2ee6499b10b30ea4b5257015267.png\" alt=\"&quot;\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0447\u0430\u0448\u043a\u0443 \u0441 \u043a\u043e\u0444\u0435 - \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u043d\u0430\u043a&quot;  \" title=\"&quot;\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0447\u0430\u0448\u043a\u0443 \u0441 \u043a\u043e\u0444\u0435 - \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u043d\u0430\u043a&quot;  \" width=\"8000\" height=\"4470\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/471\/df2\/ee6\/471df2ee6499b10b30ea4b5257015267.png\"\/><\/p>\n<div><figcaption>&#171;\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0447\u0430\u0448\u043a\u0443 \u0441 \u043a\u043e\u0444\u0435 &#8212; \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u043d\u0430\u043a&#187;  <\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0413\u043e\u043b\u0438\u043a\u043e\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Bercut. \u041d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 IT-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u0443\u0433 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043c\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439, \u0421\u0425\u0414, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 Bercut c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438. \u0414\u043b\u044f \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Prometheus.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 Prometheus \u0432 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 Karma alert dashboard \u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u041d\u0430\u043f\u0438\u0448\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 Go Template \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u0433\u0434\u0435 \u0442\u0430\u043a\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b. \u041f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e, \u043a\u0430\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u0431\u0449\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b, \u0438 \u043e\u0431\u0443\u0447\u0443 Prometheus \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u043c\u043a\u0438.<\/p>\n<h3>\u041d\u0430\u0447\u043d\u0435\u043c<\/h3>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0441\u044c \u044d\u0442\u0430\u043f\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus. \u041d\u043e\u0432\u0438\u0447\u043a\u0430\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/prometheus.io\/docs\/tutorials\/getting_started\/\" rel=\"noopener noreferrer nofollow\">Getting Started<\/a> \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Prometheus.io, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0449\u0435\u043b\u043a\u0430\u0442\u044c <a href=\"https:\/\/grafana.com\/grafana\/\" rel=\"noopener noreferrer nofollow\">Grafana<\/a>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e4\/e48\/db4\/5e4e48db44aa1889f80efad3e8b05cb6.png\" width=\"992\" height=\"589\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e4\/e48\/db4\/5e4e48db44aa1889f80efad3e8b05cb6.png\"\/><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438-\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438. \u0412\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0433\u043b\u0430\u0437\u0430 \u0440\u0430\u0437\u0431\u0435\u0433\u0430\u044e\u0442\u0441\u044f. \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0431\u0440\u0430\u0442\u044c \u0441 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u0430 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b28\/588\/168\/b2858816832713ca82b238cd5397a8b4.png\" width=\"962\" height=\"589\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b28\/588\/168\/b2858816832713ca82b238cd5397a8b4.png\"\/><\/figure>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0437\u0435\u043b\u0435\u043d\u044b\u043c. <\/p>\n<p>\u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Prometheus \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0441\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c(alert_rules). \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0445 \u043b\u0443\u0447\u0448\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>AlertManager \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0414\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 (E-mail, MS Teams, Zulip, Telegram, Karma \u0438 \u0434\u0440\u0443\u0433\u0438\u0435). \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0444\u0438\u043a\u0441\u0438\u043a\u0438, \u0442.\u0435. \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0447\u0438\u043d\u043a\u0438.<\/p>\n<p>Karma \u2013 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0434\u043b\u044f \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043e \u043d\u0435\u043c \u043f\u043e\u0437\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u2013 \u043d\u0430 \u043d\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u043a\u0440\u0443\u0436\u0435\u0447\u043a\u0430 \u043a\u043e\u0444\u0435.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0432 \u044d\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043c\u044b \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u043e\u0442 \u043d\u0435\u0440\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0435\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0432 Grafana \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0435\u043c\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u2013 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae7\/143\/911\/ae7143911f082e84dd5cf72151a31b3c.png\" width=\"996\" height=\"417\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae7\/143\/911\/ae7143911f082e84dd5cf72151a31b3c.png\"\/><\/figure>\n<p>\u0412 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u0443\u0437\u043b\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438.<br \/> \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u043a\u0430\u0436\u0434\u044b\u0439 Prometheus \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0430\u043b\u0435\u0440\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Alertmanager, \u043d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<p>\u0422.\u043a. \u0432\u0441\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0430\u043b\u0435\u0440\u0442\u044b \u0432 \u043e\u0431\u043e\u0438\u0445 Prometheus \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b, \u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0430\u043b\u0435\u0440\u0442\u044b \u0432\u0441\u043f\u043b\u044b\u0432\u0443\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043d\u0438\u0445, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u0438\u0445 \u0432 \u0441\u0432\u043e\u0439 Alertmanager. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u043e\u0431 \u0430\u043b\u0435\u0440\u0442\u0430\u0445, Alertmanager \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u041a\u043b\u0430\u0441\u0442\u0435\u0440 Alertmanager \u0434\u0435\u043b\u0430\u0435\u0442 \u0434\u0435\u0434\u0443\u0431\u043b\u0435\u043a\u0430\u0446\u0438\u044e \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0438\u0445 \u043e\u0434\u0438\u043d \u0440\u0430\u0437.<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u0430\u0437\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430, \u0438 \u044d\u0442\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0434\u043e\u0440\u043e\u0432\u044b\u043c.<\/p>\n<p>\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Karma. \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 Karma \u043e\u0442\u043a\u0430\u0436\u0435\u0442, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c virtual IP, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441).<\/p>\n<h4>\u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 Karma<\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0dd\/7f2\/df5\/0dd7f2df5d3abe0717d3f5bc2e92aa13.png\" width=\"1920\" height=\"875\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0dd\/7f2\/df5\/0dd7f2df5d3abe0717d3f5bc2e92aa13.png\"\/><\/figure>\n<p>\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 Karma (\u0442\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/demo.karma-dashboard.io\/?q=%40cluster%3DHA&amp;q=%40receiver%3Dby-cluster-service\" rel=\"noopener noreferrer nofollow\">\u0432\u0436\u0438\u0432\u0443\u044e<\/a>). \u0427\u0435\u043c \u043e\u043d \u0443\u0434\u043e\u0431\u0435\u043d?<\/p>\n<p><strong>\u0423\u0434\u043e\u0431\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043f\u043e \u043c\u0435\u0442\u043a\u0430\u043c.<\/strong> \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0449\u0435\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0435\u0442\u043a\u0435 \u0438\u0437 \u0430\u043b\u0435\u0440\u0442\u0430 \u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0435\u0440\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0424\u0438\u043b\u044c\u0442\u0440\u044b \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043c\u0435\u043d\u0430 \u201c=\u201d \u043d\u0430 \u201c!=\u201d \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0435\u0440\u0442\u044b \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 \u041d\u0415 \u0420\u0410\u0412\u041d\u041e\u0419 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0412 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u043b\u044c\u0442\u0440 <strong>instance=~10.10.*<\/strong> \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0430\u043b\u0435\u0440\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0443\u0437\u043b\u043e\u0432 \u0441 IP \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0441 10.10, \u0430 \u0444\u0438\u043b\u044c\u0442\u0440 <strong>instance!~10.10.*<\/strong> &#8212; \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0441 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0435 \u0441 10.10.<\/p>\n<p>\u0412 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u043a \u0430\u043b\u0435\u0440\u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0446\u0435\u043f\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 Wiki \u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0440\u043e\u043b\u0438\u043a \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0447\u0438\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 (alertReferance).<\/p>\n<p><strong>Karma \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u0433\u043e\u0440\u0435\u043b\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442. <\/strong>Karma \u0443\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u043d\u044b\u0445 Alertmanager, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445, \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442 \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e AlertManager \u043f\u0440\u0438\u0448\u0435\u043b \u043a\u0430\u043a\u043e\u0439 alert. \u041a\u0430\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438 \u043a Prometheus-Operator \u0432 Kubernetes.<\/p>\n<p>Karma \u0443\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c acknowledge (silence) \u043d\u0430 \u0430\u043b\u0435\u0440\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u043b\u0438, \u0435\u0441\u043b\u0438 \u043f\u043e \u043d\u0438\u043c \u0443\u0436\u0435 \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u0447\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u0430\u043b\u0435\u0440\u0442\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d silence (\u043c\u0430\u043b\u043e \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c), \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 <strong>@state=active<\/strong>.<\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Karma \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/demo.karma-dashboard.io\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0435\u043c\u043e-\u0441\u0430\u0439\u0442<\/a> \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u00a0\u0438 \u043f\u043e\u0449\u0435\u043b\u043a\u0430\u0439\u0442\u0435. \u0417\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c? \u0422\u043e\u0433\u0434\u0430 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/prymitive\/karma\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 github (prymitive \/ karma)<\/a>, \u0433\u0434\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0432\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438.<\/p>\n<h3>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d DeadMan \u0430\u043b\u0435\u0440\u0442?<\/h3>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Karma \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 DeadMan.<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/867\/a3e\/c75\/867a3ec7519f6ab7ed6e70c5e4cfd68f.png\" width=\"805\" height=\"702\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/867\/a3e\/c75\/867a3ec7519f6ab7ed6e70c5e4cfd68f.png\"\/><\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441\u043b\u0435\u0432\u0430 \u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b \u044d\u0442\u043e\u0442 \u0430\u043b\u0435\u0440\u0442 \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0437\u043e\u043c\u0431\u0438. \u0410\u043b\u0435\u0440\u0442 DeadMan \u0435\u0441\u0442\u044c, \u0430 \u0432 Karma \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0443\u0436\u0435\u0447\u043a\u0443 \u043a\u043e\u0444\u0435 &#8212; \u00a0\u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. Karma \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u044f\u0432\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e DeadMan \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 (\u043d\u043e \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c).<\/p>\n<p>\u0410 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 Prometheus \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435?<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/12e\/a0a\/82d\/12ea0a82dddf68df811d9a7fd40a92d9.png\" width=\"794\" height=\"702\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/12e\/a0a\/82d\/12ea0a82dddf68df811d9a7fd40a92d9.png\"\/><\/figure>\n<p>\u041c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0432\u044b\u0439 Prometheus \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 DeadMan \u0432 \u0441\u0432\u043e\u044e TSDB, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0439 AlertManager, \u0430 \u0442\u043e\u0442 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 Karma. \u0418 Karma \u0441\u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442, \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0437\u0430\u0445\u0440\u043e\u043c\u0430\u043b. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 Prometheus \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0436\u0438\u0432\u0430, \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 DeadMan \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b, \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Deadman \u0430\u043b\u0435\u0440\u0442?<\/p>\n<p>\u0412 \u0444\u0430\u0439\u043b\u0435 <strong>prometheus.yml<\/strong> \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u0430\u0432\u0438\u043b <strong>DeadMansSwitch.yml<\/strong>:<\/p>\n<pre><code class=\"yaml\">... rule_files:    - 'DeadMansSwitch.yml' ...<\/code><\/pre>\n<p>\u0412\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b <strong>DeadMansSwitch.yml<\/strong> \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 \u0441 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c vector(1):<\/p>\n<pre><code class=\"yaml\">groups:   - name: 'DeadMansSwitch'     rules:       - alert: DeadMansSwitch         expr: vector(1)         labels:           prom: 'Bercut1'# \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u044d\u0433 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430         annotations:           title: 'DeadMansSwitch Alert'           description: 'This alert should be always ON to check that alert pipeline is working'<\/code><\/pre>\n<p>\u0412 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 AlertManager (<strong>alertmanager.yml <\/strong>) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u044f\u0432\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u043b\u0435\u0440\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0422\u041e\u041b\u042c\u041a\u041e \u0434\u043b\u044f karma, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e \u043d\u0435\u043c E-Mail:<\/p>\n<pre><code class=\"yaml\">routes:   - receiver: 'karma'     match:          alertname: 'DeadMansSwitch'     continue: false     #ignore all other routes<\/code><\/pre>\n<h4>AlertManager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u0417\u0430\u043f\u0443\u0441\u043a <\/h4>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8d9\/c74\/342\/8d9c743429816b135f22cc5797e89162.png\" width=\"655\" height=\"216\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d9\/c74\/342\/8d9c743429816b135f22cc5797e89162.png\"\/><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c AlertManager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438. <\/p>\n<p>\u0412 \u043e\u043f\u0446\u0438\u0438 &#8212;cluster.listen-address \u00a0\u0443\u043a\u0430\u0436\u0435\u043c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438 \u043f\u043e\u0440\u0442\u0443 \u043d\u0443\u0436\u043d\u043e \u0436\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p>\u0412 \u043e\u043f\u0446\u0438\u0438 &#8212;cluster.peer \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0437\u0435\u043b\/\u043f\u043e\u0440\u0442 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f. \u041e\u043f\u0446\u0438\u044f &#8212;cluster.peer \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c\u00a0 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043d\u0430 \u0434\u0432\u0430 \u0443\u0437\u043b\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8bf\/d1d\/30d\/8bfd1d30da7ed4cf1714cf82e910da6b.png\" width=\"967\" height=\"203\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8bf\/d1d\/30d\/8bfd1d30da7ed4cf1714cf82e910da6b.png\"\/><\/figure>\n<h4>Alertmanager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0443 \u043d\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u0436\u0435\u043b\u0442\u044b\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435):<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/124\/281\/ae8\/124281ae8799b75e56fcbadb92610f81.png\" width=\"512\" height=\"494\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/124\/281\/ae8\/124281ae8799b75e56fcbadb92610f81.png\"\/><\/figure>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u0438 \u043d\u0435 \u0440\u0430\u0437\u044a\u0435\u0437\u0436\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 <strong>git pull<\/strong>, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 <strong><em>Infrastructure<\/em>-as-<em>Code<\/em><\/strong>, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u0438\u043a \u0434\u043b\u044f rsync:<\/p>\n<pre><code class=\"bash\">rsync --recursive --relative --links --delete --checksum --group --owner --perms \\           -e \"ssh -i ${ssh_key}\"  \\           --exclude=${promdir}\/etc\/DeadMansSwitch.yml  \\           ${file_list} \\           ${promuser}@${remote_host}:\/<\/code><\/pre>\n<p>\u0412 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f DeadManSwitch.yml, \u0447\u0442\u043e\u0431\u044b \u0430\u043b\u0435\u0440\u0442 DeadMan \u0431\u044b\u043b \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 Prometheus.<\/p>\n<h3>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Alerts<\/h3>\n<h4>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b<\/h4>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <strong>prometheus.yml<\/strong> \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d07\/ba5\/e20\/d07ba5e2004c12f9f9e2cd2a910922e3.png\" width=\"993\" height=\"450\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d07\/ba5\/e20\/d07ba5e2004c12f9f9e2cd2a910922e3.png\"\/><\/figure>\n<p>\u041c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u2013 DeadManSwitch.yml. <\/p>\n<p>\u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u2013 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0430\u043b\u0435\u0440\u0442\u044b.<\/p>\n<p>\u0412\u0441\u0435 \u0441\u0430\u0439\u0442\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0442\u0438\u043f\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044e \u0441\u043b\u0435\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0441\u043f\u0435\u0440\u0435\u0431\u043e\u0439\u043d\u043e\u0433\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0441\u0441\u0438 \u0434\u043b\u044f \u043b\u0435\u0437\u0432\u0438\u0439, \u0440\u0430\u0437\u043d\u044b\u0435 \u0421\u0423\u0411\u0414, \u0431\u0440\u043e\u043a\u0435\u0440\u044b \u0438 \u0442.\u0434. <\/p>\n<p>\u0423\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u043d\u043e\u0432\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043c\u0435\u0442\u044c \u0431\u0430\u0433\u0430\u0436 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0412\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f.<\/p>\n<h4>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432<\/h4>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041a \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442: <\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e85\/ea4\/1fa\/e85ea41fac1dcb2202905be6603c0b89.png\" width=\"385\" height=\"468\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e85\/ea4\/1fa\/e85ea41fac1dcb2202905be6603c0b89.png\"\/><\/figure>\n<p>\u041c\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0447\u0442\u0443 \u0438 \u0432\u0438\u0434\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3d4\/e34\/6c4\/3d4e346c4d12dc081bca56b226f6f555.png\" width=\"958\" height=\"225\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3d4\/e34\/6c4\/3d4e346c4d12dc081bca56b226f6f555.png\"\/><\/figure>\n<p>\u041c\u044b \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0443 \u043d\u0430\u0441 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/434\/13e\/0cb\/43413e0cb1ef88575ccb26431ae6a4c0.png\" width=\"966\" height=\"111\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/434\/13e\/0cb\/43413e0cb1ef88575ccb26431ae6a4c0.png\"\/><\/figure>\n<p>\u0418 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0447\u0438\u043d\u0438\u0442\u044c, \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u043c \u0443\u0437\u043b\u0435.<\/p>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0430\u0434\u0440\u0435\u0441? \u0417\u0430\u0447\u0435\u043c \u043e\u043d? \u041c\u043e\u0436\u0435\u0442, \u0432 \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c?<\/p>\n<p>\u041c\u044b \u0442\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0413\u043e\u0440\u0430\u0437\u0434\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0435\u0440\u0442:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f62\/b0a\/5d0\/f62b0a5d00361a1e976297dfe9b35630.png\" width=\"949\" height=\"408\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f62\/b0a\/5d0\/f62b0a5d00361a1e976297dfe9b35630.png\"\/><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0431\u044b \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435. \u0418\u0437 \u0430\u043b\u0435\u0440\u0442\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440-\u043b\u0435\u0437\u0432\u0438\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0432 \u0448\u0430\u0441\u0441\u0438 plat198c7000 \u0441 iLO 10.10.11.10.<\/p>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/16a\/9ce\/184\/16a9ce184135a45fe96bbbc5a5ac2425.png\" width=\"994\" height=\"506\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/16a\/9ce\/184\/16a9ce184135a45fe96bbbc5a5ac2425.png\"\/><\/figure>\n<p>\u0412 Prometheus.yml \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0433\u0434\u0435 \u0438\u0441\u043a\u0430\u0442\u044c inventory \u0434\u043b\u044f job. \u0417\u0430 \u0442\u0440\u0435\u043c\u044f \u0442\u043e\u0447\u043a\u0430\u043c\u0438 (\u2026) \u0443 \u043c\u0435\u043d\u044f \u0442\u0443\u0442 \u0441\u043a\u0440\u044b\u0442\u0430 \u043b\u043e\u0433\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0445\u043e\u0441\u0442 \u0438\u0437 inventory \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432 \u0435\u0433\u043e \u0442\u0435\u0433\u0435 jobs \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0438\u043c\u044f node_exporter, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e:<\/p>\n<pre><code class=\"yaml\">- job_name: 'node_exporter'     scrape_interval: 90s     scrape_timeout: 50s     file_sd_configs:       - files:         - 'inventory\/*.yml'     relabel_configs:       - source_labels: [jobs]      #check 'node_exporter' in label 'jobs', drop if not         regex: '(.*,|^)node_exporter(,.*|$)'         action: keep       - regex: '^jobs$'               #drop unused label 'jobs'         action: labeldrop       - source_labels: [__address__]  #add port if it is absent in target         regex: (.*)         replacement: ${1}:9100         target_label: __param_target       - source_labels: [__param_target]    #copy '__param_target' to 'instance'         target_label: instance       - source_labels: [__param_target]    #copy '__param_target' to '__address__'         target_label: __address__<\/code><\/pre>\n<p>\u0412 inventory\/10.10.10.10.yml \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0430\u0434\u0440\u0435\u0441 \u0443\u0437\u043b\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u0443\u044e \u0441 \u043d\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u2013 \u043a\u0430\u043a\u0438\u0435 jobs Prometheus \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u043d\u0430 \u043d\u0435\u043c, \u043a\u0442\u043e \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442, \u043a\u0430\u043a\u0430\u044f \u0442\u0430\u043c \u041e\u0421, \u0438\u043c\u044f \u0445\u043e\u0441\u0442\u0430, \u0430\u0434\u0440\u0435\u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438 \u0438\u043c\u044f \u0448\u0430\u0441\u0441\u0438 (\u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0448\u0430\u0441\u0441\u0438 \u0441 \u043b\u0435\u0437\u0432\u0438\u044f\u043c\u0438).<\/p>\n<p>\u041d\u0430\u043a\u043e\u043d\u0435\u0446, \u0447\u0430\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0435 \u0430\u043b\u0435\u0440\u0442\u0430 <strong>alerts\/alerts.node.yml<\/strong>, \u0442\u0443\u0442 \u044d\u0442\u043e \u043c\u0435\u0442\u043a\u0430 severity(\u0432\u0430\u0436\u043d\u043e\u0441\u0442\u044c) \u0438 alertReference (\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e \u043f\u043e \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0430\u043b\u0435\u0440\u0442\u0430).<\/p>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441<\/h4>\n<p>\u0412\u043c\u0435\u0441\u0442\u0435 \u0441 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c \u0444\u0430\u0439\u043b\u043e\u043c Prometheus \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043d\u0430 GitHub \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0432 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0442\u0435 \u0443\u0442\u0438\u043b\u0438\u0442\u0443 promtool.<\/p>\n<p>\u0415\u0451 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0448\u0438\u0440\u043e\u043a\u043e, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"bash\">bin\/promtool check config etc\/prometheus.yml  echo -e \"Check result code is $?\"<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a. \u041d\u0435\u043e\u0431\u044a\u044f\u0432\u043b\u0435\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f: <\/p>\n<pre><code class=\"bash\">Checking alerts\/alerts.node.yml   FAILED:      alerts\/alerts.node.yml: group \"Node exporter alerts\", rule 1, \"Node_exporter_service\": annotation \"description\": template: __alert_Node_exporter_service:1: function \"blababala\" not defined<\/code><\/pre>\n<p>\u0418\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u043b\u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0443:<\/p>\n<pre><code class=\"bash\">Checking \/opt\/prometheus\/etc\/alerts\/alerts.node.yml   FAILED:      alerts\/alerts.node.yml: yaml: line 11: did not find expected key <\/code><\/pre>\n<p>\u041f\u0440\u043e\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u043e\u0434\u0438\u043d \u0430\u043b\u0435\u0440\u0442, \u0442\u0430\u043a \u0447\u0442\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0435\u0442\u0435 \u043c\u043d\u043e\u0433\u043e \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0437\u0430 \u0440\u0430\u0437, \u0438\u043c\u0435\u0435\u0442 \u0441\u043c\u044b\u0441\u043b \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.<\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0447\u0430\u0441\u0442\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u044b, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u0448\u0438\u0440\u043e\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Go Template.<\/p>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0412\u0436\u0438\u0432\u0443\u044e<\/h4>\n<p>\u0422\u0430\u043a\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0443\u043c\u0435\u0441\u0442\u043d\u044b, \u0435\u0441\u043b\u0438 \u0432\u044b \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c Prometheus \u0438\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0442\u0430\u043c \u043c\u0430\u043b\u043e \u0445\u043e\u0441\u0442\u043e\u0432 \u2013 \u043b\u0438\u0448\u043d\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 \u043d\u0435 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442 \u043f\u0430\u043d\u0438\u043a\u0443 \u0441\u0440\u0435\u0434\u0438 \u0434\u0435\u0436\u0443\u0440\u043d\u044b\u0445 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432. \u0410 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 Prometheus \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438. \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0430\u0448 \u0430\u043b\u0435\u0440\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/p>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u0430 \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432 expr \u0432\u043c\u0435\u0441\u0442\u043e \u201c=\u201d \u043f\u0438\u0448\u0435\u043c \u201c!=\u201d, \u0442\u043e\u0433\u0434\u0430 \u0430\u043b\u0435\u0440\u0442 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0447\u0442\u043e-\u0442\u043e \u043b\u043e\u043c\u0430\u0442\u044c.<\/p>\n<p>\u0412 Prometheus \u043f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0435\u0440\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 ALERTS.\u00a0 \u041f\u0440\u044f\u043c\u043e \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Prometheus \u043c\u043e\u0436\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u043d\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0438 \u0432 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0432\u0441\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/757\/f06\/93f\/757f0693f86415f76f72083b23ff02b0.png\" width=\"1006\" height=\"211\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/757\/f06\/93f\/757f0693f86415f76f72083b23ff02b0.png\"\/><\/figure>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a \u043c\u0435\u0442\u0440\u0438\u043a\u0435 ALERTS \u0432 CLI:<\/p>\n<pre><code class=\"bash\">bin\/promtool query instant \"http:\/\/localhost:9090\/prometheus\"   \\                             \"ALERTS{hostname='mydb102',alertname='Node_exporter_service',severity='critical'}\"<\/code><\/pre>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043a Prometheus \u0447\u0435\u0440\u0435\u0437 API:<\/p>\n<pre><code class=\"bash\">curl 'http:\/\/localhost:9090\/prometheus\/api\/v1\/alerts' | jq<\/code><\/pre>\n<h4>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. Unit-Test<\/h4>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0436\u0438\u0432\u0443\u044e \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0443\u0434\u043e\u0431\u043d\u044b, \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f Unit-Test, \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 promtool.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 <strong>unit-test.yml<\/strong>. \u00a0\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0443 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/unit_testing_rules\" rel=\"noopener noreferrer nofollow\">\u0442\u0443\u0442<\/a>.<\/p>\n<pre><code class=\"yaml\">rule_files:     - alerts\/alerts.node.yml evaluation_interval: 1m tests:     - interval: 1m       input_series:           - series: 'up{hostname=\"mydb102\",instance=\"10.10.10.10:9100\",ip=\"10.10.10.10\",                      job=\"node_exporter\", os=\"linux\",owner=\"dba\",sc=\"10.10.11.10\",severity=\"critical\",                      vsp=\"plat198c7000\"}'             values: '0 0 0 0 0 0 0 0 0 0 0 0 0 0 0'       alert_rule_test:           - eval_time: 10m             alertname: 'Node_exporter_service'             exp_alerts:                 - exp_labels:                       severity: 'critical'                       instance: \"10.10.10.10:9100\"                       job: \"node_exporter\"                       ip: \"10.10.10.10\"                       hostname: \"mydb102\"                       os: \"linux\"                       owner: \"dba\"                       sc: \"10.10.11.10\"                       vsp: \"plat198c7000\"                   exp_annotations:                       title: \"Node Exporter is down\"                       description: \"Node exporter does not return any metrics!                                      Check host availability, check process is running.\"                       alertReference: \"https:\/\/www.youtube.com\/watch?v=dQw4w9WgXcQ\"<\/code><\/pre>\n<p>\u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u043a\u0430\u043a\u043e\u0439 \u0444\u0430\u0439\u043b \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a\u0438\u0435 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434\u0435 (<strong>input_series<\/strong>), \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0432 \u044d\u0442\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u0445 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043c\u0435\u0442\u043a\u0438.<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u0432 \u0431\u043b\u043e\u043a\u0435 <strong>alert_rule_test<\/strong> \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043e\u0437\u043d\u0438\u043a\u0448\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b.<\/p>\n<p>\u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0438\u043c\u0435\u043d\u043d\u043e \u0430\u043b\u0435\u0440\u0442\u044b \u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c.<\/p>\n<p>\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 unit-test \u043d\u0430\u0431\u0438\u0440\u0430\u0435\u043c:<\/p>\n<pre><code class=\"bash\">bin\/promtool test rules unit-test.yml<\/code><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u0430\u043a\u043e\u0439 \u043e\u0442\u0432\u0435\u0442:<\/p>\n<pre><code class=\"bash\">Unit Testing:  unit-test.yml   SUCCESS<\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0432\u044b\u0448\u0435 \u0441\u043a\u043e\u0440\u0435\u0435 \u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0438 \u043d\u0435\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439, \u043d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e Go Template, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0438\u0445 \u0434\u0435\u0431\u0430\u0436\u0438\u0442\u044c \u0441 unit-test \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e.<\/p>\n<h4>\u0410\u043b\u0435\u0440\u0442\u044b \u0441 Go template, if, eq, query<\/h4>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0436\u0435\u0441\u0442\u043a\u0438\u0445 \u0434\u0438\u0441\u043a\u043e\u0432 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u043e\u0433\u0434\u0430 \u043b\u043e\u043c\u0430\u044e\u0442\u0441\u044f.<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c Prometheus \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438:<\/p>\n<pre><code>hpe_raid_message{hostname=\"mydb102\", ip=\"10.10.10.10\", job=\"hperaid\", owner=\"dba\", sc=\"10.10.11.10\", vsp=\"plat198c7000\", message=\"RAID WARNING - Component Failure: Array A logicaldrive 1 (1.64 TB, RAID 1+0, OK) Array B logicaldrive 2 (3.27 TB, RAID 5, OK) physicaldrive 1I:3:3 (port 1I:box 3:bay 3, SAS HDD, 900 GB, Predictive Failure)\"} 1 hpe_raid_status{hostname=\" mydb102\", ip=\"10.10.10.10\", job=\"hperaid\", owner=\"dba\", sc=\"10.10.11.10\", vsp=\"plat198c7000\"} 1<\/code><\/pre>\n<p>\u041c\u0435\u0442\u0440\u0438\u043a\u0430 <strong>hpe_raid_status<\/strong> \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f, \u043e\u043d\u0430 \u0440\u0430\u0432\u043d\u0430 0, \u0435\u0441\u043b\u0438 \u0441 \u0434\u0438\u0441\u043a\u0430\u043c\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e, \u0438 \u043d\u0435 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e, \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>\u041d\u043e \u043d\u0430\u043c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043d\u0430\u0448\u0435\u043c \u0430\u043b\u0435\u0440\u0442\u0435 &#8212; \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0447\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u0430 \u0447\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code>hperaid on 10.10.10.10 has problems hperaid check on host 10.10.10.10 mydb102 has returned Warning status (1).  RAID WARNING - Component Failure: Array A logicaldrive 1 (1.64 TB, RAID 1+0, OK) Array B logicaldrive 2 (3.27 TB, RAID 5, OK) physicaldrive 1I:3:3 (port 1I:box 3:bay 3, SAS HDD, 900 GB, Predictive Failure)<\/code><\/pre>\n<p>\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c, \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u043a\u0438 message \u043c\u0435\u0442\u0440\u0438\u043a\u0438 <strong>hpe_raid_message<\/strong>.<\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c?\u00a0 \u041d\u0435\u043c\u043d\u043e\u0433\u043e YAML:<\/p>\n<pre><code class=\"yaml\">- alert: 'hperaid_result'    expr: hpe_raid_status{} != 0    for: 10m    labels:      severity: warning    annotations:      title: 'hperaid on {{ .Labels.ip }} has problems'      description: \"hperaid check on host {{ .Labels.ip }} {{ .Labels.hostname }} has returned                     {{      if eq (.Value | humanize) \\\"0\\\"  }} OK                    {{ else if eq (.Value | humanize) \\\"1\\\"  }} Warning                    {{ else if eq (.Value | humanize) \\\"2\\\"  }} Critical                    {{ else if eq (.Value | humanize) \\\"3\\\"  }} Unknown                    {{ end }} status                    ({{ .Value | printf \\\"%.0f\\\" }}).                    {{ with printf \\\"hpe_raid_message{ip='%s',job='%s'}\\\"                                        .Labels.ip .Labels.job | query }}                    {{ . | first | label \\\"message\\\" }}                    {{end}}\"<\/code><\/pre>\n<p>\u0422\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f (\u043c\u0435\u0441\u0442\u0430, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u0438\u043c \u0446\u0432\u0435\u0442\u043e\u043c, \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u043c\u0435\u0436\u0434\u0443 \u0441\u043e\u0431\u043e\u0439):<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e98\/44a\/ae7\/e9844aae7ecf19458f1b2c929b707389.png\" width=\"1016\" height=\"463\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e98\/44a\/ae7\/e9844aae7ecf19458f1b2c929b707389.png\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0435\u0440\u0442\u0430 Prometheus \u0432\u0435\u0440\u043d\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0441\u043b\u043e\u0432\u0430\u0440\u044c Labels (\u0432 \u043d\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u044b \u0432\u0441\u0435 \u043c\u0435\u0442\u043a\u0438, \u0441\u043e\u043f\u0440\u043e\u0432\u043e\u0436\u0434\u0430\u044e\u0449\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0443) \u0438 \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Value \u2013 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438. <\/p>\n<p>\u041a \u043d\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0438\u0437 Go Template \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439. <\/p>\n<p>\u041d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043d\u0430\u0447\u0430\u043b\u043e\u0441\u044c Go Template \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0434\u0432\u043e\u0439\u043d\u044b\u043c\u0438 \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u043c\u0438 \u0441\u043a\u043e\u0431\u043a\u0430\u043c\u0438 (\u0438 \u0438\u043c\u0438 \u0436\u0435 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u0435\u043c).<\/p>\n<p>\u0412 Go Template \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u043b\u043e\u0432\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 <strong>if<\/strong>, <strong>else<\/strong>, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438. \u0421\u043a\u0430\u0436\u0435\u043c, \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f <strong>humanize<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 float-\u0447\u0438\u0441\u043b\u043e \u0432 \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0433\u043e \u0441\u0442\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 <strong>eq<\/strong> (\u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0438 \u0431\u0435\u0437 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0443, \u043d\u0438\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440). \u0415\u0441\u0442\u044c \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 <strong>query<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c PromQL \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 TSDB, \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0442\u0430\u0449\u0438\u0442\u044c \u043e\u0442\u0442\u0443\u0434\u0430 \u043d\u043e\u0432\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a (\u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u043b\u0438\u0448\u043d\u0435\u0435 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043a\u0441\u0442 \u0432 \u043c\u0435\u0442\u043a\u0435 message).<\/p>\n<h4>\u0410\u043b\u0435\u0440\u0442\u044b \u0441 Go template, if, eq, query: UnitTest<\/h4>\n<p>\u0410 \u0432\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c unit test \u0431\u0443\u0434\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u0436\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u043d \u0438 \u043d\u0435 \u0441\u043a\u0443\u0447\u0435\u043d.<\/p>\n<p>\u0421\u043d\u043e\u0432\u0430 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u041d\u0435 \u0431\u0443\u0434\u0435\u043c \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u043d\u0435\u043c \u0436\u0435 \u0432\u0441\u0435 \u0430\u043b\u0435\u0440\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c:<\/p>\n<pre><code class=\"yaml\">\u2026 input_series:  - series: 'hpe_raid_message{hostname=\"mydb102\", ip=\"10.10.10.10\", job=\"hperaid\", owner=\"dba\", sc=\"10.10.11.10\", vsp=\"plat198c7000\",message=\"RAID WARNING - Component Failure: Array A logicaldrive 1 (1.64 TB, RAID 1+0, OK) Array B logicaldrive 2 (3.27 TB, RAID 5, OK) physicaldrive 1I:3:3 (port 1I:box 3:bay 3, SAS HDD, 900 GB, Predictive Failure)\"}'    values: '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1'  - series: 'hpe_raid_status{hostname=\" mydb102\", ip=\"10.10.10.10\", job=\"hperaid\", owner=\"dba\", sc=\"10.10.11.10\", vsp=\"plat198c7000\"}'    values: '1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1' alert_rule_test:  - eval_time: 11m    alertname: hperaid_result' \u2026<\/code><\/pre>\n<h3>\u0421\u0440\u0430\u0437\u0443 \u0436\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443:<\/h3>\n<pre><code class=\"bash\">bin\/promtool test rules unit-test.yml<\/code><\/pre>\n<p>\u0422.\u043a. \u043c\u044b \u043d\u0435 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043b\u0438 \u0430\u043b\u0435\u0440\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c, \u0438\u043c\u0435\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441 FAILED, \u043d\u043e \u0437\u0430\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0436\u0435\u043b\u0430\u0435\u043c\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438:<\/p>\n<pre><code class=\"bash\">Unit Testing:  unit-test.yml   FAILED:     alertname: hperaid_result, time: 11m,          exp:[             0:               Labels:{alertname=\"hperaid_result\"}               Annotations:{}             ],          got:[             0:           Labels:{alertname=\"hperaid_result\", hostname=\" mydb102\", ip=\"10.10.10.10\", job=\"hperaid\", owner=\"dba\", sc=\"10.10.11.10\", severity=\"warning\", vsp=\"plat198c7000\"}           Annotations:{description=\"hperaid check on host 10.10.10.10  mydb102 has returned  Warning  status (1).  RAID WARNING - Component Failure: Array A logicaldrive 1 (1.64 TB, RAID 1+0, OK) Array B logicaldrive 2 (3.27 TB, RAID 5, OK) physicaldrive 1I:3:3 (port 1I:box 3:bay 3, SAS HDD, 900 GB, Predictive Failure) \", title=\"hperaid on 10.10.10.10 has problems\"}<\/code><\/pre>\n<p>\u0410 \u0432\u043e\u0442 \u043a\u0430\u043a \u043c\u043e\u0433\u043b\u0430 \u0431\u044b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0430, \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u043d\u0430\u044f \u0432 GoTemplate:<\/p>\n<pre><code class=\"bash\">alerts\/alerts.node.testrule.yml: group \"Testing alerts\", rule 3, \"hperaid_result\": annotation \"description\": template: __alert_hperaid_result:1: unexpected \"}\" in operand<\/code><\/pre>\n<p>\u0412 unit-test \u0435\u0435 \u043b\u0435\u0433\u043a\u043e \u043e\u0442\u043b\u043e\u0432\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0432 \u043f\u0440\u043e\u0434.<\/p>\n<h4>\u0410\u043b\u0435\u0440\u0442\u044b \u0441 Go template, \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438<\/h4>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043d\u0430 hpilo_ \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 _status<\/p>\n<pre><code>hpilo_battery_status\u00a00  hpilo_bios_hardware_status 1  hpilo_fan_status 0 hpilo_memory_status 2  hpilo_power_supply_status 0  hpilo_processor_status 0 hpilo_running_status 0  hpilo_storage_controller_health_status 0  hpilo_storage_enclosure_health_status 0  hpilo_storage_ld_health_status 0  hpilo_storage_pd_health_status 0<\/code><\/pre>\n<p>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442 0 \u0434\u043e 3. \u041c\u044b \u0431\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043c\u0435\u0442\u043a\u0430 severity \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043f\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0443:<\/p>\n<p>0 \u2013 ok<br \/>1 \u2013 warning<br \/>2 \u2013 critical<br \/>3 \u2013 warning<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043c \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043f\u0438\u0441\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0430\u043b\u0435\u0440\u0442\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u043c\u0435\u0442\u0440\u0438\u043a, \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0430\u043b\u0435\u0440\u0442\u0430.<\/p>\n<p>\u041a\u0430\u043a \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Go Template \u0438 PromQL?<\/p>\n<pre><code class=\"yaml\">- alert: 'HWstatus'     expr: '{job=\"hpilo\", __name__=~\"hpilo_.*status\"} > 0'     for: 0s     labels:       severity: \"{{ if or ( eq ($value) 1.0 ) ( eq ($value) 3.0 }}warning                  {{ else }}critical{{ end }}\"       metric: '{{ .Labels.__name__ }}'     annotations: ...<\/code><\/pre>\n<p>\u041c\u0435\u0442\u043a\u0430 severity \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0438\u0437 Go Template. \u0418 \u0434\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 float \u0441 \u0446\u0435\u043b\u044b\u043c (\u0431\u0435\u0437 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0441\u0442\u0440\u043e\u043a\u0443). \u041d\u0443\u0436\u043d\u043e \u0434\u043e\u043f\u0438\u0441\u0430\u0442\u044c .0 \u0440\u044f\u0434\u043e\u043c \u0441\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0447\u0438\u0441\u043b\u043e\u043c (1.0 \u0438 3.0), \u0447\u0442\u043e\u0431\u044b Go \u043f\u043e\u043d\u044f\u043b, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 float.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c unit-test, \u0442\u043e \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0445\u043e\u0442\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u043d\u043e, \u0430\u043b\u0435\u0440\u0442\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0434\u0432\u0430 \u0438 severity \u0443 \u043d\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0439:<\/p>\n<pre><code class=\"yaml\">0: Labels:{alertname=\"HWstatus\", metric=\"hpilo_bios_hardware_status\", severity=\"warning\"} 1: Labels:{alertname=\"HWstatus\", metric=\"hpilo_memory_status\", severity=\"critical\"}<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b.<\/p>\n<h4>\u0410\u043b\u0435\u0440\u0442\u044b \u0441 Go template, \u0433\u0434\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438?<\/h4>\n<p>\u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435\u043a\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 <strong>space_used_on_disk_percent<\/strong>. \u041c\u044b \u043b\u0435\u043d\u0438\u0432\u044b \u0438 \u0445\u043e\u0442\u0438\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0434\u043b\u044f \u0430\u043b\u0435\u0440\u0442\u0430, \u0447\u0442\u043e\u0431\u044b <strong>severity<\/strong> \u0431\u044b\u043b <strong>warning<\/strong> \u043f\u0440\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043e\u0442 80 \u0434\u043e 90 \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u043b\u0441\u044f \u0432 <strong>critical,<\/strong> \u0435\u0441\u043b\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 90.<\/p>\n<p>\u0412\u043e\u0432\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u043b \u0431\u044b \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8d1\/9a9\/59a\/8d19a959ac71b690176009e07fac67a3.png\" width=\"895\" height=\"494\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8d1\/9a9\/59a\/8d19a959ac71b690176009e07fac67a3.png\"\/><\/figure>\n<p>\u041d\u043e \u043d\u0435\u0442. <strong>\u0422\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f<\/strong>. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u043b\u0443\u0447\u0430\u0439, \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0448\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0432\u0435\u0440\u0445-\u0432\u043d\u0438\u0437 \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a0f\/ec7\/2fc\/a0fec72fceaca27f16de928c6b33e131.png\" width=\"911\" height=\"545\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a0f\/ec7\/2fc\/a0fec72fceaca27f16de928c6b33e131.png\"\/><\/figure>\n<p>\u0412\u043f\u043e\u043b\u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430. \u041e\u0434\u043d\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u043f\u0438\u0448\u0435\u0442 \u043b\u043e\u0433 \u0432 \u0444\u0430\u0439\u043b, \u0437\u0430\u0442\u0435\u043c \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u0440\u043e\u0442\u0430\u0446\u0438\u044f \u0438 \u0441\u0442\u0430\u0440\u044b\u0439 \u043b\u043e\u0433 \u0443\u0434\u0430\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>\u0427\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433\u0430 \u0432 Prometheus?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/08e\/79a\/c92\/08e79ac92a5730125dcd4d5cbd887ca6.png\" width=\"905\" height=\"545\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/08e\/79a\/c92\/08e79ac92a5730125dcd4d5cbd887ca6.png\"\/><\/figure>\n<p>\u0412 \u0433\u043b\u0430\u0437\u0430\u0445 Prometheus \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0434\u0432\u0435 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438, \u0441 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0449\u0438\u043c\u0441\u044f \u0442\u0435\u0433\u043e\u043c <strong>severity<\/strong>, \u043d\u043e \u043e\u0431\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043d\u0430 3 \u043c\u0438\u043d\u0443\u0442\u044b (\u043f\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u0438), \u0430 \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u0447\u0435\u0437\u0430\u0442\u044c, \u043d\u0435 \u0434\u043e\u0436\u0434\u0430\u0432\u0448\u0438\u0441\u044c \u043d\u0443\u0436\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0432 for: 10m (10 \u043c\u0438\u043d\u0443\u0442).<\/p>\n<p>\u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0430\u043a \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f. <strong>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0435\u0441\u0442\u044c, \u0430 \u0430\u043b\u0435\u0440\u0442\u0430 \u041d\u0415\u0422! \u041d\u0435\u0442 \u0434\u0430\u0436\u0435 warning:<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1d3\/1fd\/306\/1d31fd306787d62821b1219a07323b22.png\" width=\"1013\" height=\"631\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1d3\/1fd\/306\/1d31fd306787d62821b1219a07323b22.png\"\/><\/figure>\n<p>\u0414\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u043a\u0438 \u0432\u044b\u0433\u043e\u0434\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043d\u0430 \u0430\u043b\u0435\u0440\u0442\u0430\u0445 \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c for, \u043b\u0438\u0431\u043e \u043d\u0430 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u0430\u0434\u0443\u0442 \u0432\u0430\u043c \u0432 \u0441\u0432\u043e\u0438\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u0445 \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0432\u044b\u0448\u0435 \u201c\u043f\u0438\u043b\u044b\u201d.<\/p>\n<p>\u0427\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439 space_used_on_disk_percent? \u041a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u043b\u0435\u0440\u0442\u0438\u043d\u0433 \u043f\u043e \u043d\u0435\u0439?<\/p>\n<p>\u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438, \u0447\u0435\u0440\u0435\u0437 \u0434\u0432\u0430 \u0430\u043b\u0435\u0440\u0442\u0430 \u0432 <strong>alerts\/alerts.node.yml<\/strong>:<\/p>\n<pre><code class=\"yaml\">- alert: 'DiskSpace'     expr: space_used_on_disk_percent > 80     for: 10m     labels:       severity: \"warning\" ...  - alert: 'DiskSpace'     expr: space_used_on_disk_percent > 90     for: 10m     labels:       severity: \"critical\" ...<\/code><\/pre>\n<p>\u0410 \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0434\u0432\u0430 \u043f\u0438\u0441\u044c\u043c\u0430 (\u0438 \u043e warning, \u0438 \u043e critical), \u0434\u043e\u0431\u0430\u0432\u0438\u043c inhibit_rule \u0432 \u043a\u043e\u043d\u0444\u0438\u0433 AlertManager (<strong>alertmanager.yml):<\/strong><\/p>\n<pre><code class=\"yaml\">inhibit_rules:   - source_match:       severity: 'critical'     target_match:       severity: 'warning'     equal: ['alertname', 'instance' ]<\/code><\/pre>\n<p>\u042d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c silence \u043d\u0430 \u0430\u043b\u0435\u0440\u0442 warning, \u0435\u0441\u043b\u0438 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0430\u043b\u0435\u0440\u0442 \u0441 severity critical.<\/p>\n<h4>\u0410\u043b\u0435\u0440\u0442\u044b \u0441 Go template, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0433\u0438<\/h4>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u043c\u0435\u0442\u0440\u0438\u043a, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e \u0442\u043e\u043c, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435:<\/p>\n<pre><code>Mib_LBR_Status{instance=\"10.10.10.31\", job=\"MIB\"} 1  Mib_SMSC_Status{instance=\"10.10.10.32\", job=\"MIB\"} 1  Mib_USSDC_Status{instance=\"10.10.10.33\", job=\"MIB\"} 0  Mib_MNP_WII_SCPwii_Status{instance=\"10.10.10.34\", job=\"MIB\"} 1<\/code><\/pre>\n<p>\u0412\u0441\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0441\u043b\u043e\u0432\u043e Mib_ \u0438 \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 _Status, \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0441\u043b\u043e\u0432\u0430\u043c\u0438 \u0441\u043f\u0440\u044f\u0442\u0430\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. <\/p>\n<p>\u041c\u0435\u0442\u043a\u0430 job \u0440\u0430\u0432\u043d\u0430 \u201cMIB\u201d, 1 \u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, 0 \u2013 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a \u043b\u0443\u0447\u0448\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0430\u043b\u0435\u0440\u0442\u044b?<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u0440\u043e \u043a\u0430\u0436\u0434\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430, \u0440\u0438\u0441\u043a\u0443\u044f \u043d\u0430\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u043e\u043f\u0435\u0447\u0430\u0442\u043e\u043a:<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/196\/d42\/849\/196d42849581f697fa68fd272ed10258.png\" width=\"382\" height=\"292\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/196\/d42\/849\/196d42849581f697fa68fd272ed10258.png\"\/><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0434\u0438\u043d \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 \u043e\u0442 \u0412\u043e\u0432\u043a\u0438, \u0432\u044b\u043a\u0438\u043d\u0443\u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c27\/21f\/afe\/c2721fafe6587a6b3e3a6bbf5d12c63a.png\" width=\"916\" height=\"276\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c27\/21f\/afe\/c2721fafe6587a6b3e3a6bbf5d12c63a.png\"\/><\/figure>\n<p>\u041d\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0438\u043b\u043e\u0439 PromQL \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 <strong>Application<\/strong> \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">- alert: 'Application is not running'     #expr: '{job=\"MIB\",__name__=~\"Mib_.*_Status\"} !=1'     expr: 'label_replace(  {job=\"MIB\",__name__=~\"Mib_.*_Status\"}, \"Application\",   \"$1\", \"__name__\",   \"Mib_(.*)_Status\"  )  != 1'     for: 0s     labels:       severity: 'warning'     annotations:       title: '{{ .Labels.Application }} is not running'       description: 'Metric Mib_{{ .Labels.Application }}_Status on host {{ .Labels.instance }} shows that                      {{ .Labels.Application }} is not running'<\/code><\/pre>\n<p>\u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae6\/8be\/e1e\/ae68bee1e8670ae65b25d879ea73b98b.png\" width=\"889\" height=\"391\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae6\/8be\/e1e\/ae68bee1e8670ae65b25d879ea73b98b.png\"\/><\/figure>\n<h4>\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0440\u043e\u0433\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f, *_over_time<\/h4>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u0431\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0440\u043e\u0433\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0441\u044f \u0438 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0435\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u0443\u044e \u043c\u0438\u043d\u0443\u0442\u0443. \u0421\u043e\u0431\u0438\u0440\u0430\u0435\u043c \u0435\u0435 \u0440\u0430\u0437 \u0432 15 \u043c\u0438\u043d\u0443\u0442 (900 \u0441\u0435\u043a\u0443\u043d\u0434). \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Prometheus \u044d\u0442\u0443 \u043c\u0435\u0442\u0440\u0438\u043a\u0443, \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0432\u043e\u0442 \u0442\u0430\u043a\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dba\/28e\/c7c\/dba28ec7cfb1251e40de5179b3c274fb.png\" width=\"977\" height=\"472\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dba\/28e\/c7c\/dba28ec7cfb1251e40de5179b3c274fb.png\"\/><\/figure>\n<p>\u0414\u0430, \u043f\u043e\u0438\u0433\u0440\u0430\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0432 Grafana, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c null \u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435 \u0442\u043e\u0447\u043a\u0438, \u0434\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c, \u043d\u043e \u0430\u043b\u0435\u0440\u0442 \u0442\u0430\u043a \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f.<\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043b\u044e\u0431\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u0437 \u043d\u0430\u0431\u043e\u0440\u0430 *_over_time, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 max_over_time.<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0433\u043e \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0430\u043b\u0435\u0440\u0442\u0430 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u043e\u0433\u043e \u0432\u0438\u0434\u0430:<\/p>\n<pre><code class=\"yaml\">expr:      max_over_time(hard_to_get_metric[900s]) > 5000<\/code><\/pre>\n<h4>\u0421\u043b\u043e\u0436\u043d\u044b\u0435 \u043f\u043e\u0440\u043e\u0433\u0438 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043d\u0438\u044f, offset<\/h4>\n<p>\u0418\u043d\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u0435\u0442\u0440\u0438\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u041d\u043e\u0447\u044c\u044e \u0430\u0431\u043e\u043d\u0435\u043d\u0442\u044b \u0441\u043f\u044f\u0442, \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043f\u0430\u0434\u0430\u0435\u0442, \u0434\u043d\u0435\u043c \u043e\u043d\u0430 \u0441\u043d\u043e\u0432\u0430 \u0440\u0430\u0441\u0442\u0435\u0442. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 \u00a0\u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u043d\u0430 10 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043e\u0432.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6d4\/c61\/9e4\/6d4c619e4fe3e8bd7124b0a9546b6016.png\" width=\"931\" height=\"626\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6d4\/c61\/9e4\/6d4c619e4fe3e8bd7124b0a9546b6016.png\"\/><\/figure>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u044c PromQL \u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f offset \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441 \u043d\u0435\u0439 \u0441\u0430\u043c\u043e\u0439 \u0436\u0435 \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434:<\/p>\n<pre><code class=\"yaml\">expr: 'abs(    100 * (           Mib_SCP_ONLINE_CountLogic_counter           -           (Mib_SCP_ONLINE_CountLogic_counter{} offset 1w)          )        \/          (Mib_SCP_ONLINE_CountLogic_counter{} offset 1w)    )   > 10'<\/code><\/pre>\n<p>\u041d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0433\u043e\u0432\u043e\u0440\u043a\u0443, \u0447\u0442\u043e \u044d\u0442\u0443 \u0438\u0434\u0435\u044e \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c: \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u043d\u0435\u0434\u0435\u043b\u044e \u043d\u0430\u0437\u0430\u0434 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u0430\u0432\u0430\u0440\u0438\u044f, \u0431\u0443\u0434\u0435\u0442 \u043f\u0430\u0434\u0430\u0442\u044c \u0430\u043b\u0435\u0440\u0442 \u043f\u0440\u0438 \u0435\u0435 \u043d\u0435\u043f\u043e\u0432\u0442\u043e\u0440\u0435\u043d\u0438\u0438. <\/p>\n<p>\u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0440\u0435\u0434\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0442\u0440\u0435\u0445 \u043d\u0435\u0434\u0435\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 rules. \u042f \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0443\u0431\u0440\u0430\u043b \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f.<\/p>\n<h4>\u0418\u043c\u043c\u0443\u043d\u0438\u0442\u0435\u0442 \u043e\u0442 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 (\u0442\u044d\u0433 noAlertOn)<\/h4>\n<p>\u0412 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0431\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u0438\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043c\u0435\u044e\u0442 \u043f\u0440\u0430\u0432\u043e \u043b\u0435\u0433\u0438\u0442\u0438\u043c\u043d\u043e \u0432\u0435\u0441\u0442\u0438 \u0441\u0435\u0431\u044f \u043d\u0435 \u0442\u0430\u043a, \u043a\u0430\u043a \u0434\u0440\u0443\u0433\u0438\u0435. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043c\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431 \u044d\u0442\u043e\u043c \u0430\u043b\u0435\u0440\u0442\u044b?<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1ce\/ff2\/1ab\/1ceff21abfe7bcd873fd1a5873544315.png\" width=\"550\" height=\"209\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1ce\/ff2\/1ab\/1ceff21abfe7bcd873fd1a5873544315.png\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0443\u0437\u043b\u0430 \u0432 inventory \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u043e\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043c\u0435\u0442\u043a\u0443 <strong>noAlertOn,<\/strong> \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0432\u0441\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u043c\u043c\u0443\u043d\u0438\u0442\u0435\u0442:<\/p>\n<pre><code class=\"yaml\">- targets:   - 10.10.10.10   labels:     jobs: \"node_exporter,blackbox-ssh,hpilo,mpath,hperaid\"     owner: \"dba\"     hostname: \"mydb102\"     sc: 10.10.11.10     vsp: plat198c7000     noAlertOn: \"bond,space\"<\/code><\/pre>\n<p>\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f \u0438 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0445 \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0430\u043b\u0435\u0440\u0442 \u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u043c \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u0432 \u0432 Linux (bonding) \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">- alert: \"Bond degraded\"     expr: (node_bonding_active{ noAlarmOn!~\"(.*,|^)bond(,.*|$)\" } - node_bonding_slaves) != 0     for: 1m     labels:       severity: 'warning'     annotations:       title: \"Bonding status\"       description: 'Bond {{ $labels.master }} is degraded.'<\/code><\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043b\u0441\u044f \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u043c\u0435\u0442\u043a\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0441\u043b\u043e\u0432\u043e bond: \u00a0noAlarmOn!~&#187;(.*,|^)bond(,.*|$)&#187;.<\/p>\n<h3>\u0424\u0438\u043a\u0441\u0438\u043a\u0438 (event handlers)<\/h3>\n<p>\u041c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0448\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0441\u0430\u043c\u0430 \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u0438\u043c\u0430\u043b\u0430 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043b\u043e\u043c\u043a\u0438.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/4b7\/6c2\/fc7\/4b76c2fc7af294f3e1f81c26d11c9c40.png\" width=\"989\" height=\"446\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4b7\/6c2\/fc7\/4b76c2fc7af294f3e1f81c26d11c9c40.png\"\/><\/figure>\n<p>\u041c\u044b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0435 up{job=\u201dnode_exporter\u201d} ,\u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0432\u043e\u0435 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u043e \u0447\u0435\u0440\u0435\u0437 3 \u043c\u0438\u043d\u0443\u0442\u044b \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 severity=event (+ \u0434\u043e\u043f. \u043c\u0435\u0442\u043a\u0430 handler \u0441 IP), \u0430 \u0432\u0442\u043e\u0440\u043e\u0435 &#8212; \u0447\u0435\u0440\u0435\u0437 10 \u043c\u0438\u043d\u0443\u0442 \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 critical.<\/p>\n<p>\u0412 AlertManager \u043c\u044b \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0447\u0442\u043e \u0430\u043b\u0435\u0440\u0442\u044b \u0441 severity=event \u043c\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f webhook <a href=\"https:\/\/github.com\/jjneely\/am-event-handler\" rel=\"noopener noreferrer nofollow\">an-event-handler<\/a>.<\/p>\n<p><strong>\u041a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?<\/strong><\/p>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u043e\u0436\u0438\u043c, \u0447\u0442\u043e \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u043c \u0443\u0437\u043b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0435\u0448\u0438\u043b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c firewall. \u0418, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u043f\u0440\u043e\u0440\u0435\u0437\u0430\u043b \u043f\u043e\u0440\u0442 9100 \u0434\u043b\u044f \u0430\u0433\u0435\u043d\u0442\u0430 node_exporter. \u0412\u0441\u0435 \u0441\u043b\u043e\u043c\u0430\u043b\u043e\u0441\u044c.<\/p>\n<p>\u0427\u0435\u0440\u0435\u0437 \u0442\u0440\u0438 \u043c\u0438\u043d\u0443\u0442\u044b \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0435\u0442 \u0430\u043b\u0435\u0440\u0442 c severity=event \u0438 AlertManager \u043e\u0442\u0434\u0430\u0441\u0442 \u0435\u0433\u043e an-event-handler, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u201cnode IP\u201d \u0438 \u043f\u043e\u0439\u043c\u0435\u0442, \u0447\u0442\u043e \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Ansible playbook \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 node_exporter \u043d\u0430 \u0443\u0437\u0435\u043b \u0441 \u044d\u0442\u0438\u043c IP. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u0442 playbook \u0432 \u043a\u043e\u043d\u0446\u0435 \u0443\u0432\u0438\u0434\u0438\u0442, \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043a\u043b\u044e\u0447\u0435\u043d firewall \u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0440\u0435\u0437\u0430\u0442\u044c \u0432 \u043d\u0435\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0434\u044b\u0440\u043a\u0443 9100\/tcp. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043d\u0430\u0448 \u0430\u043b\u0435\u0440\u0442 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u0441\u044f.<\/p>\n<p>\u041d\u043e \u0435\u0441\u043b\u0438 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0438 ansible \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u0443\u0437\u043b\u0443, \u0442\u043e \u0447\u0435\u0440\u0435\u0437 \u0448\u0435\u0441\u0442\u044c \u0441 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u043e\u0439 \u043c\u0438\u043d\u0443\u0442 \u0437\u0430\u0433\u043e\u0440\u0438\u0442\u0441\u044f \u0432\u0442\u043e\u0440\u043e\u0439 \u0430\u043b\u0435\u0440\u0442 \u0441 severity=critical, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0443\u0436\u0435 \u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0430\u0434\u043c\u0438\u043d\u044b.<\/p>\n<h3>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h3>\n<p>Prometheus &#8212; \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430. \u041d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0436\u0438\u0437\u043d\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0437\u043e\u0432 \u0432 \u043d\u0435\u0439 \u043c\u043e\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u0442\u044c. \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u044d\u0442\u0430 \u043c\u043e\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043b\u0435\u0437\u043d\u0430. \u041e\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438, \u0433\u0434\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441.<\/p>\n<h3>\u0421\u0441\u044b\u043b\u043a\u0438 <\/h3>\n<ul>\n<li>\n<p>\u041d\u0430\u0431\u043e\u0440\u044b \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 <a href=\"https:\/\/awesome-prometheus-alerts.grep.to\/rules.html\" rel=\"noopener noreferrer nofollow\">awesome-prometheus-alerts<\/a>, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0432\u0441\u0435, \u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u0431\u044b, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u0441\u044f. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0442\u0430\u043c \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0447\u0442\u043e-\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u0435, \u043e \u0447\u0435\u043c \u0432\u044b \u0437\u0430\u0431\u044b\u043b\u0438.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/configuration\/unit_testing_rules\" rel=\"noopener noreferrer nofollow\">\u041e unit testing<\/a> \u0432 Prometheus.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/demo.karma-dashboard.io\/\" rel=\"noopener noreferrer nofollow\">\u041e\u043d\u043b\u0430\u0439\u043d \u0434\u0435\u043c\u043e-\u0434\u0430\u0448\u0431\u043e\u0440\u0434 Karma<\/a>. <\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/prymitive\/karma\/\" rel=\"noopener noreferrer nofollow\">\u0414\u0430\u0448\u0431\u043e\u0440\u0434 Karma<\/a>. <\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/jjneely\/am-event-handler\" rel=\"noopener noreferrer nofollow\">Event Handler (\u0424\u0438\u043a\u0441\u0438\u043a\u0438)<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/pkg.go.dev\/text\/template\" rel=\"noopener noreferrer nofollow\">Go Template syntax <\/a>&amp; <a href=\"https:\/\/camlittle.com\/go-template-validation\" rel=\"noopener noreferrer nofollow\">Go Template Online validation. <\/a><\/p>\n<\/li>\n<li>\n<p>\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b: <a href=\"https:\/\/stackoverflow.com\/a\/62815781\/6788478\" rel=\"noopener noreferrer nofollow\">Q1<\/a>,\u00a0 <a href=\"https:\/\/stackoverflow.com\/a\/59378907\/6788478\" rel=\"noopener noreferrer nofollow\">Q2<\/a>,\u00a0 <a href=\"https:\/\/github.com\/prymitive\/karma\/issues\/4789\" rel=\"noopener noreferrer nofollow\">Q3<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/n27051538\/solaris_exporter\" rel=\"noopener noreferrer nofollow\">Solaris exporter<\/a> \u00a0(\u043a \u0442\u0435\u043c\u0435 \u043d\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f, \u043d\u043e \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043c\u043e\u044f \u0440\u0430\u0431\u043e\u0442\u0430, \u0432\u0434\u0440\u0443\u0433 \u0432 \u0432\u0430\u0448\u0435\u043c \u0437\u043e\u043e\u043f\u0430\u0440\u043a\u0435 \u0435\u0441\u0442\u044c Solaris?).<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/n27051538\/hpilo-exporter\" rel=\"noopener noreferrer nofollow\">HP iLO exporter<\/a> (\u043c\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 exporter \u0434\u043b\u044f HPE iLO, \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439).<\/p>\n<\/li>\n<li>\n<p>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e \u044d\u043ac\u043f\u043e\u0440\u0442\u0443\/\u0438\u043c\u043f\u043e\u0440\u0442\u0443 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0432 Grafana <a href=\"https:\/\/github.com\/n27051538\/grafana-import-export\" rel=\"noopener noreferrer nofollow\">Grafana-Import-Export<\/a> (\u0432\u0430\u043c \u044d\u0442\u043e \u0442\u043e\u0436\u0435 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445      \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430\u0445 Grafana).<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/761080\/\"> https:\/\/habr.com\/ru\/articles\/761080\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption>&#171;\u0415\u0441\u043b\u0438 \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043f\u0435\u0440\u0435\u0434 \u0441\u043e\u0431\u043e\u0439 \u0447\u0430\u0448\u043a\u0443 \u0441 \u043a\u043e\u0444\u0435 &#8212; \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0437\u043d\u0430\u043a&#187;  <\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0413\u043e\u043b\u0438\u043a\u043e\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Bercut. \u041d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0438 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 IT-\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u0443\u0441\u043b\u0443\u0433 \u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041a\u043e\u0440\u043e\u0442\u043a\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043c\u044b \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u043c \u0446\u0438\u0444\u0440\u043e\u0432\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u0412 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439, \u0421\u0425\u0414, \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u043e\u043c, \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 Bercut c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438. \u0414\u043b\u044f \u0430\u0433\u0440\u0435\u0433\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Prometheus.<\/p>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 Prometheus \u0432 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u043b\u044e \u0432\u0430\u0441 \u0441 Karma alert dashboard \u0438 \u043f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u041d\u0430\u043f\u0438\u0448\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 Go Template \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u044e \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u0433\u0434\u0435 \u0442\u0430\u043a\u0438\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043a\u0430\u0437\u0430\u043d\u044b. \u041f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e, \u043a\u0430\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043c\u0435\u0442\u043e\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438\u0437 \u043e\u0431\u0449\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b, \u0438 \u043e\u0431\u0443\u0447\u0443 Prometheus \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0447\u0438\u043d\u0438\u0442\u044c \u043f\u043e\u043b\u043e\u043c\u043a\u0438.<\/p>\n<h3>\u041d\u0430\u0447\u043d\u0435\u043c<\/h3>\n<p>\u0412 \u044d\u0442\u043e\u0439 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u044f \u043d\u0435 \u043a\u0430\u0441\u0430\u044e\u0441\u044c \u044d\u0442\u0430\u043f\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus. \u041d\u043e\u0432\u0438\u0447\u043a\u0430\u043c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u043a\u0430\u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 <a href=\"https:\/\/prometheus.io\/docs\/tutorials\/getting_started\/\" rel=\"noopener noreferrer nofollow\">Getting Started<\/a> \u0440\u0430\u0437\u0434\u0435\u043b\u043e\u043c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 Prometheus.io, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043a\u0430\u0447\u0430\u0442\u044c \u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0449\u0435\u043b\u043a\u0430\u0442\u044c <a href=\"https:\/\/grafana.com\/grafana\/\" rel=\"noopener noreferrer nofollow\">Grafana<\/a>.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438-\u0442\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438. \u0412\u0441\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u043d\u043e \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0430\u043b\u0435\u0439, \u0433\u043b\u0430\u0437\u0430 \u0440\u0430\u0437\u0431\u0435\u0433\u0430\u044e\u0442\u0441\u044f. \u0425\u043e\u0447\u0435\u0442\u0441\u044f \u0443\u0431\u0440\u0430\u0442\u044c \u0441 \u044d\u043a\u0440\u0430\u043d\u0430 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u043a \u0431\u043e\u043b\u044c\u0448\u043e\u043c\u0443 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438, \u0430 \u043d\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043d\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445, \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0437\u0435\u043b\u0435\u043d\u044b\u043c. <\/p>\n<p>\u0412 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e Prometheus \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u043f\u043e \u0438\u043c\u0435\u044e\u0449\u0438\u043c\u0441\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c(alert_rules). \u041f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0438\u0445 \u043b\u0443\u0447\u0448\u0435 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u043e\u0432\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0439 \u0441 \u043d\u0438\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>AlertManager \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0414\u043b\u044f \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 \u0441\u0432\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 (E-mail, MS Teams, Zulip, Telegram, Karma \u0438 \u0434\u0440\u0443\u0433\u0438\u0435). \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434 \u0443 \u043d\u0430\u0441 \u0431\u0443\u0434\u0443\u0442 \u0444\u0438\u043a\u0441\u0438\u043a\u0438, \u0442.\u0435. \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0447\u0438\u043d\u043a\u0438.<\/p>\n<p>Karma \u2013 \u044d\u0442\u043e \u0435\u0434\u0438\u043d\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0434\u043b\u044f \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043e \u043d\u0435\u043c \u043f\u043e\u0437\u0436\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0439. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u2013 \u043d\u0430 \u043d\u0435\u043c \u043d\u0430\u0440\u0438\u0441\u043e\u0432\u0430\u043d\u0430 \u043a\u0440\u0443\u0436\u0435\u0447\u043a\u0430 \u043a\u043e\u0444\u0435.<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u0432 \u044d\u0442\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u043c\u044b \u0440\u0430\u0437\u0433\u0440\u0443\u0437\u0438\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u043e\u0442 \u043d\u0435\u0440\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0441\u0435\u0445 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0432 Grafana \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u043c \u0435\u043c\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u0435 \u043a\u0430\u043d\u0430\u043b\u044b \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437 \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<h3>\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h3>\n<p>\u041e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c \u2013 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u043e\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0443\u0434\u0432\u043e\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435, \u043a\u0430\u0436\u0434\u044b\u0439 \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u0443\u0437\u043b\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438.<br \/> \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u0435\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0435 \u0442\u0430\u043a \u043a\u0430\u0436\u0434\u044b\u0439 Prometheus \u043e\u0442\u0441\u044b\u043b\u0430\u0435\u0442 \u0441\u0432\u043e\u0438 \u0430\u043b\u0435\u0440\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 Alertmanager, \u043d\u043e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043d\u044b\u0435 \u0441\u0432\u044f\u0437\u0438.<\/p>\n<p>\u0422.\u043a. \u0432\u0441\u0435 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u043c\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0438 \u0430\u043b\u0435\u0440\u0442\u044b \u0432 \u043e\u0431\u043e\u0438\u0445 Prometheus \u0438\u0434\u0435\u043d\u0442\u0438\u0447\u043d\u044b, \u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043a\u0430\u043a\u0438\u0445-\u0442\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0430\u043b\u0435\u0440\u0442\u044b \u0432\u0441\u043f\u043b\u044b\u0432\u0443\u0442 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043d\u0438\u0445, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0441\u0442 \u0438\u0445 \u0432 \u0441\u0432\u043e\u0439 Alertmanager. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e \u0434\u0432\u043e\u0439\u043d\u044b\u0445 \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0439 \u043e\u0431 \u0430\u043b\u0435\u0440\u0442\u0430\u0445, Alertmanager \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u044b \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440. \u041a\u043b\u0430\u0441\u0442\u0435\u0440 Alertmanager \u0434\u0435\u043b\u0430\u0435\u0442 \u0434\u0435\u0434\u0443\u0431\u043b\u0435\u043a\u0430\u0446\u0438\u044e \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0438\u0445 \u043e\u0434\u0438\u043d \u0440\u0430\u0437.<\/p>\n<p>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043e\u0442\u043a\u0430\u0437\u0430 \u043b\u044e\u0431\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0438\u0437 \u0434\u0432\u0443\u0445 \u0446\u0435\u043f\u043e\u0447\u0435\u043a \u0443 \u043d\u0430\u0441 \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0432\u0442\u043e\u0440\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430, \u0438 \u044d\u0442\u043e \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0437\u0434\u043e\u0440\u043e\u0432\u044b\u043c.<\/p>\n<p>\u0414\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 Karma. \u0415\u0441\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 Karma \u043e\u0442\u043a\u0430\u0436\u0435\u0442, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043c\u043e\u0436\u0435\u0442 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439 \u0443\u0437\u0435\u043b (\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c virtual IP, \u0447\u0442\u043e\u0431\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441).<\/p>\n<h4>\u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 Karma<\/h4>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0430\u043b\u0435\u0440\u0442\u043e\u0432 Karma (\u0442\u0430\u043a \u043e\u043d \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 <a href=\"https:\/\/demo.karma-dashboard.io\/?q=%40cluster%3DHA&amp;q=%40receiver%3Dby-cluster-service\" rel=\"noopener noreferrer nofollow\">\u0432\u0436\u0438\u0432\u0443\u044e<\/a>). \u0427\u0435\u043c \u043e\u043d \u0443\u0434\u043e\u0431\u0435\u043d?<\/p>\n<p><strong>\u0423\u0434\u043e\u0431\u043d\u044b\u0435 \u0444\u0438\u043b\u044c\u0442\u0440\u044b \u043f\u043e \u043c\u0435\u0442\u043a\u0430\u043c.<\/strong> \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0449\u0435\u043b\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u0435\u0442\u043a\u0435 \u0438\u0437 \u0430\u043b\u0435\u0440\u0442\u0430 \u0438 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d\u0435 \u043e\u0441\u0442\u0430\u043d\u0443\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0435\u0440\u0442\u044b, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0435 \u0434\u0430\u043d\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c. \u0424\u0438\u043b\u044c\u0442\u0440\u044b \u043b\u0435\u0433\u043a\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u043f\u043e\u043b\u043e\u0436\u043d\u043e\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0437\u0430\u043c\u0435\u043d\u0430 \u201c=\u201d \u043d\u0430 \u201c!=\u201d \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u0435\u0440\u0442\u044b \u0441 \u043c\u0435\u0442\u043a\u043e\u0439 \u041d\u0415 \u0420\u0410\u0412\u041d\u041e\u0419 \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e. \u0412 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0444\u0438\u043b\u044c\u0442\u0440 <strong>instance=~10.10.*<\/strong> \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442 \u0430\u043b\u0435\u0440\u0442\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442 \u0443\u0437\u043b\u043e\u0432 \u0441 IP \u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438, \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0441 10.10, \u0430 \u0444\u0438\u043b\u044c\u0442\u0440 <strong>instance!~10.10.*<\/strong> &#8212; \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442, \u0441 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u043d\u0435 \u0441 10.10.<\/p>\n<p>\u0412 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044e \u043a \u0430\u043b\u0435\u0440\u0442\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0446\u0435\u043f\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0442\u043a\u0443 \u0441\u043e \u0441\u0441\u044b\u043b\u043a\u043e\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 Wiki \u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e\u0440\u043e\u043b\u0438\u043a \u0441 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u043e\u0439, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0447\u0438\u043d\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 (alertReferance).<\/p>\n<p><strong>Karma \u043f\u043e\u0434\u0441\u043a\u0430\u0436\u0435\u0442, \u043a\u0430\u043a \u0434\u0430\u0432\u043d\u043e \u0437\u0430\u0433\u043e\u0440\u0435\u043b\u0441\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442. <\/strong>Karma \u0443\u043c\u0435\u0435\u0442 \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u043d\u044b\u0445 Alertmanager, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430\u0445, \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e\u0442 \u043a\u0430\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u043d\u043e AlertManager \u043f\u0440\u0438\u0448\u0435\u043b \u043a\u0430\u043a\u043e\u0439 alert. \u041a\u0430\u0440\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438 \u043a Prometheus-Operator \u0432 Kubernetes.<\/p>\n<p>Karma \u0443\u043c\u0435\u0435\u0442 \u0434\u0435\u043b\u0430\u0442\u044c acknowledge (silence) \u043d\u0430 \u0430\u043b\u0435\u0440\u0442\u044b, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u043b\u0438, \u0435\u0441\u043b\u0438 \u043f\u043e \u043d\u0438\u043c \u0443\u0436\u0435 \u043a\u0442\u043e-\u0442\u043e \u043d\u0430\u0447\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u0430\u043b\u0435\u0440\u0442\u044b, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0435\u0439\u0447\u0430\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d silence (\u043c\u0430\u043b\u043e \u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c), \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0431\u0440\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u0442\u0440 <strong>@state=active<\/strong>.<\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0432\u0441\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 Karma \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 <a href=\"https:\/\/demo.karma-dashboard.io\/\" rel=\"noopener noreferrer nofollow\">\u0434\u0435\u043c\u043e-\u0441\u0430\u0439\u0442<\/a> \u0441 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u043c \u0430\u043b\u0435\u0440\u0442\u043e\u0432, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u00a0\u0438 \u043f\u043e\u0449\u0435\u043b\u043a\u0430\u0439\u0442\u0435. \u0417\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0438\u0441\u044c? \u0422\u043e\u0433\u0434\u0430 \u0434\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u043d\u0430 <a href=\"https:\/\/github.com\/prymitive\/karma\/\" rel=\"noopener noreferrer nofollow\">\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 github (prymitive \/ karma)<\/a>, \u0433\u0434\u0435 \u0441\u043e\u0431\u0440\u0430\u043d\u0430 \u0432\u0441\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f, \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0438 \u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u0438\u043a\u0438.<\/p>\n<h3>\u0417\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d DeadMan \u0430\u043b\u0435\u0440\u0442?<\/h3>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 Karma \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u044e \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442, \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 DeadMan.<\/p>\n<figure class=\"float full-width\"><\/figure>\n<p>\u0414\u0430\u043d\u043d\u044b\u0439 \u0430\u043b\u0435\u0440\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u0432\u0441\u0435\u0433\u0434\u0430 \u0430\u043a\u0442\u0438\u0432\u0435\u043d. \u041d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435 \u0441\u043b\u0435\u0432\u0430 \u044f \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043b \u044d\u0442\u043e\u0442 \u0430\u043b\u0435\u0440\u0442 \u0446\u0432\u0435\u0442\u043d\u043e\u0439 \u0433\u043e\u043b\u043e\u0432\u043e\u0439 \u0437\u043e\u043c\u0431\u0438. \u0410\u043b\u0435\u0440\u0442 DeadMan \u0435\u0441\u0442\u044c, \u0430 \u0432 Karma \u043c\u044b \u0432\u0438\u0434\u0438\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u0440\u0443\u0436\u0435\u0447\u043a\u0443 \u043a\u043e\u0444\u0435 &#8212; \u00a0\u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. Karma \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0435 \u044f\u0432\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e DeadMan \u0438 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442 (\u043d\u043e \u044d\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435, \u043c\u043e\u0436\u043d\u043e \u0435\u0433\u043e \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c).<\/p>\n<p>\u0410 \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u0435\u0441\u043b\u0438 \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0438\u0437 \u0443\u0437\u043b\u043e\u0432 Prometheus \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u043c\u0435\u0441\u0442\u043e \u043d\u0430 \u0434\u0438\u0441\u043a\u0435?<\/p>\n<figure class=\"float full-width\"><\/figure>\n<p>\u041c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0442\u0441\u044f \u0438 \u043f\u0435\u0440\u0432\u044b\u0439 Prometheus \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 DeadMan \u0432 \u0441\u0432\u043e\u044e TSDB, \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 \u0441\u0432\u043e\u0439 AlertManager, \u0430 \u0442\u043e\u0442 \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0432 Karma. \u0418 Karma \u0441\u0440\u0435\u0430\u0433\u0438\u0440\u0443\u0435\u0442, \u0432 \u043d\u0438\u0436\u043d\u0435\u043c \u043f\u0440\u0430\u0432\u043e\u043c \u0443\u0433\u043b\u0443 \u0443 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0431 \u044d\u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0437\u0430\u0445\u0440\u043e\u043c\u0430\u043b. \u0412 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u0442\u043e\u0440\u0430\u044f \u0446\u0435\u043f\u043e\u0447\u043a\u0430 Prometheus \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u0436\u0438\u0432\u0430, \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 DeadMan \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0430\u043b\u0435\u0440\u0442\u044b, \u043d\u0430\u0448 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c Deadman \u0430\u043b\u0435\u0440\u0442?<\/p>\n<p>\u0412 \u0444\u0430\u0439\u043b\u0435 <strong>prometheus.yml<\/strong> \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0444\u0430\u0439\u043b \u043f\u0440\u0430\u0432\u0438\u043b <strong>DeadMansSwitch.yml<\/strong>:<\/p>\n<pre><code class=\"yaml\">... rule_files:    - 'DeadMansSwitch.yml' ...<\/code><\/pre>\n<p>\u0412\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c \u0444\u0430\u0439\u043b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b <strong>DeadMansSwitch.yml<\/strong> \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u043d\u0442\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0435\u0440\u0442 \u0441 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435\u043c vector(1):<\/p>\n<pre><code class=\"yaml\">groups:   - name: 'DeadMansSwitch'     rules:       - alert: DeadMansSwitch         expr: vector(1)         labels:           prom: 'Bercut1'# \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u044d\u0433 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u0437\u043b\u0430         annotations:           title: 'DeadMansSwitch Alert'           description: 'This alert should be always ON to check that alert pipeline is working'<\/code><\/pre>\n<p>\u0412 \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 AlertManager (<strong>alertmanager.yml <\/strong>) \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u044f\u0432\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0430\u043b\u0435\u0440\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0422\u041e\u041b\u042c\u041a\u041e \u0434\u043b\u044f karma, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e \u043d\u0435\u043c E-Mail:<\/p>\n<pre><code class=\"yaml\">routes:   - receiver: 'karma'     match:          alertname: 'DeadMansSwitch'     continue: false     #ignore all other routes<\/code><\/pre>\n<h4>AlertManager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u0417\u0430\u043f\u0443\u0441\u043a <\/h4>\n<figure class=\"full-width\"><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c AlertManager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0432\u0441\u0435\u0433\u043e \u0434\u0432\u0435 \u043e\u043f\u0446\u0438\u0438. <\/p>\n<p>\u0412 \u043e\u043f\u0446\u0438\u0438 &#8212;cluster.listen-address \u00a0\u0443\u043a\u0430\u0436\u0435\u043c, \u043d\u0430 \u043a\u0430\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0438 \u043f\u043e\u0440\u0442\u0443 \u043d\u0443\u0436\u043d\u043e \u0436\u0434\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u043e\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0437\u043b\u043e\u0432.<\/p>\n<p>\u0412 \u043e\u043f\u0446\u0438\u0438 &#8212;cluster.peer \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0437\u0435\u043b\/\u043f\u043e\u0440\u0442 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f. \u041e\u043f\u0446\u0438\u044f &#8212;cluster.peer \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c\u00a0 \u0443\u043a\u0430\u0437\u0430\u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0431\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043d\u0430 \u0434\u0432\u0430 \u0443\u0437\u043b\u0430.<\/p>\n<figure class=\"full-width\"><\/figure>\n<h4>Alertmanager \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f<\/h4>\n<p>\u0412 \u043d\u0430\u0448\u0435\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u0438 \u0443 \u043d\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 (\u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043e \u0436\u0435\u043b\u0442\u044b\u043c \u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435):<\/p>\n<figure class=\"\"><\/figure>\n<p>\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u043b\u0438 \u0438 \u043d\u0435 \u0440\u0430\u0437\u044a\u0435\u0437\u0436\u0430\u043b\u0438\u0441\u044c.<\/p>\n<p>\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0447\u0435\u0440\u0435\u0437 <strong>git pull<\/strong>, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 <strong><em>Infrastructure<\/em>-as-<em>Code<\/em><\/strong>, \u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u043a\u0440\u0438\u043f\u0442\u0438\u043a \u0434\u043b\u044f rsync:<\/p>\n<pre><code class=\"bash\">rsync --recursive --relative --links --delete --checksum --group --owner --perms \\           -e \"ssh -i ${ssh_key}\"  \\           --exclude=${promdir}\/etc\/DeadMansSwitch.yml  \\           ${file_list} \\           ${promuser}@${remote_host}:\/<\/code><\/pre>\n<p>\u0412 \u0441\u043a\u0440\u0438\u043f\u0442\u0435 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f DeadManSwitch.yml, \u0447\u0442\u043e\u0431\u044b \u0430\u043b\u0435\u0440\u0442 DeadMan \u0431\u044b\u043b \u0441 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440\u0430 Prometheus.<\/p>\n<h3>\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 Alerts<\/h3>\n<h4>\u0413\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u0440\u0430\u0432\u0438\u043b<\/h4>\n<p>\u0412 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <strong>prometheus.yml<\/strong> \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041c\u044b \u0443\u0436\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u2013 DeadManSwitch.yml. <\/p>\n<p>\u0412 \u0434\u0440\u0443\u0433\u0438\u0445 \u2013 \u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0430\u043b\u0435\u0440\u0442\u044b.<\/p>\n<p>\u0412\u0441\u0435 \u0441\u0430\u0439\u0442\u044b \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043f\u043e \u0442\u0438\u043f\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0433\u043e \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f, \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043d\u0430\u043b\u0438\u0447\u0438\u044e \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044e \u0441\u043b\u0435\u0436\u0435\u043d\u0438\u044f \u0437\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430\u043c\u0438 \u0431\u0435\u0441\u043f\u0435\u0440\u0435\u0431\u043e\u0439\u043d\u043e\u0433\u043e \u043f\u0438\u0442\u0430\u043d\u0438\u044f. \u0420\u0430\u0437\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0440\u0430\u0437\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u043d\u044b\u0435 \u0448\u0430\u0441\u0441\u0438 \u0434\u043b\u044f \u043b\u0435\u0437\u0432\u0438\u0439, \u0440\u0430\u0437\u043d\u044b\u0435 \u0421\u0423\u0411\u0414, \u0431\u0440\u043e\u043a\u0435\u0440\u044b \u0438 \u0442.\u0434. <\/p>\n<p>\u0423\u0434\u043e\u0431\u043d\u043e \u043f\u0440\u0438 \u043d\u043e\u0432\u043e\u0439 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0438\u043c\u0435\u0442\u044c \u0431\u0430\u0433\u0430\u0436 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0430\u043b\u0435\u0440\u0442\u043e\u0432. \u0412\u0430\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0437\u0430\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0435, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0441\u0442\u0440\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c\u0441\u044f.<\/p>\n<h4>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u043c\u0435\u0442\u043a\u0438 \u0430\u043b\u0435\u0440\u0442\u043e\u0432<\/h4>\n<p>\u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e. \u041a \u043d\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442: <\/p>\n<figure class=\"\"><\/figure>\n<p>\u041c\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043f\u043e\u0447\u0442\u0443 \u0438 \u0432\u0438\u0434\u0438\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u041c\u044b \u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0430\u0434\u0440\u0435\u0441\u0443 \u0438, \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435, \u0443 \u043d\u0430\u0441 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0418 \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0447\u0438\u043d\u0438\u0442\u044c, \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043b\u0438\u0448\u043d\u0438\u0439 \u0440\u0430\u0437 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u043c \u0443\u0437\u043b\u0435.<\/p>\n<p>\u0427\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0430\u0434\u0440\u0435\u0441? \u0417\u0430\u0447\u0435\u043c \u043e\u043d? \u041c\u043e\u0436\u0435\u0442, \u0432 \u0437\u0430\u044f\u0432\u043a\u0435 \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0435\u043d\u0434\u0430 \u0447\u0442\u043e-\u0442\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043b\u043e\u0441\u044c?<\/p>\n<p>\u041c\u044b \u0442\u0435\u0440\u044f\u0435\u043c \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u0413\u043e\u0440\u0430\u0437\u0434\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0431\u044b\u043b\u043e \u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0430\u0441\u044b\u0449\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u0430\u043b\u0435\u0440\u0442:<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0422\u043e\u0433\u0434\u0430 \u0431\u044b \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0440\u0430\u043d\u044c\u0448\u0435. \u0418\u0437 \u0430\u043b\u0435\u0440\u0442\u0430 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440-\u043b\u0435\u0437\u0432\u0438\u0435, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0435\u0435 \u0432 \u0448\u0430\u0441\u0441\u0438 plat198c7000 \u0441 iLO 10.10.11.10.<\/p>\n<p>\u041a\u0430\u043a \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Prometheus?<\/p>\n<figure class=\"full-width\"><\/figure>\n<p>\u0412 Prometheus.yml \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0433\u0434\u0435 \u0438\u0441\u043a\u0430\u0442\u044c inventory \u0434\u043b\u044f job. \u0417\u0430 \u0442\u0440\u0435\u043c\u044f \u0442\u043e\u0447\u043a\u0430\u043c\u0438 (\u2026) \u0443 \u043c\u0435\u043d\u044f \u0442\u0443\u0442 \u0441\u043a\u0440\u044b\u0442\u0430 \u043b\u043e\u0433\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u0442 \u0445\u043e\u0441\u0442 \u0438\u0437 inventory \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u0432 \u0435\u0433\u043e \u0442\u0435\u0433\u0435 jobs \u043d\u0430\u0439\u0434\u0435\u0442\u0441\u044f \u0438\u043c\u044f node_exporter, \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0435 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u044f\u0442\u0443\u044e:<\/p>\n<pre><code class=\"yaml\">- job_name: 'node_exporter'     scrape_interval: 90s     scrape_timeout: 50s     file_sd_configs:       - files:         - 'inventory\/*.yml'     relabel_configs:       - source_labels: [jobs]      #check 'node_exporter' in label 'jobs', drop if not         regex:<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-354894","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/354894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=354894"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/354894\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=354894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=354894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=354894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}