ProHoster > Блог > Whakahaerenga > Nga tatauranga me te aro turuki i nga tuhinga PHP i roto i te waa tuuturu. Ka haere mai a ClickHouse me Grafana ki te awhina i a Pinba
Nga tatauranga me te aro turuki i nga tuhinga PHP i roto i te waa tuuturu. Ka haere mai a ClickHouse me Grafana ki te awhina i a Pinba
I roto i tenei tuhinga ka korero ahau ki a koe me pehea te whakamahi i te pinba me te clickhouse me te grafana hei utu mo te pinba_engine me te pinboard.
I runga i te kaupapa PHP, ko te pinba anake te huarahi pono ki te mohio ki nga mahi e pa ana ki te mahi. He pono, ka mahia te pinba i te wa kua kitea nga raru kaore i te maarama "kei hea te keri."
I te nuinga o nga wa karekau he tangata e mohio ana e hia nga wa mo ia hekona/meneti e karangahia ana tenei tuhinga, tera ranei ka timata ratou ki te arotau "ma te pa", ka timata mai i nga waahi e ahua pai ake ana.
Ko etahi ka tarai i nga raarangi nginx, ko etahi ka tarai i nga patai puhoi purongo.
Ae ra, karekau he nui o te pinba, engari he maha nga take kaore he kaupapa katoa.
A ko te take tuatahi ko te whakaurunga.
Kia nui ake, iti ake ranei te tiki i etahi momo "ngoikore" mai i te whakatinanatanga o Pinba, he tino hiahia ki te kite i nga inenga mo nga meneti whakamutunga, engari mo te wa roa (mai i nga ra ki nga marama).
Mo tenei e hiahia ana koe:
whakauruhia te toronga mo te php (a ka hiahia pea koe ki tetahi waahanga mo te nginx)
whakahiato toronga mo mysql
tāuta te papa tohu me te whirihora cron
Na te iti o nga korero e pa ana ki a Pinba, he maha nga tangata e whakaaro ana i mahi noa i runga i te PHP5, a kua roa noa atu te ahua o mua, engari ka kite tatou i muri mai, ehara tenei i te ahua.
Ko te taahiraa tuatahi ko te ngawari, ko nga mea katoa e hiahia ana koe ki te mahi ko te whakahaere i te whakahau:
apt install php-pinba
Kei te waatea tenei toronga i roto i nga whare putunga tae atu ki te php 7.3 karekau koe e hiahia ki te whakahiato i tetahi mea.
Whai muri i te mahi i te whakahau whakaurunga, ka whiwhi tonu matou i tetahi toronga mahi e kohikohi ana, e tuku ana i nga inenga mo ia tuhinga (wa rere, mahara, me etahi atu) kei te whakatakotoranga. protobuf mā te udp ki 127.0.0.1:30002.
I tenei wa karekau he tangata i mau, i tukatuka ranei i enei paatete UDP, engari kaore tenei e pa kino ki te tere me te pumau o o tuhinga PHP.
I mua tata nei, ko te tono anake ka taea te hopu me te tukatuka i enei paatete UDP pinba_engine. Whakaahuatanga "ngawari me te poto" ka whakakorehia e te whakaurunga te hiahia ki te panui me te tirotiro ano. Kei roto i nga rarangi ti'aturi te roa kiromita nga ingoa o nga kohinga me nga ingoa o nga papatono me nga hononga ki nga wharangi takitahi me o raatau whakaurunga, a kei a raatau ano o raatau hononga ki etahi atu whakawhirinaki. Kaore he tangata e whai wa, e hiahia ana ranei ki te whakahaere i tenei mahi kino.
Akene pea i tetahi ra ka taea te whakauru i te pinba10 me nga whakahau kotahi, e rua ranei, me te kore e panui i te tini o nga rauemi kia mohio ai koe me pehea te mahi, engari mo tenei wa kaore tenei.
Mena ka whakauruhia e koe te pinba_engine, koinei anake te haurua o te pakanga. I muri i nga mea katoa, kaore papa titi me whakawhäiti koe ki nga raraunga mai i nga meneti kua pahure ake nei, me whakahiato ranei koe, ka penapena, ka tiro ano koe i nga raraunga. He pai he tino ngawari te whakamahi i te papa pine whakauru.
Ko te ahua nei, he aha te mamaetanga mena kua tukuna katoa nga inenga mai i te php ki te tauranga udp i roto i te whakatakotoranga protobuf a ko nga mea katoa e hiahia ana koe ko te tuhi i tetahi tono ka mau i a raatau ka tuu ki etahi momo rokiroki? Ko te ahua nei, i noho tonu era kaiwhakawhanake i puta mai i tenei whakaaro ki te tuhi i o raatau ake whakaaro, ko etahi i mutu ki runga i a GitHub.
E whai ake nei he tirohanga whanui mo nga kaupapa puna tuwhera e wha e tiaki ana i nga inenga i roto i te rokiroki, mai i enei raraunga ka ngawari te tiki me te tirohanga, hei tauira, ma te whakamahi i te grafana.
Kei te haere te tūmau udp e penapena inenga ki OpenTSDB. Akene mehemea kei te whakamahi koe i te OpenTSDB i roto i to kaupapa, ka pai tenei otinga ki a koe, ki te kore ka tūtohu ahau kia paahitia.
udp tūmau kei te haere, mai i te taua habrowser, i tenei wa ka penapena nga inenga i roto i te InfluxDB. He maha nga kaupapa kei te whakamahi i te InfluxDB mo te aro turuki, no reira ka tino pai tenei otinga mo ratou.
Kaupapa:
InfluxDB āhei te reira whakahiatohia nga inenga kua riro mai, ka mukua te mea taketake i muri i te waa kua tohua.
Cons:
Karekau tenei otinga e tiaki i nga korero mo nga taima.
udp tūmau kei te haere, e penapena inenga i ClickHouse. Koinei te otinga o taku hoa. I muri i taku mohiotanga ki a ia ka whakatau ahau kua tae ki te wa ki te tango i a Pinbu me Clickhouse.
Kaupapa:
He pai te Clickhouse mo nga mahi penei; ka taea e koe te kopiri i nga raraunga ka taea e koe te penapena i nga raraunga mata katoa ahakoa kaore he whakahiato.
ki te hiahiatia, ka ngawari te whakahiato i nga inenga ka puta
Karekau he whirihora e taea ai e koe te whirihora i te ingoa o te putunga raraunga me nga ripanga, te wahitau me te tauranga o te tūmau.
i te wa e rongoa ana i nga raraunga mata, ka whakamahia he ripanga papakupu awhina hei penapena i nga wharangi me nga wahitau rohe, e whakararu ana i nga patai ka whai ake.
udp tūmau i roto i te php, e whakaora inenga i ClickHouse. Ko taku otinga tenei, ko te hua o te mohio ki te pinba, ClickHouse me te protobuf. I a au e whakariterite ana i tenei roopu katoa, ka tuhia e ahau he "tohu o te ariā", he mea ohorere mo au, kaore i pau nga rauemi nui (30 MB o te RAM me te iti iho i te 1% o tetahi o te waru o nga punaha tukatuka), no reira ahau ka whakatau ki te whakapuaki ki te marea.
Ko nga painga he rite ki te otinga o mua, i whakamahia ano e ahau nga ingoa o mua mai i te pinba_engine taketake. I tapiritia ano e ahau he whirihora e taea ai e koe te whakarewa i nga waahi maha o nga tuunga pinbase i te wa kotahi hei tiaki i nga inenga i roto i nga ripanga rereke - he pai tenei ki te hiahia koe ki te kohikohi raraunga ehara i te php anake, engari mai i te nginx.
Nga ngoikoretanga - "te koha mate" me era mea iti kaore e pai ki a koe ake, engari ko taku otinga he "he ngawari ki te hepa" me te 100 noa nga rarangi tohu, na reira ka taea e tetahi kaiwhakawhanake PHP te whakarereke i nga mea kaore e pai ki a ia. i roto i nga meneti e rua.
Kia pehea te mahi i te reira
Ka whakarongohia te tauranga UDP 30002. Ka wetewetehia nga paanui taumai katoa i runga i te kaupapa protobuf me te whakahiato. Kia kotahi meneti, ka whakaurua he putea ki roto i te whare panui ki te ripanga pinba.requests. (kua whirihorahia nga tawhā katoa ki roto whirihora)
He iti mo te clickhouse
Ka tautoko a Clickhouse i nga miihini rokiroki raraunga rereke. Ko te mea tino whakamahia ko MergeTree.
Mena i etahi wa ka whakatau koe ki te penapena i nga raraunga whakahiato mo nga wa katoa, me nga raraunga mata anake mo te mea whakamutunga, katahi ka taea e koe te hanga i tetahi tirohanga whai kiko me te whakarōpūtanga, me te horoi i ia wa i te tepu pinba.requests matua, ka noho tonu nga raraunga katoa ki te tirohanga hanga. I tua atu, i te wa e hanga ana i te tepu pinba.requests, ka taea e koe te tohu "engine = Null", katahi ka kore e tiakina nga raraunga mata ki te kopae, i te wa ano ka mutu tonu ki te tirohanga whakahiato me te penapena whakahiato. . Ka whakamahi ahau i tenei kaupapa mo nga inenga nginx, na te mea i runga i te nginx he 50 nga wa nui atu i aku tono i runga i te php.
Na, kua tae mai koe ki tawhiti, kaore au e pai ki te wehe atu i a koe ki te haurua, na ko te mea e whai ake nei ko te whakamaarama taipitopito mo te whakaurunga me te whirihoranga o taku otinga me nga mea katoa e hiahia ana koe, me nga mahanga kua nui ake i te kotahi te kaipuke. ki te tukinga. Ko te tukanga whakaurunga katoa e whakaahuatia ana mo Ubuntu 18.04 LTS me Centos 7; he rereke pea te tukanga ki etahi atu tohatoha me nga putanga.
tāutanga
Ka hoatu e ahau nga whakahau katoa e tika ana Dockerfile kia pai ai te whakaputa i nga tohutohu. Ko nga mahanga anake ka korerohia i raro nei.
php-pinba
I muri i te whakaurunga, kia mohio kei roto i te konae /etc/php/7.2/fpm/conf.d/20-pinba.ini kua whakakorea e koe nga whiringa katoa. I etahi o nga tohatoha (hei tauira, centos) ka taea te korero.
I te wa o te whakaurunga, ka tono a clickhouse ki a koe kia tautuhia he kupuhipa mo te kaiwhakamahi taunoa. Ma te taunoa, ka uru mai tenei kaiwhakamahi mai i nga IP katoa, na mena karekau he papaahi i runga i to tuumau, me whakarite he kupuhipa mo taua mea. Ka taea hoki tenei i muri i te whakaurunga ki te konae /etc/clickhouse-server/users.xml.
Me mahara ano ka whakamahia e clickhouse etahi tauranga, tae atu ki te 9000. Ka whakamahia ano tenei tauranga mo te php-fpm i etahi tohatoha (hei tauira, centos). Mena kua whakamahi koe i tenei tauranga, ka taea e koe te huri ki tetahi atu i roto i te konae /etc/clickhouse-server/config.xml.
grafana ki te mono clickhouse
I muri i te whakauru i a Grafana, whakamahia te kaiwhakahaere takiuru me te kaiwhakahaere kupuhipa. Ina takiuru koe mo te wa tuatahi, ka tono a Grafana ki a koe ki te whakatakoto kupuhipa hou.
I muri mai, haere ki te "+" -> tahua kawemai me te tohu i te nama papatohu mo te kawemai 10011. I whakareri ahau, i tuku ake i tenei papatohu kia kore ai koe e mahi ano.
E tautoko ana a Grafana i te mahi me te clickhouse ma te mono-tuatoru, engari kaore he matohi a Grafana mo nga mono-tuatoru (he tikiti mo tenei mo etahi tau).
pinba-tūmau
Ko te whakauru i te protobuf me te libevent he mea whiriwhiri, engari he pai ake te mahi a te pinba-server. Mena ka whakauruhia e koe te pinba-server ki roto i te kōpaki i tua atu i te / opt, me whakatika ano koe tuhinga systemd konae
kōwae pinba mo te nginx
Hei whakahiato i tetahi kōwae, me hiahia koe ki nga waehere puna o te momo momo nginx kua oti te whakauru ki runga i to kaimau, me nga whiringa whakahiato ano, ki te kore ka angitu te hanga, engari ka honoa te waahanga, ka puta he hapa tera. "Karekau te kōwae i te hototahi rua." Ka taea te tiro i nga whiringa whakahiato ma te whakamahi i te nginx -V whakahau
Nga hacks o te ora
Ko aku pae katoa e mahi ana i runga https anake. Ka kore he tikanga o te mara aronuinga, no reira ka whakamahia e au hei wehe i te paetukutuku/whakahoahoa.
I roto i nga tuhinga e waatea ana mai i te paetukutuku ka whakamahia e au:
if (ini_get('pinba.enabled')) {
pinba_schema_set('web');
}
A i roto i nga tuhinga papatohu (hei tauira, nga tuhinga cron):
if (ini_get('pinba.enabled')) {
pinba_schema_set('console');
}
Kei roto i taku papatohu i Grafana he whakawhiti tukutuku/papatohu mo te tiro motuhake i nga tatauranga.
Ka taea hoki e koe te tuku i o tohu ki Pinba, hei tauira:
pinba_tag_set('country', $countryCode);
Heoi ano.
Tena koa whakautuhia nga pooti i raro i te tuhinga.
Ka rite ki o mua, ka whakatupato ahau ki a koe kaore au e tohutohu, e awhina ranei ma nga karere whaiaro i runga i te Habr me nga whatunga hapori.