рд╕реНрдкреНрд▓рдВрдХ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкрд╣рдЪрд╛рдиреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдЕрдм рднреА, рдЬрдм рд░реВрд╕ рдореЗрдВ рдмрд┐рдХреНрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЗрд╕ рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢/рдХреИрд╕реЗ-рдХрд░реЗрдВ рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИред
рдХрд╛рд░реНрдп: рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рд╕реНрдкреНрд▓рдВрдХ рдореЗрдВ рдбреЙрдХрд░ рдиреЛрдбреНрд╕ рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдПрдХрддреНрд░ рдХрд░реЗрдВ
рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рдЬреЛ рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:
1. рдкреБрд▓рд┐рдо рдЫрд╡рд┐
$ docker pull splunk/universalforwarder:latest2. рдХрдВрдЯреЗрдирд░ рдХреЛ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
$ docker run -d -p 9997:9997 -e 'SPLUNK_START_ARGS=--accept-license' -e 'SPLUNK_PASSWORD=<password>' splunk/universalforwarder:latest3. рд╣рдо рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ
docker exec -it <container-id> /bin/bashрдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЬреНрдЮрд╛рдд рдкрддреЗ рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдФрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдкреНрд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
./splunk add forward-server <host name or ip address>:<listening port>
./splunk add monitor /var/log
./splunk restart
рдЗрдВрддрдЬрд╝рд╛рд░ред рдХреНрдпрд╛?
рд▓реЗрдХрд┐рди рдЖрд╢реНрдЪрд░реНрдп рдпрд╣реАрдВ рдЦрд╝рддреНрдо рдирд╣реАрдВ рд╣реЛрддрд╛. рдпрджрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЫрд╡рд┐ рд╕реЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
рдереЛрдбрд╝реА рдирд┐рд░рд╛рд╢рд╛
$ docker run -it -p 9997:9997 -e 'SPLUNK_START_ARGS=--accept-license' -e 'SPLUNK_PASSWORD=password' splunk/universalforwarder:latest
PLAY [Run default Splunk provisioning] *******************************************************************************************************************************************************************************************************
Tuesday 09 April 2019 13:40:38 +0000 (0:00:00.096) 0:00:00.096 *********
TASK [Gathering Facts] ***********************************************************************************************************************************************************************************************************************
ok: [localhost]
Tuesday 09 April 2019 13:40:39 +0000 (0:00:01.520) 0:00:01.616 *********
TASK [Get actual hostname] *******************************************************************************************************************************************************************************************************************
changed: [localhost]
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.599) 0:00:02.215 *********
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.054) 0:00:02.270 *********
TASK [set_fact] ******************************************************************************************************************************************************************************************************************************
ok: [localhost]
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.075) 0:00:02.346 *********
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.067) 0:00:02.413 *********
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.060) 0:00:02.473 *********
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.051) 0:00:02.525 *********
Tuesday 09 April 2019 13:40:40 +0000 (0:00:00.056) 0:00:02.582 *********
Tuesday 09 April 2019 13:40:41 +0000 (0:00:00.216) 0:00:02.798 *********
included: /opt/ansible/roles/splunk_common/tasks/change_splunk_directory_owner.yml for localhost
Tuesday 09 April 2019 13:40:41 +0000 (0:00:00.087) 0:00:02.886 *********
TASK [splunk_common : Update Splunk directory owner] *****************************************************************************************************************************************************************************************
ok: [localhost]
Tuesday 09 April 2019 13:40:41 +0000 (0:00:00.324) 0:00:03.210 *********
included: /opt/ansible/roles/splunk_common/tasks/get_facts.yml for localhost
Tuesday 09 April 2019 13:40:41 +0000 (0:00:00.094) 0:00:03.305 *********
╨╜╤Г ╨╕ ╤В╨░╨║ ╨┤╨░╨╗╨╡╨╡...
рдорд╣рд╛рдиред рдЫрд╡рд┐ рдореЗрдВ рдХреЛрдИ рдХрд▓рд╛рдХреГрддрд┐ рднреА рдирд╣реАрдВ рд╣реИ. рдпрд╛рдиреА, рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВрдЧреЗ рддреЛ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рд╕рд╛рде рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред
рдбреЙрдХрд░-рд╡реЗ рдФрд░ рдЙрд╕ рд╕рдм рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
рдЬреА рдирд╣реАрдВ, рдзрдиреНрдпрд╡рд╛рджред рд╣рдо рдЕрд▓рдЧ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдПрдВрдЧреЗ. рдпрджрд┐ рд╣рдо рдпреЗ рд╕рднреА рдСрдкрд░реЗрд╢рди рдЕрд╕реЗрдВрдмрд▓реА рдЪрд░рдг рдореЗрдВ рдХрд░реЗрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рддреЛ рдЪрд▓рддреЗ рд╣реИрдВ!
рдЕрдзрд┐рдХ рджреЗрд░ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:
Dockerfile
# ╨в╤Г╤В ╤Г ╨║╨╛╨│╨╛ ╨║╨░╨║╨╕╨╡ ╨┐╤А╨╡╨┤╨┐╨╛╤З╤В╨╡╨╜╨╕╤П
FROM centos:7
# ╨Ч╨░╨┤╨░╤С╨╝ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡, ╤З╤В╨╛╨▒╤Л ╨║╨░╨╢╨┤╤Л╨╣ ╤А╨░╨╖ ╨┐╤А╨╕ ╤Б╤В╨░╤А╤В╨╡ ╨╜╨╡ ╤Г╨║╨░╨╖╤Л╨▓╨░╤В╤М ╨╕╤Е
ENV SPLUNK_HOME /splunkforwarder
ENV SPLUNK_ROLE splunk_heavy_forwarder
ENV SPLUNK_PASSWORD changeme
ENV SPLUNK_START_ARGS --accept-license
# ╨б╤В╨░╨▓╨╕╨╝ ╨┐╨░╨║╨╡╤В╤Л
# wget - ╤З╤В╨╛╨▒╤Л ╤Б╨║╨░╤З╨░╤В╤М ╨░╤А╤В╨╡╤Д╨░╨║╤В╤Л
# expect - ╨┐╨╛╨╜╨░╨┤╨╛╨▒╨╕╤В╤Б╤П ╨┤╨╗╤П ╨┐╨╡╤А╨▓╨╛╨╜╨░╤З╨░╨╗╤М╨╜╨╛╨│╨╛ ╨╖╨░╨┐╤Г╤Б╨║╨░ Splunk ╨╜╨░ ╤Н╤В╨░╨┐╨╡ ╤Б╨▒╨╛╤А╨║╨╕
# jq - ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╡╤В╤Б╤П ╨▓ ╤Б╨║╤А╨╕╨┐╤В╨░╤Е, ╨║╨╛╤В╨╛╤А╤Л╨╡ ╤Б╨╛╨▒╨╕╤А╨░╤О╤В ╤Б╤В╨░╤В╨╕╤Б╤В╨╕╨║╤Г ╨┤╨╛╨║╨╡╤А╨░
RUN yum install -y epel-release
&& yum install -y wget expect jq
# ╨Ъ╨░╤З╨░╨╡╨╝, ╤А╨░╤Б╨┐╨░╨║╨╛╨▓╤Л╨▓╨░╨╡╨╝, ╤Г╨┤╨░╨╗╤П╨╡╨╝
RUN wget -O splunkforwarder-7.2.4-8a94541dcfac-Linux-x86_64.tgz 'https://www.splunk.com/bin/splunk/DownloadActivityServlet?architecture=x86_64&platform=linux&version=7.2.4&product=universalforwarder&filename=splunkforwarder-7.2.4-8a94541dcfac-Linux-x86_64.tgz&wget=true'
&& wget -O docker-18.09.3.tgz 'https://download.docker.com/linux/static/stable/x86_64/docker-18.09.3.tgz'
&& tar -xvf splunkforwarder-7.2.4-8a94541dcfac-Linux-x86_64.tgz
&& tar -xvf docker-18.09.3.tgz
&& rm -f splunkforwarder-7.2.4-8a94541dcfac-Linux-x86_64.tgz
&& rm -f docker-18.09.3.tgz
# ╨б shell ╤Б╨║╤А╨╕╨┐╤В╨░╨╝╨╕ ╨▓╤Б╤С ╨┐╨╛╨╜╤П╤В╨╜╨╛, ╨░ ╨▓╨╛╤В inputs.conf, splunkclouduf.spl ╨╕ first_start.sh ╨╜╤Г╨╢╨┤╨░╤О╤В╤Б╤П ╨▓ ╨┐╨╛╤П╤Б╨╜╨╡╨╜╨╕╨╕. ╨Ю╨▒ ╤Н╤В╨╛╨╝ ╤А╨░╤Б╤Б╨║╨░╨╢╤Г ╨┐╨╛╤Б╨╗╨╡ source ╤В╤Н╨│╨░.
COPY [ "inputs.conf", "docker-stats/props.conf", "/splunkforwarder/etc/system/local/" ]
COPY [ "docker-stats/docker_events.sh", "docker-stats/docker_inspect.sh", "docker-stats/docker_stats.sh", "docker-stats/docker_top.sh", "/splunkforwarder/bin/scripts/" ]
COPY splunkclouduf.spl /splunkclouduf.spl
COPY first_start.sh /splunkforwarder/bin/
# ╨Ф╨░╤С╨╝ ╨┐╤А╨░╨▓╨░ ╨╜╨░ ╨╕╤Б╨┐╨╛╨╗╨╜╨╡╨╜╨╕╨╡, ╨┤╨╛╨▒╨░╨▓╨╗╤П╨╡╨╝ ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤П ╨╕ ╨▓╤Л╨┐╨╛╨╗╨╜╤П╨╡╨╝ ╨┐╨╡╤А╨▓╨╛╨╜╨░╤З╨░╨╗╤М╨╜╤Г╤О ╨╜╨░╤Б╤В╤А╨╛╨╣╨║╤Г
RUN chmod +x /splunkforwarder/bin/scripts/*.sh
&& groupadd -r splunk
&& useradd -r -m -g splunk splunk
&& echo "%sudo ALL=NOPASSWD:ALL" >> /etc/sudoers
&& chown -R splunk:splunk $SPLUNK_HOME
&& /splunkforwarder/bin/first_start.sh
&& /splunkforwarder/bin/splunk install app /splunkclouduf.spl -auth admin:changeme
&& /splunkforwarder/bin/splunk restart
# ╨Ъ╨╛╨┐╨╕╤А╤Г╨╡╨╝ ╨╕╨╜╨╕╤В ╤Б╨║╤А╨╕╨┐╤В╤Л
COPY [ "init/entrypoint.sh", "init/checkstate.sh", "/sbin/" ]
# ╨Я╨╛ ╨╢╨╡╨╗╨░╨╜╨╕╤О. ╨Ъ╨╛╨╝╤Г ╨╜╤Г╨╢╨╜╨╛ ╨╗╨╛╨║╨░╨╗╤М╨╜╨╛ ╨╕╨╝╨╡╤В╤М ╨║╨╛╨╜╤Д╨╕╨│╨╕/╨╗╨╛╨│╨╕, ╨║╨╛╨╝╤Г ╨╜╨╡╤В.
VOLUME [ "/splunkforwarder/etc", "/splunkforwarder/var" ]
HEALTHCHECK --interval=30s --timeout=30s --start-period=3m --retries=5 CMD /sbin/checkstate.sh || exit 1
ENTRYPOINT [ "/sbin/entrypoint.sh" ]
CMD [ "start-service" ]рддреЛ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИ
рдлрд░реНрд╕реНрдЯ_рд╕реНрдЯрд╛рд░реНрдЯ.рд╢
#!/usr/bin/expect -f
set timeout -1
spawn /splunkforwarder/bin/splunk start --accept-license
expect "Please enter an administrator username: "
send -- "adminr"
expect "Please enter a new password: "
send -- "changemer"
expect "Please confirm new password: "
send -- "changemer"
expect eofрдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд╕реНрдкреНрд▓рдВрдХ рдЖрдкрд╕реЗ рдПрдХ рд▓реЙрдЧрд┐рди/рдкрд╛рд╕рд╡рд░реНрдб рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреЗрд╡рд▓ рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдпрд╛рдиреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░, рдкреНрд░рд╢рд╛рд╕рдирд┐рдХ рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдмрд╕ рдХрдВрдЯреЗрдирд░ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗ рдФрд░ рд▓реЙрдЧ рдирджреА рдХреА рддрд░рд╣ рдмрд╣реЗрдВред рдмреЗрд╢рдХ, рдпрд╣ рд╣рд╛рд░реНрдбрдХреЛрдб рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдЖрдЧреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
/splunkforwarder/bin/splunk install app /splunkclouduf.spl -auth admin:changemesplunkclouduf.spl тАФ рдпрд╣ рд╕реНрдкреНрд▓рдВрдХ рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдлрд╝реЙрд░рд╡рд░реНрдбрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЬрд┐рд╕реЗ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ)
рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдВрджрд░ рд╣рдорд╛рд░реЗ рд╕реНрдкреНрд▓рдВрдХрдХреНрд▓рд╛рдЙрдб рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдФрд░ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╣реИ рдЖрдЙрдЯрдкреБрдЯ.conf рд╣рдорд╛рд░реЗ рдЗрдирдкреБрдЯ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рдеред рдпрд╣ рдлрд╝рд╛рдЗрд▓ рддрдм рддрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд░рд╣реЗрдЧреА рдЬрдм рддрдХ рдЖрдк рдЕрдкрдиреЗ рд╕реНрдкреНрд▓рдВрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЛ рдкреБрдирдГ рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕реЗрд╕ рд╣реИ рддреЛ рдЗрдирдкреБрдЯ рдиреЛрдб рдирд╣реАрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИред
рдФрд░ рдЖрдЦрд┐рд░реА рдЪреАрдЬ рд╣реИ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред рд╣рд╛рдВ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдореЗрдВ рдЗрдирдкреБрдЯреНрд╕.рдХреЙрдиреНрдл рд╣рдо рд╡реЗ рд▓реЙрдЧ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕реНрдкреНрд▓рдВрдХ рдХреЛ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрдкреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЫрд╡рд┐ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдпрд╣ рд╣реИ рдХрд┐ рдбреЗрдореЙрди рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдлрд╛рд░рд╡рд░реНрдбрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЗрдЦрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА ./рд╕реНрдкреНрд▓рдВрдХ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ.
рд╡реЗ рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдбреЙрдХрд░ рдЖрдБрдХрдбрд╝реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ? Github рдкрд░ рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕рдорд╛рдзрд╛рди рдореМрдЬреВрдж рд╣реИ , рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╣рд╛рдВ рд╕реЗ рд▓реА рдЧрдИрдВ рдФрд░ рдбреЙрдХрд░ (рд╕реАрдИ-17.*) рдФрд░ рд╕реНрдкреНрд▓рдВрдХ (7.*) рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд рдХреА рдЧрдИрдВред
рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рд╕реЗ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдбреИрд╢рдмреЛрд░реНрдб: (рдХреБрдЫ рдЪрд┐рддреНрд░)
рдбреИрд╢ рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ 2 рдЪреБрдирд┐рдВрджрд╛ рдлрд╝реАрд▓реНрдб рд╣реИрдВ: 1 - рдЗрдВрдбреЗрдХреНрд╕ рдЪрдпрди (рдорд╛рд╕реНрдХ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬрд╛ рдЧрдпрд╛), рд╣реЛрд╕реНрдЯ/рдХрдВрдЯреЗрдирд░ рдЪрдпрдиред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдирд╛рдореЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреЛ рд╕рдВрднрд╡рддрдГ рдЗрдВрдбреЗрдХреНрд╕ рдорд╛рд╕реНрдХ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рд╕рдорд╛рд░реЛрд╣ рдХреА рдУрд░ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╢реБрд░реВ() ╨▓
Entrypoint.sh
start() {
trap teardown EXIT
if [ -z $SPLUNK_INDEX ]; then
echo "'SPLUNK_INDEX' env variable is empty or not defined. Should be 'dev' or 'prd'." >&2
exit 1
else
sed -e "s/@index@/$SPLUNK_INDEX/" -i ${SPLUNK_HOME}/etc/system/local/inputs.conf
fi
sed -e "s/@hostname@/$(cat /etc/hostname)/" -i ${SPLUNK_HOME}/etc/system/local/inputs.conf
sh -c "echo 'starting' > /tmp/splunk-container.state"
${SPLUNK_HOME}/bin/splunk start
watch_for_failure
}рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЗрдХрд╛рдИ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрдВрдЯреЗрдирд░ рдпрд╛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдореЗрдВ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реЛ, рд╣рдо рдПрдХ рдЕрд▓рдЧ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣, рдбреЗрдЯрд╛ рдХрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЪрдп рд╣реЛрдиреЗ рдкрд░ рдЦреЛрдЬ рдЧрддрд┐ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧреАред рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: _. рдЗрд╕рд▓рд┐рдП, рдХрдВрдЯреЗрдирд░ рдХреЛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдореЙрди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрд╕реЗ рдмрджрд▓ рджреЗрддреЗ рд╣реИрдВ рдкреНрдпрд╛рд╕-рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдирд╛рдо рдкрд░ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдбред рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рдо рдЪрд░ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдордЬрд╝рд╛рдХрд┐рдпрд╛ рд▓рдЧрддрд╛ рд╣реИред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕реНрдкреНрд▓рдВрдХ рдбреЙрдХрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдореЗрдЬрдмрд╛рдирдирд╛рдо. рд╡рд╣ рдЕрдм рднреА рдореЗрдЬрдмрд╛рди рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреА рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд▓реЙрдЧ рднреЗрдЬрдиреЗ рдХреА рдЬрд┐рдж рдХрд░реЗрдЧрд╛ред рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ / Etc / рд╣реЛрд╕реНрдЯ рдирд╛рдо рд╣реЛрд╕реНрдЯ рдорд╢реАрди рд╕реЗ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЗрдВрдбреЗрдХреНрд╕ рдирд╛рдореЛрдВ рдХреЗ рд╕рдорд╛рди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг docker-compose.yml
version: '2'
services:
splunk-forwarder:
image: "${IMAGE_REPO}/docker-stats-splunk-forwarder:${IMAGE_VERSION}"
environment:
SPLUNK_INDEX: ${ENVIRONMENT}
volumes:
- /etc/hostname:/etc/hostname:ro
- /var/log:/var/log
- /var/run/docker.sock:/var/run/docker.sock:roрд╕рдВрдкреВрд░реНрдг
рд╣рд╛рдВ, рд╢рд╛рдпрдж рд╕рдорд╛рдзрд╛рди рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ "рдореБрд╢реНрдХрд┐рд▓ рдХреЛрдб". рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рд░ рдХреЛрдИ рдЕрдкрдиреА рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдирд┐рдЬреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реИ, рдпрджрд┐, рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдбреЙрдХрд░ рдореЗрдВ рд╕реНрдкреНрд▓рдВрдХ рдлрд╝реЙрд░рд╡рд░реНрдбрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдХрдбрд╝рд┐рдпрд╛рдБ:
рд╕реНрд░реЛрдд: www.habr.com
