Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK

Sunana Anton Baderin. Ina aiki a Cibiyar Fasaha ta High Technology kuma ina gudanar da tsarin. Watan da ya gabata, taron haɗin gwiwarmu ya ƙare, inda muka raba abubuwan da muka samu tare da jama'ar IT na birninmu. Na yi magana game da saka idanu aikace-aikacen yanar gizo. An yi nufin kayan don ƙarami ko matsakaici, waɗanda ba su gina wannan tsari daga karce ba.

Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK

Tushen tushen kowane tsarin sa ido shine magance matsalolin kasuwanci. Sa ido don sa ido ba ruwan kowa. Menene kasuwanci ke so? Don komai yayi aiki da sauri kuma ba tare da kurakurai ba. Kasuwanci suna so su kasance masu faɗakarwa, don mu kanmu mu gano matsalolin da ke cikin sabis kuma mu gyara su da sauri. Waɗannan, a gaskiya, su ne matsalolin da na warware duk bara a kan wani aiki na ɗaya daga cikin abokan cinikinmu.

Game da aikin

Aikin yana daya daga cikin manyan shirye-shiryen biyayya a kasar. Muna taimakawa sarƙoƙin dillali ƙara yawan tallace-tallace ta hanyar kayan aikin talla daban-daban kamar katunan kari. Gabaɗaya, aikin ya ƙunshi aikace-aikace 14 waɗanda ke gudana akan sabobin goma.

Yayin aiwatar da hirar, na lura akai-akai cewa admins ba koyaushe suke kusanci aikace-aikacen yanar gizo daidai ba: da yawa har yanzu suna mai da hankali kan ma'aunin tsarin aiki kuma lokaci-lokaci suna saka idanu akan sabis.

A cikin yanayina, tsarin sa ido na abokin ciniki a baya ya dogara ne akan Icinga. Bai magance matsalolin da ke sama ta kowace hanya ba. Sau da yawa abokin ciniki da kansa ya sanar da mu game da matsaloli, kuma sau da yawa fiye da haka, ba mu da isasshen bayanai don isa ga kasan dalilin.

Bugu da ƙari, an sami cikakkiyar fahimtar rashin amfani na ci gaba da ci gaba. Ina tsammanin wadanda suka saba da Icinga za su fahimce ni. Don haka, mun yanke shawarar sake fasalin tsarin sa ido kan aikace-aikacen yanar gizo gaba ɗaya don aikin.

Prometheus

Mun zaɓi Prometheus bisa manyan alamomi guda uku:

  1. Adadin ma'auni masu yawa. A wajenmu akwai dubu 60 daga cikinsu. Tabbas, yana da mahimmanci a lura cewa ba mu amfani da mafi yawansu (watakila game da 95%). A daya bangaren kuma, duk suna da arha. A gare mu, wannan shine sauran matsananci idan aka kwatanta da Icinga da aka yi amfani da su a baya. A ciki, ƙara ma'auni wani ciwo ne na musamman: waɗanda ke wanzuwa suna da tsada (kawai duba lambar tushe na kowane plugin). Duk wani plugin ɗin rubutu ne a cikin Bash ko Python, ƙaddamar da shi yana da tsada dangane da albarkatun da ake cinyewa.
  2. Wannan tsarin yana cinye ɗan ƙaramin adadin albarkatu. 600 MB na RAM, 15% na cibiya ɗaya da dozin IOPS guda biyu sun isa ga duk ma'aunin mu. Tabbas, dole ne ku gudanar da masu fitar da awo, amma duk an rubuta su a cikin Go kuma ba su da yunwa sosai. Ba na tsammanin cewa a cikin gaskiyar zamani wannan matsala ce.
  3. Yana ba da ikon yin ƙaura zuwa Kubernetes. Yin la'akari da tsare-tsaren abokin ciniki, zabin yana bayyane.

ELK

A baya, ba mu tattara ko sarrafa rajistan ayyukan ba. Kasawar ta bayyana ga kowa. Mun zaɓi ELK saboda mun riga mun sami gogewa da wannan tsarin. Mu kawai adana log log a wurin. Babban ma'aunin zaɓi shine binciken cikakken rubutu da saurin sa.

Gidan gidan

Da farko, zaɓin ya faɗi akan InfluxDB. Mun fahimci buƙatar tattara rajistan ayyukan Nginx, ƙididdiga daga pg_stat_statements, da adana bayanan tarihi na Prometheus. Ba mu son Influx saboda lokaci-lokaci ya fara cinye adadin ƙwaƙwalwar ajiya da faɗuwa. Bugu da kari, ina son hada tambayoyin ta remote_addr, amma hadawa a cikin wannan DBMS ta tags ne kawai. Tags suna da tsada (ƙwaƙwalwar ajiya), adadin su yana da iyaka.

Mun sake fara binciken mu. Abin da ake buƙata shi ne bayanan ƙididdiga tare da ƙarancin amfani da albarkatu, zai fi dacewa tare da matsawa bayanai akan faifai.

Clickhouse ya cika duk waɗannan sharuɗɗan, kuma ba mu taɓa yin nadamar zaɓinmu ba. Ba ma rubuta wani adadi mai yawa na bayanai a ciki (yawan abubuwan da aka shigar kusan kusan dubu biyar ne kawai a cikin minti daya).

NewRelic

NewRelic a tarihi yana tare da mu saboda zaɓin abokin ciniki ne. Muna amfani da shi azaman APM.

Zabbix

Muna amfani da Zabbix na musamman don saka idanu akan Akwatin Black na APIs daban-daban.

Ma'anar Hanyar Kulawa

Mun so mu lalata aikin kuma ta haka ne mu tsara tsarin kulawa.

Don yin wannan, na raba tsarin mu zuwa matakai masu zuwa:

  • hardware da VMS;
  • tsarin aiki;
  • sabis na tsarin, tarin software;
  • aikace-aikace;
  • dabaru na kasuwanci.

Me yasa wannan hanyar ta dace:

  • mun san wanda ke da alhakin aikin kowane matakin kuma, bisa ga wannan, za mu iya aika da faɗakarwa;
  • za mu iya amfani da tsarin yayin danne faɗakarwa - zai zama baƙon abu don aika faɗakarwa game da rashin samun bayanai lokacin da babu na'ura gaba ɗaya.

Tun da aikinmu shine gano cin zarafi a cikin aiki na tsarin, dole ne a kowane matakin mu haskaka wani nau'i na ma'auni waɗanda suka dace da kulawa lokacin rubuta ƙa'idodin faɗakarwa. Na gaba, bari mu shiga cikin matakan "VMS", "Tsarin aiki" da "System Services, software stack".

Injin gani da ido

Hosting yana ba mu na'ura mai sarrafawa, faifai, ƙwaƙwalwar ajiya da cibiyar sadarwa. Kuma mun sami matsala da biyun farko. Don haka, ma'auni:

Lokacin sata na CPU - lokacin da ka sayi injin kama-da-wane akan Amazon (t2.micro, alal misali), ya kamata ka fahimci cewa ba a ba ka cikakken tsarin sarrafawa gaba ɗaya ba, amma adadin lokacinsa ne kawai. Kuma idan kun ƙãre shi, za a ɗauke muku na'urar sarrafawa.

Wannan awo yana ba ku damar bin irin waɗannan lokutan kuma ku yanke shawara. Misali, shin yana da mahimmanci don ɗaukar farashi mai ƙima ko rarraba sarrafa ayyukan baya da buƙatun API zuwa sabobin daban-daban?

IOPS + CPU iowait lokaci - saboda wasu dalilai, yawancin ma'aikatan girgije suna yin zunubi ta rashin samar da isasshen IOPS. Bugu da ƙari, jadawalin tare da ƙananan IOPS ba hujja ba ne a gare su. Saboda haka, yana da daraja tattara CPU iowait. Tare da wannan nau'i-nau'i na jadawali - tare da ƙananan IOPS da babban I/O jira - za ku iya riga kun yi magana da hosting kuma ku warware matsalar.

tsarin aiki

Ma'aunin tsarin aiki:

  • adadin da ke akwai a cikin %;
  • musanya aikin amfani: vmstat swapin, swapout;
  • adadin inodes da ke akwai da sarari kyauta akan tsarin fayil a %
  • matsakaicin nauyi;
  • adadin haɗin kai a cikin jihar tw;
  • contrack tebur cika;
  • Ana iya kula da ingancin cibiyar sadarwa ta amfani da ss utility, iproute2 kunshin - sami alamar haɗin RTT daga fitarwa kuma haɗa shi ta tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar tashar jiragen ruwa.

Hakanan a matakin tsarin aiki muna da irin wannan mahaluƙi kamar matakai. Yana da mahimmanci a gano a cikin tsarin tsarin tsarin da ke taka muhimmiyar rawa a cikin aikinsa. Idan, alal misali, kuna da pgpools da yawa, to kuna buƙatar tattara bayanai don kowane ɗayansu.

Saitin ma'auni shine kamar haka:

  • CPUs;
  • ƙwaƙwalwar ajiya tana da farko mazaunin;
  • IO - zai fi dacewa a cikin IOPS;
  • FileFd - bude da iyaka;
  • gazawar shafi mai mahimmanci - ta wannan hanyar zaku iya fahimtar tsarin da ake musanya.

Muna tura duk saka idanu a Docker, kuma muna amfani da Mai ba da shawara don tattara bayanan awo. A kan sauran inji muna amfani da tsari-exporter.

Sabis na tsarin, tarin software

Kowane aikace-aikacen yana da nasa ƙayyadaddun ƙayyadaddun bayanai, kuma yana da wahala a ware takamaiman ma'auni.

Tsarin duniya shine:

  • ƙimar nema;
  • yawan kurakurai;
  • latency;
  • jikewa.

Mafi kyawun misalan sa ido a wannan matakin sune Nginx da PostgreSQL.

Sabis ɗin da ya fi ɗorawa a cikin tsarin mu shine ma'ajin bayanai. A baya, sau da yawa muna samun matsala wajen gano abin da rumbun adana bayanai ke yi.

Mun ga babban kaya a kan faifai, amma jinkirin rajistan ayyukan ba su nuna komai ba. Mun magance wannan matsalar ta hanyar amfani da pg_stat_statements, ra'ayi mai tattara ƙididdiga na tambaya.

Abinda admin ke bukata kenan.

Muna gina jadawali na ayyukan buƙatun karantawa da rubutawa:

Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK
Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK

Komai yana da sauƙi kuma bayyananne, kowane buƙata yana da launi na kansa.

Misali mai ban mamaki daidai shine Nginx rajistan ayyukan. Ba abin mamaki ba ne cewa mutane kaɗan ne suka ƙididdige su ko kuma ambace su a cikin jerin abubuwan da ake bukata. Tsarin daidaitaccen tsari ba shi da cikakken bayani kuma yana buƙatar faɗaɗawa.

Da kaina, na ƙara request_time, upstream_response_time, body_bytes_sent, request_length, request_id. Muna tsara lokacin amsawa da adadin kurakurai:

Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK
Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK

Muna gina jadawalin lokacin amsawa da adadin kurakurai. Ka tuna? Na yi magana game da ayyukan kasuwanci? Don sauri kuma ba tare da kurakurai ba? Mun riga mun rufe waɗannan batutuwa da sigogi biyu. Kuma za ka iya riga ka kira masu gudanar da aiki ta amfani da su.

Sai dai sauran matsala guda daya ta rage - don tabbatar da saurin kawar da musabbabin faruwar lamarin.

Ƙaddamar da aukuwa

Dukkanin tsari daga ganowa zuwa warware matsala ana iya raba shi zuwa matakai da yawa:

  • gano matsalar;
  • sanarwa ga mai gudanar da aiki;
  • martani ga wani lamari;
  • kawar da dalilai.

Yana da mahimmanci cewa dole ne mu yi hakan da sauri. Kuma idan a matakan gano matsala da aika sanarwar ba za mu iya samun lokaci mai yawa ba - za a kashe minti biyu akan su a kowane hali, to, na gaba kawai an cire filin don ingantawa.

Bari mu yi tunanin cewa wayar hafsan hafsa ce ta yi kara. Me zai yi? Nemo amsoshin tambayoyi - menene ya karye, a ina ya karye, yadda ake amsawa? Ga yadda za mu amsa waɗannan tambayoyin:

Yadda muka gina saka idanu akan Prometheus, Clickhouse da ELK

Muna kawai shigar da duk waɗannan bayanan a cikin rubutun sanarwar, mu ba su hanyar haɗi zuwa shafin wiki wanda ke bayanin yadda za a magance wannan matsala, yadda za a magance ta da kuma ta'azzara ta.

Har yanzu ban ce komai ba game da layin aikace-aikacen da dabaru na kasuwanci. Abin takaici, har yanzu aikace-aikacenmu ba su aiwatar da tarin awo ba. Tushen kowane bayani daga waɗannan matakan shine logins.

Maki biyu.

Na farko, rubuta tsarin rajistan ayyukan. Babu buƙatar haɗa mahallin cikin rubutun saƙon. Wannan yana sa su wahala a haɗa su da tantancewa. Logstash yana ɗaukar lokaci mai tsawo don daidaita duk wannan.

Na biyu, yi amfani da matakan tsanani daidai. Kowane harshe yana da nasa mizani. Da kaina, na bambanta matakai hudu:

  1. babu kuskure;
  2. kuskuren gefen abokin ciniki;
  3. kuskuren yana gefenmu, ba mu rasa kuɗi, ba mu da haɗari;
  4. Kuskuren yana gefenmu, mun yi asarar kuɗi.

Bari in takaita. Kuna buƙatar ƙoƙarin gina sa ido bisa la'akari da dabarun kasuwanci. Yi ƙoƙarin saka idanu da aikace-aikacen kanta kuma aiki tare da irin waɗannan ma'auni kamar adadin tallace-tallace, adadin sabbin rajistar mai amfani, adadin masu amfani a halin yanzu, da sauransu.

Idan duk kasuwancin ku maɓalli ɗaya ne a cikin mai binciken, kuna buƙatar saka idanu ko yana dannawa kuma yana aiki da kyau. Duk sauran ba komai.

Idan ba ku da wannan, kuna iya ƙoƙarin kama shi a cikin rajistan ayyukan aikace-aikacen, rajistan ayyukan Nginx, da sauransu, kamar yadda muka yi. Ya kamata ku kasance kusa da aikace-aikacen sosai.

Ma'auni na tsarin aiki yana da mahimmanci, amma kasuwanci ba ya sha'awar su, ba a biya mu ba.

source: www.habr.com

Add a comment