ELK āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—āĨ¤ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž

āĻ…āĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻšā§āĻ° āĻ¸āĻ‚āĻ–ā§āĻ¯āĻ• āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ˛āĻ— āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻ¸āĻŽā§āĻŽā§āĻ–ā§€āĻ¨ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ‡āĻāĻ˛āĻ•ā§‡ āĻ¯āĻ¨ā§āĻ¤ā§āĻ° āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻŦā§‡āĻ›ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻāĻ‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻŋ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡ āĻŽāĻ¨ā§‹āĻ¨āĻŋāĻŦā§‡āĻļ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ‡ āĻ•āĻžāĻ°āĻŖā§‡ āĻ¯ā§‡ āĻĒāĻ°ā§āĻ¯āĻžāĻĒā§āĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§‡ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ āĻ‡āĻŽā§‡āĻœ āĻ¸āĻš, āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻšā§āĻ° āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤

āĻ†āĻŽāĻ°āĻž āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ¤āĻžāĻ›āĻžāĻĄāĻŧāĻž, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛-āĻ˛āĻŋāĻ–āĻŋāĻ¤ docker-compose.yml āĻ›āĻŋāĻ˛ āĻ¯āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ•ā§‹āĻ¨āĻ“ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ›āĻžāĻĄāĻŧāĻžāĻ‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ• āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¯ā§‡ āĻŦāĻŋāĻœāĻ¯āĻŧ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ•āĻžāĻ›āĻžāĻ•āĻžāĻ›āĻŋ āĻ›āĻŋāĻ˛, āĻāĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻŽāĻžāĻ¨āĻžāĻ¨āĻ¸āĻ‡ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋāĻ•ā§‡ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻŽā§‹āĻšāĻĄāĻŧ āĻĻā§‡āĻŦ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ‡āĨ¤

āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ˛āĻ— āĻ—ā§āĻ°āĻšāĻŖ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŸāĻŋāĻ‰āĻ¨ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻšā§‡āĻˇā§āĻŸāĻž āĻŦā§āĻ¯āĻžāĻŸ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻŽāĻ°āĻž āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ‰āĻĒāĻžāĻĻāĻžāĻ¨ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ¸āĻ‚āĻ¯ā§‹āĻ—āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻ¨āĨ¤

āĻ¤āĻžāĻšāĻ˛ā§‡ logstash āĻĻāĻŋāĻ¯āĻŧā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤

āĻĒāĻ°āĻŋāĻŦā§‡āĻļ, āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž, āĻāĻ•āĻŸāĻŋ āĻ§āĻžāĻ°āĻ• āĻŽāĻ§ā§āĻ¯ā§‡ Logstash āĻšāĻ˛āĻŽāĻžāĻ¨

āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ, āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ—ā§āĻ˛āĻŋ MacOS āĻāĻŦāĻ‚ āĻ‰āĻŦā§āĻ¨ā§āĻŸā§ 18.0.4 āĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ†āĻ¸āĻ˛ docker-compose.yml-āĻ āĻ¯ā§‡ logstash āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻ›āĻŋāĻ˛ āĻ¤āĻž āĻšāĻ˛ docker.elastic.co/logstash/logstash:6.3.2

āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤

logstash āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• docker-compose.yml āĻ˛āĻŋāĻ–ā§‡āĻ›āĻŋāĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻ›āĻŋāĻ˛, āĻ¤āĻŦā§‡ āĻ¸āĻ°ā§āĻŦā§‹āĻĒāĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻžāĻœ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĄāĻ•āĻžāĻ°-āĻ•āĻŽā§āĻĒā§‹āĻœ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ‚āĻ•ā§āĻˇā§‡āĻĒā§‡

āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĨā§‡āĻ•ā§‡ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§‚āĻĒ, logstash āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻŸāĻŋ *.conf āĻĢāĻžāĻ‡āĻ˛ āĻŦāĻž āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ pipelines.yml āĻĢāĻžāĻ‡āĻ˛ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¯āĻžāĻ° āĻĢāĻ˛ā§‡, , āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛ .conf āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻŦā§‡āĨ¤
āĻ†āĻŽāĻ°āĻž āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧ āĻĒāĻĨ āĻ§āĻ°āĻ˛āĻžāĻŽāĨ¤ āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ†āĻ°āĻ“ āĻŦāĻšā§āĻŽā§āĻ–ā§€ āĻāĻŦāĻ‚ āĻŽāĻžāĻĒāĻ¯ā§‹āĻ—ā§āĻ¯ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻ†āĻŽāĻ°āĻž pipelines.yml āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ .conf āĻĢāĻžāĻ‡āĻ˛ āĻ°āĻžāĻ–āĻŦāĨ¤

āĻ§āĻžāĻ°āĻ•āĻŸāĻŋāĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ†āĻ°ā§‡āĻ•āĻŸāĻŋ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - logstash.ymlāĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°āĻŋ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ—āĻ āĻ¨ āĻšāĻ˛:

ELK āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—āĨ¤ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ†āĻĒāĻžāĻ¤āĻ¤, āĻ†āĻŽāĻ°āĻž āĻ§āĻ°ā§‡ āĻ¨āĻŋāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ‡āĻ¨āĻĒā§āĻŸ āĻĄā§‡āĻŸāĻž āĻĒāĻžāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋ āĻĒā§‹āĻ°ā§āĻŸ 5046-āĻ āĻŸāĻŋāĻ¸āĻŋāĻĒāĻŋ, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ stdout āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦāĨ¤

āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ°āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ•āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ• āĻ•āĻžāĻœ āĻšāĻ˛ā§‹ āĻ˛āĻžā§āĻš āĻ•āĻ°āĻžāĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ docker-compose.yml āĻ†āĻ›ā§‡

version: '3'

networks:
  elk:

volumes:
  elasticsearch:
    driver: local

services:

  logstash:
    container_name: logstash_one_channel
    image: docker.elastic.co/logstash/logstash:6.3.2
    networks:
      	- elk
    ports:
      	- 5046:5046
    volumes:
      	- ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
	- ./config/pipelines:/usr/share/logstash/config/pipelines:ro

āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ?

  1. āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻāĻŦāĻ‚ āĻ­āĻ˛āĻŋāĻ‰āĻŽāĻ—ā§āĻ˛āĻŋ āĻŽā§‚āĻ˛ docker-compose.yml āĻĨā§‡āĻ•ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ (āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°ā§‹ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•āĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡) āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ¯ā§‡ āĻ¤āĻžāĻ°āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻŽāĻ—ā§āĻ°āĻŋāĻ• āĻ›āĻŦāĻŋāĻ•ā§‡ āĻŦā§āĻ¯āĻžāĻĒāĻ•āĻ­āĻžāĻŦā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤
  2. āĻ†āĻŽāĻ°āĻž docker.elastic.co/logstash/logstash:6.3.2 āĻšāĻŋāĻ¤ā§āĻ° āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž (āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž) āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ logstash_one_channel āĻ¨āĻžāĻŽ āĻĻāĻŋāĻ‡āĨ¤
  3. āĻ†āĻŽāĻ°āĻž āĻĒā§‹āĻ°ā§āĻŸ 5046 āĻ•āĻ¨āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡, āĻāĻ•āĻ‡ āĻ…āĻ­ā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§€āĻŖ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻĢāĻ°ā§‹āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ•āĻ°āĻ›āĻŋāĨ¤
  4. āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° ./config/pipelines.yml āĻĒāĻžāĻ‡āĻĒ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ•ā§‡ āĻĒāĻžāĻ¤ā§āĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ /usr/share/logstash/config/pipelines.yml āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻŽā§āĻ¯āĻžāĻĒ āĻ•āĻ°āĻŋ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ logstash āĻāĻŸāĻŋāĻ•ā§‡ āĻ¤ā§āĻ˛ā§‡ āĻ¨ā§‡āĻŦā§‡ āĻāĻŦāĻ‚ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ¤ā§āĻ˛āĻŦā§‡āĨ¤
  5. āĻ†āĻŽāĻ°āĻž ./config/pipelines āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ•ā§‡ āĻŽā§āĻ¯āĻžāĻĒ āĻ•āĻ°āĻŋ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻžāĻ‡āĻĒ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻ†āĻ›ā§‡, /usr/share/logstash/config/pipelines āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ¤ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§‹āĻ—ā§āĻ¯ āĻ•āĻ°ā§‡ āĻ¤ā§‹āĻ˛ā§‡āĨ¤

ELK āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—āĨ¤ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

piping.yml āĻĢāĻžāĻ‡āĻ˛

- pipeline.id: HABR
  pipeline.workers: 1
  pipeline.batch.size: 1
  path.config: "./config/pipelines/habr_pipeline.conf"

āĻāĻŸāĻŋ HABR āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻāĻŦāĻ‚ āĻāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻĒāĻĨ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡āĨ¤

āĻāĻŦāĻ‚ āĻ…āĻŦāĻļā§‡āĻˇā§‡ āĻĢāĻžāĻ‡āĻ˛ "./config/pipelines/habr_pipeline.conf"

input {
  tcp {
    port => "5046"
   }
  }
filter {
  mutate {
    add_field => [ "habra_field", "Hello Habr" ]
    }
  }
output {
  stdout {
      
    }
  }

āĻ†āĻŽāĻ°āĻž āĻ†āĻĒāĻžāĻ¤āĻ¤ āĻāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻ¯āĻŧ āĻ¯āĻžāĻŦ āĻ¨āĻž, āĻ†āĻŽāĻ°āĻž āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ:

docker-compose up

āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ?

āĻĒāĻžāĻ¤ā§āĻ° āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ†āĻŽāĻ°āĻž āĻāĻ° āĻ•āĻžāĻœ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ:

echo '13123123123123123123123213123213' | nc localhost 5046

āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡:

ELK āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ—āĨ¤ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ‡:

logstash_one_channel | [2019-04-29T11:28:59,790][ERROR][logstash.licensechecker.licensereader] āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻ˛āĻžāĻ‡āĻ¸ā§‡āĻ¨ā§āĻ¸ā§‡āĻ° āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ•ā§āĻˇāĻŽ {:message=>"Elasticsearch āĻĒā§ŒāĻāĻ›āĻžāĻ¨ā§‹ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž: [http://elasticsearch:9200/][Manticore ::āĻ°ā§‡āĻœā§‹āĻ˛āĻŋāĻ‰āĻļāĻ¨ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž]āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻš",...

logstash_one_channel | [2019-04-29T11:28:59,894][INFO ][logstash.pipeline ] āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ {:pipeline_id=>".monitoring-logstash", :thread=>"# Âģ}

logstash_one_channel | [2019-04-29T11:28:59,988][INFO [logstash.agent ] āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻšāĻ˛āĻ›ā§‡ {:count=>2, :running_pipelines=>[:HABR, :."monitoring-logstash"], :non_running_pipelines=>[ ]}
logstash_one_channel | [2019-04-29T11:29:00,015][ERROR][logstash.inputs.metrics ] X-Pack Logstash-āĻ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻž āĻ†āĻ›ā§‡ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ Elasticsearch-āĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ•āĻ¸āĻžāĻ°ā§āĻšā§‡ X-āĻĒā§āĻ¯āĻžāĻ• āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡.
logstash_one_channel | [2019-04-29T11:29:00,526][INFO [logstash.agent ] Logstash API āĻļā§‡āĻˇ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ {:port=>9600} āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡
logstash_one_channel | [2019-04-29T11:29:04,478][INFO [logstash.outputs.elasticsearch] āĻāĻ•āĻŸāĻŋ āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ•āĻ¸āĻžāĻ°ā§āĻš āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ {:healthcheck_url=>http://elasticsearch:9200/, :path=> "/"}
logstash_one_channel | [2019-04-29T11:29:04,487][WARN [logstash.outputs.elasticsearch] āĻŽā§ƒāĻ¤ ES āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĨāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ {:url=>"āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://elasticsearch:9200/][Manticore::ResolutionFail] āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻš"}
logstash_one_channel | [2019-04-29T11:29:04,704][INFO ][logstash.licensechecker.licensereader] āĻāĻ•āĻŸāĻŋ āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ•āĻ¸āĻžāĻ°ā§āĻš āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻžāĻœ āĻ•āĻ°āĻ›ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡ {:healthcheck_url=>http://elasticsearch:9200/, :path=> "/"}
logstash_one_channel | [2019-04-29T11:29:04,710][WARN [logstash.licensechecker.licensereader] āĻŽā§ƒāĻ¤ ES āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻĒā§āĻ¨āĻ°ā§āĻ¤ā§āĻĨāĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ {:url=>"āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://elasticsearch:9200/][Manticore::ResolutionFail] āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻš"}

āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ˛āĻ— āĻ¸āĻŦ āĻ¸āĻŽāĻ¯āĻŧ āĻ•ā§āĻ°āĻ˛ āĻ†āĻĒ.

āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻŦā§āĻœ āĻ°āĻ™ā§‡ āĻšāĻžāĻ‡āĻ˛āĻžāĻ‡āĻŸ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¯ā§‡ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻ¸āĻĢāĻ˛āĻ­āĻžāĻŦā§‡ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ˛āĻžāĻ˛ āĻ°āĻ™ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻŦāĻ‚ āĻšāĻ˛ā§āĻĻā§‡ āĻ¯ā§‹āĻ—āĻžāĻ¯ā§‹āĻ—ā§‡āĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŸāĻŋ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ•: 9200āĨ¤
āĻ‡āĻŽā§‡āĻœā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ logstash.conf-āĻ āĻ‡āĻ˛āĻžāĻ¸ā§āĻŸāĻŋāĻ• āĻ¸āĻžāĻ°ā§āĻšā§‡āĻ° āĻ‰āĻĒāĻ˛āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻšā§‡āĻ• āĻ•āĻ°āĻžāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻāĻŸāĻŋ āĻ˜āĻŸā§‡āĨ¤ āĻ¸āĻ°ā§āĻŦā§‹āĻĒāĻ°āĻŋ, logstash āĻ…āĻ¨ā§āĻŽāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻāĻŸāĻŋ Elk āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ•ā§‡āĻ° āĻ…āĻ‚āĻļ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŸāĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻ¨āĻ¯āĻŧ.

āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻšāĻ˛ XPACK_MONITORING_ENABLED āĻāĻ¨āĻ­āĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§‡āĻ¨ā§āĻŸ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ‡ āĻšā§‡āĻ•āĻŸāĻŋ āĻ¨āĻŋāĻˇā§āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻžāĨ¤

āĻ†āĻ¸ā§āĻ¨ docker-compose.yml āĻ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ āĻ†āĻŦāĻžāĻ° āĻšāĻžāĻ˛āĻžāĻ‡:

version: '3'

networks:
  elk:

volumes:
  elasticsearch:
    driver: local

services:

  logstash:
    container_name: logstash_one_channel
    image: docker.elastic.co/logstash/logstash:6.3.2
    networks:
      - elk
    environment:
      XPACK_MONITORING_ENABLED: "false"
    ports:
      - 5046:5046
   volumes:
      - ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
      - ./config/pipelines:/usr/share/logstash/config/pipelines:ro

āĻāĻ–āĻ¨, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡. āĻ§āĻžāĻ°āĻ•āĻŸāĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ¸āĻ‚āĻ˛āĻ—ā§āĻ¨ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻ†āĻŦāĻžāĻ° āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ:

echo '13123123123123123123123213123213' | nc localhost 5046

āĻāĻŦāĻ‚ āĻĻā§‡āĻ–ā§‹:

logstash_one_channel | {
logstash_one_channel |         "message" => "13123123123123123123123213123213",
logstash_one_channel |      "@timestamp" => 2019-04-29T11:43:44.582Z,
logstash_one_channel |        "@version" => "1",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |            "host" => "gateway",
logstash_one_channel |            "port" => 49418
logstash_one_channel | }

āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§āĻ¨

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻšāĻ˛ā§āĻ¨ āĻ†āĻĒāĻžāĻ¤āĻ¤ pipelines.yml āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ¨āĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•, āĻĻā§‡āĻ–āĻž āĻ¯āĻžāĻ• āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§€ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤

āĻ†āĻŽāĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ°ā§‡āĻļāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¨ā§€āĻ¤āĻŋāĻŸāĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŸāĻŋāĻ¤ā§‡ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻ–āĻžāĻ¨ā§‡
āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ­āĻžāĻˇāĻžāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻšāĻžāĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§(āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§āĻ¯ā§‹āĻ¯āĻŧāĻžāĻ°ā§€ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻžāĻ¨ā§‹, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻžāĻ¯āĻŧ āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡)āĨ¤

āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ— āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ°āĻŽāĻžāĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻ¯āĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ tcp āĻāĻ° āĻ•āĻžāĻœ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋāĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻ° āĻ•āĻŋ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡?

āĻšāĻžāĻ°ā§āĻŸāĻŦāĻŋāĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨

āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻœā§‡āĻ¨āĻžāĻ°ā§‡āĻŸ āĻ•āĻ°āĻžāĻ° āĻ¯ā§‡āĻŽāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻ†āĻ›ā§‡.
āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻšāĻžāĻ°ā§āĻŸāĻŦāĻŋāĻ¨ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

input {
  heartbeat {
    message => "HeartBeat!"
   }
  } 

āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻāĻ• āĻŽāĻŋāĻ¨āĻŋāĻŸā§‡ āĻāĻ•āĻŦāĻžāĻ° āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ

logstash_one_channel | {
logstash_one_channel |      "@timestamp" => 2019-04-29T13:52:04.567Z,
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |         "message" => "HeartBeat!",
logstash_one_channel |        "@version" => "1",
logstash_one_channel |            "host" => "a0667e5c57ec"
logstash_one_channel | }

āĻ†āĻŽāĻ°āĻž āĻ†āĻ°ā§‹ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤
āĻāĻ‡āĻ­āĻžāĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋ 10 āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻŦāĨ¤

input {
  heartbeat {
    message => "HeartBeat!"
    interval => 10
   }
  }

āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž

āĻ†āĻŽāĻ°āĻž āĻĢāĻžāĻ‡āĻ˛ āĻŽā§‹āĻĄ āĻ¤āĻžāĻ•āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡. āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¯ā§‡ āĻ•ā§‹āĻ¨āĻ“ āĻāĻœā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¨ā§‡āĻ‡, āĻ­āĻžāĻ˛, āĻ…āĻ¨ā§āĻ¤āĻ¤ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤

āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€, āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻŽā§‹āĻĄ tail -f āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻšāĻ“āĻ¯āĻŧāĻž āĻ‰āĻšāĻŋāĻ¤, i.e. āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻĒāĻĄāĻŧā§‡ āĻŦāĻž, āĻāĻšā§āĻ›āĻŋāĻ•āĻ­āĻžāĻŦā§‡, āĻĒā§āĻ°ā§‹ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻĒāĻĄāĻŧā§‡āĨ¤

āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ‡:

  1. āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ˛āĻ— āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ˛āĻžāĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤
  2. āĻ†āĻŽāĻ°āĻž āĻāĻŽāĻ¨ āĻĄā§‡āĻŸāĻž āĻĒā§‡āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯āĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ˛āĻ— āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ˛ā§‡āĻ–āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻĨāĻž āĻĨā§‡āĻ•ā§‡ āĻ•ā§€ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ¤āĻž āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽāĨ¤
  3. āĻ†āĻŽāĻ°āĻž āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻšāĻ˛ā§‡, āĻāĻŸāĻŋ āĻāĻ‡ āĻĄā§‡āĻŸāĻž āĻ†āĻ° āĻĒāĻžāĻŦā§‡ āĻ¨āĻžāĨ¤
  4. āĻ†āĻŽāĻ°āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡ āĻ¯ā§‡ āĻ¯āĻĻāĻŋ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ…āĻ•ā§āĻˇāĻŽ āĻ•āĻ°āĻž āĻĨāĻžāĻ•ā§‡ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ˛ā§‡āĻ–āĻž āĻšāĻ˛āĻ¤ā§‡ āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻāĻŸāĻŋ āĻšāĻžāĻ˛āĻžāĻŦ, āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻĄā§‡āĻŸāĻžāĻŸāĻŋ āĻĒāĻžāĻŦāĨ¤

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯, āĻĄāĻ•āĻžāĻ°-compose.yml-āĻ āĻ†āĻ°āĻ“ āĻāĻ•āĻŸāĻŋ āĻ˛āĻžāĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ•, āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻ°āĻžāĻ–āĻŋ āĻ¸ā§‡āĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻŸāĻŋ āĻ–ā§āĻ˛ā§āĻ¨āĨ¤

version: '3'

networks:
  elk:

volumes:
  elasticsearch:
    driver: local

services:

  logstash:
    container_name: logstash_one_channel
    image: docker.elastic.co/logstash/logstash:6.3.2
    networks:
      - elk
    environment:
      XPACK_MONITORING_ENABLED: "false"
    ports:
      - 5046:5046
   volumes:
      - ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
      - ./config/pipelines:/usr/share/logstash/config/pipelines:ro
      - ./logs:/usr/share/logstash/input

āĻāĻŦāĻ‚ habr_pipeline.conf āĻ āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ— āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°ā§āĻ¨

input {
  file {
    path => "/usr/share/logstash/input/*.log"
   }
  }

āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻ›āĻŋ:

docker-compose up

āĻ˛āĻ— āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ˛āĻŋāĻ–āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ:


echo '1' >> logs/number1.log

{
logstash_one_channel |            "host" => "ac2d4e3ef70f",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |      "@timestamp" => 2019-04-29T14:28:53.876Z,
logstash_one_channel |        "@version" => "1",
logstash_one_channel |         "message" => "1",
logstash_one_channel |            "path" => "/usr/share/logstash/input/number1.log"
logstash_one_channel | }

āĻšā§āĻ¯āĻžāĻ, āĻāĻŸāĻž āĻ•āĻžāĻœ āĻ•āĻ°ā§‡!

āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡, āĻ†āĻŽāĻ°āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻšā§āĻ›āĻŋ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻĒāĻžāĻĨ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻ¯ā§‹āĻ— āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚ āĻ­āĻŦāĻŋāĻˇā§āĻ¯āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ°ā§‡āĻ•āĻ°ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦāĨ¤

āĻ†āĻŦāĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:

echo '2' >> logs/number1.log

{
logstash_one_channel |            "host" => "ac2d4e3ef70f",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |      "@timestamp" => 2019-04-29T14:28:59.906Z,
logstash_one_channel |        "@version" => "1",
logstash_one_channel |         "message" => "2",
logstash_one_channel |            "path" => "/usr/share/logstash/input/number1.log"
logstash_one_channel | }

āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ…āĻ¨ā§āĻ¯ āĻĢāĻžāĻ‡āĻ˛ā§‡:

 echo '1' >> logs/number2.log

{
logstash_one_channel |            "host" => "ac2d4e3ef70f",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |      "@timestamp" => 2019-04-29T14:29:26.061Z,
logstash_one_channel |        "@version" => "1",
logstash_one_channel |         "message" => "1",
logstash_one_channel |            "path" => "/usr/share/logstash/input/number2.log"
logstash_one_channel | }

āĻĻāĻžāĻ°ā§āĻŖ! āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¤ā§‹āĻ˛āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒāĻĨāĻŸāĻŋ āĻ¸āĻ āĻŋāĻ•āĻ­āĻžāĻŦā§‡ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ āĻŋāĻ• āĻ†āĻ›ā§‡āĨ¤

āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻšāĻ˛ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ. āĻ¨ā§€āĻ°āĻŦāĻ¤āĻžāĨ¤ āĻ¸ā§‡āĻ—ā§āĻ˛ā§‹. āĻ†āĻŽāĻ°āĻž āĻ†āĻŦāĻžāĻ° āĻāĻ‡ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻŋ āĻ¨āĻž.

āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻšāĻ¸ā§€ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž.

āĻ†āĻŽāĻ°āĻž āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ°āĻžāĻ–āĻŋ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻŋ:

echo '3' >> logs/number2.log
echo '4' >> logs/number1.log

āĻ†āĻŦāĻžāĻ° āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻšāĻžāĻ˛āĻžāĻ¨ āĻāĻŦāĻ‚ āĻĻā§‡āĻ–ā§āĻ¨:

logstash_one_channel | {
logstash_one_channel |            "host" => "ac2d4e3ef70f",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |         "message" => "3",
logstash_one_channel |        "@version" => "1",
logstash_one_channel |            "path" => "/usr/share/logstash/input/number2.log",
logstash_one_channel |      "@timestamp" => 2019-04-29T14:48:50.589Z
logstash_one_channel | }
logstash_one_channel | {
logstash_one_channel |            "host" => "ac2d4e3ef70f",
logstash_one_channel |     "habra_field" => "Hello Habr",
logstash_one_channel |         "message" => "4",
logstash_one_channel |        "@version" => "1",
logstash_one_channel |            "path" => "/usr/share/logstash/input/number1.log",
logstash_one_channel |      "@timestamp" => 2019-04-29T14:48:50.856Z
logstash_one_channel | }

āĻšā§āĻ°āĻ°ā§‡! āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ¤ā§āĻ˛ā§‡ āĻ¨āĻŋāĻ˛āĻžāĻŽāĨ¤

āĻ¤āĻŦā§‡, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻ¤āĻ°ā§āĻ• āĻ•āĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°āĻŸāĻŋ āĻ¸āĻ°āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧ (āĻĄāĻ•āĻžāĻ° āĻ¸ā§āĻŸāĻĒ logstash_one_channel && docker rm logstash_one_channel), āĻ•āĻŋāĻ›ā§āĻ‡ āĻ¤ā§‹āĻ˛āĻž āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻŸāĻŋ āĻĒāĻĄāĻŧāĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ°ā§‡āĻ° āĻ­āĻŋāĻ¤āĻ°ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§āĻ•ā§āĻ°ā§āĻ¯āĻžāĻš āĻĨā§‡āĻ•ā§‡ āĻļā§āĻ°ā§ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛ āĻĒāĻĄāĻŧāĻž

āĻ§āĻ°āĻž āĻ¯āĻžāĻ• āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° logstash āĻšāĻžāĻ˛āĻžāĻšā§āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ˛āĻ— āĻ†āĻ›ā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ‡āĨ¤
āĻ†āĻŽāĻ°āĻž āĻ‰āĻĒāĻ°ā§‡ āĻ¯ā§‡ āĻ‡āĻ¨āĻĒā§āĻŸ āĻ…āĻ‚āĻļāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻšāĻžāĻ˛āĻžāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ›ā§āĻ‡ āĻĒāĻžāĻŦ āĻ¨āĻžāĨ¤ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļ āĻĻā§āĻŦāĻžāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻ‡āĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻšāĻŦā§‡āĨ¤

āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ˛āĻžāĻ‡āĻ¨ āĻŸāĻžāĻ¨āĻ¤ā§‡, āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ°āĻŋāĻ•ā§āĻ¤ āĻ˛āĻžāĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

input {
  file {
    start_position => "beginning"
    path => "/usr/share/logstash/input/*.log"
   }
  }

āĻ¤āĻžāĻ›āĻžāĻĄāĻŧāĻž, āĻāĻ•āĻŸāĻŋ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŸāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĒā§āĻ°āĻ­āĻžāĻŦāĻŋāĻ¤ āĻ•āĻ°ā§‡ āĻ¯āĻž logstash āĻāĻ–āĻ¨āĻ“ āĻĻā§‡āĻ–ā§‡āĻ¨āĻŋāĨ¤ āĻāĻ•āĻ‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ˛āĻ—āĻ¸ā§āĻŸā§āĻ¯āĻžāĻļā§‡āĻ° āĻĻā§ƒāĻļā§āĻ¯ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ›āĻŋāĻ˛, āĻāĻŸāĻŋ āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻŽāĻ¨ā§‡ āĻ°ā§‡āĻ–ā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ āĻāĻ–āĻ¨ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ°ā§‡āĻ•āĻ°ā§āĻĄ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°āĻŦā§‡āĨ¤

āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ— āĻ…āĻ§ā§āĻ¯āĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ•āĻ°āĻž āĻ¯āĻžāĻ•āĨ¤ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻ†āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻĒāĻžāĻ¤āĻ¤, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ†āĻ°āĻ“ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž-āĻ¨āĻŋāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸāĨ¤

āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻĄā§‡āĻŸāĻž āĻŸā§āĻ°āĻžāĻ¨ā§āĻ¸āĻĢāĻ°āĻŽā§‡āĻļāĻ¨

āĻ†āĻ¸ā§āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ, āĻ§āĻ°āĻž āĻ¯āĻžāĻ• āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ āĻĨā§‡āĻ•ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻ¤āĻĨā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ, āĻāĻŦāĻ‚ āĻ•āĻŋāĻ›ā§ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĨ¤ āĻ¤āĻžāĻ°āĻž āĻŸā§āĻ¯āĻžāĻ— āĻŽāĻ§ā§āĻ¯ā§‡ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āĻ¯. āĻ•āĻŋāĻ›ā§ āĻ¤āĻĨā§āĻ¯, āĻ…āĻ¨ā§āĻ¯āĻ°āĻž ERRORā§ˇ

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻ¤āĻžāĻĻā§‡āĻ° āĻ†āĻ˛āĻžāĻĻāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡. āĻ¸ā§‡āĻ—ā§āĻ˛ā§‹. āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻ¤āĻĨā§āĻ¯āĻŽā§‚āĻ˛āĻ• āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛āĻŋāĻ–āĻŋ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻŸāĻŋāĻ¤ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛āĻŋāĻ–āĻŋāĨ¤

āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ‡āĻ¨āĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ— āĻĨā§‡āĻ•ā§‡ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡ āĻ¯āĻžāĻ¨āĨ¤

āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻ†āĻ—āĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻŸāĻŋ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻŦ, āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻļ (āĻ•ā§€-āĻŽāĻžāĻ¨ āĻœā§‹āĻĄāĻŧāĻž) āĻĒāĻžāĻŦ, āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ¯ā§‡āĻŽāĻ¨ āĻļāĻ°ā§āĻ¤ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§€ āĻĒāĻžāĻ°ā§āĻ¸. āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡, āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋāĻ•ā§‡ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻšā§āĻ¯āĻžāĻ¨ā§‡āĻ˛ā§‡ āĻĒāĻžāĻ āĻžāĻŦāĨ¤

āĻ—ā§āĻ°ā§‹āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻĒāĻžāĻ ā§āĻ¯ āĻ˛āĻžāĻ‡āĻ¨ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŦāĻ‚ āĻ¤āĻžāĻĻā§‡āĻ° āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§‡āĻŸ āĻĒā§‡āĻ¤ā§‡, āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻ—ā§āĻ°ā§‹āĻ•āĨ¤

āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻŸāĻŋāĻ° āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻā§‡āĻ“āĻ¯āĻŧāĻžāĻ° āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ¨āĻž āĻ•āĻ°ā§‡āĻ‡ (āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ– āĻ•āĻ°āĻ›āĻŋ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨), āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻ¸āĻšāĻœ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡.

āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ‡āĻ¨āĻĒā§āĻŸ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻāĻ‡āĻ°āĻ•āĻŽ āĻ†āĻ›ā§‡:

1 āĻ¤āĻĨā§āĻ¯ āĻŦāĻžāĻ°ā§āĻ¤āĻž1
2 āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž2

āĻ¸ā§‡āĻ—ā§āĻ˛ā§‹. āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻĒā§āĻ°āĻĨāĻŽā§‡, āĻ¤āĻžāĻ°āĻĒāĻ° INFO/ERROR, āĻ¤āĻžāĻ°āĻĒāĻ° āĻ¸ā§āĻĒā§‡āĻ¸ āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻŋāĻ›ā§ āĻļāĻŦā§āĻĻāĨ¤
āĻ•āĻ āĻŋāĻ¨ āĻ¨āĻ¯āĻŧ, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ…āĻĒāĻžāĻ°ā§‡āĻļāĻ¨ āĻ¨ā§€āĻ¤āĻŋ āĻŦā§āĻāĻ¤ā§‡ āĻ¯āĻĨā§‡āĻˇā§āĻŸāĨ¤

āĻ¸ā§āĻ¤āĻ°āĻžāĻ‚, āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ° āĻŦāĻŋāĻ­āĻžāĻ—ā§‡, āĻ—ā§āĻ°ā§‹āĻ• āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻĒāĻžāĻ°ā§āĻ¸ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻāĻŸāĻŋ āĻāĻ‡ āĻŽāĻ¤ āĻĻā§‡āĻ–āĻžāĻŦā§‡:

filter {
  grok {
    match => { "message" => ["%{INT:message_id} %{LOGLEVEL:message_type} %{WORD:message_text}"] }
   }
  } 

āĻŽā§‚āĻ˛āĻ¤, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ…āĻ­āĻŋāĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĨ¤ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ āĻĒā§āĻ¯āĻžāĻŸāĻžāĻ°ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯ā§‡āĻŽāĻ¨ INT, LOGLEVEL, WORDāĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻĻāĻ°ā§āĻļāĻ¨, āĻāĻ–āĻžāĻ¨ā§‡ āĻĻā§‡āĻ–āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡. āĻāĻ–āĻžāĻ¨ā§‡

āĻāĻ–āĻ¨, āĻāĻ‡ āĻĢāĻŋāĻ˛ā§āĻŸāĻžāĻ°āĻŸāĻŋ āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ āĻ•āĻ°ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ āĻ¤āĻŋāĻ¨āĻŸāĻŋ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻšā§āĻ¯āĻžāĻļā§‡ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻŦā§‡: message_id, message_type, message_textāĨ¤

āĻāĻ—ā§āĻ˛āĻŋ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§‡āĨ¤

if āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ°āĻžāĻ‰āĻŸāĻŋāĻ‚ āĻ•āĻ°āĻž

āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŽāĻ¨ā§‡ āĻ†āĻ›ā§‡, āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻĻā§āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ°ā§€āĻŽā§‡ āĻŦāĻŋāĻ­āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¯āĻžāĻšā§āĻ›āĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ•āĻŋāĻ›ā§ - āĻ¯āĻž iNFO, āĻ†āĻŽāĻ°āĻž āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻĻā§‡āĻŦ āĻāĻŦāĻ‚ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻš, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°āĻŦāĨ¤

āĻ†āĻŽāĻ°āĻž āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ‡ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ? āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋāĻ° āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§‡āĻ¯āĻŧ - āĻ¸āĻ°ā§āĻŦā§‹āĻĒāĻ°āĻŋ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻĄāĻŋāĻ•ā§‡āĻŸā§‡āĻĄ message_type āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻŸāĻŋ āĻŽāĻžāĻ¨ INFO āĻāĻŦāĻ‚ ERROR āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤ āĻāĻŸāĻžāĻ° āĻ‰āĻĒāĻ°āĻ‡ āĻ†āĻŽāĻ°āĻž if āĻ¸ā§āĻŸā§‡āĻŸāĻŽā§‡āĻ¨ā§āĻŸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŦāĨ¤

if [message_type] == "ERROR" {
        # ЗдĐĩŅŅŒ вŅ‹Đ˛ĐžĐ´Đ¸Đŧ в Ņ„Đ°ĐšĐģ
       } else
     {
      # ЗдĐĩŅŅŒ вŅ‹Đ˛ĐžĐ´Đ¸Đŧ в stdout
    }

āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ° āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻ°āĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœā§‡āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻ‡ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ āĻ…āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛.

āĻāĻ–āĻ¨, āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡.

āĻ•āĻ¨āĻ¸ā§‹āĻ˛ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ, āĻāĻ–āĻžāĻ¨ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° - stdout {}

āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ - āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻ¨ā§āĻŸā§‡āĻ‡āĻ¨āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻšāĻžāĻ˛āĻžāĻšā§āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ¯ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻ˛āĻŋāĻ–āĻ›āĻŋ āĻ¯āĻžāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻŦāĻžāĻ‡āĻ°ā§‡ āĻĨā§‡āĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ•ā§āĻ¸ā§‡āĻ¸āĻ¯ā§‹āĻ—ā§āĻ¯ āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ‡ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻŸāĻŋ docker-compose.yml-āĻ āĻ–ā§āĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻŽā§‹āĻŸ:

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻŦāĻŋāĻ­āĻžāĻ—āĻŸāĻŋ āĻāĻ‡āĻ°āĻ•āĻŽ āĻĻā§‡āĻ–āĻžāĻšā§āĻ›ā§‡:


output {
  if [message_type] == "ERROR" {
    file {
          path => "/usr/share/logstash/output/test.log"
          codec => line { format => "custom format: %{message}"}
         }
    } else
     {stdout {
             }
     }
  }

āĻ†āĻ‰āĻŸāĻĒā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ docker-compose.yml āĻ āĻ†āĻ°āĻ“ āĻāĻ•āĻŸāĻŋ āĻ­āĻ˛āĻŋāĻ‰āĻŽ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

version: '3'

networks:
  elk:

volumes:
  elasticsearch:
    driver: local

services:

  logstash:
    container_name: logstash_one_channel
    image: docker.elastic.co/logstash/logstash:6.3.2
    networks:
      - elk
    environment:
      XPACK_MONITORING_ENABLED: "false"
    ports:
      - 5046:5046
   volumes:
      - ./config/pipelines.yml:/usr/share/logstash/config/pipelines.yml:ro
      - ./config/pipelines:/usr/share/logstash/config/pipelines:ro
      - ./logs:/usr/share/logstash/input
      - ./output:/usr/share/logstash/output

āĻ†āĻŽāĻ°āĻž āĻļā§āĻ°ā§ āĻ•āĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻŋ, āĻ†āĻŽāĻ°āĻž āĻĻā§āĻŸāĻŋ āĻ§āĻžāĻ°āĻžāĻ¯āĻŧ āĻŦāĻŋāĻ­āĻžāĻœāĻ¨ āĻĻā§‡āĻ–āĻŋāĨ¤

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨