Lipalopalo le ho lekola mangolo a PHP ka nako ea nnete. ClickHouse le Grafana ba tla ho thusa Pinba

Sehloohong sena ke tla u bolella mokhoa oa ho sebelisa pinba ka clickhouse le grafana ho e-na le pinba_engine le pinboard.

Morerong oa PHP, pinba mohlomong ke eona feela tsela e tšepahalang ea ho utloisisa se etsahalang ka ts'ebetso. Ke ’nete, hangata pinba e sebelisoa feela ha mathata a se a hlokometsoe ’me ho sa hlaka hore na “ho cheka hokae.”

Hangata ha ho motho ea nang le maikutlo a hore na makhetlo a makae ka motsotsoana / motsotso ona kapa mongolo oo o bitsoa 'me ba qala ho ntlafatsa "ka ho ama", ho qala ho tloha libakeng tseo ho bonahalang li utloahala haholoanyane.

Ba bang ba hlahlobisisa li-logs tsa nginx, ha ba bang ba hlahloba lipotso tse liehang tsa database.

Ha e le hantle, pinba e ne e ke ke ea e-ba e feteletseng, empa ho na le mabaka a 'maloa a etsang hore morero o mong le o mong o be le oona.

Lipalopalo le ho lekola mangolo a PHP ka nako ea nnete. ClickHouse le Grafana ba tla ho thusa Pinba

'Me lebaka la pele ke ho kenya.

E le hore u fumane mofuta o itseng oa "ho felloa ke matla" ho tloha ts'ebetsong ea Pinba, ke ntho e lakatsehang haholo ho bona metrics eseng feela bakeng sa metsotso ea ho qetela, empa hape ka nako e telele (ho tloha matsatsing ho ea ho likhoeli).

Ho etsa sena, o hloka:

  • kenya katoloso ea php ('me u kanna ua batla mojule oa nginx)
  • bokella katoloso ea mysql
  • kenya pinboard mme u hlophise cron

Ka lebaka la boitsebiso bo fokolang ka Pinba, batho ba bangata ba na le maikutlo a hore e sebetsa feela ho PHP5 mme e se e le nako e telele e le ntho e fetileng, empa joalokaha re tla bona hamorao, sena ha se joalo.

Mohato oa pele ke o bonolo, sohle seo u hlokang ho se etsa ke ho tsamaisa taelo:

apt install php-pinba

Katoloso ena e fumaneha libakeng tsa polokelo ho fihlela le ho kenyelletsa php 7.3 mme ha ho hlokahale hore o bokelle letho.

Ka mor'a ho phethahatsa taelo ea ho kenya, hang-hang re fumana katoloso e sebetsang e bokellang le ho romela metrics bakeng sa mongolo o mong le o mong (nako ea ho sebetsa, mohopolo, joalo-joalo) ka mokhoa. protobuf ka udp ho 127.0.0.1:30002.

Ho fihlela joale ha ho motho ea kileng a tšoara kapa a sebetsana le lipakete tsena tsa UDP, empa sena ha se ame ka tsela leha e le efe hampe lebelo kapa botsitso ba mangolo a hau a PHP.

Ho fihlela haufinyane tjena, ts'ebeliso e le 'ngoe feela e neng e ka tšoara le ho sebetsana le lipakete tsena tsa UDP e ne e le pinba_engine. Tlhaloso "bonolo le bokhuts'oane"ho kenya ho nyahamisa takatso ea ho bala le ho itlhahloba hape. Manane a bolelele ba lik'hilomithara a na le mabitso a liphutheloana le mabitso a mananeo le likhokahano tsa maqephe a ikhethileng a kentsoeng, 'me a na le likhokahano tsa ona ho tse ling tse itšetlehileng ka tsona. Ha ho na motho ea nang le nako kapa takatso ea ho sebetsana le bothata bona.

Ts'ebetso ea ho kenya pinba2 ha kea etsa joalo haholo bonolo.

Mohlomong ka letsatsi le leng ho tla khonahala ho kenya pinba10 ka taelo e le 'ngoe kapa tse peli mme ha ho hlokahale hore u bale lintho tse ngata ho utloisisa mokhoa oa ho e etsa, empa hajoale ha ho joalo.

Haeba u kenya pinba_engine, joale ena ke halofo feela ea ntoa. Etsoe, ntle le pinboard o tla tlameha ho ipehela data ho tsoa metsotsong e 'maloa e fetileng, kapa o tla tlameha ho bokella, ho boloka, le ho bona data ka mahlo a kelello. Ho molemo hore pinboard e bonolo ho e sebelisa ho kenya.

Ho ka bonahala eka, ke hobane'ng ha mahlomola a joalo haeba metrics eohle e tsoang ho php e se e rometsoe ho udp port ka mokhoa oa protobuf 'me sohle seo u se hlokang ke ho ngola kopo e tla li tšoara le ho li kenya mofuteng o itseng oa polokelo? Kamoo ho bonahalang kateng, bahlahisi bao ba ileng ba tla le khopolo ena hang-hang ba ile ba lula fatše ho ngola maikutlo a bona, ao a mang a ileng a fella ka GitHub.

Lintlha tse latelang ke kakaretso ea merero e mene ea mehloli e bulehileng e bolokang metrics polokelong, moo data ena e ka fumanoang habonolo le ho bonoa, mohlala, ho sebelisa grafana.

olegfedoseev/pinba-server (November 2017)

udp server ha e ntse e tsamaea e bolokang metrics ho OpenTSDB. Mohlomong haeba u se u ntse u sebelisa OpenTSDB morerong oa hau, joale tharollo ena e tla u tšoanela, ho seng joalo ke khothaletsa ho e fetisa.

olegfedoseev/pinba-influxdb (Phuptjane 2018)

udp seva ha u ntse u tsamaea, ho tloha ho tšoanang Habrowser, eo lekhetlong lena e bolokang metrics ho InfluxDB. Merero e mengata e se e ntse e sebelisa InfluxDB bakeng sa ho beha leihlo, kahoo tharollo ena e kanna ea ba loketse.

Melemo:

  • InfluxDB e lumella kopanya lipalo tse amohetsoeng, 'me u hlakole tsa mantlha ka mor'a nako e itseng.

Chelete:

ClickHouse-Ninja/Proton (Pherekhong 2019)

udp server ha e ntse e tsamaea, e bolokang metrics ho ClickHouse. Ena ke tharollo ea motsoalle oa ka. E ne e le ka mor'a ho tloaelana le eona moo ke ileng ka etsa qeto ea hore ke nako ea ho nka Pinbu le Clickhouse.

Melemo:

  • Clickhouse e loketse mesebetsi e joalo; e o lumella ho hatella data haholo hoo o ka bolokang data eohle e tala ntle le ho kopanngoa.
  • ha ho hlokahala, o ka kopanya li-metrics tse hlahisoang habonolo
  • template e entsoeng hantle bakeng sa grafana
  • e boloka lintlha ho li-timers

Chelete:

  • sekodi se bolayang
  • ha ho na config moo u ka hlophisang lebitso la database le litafole, aterese le boema-kepe ba seva.
  • ha o boloka data e tala, tafole ea bukantswe e thusang e sebediswa ho boloka leqephe le diaterese tsa domain, e leng se hlokisang dipotso tse latelang.
  • dintho tse ding tse nyane tse latelang ho tloswa ha pele

pinba-server/pinba-server (Mmesa 2019)

udp seva ho php, e bolokang metrics ho ClickHouse. Ena ke tharollo ea ka, e leng phello ea ho tseba pinba, ClickHouse le protobuf. Ha ke ntse ke hlophisa sehlopha sena kaofela, ke ngotse "bopaki ba mohopolo", boo, ka tšohanyetso bakeng sa ka, bo sa kang ba sebelisa lisebelisoa tsa bohlokoa (30 MB ea RAM le ka tlase ho 1% ea e 'ngoe ea li-processor cores tse robeli), ka hona etsa qeto ea ho e arolelana le sechaba.

Melemo e tšoana le tharollo e fetileng, ke ile ka boela ka sebelisa mabitso a tloaelehileng a tsoang ho pinba_engine ea pele. Ke boetse ke kentse tlhophiso e u lumellang hore u qale maemo a 'maloa a li-server tsa pinbase hang-hang e le hore u boloke metrics litafoleng tse fapaneng - sena se molemo haeba u batla ho bokella data eseng feela ho php, empa hape le nginx.
Mathata - "phoso e bolaeang" le lintho tse nyane tse ke keng tsa u tšoanela, empa tharollo ea ka "e bonolo joalo ka slipper" mme e na le mela e ka bang 100 ea khoutu, kahoo moqapi ofe kapa ofe oa PHP a ka fetola seo a sa se rateng. ka metsotso e 'maloa.

Kamoo e ea sebetsang

Ho mameloa UDP port 30002. Lipakete tsohle tse kenang li khethoa ho latela morero oa protobuf 'me li kopantsoe. Hang ka motsotso, pakete e kenngoa ka har'a sebaka sa ho tobetsa ka har'a tafole ea pinba.requests. (li-parameter tsohle li hlophisitsoe ho config)

Hanyane ka Clickhouse

Clickhouse e tšehetsa lienjineri tse fapaneng tsa polokelo ea data. E sebelisoang haholo ke MergeTree.

Haeba ka nako e 'ngoe u etsa qeto ea ho boloka data e kopantsoeng ka nako eohle, le data e tala feela bakeng sa ea ho qetela, joale u ka etsa pono e entsoeng ka lihlopha,' me nako le nako u hloekisa tafole e kholo ea pinba.likopo, ha lintlha tsohle li tla sala ho ponahalo ya nama. Ho feta moo, ha u theha tafole ea pinba.requests, u ka hlakisa "enjene = Null", joale data e tala e ke ke ea bolokoa ho disk ho hang, 'me ka nako e ts'oanang e ntse e tla qetella e le ponong ea lintho tse bonahalang' me e bolokehe ka kakaretso. . Ke sebelisa morero ona bakeng sa metrics ea nginx, hobane ho nginx ke na le likopo tse fetang makhetlo a 50 ho feta ho php.

Kahoo, u tsamaile hole 'me ha ke rate ho u siea halofo, kahoo se latelang ke tlhaloso e qaqileng ea ho kenya le ho hlophisa tharollo ea ka le ntho e' ngoe le e 'ngoe eo ue hlokang, hammoho le maraba a bakileng sekepe se fetang se le seng. ho thula. Ts'ebetso eohle ea ho kenya e hlalositsoe bakeng sa Ubuntu 18.04 LTS le Centos 7; ts'ebetso e ka fapana hanyane ho lipehelo le liphetolelo tse ling.

bophirima

Ke kenya litaelo tsohle tse hlokahalang dockerfile ho nolofatsa ho ikatisa ha litaelo. Ke likoti feela tse tla hlalosoa ka tlase.

php-pinba

Ka mor'a ho kenya, etsa bonnete ba hore faeleng ea /etc/php/7.2/fpm/conf.d/20-pinba.ini u na le likhetho tsohle. Likabong tse ling (mohlala, li-centos) li ka hlalosoa.

extension=pinba.so
pinba.enabled=1
pinba.server=127.0.0.1:30002

Clickhouse

Nakong ea ho kenya, clickhouse e tla u kopa hore u behe phasewete bakeng sa mosebedisi ea kamehla. Ka nako e sa lekanyetsoang, mosebedisi enoa o fumaneha ho tsoa ho li-IP tsohle, kahoo haeba u se na firewall ho seva sa hau, etsa bonnete ba hore u seta phasewete bakeng sa eona. Sena se ka boela sa etsoa ka mor'a ho kenya faeleng ea /etc/clickhouse-server/users.xml.

Hape ke habohlokoa ho hlokomela hore clickhouse e sebelisa likou tse 'maloa, ho kenyelletsa le 9000. Boema-kepe bona bo boetse bo sebelisetsoa php-fpm likarolong tse ling (mohlala, centos). Haeba u se u ntse u sebelisa kou ena, u ka e fetola ho e 'ngoe ho file ea /etc/clickhouse-server/config.xml.

grafana e nang le plugin ea Clickhouse

Kamora ho kenya Grafana, sebelisa admin le password admin. Ha u kena ka lekhetlo la pele, Grafana e tla u kopa hore u behe phasewete e ncha.

E latelang, ea ho "+" -> menu ea ho kenya 'me u bontše nomoro ea dashboard bakeng sa ho kenya 10011. Ke lokisitse le ho kenya dashboard ena e le hore u se ke ua tlameha ho e etsa hape.

Grafana e ts'ehetsa ho sebetsa le Clickhouse ka plugin ea motho oa boraro, empa Grafana ha e na litlhokomeliso bakeng sa li-plugins tsa mokha oa boraro (ho bile le tekete ea sena ka lilemo tse 'maloa).

pinba-server

Ho kenya protobuf le libevent ke boikhethelo, empa ho ntlafatsa ts'ebetso ea pinba-server. Haeba o kenya pinba-server foldareng e 'ngoe ntle le / opt, joale o tla hloka ho lokisa mongolo oa systemd faele.

pinba module bakeng sa nginx

Ho bokella mojule, o hloka likhoutu tsa mohloli oa mofuta o tšoanang oa nginx o seng o kentsoe ho seva sa hau, hammoho le likhetho tse tšoanang tsa ho bokella, ho seng joalo moaho o tla atleha, empa ha o hokahanya module, phoso e tla lahleloa. "mojule ha e tsamaellane le binary." Likhetho tsa ho bokella li ka bonoa ho sebelisoa taelo ea nginx -V

Hacks ea bophelo

Liwebsaete tsohle tsa ka li sebetsa feela ho https. Sebaka sa schema ha se na moelelo, kahoo ke se sebelisa ho arola websaete / console.

Lingoliloeng tse fumanehang ho tsoa tepong eo ke e sebelisang:

if (ini_get('pinba.enabled')) {
    pinba_schema_set('web');
}

'Me ho li-console scripts (mohlala, cron scripts):

if (ini_get('pinba.enabled')) {
    pinba_schema_set('console');
}

Ka deshebotong ea ka Grafana ho na le switjha ea webo/khonsole bakeng sa ho shebella lipalo ka thoko.

U ka boela ua romela li-tag tsa hau ho Pinba, mohlala:

pinba_tag_set('country', $countryCode);

Ke phetho.

Ka kopo araba likhetho tse ka tlase ho sengoloa.

Joalo ka tloaelo, kea u lemosa hore ha ke eletse kapa ho thusa ka melaetsa ea hau ho Habr le marang-rang a sechaba.

Theha tekete ho Github.

Hape ke kopa tšehetso ka likes Phetolelo ea Senyesemane Sengoloa sena ka reddit.

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

U sebelisa OS efe ho seva?

  • Botho

  • CentOS

  • Debian

  • Gentoo

  • Red Hat

  • Fedora

  • OpenSUSE

  • SENSE

  • Unix

  • Windows

  • tse ling

Basebelisi ba 114 ba ile ba khetha. Basebelisi ba 11 ba ile ba hana.

U sebelisa mofuta ofe oa php ho seva?

  • 7.3

  • 7.2

  • 7.1

  • 7.0

  • 5

  • tse ling

Basebelisi ba 105 ba ile ba khetha. Basebelisi ba 17 ba ile ba hana.

Na u kile ua sebelisa pinba?

  • e

  • che, empa kea rata

  • che 'me ke ne nke ke ka batla

  • tjhe, mme ha ke eso utlwe ka yena

Basebelisi ba 100 ba ile ba khetha. Basebelisi ba 14 ba ile ba hana.

Ke mofuta ofe oa seva sa Pinba oo u ka ratang ho o leka?

  • pinba_engine (mysql enjene)

  • pinba2 (enjene ea mysql)

  • pinboard (php + mysql)

  • olegfedoseev/pinba-server (ea + OpenTSDB)

  • olegfedoseev/pinba-influxdb (tsamaya + influxdb)

  • pinba-server/pinba-server (ea + clickhouse)

  • pinba-server/pinba-server (php + clickhouse)

  • Ke tla ngola ea ka ka bonna

  • tse ling

Basebelisi ba 39 ba ile ba khetha. Basebelisi ba 47 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso