Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

අපි Docker සහ Kubernetes හි ලොග් වීමේ මූලික කරුණු දෙස බලමු, ඉන්පසු නිෂ්පාදනයේදී ආරක්ෂිතව භාවිතා කළ හැකි මෙවලම් දෙකක් දෙස බලමු: Grafana Loki සහ EFK තොගය (Elasticsearch + Fluent Bit + Kibana).

ලිපියේ ද්රව්යය මිරිකීමකි පාසලේ විවෘත දේශනය "Slurm". ආශාවක් තිබේ නම්, ඊටත් වඩා නිෂ්පාදන අවශ්යතාවක් තිබේ නම්, ඔබට සම්පූර්ණ පුහුණුවක් ලබා ගත හැකිය - පාඨමාලාවක් සඳහා ලියාපදිංචි වන්න. Kubernetes හි යටිතල පහසුකම් අධීක්ෂණය සහ ලොග් කිරීම.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

ඩොකර් ලොග් කිරීම

Kubernetes මට්ටමේදී, යෙදුම් කරල්වල ක්‍රියාත්මක වේ, නමුත් පහළ මට්ටමේ දී, ඒවා තවමත් Docker හි සාමාන්‍යයෙන් ක්‍රියාත්මක වේ. එමනිසා, ඔබ බහාලුම් වලින් ලඝු-සටහන් එකතු කරන ආකාරයෙන් ලොග් කිරීම වින්යාසගත කළ යුතුය. බහාලුම් දියත් කරනු ලබන්නේ ඩොකර් විසිනි, එයින් අදහස් කරන්නේ ලොග් වීම ඩොකර් මට්ටමින් සකසා ඇති ආකාරය සොයා ගැනීමට අවශ්‍ය බවයි.

සෑම පාඨකයෙක්ම දන්නා බව මම බලාපොරොත්තු වෙමි: යෙදුම් ලොග් ලිවිය යුත්තේ stdout / stderr වෙත මිස කන්ටේනරය තුළ නොවේ. Docker Daemon විසින් ලඝු එකතු කර ඇති අතර, එය stdout/stderr වෙත යවන ලද එම ලොග සමඟ හරියටම ක්‍රියා කරයි. ඊට අමතරව, කන්ටේනරය තුළ ලඝු-සටහන් ලිවීම ගැටළු වලින් පිරී ඇත: වැඩෙන ලොගයෙන් කන්ටේනරය ඉදිමී (බොහෝ විට බහාලුම්වල ලොග්‍රෝටේට් නොමැති බැවින්), සහ ඩොකර් ඩේමන් මෙම ලොගය ගැන නොදනී.

බහාලුම් ලොග් එකතු කිරීම සඳහා ඩොකර් සතුව ලොග් ඩ්‍රයිවර් හෝ ප්ලගීන කිහිපයක් ඇත. නිදහස් Docker Community Edition (CE) හි වාණිජ Docker Enterprise Edition (EE) ට වඩා අඩු ලොග් ධාවක ඇත.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

මම කිසි විටක ප්‍රායෝගිකව Docker EE භාවිතා කර නැත: සවුත්බ්‍රිජ්හිදී අපි විවෘත මූලාශ්‍ර විසඳුම් වලට ඇලී සිටීමට උත්සාහ කරන අතර, පාරිභෝගිකයින්ට ඩොකර් EE හි බොහෝ අමතර විශේෂාංග අවශ්‍ය නොවේ.

Docker CE හි ලොග් ධාවක:

දේශීය - අභ්යන්තර Docker Daemon ගොනු වලට ලොග් ලිවීම;
json ගොනුව - එක් එක් බහාලුම් ෆෝල්ඩරයේ json-log නිර්මාණය කිරීම;
ජර්නල් - ජර්නල්ඩ් වෙත ලඝු-සටහන් යැවීම.

ඩොකර් ලොග් කිරීමේ සැකසුම් daemon.json ගොනුවේ පිහිටා ඇත.

"log-driver" ක්ෂේත්රයේ ප්ලගිනය නියම කරයි, සහ "log-opts" ක්ෂේත්රය එහි සැකසුම් නියම කරයි. ඉහත උදාහරණයේ, "json-file" ප්ලගිනය නියම කර ඇත, ලොග් ප්‍රමාණයේ සීමාව "උපරිම-ප්‍රමාණය": "10m"; ගොනු ගණන මත සීමාව (භ්රමණ සැකසුම්) — "max-file": "3"; ලඝු-සටහන් වලට අමුණා ඇති අගයන් මෙන්ම.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

සමහර ලොග් ධාවක සැකසුම් විධාන රේඛා උපයෝගීතාව හරහා සැකසිය හැක. වෙනත් ලොග් ධාවකයක් සමඟ වෙනම බහාලුමක් ධාවනය කිරීමට අවශ්‍ය නම් මෙය ප්‍රයෝජනවත් වේ.

ඩොකර් හි ලොග් කිරීමේ ක්‍රමය පෙනෙන්නේ කෙසේද යන්න මෙන්න:

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

යෝජනා ක්‍රමය ක්‍රියා කරන ආකාරය: json-file වැනි ලොග් ධාවකයක් ගොනු නිර්මාණය කරයි. ලොග් එකතු කරන්නන් (Rsyslog, Fluentd, Logagent සහ වෙනත්) මෙම ගොනු එකතු කර ඒවා Elastic, Sematext හෝ වෙනත් ගබඩාවල ගබඩා වෙත මාරු කරන්න.

Kubernetes හි ලොග් වීමේ විශේෂාංග

සරල කළහොත්, Kubernetes හි ලොග් කිරීමේ යෝජනා ක්‍රමය මේ ආකාරයෙන් පෙනේ: පොඩ් එකක් තිබේ, එහි කන්ටේනරයක් ක්‍රියාත්මක වේ, කන්ටේනරය stdout / stderr වෙත ලොග් යවයි. Docker පසුව ගොනුවක් සාදා ලඝු-සටහන් ලියන අතර එය භ්‍රමණය විය හැක.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

Kubernetes හි ලොග් වීමේ ලක්ෂණ සලකා බලන්න.

යෙදවුම් අතර ලඝු-සටහන් සුරකින්න. මෙය නිවැරදි ලොග් සැකසුම් සඳහා පූර්වාවශ්‍යතාවයකි. ඔබ යෙදවුම් අතර ලඝු-සටහන් සුරකිනු නොලබන්නේ නම්, යෙදුමේ නව අනුවාදයක් නිකුත් කරන විට, පෙර එකෙහි ලොග් නැවත ලියනු ලැබේ, කන්ටේනරය නැවත පූරණය කිරීම ද ලොග් නැතිවීමෙන් පිරී ඇත. Kubernetes සතුව --පෙර යතුර ඇත, එය ඔබට අවසන් Pod නැවත ආරම්භ කිරීමට පෙර යෙදුම් ලොග් බැලීමට ඉඩ සලසයි, නමුත් ගැඹුරු නොවේ.

සියලුම අවස්ථා වලින් ලඝු එකතු කරන්න. වලාකුළු තුළ ක්ෂුද්‍ර සේවා සපයන්නේ නම්, පද්ධති පාලනය සඳහා වලාකුළු සපයන්නා වගකිව යුතුය. ක්ෂුද්‍ර සේවා ඔවුන්ගේම දෘඩාංග මත තිබේ නම්, බහාලුම් වලින් ලොග් වලට අමතරව, ඔබ පද්ධති ලොග් එකතු කිරීමද අවශ්‍ය වේ.

මීට පෙර, පද්ධතියෙන් සහ ක්ෂුද්‍ර සේවා දෙකෙන්ම ලඝු-සටහන් එකතු කිරීම සඳහා පහසු මෙවලම් නොතිබුණි. සාමාන්‍යයෙන්, එක් මෙවලමක් මඟින් පද්ධති ලොග් එකතු කරන ලදී (උදාහරණයක් ලෙස, Rsyslog), දෙවැන්න - ඩොකර් වෙතින් ලොග (උදාහරණයක් ලෙස, ජර්නල්ඩ් මත වින්‍යාස කර ඇති ඩොකර් ලොග් ධාවකය සමඟ ජර්නල්-බිට්). අපි journal-bit භාවිතා කිරීමට උත්සාහ කළෙමු - බහාලුම් වලින් ලොග් එකතු කරන්න (ඔබට ජර්නල්ඩ් හි ලොග් ලිවීමට අවශ්‍ය බව ඩොකර් ලොග් ධාවකයේ දක්වන්න), සහ පද්ධතියෙන් (CentOS 7 හි දැනටමත් systemd සහ journald ඇත). විසඳුම ක්රියා කරයි, නමුත් පරිපූර්ණ නොවේ. ලොග් ගොඩක් තිබේ නම්, journal-bit ප්රමාද වීමට පටන් ගනී, පණිවිඩ නැති වී යයි.

අත්හදා බැලීම් දිගටම - තවත් ක්රමයක් සොයා ගන්නා ලදී. CentOS 7 හි, ප්‍රධාන පද්ධති ලොග (පණිවිඩ, විගණනය, ආරක්ෂිත) var-log හි ගොනු ලෙස අනුපිටපත් කර ඇත. json ගොනු වෙත ලොග් සුරැකීමට ද ඩොකර් වින්‍යාසගත කළ හැක. ඒ අනුව, CentOS 7 සහ Docker වෙතින් මෙම ගොනු එකට එකලස් කළ හැක.

කාලයත් සමඟ ELK Stack විසඳුම ජනප්රිය විය. එය මෙවලම් කිහිපයක එකතුවකි: Elasticsearch, Logstash සහ Kibana.

Elasticsearch බහාලුම් වලින් ලඝු-සටහන් ගබඩා කරයි, Logstash අවස්ථා වලින් ලඝු-සටහන් එකතු කරයි, Kibana ඔබට ලැබුණු ලඝු-සටහන් සැකසීමට සහ ඒවා මත පදනම්ව ප්‍රස්ථාර තැනීමට ඉඩ සලසයි. ELK Stack කාලයක් තිස්සේ සක්‍රියව භාවිතා කර ඇත, නමුත්, මගේ මතය අනුව, එහි කාලය ගෙවී යයි. ඇයි කියලා පස්සේ කියන්නම්.

පාරදත්ත එකතු කරන්න. Pods, යෙදුම්, බහාලුම් ඕනෑම තැනක ධාවනය කළ හැකිය. එපමණක් නොව, එක් යෙදුමකට අවස්ථා කිහිපයක් තිබිය හැකිය. ලඝු-සටහන් එකම ආකෘතියෙන් ලියා ඇති අතර, එය කුමන ආකාරයේ අනුරුවක්ද, Pod එය ලියන්නේ කුමක්ද, එය කුමන නාම අවකාශයේද යන්න අප තේරුම් ගත යුතුය. ලඝු-සටහන් පාර-දත්ත එක් කිරීමට අවශ්‍ය වන්නේ එබැවිනි.

ලඝු-සටහන් විග්‍රහ කරන්න. එය හාස්‍යජනක ය, නමුත් ලොග් සහ අධීක්ෂණ පද්ධතියක් නඩත්තු කිරීමේ පිරිවැය ප්‍රධාන යෙදුමේ පිරිවැය ඉක්මවා යා හැක. ඔබ තත්පරයකට දස දහස් ගණනක් ලොග පියාසර කරන විට, මෙය ස්වාභාවික බව පෙනේ, නමුත් ඔබ තවමත් රේඛාව දැන සිටිය යුතුය. මෙම දාරය සොයා ගැනීමට එක් ක්‍රමයක් නම් ලොග විග්‍රහ කිරීමයි.

රීතියක් ලෙස, ඔබ සියලු ලඝු-සටහන් එකතු කර ගබඩා කිරීමට අවශ්ය නොවේ, ඔබට ගබඩා කිරීම සඳහා කොටසක් පමණක් යැවිය යුතුය - නිදසුනක් ලෙස, "අනතුරු ඇඟවීම" හෝ "දෝෂය" තත්ත්වය සහිත ලඝු-සටහන්. අපි කතා කරන්නේ nginx හෝ ingress controller logs ගැන නම්, ගබඩා කිරීම සඳහා යැවිය හැක්කේ 200 ට වඩා වෙනස් වන ඒවා පමණි, නමුත් මෙය විශ්වීය උපදෙස් නොවේ: ඔබ කෙසේ හෝ Nginx ලොග් මත පදනම්ව විශ්ලේෂණ ගොඩනඟන්නේ නම්, ඒවා පැහැදිලිවම එකතු කිරීම වටී.

නොසැලකිලිමත් ලෙස ලඝු-සටහන් පෙරීම නිර්දේශ නොකරයි, මන්ද පෙරූ දත්ත සාමාන්‍ය විශ්ලේෂණ සඳහා ප්‍රමාණවත් නොවිය හැක. අනෙක් අතට, සමහර විට විශ්ලේෂණ සිදු කළ යුත්තේ ලොග් මට්ටමින් නොව, ප්‍රමිතික එකතු කිරීමේ මට්ටමින් ය. එවිට ඔබට කේතය 200 සමඟ පේළි සිය දහස් ගණනක් ගබඩා කිරීමට අවශ්ය නැත. එක් ප්රවේශයක් වන්නේ ඇතුල්වීමේ පාලකයන්ගේ ප්රමිතික වලින් ගමනාගමනය සහ දෝෂ පිළිබඳ තොරතුරු ලබා ගැනීමයි.

පොදුවේ ගත් කල, මෙහිදී ඔබ හොඳින් සිතා බැලිය යුතුය: ඔබට ගබඩා කිරීමට අවශ්‍ය කුමක්ද සහ කොපමණ කාලයක් සඳහාද, එසේ නොමැතිනම් ලොග් පද්ධතිය ප්‍රධාන ව්‍යාපෘතියට වඩා වැඩි සම්පත් ලබා ගන්නා විට තත්වයක් පැන නගී.

ලොග් කිරීම සඳහා තවමත් සම්මත විසඳුමක් නොමැත. අධීක්ෂණය මෙන් නොව, එක් වඩාත් පොදු Prometheus විසඳුමක් ඇති තැන, ලොග් කිරීමේ ප්‍රමිතියක් නොමැත.

මෙම දේශනයේදී, අපි මෙවලම් දෙකක් දෙස බලමු: එකක් ජනප්රියයි, දෙවනුව ජනප්රිය වෙමින් පවතී. ඔවුන්ට අමතරව, තවත් අය ඇත, නමුත් මෙම ලිපියෙන් අපි ඒවා ස්පර්ශ නොකරමු.

ඉහත සාකච්ඡා කර ඇති සියලුම විශේෂාංග සලකා බැලීමේදී, Kubernetes හි ලොග් වීම දැන් පහත ආකාරයෙන් නිරූපණය කළ හැක:

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

බහාලුම් ලොගය ඉතිරිව ඇත, භ්‍රමණය වේ, නමුත් එකතුකරන්නෙකු පෙනී සිටින අතර, එය ලොග් රැගෙන ගබඩා කිරීම සඳහා යවයි (රූප සටහනේ - ලොග් කිරීමේ පසුබිමේ). නියෝජිතයා එක් එක් නෝඩය මත ධාවනය වන අතර සාමාන්යයෙන් Kubernetes මත ධාවනය වේ.

දැන් ලොග් කිරීම සඳහා මෙවලම් සලකා බලන්න.

ග්‍රෆානා ලොකි

ග්‍රෆානා ලොකි මෑතකදී පෙනී සිටි නමුත් දැනටමත් තරමක් ප්රසිද්ධ වී ඇත. එහි වාසි: ස්ථාපනය කිරීමට පහසු, සම්පත් කිහිපයක් පරිභෝජනය කරයි, එය TSDB (කාල ශ්‍රේණි දත්ත ගබඩාව) තුළ දත්ත ගබඩා කරන බැවින්, Elasticsearch ස්ථාපනය කිරීම අවශ්‍ය නොවේ. පසුගිය ලිපියේ, Prometheus එවැනි දත්ත ගබඩාවක දත්ත ගබඩා කරන බව මම ලියා ඇති අතර, මෙම නිෂ්පාදන දෙක අතර ඇති බොහෝ සමානකම් වලින් එකකි. සංවර්ධකයින් පවා කියා සිටින්නේ ලොකි යනු "ලොග් ලෝකය සඳහා ප්‍රොමිතියස්" බවයි.

කියවා නැති අයට TSDB ගැන පොඩි විස්තරයක් පෙර ලිපිය: TSDB විශාල දත්ත ප්‍රමාණයක් ගබඩා කිරීමේ විශිෂ්ට කාර්යයක්, කාල ශ්‍රේණි, නමුත් දිගුකාලීන ගබඩා කිරීම සඳහා නිර්මාණය කර නැත. කිසියම් හේතුවක් නිසා ඔබට සති දෙකකට වඩා වැඩි කාලයක් ලොග් ගබඩා කිරීමට අවශ්‍ය නම්, ඒවා වෙනත් දත්ත ගබඩාවකට මාරු කිරීම වින්‍යාස කිරීම වඩා හොඳය.

Loki හි තවත් වාසියක් වන්නේ දත්ත දෘශ්‍යකරණය සඳහා Grafana භාවිතා කිරීමයි. එය ඉතා පහසු ය: Grafana හි අපි අධීක්ෂණ දත්ත දෙස බලන අතර එම ස්ථානයේම, Loki සම්බන්ධ කිරීමෙන්, අපි ලඝු-සටහන් දෙස බලමු. ප්‍රස්ථාර තැනීමට ලඝු-සටහන් භාවිතා කළ හැක.

Loki ගෘහ නිර්මාණ ශිල්පය මේ වගේ දෙයක් පෙනේ:

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

DaemonSet භාවිතා කරමින්, සියලුම පොකුරු සේවාදායකයන් මත නියෝජිතයෙකු යොදවනු ලැබේ - Promtail හෝ Fluent Bit. නියෝජිතයා ලඝු-සටහන් එකතු කරයි. Loki ඒවා රැගෙන ඔහුගේ TSDB හි ගබඩා කරයි. පාර-දත්ත වහාම ලඝු-සටහන් වලට එකතු කරනු ලැබේ, එය පහසු වේ: ඔබට Pods, namespaces, බහාලුම් නම් සහ ලේබල මගින් පවා පෙරීමට හැකිය.

Loki ස්ථාපන උපදෙස්

Loki හුරුපුරුදු Grafana අතුරුමුහුණත තුළ ධාවනය කරයි. Loki හට LogQL නමින් තමන්ගේම විමසුම් භාෂාවක් ඇත, එය Prometheus හි PromQL ට නම සහ වාක්‍ය ඛණ්ඩයට සමාන වේ. Loki අතුරුමුහුණතෙහි විමසුම් සහිත විමසුම් ඇත, එබැවින් ඒවා හදවතින් දැන ගැනීම අවශ්‍ය නොවේ.

LogQL ලේඛනගත කිරීම

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය
Grafana අතුරුමුහුණතේ Loki

ෆිල්ටර් භාවිතයෙන්, Loki හට කේත ("400", "404" සහ වෙනත් ඕනෑම) සොයාගත හැකිය; සම්පූර්ණ නෝඩයෙන් ලඝු-සටහන් බලන්න; "දෝෂය" යන වචනය අඩංගු සියලුම ලඝු-සටහන් පෙරහන් කරන්න. ඔබ ලොගය මත ක්ලික් කළහොත්, සිද්ධිය පිළිබඳ සියලු තොරතුරු සහිත කාඩ්පතක් විවෘත වේ.

ඔබට අවශ්‍ය ලඝු-සටහන් ඉවත් කිරීමට ඉඩ සලසන ප්‍රමාණවත් මෙවලම් Loki හි ඇත, අවංකව කිවහොත්, තාක්ෂණික වශයෙන් තවත් තිබිය හැක. දැන් Loki ක්රියාකාරීව සංවර්ධනය වෙමින් ජනප්රිය වෙමින් පවතී.

Elastic + Fluent Bit + Kibana (EFK Stack)

EFK තොගය වඩාත් සම්භාව්‍ය නමුත් සමානව ජනප්‍රිය ලොග් කිරීමේ මෙවලමකි.

ලිපිය ආරම්භයේදීම, ELK (Elasticsearch + Logstash + Kibana) සඳහන් කර ඇත, නමුත් මෙම තොගය ඉතා ඵලදායී නොවන අතර ඒ සමඟම සම්පත්-අධික Logstash නිසා යල් පැන ගොස් ඇත. ඒ වෙනුවට, ඔවුන් වඩාත් සැහැල්ලු හා ඵලදායී Fluentd භාවිතා කිරීමට පටන් ගත් අතර, ටික වේලාවකට පසු ඔහු ගලවා ගැනීමට පැමිණියේය. චතුර ටිකක් - ඊටත් වඩා සැහැල්ලු හා ඊටත් වඩා ඵලදායී නියෝජිත-එකතු කරන්නා.

සංවර්ධකයින්ට අනුව, Fluent Bit කාර්ය සාධනයෙන් Fluentd ට වඩා 100 ගුණයකට වඩා හොඳය: "Fluentd 20 MB RAM පරිභෝජනය කරන විට, Fluent Bit 150 KB පරිභෝජනය කරයි" - ලේඛනයෙන් සෘජු උපුටා දැක්වීමකි. මේක බැලුවම Fluent Bit එක වැඩි වැඩියෙන් භාවිතා වෙලා.

Fluent Bit Fluentd වලට වඩා අඩු පහසුකම් ඇත, නමුත් එය ප්‍රධාන අවශ්‍යතා ආවරණය කරයි, එබැවින් අපි බොහෝ දුරට Fluent Bit භාවිතා කරමු.

EFK තොගය ක්‍රියා කරන ආකාරය: නියෝජිතයා සියලුම කරල් වලින් ලඝු එකතු කරයි (සාමාන්‍යයෙන් සියලුම පොකුරු සේවාදායකයන් මත ධාවනය වන DaemonSet) සහ ඒවා ගබඩාවට යවයි (Elasticsearch, PostgreSQL හෝ Kafka). කිබානා ගබඩාවට සම්බන්ධ වන අතර අවශ්‍ය සියලු තොරතුරු එතැනින් ලබා ගනී.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

කිබානා පරිශීලක-හිතකාමී වෙබ් අතුරු මුහුණතක් තුළ තොරතුරු ඉදිරිපත් කරයි. ප්‍රස්ථාර, පෙරහන් සහ තවත් දේ ඇත.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

සම්පූර්ණ උපකරණ පුවරු නිර්මාණය කිරීමට ලඝු-සටහන් භාවිතා කළ හැක.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

Fluent Bit විශේෂාංග

Fluent Bit සාමාන්යයෙන් Logstash වලට වඩා අඩුවෙන් ඇසෙන නිසා, අපි එය සමීපව බලමු. Fluent Bit තාර්කිකව මොඩියුල 6කට බෙදිය හැකි අතර Fluent Bit හි හැකියාවන් දිගු කරන සමහර මොඩියුල වලට ප්ලගීන ඇමිණිය හැක.

Kubernetes වෙත පිවිසීම: ලඝු-සටහන් එකතු කිරීම, ගබඩා කිරීම, විග්‍රහ කිරීම සහ සකසන ආකාරය

ආදාන මොඩියුලය ගොනු, systemd සේවා, සහ tcp-socket වෙතින් පවා ලඝු එකතු කරයි (ඔබට අවසන් ලක්ෂ්‍යයක් සඳහන් කිරීමට අවශ්‍ය වන අතර, Fluent Bit එහි යාමට පටන් ගනී). පද්ධතිය සහ බහාලුම් දෙකෙන්ම ලඝු එකතු කිරීමට මෙම විශේෂාංග ප්‍රමාණවත් වේ.

නිෂ්පාදනයේදී, අපි බොහෝ විට ප්ලගීන භාවිතා කරමු වලිගය (එය ලඝු-සටහන් සහිත ෆෝල්ඩරයක් මත සැකසිය හැක) සහ පද්ධතිමය (ලඝු-සටහන් එකතු කළ යුතු සේවාවන් මොනවාදැයි ඔහුට පැවසිය හැකිය).

විග්‍රහ මොඩියුලය ලඝු-සටහන් පොදු දර්ශනයකට ගෙන එයි. පෙරනිමියෙන්, Nginx ලඝු-සටහන් තන්තුවකි. ප්ලගිනය භාවිතයෙන්, මෙම තන්තුව JSON වෙත පරිවර්තනය කළ හැක: ක්ෂේත්‍ර සහ ඒවායේ අගයන් සකසන්න. වඩාත් නම්‍යශීලී වර්ග කිරීමේ විකල්ප ඇති බැවින් JSON තන්තු ලොගයකට වඩා වැඩ කිරීමට පහසු වේ.

පෙරහන් මොඩියුලය. මෙම මට්ටමේ දී, අනවශ්ය ලඝු-සටහන් ඉවත් කරනු ලැබේ. උදාහරණයක් ලෙස, ලොග් ගබඩා කිරීම සඳහා යවනු ලබන්නේ "අවවාදයයි" යන අගය සමඟ හෝ ඇතැම් ලේබල් සමඟ පමණි. තෝරාගත් ලඝු-සටහන් බෆර කර ඇත.

බෆර් මොඩියුලය. Fluent Bit සතුව බෆර වර්ග දෙකක් ඇත: මතක බෆරයක් සහ තැටි බෆරයක්. බෆරයක් යනු ලොග් තාවකාලික ගබඩා කිරීමකි, දෝෂ හෝ අසාර්ථක වීම් වලදී අවශ්‍ය වේ. සෑම කෙනෙකුටම RAM මත සුරැකීමට අවශ්යයි, එබැවින් ඔවුන් සාමාන්යයෙන් තැටි බෆරයක් තෝරා ගනී. නමුත් තැටියට යාමට පෙර, ලඝු-සටහන් තවමත් මතකයට මුදා හරින බව මතක තබා ගන්න.

මාර්ගගත කිරීම/ප්‍රතිදාන මොඩියුලය ලඝු-සටහන් යැවීම සඳහා නීති සහ ලිපින අඩංගු වේ. දැනටමත් සඳහන් කර ඇති පරිදි, ලඝු-සටහන් Elasticsearch, PostgreSQL හෝ, උදාහරණයක් ලෙස, Kafka වෙත යැවිය හැක.

සිත්ගන්නා කරුණ නම්, ලඝු-සටහන් Fluent Bit සිට Fluentd වෙත යැවිය හැක. පළමු එක වඩා සැහැල්ලු සහ අඩු ක්‍රියාකාරී බැවින්, ඔබට එය හරහා ලඝු-සටහන් එකතු කර Fluentd වෙත යැවිය හැකි අතර, දැනටමත් එහි ඇති, අමතර ප්ලගීන ආධාරයෙන්, ඒවා තවදුරටත් සකස් කර ගබඩා වෙත යැවිය හැක.

ඔබ Elasticsearch භාවිතා කිරීමට අදහස් කරන්නේ නම්...

අවසාන වශයෙන්, නිෂ්පාදනයේ ලොග් ගබඩාවක් ලෙස Elasticsearch භාවිතා කිරීමට අදහස් කරන අය සඳහා උපදෙස් දෙකක්.

  1. සමඟ ඇඟවීම් සකසන්න ElastAlert. මෙම වැඩසටහන ලොග් වල සාමාන්‍ය ප්‍රවාහයෙන් වැදගත් පණිවිඩ හුදකලා කර තැපෑලෙන් හෝ වෙනත් නාලිකාවකින් ඒවා පිළිබඳ ඇඟවීම් කරයි. ඇත්ත, බොහෝ කලකට පෙර නොවේ මෙම ව්‍යාපෘතිය නුදුරේදීම නතර විය හැකි බව කණගාටුදායක ආරංචියකි.
  2. යෙදුම සමඟ ලොග කරකවන්න කථාගාරය හෝ Elasticsearch API වෙත ඇමතුම්. ඉලාස්ටික් විසින්ම, ප්‍රතිපත්තිමය වශයෙන්, තෙවන පාර්ශවීය මෙවලම් භාවිතයෙන් තොරව දර්ශකවල ආයු කාලය කළමනාකරණය කිරීම සඳහා සැලකිය යුතු පියවර ගනිමින් සිටී. පොදුවේ ගත් කල, ලොග් දිගු කාලයක් තබා ගැනීමේ තේරුමක් නැත: සති දෙකකට පසු කිසියම් ලොගයක් අවශ්‍ය වනු ඇතැයි සිතිය නොහැක - එය සැබවින්ම තීරණාත්මක නම්, එය සති දෙකකින් අනිවාර්යයෙන්ම ක්‍රියාත්මක වේ. ආන්තික අවස්ථාවන්හිදී, පැරණි ලඝු-සටහන් සංරක්ෂණය කර දිගුකාලීන ගබඩා කිරීම සඳහා කොහේ හරි යැවිය හැක. නීතියෙන් අවුරුදු 5ක් දක්වා තබා ගත යුතු විශේෂ ලඝු-සටහන් ගැන මම අසා ඇත්තෙමි. පුද්ගලිකව, මම මෙය හමු වී නැත, නමුත් මම එවැනි තොරතුරු සාමාන්‍ය ලඝු-සටහන් සමඟ සමාන නොකරමි, සමහර විට ඒවා වෙන වෙනම ගබඩා කරමි.

ඉදිරියට පැවැත්වේ…

කර්තෘ: Marcel Ibraev, සහතික කළ Kubernetes පරිපාලක, සමාගමේ පුහුණු ඉංජිනේරු සවුත්බ්‍රිජ්, කථිකයා සහ පාඨමාලා සංවර්ධකයා මුඩුක්කුව.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න