Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais

Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais

Tá Splunk ar cheann de na táirgí bailithe agus anailíse loga tráchtála is aitheanta. Fiú amháin anois, nuair nach ndéantar díolacháin a thuilleadh sa Rúis, ní cúis é sin gan treoracha/conas a scríobh don táirge seo.

Tasc: logs córais a bhailiú ó nóid docker i Splunk gan athrú ar an chumraíocht meaisín óstach

Ba mhaith liom tosú leis an gcur chuige oifigiúil, rud a fheiceann beagán aisteach nuair a bhíonn Docker á úsáid.
Nasc le mol Docker
Cad atá againn:

1. Pullim íomhá

$ docker pull splunk/universalforwarder:latest

2. Tosaigh an coimeádán leis na paraiméadair is gá

$ docker run -d  -p 9997:9997 -e 'SPLUNK_START_ARGS=--accept-license' -e 'SPLUNK_PASSWORD=<password>' splunk/universalforwarder:latest

3. Téann muid isteach sa choimeádán

docker exec -it <container-id> /bin/bash

Ansin, iarrtar orainn dul chuig seoladh aitheanta sa doiciméadú.

Agus cumraigh an coimeádán tar éis dó tosú:


./splunk add forward-server <host name or ip address>:<listening port>
./splunk add monitor /var/log
./splunk restart

Fan. Cad?

Ach ní chríochnaíonn na hiontas ansin. Má ritheann tú an coimeádán ón íomhá oifigiúil i mód idirghníomhach, feicfidh tú iad seo a leanas:

Beagán díomá


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

ну и так далее...

Go hiontach. Níl déantúsán san íomhá fiú. Is é sin, gach uair a thosaíonn tú tógfaidh sé am chun an chartlann a íoslódáil le dénártha, díphacáil agus cumraigh.
Cad faoi docker-way agus sin go léir?

Níl sé uaim go raibh maith agat. Déanfaimid bealach eile. Cad a tharlóidh má dhéanaimid na hoibríochtaí seo go léir ag an gcéim tionóil? Ansin a ligean ar dul!

Ionas nach gcuirfear moill ró-fhada, taispeánfaidh mé an íomhá deiridh duit láithreach:

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

Mar sin, cad atá i

chéad_tús.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

Ar an gcéad tús, iarrann Splunk ort logáil isteach/focal faire a thabhairt dó, ACH úsáidtear na sonraí seo ach orduithe riaracháin a fhorghníomhú don suiteáil áirithe sin, is é sin, laistigh den choimeádán. In ár gcás, ba mhaith linn ach an coimeádán a sheoladh ionas go n-oibríonn gach rud agus go sreabhann na logaí cosúil le abhainn. Ar ndóigh, is hardcode é seo, ach níor aimsigh mé aon bhealaí eile.

Tuilleadh de réir an script a fhorghníomhú

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

splunkclouduf.spl — Comhad dintiúir é seo do Splunk Universal Forwarder, ar féidir a íoslódáil ón gcomhéadan gréasáin.

Cá háit le cliceáil le híoslódáil (i pictiúir)Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais

Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais
Is cartlann rialta í seo is féidir a dhíphacáil. Taobh istigh tá teastais agus pasfhocal chun nascadh lenár SplunkCloud agus aschuir.conf le liosta de na cásanna ionchuir atá againn. Beidh an comhad seo ábhartha go dtí go ndéanfaidh tú do shuiteáil Splunk a athshuiteáil nó go gcuirfidh tú nód ionchuir leis má tá an tsuiteáil ar an láthair. Dá bhrí sin, níl aon rud cearr leis é a chur taobh istigh den choimeádán.

Agus is é an rud deireanach atosú. Sea, chun na hathruithe a chur i bhfeidhm, ní mór duit é a atosú.

In ár ionchuir.conf cuirimid na logaí ba mhaith linn a sheoladh chuig Splunk. Ní gá an comhad seo a chur leis an íomhá, mar shampla, má dháileann tú cumraíochtaí trí phuipéad. Is é an t-aon rud ná go bhfeiceann Forwarder na configs nuair a thosaíonn an deamhan, ar shlí eile beidh gá leis ./splunk atosú.

Cén cineál scripteanna stats docker iad? Tá seanréiteach ar Github ó fear amach, tógadh na scripteanna as sin agus athraíodh iad chun oibriú leis na leaganacha reatha de Docker (ce-17.*) agus Splunk (7.*).

Leis na sonraí a fhaightear, is féidir leat na rudaí seo a leanas a thógáil

dashboards: (cúpla pictiúr)Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais

Splunk Uilíoch Seoltóir sa docker mar bhailitheoir loga córais
Tá an cód foinse le haghaidh daiseanna sa nasc a thugtar ag deireadh an ailt. Tabhair faoi deara go bhfuil 2 réimse roghnaithe: 1 - roghnú innéacs (cuardach le masc), roghnú óstaigh/coimeádán. Is dócha go mbeidh ort an masc innéacs a nuashonrú, ag brath ar na hainmneacha a úsáideann tú.

Mar fhocal scoir, ba mhaith liom d'aird a tharraingt ar an bhfeidhm tús() в

pointe iontrála.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
}

I mo chás, do gach timpeallacht agus gach aonán aonair, bíodh sé ina fheidhmchlár i gcoimeádán nó i meaisín óstach, úsáidimid innéacs ar leith. Ar an mbealach seo, ní bheidh an luas cuardaigh ag fulaingt nuair a bhíonn carnadh suntasach sonraí. Úsáidtear riail shimplí chun innéacsanna a ainmniú: _. Dá bhrí sin, d'fhonn an coimeádán a bheith uilíoch, sula ndéantar an deamhan féin a sheoladh, cuirimid in ionad tart-ú cárta fiáin le hainm na timpeallachta. Cuirtear athróg an ainm timpeallachta ar aghaidh trí athróga timpeallachta. Fuaimeanna greannmhar.

Is fiú a thabhairt faoi deara freisin nach bhfuil tionchar ag láithreacht pharaiméadar an duga ar Splunk ar chúis éigin óstainm. Seolfaidh sé go stubbornly logs le haitheantas a choimeádáin i réimse an óstaigh. Mar réiteach, is féidir leat mount / srl / óstainm ón óstach meaisín agus ag am tosaithe a dhéanamh athsholáthairtí cosúil le hainmneacha innéacs.

Sampla 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

Iomlán na

Sea, b'fhéidir nach bhfuil an réiteach idéalach agus is cinnte nach bhfuil sé uilíoch do gach duine, ós rud é go bhfuil go leor ann "cód crua". Ach bunaithe air, is féidir le gach duine a n-íomhá féin a thógáil agus é a chur ina n-artifactory príobháideach, más rud é, mar a tharlaíonn sé, is gá duit Splunk Forwarder in Docker.

Naisc:

Réiteach as an alt
Réiteach ó outcoldman a spreag sinn chun cuid den fheidhmiúlacht a athúsáid
As. Doiciméid chun Seoltóir Uilíoch a bhunú

Foinse: will.com

Ceannaigh óstáil iontaofa do shuímh le cosaint DDoS, freastalaithe VPS VDS 🔥 Ceannaigh óstáil gréasáin iontaofa le cosaint DDoS, freastalaithe VPS VDS | ProHoster