Inkompli l-istorja tiegħi dwar kif tagħmel ħbieb Exchange u ELK (bidu hawn). Ħa nfakkarkom li din il-kombinazzjoni hija kapaċi tipproċessa numru kbir ħafna ta 'zkuk mingħajr eżitazzjoni. Din id-darba ser nitkellmu dwar kif l-Exchange taħdem mal-komponenti Logstash u Kibana.
Logstash fil-munzell ELK jintuża biex jipproċessa b'mod intelliġenti zkuk u jippreparahom għat-tqegħid f'Elastic fil-forma ta 'dokumenti, li fuq il-bażi tagħhom huwa konvenjenti li jinbnew diversi viżwalizzazzjonijiet f'Kibana.
Installazzjoni
Tikkonsisti f'żewġ stadji:
L-installazzjoni u l-konfigurazzjoni tal-pakkett OpenJDK.
Installazzjoni u konfigurazzjoni tal-pakkett Logstash.
L-installazzjoni u l-konfigurazzjoni tal-pakkett OpenJDK
Il-pakkett OpenJDK għandu jitniżżel u jitneħħa f'direttorju speċifiku. Imbagħad il-mogħdija għal dan id-direttorju trid tiddaħħal fil-varjabbli $env:Path u $env:JAVA_HOME tas-sistema operattiva Windows:
Ejja niċċekkja l-verżjoni Java:
PS C:> java -version
openjdk version "13.0.1" 2019-10-15
OpenJDK Runtime Environment (build 13.0.1+9)
OpenJDK 64-Bit Server VM (build 13.0.1+9, mixed mode, sharing)
Installazzjoni u konfigurazzjoni tal-pakkett Logstash
Niżżel il-fajl tal-arkivju bid-distribuzzjoni Logstash għalhekk. L-arkivju għandu jiġi żppakkjat sal-għerq tad-diska. Spakkja mal-folder C:Program Files Mhuwiex worth it, Logstash se jirrifjuta li jibda b'mod normali. Imbagħad għandek bżonn tidħol fil-fajl jvm.options jiffissa responsabbli għall-allokazzjoni RAM għall-proċess Java. Nirrakkomanda li tispeċifika nofs ir-RAM tas-server. Jekk ikollu 16 GB RAM abbord, allura ċ-ċwievet default huma:
-Xms1g
-Xmx1g
għandhom jiġu sostitwiti bi:
-Xms8g
-Xmx8g
Barra minn hekk, huwa rakkomandabbli li tikkummenta l-linja -XX:+UseConcMarkSweepGC. Aktar dwar dan hawn. Il-pass li jmiss huwa li toħloq konfigurazzjoni default fil-fajl logstash.conf:
B'din il-konfigurazzjoni, Logstash jaqra d-dejta mill-console, jgħaddiha minn filtru vojt, u joħroġha lura lill-console. L-użu ta 'din il-konfigurazzjoni se jittestja l-funzjonalità ta' Logstash. Biex tagħmel dan, ejja nħaddmuh fil-mod interattiv:
PS C:...bin> .logstash.bat -f .logstash.conf
...
[2019-12-19T11:15:27,769][INFO ][logstash.javapipeline ][main] Pipeline started {"pipeline.id"=>"main"}
The stdin plugin is now waiting for input:
[2019-12-19T11:15:27,847][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-12-19T11:15:28,113][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
Logstash tnieda b'suċċess fuq il-port 9600.
L-aħħar pass tal-installazzjoni: tniedi Logstash bħala servizz tal-Windows. Dan jista 'jsir, pereżempju, bl-użu tal-pakkett NSSM:
PS C:...bin> .nssm.exe install logstash
Service "logstash" installed successfully!
tolleranza għall-ħsarat
Is-sigurtà taz-zkuk meta jiġu trasferiti mis-server tas-sors hija żgurata mill-mekkaniżmu tal-Kjuwijiet Persistenti.
Il-plugin tal-input jirċievi dejta minn sors ta 'log, jiktebha fi kju, u jibgħat konferma li d-dejta tkun waslet lis-sors.
Messaġġi mill-kju huma pproċessati minn Logstash, mgħoddija mill-filtru u l-plugin tal-output. Meta tirċievi konferma mill-output li r-reġistru ntbagħat, Logstash ineħħi r-reġistru pproċessat mill-kju. Jekk Logstash jieqaf, il-messaġġi u l-messaġġi kollha mhux ipproċessati li għalihom ma tkun waslet l-ebda konferma jibqgħu fil-kju, u Logstash se jkompli jipproċessahom ladarba li jmiss jibda.
aġġustament
Aġġustabbli minn ċwievet fil-fajl C:Logstashconfiglogstash.yml:
queue.type: (valuri possibbli - persisted и memory (default)).
path.queue: (mogħdija għall-folder bil-fajls tal-kju, li huma maħżuna f'C:Logstashqueue b'mod awtomatiku).
queue.page_capacity: (id-daqs massimu tal-paġna tal-kju, il-valur default huwa 64mb).
queue.drain: (veru/falz - jippermetti/jiddiżattiva l-waqfien tal-ipproċessar tal-kju qabel ma jagħlaq Logstash. Ma nirrakkomandax li tkun attivata, għax dan jaffettwa direttament il-veloċità tal-għeluq tas-server).
queue.max_events: (numru massimu ta' avvenimenti fil-kju, default huwa 0 (illimitat)).
Jekk ikkonfigurat queue.max_events и queue.max_bytes, imbagħad il-messaġġi jieqfu jiġu aċċettati fil-kju meta jintlaħaq il-valur ta' kwalunkwe minn dawn is-settings. Tgħallem aktar dwar Kjuwijiet Persistenti hawn.
Eżempju tal-parti ta' logstash.yml responsabbli għat-twaqqif tal-kju:
queue.type: persisted
queue.max_bytes: 10gb
aġġustament
Il-konfigurazzjoni ta 'Logstash ġeneralment tikkonsisti fi tliet partijiet, responsabbli għal fażijiet differenti ta' pproċessar ta 'zkuk deħlin: riċeviment (sezzjoni ta' input), parsing (sezzjoni tal-filtru) u tibgħat lil Elastic (taqsima tal-output). Hawn taħt se nagħtu ħarsa aktar mill-qrib lejn kull wieħed minnhom.
input
Nirċievu l-fluss deħlin bi zkuk mhux ipproċessati minn aġenti filebeat. Huwa dan il-plugin li aħna nindikaw fit-taqsima tal-input:
input {
beats {
port => 5044
}
}
Wara din il-konfigurazzjoni, Logstash jibda jisma 'l-port 5044, u meta jirċievi zkuk, jipproċessahom skont is-settings tat-taqsima tal-filtru. Jekk meħtieġ, tista 'wrap il-kanal biex tirċievi zkuk minn filebit f'SSL. Aqra aktar dwar is-settings tal-plugin tal-beats hawn.
Iffiltra
Ir-reġistri tat-test kollha li huma interessanti għall-ipproċessar li tiġġenera Exchange huma f'format csv bl-oqsma deskritti fil-fajl tal-ġurnal innifsu. Għall-parsing tar-rekords csv, Logstash joffrilna tliet plugins: iddissettja, csv u grok. L-ewwel waħda hija l-aktar malajr, iżda tlaħħaq ma 'parsing biss l-aktar sempliċi zkuk.
Pereżempju, se jaqsam ir-rekord li ġej fi tnejn (minħabba l-preżenza ta 'virgola ġewwa l-qasam), u huwa għalhekk li l-ġurnal se jiġi analizzat b'mod żbaljat:
Il-konfigurazzjoni ta 'Logstash tippermettilek tuża dikjarazzjonijiet kundizzjonali, għalhekk nistgħu nibagħtu biss zkuk li kienu mmarkati bit-tikketta filebeat lill-plugin dissect IIS. Ġewwa l-plugin aħna nqabblu l-valuri tal-kamp bl-ismijiet tagħhom, ħassar il-qasam oriġinali message, li kien fih daħla mir-reġistru, u nistgħu nżidu qasam tad-dwana li, pereżempju, ikun fih l-isem tal-applikazzjoni li minnha niġbru zkuk.
Fil-każ ta 'traċċar ta' zkuk, huwa aħjar li tuża l-plugin csv; jista 'jipproċessa b'mod korrett oqsma kumplessi:
Ġewwa l-plugin aħna nqabblu l-valuri tal-kamp bl-ismijiet tagħhom, ħassar il-qasam oriġinali message (u wkoll oqsma tenant-id и schema-version), li kien fih entrata mil-log, u nistgħu nżidu qasam tad-dwana, li, pereżempju, ikun fih l-isem tal-applikazzjoni li minnha niġbru zkuk.
Fil-ħruġ mill-istadju tal-filtrazzjoni, se nirċievu dokumenti fl-ewwel approssimazzjoni, lesti għall-viżwalizzazzjoni f'Kibana. Se nkunu qed nitilfu dan li ġej:
L-oqsma numeriċi se jiġu rikonoxxuti bħala test, li jipprevjeni operazzjonijiet fuqhom. Jiġifieri, l-oqsma time-taken log IIS, kif ukoll oqsma recipient-count и total-bites Log Tracking.
Il-timestamp standard tad-dokument se jkun fih il-ħin li r-reġistru ġie pproċessat, mhux il-ħin li nkiteb fuq in-naħa tas-server.
Qasam recipient-address se tidher qisha sit ta' kostruzzjoni wieħed, li ma jippermettix analiżi biex jingħaddu r-riċevituri tal-ittri.
Wasal iż-żmien li żżid ftit magic mal-proċess tal-ipproċessar tal-log.
Konverżjoni ta' oqsma numeriċi
Il-plugin dissect għandu għażla convert_datatype, li jista 'jintuża biex jikkonverti qasam ta' test għal format diġitali. Per eżempju, bħal dan:
Ta 'min jiftakar li dan il-metodu huwa adattat biss jekk il-qasam definittivament ikun fih spag. L-għażla ma tipproċessax valuri Null minn oqsma u tarmi eċċezzjoni.
Għat-traċċar taz-zkuk, huwa aħjar li ma tużax metodu ta 'konverżjoni simili, peress li l-oqsma recipient-count и total-bites jista’ jkun vojt. Biex tikkonverti dawn l-oqsma huwa aħjar li tuża plugin immuta:
Qsim ta' destinatarju_indirizz f'riċevituri individwali
Din il-problema tista 'tiġi solvuta wkoll bl-użu tal-plugin mutate:
mutate {
split => ["recipient_address", ";"]
}
Nibdlu l-timestamp
Fil-każ ta 'tracking logs, il-problema tissolva faċilment mill-plugin data, li tgħinek tikteb fil-qasam timestamp data u ħin fil-format meħtieġ mill-field date-time:
date {
match => [ "date-time", "ISO8601" ]
timezone => "Europe/Moscow"
remove_field => [ "date-time" ]
}
Fil-każ ta' zkuk IIS, ikollna bżonn ngħaqqdu d-dejta tal-qasam date и time billi tuża l-plugin mutate, irreġistra ż-żona tal-ħin li għandna bżonn u poġġi dan it-timbru tal-ħin fih timestamp billi tuża l-plugin tad-data:
Is-sezzjoni tal-output tintuża biex tibgħat zkuk ipproċessati lir-riċevitur tar-reġistru. Fil-każ li jintbagħat direttament lil Elastic, jintuża plugin elasticsearch, li jispeċifika l-indirizz tas-server u l-mudell tal-isem tal-indiċi biex jintbagħat id-dokument iġġenerat: