{"id":189,"date":"2026-05-15T18:38:47","date_gmt":"2026-05-15T16:38:47","guid":{"rendered":"https:\/\/gorankostic.com\/blog\/?p=189"},"modified":"2026-05-15T18:38:47","modified_gmt":"2026-05-15T16:38:47","slug":"production-debugging","status":"publish","type":"post","link":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/","title":{"rendered":"Production Debugging"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Production Debugging<\/h2>\n\n\n\n<p><strong>Excerpt:<\/strong> <br>Production debugging je proces brzog i preciznog pronala\u017eenja problema u aktivnom sistemu, bez ugro\u017eavanja korisnika, podataka i stabilnosti servera. U produkciji je va\u017eno re\u0161avati uzrok, a ne samo privremeno ukloniti posledicu.<\/p>\n\n\n\n<p><strong>Blog \u010dlanak:<\/strong><\/p>\n\n\n\n<p>Production debugging se razlikuje od rada u lokalnom ili test okru\u017eenju. Kada problem postoji na \u017eivom sajtu ili aplikaciji, svaka intervencija mora biti pa\u017eljiva, jer direktno uti\u010de na korisnike, prodaju, dostupnost servisa i poslovne procese.<\/p>\n\n\n\n<p>Prvi korak je razumevanje simptoma. Nije isto kada sajt potpuno ne radi, kada je spor, kada samo checkout prijavljuje gre\u0161ku, kada API ne vra\u0107a odgovor ili kada se problem javlja samo odre\u0111enim korisnicima. Precizno definisan simptom skra\u0107uje vreme potrebno za dijagnostiku.<\/p>\n\n\n\n<p>Logovi su osnovni alat u produkcionom debuggingu. Web server logovi, PHP error log, MySQL log, aplikacioni logovi, Docker logovi i sistemski journal \u010desto pokazuju ta\u010dan trenutak i uzrok problema. Bez logova, re\u0161avanje problema brzo postaje naga\u0111anje.<\/p>\n\n\n\n<p>Va\u017eno je proveriti i stanje servera u trenutku problema. CPU, RAM, disk, load average, broj procesa i mre\u017ene konekcije mogu pokazati da li je problem u aplikaciji, bazi, serveru ili spolja\u0161njem optere\u0107enju. Nekada gre\u0161ka u aplikaciji nije pravi uzrok, ve\u0107 posledica zagu\u0161enog sistema.<\/p>\n\n\n\n<p>Kod web aplikacija, problem \u010desto nastaje na granici izme\u0111u vi\u0161e slojeva. Reverse proxy, SSL, PHP-FPM, baza, cache, CDN, firewall i aplikacioni kod moraju raditi uskla\u0111eno. Production debugging zato zahteva razumevanje celog puta zahteva, od browsera do servera i nazad.<\/p>\n\n\n\n<p>Posebno je va\u017eno ne praviti nagle promene bez jasnog razloga. Restart servisa mo\u017ee privremeno ukloniti problem, ali ako se ne sa\u010duvaju logovi i ne razume uzrok, isti problem \u0107e se vratiti. Dobar debugging bele\u017ei \u0161ta je prona\u0111eno, \u0161ta je promenjeno i kakav je rezultat.<\/p>\n\n\n\n<p>Kod WordPress, WooCommerce ili Joomla sajtova, pluginovi, teme, PHP verzije i baza \u010desto u\u010destvuju u problemu zajedno. Jedan update mo\u017ee pokrenuti gre\u0161ku koja se vidi tek u kombinaciji sa odre\u0111enim PHP pode\u0161avanjem, cache sistemom ili starom tabelom u bazi.<\/p>\n\n\n\n<p>Kod Node.js i Docker aplikacija, debugging \u010desto uklju\u010duje proveru procesa, portova, environment varijabli, logova kontejnera i reverse proxy konfiguracije. Aplikacija mo\u017ee raditi interno, ali biti nedostupna spolja zbog pogre\u0161nog porta, mre\u017ee ili proxy pravila.<\/p>\n\n\n\n<p>Sigurnost je tako\u0111e deo produkcionog debugginga. Neobi\u010dno optere\u0107enje, veliki broj zahteva, 403\/404 eksplozije, neuspe\u0161ni login poku\u0161aji ili \u010dudni POST zahtevi mogu ukazivati na botove, skeniranje ili poku\u0161aj napada. Zato se tehni\u010dki problem u produkciji uvek posmatra i iz bezbednosnog ugla.<\/p>\n\n\n\n<p>Production debugging je jedna od najva\u017enijih ve\u0161tina u server administraciji. Cilj nije samo da se sistem ponovo pokrene, ve\u0107 da se prona\u0111e pravi uzrok, smanji rizik od ponavljanja i obezbedi stabilan rad produkcionog okru\u017eenja.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Production debugging je proces brzog i preciznog pronala\u017eenja problema u aktivnom sistemu, bez ugro\u017eavanja korisnika, podataka i stabilnosti servera. U produkciji je va\u017eno re\u0161avati uzrok, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,9],"tags":[],"class_list":["post-189","post","type-post","status-publish","format-standard","hentry","category-infrastructure","category-server-administration"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Production Debugging - Goran Kostic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Production Debugging\" \/>\n<meta property=\"og:description\" content=\"Production debugging je proces brzog i preciznog pronala\u017eenja problema u aktivnom sistemu, bez ugro\u017eavanja korisnika, podataka i stabilnosti servera. U produkciji je va\u017eno re\u0161avati uzrok, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/\" \/>\n<meta property=\"og:site_name\" content=\"Goran Kostic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-15T16:38:47+00:00\" \/>\n<meta name=\"author\" content=\"WebixDesign\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WebixDesign\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/\"},\"author\":{\"name\":\"WebixDesign\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"headline\":\"Production Debugging\",\"datePublished\":\"2026-05-15T16:38:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/\"},\"wordCount\":471,\"commentCount\":0,\"articleSection\":[\"INFRASTRUCTURE\",\"Server Administration\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/\",\"name\":\"Production Debugging - Goran Kostic Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-15T16:38:47+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/production-debugging\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Production Debugging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\",\"name\":\"Goran Kostic Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\",\"name\":\"WebixDesign\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"caption\":\"WebixDesign\"},\"sameAs\":[\"https:\\\/\\\/gorankostic.com\\\/blog\"],\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/author\\\/webixdesign\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Production Debugging - Goran Kostic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/","og_locale":"en_US","og_type":"article","og_title":"Production Debugging","og_description":"Production debugging je proces brzog i preciznog pronala\u017eenja problema u aktivnom sistemu, bez ugro\u017eavanja korisnika, podataka i stabilnosti servera. U produkciji je va\u017eno re\u0161avati uzrok, [&hellip;]","og_url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/","og_site_name":"Goran Kostic Blog","article_published_time":"2026-05-15T16:38:47+00:00","author":"WebixDesign","twitter_card":"summary_large_image","twitter_misc":{"Written by":"WebixDesign","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/#article","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/"},"author":{"name":"WebixDesign","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"headline":"Production Debugging","datePublished":"2026-05-15T16:38:47+00:00","mainEntityOfPage":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/"},"wordCount":471,"commentCount":0,"articleSection":["INFRASTRUCTURE","Server Administration"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/","url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/","name":"Production Debugging - Goran Kostic Blog","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/#website"},"datePublished":"2026-05-15T16:38:47+00:00","author":{"@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"breadcrumb":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/production-debugging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gorankostic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Production Debugging"}]},{"@type":"WebSite","@id":"https:\/\/gorankostic.com\/blog\/#website","url":"https:\/\/gorankostic.com\/blog\/","name":"Goran Kostic Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gorankostic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8","name":"WebixDesign","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","caption":"WebixDesign"},"sameAs":["https:\/\/gorankostic.com\/blog"],"url":"https:\/\/gorankostic.com\/blog\/author\/webixdesign\/"}]}},"_links":{"self":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/comments?post=189"}],"version-history":[{"count":1,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/189\/revisions"}],"predecessor-version":[{"id":190,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/189\/revisions\/190"}],"wp:attachment":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/media?parent=189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/categories?post=189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/tags?post=189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}