Aroturuki hei ratonga: he punaha hangahanga moroiti

I tenei ra, i tua atu i te waehere monolithic, kei roto i ta maatau kaupapa te maha o nga ratonga miihini. Me aro turuki ia o raatau. Ko te mahi i runga i taua tauine ma te whakamahi i nga miihini DevOps he raru. Kua whakawhanakehia e matou he punaha aroturuki e mahi ana hei ratonga mo nga kaihanga. Ka taea e ratou te tuhi takitahi i nga inenga ki roto i te punaha aroturuki, te whakamahi, te hanga papatohu i runga i a raatau, me te taapiri i nga matohi ki a raatau ka puta mai ka eke nga uara paepae. Mo nga miihini DevOps, ko nga hanganga me nga tuhinga anake.

Ko tenei panui he tuhinga o taku korero me o taatau wāhanga i RIT++. He maha nga tangata i tono mai ki a maatau ki te hanga i nga tuhinga o nga purongo mai i reira. Mena kei te hui koe, kei te matakitaki ranei koe i te ataata, kaore koe e kite i tetahi mea hou. Me te katoa - nau mai ki te ngeru. Ka korerotia e ahau ki a koe te pehea i tae mai ai matou ki taua punaha, me pehea te mahi me te pehea e whakamahere ai matou ki te whakahou.

Aroturuki hei ratonga: he punaha hangahanga moroiti

Nga wa o mua: nga kaupapa me nga mahere

I pehea tatou i tae ki te punaha aroturuki o naianei? Hei whakautu i tenei patai, me haere koe ki te tau 2015. Koinei te ahua o taua wa:

Aroturuki hei ratonga: he punaha hangahanga moroiti

Tata ki te 24 nga pona e mau ana ki te aro turuki. He maha nga momo karauna rereke, nga tuhinga tuhi, nga daemon ka aro turuki i tetahi mea, ka tuku karere, ka mahi i nga mahi. I whakaaro matou ka haere tonu matou, ka iti ake te kaha o taua punaha. Kare he take ki te whakawhanake: he uaua rawa.
I whakatau matou ki te whiriwhiri i nga waahanga aroturuki ka puritia e matou, ka whakawhanakehia, me era ka whakarerea e matou. 19 o ratou. Ko nga graphites, aggregators me Grafana hei papatohu i toe. Engari ka pehea te ahua o te punaha hou? Pēnei:

Aroturuki hei ratonga: he punaha hangahanga moroiti

Kei a matou he rokiroki inenga: he graphites enei, ka ahu mai i runga i nga puku SSD tere, he whakahiato enei mo nga inenga. Panuku - Grafana mo te whakaatu papatohu me Moira mo te matohi. I hiahia ano matou ki te whakawhanake i tetahi punaha mo te rapu i nga mea koretake.

Paerewa: Aroturuki 2.0

Koinei te ahua o nga mahere i te tau 2015. Engari me whakarite e matou ehara i te mea ko nga hanganga me nga ratonga ake, engari ko nga tuhinga mo taua mea. Kua whakawhanakehia e matou he paerewa umanga mo matou ake, e kiia nei ko te aroturuki 2.0. He aha nga whakaritenga mo te punaha?

  • te waatea tonu;
  • inenga waahi rokiroki = 10 hēkona;
  • te rokiroki hanganga o nga ine me nga papatohu;
  • SLA > 99,99%
  • kohikohinga inenga takahanga ma te UDP (!).

I hiahia matou ki te UDP na te mea he nui te rere o nga waka me nga huihuinga e whakaputa ana i nga inenga. Mena ka tuhia katoatia e koe ki te kauwhata i te wa kotahi, ka hinga te rokiroki. I whiriwhiria ano e matou nga tohu tuatahi mo nga inenga katoa.

Aroturuki hei ratonga: he punaha hangahanga moroiti

He taonga kei ia prefix. He inenga mo nga tūmau, whatunga, ipu, rauemi, tono, me era atu. Kua whakatinanahia te tātaritanga maamaa, kaha, patopato, ka whakaaehia e matou nga inenga taumata-tuatahi ka tuku noa i te toenga. Koinei te huarahi i whakamaherehia e matou tenei punaha i te tau 2015. He aha kei roto i tenei wa?

Ana: te hoahoa o te taunekeneke o nga waahanga aroturuki

Tuatahi, ka aro turuki matou i nga tono: to matou waehere PHP, tono me nga ratonga miihini - poto noa, nga mea katoa ka tuhia e o maatau kaihanga. Ka tukuna e nga tono katoa nga inenga ma te UDP ki te whakahiato Brubeck (statsd, tuhia ano ki te C). I puta ko te tere tere i roto i nga whakamatautau waihanga. A ka tukuna nga inenga kua whakahiatotia ki te Graphite ma TCP.

He momo inenga e kiia nei ko te taima. He mea tino watea tenei. Hei tauira, mo ia hononga kaiwhakamahi ki te ratonga, ka tukuna e koe he ine me te wa whakautu ki a Brubeck. He miriona nga whakautu i tae mai, engari 10 noa nga ine i whakahokia mai e te kaikohikohi. Kei a koe te maha o nga tangata i tae mai, te morahi, te iti me te wa whakautu toharite, te tauwaenga me te 4 ōrau. Na ka whakawhitihia nga raraunga ki te Graphite ka kite tatou kei te ora katoa.

He whakahiato hoki mo nga inenga mo te taputapu, te rorohiko, te inenga punaha me ta maatau punaha aroturuki Munin tawhito (i mahi mo matou tae noa ki te tau 2015). Ka kohia e matou enei mea katoa na roto i te C's CollectD daemon (he maha nga momo monomai kua whakauruhia ki roto, ka taea e ia te pooti i nga rauemi katoa o te punaha manaaki i whakauruhia ai, tohua noa ki te whirihoranga hei tuhi i nga raraunga) me tuhia nga raraunga ki te Graphite ma roto. Kei te tautoko hoki i nga taputapu python me nga tuhinga anga, kia taea ai e koe te tuhi i a koe ake otinga ritenga: Ka kohia e CollectD enei raraunga mai i tetahi kaihautu o te rohe, tawhiti ranei (ka whakaaro ko Curl) ka tukuna ki te Graphite.

Na ka tukuna e matou nga inenga katoa i kohia e matou ki te Carbon-c-relay. Koinei te otinga Carbon Relay mai i te Graphite, kua whakarereketia ki te C. He pouara tenei e kohikohi ana i nga inenga katoa ka tukuna mai e matou mai i a matou whakahiato me te arahi ki nga pona. I te wahanga ararere hoki, ka tirohia te mana o nga ine. Tuatahi, me rite ki te kaupapa prefix i whakaatuhia e au i mua, tuarua, he mana mo te kauwhata. Ki te kore ka taka.

Kātahi ka tukuna e te Carbon-c-relay ngā inenga ki te kāhui Graphite. Ka whakamahia e matou te Carbon-cache, kua tuhia ano ki te Haere, hei rokiroki matua o nga inenga. Haere-waro, na tona miro maha, he nui ake te mahi a te Keteroki-Wao. Ka whiwhi raraunga ka tuhia ki nga kopae ma te whakamahi i te kete muhumuhu (paerewa, tuhia ki te python). Hei panui i nga raraunga mai i a maatau rokiroki, ka whakamahia e matou te API Graphite. He tere ake i te Paetukutuku Graphite paerewa. Ka ahatia nga raraunga ka whai ake?

Ka haere ratou ki Grafana. Ka whakamahia e matou a matou tautau kauwhata hei puna raraunga matua, me te whai a Grafana hei atanga tukutuku mo te whakaatu ine me te hanga papatohu. Mo ia ratonga, ka hangaia e nga kaiwhakawhanake a raatau ake papatohu. Na ka hanga kauwhata i runga i a raatau, e whakaatu ana i nga inenga ka tuhia e ratou mai i a raatau tono. I tua atu ki a Grafana, kei a matou ano te SLAM. He rewera python tenei e tatau ana i te SLA i runga i nga raraunga mai i te kauwhata. Ka rite ki taku korero, he maha nga tatini microservices, kei a ia ano nga whakaritenga. Ma te whakamahi i te SLAM, ka haere matou ki nga tuhinga me te whakataurite ki nga mea kei roto i te Graphite me te whakataurite i te pai o nga whakaritenga ki te waatea o a maatau ratonga.

Kia haere tonu tatou: matohi. Ka whakaritea ma te whakamahi i te punaha kaha - Moira. He mea motuhake na te mea kei a ia ano tona ake Graphite i raro i te awhi. I whakawhanakehia e nga taangata mai i te SKB "Kontur", i tuhia ki te python me te Haere, tino tuwhera puna. Ka whiwhi a Moira i te rerenga ano e uru ana ki nga kauwhata. Mena he take ka mate to rokiroki, ka mahi tonu to matohi.

I tukuna e matou a Moira ki Kubernetes; ka whakamahia e ia he kahui o nga tūmau Redis hei papaunga raraunga matua. Ko te hua ko te punaha he-kore. Ka whakatauritehia te awa o nga inenga ki te rarangi o nga keu: mena karekau he whakahua i roto, katahi ka heke te ine. Na ka taea e ia te keri gigabytes o nga ine mo ia meneti.

I whakapiria ano e matou he LDAP rangatōpū ki a ia, me te awhina e taea ai e ia kaiwhakamahi o te punaha rangatōpū te hanga whakamohiotanga mo ratou ano i runga i nga keu o mua (he mea hanga hou ranei). I te mea kei a Moira te Graphite, ka tautokohia e ia ona ahuatanga katoa. Na ka tango tuatahi koe i te raina ka kape ki roto i te Grafana. Tirohia te whakaaturanga o nga raraunga i runga i nga kauwhata. Na ka mau koe i taua raina ka kape ki roto i a Moira. Ka whakairihia e koe me nga rohe ka whiwhi matohi ki te putanga. Ki te mahi i enei mea katoa, kaore koe e hiahia ki tetahi matauranga motuhake. Ka taea e Moira te mataara ma te SMS, te imeera, Jira, Slack... Kei te tautoko hoki i te whakatinanatanga o nga tuhinga ritenga. Ka pa mai he keu ki a ia, ka ohauru ia ki tetahi tuhinga ritenga, takirua ranei, ka whakahaerehia e ia ka tukuna a JSON ki te stdin mo tenei takirua. No reira, me poroporoaki e to hotaka. Ko nga mea ka mahia e koe me tenei JSON kei ​​a koe. Ki te hiahia koe, tukuna atu ki Telegram, ki te hiahia koe, whakatuwherahia nga mahi ki Jira, mahia nga mea katoa.

Ka whakamahia ano e matou to maatau ake whanaketanga mo te whakatupato - Imagotag. I whakarereketia e matou te panui, e whakamahia ana mo nga tohu utu hiko i roto i nga toa, kia rite ki o maatau hiahia. I mauria mai e matou he keu mai i Moira. E tohu ana he aha te ahua o to raatau ahuatanga me te wa i puta ai. Ko etahi o nga taangata whanaketanga i whakarere i nga whakamohiotanga i Slack me te imeera mo tenei roopu.

Aroturuki hei ratonga: he punaha hangahanga moroiti

Ana, i te mea he kamupene ahu whakamua matou, i aro turuki ano matou i nga Kubernetes i roto i tenei punaha. I whakauruhia e matou ki roto i te punaha ma te whakamahi i te Heapster, i whakauruhia e matou ki te kohinga, ka kohia e ia nga raraunga ka tukuna ki te Graphite. Ko te mutunga, he penei te ahua o te hoahoa:

Aroturuki hei ratonga: he punaha hangahanga moroiti

Wae Aroturuki

Anei te rarangi o nga hononga ki nga waahanga i whakamahia e matou mo tenei mahi. He puna tuwhera katoa enei.

Kauwhata:

Wao-c-taangi:

github.com/grobian/carbon-c-relay

Brubeck:

github.com/github/brubeck

Kohia:

collectd.org

Moira:

github.com/moira-alert

Grafana:

grafana.com

Heapster:

github.com/kubernetes/heapster

Taatauranga

Anei etahi nama mo te mahi a te punaha mo tatou.

Kaihuihui (brubeck)

Te maha o nga ine: ~300/hekona
Wā mō te tuku inenga ki te Graphite: 30 hēkona
Te whakamahi rauemi tūmau: ~ 6% PTM (kei te korero matou mo nga kaitoro katoa); ~ 1Gb RAM; ~3 Mbps LAN

Kauwhata (go-waro)

Te maha o nga ine: ~ 1 / min
Inenga whakahōu wā: 30 hēkona
Te kaupapa rokiroki inenga: 30sec 35d, 5min 90d, 10min 365d (ka mohio koe ki nga mea ka pa ki te ratonga mo te wa roa)
Te whakamahi rauemi tūmau: ~10% CPU; ~ 20Gb RAM; ~30 Mbps LAN

Te ngawari

Ko matou o Avito e tino aro nui ana ki te ngawari i roto i ta maatau ratonga aroturuki. He aha ia i puta penei ai? Tuatahi, he rereke nga waahanga: ko nga waahanga me o raatau putanga. Tuarua, te tautoko. I te mea he puna tuwhera te kaupapa katoa, ka taea e koe te whakatika i te waehere i a koe ano, te whakarereke, me te whakatinana i nga mahi kaore i te waatea mai i te pouaka. He maha nga taapu noa e whakamahia ana, ko te nuinga ko te Haere me te Python, no reira he ngawari noa te mahi.

Anei he tauira o te tino raruraru. Ko te ine i roto i te Graphite he kōnae. He ingoa tona. Ingoa kōnae = ingoa metric. A he huarahi ki reira. Ko nga ingoa konae kei Linux he iti ki te 255 nga tohu. A kei a matou (hei "kaitono o roto") nga taangata mai i te tari papaa raraunga. Ka kii mai ki a maatau: "Kei te pirangi matou ki te aro turuki i a maatau patai SQL. A ehara i te 255 nga tohu, engari 8 MB ia. E hiahia ana matou ki te whakaatu i a raatau i roto i te Grafana, tirohia nga tawhā mo tenei tono, me te pai ake, e hiahia ana matou ki te kite i te tihi o aua tono. Ka pai mena ka whakaatuhia i roto i te waa tuuturu. He tino pai ki te tuku i a raatau ki te mataara.

Aroturuki hei ratonga: he punaha hangahanga moroiti
Ko te tauira uiui SQL ka tangohia hei tauira mai i pae postgrespro.ru

I whakaturia e matou he tūmau Redis me te whakamahi i a matou Collectd monomai, ka haere ki Postgres me te tango i nga raraunga katoa mai i reira, ka tukuna nga inenga ki te Graphite. Engari ka whakakapihia e matou te ingoa inenga ki nga tohu. I te wa kotahi ka tukuna atu e matou te rite ki a Redis hei matua, me te patai SQL katoa hei uara. Ko ta matou mahi he whakarite kia haere a Grafana ki Redis ki te tango i enei korero. Kei te whakatuwhera matou i te Graphite API na te mea... koinei te atanga matua mo te taunekeneke o nga waahanga aroturuki katoa me te graphite, a ka uru matou ki tetahi mahi hou ki reira ko aliasByHash() - mai i Grafana ka whiwhi matou i te ingoa o te metric, ka whakamahia i roto i te tono ki a Redis hei matua, i roto i whakautu ka whiwhi tatou i te uara o te matua, ko ta tatou "Uiui SQL" " No reira, i whakaatuhia e matou ki Grafana he whakaaturanga o te patai SQL, i runga i te ariā kaore e taea te whakaatu ki reira, me nga tatauranga kei runga (waea, rarangi, total_time, ...).

Ngā putanga

Kei te wātea. E waatea ana ta maatau ratonga aroturuki 24/7 mai i tetahi tono me tetahi waehere. Mena ka whai waahi koe ki nga waahi rokiroki, ka taea e koe te tuhi raraunga ki te ratonga. Ehara i te mea nui te reo, ehara i te mea nui nga whakatau. Me mohio noa koe me pehea te whakatuwhera i te turanga, hoatu he mita ki reira ka kati i te turanga.

Te pono. Ko nga waahanga katoa he pai te whakahaere i a maatau kawenga.

He arai iti ki te urunga. Hei whakamahi i tenei punaha, kaore koe e hiahia ki te ako i nga reo whakamaori me nga patai i Grafana. Tuwhera noa to tono, whakauruhia he turanga ki roto ka tuku ine ki te Graphite, kati, whakatuwheratia a Grafana, hanga papatohu ki reira ka titiro ki te whanonga o o inenga, ka whiwhi whakamohiotanga mai i a Moira.

Mana motuhake. Ka taea e koe enei mea katoa, kaore he awhina a nga miihini DevOps. A he painga tenei, na te mea ka taea e koe te aro turuki i to kaupapa inaianei, kaore koe e patai ki tetahi - ki te timata mahi, ki te whakarereke ranei.

He aha ta tatou e whai ana?

Ko nga mea katoa kei raro iho nei ehara i te whakaaro noa iho, engari ko tetahi mea i mahia e nga mahi tuatahi.

  1. He kaitirotiro kino. Kei te pirangi matou ki te hanga i tetahi ratonga ka haere ki o matou putunga Graphite me te tirotiro i ia inenga ma te whakamahi i nga momo algorithms. Kei kona ano nga algorithms e hiahia ana matou ki te tiro, kei reira nga raraunga, e mohio ana matou ki te mahi ki a ia.
  2. Raraunga meta. He maha a matou ratonga, ka huri haere i te waa, pera i nga tangata e mahi tahi ana me ratou. Ko te pupuri i nga tuhinga a-ringa ehara i te mea he whiringa. Koinei te take kei te whakauruhia e matou nga metadata ki o maatau ratonga miihini. E kii ana na wai i whakawhanake, nga reo e pa ana ki a ia, nga whakaritenga a te SLA, ki hea me tuku panui ki a wai. I te tuku ratonga, ka hanga takitahi nga raraunga hinonga katoa. Ko te mutunga, ka whiwhi koe i nga hononga e rua - tetahi ki te whakaoho, tetahi ki nga papatohu i Grafana.
  3. Te aroturuki i ia kainga. E whakapono ana matou me whakamahi nga kaihanga katoa i taua punaha. I tenei keehi, ka mohio tonu koe kei hea to hokohoko, he aha te mea e pa ana ki a ia, kei hea ka hinga, kei hea ona ngoikoretanga. Mena, hei tauira, ka tae mai tetahi mea ka pakaru i to ratonga, katahi ka ako koe mo taua mea kaore i te wa e waea ana te kaiwhakahaere, engari mai i te matohi, ka taea e koe te whakatuwhera i nga raarangi hou ka kite i nga mea i tupu i reira.
  4. Mahi teitei. Kei te tipu haere tonu ta maatau kaupapa, a i tenei ra ka whakahaerehia e ia mo te 2 nga uara metric ia meneti. He tau ki muri, ko tenei whika ko te 000. Na kei te haere tonu te tipu, a, i muri i etahi wa ka timata te Graphite (muhumuhu) ki te uta i te punaha iti o te kōpae. Ka rite ki taku korero, he tino ao tenei punaha aroturuki na te rereke o nga waahanga. Kei te pupuri, kei te whakawhānui tonu tetahi i a raatau hanganga mo te Graphite, engari i whakatau matou ki te haere ki tetahi huarahi rereke: whakamahia PaateneToko hei putunga mo a tatou inenga. Kua tata oti tenei whakawhitinga, a ka roa ka korero atu ahau ki a koe me pehea te mahi: he aha nga uauatanga me pehea i hinga ai, me pehea te haerenga o te hekenga, ka whakaahuahia e au nga waahanga kua tohua hei here me o raatau whirihoranga.

Mauruuru koe mo to aro! Patai i o patai mo te kaupapa, ka ngana ahau ki te whakautu i konei, i nga panui ranei e whai ake nei. Tena pea he wheako tetahi ki te hanga i tetahi punaha aroturuki rite, ki te huri ranei ki te Clickhouse i roto i te ahuatanga rite - tohaina ki nga korero.

Source: will.com

Tāpiri i te kōrero