рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder

рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder

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 рдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдг рдлрд╛рдЗрд▓ рд╣реЛ, рдЬреБрди рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕рдмрд╛рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдбрд╛рдЙрдирд▓реЛрдб рдЧрд░реНрди рдХрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреЗ (рддрд╕реНрдмрд┐рд░рд╣рд░реВрдорд╛)рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder

рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder
рдпреЛ рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд▓реЗрдЦ рд╣реЛ рдЬреБрди рдЕрдирдкреНрдпрд╛рдХ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рднрд┐рддреНрд░ рд╣рд╛рдореНрд░реЛ SplunkCloud рд░ рдЬрдбрд╛рдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рд░ рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВ рдЫрдиреН outputs.conf рд╣рд╛рдореНрд░реЛ рдЗрдирдкреБрдЯ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рд╕рд╛рдеред рдпреЛ рдлрд╛рдЗрд▓ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рд╣реБрдиреЗрдЫ рдЬрдм рд╕рдореНрдо рддрдкрд╛рдЗрдБ рддрдкрд╛рдЗрдБрдХреЛ Splunk рд╕реНрдерд╛рдкрдирд╛ рдкреБрди: рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реБрдиреНрди рд╡рд╛ рдпрджрд┐ рд╕реНрдерд╛рдкрдирд╛ рдЕрди-рдкреНрд░рд┐рдорд╛рдЗрд╕ рд╣реЛ рднрдиреЗ рдЗрдирдкреБрдЯ рдиреЛрдб рдердкреНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕рдХрд╛рд░рдг, рдпрд╕рд▓рд╛рдИ рдХрдиреНрдЯреЗрдирд░ рднрд┐рддреНрд░ рдердкреНрджрд╛ рдХреЗрд╣рд┐ рдЧрд▓рдд рдЫреИрдиред

рд░ рдЕрдиреНрддрд┐рдо рдХреБрд░рд╛ рдкреБрди: рд╕реБрд░реБ рд╣реБрдиреНрдЫред рд╣реЛ, рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╣рд╛рдореНрд░реЛ рдорд╛ inputs.conf рд╣рд╛рдореА рд▓рдЧрд╣рд░реВ рдердкреНрдЫреМрдВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ Splunk рдорд╛ рдкрдард╛рдЙрди рдЪрд╛рд╣рдиреНрдЫреМрдВред рдпреЛ рдлрд╛рдЗрд▓ рдЫрд╡рд┐рдорд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫреИрди рдпрджрд┐, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдЗрдБ рдХрдардкреБрддрд▓реА рдорд╛рд░реНрдлрдд рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рд╡рд┐рддрд░рдг рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдХреЗрд╡рд▓ рдХреБрд░рд╛ рдпреЛ рд╣реЛ рдХрд┐ рдлрд░реНрд╡рд╛рд░реНрдбрд░рд▓реЗ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рджреЗрдЦреНрдЫ рдЬрдм рдбреЗрдорди рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЕрдиреНрдпрдерд╛ рдпрд╕рд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ ./splunk рдкреБрди: рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рддрд┐рдиреАрд╣рд░реВ рдХрд╕реНрддреЛ рдкреНрд░рдХрд╛рд░рдХреЛ рдбрдХрд░ рддрдереНрдпрд╛рдЩреНрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рд╣реБрдиреН? рдмрд╛рдЯ Github рдорд╛ рдкреБрд░рд╛рдиреЛ рд╕рдорд╛рдзрд╛рди рдЫ outcoldman, рд╕реНрдХреНрд░рд┐рдкреНрдЯрд╣рд░реВ рддреНрдпрд╣рд╛рдБрдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рдерд┐рдпреЛ рд░ рд╣рд╛рд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдбрдХрд░ (ce-17. * рд░ Splunk (7. *) рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░рд┐рдпреЛред

рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛ рд╕рдВрдЧ, рддрдкрд╛рдЗрдБ рдирд┐рдореНрди рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ

рдбреНрдпрд╛рд╕рдмреЛрд░реНрдб: (рдХреЗрд╣реА рддрд╕реНрдмрд┐рд░рд╣рд░реВ)рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder

рдкреНрд░рдгрд╛рд▓реА рд▓рдЧ рдХрд▓реЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рдбрдХрд░рдорд╛ Splunk Universal Forwarder
рдбреНрдпрд╛рд╕рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рд▓рд┐рдЩреНрдХрдорд╛ рдЫред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рддреНрдпрд╣рд╛рдБ 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди