Splunk рдзреЗрд░реИ рдЪрд┐рдирд┐рдиреЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд▓рдЧ рд╕рдВрдЧреНрд░рд╣ рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрддреНрдкрд╛рджрдирд╣рд░реБ рдордзреНрдпреЗ рдПрдХ рд╣реЛред рдЕрд╣рд┐рд▓реЗ рдкрдирд┐, рдЬрдм рдмрд┐рдХреНрд░реА рд░реВрд╕рдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫреИрди, рдпреЛ рдпрд╕ рдЙрддреНрдкрд╛рджрдирдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджреЗрд╢рди/рдХрд╕рд░реА-рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рдХрд╛рд░рдг рд╣реЛрдЗрдиред
рдЙрджреНрджреЗрд╢реНрдп: рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рди рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реА рд╕реНрдкреНрд▓рдЩреНрдХрдорд╛ рдбрдХрд░ рдиреЛрдбрд╣рд░реВрдмрд╛рдЯ рдкреНрд░рдгрд╛рд▓реА рд▓рдЧрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рд╕рд╛рде рд╕реБрд░реВ рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ, рдЬреБрди рдбрдХрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдЕрд▓рд┐ рдЕрдиреМрдареЛ рджреЗрдЦрд┐рдиреНрдЫред
рд╣рд╛рдореАрд╕рдБрдЧ рдХреЗ рдЫ:
1. рдкреБрд▓рд┐рдо рдЫрд╡рд┐
$ docker pull splunk/universalforwarder:latest
реи. рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН
$ docker run -d -p 9997:9997 -e 'SPLUNK_START_ARGS=--accept-license' -e 'SPLUNK_PASSWORD=<password>' splunk/universalforwarder:latest
3. рд╣рд╛рдореА рдХрдиреНрдЯреЗрдирд░рдорд╛ рдЬрд╛рдиреНрдЫреМрдВ
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 *********
╨╜╤Г ╨╕ ╤В╨░╨║ ╨┤╨░╨╗╨╡╨╡...
рдорд╣рд╛рдиред рдЫрд╡рд┐рдорд╛ рдПрдХ рдХрд▓рд╛рдХреГрддрд┐ рдкрдирд┐ рд╕рдорд╛рд╡реЗрд╢ рдЫреИрдиред рддреНрдпреЛ рд╣реЛ, рддрдкрд╛рдИрд▓реЗ рд╕реБрд░реБ рдЧрд░реНрджрд╛ рд╣рд░реЗрдХ рдкрдЯрдХ рдмрд╛рдЗрдирд░реАрд╣рд░реВ, рдЕрдирдкреНрдпрд╛рдХ рд░ рдХрдиреНрдлрд┐рдЧрд░рдХреЛ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдордп рд▓рд╛рдЧреНрдиреЗрдЫред
рдбрдХрд░-рд╡реЗ рд░ рддреНрдпреЛ рд╕рдмреИрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ?
рд╣реИрди рдзрдиреНрдпрд╡рд╛рджред рд╣рд╛рдореА рдлрд░рдХ рдмрд╛рдЯреЛ рд▓рд┐рдиреНрдЫреМрдВред рдХреЗ рд╣реБрдиреНрдЫ рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдпреА рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВ рд╕рднрд╛рдХреЛ рдЪрд░рдгрдорд╛ рдЧрд░реНрдЫреМрдВ? рддреНрдпрд╕рдкрдЫрд┐ рдЬрд╛рдФрдВ!
рдзреЗрд░реИ рдврд┐рд▓реЛ рдирдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рддреБрд░реБрдиреНрддреИ рдЕрдиреНрддрд┐рдо рдЫрд╡рд┐ рджреЗрдЦрд╛рдЙрдиреЗрдЫреБ:
рдбрдХрд░рдлрд╛рдЗрд▓
# ╨в╤Г╤В ╤Г ╨║╨╛╨│╨╛ ╨║╨░╨║╨╕╨╡ ╨┐╤А╨╡╨┤╨┐╨╛╤З╤В╨╡╨╜╨╕╤П
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" ]
рддреНрдпрд╕реИрд▓реЗ рдХреЗ рд╕рдорд╛рд╡реЗрд╢ рдЫ
first_start.sh
#!/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:changeme
splunkclouduf.spl тАФ рдпреЛ Splunk Universal Forwarder рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдг рдлрд╛рдЗрд▓ рд╣реЛ, рдЬреБрди рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдХрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреЗ (рддрд╕реНрдмрд┐рд░рд╣рд░реВрдорд╛)
рдпреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд▓реЗрдЦ рд╣реЛ рдЬреБрди рдЕрдирдкреНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рднрд┐рддреНрд░ рд╣рд╛рдореНрд░реЛ SplunkCloud рд░ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рд░ рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВ рдЫрдиреН outputs.conf рд╣рд╛рдореНрд░реЛ рдЗрдирдкреБрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рд╕рд╛рдеред рдпреЛ рдлрд╛рдЗрд▓ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рд╣реБрдиреЗрдЫ рдЬрдм рд╕рдореНрдо рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ Splunk рд╕реНрдерд╛рдкрдирд╛ рдкреБрди: рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрди рд╡рд╛ рдпрджрд┐ рд╕реНрдерд╛рдкрдирд╛ рдЕрди-рдкреНрд░рд┐рдорд╛рдЗрд╕ рд╣реЛ рднрдиреЗ рдЗрдирдкреБрдЯ рдиреЛрдб рдердкреНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕рдХрд╛рд░рдг, рдпрд╕рд▓рд╛рдИ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдердкреНрджрд╛ рдХреЗрд╣рд┐ рдЧрд▓рдд рдЫреИрдиред
рд░ рдЕрдиреНрддрд┐рдо рдХреБрд░рд╛ рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫред рд╣реЛ, рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
рд╣рд╛рдореНрд░реЛ рдорд╛ inputs.conf рд╣рд╛рдореА рд▓рдЧрд╣рд░реВ рдердкреНрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ Splunk рдорд╛ рдкрдард╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдпреЛ рдлрд╛рдЗрд▓ рдЫрд╡рд┐рдорд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди рдпрджрд┐, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдХрдардкреБрддрд▓реА рдорд╛рд░реНрдлрдд рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╡рд▓ рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдлрд░реНрд╡рд╛рд░реНрдбрд░рд▓реЗ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рджреЗрдЦреНрдЫ рдЬрдм рдбреЗрдорди рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЕрдиреНрдпрдерд╛ рдпрд╕рд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ ./splunk рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН.
рддрд┐рдиреАрд╣рд░реВ рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рдбрдХрд░ рддрдереНрдпрд╛рдЩреНрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╣реБрдиреН? рдмрд╛рдЯ Github рдорд╛ рдкреБрд░рд╛рдиреЛ рд╕рдорд╛рдзрд╛рди рдЫ
рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рд╕рдВрдЧ, рддрдкрд╛рдЗрдБ рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдбреНрдпрд╛рд╕рдмреЛрд░реНрдб: (рдХреЗрд╣реА рддрд╕реНрдмрд┐рд░рд╣рд░реВ)
рдбреНрдпрд╛рд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рд▓рд┐рдЩреНрдХрдорд╛ рдЫред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддреНрдпрд╣рд╛рдБ 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
}
рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рд░ рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрд╕реНрдерд╛рдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдХрдиреНрдЯреЗрдирд░рдорд╛ рд╡рд╛ рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рдирдорд╛ рднрдПрдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрд╕реН, рд╣рд╛рдореА рдЫреБрдЯреНрдЯреИ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВред рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ, рдбрд╛рдЯрд╛рдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЪрдп рд╣реБрдБрджрд╛ рдЦреЛрдЬреА рдЧрддрд┐рдорд╛ рдЕрд╕рд░ рдкрд░реНрджреИрдиред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдпрдо рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╛рдо рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ: _ред рддреНрдпрд╕рдХрд╛рд░рдг, рдХрдиреНрдЯреЗрдирд░ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд╣реБрдирдХреЛ рд▓рд╛рдЧрд┐, рдбреЗрдорди рдЖрдлреИрдВ рд╕реБрд░реВ рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╣рд╛рдореА рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдЫреМрдВ sed- рд╡рд╛рддрд╛рд╡рд░рдгрдХреЛ рдирд╛рдордорд╛ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдбред рд╡рд╛рддрд╛рд╡рд░рдг рдирд╛рдо рдЪрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рдорд╛рд░реНрдлрдд рдкрд╛рд░рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╕реБрдирд┐рдиреНрдЫред
рдпреЛ рдкрдирд┐ рдзреНрдпрд╛рди рджрд┐рди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдХреЗрд╣рд┐ рдХрд╛рд░рдг рдХреЛ рд▓рд╛рдЧреА Splunk рдбрдХрд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдЫреИрди рд╣реЛрд╕реНрдЯрдирд╛рдоред рдЙрд╕рд▓реЗ рдЕрдЭреИ рдкрдирд┐ рд╣рдардкреВрд░реНрд╡рдХ рд╣реЛрд╕реНрдЯ рдлрд┐рд▓реНрдбрдорд╛ рдЖрдлреНрдиреЛ рдХрдиреНрдЯреЗрдирд░рдХреЛ рдЖрдИрдбреАрдХреЛ рд╕рд╛рде рд▓рдЧрд╣рд░реВ рдкрдард╛рдЙрдиреЗрдЫред рд╕рдорд╛рдзрд╛рдирдХреЛ рд░реВрдкрдорд╛, рддрдкрд╛рдИрдВ рдорд╛рдЙрдиреНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ / etc / hostname рд╣реЛрд╕реНрдЯ рдореЗрд╕рд┐рдирдмрд╛рдЯ рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдирд╛рдорд╣рд░реВ рдЬрд╕реНрддреИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рдЙрджрд╛рд╣рд░рдг 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