เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเต‹เด—เต เด•เดณเด•เตเดŸเดฑเดพเดฏเดฟ เดกเต‹เด•เตเด•เดฑเดฟเดฒเต† เดธเตเดชเตเดฒเด™เตเด•เต เดฏเต‚เดฃเดฟเดตเต‡เดดเตเดธเตฝ เดซเต‹เตผเดตเต‡เดกเตผ

เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเต‹เด—เต เด•เดณเด•เตเดŸเดฑเดพเดฏเดฟ เดกเต‹เด•เตเด•เดฑเดฟเดฒเต† เดธเตเดชเตเดฒเด™เตเด•เต เดฏเต‚เดฃเดฟเดตเต‡เดดเตเดธเตฝ เดซเต‹เตผเดตเต‡เดกเตผ

เดเดฑเตเดฑเดตเตเด‚ เดคเดฟเดฐเดฟเดšเตเดšเดฑเดฟเดฏเดพเดตเตเดจเตเดจ เดตเดพเดฃเดฟเดœเตเดฏ เดฒเต‹เด—เต เดถเต‡เด–เดฐเดฃเดตเตเด‚ เดตเดฟเดถเด•เดฒเดจ เด‰เตฝเดชเตเดชเดจเตเดจเด™เตเด™เดณเตเด‚ เด’เดจเตเดจเดพเดฃเต เดธเตเดชเตเดฒเด™เตเด•เต. เด‡เดชเตเดชเต‹เตพ เดชเต‹เดฒเตเด‚, เดฑเดทเตเดฏเดฏเดฟเตฝ เดตเดฟเตฝเดชเตเดชเดจ เดจเดŸเด•เตเด•เดพเดคเตเดคเดชเตเดชเต‹เตพ, เดˆ เด‰เตฝเดชเตเดชเดจเตเดจเดคเตเดคเดฟเดจเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ/เดŽเด™เตเด™เดจเต†-เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดฃเด‚ เดŽเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เด’เดฐเต เด•เดพเดฐเดฃเดฎเดฒเตเดฒ.

เดฒเด•เตเดทเตเดฏเด‚: เดนเต‹เดธเตเดฑเตเดฑเต เดฎเต†เดทเต€เตป เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดฎเดพเดฑเตเดฑเดพเดคเต† เดธเตเดชเตเดฒเด™เตเด•เดฟเดฒเต† เดกเต‹เด•เตเด•เตผ เดจเต‹เดกเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเต‹เด—เตเด•เตพ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเด•

เดกเต‹เด•เตเด•เตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เด…เตฝเดชเตเดชเด‚ เดตเดฟเดšเดฟเดคเตเดฐเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจ เด”เดฆเตเดฏเต‹เด—เดฟเด• เดธเดฎเต€เดชเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.
เดกเต‹เด•เตเด•เตผ เดนเดฌเตเดฌเดฟเดฒเต‡เด•เตเด•เตเดณเตเดณ เดฒเดฟเด™เตเด•เต
เดจเดฎเตเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เด‰เดณเตเดณเดคเต:

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

เด†เดฆเตเดฏ เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ, เดธเตเดชเตเดฒเด™เตเด•เต เดจเดฟเด™เตเด™เดณเต‹เดŸเต เด’เดฐเต เดฒเต‹เด—เดฟเตป/เดชเดพเดธเตเดตเต‡เดกเต เดจเตฝเด•เดพเตป เด†เดตเดถเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เดˆ เดกเดพเดฑเตเดฑ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดฎเดพเดคเตเดฐเด‚ เด† เดชเตเดฐเดคเตเดฏเต‡เด• เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเดจเดพเดฏเดฟ เด…เดกเตเดฎเดฟเดจเดฟเดธเตเดŸเตเดฐเต‡เดฑเตเดฑเต€เดตเต เด•เดฎเดพเตปเดกเตเด•เตพ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป, เด…เดคเดพเดฏเดคเต เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ. เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เดฃเตเดŸเต†เดฏเตเดจเตผ เดตเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เด…เด™เตเด™เดจเต† เดŽเดฒเตเดฒเดพเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฒเต‹เด—เตเด•เตพ เด’เดฐเต เดจเดฆเดฟ เดชเต‹เดฒเต† เด’เดดเตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เด‡เดคเต เดนเดพเตผเดกเตโ€Œเด•เต‹เดกเดพเดฃเต, เดชเด•เตเดทเต‡ เดžเดพเตป เดฎเดฑเตเดฑเต เดตเดดเดฟเด•เดณเตŠเดจเตเดจเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ.

เดชเดฟเดจเตเดจเต€เดŸเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเตเดจเตเดจเต

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

splunkclouduf.spl โ€” เด‡เดคเต เดธเตเดชเตเดฒเด™เตเด•เต เดฏเต‚เดฃเดฟเดตเต‡เดดเตเดธเตฝ เดซเต‹เตผเดตเต‡เดกเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เด’เดฐเต เด•เตเดฐเต†เดกเตปเดทเตเดฏเตฝ เดซเดฏเดฒเดพเดฃเต, เด‡เดคเต เดตเต†เดฌเต เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเด‚.

เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดŽเดตเดฟเดŸเต† เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเดฃเด‚ (เดšเดฟเดคเตเดฐเด™เตเด™เดณเดฟเตฝ)เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเต‹เด—เต เด•เดณเด•เตเดŸเดฑเดพเดฏเดฟ เดกเต‹เด•เตเด•เดฑเดฟเดฒเต† เดธเตเดชเตเดฒเด™เตเด•เต เดฏเต‚เดฃเดฟเดตเต‡เดดเตเดธเตฝ เดซเต‹เตผเดตเต‡เดกเตผ

เด’เดฐเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฒเต‹เด—เต เด•เดณเด•เตเดŸเดฑเดพเดฏเดฟ เดกเต‹เด•เตเด•เดฑเดฟเดฒเต† เดธเตเดชเตเดฒเด™เตเด•เต เดฏเต‚เดฃเดฟเดตเต‡เดดเตเดธเตฝ เดซเต‹เตผเดตเต‡เดกเตผ
เด‡เดคเต เด…เตบเดชเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเดพเดตเตเดจเตเดจ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เด†เตผเด•เตเด•เตˆเดตเดพเดฃเต. เด…เดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดžเด™เตเด™เดณเตเดŸเต† SplunkCloud-เดฒเต‡เด•เตเด•เต เด•เดฃเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเตผเดŸเตเดŸเดฟเดซเดฟเด•เตเด•เดฑเตเดฑเตเด•เดณเตเด‚ เดชเดพเดธเตโ€Œเดตเต‡เดกเตเด‚ เด‰เดฃเตเดŸเต outputs.conf เดžเด™เตเด™เดณเตเดŸเต† เด‡เตปเดชเตเดŸเตเดŸเต เดธเด‚เดญเดตเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเดนเดฟเดคเด‚. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดชเตเดฒเด™เตเด•เต เด‡เตปเดธเตเดฑเตเดฑเดพเดณเต‡เดทเตป เดตเต€เดฃเตเดŸเตเด‚ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดตเดฐเต†เดฏเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด‡เตปเดธเตเดฑเตเดฑเดฒเต‡เดทเตป เด“เตบ-เดชเตเดฐเต†เดฎเตˆเดธเต เด†เดฃเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เด‡เตปเดชเตเดŸเตเดŸเต เดจเต‹เดกเต เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต เดตเดฐเต†เดฏเต‹ เดˆ เดซเดฏเตฝ เดชเตเดฐเดธเด•เตเดคเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚. เด…เดคเตเด•เตŠเดฃเตเดŸเต เดคเดจเตเดจเต† เด•เดฃเตเดŸเต†เดฏเตเดจเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดคเต†เดฑเตเดฑเดฟเดฒเตเดฒ.

เดชเดฟเดจเตเดจเต† เด…เดตเดธเดพเดจเดคเตเดคเต† เด•เดพเดฐเตเดฏเด‚ เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เด…เดคเต†, เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดชเตเดฐเดฏเต‹เด—เดฟเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพ เด…เดคเต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต.

เดžเด™เตเด™เดณเตเดŸเต† inputs.conf เดžเด™เตเด™เตพ เดธเตเดชเตเดฒเด™เตเด•เดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจ เดฒเต‹เด—เตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดชเดชเตเดชเดฑเตเดฑเต เดตเดดเดฟ เด•เต‹เตบเดซเดฟเด—เดฑเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดšเดฟเดคเตเดฐเดคเตเดคเดฟเตฝ เดˆ เดซเดฏเตฝ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ. เดกเต†เดฎเตบ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดซเต‹เตผเดตเต‡เดกเตผ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเตเด•เตพ เด•เดพเดฃเตเดจเตเดจเต เดŽเดจเตเดจเดคเดพเดฃเต เดเด• เด•เดพเดฐเตเดฏเด‚, เด…เดฒเตเดฒเดพเดคเตเดคเดชเด•เตเดทเด‚ เด…เดคเต เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดฐเตเด‚ ./เดธเตเดชเตเดฒเด™เตเด•เต เดชเตเดจเดฐเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•.

เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเต‹เด•เตเด•เตผ เดธเตเดฅเดฟเดคเดฟเดตเดฟเดตเดฐเด•เตเด•เดฃเด•เตเด•เตเด•เดณเดพเดฃเต เด…เดต? 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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•