ΠΠ°ΡΠΈΠ½Π°Ρ ΡΠ΅ΡΠΈΡ ΡΡΠ°ΡΠ΅ΠΉ, Π³Π΄Π΅ Ρ
ΠΎΡΡ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠΏΡΡΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Exchange ΠΈ ELK. ΠΡΠΎΡ ΡΡΡΠΊ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π»ΠΎΠ³ΠΎΠ² ΠΈ Π½Π΅ Π·Π°Π΄Π°Π²Π°ΡΡΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ, ΠΏΡΠΈ ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠΊΠ°ΠΆΡΡΡΡ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ Π½ΠΎΠ²ΡΠΌ Π±ΠΎΠΉΡΠΎΠΌ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ.
Exchange ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΠ²Π»ΡΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π‘Π°ΠΌΡΠ΅ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠ΅ Π»ΠΎΠ³ΠΈ β Π»ΠΎΠ³ΠΈ ΡΡΡΠΊΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΈΡΡΠΌΠ° Π²Π½ΡΡΡΠΈ ΠΏΠΎΡΡΠΎΠ²ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ; Π»ΠΎΠ³ΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅ΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΈ Π»ΠΎΠ³ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ
Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ ΡΠ°Π·Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΡΡ Π΄Π΅ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ Exchange ΡΠΌΠ΅Π΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ ΡΡΡΡΠ΅ Π»ΠΎΠ³ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ² smtp, imap ΠΈ pop3.
ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ:
- Π¨ΡΠ°ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π»Π΅Ρ Get-MessageTrackingLog: ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π»ΠΎΠ³ΠΈ ΡΡΡΠΊΠΈΠ½Π³Π°;
- Π£ΡΠΈΠ»ΠΈΡΠ° logparser: Π΄Π»Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎ-SQL ΡΠ·ΡΠΊ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΡΡΡΠΎ;
- ΠΠ½Π΅ΡΠ½ΠΈΠΉ SQL-ΡΠ΅ΡΠ²Π΅Ρ: Π΄Π»Ρ ΠΎΡΠΎΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ»ΡΡΠ°Π΅Π² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½ΡΡ Π·Π° Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ).
ΠΡΡ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ΠΏΠ»ΠΎΡ ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΏΠ°ΡΠ° ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π»ΠΎΠ³ΠΎΠ² ΠΈΠ·ΠΌΠ΅ΡΡΠ΅ΡΡΡ Π΄Π΅ΡΡΡΠΊΠ°ΠΌΠΈ-ΡΠΎΡΠ½ΡΠΌΠΈ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ. Π ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΈΠ΄ΡΡ Π½Π° Π΄Π΅ΡΡΡΠΊΠΈ, Π° ΡΠ°Π·ΠΌΠ΅Ρ Π»ΠΎΠ³ΠΎΠ² ΠΏΠ΅ΡΠ΅Π²Π°Π»ΠΈΠ» Π·Π° ΡΠ΅ΡΠ°Π±Π°ΠΉΡ? ΠΡΠ° ΡΡ Π΅ΠΌΠ°, Π²Π΅ΡΠΎΡΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΡΠΏΠ°ΡΡΡΡ.
Π Π²ΠΎΡ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ: Get-MessageTrackingLog Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΎΡΠ²Π°Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎ ΡΠ°ΠΉΠΌ-Π°ΡΡΡ, logparser ΡΠΏΠΈΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΡΠΎΠ»ΠΎΠΊ 32-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π° Π²ΡΠ³ΡΡΠ·ΠΊΠ° Π² SQL-ΡΠ΅ΡΠ²Π΅Ρ Π»ΠΎΠΌΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΌΡΠΉ Π½Π΅ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π²Π°ΡΠΈΠ² ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠΉ exception ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ°.
Π’ΡΡ Π½Π° ΡΡΠ΅Π½Ρ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π½ΠΎΠ²ΡΠΉ ΠΈΠ³ΡΠΎΠΊ β ΡΡΡΠΊ ELK, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΠΎΡΠ΅Π½ ΠΏΠΎΠ΄ ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ°ΠΌΠΈ Π»ΠΎΠ³ΠΎΠ² Π² ΡΠ°Π·ΡΠΌΠ½ΡΠ΅ ΡΡΠΎΠΊΠΈ ΠΈ Ρ ΡΠ΅ΡΠΏΠΈΠΌΡΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΡΡΡΠΎΠ².
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ filebeat, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠ°ΡΡΠΈ ΡΡΠ΅ΠΊΠ° ELK β ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΏΡΠΎΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΡΡΡ ΡΠ²ΠΎΠΈ Π»ΠΎΠ³ΠΈ. Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ Logstash ΠΈ Kibana.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠ°ΠΊ, ΡΠ°ΠΉΠ»-Π°ΡΡ
ΠΈΠ² Π°Π³Π΅Π½ΡΠ° filebeat
ΠΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ zip-ΡΠ°ΠΉΠ»Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² c:Program Filesfilebeat
. ΠΠ°ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ PowerShell-ΡΠΊΡΠΈΠΏΡ install-service-filebeat.ps1
, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ΄ΡΡ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ΅, Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° filebeat.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ Π³ΠΎΡΠΎΠ²Ρ Π½Π°ΡΠ°ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ
Filebeat Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΡ Π»ΠΎΠ³ΠΎΠ² Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ². Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠΎ Π·Π° ΡΡΡΡ Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ΅Π΅ΡΡΡΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π°Ρ . Π ΡΠ΅Π΅ΡΡΡΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ΅Ρ Π·Π°ΠΏΠΈΡΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΡΠΎΡΠΈΡΠ°Π½Ρ ΠΈΠ· Π»ΠΎΠ³-ΡΠ°ΠΉΠ»ΠΎΠ², ΠΈ ΠΎΡΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΠΌΠ΅ΡΡΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π·Π°ΠΏΠΈΡΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ, ΡΠΎ filebeat Π±ΡΠ΄Π΅Ρ ΠΏΡΡΠ°ΡΡΡΡ Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΎΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π»ΠΎΠ³-ΡΠ°ΠΉΠ» Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΎΡΠ°ΡΠΈΠΈ.
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠ° filebeat Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ· ΡΠ΅Π΅ΡΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ ΠΈ Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΡΡ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π² Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π°Ρ , ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ΅Π΅ΡΡΡΠ΅.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΠΊ ΠΏΠΎΡΠ΅ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π»ΠΎΠ³Π°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΡ elasticlogstash, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΡΡ ΡΠ±ΠΎΠ΅Π² ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ°
ΠΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠΎΡΠΌΠ°ΡΠ° yml
, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π·Π±ΠΈΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΠΈΠΉ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ² Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Exchange.
ΠΠ»ΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΠΎΠ³ΠΎΠ²
ΠΠ»ΠΎΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΠΎΠ³ΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠ»Ρ:
filebeat.inputs:
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΡΠ±ΠΎΡΠ° Π»ΠΎΠ³ΠΎΠ²:
- type: log
ΠΠ°Π»Π΅Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΡΡΠ°ΡΡΡ (Π²ΠΊΠ»ΡΡΠ΅Π½) ΠΈ ΠΏΡΡΠΈ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ IIS Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ:
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
ΠΡΡ ΠΎΠ΄Π½Π° Π²Π°ΠΆΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°: ΠΊΠ°ΠΊ filebeat Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ filebeat ΡΡΠΈΡΠ°Π΅Ρ ΠΎΠ΄Π½Ρ ΡΡΡΠΎΠΊΡ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»Π° ΠΎΠ΄Π½ΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ. ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ, ΠΏΠΎΠΊΠ° Ρ Π½Π°Ρ Π² Π»ΠΎΠ³ Π½Π΅ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ. ΠΠΎΡΡΠΎΠΌΡ filebeat Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΈΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½Ρ, Π΅ΡΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΡΠΎΠΊΠ° Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π΄Π°ΡΡ. Π€ΠΎΡΠΌΠ°Ρ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΎΠ³ΠΎΠ² Π² Exchange ΡΠ°ΠΊΠΎΠΉ: ΠΊΠ°ΠΆΠ΄Π°Ρ Π½ΠΎΠ²Π°Ρ Π·Π°ΠΏΠΈΡΡ Π² Π»ΠΎΠ³-ΡΠ°ΠΉΠ» Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ Π΄Π°ΡΡ. Π ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠΎ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ³ΠΈ Π² ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Π·Π°ΠΏΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
tags: ['IIS', 'ex-srv1']
Π Π½Π΅ Π·Π°Π±ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΡΡΠΎΠΊΠΈ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ Ρ ΡΡ-ΡΠΈΠΌΠ²ΠΎΠ»Π°:
exclude_lines: ['^#']
ΠΡΠ°ΠΊ, Π±Π»ΠΎΠΊ ΡΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
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: ['^#']
ΠΠ»ΠΎΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π»ΠΎΠ³ΠΎΠ²
ΠΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² Π»ΠΎΠ³ ΡΠ°ΠΉΠ»Π΅ filebeat ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° json, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΈΠ· Π»ΠΎΠ³Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΠΎΠ»Π΅ message. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΠΎ ΠΏΠΎΠ»Π΅ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΠ°ΡΡΠΈΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ. Π‘Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² logstash. ΠΠ½ ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΌ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· filebeat. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ filebeat:
output.logstash:
hosts: ["logstash1.domain.com:5044"]
ΠΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ Π΄Π»Ρ Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΡ: ΡΠΎΠ³Π΄Π° filebeat Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π»ΠΎΠ³ΠΈ Π½Π΅ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π»ΠΎΠ³ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ:
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true
Filebeat ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π»ΠΎΠ³ΠΎΠ² Π² ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ json ΠΏΠΎΠΌΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠΈ Π»ΠΎΠ³Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΏΠΎΠ»Π΅ message, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ Π² elastic. ΠΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ ΠΈΠ· ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ±ΡΠ°ΡΡ. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ Π² Π±Π»ΠΎΠΊΠ΅ processor Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° drop_fields
. ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ:
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"]
Π Π²ΡΠ±ΠΎΡΡ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΠΎΠΉΡΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ, Π²Π΅Π΄Ρ ΡΠ°ΡΡΡ ΠΈΠ· Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ elastic Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ².
ΠΡΠ°ΠΊ, Π±Π»ΠΎΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π»ΠΎΠ³ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
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
ΠΠΌΠ΅Π΅Ρ ΡΠΌΡΡΠ» Π²ΡΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
- Π£ΡΠΎΠ²Π΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ info;
- ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π»ΠΎΠ³ΠΈ Π² ΡΠ°ΠΉΠ»Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ Π΄Π΅ΡΠΎΠ»ΡΡ (Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ logs, Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ filebeat);
- ΠΠΌΡ ΡΠ°ΠΉΠ»Π° Π»ΠΎΠ³Π° β filebeat;
- Π₯ΡΠ°Π½ΠΈΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 10 ΡΠ°ΠΉΠ»ΠΎΠ² Π»ΠΎΠ³ΠΎΠ²;
- ΠΠ°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΡΠ°ΡΠΈΡ ΠΏΡΠΈ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° 1ΠΠ±.
Π€ΠΈΠ½Π°Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
logging.level: info
logging.to_files: true
logging.files:
name: filebeat
keepfiles: 10
rotateeverybytes: 1048576
ΠΡΠΎΠ³ΠΎΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡ ΡΠΎΠ±ΡΠ°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠ½Π° Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
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
ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΡΠΎΡΠΌΠ°Ρ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ β yml. ΠΠΎΡΡΠΎΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°ΡΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ Π·Π½Π°ΠΊΠΈ ΠΌΠΈΠ½ΡΡΠ°.
Filebeat ΡΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ, Π΅ΡΠ»ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ, β ΡΠΊΠ°ΠΆΠ΅Ρ, Π² ΠΊΠ°ΠΊΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π½Π΅Π²Π΅ΡΠ΅Π½. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
.filebeat.exe test config
ΠΡΡ filebeat ΡΠΌΠ΅Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΠ° Π»ΠΎΠ³ΠΎΠ². ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΠΊ:
.filebeat.exe test output
Π ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ°ΡΡΡΡ Ρ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΏΡΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΡΡΠΆΠ±Ρ Exchange Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Logstash ΠΈ Kibana.
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
How Filebeat works Log input Manage multiline messages Configure the Logstash output Drop fields from events Configure logging
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com