Splunk ืืื ืืื ืืืื ืืืืฆืจื ืืืกืืฃ ืื ืืชืื ืืืื ืื ืืกืืจืืื ืืืืืจืื ืืืืชืจ. ืื ืขืืฉืื, ืืฉืืืืืจืืช ืืืจ ืื ืืชืืฆืขืืช ืืจืืกืื, ืื ืื ืกืืื ืื ืืืชืื ืืืจืืืช/ืืืฆื ืืขืฉืืช ืืืืฆืจ ืื.
ืืฉืืื: ืืืกืืฃ ืืืื ื ืืขืจืืช ืืฆืืชื ืืืงืจ ื-Splunk ืืืื ืืฉื ืืช ืืช ืชืฆืืจืช ืืืืฉื ืืืืจื
ืื ื ืจืืฆื ืืืชืืื ืขื ืืืืฉื ืืจืฉืืืช, ืฉื ืจืืืช ืงืฆืช ืืืืจื ืืขืช ืฉืืืืฉ ื-Docker.
ืื ืืฉ ืื ื:
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 *********
ะฝั ะธ ัะฐะบ ะดะฐะปะตะต...
ืืืื. ืืชืืื ื ืืคืืื ืื ืืืืื ืืคืฅ. ืืืืืจ, ืืื ืคืขื ืฉืชืชืืื ืืืงื ืืื ืืืืจืื ืืช ืืืจืืืื ืขื ืงืืฆืื ืืื ืืจืืื, ืืคืจืืง ืืืืืืืจ.
ืื ืขื docker-way ืืื ืื?
ืื ืชืืื. ื ืื ืืืจื ืืืจืช. ืื ืื ื ืืฆืข ืืช ืื ืืคืขืืืืช ืืืื ืืฉืื ืืืจืืื? ืื ืืืื ื ืื!
ืืื ืื ืืืชืขืื ืืืชืจ ืืื, ืื ื ืืจืื ืืื ืืช ืืชืืื ื ืืกืืคืืช ืืื:
ืืืงืจืคืื
# ะขัั ั ะบะพะณะพ ะบะฐะบะธะต ะฟัะตะดะฟะพััะตะฝะธั
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 ืขื ืจืฉืืื ืฉื ืืืคืขื ืืงืื ืฉืื ื. ืงืืืฅ ืื ืืืื ืจืืืื ืื ืขื ืฉืชืชืงืื ืืืืฉ ืืช ืืชืงื ืช Splunk ืฉืื ืื ืชืืกืืฃ ืฆืืืช ืงืื ืื ืืืชืงื ื ืืื ืืงืืืืช. ืืื, ืืื ืฉืื ืคืกืื ืืืืกืคืชื ืืชืื ืืืืื.
ืืืืืจ ืืืืจืื ืืื ืืคืขืื ืืืืฉ. ืื, ืืื ืืืืื ืืช ืืฉืื ืืืื, ืขืืื ืืืคืขืื ืืืชื ืืืืฉ.
ืืฉืื ื inputs.conf ืื ื ืืืกืืคืื ืืช ืืืืื ืื ืฉืืจืฆืื ื ื ืืฉืืื ื-Splunk. ืืื ืฆืืจื ืืืืกืืฃ ืืช ืืงืืืฅ ืืื ืืชืืื ื ืื, ืืืฉื, ืืชื ืืคืืฅ ืืืืจืืช ืืืืฆืขืืช ืืืื. ืืืืจ ืืืืื ืืื ืฉื-Forwarder ืจืืื ืืช ืืืืืจืืช ืืืฉืจ ืืืืื ืืชืืื, ืืืจืช ืืื ืืฆืืจื ./splunk ืืคืขืื ืืืืฉ.
ืืืื ืกืื ืฉื ืกืงืจืืคืืื ืกืืืืกืืืื ืฉื docker ืื? ืืฉ ืคืชืจืื ืืฉื ื- 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
}
ืืืงืจื ืฉืื, ืขืืืจ ืื ืกืืืื ืืื ืืฉืืช ืืืืืช, ืืื ืื ืื ืืคืืืงืฆืื ืืงืื ืืืื ืจ ืื ืืืื ื ืืืจื, ืื ื ืืฉืชืืฉืื ืืืื ืืงืก ื ืคืจื. ืื, ืืืืจืืช ืืืืคืืฉ ืื ืชืคืืข ืืืฉืจ ืชืืื ืืฆืืืจืืช ืืฉืืขืืชืืช ืฉื ื ืชืื ืื. ืืื ืคืฉืื ืืฉืืฉ ืืฉืืืช ืืื ืืงืกืื: _. ืืื, ืขื ืื ืช ืฉืืืืื ืืืื ืืื ืืืจืกืื, ืืคื ื ืืฉืงืช ืืืืื ืขืฆืื, ืื ื ืืืืืคืื ืฆืืืืชื ืืืืื ืฉื ืฉื ืืกืืืื. ืืฉืชื ื ืฉื ืืกืืืื ืืืขืืจ ืืจื ืืฉืชื ื ืกืืืื. ื ืฉืืข ืืฆืืืง.
ืจืืื ืื ืืฆืืื ืฉืืกืืื ืืืฉืื Splunk ืืื ื ืืืฉืคืข ืื ืืืืืช ืคืจืืืจ ื-docker ืืืืจื. ืืื ืขืืืื ืืฉืื ืืขืงืฉื ืืช ืืืื ืื ืขื ืืืืื ืฉื ืืืืืื ืฉืื ืืฉืื ืืืืจื. ืืคืชืจืื, ืืชื ืืืื ืืขืืืช / 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
ืกื ืืื
ืื, ืืืื ืืคืชืจืื ืืื ื ืืืืืืื ืืืืืืื ืื ืืื ืืืจืกืื ืขืืืจ ืืืื, ืฉืื ืืฉ ืืจืื "ืงืื ืงืฉื". ืืื ืืืชืืกืก ืขื ืื, ืื ืืื ืืืื ืืื ืืช ืชืืื ื ืืฉืื ืืืฉืื ืืืชื ืืืจืืืคืงืืืจื ืืคืจืืืช ืฉืื, ืื, ืืคื ืฉืื ืงืืจื, ืืชื ืฆืจืื Splunk Forwarder ื-Docker.
ืงืืฉืืจืื:
ืืงืืจ: www.habr.com