āĻāĻ˛ā§āĻā§āĻ¸āĻŋ āĻ˛āĻŋāĻā§āĻ¨āĻ, MKB-āĻāĻ° āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ āĻ§āĻŋāĻĻāĻĒā§āĻ¤āĻ°ā§āĻ° āĻ°āĻŋāĻŽā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻā§āĻ¯āĻžāĻ¨ā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻā§āĻˇāĻŽāĻ¤āĻž āĻā§āĻ¨ā§āĻĻā§āĻ°ā§āĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨
ELK āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° (ElasticSearch, Logstash, Kibana) āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻšāĻŋāĻ¸ā§āĻŦā§, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻ° āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ° āĻšāĻŋāĻ¸ā§āĻŦā§ ClickHouse āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻāĻŦā§āĻˇāĻŖāĻž āĻāĻ°āĻāĻŋāĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻ°āĻž ClickHouse āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž āĻāĻŦāĻ āĻĒāĻžāĻāĻ˛āĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻāĨ¤ āĻāĻāĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻŋāĻ¤ā§āĻ¤āĻžāĻāĻ°ā§āĻˇāĻ āĻāĻŋāĻ˛āĨ¤
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻā§āĻāĻžāĻŦā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ āĻāĻ¤ā§ āĻā§ āĻā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻŦāĻŋāĻļāĻĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŦāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻŽāĻŋ āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻāĻŋ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻŽāĻ¤ā§āĨ¤ ClickHouse āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻšāĻ˛ āĻāĻ¯āĻŧāĻžāĻ¨āĻĄā§āĻā§āĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻā§āĻ-āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦāĻŋāĻļā§āĻ˛ā§āĻˇāĻŖāĻŽā§āĻ˛āĻ āĻāĻ˛āĻžāĻŽāĻžāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĨ¤ āĻāĻāĻŋ Yandex āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻŋ Yandex.Metrica-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻāĨ¤ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĨ¤ āĻāĻāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻāĻŽāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻžāĻŦāĻŋ āĻ¯ā§ āĻ¤āĻžāĻ°āĻž āĻā§āĻāĻžāĻŦā§ āĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻā§, āĻāĻžāĻ°āĻŖ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤āĻāĻžāĻŦā§ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŦāĻ āĻŽā§āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻāĻāĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¨āĻŋāĻā§āĻ āĻā§āĻŦ āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻ¤āĨ¤ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻĨāĻŽ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤āĻŋāĻ¤ā§, āĻāĻžāĻĒāĻāĻŋ āĻšāĻ˛: "āĻāĻā§āĻāĻž, āĻ
āĻŦāĻļā§āĻˇā§! āĻŽāĻžāĻ¨ā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°āĻŋ! āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻāĻŽ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĨā§āĻ°ā§āĻļāĻšā§āĻ˛ā§āĻĄ āĻāĻā§. āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻ¨ āĻāĻĄāĻŧ-āĻĻāĻā§āĻˇ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸āĻāĻŋ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻŦāĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ¨āĻāĻŋ āĻ¯āĻžāĻ°āĻž āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¤āĻžāĻ°āĻžāĻ āĻĻā§āĻ°ā§āĻ¤ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻšāĻāĻ¤āĻŽ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻā§, āĻŦāĻŋāĻ āĻĄā§āĻāĻž, āĻšā§āĻ¯āĻžāĻĄā§āĻĒ, āĻā§āĻāĻ˛ āĻŦāĻŋāĻāĻā§āĻŦāĻ˛, āĻāĻāĻāĻĄāĻŋāĻāĻĢāĻāĻ¸ āĻļāĻŦā§āĻĻāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§, āĻāĻāĻāĻ¨ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻāĻŋāĻ˛ āĻ¯ā§ āĻāĻāĻŋ āĻāĻŋāĻā§ āĻā§āĻ°āĻžāĻŦāĻžāĻāĻ, āĻĒā§āĻāĻžāĻŦāĻžāĻāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻŽāĻžāĻ¨āĻŦ āĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻāĻŦāĻ āĻŦāĻŋāĻāĻžāĻļā§ āĻ¨āĻŋāĻ¯ā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ā§āĻ° āĻāĻŦāĻŋāĻ°ā§āĻāĻžāĻŦā§āĻ° āĻ¸āĻžāĻĨā§āĨ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻšāĻ, āĻŦā§āĻ§āĻāĻŽā§āĻ¯ āĻā§āĻ˛ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ āĻ¯āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§āĻŦā§ āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸āĻ°ā§āĻ° āĻāĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻāĻĄāĻŧ āĻŽā§āĻļāĻŋāĻ¨ āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻāĻ āĻŽāĻŋāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻ¯āĻŧāĨ¤ āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻŽāĻ°āĻž āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒā§āĻ¯āĻŧā§āĻāĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŽāĻžāĻāĻāĻ¸āĻāĻŋāĻāĻāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻāĻŋ āĻā§āĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯! āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻāĻžāĻˇāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸ā§āĻĒāĻžāĻ° āĻāĻ°ā§āĻāĻžāĻāĻāĻžāĻ°āĨ¤ āĻ¯ā§āĻ¨ āĻŽāĻžāĻ¨ā§āĻˇā§āĻ° āĻšāĻžāĻ¤ā§ āĻāĻ˛āĻŋāĻ¯āĻŧā§āĻ¨āĻĻā§āĻ° āĻ āĻ¸ā§āĻ¤ā§āĻ° āĻ¤ā§āĻ˛ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻ˛āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§
āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§, āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻ āĻāĻ¯āĻŧā§āĻŦ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° IIS āĻ˛āĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻāĻŋ, āĻ¤āĻŦā§ āĻĒāĻžāĻāĻ˛āĻ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻŽā§āĻ˛ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ IIS āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻž)āĨ¤
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ°āĻŖā§, āĻāĻŽāĻ°āĻž ELK āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻĒāĻ°āĻŋāĻ¤ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĻ¨āĻŋ, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž LogStash āĻāĻŦāĻ Filebeat āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻžāĻ˛āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻā§āĻāĻŋ, āĻ¯āĻž āĻ¨āĻŋāĻā§āĻĻā§āĻ°āĻā§ āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻāĻ°ā§āĻā§ āĻāĻŦāĻ āĻŦā§āĻļ āĻ¨āĻŋāĻ°ā§āĻāĻ°āĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽāĻžāĻ¨āĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ°ā§ āĻĻā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§:
āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĄā§āĻāĻž āĻ˛ā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻšāĻ˛ āĻŦāĻŋāĻ°āĻ˛ (āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻāĻāĻŦāĻžāĻ°) āĻŦāĻĄāĻŧ āĻŦā§āĻ¯āĻžāĻā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĨ¤ āĻāĻāĻŋ, āĻĻā§āĻļā§āĻ¯āĻ¤, āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ "āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŽā§āĻ˛āĻ" āĻ
āĻāĻļ āĻ¯āĻž āĻāĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¨ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ
āĻāĻŋāĻā§āĻāĻ¤āĻž āĻĒāĻžāĻ¨: āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻāĻāĻŋāĻ˛ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļā§āĻ° āĻĒā§āĻ˛āĻžāĻāĻāĻ¨, āĻ¯āĻž āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ā§ āĻĄā§āĻāĻž āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°ā§, āĻāĻāĻžāĻ¨ā§ āĻ
āĻ¨ā§āĻ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻŦāĻ˛āĻ¤ā§ āĻā§āĻ˛ā§, āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§, āĻ¯āĻžāĻ¤ā§ āĻāĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ˛āĻžāĻĻāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¤ā§āĻ°āĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ¨ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻĻā§āĻ° āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻĒāĻ°ā§āĻ¯āĻŦā§āĻā§āĻˇāĻŖ āĻāĻ°āĻŋāĻ¨āĻŋāĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻāĻŋ āĻ˛āĻā§āĻˇ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋāĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋ āĻĸā§āĻāĻžāĻ¨ā§ āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ˛āĻŋāĻā§ (āĻĢāĻžāĻāĻ˛ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ: āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸-āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻšāĻā§āĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻŦā§āĻ¯āĻžāĻ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨)āĨ¤
āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž
āĻ¨āĻžāĻŽ
āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻ˛āĻŋāĻā§āĻ
nginx
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¸-āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻĒā§āĻ°ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻāĻ°āĻ¤ā§
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¸ā§āĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻ
āĻĢāĻžāĻāĻ˛ āĻ˛āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°.
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļ
āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻžāĻšāĻāĨ¤
āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻ āĻĨā§āĻā§ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ RabbitMQ āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻš āĻāĻ°āĻ¤ā§ (DMZ-āĻ āĻĨāĻžāĻāĻž āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯)
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļ-āĻāĻāĻāĻĒā§āĻ-āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸
āĻŦā§āĻ¯āĻžāĻā§ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ˛āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ Loagstash āĻĒā§āĻ˛āĻžāĻāĻāĻ¨
/usr/share/logstash/bin/logstash-plugin logstash-output-clickhouse āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
/usr/share/logstash/bin/logstash-plugin logstash-filter-prune āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
/usr/share/logstash/bin/logstash-plugin logstash-filter-multiline āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸
āĻ˛āĻ āĻ¸ā§āĻā§āĻ°ā§āĻ
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ. āĻāĻāĻ¸ā§āĻ 2018 āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, RHEL-āĻāĻ° āĻāĻ¨ā§āĻ¯ "āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ" rpm āĻŦāĻŋāĻ˛ā§āĻĄāĻā§āĻ˛āĻŋ Yandex āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ā§ˇ āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽāĻ°āĻž Altinity āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻāĻŋāĻ˛āĻžāĻŽāĨ¤
āĻā§āĻ°āĻžāĻĢāĻžāĻ¨āĻž
āĻ˛āĻ āĻāĻŋāĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ˛āĻžāĻāĻā§āĻļāĻ¨āĨ¤ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
Redhat & Centos (64 āĻŦāĻŋāĻ) - āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ
Grafana 4.6+ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻŋāĻ āĻšāĻžāĻāĻ¸ āĻĄā§āĻāĻžāĻ¸ā§āĻ°ā§āĻ¸
ClickHouse āĻĄā§āĻāĻž āĻā§āĻ¸ āĻ¸āĻš Grafana-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļ
FileBeat āĻĨā§āĻā§ RabbitMQ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻāĻžāĻ° āĻ˛āĻ āĻāĻ°ā§āĻ¨āĨ¤
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ. āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤ FileBeat āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ RabbitMQ āĻ¤ā§ āĻāĻāĻāĻĒā§āĻ āĻĻā§āĻ¯āĻŧ āĻ¨āĻž, āĻ¤āĻžāĻ Logstash āĻāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻŋāĻā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
RabbitMQ
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻžāĻ°āĻŋāĨ¤ āĻāĻāĻŋ DMZ-āĻ āĻ˛āĻ āĻŦāĻžāĻĢāĻžāĻ°
Erlang āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ (RabbitMQ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ)
Erlang āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ. RabbitMQ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
āĻ¨āĻžāĻŽ
āĻŽāĻžāĻ¨
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻāĻāĻāĻĄāĻŋāĻĄāĻŋ: 40 āĻāĻŋāĻŦāĻŋ
āĻ°ā§āĻ¯āĻžāĻŽ: 8GB
āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°: āĻā§āĻ° 2 2 āĻāĻŋāĻāĻžāĻšāĻžāĻ°ā§āĻ
āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻĒāĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻĢāĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°
OS: Red Hat Enterprise Linux āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° (Maipo)
JRE (āĻāĻžāĻāĻž 8)
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻ¸ā§āĻā§āĻļāĻ¨āĨ¤
āĻ˛āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
log_web.sql
CREATE TABLE log_web (
logdate Date,
logdatetime DateTime CODEC(Delta, LZ4HC),
fld_log_file_name LowCardinality( String ),
fld_server_name LowCardinality( String ),
fld_app_name LowCardinality( String ),
fld_app_module LowCardinality( String ),
fld_website_name LowCardinality( String ),
serverIP LowCardinality( String ),
method LowCardinality( String ),
uriStem String,
uriQuery String,
port UInt32,
username LowCardinality( String ),
clientIP String,
clientRealIP String,
userAgent String,
referer String,
response String,
subresponse String,
win32response String,
timetaken UInt64
, uriQuery__utm_medium String
, uriQuery__utm_source String
, uriQuery__utm_campaign String
, uriQuery__utm_term String
, uriQuery__utm_content String
, uriQuery__yclid String
, uriQuery__region String
) Engine = MergeTree()
PARTITION BY toYYYYMM(logdate)
ORDER BY (fld_app_name, fld_app_module, logdatetime)
SETTINGS index_granularity = 8192;
āĻāĻŽāĻ°āĻž āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻļāĻ¨āĻŋāĻ (āĻŽāĻžāĻ¸ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§) āĻāĻŦāĻ āĻ¸ā§āĻāĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻāĻāĻžāĻŦā§ http āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻ˛āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ IIS āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋ āĻ¯ā§ utm-āĻā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛āĻžāĻĻāĻž āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§āĻā§ (āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĨā§āĻā§ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤
āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ, āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻŋāĻ˛ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨ā§āĻā§āĻ° āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻĻā§āĻā§āĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ˛āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻŋāĨ¤
āĻ¨āĻžāĻŽ
āĻŦāĻŋāĻŦāĻ°āĻŖ
āĻāĻĻāĻžāĻšāĻ°āĻŖ
fld_app_name
āĻ
ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨/āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻžāĻŽ
āĻŦā§āĻ§ āĻŽāĻžāĻ¨:
- site1.domain.com āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¸āĻžāĻāĻ 1
- site2.domain.com āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ¸āĻžāĻāĻ 2
- internal-site1.domain.local āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻ¸āĻžāĻāĻ 1
site1.domain.com
fld_app_module
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŽāĻĄāĻŋāĻāĻ˛
āĻŦā§āĻ§ āĻŽāĻžāĻ¨:
- āĻāĻ¯āĻŧā§āĻŦ - āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻ
- svc - āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž
- intgr - āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻļāĻ¨ āĻāĻ¯āĻŧā§āĻŦ āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸
- bo - āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ (āĻŦā§āĻ¯āĻžāĻāĻ āĻĢāĻŋāĻ¸)
āĻāĻ¯āĻŧā§āĻŦ
fld_website_name
IIS-āĻ āĻ¸āĻžāĻāĻā§āĻ° āĻ¨āĻžāĻŽ
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŽāĻĄāĻŋāĻāĻ˛ā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ
āĻāĻ¯āĻŧā§āĻŦ āĻĒā§āĻ°āĻ§āĻžāĻ¨
fld_server_name
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ¨āĻžāĻŽ
web1.domain.com
fld_log_file_name
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻžāĻĨ
C:inetpublogsLogFiles
W3SVC1u_ex190711.log
āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĻ¯āĻŧ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻā§āĻ°āĻžāĻĢ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĻā§āĻā§āĻ¨āĨ¤ āĻāĻāĻŋ Yandex.Metrica-āĻāĻ° āĻ¸āĻžāĻāĻ āĻāĻžāĻāĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ā§āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻĻā§āĻ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§āĻ° āĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻ¸āĻāĻā§āĻ¯āĻžāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻžāĻā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž
SELECT
fld_app_name,
fld_app_module,
count(fld_app_name) AS rows_count
FROM log_web
GROUP BY
fld_app_name,
fld_app_module
WITH TOTALS
ORDER BY
fld_app_name ASC,
rows_count DESC
ââfld_app_nameââââââŦâfld_app_moduleââŦârows_countââ
â site1.domain.ru â web â 131441 â
â site2.domain.ru â web â 1751081 â
â site3.domain.ru â web â 106887543 â
â site3.domain.ru â svc â 44908603 â
â site3.domain.ru â intgr â 9813911 â
â site4.domain.ru â web â 772095 â
â site5.domain.ru â web â 17037221 â
â site5.domain.ru â intgr â 838559 â
â site5.domain.ru â bo â 7404 â
â site6.domain.ru â web â 595877 â
â site7.domain.ru â web â 27778858 â
ââââââââââââââââââââ´âââââââââââââââââ´âââââââââââââ
Totals:
ââfld_app_nameââŦâfld_app_moduleââŦârows_countââ
â â â 210522593 â
ââââââââââââââââ´âââââââââââââââââ´âââââââââââââ
11 rows in set. Elapsed: 4.874 sec. Processed 210.52 million rows, 421.67 MB (43.19 million rows/s., 86.51 MB/s.)
āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄā§āĻāĻžāĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ
SELECT
formatReadableSize(sum(data_uncompressed_bytes)) AS uncompressed,
formatReadableSize(sum(data_compressed_bytes)) AS compressed,
sum(rows) AS total_rows
FROM system.parts
WHERE table = 'log_web'
ââuncompressedââŦâcompressedââŦâtotal_rowsââ
â 54.50 GiB â 4.86 GiB â 211427094 â
ââââââââââââââââ´âââââââââââââ´âââââââââââââ
1 rows in set. Elapsed: 0.035 sec.
āĻāĻ˛āĻžāĻŽā§ āĻĄā§āĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻļāĻ¨ā§āĻ° āĻĄāĻŋāĻā§āĻ°āĻŋ
SELECT
name,
formatReadableSize(data_uncompressed_bytes) AS uncompressed,
formatReadableSize(data_compressed_bytes) AS compressed,
data_uncompressed_bytes / data_compressed_bytes AS compress_ratio
FROM system.columns
WHERE table = 'log_web'
âânameââââââââââââââââââââŦâuncompressedââŦâcompressedââŦâââââcompress_ratioââ
â logdate â 401.53 MiB â 1.80 MiB â 223.16665968777315 â
â logdatetime â 803.06 MiB â 35.91 MiB â 22.363966401202305 â
â fld_log_file_name â 220.66 MiB â 2.60 MiB â 84.99905736932571 â
â fld_server_name â 201.54 MiB â 50.63 MiB â 3.980924816977078 â
â fld_app_name â 201.17 MiB â 969.17 KiB â 212.55518183686877 â
â fld_app_module â 201.17 MiB â 968.60 KiB â 212.67805817411906 â
â fld_website_name â 201.54 MiB â 1.24 MiB â 162.7204926761546 â
â serverIP â 201.54 MiB â 50.25 MiB â 4.010824061219731 â
â method â 201.53 MiB â 43.64 MiB â 4.617721053304486 â
â uriStem â 5.13 GiB â 832.51 MiB â 6.311522291936919 â
â uriQuery â 2.58 GiB â 501.06 MiB â 5.269731450124478 â
â port â 803.06 MiB â 3.98 MiB â 201.91673864241824 â
â username â 318.08 MiB â 26.93 MiB â 11.812513794583598 â
â clientIP â 2.35 GiB â 82.59 MiB â 29.132328640073343 â
â clientRealIP â 2.49 GiB â 465.05 MiB â 5.478382297052563 â
â userAgent â 18.34 GiB â 764.08 MiB â 24.57905114484208 â
â referer â 14.71 GiB â 1.37 GiB â 10.736792723669906 â
â response â 803.06 MiB â 83.81 MiB â 9.582334090987247 â
â subresponse â 399.87 MiB â 1.83 MiB â 218.4831068635027 â
â win32response â 407.86 MiB â 7.41 MiB â 55.050315514606815 â
â timetaken â 1.57 GiB â 402.06 MiB â 3.9947395692010637 â
â uriQuery__utm_medium â 208.17 MiB â 12.29 MiB â 16.936148912472955 â
â uriQuery__utm_source â 215.18 MiB â 13.00 MiB â 16.548367623199912 â
â uriQuery__utm_campaign â 381.46 MiB â 37.94 MiB â 10.055156353418509 â
â uriQuery__utm_term â 231.82 MiB â 10.78 MiB â 21.502540454070672 â
â uriQuery__utm_content â 441.34 MiB â 87.60 MiB â 5.038260760449327 â
â uriQuery__yclid â 216.88 MiB â 16.58 MiB â 13.07721335008116 â
â uriQuery__region â 204.35 MiB â 9.49 MiB â 21.52661903446796 â
ââââââââââââââââââââââââââ´âââââââââââââââ´âââââââââââââ´âââââââââââââââââââââ
28 rows in set. Elapsed: 0.005 sec.
āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž
āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻāĨ¤ āĻĢāĻžāĻāĻ˛ āĻ˛āĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ˛āĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻ°ā§ āĻāĻŦāĻ LogStash-āĻ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ˛ā§āĻāĻž āĻĨāĻžāĻā§ (āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ IIS)āĨ¤ āĻā§āĻ˛ āĻŽā§āĻĄā§ āĻāĻžāĻ āĻāĻ°ā§ (āĻ āĻ°ā§āĻĨāĻžā§ āĻĢāĻžāĻāĻ˛ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§)āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĢāĻžāĻāĻ˛ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻāĻ¨ āĻāĻā§āĻ° āĻŽāĻžāĻ¸ā§āĻ° āĻĄā§āĻāĻž āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨ āĻ¤āĻāĻ¨ āĻāĻāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĨ¤ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ°ā§ āĻ˛āĻ āĻĢāĻžāĻāĻ˛ āĻ°āĻžāĻā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻāĻŋ āĻĒāĻĄāĻŧāĻŦā§āĨ¤
āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻšāĻ¯āĻŧā§ āĻā§āĻ˛ā§, āĻĄā§āĻāĻž āĻāĻ° āĻ¸ā§āĻā§āĻ°ā§āĻā§ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- C:/inetpub/logs/LogFiles/W3SVC1/*.log
exclude_files: ['.gz$','.zip$']
tail_files: true
ignore_older: 24h
fields:
fld_server_name: "site1.domain.ru"
fld_app_name: "site1.domain.ru"
fld_app_module: "web"
fld_website_name: "web-main"
- type: log
enabled: true
paths:
- C:/inetpub/logs/LogFiles/__Import/access_log-*
exclude_files: ['.gz$','.zip$']
tail_files: false
fields:
fld_server_name: "site2.domain.ru"
fld_app_name: "site2.domain.ru"
fld_app_module: "web"
fld_website_name: "web-main"
fld_logformat: "logformat__apache"
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
reload.period: 2s
output.logstash:
hosts: ["log.domain.com:5044"]
ssl.enabled: true
ssl.certificate_authorities: ["C:/filebeat/certs/ca.pem", "C:/filebeat/certs/ca-issuing.pem"]
ssl.certificate: "C:/filebeat/certs/site1.domain.ru.cer"
ssl.key: "C:/filebeat/certs/site1.domain.ru.key"
#================================ Processors =====================================
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļ āĻ˛āĻ āĻāĻžāĻ˛ā§āĻā§āĻāĻ°
āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ FileBeat (āĻŦāĻž RabbitMQ āĻ¸āĻžāĻ°āĻŋāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§) āĻĨā§āĻā§ āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻā§āĻ˛āĻŋāĻ āĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻŦā§āĻ¯āĻžāĻāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ°ā§āĻ¸āĻŋāĻ āĻāĻŦāĻ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻžāĻ¨ā§āĨ¤
ClickHouse-āĻ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯, Logstash-output-clickhouse āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ Logstash āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ¨āĻāĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻļāĻžāĻāĻĄāĻžāĻāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§, āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤ āĻ¯āĻāĻ¨ āĻĨāĻžāĻŽāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ, āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ RabbitMQ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻŽāĻž āĻšāĻŦā§, āĻ¤āĻžāĻ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻāĻĒāĻāĻŋ āĻĻā§āĻ°ā§āĻ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ Filebeats āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤ āĻāĻāĻāĻŋ āĻ¸ā§āĻāĻŋāĻŽā§ āĻ¯ā§āĻāĻžāĻ¨ā§ RabbitMQ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž (āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§, āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļā§ āĻ˛āĻ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ), āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻāĻā§āĻ˛āĻŋ āĻŦā§āĻļ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻĒā§āĻ āĻĒāĻžāĻ¸ā§āĻ° āĻ āĻ¨ā§āĻĒāĻ˛āĻŦā§āĻ§āĻ¤āĻžāĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
log_web__filebeat_clickhouse.conf
input {
beats {
port => 5044
type => 'iis'
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/ca.cer", "/etc/logstash/certs/ca-issuing.cer"]
ssl_certificate => "/etc/logstash/certs/server.cer"
ssl_key => "/etc/logstash/certs/server-pkcs8.key"
ssl_verify_mode => "peer"
add_field => {
"fld_server_name" => "%{[fields][fld_server_name]}"
"fld_app_name" => "%{[fields][fld_app_name]}"
"fld_app_module" => "%{[fields][fld_app_module]}"
"fld_website_name" => "%{[fields][fld_website_name]}"
"fld_log_file_name" => "%{source}"
"fld_logformat" => "%{[fields][fld_logformat]}"
}
}
rabbitmq {
host => "queue.domain.com"
port => 5671
user => "q-reader"
password => "password"
queue => "web_log"
heartbeat => 30
durable => true
ssl => true
#ssl_certificate_path => "/etc/logstash/certs/server.p12"
#ssl_certificate_password => "password"
add_field => {
"fld_server_name" => "%{[fields][fld_server_name]}"
"fld_app_name" => "%{[fields][fld_app_name]}"
"fld_app_module" => "%{[fields][fld_app_module]}"
"fld_website_name" => "%{[fields][fld_website_name]}"
"fld_log_file_name" => "%{source}"
"fld_logformat" => "%{[fields][fld_logformat]}"
}
}
}
filter {
if [message] =~ "^#" {
drop {}
}
if [fld_logformat] == "logformat__iis_with_xrealip" {
grok {
match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IP:serverIP} %{WORD:method} %{NOTSPACE:uriStem} %{NOTSPACE:uriQuery} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clientIP} %{NOTSPACE:userAgent} %{NOTSPACE:referer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:win32response} %{NUMBER:timetaken} %{NOTSPACE:xrealIP} %{NOTSPACE:xforwarderfor}"]
}
} else {
grok {
match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IP:serverIP} %{WORD:method} %{NOTSPACE:uriStem} %{NOTSPACE:uriQuery} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clientIP} %{NOTSPACE:userAgent} %{NOTSPACE:referer} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:win32response} %{NUMBER:timetaken}"]
}
}
date {
match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ]
timezone => "Etc/UTC"
remove_field => [ "log_timestamp", "@timestamp" ]
target => [ "log_timestamp2" ]
}
ruby {
code => "tstamp = event.get('log_timestamp2').to_i
event.set('logdatetime', Time.at(tstamp).strftime('%Y-%m-%d %H:%M:%S'))
event.set('logdate', Time.at(tstamp).strftime('%Y-%m-%d'))"
}
if [bytesSent] {
ruby {
code => "event['kilobytesSent'] = event['bytesSent'].to_i / 1024.0"
}
}
if [bytesReceived] {
ruby {
code => "event['kilobytesReceived'] = event['bytesReceived'].to_i / 1024.0"
}
}
ruby {
code => "event.set('clientRealIP', event.get('clientIP'))"
}
if [xrealIP] {
ruby {
code => "event.set('clientRealIP', event.get('xrealIP'))"
}
}
if [xforwarderfor] {
ruby {
code => "event.set('clientRealIP', event.get('xforwarderfor'))"
}
}
mutate {
convert => ["bytesSent", "integer"]
convert => ["bytesReceived", "integer"]
convert => ["timetaken", "integer"]
convert => ["port", "integer"]
add_field => {
"clientHostname" => "%{clientIP}"
}
}
useragent {
source=> "useragent"
prefix=> "browser"
}
kv {
source => "uriQuery"
prefix => "uriQuery__"
allow_duplicate_values => false
field_split => "&"
include_keys => [ "utm_medium", "utm_source", "utm_campaign", "utm_term", "utm_content", "yclid", "region" ]
}
mutate {
join => { "uriQuery__utm_source" => "," }
join => { "uriQuery__utm_medium" => "," }
join => { "uriQuery__utm_campaign" => "," }
join => { "uriQuery__utm_term" => "," }
join => { "uriQuery__utm_content" => "," }
join => { "uriQuery__yclid" => "," }
join => { "uriQuery__region" => "," }
}
}
output {
#stdout {codec => rubydebug}
clickhouse {
headers => ["Authorization", "Basic abcdsfks..."]
http_hosts => ["http://127.0.0.1:8123"]
save_dir => "/etc/logstash/tmp"
table => "log_web"
request_tolerance => 1
flush_size => 10000
idle_flush_time => 1
mutations => {
"fld_log_file_name" => "fld_log_file_name"
"fld_server_name" => "fld_server_name"
"fld_app_name" => "fld_app_name"
"fld_app_module" => "fld_app_module"
"fld_website_name" => "fld_website_name"
"logdatetime" => "logdatetime"
"logdate" => "logdate"
"serverIP" => "serverIP"
"method" => "method"
"uriStem" => "uriStem"
"uriQuery" => "uriQuery"
"port" => "port"
"username" => "username"
"clientIP" => "clientIP"
"clientRealIP" => "clientRealIP"
"userAgent" => "userAgent"
"referer" => "referer"
"response" => "response"
"subresponse" => "subresponse"
"win32response" => "win32response"
"timetaken" => "timetaken"
"uriQuery__utm_medium" => "uriQuery__utm_medium"
"uriQuery__utm_source" => "uriQuery__utm_source"
"uriQuery__utm_campaign" => "uriQuery__utm_campaign"
"uriQuery__utm_term" => "uriQuery__utm_term"
"uriQuery__utm_content" => "uriQuery__utm_content"
"uriQuery__yclid" => "uriQuery__yclid"
"uriQuery__region" => "uriQuery__region"
}
}
}
pipelines.yml
# This file is where you define your pipelines. You can define multiple.
# For more information on multiple pipelines, see the documentation:
# https://www.elastic.co/guide/en/logstash/current/multiple-pipelines.html
- pipeline.id: log_web__filebeat_clickhouse
path.config: "/etc/logstash/log_web__filebeat_clickhouse.conf"
āĻā§āĻ˛āĻŋāĻ āĻšāĻžāĻāĻ¸ āĻ˛āĻ āĻ¸ā§āĻā§āĻ°ā§āĻ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ˛āĻāĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻļā§āĻ°ā§āĻ¤ā§ āĻĻā§āĻā§āĻ¨)āĨ¤ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻžāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§: āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĻ°āĻāĻŽ, āĻ¯ā§āĻŽāĻ¨ IIS āĻ˛āĻ, āĻ ā§āĻ¯āĻžāĻĒāĻžāĻāĻŋ āĻāĻŦāĻ nginx āĻ˛āĻāĨ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯, āĻ¯ā§āĻāĻžāĻ¨ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¤ā§āĻ°ā§āĻāĻŋ, āĻ¤āĻĨā§āĻ¯ āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻāĻžāĻ āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āĻŦāĻŋāĻ˛ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻšāĻŦā§ (āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻ¨āĻāĻļāĻž āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§)āĨ¤
āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ (āĻ¯āĻžāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĄā§āĻāĻž āĻ¸āĻžāĻāĻžāĻ¨ā§ āĻšāĻŦā§) āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻā§āĻŦāĻ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤ āĻĄā§āĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻļāĻ¨ āĻāĻŦāĻ āĻā§āĻ¯ā§āĻ¯āĻŧāĻžāĻ°ā§ āĻ¸ā§āĻĒāĻŋāĻĄ āĻāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻā§ āĻšāĻ˛
āĻ
āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°ā§āĻ¨ (fld_app_name, fld_app_module, logdatetime)
āĻ
āĻ°ā§āĻĨāĻžā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¨āĻžāĻŽ āĻ
āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻāĻā§āĻ¨ā§āĻā§āĻ° āĻ¤āĻžāĻ°āĻŋāĻāĨ¤ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§, āĻ
āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§āĻ° āĻ¤āĻžāĻ°āĻŋāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ¸ā§āĻāĻŋāĻ˛āĨ¤ āĻāĻāĻŋāĻā§ āĻļā§āĻˇ āĻāĻžāĻ¯āĻŧāĻāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§, āĻĒā§āĻ°āĻļā§āĻ¨āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻĻā§āĻŦāĻŋāĻā§āĻŖ āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§ā§ˇ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻžāĻāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻžāĻ°ā§ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨, āĻ¤āĻžāĻ āĻ¸āĻžāĻāĻžāĻ¨ā§āĻ° āĻā§āĻāĻŋāĻ¤ā§ āĻā§ āĻ
āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ
āĻ¨ā§āĻ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻāĻ°āĻž āĻāĻžāĻ˛āĨ¤
āĻāĻāĻžāĻ āĻ˛āĻā§āĻˇ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¯ā§ āĻ˛ā§āĻāĻžāĻ°ā§āĻĄāĻŋāĻ¨āĻžāĻ˛āĻŋāĻāĻŋ āĻĄā§āĻāĻž āĻāĻžāĻāĻĒ āĻ¸āĻžāĻŽā§āĻĒā§āĻ°āĻ¤āĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŽ āĻāĻžāĻ°ā§āĻĄāĻŋāĻ¨āĻžāĻ˛āĻŋāĻāĻŋ (āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ) āĻ°āĻ¯āĻŧā§āĻā§ āĻāĻŽāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻĄā§āĻāĻžāĻ° āĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 19.6 āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻāĻŋāĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ ā§āĻ¯āĻžāĻĄāĻžāĻĒā§āĻāĻŋāĻ āĻā§āĻ°āĻžāĻ¨ā§āĻ˛āĻžāĻ°āĻŋāĻāĻŋ, āĻ¸ā§āĻāĻŋāĻĒāĻŋāĻ āĻ¸ā§āĻāĻ āĻāĻŦāĻ āĻĄāĻžāĻŦāĻ˛āĻĄā§āĻ˛ā§āĻāĻž āĻā§āĻĄā§āĻ āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŽā§āĻāĻžāĻ° āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻ¤āĻ° āĻā§āĻ°ā§āĻ¸ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ˛āĻāĻā§āĻ˛āĻŋ āĻā§āĻ°āĻžāĻ¨ā§ āĻāĻŦāĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖāĻžāĻāĻžāĻ°āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¸ā§āĻ¤āĻ° āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ˛āĻā§āĻ° āĻāĻāĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻāĻāĻžāĻŦā§ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ˛āĻāĻŋāĻ āĻ¸ā§āĻāĻŋāĻ config.xml āĻĢāĻžāĻāĻ˛ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻā§:
<!-- Possible levels: https://github.com/pocoproject/poco/blob/develop/Foundation/include/Poco/Logger. h#L105 -->
<level>warning</level>
āĻāĻŋāĻā§ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻāĻŽāĻžāĻ¨ā§āĻĄ
ĐĐžŅĐēĐžĐģŅĐēŅ ĐžŅиĐŗиĐŊĐ°ĐģŅĐŊŅĐĩ ĐŋĐ°ĐēĐĩŅŅ ŅŅŅĐ°ĐŊОвĐēи ŅОйиŅĐ°ŅŅŅŅ ĐŋĐž Debian, ŅĐž Đ´ĐģŅ Đ´ŅŅĐŗиŅ
вĐĩŅŅиК Linux ĐŊĐĩОйŅ
ОдиĐŧĐž иŅĐŋĐžĐģŅСОваŅŅ ĐŋĐ°ĐēĐĩŅŅ ŅОйŅĐ°ĐŊĐŊŅĐĩ ĐēĐžĐŧĐŋĐ°ĐŊиĐĩĐš Altinity.
ĐĐžŅ ĐŋĐž ŅŅОК ŅŅŅĐģĐēĐĩ ĐĩŅŅŅ иĐŊŅŅŅŅĐēŅии Ņ ŅŅŅĐģĐēĐ°Đŧи ĐŊĐ° иŅ
ŅĐĩĐŋОСиŅĐžŅиК: https://www.altinity.com/blog/2017/12/18/logstash-with-clickhouse
sudo yum search clickhouse-server
sudo yum install clickhouse-server.noarch
1. ĐŋŅОвĐĩŅĐēĐ° ŅŅĐ°ŅŅŅĐ°
sudo systemctl status clickhouse-server
2. ĐžŅŅĐ°ĐŊОвĐēĐ° ŅĐĩŅвĐĩŅĐ°
sudo systemctl stop clickhouse-server
3. СаĐŋŅŅĐē ŅĐĩŅвĐĩŅĐ°
sudo systemctl start clickhouse-server
ĐĐ°ĐŋŅŅĐē Đ´ĐģŅ вŅĐŋĐžĐģĐŊĐĩĐŊиŅ СаĐŋŅĐžŅОв в ĐŧĐŊĐžĐŗĐžŅŅŅĐžŅĐŊĐžĐŧ ŅĐĩĐļиĐŧĐĩ (вŅĐŋĐžĐģĐŊĐĩĐŊиĐĩ ĐŋĐžŅĐģĐĩ СĐŊĐ°ĐēĐ° ";")
clickhouse-client --multiline
clickhouse-client --multiline --host 127.0.0.1 --password pa55w0rd
clickhouse-client --multiline --host 127.0.0.1 --port 9440 --secure --user default --password pa55w0rd
ĐĐģĐ°ĐŗиĐŊ ĐēĐģиĐēĐģĐ°ŅСа Đ´ĐģŅ ĐģĐžĐŗŅŅĐĩŅ в ŅĐģŅŅĐ°Đĩ ĐžŅийĐēи в ОдĐŊОК ŅŅŅĐžĐēĐĩ ŅĐžŅ
ŅĐ°ĐŊŅĐĩŅ вŅŅ ĐŋĐ°ŅĐēŅ в ŅĐ°ĐšĐģ /tmp/log_web_failed.json
ĐĐžĐļĐŊĐž вŅŅŅĐŊŅŅ иŅĐŋŅавиŅŅ ŅŅĐžŅ ŅĐ°ĐšĐģ и ĐŋĐžĐŋŅОйОваŅŅ СаĐģиŅŅ ĐĩĐŗĐž в ĐРвŅŅŅĐŊŅŅ:
clickhouse-client --host 127.0.0.1 --password password --query="INSERT INTO log_web FORMAT JSONEachRow" < /tmp/log_web_failed__fixed.json
sudo mv /etc/logstash/tmp/log_web_failed.json /etc/logstash/tmp/log_web_failed__fixed.json
sudo chown user_dev /etc/logstash/tmp/log_web_failed__fixed.json
sudo clickhouse-client --host 127.0.0.1 --password password --query="INSERT INTO log_web FORMAT JSONEachRow" < /etc/logstash/tmp/log_web_failed__fixed.json
sudo mv /etc/logstash/tmp/log_web_failed__fixed.json /etc/logstash/tmp/log_web_failed__fixed_.json
вŅŅ
Од иС ĐēĐžĐŧĐ°ĐŊĐ´ĐŊОК ŅŅŅĐžĐēи
quit;
## ĐĐ°ŅŅŅОКĐēĐ° TLS
https://www.altinity.com/blog/2019/3/5/clickhouse-networking-part-2
openssl s_client -connect log.domain.com:9440 < /dev/null
āĻ˛āĻāĻ¸ā§āĻā§āĻ¯āĻžāĻļ FileBeat āĻĨā§āĻā§ RabbitMQ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻāĻžāĻ° āĻ˛āĻ āĻāĻ°ā§āĻ¨
āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻ āĻĨā§āĻā§ RabbitMQ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻāĻ¸āĻž āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻžāĻ¨ā§ āĻĻā§āĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻā§:
- āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, RabbitMQ-āĻ¤ā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ FileBeat-āĻāĻ° āĻā§āĻ¨ā§ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻ¨ā§āĻāĨ¤ āĻāĻŦāĻ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž, āĻ¤āĻžāĻĻā§āĻ° āĻāĻŋāĻĨā§āĻŦā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻžāĻ° āĻāĻ°āĻž, āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻāĻžāĻĢāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ āĻāĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻžāĻ°āĻŖā§ āĻāĻŽāĻ°āĻž āĻāĻāĻŋ āĻŦāĻžāĻĄāĻŧāĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻžāĨ¤
- DMZ-āĻ āĻ˛āĻ āĻ¸āĻāĻā§āĻ°āĻšā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§, āĻ˛āĻāĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ° LogStash āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§āĨ¤
āĻ āĻ¤āĻāĻŦ, āĻāĻāĻŋ āĻāĻŽāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§āĻ˛āĻŋ DMZ āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¯ā§ āĻāĻāĻāĻ¨āĻā§ āĻāĻāĻ°āĻāĻŽ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻ˛ āĻ¸ā§āĻāĻŋāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
iis_w3c_logs__filebeat_rabbitmq.conf
input {
beats {
port => 5044
type => 'iis'
ssl => true
ssl_certificate_authorities => ["/etc/pki/tls/certs/app/ca.pem", "/etc/pki/tls/certs/app/ca-issuing.pem"]
ssl_certificate => "/etc/pki/tls/certs/app/queue.domain.com.cer"
ssl_key => "/etc/pki/tls/certs/app/queue.domain.com-pkcs8.key"
ssl_verify_mode => "peer"
}
}
output {
#stdout {codec => rubydebug}
rabbitmq {
host => "127.0.0.1"
port => 5672
exchange => "monitor.direct"
exchange_type => "direct"
key => "%{[fields][fld_app_name]}"
user => "q-writer"
password => "password"
ssl => false
}
}
āĻāĻ°āĻā§āĻļ āĻāĻŽāĻāĻŋāĻāĨ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻžāĻ°āĻŋ
āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ DMZ āĻ āĻ˛āĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻžāĻāĻ˛āĻŦāĻŋāĻ â LogStash-āĻāĻ° āĻāĻāĻā§āĻā§āĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ LogStash āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ DMZ āĻāĻ° āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ RabboitMQ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 4 āĻšāĻžāĻāĻžāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ°āĻžāĻāĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ āĻ°ā§āĻĨāĻžāĻ¤ā§ FileBeat āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ā§ˇ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻ āĻ¸āĻžāĻ°āĻŋāĻ¤ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ā§ āĻāĻžāĻ°āĻŖā§ āĻ¸āĻžāĻ°āĻŋāĻŦāĻĻā§āĻ§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻā§āĻˇāĻ¤āĻŋāĻ° āĻĻāĻŋāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻŋāĻ¤ āĻāĻ°āĻŦā§ āĻ¨āĻž: FileBeats āĻ¸āĻāĻ¯ā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻžāĻŦā§ āĻāĻŦāĻ āĻ āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§āĻāĻžāĻŦā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻ¸ā§āĻĨāĻāĻŋāĻ¤ āĻāĻ°āĻŦā§āĨ¤ āĻāĻŦāĻ LogStash āĻ¯ā§āĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻĨā§āĻā§ āĻĒāĻĄāĻŧā§ āĻ¸ā§āĻāĻŋāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĒāĻžāĻŦā§ āĻāĻŦāĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ā§ˇ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĄā§āĻāĻž, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ˛ā§āĻāĻž āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻ¸āĻžāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin declare exchange --vhost=/ name=monitor.direct type=direct sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin declare queue --vhost=/ name=web_log durable=true
sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin --vhost="/" declare binding source="monitor.direct" destination_type="queue" destination="web_log" routing_key="site1.domain.ru"
sudo /usr/local/bin/rabbitmqadmin/rabbitmqadmin --vhost="/" declare binding source="monitor.direct" destination_type="queue" destination="web_log" routing_key="site2.domain.ru"
āĻā§āĻ°āĻžāĻĢāĻ¨āĻžāĨ¤ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄ
āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ āĻĄā§āĻāĻž āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻĒāĻ¨āĻžāĻā§ Grafana 4.6+ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄā§āĻāĻžāĻ¸ā§āĻ°ā§āĻ¸ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĄā§āĻ¯āĻžāĻļāĻŦā§āĻ°ā§āĻĄā§ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻĻāĻā§āĻˇāĻ¤āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻŋāĻā§ āĻāĻŋāĻā§āĻāĻž āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋ, āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻžāĻ āĻ¯ā§ āĻĢāĻ°ā§āĻŽā§āĻ° āĻā§āĻĨāĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻļāĻ°ā§āĻ¤ āĻ¤ā§āĻ°āĻŋ āĻ¨āĻž āĻāĻ°āĻž ( uriStem = Âģ AND uriStem != Âģ )āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, ClickHouse āĻāĻāĻ°āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛āĻžāĻŽāĻāĻŋ āĻĒāĻĄāĻŧāĻŦā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§ āĻĒā§āĻ˛āĻžāĻāĻāĻ¨āĻāĻŋ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°ā§āĻāĻŋ ($valueIfEmpty āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§) āĻ¯āĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻŽāĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ 1 āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻāĻ˛āĻžāĻŽāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻ¨āĻž āĻāĻ°ā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ°āĻžāĻĢā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻĒā§āĻ°āĻļā§āĻ¨āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
$columns(response, count(*) c) from $table where $adhoc
and $valueIfEmpty($fld_app_name, 1, fld_app_name = '$fld_app_name')
and $valueIfEmpty($fld_app_module, 1, fld_app_module = '$fld_app_module') and $valueIfEmpty($fld_server_name, 1, fld_server_name = '$fld_server_name') and $valueIfEmpty($uriStem, 1, uriStem like '%$uriStem%')
and $valueIfEmpty($clientRealIP, 1, clientRealIP = '$clientRealIP')
āĻ¯āĻž āĻāĻ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛-āĻ āĻ āĻ¨ā§āĻŦāĻžāĻĻ āĻāĻ°ā§ (āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§ āĻāĻžāĻ˛āĻŋ āĻāĻāĻ°āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻŽāĻžāĻ¤ā§āĻ° 1 āĻ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§)
SELECT
t,
groupArray((response, c)) AS groupArr
FROM (
SELECT
(intDiv(toUInt32(logdatetime), 60) * 60) * 1000 AS t, response,
count(*) AS c FROM default.log_web
WHERE (logdate >= toDate(1565061982)) AND (logdatetime >= toDateTime(1565061982)) AND 1 AND (fld_app_name = 'site1.domain.ru') AND (fld_app_module = 'web') AND 1 AND 1 AND 1
GROUP BY
t, response
ORDER BY
t ASC,
response ASC
)
GROUP BY t ORDER BY t ASC
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻŦāĻžāĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§āĻ¤āĻāĻžāĻ°ā§ āĻāĻāĻ¨āĻž āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§āĨ¤ āĻāĻāĻž āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨ āĻāĻŋāĻ˛ āĻ¯ā§, āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§, āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻā§āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĨ¤ āĻ āĻŦāĻļā§āĻ¯āĻ, āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻāĻžāĻšāĻŋāĻĻāĻžāĻ° āĻ¸āĻžāĻĨā§ (āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ), āĻ¸ā§āĻāĻŋāĻŽāĻāĻŋ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻšāĻ¯āĻŧā§ āĻāĻ āĻŦā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒā§āĻ°āĻĨāĻŽ āĻāĻŽā§āĻĒā§āĻ°ā§āĻļāĻ¨ā§, āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž āĻā§āĻŦāĻ āĻāĻ¨āĻ¨ā§āĻĻāĻĻāĻžāĻ¯āĻŧāĻāĨ¤ āĻāĻāĻŋ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§ āĻĒāĻŖā§āĻ¯āĻāĻŋ "āĻŽāĻžāĻ¨ā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯" āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ˛āĻžāĻ¸ā§āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻ˛āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ°āĻ āĻĒāĻžāĻāĻ āĻĨā§āĻā§ āĻĻāĻļ āĻā§āĻŖ āĻāĻŽ āĻšāĻŦā§ āĻŦāĻ˛ā§ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻŽā§āĻļāĻŋāĻ¨ā§āĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻāĻāĻŋ āĻāĻŽ-āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻšā§āĻ¯āĻžāĻ, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻ˛āĻžāĻ¸ā§āĻāĻŋāĻ āĻ¸āĻžāĻ°ā§āĻā§ āĻ āĻ¨-āĻĄāĻŋāĻ¸ā§āĻ āĻĄā§āĻāĻž āĻāĻŽā§āĻĒā§āĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒāĻĻ āĻāĻ°āĻ āĻāĻŽāĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ˛āĻŋāĻāĻšāĻžāĻāĻ¸ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻāĻāĻŋ āĻāĻ°āĻ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ āĻšāĻŦā§āĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻā§āĻˇ āĻĨā§āĻā§ āĻā§āĻ¨ā§ āĻŦāĻŋāĻļā§āĻˇ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻ, āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§, āĻĄā§āĻāĻž āĻ˛ā§āĻĄ āĻāĻ°āĻž āĻāĻŦāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻļā§āĻāĻ°ā§āĻ¯āĻāĻ¨āĻ āĻāĻ¤āĻŋāĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻāĻ¨āĻ āĻŦā§āĻļāĻŋ āĻĄā§āĻāĻž āĻ¨ā§āĻ (āĻĒā§āĻ°āĻžāĻ¯āĻŧ 200 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ°ā§āĻāĻ°ā§āĻĄ), āĻ¤āĻŦā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻāĻŋ āĻ¨āĻŋāĻā§āĻ āĻĻā§āĻ°ā§āĻŦāĻ˛āĨ¤ āĻ˛āĻ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§ āĻāĻ āĻā§āĻ˛āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¨ā§āĻĄ-āĻā§-āĻāĻ¨ā§āĻĄ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻŋāĻāĻŋāĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻŽā§āĻļāĻŋāĻ¨ āĻ˛āĻžāĻ°ā§āĻ¨āĻŋāĻāĨ¤
āĻļā§āĻˇā§, āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻŦāĻ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻā§āĨ¤
ĐиĐŊŅŅŅ
- āĻŦāĻĄāĻŧ āĻŦā§āĻ¯āĻžāĻā§ āĻ°ā§āĻāĻ°ā§āĻĄ āĻ˛ā§āĻĄ āĻšāĻā§āĻā§āĨ¤ āĻāĻāĻĻāĻŋāĻā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯, āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ¨āĻ āĻŦāĻžāĻĢāĻžāĻ°āĻŋāĻ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻ āĻāĻžāĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸āĻšāĻ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻ¨āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻ¯ā§āĻā§āĻ¯āĨ¤ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻ¸ā§āĻāĻŋāĻŽ āĻ¸āĻšāĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ.
- āĻāĻŋāĻā§ āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦāĻž āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻŦāĻŋāĻ°āĻ¤āĻŋ. āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§ āĻāĻĒāĻā§āĻ°ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻā§āĻāĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°ā§ āĻāĻĻā§āĻŦā§āĻā§āĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ¯āĻŧā§ˇ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻžāĻĢāĻāĻž āĻā§āĻŦāĻŋāĻ˛ āĻāĻā§āĻāĻŋāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻžāĻĢāĻāĻž āĻĨā§āĻā§ āĻāĻā§āĻ¨ā§āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻā§āĻ°āĻžāĻšāĻāĻĻā§āĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻžāĻĄāĻŧāĻžāĻāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŋāĻĨā§āĻŦā§ āĻāĻ¸ā§āĻ¯ā§āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻžāĻ° āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻ āĻāĻā§āĻāĻŋāĻ¨āĻāĻŋ āĻāĻ¤ā§āĻĒāĻžāĻĻāĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§ āĻ¸āĻ¤āĻ°ā§āĻ āĻāĻāĻŋāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĒāĻžāĻļā§āĻ° āĻĻāĻŋāĻā§ āĻāĻāĻ¸ā§āĻŽāĻŋāĻ āĻ āĻā§āĻāĻāĻā§āĻāĻŋ āĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ°āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
ĐĐģŅŅŅ
- āĻŽāĻ¨ā§āĻĨāĻ° āĻāĻ°ā§ āĻ¨āĻžāĨ¤
- āĻ¸ā§āĻŦāĻ˛ā§āĻĒ āĻĒā§āĻ°āĻŦā§āĻļ āĻĒā§āĻ°āĻŦā§āĻļāĻĻā§āĻŦāĻžāĻ°
- āĻŽā§āĻā§āĻ¤ āĻā§āĻ¸.
- āĻĢā§āĻ°āĻŋ
- āĻ¸ā§āĻā§āĻ˛ āĻāĻžāĻ˛ āĻāĻ°ā§ (āĻŦāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻž/āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ)
- āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļāĻā§āĻ¤ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¸āĻĢā§āĻāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ°ā§āĻ° āĻ°ā§āĻāĻŋāĻ¸ā§āĻāĻžāĻ°ā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĨ¤
- Yandex āĻĨā§āĻā§ āĻ¸āĻ°āĻāĻžāĻ°ā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ.
āĻāĻ¤ā§āĻ¸: www.habr.com