рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдХрд▓реЗрдХреНрдЯрд░ рдореНрд╣рдгреВрди рдбреЙрдХрд░рдордзреНрдпреЗ рд╕реНрдкреНрд▓рдВрдХ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдлреЙрд░рд╡рд░реНрдбрд░

рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдХрд▓реЗрдХреНрдЯрд░ рдореНрд╣рдгреВрди рдбреЙрдХрд░рдордзреНрдпреЗ рд╕реНрдкреНрд▓рдВрдХ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдлреЙрд░рд╡рд░реНрдбрд░

рд╕реНрдкреНрд▓рдВрдХ рд╣реЗ рдЕрдиреЗрдХ рдУрд│рдЦрдгреНрдпрд╛рдпреЛрдЧреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд▓реЙрдЧ рд╕рдВрдЧреНрд░рд╣ рдЖрдгрд┐ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрддреНрдкрд╛рджрдирд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рдЖрддрд╛рд╣реА, рдЬреЗрд╡реНрд╣рд╛ рд░рд╢рд┐рдпрд╛рдордзреНрдпреЗ рдпрд╛рдкреБрдвреЗ рд╡рд┐рдХреНрд░реА рдХреЗрд▓реА рдЬрд╛рдд рдирд╛рд╣реА, рддреЗрд╡реНрд╣рд╛ рдпрд╛ рдЙрддреНрдкрд╛рджрдирд╛рд╕рд╛рдареА рд╕реВрдЪрдирд╛/рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рддреЗ рди рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреЗ рд╣реЗ рдХрд╛рд░рдг рдирд╛рд╣реА.

рдЙрджреНрджрд┐рд╖реНрдЯ: рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рди рдмрджрд▓рддрд╛ рд╕реНрдкреНрд▓рдВрдХрдордзреАрд▓ рдбреЙрдХрд░ рдиреЛрдбреНрд╕рдордзреВрди рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдЧреЛрд│рд╛ рдХрд░рд╛

рдорд▓рд╛ рдЕрдзрд┐рдХреГрдд рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдиреЗ рд╕реБрд░реБрд╡рд╛рдд рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ, рдЬреА рдбреЙрдХрд░ рд╡рд╛рдкрд░рддрд╛рдирд╛ рдереЛрдбреА рд╡рд┐рдЪрд┐рддреНрд░ рджрд┐рд╕рддреЗ.
рдбреЙрдХрд░ рд╣рдмрд╢реА рджреБрд╡рд╛
рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдХрд╛рдп рдЖрд╣реЗ:

1. рдкреБрд▓реАрдо рдкреНрд░рддрд┐рдорд╛

$ docker pull splunk/universalforwarder:latest

2. рдЖрд╡рд╢реНрдпрдХ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рд╛

$ 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 тАФ рд╣реА рд╕реНрдкреНрд▓рдВрдХ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдлреЙрд░рд╡рд░реНрдбрд░рд╕рд╛рдареА рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓ рдлрд╛рдЗрд▓ рдЖрд╣реЗ, рдЬреА рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕рд╡рд░реВрди рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.

рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХреБрдареЗ рдХреНрд▓рд┐рдХ рдХрд░рд╛рд╡реЗ (рдЪрд┐рддреНрд░рд╛рдВрдордзреНрдпреЗ)рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдХрд▓реЗрдХреНрдЯрд░ рдореНрд╣рдгреВрди рдбреЙрдХрд░рдордзреНрдпреЗ рд╕реНрдкреНрд▓рдВрдХ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдлреЙрд░рд╡рд░реНрдбрд░

рд╕рд┐рд╕реНрдЯрдо рд▓реЙрдЧ рдХрд▓реЗрдХреНрдЯрд░ рдореНрд╣рдгреВрди рдбреЙрдХрд░рдордзреНрдпреЗ рд╕реНрдкреНрд▓рдВрдХ рдпреБрдирд┐рд╡реНрд╣рд░реНрд╕рд▓ рдлреЙрд░рд╡рд░реНрдбрд░
рд╣реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рд╕рдВрдЧреНрд░рд╣рдг рдЖрд╣реЗ рдЬреЗ рдЕрдирдкреЕрдХ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЖрдордЪреНрдпрд╛ рд╕реНрдкреНрд▓рдВрдХрдХреНрд▓рд╛рдЙрдбрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ рдЖрдгрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдЖрд╣реЗ outputs.conf рдЖрдордЪреНрдпрд╛ рдЗрдирдкреБрдЯ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдЪреНрдпрд╛ рд╕реВрдЪреАрд╕рд╣. рддреБрдореНрд╣реА рддреБрдордЪреА рд╕реНрдкреНрд▓рдВрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреБрдиреНрд╣рд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдкрд░реНрдпрдВрдд рдХрд┐рдВрд╡рд╛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдСрди-рдкреНрд░рд┐рдорд╛рдЗрд╕ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЗрдирдкреБрдЯ рдиреЛрдб рдЬреЛрдбреЗрдкрд░реНрдпрдВрдд рд╣реА рдлрд╛рдЗрд▓ рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реЗрд▓. рдореНрд╣рдгреВрди, рддреЗ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рдЖрдд рдЬреЛрдбрдгреНрдпрд╛рдд рдХрд╛рд╣реАрд╣реА рдЪреБрдХреАрдЪреЗ рдирд╛рд╣реА.

рдЖрдгрд┐ рд╢реЗрд╡рдЯрдЪреА рдЧреЛрд╖реНрдЯ рдореНрд╣рдгрдЬреЗ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ. рд╣реЛрдп, рдмрджрд▓ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓.

рдЖрдордЪреНрдпрд╛рдордзреНрдпреЗ inputs.conf рдЖрдореНрд╣реА рд╕реНрдкреНрд▓рдВрдХрд▓рд╛ рдкрд╛рдард╡реВ рдЗрдЪреНрдЫрд┐рдд рд▓реЙрдЧ рдЬреЛрдбрддреЛ. рд╣реА рдлрд╛рдИрд▓ рдкреНрд░рддрд┐рдореЗрдордзреНрдпреЗ рдЬреЛрдбрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЖрдкрдг рдХрдардкреБрддрд│реАрджреНрд╡рд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрдЪреЗ рд╡рд┐рддрд░рдг рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕. рдлрдХреНрдд рдПрдХ рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдлреЙрд░рд╡рд░реНрдбрд░ рдбрд┐рдорди рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рдХреЙрдиреНрдлрд┐рдЧрд╕ рдкрд╛рд╣рддреЛ, рдЕрдиреНрдпрдерд╛ рддреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓ ./splunk рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛.

рддреЗ рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ рдбреЙрдХрд░ рдЖрдХрдбреЗрд╡рд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗрдд? рдкрд╛рд╕реВрди Github рд╡рд░ рдПрдХ рдЬреБрдирд╛ рдЙрдкрд╛рдп рдЖрд╣реЗ outcoldman, рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рддрд┐рдереВрди рдШреЗрддрд▓реНрдпрд╛ рдЖрдгрд┐ рдбреЙрдХрд░ (ce-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
}

рдорд╛рдЭреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡реИрдпрдХреНрддрд┐рдХ рдШрдЯрдХрд╛рд╕рд╛рдареА, рдордЧ рддреЗ рдХрдВрдЯреЗрдирд░рдордзреАрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЕрд╕реЛ рдХрд┐рдВрд╡рд╛ рд╣реЛрд╕реНрдЯ рдорд╢реАрди, рдЖрдореНрд╣реА рд╕реНрд╡рддрдВрддреНрд░ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рд╡рд╛рдкрд░рддреЛ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдЬреЗрд╡реНрд╣рд╛ рдбреЗрдЯрд╛рдЪрд╛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рдВрдЪрдп рд╣реЛрддреЛ рддреЗрд╡реНрд╣рд╛ рд╢реЛрдз рдЧрддреАрд▓рд╛ рддреНрд░рд╛рд╕ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА. рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрдирд╛ рдирд╛рд╡ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╕рд╛рдзрд╛ рдирд┐рдпрдо рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ: _. рдореНрд╣рдгреВрди, рдХрдВрдЯреЗрдирд░ рд╕рд╛рд░реНрд╡рддреНрд░рд┐рдХ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА, рдбрд┐рдорди рд╕реНрд╡рддрдГ рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣реА рдмрджрд▓рддреЛ sed- рдкрд░реНрдпрд╛рд╡рд░рдгрд╛рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдЪреЗ рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб. рдкрд░реНрдпрд╛рд╡рд░рдг рдирд╛рд╡ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдЪрд▓рд╛рдВрдордзреВрди рдкрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рддреЗ. рдЧрдВрдордд рд╡рд╛рдЯрддреЗ.

рд╣реЗ рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡ рдбреЙрдХрд░ рдкреЕрд░рд╛рдореАрдЯрд░рдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдореБрд│реЗ рд╕реНрдкреНрд▓рдВрдХ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдд рдирд╛рд╣реА рд╣реЛрд╕реНрдЯрдирд╛рд╡. рддреЛ рдЕрдЬреВрдирд╣реА рдЬрд┐рджреНрджреАрдиреЗ рд╣реЛрд╕реНрдЯ рдлреАрд▓реНрдбрдордзреНрдпреЗ рддреНрдпрд╛рдЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪреНрдпрд╛ рдЖрдпрдбреАрд╕рд╣ рд▓реЙрдЧ рдкрд╛рдард╡реЗрд▓. рдПрдХ рдЙрдкрд╛рдп рдореНрд╣рдгреВрди, рдЖрдкрдг рдорд╛рдЙрдВрдЯ рдХрд░реВ рд╢рдХрддрд╛ / 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛