Po filloj një seri artikujsh, ku dua të ndaj përvojën time në lidhje me lidhjen e Exchange me ELK. Ky stak do të ndihmojë në përpunimin e sasi të mëdha log-esh dhe për të mos u shqetësuar se në cilin madhësi mjetet e zakonshme të regjistrimit do të na ndihmojnë. Le të njohim luftëtarin e ri të log-ev.
Exchange ka një sistem të zgjeruar regjistrimi. Log-ët më të kërkuar janë log-ët e ndjekjes, të cilët ndjekin hap pas hapi kalimin e një email-i të caktuar brenda organizatës postare; log-ët e serverit web, të cilët ndjekin çdo sesion të ri të përdoruesit në sistem, dhe log-ët e aplikacioneve të veçanta web me gradë të ndryshme detajesh seancash. Po ashtu, Exchange mund të ruajë log-ët e papërpunuar të protokollit smtp, imap dhe pop3.
Cilat mjete mund të përdorim për të punuar me log-ët:
- Komanda standarde Get-MessageTrackingLog: e përshtatshme për të përpunuar log-ët e ndjekjes;
- Utilita logparser: për regjistrimin përdor gjuhën pseudo-SQL për kërkimin dhe funksionon mjaft shpejt;
- SQL-server i jashtëm: për raste të veçanta (për shembull, analizën e të dhënave për periudha të gjata kohore).
E gjithë kjo funksionon mjaft mirë kur kemi disa serverë dhe vëllimi i logëve të përpunuara matet në dhjetëra-qindra gigabajt. Por çfarë ndodh nëse numri i serverëve arrin në dhjetëra, dhe madhësia e logëve kalon një terabajt? Kjo skemë, me siguri, fillon të bjerë.
Dhe ja çfarë ndodh: Get-MessageTrackingLog fillon të dështojë për shkak të kohës së skadimit, logparser godet plafonin e arkitekturës 32-bitore, dhe eksportimi në SQL-server dështone në momentin më të papërshtatshëm, duke mos përtypur shumë rreshta të excepsionit nga shërbimi.
KĂ«tu hyn nĂ« skenĂ« njĂ« lojtar i ri â staku ELK, i cili Ă«shtĂ« posaçërisht i optimizuar pĂ«r tĂ« menaxhuar sasi tĂ« mĂ«dha logĂ«sh nĂ« njĂ« kohĂ« tĂ« arsyeshme dhe me konsum tĂ« pranueshĂ«m burimesh.
NĂ« pjesĂ«n e parĂ« do tĂ« flas nĂ« detaje, pĂ«r si tĂ« lidhim filebeat, i cili Ă«shtĂ« pjesĂ« e stakut ELK â pĂ«rgjigjet pĂ«r leximin dhe dĂ«rgimin e skedarĂ«ve tĂ« thjeshtĂ« tekstualĂ«, nĂ« tĂ« cilat aplikacione tĂ« ndryshme shkruajnĂ« logĂ«t e tyre. NĂ« artikujt e ardhshĂ«m do tĂ« ndalemi mĂ« nĂ« detaje nĂ« komponentĂ«t Logstash dhe Kibana.
Instalimi
Pra, arkivi i agjentit filebeat .
Ne do ta kryejmë instalimin thjesht duke shpërndarë përmbajtjen e skedarit zip. Për shembull, në c:Program Filesfilebeat. Pastaj është e nevojshme të filloni skriptin PowerShell install-service-filebeat.ps1, që vjen në paketë, për instalimin e shërbimit filebeat.
Tani jemi gati të fillojmë të konfigurojmë skedarin e konfigurimit.
Qëndrueshmëria
Filebeat garanton dorëzimin e log-eve në sistemin e grumbullimit të log-eve. Kjo arrihet përmes mbajtjes së regjistrit të shënimeve në skedarët e log-eve. Në regjistër ruhet informacioni mbi shënimet që janë lexuar nga skedarët e log-eve, dhe shënohen shënimet specifike që arritën të dërgohen në vendin e destinacionit.
Nëse ndonjë shënim nuk mund të dërgohet, filebeat do të përpiqet ta dërgojë atë përsëri derisa të marrë konfirmimin e dorëzimit nga sistemi pritës ose skedari origjinal i log-eve të fshihet në procesin e rotacionit.
Kur shërbimi filebeat rinis, ai do të lexojë nga regjistri informacionin mbi shënimet e fundit të lexuara dhe të dorëzuara dhe do të lexojë shënimet në skedarët e log-eve, në bazë të informacionit në regjistër.
Kjo lejon minimizimin e rrezikut të humbjes së informacionit mbi log-et që duhet të dërgohen në serverat elasticlogstash, gjatë menjëherë e defekteve të papritura dhe realizimit të operacioneve për mirëmbajtjen e serverëve.
Për më shumë se kjo mund : Si si ruan Filebeat mbajti gjendjen e skedarëve dhe si siguron dorëzimin të paktën një herë?
Konfigurimi
Të gjitha konfigurimet kryhen në skedarin e konfigurimit të formatit yml, i cili është i ndarë në disa seksione. Le të shqyrtojmë disa prej tyre që marrin pjesë në procesin e mbledhjes së logëve nga serverët Exchange.
Bloku i përpunimit të logëve
Bloku i përpunimit të logëve fillon me fushën:
filebeat.inputs:Ne do të përdorim një mjet të zakonshëm të mbledhjes së logëve:
- type: logPastaj tregojmë statusin (aktiv) dhe rrugët deri në dosjen me logët. Për shembull, në rastin e logëve të IIS konfigurimet mund të jenë si më poshtë:
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
Një konfigurim tjetër i rëndësishëm: si duhet filebeat të lexojë shënimet shumë-rresht. Në mënyrë të parazgjedhur, filebeat e konsideron një linjë log-u si një shënim. Kjo funksionon mirë, derisa log-u të fillojë të marrë përjashtime të lidhura me funksionimin e gabuar të shërbimit. Në këtë rast, përjashtimet mund të përbëhen nga disa rreshta. Prandaj, filebeat duhet të konsiderojë një shënim shumë-rresht si një, nëse rreshti tjetër fillon me datën. Formati i shënimeve të logëve në Exchange është i tillë: çdo shënim i ri në skedarin e log-ut fillon me datën. Në konfigurim, kjo kusht u duket në këtë mënyrë:
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: afterKa një kuptim që të shtoni etiketat në regjistrimin e dërguar, për shembull:
tags: ['IIS', 'ex-srv1']Dhe mos harroni të përjashtoni nga përpunimi rreshtat që fillojnë me simbolin hash:
exclude_lines: ['^#']Pra, blloku i leximit të logeve do të duket si më poshtë:
filebeat.inputs:
- type: log
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
tags: ['IIS', 'ex-srv1']
exclude_lines: ['^#']Blloku i dërgimit të logeve
Regjistrimet e veçanta në skedarin e logeve filebeat dërgohen si një objekt json, ku regjistrimi specifik nga logu përmban vetëm fushën mesazhe. Nëse duam të punojmë me këtë informacion, është e nevojshme që ta shqyrtojmë këtë fushë në fusha të veçanta. Kjo mund të bëhet, për shembull, në logstash. Ai do të jetë marrësi i regjistrimeve nga filebeat. Këtu është si mund të duket në skedarin e konfigurimit të filebeat:
output.logstash:
hosts: ["logstash1.domain.com:5044"]
Nëse ka disa serverë, atëherë mund të aktivizoni balancimin: kështu filebeat do të dërgojë loget jo vetëm në serverin e parë të disponueshëm nga lista, por do të shpërndajë loget midis disa serverëve:
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true Filebeat, gjatë përpunimit të logëve, në JSON-in e dërguar, përveç regjistrimit të logut që ndodhet në fushën message, shton një sasi të caktuar të metadatat, që ndikon në madhësinë e dokumentit që përfundon në elastic. Këto metadata mund të hiqen selektivisht nga dërgimi. Kjo bëhet në bllokun processor me ndihmën e procesorit. drop_fields. Mund të përjashtohen, për shembull, fusha të tjera si:
processors:
- drop_fields:
fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]Përjashtimi i fushave duhet bërë me kujdes, pasi disa prej tyre mund të përdoren në anën e elastic për ndërtimin e indekseve.
Pra, blloku i dërgimit të logëve do të duket kështu:
output.logstash:
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true
processors:
- drop_fields:
fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]Cilësimet e logimit të filebeat
Ka kuptim të vendosen këto cilësime të logimit:
- Niveli i logimit info;
- Regjistrojmë logët në skedarët që ndodhen në vendndodhjen e paracaktuar (direktori logs, në direktorinë e instalimit të filebeat);
- Emri i skedarit tĂ« regjistrit â filebeat;
- Ruani 10 skedarët e fundit të regjistrit;
- Kryeni rotacionin kur arrin madhësinë 1 MB.
Blloku përfundimtar i konfigurimit të regjistrimit do të duket kështu:
logging.level: info
logging.to_files: true
logging.files:
name: filebeat
keepfiles: 10
rotateeverybytes: 1048576Konfigurimi përfundimtar
Ne kemi përmbledhur konfigurimin dhe tani ai duket si më poshtë:
filebeat.inputs:
- type: log
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
tags: ['IIS', 'ex-srv1']
exclude_lines: ['^#']
output.logstash:
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true
processors:
- drop_fields:
fields: ["agent.ephemeral_id", "agent.hostname", "agent.id", "agent.type", "agent.version", "agent", "ecs.version", "ecs", "input.type", "input", "log.offset", "version"]
logging.level: info
logging.to_files: true
logging.files:
name: filebeat
keepfiles: 10
rotateeverybytes: 1048576ĂshtĂ« e rĂ«ndĂ«sishme tĂ« kuptohet se formati i skedarit tĂ« konfigurimit â yml. Prandaj, Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« vendosen saktĂ« hapĂ«sirat dhe shenjat e minusit.
Filebeat mund të verifikojë skedarin e konfigurimit dhe, nëse sintaksa përmban gabime, do të tregojë në cilin rresht dhe në cilin vend të rreshtit sintaksa është e pasaktë. Verifikimi bëhet si më poshtë:
.filebeat.exe test configFilebeat gjithashtu është në gjendje të kontrollojë disponibilitetin e rrjetit për marrësin e logëve. Testimi nis kështu:
.filebeat.exe test outputNë pjesët e ardhshme do të flas për lidhjen dhe bashkëpunimin e Exchange me komponentët Logstash dhe Kibana.
Linqe të dobishme
Burimi: habr.com
