லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்

வணக்கம், கப்ரோவைட்ஸ்! படிப்புக்கான புதிய சேர்க்கை தொடங்கும் என்ற எதிர்பார்ப்பில் "DevOps நடைமுறைகள் மற்றும் கருவிகள்" உங்களுக்காக சுவாரஸ்யமான பொருளின் மொழிபெயர்ப்பை தயார் செய்தேன்.

இந்தக் கட்டுரை லோகியின் சுருக்கமான அறிமுகமாகும். திட்டம் லோகி கிராஃபானாவால் ஆதரிக்கப்பட்டது மற்றும் பதிவுகளின் மையப்படுத்தப்பட்ட சேகரிப்பை நோக்கமாகக் கொண்டது (சேவையகங்கள் அல்லது கொள்கலன்களில் இருந்து).

லோகிக்கு முக்கிய உத்வேகம் இருந்தது பிரமீதீயஸ் பதிவு மேலாண்மைக்கு அவரது அணுகுமுறைகளைப் பயன்படுத்துவதற்கான யோசனையுடன்:

  • தரவைச் சேமிக்க லேபிள்களைப் பயன்படுத்துதல்
  • குறைந்த வள நுகர்வு

நாங்கள் ப்ரோமிதியஸின் கொள்கைகளுக்குத் திரும்புவோம் மற்றும் குபெர்னெட்டஸின் சூழலில் அதன் பயன்பாட்டின் சில எடுத்துக்காட்டுகளைத் தருவோம்.

ப்ரோமிதியஸ் பற்றி சில வார்த்தைகள்

லோகி எவ்வாறு செயல்படுகிறார் என்பதை முழுமையாகப் புரிந்து கொள்ள, ஒரு படி பின்வாங்கி, ப்ரோமிதியஸை மீண்டும் பார்க்க வேண்டியது அவசியம்.

ப்ரோமிதியஸின் தனித்துவமான பண்புகளில் ஒன்று, சேகரிப்பு புள்ளிகளிலிருந்து (ஏற்றுமதியாளர்கள் வழியாக) அளவீடுகளைப் பிரித்தெடுத்தல் மற்றும் அவற்றை லேபிள்கள் வடிவில் மெட்டாடேட்டாவைச் சேர்த்து TSDB (நேரத் தொடர் தரவுத்தளம், நேரத் தொடர் தரவுத்தளம்) இல் சேமித்து வைப்பதாகும்.

அது ஏன் அவசியம்

சமீபத்தில், ப்ரோமிதியஸ் கொள்கலன்கள் மற்றும் குபெர்னெட்டுகளின் உலகில் நடைமுறை தரநிலையாக மாறியுள்ளது: அதன் நிறுவல் மிகவும் எளிமையானது, மேலும் குபெர்னெட்ஸ் கிளஸ்டர் ஆரம்பத்தில் ப்ரோமிதியஸுக்கு ஒரு இறுதிப் புள்ளியைக் கொண்டுள்ளது. ப்ரோமிதியஸ் குறிப்பிட்ட லேபிள்களைப் பராமரிக்கும் போது ஒரு கொள்கலனில் பயன்படுத்தப்பட்ட பயன்பாடுகளிலிருந்து அளவீடுகளைப் பிரித்தெடுக்க முடியும். எனவே, பயன்பாடு கண்காணிப்பு செயல்படுத்த மிகவும் எளிதானது.

துரதிர்ஷ்டவசமாக, பதிவு மேலாண்மைக்கான ஆயத்த தயாரிப்பு தீர்வு இன்னும் இல்லை, மேலும் நீங்களே ஒரு தீர்வைக் கண்டுபிடிக்க வேண்டும்:

  • பதிவுகளை மையப்படுத்துவதற்கான நிர்வகிக்கப்படும் கிளவுட் சேவை (AWS, Azure அல்லது Google)
  • கண்காணிப்பு சேவை "ஒரு சேவையாக கண்காணிப்பு" (எடுத்துக்காட்டாக, டேட்டாடாக்)
  • உங்கள் சொந்த பதிவு சேகரிப்பு சேவையை உருவாக்குதல்.

மூன்றாவது விருப்பத்திற்கு, நான் எப்பொழுதும் மகிழ்ச்சியாக இல்லை என்ற போதிலும் (குறிப்பாக அதன் கனம் மற்றும் அமைப்பின் சிக்கலான தன்மை) எலாஸ்டிக் தேடலைப் பாரம்பரியமாகப் பயன்படுத்தினேன்.

லோகி பின்வரும் கொள்கைகளின்படி செயல்படுத்த எளிதாக வடிவமைக்கப்பட்டுள்ளது:

  • தொடங்குவது எளிதாக இருக்கும்
  • சில வளங்களை நுகரும்
  • சிறப்பு பராமரிப்பு இல்லாமல் சுதந்திரமாக வேலை செய்யுங்கள்
  • பிழை விசாரணைகளுக்கு உதவ, Prometheus க்கு ஒரு துணை நிரலாக செயல்படும்

இருப்பினும், இந்த எளிமை சில சமரசங்களின் இழப்பில் வருகிறது. அவற்றில் ஒன்று உள்ளடக்கத்தை அட்டவணைப்படுத்துவது அல்ல. எனவே, உரைத் தேடல் மிகவும் திறமையானதாகவோ அல்லது வளமாகவோ இல்லை, மேலும் உரையின் உள்ளடக்கத்தைப் பற்றிய புள்ளிவிவரங்களை வைத்திருக்க உங்களை அனுமதிக்காது. ஆனால் லோகி ப்ரோமிதியஸுக்கு இணையான மற்றும் துணையாக இருக்க விரும்புவதால், இது ஒரு குறைபாடல்ல.

சம்பவம் விசாரணை

லோகிக்கு ஏன் அட்டவணைப்படுத்தல் தேவையில்லை என்பதை நன்றாகப் புரிந்துகொள்ள, லோகி டெவலப்பர்கள் பயன்படுத்தும் சம்பவ விசாரணை முறைக்குத் திரும்புவோம்:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
1 விழிப்பூட்டல் → 2 டாஷ்போர்டு → 3 அட்ஹாக் வினவல் → 4 பதிவு திரட்டல் → 5 விநியோகிக்கப்பட்ட டிரேசிங் → 6 சரி!
(1 எச்சரிக்கை → 2 டாஷ்போர்டு → 3 Adhoc வினவல் → 4 பதிவு திரட்டல் → 5 விநியோகிக்கப்பட்ட ட்ரேசிங் → 6 சரி!)

எண்ணம் என்னவென்றால், நாம் ஒருவித எச்சரிக்கையைப் பெறுவோம் (ஸ்லாக் அறிவிப்பு, எஸ்எம்எஸ் போன்றவை) அதன் பிறகு:

  • கிராஃபானா டாஷ்போர்டுகளைப் பாருங்கள்
  • சேவை அளவீடுகளைப் பாருங்கள் (உதாரணமாக, ப்ரோமிதியஸில்)
  • பதிவு உள்ளீடுகளைப் பார்க்கவும் (உதாரணமாக, மீள் தேடலில்)
  • ஒருவேளை விநியோகிக்கப்பட்ட தடயங்களைப் பாருங்கள் (ஜெய்கர், ஜிப்கின், முதலியன)
  • இறுதியாக அசல் சிக்கலை சரிசெய்யவும்.

இங்கே, Grafana + Prometheus + Elasticsearch + Zipkin ஸ்டாக் விஷயத்தில், நீங்கள் நான்கு வெவ்வேறு கருவிகளைப் பயன்படுத்த வேண்டும். நேரத்தை மிச்சப்படுத்த, கிராஃபனா என்ற ஒரே கருவி மூலம் இந்த அனைத்து நடவடிக்கைகளையும் செய்ய முடிந்தால் நன்றாக இருக்கும். ஆராய்ச்சிக்கான இந்த அணுகுமுறை பதிப்பு 6ல் இருந்து கிராஃபனாவில் நடைமுறைப்படுத்தப்பட்டது என்பது குறிப்பிடத்தக்கது. இதனால், கிராஃபானாவிலிருந்து நேரடியாக ப்ரோமிதியஸ் தரவை அணுகுவது சாத்தியமாகிறது.

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
எக்ஸ்ப்ளோரர் திரை ப்ரோமிதியஸுக்கும் லோகிக்கும் இடையே பிளவுபட்டது

இந்தத் திரையில் இருந்து, ஸ்பிளிட் ஸ்கிரீன் கான்செப்ட்டைப் பயன்படுத்தி ப்ரோமிதியஸ் அளவீடுகள் தொடர்பான Loki பதிவுகளைப் பார்க்கலாம். பதிப்பு 6.5 முதல், உங்களுக்கு பிடித்த விநியோகிக்கப்பட்ட டிரேசிங் கருவிகளுக்கான (ஜெய்கர்) இணைப்புகளைப் பின்தொடர, லோகி பதிவு உள்ளீடுகளில் உள்ள டிரேஸ் ஐடியை அலச கிராஃபானா உங்களை அனுமதிக்கிறது.

லோகி உள்ளூர் சோதனை

லோகியை உள்நாட்டில் சோதிக்க எளிதான வழி டோக்கர்-கம்போஸ் பயன்படுத்துவதாகும். டோக்கர்-கம்போஸ் கோப்பு லோகி களஞ்சியத்தில் அமைந்துள்ளது. பின்வரும் கட்டளையுடன் நீங்கள் களஞ்சியத்தைப் பெறலாம் git:

$ git clone https://github.com/grafana/loki.git

பின்னர் நீங்கள் தயாரிப்பு கோப்பகத்திற்கு மாற்ற வேண்டும்:

$ cd production

அதன் பிறகு, நீங்கள் சமீபத்திய டோக்கர் படங்களைப் பெறலாம்:

$ docker-compose pull

இறுதியாக, லோகி ஸ்டேக் பின்வரும் கட்டளையுடன் தொடங்கப்பட்டது:

$ docker-compose up

லோகி கட்டிடக்கலை

லோகி கட்டிடக்கலையுடன் ஒரு சிறிய வரைபடம் இங்கே:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
லோகி கட்டிடக்கலை கோட்பாடுகள்

வலை கிளையன்ட் சேவையகத்தில் பயன்பாடுகளை இயக்குகிறது, ப்ரோம்டெயில் பதிவுகளை சேகரித்து அவற்றை லோகிக்கு அனுப்புகிறது, வலை கிளையன்ட் மெட்டாடேட்டாவையும் லோகிக்கு அனுப்புகிறது. லோகி எல்லாவற்றையும் ஒருங்கிணைத்து கிராஃபனாவுக்கு அனுப்புகிறார்.
லோகி ஓடுகிறான். கிடைக்கக்கூடிய கூறுகளைக் காண, பின்வரும் கட்டளையை இயக்கவும்:

$ docker ps

புதிதாக நிறுவப்பட்ட டோக்கரின் விஷயத்தில், கட்டளை பின்வரும் முடிவை அளிக்க வேண்டும்:

IMAGE               PORTS                  NAMES
grafana/promtail:                          production_promtail_1
grafana/grafana: m  0.0.0.0:3000->3000/tcp production_grafana_1
grafana/loki: late  80/tcp,0.0.0.0:3100... production_loki_1

பின்வரும் கூறுகளை நாங்கள் காண்கிறோம்:

  • Promtail: பதிவுகளை மையப்படுத்துவதற்குப் பொறுப்பான முகவர்
  • கிராஃபானா: பிரபலமான டாஷ்போர்டு கருவி
  • லோகி: தரவு மையப்படுத்தல் டீமான்

ஒரு உன்னதமான உள்கட்டமைப்பின் ஒரு பகுதியாக (உதாரணமாக, மெய்நிகர் இயந்திரங்களின் அடிப்படையில்), ஒவ்வொரு கணினியிலும் Promtail முகவர் பயன்படுத்தப்பட வேண்டும். கிராஃபானா மற்றும் லோகியை ஒரே கணினியில் நிறுவலாம்.

குபெர்னெட்டஸுக்கு அனுப்புதல்

குபெர்னெட்டஸில் லோகி கூறுகளை நிறுவுவது பின்வருமாறு:

  • சர்வர் கிளஸ்டரில் உள்ள ஒவ்வொரு கணினியிலும் ப்ரோம்டெயில் முகவரை வரிசைப்படுத்த deemonSet
  • லோகி வரிசைப்படுத்தல்
  • மற்றும் கடைசியாக கிராஃபனாவின் வரிசைப்படுத்தல் ஆகும்.

அதிர்ஷ்டவசமாக, லோகி ஹெல்ம் தொகுப்பாகக் கிடைக்கிறது, இது வரிசைப்படுத்துவதை எளிதாக்குகிறது.

ஹெம்ல் வழியாக நிறுவல்

நீங்கள் ஏற்கனவே ஹெம்லை நிறுவியிருக்க வேண்டும். இது திட்டத்தின் GitHub களஞ்சியத்திலிருந்து பதிவிறக்கம் செய்யப்படலாம். உங்கள் கட்டிடக்கலைக்கு பொருத்தமான காப்பகத்தைப் பிரித்தெடுத்து, ஹெல்ம் சேர்ப்பதன் மூலம் இது நிறுவப்பட்டுள்ளது $PATH.

குறிப்பு: ஹெல்மின் பதிப்பு 3.0.0 சமீபத்தில் வெளியிடப்பட்டது. அதில் பல மாற்றங்கள் ஏற்பட்டுள்ளதால், அதைப் பயன்படுத்தத் தொடங்குவதற்கு முன், வாசகர் சிறிது காத்திருக்குமாறு அறிவுறுத்தப்படுகிறார்கள்..

ஹெல்மிற்கான ஆதாரத்தைச் சேர்த்தல்

பின்வரும் கட்டளையுடன் "லோகி" களஞ்சியத்தைச் சேர்ப்பது முதல் படி:

$ helm add loki https://grafana.github.io/loki/charts

அதன் பிறகு, "loki" என்ற தொகுப்புகளைத் தேடலாம்:

$ helm search loki

முடிவு:

loki/loki       0.17.2 v0.4.0 Loki: like Prometheus, but for logs.
loki/loki-stack 0.19.1 v0.4.0 Loki: like Prometheus, but for logs.
loki/fluent-bit 0.0.2  v0.0.1 Uses fluent-bit Loki go plugin for...
loki/promtail   0.13.1 v0.4.0 Responsible for gathering logs and...

இந்த தொகுப்புகள் பின்வரும் அம்சங்களைக் கொண்டுள்ளன:

  • пакет லோகி/லோகி லோகி சேவையகத்துடன் மட்டுமே பொருந்தும்
  • пакет loki/fluent-bit Promtailக்குப் பதிலாக பதிவுகளைச் சேகரிக்க fluent-bin ஐப் பயன்படுத்தி DaemonSet ஐப் பயன்படுத்த உங்களை அனுமதிக்கிறது
  • пакет loki/promtail பதிவு சேகரிப்பு முகவர் உள்ளது
  • пакет loki/loki-stack, ப்ரோம்டெயிலுடன் லோகியை உடனடியாகப் பயன்படுத்த உங்களை அனுமதிக்கிறது.

லோகியை நிறுவுகிறது

லோகியை குபெர்னெட்டஸில் பயன்படுத்த, பின்வரும் கட்டளையை “கண்காணிப்பு” பெயர்வெளியில் இயக்கவும்:

$ helm upgrade --install loki loki/loki-stack --namespace monitoring

வட்டில் சேமிக்க, விருப்பத்தைச் சேர்க்கவும் --set loki.persistence.enabled = true:

$ helm upgrade --install loki loki/loki-stack 
              --namespace monitoring 
              --set loki.persistence.enabled=true

குறிப்பு: நீங்கள் ஒரே நேரத்தில் கிராஃபானாவை பயன்படுத்த விரும்பினால், அளவுருவைச் சேர்க்கவும் --set grafana.enabled = true

இந்த கட்டளையை இயக்கும்போது, ​​பின்வரும் வெளியீட்டை நீங்கள் பெற வேண்டும்:

LAST DEPLOYED: Tue Nov 19 15:56:54 2019
NAMESPACE: monitoring
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
loki-promtail-clusterrole 189d
…
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.
See <a href="http://docs.grafana.org/features/datasources/loki/">http://docs.grafana.org/features/datasources/loki/</a> for more details.

"கண்காணிப்பு" பெயர்வெளியில் உள்ள காய்களின் நிலையைப் பார்த்தால், அனைத்தும் பயன்படுத்தப்படுவதை நாம் காணலாம்:

$ kubectl -n monitoring get pods -l release=loki

முடிவு:

NAME                 READY  STATUS   RESTARTS  AGE
loki-0               1/1    Running  0         147m
loki-promtail-9zjvc  1/1    Running  0         3h25m
loki-promtail-f6brf  1/1    Running  0         11h
loki-promtail-hdcj7  1/1    Running  0         3h23m
loki-promtail-jbqhc  1/1    Running  0         11h
loki-promtail-mj642  1/1    Running  0         62m
loki-promtail-nm64g  1/1    Running  0         24m

அனைத்து காய்களும் இயங்குகின்றன. இப்போது சில சோதனைகளைச் செய்ய வேண்டிய நேரம் இது!

கிராஃபனாவுடன் இணைக்கிறது

குபெர்னெட்டஸின் கீழ் உள்ள கிராஃபனாவுடன் இணைக்க, அதன் பாட்க்கு நீங்கள் ஒரு சுரங்கப்பாதையைத் திறக்க வேண்டும். கிராஃபனா பாட் போர்ட் 3000 ஐ திறக்க பின்வரும் கட்டளை உள்ளது:

$ kubectl -n port-forward monitoring svc/loki-grafana 3000:80

மற்றொரு முக்கியமான விஷயம் கிராஃபானா நிர்வாகி கடவுச்சொல்லை மீட்டெடுக்க வேண்டும். கடவுச்சொல் ரகசியமாக வைக்கப்பட்டுள்ளது loki-grafana துறையில் .data.admin-user அடிப்படை64 வடிவத்தில்.

அதை மீட்டெடுக்க, நீங்கள் பின்வரும் கட்டளையை இயக்க வேண்டும்:

$ kubectl -n monitoring get secret loki-grafana 
 --template '{{index .data "admin-password" | base64decode}}'; echo

இந்த கடவுச்சொல்லை இயல்புநிலை நிர்வாகி கணக்குடன் (நிர்வாகி) இணைந்து பயன்படுத்தவும்.

கிராஃபானாவில் லோகி தரவு மூல வரையறை

முதலில், லோகி தரவு மூல (கட்டமைப்பு / தரவுமூலம்) உருவாக்கப்பட்டதா என்பதை உறுதிப்படுத்தவும்.
இங்கே ஒரு உதாரணம்:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
லோகிக்கான தரவு மூலத்தை அமைப்பதற்கான எடுத்துக்காட்டு

"சோதனை" என்பதைக் கிளிக் செய்வதன் மூலம் லோகி உடனான இணைப்பை நீங்கள் சோதிக்கலாம்.

லோகியிடம் கோரிக்கை வைத்தல்

இப்போது கிராஃபனாவிற்குச் சென்று "ஆராய்வு" பகுதிக்குச் செல்லவும். கன்டெய்னர்களில் இருந்து பதிவுகளைப் பெறும்போது, ​​லோகி குபெர்னெட்டிலிருந்து மெட்டாடேட்டாவைச் சேர்க்கிறார். இதனால், ஒரு குறிப்பிட்ட கொள்கலனின் பதிவுகளைப் பார்ப்பது சாத்தியமாகும்.

எடுத்துக்காட்டாக, promtail கொள்கலன் பதிவுகளைத் தேர்ந்தெடுக்க, நீங்கள் பின்வரும் வினவலைப் பயன்படுத்தலாம்: {container_name = "promtail"}.
லோகி தரவு மூலத்தையும் இங்கே தேர்ந்தெடுக்க மறக்காதீர்கள்.

இந்த வினவல் கொள்கலன் செயல்பாட்டை பின்வருமாறு வழங்கும்:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
கிராஃபனாவில் வினவல் முடிவு

டாஷ்போர்டில் சேர்த்தல்

Grafana 6.4 இல் தொடங்கி, பதிவுத் தகவலை நேரடியாக டாஷ்போர்டில் வைக்க முடியும். அதன் பிறகு, பயனர் தனது தளத்தில் உள்ள கோரிக்கைகளின் எண்ணிக்கையை பயன்பாட்டு தடயங்களுக்கு விரைவாக மாற்ற முடியும்.

இந்த ஊடாடலைச் செயல்படுத்தும் ஒரு எடுத்துக்காட்டு டாஷ்போர்டு கீழே உள்ளது:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
ப்ரோமிதியஸ் அளவீடுகள் மற்றும் லோகி பதிவுகள் கொண்ட மாதிரி டாஷ்போர்டு

லோகியின் எதிர்காலம்

நான் லோகியை மே/ஜூனில் பதிப்பு 0.1 உடன் பயன்படுத்த ஆரம்பித்தேன். பதிப்பு 1 ஏற்கனவே இன்று வெளியிடப்பட்டது, மேலும் 1.1 மற்றும் 1.2 கூட.

பதிப்பு 0.1 போதுமான நிலையானதாக இல்லை என்பதை ஒப்புக்கொள்ள வேண்டும். ஆனால் 0.3 ஏற்கனவே முதிர்ச்சியின் உண்மையான அறிகுறிகளைக் காட்டியது, அடுத்த பதிப்புகள் (0.4, பின்னர் 1.0) இந்த உணர்வை வலுப்படுத்தியது.

1.0.0 க்குப் பிறகு, இந்த அற்புதமான கருவியைப் பயன்படுத்த வேண்டாம் என்று யாரும் தவிர்க்க முடியாது.

மேலும் மேம்பாடுகள் லோகியைப் பற்றியதாக இருக்கக்கூடாது, மாறாக சிறந்த கிராஃபனாவுடன் அதன் ஒருங்கிணைப்பு. உண்மையில், Grafana 6.4 ஏற்கனவே டாஷ்போர்டுகளுடன் ஒரு நல்ல ஒருங்கிணைப்பைக் கொண்டுள்ளது.

சமீபத்தில் வெளியிடப்பட்ட Grafana 6.5, JSON வடிவத்தில் பதிவுகளின் உள்ளடக்கங்களைத் தானாக அங்கீகரிப்பதன் மூலம் இந்த ஒருங்கிணைப்பை மேலும் மேம்படுத்துகிறது.

கீழேயுள்ள வீடியோ இந்த பொறிமுறையின் சிறிய உதாரணத்தைக் காட்டுகிறது:

லோகி - ப்ரோமிதியஸ் அணுகுமுறையைப் பயன்படுத்தி பதிவுகளை சேகரித்தல்
கிராஃபனாவில் வழங்கப்படும் லோகி சரங்களைப் பயன்படுத்துதல்

JSON புலங்களில் ஒன்றைப் பயன்படுத்துவது சாத்தியமாகிறது, எடுத்துக்காட்டாக:

  • வெளிப்புற கருவிக்கான இணைப்புகள்
  • பதிவு உள்ளடக்க வடிகட்டுதல்

எடுத்துக்காட்டாக, ஜிப்கின் அல்லது ஜெகருக்குச் செல்ல டிரேஸ்ஐடியைக் கிளிக் செய்யலாம்.

வழக்கம் போல், நாங்கள் உங்கள் கருத்துகளை எதிர்பார்க்கிறோம் மற்றும் உங்களை அழைக்கிறோம் திறந்த வெபினார், 2019 ஆம் ஆண்டில் DevOps தொழில் எவ்வாறு வளர்ந்தது என்பதைப் பற்றி பேசுவோம், மேலும் 2020 க்கான சாத்தியமான வளர்ச்சிப் பாதைகளைப் பற்றி விவாதிப்போம்.

ஆதாரம்: www.habr.com