{"id":1370,"date":"2025-11-05T20:59:41","date_gmt":"2025-11-05T17:59:41","guid":{"rendered":"https:\/\/www.dchost.com\/blog\/o-gece-cpuya-ne-oldu-giris\/"},"modified":"2025-11-05T23:35:38","modified_gmt":"2025-11-05T20:35:38","slug":"vps-izleme-ve-uyari-nasil-kurulur-prometheus-grafana-ve-node-exporter-ile-sessiz-alarmlari-konusturmak","status":"publish","type":"post","link":"https:\/\/www.dchost.com\/blog\/vps-izleme-ve-uyari-nasil-kurulur-prometheus-grafana-ve-node-exporter-ile-sessiz-alarmlari-konusturmak\/","title":{"rendered":"VPS \u0130zleme ve Uyar\u0131 Nas\u0131l Kurulur? Prometheus, Grafana ve Node Exporter ile Sessiz Alarmlar\u0131 Konu\u015fturmak"},"content":{"rendered":"<div class=\"dchost-blog-content-wrapper\"><p>Hi\u00e7 ans\u0131z\u0131n sitenin yava\u015flad\u0131\u011f\u0131n\u0131 fark edip, &#8216;Acaba benim tarafta m\u0131 bir \u015fey var?&#8217; diye kurcalad\u0131\u011f\u0131n\u0131z oldu mu? Benim oldu. Hem de \u00f6yle bir gece ki, taray\u0131c\u0131da d\u00f6nen o k\u00fc\u00e7\u00fck y\u00fckleniyor simgesi bana dakikalar\u0131 saat gibi hissettirdi. Sunucuya SSH ile ba\u011fland\u0131m, birka\u00e7 komut, birka\u00e7 tahmin, sonra sessizlik&#8230; O an \u015funu d\u00fc\u015f\u00fcnd\u00fcm: Bu i\u015fleri \u015fansa b\u0131rakmak yerine, olup biteni <strong>anl\u0131k izleyen<\/strong> ve do\u011fru zamanda, do\u011fru ki\u015fiye haber veren bir sistem kurmak \u015fart.<\/p>\n<p>Bug\u00fcn konu\u015faca\u011f\u0131m\u0131z konu tam da bu: <a href=\"https:\/\/www.dchost.com\/tr\/vps\">VPS<\/a> \u00fczerinde <strong>CPU<\/strong>, <strong>RAM<\/strong>, <strong>disk I\/O<\/strong> ve <strong>uptime<\/strong> metri\u011fini, <strong>Prometheus<\/strong>, <strong>Grafana<\/strong> ve <strong>Node Exporter<\/strong> \u00fc\u00e7l\u00fcs\u00fcyle nas\u0131l toplay\u0131p, g\u00f6rselle\u015ftirip, gerekti\u011finde <strong>alarm<\/strong> \u00fcretiriz? Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: CPU bir s\u00fcre normal, sonra k\u0131sa bir s\u0131\u00e7rama ve ard\u0131ndan uzun bir t\u0131rman\u0131\u015f. Hangisi \u00f6nemli? Hangisinde uyan\u0131p m\u00fcdahale etmelisiniz? \u0130\u015fte bu yaz\u0131da, bunu ay\u0131rt ettirecek pratik kurallar\u0131, kurulum ad\u0131mlar\u0131n\u0131 ve g\u00fcnl\u00fck hayatta i\u015fleyen k\u00fc\u00e7\u00fck p\u00fcf noktalar\u0131n\u0131, samimi bir dille, ad\u0131m ad\u0131m anlataca\u011f\u0131m.<\/p>\n<p>Yaz\u0131n\u0131n sonunda, kurabilece\u011finiz basit ama g\u00fc\u00e7l\u00fc bir izleme mimariniz olacak. \u00dcstelik sadece metrik toplamakla kalmayaca\u011f\u0131z; g\u00fcr\u00fclt\u00fc yapan gereksiz uyar\u0131lar\u0131 da eleyip ger\u00e7ekten \u00f6nemli anlarda haber veren, yani <strong>sessiz ama isabetli<\/strong> bir sistem kuraca\u011f\u0131z. Haz\u0131rsan\u0131z ba\u015flayal\u0131m.<\/p>\n<div id=\"toc_container\" class=\"toc_transparent no_bullets\"><p class=\"toc_title\">\u0130&ccedil;indekiler<\/p><ul class=\"toc_list\"><li><a href=\"#Neden_Izleme_Neden_Simdi\"><span class=\"toc_number toc_depth_1\">1<\/span> Neden \u0130zleme, Neden \u015eimdi?<\/a><\/li><li><a href=\"#Mimarinin_Kafadaki_Resmi_Kim_Ne_Yapiyor\"><span class=\"toc_number toc_depth_1\">2<\/span> Mimarinin Kafadaki Resmi: Kim Ne Yap\u0131yor?<\/a><\/li><li><a href=\"#Node_Exporter_Kurulumu_Sunucunun_Nabzini_Tutalim\"><span class=\"toc_number toc_depth_1\">3<\/span> Node Exporter Kurulumu: Sunucunun Nabz\u0131n\u0131 Tutal\u0131m<\/a><ul><li><a href=\"#Hafif_Sessiz_Guvenilir\"><span class=\"toc_number toc_depth_2\">3.1<\/span> Hafif, Sessiz, G\u00fcvenilir<\/a><\/li><li><a href=\"#Kurulum_Adimlari_Ubuntu_ornegi\"><span class=\"toc_number toc_depth_2\">3.2<\/span> Kurulum Ad\u0131mlar\u0131 (Ubuntu \u00f6rne\u011fi)<\/a><\/li><\/ul><\/li><li><a href=\"#Prometheus_Veriyi_Toplayan_ve_Alarmi_Tetikleyen_Beyin\"><span class=\"toc_number toc_depth_1\">4<\/span> Prometheus: Veriyi Toplayan ve Alarm\u0131 Tetikleyen Beyin<\/a><ul><li><a href=\"#Kurulum_ve_Temel_Ayarlar\"><span class=\"toc_number toc_depth_2\">4.1<\/span> Kurulum ve Temel Ayarlar<\/a><\/li><li><a href=\"#Alertmanager_ile_Bildirim\"><span class=\"toc_number toc_depth_2\">4.2<\/span> Alertmanager ile Bildirim<\/a><\/li><\/ul><\/li><li><a href=\"#Alarm_Kurallari_Gurultu_Degil_Anlamli_Sinyal\"><span class=\"toc_number toc_depth_1\">5<\/span> Alarm Kurallar\u0131: G\u00fcr\u00fclt\u00fc De\u011fil, Anlaml\u0131 Sinyal<\/a><ul><li><a href=\"#CPU_Kisa_Sicrama_mi_Kalici_Baski_mi\"><span class=\"toc_number toc_depth_2\">5.1<\/span> CPU: K\u0131sa S\u0131\u00e7rama m\u0131, Kal\u0131c\u0131 Bask\u0131 m\u0131?<\/a><\/li><li><a href=\"#RAM_Tukenmeye_Yakin_Sinyali\"><span class=\"toc_number toc_depth_2\">5.2<\/span> RAM: T\u00fckenmeye Yak\u0131n Sinyali<\/a><\/li><li><a href=\"#Disk_Dolu_mu_Yorgun_mu\"><span class=\"toc_number toc_depth_2\">5.3<\/span> Disk: Dolu mu, Yorgun mu?<\/a><\/li><li><a href=\"#Uptime_Ayaga_Kalk_Sunucu_Dusmus\"><span class=\"toc_number toc_depth_2\">5.4<\/span> Uptime: Aya\u011fa Kalk, Sunucu D\u00fc\u015fm\u00fc\u015f!<\/a><\/li><\/ul><\/li><li><a href=\"#Grafana_Veriyi_Hikayeye_Donusturmek\"><span class=\"toc_number toc_depth_1\">6<\/span> Grafana: Veriyi Hikayeye D\u00f6n\u00fc\u015ft\u00fcrmek<\/a><ul><li><a href=\"#Pano_Mantigi_Once_Duygu_Sonra_Detay\"><span class=\"toc_number toc_depth_2\">6.1<\/span> Pano Mant\u0131\u011f\u0131: \u00d6nce Duygu, Sonra Detay<\/a><\/li><li><a href=\"#Basit_Sorgularla_Baslayin\"><span class=\"toc_number toc_depth_2\">6.2<\/span> Basit Sorgularla Ba\u015flay\u0131n<\/a><\/li><\/ul><\/li><li><a href=\"#Gurultuyu_Azaltmak_Iyi_Alarm_Stratejisinin_Sirlari\"><span class=\"toc_number toc_depth_1\">7<\/span> G\u00fcr\u00fclt\u00fcy\u00fc Azaltmak: \u0130yi Alarm Stratejisinin S\u0131rlar\u0131<\/a><ul><li><a href=\"#8216for8217_Suresi_ve_Histerezis\"><span class=\"toc_number toc_depth_2\">7.1<\/span> &#8216;for&#8217; S\u00fcresi ve Histerezis<\/a><\/li><li><a href=\"#Gruplama_ve_Tekrarlama_Araliklari\"><span class=\"toc_number toc_depth_2\">7.2<\/span> Gruplama ve Tekrarlama Aral\u0131klar\u0131<\/a><\/li><li><a href=\"#Bakim_Zamanlari_ve_Sessizlestirme\"><span class=\"toc_number toc_depth_2\">7.3<\/span> Bak\u0131m Zamanlar\u0131 ve Sessizle\u015ftirme<\/a><\/li><li><a href=\"#Dogru_Esikler_Isinize_Gore_Ayarlayin\"><span class=\"toc_number toc_depth_2\">7.4<\/span> Do\u011fru E\u015fikler: \u0130\u015finize G\u00f6re Ayarlay\u0131n<\/a><\/li><\/ul><\/li><li><a href=\"#Guvenlik_Metrikler_Herkese_Acik_Olmasin\"><span class=\"toc_number toc_depth_1\">8<\/span> G\u00fcvenlik: Metrikler Herkese A\u00e7\u0131k Olmas\u0131n<\/a><\/li><li><a href=\"#Docker_Compose_ile_Hizli_Kurulum_Istege_Bagli\"><span class=\"toc_number toc_depth_1\">9<\/span> Docker Compose ile H\u0131zl\u0131 Kurulum (\u0130ste\u011fe Ba\u011fl\u0131)<\/a><\/li><li><a href=\"#Gercek_Hayattan_Kucuk_Dersler\"><span class=\"toc_number toc_depth_1\">10<\/span> Ger\u00e7ek Hayattan K\u00fc\u00e7\u00fck Dersler<\/a><\/li><li><a href=\"#Performansi_Destekleyen_Yan_Notlar\"><span class=\"toc_number toc_depth_1\">11<\/span> Performans\u0131 Destekleyen Yan Notlar<\/a><\/li><li><a href=\"#Baseline_ve_Kapasite_Ne_Zaman_Olceklemeli\"><span class=\"toc_number toc_depth_1\">12<\/span> Baseline ve Kapasite: Ne Zaman \u00d6l\u00e7eklemeli?<\/a><\/li><li><a href=\"#Kapanis_Sessizligi_Anlamli_Kilmak\"><span class=\"toc_number toc_depth_1\">13<\/span> Kapan\u0131\u015f: Sessizli\u011fi Anlaml\u0131 K\u0131lmak<\/a><\/li><\/ul><\/div>\n<h2 id='section-2'><span id=\"Neden_Izleme_Neden_Simdi\">Neden \u0130zleme, Neden \u015eimdi?<\/span><\/h2>\n<p>Bir VPS&#8217;yi y\u00f6netirken en b\u00fcy\u00fck yan\u0131lg\u0131, i\u015fler yolunda gitti\u011finde her \u015feyin yolunda oldu\u011fu inanc\u0131. Oysa altyap\u0131 problemleri genelde sessizce ba\u015flar: RAM yava\u015f yava\u015f dolar, disk I\/O arada bir s\u0131\u00e7rar, CPU belirli aral\u0131klarla tavan yapar, uptime grafi\u011finiz bir anl\u0131\u011f\u0131na d\u00fc\u015fer ve siz o s\u0131rada kahve koymak i\u00e7in yerinizden kalkm\u0131\u015fs\u0131n\u0131zd\u0131r. Kula\u011fa tan\u0131d\u0131k geldi mi?<\/p>\n<p>\u0130zleme sistemi kurmak asl\u0131nda k\u00fc\u00e7\u00fck bir al\u0131\u015fkanl\u0131k meselesi. Prometheus metrikleri \u00e7eker, Grafana hikayeyi anlat\u0131r, Node Exporter da sunucunun nabz\u0131n\u0131 tutar. Benim i\u00e7in bu \u00fc\u00e7l\u00fc, &#8216;anlaml\u0131 sessizlik&#8217; sa\u011fl\u0131yor. Yani her an bildirim ya\u011fmuru yok, ama \u00f6nemli bir \u015fey oldu\u011funda bipleyen bir dost gibi. Performans d\u00fc\u015fmeden \u00f6nce gelen k\u00fc\u00e7\u00fck bir uyar\u0131, bazen bir gece uykusunu, bazen bir kampanya sat\u0131\u015f\u0131n\u0131 kurtar\u0131yor.<\/p>\n<p>Bir de \u015funu fark ettim: \u0130zleme kurmak sadece sorun oldu\u011funda de\u011fil, kapasite planlarken de yard\u0131mc\u0131. Mesela yo\u011fun kampanya g\u00fcnlerinde CPU ve RAM nas\u0131l davran\u0131yor, disk hangi saatlerde yoruluyor, hangi endpoint daha fazla y\u00fck yarat\u0131yor? Bu sorular\u0131n cevab\u0131 g\u00f6z\u00fcn\u00fcz\u00fcn \u00f6n\u00fcnde olunca karar vermek kolayla\u015f\u0131yor.<\/p>\n<h2 id='section-3'><span id=\"Mimarinin_Kafadaki_Resmi_Kim_Ne_Yapiyor\">Mimarinin Kafadaki Resmi: Kim Ne Yap\u0131yor?<\/span><\/h2>\n<p>Mesela \u015f\u00f6yle d\u00fc\u015f\u00fcn\u00fcn: Mutfakta herkesin bir g\u00f6revi var. Node Exporter, f\u0131r\u0131n\u0131n \u0131s\u0131s\u0131n\u0131, oca\u011f\u0131n alevini, dolab\u0131n i\u00e7indeki yiyecek say\u0131s\u0131n\u0131 anl\u0131k not alan sessiz bir yard\u0131mc\u0131. Prometheus, bu notlar\u0131 d\u00fczenli aral\u0131klarla mutfaktan al\u0131p defterine i\u015fliyor. Grafana ise duvarda as\u0131l\u0131 panoda bu verileri renkli grafiklerle bize g\u00f6steriyor. Alarmlar m\u0131? Onlar da evin zili gibi; gerekti\u011finde \u00e7al\u0131yor.<\/p>\n<p>Biraz daha teknik ama sade haliyle mimari \u015f\u00f6yle:<\/p>\n<p>&#8211; Node Exporter: VPS \u00fczerinde \u00e7al\u0131\u015f\u0131r, sistem metriklerini sunar (CPU, RAM, disk, network, uptime). Varsay\u0131lan port 9100.<\/p>\n<p>&#8211; Prometheus: Bir sunucuda (ayn\u0131 VPS veya ayr\u0131) \u00e7al\u0131\u015f\u0131r, Node Exporter&#8217;dan metrikleri <strong>\u00e7ekerek<\/strong> kaydeder. Alarmlar\u0131 bu k\u0131s\u0131m tetikler.<\/p>\n<p>&#8211; Grafana: Prometheus&#8217;a ba\u011flan\u0131r, panolar olu\u015fturur. Metrikleri okunur hale getirir.<\/p>\n<p>&#8211; Alertmanager: Prometheus&#8217;tan gelen uyar\u0131lar\u0131 e-posta, Slack ya da webhook gibi kanallara g\u00f6nderir. Sessizlik ve bak\u0131m zamanlar\u0131n\u0131 y\u00f6netmek i\u00e7in birebirdir.<\/p>\n<p>\u0130htiyaca g\u00f6re Blackbox Exporter gibi ekler de kullan\u0131labilir. \u00d6rne\u011fin HTTP ping ile d\u0131\u015far\u0131dan uptime kontrol\u00fc yapmak istiyorsan\u0131z mant\u0131kl\u0131. Ama ilk ad\u0131mda \u015fart de\u011fil; Node Exporter ve Prometheus ile sunucunun nabz\u0131n\u0131 tutmak \u00e7o\u011fu senaryo i\u00e7in yeterli ba\u015flang\u0131\u00e7.<\/p>\n<h2 id='section-4'><span id=\"Node_Exporter_Kurulumu_Sunucunun_Nabzini_Tutalim\">Node Exporter Kurulumu: Sunucunun Nabz\u0131n\u0131 Tutal\u0131m<\/span><\/h2>\n<h3><span id=\"Hafif_Sessiz_Guvenilir\">Hafif, Sessiz, G\u00fcvenilir<\/span><\/h3>\n<p>Node Exporter ger\u00e7ekten hafif. Kurunca unutabilirsiniz. Temel metrikleri toplar: CPU kullan\u0131m y\u00fczdesi gibi kaba de\u011ferlerden ziyade, \u00e7ekirdek ba\u015f\u0131na zaman, load average, memory available, disk okuma-yazma h\u0131zlar\u0131, iowait gibi detaylar\u0131 sunar. Biz alarmlar\u0131 bu detaylar\u0131n <strong>yorumlanm\u0131\u015f<\/strong> haline kuraca\u011f\u0131z.<\/p>\n<h3><span id=\"Kurulum_Adimlari_Ubuntu_ornegi\">Kurulum Ad\u0131mlar\u0131 (Ubuntu \u00f6rne\u011fi)<\/span><\/h3>\n<p>A\u015fa\u011f\u0131daki ad\u0131mlar root veya sudo ile ilerler. Port 9100&#8217;\u00fcn firewall \u00fczerinden eri\u015filebilir oldu\u011fundan emin olun ama sadece Prometheus&#8217;un eri\u015fti\u011fi a\u011flarla s\u0131n\u0131rlay\u0131n.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># Node Exporter indir ve \u00e7al\u0131\u015ft\u0131r (servis olarak)\r\nuseradd --no-create-home --shell \/usr\/sbin\/nologin nodeexp\r\ncd \/tmp\r\nVER=1.8.1\r\ncurl -LO https:\/\/github.com\/prometheus\/node_exporter\/releases\/download\/v$VER\/node_exporter-$VER.linux-amd64.tar.gz\r\ntar xvf node_exporter-$VER.linux-amd64.tar.gz\r\ncp node_exporter-$VER.linux-amd64\/node_exporter \/usr\/local\/bin\/\r\nchown nodeexp:nodeexp \/usr\/local\/bin\/node_exporter\r\n\r\ncat &gt; \/etc\/systemd\/system\/node_exporter.service &lt;&lt; 'EOF'\r\n[Unit]\r\nDescription=Node Exporter\r\nWants=network-online.target\r\nAfter=network-online.target\r\n\r\n[Service]\r\nUser=nodeexp\r\nGroup=nodeexp\r\nType=simple\r\nExecStart=\/usr\/local\/bin\/node_exporter --collector.filesystem.ignored-mount-points='^\/(sys|proc|dev|run|var\/lib\/docker\/.+)($|\/)'\r\n\r\n[Install]\r\nWantedBy=multi-user.target\r\nEOF\r\n\r\nsystemctl daemon-reload\r\nsystemctl enable --now node_exporter\r\n<\/code><\/pre>\n<p>Kurulumdan sonra metrikleri kontrol etmek i\u00e7in taray\u0131c\u0131 veya curl ile \u015funu deneyin: http:\/\/sunucu-ip:9100\/metrics. G\u00fcvenlik a\u00e7\u0131s\u0131ndan bunu herkese a\u00e7\u0131k b\u0131rakmak yerine, Prometheus sunucusuna \u00f6zel eri\u015fim sa\u011flay\u0131n. Network politikas\u0131 burada en iyi dostunuz.<\/p>\n<h2 id='section-5'><span id=\"Prometheus_Veriyi_Toplayan_ve_Alarmi_Tetikleyen_Beyin\">Prometheus: Veriyi Toplayan ve Alarm\u0131 Tetikleyen Beyin<\/span><\/h2>\n<h3><span id=\"Kurulum_ve_Temel_Ayarlar\">Kurulum ve Temel Ayarlar<\/span><\/h3>\n<p>Prometheus&#8217;u tek bir binary ile veya paket y\u00f6neticisi, Docker ya da container orchestrator \u00fczerinden kurabilirsiniz. Basit bir dosya yap\u0131s\u0131 ile ba\u015flamak yeterli. \u00d6rnek konfig\u00fcrasyon:<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># \/etc\/prometheus\/prometheus.yml\r\nglobal:\r\n  scrape_interval: 15s\r\n  evaluation_interval: 15s\r\n\r\nscrape_configs:\r\n  - job_name: 'node'\r\n    static_configs:\r\n      - targets: ['10.0.0.10:9100', '10.0.0.11:9100']  # VPS'leriniz\r\n\r\nrule_files:\r\n  - 'rules\/*.yml'\r\n<\/code><\/pre>\n<p>Depolama i\u00e7in yeriniz olsa bile, elde edece\u011finiz i\u015f de\u011feri ilk g\u00fcnlerde grafikleri okumak ve alarmlar\u0131 ayarlamak olacakt\u0131r. Retention s\u00fcresini \u00e7ok uzun tutmak yerine, \u00f6nce <strong>kaliteli kural<\/strong> yazmaya odaklan\u0131n. Prometheus d\u00fcnyas\u0131na yeniyseniz, resmi dok\u00fcmana g\u00f6z atmak iyi gelir: <a href=\"https:\/\/prometheus.io\/docs\/introduction\/overview\/\" rel=\"nofollow noopener\" target=\"_blank\">Prometheus genel bak\u0131\u015f ve \u00e7al\u0131\u015fma mant\u0131\u011f\u0131<\/a>.<\/p>\n<h3><span id=\"Alertmanager_ile_Bildirim\">Alertmanager ile Bildirim<\/span><\/h3>\n<p>Uyar\u0131lar\u0131 e-posta ya da Slack&#8217;e g\u00f6ndermek i\u00e7in Alertmanager kurman\u0131z gerekir. Prometheus, kurallara g\u00f6re alarm\u0131 tetikler ve Alertmanager&#8217;e yollar; oradan da size bildirim gelir. K\u00fc\u00e7\u00fck ama etkili bir yap\u0131.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># \/etc\/alertmanager\/alertmanager.yml\r\nroute:\r\n  receiver: 'mail'\r\n  group_by: ['alertname', 'instance']\r\n  group_wait: 30s\r\n  group_interval: 5m\r\n  repeat_interval: 2h\r\n\r\nreceivers:\r\n  - name: 'mail'\r\n    email_configs:\r\n      - to: ops@ornek.com\r\n        from: izleme@ornek.com\r\n        smarthost: smtp.ornek.com:587\r\n        auth_username: izleme@ornek.com\r\n        auth_identity: izleme@ornek.com\r\n        auth_password: 'gizli-sifre'\r\n        require_tls: true\r\n<\/code><\/pre>\n<p>Grafana taraf\u0131nda da alarmlar olu\u015fturabilirsiniz, ama temel sistemsel metriklerde Prometheus + Alertmanager ikilisi genellikle daha esnek. Panolar i\u00e7inse Grafana \u015fahane.<\/p>\n<h2 id='section-6'><span id=\"Alarm_Kurallari_Gurultu_Degil_Anlamli_Sinyal\">Alarm Kurallar\u0131: G\u00fcr\u00fclt\u00fc De\u011fil, Anlaml\u0131 Sinyal<\/span><\/h2>\n<p>\u0130yi bir alarm kural\u0131, ekran\u0131 k\u0131rm\u0131z\u0131ya boyamak i\u00e7in de\u011fil, sizi do\u011fru zamanda aya\u011fa kald\u0131rmak i\u00e7in vard\u0131r. \u015eimdi CPU, RAM, disk I\/O ve uptime i\u00e7in yal\u0131n ama etkili \u00f6rnek kurallar yazal\u0131m. Bunlar\u0131 &#8216;rules&#8217; klas\u00f6r\u00fcnde ayr\u0131 dosyalarda tutabilirsiniz.<\/p>\n<h3><span id=\"CPU_Kisa_Sicrama_mi_Kalici_Baski_mi\">CPU: K\u0131sa S\u0131\u00e7rama m\u0131, Kal\u0131c\u0131 Bask\u0131 m\u0131?<\/span><\/h3>\n<p>K\u0131sa s\u00fcreli CPU tavanlar\u0131 \u00e7o\u011fu zaman panik sebebi de\u011fildir. As\u0131l dikkat edilmesi gereken, belirli bir s\u00fcre y\u00fcksek kalmas\u0131. O y\u00fczden &#8216;for&#8217; s\u00fcresi kullan\u0131r\u0131z.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># rules\/cpu.yml\r\ngroups:\r\n- name: cpu-alerts\r\n  rules:\r\n  - alert: CPUHighSustained\r\n    expr: avg by (instance) (rate(node_cpu_seconds_total{mode!='idle'}[5m])) &gt; 0.85\r\n    for: 10m\r\n    labels:\r\n      severity: warning\r\n    annotations:\r\n      summary: 'CPU uzun s\u00fcre y\u00fcksek ({{ $labels.instance }})'\r\n      description: 'Son 10 dakikada CPU kullan\u0131m\u0131 %85 \u00fczeri. Uygulama y\u00fck\u00fcn\u00fc ve sorgular\u0131 kontrol edin.'\r\n<\/code><\/pre>\n<p>Burada 5 dakikal\u0131k ortalama ve 10 dakika sabit kalma ko\u015fulunu birlikte kulland\u0131k. B\u00f6ylece k\u00fc\u00e7\u00fck s\u0131\u00e7ramalar yerine bask\u0131y\u0131 yakal\u0131yoruz.<\/p>\n<h3><span id=\"RAM_Tukenmeye_Yakin_Sinyali\">RAM: T\u00fckenmeye Yak\u0131n Sinyali<\/span><\/h3>\n<p>RAM kullan\u0131m\u0131nda do\u011frudan &#8216;usage&#8217; yerine &#8216;available&#8217; mant\u0131\u011f\u0131n\u0131 takip etmek daha anla\u015f\u0131l\u0131r. Sistem cache tutabilir, ama available d\u00fc\u015f\u00fcyorsa yava\u015flama kap\u0131da demektir.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># rules\/memory.yml\r\ngroups:\r\n- name: mem-alerts\r\n  rules:\r\n  - alert: MemoryLow\r\n    expr: node_memory_MemAvailable_bytes \/ node_memory_MemTotal_bytes &lt; 0.1\r\n    for: 5m\r\n    labels:\r\n      severity: warning\r\n    annotations:\r\n      summary: 'RAM kritik e\u015fikte ({{ $labels.instance }})'\r\n      description: 'Kullan\u0131labilir bellek %10 alt\u0131na indi. Uygulama bellek s\u0131z\u0131nt\u0131s\u0131 veya artan y\u00fck olabilir.'\r\n<\/code><\/pre>\n<p>\u00d6zellikle e-ticaret d\u00f6nemlerinde bu uyar\u0131, uygulama \u00f6nbelle\u011fi veya sorgu optimizasyonu i\u00e7in g\u00fczel bir hat\u0131rlat\u0131c\u0131 olur. Bu noktada \u00f6nbellekleme kurallar\u0131 da i\u015finizi kolayla\u015ft\u0131r\u0131r; merak ederseniz <a href=\"https:\/\/www.dchost.com\/blog\/wordpress-icin-cdn-onbellek-kurallari-nasil-kurulur-woocommercede-html-cache-bypass-ve-edge-ayarlariyla-uctan-uca-hiz\/\">WordPress ve WooCommerce taraf\u0131nda CDN \u00f6nbellek kurallar\u0131yla h\u0131z kazanman\u0131n yolu<\/a> yaz\u0131s\u0131n\u0131 faydal\u0131 bulabilirsiniz.<\/p>\n<h3><span id=\"Disk_Dolu_mu_Yorgun_mu\">Disk: Dolu mu, Yorgun mu?<\/span><\/h3>\n<p>Disk i\u00e7in iki ayr\u0131 uyar\u0131 mant\u0131kl\u0131: Alan yetersizli\u011fi ve I\/O bask\u0131s\u0131. \u0130lki acildir, ikincisi performans\u0131 gizliden gizliye kemirir.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># rules\/disk.yml\r\ngroups:\r\n- name: disk-alerts\r\n  rules:\r\n  - alert: DiskSpaceLow\r\n    expr: (node_filesystem_avail_bytes{fstype!~'tmpfs|overlay'} \/ node_filesystem_size_bytes{fstype!~'tmpfs|overlay'}) &lt; 0.1\r\n    for: 10m\r\n    labels:\r\n      severity: critical\r\n    annotations:\r\n      summary: 'Disk alan\u0131 kritik ({{ $labels.instance }})'\r\n      description: 'Kalan disk alan\u0131 %10 alt\u0131na d\u00fc\u015ft\u00fc. Log temizli\u011fi veya \u00f6l\u00e7ekleme gerekebilir.'\r\n\r\n  - alert: DiskIOHigh\r\n    expr: rate(node_disk_io_time_seconds_total[5m]) &gt; 0.6\r\n    for: 15m\r\n    labels:\r\n      severity: warning\r\n    annotations:\r\n      summary: 'Disk I\/O bask\u0131s\u0131 ({{ $labels.instance }})'\r\n      description: 'Son 15 dakikada disk me\u015fguliyet oran\u0131 y\u00fcksek. Sorgular, indeksler veya yedekleme trafi\u011fini kontrol edin.'\r\n<\/code><\/pre>\n<p>Disk I\/O y\u00fcksekse veritaban\u0131 sorgular\u0131, indeksler ya da e\u015f zamanl\u0131 backup i\u015fleri ilk \u015f\u00fcpheliler. \u0130pu\u00e7lar\u0131 ar\u0131yorsan\u0131z, veritaban\u0131 taraf\u0131 i\u00e7in <a href=\"https:\/\/www.dchost.com\/blog\/woocommerce-icin-mysql-innodb-tuning-kontrol-listesi-buffer-pool-indeksleme-ve-slow-query-analizi-nasil-akillica-yapilir\/\">InnoDB tuning ve yava\u015f sorgu analizi<\/a> yaz\u0131s\u0131, pratik bir el feneri gibi.<\/p>\n<h3><span id=\"Uptime_Ayaga_Kalk_Sunucu_Dusmus\">Uptime: Aya\u011fa Kalk, Sunucu D\u00fc\u015fm\u00fc\u015f!<\/span><\/h3>\n<p>En basit uptime kural\u0131 &#8216;up&#8217; metri\u011fidir. Prometheus, hedefe eri\u015femezse &#8216;up&#8217; 0 olur. Bu, sunucu ger\u00e7ekten ula\u015f\u0131lmaz oldu\u011funda vurucu bir i\u015faret.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\"># rules\/uptime.yml\r\ngroups:\r\n- name: uptime-alerts\r\n  rules:\r\n  - alert: NodeDown\r\n    expr: up{job='node'} == 0\r\n    for: 1m\r\n    labels:\r\n      severity: critical\r\n    annotations:\r\n      summary: 'Uptime sorunu ({{ $labels.instance }})'\r\n      description: 'Prometheus hedefe 1 dakikad\u0131r ula\u015fam\u0131yor. VPS kapal\u0131 olabilir veya network kesintisi ya\u015fan\u0131yor.'\r\n<\/code><\/pre>\n<p>\u0130sterseniz uygulama katman\u0131 i\u00e7in d\u0131\u015far\u0131dan HTTP kontrol\u00fc de ekleyebilirsiniz (Blackbox Exporter ile). Ama \u00e7ekirdek izleme i\u00e7in bu kural \u00e7o\u011fu zaman ilk haberi verir. E\u011fer y\u00fcksek eri\u015filebilirlik planlar\u0131n\u0131z varsa, <a href=\"https:\/\/www.dchost.com\/blog\/hic-kesilmeden-yayinda-kalmak-mumkun-mu-anycast-dns-ve-otomatik-failover-ile-nasil-saglanir\/\">Anycast DNS ve otomatik failover ile kesintisiz kalma<\/a> yaz\u0131s\u0131na g\u00f6z atman\u0131z\u0131 \u00f6neririm.<\/p>\n<h2 id='section-7'><span id=\"Grafana_Veriyi_Hikayeye_Donusturmek\">Grafana: Veriyi Hikayeye D\u00f6n\u00fc\u015ft\u00fcrmek<\/span><\/h2>\n<h3><span id=\"Pano_Mantigi_Once_Duygu_Sonra_Detay\">Pano Mant\u0131\u011f\u0131: \u00d6nce Duygu, Sonra Detay<\/span><\/h3>\n<p>Pano d\u00fczenlerken ben \u00fc\u00e7 katmanl\u0131 bir yakla\u015f\u0131m\u0131 seviyorum. En \u00fcstte &#8216;nab\u0131z&#8217; panosu: CPU, RAM, disk ve uptime \u00f6zetleri. Orta katta &#8216;neden&#8217; sorusunu ayd\u0131nlatan detay panolar: \u00e7ekirdek ba\u015f\u0131na CPU, process bazl\u0131 bellek t\u00fcketimi, disk IOPS. En altta ise derin dal\u0131\u015f: belirli bir servis veya port \u00fczerinden trafik detaylar\u0131.<\/p>\n<p>Grafana kurulumunda ilk i\u015f, Prometheus&#8217;u veri kayna\u011f\u0131 olarak eklemek. Ard\u0131ndan haz\u0131r panolardan birini i\u00e7e aktarabilir ya da kendiniz s\u0131f\u0131rdan \u00e7izim yapabilirsiniz. Ba\u015flang\u0131\u00e7 i\u00e7in resmi d\u00f6k\u00fcmana g\u00f6z atmak iyi olur: <a href=\"https:\/\/grafana.com\/docs\/\" rel=\"nofollow noopener\" target=\"_blank\">Grafana ile panolar\u0131 y\u00f6netme ve alarmlar<\/a>.<\/p>\n<h3><span id=\"Basit_Sorgularla_Baslayin\">Basit Sorgularla Ba\u015flay\u0131n<\/span><\/h3>\n<p>&#8211; CPU ortalamas\u0131: avg by (instance) (rate(node_cpu_seconds_total{mode!=&#8217;idle&#8217;}[5m]))<\/p>\n<p>&#8211; RAM kullan\u0131labilirlik: node_memory_MemAvailable_bytes \/ node_memory_MemTotal_bytes<\/p>\n<p>&#8211; Disk me\u015fguliyet: rate(node_disk_io_time_seconds_total[5m])<\/p>\n<p>&#8211; Uptime: up{job=&#8217;node&#8217;}<\/p>\n<p>Renkleri, e\u015fik \u00e7izgilerini ve anotasyonlar\u0131 abartmadan koyun. Ne kadar sade olursa, &#8216;aha&#8217; an\u0131 o kadar h\u0131zl\u0131 geliyor. Grafana&#8217;n\u0131n kendi alarm sistemini de panel baz\u0131nda kullanabilirsiniz; kritik noktalarda \u00e7ift koruma g\u00fczel hissettirir.<\/p>\n<h2 id='section-8'><span id=\"Gurultuyu_Azaltmak_Iyi_Alarm_Stratejisinin_Sirlari\">G\u00fcr\u00fclt\u00fcy\u00fc Azaltmak: \u0130yi Alarm Stratejisinin S\u0131rlar\u0131<\/span><\/h2>\n<h3><span id=\"8216for8217_Suresi_ve_Histerezis\">&#8216;for&#8217; S\u00fcresi ve Histerezis<\/span><\/h3>\n<p>En s\u0131k yap\u0131lan hata, e\u015fik de\u011feri a\u015f\u0131l\u0131r a\u015f\u0131lmaz alarm g\u00f6ndermek. K\u0131sa s\u0131\u00e7ramalar i\u015fin do\u011fas\u0131nda var. Bunun yerine alarmlarda &#8216;for&#8217; kullan\u0131n. CPU&#8217;da 10 dakika, RAM&#8217;de 5 dakika, disk I\/O&#8217;da 15 dakika gibi. Bu, huzur verir.<\/p>\n<h3><span id=\"Gruplama_ve_Tekrarlama_Araliklari\">Gruplama ve Tekrarlama Aral\u0131klar\u0131<\/span><\/h3>\n<p>Alertmanager taraf\u0131nda benzer alarmlar\u0131 gruplamak sakinle\u015ftirir. Tekrarlama aral\u0131\u011f\u0131n\u0131 da makul tutun. Aksi halde bir kesinti esnas\u0131nda telefonunuz susmaz. Grup bazl\u0131 &#8216;summary&#8217; ve a\u00e7\u0131klamalar, ekip arkada\u015flar\u0131n\u0131n ne oldu\u011funu anlamas\u0131n\u0131 h\u0131zland\u0131r\u0131r.<\/p>\n<h3><span id=\"Bakim_Zamanlari_ve_Sessizlestirme\">Bak\u0131m Zamanlar\u0131 ve Sessizle\u015ftirme<\/span><\/h3>\n<p>Planl\u0131 bak\u0131m yap\u0131yorsan\u0131z &#8216;silence&#8217; kural\u0131 hayat kurtar\u0131r. 2 saatlik bir pencere a\u00e7\u0131p ilgili etiketlere g\u00f6re (\u00f6rne\u011fin instance) sessizle\u015ftirin. Sonra tekrar eski haline d\u00f6ner. \u0130\u015fte bu kadar.<\/p>\n<h3><span id=\"Dogru_Esikler_Isinize_Gore_Ayarlayin\">Do\u011fru E\u015fikler: \u0130\u015finize G\u00f6re Ayarlay\u0131n<\/span><\/h3>\n<p>Herkese uyan tek bir e\u015fik yok. Trafi\u011finizin normalini birka\u00e7 g\u00fcn izleyin, sonra e\u015fikleri buna g\u00f6re belirleyin. Kaynak planlamas\u0131 taraf\u0131nda karars\u0131zsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/woocommerce-kapasite-planlama-rehberi-vcpu-ram-iops-nasil-hesaplanir\/\">vCPU, RAM ve IOPS i\u00e7in kapasite planlama rehberi<\/a> kafan\u0131zdaki soru i\u015faretlerini g\u00fczelce topluyor.<\/p>\n<h2 id='section-9'><span id=\"Guvenlik_Metrikler_Herkese_Acik_Olmasin\">G\u00fcvenlik: Metrikler Herkese A\u00e7\u0131k Olmas\u0131n<\/span><\/h2>\n<p>Node Exporter portunu internetin tamam\u0131na a\u00e7mak yerine, sadece Prometheus&#8217;un bulundu\u011fu a\u011fdan eri\u015fime izin verin. G\u00fcvenlik grubu, firewall veya VPN ile s\u0131n\u0131rland\u0131r\u0131n. \u0130sterseniz reverse proxy \u00fczerinden basic auth da koyabilirsiniz, ama en temizi a\u011f seviyesinde kapatmak.<\/p>\n<p>Prometheus ve Grafana i\u00e7in de admin aray\u00fczlerini tahmin edilmesi zor portlara, g\u00fcvenilir IP&#8217;lere ve g\u00fc\u00e7l\u00fc parolalara emanet edin. Grafana kullan\u0131c\u0131lar\u0131n\u0131 rollerle ay\u0131rmak, yanl\u0131\u015fl\u0131kla yap\u0131lan de\u011fi\u015fikliklerin \u00f6n\u00fcne ge\u00e7er.<\/p>\n<h2 id='section-10'><span id=\"Docker_Compose_ile_Hizli_Kurulum_Istege_Bagli\">Docker Compose ile H\u0131zl\u0131 Kurulum (\u0130ste\u011fe Ba\u011fl\u0131)<\/span><\/h2>\n<p>\u0130sterseniz her \u015feyi bir arada, tek bir docker-compose ile aya\u011fa kald\u0131rabilirsiniz. A\u015fa\u011f\u0131da basit bir iskelet var. \u00dcretim ortam\u0131nda hacim, yedek, \u015fifre gibi detaylar\u0131 s\u0131k\u0131la\u015ft\u0131r\u0131n.<\/p>\n<pre class=\"language-bash line-numbers\"><code class=\"language-bash\">version: '3.8'\r\nservices:\r\n  prometheus:\r\n    image: prom\/prometheus:latest\r\n    volumes:\r\n      - .\/prometheus:\/etc\/prometheus\r\n      - promdata:\/prometheus\r\n    command:\r\n      - '--config.file=\/etc\/prometheus\/prometheus.yml'\r\n      - '--storage.tsdb.path=\/prometheus'\r\n      - '--web.enable-lifecycle'\r\n    ports:\r\n      - '9090:9090'\r\n\r\n  alertmanager:\r\n    image: prom\/alertmanager:latest\r\n    volumes:\r\n      - .\/alertmanager:\/etc\/alertmanager\r\n    command:\r\n      - '--config.file=\/etc\/alertmanager\/alertmanager.yml'\r\n    ports:\r\n      - '9093:9093'\r\n\r\n  grafana:\r\n    image: grafana\/grafana:latest\r\n    ports:\r\n      - '3000:3000'\r\n    environment:\r\n      - GF_SECURITY_ADMIN_USER=admin\r\n      - GF_SECURITY_ADMIN_PASSWORD=strongpass\r\n    volumes:\r\n      - grafdata:\/var\/lib\/grafana\r\n\r\n  node-exporter:\r\n    image: prom\/node-exporter:latest\r\n    pid: 'host'\r\n    network_mode: 'host'\r\n    restart: unless-stopped\r\n    command:\r\n      - '--path.rootfs=\/host'\r\n    volumes:\r\n      - '\/:\/host:ro,rslave'\r\n\r\nvolumes:\r\n  promdata: {}\r\n  grafdata: {}\r\n<\/code><\/pre>\n<p>Bu yakla\u015f\u0131m, tek VPS \u00fczerinde h\u0131zl\u0131ca denemek i\u00e7in ideal. Zamanla rol ayr\u0131m\u0131 yap\u0131p Prometheus&#8217;u farkl\u0131 bir sunucuya ta\u015f\u0131mak, disk I\/O bask\u0131s\u0131n\u0131 hafifletebilir.<\/p>\n<h2 id='section-11'><span id=\"Gercek_Hayattan_Kucuk_Dersler\">Ger\u00e7ek Hayattan K\u00fc\u00e7\u00fck Dersler<\/span><\/h2>\n<p>&#8211; Fazla alarm, alarm\u0131 de\u011fersizle\u015ftirir. Az ama isabetli olsun.<\/p>\n<p>&#8211; Panoyu karma\u015f\u0131k hale getirmeyin. \u00d6nce \u00f6zet, sonra detay. B\u00f6ylece kim bakarsa baks\u0131n ayn\u0131 hikayeyi okur.<\/p>\n<p>&#8211; Disk doluluk alarmlar\u0131 i\u00e7in e\u015fiklerin alt\u0131na &#8216;temizlik g\u00f6revi&#8217; tan\u0131mlamak iyi fikir. Log rotasyonu, eski yedeklerin kald\u0131r\u0131lmas\u0131 gibi ufak otomasyonlar b\u00fcy\u00fck rahatl\u0131k veriyor. Yedeklemeyi ciddiye al\u0131yorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/3-2-1-yedekleme-stratejisi-neden-ise-yariyor-cpanel-plesk-ve-vpste-otomatik-yedekleri-nasil-kurarsin\/\">3-2-1 yedekleme stratejisi<\/a> anlat\u0131s\u0131 ak\u0131lda kal\u0131c\u0131.<\/p>\n<p>&#8211; Prometheus ve Alertmanager versiyonlar\u0131n\u0131 \u00e7ok arkada b\u0131rakmay\u0131n. K\u00fc\u00e7\u00fck iyile\u015ftirmeler bile gecikme ve stabilite taraf\u0131nda fark yarat\u0131yor. Resmi s\u00fcr\u00fcm notlar\u0131n\u0131 ara ara okumak faydal\u0131: <a href=\"https:\/\/github.com\/prometheus\/node_exporter\" rel=\"nofollow noopener\" target=\"_blank\">Node Exporter s\u00fcr\u00fcmleri ve kurulum notlar\u0131<\/a>.<\/p>\n<p>&#8211; Trafi\u011finiz b\u00fcy\u00fcd\u00fck\u00e7e, i\u015f taraf\u0131ndaki g\u00f6stergeleri de izlemeye ekleyin: sepet tamamlama oran\u0131, sipari\u015f hata oran\u0131, istek s\u00fcresi. Teknik metrikler sa\u011fl\u0131kl\u0131ysa ama kullan\u0131c\u0131 \u015fikayet ediyorsa, hikayenin eksik bir sayfas\u0131 var demektir.<\/p>\n<h2 id='section-12'><span id=\"Performansi_Destekleyen_Yan_Notlar\">Performans\u0131 Destekleyen Yan Notlar<\/span><\/h2>\n<p>\u0130zleme bazen bir sorunu \u00e7\u00f6zmez, sadece ayd\u0131nlat\u0131r. \u00c7\u00f6z\u00fcm i\u00e7in altyap\u0131da birka\u00e7 iyilik yapmak gerekir. Trafikte ani s\u0131\u00e7ramalar ya\u015f\u0131yorsan\u0131z ve CPU&#8217;yu korumak istiyorsan\u0131z, web katman\u0131nda ak\u0131ll\u0131 \u00f6nbellekleme ve bot korumas\u0131 \u00e7ok i\u015f g\u00f6r\u00fcr. Bu konuda, <a href=\"https:\/\/www.dchost.com\/blog\/cloudflare-waf-kurallari-ve-oran-sinirlama-ile-wordpressi-botlardan-nasil-korursun\/\">Cloudflare WAF kurallar\u0131 ve oran s\u0131n\u0131rlama ile botlar\u0131 dizginlemek<\/a> iyi bir ba\u015flang\u0131\u00e7 fikri sunuyor. Bir de, uygulama g\u00fcncellemeleri veya veritaban\u0131 migrasyonlar\u0131nda kesinti olmadan ilerlemek istiyorsan\u0131z, <a href=\"https:\/\/www.dchost.com\/blog\/zero-downtime-tasima-icin-ttl-stratejileri-dns-yayilimini-gercekten-nasil-hizlandirirsin\/\">DNS TTL stratejileriyle ta\u015f\u0131ma<\/a> yaz\u0131s\u0131 pratik bir rehber gibi.<\/p>\n<h2 id='section-13'><span id=\"Baseline_ve_Kapasite_Ne_Zaman_Olceklemeli\">Baseline ve Kapasite: Ne Zaman \u00d6l\u00e7eklemeli?<\/span><\/h2>\n<p>\u0130zleme veriniz birka\u00e7 haftay\u0131 bulunca, elinizde alt\u0131n gibi bir referans olu\u015fur: normalin grafi\u011fi. CPU %70-75 band\u0131nda uzun kal\u0131yorsa, RAM uyar\u0131lar\u0131 s\u0131kla\u015f\u0131yorsa ve disk I\/O s\u00fcrekli y\u00fcksekse \u00f6l\u00e7ekleme zaman\u0131 yakla\u015fm\u0131\u015f olabilir. Tek bir dev makine yerine, i\u015fi b\u00f6len bir yakla\u015f\u0131m bazen daha rahat \u00e7al\u0131\u015f\u0131r. Ama tercihi netle\u015ftirmeden \u00f6nce metriklerinize bak\u0131n; onlar zaten gerekeni s\u00f6yl\u00fcyor olacak.<\/p>\n<p>Uygulaman\u0131z WooCommerce, Laravel ya da Node.js tabanl\u0131ysa ve karar vermekte zorlan\u0131yorsan\u0131z, \u015fu derli toplu anlat\u0131m i\u015f g\u00f6r\u00fcr: <a href=\"https:\/\/www.dchost.com\/blog\/woocommerce-laravel-ve-node-jsde-dogru-vps-kaynaklarini-nasil-secersin-cpu-ram-nvme-ve-bant-genisligi-rehberi\/\">Do\u011fru VPS kaynaklar\u0131n\u0131 se\u00e7me rehberi<\/a>. \u0130zleme sonu\u00e7lar\u0131n\u0131z\u0131 bu rehberle birlikte okuyunca, hangi d\u00fc\u011fmeye ne kadar basman\u0131z gerekti\u011fi netle\u015fir.<\/p>\n<h2 id='section-14'><span id=\"Kapanis_Sessizligi_Anlamli_Kilmak\">Kapan\u0131\u015f: Sessizli\u011fi Anlaml\u0131 K\u0131lmak<\/span><\/h2>\n<p>Bir gece CPU tavan yapar, ba\u015fka bir g\u00fcn RAM b\u0131\u00e7ak s\u0131rt\u0131 kal\u0131r, bazen de disk fark ettirmeden yorulur. \u0130zleme sistemi kurmak, bu sessiz de\u011fi\u015fimi anla\u015f\u0131l\u0131r bir hikayeye \u00e7evirmek demek. Prometheus veriyi toplar, Grafana g\u00f6rsel bir dille anlat\u0131r, Node Exporter da kulak verir. Birka\u00e7 sade kural yaz\u0131p, alarmlara makul bekleme s\u00fcreleri koydu\u011funuzda, ekranlar\u0131n\u0131z k\u0131rm\u0131z\u0131ya boyanmadan \u00f6nce tedbir al\u0131rs\u0131n\u0131z.<\/p>\n<p>Pratik tavsiyem \u015fu: K\u00fc\u00e7\u00fckten ba\u015flay\u0131n. Tek VPS&#8217;de Node Exporter ve Prometheus ile bir tur d\u00f6n\u00fcn, Grafana&#8217;da bir &#8216;nab\u0131z&#8217; panosu kurun, iki \u00fc\u00e7 anlaml\u0131 alarm yaz\u0131n. Sonra Alertmanager ile bildirimi ekleyin. \u0130lk uyar\u0131y\u0131 ald\u0131\u011f\u0131n\u0131zda ne bekleyece\u011finizi bilmek, en az uyar\u0131n\u0131n kendisi kadar \u00f6nemli. Umar\u0131m bu rehber, kendi sisteminizi g\u00fcvenle izlemenin yolunu a\u00e7m\u0131\u015ft\u0131r. Sorular\u0131n\u0131z olursa, not al\u0131n, deneyin, tekrar gelin; bir sonraki yaz\u0131da daha derine dalar\u0131z. \u015eimdilik ho\u015f\u00e7a kal\u0131n.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Hi\u00e7 ans\u0131z\u0131n sitenin yava\u015flad\u0131\u011f\u0131n\u0131 fark edip, &#8216;Acaba benim tarafta m\u0131 bir \u015fey var?&#8217; diye kurcalad\u0131\u011f\u0131n\u0131z oldu mu? Benim oldu. Hem de \u00f6yle bir gece ki, taray\u0131c\u0131da d\u00f6nen o k\u00fc\u00e7\u00fck y\u00fckleniyor simgesi bana dakikalar\u0131 saat gibi hissettirdi. Sunucuya SSH ile ba\u011fland\u0131m, birka\u00e7 komut, birka\u00e7 tahmin, sonra sessizlik&#8230; O an \u015funu d\u00fc\u015f\u00fcnd\u00fcm: Bu i\u015fleri \u015fansa b\u0131rakmak yerine, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1371,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-1370","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-teknoloji"],"_links":{"self":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/comments?post=1370"}],"version-history":[{"count":2,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1370\/revisions"}],"predecessor-version":[{"id":1383,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/posts\/1370\/revisions\/1383"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media\/1371"}],"wp:attachment":[{"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/media?parent=1370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/categories?post=1370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dchost.com\/blog\/wp-json\/wp\/v2\/tags?post=1370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}