āĻ¸āĻžāĻ˛āĻžāĻŽ, āĻāĻžāĻŦā§āĻ°ā§āĻāĻ¸ā§āĻā§āĻ° āĻŦāĻžāĻ¸āĻŋāĻ¨ā§āĻĻāĻž! āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤āĻŋ āĻļā§āĻ°ā§āĻ° āĻĒā§āĻ°āĻžāĻā§āĻāĻžāĻ˛ā§
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ āĻ˛ā§āĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻā§āĻŽāĻŋāĻāĻžāĨ¤ āĻĒā§āĻ°āĻā§āĻā§āĻ āĻ˛ā§āĻāĻŋ
āĻ˛ā§āĻāĻŋāĻ° āĻŽā§āĻ˛ āĻ
āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻž āĻāĻŋāĻ˛
- āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻ˛ā§āĻŦā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
- āĻ āĻ˛ā§āĻĒ āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§āĻĻāĻŋāĻā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻŦ āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻĒā§āĻ°āĻ¸āĻā§āĻā§ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻŋāĻā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻŦāĨ¤
āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻļāĻŦā§āĻĻ
āĻ˛ā§āĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¤āĻž āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ āĻ§āĻžāĻĒ āĻĒāĻŋāĻāĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻā§ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤
āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻ¸ā§āĻŦāĻ¤āĻ¨ā§āĻ¤ā§āĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻŦā§āĻ° āĻāĻ°āĻž (āĻ°āĻĒā§āĻ¤āĻžāĻ¨āĻŋāĻāĻžāĻ°āĻāĻĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§) āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ TSDB (āĻāĻžāĻāĻŽ āĻ¸āĻŋāĻ°āĻŋāĻ āĻĄā§āĻāĻž āĻŦā§āĻ¸) āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž, āĻ˛ā§āĻŦā§āĻ˛ āĻāĻāĻžāĻ°ā§ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĨ¤
āĻā§āĻ¨ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ, āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§āĻ° āĻāĻāĻ¤ā§ āĻĄāĻŋ āĻĢā§āĻ¯āĻžāĻā§āĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§: āĻāĻāĻŋāĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻā§āĻŦāĻ āĻ¸āĻšāĻ, āĻāĻŦāĻ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨ā§āĻāĻŋāĻ āĻāĻ¨ā§āĻĄāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§āĨ¤ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ˛ā§āĻŦā§āĻ˛ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒāĻžāĻ¤ā§āĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻā§āĻŦ āĻ¸āĻšāĻāĨ¤
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻ˛āĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨āĻ āĻā§āĻ¨ āĻāĻžāĻ°ā§āĻ¨āĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ¨ā§āĻ, āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
- āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻā§āĻ¤ āĻ˛āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻā§āĻ˛āĻžāĻāĻĄ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž (AWS, Azure āĻŦāĻž Google)
- āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž "āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ" (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĄā§āĻāĻžāĻĄāĻ)
- āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĨ¤
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤āĻāĻžāĻŦā§ āĻāĻ˛āĻžāĻ¸ā§āĻāĻŋāĻāĻ¸āĻžāĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤āĻžāĻŽ, āĻ¯āĻĻāĻŋāĻ āĻāĻŽāĻŋ āĻāĻāĻŋāĻ¤ā§ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻā§āĻļāĻŋ āĻāĻŋāĻ˛āĻžāĻŽ āĻ¨āĻž (āĻŦāĻŋāĻļā§āĻˇāĻ¤ āĻāĻ° āĻāĻžāĻ°ā§āĻ¤āĻž āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻāĻŋāĻ˛āĻ¤āĻž)āĨ¤
āĻ˛ā§āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻā§ āĻ¸āĻšāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛:
- āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¸āĻšāĻ
- āĻāĻŋāĻā§ āĻ¸āĻŽā§āĻĒāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨
- āĻā§āĻ¨ā§ āĻŦāĻŋāĻļā§āĻˇ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖ āĻāĻžāĻĄāĻŧāĻžāĻ āĻ¸ā§āĻŦāĻžāĻ§ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨
- āĻŦāĻžāĻ āĻ¤āĻĻāĻ¨ā§āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĻ¨
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ āĻ¸āĻ°āĻ˛āĻ¤āĻž āĻāĻŋāĻā§ āĻāĻĒāĻ¸ āĻāĻ°āĻā§ āĻāĻ¸ā§. āĻ¤āĻžāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸ā§āĻā§ āĻ¨āĻž āĻāĻ°āĻžāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻĒāĻžāĻ ā§āĻ¯ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻā§āĻŦ āĻĻāĻā§āĻˇ āĻŦāĻž āĻ¸āĻŽā§āĻĻā§āĻ§ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻĒāĻžāĻ ā§āĻ¯ā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĻ° āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§āĻšā§āĻ¤ā§ āĻ˛ā§āĻāĻŋ āĻā§āĻ°ā§āĻĒā§āĻ° āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻšāĻ¤ā§ āĻāĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ āĻšāĻ¤ā§ āĻāĻžāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻāĻž āĻā§āĻ¨ā§ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻāĻ¨āĻžāĻ° āĻ¤āĻĻāĻ¨ā§āĻ¤
āĻā§āĻ¨ āĻ˛ā§āĻāĻŋāĻ° āĻ¸ā§āĻā§āĻāĻ°āĻŖā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻ āĻ¤āĻž āĻāĻ°āĻ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻŦā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻāĻāĻ¨āĻž āĻ¤āĻĻāĻ¨ā§āĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ¤ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ āĻ¯āĻž āĻ˛ā§āĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻ˛ā§āĻ¨:
1 āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž â 2 āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ â 3 āĻ
ā§āĻ¯āĻžāĻĄāĻšāĻ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ â 4 āĻ˛āĻ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ â 5 āĻŦāĻŋāĻ¤āĻ°āĻŖāĻā§āĻ¤ āĻā§āĻ°ā§āĻ¸āĻŋāĻ â 6 āĻ āĻŋāĻ āĻāĻ°ā§āĻ¨!
(1 āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž â 2 āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ â 3 āĻ
ā§āĻ¯āĻžāĻĄāĻšāĻ āĻā§āĻ¯āĻŧā§āĻ°āĻŋ â 4 āĻ˛āĻ āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ â 5 āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¸āĻŋāĻ â 6 āĻĢāĻŋāĻā§āĻ¸āĻŋāĻ!)
āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻšāĻ˛ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§ āĻ§āĻ°āĻŖā§āĻ° āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž (āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻ āĻ¨ā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāĻ¨, āĻāĻ¸āĻāĻŽāĻāĻ¸, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻĒāĻžāĻ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻĒāĻ°ā§:
- Grafana āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻĻā§āĻā§āĻ¨
- āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻĻā§āĻā§āĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§)
- āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ˛āĻžāĻ¸ā§āĻāĻŋāĻāĻ¸āĻžāĻ°ā§āĻā§)
- āĻšāĻ¯āĻŧāĻ¤ā§ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¸ (āĻā§āĻāĻžāĻ°, āĻāĻŋāĻĒāĻāĻŋāĻ¨, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻĻā§āĻā§āĻ¨
- āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§ āĻŽā§āĻ˛ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ āĻŋāĻ āĻāĻ°āĻžāĨ¤
āĻāĻāĻžāĻ¨ā§, Grafana + Prometheus + Elasticsearch + Zipkin āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻžāĻ°āĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻžāĻ¤ā§, āĻāĻāĻāĻŋ āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻāĻžāĻ˛ āĻšāĻŦā§: GrafanaāĨ¤ āĻāĻāĻŋ āĻ˛āĻā§āĻˇāĻŖā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻŦā§āĻˇāĻŖāĻžāĻ° āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ¯āĻŧ 6 āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻžāĻŦā§, āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž āĻĨā§āĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻĄā§āĻāĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻāĻŦāĻ āĻ˛ā§āĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻā§āĻ¸āĻĒā§āĻ˛ā§āĻ°āĻžāĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ āĻŦāĻŋāĻāĻā§āĻ¤
āĻāĻ āĻ¸ā§āĻā§āĻ°ā§āĻ¨ āĻĨā§āĻā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻĒā§āĻ˛āĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ āĻ§āĻžāĻ°āĻŖāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ˛ā§āĻāĻŋ āĻ˛āĻ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 6.5 āĻĨā§āĻā§, Grafana āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°āĻž āĻā§āĻ°ā§āĻ¸āĻŋāĻ āĻā§āĻ˛āĻ¸ (Jaeger) āĻāĻ° āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§ Loki āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻ¸ āĻāĻāĻĄāĻŋ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ˛ā§āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž
āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻ˛ā§āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧ āĻšāĻ˛ āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĨ¤ āĻĄāĻāĻžāĻ°-āĻāĻŽā§āĻĒā§āĻ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ˛ā§āĻāĻŋ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ git
:
$ git clone https://github.com/grafana/loki.git
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§:
$ cd production
āĻāĻ° āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻĄāĻāĻžāĻ° āĻāĻŋāĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ docker-compose pull
āĻ āĻŦāĻļā§āĻˇā§, āĻ˛ā§āĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
$ docker-compose up
āĻ˛ā§āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯
āĻāĻāĻžāĻ¨ā§ āĻ˛ā§āĻāĻŋ āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻŋāĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§:
āĻ˛ā§āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āĻ¯ā§āĻ° āĻ¨ā§āĻ¤āĻŋ
āĻāĻ¯āĻŧā§āĻŦ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛āĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻŽāĻā§āĻ˛ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°ā§ āĻāĻŦāĻ āĻ˛ā§āĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ, āĻāĻ¯āĻŧā§āĻŦ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ˛ā§āĻāĻŋāĻ¤ā§ āĻŽā§āĻāĻžāĻĄā§āĻāĻžāĻ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ˛ā§āĻāĻŋ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ¯āĻŧ āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°ā§āĨ¤
āĻ˛ā§āĻāĻŋ āĻāĻžāĻ˛ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨:
$ docker ps
āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨āĻāĻžāĻŦā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻĄāĻāĻžāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§:
IMAGE PORTS NAMES
grafana/promtail: production_promtail_1
grafana/grafana: m 0.0.0.0:3000->3000/tcp production_grafana_1
grafana/loki: late 80/tcp,0.0.0.0:3100... production_loki_1
āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ:
- Promtail: āĻ˛āĻ āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻ¯āĻŧāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻāĻžāĻ¯āĻŧā§ āĻāĻā§āĻ¨ā§āĻ
- Grafana: āĻāĻāĻāĻŋ āĻŦāĻŋāĻā§āĻ¯āĻžāĻ¤ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻā§āĻ˛
- āĻ˛ā§āĻāĻŋ: āĻĄā§āĻāĻž āĻ¸ā§āĻ¨ā§āĻā§āĻ°āĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨ āĻĄā§āĻŽāĻ¨
āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸āĻŋāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ āĻāĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§), āĻĒā§āĻ°āĻŽāĻā§āĻ˛ āĻāĻā§āĻ¨ā§āĻāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻŽā§āĻ¤āĻžāĻ¯āĻŧā§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ Grafana āĻāĻŦāĻ Loki āĻāĻāĻ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
Kubernetes āĻ Loki āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻšāĻŦā§:
- āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻĒā§āĻ°āĻŽāĻā§āĻ˛ āĻāĻā§āĻ¨ā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄā§āĻŽāĻ¨āĻ¸ā§āĻ
- āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ˛ā§āĻāĻŋ
- āĻāĻŦāĻ āĻļā§āĻˇ āĻāĻāĻāĻŋ Grafana āĻāĻ° āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž.
āĻāĻžāĻā§āĻ¯āĻā§āĻ°āĻŽā§, āĻ˛ā§āĻāĻŋ āĻāĻāĻāĻŋ āĻšā§āĻ˛āĻŽ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻĒāĻ˛āĻŦā§āĻ§, āĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤
āĻšā§āĻŽāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨
āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ Heml āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° GitHub āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ°ā§āĻāĻŋāĻā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻāĻžāĻāĻāĻāĻŋ āĻāĻ¨āĻĒā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻšā§āĻ˛āĻŽ āĻ¯ā§āĻ āĻāĻ°ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ $PATH
.
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻšā§āĻ˛āĻŽā§āĻ° āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 3.0.0 āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻĒāĻžāĻ āĻāĻā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻā§ āĻāĻāĻā§ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§āĨ¤.
āĻšā§āĻ˛āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻ¸ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻĒā§āĻ°āĻĨāĻŽ āĻ§āĻžāĻĒ āĻšāĻ˛ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ "loki" āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž:
$ helm add loki https://grafana.github.io/loki/charts
āĻāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ "loki" āĻ¨āĻžāĻŽā§āĻ° āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
$ helm search loki
āĻĢāĻ˛āĻžāĻĢāĻ˛:
loki/loki 0.17.2 v0.4.0 Loki: like Prometheus, but for logs.
loki/loki-stack 0.19.1 v0.4.0 Loki: like Prometheus, but for logs.
loki/fluent-bit 0.0.2 v0.0.1 Uses fluent-bit Loki go plugin for...
loki/promtail 0.13.1 v0.4.0 Responsible for gathering logs and...
āĻāĻ āĻĒā§āĻ¯āĻžāĻā§āĻāĻā§āĻ˛āĻŋāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§:
- āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ˛ā§āĻāĻŋ/āĻ˛ā§āĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛ā§āĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§
- āĻĒā§āĻ¯āĻžāĻā§āĻ loki/fluent-bit āĻĒā§āĻ°āĻŽāĻā§āĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĢā§āĻ˛ā§āĻ¯āĻŧā§āĻ¨ā§āĻ-āĻŦāĻŋāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻĄā§āĻŽāĻ¨āĻ¸ā§āĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ
- āĻĒā§āĻ¯āĻžāĻā§āĻ loki/promtail āĻāĻāĻāĻŋ āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻā§āĻ¨ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§
- āĻĒā§āĻ¯āĻžāĻā§āĻ loki/loki-stack, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ Promtail āĻāĻ° āĻ¸āĻžāĻĨā§ Loki āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ˛ā§āĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ā§ āĻ˛ā§āĻāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§, "āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ" āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨:
$ helm upgrade --install loki loki/loki-stack --namespace monitoring
āĻĄāĻŋāĻ¸ā§āĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§, āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ --set loki.persistence.enabled = true:
$ helm upgrade --install loki loki/loki-stack
--namespace monitoring
--set loki.persistence.enabled=true
āĻĻā§āĻ°āĻˇā§āĻāĻŦā§āĻ¯: āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ Grafana āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
--set grafana.enabled = true
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨ āĻ¤āĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ¤ā§ āĻšāĻŦā§:
LAST DEPLOYED: Tue Nov 19 15:56:54 2019
NAMESPACE: monitoring
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
loki-promtail-clusterrole 189d
âĻ
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.
See <a href="http://docs.grafana.org/features/datasources/loki/">http://docs.grafana.org/features/datasources/loki/</a> for more details.
"āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ" āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĒāĻĄāĻā§āĻ˛āĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻŋāĻ¯āĻŧā§, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻāĻŋ āĻ¯ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
$ kubectl -n monitoring get pods -l release=loki
āĻĢāĻ˛āĻžāĻĢāĻ˛:
NAME READY STATUS RESTARTS AGE
loki-0 1/1 Running 0 147m
loki-promtail-9zjvc 1/1 Running 0 3h25m
loki-promtail-f6brf 1/1 Running 0 11h
loki-promtail-hdcj7 1/1 Running 0 3h23m
loki-promtail-jbqhc 1/1 Running 0 11h
loki-promtail-mj642 1/1 Running 0 62m
loki-promtail-nm64g 1/1 Running 0 24m
āĻ¸āĻŦ āĻĒāĻĄ āĻāĻ˛āĻā§āĨ¤ āĻāĻāĻ¨ āĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ!
Grafana āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻā§āĻā§
Kubernetes-āĻāĻ° āĻ āĻ§ā§āĻ¨ā§ Grafana-āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ° āĻĒāĻĄā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¨ā§āĻ˛ āĻā§āĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¨ā§āĻā§ Grafana āĻĒāĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ 3000 āĻĒā§āĻ°ā§āĻ āĻā§āĻ˛āĻžāĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§:
$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80
āĻāĻ°ā§āĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻšāĻ˛ Grafana āĻ
ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻā§āĻĒāĻ¨ āĻ°āĻžāĻāĻž āĻšāĻ¯āĻŧ loki-grafana
āĻŽāĻžāĻ ā§ .data.admin-user
āĻŦā§āĻ¸64 āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĨ¤
āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻšāĻŦā§:
$ kubectl -n monitoring get secret loki-grafana
--template '{{index .data "admin-password" | base64decode}}'; echo
āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ (āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ) āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
Grafana āĻāĻāĻāĻŋ Loki āĻĄā§āĻāĻž āĻā§āĻ¸ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž
āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ˛ā§āĻāĻŋ āĻĄā§āĻāĻž āĻāĻ¤ā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨/āĻĄā§āĻāĻžāĻ¸ā§āĻ°ā§āĻ¸)āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
āĻ˛ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄā§āĻāĻž āĻā§āĻ¸ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ
"āĻĒāĻ°ā§āĻā§āĻˇāĻž" āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§ āĻāĻĒāĻ¨āĻŋ āĻ˛ā§āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ
āĻ˛ā§āĻāĻŋāĻ° āĻāĻžāĻā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž
āĻāĻāĻ¨ Grafana āĻĨā§āĻā§ "Explore" āĻŦāĻŋāĻāĻžāĻā§ āĻ¯āĻžāĻ¨āĨ¤ āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻĨā§āĻā§ āĻ˛āĻ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ˛ā§āĻāĻŋ āĻā§āĻŦāĻžāĻ°āĻ¨ā§āĻāĻ¸ āĻĨā§āĻā§ āĻŽā§āĻāĻžāĻĄā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻžāĻ¤ā§āĻ°ā§āĻ° āĻ˛āĻāĻā§āĻ˛āĻŋ āĻĻā§āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, promtail āĻāĻ¨ā§āĻā§āĻāĻ¨āĻžāĻ° āĻ˛āĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨: {container_name = "promtail"}
.
āĻāĻāĻžāĻ¨ā§ āĻ˛ā§āĻāĻŋ āĻĄā§āĻāĻž āĻāĻ¤ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§āĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨āĨ¤
āĻāĻ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ§āĻžāĻ°āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ˛āĻžāĻĒ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻā§āĻŦā§:
Grafana-āĻ āĻĒā§āĻ°āĻļā§āĻ¨ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛
āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄā§ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
Grafana 6.4 āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻ˛āĻ āĻāĻ¨āĻĢāĻ°āĻŽā§āĻļāĻ¨ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄā§ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻāĻā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻā§āĻ°ā§āĻ¸ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĻā§āĻ°ā§āĻ¤ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨āĨ¤
āĻ¨ā§āĻā§ āĻāĻāĻāĻŋ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¯āĻž āĻāĻ āĻŽāĻŋāĻĨāĻ¸ā§āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§:
āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ āĻŽā§āĻā§āĻ°āĻŋāĻā§āĻ¸ āĻāĻŦāĻ āĻ˛ā§āĻāĻŋ āĻ˛āĻ āĻ¸āĻš āĻ¨āĻŽā§āĻ¨āĻž āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ
āĻ˛ā§āĻāĻŋāĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤
āĻāĻŽāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 0.1 āĻ¸āĻš āĻŽā§/āĻā§āĻ¨ āĻŽāĻžāĻ¸ā§ āĻ˛ā§āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1, āĻāĻŽāĻ¨āĻāĻŋ 1.1 āĻāĻŦāĻ 1.2 āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻāĻž āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 0.1 āĻ¯āĻĨā§āĻˇā§āĻ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛ āĻāĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ 0.3 āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒāĻ°āĻŋāĻĒāĻā§āĻāĻ¤āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ¤ āĻ˛āĻā§āĻˇāĻŖ āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ (0.4, āĻ¤āĻžāĻ°āĻĒāĻ° 1.0) āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ āĻāĻžāĻĒāĻāĻŋāĻā§ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻāĻ°ā§āĻā§āĨ¤
1.0.0 āĻāĻ° āĻĒāĻ°ā§, āĻāĻ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ°āĻ āĻāĻžāĻā§ āĻā§āĻ¨āĻ āĻ āĻā§āĻšāĻžāĻ¤ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻžāĨ¤
āĻāĻ°āĻ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ āĻ˛ā§āĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻ¯āĻŧ, āĻŦāĻ°āĻ āĻāĻŽā§āĻāĻžāĻ° āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ° āĻāĻā§āĻāĻ°āĻŖ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, Grafana 6.4 āĻāĻ° āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
Grafana 6.5, āĻ¯āĻž āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, JSON āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ˛āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ āĻāĻā§āĻāĻ°āĻŖāĻā§ āĻāĻ°āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°ā§āĨ¤
āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻĄāĻŋāĻāĻāĻŋ āĻāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ¯āĻŧ āĻāĻ¨ā§āĻŽā§āĻā§āĻ¤ āĻ˛ā§āĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
JSON āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ° āĻāĻ¨ā§āĻ¯:
- āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽā§āĻ° āĻ˛āĻŋāĻā§āĻ
- āĻ˛āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ°āĻŋāĻ
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ Zipkin āĻŦāĻž Jaeger āĻ¯ā§āĻ¤ā§ traceId āĻ āĻā§āĻ˛āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ¯āĻĨāĻžāĻ°ā§āĻ¤āĻŋ, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ
āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻāĻŋ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻžāĻ¨āĻžāĻā§āĻāĻŋ
āĻāĻ¤ā§āĻ¸: www.habr.com