{"id":32322,"date":"2019-10-31T21:46:21","date_gmt":"2019-10-31T18:46:21","guid":{"rendered":"https:\/\/prohoster.info\/blog\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk\/"},"modified":"2019-10-31T21:46:21","modified_gmt":"2019-10-31T18:46:21","slug":"kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk","title":{"rendered":"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nazywam si\u0119 Anton Baderin. Pracuj\u0119 w Centrum Wysokich Technologii i zajmuj\u0119 si\u0119 administracj\u0105 system\u00f3w. Miesi\u0105c temu zako\u0144czy\u0142a si\u0119 nasza konferencja korporacyjna, na kt\u00f3rej dzieli\u015bmy si\u0119 zgromadzonym do\u015bwiadczeniem z spo\u0142eczno\u015bci\u0105 IT w naszym mie\u015bcie. Opowiada\u0142em o monitorowaniu aplikacji internetowych. Materia\u0142 by\u0142 przeznaczony dla os\u00f3b na poziomie junior lub middle, kt\u00f3re nie budowa\u0142y tego procesu od podstaw.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/c181509e6a10dd7562f361f328446d61.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kamie\u0144 w\u0119gielny ka\u017cdej systemu monitorowania to rozwi\u0105zanie problem\u00f3w biznesowych. Monitorowanie dla monitorowania nie interesuje nikogo. Czego chce biznes? Aby wszystko dzia\u0142a\u0142o szybko i bez b\u0142\u0119d\u00f3w. Biznes chce proaktywno\u015bci, aby\u015bmy sami identyfikowali problemy w pracy us\u0142ug i jak najszybciej je rozwi\u0105zywali. To w\u0142a\u015bnie by\u0142y zadania, kt\u00f3re rozwi\u0105zywa\u0142em przez ca\u0142y zesz\u0142y rok w projekcie jednego z naszych klient\u00f3w.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"o-proekte\">O projekcie<\/h2>\n<p><\/p>\n<p>Projekt to jeden z najwi\u0119kszych program\u00f3w lojalno\u015bciowych w kraju. Pomagamy sieciom detalicznym zwi\u0119ksza\u0107 cz\u0119stotliwo\u015b\u0107 sprzeda\u017cy dzi\u0119ki r\u00f3\u017cnym narz\u0119dziom marketingowym takim jak karty lojalno\u015bciowe. W sumie w projekcie bierze udzia\u0142 14 aplikacji, kt\u00f3re dzia\u0142aj\u0105 na dziesi\u0119ciu serwerach.<\/p>\n<p><\/p>\n<p>Podczas przeprowadzania rozm\u00f3w kwalifikacyjnych wielokrotnie zauwa\u017cy\u0142em, \u017ce administratorzy nie zawsze podchodz\u0105 w\u0142a\u015bciwie do monitorowania aplikacji internetowych: wci\u0105\u017c wielu poprzestaje na metrykach systemu operacyjnego, okazjonalnie monitoruj\u0105c us\u0142ugi.<\/p>\n<p><\/p>\n<p>W moim przypadku system monitorowania klienta wcze\u015bniej opiera\u0142 si\u0119 na Icinga. Nie rozwi\u0105zywa\u0142 on wskazanych wcze\u015bniej problem\u00f3w. Cz\u0119sto klient sam informowa\u0142 nas o problemach, a nie rzadko brakowa\u0142o nam danych, aby dotrze\u0107 do przyczyny.<\/p>\n<p><\/p>\n<p>Ponadto istnia\u0142o jasne zrozumienie beznadziejno\u015bci dalszego rozwoju. My\u015bl\u0119, \u017ce ci, kt\u00f3rzy znaj\u0105 Icinga, mnie zrozumiej\u0105. Tak wi\u0119c zdecydowali\u015bmy si\u0119 ca\u0142kowicie przebudowa\u0107 system monitorowania aplikacji internetowych w projekcie.<\/p>\n<p><\/p>\n<h2 id=\"prometheus\">Prometheus<\/h2>\n<p><\/p>\n<p>Wybrali\u015bmy Prometheus, kieruj\u0105c si\u0119 trzema g\u0142\u00f3wnymi wska\u017anikami:<\/p>\n<p><\/p>\n<ol>\n<li>Ogromna ilo\u015b\u0107 dost\u0119pnych metryk. W naszym przypadku jest ich 60 tysi\u0119cy. Oczywi\u015bcie nale\u017cy zauwa\u017cy\u0107, \u017ce przyt\u0142aczaj\u0105ca wi\u0119kszo\u015b\u0107 z nich nie jest u\u017cywana (oko\u0142o 95%). Z drugiej strony, wszystkie s\u0105 stosunkowo tanie. Dla nas to zupe\u0142nie inny skraj, w por\u00f3wnaniu do wcze\u015bniej u\u017cywanego Icinga. W niej dodawanie metryk by\u0142o szczeg\u00f3lnie bolesne: posiadane by\u0142y drogie (wystarczy spojrze\u0107 na \u017ar\u00f3d\u0142a dowolnego pluginu). Ka\u017cdy plugin by\u0142 skryptem w Bash lub Pythonie, kt\u00f3rych uruchamianie jest kosztowne z perspektywy zu\u017cywanych zasob\u00f3w.<\/li>\n<li>Ten system zu\u017cywa stosunkowo niewiele zasob\u00f3w. Na wszystkie nasze metryki wystarcza 600 MB pami\u0119ci RAM, 15% jednego rdzenia i kilka dziesi\u0105tek IOPS. Oczywi\u015bcie musimy uruchamia\u0107 exportery metryk, ale wszystkie s\u0105 napisane w Go i tak\u017ce nie s\u0105 zbyt wymagaj\u0105ce. Nie s\u0105dz\u0119, \u017ceby w dzisiejszych czasach stanowi\u0142o to problem. <\/li>\n<li>Daje mo\u017cliwo\u015b\u0107 przej\u015bcia na Kubernetes. Bior\u0105c pod uwag\u0119 plany klienta \u2013 wyb\u00f3r jest oczywisty. <\/li>\n<\/ol>\n<p><\/p>\n<h2 id=\"elk\">ELK<\/h2>\n<p><\/p>\n<p>Wcze\u015bniej nie zbierali\u015bmy i nie przetwarzali\u015bmy log\u00f3w. Niedogodno\u015bci s\u0105 jasne dla wszystkich. Wybrali\u015bmy ELK, poniewa\u017c mieli\u015bmy ju\u017c do\u015bwiadczenie z tym systemem. Przechowujemy tam tylko logi aplikacji. G\u0142\u00f3wnymi kryteriami wyboru by\u0142y pe\u0142notekstowe wyszukiwanie i jego szybko\u015b\u0107.<\/p>\n<p><\/p>\n<h2 id=\"slickhouse\">Clickhouse<\/h2>\n<p><\/p>\n<p>Pocz\u0105tkowo wybrali\u015bmy InfluxDB. Zdawali\u015bmy sobie spraw\u0119 z potrzeby zbierania log\u00f3w Nginx, statystyki z pg_stat_statements, przechowywania danych historycznych Prometheusa. Influx nam si\u0119 nie spodoba\u0142, poniewa\u017c od czasu do czasu zaczyna\u0142 zu\u017cywa\u0107 du\u017c\u0105 ilo\u015b\u0107 pami\u0119ci i pada\u0142. Dodatkowo, chcieli\u015bmy grupowa\u0107 zapytania wed\u0142ug remote_addr, a grupowanie w tej bazie danych by\u0142o tylko po tagach. Tagowanie jest kosztowne (pami\u0119\u0107), a ich liczba jest ograniczona.<\/p>\n<p><\/p>\n<p>Zacz\u0119li\u015bmy poszukiwania od nowa. Potrzebna by\u0142a baza analityczna o minimalnym zu\u017cyciu zasob\u00f3w, najlepiej z kompresj\u0105 danych na dysku.<\/p>\n<p><\/p>\n<p>Clickhouse spe\u0142nia wszystkie te kryteria, i ani razu nie \u017ca\u0142owali\u015bmy wyboru. Nie zapisujemy tam jakich\u015b wyj\u0105tkowych obci\u0105\u017ce\u0144 danych (liczba wstawek to oko\u0142o pi\u0119ciu tysi\u0119cy na minut\u0119).<\/p>\n<p><\/p>\n<h2 id=\"newrelic\">NewRelic<\/h2>\n<p><\/p>\n<p>NewRelic historycznie by\u0142 z nami, poniewa\u017c by\u0142 wyborem klienta. U\u017cywamy go jako APM.<\/p>\n<p><\/p>\n<h2 id=\"zabbix\">Zabbix<\/h2>\n<p><\/p>\n<p>U\u017cywamy Zabbix tylko do monitorowania Black Box r\u00f3\u017cnych API.<\/p>\n<p><\/p>\n<h2 id=\"opredelenie-podhoda-k-monitoringu\">Okre\u015blenie podej\u015bcia do monitorowania<\/h2>\n<p><\/p>\n<p>Chcieli\u015bmy roz\u0142o\u017cy\u0107 zadanie na czynniki i w ten spos\u00f3b zsystematyzowa\u0107 podej\u015bcie do monitorowania.<\/p>\n<p><\/p>\n<p>W tym celu podzieli\u0142em nasz system na nast\u0119puj\u0105ce poziomy:<\/p>\n<p><\/p>\n<ul>\n<li>sprz\u0119t i VMS;<\/li>\n<li>system operacyjny;<\/li>\n<li>us\u0142ugi systemowe, stos oprogramowania;<\/li>\n<li>aplikacja;<\/li>\n<li>logika biznesowa.<\/li>\n<\/ul>\n<p><\/p>\n<p>Jakie s\u0105 zalety takiego podej\u015bcia:<\/p>\n<p><\/p>\n<ul>\n<li>wiemy, kto odpowiada za dzia\u0142anie ka\u017cdego z poziom\u00f3w i na tej podstawie mo\u017cemy wysy\u0142a\u0107 alerty;<\/li>\n<li>mo\u017cemy korzysta\u0107 z tej struktury przy t\u0142umieniu alert\u00f3w - by\u0142oby dziwnie wysy\u0142a\u0107 alert o niedost\u0119pno\u015bci bazy danych, gdy ca\u0142y wirtualny serwer jest niedost\u0119pny.<\/li>\n<\/ul>\n<p><\/p>\n<p>Poniewa\u017c naszym zadaniem jest identyfikacja narusze\u0144 w dzia\u0142aniu systemu, musimy na ka\u017cdym poziomie \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c pewien zestaw metryk, na kt\u00f3re warto zwr\u00f3ci\u0107 uwag\u0119 przy pisaniu regu\u0142 alertowania. Przejdziemy teraz przez poziomy \u201eVMS\u201d, \u201eSystem operacyjny\u201d i \u201eUs\u0142ugi systemowe, stos oprogramowania\u201d.<\/p>\n<p><\/p>\n<h2 id=\"virtualnye-mashiny\">Maszyny wirtualne<\/h2>\n<p><\/p>\n<p><a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/\"   title=\"Hosting\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"2329\">Hosting<\/a> przydzielaj\u0105 nam procesor, dysk, pami\u0119\u0107 i sie\u0107. Mieli\u015bmy problemy z dwoma pierwszymi, wi\u0119c metryki:<\/p>\n<p><\/p>\n<p>Czas kradzie\u017cy CPU - gdy kupujesz wirtualn\u0105 maszyn\u0119 na Amazonie (na przyk\u0142ad t2.micro), nale\u017cy rozumie\u0107, \u017ce przypisane zostaje nie ca\u0142e rdzenie CPU, a jedynie kwota jego czasu. A gdy j\u0105 wyczerpiesz, procesor zaczn\u0105 ci zabiera\u0107.<\/p>\n<p><\/p>\n<p>Ta metryka pozwala monitorowa\u0107 takie sytuacje i podejmowa\u0107 decyzje. Na przyk\u0142ad, czy trzeba przej\u015b\u0107 na bardziej zasobny plan lub podzieli\u0107 przetwarzanie zada\u0144 w tle i zapyta\u0144 API na r\u00f3\u017cne <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/pl\/server\/dts-los-angeles\/\"   title=\"serwera\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"3493\">serwera<\/a>.<\/p>\n<p><\/p>\n<p>IOPS + czas oczekiwania CPU iowait - wiele host\u00f3w w chmurze ma problem z niedostarczeniem IOPS. Co wi\u0119cej, grafika z niskimi IOPS nie jest dla nich argumentem. Dlatego warto zbiera\u0107 tak\u017ce czas oczekiwania CPU iowait. Z tymi dwoma zaletami - niskimi IOPS i wysokim oczekiwaniem na wej\u015bcie\/wyj\u015bcie - mo\u017cna ju\u017c rozmawia\u0107 z hostingiem i rozwi\u0105zywa\u0107 problem.<\/p>\n<p><\/p>\n<h2 id=\"operacionnaya-sistema\">System operacyjny<\/h2>\n<p><\/p>\n<p>Metryki systemu operacyjnego:<\/p>\n<p><\/p>\n<ul>\n<li>ilo\u015b\u0107 dost\u0119pnej pami\u0119ci w %;<\/li>\n<li>aktywnos\u0301c\u0301 wykorzystania swap: vmstat swapin, swapout;<\/li>\n<li>ilo\u015b\u0107 dost\u0119pnych inode i wolnego miejsca w systemie plik\u00f3w w %;<\/li>\n<li>\u015brednie obci\u0105\u017cenie;<\/li>\n<li>liczba po\u0142\u0105cze\u0144 w stanie tw;<\/li>\n<li>wype\u0142nienie tabeli conntrack;<\/li>\n<li>jako\u015b\u0107 dzia\u0142ania sieci mo\u017cna monitorowa\u0107 za pomoc\u0105 narz\u0119dzia ss, pakietu iproute2 - uzyskiwa\u0107 z jego wynik\u00f3w wska\u017anik RTT po\u0142\u0105cze\u0144 i grupowa\u0107 wed\u0142ug portu dest.<\/li>\n<\/ul>\n<p><\/p>\n<p>R\u00f3wnie\u017c na poziomie systemu operacyjnego pojawia si\u0119 nam taka jednostka, jak procesy. Wa\u017cne jest, aby \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c w systemie zestaw proces\u00f3w, kt\u00f3re odgrywaj\u0105 wa\u017cn\u0105 rol\u0119 w jego dzia\u0142aniu. Na przyk\u0142ad, je\u015bli masz kilka pgpool, nale\u017cy zbiera\u0107 informacje o ka\u017cdym z nich.<\/p>\n<p><\/p>\n<p>Zestaw metryk jest nast\u0119puj\u0105cy:<\/p>\n<p><\/p>\n<ul>\n<li>CPU;<\/li>\n<li>pami\u0119\u0107 \u2014 przede wszystkim pami\u0119\u0107 operacyjna;<\/li>\n<li>IO \u2014 preferowane w IOPS;<\/li>\n<li>FileFd \u2014 otwarte i limit;<\/li>\n<li>istotne b\u0142\u0119dy stron \u2014 w ten spos\u00f3b mo\u017cesz zrozumie\u0107, kt\u00f3ry proces przeprowadza swapping.<\/li>\n<\/ul>\n<p><\/p>\n<p>Ca\u0142e monitorowanie jest u nas zainstalowane w Dockerze, do zbierania danych metryk u\u017cywamy Cadvisor. Na innych maszynach stosujemy process-exporter.<\/p>\n<p><\/p>\n<h2 id=\"sistemnye-servisy-stek-po\">Us\u0142ugi systemowe, stos oprogramowania<\/h2>\n<p><\/p>\n<p>Ka\u017cda aplikacja ma swoj\u0105 specyfik\u0119, i trudno jest wyr\u00f3\u017cni\u0107 jaki\u015b zestaw metryk.<\/p>\n<p><\/p>\n<p>Uniwersalny zestaw to:<\/p>\n<p><\/p>\n<ul>\n<li>wska\u017anik \u017c\u0105da\u0144;<\/li>\n<li>liczba b\u0142\u0119d\u00f3w;<\/li>\n<li>latencja;<\/li>\n<li>saturacja.<\/li>\n<\/ul>\n<p><\/p>\n<p>Najbardziej wyraziste przyk\u0142ady monitorowania tego poziomu to Nginx i PostgreSQL.<\/p>\n<p><\/p>\n<p>Najbardziej obci\u0105\u017con\u0105 us\u0142ug\u0105 w naszym systemie jest baza danych. Wcze\u015bniej mieli\u015bmy do\u015b\u0107 cz\u0119sto problemy z ustaleniem, czym zajmuje si\u0119 baza danych.<\/p>\n<p><\/p>\n<p>Widz\u0105c wysokie obci\u0105\u017cenie dysk\u00f3w, ale logi slow nie pokazywa\u0142y nic sensownego. Ten problem rozwi\u0105zali\u015bmy za pomoc\u0105 pg_stat_statements, widoku, w kt\u00f3rym gromadzone s\u0105 statystyki dotycz\u0105ce zapyta\u0144.<\/p>\n<p><\/p>\n<p>To wszystko, czego potrzebuje administrator.<\/p>\n<p><\/p>\n<p>Budujemy wykresy aktywno\u015bci zapyta\u0144 do odczytu i zapisu:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/f838b7759221b284c06941291fa186df.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/ea8684ea81f21c8d762a606aeb8342a3.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Wszystko jest proste i czytelne, ka\u017cde zapytanie ma sw\u00f3j kolor.<\/p>\n<p><\/p>\n<p>Nie mniej wyrazisty przyk\u0142ad to logi Nginx. Nic dziwnego, \u017ce ma\u0142o kto je parsuje lub wspomina o nich w li\u015bcie obowi\u0105zkowych. Standardowy format nie jest zbyt informacyjny i nale\u017cy go rozszerza\u0107.<\/p>\n<p><\/p>\n<p>Osobi\u015bcie doda\u0142em request_time, upstream_response_time, body_bytes_sent, request_length, request_id. Budujemy wykresy czasu odpowiedzi i liczby b\u0142\u0119d\u00f3w:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/e517f15303f8fa780d40b7f7e30eb9ef.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/9a07ffda75300ec939edff24532fc294.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Budujemy wykresy czasu odpowiedzi i liczby b\u0142\u0119d\u00f3w. Pami\u0119tasz? m\u00f3wi\u0142em o zadaniach biznesowych? \u017beby szybko i bezb\u0142\u0119dnie? Ju\u017c dwoma wykresami rozwi\u0105zali\u015bmy te kwestie. I na ich podstawie ju\u017c mo\u017cna dzwoni\u0107 do dy\u017curnych administrator\u00f3w.<\/p>\n<p><\/p>\n<p>Jednak pozosta\u0142 jeszcze jeden problem \u2014 zapewni\u0107 szybkie usuni\u0119cie przyczyn incydentu.<\/p>\n<p><\/p>\n<h2 id=\"ustranenie-incidentov\">Usuwanie incydent\u00f3w<\/h2>\n<p><\/p>\n<p>Ca\u0142y proces od wykrycia do rozwi\u0105zania problemu mo\u017cna podzieli\u0107 na szereg krok\u00f3w:<\/p>\n<p><\/p>\n<ul>\n<li>wykrycie problemu;<\/li>\n<li>powiadomienie dy\u017curnego administratora;<\/li>\n<li>reakcja na incydent;<\/li>\n<li>usuni\u0119cie przyczyn.<\/li>\n<\/ul>\n<p><\/p>\n<p>Wa\u017cne, aby\u015bmy robili to maksymalnie szybko. A je\u015bli na etapach wykrywania problemu i wysy\u0142ania powiadomienia nie mo\u017cemy zaoszcz\u0119dzi\u0107 szczeg\u00f3lnie du\u017co czasu \u2014 w ka\u017cdym razie zajmie to dwie minuty, to kolejne etapy \u2014 to po prostu nieprzekszta\u0142cone pole do udoskonale\u0144.<\/p>\n<p><\/p>\n<p>Wyobra\u017amy sobie, \u017ce telefon dy\u017curnego zadzwoni\u0142. Co on zrobi? B\u0119dzie szuka\u0142 odpowiedzi na pytania \u2014 co si\u0119 zepsu\u0142o, gdzie si\u0119 zepsu\u0142o, jak zareagowa\u0107? W ten spos\u00f3b odpowiadamy na te pytania:<\/p>\n<p>\n<img decoding=\"async\" alt=\"Jak budowali\u015bmy monitorowanie na Prometheus, Clickhouse i ELK\" src=\"\/wp-content\/uploads\/2019\/04\/7f33172922e646a24bb83733350b24f5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Po prostu w\u0142\u0105czamy wszystkie te informacje do tre\u015bci powiadomienia, daj\u0105c w nim link do strony w wiki, gdzie opisano, jak reagowa\u0107 na ten problem, jak go rozwi\u0105zywa\u0107 i eskalowa\u0107.<\/p>\n<p><\/p>\n<p>Wci\u0105\u017c nie wspomnia\u0142em o poziomie aplikacji i logice biznesowej. Niestety w naszych aplikacjach wci\u0105\u017c nie jest wdro\u017cone zbieranie metryk. Jedynym \u017ar\u00f3d\u0142em jakiejkolwiek informacji z tych poziom\u00f3w s\u0105 logi.<\/p>\n<p><\/p>\n<p>Kilka punkt\u00f3w.<\/p>\n<p><\/p>\n<p>Po pierwsze, piszcie uporz\u0105dkowane logi. Nie do\u0142\u0105czajcie kontekstu do tre\u015bci wiadomo\u015bci. Utrudnia to ich grupowanie i analiz\u0119. Logstash wymaga du\u017co czasu na normalizacj\u0119 tego.<\/p>\n<p><\/p>\n<p>Po drugie, prawid\u0142owo u\u017cywajcie poziom\u00f3w severity. Ka\u017cdy j\u0119zyk ma sw\u00f3j standard. Osobi\u015bcie wyr\u00f3\u017cniam cztery poziomy:<\/p>\n<p><\/p>\n<ol>\n<li>brak b\u0142\u0119d\u00f3w;<\/li>\n<li>b\u0142\u0105d po stronie klienta;<\/li>\n<li>b\u0142\u0105d po naszej stronie, nie tracimy pieni\u0119dzy, nie ponosimy ryzyka;<\/li>\n<li>b\u0142\u0105d po naszej stronie, tracimy pieni\u0105dze.<\/li>\n<\/ol>\n<p><\/p>\n<p>Podsumowuj\u0105c. Nale\u017cy d\u0105\u017cy\u0107 do monitorowania od logiki biznesowej. Stara\u0107 si\u0119 monitorowa\u0107 sam\u0105 aplikacj\u0119 oraz operowa\u0107 takimi metrykami, jak liczba sprzeda\u017cy, liczba nowych rejestracji u\u017cytkownik\u00f3w, liczba aktywnych u\u017cytkownik\u00f3w w danym momencie i tak dalej.<\/p>\n<p><\/p>\n<p>Je\u015bli ca\u0142e Twoje przedsi\u0119biorstwo to jeden przycisk w przegl\u0105darce, konieczne jest monitorowanie, czy jest on naciskany, czy dzia\u0142a prawid\u0142owo. Wszystko inne nie ma znaczenia.<\/p>\n<p><\/p>\n<p>Je\u015bli tego nie macie, mo\u017cecie spr\u00f3bowa\u0107 nadrobi\u0107 to w logach aplikacji, logach Nginx i tak dalej, jak to zrobili\u015bmy my. Powinni\u015bcie by\u0107 jak najbli\u017cej aplikacji.<\/p>\n<p><\/p>\n<p>Metryki systemu operacyjnego s\u0105 oczywi\u015bcie wa\u017cne, ale nie interesuj\u0105 biznesu, nie p\u0142ac\u0105 nam za nie.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/449352\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0442\u043e\u043d \u0411\u0430\u0434\u0435\u0440\u0438\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0426\u0435\u043d\u0442\u0440\u0435 \u0412\u044b\u0441\u043e\u043a\u0438\u0445 \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c. \u041c\u0435\u0441\u044f\u0446 \u043d\u0430\u0437\u0430\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0430\u0441\u044c \u043d\u0430\u0448\u0430 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f, \u0433\u0434\u0435 \u043c\u044b \u0434\u0435\u043b\u0438\u043b\u0438\u0441\u044c \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0441 IT-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u0433\u043e\u0440\u043e\u0434\u0430. \u042f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u043f\u0440\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0430\u043b\u0441\u044f \u0434\u043b\u044f \u0443\u0440\u043e\u0432\u043d\u044f junior \u0438\u043b\u0438 middle, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0432\u044b\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441 \u043d\u0443\u043b\u044f. \u041a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043c\u0435\u043d\u044c, \u043b\u0435\u0436\u0430\u0449\u0438\u0439 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u043b\u044e\u0431\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24139,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32322","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0442\u043e\u043d \u0411\u0430\u0434\u0435\u0440\u0438\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0426\u0435\u043d\u0442\u0440\u0435 \u0412\u044b\u0441\u043e\u043a\u0438\u0445 \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430 Prometheus, Clickhouse \u0438 ELK | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0442\u043e\u043d \u0411\u0430\u0434\u0435\u0440\u0438\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0426\u0435\u043d\u0442\u0440\u0435 \u0412\u044b\u0441\u043e\u043a\u0438\u0445 \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:46:21+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:21+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jak budowali\u015bmy monitoring na Prometheus, Clickhouse i ELK | ProHoster","description":"Nazywam si\u0119 Anton Baderin. Pracuj\u0119 w Centrum Wysokich Technologii i zajmuj\u0119 si\u0119 administrowaniem systemami.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043c\u044b \u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0430 Prometheus, Clickhouse \u0438 ELK | ProHoster","og:description":"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0442\u043e\u043d \u0411\u0430\u0434\u0435\u0440\u0438\u043d. \u042f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0432 \u0426\u0435\u043d\u0442\u0440\u0435 \u0412\u044b\u0441\u043e\u043a\u0438\u0445 \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438 \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/kak-my-stroili-monitoring-na-prometheus-clickhouse-i-elk","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:46:21+00:00","article:modified_time":"2019-10-31T18:46:21+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32322","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-22 15:34:41","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:00:23","updated":"2026-02-22 15:34:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/32322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=32322"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/32322\/revisions"}],"predecessor-version":[{"id":162019,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/32322\/revisions\/162019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/24139"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=32322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=32322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=32322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}