āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻžāĻšāĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄāĻ•āĻžāϰ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻžāĻšāĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄāĻ•āĻžāϰ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ

āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āĻšāϞ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ¸ā§āĻŦā§€āĻ•ā§ƒāϤ āĻŦāĻžāĻŖāĻŋāĻœā§āϝāĻŋāĻ• āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻš āĻāĻŦāĻ‚ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻĒāĻŖā§āϝāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋāĨ¤ āĻāĻŽāύāĻ•āĻŋ āĻāĻ–āύ, āϝāĻ–āύ āĻŦāĻŋāĻ•ā§āϰāϝāĻŧ āφāϰ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāϝāĻŧ āĻ•āϰāĻž āĻšāϝāĻŧ āύāĻž, āϤāĻ–āύ āĻāχ āĻĒāĻŖā§āϝāϟāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž/āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āύāĻž āϞ⧇āĻ–āĻžāϰ āĻ•āĻžāϰāĻŖ āύāϝāĻŧāĨ¤

āĻ•āĻžāĻœā§‡āϰ: āĻšā§‹āĻ¸ā§āϟ āĻŽā§‡āĻļāĻŋāύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āύāĻž āĻ•āϰ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āϕ⧇ āĻĄāĻ•āĻžāϰ āύ⧋āĻĄ āĻĨ⧇āϕ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧁āύ

āφāĻŽāĻŋ āĻ…āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ āĻĒāĻĻā§āϧāϤāĻŋāϰ āϏāĻžāĻĨ⧇ āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āϚāĻžāχ, āϝāĻž āĻĄāĻ•āĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻ•āĻŋāϛ⧁āϟāĻž āĻ…āĻĻā§āϭ⧁āϤ āĻĻ⧇āĻ–āĻžāϝāĻŧāĨ¤
āĻĄāĻ•āĻžāϰ āĻšāĻžāĻŦ⧇āϰ āϞāĻŋāĻ™ā§āĻ•
āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻŋ āφāϛ⧇:

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 — āĻāϟāĻŋ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻĢāĻžāχāϞ, āϝāĻž āĻ“āϝāĻŧ⧇āĻŦ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĨ⧇āϕ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāϤ⧇ āϕ⧋āĻĨāĻžāϝāĻŧ āĻ•ā§āϞāĻŋāĻ• āĻ•āϰāĻŦ⧇āύ (āĻ›āĻŦāĻŋāϤ⧇)āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻžāĻšāĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄāĻ•āĻžāϰ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ

āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āϞāĻ— āϏāĻ‚āĻ—ā§āϰāĻžāĻšāĻ• āĻšāĻŋāϏāĻžāĻŦ⧇ āĻĄāĻ•āĻžāϰ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāωāύāĻŋāĻ­āĻžāĻ°ā§āϏāĻžāϞ āĻĢāϰāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ
āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϏāĻ‚āϰāĻ•ā§āώāĻŖāĻžāĻ—āĻžāϰ āϝāĻž āφāύāĻĒā§āϝāĻžāĻ• āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ­āĻŋāϤāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ•āĻ•ā§āϞāĻžāωāĻĄā§‡āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻļāĻ‚āϏāĻžāĻĒāĻ¤ā§āϰ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĒāĻžāϏāĻ“āϝāĻŧāĻžāĻ°ā§āĻĄ āϰāϝāĻŧ⧇āϛ⧇ outputs.conf āφāĻŽāĻžāĻĻ⧇āϰ āχāύāĻĒ⧁āϟ āωāĻĻāĻžāĻšāϰāĻŖāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āϏāĻšāĨ¤ āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āĻĒā§āϰāĻžāϏāĻ™ā§āĻ—āĻŋāĻ• āĻšāĻŦ⧇ āϝāϤāĻ•ā§āώāĻŖ āύāĻž āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ āĻĒ⧁āύāϰāĻžāϝāĻŧ āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇āύ āĻŦāĻž āχāύāĻ¸ā§āϟāϞ⧇āĻļāύ āĻ…āύ-āĻĒā§āϰāĻŋāĻŽāĻžāχāϜ āĻšāϞ⧇ āĻāĻ•āϟāĻŋ āχāύāĻĒ⧁āϟ āύ⧋āĻĄ āϝ⧋āĻ— āĻ•āϰ⧇āύāĨ¤ āĻ…āϤāĻāĻŦ, āĻĒāĻžāĻ¤ā§āϰ⧇āϰ āĻ­āĻŋāϤāϰ⧇ āĻāϟāĻŋ āϝ⧋āĻ— āĻ•āϰāĻžāϰ āϏāĻžāĻĨ⧇ āϕ⧋āύ āϭ⧁āϞ āύ⧇āχāĨ¤

āĻāĻŦāĻ‚ āĻļ⧇āώ āϜāĻŋāύāĻŋāϏ āϰāĻŋāĻ¸ā§āϟāĻžāĻ°ā§āϟ āĻšāϝāĻŧ. āĻšā§āϝāĻžāρ, āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύāϗ⧁āϞāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇, āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āφāĻŽāĻžāĻĻ⧇āϰ āĻŽāĻžāĻā§‡ inputs.conf āφāĻŽāϰāĻž āϞāĻ—āϗ⧁āϞāĻŋ āϝ⧋āĻ— āĻ•āϰāĻŋ āϝāĻž āφāĻŽāϰāĻž āĻ¸ā§āĻĒā§āϞāĻ™ā§āϕ⧇ āĻĒāĻžāĻ āĻžāϤ⧇ āϚāĻžāχāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āĻĒ⧁āϤ⧁āϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāϞ⧇ āĻ›āĻŦāĻŋāϤ⧇ āĻāχ āĻĢāĻžāχāϞāϟāĻŋ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤ āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āϜāĻŋāύāĻŋāϏ āĻĢāϰ⧋āϝāĻŧāĻžāĻ°ā§āĻĄāĻžāϰ āϝāĻ–āύ āĻĄā§‡āĻŽāύ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ āϤāĻ–āύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰāϗ⧁āϞāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϝāĻŧ, āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻāϟāĻŋāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāĻŦ⧇ ./splunk āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰ⧁āύ.

āϤāĻžāϰāĻž āĻ•āĻŋ āϧāϰāύ⧇āϰ āĻĄāĻ•āĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ? āĻĨ⧇āϕ⧇ Github āωāĻĒāϰ āĻāĻ•āϟāĻŋ āĻĒ⧁āϰāĻžāύ⧋ āϏāĻŽāĻžāϧāĻžāύ āφāϛ⧇ āφāωāϟāϕ⧋āĻ˛ā§āĻĄāĻŽā§āϝāĻžāύ, āϏ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟāϗ⧁āϞāĻŋ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāϰ⧇āϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āĻ¸ā§āĻ•āϰāĻŖāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ (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
}

āφāĻŽāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒāϰāĻŋāĻŦ⧇āĻļ āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒ⧃āĻĨāĻ• āϏāĻ¤ā§āϤāĻžāϰ āϜāĻ¨ā§āϝ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻ• āĻŦāĻž āĻāĻ•āϟāĻŋ āĻšā§‹āĻ¸ā§āϟ āĻŽā§‡āĻļāĻŋāύ⧇ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻšā§‹āĻ•, āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āϏ⧂āϚāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, āϤāĻĨā§āϝ⧇āϰ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝ āϏāĻžā§āϚāϝāĻŧ āĻšāϞ⧇ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ⧇āϰ āĻ—āϤāĻŋ āĻ•ā§āώāϤāĻŋāĻ—ā§āϰāĻ¸ā§āϤ āĻšāĻŦ⧇ āύāĻžāĨ¤ āϏ⧂āĻšā§€āϗ⧁āϞāĻŋāϰ āύāĻžāĻŽ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āύāĻŋāϝāĻŧāĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ: _. āĻ…āϤāĻāĻŦ, āϧāĻžāϰāĻ•āϟāĻŋ āϏāĻ°ā§āĻŦāϜāύ⧀āύ āĻšāĻ“āϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ, āĻĄā§‡āĻŽāύ āύāĻŋāĻœā§‡āχ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āφāϗ⧇, āφāĻŽāϰāĻž āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŋ āĻ•āĻŋāĻ¨ā§āϤ⧁-āĻŽ āĻ“āϝāĻŧāĻžāχāĻ˛ā§āĻĄāĻ•āĻžāĻ°ā§āĻĄ āĻĒāϰāĻŋāĻŦ⧇āĻļ⧇āϰ āύāĻžāĻŽā§‡āĨ¤ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āύāĻžāĻŽ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āĻāύāĻ­āĻžāϝāĻŧāϰāύāĻŽā§‡āĻ¨ā§āϟ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĒāĻžāϏ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϏ⧁āύāϤ⧇ āĻŽāϜāĻžāϰ āϞāĻžāĻ—āϛ⧇.

āĻāϟāĻŋāĻ“ āϞāĻ•ā§āώāĻŖā§€āϝāĻŧ āϝ⧇ āĻ•āĻŋāϛ⧁ āĻ•āĻžāϰāϪ⧇ āĻ¸ā§āĻĒā§āϞāĻ™ā§āĻ• āĻĄāĻ•āĻžāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ⧇āϰ āωāĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāĻ­āĻžāĻŦāĻŋāϤ āĻšāϝāĻŧ āύāĻž āĻšā§‹āĻ¸ā§āϟ-āύ⧇āĻŽ. āϤāĻŋāύāĻŋ āĻāĻ–āύāĻ“ āĻšāĻ āĻ•āĻžāϰ⧀āĻ­āĻžāĻŦ⧇ āĻšā§‹āĻ¸ā§āϟ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϤāĻžāϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰ āφāχāĻĄāĻŋ āϏāĻš āϞāĻ— āĻĒāĻžāĻ āĻžāĻŦ⧇āύāĨ¤ āĻāĻ•āϟāĻŋ āϏāĻŽāĻžāϧāĻžāύ āĻšāĻŋāϏāĻžāĻŦ⧇, āφāĻĒāύāĻŋ āĻŽāĻžāωāĻ¨ā§āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϜāĻ¨ā§āϝ / etc / āĻšā§‹āĻ¸ā§āϟāύāĻžāĻŽ āĻšā§‹āĻ¸ā§āϟ āĻŽā§‡āĻļāĻŋāύ āĻĨ⧇āϕ⧇ āĻāĻŦāĻ‚ āĻ¸ā§āϟāĻžāĻ°ā§āϟāφāĻĒ⧇ āχāύāĻĄā§‡āĻ•ā§āϏ āύāĻžāĻŽā§‡āϰ āĻ…āύ⧁āϰ⧂āĻĒ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧁āύāĨ¤

āωāĻĻāĻžāĻšāϰāĻŖ 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

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster