Artikulu sorta bat hasten ari naiz, non Exchange eta ELK lotzen dudan esperientzia partekatu nahi dudan. Pila honek erregistro-bolumen handiak prozesatzen lagunduko digu eta ohiko erregistro-tresnek zer tamainatan uko egingo diguten galdetu beharrik ez. Ea ezagut dezagun log borrokalari berria.
Exchange-k erregistro-sistema nahiko zabala du. Erregistro ezagunenak jarraipenaren erregistroak dira, posta-erakunde baten barruan gutun zehatz baten urratsa urratsez urrats jarraitzen dutenak; web zerbitzariaren erregistroak, sistemako erabiltzaile-saio berri bakoitzaren jarraipena egiten dutenak, eta web-aplikazio espezifikoen erregistroak, saioen xehetasun-maila ezberdinekin. Exchange-k smtp, imap eta pop3 protokoloen erregistro gordinak ere gorde ditzake.
Zer tresna erabil ditzakegu erregistroekin lan egiteko:
- Cmdlet estandarra Get-MessageTrackingLog: erosotasunez prozesatu jarraipenaren erregistroak;
- Logparser erabilgarritasuna: erregistratzeko, pseudo-SQL bilaketa-lengoaia erabiltzen du eta nahiko azkar funtzionatzen du;
- Kanpoko SQL zerbitzaria: kasu oso zehatzetarako (adibidez, datuak denbora luzean aztertzeko).
Horrek guztiak ondo funtzionatzen du zerbitzari pare bat dugunean eta prozesatutako erregistroen bolumena hamarnaka edo ehunka gigabytetan neurtzen da. Baina zerbitzarien kopurua dozenaka bada eta erregistroen tamainak terabyte bat gainditzen badu? Eskema hau litekeena da erortzen hastea.
Eta hauxe gertatzen da: Get-MessageTrackingLog denbora-muga ateratzen hasten da, logparser-ek 32 biteko arkitekturaren sabaia jotzen du eta SQL zerbitzarira igotzeak unerik desegokienean matxuratzen da, zerbitzuaren linea anitzeko salbuespena digeritu gabe.
Hemen jokalari berri bat sartzen da eszenan: ELK pila, erregistro-bolumen handiak arrazoizko denboran eta baliabide-kontsumo jasangarriarekin malabareak egiteko bereziki diseinatuta dagoena.
Lehenengo zatian zehatz-mehatz esango dizut, nola konektatu ELK pilaren zati bati dagokion filebeat — testu-fitxategi sinpleak irakurtzeaz eta bidaltzeaz arduratzen da, zeinetan aplikazio ezberdinek beren erregistroak idazten dituzten. Hurrengo artikuluetan Logstash eta Kibana osagaiak gertutik aztertuko ditugu.
Instalazio-
Beraz, filebeat agentearen artxibo fitxategia .
Instalazioa zip fitxategiaren edukia ateraz osatuko dugu. Adibidez, in c:Program Filesfilebeat. Ondoren, PowerShell script-a exekutatu behar duzu install-service-filebeat.ps1, kitarekin datorrena, filebeat zerbitzua instalatzeko.
Orain prest gaude konfigurazio fitxategia konfiguratzen hasteko.
akatsen tolerantzia
Filebeat-ek erregistroak biltzeko sistemara bidaltzea bermatzen du. Hau log fitxategietan sarreren erregistroa mantenduz lortzen da. Erregistroak erregistro-fitxategietatik irakurritako erregistro horiei buruzko informazioa gordetzen du eta helmugara bidali ahal izan diren erregistro zehatzak markatzen ditu.
Erregistro bat ezin bada entregatu, filebeat-ek berriro bidaltzen saiatuko da sistema hartzailearen entregaren berrespena jaso arte edo errotazio-prozesuan jatorrizko erregistro-fitxategia ezabatu arte.
Zerbitzua berrabiarazten denean, filebeat-ek irakurritako eta entregatutako azken erregistroei buruzko informazioa irakurriko du erregistrotik, eta erregistroko fitxategietako erregistroak irakurriko ditu erregistroko informazioan oinarrituta.
Honi esker, elastikologstash zerbitzarietara bidali beharreko erregistro-informazioa galtzeko arriskua minimiza dezakezu ustekabeko hutsegiteetan eta zerbitzariaren mantentze-lanetan.
Honi buruz gehiago jakin dezakezu : Nola mantentzen du Filebeat-ek fitxategien egoera eta Nola ziurtatzen du Filebeat-ek gutxienez behin entrega?
doikuntza
Konfigurazio guztia formatuaren konfigurazio fitxategian egiten da yml, hainbat ataletan banatuta dagoena. Ikus ditzagun Exchange zerbitzarietako erregistroak biltzeko prozesuan parte hartzen duten horietako batzuk.
Erregistroa prozesatzeko blokea
Erregistroa prozesatzeko blokea eremuarekin hasten da:
filebeat.inputs:Erregistroak biltzeko tresna arrunt bat erabiliko dugu:
- type: logOndoren, adierazi egoera (gaituta) eta karpetarako bidea erregistroekin. Adibidez, IIS erregistroen kasuan, ezarpenak hauek izan litezke:
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
Beste ezarpen garrantzitsu bat filebeat-ek lerro anitzeko erregistroak nola irakurri behar dituen da. Lehenespenez, filebeat-ek erregistro-fitxategi baten lerro bat sarrera bat dela hartzen du. Honek ondo funtzionatzen du gure erregistroan zerbitzuaren funtzionamendu okerrekin lotutako salbuespenak jasotzen hasten garen arte. Kasu honetan, salbuespenak hainbat lerro izan daitezke. Beraz, filebeat-ek lerro anitzeko sarrera bat bezala zenbatu behar du hurrengo lerroa data batekin hasten bada. Exchange-n erregistroak grabatzeko formatua hau da: erregistro-fitxategiko sarrera berri bakoitza data batekin hasten da. Konfigurazioan, baldintza honek itxura hau du:
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: afterZentzuzkoa da bidaltzen ari zaren mezuari etiketak gehitzea, adibidez:
tags: ['IIS', 'ex-srv1']Eta ez ahaztu hash karaktere batekin hasten diren prozesatzeko lerroetatik baztertzea:
exclude_lines: ['^#']Beraz, erregistroa irakurtzeko blokea honela izango da:
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: ['^#']Erregistroa bidaltzeko blokea
Filebeat-ek erregistro-fitxategiko sarrera indibidualak bidaltzen ditu json objektu gisa, zeinetan erregistroko sarrera zehatz bat mezu-eremu bakarrean dagoen. Informazio hau nolabait landu nahi badugu, lehenik eremu hau eremu bereizietan analizatu behar dugu. Hau, adibidez, logstash-en egin daiteke. Filebeat-eko diskoen hartzailea izango da. Hona hemen filebeat konfigurazio fitxategi batean nolakoa izan daitekeen:
output.logstash:
hosts: ["logstash1.domain.com:5044"]
Hainbat zerbitzari badaude, orduan haien oreka gaitu dezakezu: orduan filebeat-ek ez dio erregistroak bidaliko zerrendako lehen zerbitzari erabilgarrira, baina bidalitako erregistroak hainbat zerbitzarien artean banatuko ditu:
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true Filebeat-ek, bidalitako json-en erregistroak prozesatzen dituenean, mezuaren eremuan jasotako erregistro-sarreraz gain, metadatu kopuru jakin bat gehitzen du, eta horrek elastikoetan amaitzen den dokumentuaren tamainari eragiten dio. Metadatu hauek bidalketatik selektiboki ken daitezke. Hau prozesadorearen blokean egiten da prozesadorea erabiliz drop_fields. Adibidez, eremu hauek bazter ditzakezu:
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"]Baztertutako eremuen hautapena arretaz hurbildu behar duzu, horietako batzuk alde elastikotik erabil daitezkeelako indizeak eraikitzeko.
Beraz, erregistroak bidaltzeko blokeak itxura hau izango du:
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"]filebeat erregistroaren ezarpenak
Zentzuzkoa da erregistro-ezarpen hauek ezartzea:
- Erregistro-mailaren informazioa;
- Lehenespenez kokatutako fitxategietan erregistroak idazten ditugu (erregistroak direktorioa, filebeat instalazio direktorioan);
- Log-fitxategiaren izena - filebeat;
- Gorde azken 10 erregistro fitxategiak;
- Hasi biraketa tamaina 1 MBra iristen denean.
Erregistroaren azken konfigurazio-blokeak itxura hau izango du:
logging.level: info
logging.to_files: true
logging.files:
name: filebeat
keepfiles: 10
rotateeverybytes: 1048576Azken konfigurazioa
Konfigurazioa muntatu dugu eta orain honelakoa da:
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: 1048576Garrantzitsua da konfigurazio fitxategiaren formatua yml dela ulertzea. Hori dela eta, garrantzitsua da espazioak eta minus seinaleak behar bezala jartzea.
Filebeat-ek konfigurazio-fitxategia egiazta dezake eta, sintaxiak akatsak baditu, zein lerro eta lerroko sintaxia okerra den adieraziko du. Egiaztapena honela egiten da:
.filebeat.exe test configFilebeat-ek erregistro-hartzailearen sarearen erabilgarritasuna ere egiaztatu dezake. Egiaztapena honela hasten da:
.filebeat.exe test outputHurrengo zatietan Logstash eta Kibana osagaiekin Exchange-k duen konexioari eta adiskidetasunari buruz hitz egingo dut.
Esteka interesgarriak
Iturria: www.habr.com
