ኤክሰስቼንጅ እና ኤልኬን በማገናኘት ያገኘሁትን ልምድ የሚያካፍሉ ተከታታይ መጣጥፎችን ጀምሬያለሁ። ይህ ቁልል ባህላዊ የሎግንግ መሳሪያዎችዎ ምን ያህል መጠን መስራት እንደሚያቆሙ ሳታስቡ ትላልቅ የሎግ መጠኖችን ለማስኬድ ይረዳዎታል። ከዚህ አዲስ የሎግ ተዋጊ ጋር እንተዋወቅ።
ኤክስቼንጅ ሰፊ የሆነ የምዝግብ ማስታወሻ ስርዓት አለው። በብዛት ጥቅም ላይ የሚውሉት ምዝግብ ማስታወሻዎች በፖስታ ድርጅት ውስጥ የአንድ የተወሰነ ኢሜይል ደረጃ በደረጃ ሂደት የሚከታተሉ የምዝግብ ማስታወሻዎች፤ በስርዓቱ ውስጥ ያለውን እያንዳንዱን አዲስ የተጠቃሚ ክፍለ ጊዜ የሚከታተሉ የድር አገልጋይ ምዝግብ ማስታወሻዎች፤ እና የተለያዩ የክፍለ ጊዜ ዝርዝሮች ያላቸው የተወሰኑ የድር መተግበሪያዎች ምዝግብ ማስታወሻዎች ናቸው። ኤክስቼንጅ እንዲሁም ለSMTP፣ IMAP እና POP3 ፕሮቶኮሎች ጥሬ ምዝግብ ማስታወሻዎችን ማከማቸት ይችላል።
ከሎግ ጋር ለመስራት ምን አይነት መሳሪያዎችን መጠቀም እንችላለን?
- መደበኛው Get-MessageTrackingLog cmdlet፡ የመከታተያ ምዝግብ ማስታወሻዎችን በቀላሉ ያስኬዳል፤
- የሎፓርሰር መገልገያ፡ ለሎግንግ የሐሰት-SQL ቋንቋን ይጠቀማል እና በፍጥነት ይሰራል፤
- ውጫዊ የSQL አገልጋይ፡ በጣም ለተወሰኑ ጉዳዮች (ለምሳሌ ለረጅም ጊዜ ውሂብን መተንተን)።
ሁለት ሰርቨሮች ሲኖሩን እና የሚከናወኑት የምዝግብ ማስታወሻዎች መጠን በአስር ወይም በመቶዎች የሚቆጠሩ ጊጋባይት ሲለካ ይህ ሁሉ በጥሩ ሁኔታ ይሰራል። ነገር ግን በደርዘን የሚቆጠሩ ሰርቨሮች ቢኖሩ እና የምዝግብ ማስታወሻው መጠን ከአንድ ቴራባይት በላይ ቢሆንስ? ይህ ስርዓት መፈራረስ ሊጀምር ይችላል።
እና ምን እየሆነ እንዳለ እነሆ፡ Get-MessageTrackingLog ጊዜው ማለፉ ይጀምራል፣ logparser የ32-ቢት አርክቴክቸር ወሰን ላይ ይደርሳል፣ እና ወደ SQL Server መስቀል በጣም ተገቢ ባልሆነ ጊዜ ይቋረጣል፣ ከአገልግሎቱ የብዙ መስመር ልዩነትን ለማስኬድ አልቻለም።
አዲስ ተጫዋች ወደ ዋናው ነገር የሚገባው እዚህ ነው፡- የELK ቁልል፣ ይህም ከፍተኛ መጠን ያላቸውን የምዝግብ ማስታወሻዎችን በተመጣጣኝ የጊዜ ገደብ ውስጥ እና በአግባቡ ጥቅም ላይ በሚውል የሀብት ፍጆታ ለማዋሃድ በተለይ የተነደፈ ነው።
በመጀመሪያው ክፍል በዝርዝር እነግርዎታለሁ፣ የELK ቁልል አካል የሆነውን Filebeat እንዴት ማገናኘት እንደሚቻል — የተለያዩ አፕሊኬሽኖች ምዝግብ ማስታወሻዎቻቸውን የሚጽፉባቸውን ግልጽ የጽሑፍ ፋይሎችን የማንበብ እና የመላክ ኃላፊነት አለበት። በሚቀጥሉት መጣጥፎች፣ የሎግስታሽ እና የኪባና ክፍሎችን በዝርዝር እንሸፍናለን።
ቅንብር
ስለዚህ፣ የፋይልቢት ወኪል ማህደር ፋይል .
የዚፕ ፋይሉን ይዘቶች በቀላሉ በማውጣት መጫኑን እናከናውናለን። ለምሳሌ፣ በ c:Program Filesfilebeatከዚያ የ PowerShell ስክሪፕትን ማስኬድ ያስፈልግዎታል። install-service-filebeat.ps1, ይህም ከኪቱ ጋር አብሮ የሚመጣ ሲሆን የፋይልቢት አገልግሎትን ለመጫን።
አሁን የውቅር ፋይሉን ማበጀት ለመጀመር ዝግጁ ነን።
ስህተትን መታገስ
Filebeat ወደ ሎግ አሰባሰብ ስርዓቱ የሎግ ማድረስን ያረጋግጣል። ይህ የሚከናወነው የሎግ ፋይል መዝገብ በመጠበቅ ነው። መዝገቡ ከሎግ ፋይሎች የተነበቡትን መዝገቦች መረጃ ያከማቻል እና ወደ መድረሻቸው በተሳካ ሁኔታ የተደረሱትን የተወሰኑ መዝገቦች ምልክት ያደርጋል።
አንድ መዝገብ ሊደርስ ካልቻለ፣ ፋይብቢት ከተቀባዩ ስርዓት የማድረስ ማረጋገጫ እስኪቀበል ድረስ ወይም በማሽከርከር ወቅት የመጀመሪያው የሎግ ፋይል እስኪሰረዝ ድረስ እንደገና ለመላክ ይሞክራል።
አገልግሎቱ እንደገና ሲጀመር፣ ፋይቤልት ከመዝገቡ ስለ መጨረሻው የተነበበ እና የተረከቡ መዝገቦችን መረጃ ያነባል እና በመዝገቡ ውስጥ ባለው መረጃ ላይ በመመስረት በመዝገብ ፋይሎች ውስጥ ያሉ መዝገቦችን ያነባል።
ይህ ባልተጠበቁ ውድቀቶች እና በአገልጋይ ጥገና ስራዎች ወቅት ወደ elasticlogstash አገልጋዮች መላክ የሚያስፈልገውን የምዝግብ ማስታወሻ መረጃ የማጣት አደጋን ለመቀነስ ይረዳል።
ስለዚህ ጉዳይ ተጨማሪ መረጃ እዚህ ማግኘት ይችላሉ ፦ Filebeat የፋይሎችን ሁኔታ እንዴት ይጠብቃል እና Filebeat ቢያንስ አንድ ጊዜ ማድረስን እንዴት ያረጋግጣል?
በደንብ ማድረግ
ሁሉም ውቅር የሚከናወነው በቅርጸቱ የውቅር ፋይል ውስጥ ነው yml, ይህም በበርካታ ክፍሎች የተከፈለ ነው። ከ Exchange አገልጋዮች ምዝግብ ማስታወሻዎችን በመሰብሰብ ላይ የተሳተፉትን አንዳንዶቹን እንመልከት።
የሎግ ማቀነባበሪያ ክፍል
የሎግ ማቀነባበሪያ ብሎክ የሚጀምረው በመስክ ነው፡
filebeat.inputs:የተለመደ የሎግ መሰብሰቢያ መሳሪያ እንጠቀማለን፡
- type: logቀጥሎ፣ ሁኔታውን (ነቅቷል) እና ወደ ሎግ ፎልደር የሚወስደውን መንገድ ይግለጹ። ለምሳሌ፣ ለ IIS ሎጎች፣ ቅንብሮቹ እንደሚከተለው ሊሆኑ ይችላሉ፡
enabled: true
paths:
- C:inetpublogsLogFilesW3SVC1*.log
- C:inetpublogsLogFilesW3SVC2*.log
ሌላ አስፈላጊ ቅንብር፡- ፋይቤል ባለብዙ መስመር ግቤቶችን እንዴት ማንበብ እንዳለበት። በነባሪነት፣ ፋይቤል የሎግ ፋይል አንድ መስመር እንደ አንድ ግቤት ይቆጥራል። ይህ ከአገልግሎት ብልሽቶች ጋር የተያያዙ ልዩ ሁኔታዎችን መቀበል እስክንጀምር ድረስ በጥሩ ሁኔታ ይሰራል። በዚህ ሁኔታ፣ ልዩ ሁኔታዎች በርካታ መስመሮችን ሊያካትቱ ይችላሉ። ስለዚህ፣ ቀጣዩ መስመር በቀን የሚጀምር ከሆነ ፋይቤል ባለብዙ መስመር ግቤትን እንደ አንድ መቁጠር አለበት። በ 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 ነገር የግለሰብ የሎግ ፋይል ግቤቶችን ይልካል። ከዚህ መረጃ ጋር መስራት ከፈለግን፣ ይህንን መስክ በመጀመሪያ ወደ ግለሰባዊ መስኮች መተንተን አለብን። ይህ ለምሳሌ፣ በlogstash ውስጥ ሊከናወን ይችላል፣ እሱም የfilebeat ግቤቶች ተቀባይ ይሆናል። በfilebeat ውቅር ፋይል ውስጥ ምን ሊመስል እንደሚችል እነሆ፡
output.logstash:
hosts: ["logstash1.domain.com:5044"]
ብዙ አገልጋዮች ካሉዎት፣ ለእነሱ የጭነት ሚዛንን ማንቃት ይችላሉ፡ ከዚያም ፋይብቢት ምዝግብ ማስታወሻዎችን በዝርዝሩ ላይ ወዳለው የመጀመሪያው አገልጋይ አይልክም፣ ነገር ግን የተላኩትን ምዝግብ ማስታወሻዎች በበርካታ አገልጋዮች መካከል ያሰራጫል፡
hosts: ["logstash1.domain.com:5044", "logstash2.domain.com:5044"]
loadbalance: true ምዝግብ ማስታወሻዎችን ወደ JSON ሲያስኬዱ፣ Filebeat በመልእክት መስኩ ውስጥ ባለው የሎግ ግቤት ላይ የተወሰነ ሜታዳታ ያክላል፣ ይህም ወደ ኤላስቲክ የተላከውን ሰነድ መጠን ይነካል። ይህ ሜታዳታ ከተላከው ሊወገድ ይችላል። ይህ የሚከናወነው በማቀነባበሪያ ብሎክ ውስጥ በማቀነባበሪያው በመጠቀም ነው። 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"]የተገለሉ መስኮችን በሚመርጡበት ጊዜ ጥንቃቄ ማድረግ አስፈላጊ ነው፣ ምክንያቱም አንዳንዶቹ ኢንዴክሶችን ለመገንባት በመለጠጥ በኩል ጥቅም ላይ ሊውሉ ይችላሉ።
ስለዚህ፣ የሎግ መላኪያ ብሎክ እንደዚህ ይመስላል፡
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"]የፋይልቢት ምዝግብ ማስታወሻ ቅንብሮች
የሚከተሉትን የምዝግብ ማስታወሻ ቅንብሮችን ማዋቀር ምክንያታዊ ነው-
- የምዝግብ ማስታወሻ ደረጃ መረጃ;
- በነባሪነት በሚገኙ ፋይሎች ላይ ምዝግብ ማስታወሻዎችን እንጽፋለን (የሎግስ ማውጫ፣ በፋይልቢት ጭነት ማውጫ ውስጥ)፤
- የሎግ ፋይል ስም ፋይቤልት ነው፤
- የመጨረሻዎቹን 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 configFilebeat የሎግ ተቀባይን የኔትወርክ ተገኝነት ማረጋገጥም ይችላል። ቼኩን እንዴት ማስኬድ እንደሚቻል እነሆ፡
.filebeat.exe test outputበሚቀጥሉት ክፍሎች፣ የExchange ን ከLogstash እና Kibana ክፍሎች ጋር ስለማገናኘት እና ስለማዋሃድ እናገራለሁ።
ጠቃሚ አገናኞች
ምንጭ: hab.com
