āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻšāĻžāχ āϏāĻŦ! āφāĻŽāĻžāϰ āϕ⧋āĻ°ā§āϏ āĻ•āĻžāĻœā§‡āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏāĻžāĻŦ⧇, āφāĻŽāĻŋ āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āϘāϰ⧋āϝāĻŧāĻž āĻ•ā§āϞāĻžāωāĻĄ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡āϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻžāϗ⧁āϞāĻŋ āύāĻŋāϝāĻŧ⧇ āĻ—āĻŦ⧇āώāĻŖāĻž āĻ•āϰāĻ›āĻŋāϞāĻžāĻŽ Yandex.Cloud. āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻŋāĻ• āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āĻāχ āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻŦāϰāĻ‚ āĻŦāĻŋāĻ¸ā§āϤ⧃āϤ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āϏāĻš āφāĻĒāύāĻžāϰ āĻ•ā§āϞāĻžāωāĻĄ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧ⧇, āφāĻŽāĻŋ āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āĻ…āĻ­āĻŋāĻœā§āĻžāϤāĻž āĻļ⧇āϝāĻŧāĻžāϰ āĻ•āϰāϤ⧇ āϚāĻžāχāĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āφāĻĒāύāĻŋ āĻ•āĻŋ āĻĒ⧇āϤ⧇ āϚāĻžāύ?

āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž - āϕ⧋āύ⧋ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖāĻžāĻ¤ā§āĻŽāĻ• āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ āĻŦāĻž āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻļāĻ•ā§āϤāĻŋāĻļāĻžāϞ⧀ āϟ⧁āϞāĨ¤ āĻāϰ āĻŽā§ŒāϞāĻŋāĻ• āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇, āĻāϟāĻŋ Grafana āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ, āϏ⧇āχāϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻžāϏ⧇āϟ āϏāĻš āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ (āĻ•ā§āϞāĻŋāĻ•āĻšāĻžāωāϏ, āχāύāĻĢā§āϞāĻžāĻ•ā§āϏāĻĄāĻŋāĻŦāĻŋ, āχāĻ¤ā§āϝāĻžāĻĻāĻŋ) āϝāĻž āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāĻŦ⧇⧎

āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻĒāύāĻŋ āĻāϟāĻŋāϰ āĻšā§‹āĻ¸ā§āĻŸā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϏ⧁āĻ¨ā§āĻĻāϰ UI āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ, āφāϰāĻ“ āĻ•āĻžāĻœā§‡āϰ āϜāĻ¨ā§āϝ āωāĻ¤ā§āϏ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄā§‡āϟāĻžāĻŦ⧇āϏ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ, āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻžāĻĢ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ⧎

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻŽā§ŒāϞāĻŋāĻ• āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āĻ¤ā§āϰ⧁āϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇ - āĻāϟāĻŋ āĻŽā§‹āĻŸā§‡āĻ“ āĻĻā§‹āώ-āϏāĻšāύāĻļā§€āϞ āύāϝāĻŧāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āϏ⧇ āĻĒā§āϰāĻ¤ā§āϝāĻžāĻ–ā§āϝāĻžāύ āĻ•āϰ⧇ āĻŦāĻž āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ 10 āϜāύ UI āϖ⧁āϞāϞ⧇ āϏāĻŽāĻ¸ā§āϝāĻž āĻĻ⧇āĻ–āĻž āĻĻ⧇āĻŦ⧇āĨ¤

āĻāϗ⧁āϞāĻŋ āϏāĻšāϜāĻ­āĻžāĻŦ⧇ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇: āφāĻĒāύāĻžāϕ⧇ āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āύ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ L3 āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ⧇āϰ āĻ…āϧ⧀āύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇⧎ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻāϤ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āύāϝāĻŧāĨ¤ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϏ⧇āϟāĻŋāĻ‚āϏ (āĻĄāĻžāϟāĻžāĻŦ⧇āϏ, āĻĄā§āϝāĻžāĻļāĻŦā§‹āĻ°ā§āĻĄ, āĻ—ā§āϰāĻžāĻĢāĻŋāĻ•ā§āϏ, āχāĻ¤ā§āϝāĻžāĻĻāĻŋāϰ āĻĒāĻĨ) āϏāϰāĻžāϏāϰāĻŋ āϤāĻžāϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻĄāĻŋāĻ¸ā§āϕ⧇ āϏāĻžā§āϚāϝāĻŧ āĻ•āϰ⧇āĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, āφāĻĒāύāĻŋ āϝāĻĻāĻŋ UI-āϤ⧇ āĻ•āĻŋāϛ⧁ āϏ⧇āϟāĻŋāĻ‚āϏ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āύ, āϤāĻžāĻšāϞ⧇ āĻāχ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇ āĻĒā§āϰāĻĻāĻ°ā§āĻļāĻŋāϤ āĻšāĻŦ⧇ āϝ⧇āĻ–āĻžāύ⧇ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāĻžāĻ āĻŋāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āϏ⧇āϟāĻŋāĻ‚āϏ, āϞāĻžā§āϚ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋāϰ āĻĻāĻŋāϕ⧇ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻ•āϰāĻŦ⧇⧎

āĻāĻ–āĻžāύ⧇ āφāϰ⧇āĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϰ⧇āϏāĻ•āĻŋāω āφāϏāĻŦ⧇, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āĻŽāĻžāχāĻāϏāĻ•āĻŋāωāĻāϞ āĻŦāĻž āϤāĻžāϰ āϏāĻŽāϤ⧁āĻ˛ā§āϝāĨ¤ āφāĻŽāϰāĻž āĻ—ā§āϰāĻžāĻĢāĻžāύāĻžāϕ⧇ āĻŦāϞāĻŋ āϝ⧇ āϤāĻžāϕ⧇ āĻāχ "āĻ…āϤāĻŋāϰāĻŋāĻ•ā§āϤ" āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϏ⧇āϟāĻŋāĻ‚āϏ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āωāϚāĻŋāϤāĨ¤ āĻāϰ āĻĒāϰ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŽā§‡āĻļāĻŋāύ⧇ āĻāĻ•āĻŦāĻžāϰ āĻāχ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āĻĒāĻĨāϟāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻĨ⧇āĻˇā§āϟ āĻšāĻŦ⧇, āĻāĻŦāĻ‚ āϝ⧇ āϕ⧋āύāĻ“ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇ āĻ…āĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āϏ⧇āϟāĻŋāĻ‚āϏ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻ•āϰ⧁āύ, āϤāĻžāϰāĻž āĻŦāĻžāĻ•āĻŋāϗ⧁āϞāĻŋāϤ⧇ āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒāĻžāĻŦ⧇āĨ¤

āĻāĻ–āĻžāύ⧇ āĻšā§‚āĻĄāĻŧāĻžāĻ¨ā§āϤ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹āϰ āĻāĻ•āϟāĻŋ āϚāĻŋāĻ¤ā§āϰ āϰāϝāĻŧ⧇āϛ⧇:

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āφāĻĒāύāĻžāϰ āĻšāĻžāϤ āĻĻāĻŋāϝāĻŧ⧇ āĻŦāĻžāĻĄāĻŧāĻžāϤ⧇ āĻļāĻŋāϖ⧁āύ

āĻŽāĻžāχāĻāϏāĻ•āĻŋāωāĻāϞ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻŋāĻ• āĻšāĻžāωāϏ

āĻāĻ•āϟāĻŋ āĻŦā§‹āϤāĻžāĻŽā§‡ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰ⧇ āĻāχ āϜāĻžāϤ⧀āϝāĻŧ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻžāϰ āφāϗ⧇, āĻāϟāĻŋāϰ āĻĒā§āϰāϤāĻŋāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύāϕ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāϗ⧁āϞāĻŋāϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϤ⧁āϞāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϕ⧀āĻ­ā§‚āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻļāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤

Yandex.Cloud āĻāĻ–āĻžāύ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāĻŦ⧇, āϝāĻž L3 āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ, ClickHouse āĻāĻŦāĻ‚ MySQL āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋāϗ⧁āϞāĻŋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽāϟāĻŋ āϏāĻŦāĻ•āĻŋāϛ⧁āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ⧀ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϝāĻŧ āύāĻŋāϝāĻŧ⧇ āφāϏāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻŽāĻŋ āύāĻŋāĻŦāĻ¨ā§āϧāύ āĻ•āϰ⧇āĻ›āĻŋ, āύāĻŋāĻœā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāωāĻĄ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻŦāĻŋāϞāĻŋāĻ‚ āĻ…ā§āϝāĻžāĻ•āĻžāωāĻ¨ā§āϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāϰ āĻĒāϰ⧇, āφāĻŽāĻŋ āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻ—āĻŋāϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ āĻāĻŦāĻ‚ āĻ¨ā§āϝ⧂āύāϤāĻŽ āϏ⧇āϟāĻŋāĻ‚āϏ āϏāĻš MySQL āĻāĻŦāĻ‚ ClickHouse āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰāϗ⧁āϞāĻŋ āωāĻ¤ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āϤāĻžāϰāĻž āϏāĻ•ā§āϰāĻŋāϝāĻŧ āύāĻž āĻšāĻ“āϝāĻŧāĻž āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āφāĻĒāύāĻžāϕ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āϞāĻ—āχāύ āĻāĻŦāĻ‚ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄā§‡āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϟāĻŋāϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻžāϰ āĻ•āĻĨāĻžāĻ“ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤ āφāĻŽāĻŋ āĻāĻ–āĻžāύ⧇ āĻŦāĻŋāĻļāĻĻ⧇ āϝāĻžāĻŦ āύāĻž - āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āĻŦ⧇āĻļ āĻ¸ā§āĻĒāĻˇā§āϟāĨ¤

āĻ…-āĻ¸ā§āĻĒāĻˇā§āϟ āĻŦāĻŋāĻŦāϰāĻŖ āĻ›āĻŋāϞ āϝ⧇ āĻāχ āĻĄāĻžāϟāĻžāĻŦ⧇āϏāϗ⧁āϞāĻŋāϤ⧇ āĻ…āύ⧇āĻ• āĻšā§‹āĻ¸ā§āϟ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āϤāĻžāĻĻ⧇āϰ āĻĻā§‹āώ āϏāĻšāύāĻļā§€āϞāϤāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, Grafana āĻāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāĻŽāύ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĄāĻžāϟāĻžāĻŦ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ āĻŋāĻ• āĻāĻ•āϟāĻŋ āĻšā§‹āĻ¸ā§āϟ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āĻĻā§€āĻ°ā§āϘ āĻĒāĻĄāĻŧāĻž āĻĄāϕ⧁āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāύ āĻŽā§‡āϘ āφāĻŽāĻžāϕ⧇ āĻāĻ•āϟāĻž āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ⧇ āύāĻŋāϝāĻŧ⧇ āϗ⧇āϞāĨ¤ āĻĻ⧇āĻ–āĻž āϝāĻžāĻšā§āϛ⧇ āϝ⧇ āĻĢāĻ°ā§āĻŽā§‡āϰ āĻāĻ•āϟāĻŋ āĻšā§‹āĻ¸ā§āϟ c-<cluster_id>.rw.mdb.yandexcloud.net āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āφāχāĻĄāĻŋ āϏāĻš āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻŽāĻžāĻ¸ā§āϟāĻžāϰ āĻšā§‹āĻ¸ā§āĻŸā§‡ āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰāĨ¤ āϏ⧇āϟāĻžāχ āφāĻŽāϰāĻž āĻ—ā§āϰāĻžāĻĢāύāĻžāϕ⧇ āĻĻ⧇āĻŦāĨ¤

āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ

āĻāĻ–āύ āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻĒāĻžāϞāĻžāĨ¤ āϚāϞ⧁āύ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āϝāĻžāĻ•, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āĻĨāĻžāĻ•āĻŦ⧇ Linux āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻšāĻžāϤ āĻĻāĻŋāϝāĻŧ⧇ āĻāϰ āωāĻĒāϰ āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŦāĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āφāϏ⧁āύ ssh āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĒā§āϝāĻžāϕ⧇āϜāϗ⧁āϞāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻŋāĨ¤

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

āĻāϰ āĻĒāϰ⧇, āφāĻŽāϰāĻž systemctl āĻāϰ āĻ…āϧ⧀āύ⧇ Grafana āĻļ⧁āϰ⧁ āĻ•āϰāĻŦ āĻāĻŦāĻ‚ 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 āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻž āĻāĻŦāĻ‚ āϏ⧁āĻ¨ā§āĻĻāϰ UI āĻ—ā§āϰāĻžāĻĢāύāĻž āĻĻ⧇āĻ–āĻž āϏāĻŽā§āĻ­āĻŦ āĻšāĻŦ⧇āĨ¤
āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āϤāĻŦ⧇ āϤāĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§‹ āĻ•āϰāĻŦ⧇āύ āύāĻž, Grafana āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āφāϗ⧇, āφāĻĒāύāĻŋ āϏ⧇āϟāĻŋāĻ‚āϏ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ MySQL āĻāϰ āĻĒāĻĨ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāϤ⧇ āϭ⧁āϞāĻŦ⧇āύ āύāĻžāĨ¤

āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āϰāϝāĻŧ⧇āϛ⧇ /etc/grafana/grafana.ini. āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϞāĻžāχāύ āĻāχ āĻŽāϤ āĻĻ⧇āĻ–āĻžāϝāĻŧ:

;url =

āφāĻŽāϰāĻž āĻšā§‹āĻ¸ā§āϟāϕ⧇ āĻŽāĻžāχāĻāϏāĻ•āĻŋāωāĻāϞ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻĒā§āϰāĻ•āĻžāĻļ āĻ•āϰāĻŋāĨ¤ āωāĻĒāϰ⧇āϰ āĻ›āĻŦāĻŋāϤ⧇ āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āχ āĻĢāĻžāχāϞāϟāĻŋāϤ⧇ āϞāĻ—āχāύ āĻāĻŦāĻ‚ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āωāĻ­āϝāĻŧāχ āϏāĻŽāĻžāύ 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) āĻĒā§āϝāĻžāϕ⧇āϜ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ
2) Systemctl āĻāϰ āĻ…āϧ⧀āύ⧇ Grafana āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ āĻāĻŦāĻ‚ ClickHouse āĻĒā§āϞāĻžāĻ—āχāύ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧁āύ
3) āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϏāĻžāĻĨ⧇ āϏāĻžāĻĨ⧇āχ āϚāĻžāϞāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ setup.sh āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϟāĻŋāϕ⧇ āϏāĻžāϰāĻŋāϤ⧇ āϰāĻžāϖ⧁āύāĨ¤

install-packages.sh:

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

grafana-setup.sh:

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

run-setup-at-reboot.sh:

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

āĻāĻ–āύ āĻĒā§āϝāĻžāĻ•āĻžāϰ āϚāĻžāϞāĻžāύ⧋ āĻāĻŦāĻ‚ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāĻžāĻ°ā§āϟāĻŋāĻļāύ⧇ āφāωāϟāĻĒ⧁āϟ āχāĻŽā§‡āϜ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻŦāĻžāĻ•āĻŋ āφāϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āφāĻĒāύāĻŋ āĻāϟāĻŋāϕ⧇ āĻŦ⧁āϟ āĻĄāĻŋāĻ¸ā§āĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻŦāĻ‚ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āĻāĻ•āϟāĻŋ āϰ⧇āĻĄāĻŋāĻŽā§‡āĻĄ āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĒāĻžāύāĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž
āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻ—ā§āϰ⧁āĻĒ āĻāĻŦāĻ‚ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ

āĻāĻ•āĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻ• āϚāĻŋāĻ¤ā§āϰ āĻĒāĻžāĻ“āϝāĻŧāĻž āϗ⧇āϞ⧇ āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āύ āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧ, āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ Yandex.Cloud āĻĒā§āĻ˛ā§āϝāĻžāϟāĻĢāĻ°ā§āĻŽā§‡, āĻāχ āĻļāĻŦā§āĻĻāϟāĻŋ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋāϰ āĻŽāĻŋāϞāύāϕ⧇ āĻŦā§‹āĻāĻžāϝāĻŧ āϝ⧇āϗ⧁āϞāĻŋāϰ āĻāĻ•āχ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāĻ•āϟāĻŋ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āĻāχ āĻ—ā§āϰ⧁āĻĒ⧇āϰ āϏāĻŽāĻ¸ā§āϤ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻĒā§āϰ⧋āĻŸā§‹āϟāĻžāχāĻĒ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇ āĻ—ā§āϰ⧁āĻĒ⧇āϰ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ (āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āϏāĻ°ā§āĻŦāύāĻŋāĻŽā§āύ āĻāĻŦāĻ‚ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻž)āĨ¤ āϝāĻĻāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āĻ–ā§āϝāĻžāϟāĻŋ āĻāχ āĻŽāĻžāύāĻĻāĻŖā§āĻĄāϟāĻŋ āĻĒā§‚āϰāĻŖ āύāĻž āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻ—ā§āϰ⧁āĻĒ āύāĻŋāĻœā§‡āχ āĻ…āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻŽā§‡āĻļāĻŋāύāϗ⧁āϞāĻŋ āϏāϰāĻŋāϝāĻŧ⧇ āĻĢ⧇āϞāĻŦ⧇ āĻŦāĻž āχāĻŽā§‡āϜ āĻāĻŦāĻ‚ āϏāĻžāĻĻ⧃āĻļā§āϝ⧇ āύāϤ⧁āύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤

āφāĻŽāĻžāĻĻ⧇āϰ āϟāĻžāĻ¸ā§āϕ⧇āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏ⧇āĻŦ⧇, āφāĻŽāϰāĻž āĻ“āϝāĻŧ⧇āĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻāĻ•āϟāĻŋ āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻ—ā§āϰ⧁āĻĒ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ āϝāĻž āĻĒā§‚āĻ°ā§āĻŦ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻĄāĻŋāĻ¸ā§āĻ• āχāĻŽā§‡āϜ āĻĨ⧇āϕ⧇ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻļ⧇āώ āωāĻĻāĻžāĻšāϰāĻŖ āĻ—ā§āϰ⧁āĻĒ āϏ⧇āϟāĻŋāĻ‚ āϏāĻ¤ā§āϝāĻŋāχ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĨ¤ āϞ⧋āĻĄ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āϞāĻ•ā§āĻˇā§āϝ āĻ—ā§‹āĻˇā§āĻ ā§€āϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻŦā§‹āϤāĻžāĻŽ āϟāĻŋāĻĒ⧇ āĻāχ āĻ—ā§āϰ⧁āĻĒ⧇āϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āωāĻĒāϰ⧇ āĻāĻ•āϟāĻŋ L3 āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āϏāĻšāĻžāϝāĻŧāϤāĻž āĻ•āϰāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ, āφāĻŽāĻŋ āĻĻ⧁āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧇āĻ›āĻŋ:

  1. āφāĻŽāĻŋ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āĻ›āĻŋ āϝāĻžāϤ⧇ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰāϟāĻŋ āĻĒā§‹āĻ°ā§āϟ 80-āĻ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋāϕ⧇ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ⧇āϰ 3000 āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻĒ⧁āύāσāύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻ•āϰ⧇, āϝ⧇āĻ–āĻžāύ⧇ Grafana āĻŦāĻžāϏ āĻ•āϰ⧇āĨ¤
  2. āĻĒā§‹āĻ°ā§āϟ 3000 āĻ āĻĒāĻŋāĻ‚ āĻ•āϰ⧇ āĻŽā§‡āĻļāĻŋāύ⧇āϰ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āϝ āĻĒāϰ⧀āĻ•ā§āώāĻž āϏ⧇āϟ āφāĻĒ āĻ•āϰ⧁āύāĨ¤

āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦ⧇ Grafana āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ Yandex.Cloud āĻ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϰ āĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻŽāĻŋāύāĻŋ āĻŽā§‹āϟ

āĻ…āĻŦāĻļ⧇āώ⧇, āφāĻŽāϰāĻž āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĒāϰāĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ⧇āĻ›āĻŋ, āĻāĻŦāĻ‚ āĻāĻ–āύ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻāĻ•āϟāĻŋ āĻ…āĻ¤ā§āϝāĻ¨ā§āϤ āĻ¸ā§āĻĨāĻŋāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ• āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϟāĻŋāϤ⧇ āĻĄā§‡āϟāĻžāϏ⧇āϟ āϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āĻāĻ¨ā§āĻŸā§āϰāĻŋ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻāĻŦāĻ‚ āĻ•ā§āϞāĻŋāĻ•āĻšāĻžāωāϏ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻšā§‹āĻ¸ā§āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ⧇āϰ āφāχāĻĒāĻŋ āĻ āĻŋāĻ•āĻžāύāĻž āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇āĨ¤

āĻāϟāĻž āĻ•āĻŋ āĻŦāĻŋāϜāϝāĻŧ āĻŦāϞ⧇ āĻŽāύ⧇ āĻšāĻŦ⧇? āĻšā§āϝāĻžāρ, āĻŦāĻŋāϜāϝāĻŧāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āĻŋāϛ⧁ āĻāĻ–āύāĻ“ āφāĻŽāĻžāϕ⧇ āĻŦāĻŋāϰāĻ•ā§āϤ āĻ•āϰ⧇. āωāĻĒāϰ⧇āϰ āĻĒ⧁āϰ⧋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧇āĻ•āϗ⧁āϞāĻŋ āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞ āĻ…ā§āϝāĻžāĻ•āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŽā§‹āĻŸā§‡āĻ“ āĻ¸ā§āϕ⧇āϞ āĻ•āϰ⧇ āύāĻž, āφāĻŽāĻŋ āϏāĻŽā§āĻ­āĻŦ āĻšāϞ⧇ āĻāϟāĻŋ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ āϚāĻžāχāĨ¤ āĻāϟāĻŋ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻŦāĻŋāĻ­āĻžāϗ⧇āϰ āĻĢā§‹āĻ•āĻžāϏ āĻšāĻŦ⧇āĨ¤

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 - āĻ•ā§āϞāĻžāωāĻĄā§‡ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻŸā§‹āϕ⧇āύāĨ¤ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇ āϞāĻŋāĻ‚āĻ•.
āĻ•ā§āϞāĻžāωāĻĄ_āφāχāĻĄāĻŋ - āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāϰāĻž āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŦ
āĻĢā§‹āĻ˛ā§āĻĄāĻžāϰ_āφāχāĻĄāĻŋ — āϝ⧇ āĻŦāĻŋāĻ­āĻžāϗ⧇āϰ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āφāĻŽāϰāĻž āφāĻŦ⧇āĻĻāύāϟāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŦ
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 āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āωāĻ¤ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻžāϰ āĻĒāϰ⧇, āĻāϰ āφāχāĻĄāĻŋ āĻœā§‡āύ⧇, āφāĻŽāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻāϏāχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϏāĻš āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ¸ā§āĻ• āϚāĻŋāĻ¤ā§āϰ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇āĻ›āĻŋ, āϝ⧇āĻ–āĻžāύ⧇ āφāĻŽāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻšā§‹āĻ¸ā§āϟ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāĻ–āύ āφāĻŽāϰāĻž āĻŸā§‡āϰāĻžāĻĢāĻ°ā§āĻŽ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āφāϗ⧇ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āφāχāĻĄāĻŋ āϜāĻžāύāĻŋ āύāĻž, āĻ›āĻŦāĻŋ āϤ⧈āϰāĻŋāϰ āϏāĻŽāϝāĻŧ āϏāĻšāĨ¤ āϤāĻžāχ āφāĻŽāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ…āĻŦāϞāĻŽā§āĻŦāύ āĻ›āĻŋāϞ āĻ•ā§ŒāĻļāϞ.

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. āĻāϟāĻŋ āϤāĻžāĻĻ⧇āϰ āĻ­āĻžāĻ°ā§āϚ⧁āϝāĻŧāĻžāϞ āĻŽā§‡āĻļāĻŋāύ āϝāĻž āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇ āĻāϟāĻŋ āĻĒāĻžāĻŦ⧇ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻžāĻĢāĻžāύāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇ āϰāĻžāĻ–āĻŦ⧇āĨ¤

āĻāϟāĻž āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇.

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 āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ (āϝāĻžāϰ āφāχāĻĄāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻāĻ–āύāĻ“ āĻĒ⧇āϤ⧇ āĻšāĻŦ⧇) āĻĄā§‡āϟāĻž āĻ‰ā§ŽāϏ āĻšāĻŋāϏ⧇āĻŦ⧇ āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ Terraform āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āφāχāĻĄāĻŋ āϜāĻžāύ⧇āĨ¤ āĻ“āϕ⧇ āĻ•āĻžāϜ āĻļ⧇āώ āĻ•āϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āχāĨ¤

āφāϏ⧁āύ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻĒā§āϰāĻĻāĻžāύāĻ•āĻžāϰ⧀ āϝ⧋āĻ— āĻ•āϰāĻŋ - Grafana, āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻšā§‹āĻ¸ā§āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āφāχāĻĒāĻŋ āĻ¸ā§āϞāĻŋāĻĒ āĻ•āϰ⧁āύ⧎ āĻŸā§‡āϰāĻžāĻĢāĻ°ā§āĻŽ āĻŽā§‡āĻļāĻŋāύ⧇ āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻ•āϰ⧇ āϝ⧇āĻ–āĻžāύ⧇ āϤāĻžāϰ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻžāϰ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ 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 āφāĻĒāύāĻžāϕ⧇ āĻāϤ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāĻŽāĻŋ āφāĻļāĻž āĻ•āϰāĻŋ āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧāϟāĻŋ āĻ•āĻžāϰāĻ“ āĻ•āĻžāĻœā§‡ āϞāĻžāĻ—āĻŦ⧇ 🙂

āĻĒāĻŋāĻāϏ āύ⧀āĻšā§‡ āφāĻŽāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ⧇āϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŦ, āϝ⧇āĻ–āĻžāύ⧇ āφāĻĒāύāĻŋ āĻĒā§āϝāĻžāĻ•āĻžāϰ āĻāĻŦāĻ‚ āĻŸā§‡āϰāĻžāĻĢāĻ°ā§āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āϤ⧈āϰāĻŋ āϰ⧇āϏāĻŋāĻĒāĻŋāϗ⧁āϞāĻŋ āϖ⧁āρāĻœā§‡ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ, āϝāĻžāϰ āϟ⧁āĻ•āϰ⧋āϗ⧁āϞāĻŋ āφāĻŽāĻŋ āĻāχ āύāĻŋāĻŦāĻ¨ā§āϧ⧇ āωāĻĻā§āϧ⧃āϤ āĻ•āϰ⧇āĻ›āĻŋāĨ¤

āĻ­āĻžāĻ¨ā§āĻĄāĻžāϰ

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster