Mir si Frënn mat ELK an Exchange. Deel 1

Mir si Frënn mat ELK an Exchange. Deel 1

Ech starten eng Serie vun Artikelen wou ech meng Erfahrung mam Austausch an Elk verbrennen wëllen. Dëse Stack wäert eis hëllefen grouss Volumen vun de Logbicher ze verroden an net ze froe mech op wéi engem normale Login Tools refuséiert eis ze hëllefen. Loosst eis mat dem neie Loggighter begéinen.

Austausch huet e zimlech extensiven Logging System. De populärste Logbicher sinn Tracks Logbicher, déi de Schrëtt-Duerchbroch Passage vun engem spezifesche Bréif an enger Postorganisatioun stinn; Web Server Logen, déi all neie Benotzersssster-Session an de System stinn, a Logbicher vu spezifesche Web Uwendungen mat ënnerschiddlechen Grad Detail Detail. De Austausch kann och erëm d'Logbicher vun der SMTP, imap a pop3 Protokollen stoen.

Wat fir Tools kënne mir benotze fir mat Logbicher ze schaffen:

  • Standard cmlet kritt-Messagestracklog: bequem Prozess Tracking Logbicher;
  • De Logoparser Utility: Fir aloggen, benotzt eng PSudo-SQL Sichsprooch a schafft zimlech séier;
  • Externen SQL Server: Fir ganz spezifesch Fäll (zum Beispill, analyséiert Daten iwwer laang Zäit).

All dëst funktionnéiert gutt wann mir e puer Serveren hunn an de Volumen vu verschaffter Logbicher ginn an Zénger oder Honnerte vu Gigabyte gemooss. Awer wat wann d'Zuel vun de Serveren an der Dosende ass, an d'Gréisst vun de Logbicher méi wéi en Terabyte? Dëse Schema ass am meeschte wahrscheinlech unzefänken.

An dat ass wat geschitt: Gitt-messhttracklog fänkt un Zäit eraus, Logpourse op der Plafong vun der 32-Bit Architekturur, an eropluede fir d'MTQL LINKUMENT VUN DER INPROVE MAT DEN MUPPONELLT VUN DER SVORT.

Hei kënnt en neie Spiller an d'Zeen - den ELK Stack, dee speziell entwéckelt ass fir enorm Volumen vu Logbicher an enger raisonnabel Zäit a mat tolerablen Ressourceverbrauch ze jongléieren.

Am éischten Deel wäert ech Iech am Detail soen, wéi ee Filebeat verbënnt deen zum Deel vum ELK Stack gehéiert - Fëllt dat verantwortlech fir d'Liesen an einfach Text Dateien an där anerer Uwendungen hir Logbicher schreiwen. A déi folgend Artikelen wäerte mir méi enker Bléck daachen am Logstikhil an d'Kibai Komponend brennen.

Kader

Also, Feckbettagent Agent Archiv Datei kann aus dësem Site erofgeluede ginn.

Mir wäerten d'Installatioun fäerdeg maachen andeems se d'Inhalter vun der Zip Datei extrahieren. Zum Beispill an c:Program Filesfilebeat. Da musst Dir d'Powershell Skript lafen install-service-filebeat.ps1, déi abegraff ass, fir de Filebeat Service z'installéieren.

Elo si mir prett fir d'Konfiguratiounsdatei unzefänken.

Feeler Toleranz

Datkonthat garantéiert d'Liwwerung mat Logberen setzen vun de Loginebuerg Service System. Dëst gëtt erreecht andeems Dir e Register vun Entréen op Log Dateien erhalen. D'Steng-stagen Informatioun iwwer déi Records déi ausloggen, a manner Dateie gelies goufen, déi spezifesch Opféiere kënnen ausgeliwwert ginn.

Wann e Rekord net geliwwert ka ginn, Dateibestat probéiert et zréckzekommen bis et Liwwerung Confirmatioun vum Empfeelungsystem kritt ass an der Rotatiounssystem.

Wann de Service erëmbart, Datebuttek ass d'Informatioun vum Registry genannt ginn a geliwwert a geliwwert.

Dëst erlaabt Iech de Risiko ze minimiséieren fir Loginformatioun ze loggen déi muss op den Elastlisthshserverserveren an onerwaart Feeler an der Server Ënnerhaltung Operatiounen geschéckt ginn.

Dir kënnt méi iwwer dëst léieren Liest d'Dokumentatioun am Paragrafen: Wéi behält de Festhberat den Zoustand vun Dateien a wéi gëtt de Faviderat an der mannst eemol Liwwerung?

Upassung

All Konfiguratioun gëtt an der Formatkonfiguratiounsdatei gemaach yml, déi an e puer Sektiounen opgedeelt ass. Loosst eis e puer vun hinnen kucken, déi am Prozess vun der Sammele vu Logbicher vun Exchange Server involvéiert sinn.

Log Veraarbechtungsblock

De Log Veraarbechtungsblock fänkt mam Feld un:

filebeat.inputs:

Mir wäerten e gemeinsame Log Sammelinstrument benotzen:

- type: log

Nächst, uginn de Status (aktivéiert) an de Wee zum Dossier mat Logbicher. Zanter Zeissëtzeren d'Logbicher, d'Astellunge kënne d'Astellunge wéi dat fuerdere kucken:

    enabled: true
    paths:
	- C:inetpublogsLogFilesW3SVC1*.log
	- C:inetpublogsLogFilesW3SVC2*.log

Eng aner wichteg Astellung ass wéi Filebeat Multi-Line Records soll liesen. Par défaut betruecht filebeat eng Zeil vun enger Logdatei als eng Entrée. Dëst funktionnéiert gutt bis mir ufänken Ausnahmen an eisem Logbuch am Zesummenhang mat der falscher Operatioun vum Service ze kréien. An dësem Fall kënnen Ausnahmen aus verschiddene Linnen besteet. Dofir muss de Filebeat eng Multi-Linn Entrée als een zielen wann déi nächst Zeil mat engem Datum ufänkt. D'Format fir Logbicher am Exchange opzehuelen ass wéi follegt: all nei Entrée an der Logdatei fänkt mat engem Datum un. An der Konfiguratioun gesäit dës Conditioun esou aus:

multiline:
	pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
	negate: true
	match: after

Et mécht Sënn fir Tags op de Poste ze addéieren, déi Dir schéckt, fir Beispill:

  tags: ['IIS', 'ex-srv1']

An net vergiessen aus Veraarbechtungslinnen déi mat engem Hash Charakter auszeschléissen:

  exclude_lines: ['^#']

Also, de Log Liesblock wäert esou ausgesinn:

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: ['^#']

Logblock

De Datebetat schéckt eenzel Entréen an der Log Datei als JSON Objet, an deem eng spezifesch Entrée vun der Login an engem eenzege Messagefeld enthalen ass. Wa mir iergendwéi mat dëser Informatioun wëlle schaffen, musse mir dëst Feld an eenzelne Felder parken. Dëst kann gemaach ginn, zum Beispill, am Logstash. Hie wäert den Empfänger vun records vum Datebesëtzer sinn. Hei ass wéi et ausgesäit wéi an enger Datebezeat Konfiguratiounsdatei ausschalten:

output.logstash:
  hosts: ["logstash1.domain.com:5044"]

Wann et e puer Servere sinn, da kënnt Dir d'Balancen fir si aktivéieren: da schéckt de Filebeat keng Logbicher op den éischten verfügbare Server aus der Lëscht, awer verdeelt déi geschéckt Logbicher tëscht verschiddene Serveren:

hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
  loadbalance: true 

D'Dateieat, wat d'Verflichtung op de geschéckt huet deen geschéckt huet, ier den Login op den Login enthalen, wat e Wuertstrib vun der Metadaten enthält, déi an deem Etapp ëmhält. Dës Metadata ka selektiv aus der Soumissioun geläscht ginn. Dëst gëtt am Prozessorblock mat dem Prozessor gemaach drop_fields. Zum Beispill kënnt Dir déi folgend Felder ausschränken:

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

Du soll d'Auswiel vun der Basisplauen sortardiséiert ginn, well een vun hinnen kënnen op der méi elaster Säit benotzt ginn fir Indexen ze bauen.

Also, de Logblock Block gesäit aus:

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

FileBetat Logging Astellunge

Et mécht Sënn fir déi folgend Logging-Astellungen ze setzen:

  • Logging Niveau Info;
  • Mir schreiwen Logbicher op Dateien déi standardiséiert sinn (Logbicherverzeechnes, am Filebeat Installatiounsverzeichnis);
  • Logdatei Numm - Datebezeat;
  • Späichert déi lescht 10 Log Dateien;
  • Start Rotatioun wann d'Gréisst erreecht 1MB.

De Finale Logging Konfiguratiounsblock gesäit aus:

logging.level: info
logging.to_files: true
logging.files:
  name: filebeat
  keepfiles: 10
  rotateeverybytes: 1048576

Finale Konfiguratioun

Mir hunn d'Konfiguratioun versammelt an elo gesäit et aus:

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

Et ass wichteg ze verstoen datt d'Konfiguratiounsdatei Format Format ass. Dofir ass et wichteg ze ginn, u Plazen an minus Zeellen ze féieren.

Filebeat kann d'Konfiguratiounsdatei iwwerpréiwen a wann d'Syntax Fehler enthält, gëtt et uginn wéi eng Linn a wou an der Linn d'Syntax falsch ass. D'Kontroll gëtt wéi follegt gemaach:

.filebeat.exe test config

Dateien kann och d'Netzdéierungsdatesser vum Loge Empfänger kontrolléieren. De Scheck leeft esou:

.filebeat.exe test output

An de folgenden Deeler schwätze ech iwwer d'Verbindung a Frëndschaft vum Austausch mam Austausch mat dem Logstash a Kibana Komponenten.

Nëtzlech Adressen

Source: will.com

Kaaft zouverlässeg Hosting fir Site mat DDoS Schutz, VPS VDS Server 🔥 Kaaft zouverléissegt Websäithosting mat DDoS-Schutz, VPS VDS Server | ProHoster