рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рд╕рд░реНрд╡рд╛рдВрдирд╛ рдирдорд╕реНрдХрд╛рд░! рдорд╛рдЭреНрдпрд╛ рдЕрднреНрдпрд╛рд╕рдХреНрд░рдорд╛рдЪреНрдпрд╛ рдХрд╛рдорд╛рдЪрд╛ рднрд╛рдЧ рдореНрд╣рдгреВрди, рдореА рдЕрд╢рд╛ рдШрд░рдЧреБрддреА рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдордЪреНрдпрд╛ рдХреНрд╖рдорддрд╛рдВрд╡рд░ рд╕рдВрд╢реЛрдзрди рдХреЗрд▓реЗ Yandex.Cloud. рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╡рд┐рдз рд╕реЗрд╡рд╛ рджреЗрддреЗ. рддрдерд╛рдкрд┐, рдХрд╛рд╣реАрд╡реЗрд│рд╛ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдпрд╛ рд╕реЗрд╡рд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдмрд░реНтАНрдпрд╛рдкреИрдХреА рд╡рд┐рд╕реНрддреГрдд рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛рдВрд╕рд╣ рдЖрдкрд▓рд╛ рд╕реНрд╡рддрдГрдЪрд╛ рдХреНрд▓рд╛рдЙрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдпрд╛ рд▓реЗрдЦрд╛рдд рдореА рдЕрд╕рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рдЭрд╛ рдЕрдиреБрднрд╡ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░реВ рдЗрдЪреНрдЫрд┐рддреЛ.

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ?

рдЧреНрд░рд╛рдлрд╛рдирд╛ тАФ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХрд┐рдВрд╡рд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╕рд╛рдзрди. рддреНрдпрд╛рдЪреНрдпрд╛ рдореВрд▓рднреВрдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ, рд╣реЗ Grafana рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЖрд╣реЗ, рддрд╕реЗрдЪ рдбреЗрдЯрд╛рд╕реЗрдЯрд╕рд╣ рдбреЗрдЯрд╛рдмреЗрд╕ (рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕, рдЗрдиреНрдлреНрд▓рдХреНрд╕рдбреАрдмреА, рдЗ.) рдЖрд╣реЗ рдЬреНрдпрд╛рд╡рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЖрдзрд╛рд░рд┐рдд рдЕрд╕реЗрд▓.

рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рд▓реЙрдиреНрдЪ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣реА рддреНрдпрд╛рдЪреНрдпрд╛ рд╣реЛрд╕реНрдЯрд╡рд░ рдЬрд╛рдКрди рдПрдХ рд╕реБрдВрджрд░ UI рдорд┐рд│рд╡реВ рд╢рдХрддрд╛, рдкреБрдвреАрд▓ рдХрд╛рдорд╛рд╕рд╛рдареА рд╕реНрддреНрд░реЛрдд рдореНрд╣рдгреВрди рдбреЗрдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ рд╢рдХрддрд╛, рдбреЕрд╢рдмреЛрд░реНрдб рдЖрдгрд┐ рдЖрд▓реЗрдЦ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛.

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рдореВрд▓рднреВрдд рдЖрд╡реГрддреНрддреАрдордзреНрдпреЗ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрдорддрд░рддрд╛ рдЖрд╣реЗ - рддреА рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдирд╛рд╣реА. рдореНрд╣рдгрдЬреЗрдЪ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреА рд╕рдВрдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдПрдХрд╛ рдЖрднрд╛рд╕реА рдорд╢реАрдирдЪреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддреЗрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдЕрд╕рддреЗ. рдЬрд░ рддреЗ рдирд╛рдХрд╛рд░рд▓реЗ рдХрд┐рдВрд╡рд╛ 10 рд▓реЛрдХрд╛рдВрдиреА рдПрдХрд╛рдЪ рд╡реЗрд│реА UI рдЙрдШрдбрд▓реЗ рддрд░ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рддреАрд▓.

рддреЗ рд╕рд╣рдЬрдкрдгреЗ рд╕реЛрдбрд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд: рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдХреНрдд... рд╡реЗрдм рд╕рд░реНрд╡реНрд╣рд░рд╕рд╣ рдЕрдиреЗрдХ рд╕рдорд╛рди рдЖрднрд╛рд╕реА рдорд╢реАрди рддреИрдирд╛рдд рдХрд░рдгреЗ рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ L3 рдмреЕрд▓рдиреНрд╕рд░рдЦрд╛рд▓реА рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкрд░рдВрддреБ рдпреЗрдереЗ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЗрддрдХреЗ рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА. Grafana рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ (рдбреЗрдЯрд╛рдмреЗрд╕рдЪреЗ рдорд╛рд░реНрдЧ, рдбреЕрд╢рдмреЛрд░реНрдб, рдЖрд▓реЗрдЦ рдЗ.) рдереЗрдЯ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирдЪреНрдпрд╛ рдбрд┐рд╕реНрдХрд╡рд░ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЖрдореНрд╣реА UI рдордзреНрдпреЗ рдХрд╛рд╣реА рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рдмрджрд▓рд▓реНрдпрд╛рд╕, рд╣реЗ рдмрджрд▓ рдХреЗрд╡рд│ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рджрд┐рд╕реВрди рдпреЗрддреАрд▓ рдЬрд┐рдереЗ рдмреЕрд▓рдиреНрд╕рд░рдиреЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдкрд╛рдард╡рд▓реЗ рдЖрд╣реЗ. рд╣реЗ рдЖрдордЪреНрдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рд╡рд┐рд╕рдВрдЧрдд рд╕реЗрдЯрд┐рдВрдЧреНрдЬрдХрдбреЗ рдиреЗрдИрд▓, рдЬреНрдпрд╛рдореБрд│реЗ рд▓реЙрдиреНрдЪ рдЖрдгрд┐ рд╡рд╛рдкрд░рд╛рдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддреАрд▓.

рдпреЗрдереЗ рджреБрд╕рд░рд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдЪрд╛рд╡рд╛рд╕рд╛рдареА рдпреЗрдИрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, MySQL рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╕рдорддреБрд▓реНрдп. рдЖрдореНрд╣реА рдЧреНрд░рд╛рдлрд╛рдирд╛рд▓рд╛ рд╕рд╛рдВрдЧрддреЛ рдХреА рддрд┐рдиреЗ рдпрд╛ тАЬрд╕реНрдкреЗрдЕрд░тАЭ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛рд╡реА. рддреНрдпрд╛рдирдВрддрд░, рдкреНрд░рддреНрдпреЗрдХ рдорд╢реАрдирд╡рд░ рдПрдХрджрд╛ рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдЪрд╛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрдгрд┐ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рдЗрддрд░ рд╕рд░реНрд╡ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреЗ рдкреБрд░реЗрд╕реЗ рдЕрд╕реЗрд▓; рддреЗ рдЗрддрд░рд╛рдВрдкрд░реНрдпрдВрдд рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрддреАрд▓.

рдЕрдВрддрд┐рдо рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪрд╛ рдЖрдХреГрддреА рдпреЗрдереЗ рдЖрд╣реЗ:

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рдЪрд▓рд╛ рдЖрдкрд▓реНрдпрд╛ рд╣рд╛рддрд╛рдВрдиреА рдЙрдЪрд▓рд╛рдпрд▓рд╛ рд╢рд┐рдХреВрдпрд╛

MySQL рдЖрдгрд┐ ClickHouse

рдмрдЯрдгрд╛рдЪреНрдпрд╛ рдХреНрд▓рд┐рдХрд╡рд░ рдЕрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рддреНрдпрд╛рддреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХрд╕реЗ рд╣рд╛рддрд╛рд│рд╛рдпрдЪреЗ рдЖрдгрд┐ рддреЗ рдПрдХрдореЗрдХрд╛рдВрд╢реА рдХрд╕реЗ рд╕рдорд╛рдХрд▓рд┐рдд рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рд╢рд┐рдХрдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ.

рдпреЗрдереЗ Yandex.Cloud рдЖрдореНрд╣рд╛рд▓рд╛ рдорджрдд рдХрд░реЗрд▓, рдЬреЗ L3 рдмреЕрд▓рдиреНрд╕рд░реНрд╕, рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдЖрдгрд┐ MySQL рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рд▓рд╛ рдлрдХреНрдд рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХреНрд░рдорд╛рдиреЗ рдЖрдгреЗрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛.

рдореА рдиреЛрдВрджрдгреА рдХреЗрд▓реА, рдХреНрд▓рд╛рдЙрдб рдЖрдгрд┐ рдкреЗрдореЗрдВрдЯ рдЦрд╛рддреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗ. рддреНрдпрд╛рдирдВрддрд░, рдореА рдХреНрд▓рд╛рдЙрдбрд╡рд░ рдЧреЗрд▓реЛ рдЖрдгрд┐ рдХрд┐рдорд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ MySQL рдЖрдгрд┐ ClickHouse рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗрдЯ рдХреЗрд▓реЗ. рддреЗ рд╕рдХреНрд░рд┐рдп рд╣реЛрдИрдкрд░реНрдпрдВрдд рдореА рдерд╛рдВрдмрд▓реЛ.

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреАрдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди Grafana рд╡рд╛рдкрд░реВрди Yandex.Cloud рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рд▓реЙрдЧрд┐рди рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╡рд╛рдкрд░реВрди рддреНрдпрд╛рдд рдкреНрд░рд╡реЗрд╢ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореА рдпреЗрдереЗ рддрдкрд╢реАрд▓рд╛рдВрдордзреНрдпреЗ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА - рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЗрдВрдЯрд░рдлреЗрд╕рдордзреНрдпреЗ рдЕрдЧрджреА рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ.

рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рддрдкрд╢реАрд▓ рдЕрд╕рд╛ рд╣реЛрддрд╛ рдХреА рдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╣реЛрд╕реНрдЯ рдЖрд╣реЗрдд, рдЬреЗ рддреНрдпрд╛рдВрдЪреЗ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛рдд. рддрдерд╛рдкрд┐, Grafana рд▓рд╛ рддреЗ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕рд╕рд╛рдареА рдЕрдЧрджреА рдПрдХ рд╣реЛрд╕реНрдЯ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд▓рд╛рдВрдм рд╡рд╛рдЪрди рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдврдЧрд╛рдВрдиреА рдорд▓рд╛ рдПрдХрд╛ рдирд┐рд░реНрдгрдпрд╛рдкрд░реНрдпрдВрдд рдЖрдгрд▓реЗ. рд╣реЗ рдкреНрд░рдЬрд╛рддреАрдВрдЪреЗ рдпрдЬрдорд╛рди рдмрд╛рд╣реЗрд░ рд╡рд│рддреЗ 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 

рддреНрдпрд╛рдирдВрддрд░, 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 рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рдВрдЪреА рддреИрдирд╛рддреА

рдкрд░рдВрддреБ рдШрд╛рдИ рдХрд░реВ рдирдХрд╛, рдЧреНрд░рд╛рдлрд╛рдирд╛ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рддреНрдпрд╛рд╕ 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 рдордзреНрдпреЗ рдЖрдореНрд╣реА рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдбреЗрдЯрд╛рд╕реНрд░реЛрдд рдореНрд╣рдгреВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реВ.

рдореА рдЦрд╛рд▓реАрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрдЬрд╕рд╣ рдХрд╛рд░реНрдпрд░рдд рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕ рд╕рдХреНрд╖рдо рд╣реЛрддреЛ:

рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди 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) рдкреЕрдХреЗрдЬреЗрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛
реи) 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 рд╡рд░ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ, рдЬрд┐рдереЗ рдЧреНрд░рд╛рдлрд╛рдирд╛ рд░рд╛рд╣рддреЛ.
  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 рдЬрд╛рдгреВрди рдШреЗрдКрди, рдореА рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рдбрд┐рд╕реНрдХ рдкреНрд░рддрд┐рдорд╛ рдЧреЛрд│рд╛ рдХреЗрд▓реА, рдЬрд┐рдереЗ рдореА рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ рд╣реЛрд╕реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛. рдкрдг рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рдХреНрд▓рд╕реНрдЯрд░ рдЖрдпрдбреА рдорд╛рд╣реАрдд рдирд╛рд╣реА, рдЗрдореЗрдЬ рдмрдирд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрд╕рд╣. рдореНрд╣рдгреВрди, рдорд▓рд╛ рдЦрд╛рд▓реАрд▓ рдЧреЛрд╖реНрдЯреАрдВрдЪрд╛ рдЕрд╡рд▓рдВрдм рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧрд▓рд╛ рдпреБрдХреНрддреА.

Amazon рдЪреНрдпрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╕реЗрд╡реЗрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рдЖрдореНрд╣реА рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд▓рд╛ рдХрд╛рд╣реА рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдкрд╛рд╕ рдХрд░реВ, рдЬреЗ рддреЗ рд╕реНрд╡реАрдХрд╛рд░реЗрд▓ рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрд▓. рдЖрдореНрд╣рд╛рд▓рд╛ 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
      }
    }
  }
}

рдереЛрдбреА рд╕рд╛рдЦрд░

рдереЛрдбреЗрдЪ рдЙрд░рд▓реЗ рдЖрд╣реЗ. рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рдЙрдкрдпреЛрдЬрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рддреБрдореНрд╣рд╛рд▓рд╛ Grafana UI рд╡рд░ рдЬрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдореНрд╣рдгреВрди CH рдХреНрд▓рд╕реНрдЯрд░ (рдЬреНрдпрд╛рдЪрд╛ рдЖрдпрдбреА рдЕрджреНрдпрд╛рдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ) рдореЕрдиреНрдпреБрдЕрд▓реА рдЬреЛрдбрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рдкрдг рдЯреЗрд░рд╛рдлреЙрд░реНрдорд▓рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдпрдбреА рдорд╛рд╣реАрдд рдЖрд╣реЗ. рд╣реЗ рдкреНрд░рдХрд░рдг рдкреНрд░рддреНрдпрдХреНрд╖рд╛рдд рдЖрдгрдгреНрдпрд╛рдЪреА рдЬрдмрд╛рдмрджрд╛рд░реА рддреНрдпрд╛рдЪреНрдпрд╛рд╡рд░ рд╕реЛрдкрд╡реВ.

рдЪрд▓рд╛ рдПрдХ рдирд╡реАрди рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбреВ - 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"
}

рдЪрд▓рд╛ рдЖрдкрд▓реЗ рдХреЗрд╕ рдХрдВрдШреА рдХрд░реВрдпрд╛

рдмреЕрд▓рдиреНрд╕рд░ рдЖрдпрдкреА рдЕреЕрдбреНрд░реЗрд╕ рдЖрдгрд┐ рдХреНрд▓рд┐рдХрд╣рд╛рдКрд╕ рдХреНрд▓рд╕реНрдЯрд░рдЪреЗ рд╣реЛрд╕реНрдЯ рджрд╛рдЦрд╡реВ

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 рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдордзреНрдпреЗ рдорджрдд рдХрд░реВ рд╢рдХрддрд╛рдд. рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдХреЛрдгрд╛рд▓рд╛рддрд░реА рд╣рд╛ рд▓реЗрдЦ рдЙрдкрдпреБрдХреНрдд рд╡рд╛рдЯреЗрд▓ :)

P.S. рдЦрд╛рд▓реА рдореА рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╢реА рдПрдХ рд▓рд┐рдВрдХ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрди рдЬрд┐рдереЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЕрдХрд░ рдЖрдгрд┐ рдЯреЗрд░рд╛рдлреЙрд░реНрдорд╕рд╛рдареА рддрдпрд╛рд░ рдкрд╛рдХрдХреГрддреА рд╕рд╛рдкрдбрддреАрд▓, рдЬреНрдпрд╛рдЪреЗ рддреБрдХрдбреЗ рдореА рдпрд╛ рд▓реЗрдЦрд╛рдд рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд.

рднрд╛рдВрдбрд╛рд░

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛