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

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

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

рддрдкрд╛рдИрдВ рдХреЗ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ?

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

рд╡реЗрдм рд╕рд░реНрднрд░рдХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдЗрдБ рдпрд╕рдХреЛ рд╣реЛрд╕реНрдЯрдорд╛ рдЬрд╛рди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рд╕реБрдиреНрджрд░ UI рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдердк рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрддрдХреЛ рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрд╣рд░реВ рд░ рдЧреНрд░рд╛рдлрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

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

рдЖрдзрд╛рд░рднреВрдд рд╕рдВрд╕реНрдХрд░рдгрдорд╛ рдПрдЙрдЯрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрдореА рдЫ - рдпреЛ рдХреБрдиреИ рдкрдирд┐ рджреЛрд╖-рд╕рд╣рд┐рд╖реНрдгреБ рдЫреИрдиред рддреНрдпреЛ рд╣реЛ, рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдореНрдкреВрд░реНрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдПрдХ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫред рдпрджрд┐ рдпрд╕рд▓реЗ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдпреЛ рд╡рд╛ 10 рдЬрдирд╛рд▓реЗ рдПрдХреИ рд╕рдордпрдорд╛ UI рдЦреЛрд▓реНрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреЗрдЫред

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

рдпрд╣рд╛рдБ рдЕрд░реНрдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдЙрджреНрдзрд╛рд░рдорд╛ рдЖрдЙрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, MySQL рд╡рд╛ рдпрд╕рдХреЛ рд╕рдордХрдХреНрд╖ред рд╣рд╛рдореА Grafana рд▓рд╛рдИ рдпреЛ "рд╕реНрдкреЗрдпрд░" рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрдкрд░реНрдЫ рднрдиреЗрд░ рдмрддрд╛рдЙрдБрдЫреМрдВред рдкрдЫрд┐, рдпреЛ рдкреНрд░рддреНрдпреЗрдХ рдореЗрд╕рд┐рдирдорд╛ рдПрдХ рдкрдЯрдХ рдпреЛ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдорд╛рд░реНрдЧ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рд╣реБрдиреЗрдЫ, рд░ рдХреБрдиреИ рдкрдирд┐ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдЕрдиреНрдп рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН; рддрд┐рдиреАрд╣рд░реВ рдЕрд░реВрдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реБрдиреЗрдЫрдиреНред

рдпрд╣рд╛рдБ рдЕрдиреНрддрд┐рдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХреЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдЫ:

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

рд╣рд╛рддрд▓реЗ рдЙрдард╛рдЙрди рд╕рд┐рдХреМрдВ

MySQL рд░ ClickHouse

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

рдпрд╣рд╛рдБ Yandex.Cloud рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдорджреНрджрдд рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рд▓реЗ L3 рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд╣рд░реВ, ClickHouse рд░ MySQL рд▓рд╛рдИ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рдХреЗрд╡рд▓ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд░ рдкреНрд▓реЗрдЯрдлрд░реНрдорд▓реЗ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХреНрд░рдордорд╛ рдирдЖрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБ рдкрд░реНрдЫред

рдореИрд▓реЗ рджрд░реНрддрд╛ рдЧрд░реЗрдВ, рдХреНрд▓рд╛рдЙрдб рд░ рднреБрдХреНрддрд╛рдиреА рдЦрд╛рддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдВред рддреНрдпрд╕ рдкрдЫрд┐, рдо рдХреНрд▓рд╛рдЙрдбрдорд╛ рдЧрдПрдБ рд░ рдиреНрдпреВрдирддрдо рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рд╕рд╛рде MySQL рд░ ClickHouse рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рд╕реЗрдЯрдЕрдк рдЧрд░реЗрдВред рдо рддрд┐рдиреАрд╣рд░реВ рд╕рдХреНрд░рд┐рдп рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрд┐рдПрдБред

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

рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд░ рд▓рдЧрдЗрди рд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╣реБрдБрдЪ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдкрдирд┐ рд╕рдореНрдЭрдиреБ рдЖрд╡рд╢реНрдпрдХ рдЫред рдо рдпрд╣рд╛рдБ рд╡рд┐рд╡рд░рдгрд╣рд░реВрдорд╛ рдЬрд╛рдиреЗ рдЫреИрди - рд╕рдмреИ рдХреБрд░рд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕рдорд╛ рдПрдХрджрдо рд╕реНрдкрд╖реНрдЯ рдЫред

рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╡рд░рдг рдпреЛ рдерд┐рдпреЛ рдХрд┐ рдпреА рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВрдорд╛ рдзреЗрд░реИ рд╣реЛрд╕реНрдЯрд╣рд░реВ рдЫрдиреН, рдЬрд╕рд▓реЗ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЧрд▓реНрддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджрдЫред рдЬреЗ рд╣реЛрд╕реН, Grafana рд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдареНрдпрд╛рдХреНрдХреИ рдПрдЙрдЯрд╛ рд╣реЛрд╕реНрдЯ рдЪрд╛рд╣рд┐рдиреНрдЫред рд▓рд╛рдореЛ рдкрдврд╛рдЗ рдХрд╛рдЧрдЬрд╛рдд рдмрд╛рджрд▓рд▓реЗ рдорд▓рд╛рдИ рдирд┐рд░реНрдгрдпрдорд╛ рд▓реНрдпрд╛рдпреЛред рдпреЛ рдкреНрд░рдЬрд╛рддрд┐ рдХреЛ рд╣реЛрд╕реНрдЯ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ c-<cluster_id>.rw.mdb.yandexcloud.net рд╕рдореНрдмрдиреНрдзрд┐рдд ID рд╕рдВрдЧ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕рдХреНрд░рд┐рдп рдорд╛рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯрдорд╛ рдореНрдпрд╛рдк рдЧрд░рд┐рдпреЛред рдпреЛ рд╣рд╛рдореАрд▓реЗ Grafana рд▓рд╛рдИ рджрд┐рдиреЗрдЫреМрдВред

рд╡реЗрдм рд╕рд░реНрднрд░

рдЕрдм рдпреЛ рд╡реЗрдм рд╕рд░реНрднрд░ рдорд╛ рдирд┐рд░реНрднрд░ рдЫред рд▓рд┐рдирдХреНрд╕рдХреЛ рд╕рд╛рде рдирд┐рдпрдорд┐рдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЦрдбрд╛ рдЧрд░реМрдВ рд░ рдпрд╕рдорд╛ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ Grafana рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реМрдВред

рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ 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

рд╣рд╛рдореА рд╡реЗрдм рд╕рд░реНрднрд░ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВред рдЕрдм рддрдкрд╛рдЗрдБ рдмреНрд░рд╛рдЙрдЬрд░рдорд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рдмрд╛рд╣реНрдп рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдкреЛрд░реНрдЯ 3000 рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рд╕реБрдиреНрджрд░ Grafana UI рд╣реЗрд░реНрдиреБрд╣реЛрд╕реНред
рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ Grafana рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ Yandex.Cloud рдорд╛ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рддреИрдирд╛рддреА

рддрд░ рд╣рддрд╛рд░ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, Grafana рд╕реЗрдЯ рдЕрдк рдЧрд░реНрдиреБ рдЕрдШрд┐, рддрдкрд╛рдИрдВрд▓реЗ рддреНрдпрд╣рд╛рдБ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди MySQL рдХреЛ рдмрд╛рдЯреЛ рдмрддрд╛рдЙрди рд╕рдореНрдЭрдиреБ рдкрд░реНрдЫред

Grafana рд╡реЗрдм рд╕рд░реНрднрд░рдХреЛ рд╕рдореНрдкреВрд░реНрдг рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдорд╛ рдЫ /etc/grafana/grafana.iniред рдЖрд╡рд╢реНрдпрдХ рд░реЗрдЦрд╛ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

;url =

рд╣рд╛рдореАрд▓реЗ рд╣реЛрд╕реНрдЯрд▓рд╛рдИ MySQL рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рд╕реЗрдЯ рдЧрд░реНрдпреМрдВред рдЙрд╣реА рдлрд╛рдЗрд▓рд▓реЗ рдорд╛рдерд┐рдХреЛ рддрд╕реНрд╡рд┐рд░рдорд╛ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд▓рдЧрдЗрди рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЬреБрди рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рджреБрд╡реИ рдмрд░рд╛рдмрд░ рдЫрдиреНред admin.

рддрдкрд╛рдИрдВ sed рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

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

рдпреЛ рд╡реЗрдм рд╕рд░реНрднрд░ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреЗ рд╕рдордп рд╣реЛ!

sudo service grafana-server restart

рдЕрдм Grafana UI рдорд╛ рд╣рд╛рдореА DataSource рдХреЛ рд░реВрдкрдорд╛ ClickHouse рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреЗрдЫреМрдВред

рдореИрд▓реЗ рдирд┐рдореНрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рдерд┐рдПрдБ:

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

рдореИрд▓реЗ URL рдХреЛ рд░реВрдкрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдВ https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443

рд╕рдмреИ! рд╣рд╛рдореАрд╕рдБрдЧ CH рд░ MySQL рдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рд╡реЗрдм рд╕рд░реНрднрд░ рднрдПрдХреЛ рдПрдЙрдЯрд╛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕рдорд╛ рдбрд╛рдЯрд╛рд╕реЗрдЯ рдЕрдкрд▓реЛрдб рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдбреНрдпрд╛рд╕рдмреЛрд░реНрдбрд╣рд░реВ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд░, рд╣рд╛рдореАрд▓реЗ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рд╣рд╛рдореНрд░реЛ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдЧрд░реНрди рд╕рдХреЗрдХрд╛ рдЫреИрдиреМрдБ рд░ рдкреВрд░реНрдг рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рдирд┐рд░реНрдорд╛рдг рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдБ ред

рдкреНрдпрд╛рдХрд░

Yandex.Cloud рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрд╡рд╕реНрдерд┐рдд рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдХреЛ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рд░ рдпрд╕рдХреЛ рдЖрдзрд╛рд░рдорд╛ - рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рдорд┐рд▓реНрджреЛрдЬреБрд▓реНрджреЛ рдореЗрд╕рд┐рдирд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ред рдпреЛ рдареНрдпрд╛рдХреНрдХреИ рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдХреБрд░рд╛ рд╣реЛред рд╕рдЬрд┐рд▓реИ рд╕рдВрдЧ рдЫрд╡рд┐ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди, рдЙрдкрдХрд░рдг рд▓рд┐рдиреБрд╣реЛрд╕реН рдкреНрдпрд╛рдХрд░ HashiCorp рдмрд╛рдЯред рдпрд╕рд▓реЗ рдЫрд╡рд┐ рд╕рдВрдпреЛрдЬрдирдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рд╣рд┐рддрдХреЛ json рдлрд╛рдЗрд▓ рдЗрдирдкреБрдЯрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдиреНрдЫред

рд╣рд╛рдореНрд░реЛ json рдлрд╛рдЗрд▓рдорд╛ рджреБрдИрд╡рдЯрд╛ рдмреНрд▓рдХрд╣рд░реВ рд╣реБрдиреНрдЫрдиреН: рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рд░ рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВред рдкрд╣рд┐рд▓реЛ рдмреНрд▓рдХрд▓реЗ рдЫрд╡рд┐рдХреЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд▓рд╛рдИ рдПрдХ рдЗрдХрд╛рдИрдХреЛ рд░реВрдкрдорд╛ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ, рд░ рджреЛрд╕реНрд░реЛ рдмреНрд▓рдХрд▓реЗ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реАрд╕рдБрдЧ рднрд░реНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

рдмрд┐рд▓реНрдбрд░реНрд╕

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

рдпрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдХреНрд▓рд╛рдЙрдбрдорд╛ рдЦрдгреНрдбрдХреЛ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╣рд╛рдБ рддрдкрд╛рдИрдВ рдЫрд╡рд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рд╕рд╛рдереИ рдпрд╕ рдЦрдгреНрдбрдорд╛ рдкрд╣рд┐рд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рдмрд╛рдЯ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рд╣рд┐рдд рдлрд╛рдЗрд▓рдХреЛ рдорд╛рд░реНрдЧред рддрдкрд╛рдИрдВ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЦрдгреНрдбрдорд╛ рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛рд╣рд░реВ рд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдердк рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдХрд╛рдЧрдЬрд╛рдд.

рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд▓реЗ рднрдиреНрдЫ рдХрд┐ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдЖрдзрд╛рд░рд┐рдд рдмрдирд╛рдЗрдиреЗрдЫ ubuntu-1804-lts, рдЫрд╡рд┐ рдкрд░рд┐рд╡рд╛рд░рдорд╛ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЦрдгреНрдбрдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫ GRAFANA рдирд╛рдо рдЕрдиреНрддрд░реНрдЧрдд grafana-{{timestamp}}.

рдкреНрд░рд╛рд╡рдзрд╛рдирдХрд░реНрддрд╛рд╣рд░реВ

рдЕрдм рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХреЛ рдЕрдзрд┐рдХ рд░реЛрдЪрдХ рднрд╛рдЧ рдЖрдЙрдБрдЫред рдпрд╕рд▓реЗ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐рдорд╛ рдпрд╕рдХреЛ рд╕реНрдерд┐рддрд┐ рдлреНрд░рд┐рдЬ рдЧрд░реНрдиреБ рдЕрдШрд┐ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдо рд╡рд░реНрдгрди рдЧрд░реНрджрдЫред

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

рдпрд╣рд╛рдБ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ 3 рдЪрд░рдгрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЫрдиреНред рдкрд╣рд┐рд▓реЛ рдЪрд░рдгрдорд╛, рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд▓рд┐рдкрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░рд┐рдиреНрдЫ рдЬрд╕рд▓реЗ рд╕рд╣рд╛рдпрдХ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫред

рддрдпрд╛рд░реА-ctg.sh:

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

рдЕрд░реНрдХреЛ рдЪрд░рдгрдорд╛, рд╣рд╛рдореА рдпрд╕ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдПрдЙрдЯрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд░рд╛рдЦреНрдЫреМрдВ, рдЬреБрди рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐ рддреБрд░реБрдиреНрддреИ рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред рдпреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЪрд░рд╣рд░реВ рд░рд╛рдЦреНрдиреЗрдЫ рдЬреБрди 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 рдорд╛ рд╡рд┐рддрд░рд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рддреИрдирд╛рддреА

рдорд┐рдиреА рд╕рд╛рд░рд╛рдВрд╢

рдЕрдиреНрддрдорд╛, рд╣рд╛рдореАрд▓реЗ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд╡рд╛рдВрдЫрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдкреВрд░реНрд╡рд╛рдзрд╛рд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрд╖рдо рднрдпреМрдВ, рд░ рдЕрдм рд╣рд╛рдореАрд╕рдБрдЧ рдЙрдЪреНрдЪ рд▓рдЪрд┐рд▓реЛ Grafana рд╕реЗрд╡рд╛ рдЫред рддрдкрд╛рдИрд▓реЗ рдХреЗрд╡рд▓ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рдХреЛ рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд▓рд╛рдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдиреНрджреБ рд░ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╣реЛрд╕реНрдЯрдХреЛ рд░реВрдкрдорд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рд▓реЛрдб рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреБ рдкрд░реНрдЫред

рдпреЛ рдЬрд┐рдд рдЬрд╕реНрддреЛ рд▓рд╛рдЧреНрдЫ? рд╣реЛ, рд╡рд┐рдЬрдпред рддрд░ рдХреЗрд╣рд┐ рдХреБрд░рд╛ рдЕрдЭреИ рдкрдирд┐ рдорд▓рд╛рдИ рднреНрд░рдорд┐рдд рдЧрд░реНрджрдЫред рдорд╛рдерд┐рдХреЛ рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдзреЗрд░реИ рдореНрдпрд╛рдиреБрдЕрд▓ рдЪрд░рдгрд╣рд░реВ рдЪрд╛рд╣рд┐рдиреНрдЫ рд░ рдорд╛рдкрдирдпреЛрдЧреНрдп рдЫреИрди; рдо рдпрд╕рд▓рд╛рдИ рд╕рдореНрднрд╡ рднрдПрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБред рдпреЛ рдХреЗ рдЕрд░реНрдХреЛ рдЦрдгреНрдб рд╕рдорд░реНрдкрд┐рдд рд╣реБрдиреЗрдЫред

Terraform рдПрдХреАрдХрд░рдг

рд╣рд╛рдореА рдлреЗрд░рд┐ HashiCorp рдмрд╛рдЯ рдПрдЙрдЯрд╛ рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ рдЯреНрд░рд╛рдлрд░реНрдоред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдмрдЯрдирдХреЛ рдХреНрд▓рд┐рдХрдХреЛ рд╕рд╛рде рд╕рдореНрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдбрд┐рдкреНрд▓реЛрдп рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрджрдЫ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдЧрд░рд┐рдПрдХрд╛ рдзреЗрд░реИ рдЪрд░рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рддред рдПрдХ рдиреБрд╕реНрдЦрд╛ рд▓реЗрдЦреМрдВ рдЬреБрди рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЦрдгреНрдбрд╣рд░реВрдорд╛ рдзреЗрд░реИ рдкрдЯрдХ рдЪрд▓рд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред

Terraform рд╕рдБрдЧ рд╕рдмреИ рдХрд╛рдо рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рд▓реЗрдЦреНрди рддрд▓ рдЖрдЙрдБрдЫ (*.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 рд╡реЗрдм рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд╕рд╛рде рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛

рдкреНрд░рджрд╛рдпрдХ рд╕реЗрдЯрдЕрдк

рдЕрдм рддрдкрд╛рдИрдВрд▓реЗ Terraform рдкреНрд░рджрд╛рдпрдХ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ - рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, Yandex:

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 рдХреНрд▓рд╕реНрдЯрд░ рд╣реЛрд╕реНрдЯ рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо-рдкрд╛рд╕рд╡рд░реНрдб рдкрдЫрд╛рдбрд┐рдХреЛ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдЬрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдореЗрд╕рд┐рди рдЪрд╛рд╣рд┐рдиреНрдЫ, рдЬреБрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐ Terraform рдлрд╛рдЗрд▓рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрдХреЛ рдЫред рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рдереЛрд░реИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реМрдВ 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

рдЗрдиреНрдЯреЗрдиреНрд╕ рд╕рдореВрд╣ рд░ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░

рдирдпрд╛рдБ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдкреБрди: рдирд┐рд░реНрдорд╛рдг рдЧрд░рд┐рд╕рдХреЗрдкрдЫрд┐, рд╣рд╛рдореА рдЕрдиреНрддрддрдГ Terraform рдХреЛ рд▓рд╛рдЧреА рд╣рд╛рдореНрд░реЛ рдлрд╛рдЗрд▓ рдердкреНрди рд╕рдХреНрдЫреМрдВред

рд╣рд╛рдореА рдЕрд╡рд╕реНрдерд┐рдд рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреМрдВ рднрдиреЗрд░ рд╕рдВрдХреЗрдд рдЧрд░реМрдВ:

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

рдЕрдм рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рдореВрд╣ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реМрдВ:

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

  scale_policy {
    fixed_scale {
      size = 6
    }
  }

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

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

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

рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдореЗрдЯрд╛рдбреЗрдЯрд╛рдорд╛ рдХрд╕рд░реА рдкрд╛рд╕ рдЧрд░реНрдпреМрдВ рднрдиреНрдиреЗ рдХреБрд░рд╛рдорд╛ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ cluster_uri, username ╨╕ passwordред рдпреЛ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд▓реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдорд╛ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓реНрдЫ рд░ Grafana рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рд░рд╛рдЦреНрдЫред

рдпреЛ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ рдорд╛ рдирд┐рд░реНрднрд░ рдЫред

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

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

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

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

рдЕрд▓рд┐рдХрддрд┐ рдЪрд┐рдиреА

рдереЛрд░реИ рдорд╛рддреНрд░ рдмрд╛рдБрдХреА рдЫред рдкреВрд░реНрд╡рд╛рдзрд╛рд░ рддрдпрд╛рд░ рднрдЗрд╕рдХреЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ Grafana UI рдорд╛ рдЬрд╛рдиреБрдкрд░реНрдиреЗрдЫ рд░ рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ CH рдХреНрд▓рд╕реНрдЯрд░ (рдЬрд╕рдХреЛ ID рдЕрдЭреИ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ) рдбреЗрдЯрд╛ рд╕реНрд░реЛрддрдХреЛ рд░реВрдкрдорд╛ рдердкреНрдиреБрдкрд░реНрдЫред рддрд░ Terraform рд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░ рдЖрдИрдбреА рдерд╛рд╣рд╛ рдЫред рдЙрд╣рд╛рдБрд▓рд╛рдИ рдпреЛ рдХреБрд░рд╛рд▓рд╛рдИ рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ рдкреБрд░реНтАНрдпрд╛рдЙрдиреЗ рдЬрд┐рдореНрдорд╛ рджрд┐рдФрдВред

рдПрдЙрдЯрд╛ рдирдпрд╛рдБ рдкреНрд░рджрд╛рдпрдХ рдердкреМрдВ - Grafana, рд░ рд╣реЛрд╕реНрдЯрдХреЛ рд░реВрдкрдорд╛ рдЙрд╕рд▓рд╛рдИ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рдХреЛ IP рдареЗрдЧрд╛рдирд╛ рджрд┐рдиреБрд╣реЛрд╕реНред рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЬреБрди рдЯреЗрд░рд╛рдлрд░реНрдорд▓реЗ рдореЗрд╕рд┐рдирдорд╛ рдЧрд░реНрдЫ рдЬрд╣рд╛рдБ рдпрд╕рдХреЛ рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░рд▓реЗ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ MySQL рдорд╛ рдмрдвреНрдЫ, рд░ рддреНрдпрд╕реИрд▓реЗ рдЕрдиреНрдп рд╕рдмреИ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ред

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

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

рд╣рд╛рдореНрд░реЛ рдХрдкрд╛рд▓рдорд╛ рдХрдВрдШреА рдЧрд░реМрдВ

рдмреНрдпрд╛рд▓реЗрдиреНрд╕рд░ IP рдареЗрдЧрд╛рдирд╛ рд░ ClickHouse рдХреНрд▓рд╕реНрдЯрд░рдХреЛ рд╣реЛрд╕реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реМрдВ

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

рджреМрдбрд┐рди рд╕рдХреНрдЫ

рд╕рдмреИ! рд╣рд╛рдореНрд░реЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдЫ рд░ рд╣рд╛рдореА, рдЪрд░ рд╕реЗрдЯ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░реЗрдХреЛ рд╕рдмреИ рдХреБрд░рд╛ рдЙрдард╛рдЙрди Terraform рд▓рд╛рдИ рднрдиреНрди рд╕рдХреНрдЫреМрдВред рд╕рдореНрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдорд▓рд╛рдИ рд▓рдЧрднрдЧ 15 рдорд┐рдиреЗрдЯ рд▓рд┐рдпреЛред
рдЕрдиреНрддреНрдпрдорд╛ рддрдкрд╛рдИрд▓реЗ рдПрдЙрдЯрд╛ рд╕реБрдиреНрджрд░ рд╕рдиреНрджреЗрд╢ рджреЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

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

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

рд░ рдХреНрд▓рд╛рдЙрдбрдорд╛, рдЙрдард╛рдПрдХреЛ рдкреВрд░реНрд╡рд╛рдзрд╛рд░рдХрд╛ рддрддреНрд╡рд╣рд░реВ рджреЗрдЦрд┐рдиреЗрдЫрдиреН:

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

рдирддрд┐рдЬрд╛рдХреЛ рдкрд░рд┐рдгрд╛рдо рджрд┐рдиреБрд╣реЛрд╕реН

рдЕрдм, рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛ Grafana рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ Yandex.Cloud рдкреНрд▓реЗрдЯрдлрд░реНрдордорд╛ рдлрд░рд╛рдХрд┐рд▓реЛ рдХреНрд▓рд╛рдЙрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдХреЛ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред HashiCorp рдмрд╛рдЯ рд╕рд╣рдпреЛрдЧреА рдЙрдкрдХрд░рдгрд╣рд░реВ рдЬрд╕реНрддреИ Packer рд░ Terraform рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпрд╕рдорд╛ рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫред рдорд▓рд╛рдИ рдЖрд╢рд╛ рдЫ рдХрд┐ рдХрд╕реИрд▓рд╛рдИ рдпреЛ рд▓реЗрдЦ рдЙрдкрдпреЛрдЧреА рдЫ :)

PS рддрд▓ рдо рд░рд┐рдкреЛрдЬрд┐рдЯрд░реАрдорд╛ рд▓рд┐рдЩреНрдХ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреЗрдЫреБ рдЬрд╣рд╛рдБ рддрдкрд╛рдЗрдБ рдкреНрдпрд╛рдХрд░ рд░ рдЯреЗрд░рд╛рдлрд░реНрдордХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░-рдмрдирд╛рдЙрдиреЗ рд░реЗрд╕рд┐рдкреАрд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рдХрд╛ рдЯреБрдХреНрд░рд╛рд╣рд░реВ рдореИрд▓реЗ рдпрд╕ рд▓реЗрдЦрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░реЗрдХреЛ рдЫреБред

рднрдгреНрдбрд╛рд░

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди