เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจธเจพเจฐเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจธเจคเจฟ เจธเจผเฉเจฐเฉ€ เจ…เจ•เจพเจฒ! เจฎเฉ‡เจฐเฉ‡ เจ•เฉ‹เจฐเจธ เจฆเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจœเฉ‹เจ‚, เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ‡ เจ˜เจฐเฉ‡เจฒเฉ‚ เจ•เจฒเจพเจ‰เจก เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฆเฉ€เจ†เจ‚ เจธเจฎเจฐเฉฑเจฅเจพเจตเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เฉ€เจคเฉ€ Yandex.Cloud. เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจตเจฟเจนเจพเจฐเจ• เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจตเฉฑเจ–-เจตเฉฑเจ– เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เจˆ เจตเจพเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจนเจจเจพเจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ‡ เจ…เจงเจพเจฐ 'เจคเฉ‡ เจ•เจพเจซเจผเฉ€ เจตเจฟเจ†เจชเจ• เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ…เจœเจฟเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจตเจฟเฉฑเจš เจ†เจชเจฃเจพ เจ…เจจเฉเจญเจต เจธเจพเจ‚เจเจพ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจคเฉเจธเฉ€เจ‚ เจ•เฉ€ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹?

เจ—เฉเจฐเจพเจซเจจเจพ โ€” เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฟเจธเจŸเจฎ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃเจพเจคเจฎเจ• เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจœเจพเจ‚ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจธเจผเจ•เจคเฉ€เจธเจผเจพเจฒเฉ€ เจธเฉฐเจฆเฅค เจ‡เจธเจฆเฉ€ เจฎเฉ‚เจฒ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš, เจ‡เจน เจ‡เฉฑเจ• เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจตเจพเจฒเฉ€ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจนเฉˆ, เจ…เจคเฉ‡ เจจเจพเจฒ เจนเฉ€ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจธเฉ‡เจŸ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ (เจ•เจฒเจฟเฉฑเจ•เจนเจพเจŠเจธ, เจ‡เจจเจซเจฒเฉ‚เจ•เจธเจกเฉ€เจฌเฉ€, เจ†เจฆเจฟ) เจนเฉˆ เจœเจฟเจธ 'เจคเฉ‡ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ…เจงเจพเจฐเจค เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจ‡เฉฑเจ• เจตเฉˆเจฌ เจธเจฐเจตเจฐ เจจเจพเจฒ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจฆเฉ‡ เจนเฉ‹เจธเจŸ 'เจคเฉ‡ เจœเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉเฉฐเจฆเจฐ UI เจชเฉเจฐเจพเจชเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจนเฉ‹เจฐ เจ•เฉฐเจฎ เจฒเจˆ เจธเจฐเฉ‹เจคเจพเจ‚ เจตเจœเฉ‹เจ‚ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก เจ…เจคเฉ‡ เจ—เฉเจฐเจพเจซ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจฎเฉ‚เจฒ เจธเฉฐเจธเจ•เจฐเจฃ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจฃ เจ•เจฎเฉ€ เจนเฉˆ - เจ‡เจน เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจจเฉเจ•เจธ-เจธเจนเจฟเจฃเจธเจผเฉ€เจฒ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค เจญเจพเจต, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจธเจฎเฉเฉฑเจšเฉ€ เจ•เจพเจฐเจœเจธเจผเฉ€เจฒเจคเจพ เจ‡เฉฑเจ• เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฆเฉ€ เจตเจฟเจนเจพเจฐเจ•เจคเจพ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เจน เจ‡เจจเจ•เจพเจฐ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจพเจ‚ 10 เจฒเฉ‹เจ• เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ UI เจ–เฉ‹เจฒเฉเจนเจฆเฉ‡ เจนเจจ, เจคเจพเจ‚ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚เฅค

เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ†เจธเจพเจจเฉ€ เจจเจพเจฒ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ: เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฆเฉ‡ เจจเจพเจฒ เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ€เจ†เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• L3 เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจฆเฉ‡ เจนเฉ‡เจ เจพเจ‚ เจฐเฉฑเจ–เฉ‹เฅค เจชเจฐ เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจ‡เฉฐเจจเจพ เจธเจชเฉฑเจธเจผเจŸ เจจเจนเฉ€เจ‚ เจนเฉˆ. เจ—เฉเจฐเจพเจซเจพเจจเจพ เจ†เจชเจฃเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจฆเฉ€ เจกเจฟเจธเจ• 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ (เจกเจพเจŸเจพเจฌเฉ‡เจธ, เจกเฉˆเจธเจผเจฌเฉ‹เจฐเจก, เจ—เฉเจฐเจพเจซ, เจ†เจฆเจฟ เจฆเฉ‡ เจฎเจพเจฐเจ—) เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ UI เจตเจฟเฉฑเจš เจ•เฉเจ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฌเจฆเจฒเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ‡เจน เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจธเจฟเจฐเจซเจผ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจนเฉ€ เจฆเจฟเจ–เจพเจˆ เจฆเฉ‡เจฃเจ—เฉ€เจ†เจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจจเฉ‡ เจธเจพเจจเฉ‚เฉฐ เจญเฉ‡เจœเจฟเจ† เจนเฉˆเฅค เจ‡เจน เจธเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจˆ เจ…เจธเฉฐเจ—เจค เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจตเฉฑเจฒ เจฒเฉˆ เจœเจพเจตเฉ‡เจ—เจพ, เจœเจฟเจธ เจจเจพเจฒ เจฒเจพเจ‚เจš เจ…เจคเฉ‡ เจตเจฐเจคเฉ‹เจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚เฅค

เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฌเจšเจพเจ… เจฒเจˆ เจ†เจตเฉ‡เจ—เจพ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, MySQL เจœเจพเจ‚ เจ‡เจธเจฆเฉ‡ เจฌเจฐเจพเจฌเจฐเฅค เจ…เจธเฉ€เจ‚ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ เจ•เจนเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚ เจ•เจฟ เจ‰เจธเจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจธ "เจธเจชเฉ‡เจ…เจฐ" เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจนเจฐเฉ‡เจ• เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจ‡เฉฑเจ• เจตเจพเจฐ เจ‡เจธ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเจพ เจฎเจพเจฐเจ— เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ, เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจนเฉ‹เจฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจชเจพเจฆเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ‡เจน เจ•เจพเจซเจผเฉ€ เจนเฉ‹เจตเฉ‡เจ—เจพ; เจ‰เจน เจนเฉ‹เจฐเจพเจ‚ เจคเฉฑเจ• เจตเจงเจฃเจ—เฉ‡เฅค

เจ‡เฉฑเจฅเฉ‡ เจ…เฉฐเจคเจฎ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฆเจพ เจ‡เฉฑเจ• เจšเจฟเฉฑเจคเจฐ เจนเฉˆ:

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจ†เจ“ เจ†เจชเจฃเฉ‡ เจนเฉฑเจฅเจพเจ‚ เจจเจพเจฒ เจšเฉเฉฑเจ•เจฃเจพ เจธเจฟเฉฑเจ–เฉ€เจ

MySQL เจ…เจคเฉ‡ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ

เจ‡เฉฑเจ• เจฌเจŸเจจ เจฆเฉ‡ เจ•เจฒเจฟเฉฑเจ• เจจเจพเจฒ เจ…เจœเจฟเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจคเฉˆเจจเจพเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ‡เจน เจธเจฟเฉฑเจ–เจฃเจพ เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเฉ€ เจ•เจฟ เจ‡เจธเจฆเฉ‡ เจนเจฐเฉ‡เจ• เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจญเจพเจฒเจฃเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจ•เจฟเจตเฉ‡เจ‚ เจœเฉ‹เฉœเจจเจพ เจนเฉˆเฅค

เจ‡เฉฑเจฅเฉ‡ Yandex.Cloud เจธเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพ, เจœเฉ‹ L3 เจฌเฉˆเจฒเฉ‡เจ‚เจธ, เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจ…เจคเฉ‡ MySQL เจจเฉ‚เฉฐ เจชเฉเจฐเจฌเฉฐเจงเจฟเจค เจธเฉ‡เจตเจพเจตเจพเจ‚ เจตเจœเฉ‹เจ‚ เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจธเจผเจšเจฟเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจธเจญ เจ•เฉเจ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ‡ เจ•เฉเจฐเจฎ เจตเจฟเฉฑเจš เจฒเจฟเจ†เจ‰เจฃ เจคเฉฑเจ• เจ‰เจกเฉ€เจ• เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจฎเฉˆเจ‚ เจฐเจœเจฟเจธเจŸเจฐ เจ•เฉ€เจคเจพ, เจ‡เฉฑเจ• เจ•เจฒเจพเจ‰เจก เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจญเฉเจ—เจคเจพเจจ เจ–เจพเจคเจพ เจฌเจฃเจพเจ‡เจ†เฅค เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจฎเฉˆเจ‚ เจ•เจฒเจพเจ‰เจก เจคเฉ‡ เจ—เจฟเจ† เจ…เจคเฉ‡ MySQL เจ…เจคเฉ‡ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจ•เจฒเฉฑเจธเจŸเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจŠเจจเจคเจฎ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเฉˆเจŸ เจ…เจช เจ•เฉ€เจคเจพ. เจฎเฉˆเจ‚ เจ‡เฉฐเจคเจœเจผเจพเจฐ เจ•เฉ€เจคเจพ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‰เจน เจธเจฐเจ—เจฐเจฎ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ‡.

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจคเฉเจนเจพเจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฌเจฃเจพเจ‰เจฃเจพ เจ…เจคเฉ‡ เจฒเฉŒเจ—เจ‡เจจ เจ…เจคเฉ‡ เจชเจพเจธเจตเจฐเจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจเจพ เจตเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจฎเฉˆเจ‚ เจ‡เฉฑเจฅเฉ‡ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจจเจนเฉ€เจ‚ เจœเจพเจตเจพเจ‚เจ—เจพ - เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจตเจฟเฉฑเจš เจธเจญ เจ•เฉเจ เจธเจชเฉฑเจธเจผเจŸ เจนเฉˆ.

เจ—เฉˆเจฐ-เจธเจชเฉฑเจธเจผเจŸ เจตเฉ‡เจฐเจตเฉ‡ เจ‡เจน เจธเฉ€ เจ•เจฟ เจ‡เจนเจจเจพเจ‚ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจนเจจ, เจœเฉ‹ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจจเฉ‚เฉฐ เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ. เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ เจนเจฐเฉ‡เจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฒเจˆ เจฌเจฟเจฒเจ•เฉเจฒ เจ‡เฉฑเจ• เจนเฉ‹เจธเจŸ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเจฟเจธ เจจเจพเจฒ เจ‡เจน เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจฒเฉฐเจฎเจพ เจชเฉœเฉเจนเจจเจพ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ เจฌเฉฑเจฆเจฒ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจซเฉˆเจธเจฒเฉ‡ 'เจคเฉ‡ เจฒเฉˆ เจ†เจเฅค เจ‡เจน เจธเจชเฉ€เจธเฉ€เจœเจผ เจฆเฉ‡ เจฎเฉ‡เจœเจผเจฌเจพเจจ เจนเฉˆ, เจœเฉ‹ เจ•เจฟ เจฌเจพเจนเจฐ เจ•เจพเจฎเฉเจ• c-<cluster_id>.rw.mdb.yandexcloud.net เจ…เจจเฉเจธเจพเจฐเฉ€ ID เจจเจพเจฒ เจ•เจฒเฉฑเจธเจŸเจฐ เจฆเฉ‡ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเจฐเจ—เจฐเจฎ เจฎเจพเจธเจŸเจฐ เจนเฉ‹เจธเจŸ เจจเจพเจฒ เจฎเฉˆเจช เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจ…เจธเฉ€เจ‚ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ เจฆเฉ‡เจตเจพเจ‚เจ—เฉ‡เฅค

เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ

เจนเฉเจฃ เจ‡เจน เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ†เจ‰ เจฒเฉ€เจจเจ•เจธ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจคเจฟเจ†เจฐ เจ•เจฐเฉ€เจ เจ…เจคเฉ‡ เจ‡เจธ เจ‰เฉฑเจคเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ เจนเฉฑเจฅเฉ€เจ‚ เจธเฉฐเจฐเจšเจฟเจค เจ•เจฐเฉ€เจเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ 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 

เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจšเจฒเฉ‹ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจจเฉ‚เฉฐ systemctl เจฆเฉ‡ เจ…เจงเฉ€เจจ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจชเจฒเฉฑเจ—เจ‡เจจ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ (เจนเจพเจ‚, เจ‡เจน เจฎเฉ‚เจฒ เจชเฉˆเจ•เฉ‡เจœ เจตเจฟเฉฑเจš เจธเจชเจฒเจพเจˆ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ)เฅค

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 เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจชเจฐ เจœเจฒเจฆเจฌเจพเจœเจผเฉ€ เจจเจพ เจ•เจฐเฉ‹, เจ—เฉเจฐเจพเจซเจพเจจเจพ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เฉฑเจฅเฉ‡ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ เจ‡เจธ เจจเฉ‚เฉฐ MySQL เจฆเจพ เจฎเจพเจฐเจ— เจฆเฉฑเจธเจฃเจพ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค

เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฆเฉ€ เจชเฉ‚เจฐเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจนเฉˆ /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 เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพ เจธเจฐเฉ‹เจค เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจฎเฉˆเจ‚ เจนเฉ‡เจ  เจฒเจฟเจ–เฉ€เจ†เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเจพเจฒ เจ‡เฉฑเจ• เจ•เจพเจฐเจœเจธเจผเฉ€เจฒ เจธเฉฐเจฐเจšเจจเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจธเฉ€:

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ 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) เจธเจฟเจธเจŸเจฎเจธเฉ€เจŸเฉ€เจเจฒ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจšเจฒเจพเจ“ เจ…เจคเฉ‡ เจ•เจฒเจฟเจ•เจนเจพเจŠเจธ เจชเจฒเฉฑเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเฉ‹
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 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€
เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจ…เจคเฉ‡ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ

เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เฉฑเจ• เจกเจฟเจธเจ• เจšเจฟเฉฑเจคเจฐ เจนเฉเฉฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจธเจพเจจเฉ‚เฉฐ เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค Yandex.Cloud เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ 'เจคเฉ‡, เจ‡เจน เจธเจผเจฌเจฆ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจฏเฉเจจเฉ€เจ…เจจ เจจเฉ‚เฉฐ เจฆเจฐเจธเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจœเจฟเจจเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ เจนเจจเฅค เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡, เจ‡เจธ เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจธเจพเจฐเฉ€เจ†เจ‚ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจช เจธเฉฐเจฐเจšเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจธเจฎเฉ‚เจน เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ•เจฟเจฐเจฟเจ†เจธเจผเฉ€เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ€ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ…เจคเฉ‡ เจตเฉฑเจง เจคเฉ‹เจ‚ เจตเฉฑเจง เจ—เจฟเจฃเจคเฉ€)เฅค เจœเฉ‡เจ•เจฐ เจฎเฉŒเจœเฉ‚เจฆเจพ เจธเฉฐเจ–เจฟเจ† เจ‡เจนเจจเจพเจ‚ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจชเฉ‚เจฐเจพ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจ–เฉเจฆ เจฌเฉ‡เจฒเฉ‹เฉœเฉ€เจ†เจ‚ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพ เจœเจพเจ‚ เจ†เจชเจฃเฉ‡ เจšเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจš เจจเจตเฉ€เจ†เจ‚ เจฌเจฃเจพ เจฆเฉ‡เจตเฉ‡เจ—เจพเฅค

เจธเจพเจกเฉ‡ เจ•เฉฐเจฎ เจฆเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจตเจœเฉ‹เจ‚, เจ…เจธเฉ€เจ‚ เจตเฉˆเจฌ เจธเจฐเจตเจฐเจพเจ‚ เจฆเจพ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจฌเจฃเจพเจตเจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจชเจนเจฟเจฒเจพเจ‚ เจฌเจฃเจพเจˆ เจ—เจˆ เจกเจฟเจธเจ• เจšเจฟเฉฑเจคเจฐ เจคเฉ‹เจ‚ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจœเฉ‹ เจธเฉฑเจšเจฎเฉเฉฑเจš เจ•เจฎเจพเจฒ เจฆเฉ€ เจนเฉˆ เจ‰เจน เจ†เจ–เจฐเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจธเจฎเฉ‚เจน เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจนเฉˆเฅค เจฒเฉ‹เจก เจฌเฉˆเจฒเฉˆเจ‚เจธเจฐ เจฆเฉ‡ เจจเจพเจฒ เจเจ•เฉ€เจ•เจฐเจฃ เจตเจฟเฉฑเจš เจŸเฉ€เจšเจพ เจธเจฎเฉ‚เจน เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจธเจฎเฉ‚เจน เจฆเฉ€เจ†เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจ•เฉเจ เจฌเจŸเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฆเจฌเจพ เจ•เฉ‡ เจ‡เฉฑเจ• L3 เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจจเฉ‚เฉฐ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจตเจฟเฉฑเจš เจฎเจฆเจฆ เจ•เจฐเฉ‡เจ—เจพเฅค

เจ‰เจฆเจพเจนเจฐเจจ เจตเจœเฉ‹เจ‚ Grafana เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Yandex.Cloud เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจฆเฉ€ เจคเฉˆเจจเจพเจคเฉ€

เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจฎเฉˆเจ‚ เจฆเฉ‹ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจจเฉเจ•เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡:

  1. เจฎเฉˆเจ‚ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจจเฉ‚เฉฐ เจชเฉ‹เจฐเจŸ 80 'เจคเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจธเจจเฉ‚เฉฐ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฆเฉ‡ เจชเฉ‹เจฐเจŸ 3000 'เจคเฉ‡ เจฐเฉ€เจกเจพเจ‡เจฐเฉˆเจ•เจŸ เจ•เฉ€เจคเจพ, เจฌเจฟเจฒเจ•เฉเจฒ เจœเจฟเฉฑเจฅเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจฐเจนเจฟเฉฐเจฆเจพ เจนเฉˆเฅค
  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 เจจเฉ‚เฉฐ เจœเจพเจฃ เจ•เฉ‡, เจฎเฉˆเจ‚ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจกเจฟเจธเจ• เจšเจฟเฉฑเจคเจฐ เจ‡เจ•เฉฑเจ เจพ เจ•เฉ€เจคเจพ, เจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจฒเจˆ เจนเฉ‹เจธเจŸ เจจเฉ‚เฉฐ เจจเจฟเจธเจผเจšเจฟเจค เจ•เฉ€เจคเจพเฅค เจชเจฐ เจนเฉเจฃ เจธเจพเจจเฉ‚เฉฐ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจ•เจฒเฉฑเจธเจŸเจฐ เจ†เจˆเจกเฉ€ เจจเจนเฉ€เจ‚ เจชเจคเจพ, เจœเจฟเจธ เจตเจฟเฉฑเจš เจšเจฟเฉฑเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจตเฉ€ เจธเจผเจพเจฎเจฒ เจนเฉˆเฅค เจ‡เจธ เจฒเจˆ, เจฎเฉˆเจจเฉ‚เฉฐ เจนเฉ‡เจ  เจฒเจฟเจ–เจฟเจ†เจ‚ เจฆเจพ เจธเจนเจพเจฐเจพ เจฒเฉˆเจฃเจพ เจชเจฟเจ† เจšเจพเจฒ.

เจเจฎเจพเจœเจผเจพเจจ เจฆเฉ€ เจฎเฉˆเจŸเจพเจกเฉ‡เจŸเจพ เจธเฉ‡เจตเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ, เจ…เจธเฉ€เจ‚ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจจเฉ‚เฉฐ เจ•เฉเจ เจฎเจพเจชเจฆเฉฐเจก เจชเจพเจธ เจ•เจฐเจพเจ‚เจ—เฉ‡, เจœเจฟเจธ เจจเฉ‚เฉฐ เจ‡เจน เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเฉ‡เจ—เจพ เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เจ—เจพเฅค เจธเจพเจจเฉ‚เฉฐ 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. เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจ เจธเจŸเจพเจฐเจŸเจ…เจช 'เจคเฉ‡ เจฌเจพเจนเจฐ เจ•เฉฑเจขเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจ—เฉเจฐเจพเจซเจพเจจเจพ เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจชเจพ เจฆเฉ‡เจตเฉ‡เจ—เฉ€เฅค

เจ‡เจน เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ 'เจคเฉ‡ เจจเจฟเจฐเจญเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

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
      }
    }
  }
}

เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจ–เฉฐเจก

เจฅเฉ‹เฉœเจพ เจœเจฟเจนเจพ เจนเฉ€ เจฌเจšเจฟเจ† เจนเฉˆเฅค เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเจพ เจคเฉˆเจจเจพเจค เจ•เฉ€เจคเฉ‡ เจœเจพเจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ—เฉเจฐเจพเจซเจพเจจเจพ UI 'เจคเฉ‡ เจœเจพเจฃเจพ เจชเจตเฉ‡เจ—เจพ เจ…เจคเฉ‡ CH เจ•เจฒเฉฑเจธเจŸเจฐ (เจœเจฟเจธ เจฆเฉ€ ID เจ…เจœเฉ‡ เจตเฉ€ เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเฉ€ เจœเจพเจฃเฉ€ เจนเฉˆ) เจจเฉ‚เฉฐ เจกเจพเจŸเจพ เจธเจฐเฉ‹เจค เจตเจœเฉ‹เจ‚ เจฆเจธเจคเฉ€ เจœเฉ‹เฉœเจจเจพ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค เจชเจฐ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจ•เจฒเฉฑเจธเจŸเจฐ เจ†เจˆเจกเฉ€ เจจเฉ‚เฉฐ เจœเจพเจฃเจฆเจพ เจนเฉˆเฅค เจšเจฒเฉ‹ เจ‰เจธ เจจเฉ‚เฉฐ เจฎเจพเจฎเจฒเฉ‡ เจจเฉ‚เฉฐ เจธเจฟเจฐเฉ‡ เจšเฉœเฉเจนเจพเจ‰เจฃ เจฆเฉ€ เจœเจผเจฟเฉฐเจฎเฉ‡เจตเจพเจฐเฉ€ เจธเฉŒเจ‚เจชเฉ€เจเฅค

เจ†เจ‰ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจชเฉเจฐเจฆเจพเจคเจพ เจœเฉ‹เฉœเฉ€เจ - เจ—เฉเจฐเจพเจซเจพเจจเจพ, เจ…เจคเฉ‡ เจ‰เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฎเฉ‡เจœเจผเจฌเจพเจจ เจตเจœเฉ‹เจ‚ เจฌเฉˆเจฒเฉ‡เจ‚เจธเจฐ เจฆเจพ 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 เจคเฉ‹เจ‚ เจฎเจฆเจฆเจ—เจพเจฐ เจŸเฉ‚เจฒ เจ‡เจธ เจตเจฟเฉฑเจš เจคเฉเจนเจพเจกเฉ€ เจฎเจฆเจฆ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ เจ•เจฟ เจ•เจฟเจธเฉ‡ เจจเฉ‚เฉฐ เจ‡เจน เจฒเฉ‡เจ– เจฒเจพเจญเจฆเจพเจ‡เจ• เจฒเฉฑเจ—เฉ‡เจ—เจพ :)

เจชเฉ€.เจเฉฑเจธ. เจนเฉ‡เจ เจพเจ‚ เจฎเฉˆเจ‚ เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจจเจพเจฒ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• เจจเฉฑเจฅเฉ€ เจ•เจฐเจพเจ‚เจ—เจพ เจœเจฟเฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจชเฉˆเจ•เจฐ เจ…เจคเฉ‡ เจŸเฉˆเจฐเจพเจซเจพเจฐเจฎ เจฒเจˆ เจคเจฟเจ†เจฐ เจชเจ•เจตเจพเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจœเจฟเจธ เจฆเฉ‡ เจŸเฉเจ•เฉœเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจพเจจ เจ•เฉ€เจคเฉ‡ เจนเจจ.

เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹