рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрдирд╛рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдмрд┐рдпрди / GNU рд▓рд┐рдирдХреНрд╕ рдкрд░, рдпреЗ рдбрд┐рдмреНрдпреВрд▓реНрдб рдФрд░ dpkg рд╣реИрдВред Red Hat Linux рдкрд░, rpmbuild рдФрд░ rpmред
рдЕрдХреНрд╕рд░ рд╣рдореЗрдВ рдЦреБрдж рд╣реА рдкреИрдХреЗрдЬ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдкрдбрд╝рддреЗ рд╣реИрдВред
рд╡рд┐рддрд░рдг рдореЗрдВ рдкреИрдХреЗрдЬ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдХреЗ, рдореЗрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдЦрд░рд╛рдм рд░реВрдк рд╣реИред
рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ, рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓реЗрдЦрдХ рдиреЗ рдореЗрдХрдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рд╣реИ, рдЖрдк рдЪреЗрдХ рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд▓реЗрдЦрдХ рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рдЕрдкрд▓реЛрдб рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╛ рд╣рдо рдЕрдкрдиреЗ рдШреБрдЯрдиреЛрдВ рдкрд░ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд / рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХреЗрдВред
рдПрдлрдкреАрдПрдо рдирд╛рдордХ рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред
рдЗрд╕рдХреА рдпреЛрдЧреНрдпрддрд╛ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдг рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдкреИрдХреЗрдЬ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдЕрдм рд╕рдорд░реНрдерд┐рдд:
- рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рдкрд╣рд▓реА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд░рдиреЗрд╡рд╛рд▓реА
- рдЖрд░рдкреАрдПрдо
- рд╕реЛрд▓рд╛рд░рд┐рд╕
- рд░рд╛рд▓
- рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛
- Mac OS X .pkg рдлрд╝рд╛рдЗрд▓реЗрдВ (osxpkg)
рдбреЗрдмрд┐рдпрди рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ рдкрд░ fpm рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдХреБрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛:
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдбреЗрдмрд┐рдпрди / GNU рд▓рд┐рдирдХреНрд╕ рдФрд░ рд░реЗрдб рд╣реИрдЯ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП
рд▓реЙрдЧрд╕реНрдЯреИрд╢ рдкреИрдХреЗрдЬ рдХреЛ
рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ ред
рдПрдХ рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛, рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╛рдЗрд▓ рдФрд░ рдореЗрдЯрд╛-рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
$ mkdir logstash && cd logstash && touch build.sh && chmod +x build.sh && vim build.sh
рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
рд▓реЙрдЧрд╕реНрдЯреИрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
$ mkdir -p etc/logstash && vim etc/logstash/syslog.conf
рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ:
рдЖрджрд┐ / рд▓реЙрдЧрд╕реНрдЯреИрд╢ / syslog.conf input { file { type => "syslog_file" exclude => [ "logstash.log*" ] path => [ "/var/log/messages", "/var/log/syslog", "/var/log/*.log" ] } } filter { grok { type => "syslog_relay" pattern => [ "^<[1-9]\d{0,2}>%{SPACE}%{GREEDYDATA:message_remainder}" ] add_tag => "got_syslog_pri" add_field => [ "syslog_raw_message", "%{@message}" ] } syslog_pri { type => "syslog_relay" tags => [ "got_syslog_pri" ] } mutate { type => "syslog_relay" tags => [ "got_syslog_pri" ] replace => [ "@message", "%{message_remainder}" ] remove => [ "message_remainder" ] remove_tag => "got_syslog_pri" } grok { type => "syslog_relay" pattern => [ "^%{SYSLOGTIMESTAMP:syslog_timestamp}%{SPACE}%{GREEDYDATA:message_remainder}" ] add_tag => "got_syslog_timestamp" add_field => [ "received_at", "%{@timestamp}" ] } date { type => "syslog_relay" tags => [ "got_syslog_timestamp" ]
рдЕрдЧрд▓рд╛, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ рдЬрд┐рд╕реЗ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
$ cat > preinstall << END
рдЕрдм рдмрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ:
рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ, рд╣рдореЗрдВ рдЖрд░рдкреАрдПрдо рдФрд░ рдбреАрдм рдкреИрдХреЗрдЬ рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдбреЗрдмрд┐рдпрди рдФрд░ рд░реЗрдб рд╣реИрдЯ рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рд╡рд░реНрддрдорд╛рди рдорд╢реАрди рдкрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ:
рдирд┐рд╖реНрдХрд░реНрд╖
рдХреЗрд╡рд▓ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдореЗрдВ, рдЖрдк рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рддрд░рдг рдФрд░ OS рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдХреЗрдЬ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕реА рдЕрджреНрднреБрдд рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦрдХ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЙрд╕реЗ рдЙрддрдирд╛ рдЙрдкрдпреЛрдЧреА рдкрд╛рдПрдЧрд╛ рдЬрд┐рддрдирд╛ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВред