{"id":80031,"date":"2020-05-02T13:42:49","date_gmt":"2020-05-02T11:42:49","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/top-fakapov-czian"},"modified":"2020-05-02T13:42:49","modified_gmt":"2020-05-02T11:42:49","slug":"top-fakapov-czian","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/top-fakapov-czian","title":{"rendered":"Cian legnagyobb bakijai","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Cian legnagyobb bakijai\" src=\"\/wp-content\/uploads\/2020\/05\/61cf8d25f1f3e858a3b9541cb026cf3c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMinden j\u00f3t!\u00a0<\/p>\n<p>Nekem Nikita a nevem, a \u0426\u0438\u0430\u043d m\u00e9rn\u00f6ki csapat\u00e1nak csapatvezet\u0151je vagyok. Az egyik feladatom a c\u00e9gn\u00e9l az, hogy az infrastruktur\u00e1lis esem\u00e9nyek sz\u00e1m\u00e1t a termel\u00e9si k\u00f6rnyezetben null\u00e1ra cs\u00f6kkentsem.<br \/>\nA k\u00f6vetkez\u0151kben sz\u00f3 lesz arr\u00f3l, ami sok f\u00e1jdalmat okozott nek\u00fcnk, \u00e9s cikkem c\u00e9lja, hogy m\u00e1sokat ne engedj\u00fck megism\u00e9telni a hib\u00e1inkat, vagy legal\u00e1bb minimaliz\u00e1ljuk azok hat\u00e1s\u00e1t.\u00a0<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>El\u0151sz\u00f3<\/h3>\n<p>\nR\u00e9ges-r\u00e9gen, amikor a \u0426\u0438\u0430\u043d monolitikus volt, \u00e9s a mikroszolg\u00e1ltat\u00e1soknak nyoma sem volt, a forr\u00e1s el\u00e9rhet\u0151s\u00e9g\u00e9t 3-5 oldal ellen\u0151rz\u00e9s\u00e9vel m\u00e9rt\u00fck.\u00a0<\/p>\n<p>Ha v\u00e1laszolnak \u2014 minden rendben, ha hossz\u00fa ideig nem v\u00e1laszolnak \u2014 riaszt\u00e1s. Mennyi ideig kell nem m\u0171k\u00f6dni\u00fck ahhoz, hogy ezt esem\u00e9nynek sz\u00e1m\u00edts\u00e1k, az a megbesz\u00e9l\u00e9seken d\u0151lt el. A m\u00e9rn\u00f6kk\u00f6r mindig r\u00e9szt vett az esem\u00e9nyek kivizsg\u00e1l\u00e1s\u00e1ban. Amikor a vizsg\u00e1lat v\u00e9get \u00e9rt, posztmortemot \u00edrtunk \u2014 egyfajta jelent\u00e9st k\u00fcldt\u00fcnk e-mailben a form\u00e1tumban: mi t\u00f6rt\u00e9nt, mennyi ideig tartott, mit tett\u00fcnk abban a pillanatban, mit fogunk tenni a j\u00f6v\u0151ben.\u00a0<\/p>\n<h3>A weboldal f\u0151oldalai, vagy hogyan tudjuk, hogy el\u00e9rt\u00fck a m\u00e9lypontot<\/h3>\n<p>\u00a0<br \/>\nAhhoz, hogy valahogy meg\u00e9rts\u00fck a hiba priorit\u00e1s\u00e1t, kiemelt\u00fck a legfontosabb \u00fczleti funkci\u00f3khoz kapcsol\u00f3d\u00f3 weboldalakat. Ezeken m\u00e9rj\u00fck az sikeres \/ sikertelen k\u00e9r\u00e9sek \u00e9s id\u0151t\u00fall\u00e9p\u00e9sek sz\u00e1m\u00e1t. Ily m\u00f3don m\u00e9rj\u00fck az \u00fczemid\u0151t.\u00a0<\/p>\n<p>Tegy\u00fck fel, hogy kider\u00fclt, hogy van n\u00e9h\u00e1ny nagyon fontos szekci\u00f3 a weboldalon, amelyek a f\u0151 szolg\u00e1ltat\u00e1s\u00e9rt felelnek \u2014 hirdet\u00e9sek keres\u00e9s\u00e9\u00e9rt \u00e9s bek\u00fcld\u00e9s\u00e9\u00e9rt. Ha a hib\u00e1val v\u00e9gz\u0151d\u00f6tt k\u00e9r\u00e9sek sz\u00e1ma meghaladja az 1%-ot, az kritikus esem\u00e9nynek sz\u00e1m\u00edt. Ha a forgalmas id\u0151szakban 15 percen bel\u00fcl a hib\u00e1k ar\u00e1nya meghaladja a 0,1%-ot, az szint\u00e9n kritikus esem\u00e9ny. Ezek a krit\u00e9riumok lefedik az esem\u00e9nyek nagy r\u00e9sz\u00e9t, a t\u00f6bbi nem t\u00e9m\u00e1ja ennek a cikknek.<\/p>\n<p><img decoding=\"async\" alt=\"Cian legnagyobb bakijai\" src=\"\/wp-content\/uploads\/2020\/05\/f5d76b1784c9a52ae1dc4728f1509ccc.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>A \u0426\u0438\u0430\u043d legjobb esem\u00e9nyeinek toplist\u00e1ja<\/h3>\n<p>\nTeh\u00e1t biztosan megtanultuk meg\u00e1llap\u00edtani, hogy esem\u00e9ny t\u00f6rt\u00e9nt.\u00a0<\/p>\n<p>Most minden esem\u00e9ny r\u00e9szletesen dokument\u00e1lva van, \u00e9s Jir\u00e1ban epikusan t\u00fckr\u00f6z\u0151dik. Egy\u00e9bk\u00e9nt: ehhez k\u00fcl\u00f6n projektet ind\u00edtottunk, amit FAIL-nak nevezt\u00fcnk \u2014 csak epikokat lehet benne l\u00e9trehozni.\u00a0<\/p>\n<p>Ha \u00f6sszegy\u0171jtj\u00fck az elm\u00falt \u00e9vek \u00f6sszes kudarc\u00e1t, az \u00e9len \u00e1llnak:\u00a0<\/p>\n<ul>\n<li>mssql-hez kapcsol\u00f3d\u00f3 esem\u00e9nyek;<\/li>\n<li>k\u00fcls\u0151 t\u00e9nyez\u0151k \u00e1ltal okozott esem\u00e9nyek;<\/li>\n<li>adminisztr\u00e1tori hib\u00e1k.<\/li>\n<\/ul>\n<p>\nMost r\u00e9szletesebben foglalkozunk az adminisztr\u00e1tori hib\u00e1kkal, valamint n\u00e9h\u00e1ny m\u00e1s \u00e9rdekes kudarccal.<\/p>\n<h4>\u00d6t\u00f6dik hely \u2014 \"Rendrak\u00e1s a DNS-ben\"<\/h4>\n<p>\nEz egy borong\u00f3s kedd volt. Elhat\u00e1roztuk, hogy rendbe tessz\u00fck a DNS klasztert.\u00a0<\/p>\n<p>\u00dagy d\u00f6nt\u00f6tt\u00fcnk, hogy a bels\u0151 dns-szervereket bindr\u0151l powerdns-re \u00e1ll\u00edtjuk \u00e1t, teljesen k\u00fcl\u00f6n szerverekre, ahol csak dns m\u0171k\u00f6dik.\u00a0<\/p>\n<p>Egy dns-szervert helyezt\u00fcnk el minden adatk\u00f6zpontunk k\u00fcl\u00f6nb\u00f6z\u0151 helysz\u00ednein, \u00e9s el\u00e9rkezett a pillanat, hogy \u00e1tkonvert\u00e1ljunk a bindr\u0151l powerdns-re, valamint az infrastrukt\u00far\u00e1t az \u00faj szerverekre \u00e1ll\u00edtsuk.\u00a0<\/p>\n<p>A migr\u00e1ci\u00f3 leghevesebb id\u0151szak\u00e1ban az \u00f6sszes, a helyi cachel\u00e9si bindben megadott szerver k\u00f6z\u00fcl csak egy maradt, ami a Szentp\u00e9terv\u00e1ri adatk\u00f6zpontban volt. Ez az adatk\u00f6zpont kezdetben nem volt kritikus sz\u00e1munkra, de hirtelen single point of failure lett. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/server\/\"   title=\"szerverek\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1484\">szerverek<\/a>Pont abban az id\u0151szakban, amikor a migr\u00e1ci\u00f3 zajlott, le\u00e1llt a kapcsolat Moszkva \u00e9s Szentp\u00e9terv\u00e1r k\u00f6z\u00f6tt. Gyakorlatilag \u00f6t percig DNS n\u00e9lk\u00fcl maradtunk, \u00e9s csak akkor \u00e1lltunk vissza, amikor<br \/>\na hib\u00e1kat elh\u00e1r\u00edtott\u00e1k. <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/hu\/\"   title=\"the host\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1206\">the host<\/a> Ha kor\u00e1bban figyelmen k\u00edv\u00fcl hagytuk a k\u00fcls\u0151 t\u00e9nyez\u0151ket a munk\u00e1k el\u0151k\u00e9sz\u00edt\u00e9se sor\u00e1n, most ezeket is belesz\u00e1moltuk abba, amire fel kell k\u00e9sz\u00fcln\u00fcnk. Most m\u00e1r arra t\u00f6reksz\u00fcnk, hogy minden komponens n-2 szinten legyen fenntartva, \u00e9s a munk\u00e1k idej\u00e9re ezt a szintet n-1-re tudjuk cs\u00f6kkenteni.\u00a0<\/p>\n<p><b>K\u00f6vetkeztet\u00e9sek: <\/b><\/p>\n<p>A cselekv\u00e9si terv \u00f6ssze\u00e1ll\u00edt\u00e1sa sor\u00e1n jel\u00f6lj\u00fck ki azokat a pontokat, ahol a szolg\u00e1ltat\u00e1s le\u00e1llhat, \u00e9s gondoljuk \u00e1t a forgat\u00f3k\u00f6nyvet, amikor minden a legrosszabbul alakul, el\u0151re.<\/p>\n<ul>\n<li>Terjessze el a bels\u0151 dns-szervereket k\u00fcl\u00f6nb\u00f6z\u0151 geolok\u00e1ci\u00f3k\/adatk\u00f6zpontok\/szekr\u00e9nyek\/switch-ek\/bemenetek k\u00f6z\u00f6tt.<\/li>\n<li>Minden szerveren telep\u00edtsen egy helyi cachel\u0151 dns-szervert, amely az alap dns-szerverekre ir\u00e1ny\u00edtja a k\u00e9r\u00e9seket, \u00e9s ha ez nem el\u00e9rhet\u0151, akkor a cache-b\u0151l v\u00e1laszol.<\/li>\n<li>A negyedik pont \u2013 \u201eRendet rakunk az Nginx-ben\u201d\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>Egy sz\u00e9p napon csapatunk \u00fagy d\u00f6nt\u00f6tt, hogy \"ennyi el\u00e9g\", \u00e9s elindult az nginx konfigur\u00e1ci\u00f3k \u00e1tstruktur\u00e1l\u00e1sa. F\u0151 c\u00e9lunk az volt, hogy intuit\u00edv strukt\u00far\u00e1ba hozzuk a konfigokat. Kor\u00e1bban minden \"t\u00f6rt\u00e9nelmileg kialakult\" volt, \u00e9s semmif\u00e9le logik\u00e1t nem hordozott. Most minden server_name-t saj\u00e1t nev\u0171 f\u00e1jlba vitt\u00fcnk, \u00e9s a konfigokat mapp\u00e1kba osztottuk. Megjegyzend\u0151, hogy a konfig 253949 sorb\u00f3l vagy 7836520 karakterb\u0151l \u00e1ll, \u00e9s k\u00f6zel 7 megab\u00e1jt helyet foglal el. A strukt\u00fara legfels\u0151 szintje:<\/h4>\n<p>\nNginx strukt\u00fara\u00a0<\/p>\n<p>                        <b class=\"spoiler_title\">Nginx strukt\u00fara<\/b><\/p>\n<pre><code class=\"plaintext\">\u251c\u2500\u2500 hozz\u00e1f\u00e9r\u00e9s\n\u2502 \u00a0 \u251c\u2500\u2500 allow.list\n...\n\u2502 \u00a0 \u2514\u2500\u2500 whitelist.conf\n\u251c\u2500\u2500 geobase\n\u2502 \u00a0 \u251c\u2500\u2500 exclude.conf\n...\n\u2502 \u00a0 \u2514\u2500\u2500 geo_ip_to_region_id.conf\n\u251c\u2500\u2500 geodb\n\u2502 \u00a0 \u251c\u2500\u2500 GeoIP.dat\n\u2502 \u00a0 \u251c\u2500\u2500 GeoIP2-Country.mmdb\n\u2502 \u00a0 \u2514\u2500\u2500 GeoLiteCity.dat\n\u251c\u2500\u2500 inc\n\u2502 \u00a0 \u251c\u2500\u2500 error.inc\n...\n\u2502 \u00a0 \u2514\u2500\u2500 proxy.inc\n\u251c\u2500\u2500 lists.d\n\u2502 \u00a0 \u251c\u2500\u2500 bot.conf\n...\n\u2502 \u00a0 \u251c\u2500\u2500 dynamic\n\u2502 \u00a0 \u2514\u2500\u2500 geo.conf\n\u251c\u2500\u2500 lua\n\u2502 \u00a0 \u251c\u2500\u2500 cookie.lua\n\u2502 \u00a0 \u251c\u2500\u2500 log\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 log.lua\n\u2502 \u00a0 \u251c\u2500\u2500 logics\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 include.lua\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 utils.lua\n\u2502 \u00a0 \u2514\u2500\u2500 prom\n\u2502 \u00a0 \u00a0 \u00a0 \u251c\u2500\u2500 stats.lua\n\u2502 \u00a0 \u00a0 \u00a0 \u2514\u2500\u2500 stats_prometheus.lua\n\u251c\u2500\u2500 map.d\n\u2502 \u00a0 \u251c\u2500\u2500 access.conf\n\u2502 \u00a0 \u251c\u2500\u2500 ..\u00a0\n\u2502 \u00a0 \u2514\u2500\u2500 zones.conf\n\u251c\u2500\u2500 nginx.conf\n\u251c\u2500\u2500 robots.txt\n\u251c\u2500\u2500 server.d\n\u2502 \u00a0 \u251c\u2500\u2500 cian.ru\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 cian.ru.conf\n\u2502 \u00a0 \u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2502 \u00a0 \u2514\u2500\u2500 my.cian.ru.conf\n\u251c\u2500\u2500 service.d\n\u2502 \u00a0 \u251c\u2500\u2500 ...\n\u2502 \u00a0 \u2514\u2500\u2500 status.conf\n\u2514\u2500\u2500 upstream.d\n\u00a0\u00a0\u00a0\u00a0\u251c\u2500\u2500 cian-mcs.conf\n\u00a0\u00a0\u00a0\u00a0\u251c\u2500\u2500 ...\n\u00a0\u00a0\u00a0\u00a0\u2514\u2500\u2500 wafserver.conf<\/code><\/pre>\n<p>Jelent\u0151sen javult, de a konfigur\u00e1ci\u00f3k \u00e1tnevez\u00e9se \u00e9s eloszt\u00e1sa sor\u00e1n n\u00e9h\u00e1ny hib\u00e1s kiterjeszt\u00e9s\u0171v\u00e9 v\u00e1lt, \u00e9s nem ker\u00fclt bele az include *.conf direkt\u00edv\u00e1ba. Ennek k\u00f6vetkezm\u00e9nyek\u00e9nt egyes hosztok el\u00e9rhetetlenn\u00e9 v\u00e1ltak, \u00e9s 301-es v\u00e1laszt adtak a f\u0151oldalra. Mivel a v\u00e1laszk\u00f3d nem 5xx\/4xx volt, ezt nem vett\u00e9k \u00e9szre azonnal, csak reggelre. Ezt k\u00f6vet\u0151en elkezdt\u00fck \u00edrni a teszteket az infrastrukt\u00fara komponensek ellen\u0151rz\u00e9s\u00e9re.<\/p>\n<p><b>K\u00f6vetkeztet\u00e9sek:<\/b>\u00a0<\/p>\n<ul>\n<li>Helyesen strukt\u00far\u00e1ld a konfigur\u00e1ci\u00f3kat (nem csak az nginx eset\u00e9ben), \u00e9s gondold \u00e1t a strukt\u00far\u00e1t a projekt korai szakasz\u00e1ban. Ezzel \u00e9rthet\u0151bb\u00e9 teszed \u0151ket a csapat sz\u00e1m\u00e1ra, ami cs\u00f6kkenti a TTM-et.<\/li>\n<li>N\u00e9h\u00e1ny infrastrukt\u00fara komponenshez \u00edrj teszteket. P\u00e9ld\u00e1ul: ellen\u0151rizd, hogy minden kulcsfontoss\u00e1g\u00fa server_name a megfelel\u0151 st\u00e1tuszt adja vissza, + a v\u00e1lasz t\u00f6rzs\u00e9t. El\u00e9g, ha csak p\u00e1r szkripted van, amelyek ellen\u0151rzik a komponens alapfunkci\u00f3it, hogy ne kelljen h\u00e1rom \u00f3ra ut\u00e1n kapkodva felid\u00e9zni, hogy mit kell m\u00e9g ellen\u0151rizni.\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>Harmadik hely \u2014 \u201eHirtelen elfogyott a hely a Cassandr\u00e1n\u201d<\/h4>\n<p>\nAz adatok fokozatosan n\u00f6vekedtek, \u00e9s minden j\u00f3l ment, am\u00edg a Cassandra klaszterben a nagy case space-ek repair-jei elkezdtek megbukni, mert a t\u00f6m\u00f6r\u00edt\u00e9s nem tudott m\u0171k\u00f6dni rajtuk.\u00a0<\/p>\n<p>Egy borong\u00f3s napon a klaszter majdnem t\u00f6kfejj\u00e9 v\u00e1ltozott, m\u00e9gpedig:<\/p>\n<ul>\n<li>a klaszter \u00f6sszesen k\u00f6r\u00fclbel\u00fcl 20%-os helyet hagyott mag\u00e1nak;<\/li>\n<li>teljes n\u00f3dokat nem lehet hozz\u00e1adni, mert a n\u00f3d hozz\u00e1ad\u00e1sa ut\u00e1n nem t\u00f6rt\u00e9nik cleanup a r\u00e9szlegeken a hely hi\u00e1nya miatt;<\/li>\n<li>a teljes\u00edtm\u00e9ny fokozatosan cs\u00f6kken, mivel a t\u00f6m\u00f6r\u00edt\u00e9s nem m\u0171k\u00f6dik;\u00a0<\/li>\n<li>a klaszter v\u00e9sz\u00fczemm\u00f3dban m\u0171k\u00f6dik.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Cian legnagyobb bakijai\" src=\"\/wp-content\/uploads\/2020\/05\/1d036fbc500a49a285fa4b0014e2a70d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA kimenet \u2014 hozz\u00e1adtunk m\u00e9g 5 csom\u00f3pontot cleanup n\u00e9lk\u00fcl, majd fokozatosan elkezdt\u00fck kivonni \u0151ket a klaszterb\u0151l, \u00e9s \u00fajra bevezetni, mint \u00fcres csom\u00f3pontokat, ahol elfogyott a hely. Az elt\u00f6lt\u00f6tt id\u0151 sokkal t\u00f6bb, mint amit szeretn\u00e9nk. Kock\u00e1zat volt a klaszter r\u00e9szleges vagy teljes el\u00e9rhetetlens\u00e9ge.\u00a0<\/p>\n<p><b>K\u00f6vetkeztet\u00e9sek:<\/b><\/p>\n<ul>\n<li>Minden Cassandra szerveren az egyes part\u00edci\u00f3k legfeljebb 60%-\u00e1t szabad kihaszn\u00e1lni.\u00a0<\/li>\n<li>A CPU-t legfeljebb 50%-ig szabad terhelni\u00fck.<\/li>\n<li>Nem szabad elhanyagolni a kapacit\u00e1s-tervez\u00e9st, \u00e9s azt minden komponens eset\u00e9ben meg kell fontolni a saj\u00e1t specifik\u00e1ci\u00f3j\u00e1nak megfelel\u0151en.<\/li>\n<li>Min\u00e9l t\u00f6bb csom\u00f3pont van a klaszterben, ann\u00e1l jobb. Azok a szerverek, amelyek kis mennyis\u00e9g\u0171 adatot t\u00e1rolnak, gyorsabban \u00fajraind\u00edthat\u00f3k, \u00e9s ilyen klasztert k\u00f6nnyebb helyre\u00e1ll\u00edtani.\u00a0<\/li>\n<\/ul>\n<p><\/p>\n<h4>A m\u00e1sodik hely \u2014 \"Elt\u0171ntek az adatok a consul key-value t\u00e1rol\u00f3b\u00f3l\"<\/h4>\n<p>\nA szolg\u00e1ltat\u00e1s-felfedez\u00e9shez mi, ak\u00e1rcsak sokan m\u00e1sok, a consolt haszn\u00e1ljuk. De n\u00e1lunk a key-value p\u00e1rok m\u00e9g a monolit blue-green telep\u00edt\u00e9s\u00e9re is szolg\u00e1lnak. Itt tal\u00e1lhat\u00f3 az akt\u00edv \u00e9s inakt\u00edv upstreamok inform\u00e1ci\u00f3ja, amelyek a telep\u00edt\u00e9s sor\u00e1n felv\u00e1ltj\u00e1k egym\u00e1st. Ehhez \u00edrtunk egy telep\u00edt\u0151 szolg\u00e1ltat\u00e1st, amely k\u00f6lcs\u00f6nhat\u00e1sba l\u00e9pett a KV-vel. Egy bizonyos id\u0151pontban az adatok elt\u0171ntek a KV-b\u0151l. Eml\u00e9k alapj\u00e1n \u00e1ll\u00edtottuk vissza \u0151ket, de sz\u00e1mos hib\u00e1val. Ennek k\u00f6vetkezt\u00e9ben a telep\u00edt\u00e9s sor\u00e1n a terhel\u00e9s egyenl\u0151tlen\u00fcl oszlott meg az upstreamok k\u00f6z\u00f6tt, \u00e9s sz\u00e1mos 502-es hib\u00e1t kaptunk a backendek CPU-terhel\u00e9se miatt. V\u00e9g\u00fcl PostgreSQL-re v\u00e1ltottunk a consul KV-r\u0151l, ahonnan az adatokat m\u00e1r nem olyan egyszer\u0171 elt\u00e1vol\u00edtani.\u00a0\u00a0<\/p>\n<p><b>K\u00f6vetkeztet\u00e9sek:<br \/>\n<\/b><\/p>\n<ul>\n<li>Azok a szolg\u00e1ltat\u00e1sok, amelyek nem ig\u00e9nyelnek semmif\u00e9le hiteles\u00edt\u00e9st, nem tartalmazhatnak kritikus adatokat a webhely m\u0171k\u00f6d\u00e9s\u00e9hez. P\u00e9ld\u00e1ul, ha nincs hiteles\u00edt\u00e9s az ES-ben, akkor a hozz\u00e1f\u00e9r\u00e9st a h\u00e1l\u00f3zati szinten kellene megtiltani mindenhonnan, ahol nem sz\u00fcks\u00e9ges, \u00e9s csak a sz\u00fcks\u00e9ges hozz\u00e1f\u00e9r\u00e9st kellene fenntartani, valamint be kellene \u00e1ll\u00edtani az action.destructive_requires_name: true \u00e9rt\u00e9ket.<\/li>\n<li>Gyakorolj\u00e1k a biztons\u00e1gi m\u00e1solat k\u00e9sz\u00edt\u00e9s\u00e9nek \u00e9s helyre\u00e1ll\u00edt\u00e1s\u00e1nak mechanizmus\u00e1t el\u0151re. P\u00e9ld\u00e1ul k\u00e9sz\u00edtsetek el\u0151re egy scriptet (p\u00e9ld\u00e1ul Pythonban), amely k\u00e9pes biztons\u00e1gi m\u00e1solatot k\u00e9sz\u00edteni \u00e9s helyre\u00e1ll\u00edtani.<\/li>\n<\/ul>\n<p><\/p>\n<h4>Az els\u0151 hely \u2014 \"Kapit\u00e1ny a nyilv\u00e1nval\u00f3\"\u00a0<\/h4>\n<p>\nEgy ponton \u00e9szrevett\u00fck, hogy a terhel\u00e9s egyenl\u0151tlen\u00fcl oszlik el az Nginx upstreamok k\u00f6z\u00f6tt, amikor a h\u00e1tt\u00e9rben 10+ szerver volt. Mivel a round-robin az els\u0151 upstreamt\u00f3l az utols\u00f3ig, sorrendben ir\u00e1ny\u00edtotta a k\u00e9r\u00e9seket, \u00e9s minden Nginx \u00fajrat\u00f6lt\u00e9s ut\u00e1n kezdett el\u00f6lr\u0151l, az els\u0151 upstreamokhoz mindig t\u00f6bb k\u00e9r\u00e9s \u00e9rkezett, mint a t\u00f6bbiekhez. Ennek k\u00f6vetkezt\u00e9ben lassabban m\u0171k\u00f6dtek, \u00e9s szenvedett az eg\u00e9sz webhely. Ez egyre \u00e9szrevehet\u0151bb\u00e9 v\u00e1lt a forgalom n\u00f6veked\u00e9s\u00e9vel. Egyszer\u0171en friss\u00edteni az Nginxet a random funkci\u00f3 beiktat\u00e1s\u00e1hoz nem volt elegend\u0151 \u2014 sok lua k\u00f3dot \u00e1t kellett dolgozni, amely nem m\u0171k\u00f6d\u00f6tt az 1.15-\u00f6s verzi\u00f3n (akkor). \u00cdgy v\u00e9g\u00fcl meg kellett patcheln\u00fcnk az Nginx 1.14.2-t, hogy t\u00e1mogassa a random-ot. Ez megoldotta a probl\u00e9m\u00e1t. Ez a hiba a \"nem nyilv\u00e1nval\u00f3 kapit\u00e1ny\" c\u00edm\u00e9t nyeri.<\/p>\n<p><b>K\u00f6vetkeztet\u00e9sek:<\/b><\/p>\n<p>Nagyon \u00e9rdekes \u00e9s izgalmas volt felfedezni ezt a hib\u00e1t).\u00a0<\/p>\n<ul>\n<li>\u00c1ll\u00edtsa be a monitoroz\u00e1st \u00fagy, hogy seg\u00edtse gyorsan megtal\u00e1lni az ilyen ingadoz\u00e1sokat. P\u00e9ld\u00e1ul haszn\u00e1lhatja az ELK-t, hogy nyomon k\u00f6vesse az RPS-t minden h\u00e1tt\u00e9rben l\u00e9v\u0151 upstreamhoz, figyelemmel k\u00eds\u00e9rve azok v\u00e1laszidej\u00e9t az Nginx szempontj\u00e1b\u00f3l. Ebben az esetben ez seg\u00edtett felfedni a probl\u00e9m\u00e1t.\u00a0<\/li>\n<\/ul>\n<p>\nA nagyobb r\u00e9sze a hib\u00e1knak elker\u00fclhet\u0151 lett volna, ha alaposabban megk\u00f6zel\u00edtj\u00fck, amit csin\u00e1lunk. Mindig eml\u00e9kezn\u00fcnk kell Murphy t\u00f6rv\u00e9ny\u00e9re:\u00a0<i>Ami rosszul siker\u00fclhet, az rosszul is fog siker\u00fclni, <\/i>\u00e9s az \u00f6sszes komponenst ennek megfelel\u0151en kell \u00e9p\u00edteni.\u00a0<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/cian\/blog\/499542\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430!\u00a0 \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d. \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043c\u043e\u0438\u0445 \u043e\u0431\u044f\u0437\u0430\u043d\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439 \u043d\u0430 \u043f\u0440\u043e\u0434\u0435, \u0434\u043e \u043d\u0443\u043b\u044f. \u0422\u043e, \u043e \u0447\u0435\u043c \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c \u0434\u0430\u043b\u0435\u0435, \u043f\u0440\u0438\u043d\u0435\u0441\u043b\u043e \u043d\u0430\u043c \u043c\u043d\u043e\u0433\u043e \u0431\u043e\u043b\u0438, \u0438 \u0446\u0435\u043b\u044c \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u043d\u0435 \u0434\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u043c \u043b\u044e\u0434\u044f\u043c \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043d\u0430\u0448\u0438\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438\u043b\u0438 \u0445\u043e\u0442\u044f \u0431\u044b \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432\u043b\u0438\u044f\u043d\u0438\u0435.\u00a0 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80032,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80031","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.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.\" \/>\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\/hu\/blog\/administrirovanie\/top-fakapov-czian\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\u0422\u043e\u043f \u0444\u0430\u043a\u0430\u043f\u043e\u0432 \u0426\u0438\u0430\u043d | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/top-fakapov-czian\" \/>\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=\"2020-05-02T11:42:49+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-02T11:42:49+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\udd47Cian legnagyobb bakijai | ProHoster","description":"Mindenkinek j\u00f3 napot! Nikita vagyok, a Cian m\u00e9rn\u00f6ki csapat\u00e1nak vezet\u0151je.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/top-fakapov-czian","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\u0422\u043e\u043f \u0444\u0430\u043a\u0430\u043f\u043e\u0432 \u0426\u0438\u0430\u043d | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u0434\u043e\u0431\u0440\u0430! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041d\u0438\u043a\u0438\u0442\u0430, \u044f \u0442\u0438\u043c\u043b\u0438\u0434 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0426\u0438\u0430\u043d.","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/top-fakapov-czian","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":"2020-05-02T11:42:49+00:00","article:modified_time":"2020-05-02T11:42:49+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80031","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:47:44","updated":"2026-02-09 16:50:24","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/80031","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=80031"}],"version-history":[{"count":2,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/80031\/revisions"}],"predecessor-version":[{"id":158728,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/80031\/revisions\/158728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/80032"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=80031"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=80031"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=80031"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}