ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ምዝግብ ማስታወሻዎች የስርዓቱ አስፈላጊ አካል ናቸው, ይህም እንደተጠበቀው እንደሚሰራ (ወይም እንደማይሰራ) እንዲረዱ ያስችልዎታል. በማይክሮ ሰርቪስ አርክቴክቸር ሁኔታዎች ከሎግ ጋር መሥራት የልዩ ኦሊምፒያድ የተለየ ዲሲፕሊን ይሆናል። ብዙ ትኩረት የሚሹ ጉዳዮች አሉ፡-

  • ከመተግበሪያው ውስጥ ምዝግብ ማስታወሻዎችን እንዴት እንደሚጽፉ;
  • የምዝግብ ማስታወሻዎች የት እንደሚጽፉ;
  • ለማከማቻ እና ለማቀነባበር ምዝግብ ማስታወሻዎችን እንዴት እንደሚያቀርቡ;
  • ምዝግብ ማስታወሻዎችን እንዴት እንደሚሠሩ እና እንደሚያከማቹ።

በአሁኑ ጊዜ ታዋቂ የሆኑ ኮንቴይነላይዜሽን ቴክኖሎጂዎችን መጠቀም በችግር መፍቻ አማራጮች መስክ ላይ በሬክ ላይ አሸዋ ይጨምራል.

ስለ ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" የሪፖርቱ ግልባጭ ይህ ነው ።

ማን ያስባል እባካችሁ ከድመቷ በታች።

ስሜ ዩሪ ቡሽሜሌቭ እባላለሁ። ላዛዳ እሰራለሁ። ዛሬ የምዝግብ ማስታወሻዎቻችንን እንዴት እንደሠራን, እንዴት እንደሰበሰብን እና እዚያ እንደጻፍን እናገራለሁ.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ከየት ነን? እኛ ማን ነን? ላዛዳ በደቡብ ምሥራቅ እስያ በስድስት አገሮች ውስጥ #1 የመስመር ላይ ቸርቻሪ ነው። እነዚህ ሁሉ አገሮች በመረጃ ማዕከሎች ውስጥ ተከፋፍለዋል. አሁን በአጠቃላይ 4 የመረጃ ማእከሎች አሉ ይህ ለምን አስፈላጊ ነው? ምክንያቱም አንዳንድ ውሳኔዎች በማዕከሎች መካከል በጣም ደካማ ግንኙነት በመኖሩ ነው. የማይክሮ አገልግሎት አርክቴክቸር አለን። 80 ማይክሮ አገልገሎቶች እንዳሉን ሳውቅ ተገረምኩ። ስራውን በምዝግብ ማስታወሻ ስጀምር ከነሱ ውስጥ 20 ያህሉ ብቻ ነበሩ ። በተጨማሪም ፣ በጣም ትልቅ የሆነ የPHP ቅርስ አለ ፣ እኔም አብሬው መኖር እና መታገስ አለብኝ። ይህ ሁሉ ለስርዓቱ በአጠቃላይ በደቂቃ ከ6 ሚሊዮን በላይ መልዕክቶችን ያመነጨናል። ከዚህ ጋር እንዴት ለመኖር እየሞከርን እንዳለን እና ይህ ለምን እንደ ሆነ እናሳያለን።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

በሆነ መንገድ በእነዚህ 6 ሚሊዮን መልዕክቶች መኖር አለብህ። ምን እናድርግላቸው? 6 ሚሊዮን መልዕክቶች ያስፈልጋሉ:

  • ከመተግበሪያው ላክ
  • ለማድረስ መቀበል
  • ለመተንተን እና ለማከማቸት ያቅርቡ.
  • ለመተንተን
  • በሆነ መንገድ አከማች.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ሦስት ሚሊዮን መልእክቶች በነበሩበት ጊዜ አንድ ዓይነት መልክ ነበረኝ. ምክንያቱም በትንሽ ሳንቲም ነው የጀመርነው። የማመልከቻ ምዝግብ ማስታወሻዎች እዚያ እንደተጻፉ ግልጽ ነው. ለምሳሌ፣ ከመረጃ ቋቱ ጋር መገናኘት አልተቻለም፣ ከመረጃ ቋቱ ጋር መገናኘት ይችላል፣ ነገር ግን የሆነ ነገር ማንበብ አልቻለም። ነገር ግን ከዚህ በተጨማሪ፣ እያንዳንዳችን ማይክሮ አገልግሎቶቻችን የመዳረሻ መዝገብ ይጽፋሉ። ወደ ማይክሮ አገልግሎት የሚደርሰው እያንዳንዱ ጥያቄ በምዝግብ ማስታወሻው ውስጥ ይወድቃል። ለምን ይህን እያደረግን ነው? ገንቢዎች መፈለግ መቻል ይፈልጋሉ። እያንዳንዱ የመዳረሻ ምዝግብ ማስታወሻ መስኩን ይይዛል፣ በዚህ መሠረት ልዩ በይነገጽ መላውን ሰንሰለት ፈትቶ ምልክቱን በሚያምር ሁኔታ ያሳያል። ምልክቱ ጥያቄው እንዴት እንደሄደ ያሳያል፣ እና ይሄ ገንቢዎቻችን ማንኛውንም ያልታወቀ ቆሻሻን በፍጥነት እንዲቋቋሙ ያግዛቸዋል።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ከእሱ ጋር እንዴት መኖር ይቻላል? አሁን የአማራጮች መስክን በአጭሩ እገልጻለሁ - ይህ ችግር በአጠቃላይ እንዴት እንደሚፈታ. የምዝግብ ማስታወሻዎችን የመሰብሰብ ፣ የማስተላለፍ እና የማከማቸት ችግርን እንዴት መፍታት እንደሚቻል ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ከማመልከቻው እንዴት እንደሚፃፍ? የተለያዩ መንገዶች እንዳሉ ግልጽ ነው. በተለይም ፋሽን ጓዶች እንደሚነግሩን ምርጥ ልምምድ አለ. አያቶች እንደተናገሩት ሁለት ዓይነት የድሮ ትምህርት ቤቶች አሉ. ሌሎች መንገዶችም አሉ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

የምዝግብ ማስታወሻዎች ስብስብ, ሁኔታው ​​በግምት ተመሳሳይ ነው. ይህንን ልዩ ክፍል ለመፍታት ብዙ አማራጮች የሉም. ብዙዎቹ አሉ, ግን ገና ብዙ አይደሉም.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ነገር ግን በማድረስ እና በቀጣይ ትንታኔዎች, የልዩነቶች ብዛት መበተን ይጀምራል. እያንዳንዱን አማራጭ አሁን አልገልጽም። ዋናዎቹ አማራጮች በርዕሱ ላይ ፍላጎት ለነበራቸው ሁሉ በደንብ የሚታወቁ ይመስለኛል.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

በላዛዳ እንዴት እንዳደረግን እና እንዴት እንደጀመረ አሳያችኋለሁ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ከአንድ አመት በፊት ወደ ላዛዳ መጣሁ እና ወደ ሎግ ፕሮጄክት ተላክሁ. እዚያም እንደዚህ ነበር። ከማመልከቻው ውስጥ ያለው መዝገብ ለ stdout እና stderr ተጽፏል። ሁሉም ነገር የተደረገው በፋሽን ነው። ግን ከዚያ በኋላ ገንቢዎቹ ከመደበኛ ጅረቶች ውስጥ ጣሉት ፣ እና ከዚያ የመሠረተ ልማት ስፔሻሊስቶች በሆነ መንገድ ያውቁታል። በመሠረተ ልማት ስፔሻሊስቶች እና በገንቢዎች መካከል፣ “ኧረ... በቃ፣ በቃ ፋይል ውስጥ ከሼል ጋር እናጠቃልላቸው፣ እና ያ ነው” የሚሉ ፈታኞችም አሉ። እና ይህ ሁሉ በእቃ መያዢያ ውስጥ ስለሆነ, በትክክል በመያዣው ውስጥ ጠቅልለው, በውስጡ ያለውን ማውጫ ካርታ አውጥተው እዚያ አስቀምጠውታል. ምን እንደተፈጠረ ለሁሉም ሰው ግልፅ ነው ብዬ አስባለሁ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ትንሽ ወደ ፊት እንመልከት። እነዚህን ምዝግብ ማስታወሻዎች እንዴት እንዳደረስን. አንድ ሰው የ td-ኤጀንትን መርጧል፣ እሱም በትክክል አቀላጥፎ የሚያውቅ ግን አቀላጥፎ አይደለም። የእነዚህ ሁለት ፕሮጀክቶች ግንኙነት አሁንም አልገባኝም, ግን ስለ ተመሳሳይ ነገር ይመስላል. እና ይሄ አቀላጥፎ የሚናገር፣ በ Ruby የተጻፈ፣ የምዝግብ ማስታወሻ ፋይሎችን ያንብቡ፣ አንዳንድ መደበኛ አገላለጾችን በመጠቀም ወደ JSON ተነተነ። ከዚያም ወደ ካፍካ ተላኩ። በተጨማሪም፣ በካፍካ፣ ለእያንዳንዱ ኤፒአይ 4 የተለያዩ ርዕሰ ጉዳዮች ነበሩን። ለምን 4? ሕያው ስላለ፣ ዝግጅት አለ፣ እና stdout እና stderr ስላሉ ነው። ገንቢዎች ያመርቷቸዋል, እና የመሠረተ ልማት ሰራተኞች በካፍካ ውስጥ መፍጠር አለባቸው. ከዚህም በላይ ካፍካ በሌላ ክፍል ተቆጣጠረ። ስለዚህ, ለእያንዳንዱ ኤፒአይ 4 ርዕሶችን እንዲፈጥሩ ትኬት መፍጠር አስፈላጊ ነበር. ሁሉም ረስተውታል። በአጠቃላይ, ቆሻሻ እና ቆሻሻ ነበር.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ቀጥሎ ምን አደረግን? ወደ ካፍካ ልከናል። ከካፍካ በተጨማሪ ግማሹ የምዝግብ ማስታወሻዎች ወደ ሎግስታሽ በረሩ። የቀረው የግማሽ ምዝግብ ማስታወሻዎች ተጋርተዋል. አንዳንዶቹ ወደ አንድ ግሬይሎግ፣ አንዳንዶቹ ወደ ሌላ ግሬይሎግ በረሩ። በውጤቱም፣ ይህ ሁሉ ወደ አንድ የElasticsearch ዘለላ በረረ። ይህ ሁሉ ውጥንቅጥ መጨረሻ ላይ ወደቀ ማለት ነው። ያንን ማድረግ የለብህም!

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ከላይ ሲታይ ይህ ይመስላል. ያንን ማድረግ የለብህም! እዚህ, የችግር ቦታዎች ወዲያውኑ በቁጥሮች ምልክት ይደረግባቸዋል. በእውነቱ ብዙ አሉ ፣ ግን 6 በእውነቱ ችግር ያለባቸው ናቸው ፣ አንድ ነገር መደረግ ያለበት። አሁን ስለእነሱ በተናጠል እናገራለሁ.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እዚህ (1,2,3) ፋይሎችን እንጽፋለን እና, በዚህ መሠረት, እዚህ በአንድ ጊዜ ሶስት ራኮች አሉ.

የመጀመሪያው (1) የሆነ ቦታ መፃፍ ያስፈልገናል. ኤፒአይ በቀጥታ ወደ ፋይል የመፃፍ ችሎታ መስጠት ሁልጊዜ የሚፈለግ አይደለም። ኤፒአይ በኮንቴይነር ውስጥ እንዲገለል እና እንዲያውም የተሻለው ተነባቢ ብቻ እንዲሆን የሚፈለግ ነው። እኔ የስርዓት አስተዳዳሪ ነኝ፣ ስለዚህ ለእነዚህ ነገሮች ትንሽ አማራጭ እይታ አለኝ።

ሁለተኛው ነጥብ (2,3) ወደ ኤፒአይ የሚመጡ ብዙ ጥያቄዎች አሉን. ኤፒአይ ወደ ፋይል ብዙ ውሂብ ይጽፋል። ፋይሎቹ እያደጉ ናቸው። እነሱን ማዞር ያስፈልገናል. ምክንያቱም አለበለዚያ ምንም ዲስኮች እዚያ ማስቀመጥ አይችሉም. እነሱን ማሽከርከር መጥፎ ነው ምክንያቱም በሼል በኩል ወደ ማውጫ ስለሚዞሩ። የምንሽከረከርበት ምንም መንገድ የለም። መያዣዎቹን እንደገና እንዲከፍት ለመተግበሪያው መንገር አይችሉም። ምክንያቱም ገንቢዎቹ እንደ ሞኝ ይመለከቱዎታል፡ “ምን ገላጭ? በአጠቃላይ ለ stdout እንጽፋለን. ማዕቀፎቹ ኮፒትሩንኬት ወደ ሎጎሮት አደረጉ፣ ይህም የፋይሉን ቅጂ ብቻ ሰርቶ ዋናውን ግንድ አድርጎታል። በዚህ መሠረት በእነዚህ የመገልበጥ ሂደቶች መካከል የዲስክ ቦታ አብዛኛውን ጊዜ ያበቃል.

(4) በተለያዩ ኤፒአይዎች ውስጥ የተለያዩ ቅርጸቶች ነበሩን። እነሱ ትንሽ የተለዩ ነበሩ፣ ግን regexp በተለየ መንገድ መፃፍ ነበረበት። ሁሉም የሚተዳደረው በአሻንጉሊት በመሆኑ፣ የራሳቸው በረሮ ያላቸው ብዙ የመማሪያ ክፍሎች ነበሩ። በተጨማሪም፣ td-agent አብዛኛው ጊዜ ትውስታን ሊበላ፣ ደደብ ሊሆን ይችላል፣ እሱ እየሰራ እንደሆነ አስመስሎ ምንም ማድረግ ይችላል። በውጫዊ መልኩ, እሱ ምንም እየሰራ እንዳልሆነ ለመረዳት የማይቻል ነበር. ቢበዛ ይወድቃል፣ እና አንድ ሰው በኋላ ያነሳዋል። ይበልጥ በትክክል፣ ማንቂያ ወደ ውስጥ ይገባል፣ እና አንድ ሰው ሄዶ በእጁ ያነሳዋል።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

(6) እና በጣም ቆሻሻ እና ቆሻሻ - elasticsearch ነበር. ምክንያቱም አሮጌው ስሪት ነበር. ምክንያቱም በዚያን ጊዜ የተሰጡ ሊቃውንት አልነበሩንም። መስኮቻቸው ሊደራረቡ የሚችሉ የተለያዩ እንጨቶች ነበሩን። የተለያዩ አፕሊኬሽኖች የተለያዩ ምዝግብ ማስታወሻዎች በተመሳሳይ የመስክ ስሞች ሊፃፉ ይችላሉ ፣ ግን በተመሳሳይ ጊዜ ውስጥ የተለያዩ መረጃዎች ሊኖሩ ይችላሉ። ማለትም አንድ ሎግ በሜዳ ላይ ኢንቲጀር ይዞ ይመጣል፣ ለምሳሌ ደረጃ። ሌላ ምዝግብ ማስታወሻ በደረጃ መስክ ውስጥ ካለው ሕብረቁምፊ ጋር አብሮ ይመጣል። የማይንቀሳቀስ ካርታ በማይኖርበት ጊዜ, እንደዚህ አይነት ድንቅ ነገር ይወጣል. ከመረጃ ጠቋሚ ማሽከርከር በኋላ ሕብረቁምፊ ያለው መልእክት በመጀመሪያ በelasticsearch ከደረሰ፣ እንግዲያውስ በተለምዶ እንኖራለን። እና የመጀመሪያው በኢንቲጀር ከደረሰ፣ በ String የደረሱ ሁሉም ተከታይ መልዕክቶች በቀላሉ ይጣላሉ። ምክንያቱም የመስክ አይነት አይዛመድም።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እነዚህን ጥያቄዎች መጠየቅ ጀመርን። ጥፋተኞችን ላለመፈለግ ወሰንን.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ግን አንድ ነገር መደረግ አለበት! ግልጽ የሆነው ነገር ደረጃዎችን ማዘጋጀት አለብን. አስቀድመን አንዳንድ መመዘኛዎች ነበሩን። አንዳንዶቹን ትንሽ ቆይተናል። እንደ እድል ሆኖ፣ ለሁሉም APIs አንድ ነጠላ የምዝግብ ማስታወሻ ቅርጸት አስቀድሞ በዚያ ጊዜ ጸድቋል። በቀጥታ በአገልግሎት መስተጋብር ደረጃዎች ውስጥ ተጽፏል. በዚህ መሠረት የምዝግብ ማስታወሻዎችን መቀበል የሚፈልጉ ሰዎች በዚህ ፎርማት መፃፍ አለባቸው. አንድ ሰው በዚህ ቅርጸት ምዝግብ ማስታወሻዎችን ካልፃፈ ምንም ዋስትና አንሰጥም።

በተጨማሪም፣ የምዝግብ ማስታወሻዎችን ለመቅዳት፣ ለማድረስ እና ለመሰብሰብ ዘዴዎች አንድ ነጠላ መስፈርት እንዲኖረኝ እፈልጋለሁ። በእውነቱ ፣ የት እንደሚፃፉ ፣ እና እንዴት እንደሚያቀርቡ። በጣም ጥሩው ሁኔታ ፕሮጀክቶች ተመሳሳይ ቤተ-መጽሐፍት ሲጠቀሙ ነው. ለ Go የተለየ የምዝግብ ማስታወሻ ቤተ መጻሕፍት አለ፣ ለPHP የተለየ ቤተ መጻሕፍት አለ። ያለን ሁሉ ሁሉም ሰው ሊጠቀምባቸው ይገባል። በአሁኑ ወቅት በ80 በመቶ እየተሳካልን ነው እላለሁ። ነገር ግን አንዳንዶች ካክቲን መብላት ይቀጥላሉ.

እና እዚያ (በስላይድ ላይ) "SLA ለሎግ መላክ" ገና መታየት እየጀመረ ነው። እስካሁን እዚያ የለም, ግን እየሰራንበት ነው. ምክንያቱም ኢንፍራ እንዲህ እና እንደዚህ አይነት ቅርጸት ወደ እንደዚህ አይነት ቦታ እና በሴኮንድ ከ N መልዕክት የማይበልጥ ከጻፍክ እኛ እዚያ እናደርሳለን ሲል በጣም ምቹ ነው. ብዙ ራስ ምታትን ያስወግዳል. SLA ካለ, ከዚያም ብቻ ታላቅ ነው!

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ችግሩን እንዴት መፍታት ጀመርን? ዋናው መሰቅሰቂያ ከ td-ወኪል ጋር ነበር። የእኛ ግንዶች የት እንደሚሄዱ ግልጽ አልነበረም። ተረክበዋል? እየሄዱ ነው? ለማንኛውም የት ናቸው? ስለዚህ, td-agentን በመጀመሪያው ንጥል ለመተካት ተወስኗል. በምን እንደሚተካው አማራጮች፣ እዚህ ላይ በአጭሩ ገለጽኩ።

ፍሉንትድ በመጀመሪያ፣ በቀድሞ ሥራ አገኘሁት፣ እና እሱ ደግሞ እዚያው አልፎ አልፎ ይወድቃል። በሁለተኛ ደረጃ, ይህ ተመሳሳይ ነው, በመገለጫ ውስጥ ብቻ.

filebeat. ለእኛ እንዴት ጥሩ ነበር? እሱ በGo ውስጥ መሆኑ፣ እና በGo ውስጥ ትልቅ እውቀት አለን። በዚህ መሠረት፣ የሆነ ነገር ካለ፣ በሆነ መንገድ ወደ ራሳችን ልንጨምር እንችላለን። ለዚህ ነው ያልወሰድነው። ስለዚህ ለራስዎ እንደገና መጻፍ ለመጀመር ምንም ፈተና እንኳን እንዳይኖር።

ለ sysadmin ግልጽ የሆነው መፍትሔ በዚህ መጠን (syslog-ng/rsyslog/nxlog) ውስጥ ያሉ ሁሉም ዓይነት syslogs ነው።

ወይም የራስህ የሆነ ነገር ጻፍ፣ ነገር ግን አስወግደነዋል፣ እንዲሁም filebeat። የሆነ ነገር ከጻፉ, ለንግድ ስራ ጠቃሚ ነገር መጻፍ የተሻለ ነው. ምዝግብ ማስታወሻዎችን ለማድረስ, ዝግጁ የሆነ ነገር መውሰድ የተሻለ ነው.

ስለዚህ, ምርጫው በእውነቱ በ syslog-ng እና rsyslog መካከል ባለው ምርጫ ላይ ወረደ. ቀደም ሲል በፑፕት ውስጥ ለ rsyslog ትምህርት ስለነበረን ብቻ ወደ rsyslog አዘንኩ እና በመካከላቸው ግልጽ የሆነ ልዩነት አላገኘሁም። syslog ምንድን ነው፣ syslog ምንድን ነው። አዎ፣ አንዳንድ ሰነዶች የከፋ፣ አንዳንዶቹ የተሻሉ ናቸው። እሱ በዚህ መንገድ ያውቃል, እና በተለየ መንገድ ያደርገዋል.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እና ስለ rsyslog ትንሽ። በመጀመሪያ, በጣም ብዙ ሞጁሎች ስላሉት ጥሩ ነው. በሰው ሊነበብ የሚችል RainerScript (ዘመናዊ የውቅር ቋንቋ) አለው። ግሩም ጉርሻ የ td-ወኪሉን ባህሪ በመደበኛ መሳሪያዎቹ መኮረጅ መቻላችን ነው፣ እና ለመተግበሪያዎች ምንም የተለወጠ ነገር የለም። ማለትም፣ td-agentን ወደ rsyslog እንለውጣለን እና ሁሉንም ነገር ገና አንነካም። እና ወዲያውኑ የሚሰራ መላኪያ እናገኛለን። በመቀጠል፣ mmnormalize ስለ rsyslog በጣም ጥሩው ነገር ነው። የምዝግብ ማስታወሻዎችን ለመተንተን ይፈቅድልዎታል, ነገር ግን በ Grok እና regexp. ረቂቅ የአገባብ ዛፍ ይሠራል። መዝገቦችን የሚተነትነው አቀናባሪ የምንጭ ኮድ በሚተነተንበት መንገድ ነው። ይህ በጣም በፍጥነት እንዲሰሩ, ትንሽ ሲፒዩ እንዲበሉ ይፈቅድልዎታል, እና በአጠቃላይ, በጣም ጥሩ ነገር ብቻ ነው. ሌሎች ብዙ ጉርሻዎች አሉ። በእነርሱ ላይ አላድርም።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

rsyslog ብዙ ተጨማሪ ጉዳቶች አሉት። እነሱ ከጉርሻዎች ጋር ተመሳሳይ ናቸው። ዋናዎቹ ችግሮች ምግብ ማብሰል መቻል አለብዎት, እና ስሪት መምረጥ ያስፈልግዎታል.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

በዩኒክስ ሶኬት ውስጥ መዝገቦችን ለመጻፍ ወሰንን. እና በ / dev/log ውስጥ አይደለም ፣ ምክንያቱም እዚያ ውስጥ የስርዓት ምዝግብ ማስታወሻዎች ስላለን ፣ በዚህ ቧንቧ ውስጥ ጆርናል አለ። ስለዚህ ወደ ብጁ ሶኬት እንፃፍ። ከተለየ ደንብ ጋር እናያይዛለን። በምንም ነገር ጣልቃ አንግባ። ሁሉም ነገር ግልጽ እና ግልጽ ይሆናል. ስለዚህ እኛ በእርግጥ አደረግን. እነዚህ ሶኬቶች ያለው ማውጫ ደረጃውን የጠበቀ እና ወደ ሁሉም ኮንቴይነሮች ይተላለፋል። ኮንቴይነሮች የሚፈልጉትን ሶኬት አይተው ከፍተው ይፃፉበት።

ለምን ፋይል አይሆንም? ምክንያቱም ሁሉም አንብቧል ስለ Badushechka መጣጥፍፋይሉን ወደ ዶከር ለማስተላለፍ የሞከረ እና rsyslogን እንደገና ከጀመረ በኋላ የፋይሉ ገላጭ ተቀይሯል እና ዶከር ይህን ፋይል ያጣል። እሱ ሌላ ነገር ይከፍታል, ነገር ግን የሚጽፉበት ተመሳሳይ ሶኬት አይደለም. ይህንን ችግር ለማለፍ ወስነናል, እና በተመሳሳይ ጊዜ, የማገጃውን ችግር ለማለፍ.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

Rsyslog በስላይድ ላይ የተመለከቱትን ድርጊቶች ይሠራል እና ምዝግብ ማስታወሻዎችን ወደ ሪሌይ ወይም ካፍካ ይልካል. ካፍካ የድሮውን መንገድ ይከተላል. Rayleigh - ምዝግብ ማስታወሻዎችን ለማቅረብ ንጹህ rsyslog ለመጠቀም ሞከርኩ። ያለ የመልእክት ወረፋ ፣ መደበኛ የ rsyslog መሳሪያዎችን በመጠቀም። በመሠረቱ, ይሠራል.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ነገር ግን በኋላ ወደዚህ ክፍል (ሎግስታሽ/ግራይሎግ/ኢኤስ) እንዴት መሙላት እንደሚችሉ ላይ ልዩነቶች አሉ። ይህ ክፍል (rsyslog-rsyslog) በዳታ ማእከሎች መካከል ጥቅም ላይ ይውላል. እዚህ የታመቀ tcp ሊንክ አለ፣ ይህም የመተላለፊያ ይዘት እንዲቆጥቡ እና በዚህም መሰረት ቻናሉ ሲሞላ ከሌላ የመረጃ ማእከል አንዳንድ ምዝግብ ማስታወሻዎችን የምንቀበልበትን እድል ይጨምራል። ምክንያቱም ሁሉም ነገር መጥፎ የሆነበት ኢንዶኔዥያ ስላለን። የማያቋርጥ ችግሩ ያለው እዚህ ላይ ነው።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እንዴት በትክክል እንደምንከታተል አሰብን፣ ከመተግበሪያው የቀረጻናቸው ምዝግብ ማስታወሻዎች እስከ መጨረሻው ድረስ በምን እድላቸው? መለኪያዎችን ለመጀመር ወሰንን. Rsyslog የራሱ የሆነ የስታቲስቲክስ ስብስብ ሞጁል አለው፣ እሱም አንዳንድ ዓይነት ቆጣሪዎች አሉት። ለምሳሌ፣ የወረፋውን መጠን፣ ወይም ምን ያህል መልእክቶች እንደደረሱ እና እንደዚህ አይነት ድርጊት ሊያሳይ ይችላል። አስቀድመው ከእነሱ የሆነ ነገር መውሰድ ይችላሉ. በተጨማሪም፣ እርስዎ ሊያዋቅሯቸው የሚችሏቸው ብጁ ቆጣሪዎች አሉት፣ እና ለምሳሌ አንዳንድ ኤፒአይ የቀዳቸውን የመልእክት ብዛት ያሳየዎታል። በመቀጠል, በ Python ውስጥ rsyslog_exporter ጻፍኩ, እና ሁሉንም ወደ ፕሮሜቴየስ ልከናል እና ግራፎችን ገንብተናል. የግራይሎግ መለኪያዎችን በእውነት እንፈልጋለን፣ ግን እስካሁን እነሱን ለማዘጋጀት ጊዜ አላገኘንም።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ችግሮቹ ምንድን ናቸው? የቀጥታ ኤፒአይዎቻችን በሰከንድ 50k መልእክት እንደሚጽፉ (በድንገት!) በማወቃችን ነው ችግሩ የተፈጠረው። ይህ ያለማዘጋጀት የቀጥታ ኤፒአይ ብቻ ነው። እና ግሬይሎግ በሰከንድ 12 ሺህ መልዕክቶችን ብቻ ያሳየናል። እና ምክንያታዊ ጥያቄ ተነሳ, ቀሪዎቹ የት አሉ? ከዚህ በመነሳት ግሬይሎግ በቀላሉ መቋቋም እንደማይችል ደመደምን። ተመለከትን እና፣ በእርግጥ፣ ግሬይሎግ with Elasticsearch ይህንን ፍሰት አላስተዋለም።

በመቀጠል፣ በመንገዳችን ላይ ያደረግናቸው ሌሎች ግኝቶች።

በሶኬት ላይ የተፃፉ ፅሁፎች ታግደዋል። እንዴት ሆነ? ለማድረስ rsyslogን ስጠቀም በአንድ ወቅት በመረጃ ማእከሎች መካከል ያለውን ቻናል ሰብረን ነበር። መላኪያ በአንድ ቦታ ተነሳ ፣ ማድረስ በሌላ ቦታ ተነሳ። ይህ ሁሉ ወደ rsyslog ሶኬት በሚጽፍ ኤፒአይዎች ወደ ማሽን መጣ። ወረፋ ነበር። ከዚያም ወደ ዩኒክስ ሶኬት ለመጻፍ ወረፋው ተሞልቷል, ይህም በነባሪነት 128 ፓኬቶች ነው. እና የሚቀጥለው ይፃፉ () በመተግበሪያው ብሎኮች ውስጥ። በGo አፕሊኬሽን የምንጠቀመውን ቤተ መፃህፍት ስንመለከት፣ ወደ ሶኬት መፃፍ በማይከለከል ሁነታ እንደሚከሰት እዚያ ተፅፏል። ምንም እንዳልተከለከለ እርግጠኞች ነበርን። ምክንያቱም አንብበናል። ስለ Badushechka መጣጥፍስለ እሱ የጻፈው. ግን አንድ አፍታ አለ. እንዲሁም በዚህ ጥሪ ዙሪያ ወሰን የሌለው ዑደት ነበር፣ በዚህ ውስጥ መልእክት ወደ ሶኬት ውስጥ ለመግፋት የማያቋርጥ ሙከራ ነበር። አላስተዋልነውም። ቤተ መፃህፍቱን እንደገና መጻፍ ነበረብኝ. ከዚያን ጊዜ ጀምሮ, ብዙ ጊዜ ተለውጧል, አሁን ግን በሁሉም ንዑስ ስርዓቶች ውስጥ መቆለፊያዎችን አስወግደናል. ስለዚህ, rsyslog ን ማቆም ይችላሉ እና ምንም ነገር አይወድቅም.

በዚህ መሰቅሰቂያ ላይ ላለመርገጥ የሚረዳውን የወረፋውን መጠን መከታተል ያስፈልጋል. በመጀመሪያ መልእክት ማጣት ስንጀምር መከታተል እንችላለን። በሁለተኛ ደረጃ, በመሠረታዊ አሰጣጥ ላይ ችግሮች እንዳሉብን መከታተል እንችላለን.

እና ሌላ ደስ የማይል ጊዜ - በማይክሮ አገልግሎት ህንጻ ውስጥ በ 10 ጊዜ ማጉላት በጣም ቀላል ነው። በጣም ብዙ ገቢ ጥያቄዎች የሉንም ፣ ግን እነዚህ መልዕክቶች የበለጠ በሚሰሩበት ግራፍ ምክንያት ፣ በመድረሻ ምዝግብ ማስታወሻዎች ምክንያት ፣ በእውነቱ በሎግ ላይ ያለውን ጭነት በአስር እጥፍ ያህል እንጨምራለን ። እንደ አለመታደል ሆኖ ትክክለኛውን ቁጥሮች ለማስላት ጊዜ አልነበረኝም ፣ ግን ማይክሮ ሰርቪስ እነሱ ናቸው። ይህ መታወስ አለበት. በአሁኑ ጊዜ የምዝግብ ማስታወሻ ስብስብ ንዑስ ስርዓት በላዛዳ ውስጥ በጣም የተጫነ ነው።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

የላስቲክ ፍለጋን ችግር እንዴት መፍታት ይቻላል? በአንድ ቦታ ላይ በፍጥነት ምዝግብ ማስታወሻዎችን ማግኘት ከፈለጉ በሁሉም ማሽኖች ላይ ላለመሮጥ እና እዚያ እንዳይሰበስቡ, የፋይል ማከማቻ ይጠቀሙ. ይህ እንደሚሰራ የተረጋገጠ ነው. የሚከናወነው ከማንኛውም አገልጋይ ነው። እዚያ ዲስኮችን መጣበቅ እና syslog ን ማስቀመጥ ብቻ ያስፈልግዎታል። ከዚያ በኋላ, ሁሉም ምዝግብ ማስታወሻዎች በአንድ ቦታ ላይ እንዲኖርዎት ዋስትና ይሰጥዎታል. ከዚያ elasticsearchን፣ ግሬይሎግን ወይም ሌላ ነገርን ቀስ ብሎ ማዋቀር ይቻል ይሆናል። ግን ሁሉንም ምዝግብ ማስታወሻዎች ቀድሞውኑ ይኖርዎታል ፣ እና በተጨማሪ ፣ በቂ የዲስክ ድርድሮች እስካሉ ድረስ እነሱን ማከማቸት ይችላሉ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ዘገባዬ ባቀረብኩበት ጊዜ እቅዱ ይህን ይመስላል። እኛ በተግባር ወደ ፋይሉ መፃፍ አቁመናል። አሁን ፣ ምናልባትም ፣ ቀሪዎቹን እናጠፋለን። ኤፒአይን በሚያሄዱ የሀገር ውስጥ ማሽኖች ላይ ወደ ፋይሎች መፃፍ እናቆማለን። በመጀመሪያ, የፋይል ማከማቻ አለ, እሱም በጣም ጥሩ ይሰራል. በሁለተኛ ደረጃ, እነዚህ ማሽኖች ያለማቋረጥ ቦታ እያጡ ናቸው, ያለማቋረጥ መከታተል ያስፈልግዎታል.

ይህ ክፍል ከሎግስታሽ እና ግሬሎግ ጋር፣ በእርግጥ ከፍ ይላል። ስለዚህ, እሱን ማስወገድ ያስፈልግዎታል. አንዱን መምረጥ አለብህ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ሎግስታሽ እና ኪባናን ለመልቀቅ ወሰንን. ምክንያቱም የደህንነት ክፍል ስላለን ነው። ግንኙነቱ ምንድን ነው? ግንኙነቱ ኪባና ያለ X-Pack እና ያለ ጋሻ የምዝግብ ማስታወሻዎችን የመዳረሻ መብቶችን እንዲለዩ አይፈቅድልዎትም. ስለዚህ, ግሬይሎግን ወሰዱ. ሁሉንም አለው. አልወደውም ግን ይሰራል። አዲስ ሃርድዌር ገዛን ፣ አዲስ ግሬይሎግ እዚያ ጫንን እና ሁሉንም ምዝግብ ማስታወሻዎች በጥብቅ ቅርፀቶች ወደ የተለየ ግሬሎግ ወሰድን። ችግሩን በተለያዩ ተመሳሳይ መስኮች በአደረጃጀት ፈትተናል።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

በአዲሱ ግሬይሎግ ውስጥ በትክክል ምን እንደሚካተት። ሁሉንም ነገር በዶክተር ውስጥ ብቻ ጻፍን. ብዙ ሰርቨሮችን ወስደን፣ ሶስት የካፍካ አጋጣሚዎችን፣ 7 ግሬይሎግ ሰርቨሮችን ስሪት 2.3 አውጥተናል (ምክንያቱም Elasticsearch ስሪት 5 ፈልጌ ነበር)። ይህ ሁሉ የተነሣው ከኤችዲዲ ወረራ ላይ ነው። በሰከንድ እስከ 100 ሺህ የሚደርሱ መልዕክቶችን የመረጃ ጠቋሚ ፍጥነት አይተናል። በሳምንት 140 ቴራባይት ዳታ የሚለውን አኃዝ አይተናል።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እና እንደገና አንድ መሰኪያ! ሁለት ሽያጮች አሉን። ከ6 ሚሊዮን ልጥፎች በላይ ተንቀሳቅሰናል። እኛ ግሬይሎግ ለማኘክ ጊዜ የለንም። እንደምንም እንደገና መትረፍ አለብህ።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

በዚህ መልኩ ነው የተረፍነው። ጥቂት ተጨማሪ አገልጋዮች እና ኤስኤስዲዎች ታክለዋል። በአሁኑ ጊዜ እንደዚህ ነው የምንኖረው። አሁን በሰከንድ 160k መልዕክቶችን እያኘክን ነው። እስካሁን ገደቡ ላይ አልደረስንም፣ ስለዚህ ምን ያህል ከእውነታው መውጣት እንደምንችል ግልጽ አይደለም።

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

እነዚህ የወደፊት እቅዶቻችን ናቸው። ከእነዚህ ውስጥ, በእውነቱ, በጣም አስፈላጊው ምናልባት ከፍተኛ ተገኝነት ነው. እስካሁን የለንም። ብዙ መኪኖች በተመሳሳይ መንገድ ተዘጋጅተዋል, ነገር ግን እስካሁን ድረስ ሁሉም ነገር በአንድ መኪና ውስጥ ነው. በመካከላቸው ውድቀትን ለማዘጋጀት ጊዜ ማሳለፍ አስፈላጊ ነው.

መለኪያዎችን ከግሬይሎግ ይሰብስቡ።

የመተላለፊያ ይዘትን እና ሁሉንም ነገር የማይገድል አንድ እብድ ኤፒአይ እንዲኖረን የዋጋ ገደብ ያድርጉ።

እና በመጨረሻ፣ ያን ያህል ለማገልገል እንድንችል ከገንቢዎች ጋር አንድ ዓይነት SLA ይፈርሙ። ብዙ ከጻፍክ ይቅርታ አድርግልኝ።

እና ሰነዶችን ይፃፉ.

ዩሪ ቡሽሜሌቭ "ምዝግብ ማስታወሻዎችን በመሰብሰብ እና በማድረስ መስክ የሬክ ካርታ" - የሪፖርቱ ግልባጭ

ባጭሩ፣ ያጋጠመን ነገር ሁሉ ውጤት። በመጀመሪያ ደረጃ, ደረጃዎች. ሁለተኛ, syslog ኬክ ነው. በሶስተኛ ደረጃ, rsyslog በስላይድ ላይ እንደተጻፈ በትክክል ይሰራል. እና ወደ ጥያቄዎቹ እንሂድ።

ጥያቄዎች.

ጥያቄለምንድነው ላለመውሰድ የወሰኑት ... (filebeat?)

ምላሽ ይስጡ: ወደ ፋይል መፃፍ ያስፈልጋል። በእውነት አልፈለኩም። የእርስዎ ኤፒአይ በሺዎች የሚቆጠሩ መልዕክቶችን በሰከንድ ሲጽፍ፣ በሰዓት አንድ ጊዜ ቢያዞሩም ይህ አሁንም አማራጭ አይደለም። ወደ ቧንቧው መጻፍ ይችላሉ. ገንቢዎቹ “የምንፃፍበት ሂደት ቢወድቅ ምን ይሆናል” ብለው ጠየቁኝ? ምን እንደምመልስላቸው አላገኘሁም እና “እሺ፣ እንደዚያ አናድርገው” አልኩት።

ጥያቄለምንድነው ምዝግብ ማስታወሻዎችን ወደ HDFS ብቻ አትጽፍም?

ምላሽ ይስጡመ: ይህ ቀጣዩ ደረጃ ነው. መጀመሪያ ላይ አስበን ነበር, ነገር ግን በአሁኑ ጊዜ ችግሩን ለመቋቋም ምንም ሀብቶች ስለሌለ, በረጅም ጊዜ መፍትሄችን ላይ የተንጠለጠለ ነው.

ጥያቄየአምድ ቅርጸት ይበልጥ ተገቢ ይሆናል።

ምላሽ ይስጡ: ገባኝ. በሁለቱም እጆች "ለ" ነን።

ጥያቄወደ rsyslog ይጽፋሉ። ሁለቱም TCP እና UDP እዚያ ይገኛሉ። ግን UDP ከሆነ ታዲያ እንዴት ማድረስ ዋስትና ይሰጣሉ?

ምላሽ ይስጡመ: ሁለት ነጥቦች አሉ. በመጀመሪያ, ወዲያውኑ ሁሉንም የምዝግብ ማስታወሻዎችን ለማድረስ ዋስትና እንደማንሰጥ እናገራለሁ. ምክንያቱም ገንቢዎቹ ሲመጡ እና ሲናገሩ: "እዚያ የፋይናንስ ውሂብን መፃፍ እንጀምር, እና የሆነ ነገር ቢፈጠር አንድ ቦታ ላይ ታስቀምጠዋለህ," እንመልሳቸዋለን, "በጣም ጥሩ! ወደ ሶኬት በመጻፍ ላይ ማገድ እንጀምር እና በግብይቶች ውስጥ እናድርገው, ስለዚህ በሶኬት ውስጥ ማስቀመጥ እና ከሌላኛው ወገን መቀበሉን ያረጋግጡ. እና በዚህ ጊዜ ሁሉም ሰው ወዲያውኑ አላስፈላጊ ይሆናል. እና ካልሆነ ምን ጥያቄዎች አሉን? ወደ ሶኬት ለመጻፍ ዋስትና መስጠት ካልፈለጉ ታዲያ ለምን ማድረስ ዋስትና እንሰጣለን? የተሻለውን ጥረት እያደረግን ነው። በተቻለ መጠን እና በተቻለ መጠን ለማቅረብ በእውነት እንሞክራለን, ነገር ግን 100% ዋስትና አንሰጥም. ስለዚህ, እዚያ የፋይናንስ ውሂብን መጻፍ አያስፈልግዎትም. ለዚህም የግብይት ዳታቤዝ አለ።

ጥያቄ: ኤፒአይ አንዳንድ መልእክት ወደ ሎግ ሲያመነጭ እና መቆጣጠሪያውን ወደ ማይክሮ ሰርቪስ ሲያስተላልፍ ከተለያዩ ማይክሮ ሰርቪስ መልዕክቶች በተሳሳተ ቅደም ተከተል የመድረስ ችግር አጋጥሞዎታል? በዚህ ምክንያት, ግራ መጋባት ይነሳል.

ምላሽ ይስጡመ: በተለየ ቅደም ተከተል መምጣታቸው የተለመደ ነው. ለዚህ ዝግጁ መሆን አለብዎት. ምክንያቱም ማንኛውም የአውታረ መረብ አቅርቦት ለእርስዎ ትዕዛዝ ዋስትና አይሰጥም, ወይም በዚህ ላይ ልዩ ሀብቶችን ማውጣት አለብዎት. የፋይል ማከማቻዎችን ከወሰድን እያንዳንዱ ኤፒአይ መዝገቦችን በራሱ ፋይል ላይ ያስቀምጣል። ይልቁንም, rsyslog እዚያ ወደ ማውጫዎች ያዘጋጃቸዋል. እያንዳንዱ ኤፒአይ የየራሱ ምዝግብ ማስታወሻዎች አሉት፣ እዚያ ሄዳችሁ መመልከት ትችላላችሁ፣ እና ከዚያ በዚህ መዝገብ ውስጥ ያለውን የጊዜ ማህተም ተጠቅማችሁ ማወዳደር ትችላላችሁ። ግሬይሎግ ውስጥ ለማየት ከሄዱ እዚያ በጊዜ ማህተም ይደረደራሉ። እዚያ ሁሉም ነገር ደህና ይሆናል.

ጥያቄየጊዜ ማህተም በሚሊሰከንዶች ሊለያይ ይችላል።

ምላሽ ይስጡየጊዜ ማህተም የሚመነጨው በኤፒአይ ራሱ ነው። ይህ በእውነቱ, ዋናው ነጥብ ነው. NTP አለን። ኤፒአይ በመልእክቱ ውስጥ አስቀድሞ የሰዓት ማህተም ያመነጫል። በ rsyslog አልተጨመረም.

ጥያቄበመረጃ ማዕከሎች መካከል ያለው ግንኙነት በጣም ግልጽ አይደለም. በመረጃ ማዕከሉ ማዕቀፍ ውስጥ, ምዝግብ ማስታወሻዎቹ እንዴት እንደተሰበሰቡ እና እንደተዘጋጁ ግልጽ ነው. በመረጃ ማዕከሎች መካከል ያለው መስተጋብር እንዴት ነው? ወይስ እያንዳንዱ የመረጃ ማዕከል የራሱን ሕይወት ይኖራል?

ምላሽ ይስጡ: ማለት ይቻላል. እያንዳንዳችን ሀገር በአንድ የመረጃ ማዕከል ውስጥ አለን። በአሁኑ ጊዜ መስፋፋት የለንም፤ ስለዚህም አንድ አገር በተለያዩ የመረጃ ቋቶች ውስጥ እንዲቀመጥ ተደርጓል። ስለዚህ, እነሱን ማዋሃድ አያስፈልግም. በእያንዳንዱ ማእከል ውስጥ Log Relay አለ። ይህ Rsyslog አገልጋይ ነው። በእውነቱ, ሁለት አስተዳደር ማሽኖች. እነሱ በተመሳሳይ መንገድ ተዘጋጅተዋል. አሁን ግን ትራፊክ በአንደኛው በኩል ያልፋል። ሁሉንም ነገር በድምር ትመዘግባለች። እንደ ሁኔታው ​​የዲስክ ወረፋ አለው። እሷም ምዝግብ ማስታወሻዎቹን ተጭኖ ወደ ማዕከላዊ የመረጃ ማእከል (ሲንጋፖር) ትልካቸዋለች ፣ እዚያም በግሬሎግ ውስጥ ቀድሞውኑ ተመርዘዋል። እና እያንዳንዱ የመረጃ ማዕከል የራሱ የፋይል ማከማቻ አለው። ግንኙነታችን ከጠፋን, እዚያ ሁሉም ምዝግብ ማስታወሻዎች አሉን. እዚያ ይቆያሉ. እዚያ ይከማቻሉ.

ጥያቄመደበኛ ባልሆኑ ሁኔታዎች ውስጥ ከዚያ ምዝግብ ማስታወሻዎችን ያገኛሉ?

ምላሽ ይስጡ: ወደዚያ (ወደ የፋይል ማከማቻው) መሄድ እና መመልከት ይችላሉ.

ጥያቄየምዝግብ ማስታወሻዎች እንዳይጠፉ እንዴት ይከታተላሉ?

ምላሽ ይስጡ: በእርግጥ እያጣናቸው ነው፣ እየተከታተልንም ነው። ክትትል የጀመረው ከአንድ ወር በፊት ነው። Go APIs የሚጠቀሙበት ቤተ-መጽሐፍት መለኪያዎች አሉት። በሶኬት ላይ ስንት ጊዜ መፃፍ እንዳልቻለች መቁጠር ትችላለች። በአሁኑ ጊዜ ተንኮለኛ ሂውሪስቲክ አለ። እዚያ ቋት አለ። ከእሱ ወደ ሶኬት መልእክት ለመጻፍ ይሞክራል። ቋት ከለቀቀ እነሱን መጣል ይጀምራል። እና ስንቱን እንደጣለ ይቆጥራል። ቆጣሪዎቹ እዚያ መሞላት ከጀመሩ ስለእሱ እናውቀዋለን። አሁን ወደ ፕሮሜቴየስ እየመጡ ነው፣ እና በግራፋና ውስጥ ግራፎችን ማየት ይችላሉ። ማንቂያዎችን ማዘጋጀት ይችላሉ. ግን ማንን እንደሚልክላቸው ገና አልታወቀም።

ጥያቄ: በelasticsearch ውስጥ፣ ከተደጋጋሚነት ጋር ምዝግብ ማስታወሻዎችን ያከማቻሉ። ስንት ቅጂዎች አሉህ?

ምላሽ ይስጡአንድ ቅጂ።

ጥያቄ: አንድ መስመር ብቻ ነው?

ምላሽ ይስጡይህ ዋና እና ቅጂ ነው። ውሂቡ በተባዛ ተቀምጧል።

ጥያቄየ rsyslog buffer መጠንን በሆነ መንገድ አስተካክለውታል?

ምላሽ ይስጡዳታግራምን ወደ ብጁ ዩኒክስ ሶኬት እንጽፋለን። ይህ ወዲያውኑ የ 128 ኪሎባይት ገደብ በእኛ ላይ ይጭናል. ወደ እሱ የበለጠ መጻፍ አንችልም። ይህንንም በደረጃው ጽፈናል። ወደ ማከማቻ ውስጥ ለመግባት የሚፈልግ, 128 ኪሎባይት ይጽፋሉ. ቤተ መፃህፍት፣ በተጨማሪም ቆርጠህ መልዕክቱ የተቆረጠበትን ባንዲራ አስቀምጥ። በመልእክቱ መለኪያ ውስጥ ልዩ መስክ አለን, ይህም በቀረጻ ወቅት ተቆርጧል ወይም አይቋረጥም. ስለዚህ ይህንን ጊዜ ለመከታተል እድሉ አለን.

ጥያቄየተሰበረ JSON ይጽፋሉ?

ምላሽ ይስጡየተሰበረ JSON በሪሌይ ጊዜ ወይ ይጣላል ምክንያቱም ፓኬጁ በጣም ትልቅ ነው። ወይም ግሬይሎግ ይጣላል፣ ምክንያቱም JSON ን መተንተን አይችልም። ግን እዚህ መስተካከል ያለባቸው ልዩነቶች አሉ, እና እነሱ በአብዛኛው ከ rsyslog ጋር የተሳሰሩ ናቸው. እዚያ ጥቂት እትሞችን አስቀድሜ ሞላሁ, አሁንም ሊሰራበት ይገባል.

ጥያቄለምን ካፍካ? RabbitMQ ሞክረዋል? ግሬይሎግ በእንደዚህ ዓይነት ሸክሞች ውስጥ አይጨምርም?

ምላሽ ይስጡ: ከግሬይሎግ ጋር አይሰራም. እና ግሬይሎግ ቅርፅ እየያዘ ነው። ለእሱ በእውነት ችግር አለበት. እሱ አይነት ነገር ነው። እና በእውነቱ, አያስፈልግም. ከ rsyslog በቀጥታ ወደ elasticsearch ብጽፍ እና ከዚያ ኪባናን ብመለከት እመርጣለሁ። ግን ጉዳዩን ከጸጥታ አስከባሪዎች ጋር መፍታት አለብን። ግሬይሎግን ስንጥል እና ኪባናን ስንጠቀም ይህ የእድገታችን ልዩነት ነው። Logstash ትርጉም አይሰጥም. ምክንያቱም እኔ በ rsyslog ተመሳሳይ ነገር ማድረግ እችላለሁ. እና ወደ elasticsearch ለመጻፍ ሞጁል አለው። ከግሬሎግ ጋር በሆነ መንገድ ለመኖር እየሞከርን ነው። ትንሽ እንኳን አስተካክለነዋል። ግን አሁንም ለመሻሻል ቦታ አለ.

ስለ ካፍካ። በታሪክ እንዲህ ሆነ። ስደርስ ቀድሞውንም ነበር፣ እና ምዝግብ ማስታወሻዎች ይፃፉበት ነበር። አሁን ክላስተርችንን ከፍ አድርገን ምዝግቦችን ወደ እሱ አስገብተናል። እኛ እሱን እናስተዳድራለን, ምን እንደሚሰማው እናውቃለን. ስለ RabbitMQ... ከ RabbitMQ ጋር እየተቸገርን ነው። እና RabbitMQ ለእኛ እያደገ ነው። እኛ በምርት ውስጥ አለን, እና በእሱ ላይ ችግሮች ነበሩ. አሁን, ከሽያጩ በፊት, ሻማኒዝ ይደረግበታል, እና በመደበኛነት መስራት ይጀምራል. ከዚያ በፊት ግን ወደ ምርት ለመልቀቅ ዝግጁ አልነበርኩም። አንድ ተጨማሪ ነጥብ አለ. ግሬይሎግ AMQP 0.9 ስሪት ማንበብ ይችላል እና rsyslog AMQP 1.0 ስሪት መፃፍ ይችላል። እና በመሃል ላይ ሁለቱንም ሊያደርግ የሚችል አንድ ነጠላ መፍትሄ የለም. አንድም ሆነ ሌላ አለ. ስለዚህ ለአሁን ካፍካ ብቻ። ግን አንዳንድ ልዩነቶችም አሉ. ምክንያቱም የምንጠቀመው የ rsyslog ስሪት omkafka ከ rsyslog የሰበሰበውን የመልእክት ቋት ሙሉ በሙሉ ሊያጣ ይችላል። እስከታገስነው ድረስ።

ጥያቄ: ካፍካን የምትጠቀመው ስለነበረህ ነው? ለሌላ ዓላማ አይውልም?

ምላሽ ይስጡበዳታ ሳይንስ ቡድን ጥቅም ላይ የዋለው ካፍካ። ይህ ሙሉ ለሙሉ የተለየ ፕሮጀክት ነው, ስለ እሱ, በሚያሳዝን ሁኔታ, ምንም ማለት አልችልም. አላውቅም. እሷ በዳታ ሳይንስ ቡድን ትመራ ነበር። ምዝግብ ማስታወሻዎቹ ሲጀምሩ, የራሳቸውን ላለመጠቀም, ለመጠቀም ወሰኑ. አሁን ግሬይሎግን አዘምነናል፣ እና ተኳኋኝነት አጥተናል፣ ምክንያቱም የድሮ የካፍካ ስሪት አለ። የራሳችን ማድረግ ነበረብን። በተመሳሳይ ጊዜ፣ ለእያንዳንዱ ኤፒአይ እነዚህን አራት ርዕሶች አስወግደናል። ለሁሉም ቀጥታ አንድ ሰፊ ጫፍ፣ ለሁሉም ስቴጅንግ አንድ ሰፊ ሰፊ ጫፍ አደረግን እና ሁሉንም ነገር እዚያ እንተኩስ። ግሬይሎግ ይህን ሁሉ በትይዩ ያወጣል።

ጥያቄ: ለምንድን ነው ይህን ሻማኒዝም በሶኬቶች የምንፈልገው? የ syslog log Driver ለኮንቴይነሮች ለመጠቀም ሞክረዋል?

ምላሽ ይስጡይህንን ጥያቄ በጠየቅንበት ወቅት ከዶከር ጋር ጥብቅ ግንኙነት ነበረን። ዶከር 1.0 ወይም 0.9 ነበር። ዶከር ራሱ እንግዳ ነበር። በሁለተኛ ደረጃ፣ አንተም መዝገቦችን ወደ እሱ ካስገባህ ... ሁሉንም ምዝግብ ማስታወሻዎች በራሱ፣ በዶክተር ዴሞን በኩል እንደሚያሳልፍ ያልተረጋገጠ ጥርጣሬ አለኝ። አንድ ኤፒአይ እያበደ ካለን የተቀሩት ኤፒአይዎች stdout እና stderr መላክ አይችሉም በሚለው እውነታ ውስጥ ይገባሉ። ይህ ወዴት እንደሚያመራ አላውቅም። በዚህ ቦታ የዶከር ሲሳይሎግ ሾፌርን መጠቀም አስፈላጊ እንዳልሆነ በስሜት ደረጃ ላይ ጥርጣሬ አለኝ። የእኛ የተግባር ሙከራ ክፍል የራሱ የሆነ የግሬይሎግ ክላስተር ከሎግ ጋር አለው። ዶከር ሎግ ሾፌሮችን ይጠቀማሉ እና ሁሉም ነገር እዚያ ጥሩ ይመስላል። ነገር ግን ወዲያውኑ GELFን ወደ ግራይሎግ ይጽፋሉ. ይህንን ሁሉ በጀመርንበት በዚህ ወቅት፣ እንዲሠራ ብቻ ያስፈልገናል። ምናልባት በኋላ፣ አንድ ሰው መጥቶ በመደበኛነት ለመቶ ዓመታት ሲሰራ፣ እንሞክራለን።

ጥያቄ: rsyslogን በመጠቀም በመረጃ ማእከሎች መካከል ያደርሳሉ. ለምን በካፍካ ላይ አይሆንም?

ምላሽ ይስጡእኛ ይህንን እናደርጋለን ፣ እና በእውነቱ እንደዚህ ነው። በሁለት ምክንያቶች። ቻናሉ ሙሉ በሙሉ ከሞተ ሁሉም ምዝግቦቻችን፣ በተጨመቀ መልክም ቢሆን፣ በእሱ ውስጥ አይወጡም። እና ካፍካ በሂደቱ ውስጥ በቀላሉ እንዲያጡ ያስችላቸዋል. በዚህ መንገድ, የእነዚህን ምዝግብ ማስታወሻዎች በማጣበቅ እናስወግዳለን. በዚህ ጉዳይ ላይ በቀጥታ ካፍካን እንጠቀማለን. ጥሩ ቻናል ካለን ነፃ ማውጣት ከፈለግን የእነሱን rsyslog እንጠቀማለን። ግን በእውነቱ, ያላለፈውን እንዲጥል ማዋቀር ይችላሉ. በአሁኑ ጊዜ የ rsyslog መላኪያን በቀጥታ የሆነ ቦታ፣ የሆነ ቦታ Kafka እየተጠቀምን ነው።

ምንጭ: hab.com

አስተያየት ያክሉ