Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ

Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ

Splunk Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ няколкото Π½Π°ΠΉ-Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°Π΅ΠΌΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ Π·Π° ΡΡŠΠ±ΠΈΡ€Π°Π½Π΅ ΠΈ Π°Π½Π°Π»ΠΈΠ· Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠΈ Ρ‚Ρ€ΡƒΠΏΠΈ. Π”ΠΎΡ€ΠΈ сСга, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ Π½Π΅ сС ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ Π² Русия, Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΄Π° Π½Π΅ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ инструкции/инструкции Π·Π° Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚.

Π—Π°Π΄Π°Ρ‡Π°: ΡΡŠΠ±ΠΈΡ€Π° систСмни рСгистрационни Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ‚ Π΄ΠΎΠΊΠ΅Ρ€ възли Π² Splunk, Π±Π΅Π· Π΄Π° промСня конфигурацията Π½Π° хост ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π°

Π‘ΠΈΡ… искал Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π° с официалния ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΌΠ°Π»ΠΊΠΎ странно, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Docker.
Π’Ρ€ΡŠΠ·ΠΊΠ° към Docker hub
Какво имамС:

1. Pullim ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅

$ 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, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΈΠ·Ρ‚Π΅Π³Π»Π΅Π½ ΠΎΡ‚ ΡƒΠ΅Π± интСрфСйса.

КъдС Π΄Π° Ρ‰Ρ€Π°ΠΊΠ½Π΅Ρ‚Π΅, Π·Π° Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈΡ‚Π΅ (Π² снимки)Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ

Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ
Π’ΠΎΠ²Π° Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π°Ρ€Ρ…ΠΈΠ², ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ€Π°Π·ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½. Π’ΡŠΡ‚Ρ€Π΅ ΠΈΠΌΠ° сСртификати ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π° Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ с нашия SplunkCloud ΠΈ ΠΈΠ·Ρ…ΠΎΠ΄ΠΈ.conf със списък Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄Π½ΠΈ СкзСмпляри. Π’ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» Ρ‰Π΅ бъдС умСстСн, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π½Π΅ инсталиратС ΠΎΡ‚Π½ΠΎΠ²ΠΎ инсталацията Π½Π° Splunk ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π²Ρ…ΠΎΠ΄Π΅Π½ възСл, Π°ΠΊΠΎ инсталацията Π΅ Π»ΠΎΠΊΠ°Π»Π½Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ няма Π½ΠΈΡ‰ΠΎ лошо Π΄Π° Π³ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π²ΡŠΡ‚Ρ€Π΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

И послСдното Π½Π΅Ρ‰ΠΎ Π΅ рСстартиранС. Π”Π°, Π·Π° Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, трябва Π΄Π° Π³ΠΎ рСстартиратС.

Π’ Π½Π°ΡˆΠ°Ρ‚Π° inputs.conf добавямС рСгистрационнитС Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ искамС Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈΠΌ Π½Π° Splunk. НС Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° добавятС Ρ‚ΠΎΠ·ΠΈ Ρ„Π°ΠΉΠ» към ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π°ΠΊΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ разпространяватС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Ρ€Π΅Π· ΠΌΠ°Ρ€ΠΈΠΎΠ½Π΅Ρ‚ΠΊΠ°. ЕдинствСното Π½Π΅Ρ‰ΠΎ Π΅, Ρ‡Π΅ Forwarder Π²ΠΈΠΆΠ΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡŠΡ‚ стартира, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‰Π΅ ΠΈΠΌΠ° Π½ΡƒΠΆΠ΄Π° ./splunk рСстартиранС.

Какъв Π²ΠΈΠ΄ скриптовС Π·Π° Π΄ΠΎΠΊΠ΅Ρ€ статистика са Ρ‚Π΅? Има старо Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² Github ΠΎΡ‚ outcoldman, скриптовСтС бяха Π²Π·Π΅Ρ‚ΠΈ ΠΎΡ‚ Ρ‚Π°ΠΌ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ, Π·Π° Π΄Π° работят с Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ вСрсии Π½Π° Docker (ce-17.*) ΠΈ Splunk (7.*).

Π‘ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ слСдното

Ρ‚Π°Π±Π»Π°: (няколко снимки)Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ

Splunk Universal Forwarder Π² Docker ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΠ»Π΅ΠΊΡ‚ΠΎΡ€ Π½Π° систСмни ΠΆΡƒΡ€Π½Π°Π»ΠΈ
Π˜Π·Ρ…ΠΎΠ΄Π½ΠΈΡΡ‚ ΠΊΠΎΠ΄ Π·Π° Ρ‚ΠΈΡ€Π΅Ρ‚Π°Ρ‚Π° Π΅ във Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°, прСдоставСна Π² края Π½Π° статията. Моля, ΠΎΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ ΠΈΠΌΠ° 2 ΠΏΠΎΠ»Π΅Ρ‚Π° Π·Π° ΠΈΠ·Π±ΠΎΡ€: 1 - ΠΈΠ·Π±ΠΎΡ€ Π½Π° индСкс (Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ ΠΏΠΎ маска), ΠΈΠ·Π±ΠΎΡ€ Π½Π° хост/ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. ВСроятно Ρ‰Π΅ трябва Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ маската Π½Π° индСкса Π² зависимост ΠΎΡ‚ ΠΈΠΌΠ΅Π½Π°Ρ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅.

Π’ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΡ… искал Π΄Π° ΠΎΠ±ΡŠΡ€Π½Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° функцията Π½Π°Ρ‡Π°Π»ΠΎ() Π²

Π²Ρ…ΠΎΠ΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°.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-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.

Π·Π° справка:

РСшСниС ΠΎΡ‚ статията
РСшСниС ΠΎΡ‚ outcoldman, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ Π²Π΄ΡŠΡ…Π½ΠΎΠ²ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ част ΠΎΡ‚ функционалността
На. докумСнтация Π·Π° настройка Π½Π° Universal Forwarder

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€