เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เช•เซ‡เชฎ เช›เซ‹ เชฌเชงเชพ! เชฎเชพเชฐเชพ เช…เชญเซเชฏเชพเชธเช•เซเชฐเชฎเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡, เชฎเซ‡เช‚ เช†เชตเชพ เชธเซเชฅเชพเชจเชฟเช• เช•เซเชฒเชพเช‰เชก เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเซ€ เช•เซเชทเชฎเชคเชพเช“ เชชเชฐ เชธเช‚เชถเซ‹เชงเชจ เช•เชฐเซเชฏเซเช‚ Yandex.Cloud. เช† เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชตเซเชฏเชตเชนเชพเชฐเชฟเช• เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เช‰เช•เซ‡เชฒ เชฎเชพเชŸเซ‡ เชตเชฟเชตเชฟเชง เชธเซ‡เชตเชพเช“ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เชคเชฎเชพเชฐเซ‡ เช† เชธเซ‡เชตเชพเช“ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชเช•เชฆเชฎ เชตเซเชฏเชพเชชเช• เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชคเชฎเชพเชฐเซ€ เชชเซ‹เชคเชพเชจเซ€ เช•เซเชฒเชพเช‰เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช† เชฒเซ‡เช–เชฎเชพเช‚ เชนเซเช‚ เช†เชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เชฎเชพเชฐเซ‹ เช…เชจเซเชญเชต เชถเซ‡เชฐ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชคเชฎเซ‡ เชถเซเช‚ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹?

เช—เซเชฐเชพเชซเชจเชพ - เช•เซ‹เชˆเชชเชฃ เชธเชฟเชธเซเชŸเชฎเซ‹เชจเซ€ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชพเชคเซเชฎเช• เชธเชฎเชธเซเชฏเชพเช“ เช…เชฅเชตเชพ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชธเชฎเชธเซเชฏเชพเช“ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เชถเช•เซเชคเชฟเชถเชพเชณเซ€ เชธเชพเชงเชจ. เชคเซ‡เชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชฎเชพเช‚, เช† Grafana เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡เชจเซเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช›เซ‡, เชคเซ‡เชฎเชœ เชกเซ‡เชŸเชพเชฌเซ‡เช (ClickHouse, InfluxDB, เชตเช—เซ‡เชฐเซ‡) เชธเชพเชฅเซ‡ เชกเซ‡เชŸเชพเชธเซ‡เชŸ เช›เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช†เชงเชพเชฐเชฟเชค เชนเชถเซ‡.

เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฒเซ‹เช‚เชš เช•เชฐเซเชฏเชพ เชชเช›เซ€, เชคเชฎเซ‡ เชคเซ‡เชจเชพ เชนเซ‹เชธเซเชŸ เชชเชฐ เชœเชˆ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชเช• เชธเซเช‚เชฆเชฐ UI เชฎเซ‡เชณเชตเซ€ เชถเช•เซ‹ เช›เซ‹, เช†เช—เชณเชจเชพ เช•เชพเชฎ เชฎเชพเชŸเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธเชจเซ‹ เชธเซเชคเซเชฐเซ‹เชค เชคเชฐเซ€เช•เซ‡ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชกเซ‡เชถเชฌเซ‹เชฐเซเชก เช…เชจเซ‡ เช—เซเชฐเชพเชซ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชฎเซ‚เชณเชญเซ‚เชค เชธเช‚เชธเซเช•เชฐเชฃเชฎเชพเช‚ เชเช• เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช–เชพเชฎเซ€ เช›เซ‡ - เชคเซ‡ เชฆเซ‹เชท-เชธเชนเชฟเชทเซเชฃเซ เชฌเชฟเชฒเช•เซเชฒ เชจเชฅเซ€. เชเชŸเชฒเซ‡ เช•เซ‡, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชเช• เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช›เซ‡. เชœเซ‹ เชคเซ‡ เช‡เชจเช•เชพเชฐ เช•เชฐเซ‡ เช›เซ‡ เช…เชฅเชตเชพ เชเช• เชœ เชธเชฎเชฏเซ‡ 10 เชฒเซ‹เช•เซ‹ UI เช–เซ‹เชฒเซ‡ เช›เซ‡, เชคเซ‹ เชธเชฎเชธเซเชฏเชพเช“ เชŠเชญเซ€ เชฅเชถเซ‡.

เชคเซ‡เช“เชจเซ‡ เชธเชฐเชณ เชฐเซ€เชคเซ‡ เช‰เช•เซ‡เชฒเซ€ เชถเช•เชพเชฏ เช›เซ‡: เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค... เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เช˜เชฃเชพ เชธเชฎเชพเชจ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เช—เซ‹เช เชตเชตเชพเชจเซ€ เช…เชจเซ‡ เชคเซ‡เชฎเชจเซ‡ L3 เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชนเซ‡เช เชณ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชชเชฐเช‚เชคเซ เช…เชนเซ€เช‚ เชฌเชงเซเช‚ เชเชŸเชฒเซเช‚ เชธเซเชชเชทเซเชŸ เชจเชฅเซ€. เช—เซเชฐเชพเชซเชจเชพ เชคเซ‡เชจเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เชกเชฟเชธเซเช• เชชเชฐ เชธเซ€เชงเชพ เชœ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ (เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธ, เชกเซ‡เชถเชฌเซ‹เชฐเซเชกเซเชธ, เช—เซเชฐเชพเชซ, เชตเช—เซ‡เชฐเซ‡เชจเชพ เชฎเชพเชฐเซเช—เซ‹) เชธเซเชŸเซ‹เชฐ เช•เชฐเซ‡ เช›เซ‡. เช†เชฎ, เชœเซ‹ เช†เชชเชฃเซ‡ UI เชฎเชพเช‚ เช…เชฎเซเช• เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชฌเชฆเชฒเซ€เช, เชคเซ‹ เช† เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชซเช•เซเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เชœ เชชเซเชฐเชคเชฟเชฌเชฟเช‚เชฌเชฟเชค เชฅเชถเซ‡ เชœเซเชฏเชพเช‚ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซ‡ เช…เชฎเชจเซ‡ เชฎเซ‹เช•เชฒเซเชฏเชพ เช›เซ‡. เช† เช…เชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช…เชธเช‚เช—เชค เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เชœเชถเซ‡, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เชฒเซ‹เชจเซเชš เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เชŠเชญเซ€ เชฅเชถเซ‡.

เช…เชนเซ€เช‚ เช…เชจเซเชฏ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฌเชšเชพเชตเชฎเชพเช‚ เช†เชตเชถเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, MySQL เช…เชฅเชตเชพ เชคเซ‡เชจเชพ เชธเชฎเช•เช•เซเชท. เช…เชฎเซ‡ เช—เซเชฐเชพเชซเชจเชพเชจเซ‡ เช•เชนเซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡เชฃเซ€เช เช† "เชซเชพเชœเชฒ" เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเชตเซ€ เชœเซ‹เชˆเช. เชชเช›เซ€เชฅเซ€, เชฆเชฐเซ‡เช• เชฎเชถเซ€เชจ เชชเชฐ เชเช•เชตเชพเชฐ เช† เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซ‹ เชชเชพเชฅ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เชนเชถเซ‡, เช…เชจเซ‡ เช•เซ‹เชˆเชชเชฃ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เช…เชจเซเชฏ เชคเชฎเชพเชฎ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชธเช‚เชชเชพเชฆเชฟเชค เช•เชฐเซ‹; เชคเซ‡ เช…เชจเซเชฏ เชฒเซ‹เช•เซ‹ เชธเซเชงเซ€ เชตเชฟเชธเซเชคเชฐเชถเซ‡.

เช…เชนเซ€เช‚ เช…เช‚เชคเชฟเชฎ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‹ เช†เช•เซƒเชคเชฟ เช›เซ‡:

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชšเชพเชฒเซ‹ เชนเชพเชฅ เชตเชกเซ‡ เช‰เชชเชพเชกเชคเชพ เชถเซ€เช–เซ€เช

MySQL เช…เชจเซ‡ เช•เซเชฒเชฟเช•เชนเชพเช‰เชธ

เชฌเชŸเชจเชจเชพ เช•เซเชฒเชฟเช• เชธเชพเชฅเซ‡ เช†เชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชœเชฎเชพเชตเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเซ‡เชจเชพ เชฆเชฐเซ‡เช• เช˜เชŸเช•เซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเชตเซเช‚ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเชตเซเช‚ เชคเซ‡ เชถเซ€เช–เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซเช‚.

เช…เชนเซ€เช‚ Yandex.Cloud เช…เชฎเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชถเซ‡, เชœเซ‡ L3 เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเซเชธ, ClickHouse เช…เชจเซ‡ MySQL เชจเซ‡ เชธเช‚เชšเชพเชฒเชฟเชค เชธเซ‡เชตเชพเช“ เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชซเช•เซเชค เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชฌเชงเซเช‚ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เช•เซเชฐเชฎเชฎเชพเช‚ เชฒเชพเชตเซ‡ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฐเชพเชน เชœเซเช“.

เชฎเซ‡เช‚ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเซ€, เช•เซเชฒเชพเช‰เชก เช…เชจเซ‡ เชชเซ‡เชฎเซ‡เชจเซเชŸ เชเช•เชพเช‰เชจเซเชŸ เชฌเชจเชพเชตเซเชฏเซเช‚. เชคเซ‡ เชชเช›เซ€, เชนเซเช‚ เช•เซเชฒเชพเช‰เชก เชชเชฐ เช—เชฏเซ‹ เช…เชจเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡ MySQL เช…เชจเซ‡ ClickHouse เช•เซเชฒเชธเซเชŸเชฐ เชธเซ‡เชŸ เช•เชฐเซเชฏเชพ. เชคเซ‡เช“ เชธเช•เซเชฐเชฟเชฏ เชฅเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฎเซ‡เช‚ เชฐเชพเชน เชœเซ‹เชˆ.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸเช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชคเชฎเชพเชฐเซ‡ เชฆเชฐเซ‡เช• เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เช…เชจเซ‡ เชฒเซ‹เช—เชฟเชจ เช…เชจเซ‡ เชชเชพเชธเชตเชฐเซเชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ€ เชเช•เซเชธเซ‡เชธ เช—เซ‹เช เชตเชตเชพเชจเซเช‚ เชชเชฃ เชฏเชพเชฆ เชฐเชพเช–เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชนเซเช‚ เช…เชนเซ€เช‚ เชตเชฟเช—เชคเซ‹เชฎเชพเช‚ เชœเชˆเชถ เชจเชนเซ€เช‚ - เช‡เชจเซเชŸเชฐเชซเซ‡เชธเชฎเชพเช‚ เชฌเชงเซเช‚ เชเช•เชฆเชฎ เชธเซเชชเชทเซเชŸ เช›เซ‡.

เชฌเชฟเชจ-เชธเซเชชเชทเซเชŸ เชตเชฟเช—เชค เช เชนเชคเซ€ เช•เซ‡ เช† เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เช˜เชฃเชพ เชฏเชœเชฎเชพเชจเซ‹ เช›เซ‡, เชœเซ‡ เชคเซ‡เชฎเชจเซ€ เช–เชพเชฎเซ€ เชธเชนเชฟเชทเซเชฃเซเชคเชพเชจเซ‡ เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, Grafana เชจเซ‡ เชคเซ‡ เชฆเชฐเซ‡เช• เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชฌเชฐเชพเชฌเชฐ เชเช• เชนเซ‹เชธเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เชฒเชพเช‚เชฌเซ เชตเชพเช‚เชšเชจ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชตเชพเชฆเชณเซ‹ เชฎเชจเซ‡ เชจเชฟเชฐเซเชฃเชฏ เชชเชฐ เชฒเชˆ เช—เชฏเชพ. เชคเซ‡ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชœเชพเชคเชฟเชจเชพ เชฏเชœเชฎเชพเชจ c-<cluster_id>.rw.mdb.yandexcloud.net เช…เชจเซเชฐเซ‚เชช ID เชธเชพเชฅเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชธเช•เซเชฐเชฟเชฏ เชฎเซเช–เซเชฏ เชนเซ‹เชธเซเชŸ เชชเชฐ เชฎเซ‡เชช เช•เชฐเซ‡เชฒ เช›เซ‡. เช† เชคเซ‡ เช›เซ‡ เชœเซ‡ เช†เชชเชฃเซ‡ เช—เซเชฐเชพเชซเชจเชพเชจเซ‡ เช†เชชเซ€เชถเซเช‚.

เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ

เชนเชตเซ‡ เชคเซ‡ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชชเชฐ เช›เซ‡. เชšเชพเชฒเซ‹ Linux เชธเชพเชฅเซ‡ เชจเชฟเชฏเชฎเชฟเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช‰เชญเชพ เช•เชฐเซ€เช เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช—เซเชฐเชพเชซเชจเชพเชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช—เซ‹เช เชตเซ€เช.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชšเชพเชฒเซ‹ ssh เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช เช…เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชชเซ‡เช•เซ‡เชœเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€เช.

sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

เชคเซ‡ เชชเช›เซ€, เชšเชพเชฒเซ‹ Grafana เชจเซ‡ systemctl เชนเซ‡เช เชณ เชšเชฒเชพเชตเซ€เช เช…เชจเซ‡ ClickHouse เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฒเช—เช‡เชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€เช (เชนเชพ, เชคเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชชเซ‡เช•เซ‡เชœเชฎเชพเช‚ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชจเชฅเซ€).

sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

เชฌเชธ, เชคเซ‡ เชชเช›เซ€ เชเช• เชธเชฐเชณ เช†เชฆเซ‡เชถ เชธเชพเชฅเซ‡

sudo service grafana-server start

เช…เชฎเซ‡ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชถเชฐเซ‚ เช•เชฐเซ€เชถเซเช‚. เชนเชตเซ‡ เชคเชฎเซ‡ เชฌเซเชฐเชพเช‰เชเชฐเชฎเชพเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซเช‚ เชฌเชพเชนเซเชฏ IP เชเชกเซเชฐเซ‡เชธ เชฆเชพเช–เชฒ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชชเซ‹เชฐเซเชŸ 3000 เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชธเซเช‚เชฆเชฐ Grafana UI เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹.
เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชชเชฐเช‚เชคเซ เช‰เชคเชพเชตเชณ เช•เชฐเชถเซ‹ เชจเชนเซ€เช‚, Grafana เชธเซ‡เชŸ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเชฎเชพเชฐเซ‡ เชคเซเชฏเชพเช‚ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ MySQL เชจเซ‹ เชฎเชพเชฐเซเช— เชœเชฃเชพเชตเชตเชพเชจเซเช‚ เชฏเชพเชฆ เชฐเชพเช–เชตเซเช‚ เชœเซ‹เชˆเช.

Grafana เชตเซ‡เชฌ เชธเชฐเซเชตเชฐเชจเซเช‚ เชธเชฎเช—เซเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เช›เซ‡ /etc/grafana/grafana.ini. เช†เชตเชถเซเชฏเช• เชฐเซ‡เช–เชพ เช†เชจเชพ เชœเซ‡เชตเซ€ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

;url =

เช…เชฎเซ‡ เชนเซ‹เชธเซเชŸเชจเซ‡ MySQL เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ เชธเซ‡เชŸ เช•เชฐเซ€เช เช›เซ€เช. เชธเชฎเชพเชจ เชซเชพเช‡เชฒเชฎเชพเช‚ เช‰เชชเชฐเชจเชพ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เช—เซเชฐเชพเชซเชจเชพเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฒเซ‹เช—เชฟเชจ เช…เชจเซ‡ เชชเชพเชธเชตเชฐเซเชก เช›เซ‡, เชœเซ‡ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ เชฌเช‚เชจเซ‡ เชธเชฎเชพเชจ เช›เซ‡ admin.

เชคเชฎเซ‡ sed เช†เชฆเซ‡เชถเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹:

sudo sed -i "s#.*;url =.*#url = mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${GRAFANA_USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${GRAFANA_PASSWORD}#" /etc/grafana/grafana.ini

เชตเซ‡เชฌ เชธเชฐเซเชตเชฐเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เช†เชตเซ€ เช—เชฏเซ‹ เช›เซ‡!

sudo service grafana-server restart

เชนเชตเซ‡ Grafana UI เชฎเชพเช‚ เช†เชชเชฃเซ‡ เชกเซ‡เชŸเชพเชธเซ‹เชฐเซเชธ เชคเชฐเซ€เช•เซ‡ ClickHouse เชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€เชถเซเช‚.

เชนเซเช‚ เชจเซ€เชšเซ‡เชจเซ€ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เชธเชพเชฅเซ‡ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เช—เซ‹เช เชตเชฃเซ€ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเซ‹:

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชฎเซ‡เช‚ URL เชคเชฐเซ€เช•เซ‡ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹ เช›เซ‡ https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443

เชฌเชงเชพ! เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ CH เช…เชจเซ‡ MySQL เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡เชจเซเช‚ เชเช• เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช›เซ‡. เชคเชฎเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช•เซเชฒเชฟเช•เชนเชพเช‰เชธ เชชเชฐ เชกเซ‡เชŸเชพเชธเซ‡เชŸ เช…เชชเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชกเซ‡เชถเชฌเซ‹เชฐเซเชก เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‹ เช•เซ‡, เช…เชฎเซ‡ เชนเชœเซ เชธเซเชงเซ€ เช…เชฎเชพเชฐเซเช‚ เชฒเช•เซเชทเซเชฏ เชนเชพเช‚เชธเชฒ เช•เชฐเซเชฏเซเช‚ เชจเชฅเซ€ เช…เชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เชธเซเชตเชฟเชงเชพเชฏเซเช•เซเชค เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชœเชฎเชพเชตเซเชฏเซเช‚ เชจเชฅเซ€.

เชชเซ‡เช•เชฐ

Yandex.Cloud เชคเชฎเชจเซ‡ เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚เชจเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ€ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ - เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เชธเชฎเชพเชจ เชฎเชถเซ€เชจเซ‹เชจเซ€ เชธเช‚เช–เซเชฏเชพ. เช† เชฌเชฐเชพเชฌเชฐ เช›เซ‡ เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚. เช›เชฌเซ€เชจเซ‡ เช…เชจเซเช•เซ‚เชณ เชฐเซ€เชคเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชธเชพเชงเชจ เชฒเซ‹ เชชเซ‡เช•เชฐ HashiCorp เชคเชฐเชซเชฅเซ€. เชคเซ‡ เช‡เชฎเซ‡เชœ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชธเชพเชฅเซ‡ json เชซเชพเช‡เชฒเชจเซ‡ เช‡เชจเชชเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฒเซ‡ เช›เซ‡.

เช…เชฎเชพเชฐเซ€ json เชซเชพเช‡เชฒเชฎเชพเช‚ เชฌเซ‡ เชฌเซเชฒเซ‹เช• เชนเชถเซ‡: เชฌเชฟเชฒเซเชกเชฐเซ‹ เช…เชจเซ‡ เชชเซเชฐเซ‹เชตเชฟเชเชจเชฐเซเชธ. เชชเซเชฐเชฅเชฎ เชฌเซเชฒเซ‹เช• เช‡เชฎเซ‡เชœเชจเชพ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ‡ เชเช• เชเชจเซเชŸเชฟเชŸเซ€ เชคเชฐเซ€เช•เซ‡ เชตเชฐเซเชฃเชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชฌเซ€เชœเซ‹ เชฌเซเชฒเซ‹เช• เชคเซ‡เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชธเชพเชฅเซ‡ เชญเชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ‡ เช›เซ‡.

เชฌเชฟเชฒเซเชกเชฐเซเชธ

{
"builders": [
    {
      "type": "yandex",
      "endpoint": "{{user `endpoint`}}",
      "folder_id": "<folder_id>",
      "subnet_id": "{{user `subnet_id`}}",
      "zone": "{{user `zone`}}",
      "labels": {},
      "use_ipv4_nat": true,
      "use_internal_ip": false,
      "service_account_key_file": "<service_account_key_file>",
      "image_name": "grafana-{{timestamp}}",
      "image_family": "grafana",
      "image_labels": {},
      "image_description": "GRAFANA",
      "source_image_family": "ubuntu-1804-lts",
      "disk_size_gb": 3,
      "disk_type": "network-hdd",
      "ssh_username": "ubuntu"
    }
  ],
...
}

เช† เชจเชฎเซ‚เชจเชพเชฎเชพเช‚, เชคเชฎเชพเชฐเซ‡ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชคเซ‡ เชตเชฟเชญเชพเช—เชจเชพ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เช›เชฌเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹, เชคเซ‡เชฎเชœ เช† เชตเชฟเชญเชพเช—เชฎเชพเช‚ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒ เชธเซ‡เชตเชพ เช–เชพเชคเชพเชฎเชพเช‚เชฅเซ€ เช•เซ€ เชธเชพเชฅเซ‡ เชซเชพเช‡เชฒเชจเซ‹ เชชเชพเชฅ. เชคเชฎเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชซเชพเช‡เชฒเชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชธเซ‡เชตเชพ เชเช•เชพเช‰เชจเซเชŸเซเชธ เช…เชจเซ‡ เช•เซ€ เชฌเชจเชพเชตเชตเชพ เชตเชฟเชถเซ‡ เชตเชงเซ เชตเชพเช‚เชšเซ€ เชถเช•เซ‹ เช›เซ‹ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ.

เช† เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœ เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎเชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ ubuntu-1804-lts, เช›เชฌเซ€ เชชเชฐเชฟเชตเชพเชฐเชฎเชพเช‚ เชฏเซ‹เช—เซเชฏ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ GRAFANA เชจเชพเชฎ เชนเซ‡เช เชณ grafana-{{timestamp}}.

เชœเซ‹เช—เชตเชพเชˆเช“

เชนเชตเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ‹ เชตเชงเซ เชฐเชธเชชเซเชฐเชฆ เชญเชพเช— เช†เชตเซ‡ เช›เซ‡. เชคเซ‡ เช•เซเชฐเชฟเชฏเชพเช“เชจเชพ เช•เซเชฐเชฎเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชถเซ‡ เช•เซ‡ เชœเซ‡ เชคเซ‡เชจเซ€ เชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœเชฎเชพเช‚ เชธเซเชฅเชฟเชฐ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชชเชฐ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡.

{
...,
"provisioners": [
    {
            "type": "shell",
            "pause_before": "5s",
            "scripts": [
                "prepare-ctg.sh"
            ]
        },
    {
            "type": "file",
            "source": "setup.sh",
            "destination": "/opt/grafana/setup.sh"
        },
        {
            "type": "shell",
        "execute_command": "sudo {{ .Vars }} bash '{{ .Path }}'",
            "pause_before": "5s",
            "scripts": [
                "install-packages.sh",
                "grafana-setup.sh",
                "run-setup-at-reboot.sh"
        ]
        }
  ]
}

เช…เชนเซ€เช‚ เชฌเชงเซ€ เช•เซเชฐเชฟเชฏเชพเช“เชจเซ‡ 3 เชคเชฌเช•เซเช•เชพเชฎเชพเช‚ เชตเชนเซ‡เช‚เชšเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡. เชชเซเชฐเชฅเชฎ เชคเชฌเช•เซเช•เซ‡, เชเช• เชธเชฐเชณ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชœเซ‡ เชธเชนเชพเชฏเช• เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชคเซˆเชฏเชพเชฐเซ€-ctg.sh:

#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana

เช†เช—เชณเชจเชพ เชคเชฌเช•เซเช•เซ‡, เช…เชฎเซ‡ เช† เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพเชฎเชพเช‚ เชเช• เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชฎเซ‚เช•เซ€เช เช›เซ€เช, เชœเซ‡เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชถเชฐเซ‚ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชคเชฐเชค เชœ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡. เช† เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช—เซเชฐเชพเชซเชจเชพ เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเชตเชพเชจเซ€ เช…เชจเซ‡ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชšเชฒเซ‹ เชฎเซ‚เช•เชถเซ‡.

setup.sh:

#!/bin/bash
CLUSTER_ID="<cluster_id>"
USERNAME="<username>"
PASSWORD="<password>"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@c-${CLUSTER_ID}.rw.mdb.yandexcloud.net#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

เช† เชชเช›เซ€ 3 เชตเชธเซเชคเซเช“ เช•เชฐเชตเชพเชจเซเช‚ เชฌเชพเช•เซ€ เช›เซ‡:
1) เชชเซ‡เช•เซ‡เชœเซ‹ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹
2) Systemctl เชนเซ‡เช เชณ Grafana เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ ClickHouse เชชเซเชฒเช—เช‡เชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹
3) เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชšเชพเชฒเซ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชคเชฐเชค เชœ setup.sh เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ‡ เชฒเซ‹เชจเซเชš เช•เชคเชพเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ‹.

install-packages.sh:

#!/bin/bash
sudo systemd-run --property='After=apt-daily.service apt-daily-upgrade.service' --wait /bin/true
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

grafana-setup.sh:

#!/bin/bash
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

run-setup-at-reboot.sh:

#!/bin/bash
chmod +x /opt/grafana/setup.sh
cat > /etc/cron.d/first-boot <<EOF
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
@reboot root /bin/bash /opt/grafana/setup.sh > /var/log/yc-setup.log 2>&1
EOF
chmod +x /etc/cron.d/first-boot;

เชนเชตเซ‡ เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เชชเซ‡เช•เชฐ เชšเชฒเชพเชตเชตเชพเชจเซเช‚ เช›เซ‡ เช…เชจเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เชตเชฟเชญเชพเช—เชฎเชพเช‚ เช†เช‰เชŸเชชเซเชŸ เชˆเชฎเซ‡เชœ เชฎเซ‡เชณเชตเชตเชพเชจเซเช‚ เช›เซ‡. เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ เชฌเซเชŸ เชกเชฟเชธเซเช• เชคเชฐเซ€เช•เซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชจเซ‡ เชฒเซ‹เช‚เชš เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชคเชฎเชจเซ‡ เชคเซˆเชฏเชพเชฐ Grafana เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ
เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เช…เชจเซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ

เชเช•เชตเชพเชฐ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœ เชนเซ‹เชฏ โ€‹โ€‹เช•เซ‡ เชœเซ‡ เช…เชฎเชจเซ‡ เช˜เชฃเชพ เชธเชฎเชพเชจ เช—เซเชฐเชพเชซเชจเชพ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡, เช…เชฎเซ‡ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชฌเชจเชพเชตเซ€ เชถเช•เซ€เช เช›เซ€เช. Yandex.Cloud เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ, เช† เชถเชฌเซเชฆ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเชพ เชฏเซเชจเชฟเชฏเชจเชจเซ‹ เชธเช‚เชฆเชฐเซเชญ เช†เชชเซ‡ เช›เซ‡ เชœเซ‡ เชธเชฎเชพเชจ เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เช† เชœเซ‚เชฅเชฎเชพเช‚ เชคเชฎเชพเชฎ เชฎเชถเซ€เชจเซ‹เชจเซ‹ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เช—เซ‹เช เชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชชเช›เซ€ เชœเซ‚เชฅเชจเซ€ เชฒเชพเช•เซเชทเชฃเชฟเช•เชคเชพเช“ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเช•เซเชฐเชฟเชฏ เชฎเชถเซ€เชจเซ‹เชจเซ€ เชจเซเชฏเซ‚เชจเชคเชฎ เช…เชจเซ‡ เชฎเชนเชคเซเชคเชฎ เชธเช‚เช–เซเชฏเชพ). เชœเซ‹ เชตเชฐเซเชคเชฎเชพเชจ เชธเช‚เช–เซเชฏเชพ เช† เชฎเชพเชชเชฆเช‚เชกเซ‹เชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชคเซ€ เชจเชฅเซ€, เชคเซ‹ เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชชเซ‹เชคเซ‡ เชœ เชฌเชฟเชจเชœเชฐเซ‚เชฐเซ€ เชฎเชถเซ€เชจเซ‹ เชฆเซ‚เชฐ เช•เชฐเชถเซ‡ เช…เชฅเชตเชพ เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เช›เชฌเซ€เชฎเชพเช‚ เชจเชตเซ€ เชฌเชจเชพเชตเชถเซ‡.

เช…เชฎเชพเชฐเชพ เช•เชพเชฐเซเชฏเชจเชพ เชญเชพเช— เชฐเซ‚เชชเซ‡, เช…เชฎเซ‡ เชตเซ‡เชฌ เชธเชฐเซเชตเชฐเซเชธเชจเซเช‚ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชฌเชจเชพเชตเซ€เชถเซเช‚ เชœเซ‡ เช…เช—เชพเช‰ เชฌเชจเชพเชตเซ‡เชฒ เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœเชฎเชพเช‚เชฅเซ€ เชœเชจเชฐเซ‡เชŸ เชฅเชถเซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชถเซเช‚ เช–เชฐเซ‡เช–เชฐ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เช›เซ‡ เชคเซ‡ เช›เซ‡เชฒเซเชฒเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชธเซ‡เชŸเช…เชช เช›เซ‡. เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชธเชพเชฅเซ‡เชจเชพ เชเช•เซ€เช•เชฐเชฃเชฎเชพเช‚เชจเซเช‚ เชฒเช•เซเชทเซเชฏ เชœเซ‚เชฅ เชคเชฎเชจเซ‡ เช† เชœเซ‚เชฅเชจเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเซ€ เชŸเซ‹เชš เชชเชฐ เช•เซ‡เชŸเชฒเชพเช• เชฌเชŸเชจเซ‹ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ€เชจเซ‡ L3 เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซ‡ เช—เซ‹เช เชตเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชธเซ‡เชŸ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชฎเซ‡เช‚ เชฌเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชฎเซเชฆเซเชฆเชพเช“ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเชพ:

  1. เชฎเซ‡เช‚ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซ‡ เชชเซ‹เชฐเซเชŸ 80 เชชเชฐ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชŸเซเชฐเชพเชซเชฟเช• เชธเซเชตเซ€เช•เชพเชฐเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹เชจเชพ เชชเซ‹เชฐเซเชŸ 3000 เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชจเชพเชตเซเชฏเซเช‚, เชฌเชฐเชพเชฌเชฐ เชœเซเชฏเชพเช‚ Grafana เชฐเชนเซ‡ เช›เซ‡.
  2. เชฎเซ‡เช‚ เชฎเชถเซ€เชจเซ‹เชจเซ‡ เชชเซ‹เชฐเซเชŸ 3000 เชชเชฐ เชชเชฟเช‚เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ€ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชคเชชเชพเชธเชตเชพเชจเซเช‚ เชธเซ‡เชŸเช…เชช เช•เชฐเซเชฏเซเช‚.

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชฎเซ€เชจเซ€ เชธเชพเชฐเชพเช‚เชถ

เช…เช‚เชคเซ‡, เช…เชฎเซ‡ เช‡เชšเซเช›เชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ, เช…เชจเซ‡ เชนเชตเซ‡ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เช…เชคเซเชฏเช‚เชค เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช• เช—เซเชฐเชพเชซเชจเชพ เชธเซ‡เชตเชพ เช›เซ‡. เชคเซ‡เชฎเชพเช‚ เชกเซ‡เชŸเชพเชธเซ‡เชŸ เชฒเซ‹เชก เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเชพ เชเชจเซเชŸเซเชฐเซ€ เชชเซ‹เชˆเชจเซเชŸ เช…เชจเซ‡ เช•เซเชฒเชฟเช•เชนเชพเช‰เชธ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชนเซ‹เชธเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซเช‚ IP เชธเชฐเชจเชพเชฎเซเช‚ เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เชคเซ‡ เชตเชฟเชœเชฏ เชœเซ‡เชตเซเช‚ เชฒเชพเช—เชถเซ‡? เชนเชพ, เชตเชฟเชœเชฏ. เชชเชฐเช‚เชคเซ เช•เช‚เชˆเช• เชนเชœเซ€ เชชเชฃ เชฎเชจเซ‡ เชฎเซ‚เช‚เชเชตเชฃเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡. เช‰เชชเชฐเซ‹เช•เซเชค เชธเชฎเช—เซเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เช˜เชฃเชพ เชฌเชงเชพ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชชเช—เชฒเชพเช‚เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡ เชฌเชฟเชฒเช•เซเชฒ เชฎเชพเชชเซ€ เชถเช•เชพเชฏ เชคเซ‡เชตเซเช‚ เชจเชฅเซ€; เชœเซ‹ เชถเช•เซเชฏ เชนเซ‹เชฏ เชคเซ‹ เชนเซเช‚ เชคเซ‡เชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚. เช† เชคเซ‡ เช›เซ‡ เชœเซ‡เชจเซ‡ เช†เช—เชณเชจเซ‹ เชตเชฟเชญเชพเช— เชธเชฎเชฐเซเชชเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชเช•เซ€เช•เชฐเชฃ

เช…เชฎเซ‡ เชซเชฐเซ€เชฅเซ€ HashiCorp เชจเชพเชฎเชจเชพ เชŸเซ‚เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ. เชคเซ‡ เชคเชฎเชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชฆเซเชตเชพเชฐเชพ เชชเชธเชพเชฐ เช•เชฐเชพเชฏเซ‡เชฒเชพ เช•เซ‡เชŸเชฒเชพเช• เชšเชฒเซ‹เชจเชพ เช†เชงเชพเชฐเซ‡ เชฌเชŸเชจเชจเชพ เช•เซเชฒเชฟเช• เชธเชพเชฅเซ‡ เชธเชฎเช—เซเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡. เชšเชพเชฒเซ‹ เชเช• เชฐเซ‡เชธเซ€เชชเซ€ เชฒเช–เซ€เช เชœเซ‡ เชตเชฟเชตเชฟเชง เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเชพ เชตเชฟเชตเชฟเชง เชตเชฟเชญเชพเช—เซ‹เชฎเชพเช‚ เช˜เชฃเซ€ เชตเช–เชค เชšเชฒเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡เชจเซเช‚ เชคเชฎเชพเชฎ เช•เชพเชฐเซเชฏ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡ เช†เชตเซ‡ เช›เซ‡ (*.tf) เช…เชจเซ‡ เชคเซ‡เชจเชพ เช†เชงเชพเชฐเซ‡ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ€ เชฐเชšเชจเชพ.

เชšเชฒเซ‹

เชซเชพเช‡เชฒเชจเซ€ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เช…เชฎเซ‡ เชšเชฒเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เช•เชฐเซ€เชถเซเช‚ เชœเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชญเชพเชตเชฟ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช•เซเชฏเชพเช‚ เช…เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

variable "oauth_token" {
    type = string
    default = "<oauth-token>"
}
variable "cloud_id" {
    type = string
    default = "<cloud-id>"
}
variable "folder_id" {
    type = string
    default = "<folder_id>"
}
variable "service_account_id" {
    type = string
    default = "<service_account_id>"
}
variable "image_id" {
    type = string
    default = "<image_id>"
}
variable "username" {
    type = string
    default = "<username>"
}
variable "password" {
    type = string
    default = "<password>"
}
variable "dbname" {
    type = string
    default = "<dbname>"
}
variable "public_key_path" {
    type = string
    default = "<path to ssh public key>"
}

เชธเชฎเช—เซเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เช† เชšเชฒเซ‹ เชธเซ‡เชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชจเซ€เชšเซ‡ เช†เชตเชถเซ‡. เชคเซ‡เช“ เชถเซเช‚ เชฎเชพเชŸเซ‡ เชœเชตเชพเชฌเชฆเชพเชฐ เช›เซ‡ เชคเซ‡ เชฎเชจเซ‡ เชธเชฎเชœเชพเชตเชตเชพ เชฆเซ‹:

oauth_token - เช•เซเชฒเชพเช‰เชกเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชŸเซ‹เช•เชจ. เชฆเซเชตเชพเชฐเชพ เชฎเซ‡เชณเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช•เชกเซ€.
cloud_id - เช•เซเชฒเชพเช‰เชก เช†เช‡เชกเซ‡เชจเซเชŸเชฟเชซเชพเชฏเชฐ เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชœเชฎเชพเชตเซ€เชถเซเช‚
เชซเซ‹เชฒเซเชกเชฐ_เช†เชˆเชกเซ€ โ€” เชตเชฟเชญเชพเช— เช“เชณเช–เช•เชฐเซเชคเชพ เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชœเชฎเชพเชตเซ€เชถเซเช‚
service_account_id - เช•เซเชฒเชพเช‰เชกเชจเชพ เช…เชจเซเชฐเซ‚เชช เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชธเซ‡เชตเชพ เชเช•เชพเช‰เชจเซเชŸ เช“เชณเช–เช•เชฐเซเชคเชพ.
image_id - เชชเซ‡เช•เชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฎเซ‡เชณเชตเซ‡เชฒ เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœเชจเซเช‚ เช“เชณเช–เช•เชฐเซเชคเชพ
เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชพเชฎ ะธ เชชเชพเชธเชตเชฐเซเชก โ€” เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธ เช…เชจเซ‡ Grafana เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชฌเช‚เชจเซ‡เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชจเชพเชฎ เช…เชจเซ‡ เชชเชพเชธเชตเชฐเซเชก
dbname - CH เช…เชจเซ‡ MySQL เช•เซเชฒเชธเซเชŸเชฐเซ‹เชจเซ€ เช…เช‚เชฆเชฐ เชกเซ‡เชŸเชพเชฌเซ‡เชเชจเซเช‚ เชจเชพเชฎ
เชธเชพเชฐเซเชตเชœเชจเชฟเช•_เช•เซ€_เชชเชฅ โ€” เชคเชฎเชพเชฐเซ€ เชธเชพเชฐเซเชตเชœเชจเชฟเช• ssh เช•เซ€ เชธเชพเชฅเซ‡ เชซเชพเชˆเชฒเชจเซ‹ เชชเชพเชฅ, เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเชฎเซ‡ เชจเชพเชฎ เชนเซ‡เช เชณ เชœเซ‹เชกเชพเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ ubuntu เชตเซ‡เชฌ เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเซ‹ เชชเชฐ

เชชเซเชฐเชฆเชพเชคเชพ เชธเซ‡เชŸเช…เชช

เชนเชตเซ‡ เชคเชฎเชพเชฐเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเชจเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชฏเชพเชจเซเชกเซ‡เช•เซเชธ:

provider "yandex" {
  token     = var.oauth_token
  cloud_id  = var.cloud_id
  folder_id = var.folder_id
  zone      = "ru-central1-a"
}

เชคเชฎเซ‡ เชœเซ‹เชถเซ‹ เช•เซ‡ เช…เชนเซ€เช‚ เช†เชชเชฃเซ‡ เช‰เชชเชฐ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชšเชฒเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช.

เชจเซ‡เชŸเชตเชฐเซเช• เช…เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเซ‹

เชนเชตเซ‡ เช…เชฎเซ‡ เชเช• เชจเซ‡เชŸเชตเชฐเซเช• เชฌเชจเชพเชตเซ€เชถเซเช‚ เชœเซ‡เชฎเชพเช‚ เช…เชฎเชพเชฐเชพ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเชพ เช˜เชŸเช•เซ‹ เชตเชพเชคเชšเซ€เชค เช•เชฐเชถเซ‡, เชคเซเชฐเชฃ เชธเชฌเชจเซ‡เชŸ (เชฆเชฐเซ‡เช• เชชเซเชฐเชฆเซ‡เชถเชฎเชพเช‚ เชเช•) เช…เชจเซ‡ CH เช…เชจเซ‡ MySQL เช•เซเชฒเชธเซเชŸเชฐ เช‰เชญเชพ เช•เชฐเชถเซ‡.


resource "yandex_vpc_network" "grafana_network" {}

resource "yandex_vpc_subnet" "subnet_a" {
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.1.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_b" {
  zone           = "ru-central1-b"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.2.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_c" {
  zone           = "ru-central1-c"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.3.0.0/24"]
}

resource "yandex_mdb_clickhouse_cluster" "ch_cluster" {
  name        = "grafana-clickhouse"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id

  clickhouse {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 16
    }
  }

  zookeeper {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 10
    }
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
    }
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

resource "yandex_mdb_mysql_cluster" "mysql_cluster" {
  name        = "grafana_mysql"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id
  version     = "8.0"

  resources {
    resource_preset_id = "s2.micro"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
      roles         = ["ALL"]
    }
  }

  host {
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }
  host {
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }
  host {
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชฌเซ‡ เช•เซเชฒเชธเซเชŸเชฐเซ‹เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชคเซเชฐเชฃ เช‰เชชเชฒเชฌเซเชงเชคเชพ เชเซ‹เชจเชฎเชพเช‚ เชธเซเชฅเชฟเชค เชนเซ‹เชตเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชคเชฆเซเชฆเชจ เช–เชพเชฎเซ€-เชธเชนเชฟเชทเซเชฃเซ เชฌเชจเชพเชตเซ‡เชฒ เช›เซ‡.

เชตเซ‡เชฌ เชธเชฐเซเชตเชฐเซเชธ

เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช†เชชเชฃเซ‡ เชธเชฎเชพเชจ เชญเชพเชตเชจเชพเชฅเซ€ เช†เช—เชณ เชตเชงเซ€ เชถเช•เซ€เช เช›เซ€เช, เชชเชฐเช‚เชคเซ เชนเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชฎเชพเช‚ เช†เชตเซ€ เช—เชฏเซ‹. เช† เชชเชนเซ‡เชฒเชพเช‚, เชฎเซ‡เช‚ เชธเซŒเชชเซเชฐเชฅเชฎ MySQL เช•เซเชฒเชธเซเชŸเชฐ เช‰เชญเซเช‚ เช•เชฐเซเชฏเซเช‚ เช…เชจเซ‡ เชคเซ‡ เชชเช›เซ€ เชœ, เชคเซ‡เชจเซเช‚ ID เชœเชพเชฃเซ€เชจเซ‡, เชฎเซ‡เช‚ เชœเชฐเซ‚เชฐเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชธเชพเชฅเซ‡ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€, เชœเซเชฏเชพเช‚ เชฎเซ‡เช‚ เช•เซเชฒเชธเซเชŸเชฐ เชฎเชพเชŸเซ‡ เชนเซ‹เชธเซเชŸเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซเชฏเซ‹. เชชเชฐเช‚เชคเซ เชนเชตเซ‡ เช…เชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฒเซ‹เชจเซเชš เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ เช•เซเชฒเชธเซเชŸเชฐ ID เชœเชพเชฃเชคเชพ เชจเชฅเซ€, เชœเซ‡เชฎเชพเช‚ เชˆเชฎเซ‡เชœ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡ เชชเชฃ เชธเชพเชฎเซ‡เชฒ เช›เซ‡. เชคเซ‡เชฅเซ€, เชฎเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชจเชพเชจเซ‹ เช†เชถเชฐเซ‹ เชฒเซ‡เชตเซ‹ เชชเชกเซเชฏเซ‹ เชฏเซเช•เซเชคเชฟ.

เชเชฎเซ‡เชเซ‹เชจเชจเซ€ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชธเซ‡เชตเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชจเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชชเชฐเชฟเชฎเชพเชฃเซ‹ เชชเชธเชพเชฐ เช•เชฐเซ€เชถเซเช‚, เชœเซ‡เชจเซ‡ เชคเซ‡ เชธเซเชตเซ€เช•เชพเชฐเชถเซ‡ เช…เชจเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชถเซ‡. เช…เชฎเชพเชฐเซ‡ MySQL เช•เซเชฒเชธเซเชŸเชฐ เชนเซ‹เชธเซเชŸ เช…เชจเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเชพเชฎ-เชชเชพเชธเชตเชฐเซเชกเชจเซ€ เชชเชพเช›เชณเชจเชพ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชชเชฐ เชœเชตเชพ เชฎเชพเชŸเซ‡ เชฎเชถเซ€เชจเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชœเซ‡ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช เชถเชฐเซ‚ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชซเชพเช‡เชฒเชฎเชพเช‚ เชธเซเชชเชทเซเชŸ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชšเชพเชฒเซ‹ เชซเชพเชˆเชฒเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชฎเชพเช‚ เชฅเซ‹เชกเซ‹ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ€เช setup.sh, เชœเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชšเชพเชฒเซ เชนเซ‹เชฏ เชคเซเชฏเชพเชฐเซ‡ เชšเชพเชฒเซ‡ เช›เซ‡.

setup.sh:

#!/bin/bash
CLUSTER_URI="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/mysql_cluster_uri)"
USERNAME="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/username)"
PASSWORD="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/password)"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@${CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

เช‡เชจเซเชŸเซ‡เชจเซเชธ เช—เซเชฐเซเชช เช…เชจเซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ

เชจเชตเซ€ เชกเชฟเชธเซเช• เชˆเชฎเซ‡เชœ เชชเซเชจเชƒเชฌเซ€เชฒเซเชก เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเซ‡ เช›เซ‡เชฒเซเชฒเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เช…เชฎเชพเชฐเซ€ เชซเชพเชˆเชฒ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช.

เชšเชพเชฒเซ‹ เชธเซ‚เชšเชตเซ€เช เช•เซ‡ เช…เชฎเซ‡ เชนเชพเชฒเชจเซ€ เชกเชฟเชธเซเช• เช‡เชฎเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ€เช เช›เซ€เช:

data "yandex_compute_image" "grafana_image" {
  image_id = var.image_id
}

เชนเชตเซ‡ เชšเชพเชฒเซ‹ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชœเซ‚เชฅ เชฌเชจเชพเชตเซ€เช:

resource "yandex_compute_instance_group" "grafana_group" {
  name               = "grafana-group"
  folder_id          = var.folder_id
  service_account_id = var.service_account_id
  instance_template {
    platform_id = "standard-v1"
    resources {
      memory = 1
      cores  = 1
    }
    boot_disk {
      mode = "READ_WRITE"
      initialize_params {
        image_id = data.yandex_compute_image.grafana_image.id
        size     = 4
      }
    }
    network_interface {
      network_id = yandex_vpc_network.grafana_network.id
      subnet_ids = [yandex_vpc_subnet.subnet_a.id, yandex_vpc_subnet.subnet_b.id, yandex_vpc_subnet.subnet_c.id]
      nat = "true"
    }
    metadata = {
      mysql_cluster_uri = "c-${yandex_mdb_mysql_cluster.mysql_cluster.id}.rw.mdb.yandexcloud.net:3306/${var.dbname}"
      username = var.username
      password = var.password
      ssh-keys = "ubuntu:${file("${var.public_key_path}")}"
    }
    network_settings {
      type = "STANDARD"
    }
  }

  scale_policy {
    fixed_scale {
      size = 6
    }
  }

  allocation_policy {
    zones = ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
  }

  deploy_policy {
    max_unavailable = 2
    max_creating    = 2
    max_expansion   = 2
    max_deleting    = 2
  }

  load_balancer {
    target_group_name = "grafana-target-group"
  }
}

เช…เชฎเซ‡ เชคเซ‡เชจเซ‡ เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพเชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเชธเชพเชฐ เช•เชฐเซเชฏเซเช‚ เชคเซ‡เชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช†เชชเชตเซเช‚ เชฏเซ‹เช—เซเชฏ เช›เซ‡ cluster_uri, username ะธ password. เชคเซ‡ เช† เช›เซ‡ เช•เซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชธเซเชŸเชพเชฐเซเชŸเช…เชช เชชเชฐ เชฌเชนเชพเชฐ เช•เชพเชขเชถเซ‡ เช…เชจเซ‡ Grafana เชฐเซ‚เชชเชฐเซ‡เช–เชพเชฎเชพเช‚ เชฎเซ‚เช•เชถเซ‡.

เชคเซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชชเชฐ เช›เซ‡.

resource "yandex_lb_network_load_balancer" "grafana_balancer" {
  name = "grafana-balancer"

  listener {
    name = "grafana-listener"
    port = 80
    target_port = 3000
    external_address_spec {
      ip_version = "ipv4"
    }
  }

  attached_target_group {
    target_group_id = yandex_compute_instance_group.grafana_group.load_balancer.0.target_group_id

    healthcheck {
      name = "healthcheck"
      tcp_options {
        port = 3000
      }
    }
  }
}

เชฅเซ‹เชกเซ€ เช–เชพเช‚เชก

เชฅเซ‹เชกเซ€เช• เชœ เชฌเชพเช•เซ€ เช›เซ‡. เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชคเซˆเชจเชพเชค เชฅเชฏเชพ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ Grafana UI เชชเชฐ เชœเชตเซเช‚ เชชเชกเชถเซ‡ เช…เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ CH เช•เซเชฒเชธเซเชŸเชฐ (เชœเซ‡เชจเซเช‚ ID เชนเชœเซ เชชเชฃ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡) เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชค เชคเชฐเซ€เช•เซ‡ เช‰เชฎเซ‡เชฐเชตเซเช‚ เชชเชกเชถเซ‡. เชชเชฐเช‚เชคเซ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซเชฒเชธเซเชŸเชฐ ID เชจเซ‡ เชœเชพเชฃเซ‡ เช›เซ‡. เชšเชพเชฒเซ‹ เชคเซ‡เชจเซ‡ เช† เชฌเชพเชฌเชคเชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชตเชพเชฌเชฆเชพเชฐเซ€ เชธเซ‹เช‚เชชเซ€เช.

เชšเชพเชฒเซ‹ เชเช• เชจเชตเซ‹ เชชเซเชฐเชฆเชพเชคเชพ เช‰เชฎเซ‡เชฐเซ€เช - Grafana, เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชนเซ‹เชธเซเชŸ เชคเชฐเซ€เช•เซ‡ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐเชจเซเช‚ IP เชธเชฐเชจเชพเชฎเซเช‚ เช†เชชเซ€เช. เชคเชฎเชพเชฎ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เซ‡ เชœเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเชถเซ€เชจ เชชเชฐ เช•เชฐเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชคเซ‡เชจเซเช‚ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ MySQL เชฎเชพเช‚ เชตเชงเชถเซ‡, เช…เชจเซ‡ เชคเซ‡เชฅเซ€ เช…เชจเซเชฏ เชคเชฎเชพเชฎ เชฎเชถเซ€เชจเซ‹ เชชเชฐ.

provider "grafana" {
  url  = "http://${[for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0}"
  auth = "${var.username}:${var.password}"
}

resource "grafana_data_source" "ch_data_source" {
  type          = "vertamedia-clickhouse-datasource"
  name          = "grafana"
  url           = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
  basic_auth_enabled = "true"
  basic_auth_username = var.username
  basic_auth_password = var.password
  is_default = "true"
  access_mode = "proxy"
}

เชšเชพเชฒเซ‹ เช†เชชเชฃเชพ เชตเชพเชณ เช•เชพเช‚เชธเช•เซ‹ เช•เชฐเซ€เช

เชšเชพเชฒเซ‹ เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ IP เชเชกเซเชฐเซ‡เชธ เช…เชจเซ‡ เช•เซเชฒเชฟเช•เชนเชพเช‰เชธ เช•เซเชฒเชธเซเชŸเชฐเชจเชพ เชนเซ‹เชธเซเชŸเชจเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เช•เชฐเซ€เช

output "grafana_balancer_ip_address" {
  value = [for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0
}

output "clickhouse_cluster_host" {
  value = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
}

เชฆเซ‹เชกเซ€ เชถเช•เซ‡ เช›เซ‡

เชฌเชงเชพ! เช…เชฎเชพเชฐเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเชˆเชฒ เชคเซˆเชฏเชพเชฐ เช›เซ‡ เช…เชจเซ‡ เช…เชฎเซ‡, เชตเซ‡เชฐเซ€เชเชฌเชฒ เชธเซ‡เชŸ เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เชฆเชฐเซ‡เช• เชตเชธเซเชคเซเชจเซ‡ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชจเซ‡ เช•เชนเซ€ เชถเช•เซ€เช เช›เซ€เช. เช†เช–เซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชฎเชจเซ‡ เชฒเช—เชญเช— 15 เชฎเชฟเชจเชฟเชŸเชจเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซเชฏเซ‹.
เช…เช‚เชคเซ‡ เชคเชฎเซ‡ เชเช• เชธเซเช‚เชฆเชฐ เชธเช‚เชฆเซ‡เชถ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹:

Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:

clickhouse_cluster_host = https://c-c9q14ipa2ngadqsbp2iq.rw.mdb.yandexcloud.net:8443
grafana_balancer_ip_address = 130.193.50.25

เช…เชจเซ‡ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚, เช‰เชญเซ‡เชฒเชพ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเชพ เช˜เชŸเช•เซ‹ เชฆเซ‡เช–เชพเชถเซ‡:

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ Yandex.Cloud เชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชธเซ‡เชตเชพเช“เชจเซ€ เชœเชฎเชพเชตเชŸ

เชšเชพเชฒเซ‹ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซ‡ เชธเชฐเชตเชพเชณเซ‹ เช•เชฐเซ€เช

เชนเชตเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ Grafana เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เชคเชฎเชพเชฐเชพเชฎเชพเช‚เชจเชพ เชฆเชฐเซ‡เช• Yandex.Cloud เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ เช›เซ‚เชŸเชพเช›เชตเชพเชฏเชพ เช•เซเชฒเชพเช‰เชก เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เชธเชพเชฅเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹ เชœเชฎเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡. HashiCorp เชจเชพ เชฎเชฆเชฆเชฐเซ‚เชช เชธเชพเชงเชจเซ‹ เชœเซ‡เชฎ เช•เซ‡ Packer เช…เชจเซ‡ Terraform เชคเชฎเชจเซ‡ เช†เชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. เชฎเชจเซ‡ เช†เชถเชพ เช›เซ‡ เช•เซ‡ เช•เซ‹เชˆเชจเซ‡ เช† เชฒเซ‡เช– เช‰เชชเชฏเซ‹เช—เซ€ เชฒเชพเช—เชถเซ‡ :)

PS เชจเซ€เชšเซ‡ เชนเซเช‚ เชฐเชฟเชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ€ เชเช• เชฒเชฟเช‚เช• เชœเซ‹เชกเซ€เชถ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เชชเซ‡เช•เชฐ เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เชฐเซ‡เชธเชฟเชชเซ€ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชจเชพ เชŸเซเช•เชกเชพ เชฎเซ‡เช‚ เช† เชฒเซ‡เช–เชฎเชพเช‚ เช†เชชเซเชฏเชพ เช›เซ‡.

เชญเช‚เชกเชพเชฐ

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹