ืกืคึผืœื•ื ืง ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคืึธืจื•ื•ืขืจื“ืขืจ ืื™ืŸ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืกื™ืกื˜ืขื ืงืœืึธืฅ ืงืึทืœืขืงื˜ืขืจ

ืกืคึผืœื•ื ืง ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคืึธืจื•ื•ืขืจื“ืขืจ ืื™ืŸ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืกื™ืกื˜ืขื ืงืœืึธืฅ ืงืึทืœืขืงื˜ืขืจ

ืกืคึผืœื•ื ืง ืื™ื– ืื™ื™ื ืขืจ ืคื•ืŸ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืžืขืจืกื˜ ืจืขืงืึทื’ื ื™ื™ื–ืึทื‘ืึทืœ ื’ืขืฉืขืคื˜ ืœืึธื’ ื–ืึทืžืœื•ื ื’ ืื•ืŸ ืึทื ืึทืœื™ืกื™ืก ืคึผืจืึธื“ื•ืงื˜ืŸ. ืืคื™ืœื• ืื™ืฆื˜, ื•ื•ืขืŸ ืคืืจืงื•ื™ืคื•ื ื’ ืื™ื– ื ื™ื˜ ืžืขืจ ื’ืขืžืื›ื˜ ืื™ืŸ ืจื•ืกืœืึทื ื“, ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ืึท ืกื™ื‘ื” ื ื™ืฉื˜ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ื™ื ืกื˜ืจืึทืงืฉืึทื ื– / ื•ื•ื™-ืฆื• ืคึฟืึทืจ ื“ืขื ืคึผืจืึธื“ื•ืงื˜.

ืึทืจื‘ืขื˜: ืงืœื™ื™ึทื‘ืŸ ืกื™ืกื˜ืขื ืœืึธื’ืก ืคึฟื•ืŸ ื“ืึธืงืงืขืจ ื ืึธื•ื“ื– ืื™ืŸ ืกืคึผืœื•ื ืง ืึธืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื‘ืึทืœืขื‘ืึธืก ืžืึทืฉื™ืŸ

ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืฆื•ื’ืึทื ื’, ื•ื•ืึธืก ืงื•ืงื˜ ืึท ื‘ื™ืกืœ ืžืึธื“ื ืข ื•ื•ืขืŸ ื ื™ืฆืŸ ื“ืึธืงืขืจ.
ืœื™ื ืง ืฆื• ื“ืึธืงืงืขืจ ื›ืึทื‘
ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ:

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 *********

ะฝัƒ ะธ ั‚ะฐะบ ะดะฐะปะตะต...

ื’ืจื•ื™ืก. ื“ืขืจ ื‘ื™ืœื“ ื˜ื•ื˜ ื ื™ืฉื˜ ืืคื™ืœื• ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืึทืจื˜ื™ืคืึทืงื˜. ื“ืึธืก ืื™ื–, ื™ืขื“ืขืจ ืžืึธืœ ืื™ืจ ืึธื ื”ื™ื™ื‘ ืขืก ื•ื•ืขื˜ ื ืขืžืขืŸ ืฆื™ื™ื˜ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ื“ื™ ืึทืจืงื™ื™ื•ื• ืžื™ื˜ ื‘ื™ื ืึทืจื™ืขืก, ืึทื ืคึผืึทืง ืขืก ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืขืก.
ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื“ืึธืงืขืจ-ื•ื•ืขื’ ืื•ืŸ ืึทืœืข ื•ื•ืึธืก?

ื ื™ื™ืŸ ื ื“ืื ืง. ืžื™ืจ ื•ื•ืขืœืŸ ื ืขืžืขืŸ ืึทืŸ ืึทื ื“ืขืจ ื•ื•ืขื’. ื•ื•ืึธืก ืื•ื™ื‘ ืžื™ืจ ื“ื•ืจื›ืคื™ืจืŸ ืึทืœืข ื“ื™ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ื‘ื™ื ืข? ื“ืขืจื™ื‘ืขืจ ืœืึธื–ืŸ ืก ื’ื™ื™ืŸ!

ื›ึผื“ื™ ื ื™ืฉื˜ ืฆื• ืคืึทืจื”ืึทืœื˜ืŸ ืฆื• ืœืึทื ื’, ืื™ืš ื•ื•ืขื˜ ื•ื•ื™ื™ึทื–ืŸ ืื™ืจ ื“ื™ ืœืขืฆื˜ ื‘ื™ืœื“ ื’ืœื™ื™ืš:

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" ]

ืึทื–ื•ื™ ื•ื•ืึธืก ืื™ื– ืงืึทื ื˜ื™ื™ื ื“ ืื™ืŸ

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

ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืึธื ื”ื™ื™ื‘, Splunk ืคืจืขื’ื˜ ืื™ืจ ืฆื• ื’ืขื‘ืŸ ืขืก ืึท ืœืึธื’ื™ืŸ / ืคึผืึทืจืึธืœ, ืึธื‘ืขืจ ื“ื™ ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜ ื‘ืœื•ื™ื– ืฆื• ื•ื™ืกืคื™ืจืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ื™ื•ื•ืข ืงืึทืžืึทื ื“ื– ืคึฟืึทืจ ื“ืขื ื‘ืึทื–ื•ื ื“ืขืจ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’, ื“ืึธืก ืื™ื–, ื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืžื™ืจ ื ืึธืจ ื•ื•ื™ืœืŸ ืฆื• ืงืึทื˜ืขืจ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืึทื–ื•ื™ ืึทื– ืึทืœืฅ ืึทืจื‘ืขื˜ ืื•ืŸ ื“ื™ ืœืึธื’ืก ืœื•ื™ืคืŸ ื•ื•ื™ ืึท ื˜ื™ื™ึทืš. ืคื•ืŸ ืงื•ืจืก, ื“ืึธืก ืื™ื– ื”ืึทืจื“ืงืึธื“ืข, ืึธื‘ืขืจ ืื™ืš ื”ืึธื‘ืŸ ื ื™ื˜ ื’ืขืคึฟื•ื ืขืŸ ืงื™ื™ืŸ ืื ื“ืขืจืข ื•ื•ืขื’ืŸ.

ื•ื•ื™ื™ึทื˜ืขืจ ืœื•ื™ื˜ ื“ื™ ืฉืจื™ืคื˜ ืื™ื– ืขืงืกืึทืงื™ื•ื˜ืึทื“

/splunkforwarder/bin/splunk install app /splunkclouduf.spl -auth admin:changeme

splunkclouduf.spl - ื“ืึธืก ืื™ื– ืึท ืงืจืึทื“ืขื ื˜ืฉืึทืœื– ื˜ืขืงืข ืคึฟืึทืจ Splunk Universal Forwarder, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“ ืคึฟื•ืŸ ื“ื™ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“.

ื•ื•ื• ืฆื• ื’ื™ื˜ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ (ืื™ืŸ ื‘ื™ืœื“ืขืจ)ืกืคึผืœื•ื ืง ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคืึธืจื•ื•ืขืจื“ืขืจ ืื™ืŸ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืกื™ืกื˜ืขื ืงืœืึธืฅ ืงืึทืœืขืงื˜ืขืจ

ืกืคึผืœื•ื ืง ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคืึธืจื•ื•ืขืจื“ืขืจ ืื™ืŸ ื“ืึธืงืงืขืจ ื•ื•ื™ ืึท ืกื™ืกื˜ืขื ืงืœืึธืฅ ืงืึทืœืขืงื˜ืขืจ
ื“ืึธืก ืื™ื– ืึท ืจืขื’ื•ืœืขืจ ืึทืจืงื™ื™ื•ื• ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึทื ืคึผืึทืงื˜. ื™ืŸ ื–ืขื ืขืŸ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืื•ืŸ ืึท ืคึผืึทืจืึธืœ ืคึฟืึทืจ ืงืึทื ืขืงื˜ื™ื ื’ ืฆื• ืื•ื ื“ื–ืขืจ SplunkCloud ืื•ืŸ outputs.conf ืžื™ื˜ ืึท ืจืฉื™ืžื” ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื™ื ืกื˜ืึทื ืกื™ื–. ื“ืขืจ ื˜ืขืงืข ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื‘ื™ื– ืื™ืจ ืจื™ื™ื ืกื˜ืึทืœ ื“ื™ื™ืŸ ืกืคึผืœื•ื ืง ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืึธื“ืขืจ ืœื™ื™ื’ืŸ ืึทืŸ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื ืึธื“ืข ืื•ื™ื‘ ื“ื™ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’ ืื™ื– ืื•ื™ืฃ-ื”ืึทื ืึธื›ืข. ื“ืขืจื™ื‘ืขืจ, ืขืก ืื™ื– ื’ืึธืจื ื™ืฉื˜ ืคืึทืœืฉ ืžื™ื˜ ืึทื“ื™ื ื’ ืขืก ื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ.

ืื•ืŸ ื“ื™ ืœืขืฆื˜ืข ื–ืึทืš ืื™ื– ืจื™ืกื˜ืึทืจื˜. ื™ืึธ, ืฆื• ืฆื•ืœื™ื™ื’ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืจื™ืกื˜ืึทืจื˜ ืขืก.

ืื™ืŸ ืื•ื ื–ืขืจ inputs.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
}

ืื™ืŸ ืžื™ื™ืŸ ืคืึทืœ, ืคึฟืึทืจ ื™ืขื“ืขืจ ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ื™ืขื“ืขืจ ื™ื—ื™ื“ ืขื ื˜ื™ื˜ื™, ื–ื™ื™ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ ืึธื“ืขืจ ืึท ื‘ืึทืœืขื‘ืึธืก ืžืึทืฉื™ืŸ, ืžื™ืจ ื ื•ืฆืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืื™ื ื“ืขืงืก. ื“ืขื ื•ื•ืขื’, ื“ื™ ื–ื•ื›ืŸ ื’ื™ื›ืงื™ื™ึทื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืœื™ื™ึทื“ืŸ ื•ื•ืขืŸ ืขืก ืื™ื– ืึท ื‘ืึทื˜ื™ื™ื˜ื™ืง ืึทืงื™ื•ืžื™ืึทืœื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืึทื˜ืŸ. ื ืคึผืฉื•ื˜ ื”ืขืจืฉืŸ ืื™ื– ื’ืขื ื™ืฆื˜ ืฆื• ื ืึธืžืขืŸ ื™ื ื“ืขืงืกื™ื–: _. ื“ืขืจื™ื‘ืขืจ, ืื™ืŸ ืกื“ืจ ืคึฟืึทืจ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจ ืฆื• ื–ื™ื™ืŸ ื•ื ื™ื•ื•ืขืจืกืึทืœ, ืžื™ืจ ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ื“ืขืžืึธืŸ ื–ื™ืš ืื™ื™ื“ืขืจ ืœืึธื ื˜ืฉื™ื ื’ ื“ืึธืจืฉื˜-ื˜ื” ื•ื•ื™ืœื“ืงืึทืจื“ ืฆื• ื“ื™ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืกื•ื•ื™ื•ื•ืข. ื“ืขืจ ืกื‘ื™ื‘ื” ื ืึธืžืขืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœ ืื™ื– ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื“ื•ืจืš ืกื•ื•ื™ื•ื•ืข ื•ื•ืขืจื™ืึทื‘ืึทืœื–. ืกืึธื•ื ื“ืก ืžืึธื“ื ืข.

ืขืก ืื™ื– ืื•ื™ืš ื›ื“ืื™ ืฆื• ื‘ืืžืขืจืงืŸ ืึทื– ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื” ืกืคึผืœื•ื ืง ืื™ื– ื ื™ืฉื˜ ืึทืคืขืงื˜ืึทื“ ื“ื•ืจืš ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ื“ื™ ื“ืึธืงืงืขืจ ืคึผืึทืจืึทืžืขื˜ืขืจ 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

ื’ืึทื ืฅ

ื™ืึธ, ื˜ืึธืžืขืจ ื“ื™ ืœื™ื™ื–ื•ื ื’ ืื™ื– ื ื™ืฉื˜ ื™ื“ืขืึทืœ ืื•ืŸ ื–ื™ื›ืขืจ ื ื™ืฉื˜ ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคึฟืึทืจ ืึทืœืขืžืขืŸ, ื•ื•ื™ื™ึทืœ ืขืก ื–ืขื ืขืŸ ืคื™ืœืข "ื”ืึทืจื“ืงืึธื“ืข". ืึธื‘ืขืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืขืก, ืึทืœืขืžืขืŸ ืงืขื ืขืŸ ื‘ื•ื™ืขืŸ ื–ื™ื™ืขืจ ืื™ื™ื’ืŸ ื‘ื™ืœื“ ืื•ืŸ ืฉื˜ืขืœืŸ ืขืก ืื™ืŸ ื–ื™ื™ืขืจ ืคึผืจื™ื•ื•ืึทื˜ ืึทืจื˜ื™ืคืึทืงื˜ืึธืจื™, ืื•ื™ื‘, ื•ื•ื™ ืขืก ื›ืึทืคึผืึทื ื–, ืื™ืจ ื“ืึทืจืคึฟืŸ Splunk Forwarder ืื™ืŸ ื“ืึธืงืงืขืจ.

ืœื™ื ืงืก:

ืœื™ื™ื–ื•ื ื’ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ
ื ืœื™ื™ื–ื•ื ื’ ืคื•ืŸ ืึทื•ื˜ืงืึธื•ืœื“ืžืึทืŸ ื•ื•ืึธืก ื™ื ืกืคึผื™ื™ืขืจื“ ืื•ื ื“ื– ืฆื• ืจื™ื™ื•ื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™
ืคื•ืŸ. ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื•ื ื™ื•ื•ืขืจืกืึทืœ ืคืึธืจื•ื•ืขืจื“ืขืจ

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’