Pulogalamu ya ProHoster > Blog > Ulamuliro > Ziwerengero ndi kuwunikira zolemba za PHP munthawi yeniyeni. ClickHouse ndi Grafana amabwera kudzathandiza Pinba
Ziwerengero ndi kuwunikira zolemba za PHP munthawi yeniyeni. ClickHouse ndi Grafana amabwera kudzathandiza Pinba
M'nkhaniyi ndikuuzani momwe mungagwiritsire ntchito pinba ndi clickhouse ndi grafana m'malo mwa pinba_engine ndi pinboard.
Pa pulojekiti ya PHP, pinba mwina ndiyo njira yokhayo yodalirika yomvetsetsa zomwe zikuchitika ndi magwiridwe antchito. Zowona, pinba kaŵirikaŵiri imagwiritsiridwa ntchito kokha pamene mavuto awonedwa kale ndipo sizikudziŵika bwino “kokumbirira” kumene.
Nthawi zambiri palibe amene amadziwa kuti kangati pa sekondi/mphindi iyi kapena script imatchedwa ndipo amayamba kukhathamiritsa "pokhudza", kuyambira malo omwe amawoneka omveka bwino.
Ena amasanthula zipika za nginx, pomwe ena amasanthula mafunso ocheperako.
Zachidziwikire, pinba sangakhale wopambana, koma pali zifukwa zingapo zomwe si polojekiti iliyonse ili nayo.
Ndipo chifukwa choyamba ndi kukhazikitsa.
Kuti muthe kupeza "kutha" kwamtundu wina kuchokera pakukhazikitsidwa kwa Pinba, ndizofunikira kwambiri kuwona ma metrics osati mphindi zomaliza zokha, komanso kwa nthawi yayitali (kuyambira masiku mpaka miyezi).
Kuti muchite izi, muyenera:
yonjezerani php (ndipo mungafune gawo la nginx)
phatikiza zowonjezera za mysql
khazikitsa pinboard ndikusintha cron
Chifukwa cha chidziwitso chaching'ono chokhudza Pinba, anthu ambiri ali ndi malingaliro kuti adangogwira ntchito pa PHP5 ndipo wakhala akudziwika kale, koma monga momwe tidzaonera pambuyo pake, izi siziri choncho.
Pambuyo pokhazikitsa lamulo lokhazikitsa, nthawi yomweyo timalandira zowonjezera zogwira ntchito zomwe zimasonkhanitsa ndi kutumiza ma metrics pa script iliyonse (nthawi yothamanga, kukumbukira, ndi zina zotero) mumtundu. protobuf kudzera udp mpaka 127.0.0.1:30002.
Pakadali pano palibe amene wagwira kapena kukonza mapaketi awa a UDP, koma izi sizimakhudza mwanjira iliyonse liwiro kapena kukhazikika kwa zolemba zanu za PHP.
Mpaka posachedwa, ntchito yokhayo yomwe ingagwire ndikukonza mapaketi a UDP awa pinba_engine. Kufotokozera "yosavuta komanso yachidule"Kukhazikitsa kumachepetsa chikhumbo chofuna kuwerenga ndikuwunikanso. Mndandanda wamakilomita wamtali wa zodalira uli ndi mayina a phukusi ndi mayina a mapulogalamu ndi maulalo amasamba omwe ali ndi kuyika kwawo, ndipo omwe ali ndi maulalo awoawo odalira ena. Palibe amene ali ndi nthawi kapena chikhumbo chothana ndi vuto ili.
udp seva popita yomwe imasunga ma metrics ku OpenTSDB. Mwina ngati mukugwiritsa ntchito OpenTSDB pulojekiti yanu, ndiye kuti yankho ili likugwirizana ndi inu, apo ayi ndikupangira kuti mudutse.
udp seva popita, kuchokera momwemo habrowser, yomwe nthawi ino imasunga ma metrics mu InfluxDB. Ma projekiti ambiri akugwiritsa ntchito kale InfluxDB pakuwunikira, kotero yankholi litha kukhala labwino kwa iwo.
udp seva popita, yomwe imasunga ma metrics mu ClickHouse. Ili ndiye yankho la mnzanga. Nditazolowerana nazo pomwe ndidaganiza kuti inali nthawi yoti nditenge Pinbu ndi Clickhouse.
udp seva mu php, yomwe imasunga ma metrics mu ClickHouse. Ili ndiye yankho langa, lomwe ndi chifukwa chodziwa pinba, ClickHouse ndi protobuf. Pamene ndinali kukonza gulu lonseli, ndinalemba "umboni wa lingaliro", lomwe, mosayembekezereka kwa ine, silinadye zinthu zofunika kwambiri (30 MB ya RAM ndi zosakwana 1% mwa imodzi mwa ma processor cores asanu ndi atatu), kotero ine adaganiza zogawana ndi anthu.
Ubwino ndi wofanana ndi yankho lapitalo, ndidagwiritsanso ntchito mayina anthawi zonse kuchokera ku pinba_engine yoyambirira. Ndidawonjezeranso makonzedwe omwe amakulolani kuti mutsegule ma seva angapo a pinbase nthawi imodzi kuti musunge ma metric pamatebulo osiyanasiyana - izi ndizothandiza ngati mukufuna kusonkhanitsa deta osati kuchokera ku php, komanso kuchokera ku nginx.
Zoipa - "cholakwika choopsa" ndi zinthu zazing'ono zomwe sizingagwirizane ndi inu nokha, koma yankho langa ndi "losavuta ngati slipper" ndipo lili ndi mizere pafupifupi 100 ya code, kotero wopanga PHP akhoza kusintha zomwe sakonda. mumphindi zingapo.
Momwe ntchito
UDP port 30002 imamvedwa. Mapaketi onse omwe akubwera amasankhidwa molingana ndi dongosolo la protobuf ndikuphatikizidwa. Kamodzi pa miniti, paketi imayikidwa mu clickhouse mu pinba.requests tebulo. (ma parameter onse amapangidwa mu config)
Zambiri za clickhouse
Clickhouse imathandizira makina osungira deta osiyanasiyana. Chomwe chimagwiritsidwa ntchito kwambiri ndi MergeTree.
Ngati nthawi ina mwaganiza zosunga deta yophatikizika nthawi zonse, ndi data yaiwisi yokha yomaliza, ndiye kuti mutha kupanga mawonekedwe owoneka ndi magulu, ndikuyeretsa nthawi ndi nthawi patebulo lalikulu la pinba.requests, pomwe deta yonse ikhalabe mu mawonekedwe athupi. Kuphatikiza apo, popanga tebulo la pinba.requests, mutha kufotokozera "injini = Null", ndiye kuti data yaiwisi sidzasungidwa ku diski konse, ndipo nthawi yomweyo idzakhalabe mu mawonekedwe owoneka bwino ndikusungidwa mophatikiza. . Ndimagwiritsa ntchito chiwembu ichi pamakina a nginx, chifukwa pa nginx ndili ndi zopempha zambiri za 50 kuposa pa php.
Chifukwa chake, mwafika patali ndipo sindikufuna kukusiyani theka, ndiye chotsatirachi ndikufotokozera mwatsatanetsatane kukhazikitsa ndi kukonza yankho langa ndi zonse zomwe mukufunikira, komanso misampha yomwe yayambitsa sitima imodzi. kugwa. Njira yonse yoyikamo ikufotokozedwa za Ubuntu 18.04 LTS ndi Centos 7; njirayo imatha kusiyana pang'ono pamagawidwe ena ndi mitundu.
kolowera
Ndayikamo malamulo onse ofunikira Dockerfile kuti atsogolere kubwereza kwa malangizo. Ndi mbuna zokha zomwe zidzafotokozedwe pansipa.
php-pansi
Pambuyo poika, onetsetsani kuti mu fayilo /etc/php/7.2/fpm/conf.d/20-pinba.ini mwasiya zonse zomwe mungasankhe. Pa magawo ena (monga centos) atha kuperekedwanso ndemanga.
Pakuyika, clickhouse idzakufunsani kuti muyike mawu achinsinsi kwa wogwiritsa ntchito. Mwachikhazikitso, wogwiritsa ntchitoyu akupezeka kuchokera ku ma IP onse, kotero ngati mulibe chowotcha moto pa seva yanu, onetsetsani kuti mwakhazikitsa mawu achinsinsi. Izi zitha kuchitikanso mukakhazikitsa fayilo /etc/clickhouse-server/users.xml.
Ndizofunikanso kudziwa kuti clickhouse imagwiritsa ntchito madoko angapo, kuphatikizapo 9000. Dokoli limagwiritsidwanso ntchito pa php-fpm mu magawo ena (mwachitsanzo, centos). Ngati mumagwiritsa ntchito kale dokoli, mutha kulisintha kukhala lina mu fayilo /etc/clickhouse-server/config.xml.
grafana yokhala ndi pulogalamu yowonjezera ya clickhouse
Mukakhazikitsa Grafana, gwiritsani ntchito admin wolowera ndi password admin. Mukalowa kwa nthawi yoyamba, Grafana adzakufunsani kuti muyike mawu achinsinsi atsopano.
Kenako, pitani ku "+" -> menyu yolowera ndikuwonetsa nambala ya dashboard yoti mutenge 10011. Ndinakonzekera ndikuyika bolodi ili kuti musadzipange nokha.
Grafana imathandizira kugwira ntchito ndi clickhouse kudzera pulogalamu yowonjezera ya chipani chachitatu, koma Grafana alibe zidziwitso za mapulagini a chipani chachitatu (pakhala tikiti ya izi kwa zaka zingapo).
pinba-server
Kuyika protobuf ndi libevent ndizosankha, koma zimathandizira magwiridwe antchito a pinba-server. Ngati muyika pinba-server mu foda ina osati / opt, ndiye kuti mudzafunikanso kukonza systemd script fayilo.
pinba module ya nginx
Kuti mupange gawo, mufunika ma code amtundu womwewo wa nginx omwe adayikidwa kale pa seva yanu, komanso zosankha zomwezo zophatikiza, apo ayi kumangako kudzakhala kopambana, koma polumikiza gawolo, cholakwika chidzaponyedwa. "moduleyi sigwirizana ndi binary." Zosankha zophatikizira zitha kuwonedwa pogwiritsa ntchito lamulo la nginx -V
Mahaki amoyo
Masamba anga onse amagwira ntchito pa https. Gawo la schema limakhala lopanda tanthauzo, chifukwa chake ndimagwiritsa ntchito kulekanitsa intaneti / console.
M'malemba omwe amapezeka pa intaneti ndimagwiritsa ntchito:
if (ini_get('pinba.enabled')) {
pinba_schema_set('web');
}
Ndipo muzolemba za console (mwachitsanzo, zolemba za cron):
if (ini_get('pinba.enabled')) {
pinba_schema_set('console');
}
Mu dashboard yanga ku Grafana pali chosinthira pa intaneti/chowongolera kuti muwonere ziwerengero padera.
Mutha kutumizanso ma tag anu ku Pinba, mwachitsanzo:
pinba_tag_set('country', $countryCode);
Ndizomwezo.
Chonde yankhani zisankho zomwe zili pansipa.
Monga mwachizolowezi, ndimakuchenjezani kuti sindikulangizani kapena kuthandizira kudzera pa mauthenga aumwini pa Habr ndi malo ochezera a pa Intaneti.